您需要提供一个名为DBUS_SESSION_BUS_ADDRESS
.
您可以从正在运行的 kde 会话中获取值。
$ echo $DBUS_SESSION_BUS_ADDRESS
unix:abstract=/tmp/dbus-iHb7INjMEc,guid=d46013545434477a1b7a6b27512d573c
在您的 kde 启动(配置中的自动启动模块)中,创建一个脚本条目以在您的环境启动后运行。将此环境变量值输出到主目录中的临时文件,然后您可以在 cron 作业或临时文件中的 python 脚本中设置环境变量。
#!/bin/bash
echo $DBUS_SESSION_BUS_ADDRESS > $HOME/tmp/kde_dbus.session
截至 2019 KDE5,它仍然有效,但结果略有不同:
$ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1863/bus
要对其进行测试,您可以执行以下操作:
$ qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity
qdbus-qt5
如果您仍然安装了旧的 kde4 二进制文件和 kde5,则可能需要使用。您可以确定应该使用以下哪个:
export QDBUS_CMD=$(which qdbus-qt5 2> /dev/null || which qdbus || exit 1)
当我想阻止我的屏幕保护程序使用时,我会使用 sleep 语句运行它并且它可以工作。我从主计算机旁边的另一台计算机远程运行它。
对于那些想知道我如何锁定和解锁远程屏幕保护程序的人来说,这是一个不同的命令......
loginctl lock-session 1
或者
loginctl unlock-session 1
那是假设您的会话是第一个会话。您可以将脚本添加到屏幕保护程序启动和停止的 KDE 通知事件。希望此信息对想要在多台计算机上同步屏幕保护程序的人有所帮助。
我知道这是一个很长的答案,但我想提供一个示例供您测试,以及我今天使用它的实际用例。