Icone Funzionali
Mettete il caso di dover convertire alcune immagini e di aver deciso di scrivere un post. Oggi vi appesterò con una storia breve sul problema di questa sera ma, siccome scrivere
convert -size 1024×768 *.jpg [1]
non sarebbe stato di grande aiuto, e neanche un gran post, ho pensato di parlare delle icone che stanno alla destra del mio desktop.
Le chiamo icone funzionali perché sono dei lanciatori (launcher) che fanno capo a piccoli programmi bash che mi aiutano in piccoli compiti.
Procediamo per ordine
Alla vostra destra potete vedere Fenice anzi, meglio, l’icona che rappresenta un tunnel ssh verso il mio portatile e che si trova sul desktop di Base, il mio sistema fisso.
Solitamente, quando arrivo a casa, collego il notebook alla rete e comincio a lavorare sul computer fisso. Spesso mi succede di dover spostare dei file sul portatile ma non ho voglia di aprire un terminale e digitare scp e tutti i suoi parametri. Allo stesso modo può succedere che debba aprire una sessione per digitare qualche comando.
Qualche riga di bash, un po di creatività ed ecco l’anima di quell’icona:
#!/bin/bash
if [ -z "$1" ]; then
gnome-terminal --command="ssh eineki@fenice"
else
scp -C $1 eineki@fenice:~
if [ $? ]; then
zenity --info --text "File copiato su Fenice"
else
zenity --error --text "Si è verificato un errore. $1 non trasferito"
fi
fi
Ovviamente utilizzo le chiavi pubblica/privata per farmi riconoscere dal sistema senza inserire la password. In caso non vogliate, o non possiate, utilizzare questo stratagemma allora fate in modo che il programma venga eseguito nel terminale.
Quello che non tutti sanno è che, se trasciniamo un file, o una directory, su un’icona lanciatore, lo so che il termine è orribile ma è la terminologia che trovo su gnome, allora il programma associato al lanciatore viene lanciato con, come unico parametro, il percorso assoluto di quello che gli è stato fatto cadere sopra (e così abbiamo sistemato il termine drag e drop
).
Potete verificare voi stessi questo comportamento tramite un semplicissimo file bash che non fa altro che visualizzare il parametro che gli viene passato:
#!/bin/bash
#usate $* al posto di $1 per vedere tutta la linea di invocazione
zenity –info –text “$1″
L’unico limite è la vostra fantasia (e magari anche l’antipatica abitudine di gnome di passare le selezioni multiple al programma che sta dietro al lanciatore una per volta).
Fenice, ad esempio, è in buona compagnia insieme alle icone che fanno capo alle stampanti, a quelle che mi scompattano i file con i programmi da provare nella directory di test ed ad altri comandi utili come quello che calcola l’md5 di un file o quello che mi compatta le directory o quello che, trascinandoci sopra la mia macchina fotografica digitale archivia le foto che contiene e ne duplica una versione a risoluzione ridotta comoda da spedire agli amici via email. Per non parlare di quello che, facendogli cadere sopra un file mp3 o wav me lo converte in ogg e lo spedisce al lettore portatile.
Se qualcuno volesse obiettare che il tasto destro del mouse è stato inventato apposta per aprire i menù contestuali con miliardi di possibili script nautilus è il benvenuto anche se io mi diverto di più con le icone funzionali e penso che bisognerebbe dar loro una possibilità.
Se qualcun altro ha immaginato altri utilizzi o metodi più raffinati per utilizzare il drag’n'drop con bash non ha altro da fare che farsi avanti
.
E questo è tutto.
Aggiornamento – 12 Gennaio 2011: Fasticon ha spostato le icone in un bundle a pagamento. Modificato il link dell’icona ad una versione ancora gratuita.
[1] trasforma tutte le immagini contenute nella directory corrente in altre dimensionate secondo size, è un comando che uso per la macchina digitale e quindi non ho bisogno di controlli di rito, il rapporto altezza:larghezza sarà sicuramente corretto e la macchina conterrà sicuramente immagini jpg. Per chi volasse approfondire, il pacchetto a cui fare riferimento è ImageMagick


