如何在屏幕睡眠/唤醒时运行脚本

如何在屏幕睡眠/唤醒时运行脚本

我想知道如何在屏幕超时和唤醒时运行脚本。我说的不是休眠或挂起,而是在屏幕关闭时。

原因是我有一个 LED 键盘,并且想在唤醒时切换内置 LED。

答案1

您可以使用它xset -q来检查显示器的状态。到目前为止,我看到 DPMS 显示器的状态为“显示器已打开”、“显示器已关闭”或“显示器处于挂起状态”。您可以编写一个脚本,然后在 xorg 启动后自动启动:

#!/bin/bash
while true; do
    xset -q | grep "Monitor is On"
    if [ $? -eq 1 ]; then
        if [ "`cat /tmp/displaystate`" != "off" ]; then 
            echo "off" > /tmp/displaystate
            # do something when display is switched off
            /opt/myScreenOffAction.sh
        fi
        sleep 1
    else 
        if [ "`cat /tmp/displaystate`" != "on" ]; then 
            echo "on" > /tmp/displaystate
            #do something when display is switched on
            /opt/myScreenOffAction.sh
        fi
        sleep 10
    fi
done

为了测试您的脚本,您可以使用xset dpms force suspend将屏幕置于挂起状态。

我建议您 grep “监视器已打开”,因为如上所述,关闭似乎有不同的状态。

相关内容