如果我的理解正确,Ubuntu 及其变体设置XDG_CONFIG_DIRS
为类似
XDG_CONFIG_DIRS=/etc/xdg/xdg-$VARIANT:/etc/xdg
/etc/xdg
然后,可以通过安装配置文件(例如)来部分覆盖软件包提供的系统范围配置默认值(例如,通过 xubuntu-default-settings 之类的软件包) /etc/xdg/xdg-xubuntu
。
XDG_CONFIG_DIRS
设置/扩展在哪里?
放置包含以下内容的文件的最佳位置是什么
XDG_CONFIG_DIRS="/etc/xdg/xdg-mydefaults:$XDG_CONFIG_DIRS"
有些候选人是,/etc/profile.d
/etc/environment.d
/etc/X11/Xsession.d
/etc/profile.d
/etc/systemd/system.conf.d
/etc/systemd/user.conf.d
但这些似乎都没有被 ubuntu 和变体用来做这件事,所以这是正确的选择?
答案1
它设置在/etc/X11/Xsession.d/60x11-common_xdg_path
(来自包x11-common
):
DEFAULT_XDG_CONFIG_DIRS='/etc/xdg'
DEFAULT_XDG_DATA_DIRS='/usr/local/share/:/usr/share/'
if [ -n "$DESKTOP_SESSION" ]; then
# readd default if was empty
if [ -z "$XDG_CONFIG_DIRS" ]; then
XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"/xdg-"$DESKTOP_SESSION":"$DEFAULT_XDG_CONFIG_DIRS"
elif [ -n "${XDG_CONFIG_DIRS##*$DEFAULT_XDG_CONFIG_DIRS/xdg-$DESKTOP_SESSION*}" ]; then
XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"/xdg-"$DESKTOP_SESSION":"$XDG_CONFIG_DIRS"
fi
export XDG_CONFIG_DIRS
要添加我自己的目录,我会使用类似/etc/X11/Xsession.d/70-local-my-xdg-path
答案2
不知道什么是“正确的”,但至少/etc/profile.d
对我来说效果很好。
$ cat /etc/profile.d/my-xdg-dir.sh
XDG_CONFIG_DIRS="/etc/xdg/xdg-mydefaults:$XDG_CONFIG_DIRS"
$ echo $XDG_CONFIG_DIRS
/etc/xdg/xdg-mydefaults:/etc/xdg/xdg-ubuntu:/etc/xdg
至于您问的它设置在哪里,该/etc/profile.d/xdg_dirs_desktop_session.sh
文件看起来很可疑。
答案3
在我的 Ubuntu 上它存储在~/.xsessionrc