好的,你知道,我没有经常使用 dbus 或 perl,所以我可能会说一些不合适的东西。
我正在尝试使用 dbus 以编程方式使用 compiz。查看 compiz wiki http://wiki.compiz.org/Plugins/Dbus,我发现 python 似乎是最容易做到这一点的方式。所以我得到了这个
import sys, dbus, subprocess
bus = dbus.SystemBus()
bus.get_object('org.freedesktop.compiz','/org/freedesktop/compiz')
然而,这给我带来了问题,因为显然 dbus 找不到 compiz dbus 服务。语法是正确的,它适用于 org.freedesktop.EverythingElse
dbus.exceptions.DBusException:org.freedesktop.DBus.Error.ServiceUnknown:名称 org.freedesktop.compiz 不是由任何 .service 文件提供的
奇怪的是,我用谷歌搜索并设法获得了一个列出服务的 perl 脚本(使用 org.freedesktop.DBus),它显示 compiz 是其中之一。
此外,perl 似乎能够使用 compiz 服务。但是,我认为我不能用 perl 编写脚本,因为我不擅长 perl,而且我什至不知道 dbus 是如何工作的,所以我会在那里自杀。
我试图能够用 compiz 做一些事情,比如改变工作空间。我想我可以用伪造的按键来做到这一点,但这太难了,我可能想添加更高级的行为。
这是arch-linux的新安装,所以我想知道我是否可能缺少一个包。