我正在为我的 gnome 设置创建一个 dotfiles git repo,并希望 Gnome 扩展的精确设置可以在安装之间转移
我发现扩展本身存储在
~/.local/share/gnome-shell/extensions
目录中,但我找不到我在扩展中设置的首选项(比如截图工具例如)在该目录中,只有 Javascript 和样式文件
更令人困惑的是,为了观察变化......
我在整个主目录上初始化了一个 git repo,并提交了所有内容以获得一个干净的工作区,然后更改了扩展的键绑定,但 git 没有检测到任何变化git diff
这是怎么回事?我在哪里可以找到 XML 或 JSON 之类的首选项文件,甚至.conf
是扩展?
答案1
架构文件
默认扩展设置位于*.xml如果您全局安装了扩展,则文件位于以下目录中:
/usr/share/gnome-shell/extensions/<extension directory>/schemas
默认扩展设置位于*.xml如果您在本地安装了扩展程序(这似乎是您的情况),则文件位于以下目录中:
~/.local/share/gnome-shell/extensions/<extension directory>/schemas
在里面*.xml文件,<key>
标签将列出键。<default>
标签将包含默认值。您可以手动编辑这些文件。为了跨系统传输设置,您需要更新扩展的*.xml“gschema” 文件。
在上面引用的示例扩展中,设置位于屏幕截图配置。
如果您在已安装的系统上编辑这些文件,则需要通过运行以下命令之一重新编译“gschema”。
如果你已经全局安装了扩展,请执行:
sudo glib-compile-schemas /usr/share/gnome-shell/extensions/<extension directory>/schemas
如果你已经在本地安装了扩展,请执行:
glib-compile-schemas ~/.local/share/gnome-shell/extensions/<extension directory>/schemas
这将创建一个更新的gschemas.编译扩展的架构目录中的文件。
管理设置
当你使用 GUI(扩展的设置对话框)更改设置时,更改实际上存储在设定。
您可以使用Dconf 编辑器找到特定“gsetting”的键和值。
安装Dconf 编辑器使用:
sudo apt install dconf-editor
(您也可以使用gsettings
命令行工具代替Dconf 编辑器图形用户界面 (GUI) 工具)。
<schema>
或标签<path>
*.xml文件(如上所述)将告诉您要导航到哪个模式Dconf 编辑器。(提示,它将位于 下/org/gnome/shell/extensions/
)。*.xml文件还将列出可以配置哪些键。
您可以搜索架构并输入Dconf 编辑器,并进行更改。
根据我的经验,大多数扩展设置都存储在“可重定位”架构中。实际上,这意味着您可以使用以下方式搜索并更改它们Dconf 编辑器至少设置一次后才能使用。否则,密钥将无法使用Dconf 编辑器,因此您将无法更改其值。这是因为*.xml文件(如上所述)在没有设定来覆盖它们。
由于您想要跨安装传输这些设置,请尝试导出您的设定并将其加载到新机器上。请参阅此回答另一个问题以获取说明。(这种方法实际上可能比编辑*.xml文件,如上所述)。
关注变化
观察的一个好方法设定在进行更改时,运行以下命令:
dconf watch /
这将显示您刚刚更改了哪个架构和密钥。
使用以下方法安装dconf
命令行工具:
sudo apt install dconf-cli
答案2
在某些情况下,包括当您将环境变量设置GSETTINGS_BACKEND
为时keyfile
,将在创建一个文本文件$XDG_CONFIG_HOME/glib-2.0/keyfile
,存储所有扩展设置。
这对于开发和测试扩展非常有用。例如,在使用这个脚本,您可以复制该文件来创建可重现的测试环境。