Как настроить хранитель экрана для работы с VLC

Как настроить хранитель экрана для работы с VLCВ качестве хранителя экрана часто используется xscreensaver. И есть одна проблема с проигрывателем VLC. В настройках установлена опция «Не запускать хранитель экрана», но скринсейвер при этом все равно запускается во время проигрывания фильма. Приходится периодически шевелить мышкой, что, согласитесь, не очень способствует комфортному просмотру. В KDE и Gnome всё хорошо, их хранители экрана отключаются, а xscreensaver, например, нет. Проблема эта очень распространенная, но хороших простых решений, к сожалению, мало. Тем не менее, они есть.

Первый вариант решения проблемы vlc+xscreensaver:

Скрипт lightsOn, который решает эту проблему. Его можно скачать и запускать перед запуском VLC.

Второй вариант:

Для второго варианта придется выйти немного за рамки. Написать свой скрипт для отслеживания, запущен ли vlc, включающий или выключающий в зависимости от этого управление энергосбережением монитора. Для начала надо удалить xscreensaver, поскольку он нам не понадобится, мы будет работать напрямую с X-сервером:

И теперь можно написать скрипт, который будет следить за vlc и, если он запущен, отключать управление питанием монитора. Для управления питанием воспользуемся программой xset

600 — таймаут, по истечении которого монитор переходит в ждущий режим, 900 — по истечении которого монитор переходит в спящий режим, 0 — по истечении которого монитор отключается.

Получится примерно такой скрипт:

Скрипт будет проверять каждую секунду, запущен ли vlc, и, если это так, отключать управление питанием монитора. Запускать его можно либо из автозагрузки графической оболочки, которой вы пользуетесь, либо просто в фоновом режиме

Скрипт раз в секунду проверяет, есть ли процесс с названием vlc и, если да, выключает управление электросбережением монитора, а если нет. то включает управление энергосбережением с таймаутами, указанными в скрипте.

Установка скрипта как сервиса

Рассмотрим два варианта установки этого скрипта как сервиса. Первый вариант — для sysvinit, второй — для systemd

Для sysvinit скрипт придется немного дополнить, чтобы в результате он выглядел так:

После этого его можно скопировать в директорию /etc/init.d. При необходимости можно добавить LSB-заголовки.

Для systemd скрипт будет выглядеть так:

Для запуска сервиса на определенных уровнях после этого для sysvinit используйте команду update-rc.d или chkconfig, в зависимости от дистрибутива, а для systemd скрипт необходимо положить в директорию /lib/systemd/system и назвать его screenspy.service. После этого сервис включается командой.

И теперь его можно запустить командой

Вот и всё. Замечания просьба оставлять в комментариях.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *