XDG 基本目录

来自 Arch Linux 中文维基


此文章在#规范中总结了XDG基本目录规范,并在#支持中跟进软件支持情况。

规范[编辑 | 编辑源代码]

请阅读完整规范。本节将尝试分解其试图实现的核心内容。

只有XDG_RUNTIME_DIR是通过pam_systemd(8)默认设置的。根据规范,用户需要显式定义其他变量。更改它可能会导致PipeWire和Chromium上的屏幕共享出现问题

有关变量如何定义,请参见环境变量#全局

用户目录[编辑 | 编辑源代码]

  • XDG_CONFIG_HOME
    • 用于存放特定用户的配置(类似于/etc)。
    • 默认应为$HOME/.config
  • XDG_CACHE_HOME
    • 用于存放特定用户的非必要(缓存)数据(类似于/var/cache)。
    • 默认应为$HOME/.cache
  • XDG_DATA_HOME
    • 用于存放特定用户的数据文件(类似于/usr/share)。
    • 默认应为$HOME/.local/share
  • XDG_STATE_HOME
    • 用于存放特定用户的状态文件(类似于/var/lib)。
    • 默认应为$HOME/.local/state
  • XDG_RUNTIME_DIR
    • 用于存放特定用户的非必要数据文件,如Sockets、命名管道等。
    • 不需要提供默认值;如果没有设置也未提供等价物,应该发出警告。
    • 必须由用户拥有,访问模式为0700
    • 文件系统符合OS标准。
    • 必须位于本地文件系统上。
    • 可能会定期清理。
    • 每6小时修改一次或设置粘滞位以确保持久性。
    • 只能在用户登录期间存在。
    • 不应该存储大文件,因为它可能是作为tmpfs挂载的。
    • pam_systemd将其设置为/run/user/$UID

系统目录[编辑 | 编辑源代码]

  • XDG_DATA_DIRS
    • :分隔的目录列表(类似于PATH)。
    • 默认应为/usr/local/share:/usr/share
  • XDG_CONFIG_DIRS
    • :分隔的目录列表(类似于PATH)。
    • 默认应为/etc/xdg

支持[编辑 | 编辑源代码]

这篇文章的某些内容需要扩充。

