Спецификация XDG говорит о XDG_CONFIG_HOME
переменной, но не указывает, где она должна быть определена. Должны ли мы определить его в /etc/X11/Xsession
файле конфигурации или в конфигурационном файле менеджера окон, который должен это определить?
Я попытался объявить его в / etc / environment как
XDG_CONFIG_HOME="$HOME/.config"
но это не сработало, так как кажется, что $ HOME не определяется при /etc/environment
разборе.
Единственная документация, которую я мог найти в Интернете, была для Gentoo, где она была объявлена в /etc/env.d/90xsession
Я использую Ubuntu. Каково будет общее решение для дистрибутивов на основе Debian?
/etc/profile
Arch, и упоминается только один раз/etc/profile.d/locale.sh
.Вам не нужно нигде определять его, если вы не хотите изменить значение по умолчанию.
Спецификация XDG Base Directory четко гласит:
Поэтому избыточно определять его по умолчанию. Все совместимые приложения уже будут использовать
$HOME/.config
Но, если вы действительно хотите изменить значение по умолчанию в системе Debian / Ubuntu, лучшее место:
/etc/profile
~/.profile
источник
XDG_CONFIG_HOME
, в любом случае, мало что изменит.XDG_CONFIG_HOME
без соблюдения спецификации, при условии, что это стандартная функция Linux или даже Unix, а не часть сторонней спецификации.Я обнаружил, что лучше всего устанавливать переменные окружения через PAM. Для современных Linux distos это означает
/etc/environment
или$HOME/.pam_environment
(см.man pam_env
). Вы также можете установить их,/etc/security/pam_env.conf
используя специальный синтаксис. Вот как я устанавливаю свои переменные XDG в/etc/security/pam_env.conf
.Ранее я бы установил эти переменные в
/etc/profile.d/custom.sh
. Однако некоторые приложения запускаются до того, как этот файл будет прочитан. Переход на метод PAM решил проблему для нескольких приложений, которые вели себя таким образом.источник
export LESSHISTFILE="$XDG_CACHE_HOME"/less/history
где-тоless
не было известно о спецификации, и настройки по умолчанию еще не установлены моим дистрибутивом.XDG_CACHE_HOME
определено и не пусто. Вместо этого должно быть:export LESSHISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}"/less/history
Для пользователей Zsh определите это в своем
.zshenv
файлеисточник