Por que alguns aplicativos usam ~ / .config / appname para seus dados de configuração enquanto outros usam ~ / .appname?

34

Tenho notado que alguns aplicativos colocam seus arquivos de configuração em ~/.config/appname , enquanto outros usam ~/.appname (o modo clássico, AFAIK) para isso. Qual é o sentido desta distinção e o que poderia ser melhor considerar para uma aplicação minha?

ATUALIZAÇÃO: Parece que meu (XUbuntu 11.10 default) $ XDG_CONFIG_HOME está definido como ~/ e a maioria dos aplicativos no meu sistema (como o Mozilla Firefox, o Adobe Flash Player, o Midnight Commander, o Opera, o Wine, etc.) atendem para isso. Mas ainda há muitas aplicações (como Compiz, Deadbeef, VLC, Criador de Qt, Google Chrome, XFCE, etc.) usando ~/.config/ . Outra coisa suspeita é que os diretórios em ~/.config/ não estão ocultos (nenhum ponto em seus nomes) - os diretórios de configuração do aplicativo não devem ter nomes próprios constantes sem depender da localização (valor $ XDG_CONFIG_HOME)?

    
por Ivan 11.11.2011 / 02:38

3 respostas

40

Um complemento à excelente resposta de jasonwryan, abordando alguns dos seus problemas:

  • Seu $XDG_CONFIG_HOME é não definido como ~/ . Simplesmente não está definido. Portanto, os aplicativos que seguem a especificação XDG usam o padrão ~/.config

  • As pastas dentro de /.config não estão ocultas porque não precisam. O objetivo de usar um ~/.config dir é desorganizar o usuário $HOME . Como eles já estão em um diretório oculto e separado, não há necessidade de ficar escondido lá dentro.

  • O software que não segue a especificação (infelizmente ainda a grande maioria) usa um diretório oculto para suas configurações (como ~/.myapp ) como uma tentativa de não sobrecarregar o usuário $HOME . Funciona, mas ainda é uma má abordagem quando, por exemplo, você tenta fazer backup de suas configurações e de seus "big data" (como Imagens, Vídeos, Música) separadamente. Ter todas as configurações em um único local, sem misturar com os dados do usuário, é uma abordagem muito melhor

  • Quanto a "ter nomes constantes independentemente de onde XDG_CONFIG_HOME aponta para" , eles já fazem: é appname sem o ponto inicial. Lembre-se: os que usam $HOME/.appname são os que ignoram XDG Spec. Eles usam um caminho codificado.

  • Quanto às suas aplicações, por favor use o padrão XDG ! Eu imploro, e seus usuários vão dizer obrigado por você não bagunçar mais a sua $ HOME.

por 17.05.2012 / 17:54
25

Como os aplicativos que colocam arquivos de configuração em $HOME estão ignorando a Especificação de diretório base do XDG , nomeadamente:

There is a single base directory relative to which user-specific configuration files should be written. This directory is defined by the environment variable $XDG_CONFIG_HOME...

If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.
    
por 11.11.2011 / 02:45
5

Uma resposta mais controversa é:

  • ~/.config é o padrão para o padrão XDG, que se aplica apenas aos aplicativos que aderem aos padrões FreeDesktop.org (também por meio do uso da variável $XDG_CONFIG_HOME ).
  • ~/.appname existia antes do padrão freedesktop
  • Nem todo mundo gosta do padrão freedesktop
  • "Cluttering" $HOME não é um problema, na minha opinião.
por 13.09.2016 / 10:12