Personalizzare Thunar

Questo capitolo illustra come sia possibile personalizzare alcune parti del gestore di file a seconda delle proprie necessità.

Il menu «Invia a»

Thunar include un menu Invia a che fornisce delle possibili destinazioni in cui i file e le cartelle possono essere inviati. Per accedere al menu Invia a, selezionare FileInvia a dal menu principale, o fare clic con il tasto del mouse sul file o sulla cartella e selezionare Invia a.

Menu «Invia a»

Di norma, il menu Invia a include una voce denominata Scrivania (crea collegamento) per tutti i file e le cartelle, che crea semplicemente un collegamento sulla scrivania per ogni file selezionato. In più, se il pannello delle scorciatoie è attivo, il menu presenta anche una ulteriore voce per le cartelle denominata Pannello laterale (crea scorciatoia), che permette all'utente di inserire una nuova scorciatoia al pannello laterale. Dopo queste voci, Thunar elenca le periferiche rimovibili attualmente collegate al computer. Nell'immagine in alto, il Floppy Drive rappresenta una possibile destinazione a cui possono essere inviati i file. Si noti che il dispositivo è montato automaticamente una volta che è selezionato dal menu Invia a, quindi non è necessario montarlo manualmente.

In aggiunta, Thunar è distribuito con il plugin Invia a, che aggiunge la voce email al menu, il quale apre una nuova mail con allegato il file selezionato. Se la selezione contiene almeno una cartella, gli elementi selezionati vengono aggiunti a un archivio in formato ZIP prima di essere allegati alla email. Altrimenti, se la selezione contiene più file, o uno singolo, con una dimensione superiore a 200Kib, verrà richiesto all'utente se intende comprimere i file in un archivio ZIP, e inviare quest'ultimo.

Come molte altre caratteristiche di Thunar, il menu Invia a può essere facilmente esteso, inserendo nuove destinazioni, dagli utenti e dagli sviluppatori di applicazioni avvalendosi dello standard desktop entry files. Questi file devono essere installati in una delle cartelle $XDG_DATA_DIRS/Thunar/sendto/ (consultare le XDG Base Directory Specification per maggiori dettagli sulla variabile $XDG_DATA_DIRS).

Il MimeType della destinazione .desktop specifica il tipo di file per i quali questa azione è disponibile nel menu Send To. Per esempio, si supponga di voler aggiungere una voce per uno strumento di caricamento di un'immagine su Flickr e che questa voce debba essere visualizzata solamente se la selezione contiene dei file in formato JPEG (gli altri formati non sono supportati da Flickr) e quindi si dovrebbe aggiungere una riga MimeType=image/jpeg;. Se non si specifica alcun MimeType la voce verrà visualizzata per qualsiasi tipo di file.

Qui sotto è mostrato un esempio completo utilizzando l'applicazione postr:

# postr.desktop - Integrazione di postr nel
#                 menu "Invia a".
[Desktop Entry]
Type=Application
Version=1.0
Encoding=UTF-8
TryExec=postr
Exec=postr %F
Icon=postr
Name=Flickr
MimeType=image/jpeg;

Se si installa questo in ~/.local/share/Thunar/sendto/ (la cartella va creata se non esiste), il menu Invia a per i file JPEG visualizzerà la nuova voce Flickr, che può essere utilizzata per inviare le proprie immagini JPEG al sito Flickr.

La Wiki del progetto Thunar contiene ulteriori esempi di destinazioni utili per il menu Invia a. Chiunque può aggiungere alla Wiki dei nuovi esempi.

Creatori di miniature

Thunar si avvale di piccoli programmi per creare le miniature di alcuni tipi di file che saranno poi utilizzate per visualizzare l'anteprima del contenuto del file stesso. Questi piccoli strumenti vengono chiamati "thumbnailer". Thunar è distribuito con dei visualizzatori di miniature per le immagini e per i file degli stili di testo, e si avvale automaticamente dei thumbnailer installati per GNOME se è stato installato con il supporto per gconf. L'utente può comunque estendere dinamicamente le funzionalità di base con dei visualizzatori di miniature per dei tipi di file aggiuntivi.

Se si intende programmare un thumbnailer, sarà necessario iniziare con un programma che accetta almeno due parametri da linea di comando: il file di ingresso, che è il tipo di file che si desidera supportare, e il file di output, che è un file PNG in linea con le specifiche del formato dettate dallo standard di gestione delle miniature. In aggiunta il programma dovrebbe anche accettare la dimensione desiderata della miniatura, caratteristica opzionale ma caldamente consigliata. Se si scrive il file di output con una dimensione arbitraria dell'immagine, Thunar la scalerà successivamente alla dimensione desiderata, il che può produrre risultati peggiori rispetto alla generazione diretta della miniatura alla dimensione desiderata.

Una volta terminata la realizzazione del generatore di miniature, è necessario registrarlo in modo che Thunar possa localizzarlo e utilizzarlo. Tutto ciò che è necessario fare è installare un file di descrizione per il thumbnailer (un file .desktop) in uno dei percorsi $XDG_DATA_DIRS/thumbnailers/. Per esempio, se si desidera registrare un thumbnailer solo per il proprio account utente, è possibile installare il file nella cartella ~/.local/share/thumbnailers/. Il file .desktop per i creatori di miniature ha il seguente formato.

Formato del file di descrizione del creatore di miniature

I file di descrizione dei thumbnailer utilizzano il Desktop Entry Format con uno speciale Tipo di X-Thumbnailer e un particolare campo X-Thumbnailer-Exec con nuovi codici di campo. Fondamentalmente, un file di descrizione per un thumbnailer ha il seguente formato.

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=X-Thumbnailer
Name=Il proprio thumbnailer
MimeType=i-propri-/mime-type-supportati;
X-Thumbnailer-Exec=il-proprio-thumbnailer %i %o %s

