我已将 $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
。