XDG 基本目录

出自 ArchWiki
(重定向自 XDG Base Directory support

本文总结了 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
    • 用于非必要的用户特定数据文件,例如套接字、命名管道等。
    • 不需要具有默认值;如果未设置或未提供等效项,则应发出警告。
    • 必须由用户拥有,访问模式为 0700
    • 文件系统完全符合操作系统标准。
    • 必须位于本地文件系统上。
    • 可能会定期清理。
    • 每 6 小时修改一次,如果需要持久性,则设置粘滞位。
    • 只能在用户登录期间存在。
    • 不应存储大文件,因为它可能作为 tmpfs 挂载。
    • pam_systemd 将其设置为 /run/user/$UID

系统目录

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

支持

本条目或章节需要扩充。

理由: 当前支持/部分支持/硬编码的划分不够详细,可能会产生误导。 表格可以合并为一个(添加更多关于程序如何使用规范的字段),或者可以使用不同命名的类别。 (在 Talk:XDG Base Directory#添加支持类别描述 中讨论)

本节旨在编录越来越多的使用 2003 年引入的 XDG 基本目录规范 的软件。 此处旨在通过列出常见的点文件及其支持状态来证明此规范的可行性。 对于那些当前不支持基本目录规范的软件,将演示变通方法来模拟它。

变通方法将仅限于不涉及修补源代码、执行存储在环境变量中的代码或编译时选项的任何内容。 这样做的理由是配置应在系统之间可移植,而编译时选项会阻止这种情况。

希望这将提供有关某些类型的点文件到底是什么以及它们来自何处的信息来源。

贡献

贡献时,请确保使用正确的部分。

任何东西都不应需要代码评估、补丁或编译时选项来获得支持,任何需要这些的都必须被视为硬编码。 此外,如果过程容易出错或困难,也应将其归类为硬编码。

  • 第一列应该是内部文章的链接、Template:PkgTemplate:AUR
  • 第二列用于项目拥有的任何旧文件和目录(每行一个),这样做是为了让人们即使在不再读取它们的情况下也能找到它们。
  • 在第三列中,尝试查找项目切换到 XDG 基本目录的提交或版本,或任何公开讨论,并将它们包含在接下来的两列中(每行两个)。
  • 最后一列应包含任何适当的变通方法或解决方案。 请验证您的解决方案是否正确且功能正常。

已支持

应用程序 旧路径 开始支持版本 讨论 注释
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, ~/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
asunderAUR ~/.asunder ~/.asunder_album_artist ~/.asunder_album_genre ~/.asunder_album_title 2.9.0[死链 2021-05-17 ⓘ] [12][死链 2021-05-17 ⓘ] ~/.asunder 使用 XDG_CONFIG_HOME/asunder/asunder,其他 3 个文件使用 XDG_CACHE_HOME/asunder/asunder_album_...。 迁移后旧路径不会被删除,必须手动删除。
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]
borgmatic ~/.borgmatic/ 1.9.0 [17]
byobu ~/.byobu 4.17 [18]

XDG_CONFIG_HOME/byobu

如果旧路径存在,或者如果设置 XDG_CONFIG_HOME,则旧路径优先。

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

如果旧路径 ~/.calcurse 存在,则它将优先。

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

XDG_CACHE_HOME/clangd

项目特定的配置可以在 proj/.clangd 中指定。 当这样做是明智的时,配置会被合并。 如果发生冲突,用户配置具有最高优先级,然后是内部项目,然后是外部项目。

clifmAUR ~/.config/clifm/ 9d6e482 XDG_CONFIG_HOME/clifm/
Composer ~/.composer 1.0.0-beta1 [25]
crossnote ~/.mume d714a82

0.8.13

[26] $XDG_CONFIG_HOME/mume

如果旧路径存在,则它将优先。

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

8fb0b04

Issue 89

Pull request 2384

在启动时,Universal-ctags 加载文件扩展名为 `.ctags` 的文件,位于: $XDG_CONFIG_HOME/ctags

请参阅 Ctags 选项文件

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

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

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

27.1

XDG_CONFIG_HOME/emacs/init.el

旧路径优先于 XDG 路径。 Emacs 永远不会创建 XDG_CONFIG_HOME/emacs/。 26.3 或更早版本的解决方法:可以设置 HOME,但它具有意想不到的副作用。

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

[36] [37]

freecad ~/.FreeCAD e7e2994ba

0.20.0

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

旧路径可以使用 FreeCAD --keep-deprecated-paths

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

60e0cfe 483505f

[42] [43]

Git ~/.gitconfig, ~/.gitignore, ~/.gitattributes, ~/.git-credentials, ~/.gitk 0d94427, dc79687, 684e40f Git 配置, Git 属性, Git 凭证, gitk XDG_CONFIG_HOME/git/config, XDG_CONFIG_HOME/git/ignore, XDG_CONFIG_HOME/git/attributes, XDG_CONFIG_HOME/git/credentials, XDG_CONFIG_HOME/git/gitk
gops 71c4255
gnuplot ~/.gnuplot_history a5562b1

[44]

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

3.0-stable

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

旧方法 export STACK_ROOT="$XDG_DATA_HOME"/stack 仍然有效并具有优先级 [49][死链 2024-07-30 ⓘ]

helm ~/.helm 3.0.0
htop ~/.htoprc 93233a6 XDG_CONFIG_HOME/htop/htoprc
httpie ~/.httpie 5af0874 [50]
hunspell ~/.hunspell_default. [51]
i3 ~/.i3 7c130fb
i3blocks, i3blocks-gitAUR [52]
i3status ~/.i3status.conf c3f7fc4
i3status-rust
IdeaVim ~/.ideavimrc 0.54.1-EAP [53] XDG_CONFIG_HOME/ideavim/ideavimrc
imagemagick
iotop-c ~/.config/iotop [54] [55]
Inkscape ~/.inkscape 0.47 [56]
ipython ~/.ipython 8.0.0 [57] 检查 $XDG_CONFIG_HOME/ipython(如果 XDG_CONFIG_HOME 未设置,则检查 ~/.config/ipython)是否存在,否则使用 ~/.ipython
iwd / iwctl ~/.iwctl_history d3e00d7f
intellij-idea-community-edition / intellij-idea-ultimate-editionAUR ~/.IntelliJIdeaXXXX.X 2020.1 [58]
XDG_CONFIG_HOME/JetBrains/IntelliJIdeaXXXX.X
XDG_DATA_HOME/JetBrains/IntelliJIdeaXXXX.X
XDG_CACHE_HOME/JetBrains/IntelliJIdeaXXXX.X
josm ~/.josm 11162 [59]
jupyter ~/.jupyter 在 5.0 中选择加入,在 6.0 中选择退出,在 7.0 中强制执行(更新日志 XDG_CONFIG_HOME/jupyter
Kakoune
keynavAUR ~/.keynavrc XDG_CONFIG_HOME/keynav/keynavrc
less ~/.lesskey, ~/.lesshst 590

598 中完全支持

[60] 环境变量 XDG_CONFIG_HOMEXDG_DATA_HOME 必须在 590 版本中设置。 在 598 版本中,不再需要这样做。

XDG_CONFIG_HOME/lesskey

XDG_STATE_HOME/lesshstXDG_DATA_HOME/lesshst

latexmk(在 texlive-binextra 中) ~/.latexmkrc

XDG_CONFIG_HOME/latexmk/latexmkrc

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

如果旧路径 ~/.luarocks 存在,则它将优先。

mangohud 65b90fc [64] XDG_CONFIG_HOME/MangoHud
mc ~/.mc

1b99570 0b71156 ce401d7

[65]
Mercurial ~/.hgrc

3540200 4.2

XDG_CONFIG_HOME/hg/hgrc.
mesa 87ab26b XDG_CACHE_HOME/mesa
milkytracker ~/.milkytracker_config eb487c5 [66]
mlterm ~/.mlterm/ 71df071 [67] XDG_CONFIG_HOME/mlterm/
nmcli ~/.nmcli-history 1.52.0 [68] [69] [70] XDG_CACHE_HOME/nmcli-history
mozc ~/.mozc 91cc1e1 [71]
mpd ~/.mpdconf 87b7328
mpv ~/.mpv cb250d4 [72]
msmtp ~/.msmtprc

af2f409 v1.6.7+

XDG_CONFIG_HOME/msmtp/config.
mutt ~/.mutt b17cd67 [73]
mypaint ~/.mypaint cf723b7
nano ~/.nano/ ~/.nanorc c16e79b [74]
ncmpcpp ~/.ncmpcpp ~/.lyrics

38d9f81 27cd86e

[75] [76] [77]

应设置 ncmpcpp_directory 以避免在 ~/.ncmpcpp 中出现 error.log 文件。 并且可以将 lyrics_directory 设置为 ~/.cache/ncmpcpp-lyrics 以避免 ~/.lyrics
Neovim ~/.nvim ~/.nvimlog ~/.nviminfo 1ca5646bb

[78] [79]

Nestopia UE ~/.nestopia/ 610c008 1.51.0 [80]
newsboat ~/.newsboat 3c57824 [81] 需要创建这两个目录 [82]

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

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

~/.utoprc

2.13.0

9729963

[89] XDG_STATE_HOME/utop/utop-history

XDG_CONFIG_HOME/utop/utoprc

OfflineIMAP ~/.offlineimaprc 5150de5 [90] XDG_CONFIG_HOME/offlineimap/config
openal ~/.alsoftrc 3c90ed9 XDG_CONFIG_HOME/alsoft.conf
opentyrianAUR ~/.opentyrian 39559c3 [91]
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 [92] XDG_CONFIG_HOME/Yubico/u2f_keys
pandoc-cli ~/.pandoc/ 0bed0ab [93]
PCManFM ~/.thumbnails 1.3.2
pcsx2AUR ~/.pcsx2

87f1e8f a9020c6 3b22f0f 0a012ae

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

a0be0cc7 15e1fc92 e9d1be0e

[96]
python-autoimportAUR ~/.config/autoimport/config.toml 1.2.0 [97] XDG_CONFIG_HOME/autoimport/config.toml
python-black ~/.config/black 21.4b0 [98] XDG_CONFIG_HOME/black, XDG_CACHE_HOME/black/<version>/
python-pylint ~/.pylint.d 2.10 [99][死链 2024-10-12 ⓘ] 以前是 export PYLINTHOME="$XDG_CACHE_HOME"/pylint,全局配置仍然需要:export PYLINTRC="$XDG_CONFIG_HOME"/pylint/pylintrc
python-pip ~/.pip 6.0 [100]
python-pipx ~/.local/pipx c3d8de9 [101] 为了兼容性,如果 ~/.local/pipx 存在,pipx 将恢复为 ~/.local/pipx。 使用 python-platformdirs 实现
python-poetry ~/.poetry [102] [103]
powershellAUR 6.0
ppsspp ~/.ppsspp 132fe47 [104]
procps-ng ~/.toprc af53e17

[105] [106]

pacman ~/.makepkg.conf 80eca94 [107]
panda3dAUR ~/.panda3d 2b537d2
pnpm ~/.pnpm-store [108] [109] [110]
poezioAUR
PulseAudio ~/.pulse ~/.pulse-cookie

59a8618 87ae830 9ab510a 4c195bc

[111] Steam 可能仍然会创建 ~/.pulse-cookie。 将 cookie-file = ~/.config/pulse/cookie 添加到 /etc/pulse/client.conf 以摆脱它。
pyroomAUR
quodlibet ~/.quodlibet 3.10.0 [112]
qutebrowser
qtile

fd8686e 66d704b 51cff01

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

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 [125]
shellcheck ~/.shellcheckrc 581bcc3 XDG_CONFIG_HOME/shellcheckrc

请参阅 Shellcheck RC 文件 以获取更多信息。

snes9x ~/.snes9x 93b5f11 [126] 默认情况下,配置文件留空,目的是让用户随意填写(通过图形界面或手动方式)。
spectrwm ~/.spectrwm a30bbb [127]
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 [128] XDG_CONFIG_HOME/sway/config
sxhkd
systemd
teeworlds ~/.teeworlds [129]
termite
tig ~/.tigrc, ~/.tig_history 2.2 [130] ~/.local/share/tig 目录必须存在,否则写入 ~/.tig_history
TigerVNC ~/.vnc 1.14.0 [131]
主题 (桌面) ~/.icons/, ~/.themes/ [132] XDG_DATA_HOME/icons

XDG_DATA_HOME/themes

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

tmux ~/.tmux.conf 3.1 [133] 3.1 版本引入了 ~/.config/tmux/tmux.conf,并且在 3.2 版本中添加了 XDG_CONFIG_HOME/tmux/tmux.conf
tmuxp ~/.tmuxp 1.5.0 [134] 1.5.2 版本中修复
tmuxinatorAUR ~/.tmuxinator 2636923 [135]
Transmission ~/.transmission b71a298
util-linux 570b321
yapf a0b51d2 [136] $XDG_CONFIG_HOME/yapf/style
Uzbl c6fd63a [137]
vale ~/.vale.ini 3.0.0
vim ~/.vim, ~/.vimrc, ~/.viminfo c9df1fb [138] XDG_CONFIG_HOME/vim/vimrc

有关更多详细信息,请参阅 :h xdg-base-dir

可以使用 :set viminfofile= 设置 viminfo 文件

vimb
VirtualBox ~/.VirtualBox 4.3 [139]
vis ~/.vis

68a25c7 d138908

[140]
VLC ~/.vlcrc 16f32e1 [141]
warsow ~/.warsow-2.x 98ece3f [142]
WeeChat ~/.weechat [143]

3.2

[144] [145][死链接 2023-05-06 ⓘ]
XDG_CONFIG_HOME/weechat
XDG_CACHE_HOME/weechat
XDG_DATA_HOME/weechat
Wireshark ~/.wireshark b0b53fa[死链接 2022-09-23 ⓘ]
wxWidgets [146]
XKB ~/.xkb
Xsettingsd ~/.xsettingsd b4999f5
xmobar ~/.xmobarrc 7b0d6bf[死链接 2024-07-30 ⓘ]

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

[147][死链接 2024-07-30 ⓘ]

[148][死链接 2024-07-30 ⓘ]

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

[149] [150]

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

或者,它始终遵循 XMONAD_CACHE_DIRXMONAD_CONFIG_DIRXMONAD_DATA_DIR

xonsh ~/.xonshrc [151] $XDG_CONFIG_HOME/xonsh/rc.xsh
xournalpp ~/.xournalpp 20db937f

1.1.0

[152]

[153]

xsel ~/.xsel.log ee7b481 [154]
Zim e42b8b0
 $XDG_CONFIG_HOME/zim/preferences.conf
 $XDG_CONFIG_HOME/zim/notebooks.list
zoxide ~/.zo 0.3.0 [155]
zutils ~/.zutilsrc 1.12
$XDG_CONFIG_HOME/zutils.conf

部分支持

应用程序 旧路径 开始支持版本 讨论 注释
abookAUR ~/.abook abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_DATA_HOME"/abook/addressbook
ack ~/.ackrc [156] export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"
Ansible ~/.ansible 2.14 [157] [158] [159]
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"
[160]

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

asdf-vmAUR ~/.asdfrc, ~/.asdf/ [163] export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc", export ASDF_DATA_DIR="${XDG_DATA_HOME}/asdf"
aspell ~/.aspell.conf [164] 非常不完整。 以下代码重新定位了 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 [165] export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials, export 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 [166] 中所述,您可以指定一个文件来从中运行命令。 因此,将初始化文件移动到 XDG_CONFIG_HOME/bashdb/bashdbinit 并创建一个别名 alias bashdb='bashdb -x ${XDG_CONFIG_HOME:-$HOME/.config}/bashdb/bashdbinit'。 不幸的是,历史记录文件是硬编码的 [167]
bazaar ~/.bazaar, ~/.bzr.log 2.3.0 [168] 上游错误讨论指出,如果 ~/.config/bazaar 存在,bazaar 将使用它。 日志文件 ~/.bzr.log 仍可能被写入。
bogofilter-db ~/.bogofilter 0.7.5 [169] export BOGOFILTER_DIR="$XDG_DATA_HOME"/bogofilter
btpd-gitAUR ~/.btpd/ [170] btpd -d "$XDG_DATA_HOME"/.btpd

HOME="$XDG_DATA_HOME" btcli

bunAUR ~/.bun/ [171] 当显式设置 $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 [172] [173] [174] [175] export CARGO_HOME="$XDG_DATA_HOME"/cargo
cataclysm-dda ~/.cataclysm-dda 0.D-1 [176] 由于需要编译时选项,因此部分支持
cd-bookmark ~/.cdbookmark [177] export CD_BOOKMARK_FILE=$XDG_CONFIG_HOME/cd-bookmark/bookmarks

或使用具有原生 XDG 支持的分支:[178]

cgdb ~/.cgdb [在主分支上,但尚未发布] [179] [180] 设置 export CGDB_DIR=$XDG_CONFIG_HOME/cgdb 并将配置文件移动到 XDG_CONFIG_HOME/cgdb/cgdbrc
chez-schemeAUR ~/.chezscheme_history petite --eehistory "$XDG_DATA_HOME"/chezscheme/history
chktex 在 texlive-binextra ~/.chktexrc 将配置文件移动到 $XDG_CONFIG_HOME/chktex/.chktexrc(注意前导点)并 export CHKTEXRC=$XDG_CONFIG_HOME/chktex
Chromium ~/.chromium, ~/.pki 23057 [181] [182] [183] 故意(根据这些来源)破坏 ~/.config,将数百兆字节的缓存数据写入其中。 完全不受支持。
Chromium 创建 .pki 是因为即使 NSS 本身现在允许使用 XDG 规范,也没有正确设置 NSS。 这导致其下游也无法正常工作(Qt WebEngine 尤其影响许多情况,例如 KMail 等)。
cinelerra ~/.bcast5 [184] export CIN_CONFIG="$XDG_CONFIG_HOME"/bcast5
conky ~/.conkyrc 00481ee [185] conky --config="$XDG_CONFIG_HOME"/conky/conkyrc
claws-mail ~/.claws-mail [186] 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 ~/.nv export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
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 [187] 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 export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks
elixir ~/.mix, ~/.hex afaf889 [188] [189] Elixir 未完全遵循 XDG 规范,仅当 MIX_XDG 变量设置为特定值时才使用 XDG,否则默认使用旧版路径。

export MIX_XDG="true"

Elm ~/.elm export ELM_HOME="$XDG_CONFIG_HOME"/elm
factorioAUR ~/.factorio/ [190] [191] Factorio 支持使用配置文件手动指定数据路径:[192]
__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/ [193] 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 [194]
fzf-gitAUR ~/.fzf.bash, ~/.fzf.zsh [195] 如果使用 --xdg 调用安装脚本,例如 /usr/local/opt/fzf/install --xdg,则 shell 初始化文件将安装到 XDG_CONFIG_HOME/fzf
emscripten ~/.emscripten, ~/.emscripten_sanity, ~/.emscripten_ports, ~/.emscripten_cache__last_clear [196] export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config, export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache, export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache, emcc --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/getmailrc getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"
ghc ~/.ghci [197] [198] 上游从 9.4.1 版本开始支持 [199],但截至 2022-09-24,Arch 包版本为 9.0.2,尚未更新。
ghcup-hs-binAUR ~/.ghcup [200] [201] export GHCUP_USE_XDG_DIRS=true

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

glivAUR ~/.glivrc gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc
gnuradio ~/.gnuradio [203] 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 [204] [205] export GNUPGHOME="$XDG_DATA_HOME"/gnupg, gpg2 --homedir "$XDG_DATA_HOME"/gnupg

请注意,由于套接字目录会根据 $GNUPGHOME 的哈希值而变化,因此目前这不能通过 systemd 用户单元和基于套接字的激活机制直接使用。您可以使用 gpgconf --list-dirs socketdir 获取新的套接字目录,并且必须相应地修改 systemd 用户单元以监听正确的套接字。您还必须使用以下 gpg-agent.service drop-in 文件(或者将 GNUPGHOME 环境变量传递给 systemd 中运行的代理),否则您可能会遇到“丢失”私钥的问题。

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

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

Go ~/go [206] export GOPATH="$XDG_DATA_HOME"/go, export GOMODCACHE="$XDG_CACHE_HOME"/go/mod

如果未设置 GOMODCACHE,则默认值为 $GOPATH/pkg/mod(请参阅 [207])。 支持 GOCACHE,默认值为 $XDG_CACHE_HOME/go-build(请参阅 [208])。

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 客户端 ~/.gq, ~/.gq-state 1.51 export GQRC="$XDG_CONFIG_HOME"/gqrc, export GQSTATE="$XDG_DATA_HOME"/gq/gq-state, mkdir -p "$(dirname "$GQSTATE")"
Gradle ~/.gradle [209]

[210]

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 中是硬编码的,但仅仅作为一个输出文件,设置可以重复移动到该位置。

要防止 KDE Plasma 创建此文件,请禁用“GNOME/GTK 设置同步”后台服务。

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

[213]

export HOUDINI_USER_PREF_DIR="$XDG_CACHE_HOME"/houdini__HVER__

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

imapfilterAUR ~/.imapfilter export IMAPFILTER_HOME="$XDG_CONFIG_HOME/imapfilter"
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 [214] irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi
isync ~/.mbsyncrc [215] mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc
Java#OpenJDK ~/.java/.userPrefs [216] export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
jupyter ~/.jupyter 5.0.0rc0 [217] [218] 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"(请参阅 [219]

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

k9s ~/.k9s 0.20.4 [220] export K9SCONFIG="$XDG_CONFIG_HOME"/k9s
KDE ~/.kde, ~/.kde4 [221] export KDEHOME="$XDG_CONFIG_HOME"/kde
keychain ~/.keychain [222] [223] keychain --absolute --dir "$XDG_RUNTIME_DIR"/keychain
kodi ~/.kodi [224] [225] KODI_DATA=$XDG_DATA_HOME/kodi
kscriptAUR ~/.kscript [226] export KSCRIPT_CACHE_DIR="$XDG_CACHE_HOME"/kscript
ledger ~/.ledgerrc, ~/.pricedb [227] ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc
Leiningen ~/.lein, ~/.m2 export LEIN_HOME="$XDG_DATA_HOME"/lein

要更改 leiningen 使用的 m2 仓库位置,请查看此处:Leiningen#m2_repo_location

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

确保预先设置了 XDG_CACHE_HOME,以便运行 Xorg 的用户对其具有写入权限。

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

LibreOffice [230] Libreoffice 将所有内容存储在 $XDG_CONFIG_HOME/libreoffice/4/user/ 中,包括运行时文件、用户数据、缓存和扩展。 其中一些可以在工具 > 选项 > LibreOffice > 路径下更改
libx11 ~/.XCompose, ~/.compose-cache export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose, export XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose
ltrace ~/.ltrace.conf ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf
Luanti ~/.minetest/ [231] export MINETEST_USER_PATH="$XDG_DATA_HOME"/luanti
lynx /etc/lynx.cfg export LYNX_CFG="$XDG_CONFIG_HOME"/lynx.cfg
m17n-db ~/.m17n.d [232]
maptool-binAUR ~/.maptool-rptools [233]
/opt/maptool/lib/app/MapTool.cfg
[JavaOptions]
-DMAPTOOL_DATADIR=.local/share/maptool-rptools

但是,没有办法更改此配置文件的位置。

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

, mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml 并在 settings.xml 中适当设置 <localRepository>

Mathematica ~/.Wolfram export WOLFRAM_USERBASE="$XDG_CONFIG_HOME"/Wolfram

以前是 MATHEMATICA_USERBASE,请参阅 从 Mathematica 升级到 Wolfram

maxima ~/.maxima export MAXIMA_USERDIR="$XDG_CONFIG_HOME"/maxima
mednafen ~/.mednafen export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen
minikube ~/.minikube [235] 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 mocp -M "$XDG_CONFIG_HOME"/moc, mocp -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 [236]
/etc/mtpaint/mtpaintrc
userINI = ~/.config/mtpaint
mypy ~/.config/mypy/config, ~/.mypy.ini, ~/.mypy_cache v0.670 [237] [238] XDG_CONFIG_HOME/mypy/config, export 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 [239]

不支持 ~/.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"/terminfo, export 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 [240] netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans
Node.js ~/.node_repl_history [241] export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
npm ~/.npm, ~/.npmrc [242] 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 [243] export OPAMROOT="$XDG_DATA_HOME"/opam

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

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) [244] mkdir "$XDG_DATA_HOME"/spotdl
nuget ~/.nuget/packages [245] export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
NVIDIA ~/.nv 如果设置了 XDG_CACHE_HOME,则使用它,否则不正确地回退到 ~/.nv 而不是 ~/.cache
nvidia-settings ~/.nvidia-settings-rc [246] 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/ [247] [248] export OMNISHARPHOME="$XDG_CONFIG_HOME/omnisharp"
openscad ~/.OpenSCAD 7c3077b0f [249] 未完全遵循 XDG Base Directory Specification,请参阅 [250]

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

packettracerAUR ~/.packettracer, ~/pt 具有 GUI 配置来更改 PT 安装目录,~/pt/Options > Preferences > Administrative > User Folder)。 此路径写入文件 ~/.packettracer

