21 giugno 2007

Gnacchisnà

Continua la saga di post su xdg-user-dirs. Se la Disney Italia ha chiamato saga wizardsofmikeys non vedo perché non possa farlo io con i post.

Io però ho un buon motivo per continuare: ora anche il buon GNOME Panel supporta xdg-user-dirs.

Così come un buon libro, anche xdg-user-dirs ha diversi punti di vista, diversi piani di lettura. Ovviamente è un software, quindi i piani sono solo 3: sviluppatori, amministratori, utenti.

La parte sviluppatori spero sia stata abbastanza chiara nella parte precedente. Se usate le glib in via di sviluppo, le future 2.14.x, una funzione vi basta e vi avanza, se no dovete fare copia e incolla del codice da xdg-user-dirs stesso (che poi è quello che c'è in Fedora 7).

Per amministratori

Se siete amministratori, o vendor, avete due file con cui modificare il comportamento: /etc/xdg/user-dirs.conf e /etc/xdg/user-dirs.default.

Il primo definisce semplicemente se usare xdg-user-dirs e quale encoding usare per il nome delle directory (come predefiniti, rispettivamente YES e UTF-8).

Il secondo definisce quali directory e con quale struttura creare le cartelle predefinite per tutti gli utenti. Per struttura intendo che è possibile sia mettere tutte le varie cartelle in $HOME, sia fare qualcosa in stile Windows tipo:
MUSIC=Documents/Music
PICTURES=Documents/Pictures
VIDEOS=Documents/Videos
[...]
La sintassi del file è abbastanza semplice; le chiavi riconosciute sono, al momento APPLICATIONS, DESKTOP, DOCUMENTS, DOWNLOAD, MOVIES, MUSIC, PHOTOS, PICTURES, PROJECTS, PUBLIC, SHARE, TEMPLATES, VIDEOS; i valori delle chiavi sono i sono percorsi delle cartelle relativi alla directory $HOME e per garantine la localizzaione devono essere gli stessi delle chiavi, sia con prima lettera maiuscola (p.e. "Music") che minuscola (p.e. "music").

Questo vuol dire, ad esempio, che volendo posso definire un qualcosa tipo:
MUSIC=Data/Music
per il quale solo il nome della directory Music potrà essere localizzato, non quello della directory Data, in quanto quest'ultima risulta "sconosciuta". Ovviamente non ho ancora provato se la cosa funziona veramente e come, specie se aggiorno la configurazione di sistema dopo aver creato le directory nella home dell'utente.

Per l'utente

Era ovvio e prevedibile che un sistema del genere fosse progettato per essere configurato anche dall'utente. anche qui abbiamo due file per la configurazione entrambi posti in $HOME/.config (ossia nella directory speciale $XDG_CONFIG_HOME).

Il primo dei due file user-dirs.locale memorizza semplicemente il codice dell'attuale localizzazione delle directory.

Il secondo file, user-dirs.dirs fotografa lo stato attuale. La sintassi è lievemente differente:
XDG_DESKTOP_DIR="$HOME/Scrivania"
XDG_DOWNLOAD_DIR="$HOME/Scaricati"
XDG_TEMPLATES_DIR="$HOME/Modelli"
...
A sinistra del segno di uguaglianza la variabile ha un prefisso e un suffisso, a desta del segno vi è il nome, completo di percorso, di una directory (che deve esistere) a cui la variabile punta.

Le modifiche che si possono apportare a questo file sono le stesse di prima: è possibile quindi aggiungere, nel limite dei valori riconosciuti, dei percorsi oppure modificarli, con la differenza che la directory che si sta aggiungendo o modificando deve già esistere. Al momento non esistono strumenti grafici per la modifica della configurazione.

Le modifiche applicate dall'utente alla struttura sono conservate quando, al login, vengono aggiornati i nomi nel caso di cambio di lingua scelta.

Per i criticoni

Appunto mentale: scrivere qui qualcosa di sarcastico al punto giusto per controbattere tutte le stupide (ma senza dire che sono stupide, definirle magari superficiali) critiche tipo "tanto difficile crearsi 3 o 4 cartelle?" oppure "un’obbligazione che non mi è mai piaciuta, e che non uso" oppure ancora "se faccio una foto alla mia carta d’identità dove la metto? $immagini o $documenti?".

2 commenti:

Anonimo ha detto...

veramente qualcuno ha chiesto quella cosa di $documenti o $foto?!

davide

Anonimo ha detto...

sara' qualcuno che non ha ancora letto il commento sarcastico promesso a fine post..

baaaaaah