当屏幕在 KDE 中被锁定时(我的特定版本是 Kubuntu,但希望这是通用的 Linux),是否记录了事件?如果是这样,我会在哪里寻找它?
使用 D-Bus 获取锁屏的激活/停用信号。屏幕保护程序服务的名称因系统而异。一般来说,KDE 使用org.freedesktop.ScreenSaver
和 Gnome 使用org.gnome.ScreenSaver
. 但是,这不能依赖,例如,Mint 使用org.cinnamon.ScreenSaver
.
有用的命令
这些假设您的屏幕保护程序是org.freedesktop.ScreenSaver
并且您的 DBus 服务是org.freedesktop.DBus
. 您可能需要针对其他系统进行调整。使用以下信息来了解您的系统使用什么:
要获取当前会话中可用的 dbus 服务列表,请使用:
dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
Run Code Online (Sandbox Code Playgroud)
|grep screensaver
如果您只想使用屏幕保护程序服务,请添加到最后。
要获取屏幕保护程序服务支持的命令列表,请使用:
qdbus org.freedesktop.ScreenSaver /ScreenSaver
Run Code Online (Sandbox Code Playgroud)要调用命令,请使用:
dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call --print-reply --reply-timeout=20000 /org/freedesktop/ScreenSaver org.freedesktop.ScreenSaver.SetActive boolean:true
Run Code Online (Sandbox Code Playgroud)
在SetActive
支持的命令列表中列出的位置并采用布尔值。
要监控服务:
dbus-monitor --session "type='signal',interface='org.freedesktop.ScreenSaver'"
Run Code Online (Sandbox Code Playgroud)自动化
现在您了解了系统的工作原理,您可以使用 python 脚本将此活动记录到文件中:
dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
Run Code Online (Sandbox Code Playgroud)
[来源:日志锁定屏幕事件]
归档时间: |
|
查看次数: |
2932 次 |
最近记录: |