跳转至内容

XDG 基础目录

来自 ArchWiki
(重定向自 $XDG CONFIG HOME)

本文档总结了 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
    • 符合 OS 标准的完整文件系统。
    • 必须位于本地文件系统上。
    • 可能会被定期清理。
    • 每 6 小时修改一次,或设置 sticky bit(粘滞位)以实现持久化。
    • 仅在用户登录期间有效。
    • 不应存储大文件,因为它可能会被挂载为 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 中讨论)。

本文章或章节需要扩充。

原因: 当前支持/部分/硬编码的划分不够详细,可能具有误导性。可以将表格合并为一个(并添加更多字段来描述程序如何与规范配合使用),或者使用不同名称的类别。(在 Talk:XDG Base Directory#Add description of support categories 中讨论)。

本节旨在收录自 2003 年引入的、日益增多的使用 XDG 基础目录规范 的软件。通过列出常见的文件(dotfiles)及其支持状态,来证明该规范的可行性。对于目前不支持基础目录规范的软件,将演示如何通过变通方法来模拟它。

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

希望这能提供一个信息来源,确切地说明某些类型的点文件是什么以及它们的来源。

贡献

投稿时请确保使用正确的章节。

任何需要代码评估、补丁或编译时选项才能获得支持的内容都应被视为硬编码。此外,如果过程容易出错或很困难,也应归类为硬编码。

  • 第一列应该是指向内部文章、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/
asunderAUR ~/.asunder ~/.asunder_album_artist ~/.asunder_album_genre ~/.asunder_album_title 2.9.0[死链 2021-05-17—SSL 错误] [12][死链 2021-05-17—SSL 错误] 使用 XDG_CONFIG_HOME/asunder/asunder 对应 ~/.asunder,使用 XDG_CACHE_HOME/asunder/asunder_album_... 对应其他三个文件。迁移后遗留路径不会被删除,需要手动删除。
ASP.NET Core ~/.aspnet [13] ~/.config/aspnet
atuin ~/.config/atuin ~/.local/share/atuin 156893d
XDG_CONFIG_HOME/atuin/config.toml
XDG_DATA_HOME/atuin/history.db
audacity ~/.audacity-data/ 3.2.0 [14] 如果遗留路径不存在,则使用新路径。
XDG_CONFIG_HOME/audacity
XDG_DATA_HOME/audacity
binwalk ~/.binwalk 2051757 [15] XDG_CONFIG_HOME/binwalk
bitwarden-cli ~/.config/Bitwarden CLI 1.7.1 [16]
XDG_CONFIG_HOME/Bitwarden CLI

BITWARDENCLI_APPDATA_DIR 环境变量具有优先权。

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

Blender ~/.blender 4293f47 [17]
borgmatic ~/.borgmatic/ 1.9.0 [18]
btop b5e709d XDG_CONFIG_HOME/btop
byobu ~/.byobu 4.17 [19]

XDG_CONFIG_HOME/byobu

如果存在遗留路径,则优先使用;或者,如果 XDG_CONFIG_HOME 未设置,则使用遗留路径。

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

如果存在遗留路径 ~/.calcurse,它将优先使用。

calibre
celestiaAUR ~/.celestiarc [23]
XDG_CONFIG_HOME/celestia/celestiarc
catfish ~/.config/catfish af65ed25 [24]
ccache ~/.ccache 4.0 [25]
XDG_CACHE_HOME/ccache
XDG_CONFIG_HOME/ccache/ccache.conf
clangd ~/.clangd ad38f4b3 11.0.0 [26] 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 [27]
crossnote ~/.mume d714a82

0.8.13

[28] $XDG_CONFIG_HOME/mume

如果存在遗留路径,它将优先使用。

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

8fb0b04

问题 89

拉取请求 2384

启动时,Universal-ctags 会加载具有文件扩展名 .ctags 的文件,这些文件位于 $XDG_CONFIG_HOME/ctags 下。

更多信息请参阅 Ctags 选项文件

cryptomatorAUR ~/.Cryptomator [29] $XDG_CONFIG_HOME/Cryptomator
CUPS ~/.cups/ 23b1be6 [30] libcups 在 v3(仍为 beta 版)中添加了 XDG 支持。官方存储库中的版本仍硬编码为 ~/.cups
cURL ~/.curlrc 7.73.0 [31] XDG_CONFIG_HOME/curlrc
dconf
Dolphin emulator ~/.dolphin-emu a498c68 [32]
dr14_t.meter-gitAUR 7e777ca [33] XDG_CONFIG_HOME/dr14tmeter/
dunst 78b6e2b [34] XDG_CONFIG_HOME/dunst/
Emacs ~/.emacs ~/.emacs.d/init.el [35]

27.1

XDG_CONFIG_HOME/emacs/init.el

遗留路径优先于 XDG 路径。Emacs 不会创建 XDG_CONFIG_HOME/emacs/。26.3 或更早版本的变通方法:可以设置 HOME,但这会产生意想不到的副作用。

fish XDG_CONFIG_HOME/config.fish/
freesweep ~/.sweeprc [36]
fltk ~/.fltk/ 7308bcd [37] [38]
fontconfig ~/.fontconfig ~/.fonts 8c255fb, [39] 配置文件位于 XDG_CONFIG_HOME/fontconfig/fonts.confXDG_CONFIG_HOME/fontconfig/conf.d/,字体存储在 XDG_DATA_HOME/fonts/
fontforge ~/.FontForge ~/.PfaEdit e4c2cc7

[40] [41]

freecad ~/.FreeCAD e7e2994ba

0.20.0

[42] 默认使用
XDG_CONFIG_HOME/FreeCAD
XDG_DATA_HOME/FreeCAD
XDG_CACHE_HOME/FreeCAD

可以使用 FreeCAD --keep-deprecated-paths 来使用遗留路径。

freerdp ~/.freerdp edf6e72
Gajim ~/.gajim 3e777ea [43]
gconfAUR ~/.gconf fc28caa [44]
GDB ~/.gdbinit, ~/.gdb_history 11.1 XDG_CONFIG_HOME/gdb/gdbinit, export GDBHISTFILE="$XDG_DATA_HOME"/gdb/history
ghc ~/.ghci [45] 上游支持从 9.4.1 开始 [46]
ghidra ~/.ghidra/ 3b0aac9 [47]
GIMP ~/.gimp-x.y ~/.thumbnails

60e0cfe 483505f

[48] [49]

Git ~/.gitconfig, ~/.gitignore, ~/.gitattributes, ~/.git-credentials, ~/.gitk 0d94427, dc79687, 684e40f Git Config, Git Attributes, Git Credentials, 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
gnuplot ~/.gnuplot_history a5562b1

[50]

Godot Engine ~/.godot 73049d1

3.0-stable

[51]
goobookAUR ~/.goobookrc 3.5 [52] XDG_CONFIG_HOME/goobookrc
gops 71c4255
GoldenDict ~/.goldendict/ [53] $XDG_CONFIG_HOME/goldendict/.goldendict/
GStreamer ~/.gstreamer-0.10 4e36f93 [54]
GTK 3
Haskell#Stack ~/.stack 2.9.3 [55] 默认为遗留路径。使用 export STACK_XDG=1 来使其符合规范。

旧方法 export STACK_ROOT="$XDG_DATA_HOME"/stack 仍然有效并具有优先权 [56][死链 2024-07-30—HTTP 404]

helm ~/.helm 3.0.0
htop ~/.htoprc 93233a6 XDG_CONFIG_HOME/htop/htoprc
httpie ~/.httpie 5af0874 [57]
hunspell ~/.hunspell_default. [58]
i3 ~/.i3 7c130fb[死链 2025-08-16—HTTP 404]
i3blocks, i3blocks-gitAUR [59]
i3status ~/.i3status.conf c3f7fc4[死链 2025-08-16—HTTP 404]
i3status-rust
IdeaVim ~/.ideavimrc 0.54.1-EAP [60] XDG_CONFIG_HOME/ideavim/ideavimrc
imagemagick
Inkscape ~/.inkscape 0.47 [61]
intellij-idea-community-edition / intellij-idea-ultimate-editionAUR ~/.IntelliJIdeaXXXX.X 2020.1 [62]
XDG_CONFIG_HOME/JetBrains/IntelliJIdeaXXXX.X
XDG_DATA_HOME/JetBrains/IntelliJIdeaXXXX.X
XDG_CACHE_HOME/JetBrains/IntelliJIdeaXXXX.X
iotop-c ~/.config/iotop [63] [64]
ipython ~/.ipython 8.0.0 [65] 检查 $XDG_CONFIG_HOME/ipython(如果 XDG_CONFIG_HOME 未设置,则为 ~/.config/ipython)是否存在,否则使用 ~/.ipython
iwd / iwctl ~/.iwctl_history d3e00d7f
josm ~/.josm 11162 [66]
jupyter ~/.jupyter 5.0 版本中为选择加入,6.0 版本中为选择退出,7.0 版本中为强制(更新日志)。 XDG_CONFIG_HOME/jupyter
Kakoune
keynavAUR ~/.keynavrc XDG_CONFIG_HOME/keynav/keynavrc
latexmk (在 texlive-binextra 中) ~/.latexmkrc

XDG_CONFIG_HOME/latexmk/latexmkrc

less ~/.lesskey, ~/.lesshst 590

598 中提供完全支持。

[67] 在 590 版本中,环境变量 XDG_CONFIG_HOMEXDG_DATA_HOME **必须** 设置。在 598 版本中,这不再是必需的。

XDG_CONFIG_HOME/lesskey

XDG_STATE_HOME/lesshstXDG_DATA_HOME/lesshst

lftp ~/.lftp 21dc400 [68]
lgogdownloaderAUR ~/.gogdownloader d430af6 [69]
luarocks ~/.luarocks cd16cdd [70]
XDG_CONFIG_HOME/luarocks
XDG_CACHE_HOME/luarocks

如果存在遗留路径 ~/.luarocks,它将优先使用。

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

1b99570 0b71156 ce401d7

[72]
Mercurial ~/.hgrc

3540200 4.2

XDG_CONFIG_HOME/hg/hgrc.
mesa 87ab26b XDG_CACHE_HOME/mesa
milkytracker ~/.milkytracker_config eb487c5 [73]
mlterm ~/.mlterm/ 71df071 [74] XDG_CONFIG_HOME/mlterm/
mozc ~/.mozc 91cc1e1 [75]
mpd ~/.mpdconf 87b7328
mpv ~/.mpv cb250d4 [76]
msmtp ~/.msmtprc

af2f409 v1.6.7+

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

38d9f81 27cd86e

[79] [80] [81]

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

[82] [83]

Nestopia UE ~/.nestopia/ 610c008 1.51.0 [84]
newsboat ~/.newsboat 3c57824 [85] 需要创建这两个目录 [86]

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

Nix ~/.nix-channels ~/.nix-defexpr ~/.nix-profile [87] [88] /etc/nix/nix.conf 中设置 use-xdg-base-directories = true
nmcli ~/.nmcli-history 1.52.0 [89] [90] [91] XDG_CACHE_HOME/nmcli-history
node-gyp ~/.node-gyp 2b5ce52a [92]
notmuch ~/.notmuch-config [93] mkdir -p $XDG_CONFIG_HOME/notmuch/default; mv ~/.notmuch-config $XDG_CONFIG_HOME/notmuch/default/config
np2kai-gitAUR ~/.config/np2kai ~/.config/xnp2kai 56a1cc2 [94]
NSS ~/.pki 3.42 (da45424) [95] 参见 Chromium 的相关问题。
nteract-binAUR 4593e72 [96] [97] 不识别 ipython/jupyter 的变通方法。
ocaml-utopAUR ~/.utop-history

~/.utoprc

2.13.0

9729963

[98] XDG_STATE_HOME/utop/utop-history

XDG_CONFIG_HOME/utop/utoprc

OfflineIMAP ~/.offlineimaprc 5150de5 [99] XDG_CONFIG_HOME/offlineimap/config
openal ~/.alsoftrc 3c90ed9 XDG_CONFIG_HOME/alsoft.conf
opentyrianAUR ~/.opentyrian 39559c3 [100]
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

如果存在遗留路径,则优先使用。

pacman ~/.makepkg.conf 80eca94 [101]
pam-u2f ~/.config/Yubico/u2f_keys ad52dd8 [102] XDG_CONFIG_HOME/Yubico/u2f_keys
panda3dAUR ~/.panda3d 2b537d2
pandoc-cli ~/.pandoc/ 0bed0ab [103]
PCManFM ~/.thumbnails 1.3.2
pcsx2AUR ~/.pcsx2

87f1e8f a9020c6 3b22f0f 0a012ae

[104] [105]
pdfsamAUR ~/.openjfx export _JAVA_OPTIONS=-Djavafx.cachedir="$XDG_CACHE_HOME"/openjfx
pnpm ~/.pnpm-store [106] [107] [108]
poezioAUR
powershellAUR 6.0
ppsspp ~/.ppsspp 132fe47 [109]
procps-ng ~/.toprc af53e17

[110] [111]

Pry ~/.pryrc ~/.pry_history

a0be0cc7 15e1fc92 e9d1be0e

[112]
PulseAudio ~/.pulse ~/.pulse-cookie

59a8618 87ae830 9ab510a 4c195bc

[113]
XDG_CONFIG_DIR/pulse
XDG_CONFIG_DIR/pulse/cookie
pyroomAUR
python-autoimportAUR ~/.config/autoimport/config.toml 1.2.0 [114] XDG_CONFIG_HOME/autoimport/config.toml
python-black ~/.config/black 21.4b0 [115] XDG_CONFIG_HOME/black, XDG_CACHE_HOME/black/<version>/
python-pip ~/.pip 6.0 [116]
python-pipx ~/.local/pipx c3d8de9 [117] 为了兼容性,pipx 将回退到 ~/.local/pipx(如果存在)。通过 python-platformdirs 实现。
python-poetry ~/.poetry [118] [119]
python-pylint ~/.pylint.d 2.10 [120] 之前是 export PYLINTHOME="$XDG_CACHE_HOME"/pylint,全局配置仍然需要:export PYLINTRC="$XDG_CONFIG_HOME"/pylint/pylintrc
quodlibet ~/.quodlibet 3.10.0 [121]
qutebrowser
qtile

fd8686e 66d704b 51cff01

[122] 一些可选的面板小部件可能会在非兼容路径中创建文件和目录,但大多数情况下仍然可以配置。
rclone ~/.rclone.conf 9d36258 [123]
retroarch
ripgrep-all ~/.cache/rga 963524b v0.10.3 [124] [125] [126]
rrAUR ~/.rr 02e7d41 [127]
RSpec ~/.rspec 5e395e2 [128]
rTorrent ~/.rtorrent.rc 6a8d332
RuboCop ~/.rubocop.yml 6fe5956 [129]
Ruby#RubyGems ~/.gem 3.0.0 (5c6269c) [130]
XDG_CONFIG_HOME/gem/gemrc
XDG_CONFIG_HOME/irb
XDG_DATA_HOME/gem
XDG_DATA_HOME/rdoc
sandboxd ~/.sandboxrc [131] [132] XDG_CONFIG_HOME/sandboxd/sandboxrc
scribus ~/.scribus 1.5.3
scummvm ~/.scummvmrc ~/.scummvm/ 7d014be [133] 需要手动迁移数据。

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

更多信息请参阅 Shellcheck RC Files

snes9x ~/.snes9x 93b5f11 [135] 默认情况下,配置文件留空,其意图是让用户自行填充(通过 GUI 或手动)。
spectrwm ~/.spectrwm a30bbb [136]
sublime-text-devAUR build 4105 在 build 4105 之前,缓存位于 XDG_CONFIG_HOME/sublime-text-3/Cache
surfraw ~/.surfraw.conf ~/.surfraw.bookmarks

3e4591d bd8c427 f57fc71

sway ~/.sway/config 614393c [137] XDG_CONFIG_HOME/sway/config
sxhkd
systemd
teeworlds ~/.teeworlds [138]
termite
主题(桌面) ~/.icons/, ~/.themes/ [139] XDG_DATA_HOME/icons

XDG_DATA_HOME/themes

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

tig ~/.tigrc, ~/.tig_history 2.2 [140] 必须存在 ~/.local/share/tig 目录,否则会写入 ~/.tig_history
TigerVNC ~/.vnc 1.14.0 [141]
tmux ~/.tmux.conf 3.1 [142] 3.1 引入了 ~/.config/tmux/tmux.conf,并在 3.2 中添加了 XDG_CONFIG_HOME/tmux/tmux.conf
tmuxinatorAUR ~/.tmuxinator 2636923 [143]
tmuxp ~/.tmuxp 1.5.0 [144] 已在 1.5.2 中修复
Transmission ~/.transmission b71a298
util-linux 570b321
Uzbl c6fd63a [145]
vale ~/.vale.ini 3.0.0
vim ~/.vim, ~/.vimrc, ~/.viminfo c9df1fb [146] XDG_CONFIG_HOME/vim/vimrc

更多详情请参见 :h xdg-base-dir

viminfo 文件可以通过 :set viminfofile=$XDG_STATE_HOME/vim/viminfo 设置。

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

68a25c7 d138908

[148]
VLC ~/.vlcrc 16f32e1 [149]
warsow ~/.warsow-2.x 98ece3f [150]
WeeChat ~/.weechat [151]

3.2

[152] [153]
XDG_CONFIG_HOME/weechat
XDG_DATA_HOME/weechat
XDG_CACHE_HOME/weechat
XDG_RUNTIME_DIR/weechat
Wireshark ~/.wireshark b0b53fa v2.1.0
wxWidgets [154]
XKB ~/.xkb XDG_CONFIG_HOME/xkb 仅在 Wayland 上受支持 [155]
xmobar ~/.xmobarrc 7b0d6bf[链接已失效 2024-07-30—HTTP 404]

9fc6b37[链接已失效 2024-07-30—HTTP 404] eaccf70[链接已失效 2024-07-30—HTTP 404]

[156][链接已失效 2024-07-30—HTTP 404]

[157][链接已失效 2024-07-30—HTTP 404]

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

[158] [159]

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

另外,它始终尊重 XMONAD_CACHE_DIRXMONAD_CONFIG_DIRXMONAD_DATA_DIR

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

1.1.0

[161]

[162]

xsel ~/.xsel.log ee7b481 [163]
Xsettingsd ~/.xsettingsd b4999f5
yapf a0b51d2 [164] $XDG_CONFIG_HOME/yapf/style
Zim e42b8b0
 $XDG_CONFIG_HOME/zim/preferences.conf
 $XDG_CONFIG_HOME/zim/notebooks.list
zoxide ~/.zo 0.3.0 [165]
zutils ~/.zutilsrc 1.12
$XDG_CONFIG_HOME/zutils.conf

部分

应用程序 遗留路径 支持始于 讨论 备注
abookAUR ~/.abook abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_DATA_HOME"/abook/addressbook
ackAUR ~/.ackrc [166] export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"
Ansible ~/.ansible 2.14 [167] [168] [169]
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"
[170]

远程主机的 ~/.ansible/tmp 可以通过在适当的 ansible.cfg 中设置 remote_tmp = ${XDG_CONFIG_HOME}/ansible/tmp 来移动。 [171][链接已失效 2025-11-17—HTTP 404] [172]

asdf-vmAUR ~/.asdfrc, ~/.asdf/ [173] export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc", export ASDF_DATA_DIR="${XDG_DATA_HOME}/asdf"
aspell ~/.aspell.conf [174] 非常不完整。以下是重定位 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 [175] export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials, export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config
azure-cli ~/.azure export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure
bash-completion ~/.bash_completion export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion
bashdbAUR ~/.bashdbinit, ~/.bashdb_hist [176] 文档所述,您可以指定一个文件来运行命令。因此,将 init 文件移动到 XDG_CONFIG_HOME/bashdb/bashdbinit 并创建别名 alias bashdb='bashdb -x ${XDG_CONFIG_HOME:-$HOME/.config}/bashdb/bashdbinit'。不幸的是,历史文件是硬编码的 [177]
bazaar ~/.bazaar, ~/.bzr.log 2.3.0 [178] 上游 bug 中的讨论表明,如果存在 ~/.config/bazaar,bazaar 将会使用它。日志文件 ~/.bzr.log 仍可能被写入。
bitwarden ~/.bitwarden-ssh-agent.sock [179] export BITWARDEN_SSH_AUTH_SOCK="$XDG_RUNTIME_DIR"
bogofilter-db ~/.bogofilter 0.7.5 [180] export BOGOFILTER_DIR="$XDG_DATA_HOME"/bogofilter
btpd-gitAUR ~/.btpd/ [181] btpd -d "$XDG_DATA_HOME"/.btpd

HOME="$XDG_DATA_HOME" btcli

bunAUR ~/.bun/ [182] 如果明确设置了 $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 [183] [184] [185] [186] export CARGO_HOME="$XDG_DATA_HOME"/cargo
cataclysm-dda ~/.cataclysm-dda 0.D-1 [187] 由于需要编译时选项,支持不完整
cd-bookmark ~/.cdbookmark [188] export CD_BOOKMARK_FILE=$XDG_CONFIG_HOME/cd-bookmark/bookmarks

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

cgdb ~/.cgdb 0.8.0 [190] [191] 设置 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 [192] [193] [194] 根据这些来源,它故意将 ~/.config 弄得一团糟,因为它在其中写入了数亿兆字节的缓存数据。完全不受支持。
Chromium 创建 .pki 是由于没有正确设置 NSS,尽管 NSS 本身允许使用 XDG 规范。这也会导致其下游(尤其是 Qt WebEngine,影响 KMail 等许多情况)出现问题。
cinelerra ~/.bcast5 [195][链接已失效 2025-08-16—HTTP 404] export CIN_CONFIG="$XDG_CONFIG_HOME"/bcast5
claws-mail ~/.claws-mail [196] claws-mail --alternate-config-dir "$XDG_DATA_HOME"/claws-mail
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/

conky ~/.conkyrc 00481ee [197] conky --config="$XDG_CONFIG_HOME"/conky/conkyrc
coreutils ~/.dircolors eval $(dircolors "$XDG_CONFIG_HOME"/dircolors)
crawl ~/.crawl 需要尾部斜杠

export CRAWL_DIR="$XDG_DATA_HOME"/crawl/

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 [198] 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 [199] [200] Elixir 不完全符合 XDG 规范,只有在设置了 MIX_XDG 变量为特殊值时才会使用 XDG,否则它将默认使用旧路径。

export MIX_XDG="true"

Elm ~/.elm export ELM_HOME="$XDG_CONFIG_HOME"/elm
emscripten ~/.emscripten, ~/.emscripten_sanity, ~/.emscripten_ports, ~/.emscripten_cache__last_clear [201] 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
erlang ~/.erlang.cookie [202] [203] Erlang 不完全符合 XDG 规范,它最后才查找 XDG_CONFIG_HOME 中的文件。

mkdir "$XDG_CONFIG_HOME"/erlang mv ~/.erlang.cookie "$XDG_CONFIG_HOME"/erlang

factorioAUR ~/.factorio/ [204] [205] Factorio 支持通过配置文件手动指定数据路径: [206]
__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/ [207] 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 [208]
fzf-gitAUR ~/.fzf.bash, ~/.fzf.zsh [209] 如果安装脚本使用 --xdg 调用,例如 /usr/local/opt/fzf/install --xdg,则 shell init 文件将安装到 XDG_CONFIG_HOME/fzf
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"
ghcup-hs-binAUR ~/.ghcup [210] [211] export GHCUP_USE_XDG_DIRS=true

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

gitsign ~/.sigstore/root [213] export TUF_ROOT="$XDG_DATA_HOME"/sigstore/root
glivAUR ~/.glivrc gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc
GNU Screen ~/.screenrc

~/.screen/

export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc, export SCREENDIR="${XDG_RUNTIME_DIR}/screen"
GnuPG ~/.gnupg [214] [215] export GNUPGHOME="$XDG_DATA_HOME"/gnupg, gpg2 --homedir "$XDG_DATA_HOME"/gnupg

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

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

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

gnuradio ~/.gnuradio [216] GNU Radio

export GR_PREFS_PATH="$XDG_CONFIG_HOME"/gnuradio

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

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

如果未设置 GOMODCACHE,它默认为 $GOPATH/pkg/mod(请参阅 [218])。GOCACHE 受支持,默认情况下为 $XDG_CACHE_HOME/go-build(请参阅 [219])。

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

PASSWORD_STORE_DIR 仅在初始化期间受支持。

gpodder ~/gPodder GPODDER_DOWNLOAD_DIR 设置下载文件夹。 GPODDER_HOME - 存储配置文件和数据库文件的位置,如果未设置 GPODDER_DOWNLOAD_DIR,则也包括下载。
GQ LDAP client ~/.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 [220]

[221]

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 [222] export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal
Houdini ~/houdiniMAJOR.MINOR) [223]

