dconf 拒绝在 $XDG_CONFIG_HOME 中保存用户配置文件

dconf 拒绝在 $XDG_CONFIG_HOME 中保存用户配置文件

我已将 $XDG_CONFIG_HOME 设置为 ~/.local/etc,但 dconf 拒绝将其数据保存在那里,而是重新创建自己的 ~/.config。(我已在 /etc/profile 中设置了 $XDG_CONFIG_HOME)

但这不是唯一的问题。

我尝试将 $DCONF_PROFILE 变量设置为 $XDG_CONFIG_HOME/dconf,但是当使用 gsettings 更改我的 GTK3 主题时出现错误:

unable to open named profile (/home/user/.local/etc/dconf): using the null configuration.
The key is not writable

我是否遗漏了什么或者做错了什么?

答案1

我已将 $XDG_CONFIG_HOME 设置为 ~/.local/etc,但 dconf 拒绝将其数据保存在那里,而是重新创建自己的 ~/.config。(我已在 /etc/profile 中设置了 $XDG_CONFIG_HOME)

/etc/profile 由登录 shell 和 GDM 读取,但 dconf 通常在这些上下文之外启动 - 它可能通过 systemd“用户服务管理器”启动,它不涉及“登录模式”sh/bash 并且不读取 /etc/profile。

您还需要通过 /etc/environment 设置环境变量(参见 systemd 的man environment.d)。

我尝试将 $DCONF_PROFILE 变量设置为 $XDG_CONFIG_HOME/dconf,但是当使用 gsettings 更改我的 GTK3 主题时出现错误:

$DCONF_PROFILE 指向一个配置文件,而不是直接到配置存储目录。

由于 $XDG_CONFIG_HOME/dconf 通常已经是一个目录(dconf 的“user-db”数据库的默认位置),因此它不能同时是一个文件。请参阅man 7 dconf

相关内容