原因: 目前的完整支持/部分支持/硬编码分割不够详细且可能具有误导性。表格可以合并成一个(增加程序如何与规范工作的字段)或使用不同名称的类别。 (在 Talk:XDG 基本目录#添加支持类别的描述 中讨论)

此节旨在记录日益增长的使用XDG基本目录规范的软件集,该规范于2003年引入。 这是为了通过列出常见的dotfiles及其支持状态来展示此规范的可行性。 对于那些目前不支持基础目录规范的软件,将演示解决方法以模拟该规范。

解决方法将限于任何不涉及修补源代码、执行存储在环境变量中的代码或编译时选项的方法。 这样做的理由是配置应该能够在系统之间移植,而编译时选项会妨碍这一点。

希望这将成为识别dotfiles及其来源的信息源。

贡献[编辑 | 编辑源代码]

贡献时,请确保使用正确的章节。

任何方法都不应需要代码评估、补丁或编译时选项即可获得支持,任何需要这些的都必须被认为是硬编码的。 此外,如果过程容易出错或困难,也应分类为硬编码。

  • 第一列应该是指向内部文章的链接、Template:PkgTemplate:AUR
  • 第二列是项目曾经拥有的任何遗留文件和目录(每行一个),即使它们不再被读取,人们也能找到它们。
  • 在第三列中,尽量找到项目开始使用XDG基本目录的commit或版本以及任何公开讨论,并在接下来的两栏中包括它们(每行两个)。
  • 最后一列应包括任何适当的解决或绕过方法。请确认您的解决方案正确且可行。

完整支持[编辑 | 编辑源代码]

应用程序 旧路径 采用规范自 讨论 注释
act ~/.actrc 1656

2195

[1] XDG_CONFIG_HOME/act/actrc

~/.actrc(如果存在)会与XDG规范路径下的配置文件合并。

aerc fff1664 XDG_CONFIG_HOME/aerc/aerc.conf
ALSA ~/.asoundrc 577df36

1.2.3

[2] XDG_CONFIG_HOME/alsa/asoundrc
anacondaAUR ~/.conda/.condarc~/.conda/condarc~/.conda/condarc.d/~/.condarc 4.11.0 [3] [4]
Android Studio ~/.AndroidStudioX.X Android Studio 4.1
XDG_CONFIG_HOME/Google/AndroidStudioX.X
XDG_DATA_HOME/Google/AndroidStudioX.X
XDG_CACHE_HOME/Google/AndroidStudioX.X

Google 的配置文件位置概述中没有提到XDG⸺路径有可能是硬编码的(而不是使用适当的变量)。尽管这种情况不太可能发生,因为Android Studio所基于的Intellij IDEA也正确实现了本规范。

Anki英语Anki ~/Anki~/Documents/Anki [5] [6] [7] 如果旧路径不存在,默认使用$XDG_DATA_HOME/Anki2,但可以通过使用anki -b <anki_dir>修改。
antimicrox ~/.antimicro~/.antimicrox edba864 [8]
apvlvAUR ~/.apvlvrc [9] [10] 现在使用XDG_CONFIG_HOME/apvlv/apvlvrc(如果存在)。
aria2 ~/.aria2 8bc1d37 [11]
XDG_CONFIG_HOME/aria2/
XDG_CACHE_HOME/aria2/
atuin ~/.config/atuin ~/.local/share/atuin 156893d
XDG_CONFIG_HOME/atuin/config.toml
XDG_DATA_HOME/atuin/history.db
asunder ~/.asunder ~/.asunder_album_artist ~/.asunder_album_genre ~/.asunder_album_title 2.9.0[失效链接 2021-05-17 ⓘ] [12][失效链接 2021-05-17 ⓘ] 使用XDG_CONFIG_HOME/asunder/asunder代替~/.asunderXDG_CACHE_HOME/asunder/asunder_album_...代替其他3个文件。迁移后原文件需要手动删除。
audacity ~/.audacity-data/ 3.2.0 [13] 如果旧路径不存在,则使用以下新路径:
XDG_CONFIG_HOME/audacity
XDG_DATA_HOME/audacity
btop b5e709d XDG_CONFIG_HOME/btop
binwalk ~/.binwalk 2051757 [14] XDG_CONFIG_HOME/binwalk
bitwarden-cli ~/.config/Bitwarden CLI 1.7.1 [15]
XDG_CONFIG_HOME/Bitwarden CLI
XDG_DATA_HOME/audacity

BITWARDENCLI_APPDATA_DIR 环境变量优先。

目前包含一个包含所有保险库数据的 data.json 文件,因此它应该属于XDG_DATA_HOME。

Blender ~/.blender 4293f47 [16]
byobu ~/.byobu 4.17 [17]

XDG_CONFIG_HOME/byobu

如果旧路径存在或者XDG_CONFIG_HOME环境变量未设置,则优先使用旧路径。

cabal ~/.cabal/ 9f7dc55 v3.10.1.0 [18]
calcurse ~/.calcurse 04162d [19] [20]
XDG_CONFIG_HOME/calcurse
XDG_DATA_HOME/calcurse

如果旧路径~/.calcurse存在,优先使用。

calibre
ccache ~/.ccache 4.0 [21]
XDG_CACHE_HOME/ccache
XDG_CONFIG_HOME/ccache/ccache.conf
catfish ~/.config/catfish af65ed25 [22]
clangd ~/.clangd fdf7dcc[失效链接 2022-09-23 ⓘ] [23] XDG_CONFIG_HOME/clangd/config.yml

XDG_CACHE_HOME/clangd

可以在 proj/.clangd 中指定项目特定的配置。 在合理的情况下,会组合配置。如果发生冲突,则用户配置具有最高优先级,其次是内部项目,最后是外部项目。

Composer英语Composer ~/.composer 1.0.0-beta1 [24]
crossnote ~/.mume d714a82

0.8.13

[25] $XDG_CONFIG_HOME/mume

如果旧路径存在,优先使用。

ctags (universal-ctags) ~/.ctagsrc~/.ctags.d 68da03a

8fb0b04

Issue 89

Pull request 2384

在启动时,Universal-ctags会加载$XDG_CONFIG_HOME/ctags目录中文件扩展名为“.ctags”的文件。

请参阅Ctags Option Files

cURL ~/.curlrc 7.73.0 [26] XDG_CONFIG_HOME/.curlrc
CUPS ~/.cups/ 23b1be6 [27]

libcups 在 v3 中添加了 XDG 支持(仍处于测试阶段)。官方存储库中的版本仍然硬编码为 ~/.cups

dconf
Dolphin 模拟器 ~/.dolphin-emu a498c68 [28]
dr14_t.meter-gitAUR 7e777ca [29] XDG_CONFIG_HOME/dr14tmeter/
dunst 78b6e2b [30] XDG_CONFIG_HOME/dunst/
Emacs ~/.emacs ~/.emacs.d/init.el [31]

27.1

XDG_CONFIG_HOME/emacs/init.el

旧路径优先于 XDG 路径。Emacs 永远不会创建 XDG_CONFIG_HOME/emacs/。 26.3 或更早版本的绕过方法:可以更改HOME,但它可能会产生意想不到的副作用。

fish
fltk ~/.fltk/ 7308bcd [32] [33] 仅尚未发布(截至 2022 年 7 月 9 日)的 1.4.0 版本支持
fontconfig ~/.fontconfig ~/.fonts 8c255fb[34] 配置位于 XDG_CONFIG_HOME/fontconfig/fonts.confXDG_CONFIG_HOME/fontconfig/conf.d/,字体存储在 XDG_DATA_HOME/fonts/
fontforge ~/.FontForge ~/.PfaEdit e4c2cc7

[35] [36]

freecad ~/.FreeCAD e7e2994ba

0.20.0

[37] 默认为
XDG_CONFIG_HOME/FreeCAD
XDG_DATA_HOME/FreeCAD
XDG_CACHE_HOME/FreeCAD

旧路径可通过FreeCAD --keep-deprecated-paths使用

freerdp ~/.freerdp edf6e72
Gajim英语Gajim ~/.gajim 3e777ea [38]
gconfAUR ~/.gconf fc28caa [39]
GDB英语GDB ~/.gdbinit~/.gdb_history 11.1 XDG_CONFIG_HOME/gdb/gdbinitexport GDBHISTFILE="$XDG_DATA_HOME"/gdb/history
ghidra ~/.ghidra/ 3b0aac9 [40]
GIMP ~/.gimp-x.y ~/.thumbnails

60e0cfe 483505f

[41] [42]

Git ~/.gitconfig~/.gitignore~/.gitattributes~/.git-credentials~/.gitk 0d94427dc79687684e40f Git ConfigGit AttributesGit Credentialsgitk XDG_CONFIG_HOME/git/configXDG_CONFIG_HOME/git/ignoreXDG_CONFIG_HOME/git/attributesXDG_CONFIG_HOME/git/credentialsXDG_CONFIG_HOME/git/gitk
gops 71c4255
gnuplot ~/.gnuplot_history a5562b1

[43]

goobookAUR ~/.goobookrc 3.5 [44] XDG_CONFIG_HOME/goobookrc
Godot Engine ~/.godot 73049d1

3.0-stable

[45]
GStreamer ~/.gstreamer-0.10 4e36f93 [46]
GTK 3
Haskell#Stack英语Haskell#Stack ~/.stack 2.9.3 [47] 默认为使用旧目录。使用export STACK_XDG=1使其符合规范。

旧方法export STACK_ROOT="$XDG_DATA_HOME"/stack仍然有效且优先[48][失效链接 2024-07-30 ⓘ]

helm ~/.helm 3.0.0
htop ~/.htoprc 93233a6 XDG_CONFIG_HOME/htop/htoprc
httpie ~/.httpie 5af0874 [49]
hunspell ~/.hunspell_default. [50]
i3 ~/.i3 7c130fb
i3blocksi3blocks-gitAUR [51]
i3status ~/.i3status.conf c3f7fc4
i3status-rust
IdeaVim ~/.ideavimrc 0.54.1-EAP [52] XDG_CONFIG_HOME/ideavim/ideavimrc
imagemagick
iotop-c ~/.config/iotop [53] [54]
Inkscape ~/.inkscape 0.47 [55]
ipython ~/.ipython 8.0.0 [56] $XDG_CONFIG_HOME/ipython(或当XDG_CONFIG_HOME不存在时使用的~/.config/ipython)不存在时使用旧路径。
iwd / iwctl ~/.iwctl_history d3e00d7f
intellij-idea-community-edition / intellij-idea-ultimate-editionAUR ~/.IntelliJIdeaXXXX.X 2020.1 [57]
XDG_CONFIG_HOME/JetBrains/IntelliJIdeaXXXX.X
XDG_DATA_HOME/JetBrains/IntelliJIdeaXXXX.X
XDG_CACHE_HOME/JetBrains/IntelliJIdeaXXXX.X
josm ~/.josm 11162 [58]
jupyter ~/.jupyter 在 5.0 中可选择加入,在 6.0 中可选择退出,在 7.0 中强制使用(changelog XDG_CONFIG_HOME/jupyter
Kakoune英语Kakoune
keynavAUR ~/.keynavrc XDG_CONFIG_HOME/keynav/keynavrc
less ~/.lesshst~/.lesskey 590

完整支持:600[失效链接 2024-07-30 ⓘ]

[59] 在 590 版本中必须设置环境变量XDG_CONFIG_HOMEXDG_DATA_HOME。600 以后版本不再必要。
latexmk(texlive-binextra中) ~/.latexmkrc

XDG_CONFIG_HOME/latexmk/latexmkrc

lftp ~/.lftp 21dc400 [60]
lgogdownloaderAUR ~/.gogdownloader d430af6 [61]
luarocks ~/.luarocks cd16cdd [62]
XDG_CONFIG_HOME/luarocks
XDG_CACHE_HOME/luarocks

如果旧路径~/.luarocks存在,优先使用。

mangohud 65b90fc [63] XDG_CONFIG_HOME/MangoHud
mc英语mc ~/.mc

1b99570 0b71156 ce401d7

[64]
Mercurial英语Mercurial ~/.hgrc

3540200 4.2

XDG_CONFIG_HOME/hg/hgrc.
mesa 87ab26b XDG_CACHE_HOME/mesa
milkytracker ~/.milkytracker_config eb487c5 [65]
mlterm英语mlterm ~/.mlterm/ 71df071 [66] XDG_CONFIG_HOME/mlterm/
mozc英语mozc ~/.mozc 91cc1e1 [67]
mpd英语mpd ~/.mpdconf 87b7328
mpv ~/.mpv cb250d4 [68]
msmtp英语msmtp ~/.msmtprc

af2f409 v1.6.7+

XDG_CONFIG_HOME/msmtp/config
mutt ~/.mutt b17cd67 [69]
mypaint ~/.mypaint cf723b7
nano ~/.nano/ ~/.nanorc c16e79b [70]
ncmpcpp英语ncmpcpp ~/.ncmpcpp

38d9f81 27cd86e

[71] [72]

应设置 ncmpcpp_directory 以避免 ~/.ncmpcpp 中出现 error.log 文件。
Neovim ~/.nvim ~/.nvimlog ~/.nviminfo 1ca5646bb

[73] [74]

Nestopia UE ~/.nestopia/ 610c008 1.51.0 [75]
newsboat英语newsboat ~/.newsboat 3c57824 [76] 必须手动创建两个目录[77]

mkdir -p "$XDG_DATA_HOME"/newsboat "$XDG_CONFIG_HOME"/newsboat

node-gyp ~/.node-gyp 2b5ce52a [78]
np2kai-gitAUR ~/.config/np2kai ~/.config/xnp2kai 56a1cc2 [79]
notmuch ~/.notmuch-config [80] mkdir -p $XDG_CONFIG_HOME/notmuch/default; mv ~/.notmuch-config $XDG_CONFIG_HOME/notmuch/default/config
NSS ~/.pki 3.42 (da45424) [81] 参阅 Chromium 了解现有问题。
nteract-binAUR 4593e72 [82] [83] 无法识别 ipython/jupyter 的绕过方法
ocaml-utopAUR ~/.utop-history

~/.utoprc

2.13.0

9729963

[84] XDG_STATE_HOME/utop/utop-history

XDG_CONFIG_HOME/utop/utoprc

OfflineIMAP英语OfflineIMAP ~/.offlineimaprc 5150de5 [85] XDG_CONFIG_HOME/offlineimap/config
openal ~/.alsoftrc 3c90ed9 XDG_CONFIG_HOME/alsoft.conf
opentyrianAUR ~/.opentyrian 39559c3 [86]
oscAUR ~/.oscrc ~/.osc_cookiejar 6bc2d3f

ebcf3de

github.com/openSUSE/osc/pull/940

github.com/osc/pull/940

XDG_CONFIG_HOME/osc/oscrc XDG_STATE_HOME/osc/cookiejar

如果旧路径存在,优先使用。

pam-u2f ~/.config/Yubico/u2f_keys ad52dd8 [87] XDG_CONFIG_HOME/Yubico/u2f_keys
pandoc-cli ~/.pandoc/ 0bed0ab [88]
PCManFM ~/.thumbnails 1.3.2
pcsx2AUR ~/.pcsx2

87f1e8f a9020c6 3b22f0f 0a012ae

[89] [90]
pdfsamAUR ~/.openjfx export _JAVA_OPTIONS=-Djavafx.cachedir="$XDG_CACHE_HOME"/openjfx
Pry ~/.pryrc ~/.pry_history

a0be0cc7 15e1fc92 e9d1be0e

[91]
python-autoimportAUR ~/.config/autoimport/config.toml 1.2.0 [92] XDG_CONFIG_HOME/autoimport/config.toml
python-black ~/.config/black 21.4b0 [93] XDG_CONFIG_HOME/blackXDG_CACHE_HOME/black/<version>/
python-pylint ~/.pylint.d 2.10 [94] 以前需要使用 export PYLINTHOME="$XDG_CACHE_HOME"/pylint,全局配置仍然需要:export PYLINTRC="$XDG_CONFIG_HOME"/pylint/pylintrc
python-pip ~/.pip 6.0 [95]
python-pipx ~/.local/pipx c3d8de9 [96] 为了兼容,pipx 将恢复为 ~/.local/pipx(如果存在)。使用 python-platformdirs 实现。
python-poetry ~/.poetry [97] [98]
powershellAUR 6.0
ppsspp ~/.ppsspp 132fe47 [99]
procps-ng ~/.toprc af53e17

[100] [101]

pacman ~/.makepkg.conf 80eca94 [102]
panda3dAUR ~/.panda3d 2b537d2
pnpm ~/.pnpm-store [103] [104] [105]
poezioAUR
PulseAudio ~/.pulse ~/.pulse-cookie

59a8618 87ae830 9ab510a 4c195bc

[106] Steam 可能仍会创建 ~/.pulse-cookie。将 cookie-file = ~/.config/pulse/cookie 添加到 /etc/pulse/client.conf 即可将其删除。
pyroomAUR
quodlibet ~/.quodlibet 3.10.0 [107]
qutebrowser英语qutebrowser
qtile

fd8686e 66d704b 51cff01

[108] 一些可选的栏小部件可以在不兼容的路径中创建文件和目录,但大多数情况下这些仍然是可配置的。
rclone ~/.rclone.conf 9d36258 [109]
retroarch
ripgrep-all ~/.cache/rga 963524b v0.10.3 [110] [111] [112]
rrAUR ~/.rr 02e7d41 [113]
RSpec ~/.rspec 5e395e2 [114]
rTorrent ~/.rtorrent.rc 6a8d332
RuboCop ~/.rubocop.yml 6fe5956 [115]
Ruby#RubyGems ~/.gem 3.0.0 (5c6269c) [116]
XDG_CONFIG_HOME/gem/gemrc
XDG_CONFIG_HOME/irb
XDG_DATA_HOME/gem
XDG_DATA_HOME/rdoc
sandboxd ~/.sandboxrc [117] [118] XDG_CONFIG_HOME/sandboxd/sandboxrc
scribus ~/.scribus 1.5.3
scummvm ~/.scummvmrc ~/.scummvm/ 7d014be [119] 需要手动迁移数据。

mkdir "$XDG_CONFIG_HOME"/scummvm/ "$XDG_DATA_HOME"/scummvm mv ~/.scummvmrc "$XDG_CONFIG_HOME"/scummvm/scummvm.ini mv ~/.scummvm "$XDG_DATA_HOME"/scummvm/saves

sdcv ~/.stardict/ ~/.sdcv_history 958ec35 [120]
shellcheck ~/.shellcheckrc 581bcc3 XDG_CONFIG_HOME/shellcheckrc

有关更多信息,请参阅Shellcheck RC 文件

snes9x ~/.snes9x 93b5f11 [121] 默认情况下,配置文件留空,以便用户可以随意填写(通过 GUI 或手动)。
spectrwm英语spectrwm ~/.spectrwm a30bbb [122]
SQLite ~/.sqliterc~/.sqlite_history 3.44.0 XDG_CONFIG_HOME/sqlite3/sqlitercexport SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history
Streamlink英语Streamlink ~/.livestreamerrc ea80591 [123]
sublime-text-devAUR build 4105 在版本 4105 之前,缓存被放置在 XDG_CONFIG_HOME/sublime-text-3/Cache 中。
surfraw ~/.surfraw.conf ~/.surfraw.bookmarks

3e4591d bd8c427 f57fc71

sway ~/.sway/config 614393c [124] XDG_CONFIG_HOME/sway/config
sxhkd
systemd
teeworlds ~/.teeworlds [125]
termite英语termite
tig ~/.tigrc~/.tig_history 2.2 [126] ~/.local/share/tig目录必须存在否则将会写入~/.tig_history
Theming(桌面端) ~/.icons/~/.themes/ [127] XDG_DATA_HOME/icons

XDG_DATA_HOME/themes

为了使 Qt 程序、GTK 或 Wayland 上的 Qt 程序使用 XDG_DATA_HOME/icons 中的光标,需要配置 XCURSOR_PATH 环境变量。

tmux ~/.tmux.conf 3.1 [128] 3.1 引入了 ~/.config/tmux/tmux.conf 并在 3.2 添加了 XDG_CONFIG_HOME/tmux/tmux.conf
tmuxp英语tmuxp ~/.tmuxp 1.5.0 [129] 1.5.2中修复。
tmuxinatorAUR ~/.tmuxinator 2636923 [130]
Transmission ~/.transmission b71a298
util-linux 570b321
yapf a0b51d2 [131] $XDG_CONFIG_HOME/yapf/style
Uzbl英语Uzbl c6fd63a [132]
vim ~/.vim~/.vimrc~/.viminfo c9df1fb [133]
vimb
VirtualBox ~/.VirtualBox 4.3 [134]
vis ~/.vis

68a25c7 d138908

[135]
VLC ~/.vlcrc 16f32e1 [136]
warsow ~/.warsow-2.x 98ece3f [137]
WeeChat英语WeeChat ~/.weechat [138]

3.2

[139] [140][失效链接 2023-05-06 ⓘ]
XDG_CONFIG_HOME/weechat
XDG_CACHE_HOME/weechat
XDG_DATA_HOME/weechat
Wireshark ~/.wireshark b0b53fa[失效链接 2022-09-23 ⓘ]
wxWidgets [141]
XKB ~/.xkb
Xsettingsd ~/.xsettingsd b4999f5
xmobar英语xmobar ~/.xmobarrc 7b0d6bf[失效链接 2024-07-30 ⓘ]

9fc6b37[失效链接 2024-07-30 ⓘ] eaccf70[失效链接 2024-07-30 ⓘ]

[142][失效链接 2024-07-30 ⓘ]

[143][失效链接 2024-07-30 ⓘ]

XDG_CONFIG_HOME/xmobar/xmobarrc
xmonad ~/.xmonad/ 40fc10b

[144] [145]

所有这些都必须存在,否则它会放弃并回退到 ~/.xmonad/
XDG_CACHE_HOME/xmonad
XDG_CONFIG_HOME/xmonad
XDG_DATA_HOME/xmonad

或者,它始终尊重 XMONAD_CACHE_DIRXMONAD_CONFIG_DIRXMONAD_DATA_DIR

xonsh ~/.xonshrc [146] $XDG_CONFIG_HOME/xonsh/rc.xsh
xournalpp ~/.xournalpp

20db937f 1.1.0

[147] [148]

xsel ~/.xsel.log ee7b481 [149]
Zim e42b8b0
 $XDG_CONFIG_HOME/zim/preferences.conf
 $XDG_CONFIG_HOME/zim/notebooks.list
zoxide ~/.zo 0.3.0 [150]

部分支持[编辑 | 编辑源代码]

应用程序 旧路径 采用规范自 讨论 注释
abookAUR ~/.abook abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_DATA_HOME"/abook/addressbook
ack ~/.ackrc [151] export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"
Ansible英语Ansible ~/.ansible 2.14 [152] [153] [154]
export ANSIBLE_HOME="${XDG_CONFIG_HOME}/ansible"
export ANSIBLE_CONFIG="${XDG_CONFIG_HOME}/ansible.cfg"
export ANSIBLE_GALAXY_CACHE_DIR="${XDG_CACHE_HOME}/ansible/galaxy_cache"
[155]

可以通过在适当的 ansible.cfg 中设置 remote_tmp = ${XDG_CONFIG_HOME}/ansible/tmp 来移动远程的 ~/.ansible/tmp[156] [157]

asdf-vmAUR ~/.asdfrc~/.asdf/ [158] export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"export ASDF_DATA_DIR="${XDG_DATA_HOME}/asdf"
aspell ~/.aspell.conf [159] 非常不完整。以下内容重新定位了 en 词典,但为了简洁起见,这里没有指定其他可能的词典。export ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_DATA_HOME/aspell/en.pws; repl $XDG_DATA_HOME/aspell/en.prepl"
aws-cli ~/.aws 1.7.45 [160] export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentialsexport AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config
bash-completion ~/.bash_completion export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion
bashdbAUR ~/.bashdbinit~/.bashdb_hist 就像 [161] 中所述,您可以指定一个文件来运行命令。因此,将 init 文件移动到 XDG_CONFIG_HOME/bashdb/bashdbinit 并创建一个别名 alias bashdb='bashdb -x ${XDG_CONFIG_HOME:-$HOME/.config}/bashdb/bashdbinit'。不幸的是,历史文件是硬编码的 [162]
bazaar ~/.bazaar~/.bzr.log 2.3.0 [163] 上游错误讨论指出,如果存在 ~/.config/bazaar,bazaar 将使用它。日志文件 ~/.bzr.log 可能仍会被写入。
bogofilter ~/.bogofilter 0.7.5 [164] export BOGOFILTER_DIR="$XDG_DATA_HOME"/bogofilter
btpd-gitAUR ~/.btpd/ [165] btpd -d "$XDG_DATA_HOME"/.btpd

HOME="$XDG_DATA_HOME" btcli

bunAUR ~/.bun/ [166] 当明确设置了 $XDG_CONFIG_HOME$XDG_CACHE_HOME 和/或 $XDG_DATA_HOME 时,Bun 将优先使用它们。或者,可以使用 export BUN_INSTALL="$XDG_DATA_HOME"/bun 来设置 bun 目录的主位置。
calc ~/.calc_history
export CALCHISTFILE="$XDG_CACHE_HOME"/calc_history
Rust#Cargo ~/.cargo [167] [168] [169] [170] export CARGO_HOME="$XDG_DATA_HOME"/cargo
cataclysm-dda ~/.cataclysm-dda 0.D-1 [171] 由于需要编译时选项,属于部分支持。
cd-bookmark ~/.cdbookmark [172] export CD_BOOKMARK_FILE=$XDG_CONFIG_HOME/cd-bookmark/bookmarks

或者使用具有原生 XDG 支持的 fork:[173]

cgdb ~/.cgdb [位于 master 分支,但尚未发布] [174] [175] 设置 export CGDB_DIR=$XDG_CONFIG_HOME/cgdb 并将配置文件移动到 XDG_CONFIG_HOME/cgdb/cgdbrc
chez-schemeAUR ~/.chezscheme_history petite --eehistory "$XDG_DATA_HOME"/chezscheme/history
chktex in texlive-binextra ~/.chktexrc 将配置文件移动到 $XDG_CONFIG_HOME/chktex/.chktexrc(注意前导点)和 export CHKTEXRC=$XDG_CONFIG_HOME/chktex
Chromium ~/.chromium~/.pki 23057 [176] [177] [178] 故意(根据这些来源)破坏 ~/.config,向其中写入数百兆字节的缓存数据。完全不支持。

Chromium 由于未正确设置 NSS 而创建了 .pki,尽管 NSS 本身现在允许使用 XDG 规范。这导致其下游无法正常工作(Qt WebEngine 尤其影响了许多情况,例如 KMail 等)

cinelerra ~/.bcast5 [179] export CIN_CONFIG="$XDG_CONFIG_HOME"/bcast5
conky ~/.conkyrc 00481ee [180] conky --config="$XDG_CONFIG_HOME"/conky/conkyrc
claws-mail ~/.claws-mail [181] claws-mail --alternate-config-dir "$XDG_DATA_HOME"/claws-mail
coreutils ~/.dircolors eval $(dircolors "$XDG_CONFIG_HOME"/dircolors)
crawl ~/.crawl 结尾的斜杠是必需的:

export CRAWL_DIR="$XDG_DATA_HOME"/crawl/

clusterssh ~/.clusterssh/ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'"
$XDG_CONFIG_HOME/clusterssh/config
extra_cluster_file=$HOME/.config/clusterssh/clusters
extra_tag_file=$HOME/.config/clusterssh/tags

尽管如此,clusterssh 仍然会创建 ~/.clusterssh/

CUDA英语CUDA ~/.nv export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
dict英语dict ~/.dictrc dict -c "$XDG_CONFIG_HOME"/dict/dictrc
discord ${XDG_CONFIG_HOME}/discord 自 0.0.27 版起:

文档未记录,但常用: export DISCORD_USER_DATA_DIR="${XDG_DATA_HOME}"

来源:<discord_system_package_root>/resources/app.asar

Docker ~/.docker export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
docker-machine ~/.docker/machine export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine
DOSBox ~/.dosbox/dosbox-0.74-2.conf [182] dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf
dub ~/.dub v1.30.0-beta.1 Dub 使用 ~/.dub 目录进行用户设置和缓存下载的软件包。该目录只能整体移动,方法是使用 export DUB_HOME="path/to/new/dub"
Electrum Bitcoin Wallet ~/.electrum c121230 export ELECTRUMDIR="$XDG_DATA_HOME/electrum"
ELinks英语ELinks ~/.elinks export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks
elixir ~/.mix~/.hex afaf889 [183] [184] Elixir 并不完全符合 XDG 规范,只有当 MIX_XDG 变量设置为特殊值时,它才会使用 XDG,否则它将默认使用旧路径。

export MIX_XDG="true"

Elm ~/.elm export ELM_HOME="$XDG_CONFIG_HOME"/elm
factorioAUR ~/.factorio/ [185] [186] Factorio 支持使用配置文件手动指定数据路径:[187]
__Game_Install_directory/config-path.cfg
use-system-read-write-data-directories=true
__Game_Install_directory/config/config.ini
[path]
read-data=__PATH__executable__/../../data
write-data=.local/share/factorio
fceux ~/.fceux/ [188] export FCEUX_HOME="$XDG_CONFIG_HOME"/fceux。Fceux 将在 $FCEUX_HOME 内创建 .fceux 目录。
FFmpeg ~/.ffmpeg export FFMPEG_DATADIR="$XDG_CONFIG_HOME"/ffmpeg
flutterAUR ~/.flutter~/.flutter_settings~/.flutter_tool_state~/.pub-cache [189]
fzf-gitAUR ~/.fzf.bash~/.fzf.zsh [190] 如果使用 --xdg 调用安装脚本,则 shell init 文件将安装到 XDG_CONFIG_HOME/fzf,例如 /usr/local/opt/fzf/install --xdg
emscripten ~/.emscripten~/.emscripten_sanity~/.emscripten_ports~/.emscripten_cache__last_clear [191] export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/configexport EM_CACHE="$XDG_CACHE_HOME"/emscripten/cacheexport EM_PORTS="$XDG_DATA_HOME"/emscripten/cacheemcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache
get_iplayerAUR ~/.get_iplayer export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer
getmail英语getmail ~/.getmail/getmailrc getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"
ghc ~/.ghci [192] [193] 上游版本从 9.4.1 开始支持 [194],但截至 2022-09-24,Arch 软件包为 9.0.2 且尚未更新。
ghcup-hs-binAUR ~/.ghcup [195] [196] export GHCUP_USE_XDG_DIRS=true

环境变量 GHCUP_USE_XDG_DIRS 可以设置为任何非空值。请参阅 [197]

glivAUR ~/.glivrc gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc
gnuradio ~/.gnuradio [198] GNU Radio:

export GR_PREFS_PATH="$XDG_CONFIG_HOME"/gnuradio

GNU Radio Companion: export GRC_PREFS_PATH="$XDG_CONFIG_HOME"/gnuradio/grc.conf

GnuPG ~/.gnupg [199] [200] export GNUPGHOME="$XDG_DATA_HOME"/gnupggpg2 --homedir "$XDG_DATA_HOME"/gnupg

请注意,目前使用 systemd 用户单元和基于 socket 的激活无法开箱即用,因为 socket 目录会根据 $GNUPGHOME 的哈希值发生变化。您可以使用 gpgconf --list-dirs socketdir 获取新的 socket 目录,并必须修改 systemd 用户单元以相应地监听正确的 socket。还必须使用以下 gpg-agent.service 插入文件(或以其他方式将 GNUPGHOME 环境变量传递给在 systemd 中运行的代理),否则您可能会遇到“丢失”私钥的问题:

[Service]
Environment="GNUPGHOME=%h/.local/share/gnupg"

如果您使用 GPG 作为您的 SSH 代理,请将 SSH_AUTH_SOCK 设置为 gpgconf --list-dirs agent-ssh-socket 的输出,而不是某些硬编码值。

Go ~/go [201] export GOPATH="$XDG_DATA_HOME"/goexport GOMODCACHE="$XDG_CACHE_HOME"/go/mod

如果未设置 GOMODCACHE,则默认为 $GOPATH/pkg/mod(参见 [202])。 支持 GOCACHE,默认为 $XDG_CACHE_HOME/go-build(参见 [203])。

Google Earth ~/.googleearth 可以使用 ~/.config/Google/GoogleEarthPlus.conf 中的 KMLPathCachePath 选项更改某些路径。
gopass ~/.password-store 覆盖 ~/.config/gopass/config.yml 中的设置:
~/.config/gopass/config.yml
root:
path: gpgcli-gitcli-fs+file:///home/<userid>/.config/password-store
gpodder ~/gPodder GPODDER_DOWNLOAD_DIR 用于设置下载文件夹。GPODDER_HOME 用于指定配置和数据库文件的存储位置,同时如果未设置 GPODDER_DOWNLOAD_DIR,下载的文件也会保存在此目录中。
GQ LDAP client ~/.gq~/.gq-state 1.51 export GQRC="$XDG_CONFIG_HOME"/gqrcexport GQSTATE="$XDG_DATA_HOME"/gq/gq-statemkdir -p "$(dirname "$GQSTATE")"
Gradle英语Gradle ~/.gradle [204]

[205]

export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
GTK 1 ~/.gtkrc export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc
GTK 2 ~/.gtkrc-2.0 export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc":"$XDG_CONFIG_HOME/gtk-2.0/gtkrc.mine"

如果使用了 Lxappearance~/.gtkrc-2.0 可能会不断被创建,因为点击“应用”时的定制设置会写入到这个文件。该路径在 Lxappearance 中是硬编码的,但作为一个输出文件,这些设置可以被反复移动到该位置。

hledger ~/.hledger.journal [206] export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal
Houdini ~/houdiniMAJOR.MINOR) [207]

[208]

export HOUDINI_USER_PREF_DIR="$XDG_CACHE_HOME"/houdini__HVER__

这个变量的值必须包含子字符串 __HVER__,它将在运行时被替换成当前的 MAJOR.MINOR 版本号。

imapfilterAUR ~/.imapfilter export IMAPFILTER_HOME="$XDG_CONFIG_HOME/imapfilter"
IPFS英语IPFS ~/.ipfs export IPFS_PATH="$XDG_DATA_HOME"/ipfs
irb ~/.irbrc
~/.profile
$ export IRBRC="$XDG_CONFIG_HOME"/irb/irbrc
"$XDG_CONFIG_HOME"/irb/irbrc
IRB.conf[:SAVE_HISTORY] ||= 1000
IRB.conf[:HISTORY_FILE] ||= File.join(ENV["XDG_DATA_HOME"], "irb", "history")
irssi ~/.irssi [209] irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi
isync英语isync ~/.mbsyncrc [210] mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc
Java#OpenJDK ~/.java/.userPrefs [211] export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
jupyter ~/.jupyter 5.0.0rc0 [212] [213] python-jupyter-core < v5.0.0:

export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter

v5.0.0 <= python-jupyter-core < v6.0.0:

export JUPYTER_PLATFORM_DIRS="1" (see [214])

python-jupyter-core >= v6.0.0:完整支持(通过python-platformdirs),默认开启

k9s ~/.k9s 0.20.4 [215] export K9SCONFIG="$XDG_CONFIG_HOME"/k9s
KDE ~/.kde~/.kde4 [216] export KDEHOME="$XDG_CONFIG_HOME"/kde
keychain ~/.keychain [217] [218] keychain --absolute --dir "$XDG_RUNTIME_DIR"/keychain
kodi ~/.kodi [219] [220] KODI_DATA=$XDG_DATA_HOME/kodi
kscriptAUR ~/.kscript [221] export KSCRIPT_CACHE_DIR="$XDG_CACHE_HOME"/kscript
ledger ~/.ledgerrc~/.pricedb [222] ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc
Leiningen英语Leiningen ~/.lein~/.m2 export LEIN_HOME="$XDG_DATA_HOME"/lein

要更改 Leiningen 使用的 m2 仓库位置,请参阅:Leiningen#m2 仓库位置英语Leiningen#m2 repo location

libdvdcss ~/.dvdcss [223] export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss
libice ~/.ICEauthority [224] export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority

确保提前设置 XDG_CACHE_HOME,使其指向运行 Xorg 的用户有写权限的目录。

不要使用 XDG_RUNTIME_DIR,因为它是在登录之后才可用的。否则启动 Xorg 的显示管理器(如 GDM)将会反复失败。

LibreOffice [225] LibreOffice 将所有数据存储在 $XDG_CONFIG_HOME/libreoffice/4/user/ 目录下,包括运行时文件、用户数据、缓存和扩展。其中一些路径可以在工具(T) > 选项(O)⋯ > LibreOffice > 路径中进行更改。
libx11 ~/.XCompose~/.compose-cache export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcomposeexport XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose
ltrace ~/.ltrace.conf ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf
lynx /etc/lynx.cfg export LYNX_CFG="$XDG_CONFIG_HOME"/lynx.cfg
m17n-db ~/.m17n.d [226]
maptool-binAUR ~/.maptool-rptools [227]
/opt/maptool/lib/app/MapTool.cfg
[JavaOptions]
-DMAPTOOL_DATADIR=.local/share/maptool-rptools

但是,没有办法改变这个配置文件的位置。

maven ~/.m2 [228] export MAVEN_OPTS=-Dmaven.repo.local="$XDG_DATA_HOME"/maven/repository

mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml并在 settings.xml 中根据需要设置 <localRepository>

Mathematica ~/.Mathematica export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica
maxima ~/.maxima export MAXIMA_USERDIR="$XDG_CONFIG_HOME"/maxima
mednafen ~/.mednafen export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen
minikube ~/.minikube [229] export MINIKUBE_HOME="$XDG_DATA_HOME"/minikube

无论出于什么原因,这会在 MINIKUBE_HOME 中创建一个额外的 .minikube 目录。

mitmproxy ~/.mitmproxy alias mitmproxy="mitmproxy --set confdir=$XDG_CONFIG_HOME/mitmproxy"alias mitmweb="mitmweb --set confdir=$XDG_CONFIG_HOME/mitmproxy"
MOC英语MOC ~/.moc mocp -M "$XDG_CONFIG_HOME"/mocmocp -O MOCDir="$XDG_CONFIG_HOME"/moc
monero ~/.bitmonero monerod --data-dir "$XDG_DATA_HOME"/bitmonero
most ~/.mostrc export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc
MPlayer ~/.mplayer export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer
mtpaint ~/.mtpaint [230]
/etc/mtpaint/mtpaintrc
userINI = ~/.config/mtpaint
mypy ~/.config/mypy/config~/.mypy.ini~/.mypy_cache v0.670 [231] [232] XDG_CONFIG_HOME/mypy/configexport MYPY_CACHE_DIR="$XDG_CACHE_HOME"/mypy
MySQL ~/.mysql_history~/.my.cnf ~/.mylogin.cnf export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history

~/.my.cnf 仅支持 mysql-server,不支持 mysql-client [233]

~/.mylogin.cnf 不支持。

mysql-workbench ~/.mysql/workbench 您可以使用 --configdir 标志运行 MySQL Workbench,例如 mysql-workbench --configdir="$XDG_DATA_HOME/mysql/workbench"。该目录需要手动创建,因为 MySQL Workbench 默认位置是 $HOME/.mysql/workbench
ncurses ~/.terminfo 排除系统路径搜索:

export TERMINFO="$XDG_DATA_HOME"/terminfoexport TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo

n /usr/local/n export N_PREFIX=$XDG_DATA_HOME/n
ncmpc ~/.ncmpc ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config
Netbeans英语Netbeans ~/.netbeans [234] netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans
Node.js ~/.node_repl_history [235] export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
npm ~/.npm~/.npmrc [236] export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
npmrc
prefix=${XDG_DATA_HOME}/npm
cache=${XDG_CACHE_HOME}/npm
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
logs-dir=${XDG_STATE_HOME}/npm/logs

如果 Node.js 是通过 nvmAUR 安装的,则 prefix 是不必要的(且不受支持)。

opam ~/.opam [237] export OPAMROOT="$XDG_DATA_HOME/opam"

配置和状态数据都存储在 OPAMROOT 中,因此该解决方案不完全兼容。

PuTTY英语PuTTY ~/.putty/ 9952b2d 如果已存在,将使用 $XDG_CONFIG_HOME/putty。如果不存在,则创建 ~/.putty。如果两者都存在,则优先使用 $XDG_CONFIG_HOME/putty。已在 0.74 中测试。
python-easyocrAUR ~/.EasyOCR export EASYOCR_MODULE_PATH="$XDG_CONFIG_HOME/EasyOCR"
spotdlAUR ~/.spotdl v4.0.6 (3929cae) [238] mkdir "$XDG_DATA_HOME"/spotdl
nuget ~/.nuget/packages [239] export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
NVIDIA ~/.nv 如果设置则使用 XDG_CACHE_HOME,否则不正确地回退到 ~/.nv 而不是 ~/.cache
nvidia-settings ~/.nvidia-settings-rc [240] nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings
nvmAUR ~/.nvm export NVM_DIR="$XDG_DATA_HOME"/nvm
Octave ~/octave~/.octave_packages~/.octave_hist export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts"export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"
$XDG_CONFIG_HOME/octave/octaverc
source /usr/share/octave/site/m/startup/octaverc;
pkg prefix ~/.local/share/octave/packages ~/.local/share/octave/packages;
pkg local_list /home/<your username>/.local/share/octave/octave_packages;

local_list 选项必须给出绝对路径。

omnisharp-roslyn-binAUR ~/.omnisharp/ [241] [242] export OMNISHARPHOME="$XDG_CONFIG_HOME/omnisharp"
openscad ~/.OpenSCAD 7c3077b0f [243] 不完全遵守 XDG 基本目录规范,请参阅 [244]

目前它硬编码 ~/.local/share

packettracerAUR ~/.packettracer~/packettracer/ 具有 GUI 配置来更改 PT 安装目录,~/packettracer/选项 > 首选项 > 管理 > 用户文件夹)。此路径写入文件 ~/.packettracer
parallel ~/.parallel 20170422 export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
pass ~/.password-store export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
Phive ~/.phive [245]