[224]

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 [225] irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi
isync ~/.mbsyncrc [226] mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc
Java#OpenJDK ~/.java/.userPrefs [227] export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
jupyter ~/.jupyter 5.0.0rc0 [228] [229] 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"(参见 [230]

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

k9s ~/.k9s 0.20.4 [231] export K9SCONFIG="$XDG_CONFIG_HOME"/k9s
KDE4 ~/.kde, ~/.kde4 [232] export KDEHOME="$XDG_CONFIG_HOME"/kde

KDE4 使用 KDEHOME。不建议为新版本设置此变量。

keychain ~/.keychain [233] [234] keychain --absolute --dir "$XDG_RUNTIME_DIR"/keychain
kodi ~/.kodi [235] [236] KODI_DATA=$XDG_DATA_HOME/kodi
kscriptAUR ~/.kscript [237] export KSCRIPT_CACHE_DIR="$XDG_CACHE_HOME"/kscript
ledger ~/.ledgerrc, ~/.pricedb [238] ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc
Leiningen ~/.lein, ~/.m2 [239] export LEIN_HOME="$XDG_DATA_HOME"/lein

要更改 leiningen 使用的 m2 存储库位置,请参阅:Leiningen#m2_repo_location

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

请确保 XDG_CACHE_HOME 事先已设置为用户运行 Xorg 具有写入权限的目录。

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

