Предотвратить xautolock/i3lock при просмотре видео
Я использую оконный менеджер 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/ любой другой, передающий все параметры xautolock
только если я не смотрю видео. Но я не знаю, что проверить с этим гипотетическим сценарием.
0 ответов
Один из возможных способов сделать это без необходимости реализовывать все параметры xautolock в myscript
было бы написать свой $Locker
как сценарий или программу, чтобы определить, выполняются ли условия для предотвращения блокировки. В противном случае вызовите программу блокировки экрана:
xautolock -locker should_screen_lock.sh
|
Yes <- fullscreen YouTube? -> No
| |
Abort Lock
Вы можете использовать xprop -root
узнать идентификатор активного окна в оконном менеджере и xprop -id
по этому идентификатору, чтобы увидеть, работает ли он в полноэкранном режиме.
Оттуда он просто соединяет их вместе и вызывает ваш шкафчик для окон (i3lock
в этом случае, но вы также можете использовать это как собственный сценарий для более красивого экрана блокировки).
Вот моя попытка сделать именно это. Следует отметить, что я не бегаюxautolock
из конфигурации i3: это пользовательская служба systemd. Шкафчик (lock_screen.sh
), однако, привязан к клавиатуре, чтобы я мог обойти xautolock, если у меня что-то отображается в полноэкранном режиме.