domenica 28 luglio 2013

Come scrivere le lettere accentate con le tastiere inglesi

Se siete programmatori o anche semplicemente utilizzate in modo abituale il terminale Linux e vi è capitato di provare una tastiera con layout inglese credo che ben difficilmente non l'abbiate trovata più comoda rispetto a quella italiana. L' unica pecca è la mancanza di tasti per le lettere accentate, inutilizzate nei paesi di lingua anglosassone.
Tra le varie alternative che ho provato senza dubbio la migliore, sia come semplicità di configurazione che immediatezza di utilizzo, è il ComposeKey di X.org. Grazie al ComposeKey è possibile scrivere le lettere accentate (e altri caratteri speciali) con delle combinazioni di tasti estremamente semplici sia da fare che da ricordare perché molto intuitive.
Ad es. per avere la lettera è ("e" con accento grave) dovremmo immettere la combinazione: AltGr + e + `
In modo analogo per avere la lettera ú ("u" con accento acuto) basterà dare: AltGr + u + '
Per scrivere ø (simbolo di diametro) inseriremo invece AltGr + o + /

Come potete vedere le combinazione sono assolutamente intuitive e non richiedono veramente alcuno sforzo per apprenderle.
Vediamo quindi come abilitare il ComposeKey, di default disabilitato.
Spostiamoci nella directory /etc/X11/xorg.conf.d/ e apriamo, da root, il file 00-keyboard.conf. Se il file non esiste sulla nostra macchina, lanciamo sempre da root:
# system-config-keyboard
quindi scegliamo il layout corretto della nostra tastiera e confermiamo con "Ok".
Sul mio notebook con tastiera Inglese (Regno Unito) il file appare così:
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "gb"
        Option "XkbModel" "pc105"
EndSection
Attiviamo il ComposeKey aggiungendo alla sezione "InputClass":
Option          "XkbOptions"    "compose:ralt"
Il file completo dopo le nostre modifiche risulterà quindi così:
 Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "gb"
        Option "XkbModel" "pc105"
        Option "XkbOptions"    "compose:ralt"
EndSection
"ralt" ovvero "right alt" (AltGr) è il tasto che ho scelto come avviatore delle sequenze di tasti perché lo ritengo il più comodo e "naturale". Se preferite usare altro siete naturalmente liberissimi di farlo, vi basta sostituire "ralt" con il tasto di vostra scelta, "rwin" per il tasto Windows di destra, "lctrl" per ctrl di sinistra e così via.
Terminate le modifiche riavviamo X per renderle effettive.

Potete trovare l'elenco completo dei caratteri speciali attivabili con ComposeKey nel file  /usr/share/X11/locale/en_US.UTF-8/Compose

venerdì 26 luglio 2013

Aggiornamento di thunderbird-attachment (versione 1.1)

Di recente vi avevo parlato di un mio piccolo progetto, thunderbird-attachment, un servizio per Dolphin per allegare e spedire file tramite Thunderbird. In questi giorni ho fatto alcune modifiche soprattutto per rendere ancora più semplice e immediata l'impostazione dell'indirizzo di default per l'invio delle mail.
Il file get_tb_id.pl è stato rimpiazzato da settbid il quale, oltre a mostrare l'elenco degli indirizzi email di Thundebird come il suo predecessore, permette di salvare in un file (in $HOME/.thunderbird-attachment) l'indirizzo che vogliamo utilizzare come default.
Ecco un esempio chiarificatore:
$ settbid
[1] id1 -> pippo@gmail.com
[2] id2 -> pluto@alice.it
[3] id3 -> paperino@localhost
:: please choose your default email address (type corresponding number)
:: [ q = quit progam ]
>2
:: "pluto@alice.it" (id2) is now the default sender address!
:: Bye
Non è più richiesta quindi la modifica manuale del file thunderbird-attachment.pl (da questa versione semplicemente thunderbird-attachment): il programma utilizzerà ora in maniera automatica l'id impostato con settbid

Se desiderate provare questa nuova versione su Fedora 19 scaricate da qui i pacchetti thunderbird-attachmentperl-MailIdentity (modulo richiesto per gestione del file di configurazione)

mercoledì 24 luglio 2013

Creare il link a /dev/dvd in Fedora 19

Riporto qui essenzialmente quanto già scritto nell'ambito di una discussione sul forum Fedora Online con alcune integrazioni. Ad oggi in Fedora 19 (a differenza delle precedenti release) non è presente alcun meccanismo automatico per  la creazione del link /dev/dvd verso il dispositivo dvd (in genere /dev/sr0).
Questa lacuna è piuttosto seccante dal momento che la totalità dei media player punta di default verso questo link, di conseguenza ogni tentativo di avviare la riproduzione di un dvd video fallirà con errori del tipo "device not found" o "can't read from device".

Grazie alle proprietà di systemd è possibile risolvere facilmente questo problema creando un file di configurazione apposito nella directory  /etc/tmpfiles.d/. Tale file, eseguito ad ogni avvio del sistema, ricreerà il link "dimenticato" dagli sviluppatori di Fedora.

Individuiamo innanzitutto il nome esatto del nostro lettore dvd:
 $ cat /proc/sys/dev/cdrom/info  | grep name
   drive name:             sr0
Trovato il nome del dispositivo spostiamoci nella directory /etc/tmpfiles.d/ e creiamo un file dal nome dvd.conf il cui contenuto sarà il seguente:
L /dev/dvd - - - - /dev/sr0
Verifichiamo che il nostro file funzioni e che il symlink a /dev/dvd venga creato:
# systemctl start systemd-tmpfiles-setup-dev.service
Se abbiamo SELinux in modalità "Enforcing" (modalità di default) il comando provocherà un allarme e l'esecuzione verrà bloccata.
Per consentirla diamo:
# grep systemd-tmpfile /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
Ripetiamo dunque il comando:
# systemctl start systemd-tmpfiles-setup-dev.service
A questo punto il nostro link dovrebbe essere stato creato, controlliamo con:
$ ls -l /dev/dvd
Se l'output che otteniamo è simile a questo:
 lrwxrwxrwx. 1 root root 8 24 lug 14.12 /dev/dvd -> /dev/sr0
significa che la procedura è andata a buon fine il link a /dev/dvd verrà automaticamente ricreato ad ogni boot di sistema.
Se siete interessati ad approfondire le potenzialità dei tmpfiles di systemd, vi consiglio questa esaustiva lettura

giovedì 18 luglio 2013

Come allegare file a Thunderbird direttamente da Dolphin (ovvero replicare il comando "Invia a destinatario di Posta" di Windows)

Un po' per necessità e un po' per gioco di recente ho scritto un servizio per Dolphin simile al ben noto "Invia a destinatario di Posta" che certamente avrete visto sui sistemi Windows.
Esiste già un servizio simile, Attach to Thunderbird, che però, forse anche perché non viene più aggiornato da tempo, non funziona in modo impeccabile: non è possibile allegare ad un nuovo messaggio più file contemporaneamente e inoltre fallisce del tutto in presenza di particolari caratteri al'interno del nome del file che desideriamo allegare.
Per questo motivo ho quindi preparato, con pochissime righe di Perl, una mia variante, partendo dal servizio già esistente; eccola in azione:


Se desiderate provare il servizio sulla vostra macchina, potete scaricarlo da qui.
L'installazione è semplicissima: scompattate l'archivio tar.xz  e copiate il file thunderbird-attachment.desktop nella cartella ~/.kde/share/kde4/services/.
Dopodiché copiate i file thunderbird-attachment.plget_tb_id.pl in ~/bin (oppure /usr/local/bin) e assicuratevi che siano eseguibili (è sufficiente un chmod 775 *.pl)
Lo script è pronto per essere utilizzato; per testarlo aprite Dolphin, selezionate uno o più file, quindi tasto dx del mouse e cliccate su Azioni->Invia E-mail con Thunderbird.

Il servizio usa di default come mail del mittente l'indirizzo associato all'id1 di Thunderbird. Se volete utilizzare un id diverso vi basta apre il file thunderbird-attachment.pl, posizionarvi alla riga n. 26 e  sostituire "id1" con quello di vostra scelta (id2, id3, ecc.)
Per verificare gli indirizzi disponibili e gli id associati, lanciate in un terminale:
$ get_tb_id.pl
Il comando richiede il modulo File::Slurp; se non è già presente nel vostro sistema installatelo con
 # yum install perl-File-Slurp
Il servizio è stato testato unicamente su Fedora 19, non dovrebbero comunque esserci problemi ad eseguirlo su distro diverse. Se così non fosse, segnalatemelo!

P.s. Ho creato anche un pacchetto rpm per Fedora 19, al fine di rendere ancora più agevole l'installazione; potere reperirlo qui