我使用i3窗口管理器并具有
set $Locker i3lock --color=000000 && sleep 1
exec --no-startup-id xautolock -time 5 -locker "$Locker"
在其配置文件中,以便在5分钟后锁定。
问题是,即使我在看视频,5分钟的计时器也会倒计时,这是我绝对不喜欢的。(顺便说一句,我通常用mplayer
看电影,但有时我也会用qutebrowser
上流媒体网站。(相反,在这种情况下,我想防止xautolock
的动作。
我想的一个可能的解决方案是将第二行更改为
exec --no-startup-id myscript -time 5 -locker "$Locker"
其中myscript
是bash/whatever脚本/程序,仅当我而不是观看一些视频内容时才将所有选项传递给xautolock
。但我不知道该用这个假设的脚本检查什么。
在不需要在myscript
中实现所有xautolock选项的情况下,一种可能的方法是将$Locker
编写为脚本或程序,以确定是否满足防止锁定的条件。否则,请致电屏幕锁定器:
xautolock -locker should_screen_lock.sh
|
Yes <- fullscreen YouTube? -> No
| |
Abort Lock
您可以使用xprop -root
来了解窗口管理器中活动窗口的ID,并使用xprop -id
来查看该ID是否在全屏模式下运行。
从那里开始,它只是将两者放在一起,并调用您的窗口储物柜(在这种情况下为i3lock
,但您也可以将其作为更高级锁屏的自定义脚本(。
这是我的尝试。值得注意的是,我不会从i3的配置中运行xautolock
:它是一个systemd用户服务。然而,locker(lock_screen.sh
(绑定到键盘上,这样我就可以绕过xautolock,以防我在全屏中有东西。