Предотвратить xautolock / i3lock при просмотре видео - PullRequest
0 голосов
/ 06 ноября 2018

Я использую оконный менеджер 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, только если я не смотрю видео. Но я не знаю, что проверить с помощью этого гипотетического сценария.

1 Ответ

0 голосов
/ 08 мая 2019

Один из возможных способов сделать это без необходимости реализовывать все опции xautolock в myscript - написать $Locker в виде скрипта или программы, чтобы определить, выполняются ли условия для предотвращения блокировки. В противном случае вызовите блокировку экрана:

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

Вы можете использовать xprop -root, чтобы узнать идентификатор активного окна в оконном менеджере, и xprop -id против этого идентификатора, чтобы увидеть, работает ли оно в полноэкранном режиме.

Оттуда это просто соединяет их вместе и вызывает ваш шкафчик окон (в данном случае i3lock, но вы также можете использовать его в качестве пользовательского скрипта для более красивого экрана блокировки).

Вот моя попытка сделать именно это. Следует отметить, что я не запускаю xautolock из конфигурации i3: это системный пользовательский сервис. Однако шкафчик (lock_screen.sh) привязан к клавиатуре, поэтому я могу обойти xautolock в случае, если у меня что-то полноэкранное.

...