LibreOffice [242] 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/ [243] export MINETEST_USER_PATH="$XDG_DATA_HOME"/luanti
lynx /etc/lynx.cfg export LYNX_CFG="$XDG_CONFIG_HOME"/lynx.cfg
m17n-db ~/.m17n.d [244]
MAME ~/.mame 如果使用 Arch 的 mame 包,/usr/bin/mame 将是一个包装脚本,它会自动创建并强制使用 ~/.mame。运行一次 /usr/bin/mame 来填充此目录,然后您可以将其移动到 $XDG_DATA_HOME/mame。编辑 mame.ini 以替换所有 $HOME/.mame 的实例,然后您可以通过 /usr/lib/mame/mame -inipath $XDG_DATA_HOME/mame 启动 MAME。
maptool-binAUR ~/.maptool-rptools [245]
/opt/maptool/lib/app/MapTool.cfg
[JavaOptions]
-DMAPTOOL_DATADIR=.local/share/maptool-rptools

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

maven ~/.m2 [246] export MAVEN_OPTS=-Dmaven.repo.local="$XDG_DATA_HOME"/maven/repository, export MAVEN_ARGS="--settings $XDG_CONFIG_HOME/maven/settings.xml"

, 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 [247] export MINIKUBE_HOME="$XDG_DATA_HOME"/minikube

