Существует ли способ, которым я могу получить доступ и отредактировать значения dconf-редактора программно, я означаю использовать фитон или удар?
Я хочу разработать простой инструмент для редактирования некоторых ярлыков управления окнами. Я знаю, что существуют инструменты как compiz, который уже обеспечивает это, но потребность иметь что-то быстрое и простое для работы лучше всего с моими требованиями.
Я там своего рода API для dconf-редактора? или API для сочетаний клавиш управления окнами в целом.
В основном я хочу отредактировать ярлыки Windows Переключателя (Высокий звук + Вкладка) от удара или некоторого другого языка сценариев, т.е., не используя GUI.
Совет.
Для 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).
См. также