什么时候更改gsettings?


9

对gsetting中的某些内容进行更改后,是否需要做些什么才能使更改生效?

例如,如果我有~/.thumbnails几天的缩略图,它将运行:

gsettings set org.gnome.desktop.thumbnail-cache maximum-age 1

导致超过一天的缩略图立即被删除?

另一种情况是意外关闭通知,然后想要恢复默认值,如下所示:

gsettings reset org.gnome.nm-applet disable-vpn-notifications

根据修改密钥的性质,是否需要注销并登录或重新启动?除了通过反复试验之外,还有其他方法可以找到答案吗?

我的操作系统是Lubuntu 13.10。


我认为Gnome的指导原则是设置立即生效...也许我错了,我不使用Gnome。
罗宾·格林

Answers:


1

GSettings API真正提供bindsync和信号。但是,应用程序开发人员可以使用它们(获取/同步),何时使用它们或何时听变更事件(定期同步,在应用程序加载时获取一次然后在应用程序终止时进行同步...)。参考:GIO参考手册

值的任何更新,都将立即存储在dconf中user:db。GSettings守护程序将发送更改信号(glib信号)。应用程序方面,取决于其实现。

例如:

  • 大多数服务在重新启动时会重新加载设置。
  • 键盘布局的实现可以立即反映出变化。无论如何应该如此。

简单绑定测试在这里是个好问题,我的Quickly应用程序的data / glib-2.0文件夹中的模式XML文件是什么?

注意:关于GSettings也可以与dbus一起使用的讨论,可能已经实现了。参考:https : //jasondclinton.livejournal.com/76020.html


1

新设置将立即被记录。它们何时生效取决于设置是什么以及哪个应用程序使用它。如果该设置是针对系统服务的,则通常在重新加载服务时生效。如果该设置是针对某个应用程序的,则通常在关闭并重新打开该应用程序后才会生效。就您的示例而言,在缓存文件夹的情况下,缓存的文件将保留在那里,直到清除缓存为止,这可能会定期发生,或者在打开时应用程序可能会验证缓存的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.