Onde a variável XDG_CONFIG_HOME deve ser definida?

34

A especificação XDG fala sobre a variável XDG_CONFIG_HOME , mas não especifica onde ela deve ser definida. Devemos defini-lo em /etc/X11/Xsession , ou é o arquivo de configuração do gerenciador de janelas que precisa definir isso?

Eu tentei declarar em / etc / environment como

XDG_CONFIG_HOME="$HOME/.config"

mas isso não funcionou, já que parece que $ HOME não está definido quando /etc/environment é analisado.

A única documentação que encontrei on-line foi para o Gentoo, onde foi declarada em /etc/env.d/90xsession

Estou usando o Ubuntu. Qual seria a solução geral para distribuições baseadas no Debian?

    
por NOLFXceptMe 08.12.2011 / 06:26

3 respostas

20

No Arch Linux, isso é definido por /etc/profile , usando um script /etc/profile.d .

Para o Debian / Ubuntu, se houver um /etc/profile.d - crie um script similar dentro dele; se tal diretório não existir - edite /etc/profile itsef.

export XDG_CONFIG_HOME="$HOME/.config"

O arquivo /etc/environment é analisado por pam_env , que o considera simples atribuições name = value. No entanto, ele também tem /etc/security/pam_env.conf , que suporta expansão de variáveis e pode ser usado para essa finalidade.

    
por 08.12.2011 / 11:43
42

Você não precisa para defini-lo em qualquer lugar, a menos que queira alterar o padrão.

A especificação do diretório base do XDG diz claramente:

If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.

Portanto, é redundante defini-lo como o valor padrão. Todos os aplicativos compatíveis já usarão $HOME/.config

Mas, se você fizer quiser alterar o padrão em um sistema Debian / Ubuntu, o melhor lugar é:

  • Para uma alteração em todo o sistema, afetando todos os usuários: /etc/profile
  • Apenas para seu usuário: ~/.profile
por 17.05.2012 / 18:05
2

Descobri que é melhor definir variáveis de ambiente por meio do PAM. Para o Linux moderno, isso significa /etc/environment ou $HOME/.pam_environment (consulte man pam_env ). Você também pode defini-los em /etc/security/pam_env.conf usando uma sintaxe especial. Aqui está como eu configurei minhas variáveis XDG em /etc/security/pam_env.conf .

XDG_CACHE_HOME  DEFAULT=@{HOME}/.xdg/cache
XDG_CONFIG_HOME DEFAULT=@{HOME}/.xdg/config
XDG_DATA_HOME   DEFAULT=@{HOME}/.xdg/data
XDG_STATE_HOME  DEFAULT=@{HOME}/.xdg/state

Anteriormente, eu definiria essas variáveis em /etc/profile.d/custom.sh . No entanto, alguns aplicativos iniciam antes que o arquivo seja lido. Mudar para o método PAM resolveu o problema de vários aplicativos que se comportavam dessa maneira.

    
por 03.12.2014 / 16:06

Tags