J'ai remarqué que certaines applications mettent leurs fichiers de configuration à ~/.config/appname
tandis que d'autres utilisent ~/.appname
(la manière classique, Afaik) pour cela. Quel est le sens de cette distinction et de ce qui pourrait être préférable à considérer pour une application de mienne?
Mise à jour: on dirait que mon (xubuntu 11.10 par défaut) $ xdg_config_home est défini sur ~/
et la plupart des applications de mon système (comme Mozilla Firefox, Adobe Flash Player, Midnight Commander, Opera, Vin, etc.) sont conformes à cela. Mais il y a encore de nombreuses applications (comme compiz, Deadbeef, VLC, Créateur Qt, Google Chrome, XFCE, etc.) en utilisant ~/.config/
plutôt. Une autre chose suspecte est que les répertoires de ~/.config/
ne sont pas eux-mêmes cachés (pas de point dans leurs noms) - ne sont pas des noms de configuration de l'application que vous devriez avoir des noms constants sans dépendre de l'emplacement ($ xdg_config_home)?
Un complément à la grande réponse de Jasonwryan, en adressant à certaines de vos problèmes:
Ton $XDG_CONFIG_HOME
est pas SET sur ~/
. Il n'est tout simplement pas défini. Donc Applications QUI Suivez la spécification XDG Utilisez la valeur par défaut ~/.config
Les DIRS à l'intérieur /.config
ne sont pas cachés parce qu'ils ne doivent pas. Tout le point d'utiliser un ~/.config
dir est à non encombré l'utilisateur $HOME
. Comme ils sont déjà dans un dir distinct et dissimulé, il n'est pas nécessaire d'être caché à l'intérieur.
Logiciel qui ne suit pas la spécification (malheureusement toujours la grande majorité) utilise un dir masqué pour leurs paramètres (comme ~/.myapp
) En tant que tentative Ne pas encombrer l'utilisateur $HOME
. Il (un peu) fonctionne, mais c'est toujours une mauvaise approche lorsque, par exemple, vous essayez de sauvegarder vos paramètres et vos "grandes données" (comme des images, des vidéos, de la musique) séparément. Avoir tous les paramètres en une seule place, sans mélanger les données de l'utilisateur, est une approche bien meilleure
Comme pour "ayant des noms constants quel que soit le lieu de là XDG_CONFIG_HOME
pointe sur ", ils font déjà: c'est appname
sans le point de dirigeant. N'oubliez pas: Ceux qui utilisent $HOME/.appname
sont ceux qui Ignores Spécification XDG. Ils utilisent un chemin codé.
Quant à vos applications, Veuillez utiliser la norme XDG! Je vous prie, et vos utilisateurs diront merci de ne pas avoir encombré de leur maison $.
Parce que ces applications qui placent des fichiers de configuration dans $HOME
ignorez-les spécification de répertoire de base xdg , notamment:
Il existe un répertoire de base unique par rapport aux fichiers de configuration spécifiques à l'utilisateur. Ce répertoire est défini par la variable d'environnement $ xdg_config_home ...
[.____] si xdg_config_home n'est pas réglé ou vide, une valeur par défaut égale à $ home/.config doit être utilisée.