Answers:
不必介意GUI中的设置,您可以锁定屏幕并通过命令行将屏幕发送到待机状态
要锁定屏幕,您可以使用
gnome-screensaver-command -l
或(如果不使用gnome3)
xdg-screensaver lock
并关闭显示器(待机),您可以使用
xset dpms force off
现在,由于您不想手动执行此操作,而是在闲置了几分钟后,我们需要找出您闲置了多长时间。这可以用xprintidle
sudo apt-get install xprintidle
xprintidle
将返回(xserver)空闲时间的毫秒数
现在,让我们将其合并为脚本(*)。使用您喜欢的编辑器复制/粘贴以下内容,然后IDLE_TIME
根据自己的喜好进行修改
nano /home/yourusername/idle_stby_lock_screen.sh
#!/bin/sh
# Wanted trigger timeout in milliseconds.
IDLE_TIME=$((5*60*1000)) # replace the '5' with how many minutes you'd like
# Sequence to execute when timeout triggers.
trigger_cmd() {
echo "Triggered action $(date)"
}
sleep_time=$IDLE_TIME
triggered=false
while sleep $(((sleep_time+999)/1000)); do
idle=$(xprintidle)
if [ $idle -ge $IDLE_TIME ]; then
if ! $triggered; then
gnome-screensaver-command -l
export DISPLAY=:0; xset dpms force off
triggered=true
sleep_time=$IDLE_TIME
fi
else
triggered=false
# Give 150 ms buffer to avoid frantic loops shortly before triggers.
sleep_time=$((IDLE_TIME-idle+150))
fi
done
然后使用
chmod +x /home/yourusername/idle_stby_lock_screen.sh
您可以在命令行上进行测试
/home/yourusername/idle_stby_lock_screen.sh
如果您满意,可以将其添加到Ubuntu的启动中,如此处的这些答案所述,也可以将其添加到Ubuntu 中的“启动”应用程序中-只需确保使用脚本的绝对路径即可。