有没有办法可以以编程方式访问和编辑 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)
这些函数使获取和设置值变得简单,类似于命令行实用程序;schema
、path
和key
值都是字符串。例如,要将 Unity 启动器位置设置为“底部”,您可以执行以下操作:
self.gsettings_set( 'com.canonical.Unity.Launcher', 'launcher-position', 'Bottom')
对于 shell 脚本,有dconf
和gsettings
命令行工具,后者是的前端dconf
。gsettings
命令是首选,因为它对输入值执行安全检查。使用示例:
gsettings set com.canonical.Unity.Launcher launcher-position 'Bottom'
subprocess.call()
您可以使用或从 python 调用这两个subprocess.check_output()
,但这会产生额外的进程开销,这是不必要的(如果您要以 Pythonic 方式执行此操作,请通过 API 正确执行)。
也可以看看