说真的,dconf、gconf、gsettings...我如何保存我的终端设置?

说真的,dconf、gconf、gsettings...我如何保存我的终端设置?

我正在尝试做一些我们大多数人曾经想过要做的相对简单的事情:保存我的 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-argexec

在哪里可以找到我可以添加的所有键的列表?

答案1

这是一个老问题,但显然仍然有意义。

基于这篇有用的帖子,这里是如何备份/恢复您的 GNOME 终端设置;这可以在从一台计算机迁移到另一台计算机时使用。

*请注意*:这将覆盖新机器上的默认终端配置文件!

  1. 确保在两台机器上使用相同的配置文件名称,方法是在“首选项”对话框中的“配置文件”下重命名它,并在必要时激活它(单击下拉菜单并选择“设为默认值”)
  2. 在源机器上运行这个小脚本:

    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
    
  3. 检查配置文件备份文件 ( /tmp/term_profile.gsettings) 以确保其看起来合理。删除您不想保留的任何不需要的设置可能会很有用。

  4. 将备份文件复制到新计算机,例如:

    scp /tmp/term_profile.gsettings new-host:/tmp
    
  5. 现在在新计算机上运行以下小脚本;我们将从试运行开始,以便有机会发现任何意外的事情:

    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
    
  6. 假设输出看起来不错,请重复上述脚本,但取消注释该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,我会跟进该脚本的链接。

相关内容