edd*_*tro 5 gnome scripts lock-screen screensaver
我的问题与这个问题相同,但我无法在 ubuntu 17.10 中使用它:
我想运行一个脚本,在屏幕锁定时更改我的键盘 RGB 配置。脚本运行完美。问题是获取锁定/解锁的事件。我已尝试使用 dbus-monitor ,如该问题所述和此处所述:
https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html
所以运行这个脚本:
#!/bin/bash
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | \
( while true
do read X
if echo $X | grep "boolean true" &> /dev/null; then
echo "locking at $(date)" >> $HOME/time_xprofile
elif echo $X | grep "boolean false" &> /dev/null; then
echo "unlocking at $(date)" >> $HOME/time_xprofile
fi
done )
Run Code Online (Sandbox Code Playgroud)
但它只能工作......几次(!)......我无法理解会发生什么。
我在 X-server 上使用 ubuntu 17.10 和 ubuntu 的 gnome(没有 Wayland),并尝试过 vanilla gnome 并遇到同样的问题。
我也试过:
dbus-monitor > out.log
Run Code Online (Sandbox Code Playgroud)
要查看锁定/解锁时出现的所有痕迹,但没有出现该信号......只有......好吧......很少......
我不知道该怎么做,任何建议都会有所帮助。
假设您正在使用 Gnome,那么现在我认为最好听一下LockedHint屏幕保护程序消息而不是屏幕保护程序消息。这样您就不会受到屏幕保护程序实现的束缚。
这是一个简单的脚本来执行此操作:
gdbus monitor -y -d org.freedesktop.login1 | grep LockedHint
Run Code Online (Sandbox Code Playgroud)
给出这个:
/org/freedesktop/login1/session/_32: org.freedesktop.DBus.Properties.PropertiesChanged ('org.freedesktop.login1.Session', {'LockedHint': <true>}, @as [])
/org/freedesktop/login1/session/_32: org.freedesktop.DBus.Properties.PropertiesChanged ('org.freedesktop.login1.Session', {'LockedHint': <false>}, @as [])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4375 次 |
| 最近记录: |