我必须在python中执行此代码
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev "'Disabled'"
尝试过:
os.system('dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev "Disabled" ')
错误:
error: 0-1:unknown keyword
Usage:
dconf write KEY VALUE
Write a new value to a key
Arguments:
KEY A key path (starting, but not ending with '/')
VALUE The value to write (in GVariant format)
请帮助我解决这个问题。谢谢:-)
答案1
从 python 编辑 dconf/gsettings
您真的不应该os.system()
再使用它进行系统调用,它已经被弃用并且完全过时了很长时间。
有不同的选项可以编辑dconf
数据库。
使用子进程
假设我有一条dconf
路径/com/gexperts/Tilix/keybindings/app-shortcuts
,我可以使用:
import subprocess
key = "/com/gexperts/Tilix/keybindings/app-shortcuts"
subprocess.Popen([
"dconf", "write", key, "'enabled'"
])
注意引用!
然而在大多数情况下,你也可以使用(更好) 。如果值也可以从中设置,则gsettings
使用。Gio.Settings
gsettings
使用 Gio.Settings
from gi.repository import Gio
key = "com.gexperts.Tilix.Keybindings"
settings = Gio.Settings.new(key)
settings.set_string("app-shortcuts", "enabled")
也可以看看https://lazka.github.io/pgi-docs/#Gio-2.0/classes/Settings.html#Gio.Settings和https://people.gnome.org/~gcampagna/docs/Gio-2.0/Gio.Settings.html
关于 gsettings/dconf
现代 Ubuntu 版本中的首选项大多以二进制格式存储在数据库中。这些设置可以通过(cli) 或(gui)dconf
直接编辑。Dconf 是低级的,可通过极快且轻量级的直接编辑设置。dconf
dconf-editor
dconf
不过,一般来说,如果可能的话,最好通过 编辑数据库中的设置gsettings
,这是 的 cli 前端dconf
。原因是gsettings
具有一致性检查,使用起来更安全。
您可能会发现这是一篇有趣的文章gsettings
:https://developer.gnome.org/gio/stable/GSettings.html
还有这个dconf
:https://developer.gnome.org/dconf/unstable/dconf-tool.html
笔记
- 由于我没有运行 Unity,因此我使用了另一个路径/键示例。