• [^] # Re: Emplacement fichiers de config

    Posté par (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, ~/.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) :

    /tmp/
    /usr/share/
    /var/cache/
    /etc/xdg/
    /etc/xdg/config/
    /etc/xdg/config/name-your-application-here/
    /etc/xdg/applications/
    /etc/xdg/autostart/
    /etc/xdg/icons/
    /etc/xdg/config/
    /etc/xdg/config/name-your-application-here/
    /etc/xdg/menus/
    ~/.local/tmp/
    ~/.local/trash/
    ~/.local/cache/
    ~/.local/cache/name-your-application-here/
    ~/.local/share/
    ~/.local/share/name-your-application-here/
    ~/.local/xdg/config/
    ~/.local/xdg/config/name-your-application-here/
    ~/.local/xdg/menus/
    ~/.local/xdg/applications/
    ~/.local/xdg/autostart/
    ~/.local/xdg/icons/
    

    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