以及 [246][247]

从 0.14.5 开始,可以移动整个数据目录。

export PHIVE_HOME="$XDG_DATA_HOME/phive"

Pidgin ~/.purple [248] pidgin --config="$XDG_DATA_HOME"/purple
platformio-core ~/.platformio [249] export PLATFORMIO_CORE_DIR="$XDG_DATA_HOME"/platformio
PostgreSQL ~/.psqlrc~/.psql_history~/.pgpass~/.pg_service.conf 9.2 [250] [251] export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"export PSQL_HISTORY="$XDG_STATE_HOME/psql_history"export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"

必须创建这两个目录:mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_STATE_HOME"

PulseAudio ~/.esd_auth 很可能是由 module-esound-protocol-unix.so 模块生成的。可以将其配置为使用不同的位置,但更有意义的是,在 /etc/pulse/default.pa"$XDG_CONFIG_HOME"/pulse/default.pa 中注释掉此模块。
pyenv ~/.pyenv [252] [253] export PYENV_ROOT=$XDG_DATA_HOME/pyenv
azure-cli ~/.azure export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure
python ~/.python_history v3.13 [254] [255] [256] 版本 3.4 起,所有交互式会话的历史记录默认保存到 ~/.python_history,自 3.13 起,保存到 PYTHON_HISTORY。您仍可以像在旧版本中一样自定义此功能(请参阅此示例),包括使用自定义路径禁用历史记录保存

