Tuner.Setting
Основная привязка: соединяет виджет с ключом GSettings. Синхронизация двусторонняя — изменение виджета записывает ключ, изменение ключа (например, из терминала) обновляет виджет.
| Свойство | Тип | Описание |
|---|---|---|
schema-id | string | Идентификатор схемы GSettings |
schema-key | string | Ключ внутри схемы |
transform | SettingTransform | Необязательный трансформ значения |
validator | Validator | Реакция на отсутствующую схему, см. ниже |
blp
Tuner.Switch {
title: _("Over Amplification");
binding: Tuner.Setting {
schema-id: "org.gnome.desktop.sound";
schema-key: "allow-volume-above-100-percent";
};
}Кнопка сброса появляется рядом со строкой автоматически, когда значение ключа отличается от значения по умолчанию из схемы.
Отсутствующие схемы и валидация
Если схемы или ключа нет в системе пользователя, привязка молча остаётся неактивной: строка отображается, но ничего не делает. Добавьте Tuner.SimpleValidator, чтобы обработать этот случай:
blp
binding: Tuner.Setting {
schema-id: "org.gnome.shell.extensions.example";
schema-key: "enabled";
validator: Tuner.SimpleValidator {
method: visibility;
};
};method принимает одно из значений:
sensitivity— строка становится неактивной при отсутствии схемы (по умолчанию);visibility— строка скрывается.
Это рекомендуемый способ писать плагины, работающие в разных дистрибутивах, где часть компонентов может быть не установлена.