日志文件可能仍会写入 ~/pt/logs,而与此设置无关,直到手动重新创建 .packettracer 文件。

parallel ~/.parallel 20170422 export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
pass ~/.password-store export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
Phive ~/.phive [251]

另请参阅 [252][253]

自 0.14.5 版本起,可以移动整个数据目录。

export PHIVE_HOME="$XDG_DATA_HOME/phive"

Pidgin ~/.purple [254] pidgin --config="$XDG_DATA_HOME"/purple
platformio-core ~/.platformio [255] export PLATFORMIO_CORE_DIR="$XDG_DATA_HOME"/platformio
PostgreSQL ~/.psqlrc, ~/.psql_history, ~/.pgpass, ~/.pg_service.conf 9.2 [256] [257] 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 [258] [259] export PYENV_ROOT=$XDG_DATA_HOME/pyenv
azure-cli ~/.azure export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure
python ~/.python_history v3.13 [260] [261] [262] 3.4 版本起,交互式会话的所有历史记录默认保存到 ~/.python_history,自 3.13 版本起为 PYTHON_HISTORY。 对于历史记录文件,Python 不会创建任何缺失的目录,并且仅在其目录存在时才写入文件。 这仍然可以像旧版本一样进行自定义(请参阅此示例),包括使用自定义路径禁用历史记录保存