PYTHON_HISTORYexport PYTHON_HISTORY=$XDG_STATE_HOME/python/history PYTHONPYCACHEPREFIXexport PYTHONPYCACHEPREFIX=$XDG_CACHE_HOME/python PYTHONUSERBASEexport PYTHONUSERBASE=$XDG_DATA_HOME/python

python-gripAUR ~/.grip export GRIPHOME="$XDG_CONFIG_HOME/grip"
python-setuptools ~/.python-eggs export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs
racket ~/.racketrc~/.racket [257] export PLTUSERHOME="$XDG_DATA_HOME"/racket
rbenvAUR ~/.rbenv [258] [259] export RBENV_ROOT="$XDG_DATA_HOME"/rbenv
nodenvAUR ~/.nodenv export NODENV_ROOT="$XDG_DATA_HOME"/nodenv
readline ~/.inputrc export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
recoll ~/.recoll export RECOLL_CONFDIR="$XDG_CONFIG_HOME/recoll"
redis英语redis ~/.rediscli_history~/.redisclirc export REDISCLI_HISTFILE="$XDG_DATA_HOME"/redis/rediscli_historyexport REDISCLI_RCFILE="$XDG_CONFIG_HOME"/redis/redisclirc
ripgrep [260] export RIPGREP_CONFIG_PATH=$XDG_CONFIG_HOME/ripgrep/config
rlwrap ~/.*_history [261] export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap
ruby-bundler ~/.bundle 4a120d8 拉取请求 3545
export BUNDLE_USER_CACHE=$XDG_CACHE_HOME/bundle
export BUNDLE_USER_CONFIG=$XDG_CONFIG_HOME/bundle/config
export BUNDLE_USER_PLUGIN=$XDG_DATA_HOME/bundle