出于某种原因,它在 MINIKUBE_HOME 中创建了一个额外的 .minikube 目录。

minio-client ~/.mc [248] export MC_CONFIG_DIR="$XDG_CONFIG_HOME"/minio-client
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 [249]
/etc/mtpaint/mtpaintrc
userINI = ~/.config/mtpaint
mypy ~/.config/mypy/config, ~/.mypy.ini, ~/.mypy_cache v0.670 [250] [251] 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 [252]

~/.mylogin.cnf 不受支持

mysql-workbench ~/.mysql/workbench 您可以使用 ---configdir 标志运行 MySQL Workbench,例如 mysql-workbench --configdir="$XDG_DATA_HOME/mysql/workbench"。由于 MySQL Workbench 的默认位置是 $HOME/.mysql/workbench,因此需要手动创建该目录。
n /usr/local/n export N_PREFIX=$XDG_DATA_HOME/n
ncmpc ~/.ncmpc ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config
ncurses ~/.terminfo 阻止系统路径搜索

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

Netbeans ~/.netbeans [253] netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans
Node.js ~/.node_repl_history [254] export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
nodenvAUR ~/.nodenv export NODENV_ROOT="$XDG_DATA_HOME"/nodenv
npm ~/.npm, ~/.npmrc [255] 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 是通过 nvm 安装的,则 prefix 是不必要的(也是不受支持的)。

