我如何强制所有应用程序使用 $XDG_CONFIG_HOME 而不是 ~/.APP?

我如何强制所有应用程序使用 $XDG_CONFIG_HOME 而不是 ~/.APP?

据我了解,XDG 指南建议应用程序将其配置存储在$XDG_CONFIG_HOME/APP(通常~/.config/APP)而不是~/.APP(我不确定是否也有 Debian/Ubuntu 指南?)。但是,我发现许多配置文件和文件夹使用较旧的~/.APP约定。

有没有办法全局强制未确认的应用程序使用 XDG 文件夹约定?

或者我是否只需要为每个项目登记一张票?:D

答案1

我没有找到一种可以全局强制这种行为的方法,因为默认配置路径通常是硬编码到程序中的。

如果您正在寻找一种简单的方法来备份所有配置,您可以为每个应用程序创建从 到~/.app的符号链接~/.config/app。虽然这不幸不会让您的家变得整洁,但所有配置文件都将保存在 中,~/.config以便于备份。

答案2

我在以下网址找到了一些出色的配置信息XDG 基本目录支持

这为设置以下内容提供了很好的提示:

export LESSHISTFILE="$XDG_CACHE_HOME"/less/history

以便旧的配置/缓存/数据文件仍然可以使用 XDG 指定的目录。

我还需要添加我的~/.bashrc

# XDG - set defaults as they may not be set
# See https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
# and https://wiki.archlinux.org/title/XDG_Base_Directory#Support
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"

if [ ! -w ${XDG_RUNTIME_DIR:="/run/user/$UID"} ]; then
  echo "\$XDG_RUNTIME_DIR ($XDG_RUNTIME_DIR) not writable. Unsetting." >&2
  unset XDG_RUNTIME_DIR
else
  export XDG_RUNTIME_DIR
fi

这些在 Ubuntu 14.04 LTS 上不是默认设置的。

相关内容