有关更多信息,请参阅 Bundler: bundle config

ruby-solargraphAUR ~/.solargraph/cache/ [262] export SOLARGRAPH_CACHE=$XDG_CACHE_HOME/solargraph
ruff .ruff_cache [263] export RUFF_CACHE_DIR=$XDG_CACHE_HOME/ruff
Rust#Rustup ~/.rustup [264] export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
sbt ~/.sbt

~/.ivy2

[265] sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt(注意 [266]
SageMath ~/.sage export DOT_SAGE="$XDG_CONFIG_HOME"/sage
GNU Screen ~/.screenrc

~/.screen/

export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrcexport SCREENDIR="${XDG_RUNTIME_DIR}/screen"
simplescreenrecorderAUR ~/.ssr/ 0.4.3 [267]

[268]

仅当已创建时才会使用 $XDG_CONFIG_HOME/simplescreenrecorder/,否则默认为 ~/.ssr

mv ~/.ssr "$XDG_CONFIG_HOME"/simplescreenrecorder

singularity-ceAUR ~/.singularity 3.11.4 export SINGULARITY_CONFIGDIR="$XDG_CONFIG_HOME/singularity"export SINGULARITY_CACHEDIR="$XDG_CACHE_HOME/singularity"
spacemacs ~/.spacemacs~/.spacemacs.d [269] [270] 移动 ~/.spacemacs 文件。

export SPACEMACSDIR="$XDG_CONFIG_HOME"/spacemacsmv ~/.spacemacs "$SPACEMACSDIR"/init.el

其他文件需要像 Emacs 一样进行配置。

starship ~/.config/starship~/.cache/starship [271] (v0.2.0),[272] (v0.45.0) [273] export STARSHIP_CONFIG="$XDG_CONFIG_HOME"/starship.tomlexport STARSHIP_CACHE="$XDG_CACHE_HOME"/starship
subversion ~/.subversion [274] [275][276] alias svn="svn --config-dir \"$XDG_CONFIG_HOME\"/subversion"
sudo ~/.sudo_as_admin_successful 1.9.6 [277] [278] 仅在编译时激活时存在(默认无)。自 1.9.6 起,可以在 /etc/sudoers 中使用 admin_flag 参数。
task ~/.task~/.taskrc export TASKDATA="$XDG_DATA_HOME"/taskexport TASKRC="$XDG_CONFIG_HOME"/task/taskrc}},在 2.6 版中完全支持(请注意,$XDG_CONFIG_HOME/task/taskrc 必须存在,否则即使设置了 $XDG_CONFIG_HOME,taskwarrior 也会在旧的 $HOME/.taskrc 位置创建示例配置 [279][280]
本地 TeX Live TeXmf 树、TeXmf 缓存和配置 ~/texmf~/.texlive/texmf-var~/.texlive/texmf-config export TEXMFHOME=$XDG_DATA_HOME/texmfexport TEXMFVAR=$XDG_CACHE_HOME/texlive/texmf-varexport TEXMFCONFIG=$XDG_CONFIG_HOME/texlive/texmf-config
TeXmacs ~/.TeXmacs export TEXMACS_HOME_PATH=$XDG_STATE_HOME/texmacs
tiptopAUR ~/.tiptoprc 这仍然需要 .tiptoprc 文件。

tiptop -W "$XDG_CONFIG_HOME"/tiptop

ruby-travisAUR ~/.travis/ [281] export TRAVIS_CONFIG_PATH=$XDG_CONFIG_HOME/travis
uncrustify ~/.uncrustify.cfg export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg
Unison ~/.unison export UNISON="$XDG_DATA_HOME"/unison
unitsAUR ~/.units_history units --history "$XDG_CACHE_HOME"/units_history
urxvtd英语rxvt-unicode/Tips and tricks#Daemon-client ~/.urxvt/urxvtd-hostname export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd
Vagrant英语Vagrant ~/.vagrant.d~/.vagrant.d/aliases [282] export VAGRANT_HOME="$XDG_DATA_HOME"/vagrantexport VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases
vint ~/.vintrc.yaml.vintrc.yml.vintrc 0f741ac2c [283] 文档未记录,但代码显示 $XDG_CONFIG_HOME/.vintrc.yaml 应该可以工作
virtualenv英语virtualenv ~/.virtualenvs export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
Visual Studio Code ~/.vscode-oss/ [284] 您可以使用 export VSCODE_PORTABLE="$XDG_DATA_HOME"/vscode,但该方法未记录在文档中,可能会意外中断。

设置此项会使编辑器在 $VSCODE_PORTABLE/user-data 中查找 .config/Code - OSS 的内容。

您还可以使用 --extensions-dir 标志运行 Visual Studio,例如 code --extensions-dir "$XDG_DATA_HOME/vscode"。这已记录在文档中并有其他用例,不大可能意外中断。

VSCodiumAUR ~/.vscode-oss/ [285] [286] 您可以使用 --extensions-dir 标志运行 VSCodium,例如 vscodium --extensions-dir "$XDG_DATA_HOME/vscode"。但这不会阻止创建 ~/.vscode-oss/ 目录。
w3m ~/.w3m 26284ff [287] [288] export W3M_DIR="$XDG_STATE_HOME/w3m"
wakatime ~/.wakatime.cfg~/.wakatime.data~/.wakatime.db~/.wakatime.log export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"

该目录需要手动创建

mkdir "$XDG_CONFIG_HOME/wakatime"

wget ~/.wgetrc, ~/.wget-hsts export WGETRC="$XDG_CONFIG_HOME/wgetrc" 并将以下内容添加为 wget 的别名:wget --hsts-file="$XDG_CACHE_HOME/wget-hsts",或者使用绝对路径设置 hsts-file 变量,因为 wgetrc 不支持环境变量:echo hsts-file \= "$XDG_CACHE_HOME"/wget-hsts >> "$XDG_CONFIG_HOME/wgetrc"
wine ~/.wine [289] Winetricks 使用以下类似 XDG 的位置进行 WINEPREFIX 管理:

mkdir -p "$XDG_DATA_HOME"/wineprefixes, export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default

x3270AUR ~/.x3270pro~/.c3270pro export X3270PRO="$XDG_CONFIG_HOME"/x3270/configexport C3270PRO="$XDG_CONFIG_HOME"/c3270/config

应用程序还创建了 ~/.x3270connect 但该目录目前不支持使用 XDG。

xbindkeys英语xbindkeys ~/.xbindkeysrc xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config
xorg-xauth ~/.Xauthority export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority

请注意,LightDM 不允许您更改此变量。如果您仍然更改它,您将无法登录。请改用 startx配置 LightDM。根据 [290]SLiM 已硬编码 ~/.Xauthority

SDDM Xauthority 路径可以在其自己的配置文件中更改,如下所示。不幸的是,它是相对于主目录的。

/etc/sddm.conf.d/xauth-path.conf
[X11]
UserAuthFile=.Xauthority

在 Wayland 上,覆盖此设置可能会导致 Xorg 程序无法连接到 Xwayland 服务器。例如,kwinmutter 都使用随机名称,因此无法将其设置为静态值。

xinit ~/.xinitrc~/.xserverrc [291] export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrcexport XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc
xorg-xrdb ~/.Xresources~/.Xdefaults 最终您 应该 使用 Xresources,并且由于这些资源是通过 xrdb 加载的,因此您可以指定一个路径,例如 xrdb -load ~/.config/X11/xresources
Xorg ~/.xsession~/.xsessionrc~/.Xsession~/.xsession-errors 这些可以作为 Xorg 初始化脚本 (~/.xinitrc) 或 Xsession 启动脚本 (通常基于 /etc/X11/Xsession) 的一部分添加。

根据您配置 $XDG_CACHE_HOME 的位置,您可能需要自行扩展路径。

# xsession start script
USERXSESSION="$XDG_CACHE_HOME/X11/xsession"
USERXSESSIONRC="$XDG_CACHE_HOME/X11/xsessionrc"
ALTUSERXSESSION="$XDG_CACHE_HOME/X11/Xsession"
ERRFILE="$XDG_CACHE_HOME/X11/xsession-errors"

与此表中的大多数其他示例不同,实际的 X11 启动脚本在安装之间会有很大差异。

z ~/.z [292] export _Z_DATA="$XDG_DATA_HOME/z"
yarn ~/.yarnrc~/.yarn/~/.yarncache/~/.yarn-config/ 2d454b5 [293] [294] alias yarn='yarn --use-yarnrc "$XDG_CONFIG_HOME/yarn/config"'
zsh ~/.zshrc~/.zprofile~/.zshenv~/.zlogin~/.zlogout~/.histfile~/.zcompdump~/.zcompcache [295] export ZDOTDIR=$HOME/.config/zsh 以避免在主目录中的大多数 zsh dotfiles
.config/zsh/.zshrc
HISTFILE="$XDG_STATE_HOME"/zsh/history
# 代码补全文件:使用 XDG 目录
[ -d "$XDG_CACHE_HOME"/zsh ] || mkdir -p "$XDG_CACHE_HOME"/zsh
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME"/zsh/zcompcache
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-$ZSH_VERSION

最后,如果您使用 zsh 作为登录 shell,并选择依赖启动文件 ~/.zshenv ~/.zprofile ~/.zlogin 来设置重要的环境变量(例如 ZDOTDIR)进行引导,则无法绕过将设置 ZDOTDIR 的一个文件放在默认位置。对于上下文,一个例外是,如果您的更广泛的系统配置在此之前设置了 ZDOTDIR 环境变量。

硬编码[编辑 | 编辑源代码]

应用程序 旧路径 讨论 注释
adb & Android Studio ~/.android/ 尽管看起来并非如此,adb 将“始终”生成 ~/.android/adbkeys,尽管它也会尝试 ADB_VENDOR_KEYS 中的密钥。
aegisub ~/.aegisub/ [296]
alpine英语alpine ~/.pinerc~/.addressbook~/.pine-debug[1-4]~/.newsrc~/.mailcap~/.mime.types~/.pine-interrupted-mail alias alpine="alpine -p $XDG_CONFIG_HOME/alpine/pinerc"

在上面的配置文件中,可以使用 newsrc-path=address-book= 等选项定制一些位置。

aMule ~/.aMule [297] [298] [299]
anthy ~/.anthy [300]
Apache Directory Studio ~/.ApacheDirectoryStudio
ARandR ~/.screenlayout [301]
Arduino ~/.arduino15~/.jssc 不会修复
arduino-cli ~.arduino15/ [302] mv ~/.arduino15 $XDG_CONFIG_HOME/arduino15

在 arduino-cli.yaml 中指定 Arduino CLI 使用的新目录,如文档此处所述。 alias arduino-cli='arduino-cli --config-file $XDG_CONFIG_HOME/arduino15/arduino-cli.yaml'

ASP.NET Core ~/.aspnet [303]
Avidemux ~/.avidemux6 [304]
Bash ~/.bashrc~/.bash_history~/.bash_profile~/.bash_login~/.bash_logout 108134 10431 mkdir -p "$XDG_STATE_HOME"/bash

export HISTFILE="$XDG_STATE_HOME"/bash/history

bashrc 可从 /etc/bash.bashrc 中的不同位置获取。 对于交互式 shell,请指定 --init-file <file> 作为 ~/.bashrc 的替代。

borgmatic英语borgmatic ~/.borgmatic/ [305] 在您的 config.yaml 中设置 borgmatic_source_directory: ~/.local/state/borgmatic。这可能会破坏恢复,请参阅讨论。
Berkshelf英语Chef ~/.berkshelf/
chattyAUR ~/.chatty/ [306]
cmake ~/.cmake/ [307] 用于用户包注册表 ~/.cmake/packages/<package>,详见 cmake-packages(7) § User Package RegistryPackage registry wiki 页面。看起来像是硬编码的,例如在 cmFindPackageCommand.cxx
cmus ~/.config/cmus [308] [309]
Cinnamon ~/.cinnamon/ [310]
conanAUR ~/.conan/ [311] export CONAN_USER_HOME="$XDG_CONFIG_HOME" 将设置创建 .conan/ 的目录。它是 旨在简化 CI,但也可以在这里使用。
cryptomatorAUR ~/.Cryptomator [312]
cVim[失效链接 2022-09-23 ⓘ] ~/.cvimrc [313]
darcs英语darcs ~/.darcs/ [314]
dart ~/.dart~/.dart-tool~/.dartServer [315]
dbus ~/.dbus/ [316] 考虑使用 dbus-broker,因为它不会创建或使用该目录。
devede ~/.devedeng 此处硬编码
Dia ~/.dia/
dig ~/.digrc
dotnet-sdk ~/.dotnet/~/.templateengine [317]
dropbox ~/.dropbox/
Eclipse ~/.eclipse/ [318] 选项 -Dosgi.configuration.area=@user.home/.config/.. 可覆盖,但必须添加到 "$ECLIPSE_HOME"/eclipse.ini" 而不是命令行,这意味着您必须具有对 $ECLIPSE_HOME 的写权限。(Arch Linux 在 /usr/bin/eclipse 中对 $ECLIPSE_HOME 进行硬编码。)
emacs-slime ~/.slime/ [319]

[320]

equalxAUR ~/.equalx/ [321]
Fetchmail ~/.fetchmailrc
Firefox ~/.mozilla/ [322] [323]
Flatpak ~/.var/ [324] [325] 不会修复
freesweep ~/.sweeprc [326]
gftpAUR ~/.gftp/ [327] gftp 计划遵循 XDG 规范。
gitkrakenAUR ~/.gitkraken/ [328]
GoldenDict ~/.goldendict/ [329]
gphoto2 ~/.gphoto [330]
gramps ~/.gramps/ [331] 2022 支持 XDG 基础目录规范(针对下一版本 Gramps 5.2)⸺补丁 https://github.com/gramps-project/gramps/pull/1368
groovy ~/.groovy/
grsync ~/.grsync/ [332]
google-cloud-cliAUR ~/.gsutil/ [333]
gtk-recordMyDesktop ~/.gtk-recordmydesktop
hplip ~/.hplip/ [334]
hydrogen ~/.hydrogen/ [335]
idris ~/.idris [336]
itch-setup-binAUR ~/.itch 不会修复 您可以在应用程序设置中移动游戏安装位置。
Jmol ~/.jmol/ [337]
lbdbAUR ~/.lbdbrc~/.lbdb/ [338]
llpp英语llpp ~/.config/llpp.conf [339][失效链接 2022-09-23 ⓘ](存储库已删除) 3ab86f0 中添加,但随后在旧仓库:e253c9f1/新仓库:e253c9f1 中恢复
Java OpenJDK ~/.java/fonts [340] export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
Java OpenJFX ~/.java/webview
jgmenu ~/.jgmenu-lockfile [341] [342]
jitsi-meetAUR ~/Downloads libjitsi#518 下载目录硬编码为 ~/Downloads 而不是 XDG_DOWNLOAD_DIR (来自 XDG 用户目录)。
julia ~/.juliarc.jl~/.julia_history~/.julia [343] [344] 尾随的 :$JULIA_DEPOT_PATH 是必需的。请参阅 [345]
export JULIA_DEPOT_PATH="$XDG_DATA_HOME/julia:$JULIA_DEPOT_PATH"
export JULIAUP_DEPOT_PATH="$XDG_DATA_HOME/julia"
kotlin ~/.kotlinc_history 相关 Konan 问题:[346]
Kubernetes英语Kubernetes ~/.kube/ [347][348][349]
export KUBECONFIG="$XDG_CONFIG_HOME/kube" 
export KUBECACHEDIR="$XDG_CACHE_HOME/kube"
elan-leanAUR ~/.elan [350]
librewolfAUR ~/.mozilla

~/.librewolf

[351]
lldb ~/.lldb~/.lldbinit
LMMS英语LMMS ~/.lmmsrc.xml [352]
man-db ~/.manpath [353]
mathomatic ~/.mathomaticrc~/.matho_history 可以使用 rlwrap mathomatic -r 并适当设置 RLWRAP_HOME 环境来移动历史记录。
MediaWiki ~/.mweval_history and ~/.mwsql_history (if $HOME is defined) 如果未定义 $HOME:[MediaWiki]/maintenance/.mweval_history[MediaWiki]/maintenance/.mwsql_history

由维护脚本 eval.phpsql.php 生成。

Minecraft ~/.minecraft/ 不会修复
Minetest英语Minetest ~/.minetest/ 不会修复 [354]
minicom ~/.minirc.dfl Upstream 在 ~/.config/minicom 下有一个用于支持配置文件的 TODO 条目。[355]
Mono ~/.mono/ [356]
mongodb ~/.mongorc.js~/.dbshell [357] 这个 Stack Overflow 线程 建议使用命令行开关 --norc 来实现部分解决方法。
~/.netrc ~/.ssh 一样,许多程序都希望此文件在此处。其中包括 curl (CURLOPT_NETRC_FILE)、ftp (NETRC)、s-nail (NETRC) 等项目。虽然其中一些提供了可配置的替代位置,但许多程序没有提供,例如 w3m、wget 和 lftp。
nim ~/.nimble [358]

[359]

Nimble 将在启动时 尝试加载 ~/.config/nimble/nimble.ini,在那里设置 nimbleDir。您还必须在 Nim 编译器 配置文件 中更改 nimblepath
nmcli ~/.nmcli-history [360] 硬编码为 g_get_home_dir()[361] [362]
Networkmanager-openvpn英语Networkmanager-openvpn ~/.cert/nm-openvpn [363]
nyx ~/.nyx 该项目目前不再维护。
ollama ~/.ollama [364] 可以使用以下命令设置模型位置:

export OLLAMA_MODELS=$XDG_DATA_HOME/ollama/models

来源:[365]

openshot ~/.openshot_qt [366] [367]
OpenSSH ~/.ssh 不会修复 假定许多 ssh 守护进程和客户端(例如 DropBear 和 OpenSSH)都存在。
palemoon ~/.moonchild productions [368]
parsec-binAUR ~/.parsec
pcsxrAUR ~/.pcsxr 存在 -cfg 标志,但只能相对于 ~/.pcsxr 进行设置。
perf ~/.debug 硬编码在 tools/perf/util/config.c。提交:[369]
perl英语perl ~/.cpan~/perl5 [370] Perl5 的 CPAN 需要 ~/.cpan
phoronix-test-suiteAUR ~/.phoronix-test-suite [371] 部分解决方法:[372]
PHP ~/.php_history [373] PHP 应用程序可以使用 readline_read_history ​​和 readline_write_history ​​读取/写入自定义文件。
portfolio-performance-binAUR ~/.PortfolioPerformance/ [374]
various shells and display managers ~/.profile
psensor ~/.psensor [375]
pulumi ~/.pulumi [376]
python-tensorflow ~/.keras [377] 这个问题是关于 tf.keras 模块的。
quilt ~/.quiltrc 如果 ~/.quiltrc 不存在,则返回 /etc/quilt.quiltrc
Qt Designer ~/.designer [378]
R英语R ~/.Rprofile~/.Rdata~/.Rhistory
R_HOME_USER="$HOME/.config/R"
R_PROFILE_USER="$HOME/.config/R/profile"
R_HISTFILE="$HOME/.config/R/history"
RedNotebook ~/.rednotebook [379]
Remarkable ~/.remarkable
renderdoc ~/.renderdoc 不会修复
Ren'Py ~/.renpy 不会修复 最新版本尊重 RENPY_PATH_TO_SAVES 环境变量。因此您可以设置它来更改某些游戏的路径。
export RENPY_PATH_TO_SAVES="$XDG_DATA_HOME/renpy"
repo ~/.repoconfig [380]
rpm英语rpm ~/.rpmrc ~/.rpmmacros Backlog 解决方法是使用 --rcfile 和 --macros,但这会产生副作用。
SANE ~/.sane/ scanimage 在该目录创建一个 .cal 文件。
sbcl ~/.sbclrc
/etc/sbclrc
(require :asdf)
(setf sb-ext:*userinit-pathname-function*
      (lambda () (uiop:xdg-config-home #P"sbcl/sbclrc")))

请注意,这需要 root 权限,并将更改所有用户的 ~/.sbclrc 位置。可以通过检查 lambda 表单中是否存在 ~/.sbclrc 来缓解此问题。

SeaMonkey ~/.mozilla/seamonkey [381]
Signal Desktop [382] 目前将消息保存在 ~/.config/Signal
Snap ~/snap/ [383]
Solfege ~/.solfege, ~/.solfegerc, ~/lessonfiles [384]
SpamAssassin ~/.spamassassin
Steam ~/.steam, ~/.steampath, ~/.steampid [385] 许多游戏引擎(Unity 3D、Unreal)都遵循该规范,但个别游戏发行商会对 Steam Auto-Cloud 中的路径进行硬编码,导致游戏保存同步到错误的目录。
stremioAUR ~/.stremio-server/ [386]
sts4 ~/.sts4 [387] 传递 JVM 参数 -Dlanguageserver.boot.symbolCacheDir=$XDG_CACHE_HOME/sts4/symbolCache
python-streamlitAUR ~/.streamlit [388]
sweethome3d ~/.eteks/sweethome3d [389]
python-sympy ~/.sympy-history [390]
TeamSpeak英语TeamSpeak ~/.ts3client export TS3_CONFIG_DIR="$XDG_CONFIG_HOME/ts3client"
terraform ~/.terraform.d/ [391]
texinfo ~/.infokey info --init-file "$XDG_CONFIG_HOME/infokey"
Thunderbird ~/.thunderbird/ [392]
TigerVNC ~/.vnc [393]
tllocalmgr ~/.texlive
urlviewAUR ~/.urlview 改用 fork urlview-xdg-gitAUR。Fork 将使用 XDG_CONFIG_HOME/urlview/config
vale ~/.vale.ini 不会修复 vale --config "$XDG_CONFIG_HOME/vale/config.ini"
viberAUR ~/.ViberPC
vimperator ~/.vimperatorrc [394] export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"

export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator

visidata ~/.visidata [395]
wpa_cli ~/.wpa_cli_history
wegoAUR ~/.wegorc [396]
x2goclientAUR ~/.x2goclient alias x2goclient="x2goclient --home=$HOME/.config"
xpdf ~/.xpdfrc
xrdpAUR ~/thinclient_drives 对于目录 ~/thinclient_drives,您可以考虑编辑 /etc/xrdp/sesman.ini 并按照示例配置修改部分 [Chansrv]
XVim2 ~/.xvimrc [397]
YARD ~/.yard [398] 如果有人想实现它,将会接受 PR。
zenmap nmap ~/.zenmap [399] [400]
zoomAUR ~/.zoom 不推荐:设置以下变量会移动 .zoom 的内容,但目录本身始终会创建。此外,它会破坏某些功能,例如无法开始会议。export SSB_HOME="$XDG_DATA_HOME"/zoom
zotero-binAUR ~/.zotero ~/Zotero [401]

工具[编辑 | 编辑源代码]

工具 xdg-ninjaAUR 可检测 $HOME 中可移动到 XDG 基本目录的不需要的文件/目录。请参阅 README 了解示例。

工具 boxxy 可用于包装不遵守 XDG 基本目录的应用程序并重定向任何不需要的文件。

工具 ephemeral 可用于将通常位于 XDG_CONFIG_HOME 中的 chromium/electron 缓存链接到 XDG_CACHE_HOME 中的位置。

[编辑 | 编辑源代码]

C
libXDGdirs
libxdg-basedir
C99:Cloudef的简单实现.
C++
xdg-utils-cxx
xdgpp
Go
adrg/xdg
go-appdir(弃用,已归档)
configdir(弃用,已归档)
kyoh86/xdg(弃用,已归档)
Haskell
自 1.2.3.0 ab9d0810ce 起正式位于 directory
xdg-basedir
JVM
Java、Kotlin、Clojure、Scala⋯⋯
directories-jvm
Perl
File-BaseDir
Python
pyxdg
appdirs(已废弃)
platformdirs
Ruby
bkuhlmann/xdg
rubyworks/xdg(弃用,已废弃)
Rust
directories-rs
rust-xdg
Swift
swift-xdg
Vala
通过 GLib.Environment 提供内置支持。
参见 get_user_cache_dirget_user_data_dirget_user_config_dir 等。

提示与技巧[编辑 | 编辑源代码]

隐藏不需要的目录[编辑 | 编辑源代码]

对于无法重新定位的目录,某些桌面环境(例如 KDE)允许您隐藏它们:

$ echo path >> ~/.hidden

path 是文件/目录的路径,相对于 .hidden 的父目录。

参见[编辑 | 编辑源代码]