PYTHON_HISTORY: export PYTHON_HISTORY=$XDG_STATE_HOME/python_history PYTHONPYCACHEPREFIX: export PYTHONPYCACHEPREFIX=$XDG_CACHE_HOME/python PYTHONUSERBASE: export 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 [263] export PLTUSERHOME="$XDG_DATA_HOME"/racket
rbenv ~/.rbenv [264] [265] 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 ~/.rediscli_history, ~/.redisclirc export REDISCLI_HISTFILE="$XDG_DATA_HOME"/redis/rediscli_history, export REDISCLI_RCFILE="$XDG_CONFIG_HOME"/redis/redisclirc
ripgrep [266] export RIPGREP_CONFIG_PATH=$XDG_CONFIG_HOME/ripgrep/config
rlwrap ~/.*_history [267] export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap
ruby-bundler ~/.bundle 4a120d8 Pull request 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/ [268] export SOLARGRAPH_CACHE=$XDG_CACHE_HOME/solargraph
ruff .ruff_cache [269] export RUFF_CACHE_DIR=$XDG_CACHE_HOME/ruff
Rust#Rustup ~/.rustup [270] export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
sbt ~/.sbt

~/.ivy2

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

~/.screen/

export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc, export SCREENDIR="${XDG_RUNTIME_DIR}/screen"
simplescreenrecorderAUR ~/.ssr/ 0.4.3 [273]

