dconf架构名称区分大小写吗?


10

我发现了一个以两种不同方式引用两个模式的示例,只是大小写不同,这使我感到困惑。

Gsettings将模式名称视为com.canonical.Unity.Launcher,并且不接受com.canonical.unity.launcher为有效的模式名称。另一方面,com.canonical.unity.launcher如屏幕截图所示,dconf-editor只看到所有小写​​字母。

如果我favorites在Gsettings中更改了密钥,则该更改将反映在dconf-editor中,反之亦然。

这是怎么回事?正确的架构名称是com.canonical.Unity.Launchercom.canonical.unity.launcher

设置:

$ gsettings list-schemas | grep -i com.canonical.unity.launcher
com.canonical.Unity.Launcher
david@david-Aspire-5735:~$ $ gsettings list-recursively com.canonical.Unity.Launcher
com.canonical.Unity.Launcher favorite-migration '3.2.10'
com.canonical.Unity.Launcher favorites ['application://firefox.desktop', 'application://thunderbird.desktop', 'unity://running-apps', 'unity://expo-icon', 'unity://devices']
david@david-Aspire-5735:~$ gsettings list-recursively com.canonical.unity.launcher
No such schema 'com.canonical.unity.launcher'

dconf编辑器:

dconf编辑器的屏幕截图,裁剪



我认为那要比我提到的年龄大一岁。但认为较新的版本提供了更多有关此案例的参考资料和更好的背景信息。(如果您,Flimm和@whtyger同意我的话)
user.dz 2014年

这个问题似乎有用,但不是这个问题的重复。这个问题非常具体地与大小写有关。
Flimm

Answers:


8

Dconf架构树非常棘手,并不总是与实际架构名称相关。

例如,apps您可以在下找到update-manager,但不会apps.update-manager使用gsettings 查找架构。有效的架构名称为com.ubuntu.update-manager,并且在Dconf中实际上并未显示该名称。Dconf中正确的架构名称可以在键列表下方的灰色字段中找到,其中包含“描述”和“默认值”。(请参见屏幕截图)最上面的条目显示真实的架构名称。

所以我相信gsettings的输出。在您的情况下com.canonical.Unity.Launcher,有效的架构名称及其大小写确实很重要。

屏幕截图突出显示架构字段


有趣的是,我没有注意到dconf-editor中的schema字段。如果树路径并不总是与模式名称匹配,那么它匹配什么?
Flimm 2013年

1
也许这些架构名称在开发过程中已更改,但尚未在dconf前端中修复。还是干脆忘了。还有一些完全没有架构的dconf设置。org>gtk>settings>file-chooser, 例如。我想知道如何使用gsettings更改它们?
whtyger 2013年

顺便说一句,这些没有模式的选项可以dconf在终端中使用。检查dconf --help所有选项。例如,dconf write /org/gtk/settings/file-chooser/show-hidden true打开选项。键入终端时,键名称的自动完成也可以。凉!
whtyger
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.