![有没有办法(破解)可以启用屏幕锁定但不在盖子关闭时锁定?](https://linux22.com/image/1042153/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%EF%BC%88%E7%A0%B4%E8%A7%A3%EF%BC%89%E5%8F%AF%E4%BB%A5%E5%90%AF%E7%94%A8%E5%B1%8F%E5%B9%95%E9%94%81%E5%AE%9A%E4%BD%86%E4%B8%8D%E5%9C%A8%E7%9B%96%E5%AD%90%E5%85%B3%E9%97%AD%E6%97%B6%E9%94%81%E5%AE%9A%EF%BC%9F.png)
这正是我想要做的:打开锁定(Settings
> Brightness and Lock
),设置等待时间(Lock screen after:
),但如果我仅关闭(当然打开)盖子,则不要锁定屏幕(例如,没有密码提示)。
我不确定是否有一些调整/破解方法可以做到这一点。
(我总是走出办公桌,但我的机器总是在做一些事情,所以在关闭盖子时“不做任何事”,但每小时输入 4 次密码有点烦人。我需要关闭盖子。但是,有时我确实离开办公桌超过一个小时,忘记按 Ctrl+Alt+L。我希望它在一小时不活动后自动锁定。如果脚本是唯一的方法,你能帮我从哪里开始吗?提前谢谢。)
Ubuntu 12.04.02,LightDM,Gnome Shell
答案1
好的,您在评论中提供的信息现在已经足够了。
首先,您应该安装xprintidle
(sudo apt-get install xprintidle
),因为我们将尝试模拟锁定机制!
现在,编写一个脚本(我将其称为screen-locker
,请注意,您不需要在文件名中添加扩展名):
#!/bin/sh
export DISPLAY=:0.0
if /usr/bin/grep -q close /proc/acpi/button/lid/*/state ; then
# the lid is closed, so nothing to do
exit 0
fi
# The lid is open
# the idle time before locking is 60 minutes (60 times 60 times 1000 milliseconds)
lock_time_in_minutes=60
lock_time=$(( ${lock_time_in_minutes} * 60 * 1000 ))
if [ "`/usr/bin/xprintidle`" -ge "$lock_time" ] ; then
/usr/bin/gnome-screensaver-command -l
fi
假设你将其保存在名为的目录中/home/your-username/bin
。使其可执行
chmod 755 /home/your-username/bin/screen-locker
现在在终端运行
echo '*/10 * * * * /home/your-username/bin/screen-locker' | crontab
将此脚本添加到您的 crontab。(这样脚本将每 10 分钟执行一次。)
现在您可以导航至亮度与锁定并取消锁定,因为当(且仅当)盖子打开时,脚本才会锁定您的屏幕。
(为了进行快速测试,您可以将60
时间改为分钟。打开盖子,等待大约 2 分钟,看看它是否锁上,然后关闭盖子,同样等待,看看它是否没有锁上)。1