[274]

只有当 $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 [275] [276] 移动 ~/.spacemacs 文件。

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

其他文件需要像 Emacs 那样配置。

SQLite ~/.sqliterc, ~/.sqlite_history 3.44.0 用于配置;
历史记录仍然在旧位置
XDG_CONFIG_HOME/sqlite3/sqliterc, export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history
starship ~/.config/starship, ~/.cache/starship [277] (v0.2.0), [278] (v0.45.0) [279] export STARSHIP_CONFIG="$XDG_CONFIG_HOME"/starship.toml, export STARSHIP_CACHE="$XDG_CACHE_HOME"/starship
subversion ~/.subversion [280] [281][282] alias svn="svn --config-dir \"$XDG_CONFIG_HOME\"/subversion"
sudo ~/.sudo_as_admin_successful 1.9.6 [283] [284] 仅在编译时激活时存在(默认无)。自 1.9.6 版本起,可以在 /etc/sudoers 中使用 admin_flag 参数。
task ~/.task, ~/.taskrc 在 2.6 版本中完全支持 (注意:必须存在 $XDG_CONFIG_HOME/task/taskrc,否则即使设置了 $XDG_CONFIG_HOME,taskwarrior 也会提议在旧的 $HOME/.taskrc 位置创建示例配置 [285][286])
本地 TeX Live TeXmf 树,TeXmf 缓存和配置 ~/texmf, ~/.texlive/texmf-var, ~/.texlive/texmf-config export TEXMFHOME=$XDG_DATA_HOME/texmf, export TEXMFVAR=$XDG_CACHE_HOME/texlive/texmf-var, export 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/ [287] 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 ~/.urxvt/urxvtd-hostname export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd
Vagrant ~/.vagrant.d, ~/.vagrant.d/aliases [288] export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant, export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases
vint ~/.vintrc.yaml, .vintrc.yml, .vintrc 0f741ac2c [289] 未文档化,但代码表明 $XDG_CONFIG_HOME/.vintrc.yaml 应该可以工作
virtualenv ~/.virtualenvs export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
Visual Studio Code ~/.vscode-oss/ [290] 你可以使用 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/ [291] [292] 你可以使用 --extensions-dir 标志运行 VSCodium,例如 vscodium --extensions-dir "$XDG_DATA_HOME/vscode"。然而,这不会阻止 ~/.vscode-oss/ 目录的创建。
w3m ~/.w3m 26284ff [293] [294] 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 [295] 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/config, export C3270PRO="$XDG_CONFIG_HOME"/c3270/config

