st0*_*t01 22 gnome command-line scripts gsettings gnome-tweak-tool
我喜欢能够从命令行配置东西,这样当我重新安装操作系统时,我只需运行一个脚本并恢复我的首选配置。
自从“升级”到 Ubuntu 17.10 后,我发现我必须使用 gnome-tweak-tool 来按照我想要的方式获取一些设置。
一旦我在 gnome-tweak-tool GUI 中找到了一个设置,我该如何找出它的可脚本化翻译?
例如,以下 gsettings 行与下面的 gnome-tweak-tool 屏幕截图中的相关条目匹配...
gsettings set org.gnome.desktop.wm.preferences titlebar-font "Tahoma Bold 8"
gsettings set org.gnome.desktop.interface font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface document-font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface monospace-font-name "FixedSC 10"
Run Code Online (Sandbox Code Playgroud)
Jac*_*ijm 32
而不是搜索整个选项目录:
运行命令:
dconf watch /
Run Code Online (Sandbox Code Playgroud)进行更改并查看终端显示的内容:
......你来了。
在示例中,您会看到来自dconf. Gsettings 是 dconf 的客户端。很多时候,您可以同时使用dconf命令或gsettings命令。在这种情况下:
dconf write /org/gnome/desktop/background/show-desktop-icons false
Run Code Online (Sandbox Code Playgroud)
或者:
gsettings set org.gnome.desktop.background show-desktop-icons false
Run Code Online (Sandbox Code Playgroud)
但是,如果 gsettings 键存在,则后者被认为是更好的做法,以保护dconf数据库的完整性。
对于大多数设置,您可以使用这种方法:
将列表导出gsettings到一个临时文件中:
gsettings list-recursively > /tmp/gsettings.before
Run Code Online (Sandbox Code Playgroud)通过gnome-tweak-tool(或unity-control-center)进行更改;
将列表导出gsettings到另一个临时文件中:
gsettings list-recursively > /tmp/gsettings.after
Run Code Online (Sandbox Code Playgroud)比较两个文件(。之前和。经过),并获得差异:
diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'
Run Code Online (Sandbox Code Playgroud)
或者比较并仅获取新值(源):
diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \K.*'
Run Code Online (Sandbox Code Playgroud)
或者比较并仅获取新值,但将行的开头替换为gsettings set以准备一个命令列表,该列表将直接存储在您的脚本文件(源)中:
diff /tmp/gsettings.before /tmp/gsettings.after | sed 's/>/gsettings set/;tx;d;:x'
Run Code Online (Sandbox Code Playgroud)您可以从一行运行所有这些命令(或者您可以创建一个脚本来自动化该过程):
gsettings list-recursively > /tmp/gsettings.before; gnome-tweak-tool; gsettings list-recursively > /tmp/gsettings.after; diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'
Run Code Online (Sandbox Code Playgroud)
下一个演示是在 Ubuntu 16.04 中创建的。我认为该方法也应在 17.10 内工作:
更新:我刚刚在 Ubuntu 17.10 中找到了一个简单的方法:
| 归档时间: |
|
| 查看次数: |
8596 次 |
| 最近记录: |