我使用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是仅当我不看视频时才将所有选项传递给xautolock的bash /脚本或程序。但是我不知道该假想脚本要检查什么。

最佳答案

无需在myscript中实现xautolock的所有选项的一种可行方法是将$Locker作为脚本或程序编写,以确定是否满足防止锁定的条件。否则,请致电屏幕锁:

xautolock -locker should_screen_lock.sh
                                   |
                   Yes <- fullscreen YouTube? -> No
                    |                            |
                  Abort                         Lock


您可以使用xprop -root在窗口管理器中了解活动窗口的ID,并针对该ID使用xprop -id来查看其是否以全屏模式运行。

从那里,将两者放在一起并调用您的窗口锁(在这种情况下为i3lock,但您也可以将其作为更高级的锁屏的自定义脚本)。

Here's my attempt正是这样做的。值得注意的是,我没有从i3的配置中运行xautolock:这是系统用户服务。但是,储物柜(lock_screen.sh)绑定到了键盘,这样我可以在全屏状态下绕过xautolock。

关于lockscreen - 观看视频时防止xautolock/i3lock,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53177614/

10-11 14:02