nuget ~/.nuget/packages [256] export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
NVIDIA ~/.nv 如果设置了 XDG_CACHE_HOME,则使用它,否则会错误地回退到 ~/.nv 而不是 ~/.cache
nvidia-settings ~/.nvidia-settings-rc [257] nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings
nvm ~/.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/ [258] [259] export OMNISHARPHOME="$XDG_CONFIG_HOME/omnisharp"
opam ~/.opam [260] export OPAMROOT="$XDG_DATA_HOME/opam"

配置和状态数据都存储在 OPAMROOT 中,因此此解决方案不完全符合要求。

openai-codex ~/.codex/ 5fc9fc3 [261] export CODEX_HOME="$XDG_CONFIG_HOME"/codex
openscad ~/.OpenSCAD 7c3077b0f [262] 不完全遵守 XDG Base Directory Specification,请参阅 [263]

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

packettracerAUR ~/.packettracer, ~/pt 它有一个 GUI 配置来更改 PT 安装目录,~/pt/选项 > 首选项 > 管理 > 用户文件夹)。此路径写入文件 ~/.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 [264]

也参见 [265][266]

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

export PHIVE_HOME="$XDG_DATA_HOME/phive"

PHP ~/.php_history PHP 8.4 [267] export PHP_HISTFILE="$XDG_STATE_HOME"/php/history
Pidgin ~/.purple [268] pidgin --config="$XDG_DATA_HOME"/purple
platformio-core ~/.platformio [269] export PLATFORMIO_CORE_DIR="$XDG_DATA_HOME"/platformio
PostgreSQL ~/.psqlrc, ~/.psql_history, ~/.pgpass, ~/.pg_service.conf 9.2 [270] [271] 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 中注释掉此模块。
PuTTY ~/.putty/ 9952b2d 如果 $XDG_CONFIG_HOME/putty 存在,它将使用它。如果不存在,它会创建 ~/.putty。如果两者都存在,则优先使用 $XDG_CONFIG_HOME/putty。已在 0.74 中测试。
pyenv ~/.pyenv [272] [273] export PYENV_ROOT=$XDG_DATA_HOME/pyenv
python ~/.python_history v3.13 [274] [275] [276] 版本 3.4PYTHON_HISTORY(自 3.13 起)以来,交互式会话的所有历史记录默认都保存在 ~/.python_history 中。对于历史记录文件,Python 不会创建任何缺失的目录,并且仅在目录存在时才写入文件。这仍然可以像旧版本一样进行自定义(请参阅此示例),包括使用自定义路径禁用历史记录保存

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

