通过编程设置 dconf-editor 值

通过编程设置 dconf-editor 值

有没有办法可以以编程方式访问和编辑 dconf-editor 值,我的意思是使用 phython 或 bash?

我想开发一个简单的工具来编辑一些窗口管理快捷方式。我知道已经有像 compiz 这样的工具提供此功能,但我需要一些快速而简单的功能来最好地满足我的要求。

有没有用于 dconf-editor 的某种 API?或者一般用于窗口管理键盘快捷键的 API。

基本上,我想从 bash 或其他脚本语言编辑切换 Windows 快捷方式(Alt + Tab),即不使用 GUI。

请指教。

答案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)

这些函数使获取和设置值变得简单,类似于命令行实用程序;schemapathkey值都是字符串。例如,要将 Unity 启动器位置设置为“底部”,您可以执行以下操作:

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

对于 shell 脚本,有dconfgsettings命令行工具,后者是的前端dconfgsettings命令是首选,因为它对输入值执行安全检查。使用示例:

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

subprocess.call()您可以使用或从 python 调用这两个subprocess.check_output(),但这会产生额外的进程开销,这是不必要的(如果您要以 Pythonic 方式执行此操作,请通过 API 正确执行)。

也可以看看

相关内容