Die XDG-Spezifikation XDG_CONFIG_HOME
bezieht sich auf die Variable, gibt jedoch nicht an, wo sie definiert werden soll. Sollten wir es in definieren /etc/X11/Xsession
, oder ist es die Konfigurationsdatei des Fenstermanagers, die dies definieren muss?
Ich habe versucht, es in / etc / environment als zu deklarieren
XDG_CONFIG_HOME="$HOME/.config"
aber das hat nicht funktioniert, da es scheint, dass $ HOME nicht definiert ist, wann /etc/environment
analysiert wird.
Die einzige Dokumentation, die ich online finden konnte, war für Gentoo, wo es deklariert wurde /etc/env.d/90xsession
Ich benutze Ubuntu. Was wäre die allgemeine Lösung für Debian-basierte Distributionen?
/etc/profile
mehr in Arch und wird nur noch einmal erwähnt/etc/profile.d/locale.sh
.Sie müssen nicht brauchen , es überall zu definieren, wenn Sie die Standardeinstellung ändern möchten.
Die XDG-Basisverzeichnisspezifikation sagt eindeutig:
Es ist also überflüssig, ihn auf den Standardwert zu setzen. Alle kompatiblen Anwendungen werden bereits verwendet
$HOME/.config
Wenn Sie jedoch die Standardeinstellung in einem Debian / Ubuntu-System ändern möchten, ist der beste Ort:
/etc/profile
~/.profile
quelle
XDG_CONFIG_HOME
wird es sowieso kaum einen Unterschied machen, wenn überhaupt.XDG_CONFIG_HOME
ohne die Spezifikation zu befolgen, vorausgesetzt, es handelt sich um eine Standard-Linux- oder sogar Unix-Funktion und nicht um einen Teil einer Spezifikation eines Drittanbieters.Ich habe festgestellt, dass es am besten funktioniert, Umgebungsvariablen über PAM festzulegen. Für moderne Linux-Distos bedeutet dies
/etc/environment
oder$HOME/.pam_environment
(sieheman pam_env
). Sie können sie auch/etc/security/pam_env.conf
mithilfe einer speziellen Syntax festlegen . Hier ist, wie ich meine XDG-Variablen einstelle/etc/security/pam_env.conf
.Bisher habe ich diese Variablen eingestellt
/etc/profile.d/custom.sh
. Einige Anwendungen starten jedoch, bevor diese Datei gelesen wird. Der Wechsel zur PAM-Methode behebt das Problem bei mehreren Anwendungen, die sich auf diese Weise verhalten haben.quelle
export LESSHISTFILE="$XDG_CACHE_HOME"/less/history
woless
die Spezifikation nicht bekannt ist und die Standardeinstellungen noch nicht von meiner Distribution festgelegt wurden.XDG_CACHE_HOME
es definiert und nicht leer ist. Es sollte stattdessen sein:export LESSHISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}"/less/history
Definieren Sie es für Zsh-Benutzer in Ihrer
.zshenv
Dateiquelle