我有以下设置:
- 对于我的屏幕保护程序,我使用了
xscreensaver
(因为它很漂亮) - 为了锁定我的屏幕,我使用了
light-locker
(因为这样更安全xscreensaver
)
最近xscreensaver
开始绑定到org.freedesktop.ScreenSaver
dbus上。因此,我无法再并行运行它们,因为我在另一个抱怨之后启动了它们a screensaver is already running
。
我读在 ArchWiki 中服务有一定的可能性override
。但它很模糊,而且我对d-bus不熟悉。
有没有办法让两者并存而不篡改其中一个的源代码?
郑重声明:DBUS_SESSION_BUS_ADDRESS
在启动以太屏幕保护程序之前取消设置环境变量不起作用。
编辑:据我在研究中看到的,似乎不可能阻止程序监听 d-bus 服务而不给该程序带来麻烦。如果有人可以向我证实这一点,那将是一个很好的答案。
答案1
答案中令人不快的部分是你可以尝试再次并行运行它们,但您很可能会遇到损坏的情况。 D-bus 作为总线工作,因此存在具有一定规则的消息发送者和接收者。对于屏幕保护程序,最可能的假定规则是屏幕保护程序只是系统上的一个,其他软件使用 D-bus 来发出是否要阻止调用屏幕保护程序或其他标准功能的信号。
也就是说,如果您想尝试牛仔方式并通过反复试验学习一些 D-Bus 基础知识,通常目录中/usr/share/dbus-1/services/
有一堆文本文件,这些文本文件完全以 D-Bus 服务名称命名,并以.service
名称结尾。在那里你可能还可以找到org.freedesktop.ScreenSaver.service
文件。
请做好编辑可能会破坏系统的准备,因此您知道如何在系统损坏时恢复它。但这里有龙,您需要自行承担风险,并且很可能会破坏工作系统。