我正在根据笔记本电脑上的 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 会话,有什么想法可以使它工作吗?