Skip to content

Tuner.Setting

Основная привязка: соединяет виджет с ключом GSettings. Синхронизация двусторонняя — изменение виджета записывает ключ, изменение ключа (например, из терминала) обновляет виджет.

СвойствоТипОписание
schema-idstringИдентификатор схемы GSettings
schema-keystringКлюч внутри схемы
transformSettingTransformНеобязательный трансформ значения
validatorValidatorРеакция на отсутствующую схему, см. ниже
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 — строка скрывается.

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

Опубликовано под лицензией GPL-3.0+. Содержание доступно по лицензии CC BY-SA 4.0, если не указано иное.