Personnellement je défend à fond la spécification XDG_MACHIN pour les données/config/cache personnels, mais pour une seule raison: il faut un standard et je ne vais pas en inventer un second qui n’en serait plus un.
Le standard XDG_MACHIN a d’énormes défauts. Il ambitionne de faire le ménage dans tous les ~/.quelquechose qui polluent ${HOME}, et la première chose qu’il fait c’est de pondre ~/.cache, ~/.config, ~/.local et peut-être d’autres, déjà, XDG_MACHIN a échoué pour moi.
Autre défaut, c’est de reproduire d’un coté dans ~/.local une surcharge de /usr, comme /usr/share/ et ~/.local/share/, et d’un autre coté, de ne pas aller jusqu’au bout pour la configuration ou le cache
il y a /usr/share/applications et ~/.local/share/applications
il y a /usr/share/icons et ~/.local/share/icons
Et puis il y a /usr/share/nautilus et ~/.local/share/nautilus, /usr/share/totem et ~/.local/share/totem, etc.
Cette partie-là est super bien pensée, on a /usr pour les trucs installés par la distro, /usr/local pour les trucs installés à la mano mais pour tout le système, et ~/.local pour les trucs uniques à l’utilisateur. Et ça marche super bien, par exemple il m’est arrivé parfois d’installer des trucs que pour moi en faisant ./configure --prefix=~/.local et ça marche super bien !
Mais voilà, ils ont déplacé ~/.icons dans ~/.local/share/icons (très intelligent), pour aussitôt créer un ~/.cache, (n’importe quoi) !
Au final, je me demande à quoi sert ~/.local étant attendu qu’il ne contient que deux dossiers share, et temp.
D’ailleurs on peut se demander pourquoi officiellement ~/.local/share/applications, et officiellement ~/.local/share/Trash avec une majuscule.
Au final, on voit que le standard se prend les pieds dans le tapis rien que pour organiser les fichiers d’un autre standard, celui des « Desktop files » qui décrit les icônes et les menus :
Les fichiers .desktop qui décrivent le nom de l’application, le commentaire, les catégories, les mimetypes associés, la commande etc. sont enregistrés dans ~/.local/share/applications (la surcharge de /usr/share/applications, mais pour déclarer que cette application est à démarrer à l’ouverture de session, il faut surcharger ce fichier avec l’option qui va bien dans ~/.config/autostart (la surcharge de l’ancien /usr/share/autostart désormais /etc/xdg/autostart), mais pour surcharger /usr/share/desktop-directories qui décrit les catégories (.directory), il faut écrire dans ~/.local/share/desktop-directories/ et pour définir un menu (.menu) et surcharger /etc/xdg/menus, c’est dans ~/.local/menus.
Si vous avez bien suivi, pour cacher Lollypop du menu il faudrait surcharger /usr/share/applications/lollypop.desktop par ~/.local/share/applications/lollypop.desktop avec la valeur qui va bien, mais pour que Lollypop se charge à l’ouverture de session, il faudrait surcharger /usr/share/applications/lollypop.desktop par ~/.config/autostart/lollypop.desktop avec la valeur qui va bien. Ah oui, dernière chose, ~/.config/monappli est sensé surcharger /etc/xdg/monappli, si vous suivez toujours.
Il auraient pu faire ceci (je ne toucherais pas à /etc, /var et /usr pour des raisons historiques évidentes) :
Ou un truc similaire et propre (peu importe les noms). On pourrait même inventer un /xdg vu qu’on a bien inventé /run récemment, pour mettre fin aux /etc/machin/run...
Mais non, on a un standard branlant. Je le défends tout de même parce qu’au moins il est écrit et reconnu et qu’il vaut mieux un standard branlant que pas de standard du tout.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Emplacement fichiers de config
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Enemy Territory: Legacy, en résistance. Évalué à 8.
Personnellement je défend à fond la spécification XDG_MACHIN pour les données/config/cache personnels, mais pour une seule raison: il faut un standard et je ne vais pas en inventer un second qui n’en serait plus un.
Le standard XDG_MACHIN a d’énormes défauts. Il ambitionne de faire le ménage dans tous les ~/.quelquechose qui polluent
${HOME}, et la première chose qu’il fait c’est de pondre~/.cache,~/.config,~/.localet peut-être d’autres, déjà, XDG_MACHIN a échoué pour moi.Autre défaut, c’est de reproduire d’un coté dans
~/.localune surcharge de/usr, comme/usr/share/et~/.local/share/, et d’un autre coté, de ne pas aller jusqu’au bout pour la configuration ou le cacheil y a
/usr/share/applicationset~/.local/share/applicationsil y a
/usr/share/iconset~/.local/share/iconsEt puis il y a
/usr/share/nautiluset~/.local/share/nautilus,/usr/share/totemet~/.local/share/totem, etc.Cette partie-là est super bien pensée, on a
/usrpour les trucs installés par la distro,/usr/localpour les trucs installés à la mano mais pour tout le système, et~/.localpour les trucs uniques à l’utilisateur. Et ça marche super bien, par exemple il m’est arrivé parfois d’installer des trucs que pour moi en faisant./configure --prefix=~/.localet ça marche super bien !Mais voilà, ils ont déplacé
~/.iconsdans~/.local/share/icons(très intelligent), pour aussitôt créer un~/.cache, (n’importe quoi) !Au final, je me demande à quoi sert
~/.localétant attendu qu’il ne contient que deux dossiersshare, ettemp.D’ailleurs on peut se demander pourquoi officiellement
~/.local/share/applications, et officiellement~/.local/share/Trashavec une majuscule.Au final, on voit que le standard se prend les pieds dans le tapis rien que pour organiser les fichiers d’un autre standard, celui des « Desktop files » qui décrit les icônes et les menus :
Les fichiers
.desktopqui décrivent le nom de l’application, le commentaire, les catégories, les mimetypes associés, la commande etc. sont enregistrés dans~/.local/share/applications(la surcharge de/usr/share/applications, mais pour déclarer que cette application est à démarrer à l’ouverture de session, il faut surcharger ce fichier avec l’option qui va bien dans~/.config/autostart(la surcharge de l’ancien/usr/share/autostartdésormais/etc/xdg/autostart), mais pour surcharger/usr/share/desktop-directoriesqui décrit les catégories (.directory), il faut écrire dans~/.local/share/desktop-directories/et pour définir un menu (.menu) et surcharger/etc/xdg/menus, c’est dans~/.local/menus.Si vous avez bien suivi, pour cacher Lollypop du menu il faudrait surcharger
/usr/share/applications/lollypop.desktoppar~/.local/share/applications/lollypop.desktopavec la valeur qui va bien, mais pour que Lollypop se charge à l’ouverture de session, il faudrait surcharger/usr/share/applications/lollypop.desktoppar~/.config/autostart/lollypop.desktopavec la valeur qui va bien. Ah oui, dernière chose,~/.config/monappliest sensé surcharger/etc/xdg/monappli, si vous suivez toujours.Il auraient pu faire ceci (je ne toucherais pas à
/etc,/varet/usrpour des raisons historiques évidentes) :Ou un truc similaire et propre (peu importe les noms). On pourrait même inventer un
/xdgvu qu’on a bien inventé/runrécemment, pour mettre fin aux/etc/machin/run...Mais non, on a un standard branlant. Je le défends tout de même parce qu’au moins il est écrit et reconnu et qu’il vaut mieux un standard branlant que pas de standard du tout.
ce commentaire est sous licence cc by 4 et précédentes