我使用具有音频输出的外接显示器并将其用于我的音频系统。但是,如果台式机进入睡眠模式,它会自动切换到笔记本电脑扬声器。
我想pacmd list-sink-inputs | grep 'RUNNING'
每 20 秒检查一次声音是否正在播放,如果是则自动重置空闲时间。
目前我使用咖啡因,但这完全禁用了空转。
如何防止计算机在播放声音时进入睡眠状态?如何从命令行重置空闲时间?
答案1
以下是我想到的。它使用caffeinate
来自咖啡因您正在使用的包。
#!/bin/bash
while true
do
pacmd list-sink-inputs | grep 'RUNNING' > /dev/null
if [ $? -eq 0 ]
then
caffeinate sleep 1
fi
sleep 20
done
另一个解决方案是使用xdotool
。如果正在播放某些内容,它会在您不注意的情况下稍微移动鼠标并将其留在原处。
#!/bin/bash
while true
do
pacmd list-sink-inputs | grep 'RUNNING' > /dev/null
if [ $? -eq 0 ]
then
for ANGLE in 0 90 180 270
do
xdotool mousemove_relative --polar $ANGLE 0.1
done
fi
sleep 20
done
只要确保你已经xdotool
安装:
sudo apt install xdotool