我的屏幕锁定程序遇到了一些问题。花了一天时间试图解决它,但没有任何效果,所以我决定写一个锁定我的屏幕的程序:
LOCKTIME=60
lastIdleTime=0
extra=0
while [ 1 ]; do
sound=$(pacmd list-sink-inputs | grep -c "state: RUNNING")
idleTime=$(($(xprintidle) / 1000))
lock=$(gnome-screensaver-command -q | grep -c " active")
if [[ $lock != 0 ]]; then
extra=$idleTime
else
if [[ $sound != 0 || $idleTime -lt $lastIdleTime ]]; then
extra=$idleTime
fi
if [[ $(($idleTime - $extra)) -gt $LOCKTIME ]]; then
gnome-screensaver-command -l
fi
fi
lastIdleTime=$idleTime
sleep 1
done
如果我手动执行,一切顺利。但是我想在启动时运行它,所以我尝试使用crontab并在〜/ .config / autostart文件夹中创建一个桌面条目。但似乎crontab没有执行该程序,或者它执行但脚本无法锁定我的屏幕,并且它与桌面输入一起运行,但xprintidle
没有更新和{ {1}}始终返回0,因此在60秒后它每秒都会锁定我的屏幕。
我也在python中写过它,它也没有用。唯一的区别是gnome-screensaver-command -q | grep -c " active"
始终返回1。
有没有更好的方法来执行并保持每次启动运行(和工作)?
顺便说一下,我正在使用Antergos与GNOME和GDM。