python-easyocrAUR ~/.EasyOCR export EASYOCR_MODULE_PATH="$XDG_CONFIG_HOME/EasyOCR"
python-gripAUR ~/.grip export GRIPHOME="$XDG_CONFIG_HOME/grip"
python-kivy ~/.kivy export KIVY_HOME="$XDG_DATA_HOME/kivy"
python-setuptools ~/.python-eggs export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs
racket ~/.racketrc, ~/.racket [277] export PLTUSERHOME="$XDG_DATA_HOME"/racket
rbenv ~/.rbenv [278] [279] export RBENV_ROOT="$XDG_DATA_HOME"/rbenv
readline ~/.inputrc export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
recoll ~/.recoll export RECOLL_CONFDIR="$XDG_CONFIG_HOME/recoll"
redisAUR ~/.rediscli_history, ~/.redisclirc export REDISCLI_HISTFILE="$XDG_DATA_HOME"/redis/rediscli_history, export REDISCLI_RCFILE="$XDG_CONFIG_HOME"/redis/redisclirc
Ren'Py ~/.renpy 7.5 [280] 保存的游戏存储在 RENPY_PATH_TO_SAVES 中。跨多个游戏共享的数据(例如,允许您从之前的条目导入存档的连续剧)存储在 RENPY_MULTIPERSISTENT 中。
export RENPY_PATH_TO_SAVES="$XDG_DATA_HOME/renpy"
export RENPY_MULTIPERSISTENT="$XDG_DATA_HOME/renpy_shared"
ripgrep [281] export RIPGREP_CONFIG_PATH=$XDG_CONFIG_HOME/ripgrep/config
rlwrap ~/.*_history [282] 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/ [283] export SOLARGRAPH_CACHE=$XDG_CACHE_HOME/solargraph
ruby-travisAUR ~/.travis/ [284] export TRAVIS_CONFIG_PATH=$XDG_CONFIG_HOME/travis
ruff .ruff_cache [285] export RUFF_CACHE_DIR=$XDG_CACHE_HOME/ruff
Rust#Rustup ~/.rustup [286] export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
SageMath ~/.sage export DOT_SAGE="$XDG_CONFIG_HOME"/sage
sbt ~/.sbt

~/.ivy2

[287] sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt (请注意 [288])
sdkman-binAUR ~/.sdkman/ [289] export SDKMAN_DIR="$XDG_DATA_HOME/sdkman"

配置和数据文件都存储在 SDKMAN_DIR 中,因此此解决方案不完全符合 XDG 基本目录规范。

simplescreenrecorderAUR ~/.ssr/ 0.4.3 [290]

[291]

仅当之前已创建时,将使用 $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 [292] [293] 移动 ~/.spacemacs 文件。

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

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

