Specyfikacja XDG mówi o XDG_CONFIG_HOME
zmiennej, ale nie określa, gdzie należy ją zdefiniować. Czy powinniśmy to zdefiniować /etc/X11/Xsession
, czy też plik konfiguracyjny menedżera okien musi to zdefiniować?
Próbowałem zadeklarować to w / etc / environment jako
XDG_CONFIG_HOME="$HOME/.config"
ale to nie zadziałało, ponieważ wydaje się, że $ HOME nie jest zdefiniowane, kiedy /etc/environment
jest analizowane.
Jedyną dokumentacją, którą mogłem znaleźć w Internecie, była Gentoo, w której została zadeklarowana /etc/env.d/90xsession
Używam Ubuntu. Jakie byłoby ogólne rozwiązanie dla dystrybucji opartych na Debianie?
/etc/profile
Arch i jest tylko raz wspomniany/etc/profile.d/locale.sh
.Nigdzie nie musisz go definiować, chyba że chcesz zmienić wartość domyślną.
Specyfikacja katalogu podstawowego XDG wyraźnie mówi:
Dlatego nadmiarowe jest zdefiniowanie go do wartości domyślnej. Wszystkie zgodne aplikacje będą już korzystać
$HOME/.config
Ale jeśli nie chcesz zmienić domyślną w systemie Debian / Ubuntu, najlepszym miejscem jest:
/etc/profile
~/.profile
źródło
XDG_CONFIG_HOME
i tak niewiele to zmieni, jeśli w ogóle.XDG_CONFIG_HOME
bez przestrzegania specyfikacji, zakładając, że jest to standardowa funkcja Linuksa, a nawet Uniksa, a nie część specyfikacji innej firmy.Przekonałem się, że najlepiej jest ustawić zmienne środowiskowe za pomocą PAM. W przypadku nowoczesnych dystrybucji Linuksa oznacza to
/etc/environment
lub$HOME/.pam_environment
(patrzman pam_env
). Możesz także ustawić je/etc/security/pam_env.conf
za pomocą specjalnej składni. Oto jak ustawiam moje zmienne XDG/etc/security/pam_env.conf
.Wcześniej ustawiałem te zmienne w
/etc/profile.d/custom.sh
. Jednak niektóre aplikacje uruchamiają się przed odczytem tego pliku. Przejście na metodę PAM rozwiązało problem wielu aplikacji, które zachowywały się w ten sposób.źródło
export LESSHISTFILE="$XDG_CACHE_HOME"/less/history
gdzieless
nie rozpoznaje się specyfikacji, a moja dystrybucja nie określa jeszcze wartości domyślnych.XDG_CACHE_HOME
jest zdefiniowany i niepusty. Zamiast tego powinno być:export LESSHISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}"/less/history
Dla użytkowników Zsh, zdefiniuj to w swoim
.zshenv
plikuźródło