gsettings – 通过命令行更改隐私设置
我知道如何通过GUI(系统设置>安全和隐私)更改隐私设置,但我希望能够从命令行执行此操作。
我做了什么来发现
我跑了命令:
dconf watch /
看看做了哪些改变。 关于命令(来自man dconf
):
watch Watch a key or directory for changes.
随后,我通过GUI更改了设置,以查看命令输出中发生的情况。 这显示了:
/org/gnome/desktop/privacy/remember-recent-files false /com/canonical/unity/lenses/remote-content-search 'none' /org/gnome/desktop/screensaver/ubuntu-lock-on-suspend false /org/gnome/desktop/screensaver/lock-enabled false
我的问题是:如何使用此信息从命令行更改设置?
编辑这些设置的不同方法
您提到的设置存储在~/.config/dconf
中的dconf
数据库中(以二进制格式)。 该数据库可以使用dconf
直接编辑,也可以通过gsettings
编辑。 这个答案的最后一部分解释了这种差异。
一旦您获得了问题中的信息,您就可以通过两种不同的方式更改相应的设置。
使用您的第一个示例(设置remember-recent-files
):
使用dconf写:
dconf write /org/gnome/desktop/privacy/remember-recent-files false
要么
使用gsettings设置:
gsettings set org.gnome.desktop.privacy remember-recent-files false
同样, 阅读当前设置:
使用dconf读取:
dconf read /org/gnome/desktop/privacy/remember-recent-files
要么
使用gsettings得到:
gsettings get org.gnome.desktop.privacy remember-recent-files
在第一种情况下,您直接编辑dconf
数据库,后者使用gsettings
,这是gsettings
的CLI前端。
哪种方式更喜欢; dconf还是gsettings?
为了保护dconf
数据库的完整性,通常,使用gsettings
被认为是更好的做法。
弗罗姆这个链接 ,我们读到:
dconf程序可以在dconf数据库上执行各种操作,例如读取或写入单个值或整个目录。 此工具直接在dconf上运行,不使用gsettings架构信息。 因此,它无法对值执行类型和一致性检查。 如果需要这样的检查,gsettings(1)实用程序是另一种选择。 你可以看到
gsettings
作为gsettings
的cli-dconf
。
阅读更多关于gsettings和dconf的信息 。