免责声明:我在 Ubuntu 22.04.4 上以用户身份运行 Guix 包管理器。这很可能是问题的一部分:Guix 对包使用非传统路径,并设置符号链接和各种搜索路径目录(例如 PATH、XDG_CONFIG_HOME 等)以使应用程序可以访问它们。
- 我的
/usr/bin/dconf
和/usr/bin/gsettings
由 apt 安装的读取和写入我的“~/.config/dconf/user”数据库(GVariant)。 - Guix 提供的
guix shell dconf-editor -- dconf-editor
包管理器读取并写入我的“~/.config/glib-2.0/settings/keyfile”数据库(.ini 样式的文本文件)。
此外,通过 Guix 安装的其他应用程序(emacs、firefox)从“~/.config/glib-2.0/settings/keyfile”读取其设置(例如 cursor-theme)
因此,当我修改 中的值时dconf-editor
,该值会保留(即,重启后我可以在 dconf-editor 中看到相同的值),但修改在 CLI 中不可见。类似地,当我修改或dconf
中的值时,该值会保留,并且可以通过或读取,但在 中不可见,并且对我的 Firefox 没有影响。dconf
gsettings
dconf
gsettings
dconf-editor
- 哪个文件是规范文件?
- 如何确保我的所有应用程序访问相同的 gsettings 配置?
我的 dconf 个人资料:
$ ls /etc/dconf/profile/
ibus
$ cat /etc/dconf/profile/ibus
user-db:user
system-db:ibus
dconf-service
环境:
$ tr '\0' '\n' < /proc/2423/environ
HOME=/home/necto
LANG=en_US.UTF-8
LOGNAME=necto
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
SHELL=/bin/bash
SYSTEMD_EXEC_PID=2423
USER=necto
XDG_RUNTIME_DIR=/run/user/1000
GTK_MODULES=gail:atk-bridge
QT_ACCESSIBILITY=1
XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
MOZ_DISABLE_WAYLAND_PROXY=1
WAYLAND_DISPLAY=wayland-1
XDG_CURRENT_DESKTOP=sway
MANAGERPID=2102
INVOCATION_ID=f3d9238a3ad04b38aa6f719eebf5a037
JOURNAL_STREAM=8:39075
编辑:最初我以为 dconf-editor 对 /run/user/1000/dconf/user 进行操作,但我发现它不是一个真正的 DConf DB,因为它只包含 2 个零字节。