我想知道如何在屏幕超时和唤醒时运行脚本。我说的不是休眠或挂起,而是在屏幕关闭时。
原因是我有一个 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 “监视器已打开”,因为如上所述,关闭似乎有不同的状态。