如何在没有 GUI 的情况下更改 dconf 键(用于安装后脚本)?

如何在没有 GUI 的情况下更改 dconf 键(用于安装后脚本)?

我已经安装了 dconf-tools。在这种情况下,我正在操纵会话指示器面板上的名称显示。

我可以毫无问题地在 dconf-editor gui 中更改这一点,我转到 apps/indicator-session,然后取消勾选 show-real-name-on-panel。

不过,我也尝试过在命令行上使用 dconf 来切换它:

dconf write /com/canonical/indicator/session/show-real-name-on-panel false

重启后,面板没有变化,dconf-editor 中的键也没有变化。

此外,尝试通过终端更新 dconf 数据库会出现错误:

$ dconf update
fatal: Error opening directory '/etc/dconf/db': No such file or directory

根据我的经验似乎好像 dconf 和 dconf-editor 没有关系,所以我只是想知道我做错了什么。

如果我能解决这个问题,我只想将命令放在 bash 脚本中,以便在下次必须进行全新安装进行升级时运行*。我在 6 个月内做了很多调整,我只想从现在开始尽可能地实现自动化。

  • 稍微离题一下:发行版升级机制对我来说从来就不是一帆风顺的;我也尝试过从 11.04 升级到 11.10。

答案1

您可以使用该gsettings工具。

gsettings set com.canonical.indicator.session show-real-name-on-panel false

答案2

dconf dump+load批量导出和恢复

  1. 将所有设置转储到文件中:

    dconf dump / >~/.config/dconf/user.conf
    
  2. 在文本编辑器上打开该文件并选择您关心的设置:

    editor ~/.config/dconf/user.conf
    

    如果你使用 Vim,你会想要此语法突出显示

  3. 如果您不知道设置的名称,但知道如何从 GUI 等修改它unity-control-center,请运行:

    dconf watch /
    

    然后修改它们。然后终端上将显示确切的设置。

  4. 当您想要恢复这些设置时,请运行:

    dconf load / <~/.config/dconf/user.conf
    
  5. Git 跟踪配置文件以确保永远不会丢失它。家乡是我目前最喜欢的方法。

在 Ubuntu 15.10 上测试。提示改编自:http://catern.com/2014/12/21/plain-text-configuration-gnome.html

答案3

以下内容在 Ubuntu 14.04 上对我有用:

dconf write /org/gnome/gnome-session/auto-save-session true

该值确实发生了变化,并且在重启后保持不变。我遇到了另一个问题,即窗口没有保存,但这是一个完全不同的问题。

答案4

似乎(至少在 15.10 中)有些东西(特别是 compiz)只将配置存储在dconf层中,无法通过设置gsettings。这可能会影响其他配置路径,但可能性不大 - 因为 compiz 位于比 unity 更低的层,所以我并不惊讶它的行为不同。

例如,这将有效:

dconf write /org/compiz/profiles/unity/plugins/core/outputs "['3200x1800+288+2160', '3840x2160+0+0']"

但这不会:

gsettings set org.compiz.profiles.unity.plugins.core outputs "['3200x1800+288+2160', '3840x2160+0+0']"
# No such schema 'org.compiz.profiles.unity.plugins.core'

现在,如果我能弄清楚如何重新加载 compiz 而不使一切崩溃...

相关内容