Имена схем dconf чувствительны к регистру?

10

Я нашел пример схемы, на которую ссылаются два двумя разными способами, отличаясь только регистром, что меня смущает.

Gsettings видит имя схемы как com.canonical.Unity.Launcherи не принимает com.canonical.unity.launcherв качестве допустимого имени схемы. С другой стороны, dconf-editor видит только com.canonical.unity.launcherстрочные буквы, как показано на скриншоте.

Если я изменю ключ favoritesв Gsettings, это изменение будет отражено в dconf-editor, и наоборот.

В чем дело? Какое имя схемы правильное, com.canonical.Unity.Launcherили com.canonical.unity.launcher?

Gsettings:

$ 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
Этот вопрос кажется полезным, но не дублирует этот. Этот вопрос очень конкретно касается чувствительности к регистру.
Flimm

Ответы:

8

Дерево схемы Dconf хитро и не всегда относится к фактическим именам схемы.

Например, под appsвы можете найти update-manager, но вы не найдете apps.update-managerсхему с помощью gsettings. Допустимое имя схемы есть com.ubuntu.update-manager, и оно не отображается в Dconf там, где оно должно быть на самом деле. Правильное имя схемы в Dconf можно найти под списком ключей, в сером поле с описанием и значением по умолчанию. (Смотрите скриншот). Самая верхняя запись показывает реальное имя схемы.

Так что я бы доверял выводу gsettings. В вашем случае com.canonical.Unity.Launcherэто правильное имя схемы, и его регистр действительно имеет значение.

Поле схемы подсветки снимка экрана

whtyger
источник
Интересно, что я не заметил поле схемы в dconf-editor. Если путь к дереву не всегда совпадает с именем схемы, что ему подходит?
Flimm
1
Возможно, эти имена схем были изменены в процессе разработки и еще не были исправлены в интерфейсе dconf. Или просто забыли. Есть также несколько настроек dconf, которые вообще не имеют схемы. org>gtk>settings>file-chooser, например. Интересно, как их можно изменить с помощью gsettings?
whtyger
Кстати, эти параметры без схем могут быть изменены с помощью dconfтерминала. Проверьте dconf --helpвсе варианты. Например, dconf write /org/gtk/settings/file-chooser/show-hidden trueвключает опцию. Автозаполнение имени ключа работает и при наборе в терминале. Круто!
whtyger