【问题标题】:Prevent xautolock/i3lock when watching fullscreen video观看全屏视频时防止 xautolock/i3lock
【发布时间】:2019-04-10 04:23:59
【问题描述】:

我使用 i3 窗口管理器并且有

set $Locker i3lock --color=000000 && sleep 1
exec --no-startup-id xautolock -time 5 -locker "$Locker"

在其配置文件中,使其在 5 分钟后锁定。

问题在于,即使我正在观看视频,5 分钟计时器也会倒计时,这我绝对不喜欢。 (顺便说一句,我通常用mplayer 看电影,但有时我也会在流媒体网站上使用qutebrowser。)相反,我想阻止xautolocks 在这种情况下采取行动。

我正在考虑的一个可能的解决方案是将第二行更改为

exec --no-startup-id myscript -time 5 -locker "$Locker"

myscript 是一个 bash/whatever 脚本/程序,仅当我 观看一些视频内容时将所有选项传递给 xautolock。但我不知道用这个假设的脚本检查什么。

【问题讨论】:

  • 我也遇到了很多麻烦。你可以使用xautolock的-corners设置,所以你只要把鼠标移到角落,它就不会休眠,但不幸的是,如果你的鼠标在角落里,有些玩家总是会显示覆盖!

标签: fullscreen lockscreen i3 user-inactivity


【解决方案1】:

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

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

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

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

Here's my attempt 正是这样做的。值得注意的是,我没有从 i3 的配置中运行 xautolock:它是一个 systemd 用户服务。但是,储物柜 (lock_screen.sh) 绑定到键盘,这样我就可以绕过 xautolock,以防我有东西全屏显示。

【讨论】:

  • 哇,这是一个非常好的答案,谢谢!您的代码可读性极强,符合安全性(据我所知安全性是什么),而且相当短!欢迎使用 StackOverflow!
  • 您的 bash 脚本非常合乎逻辑且很好。我想知道是否有办法判断 youtube 视频是否正在播放。
  • 确实是一个非常好的答案!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多