I campi Version e Encoding sono imposti dalle Desktop Entry Specification; utilizzare i valori mostrati nell'esempio precedente. Il campo Type deve contenere il valore speciale X-Thumbnailer, altrimenti il thumbnailer non verrà riconosciuto. Il valore Name descrive il proprio thumbnailer.

Il campo X-Thumbnailer-Exec contiene il comando per eseguire il proprio thumbnailer e supporta certi codici di campo che verranno sostituiti all'esecuzione del creatore di miniature. I codici di campo riconosciuti sono i seguenti:

%i
Il percorso locale al file di cui creare una miniatura. Può essere un percorso relativo alla directory da cui il creatore di miniature è stato invocato o un percorso assoluto.
%o
Il percorso locale al file in cui archiviare le miniature generate. Il file deve essere scritto in formato PNG valido in accordo allo standard sulle miniature (vedere più sopra). Il percorso non deve terminare con .png, che assume importanza se si invocano alcuni strumenti esterni.
%s
La dimensione desiderata in pixel delle anteprime. Questo parametro è facoltativo.
%u
Simile a %i, ma sostituito con l'URI del file, in luogo del percorso. Questa opzione è stata aggiunta per aumentare la compatibilità con l'ambiente GNOME.
%%
Verrà sostituito con un singolo %.

È necessario includere almeno %o e %i oppure %u, altrimenti il proprio creatore di miniature risulterà inutilizzabile.

Il MimeType elenca i tipi MIME, separati da punti e virgola, per i quali il proprio creatore di miniature è in grado di generare delle anteprime.

Esempio di creatore di miniature per file EPS

Questo esempio mostra come scrivere e installare un nuovo creatore di miniature, per i file in formato .eps, che utilizza il comando convert fornito da pacchetto ImageMagick. Si ìinizierà con un semplice script che invoca il comando convert per generare una miniatura della dimensione richiesta..

#!/bin/sh
#
# eps-thumbnailer - Esempio di script per la creazione di miniature di file in formato EPS.
#
# Utilizzo: esp-thumbnailer eps-file png-dimensione file
#

# parametri della linea di comando
ifile=$1
ofile=$2
size=$3

# utilizzo del comando convert (ImageMagick)
exec convert "eps:$ifile" -scale "$sizex$size" "png:$ofile"

Salvare questo script in un file eps-thumbnailer, assicurarsi che sia eseguibile e installarlo in /usr/local/bin.

$ chmod +x eps-thumbnailer
$ sudo install eps-thumbnailer /usr/local/bin/eps-thumbnailer

In seguito, è necessario creare il file di descrizione del thumbnailer eps-thumbnailer.desktop con questo contenuto:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=X-Thumbnailer
Name=EPS Thumbnailer
TryExec=convert
MimeType=image/x-eps;
X-Thumbnailer-Exec=/usr/local/bin/eps-thumbnailer %i %o %s

Questo file devo essere installato in /usr/local/share/thumbnailers (creare la cartella se non esiste).

$ sudo install -d /usr/local/share/thumbnailers
$ sudo install eps-thumbnailer.desktop /usr/local/share/thumbnailers/eps-thumbnailer.desktop

Il file eps-thumbnailer.desktop utilizza la chiave speciale TryExec che, se specificata, richiama un comando che deve essere presente nel sistema per permettere l'utilizzo del creatore di miniature. Nell'esempio proposto, lo script è inutilizzabile se l'utilità convert non è presente.

L'ultimo passo consiste nella rigenerazione dela cache del creatore di miniature, in modo che Thunar possa utilizzarlo. La cache del creatore di miniature si trova in $XDG_CACHE_HOME/Thunar/thumbnailers.cache (a meno che non sia stata impostata diversamente dall'utente o dall'amministratore del sistema, la variabile $XDG_CACHE_HOME punta la cartella ~/.cache/). La cache del creatore di miniature è rigenerata periodicamente da Thunar, ma è possibbile forzare questa operazione invocando l'utilità thunar-vfs-update-thumbnailers-cache-1 fornita con Thunar. Questa è generalmente installata nella sotto cartella libexec del proprio prefisso d'installazione (sbin nei sistemi Debian/Ubuntu). Quindi, per esempio, se Thunar è installato in /usr, invocare l'utilità nel modo seguente:

$ /usr/libexec/thunar-vfs-update-thumbnailers-cache-1

Assicurarsi però di eseguire il programma dal proprio account utente, non da quello del super utente, dato che la cache del thumbnailer risiede nella propria cartella «casa», invece che in una posizione accessibile da tutto il sistema.

A questo punto, se Thunar è compilato con il supporto per la monitorizzazione dell'alterazione dei file (utilizzando i servizi FAM o Gamin), riconoscerà automaticamente la cache del nuovo creatore di miniature e sarà in grado di generare le miniature utilizzando il creatore personalizzato. Diversamente, sarà necessario riavviare completamente Thunar per rendere effettivi i cambiamenti, utilizzando:

$ Thunar -q

per terminare ogni istanza in esecuzione, e in seguito riavviarlo tramite il proprio avviatore.

Eliminare delle miniature

Le miniature create vengono salvate nella cartella ~/.thumbnails/ nel rispetto dello standard di gestione delle miniature. Se si intende provare un nuovo thumbnailer, può essere utile cancellare tutte le miniature utilizzando il comando

$ rm -rf ~/.thumbnails/

che permette inoltre di liberare un po' di spazio nella propria cartella casa. Dato che tutte le informazioni salvate all'interno di questa cartella sono state automaticamente generate da dei file presenti nel proprio file system, non si corre il rischio di perdere dei dati sensibili.