XDG_CONFIG_DIRS 在哪里设置?

XDG_CONFIG_DIRS 在哪里设置?

如果我的理解正确,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

相关内容