установите значения dconf-редактора программно

Существует ли способ, которым я могу получить доступ и отредактировать значения dconf-редактора программно, я означаю использовать фитон или удар?

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

Я там своего рода API для dconf-редактора? или API для сочетаний клавиш управления окнами в целом.

В основном я хочу отредактировать ярлыки Windows Переключателя (Высокий звук + Вкладка) от удара или некоторого другого языка сценариев, т.е., не используя GUI.

Совет.

0
задан 3 August 2018 в 22:49

1 ответ

Для Python использовать Gio модуль. А именно, вот пример двух функций, которые я использую в своем собственном коде (не стесняйтесь видеть, как они используются в моем Индикаторе Списка Средства запуска):

from gi.repository import Gio

# Define your own class here 

    # Note that these use `self` for use with classes
    # this could be removed otherwise

    def gsettings_get(self, schema, path, key):
    """Get value of gsettings schema"""
    if path is None:
        gsettings = Gio.Settings.new(schema)
    else:
        gsettings = Gio.Settings.new_with_path(schema, path)
    return gsettings.get_value(key)

def gsettings_set(self, schema, path, key, value):
    """Set value of gsettings schema"""
    if path is None:
        gsettings = Gio.Settings.new(schema)
    else:
        gsettings = Gio.Settings.new_with_path(schema, path)
    if isinstance(value, list):
        return gsettings.set_strv(key, value)
    if isinstance(value, int):
        return gsettings.set_int(key, value)

Эти функции делают получение и устанавливание значений легкими и подобными утилитам командной строки; schema, path, и key значения являются всеми строками. Например, для установки положения средства запуска Единицы для "Понимания" Вас сделало бы:

self.gsettings_set( 'com.canonical.Unity.Launcher', 'launcher-position', 'Bottom')

Для сценариев оболочки, существуют dconf и gsettings инструменты командной строки, более позднее существо фронтенд к dconf. gsettings команда предпочтена, потому что она выполняет проверки безопасности на входных значениях. Пример использования:

 gsettings set com.canonical.Unity.Launcher launcher-position 'Bottom'

Можно назвать эти два от использования Python subprocess.call() или subprocess.check_output(), но это имеет издержки порождения дополнительного процесса, который является ненужным (И если Вы собираетесь сделать это Pythonic путь, сделайте его правильно через API).

См. также

0
ответ дан 28 October 2019 в 05:37

Другие вопросы по тегам:

Похожие вопросы: