XDG Base Directory Specification
2025-01-04
De la même manière que la racine du système d'exploitation suit une certaine logique d'organisation[1], les fichiers d'un profil peuvent également suivre certaines conventions pour faciliter l'usage des appareils disposant d'un environnement de bureau. La plus connue étant la spécification édictée par le groupe FreeDesktop (également appelé Fd.o ou XDG pour les nostalgiques) en construction depuis 2003[2].
Pour un profil donné, la spécification définit cinq catégories que sont :
- XDG_DATA_HOME (`~/.local/share` par défaut) contient tous les fichiers applicatifs ;
- XDG_CONFIG_HOME (`~/.config`) contient la configuration spécifique au profil ;
- XDG_STATE_HOME (`~/.local/state`) contient des variables d'état ;
- XDG_CACHE_HOME (`~/.cache`) contient le cache des applications ;
- XDG_RUNTIME_DIR contient l'environnement d'exécution et est entièrement géré par le système.
L'objectif principal de cette proposition est l'interopérabilité des applications sous Linux. Mais parmi les corollaires[3] se trouve celle d'une simplification des processus de sauvegarde[4] où il n'y aurait plus qu'un répertoire essentiel, et un accessoire[5].
N'étant qu'une convention, il est tout à fait possible d'en s'en affranchir. C'est le cas pour la suite d'applications Mozilla dont j'utilise le navigateur[6] malgré un ticket ouvert à ce sujet en 2004[7].
Application
Au moment où j'écris, la racine de mon profil contient 92 éléments. Bien plus que ce qui est préconisé par la spécification. Après deux ans d'usage intensif, il m'est malheureusement un peu tard pour tout retravailler, ce sera au moment d'une mise à jour système que je prendrai le temps de repartir sur de bonnes bases.