spotdlAUR ~/.spotdl v4.0.6 (3929cae) [294] mkdir "$XDG_DATA_HOME"/spotdl
SQLite ~/.sqliterc, ~/.sqlite_history 3.44.0 用于配置;
历史记录仍保留在旧位置。
XDG_CONFIG_HOME/sqlite3/sqliterc, export SQLITE_HISTORY=$XDG_STATE_HOME/sqlite_history
starship ~/.config/starship, ~/.cache/starship [295] (v0.2.0), [296] (v0.45.0) [297] export STARSHIP_CONFIG="$XDG_CONFIG_HOME"/starship.toml, export STARSHIP_CACHE="$XDG_CACHE_HOME"/starship
subversion ~/.subversion [298] [299][300] alias svn="svn --config-dir \"$XDG_CONFIG_HOME\"/subversion"
sudo ~/.sudo_as_admin_successful 1.9.6 [301] [302][死链 2025-08-16—HTTP 410] 仅在编译时启用时存在(默认为无)。自 1.9.6 起,可以在 /etc/sudoers 中使用 admin_flag 参数。
task ~/.task, ~/.taskrc 在 2.6 版本中完全支持(请注意,$XDG_CONFIG_HOME/task/taskrc 必须存在,否则 taskwarrior 会在旧的 $HOME/.taskrc 位置提供创建示例配置的选项,即使 $XDG_CONFIG_HOME 已设置 [303][304]
本地 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

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 [305] export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant, export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases
vint ~/.vintrc.yaml, .vintrc.yml, .vintrc 0f741ac2c [306] 未记录,但代码表明 $XDG_CONFIG_HOME/.vintrc.yaml 应该可以工作
virtualenv ~/.virtualenvs export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
Visual Studio Code ~/.vscode-oss/ [307] 您可以使用 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/ [308] [309] 您可以使用 --extensions-dir 标志运行 VSCodium,例如 vscodium --extensions-dir "$XDG_DATA_HOME/vscode"。但这不会阻止创建 ~/.vscode-oss/ 目录。

您还可以编辑 product.json 文件中的 dataFolderName 值,将其设置为 .local/share/codium 或您想要的任何路径。但此解决方法必须在每次更新软件包后应用,因此您可以安装 vscodium-xdg-dir-patchAUR,它会自动完成此操作。

w3m ~/.w3m 26284ff [310] [311] export W3M_DIR="$XDG_STATE_HOME/w3m"
wakatime ~/.wakatime/, ~/.wakatime.cfg 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 [312] 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

该应用程序还创建 ~/.x3270connect,但这目前不受支持。

xbindkeys ~/.xbindkeysrc xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config
xinit ~/.xinitrc, ~/.xserverrc [313] export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc, export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc
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 初始化脚本在不同安装之间会有很大差异。

xorg-xauth ~/.Xauthority export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority

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

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

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

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

xorg-xrdb ~/.Xresources, ~/.Xdefaults 最终您 应该使用 Xresources,并且由于这些资源是通过 xrdb 加载的,您可以指定一个路径,例如 xrdb -load ~/.config/X11/xresources
yarn ~/.yarnrc, ~/.yarn/, ~/.yarncache/, ~/.yarn-config/ 2d454b5 [315] [316] alias yarn='yarn --use-yarnrc "$XDG_CONFIG_HOME/yarn/config"'
z ~/.z [317] export _Z_DATA="$XDG_DATA_HOME/z"
zsh ~/.zshrc, ~/.zprofile, ~/.zshenv, ~/.zlogin, ~/.zlogout, ~/.histfile, ~/.zcompdump, ~/.zcompcache [318] [319] 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/ [320]
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 [321] [322] [323]
Apache Directory Studio ~/.ApacheDirectoryStudio
ARandR ~/.screenlayout [324]
Arduino ~/.arduino15, ~/.jssc 不予修复
arduino-cli ~/.arduino15/ [325] 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'

Avidemux ~/.avidemux6 [326]
azote ~/.azotebg [327]
Barony ~/.barony [328]
Bash ~/.bashrc, ~/.bash_history, ~/.bash_profile, ~/.bash_login, ~/.bash_logout [329] [330] mkdir -p "$XDG_STATE_HOME"/bash

export HISTFILE="$XDG_STATE_HOME"/bash/history

bashrc 可以从 /etc/bash.bashrc 中的不同位置进行源。为交互式 shell 指定 --init-file <file> 作为 ~/.bashrc 的替代方案。

Berkshelf ~/.berkshelf/
chatty ~/.chatty/ [331]
chirp-nextAUR ~/.chirp/ [332] 最后一次开发者回复 在此
Cinnamon ~/.cinnamon/ [333]
cmake ~/.cmake/ [334] 用于用户软件包注册表 ~/.cmake/packages/<package>,详细信息请参阅 cmake-packages(7) § 用户软件包注册表软件包注册表 Wiki 页面。看起来它是硬编码的,例如在 cmFindPackageCommand.cxx 中。
cmus ~/.config/cmus [335] [336]
conanAUR ~/.conan/ [337] export CONAN_USER_HOME="$XDG_CONFIG_HOME" 将设置创建 .conan/ 的目录。它被设计用于简化 CI,但也可以在这里使用。
Continue ~/.continue/ [338] [339] [340]
darcs ~/.darcs/ [341]
dart ~/.dart, ~/.dart-tool, ~/.dartServer [342]
dbus ~/.dbus/ [343] 可以考虑使用 dbus-broker,因为它不会创建或使用此目录。
devede ~/.devedeng 在此硬编码
Dia ~/.dia/
dig ~/.digrc
dotnet-sdk ~/.dotnet/, ~/.templateengine [344]
dropbox ~/.dropbox/ [345]
Eclipse ~/.eclipse/ [346] 选项 -Dosgi.configuration.area=@user.home/.config/.. 会覆盖,但必须添加到 "$ECLIPSE_HOME"/eclipse.ini" 而不是命令行,这意味着您必须对 $ECLIPSE_HOME 具有写访问权限。(Arch Linux 在 /usr/bin/eclipse 中硬编码了 $ECLIPSE_HOME
elan-leanAUR ~/.elan [347]
emacs-slime ~/.slime/ [348]

[349]

equalxAUR ~/.equalx/ [350]
feh ~/.fehbg [351]
Fetchmail ~/.fetchmailrc
Firefox ~/.mozilla/ [352] [353][354]
Flatpak ~/.var/ [355] [356] 无法修复
gitkrakenAUR ~/.gitkraken/ [357]
google-cloud-cliAUR ~/.gsutil/ [358]
gphoto2 ~/.gphoto [359]
gramps ~/.gramps/ [360] 2022 支持 XDG 基本目录规范(为下一个版本 Gramps 5.2)- Patch https://github.com/gramps-project/gramps/pull/1368
groovy ~/.groovy/
grsync ~/.grsync/ [361]
gtk-recordMyDesktop ~/.gtk-recordmydesktop
hplip ~/.hplip/ [362]
hydrogen ~/.hydrogen/ [363]
idris ~/.idris [364]
itch-setup-binAUR ~/.itch 不予修复 您可以在应用程序设置中移动游戏安装位置。
Java OpenJDK ~/.java/fonts [365] export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
Java OpenJFX ~/.java/webview
jgmenu ~/.jgmenu-lockfile [366] [367]
jitsi-meetAUR ~/Downloads libjitsi#518 下载目录硬编码为 ~/Downloads 而不是 XDG_DOWNLOAD_DIR(来自 XDG user directories
Jmol ~/.jmol/ [368]
julia ~/.juliarc.jl, ~/.julia_history, ~/.julia [369] [370] 尾部的 :$JULIA_DEPOT_PATH 是必需的。参见 [371]
export JULIA_DEPOT_PATH="$XDG_DATA_HOME/julia:$JULIA_DEPOT_PATH"
export JULIAUP_DEPOT_PATH="$XDG_DATA_HOME/julia"
kotlin ~/.kotlinc_history 相关的 Konan 问题:[372]
Kubernetes ~/.kube/ [373][374][375]
export KUBECONFIG="$XDG_CONFIG_HOME/kube" 
export KUBECACHEDIR="$XDG_CACHE_HOME/kube"
lbdbAUR ~/.lbdbrc, ~/.lbdb/ [376]
librewolfAUR ~/.mozilla

~/.librewolf

[377]
LightDM ~/.dmrc [378] 通常由登录管理器在设置会话时创建。如果您使用自动登录,可以按照 LightDM#启用自动登录 中的说明修改 lightdm.conf
lldb ~/.lldb, ~/.lldbinit, ~/.lldb/lldb-widehistory [379]
llpp ~/.config/llpp.conf [380][死链 2022-09-23—HTTP 404](仓库已被删除) 已在 3ab86f0 中添加,但随后在 old:e253c9f1/new:e253c9f1 中回滚。
LMMS ~/.lmmsrc.xml [381]
maliit-keyboardAUR ~/.presage Maliit Keyboard 使用一个旧的、未维护的库 Presage,它会创建 ~/.presage。在 2024 年,Maliit Keyboard 放弃了其 Presage 依赖项,但截至 2.3.1 版本,尚未将其包含在发布中。在此期间,请编译 maliit-keyboardAUR 的主分支。
man-db ~/.manpath [382]
mathomatic ~/.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 生成。

megacmdAUR ~/.megaCmd/ [383]
Minecraft ~/.minecraft/ 不予修复
minicom ~/.minirc.dfl 上游有一个 TODO 条目,用于支持 ~/.config/minicom 下的配置文件。 [384]
mongodb ~/.mongorc.js, ~/.dbshell [385] 此 Stack Overflow 线程建议使用命令行开关 --norc 进行部分解决。
Mono ~/.mono/ [386]
~/.netrc ~/.ssh 类似,许多程序都期望此文件在此处。其中包括 curl (CURLOPT_NETRC_FILE)、ftp (NETRC)、s-nail (NETRC) 等项目。虽然其中一些提供了其他可配置位置,但许多则没有,例如 w3m、wget 和 lftp。
Networkmanager-openvpn ~/.cert/nm-openvpn [387] 已修复,等待发布。
nim ~/.nimble [388]

[389]

Nimble 将尝试加载 ~/.config/nimble/nimble.ini。您还必须在 Nim 编译器配置文件中更改 nimblepath
nyx ~/.nyx 该项目目前未维护
oh-my-bash-gitAUR ~/.osh-update
Ollama ~/.ollama [390] 模型位置可以设置如下:

export OLLAMA_MODELS=$XDG_DATA_HOME/ollama/models

来源:[391]

openshotAUR ~/.openshot_qt [392] [393]
OpenSSH ~/.ssh 不予修复 许多 ssh 守护程序和客户端(如 DropBear 和 OpenSSH)都假定它的存在。
palemoon ~/.moonchild productions [394]
parsec-binAUR ~/.parsec
pcsxrAUR ~/.pcsxr 存在一个 -cfg 标志,但只能相对于 ~/.pcsxr 设置。
perf ~/.debug tools/perf/util/config.c 中硬编码。Commit:[395]
perl ~/.cpan, ~/perl5 [396] Perl5 的 CPAN 期望 ~/.cpan
phoronix-test-suiteAUR ~/.phoronix-test-suite [397] 部分解决方法:[398]
portfolio-performance-binAUR ~/.PortfolioPerformance/ [399]
各种 shell显示管理器 ~/.profile
psensor ~/.psensor [400]
pulumi ~/.pulumi [401]
python-streamlit ~/.streamlit [402]
python-sympy ~/.sympy-history [403]
python-tensorflow ~/.keras [404] 问题在于 tf.keras 模块
quilt ~/.quiltrc 如果 ~/.quiltrc 不存在,则回退到 /etc/quilt.quiltrc
Qt Designer ~/.designer [405] 已在 upstream 中修复,计划与 QT 7 一起发布(参见 Discussion 链接)。
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 [406]
Remarkable ~/.remarkable
renderdoc ~/.renderdoc 不予修复
repo ~/.repoconfig [407]
rpm ~/.rpmrc ~/.rpmmacros Backlog 解决方法是使用 --rcfile 和 --macros,但这会带来副作用。
run-mailcapAUR ~/.mailcap export MAILCAPS="$XDG_CONFIG_HOME/mailcap"
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 [408]
Signal Desktop [409] 目前将消息保存在 ~/.config/Signal 中。
Snap ~/snap/ [410]
Solfege ~/.solfege, ~/.solfegerc, ~/lessonfiles [411]
SpamAssassin ~/.spamassassin
Steam ~/.steam, ~/.steampath, ~/.steampid [412] 许多游戏引擎(Unity 3D、Unreal)都遵循该规范,但随后各个游戏发行商会在 Steam Auto-Cloud 中硬编码路径,导致游戏存档同步到错误目录。
stellarium ~/.stellarium/ [413]
stremioAUR ~/.stremio-server/ [414]
sts4 ~/.sts4 [415] 传递 JVM 参数 -Dlanguageserver.boot.symbolCacheDir=$XDG_CACHE_HOME/sts4/symbolCache
sweethome3d ~/.eteks/sweethome3d [416]
TeamSpeak ~/.ts3client export TS3_CONFIG_DIR="$XDG_CONFIG_HOME/ts3client"
terraform ~/.terraform.d/ [417]
texinfo ~/.infokey info --init-file "$XDG_CONFIG_HOME/infokey"
Thunderbird ~/.thunderbird/ [418]
tllocalmgr ~/.texlive
urlviewAUR ~/.urlview 请改用分支 urlview-xdg-gitAUR。该分支将使用 XDG_CONFIG_HOME/urlview/config
viberAUR ~/.ViberPC
vimperator ~/.vimperatorrc [419] export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"

export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator

visidata ~/.visidata [420]
wegoAUR ~/.wegorc [421]
winboat ~/.winboat [422]
wpa_cli ~/.wpa_cli_history alias wpa_cli='HOME=$XDG_STATE_HOME wpa_cli'
x2goclientAUR ~/.x2goclient alias x2goclient="x2goclient --home=$HOME/.config"
xpdf ~/.xpdfrc [423]
xrdpAUR ~/thinclient_drives 对于目录 ~/thinclient_drives,您可以考虑编辑 /etc/xrdp/sesman.ini 并根据示例配置修改 [Chansrv] 部分。
XVim2 ~/.xvimrc [424]
yabridge-binAUR ~/.vst/yabridge/, ~/.vst3/yabridge/, ~/.clap/yabridge/ 不予修复
YARD ~/.yard [425] 如果有人想实现它,将接受 Pull Request。
zenmap nmap ~/.zenmap [426] [427]
zoomAUR ~/.zoom 不推荐:设置以下变量会移动 .zoom 的内容,但目录本身始终会被创建。此外,它会破坏一些功能,例如启动会议的能力。export SSB_HOME="$XDG_DATA_HOME"/zoom
zotero-binAUR ~/.zotero ~/Zotero [428] ~/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 起在 directory 中内置支持 ab9d0810ce
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 父目录的路径。

参见