In der Tat ist die aktuelle kurze Antwort auf die Frage, dass Sie nicht können, da eine Anwendung den Pfad fest codiert. Viele Anwendungen, die XDG-Verzeichnisse nicht speziell unterstützen, ermöglichen es jedoch, andere Verzeichnisse über Umgebungsvariablen festzulegen. Einige Zeit müssen Sie in der Lage sein, die systemweite Konfiguration zu ändern, z. B. mit der Shell. Meistens sollten Sie den Schritt jedoch als unprivilegierten Benutzer ausführen können.
Setzen Sie Ihre Muschel
# Setting bash to use $XDG_CONFIG_HOME/bash ### Moving existing files mkdir -p $XDG_CONFIG_HOME/bash for file in ~/.bash*;do dest=$/bash/$(basename $file|cut -d\. -f2) mv -i "$file" "$dest" # don't overwrite without permission done ### Sourcing and setting variables sudo sh -c 'cat >>/etc/profile.d/bash_in_xdg_config_home.sh <<CONF # Make bash follow the XDG_CONFIG_HOME convention if [ -d "\$XDG_CONFIG_HOME/bash" ] && [ "\$0" = "bash" ] then . "\$/bash/bash_profile" . "\$/bash/bashrc" HISTFILE="\$/bash/bash_history" fi CONF ' sudo sh -c 'cat >>/etc/bash.bash_logout <<CONF if [ -s "\$/bash/bash_logout" ] then . "\$/bash/bash_logout" fi CONF ' # Setting zsh ## System wide configuration (using xdg directories) sudo sh -c 'cat >>/etc/zshenv <<CONF if [[ -z "\$XDG_CONFIG_HOME" ]] then export XDG_CONFIG_HOME="\$HOME/.config" fi if [[ -d "\$XDG_CONFIG_HOME/zsh" ]] then export ZDOTDIR="\$XDG_CONFIG_HOME/zsh" fi CONF '
Wenn Sie mehrere Shell verwenden, z. B. zsh für interaktive Shell, aber eine andere für die Skripterstellung, möchten Sie möglicherweise eine $XDG_CONFIG_HOME/profile
Datei erstellen, die Sie in das entsprechende Shell-Initialisierungsskript einbetten.
Umgebungsvariablen setzen
# bazaar export BZRPATH=$XDG_CONFIG_HOME/bazaar export BZR_PLUGIN_PATH=$XDG_DATA_HOME/bazaar export BZR_HOME=$XDG_CACHE_HOME/bazaar # gnupg export GNUPGHOME=$/gnupg # ICEauthority export ICEAUTHORITY=$/ICEauthority # less export LESSHISTFILE="$/less/history" export LESSKEY="$/less/keys" # mplayer export MPLAYER_HOME=$XDG_CONFIG_HOME/mplayer # subversion export SUBVERSION_HOME=$XDG_CONFIG_HOME/subversion # vim export VIMINIT='let $MYVIMRC="$XDG_CONFIG_HOME/vim/vimrc" | source $MYVIMRC' export VIMDOTDIR="$XDG_CONFIG_HOME/vim"
Umgehen
SSH
SSH bietet eine Möglichkeit, die Client-Konfigurationsdatei zu ändern, aber soweit ich gefunden habe, nur über die Befehlszeile. Eine Lösung für das Aufrufen der Clients mit keiner Standardposition ist:
if [ -s "$/ssh/config" ] then SSH_CONFIG="-F $/ssh/config" fi if [ -s "$/ssh/id_dsa" ] then SSH_ID="-i $/ssh/id_dsa" fi alias ssh="ssh $SSH_CONFIG $SSH_ID " alias ssh-copy-id="ssh-copy-id $SSH_ID"
Und Ihr $/ssh/config
sollte so etwas enthalten:
Host * IdentityFile /home/user/.config/ssh/id_dsa
Was funktioniert noch nicht
Obwohl GNUPGHOME
es sich um eine dokumentierte Variable handelt, müssen Sie unter Fedora 21 beim Erstellen ~/.gnupg
einer neuen Sitzung ein neues Verzeichnis erstellen.
Obwohl ICEauthority
es sich um eine dokumentierte Variable handelt, erhalten Sie unter Fedora 21 beim Erstellen einer neuen Sitzung die Erstellung eines neuen Cookies.
Der Dotfile- ~/.swt
Inhalt sollte wahrscheinlich direkt in $
beiden lib
Verzeichnissen gespeichert werden . Es wurde keine Dokumentation gefunden, wie dies möglich ist.
Mozilla- Produkte unterstützen keine geeignete Umgebungsvariable. Mozilla-Produkte erlauben keine Verwendung eines benutzerdefinierten Benutzerkonfigurationsverzeichnisses und Unterstützung für die Freedesktop.org XDG-Basisverzeichnisspezifikation .
Andere nützliche Quellen
- Verschieben Sie Ihre Konfigurationsdateien nach $ XDG_CONFIG_HOME
- https://github.com/woegjiub/.config/blob/master/bash/xdg.sh
- http://www.reddit.com/r/linux/comments/2v8rv2/move_your_config_files_to_xdg_config_home/ (Verschieben Sie Ihre Konfigurationsdateien nach
$XDG_CONFIG_HOME
) - https://github.com/grawity/dotfiles/blob/master/.dotfiles.notes