如何使我的屏幕锁定器脚本工作?

时间:2017-07-16 06:37:11

标签: bash cron gnome screen-lock

我的屏幕锁定程序遇到了一些问题。花了一天时间试图解决它,但没有任何效果,所以我决定写一个锁定我的屏幕的程序:

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。

0 个答案:

没有答案