如何从命令行确定我的KDE桌面是否处于锁定屏幕状态?

问题描述

我有一个在后台运行的程序,它每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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...