0

我正在根据笔记本电脑上的 ACPI 事件使用复杂的算法。因此,我被迫从 CLI 锁定我的 KDE/Plasma 会话。以前我使用这个 bash 代码来锁定会话:

for SESSION in $(qdbus --literal --system org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.GetSessions | sed 's/^.*\(Session[0-9]*\).*$/\1/'); do
    dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/$SESSION org.freedesktop.ConsoleKit.Session.Lock
done

命令由acpid(由root)执行,与任何实际用户会话无关。但在很久以前,ConsoleKit 已被弃用,不再通过 DBus 提供。

我找到:

dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call /org/freedesktop/ScreenSaver org.freedesktop.ScreenSaver.Lock

从实际用户执行将锁定活动会话,但如果从 root 执行将不起作用。

acpid如果执行以锁定所有活动的 KDE/Plasma 会话,有什么想法可以使它工作吗?

4

0 回答 0