App 还会创建 ~/.x3270connect,但这目前不受支持。

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

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

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

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

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

xinit ~/.xinitrc, ~/.xserverrc [297] export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc, export 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 [298] export _Z_DATA="$XDG_DATA_HOME/z"
yarn ~/.yarnrc, ~/.yarn/, ~/.yarncache/, ~/.yarn-config/ 2d454b5 [299] [300] alias yarn='yarn --use-yarnrc "$XDG_CONFIG_HOME/yarn/config"'
zsh ~/.zshrc, ~/.zprofile, ~/.zshenv, ~/.zlogin, ~/.zlogout, ~/.histfile, ~/.zcompdump, ~/.zcompcache [301] export ZDOTDIR=$HOME/.config/zsh 以避免在您的主目录中需要大多数 zsh 点文件
"$XDG_CONFIG_HOME"/zsh/.zshrc
# Use XDG dirs for completion and history files
[ -d "$XDG_STATE_HOME"/zsh ] || mkdir -p "$XDG_STATE_HOME"/zsh
HISTFILE="$XDG_STATE_HOME"/zsh/history
[ -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/ [302]
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 [303] [304] [305]
anthy ~/.anthy [306]
Apache Directory Studio ~/.ApacheDirectoryStudio
ARandR ~/.screenlayout [307]
Arduino ~/.arduino15, ~/.jssc 不会修复
arduino-cli ~/.arduino15/ [308] 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 [309]
Avidemux ~/.avidemux6 [310]
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 中的不同位置获取。指定 --init-file <file> 作为交互式 shell 中 ~/.bashrc 的替代方案。

Berkshelf ~/.berkshelf/
celestiaAUR ~/.celestiarc
chatty ~/.chatty/ [311]
cmake ~/.cmake/ [312] 用于用户包注册表 ~/.cmake/packages/<package>,在 cmake-packages(7) § User Package RegistryPackage registry wiki 页面 中详细介绍。看起来它是硬编码的,例如在 cmFindPackageCommand.cxx 中。
cmus ~/.config/cmus [313] [314]
Cinnamon ~/.cinnamon/ [315]
conanAUR ~/.conan/ [316] export CONAN_USER_HOME="$XDG_CONFIG_HOME" 将设置创建 .conan/ 的目录。它旨在简化 CI,但也可以在此处使用。
cryptomatorAUR ~/.Cryptomator [317]
cVim[死链 2022-09-23 ⓘ] ~/.cvimrc [318]
darcs ~/.darcs/ [319]
dart ~/.dart, ~/.dart-tool, ~/.dartServer [320]
dbus ~/.dbus/ [321] 考虑使用 dbus-broker,因为它不会创建或使用此目录。
devede ~/.devedeng 硬编码在此
Dia ~/.dia/
dig ~/.digrc
dotnet-sdk ~/.dotnet/, ~/.templateengine [322]
dropbox ~/.dropbox/
Eclipse ~/.eclipse/ [323] 选项 -Dosgi.configuration.area=@user.home/.config/.. 会覆盖,但必须添加到 "$ECLIPSE_HOME"/eclipse.ini" 而不是命令行,这意味着您必须具有对 $ECLIPSE_HOME 的写入权限。(Arch Linux 在 /usr/bin/eclipse 中硬编码了 $ECLIPSE_HOME
emacs-slime ~/.slime/ [324]

[325]

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

~/.librewolf

[356]
lldb ~/.lldb, ~/.lldbinit
LMMS ~/.lmmsrc.xml [357]
maliit-keyboard ~/.presage Maliit 键盘使用一个名为 Presage 的旧的、未维护的库,该库创建 ~/.presage。在 2024 年,Maliit 键盘放弃了对 Presage 的依赖,但截至 2.3.1 版本,这尚未包含在发布版本中。在此期间,编译 maliit-keyboard 的主分支。
man-db ~/.manpath [358]
mathomatic[死链 2024-10-12 ⓘ] ~/.mathomaticrc, ~/.matho_history 历史记录可以通过使用 rlwrap mathomatic -r 和适当设置的 RLWRAP_HOME 环境变量来移动。
MediaWiki ~/.mweval_history~/.mwsql_history (如果定义了 $HOME) 如果未定义 $HOME:[MediaWiki]/maintenance/.mweval_history[MediaWiki]/maintenance/.mwsql_history

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

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

[363]

Nimble 将在启动时尝试加载 ~/.config/nimble/nimble.ini,并在那里设置 nimbleDir。您还需要更改 Nim 编译器配置文件中的 nimblepath
Networkmanager-openvpn ~/.cert/nm-openvpn [364]
nyx ~/.nyx 该项目目前未维护
oh-my-bash-gitAUR ~/.osh-update
Ollama ~/.ollama [365] 模型位置可以使用以下命令设置

export OLLAMA_MODELS=$XDG_DATA_HOME/ollama/models

来源: [366]

openshot ~/.openshot_qt [367] [368]
OpenSSH ~/.ssh 不会修复 许多 ssh 守护程序和客户端(例如 DropBear 和 OpenSSH)都假定它存在。
palemoon ~/.moonchild productions [369]
parsec-binAUR ~/.parsec
pcsxrAUR ~/.pcsxr 存在 -cfg 标志,但只能相对于 ~/.pcsxr 设置。
perf ~/.debug 硬编码在 tools/perf/util/config.c 中。提交:[370]
perl ~/.cpan, ~/perl5 [371] Perl5 的 CPAN 期望 ~/.cpan
phoronix-test-suiteAUR ~/.phoronix-test-suite [372] 部分解决方法:[373]
PHP ~/.php_history [374] PHP 应用程序可以使用 readline_read_historyreadline_write_history 读取/写入自定义文件。
portfolio-performance-binAUR ~/.PortfolioPerformance/ [375]
各种shell显示管理器 ~/.profile
psensor ~/.psensor [376]
pulumi ~/.pulumi [377]
python-tensorflow ~/.keras [378] 问题在于 tf.keras 模块
quilt ~/.quiltrc 如果 ~/.quiltrc 不存在,则回退到 /etc/quilt.quiltrc
Qt Designer ~/.designer [379]
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 [380]
Remarkable ~/.remarkable
renderdoc ~/.renderdoc 不会修复
Ren'Py ~/.renpy 不会修复 最新版本尊重 RENPY_PATH_TO_SAVES 环境变量。因此,您可以设置它来更改某些游戏的路径。
export RENPY_PATH_TO_SAVES="$XDG_DATA_HOME/renpy"
repo ~/.repoconfig [381]
rpm ~/.rpmrc ~/.rpmmacros 积压 解决方法是使用 --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 [382]
Signal Desktop [383] 目前将消息保存在 ~/.config/Signal
Snap ~/snap/ [384]
Solfege ~/.solfege, ~/.solfegerc, ~/lessonfiles [385]
SpamAssassin ~/.spamassassin
Steam ~/.steam, ~/.steampath, ~/.steampid [386] 许多游戏引擎(Unity 3D,Unreal)都遵循该规范,但随后各个游戏发行商在 Steam Auto-Cloud 中硬编码了路径,导致游戏存档同步到错误的目录。
stellariumAUR ~/.stellarium/ [387]
stremioAUR ~/.stremio-server/ [388]
sts4 ~/.sts4 [389] 传递 JVM 参数 -Dlanguageserver.boot.symbolCacheDir=$XDG_CACHE_HOME/sts4/symbolCache
python-streamlitAUR ~/.streamlit [390]
sweethome3d ~/.eteks/sweethome3d [391]
python-sympy ~/.sympy-history [392]
TeamSpeak ~/.ts3client export TS3_CONFIG_DIR="$XDG_CONFIG_HOME/ts3client"
terraform ~/.terraform.d/ [393]
texinfo ~/.infokey info --init-file "$XDG_CONFIG_HOME/infokey"
Thunderbird ~/.thunderbird/ [394]
tllocalmgr ~/.texlive
urlviewAUR ~/.urlview 使用 fork urlview-xdg-gitAUR 代替。该 fork 将使用 XDG_CONFIG_HOME/urlview/config
viberAUR ~/.ViberPC
vimperator ~/.vimperatorrc [395] export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"

export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator

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

工具

工具 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_dir, get_user_data_dir, get_user_config_dir 等。

技巧与窍门

隐藏不需要的目录

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

$ echo path >> ~/.hidden

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

另请参阅