我正在尝试做一些我们大多数人曾经想过要做的相对简单的事情:保存我的 gnome-teminal 设置。
我运行的是 14.04(显然是桌面版)。我从研究中发现,在过去几个版本更新过程中,dconf、gconf 和 gsettings 已被指定用于存储 Gnome/Unity 不同方面的设置。
如果我把关于这些工具的所有问题都问出来,就会失控,我不想学习这 3 个工具的内部结构(如果将 gconftool、gconftool-2、gconfd-2、dconf-service、dconf-ibus 和 dconf 数据库算作单独的工具,则有 8 个)
我的新目标是将所有设置合并到 gsettings 中,因为它包含大多数现有的设置。
这已经完成了吗?
我已确定我可以取消注册 gconf 模式。
我已经确定 gsettings 在 dconf 数据库上运行具有更友好的界面(即任何人都可以在命令行工具中要求的最佳制表符补全)。
除了时间投入之外,将配置从 gconf 移动到 dconf,并为这些设置创建 gsettings 模式,还有什么重大警告吗?这样我就可以轻松保存我的 gnome-terminal 设置,以及我希望调整的任何其他 UI 首选项?
[编辑:]
感谢下面@Rinzwind 的评论,我决定忽略 gconf 并找到 gnome-terminal 的设置。但是它仅包含 2 个键,exec-arg
和exec
。
在哪里可以找到我可以添加的所有键的列表?
答案1
这是一个老问题,但显然仍然有意义。
基于这篇有用的帖子,这里是如何备份/恢复您的 GNOME 终端设置;这可以在从一台计算机迁移到另一台计算机时使用。
*请注意*:这将覆盖新机器上的默认终端配置文件!
- 确保在两台机器上使用相同的配置文件名称,方法是在“首选项”对话框中的“配置文件”下重命名它,并在必要时激活它(单击下拉菜单并选择“设为默认值”)
在源机器上运行这个小脚本:
gprofile=$(gsettings get org.gnome.Terminal.ProfilesList default) gprofile=${gprofile:1:-1} gschema=org.gnome.Terminal.Legacy.Profile gpath=/org/gnome/terminal/legacy/profiles:/:${gprofile}/ gsettings list-recursively ${gschema}:${gpath} > /tmp/term_profile.gsettings
检查配置文件备份文件 (
/tmp/term_profile.gsettings
) 以确保其看起来合理。删除您不想保留的任何不需要的设置可能会很有用。将备份文件复制到新计算机,例如:
scp /tmp/term_profile.gsettings new-host:/tmp
现在在新计算机上运行以下小脚本;我们将从试运行开始,以便有机会发现任何意外的事情:
gprofile=$(gsettings get org.gnome.Terminal.ProfilesList default) gprofile=${gprofile:1:-1} gschema=org.gnome.Terminal.Legacy.Profile gpath=/org/gnome/terminal/legacy/profiles:/:${gprofile}/ cut -f2- -d' ' /tmp/term_profile.gsettings | while read line; do key=$(echo $line | cut -f1 -d' ') value=$(echo $line | cut -f2- -d' ') echo "$key => $value" # commented out for dry-run: # gsettings set ${gschema}:${gpath} $key "$value" done
假设输出看起来不错,请重复上述脚本,但取消注释该
gsettings set
行。您的更改(例如:调色板更改)应立即应用于您正在运行的终端。
在 19.10 上进行了测试,但应该也适用于一些旧版本(也可能是新版本)。
请注意,这只处理“个人资料”下的偏好设置;假设gsettings
可以发现相关密钥,该技术也应该可以备份/恢复它们。
答案2
好的,我找到了包含 gnome-terminal 首选项的文件。
它们位于以下文件(类似 XML):
/usr/share/gnome-terminal/profile-preferences.ui
由于我无法弄清楚如何通过任何设置管理器更新此文件。我手动操作。您可以保存此文件,并在全新安装时复制默认设置,而不必再次单击 GUI。
有趣的是,文件夹中还有一个名为的文件,terminal.xml
它似乎包含菜单项及其相关操作。此外,还有一个名为的文件,keybinding-editor.ui
它似乎包含终端的键绑定。肯定会尝试修改一些选项。也许下面有一行选项,ALT+(some number)
这样您就不必禁用菜单访问来使用 bash 键盘快捷键。
如果我最终有时间将终端首选项添加到 dconf/gsettings,我会跟进该脚本的链接。