Passo ad Archlinux

Una notizia che non frega a nessuno credo, ma lo dico nel caso in cui da qui in avanti qualcuno non trovasse più relazione tra questi appunti e l’ambiente Ubuntu/Xubuntu.

Passo ad Archlinux perché sono stanco che ogni sei mesi qualcuno mi stravolga l’ambiente con un aggiornamento di versione (con problemi annessi e connessi), perché sono stanco di ricevere aggiornamenti alle nuove versioni a volte anche dopo mesi dall’uscita, perché sono stanco di aver installato di default un sacco di programmi che non uso ma fan parte del “pacchetto base”. Per tutti questi motivi, sono passato ad Archlinux, la quale mi permette di avere una macchina stabile, aggiornata e con installato solo quello che effettivamente uso, il tutto senza rinunciare ad un’estrema semplicità di gestione ed al un supporto di una folta comunity.

Detto questo…

apt-get remove Xubuntu
pacman -Suy Archlinux

Regolare volume Pulseaudio

Se si necessita di un programma che regoli il volume di Pluseaudio da riga di comando, è possibile usare il seguente script:

#!/usr/bin/ruby
def current
  c = IO::popen("pacmd \"list-sinks\" | grep volume | head -1").readlines[0]
  return c.split(" ").last.sub("%", "").strip.to_i
end
 
def max
  c = IO::popen("pacmd \"list-sinks\" | grep \"volume steps\" | head -1").readlines[0]
  return c.split(" ").last.strip.to_i - 1
end
 
def index
  c = IO::popen("pacmd \"list-sinks\" | grep index | head -1").readlines[0]
  return c.split(" ").last.strip.to_i
end
 
def set(v)
  IO::popen("pacmd \"set-sink-volume #{index} #{v}\"").readlines
end
 
def muted
  c = IO::popen("pacmd \"list-sinks\" | grep muted | head -1").readlines[0]
  return c.split(" ").last.strip == "yes"
end
 
def toggle
  t = 1
  if ( muted )
    t = 0
  end
  IO::popen("pacmd \"set-sink-mute #{index} #{t}\"").readlines
end
 
interval = 5
 
if ( ARGV.size == 0 )
  puts current
elsif (ARGV[0] == "?" )
  puts muted
elsif ( ARGV[0] == "+" )
  set([current + interval, 100].min * (max / 100.0).round)
elsif ( ARGV[0] == "-" )
  set([current - interval, 0].max * (max / 100.0).round)
elsif ( ARGV[0] == "!" )
  toggle
end

Con i poteri di root, incollarlo dentro un file /usr/bin/pavol e renderlo eseguibile con:

sudo chmod +x /usr/bin/pavol

I requisiti di questo script sono l’installazione di ruby:

sudo aptitude install ruby

mentre per l’utilizzo si rispecchia la seguente sintassi:

pavol +

aumenta il volume

pavol -

diminuisce il volume

pavol !

muta

Fonte: [lm]azy

Creare un DE con Flwm

Nel caso in cui volessimo creare un desktop environment personalizzato, dedicato solamente ad uno o più programmi, senza aver il peso delle restanti funzioni presenti in Xfce o Gnome, si deve creare un file .desktop che permette una scelta aggiuntiva all’interno del login manager (Gdm di solito). Per farlo, innanzitutto creare il suddetto file di avvio con:

sudo nano /usr/share/xsessions/my_xsession.desktop

e all’interno inserire quanto segue:

[Desktop Entry]
Name=My XSession
Comment=My personal XSession
Exec=/opt/xsession.sh
X-Ubuntu-Gettext-Domain=gdm

ovviamente “name” e “comment” sono personalizzabili, come lo script di avvio “exec” può essere posto in qualsivoglia punto del disco. Editare lo script exec, dove va inserito tutto quello che la sessione dovrà eseguire in automatico. Il contenuto potrebbe essere simile a questo:

#!/bin/bash
flwm -x &
WindowManager=$!
xclock -digital -strftime "%H:%M" -fg green -bg black -geometry -0+0 &
start-pulseaudio-x11 &
xbindkeys &
vlc &
wait $WindowManager

Nel file si fa riferimento a Flwm, ovvero fast light windows manager, serve ad avere un minimo di gestione delle finestre, evitando così le sovrapposizioni tra i vari programmi. Nonché permette di avere un semplice menu con cui in caso poter aprire applicazioni non inserite nell’avvio automatico. L’implementazione del menu Flwm è alquanto semplice, bisogna creare una cartella col comando:

mkdir ~/.wmx

e all’interno di questa inserire dei link simbolici facenti capo ai vari programmi. Il risultato si ottiene usando una serie di comandi tipo:

ln -s /usr/bin/xfce4-terminal ~/.wmx/1_Terminal
ln -s /usr/bin/pavucontrol ~/.wmx/2_Pavucontrol
ln -s /usr/bin/firefox ~/.wmx/3_Firefox
ln -s /usr/bin/thunderbird ~/.wmx/4_Thunderbird

Ultima nota è data all’impostazione dei tasti multimediali, in quanto questi non sempre vengono riconosciuti al di fuori dei DE più strutturati. Un modo semplice è associare i tasti a degli script con xbindkeys, in modo che alla pressione del tasto lo script venga eseguito. Si procede creando il file di configurazione con:

touch .xbindkeysrc

una volta fatto questo, bisogna trovare i codici dei tasti multimediali interessati. Per farlo bisogna uscire dal DE ed entrare in una console con control-alt-f1, qui eseguire il comando:

xbindkeys -k

se il tasto è riconosciuto, la risposta dovrebbe essere simile alla seguente:

"(Scheme function)"
    m:0x0 + c:121
    XF86AudioMute

ora basta inserire questo codice all’interno del file .xbindkeysrc, ovviamente cambiando la riga “(Scheme function)” con il comando relativo da lanciare. Infine quindi all’interno del file .xbindkeysrc avremo la corrispondenza di tutti i tasti, in un formato molto simile a questo:

"pavol !"
    m:0x0 + c:121
    XF86AudioMute
"pavol -"
    m:0x0 + c:122
    XF86AudioLowerVolume
"pavol +"
    m:0x0 + c:123
    XF86AudioRaiseVolume

Controllare i LED tastiera

Per controllare i LED della tastiera bisogna installare il seguente programma:

sudo aptitude install ledcontrol

Quindi editare il file:

sudo nano /usr/share/ledcontrol/startup.sh

e garantire i permessi di scrittura aggiungendo il seguente parametro nella seconda riga:

chgrp users /var/run/ledd-pipe

A questo punto per far lampeggiare i LED basta dare il comando:

ledcontrol set c5n5 blink 10 1000

mentre per tornare alla situazione normale usare:

ledcontrol set c5n5 normal

Altre impostazioni sono visibili con il comando:

man ledd

XSession dedicata ad un programma

Per creare un XSession aggiuntivo da poter scegliere al login di GDM creare un file tipo:

sudo nano /usr/share/xsessions/miox.desktop

al cui interno inserire tutti i datti delle sessione, ad esempio:

[Desktop Entry]
Name=MioX
Comment=Mio XSession
Exec=/home/utente/script.sh
X-Ubuntu-Gettext-Domain=gdm

si può notare che nel file di configurazione viene specificato uno script /home/utente/script.sh il quale contiene la lista di tutti i programmi in avvio automatico.