Font_personali.sh
Font_personali.sh è uno script bash che permette di installare più font in una volta nella sottocartella dell'utente corrente. Usa Zenity, perciò è utilizzabile dall'interfaccia grafica
Come ho scritto nell'articolo Linux: installare più font in una volta sola, installare più font con un'unica operazione è, in fin dei conti, una procedura banale. Basta sapere che cosa fare.
Se preferisci uno script che ti eviti di pensare, Font_personali.sh è per te: ti permette di installare font per l'utente (non per il sistema) guidandoti nella selezione dei file e nella cartella di destinazione.
Lo script Font_personali.sh
Dal punto di vista tecnico, Font_personali.sh è uno script Bash, probabilmente la shell testuale più usata nel mondo Linux e disponibile anche per OS X e Windows.
Inoltre fa uso di Zenity, un programma libero e multipiattaforma che permette la realizzazione e l'esecuzione di finestre di dialogo GTK+ all'interno di script di shell. In altre parole, puoi dimenticarti il terminale e fare tutto dall'interfaccia grafica. Zenity dovrebbe essere già presente nella tua distro.
A beneficio di coloro che, avendo una minima conoscenza di Bash, desiderano sapere che cosa fa il software, riporto qui le parti essenziali del codice, tralasciando solo alcuni commenti.
Richiesta dei file di font da installare
Per facilitare la scelta dei font, lo script recupera l'ultima cartella utilizzata, il cui percorso è memorizzato ogni volta nel file Ultima_sorgente.txt. Questo file è registrato nella cartella nascosta .Font_personali, che si trova nella cartella Home dell'utente.
# Selezione dei file da installare
# e salva il percorso in $HOME/.Font_personali/Ultima_sorgente.txt
FILE="$HOME/.Font_personali/Ultima_sorgente.txt"
ULTIMA_SORGENTE=$(cat "$FILE")
declare FILE_ORIGINARI=$(zenity --file-selection \
--title="Scegli i font" \
--text="Seleziona i font da installare" \
--multiple \
--separator=" " \
--filename=$ULTIMA_SORGENTE)
echo $FILE_ORIGINARI > $HOME/.Font_personali/Ultima_sorgente.txt
Lo script chiede ora dove memorizzare i font, proponendo come cartella predefinita $HOME/.local/share/fonts/.
# Seleziona la cartella in cui memorizzare i font
declare DESTINAZIONE=$(zenity --file-selection \
--title="Scegli la cartella in cui salvare i font" \
--directory \
--filename=$HOME/.local/share/fonts/)
Quindi lo script copia i file scelti, registrandoli nella cartella selezionata.
# Copia dei file
cp $FILE_ORIGINARI $DESTINAZIONE
Infine, ricostruisce la cache dei font ed esce.
# Ricostruzione della cache dei font
fc-cache -f -v
exit
Come vedi, lo script è, in sé, semplicissimo.
Installazione
Dopo aver scaricato e decompattato il file Software.zip, compi le operazioni seguenti:
- come amministratore, copia il file Font_personali.sh in /usr/bin/ e assicurati che il file sia contrassegnato come eseguibile
- copia la cartella .Font_personali nella tua home. Questa operazione deve essere ripetuta da ogni utente.
Ti consiglio di creare un lanciatore per Font_personali.sh, in modo da poterlo sempre lanciare con un paio di clic.
Limiti dello script
Lo script ha alcuni limiti.
Il primo limite è l'incapacità di gestire file e cartelle nel cui nome vi è uno spazio. Nel caso che il nome dei font o una delle cartelle del ramo di origine o di destinazione contenga uno spazio, lo script dà un errore secondo il quale è impossibile trovare il file.
Il secondo limite è la necessità di trovare la cartella .Font_personali nella home di ogni utente. Sarebbe bello che facesse un controllo per verificare se la cartella esiste già e dentro di essa sia memorizzato il file Ultima_sorgente.txt; se non c'è crea sia la cartella sia il file.
Migliorie desiderate
I limiti sono ovviamente anche le migliorie che desidererei:
- essere in grado di gestire i nomi di file e di cartelle contenenti gli spazi
- creazione della cartella .Font_personali e del file Ultima_sorgente.txt se non esistono già.
Se sei in grado di apportare queste migliorie (o altre che ti vengano in mente), scrivimi!
Scarica lo script
Puoi scaricare liberamente lo script. Il file .zip contiene:
- il file Font_personali.sh: è lo script
- il file Installazione.txt: sono le sintetiche istruzioni per l'installazione
- la cartella .Font_personali: è la cartella da inserire nella home di ogni utente.
Il sistema dei commenti è di CComment