Oui, il existe une norme : ces normes sont spécifiées par freedesktop.org et font partie de la norme Spécifications du répertoire de base XDG .
config-spec ne présente que les exigences de base, mais les détails se trouvent dans les spécifications du répertoire de base. Les ~/.config
y ~/.cache
sont les répertoires par défaut, sauf configuration contraire :
Il existe un ensemble de répertoires de base, classés par ordre de préférence, dans lesquels les fichiers de configuration doivent être recherchés. Cet ensemble de répertoires est défini par la variable d'environnement $XDG_CONFIG_DIRS.
Il existe un répertoire de base unique dans lequel les données non essentielles (mises en cache) propres à l'utilisateur doivent être écrites. Ce répertoire est défini par la variable d'environnement $XDG_CACHE_HOME.
...
$XDG_CONFIG_HOME définit le répertoire de base dans lequel les fichiers de configuration spécifiques à l'utilisateur doivent être stockés. Si $XDG_CONFIG_HOME n'est pas défini ou est vide, le répertoire par défaut est $HOME/.config.
...
$XDG_CACHE_HOME définit le répertoire de base dans lequel les fichiers de données non essentiels spécifiques à l'utilisateur doivent être stockés. Si $XDG_CACHE_HOME n'est pas défini ou est vide, le répertoire par défaut est $HOME/.cache.
Vous remarquerez que ces spécifications indiquent principalement où les données doivent être stockées, quelles variables d'environnement doivent être utilisées et de quelle manière (neutre pour le bureau, efficace, etc.), mais la plupart des bureaux sont libres de mettre en œuvre la partie "comment" de ces spécifications. Les bureaux basés sur GNOME utiliseront gsettings
alors que les utilisateurs de KDE peuvent utiliser la même chose via kwriteconfig
mais ils s'appuieront tous deux sur ~/.config
dans le processus
Points clés de la question
Comment puis-je savoir qu'il s'agit d'un dossier officiellement pris en charge et non d'un emplacement au goût du jour pour un cache/configuration par utilisateur ?
Ces répertoires apparaissent dans la documentation officielle et Norme de hiérarchie des systèmes de fichiers les mentionne également. Il s'agit d'une documentation officielle, les dossiers sont donc officiellement pris en charge.
S'agit-il d'une pratique standard non déclarée que je devrais accepter ?
Cela dépend de l'application que vous créez. L'application est-elle censée être configurable par utilisateur ou fonctionner de manière cohérente dans l'ensemble du système ? FHS nous dit que pour les choses à l'échelle du système, nous devrions utiliser /etc
o /usr/local
Mais les répertoires XDG doivent être utilisés pour les configurations spécifiques à l'utilisateur. ~/.cache
y ~/.config
. Bien entendu, si l'application ne dépend pas de paramètres spécifiques à l'utilisateur, /var/cache peut être utilisé à la place du répertoire par utilisateur. Bien sûr, vous pouvez toujours avoir un seul répertoire ~/.appname.conf
un fichier ~/.appname.db
o ~/.appname/
pour y conserver les configurations et le cache, mais ce ne serait pas standard ; pas "mauvais" - juste non standard.
Voir aussi