我有一个每小时运行一个脚本的 cron,它一旦启动就会使用通知发送在 Ubuntu 18.04 桌面(Gnome)上发出通知。
我可以在脚本中添加什么内容:
- 如果屏幕被锁定则退出。
- 如果屏幕未锁定,则继续正常通知。
以下答案使我依赖于环境:
$ qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive
$ qdbus org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive
$ qdbus org.gnome.ScreenSaver /ScreenSaver org.gnome.ScreenSaver.GetActive
答案1
答案2
测试屏幕保护程序是否处于活动状态
qdbus
会告诉您屏幕保护程序(由 Lock Screen 使用)是否处于活动状态。首先,您需要知道您正在使用哪种环境:Gnome、Unity、KDE 等。
在此示例中,Unity 处于活动状态,而 Gnome 和 KDE 则未处于活动状态:
$ qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive
false
$ qdbus org.gnome.ScreenSaver /ScreenSaver org.gnome.ScreenSaver.GetActive
Error: org.freedesktop.DBus.Error.UnknownMethod
No such interface 'org.gnome.ScreenSaver' on object at path /ScreenSaver
$ qdbus org.kde.screensaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive
Service 'org.kde.screensaver' does not exist.
对于 Gnome 桌面,第二个选项将返回false
,而第一个和第三个选项将出现错误消息。