我有一个在后台运行的程序,该程序仅每N秒拍摄一次屏幕截图。
例如:
#!/bin/sh
while true; do
take-screenshot
sleep 10
done
我要实现的只是在屏幕未锁定的情况下截取屏幕截图。例如:
#!/bin/sh
while true; do
if ! screen-is-locking; then
take-screenshot
sleep 10
fi
done
如何确定我的桌面是否锁定在命令行中? 最佳答案
根据该问题下其他评论提供的this link,我得到了我的问题的解决方案或解决方法,它在5.4.58-1-MANJARO KDE Plasma下效果很好(根据该回答的陈述,其他DE可能具有不同的方式)。
dbus服务中有一种方法很适合我的需求:
#/bin/sh
is_screen_locking()
{
if dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call --print-reply /org/freedesktop/ScreenSaver org.freedesktop.ScreenSaver.GetActive | grep 'boolean true' > /dev/null; then
return 0
else
return 1
fi
}
if is_screen_locking; then
echo 'screen is locking'
else
echo 'screen is not locking'
fi