Отключаем хранитель экрана на время воспроизведения видео в Linux
Jazz
Некоторые современные пользователи компьютера считают хранитель экрана рудиментом и не используют его в настройках своей операционной системы. На мой взгляд, это не достаточно верное, весьма опрометчивое решение. Все современные графические рабочие столы имеют в своём составе этот полезный инструмент, который кроме всего прочего, ещё и помогает сохранить здоровье монитору компьютера. В этом обзоре я покажу, как можно приостановить включение хранителя экрана на время воспроизведения видео в mplayer или mpv, под управлением операционной системы с Linux в качестве ядра на примере Xscreensaver — штатного и универсального хранителя экрана для всех возможных сред.
Определяем целесообразность
Хранитель экрана — это специальная программа, которая отслеживает активность пользователя на курсоре и, если таковая отсутствует, воспроизводит на экране монитора красочную, анимированную, изменяющуюся с определённой динамикой картинку. Конструкция допотопных мониторов включала в свой состав кинескопы, и, при отображении на мониторе статической картинки в течение длительного времени, в этой допотопной конструкции что-то нагревалось, накапливались избыточные заряды, в результате чего монитор быстро выходил из строя.
Современные LCD мониторы заслуженно считаются более совершенными в техническом и технологическом плане устройствами... Но, в моей практике был случай, когда я пренебрёг хранителем экрана в настройках операционной системы и оставлял LCD монитор включенным на продолжительное время без активной периодической смены изображения. В итоге, мне пришлось обращаться в сервисный центр и ремонтировать свой "телевизор" по гарантии. С тех пор я всегда настраиваю хранитель экрана в своей операционной системе и ставлю время его срабатывания на 3 минуты бездействия.
На своих рабочих машинах, в моём хозяйстве их несколько, а недавно появилось роскошное пополнение, я использую в качестве операционной системы Debian sid, а в качестве рабочего стола, архаичную и практически прекратившую развитие LXDE. В этой связке сохранять здоровье и долговечность экранов моих лэптопов мне всегда помогает Xscreensaver — инструмент такой же архаичный и допотопный, как и LXDE.
Увы, но специфика работы Xscreensaver имеет один очень неприятный недостаток. Эта штуковина не имеет в своих недрах соответствующей настройки и всегда вмешивается в процесс работы любого видео-плеера, перекрывая его окно своей анимированной картинкой через определённый, заданный в своих настройках период времени. В моём случае это 3 минуты бездействия пользовательского курсора. С этой напастью я и буду бороться средствами настройки соответствующих плееров.
Плееры
В своей повседневной практике для воспроизведения видео я пользуюсь двумя плеерами:
-
Архаичный и допотопный, но всё ещё довольно эффективный mplayer;
-
Более современное продолжение концепции mplayer — вездесущий и всеобъемлющий mpv.
Первый — mplayer — отличается очень бережным отношением к аппаратным ресурсам, почти не греет процессор моего лэптопа, при этом является всеядным. Mplayer великолепно справляется со всеми доступными мне сегодня форматами. Старый конь, как говорится, борозды не портит, хоть и глубоко не пашет.
Второй — mpv — основан на тяжелых аудио-видео библиотеках вездесущего ffmpeg, имеет встроенный интерпретатор Lua, и в том числе поэтому, чуть более продвинут. По моим ощущениям он чуть сильнее греет процессор, а иногда бывает капризен и отказывается воспроизводить некоторые некорректно упакованные контейнеры. Тем не менее, сегодня он является основным бойцом на поле боя...
На примере этих двух видео плееров я и планирую показать необходимые настройки для их совместной работы с Xscreensaver. Они, хоть и являются консольными, но настраиваются легко и понятно. Начнём с mplayer.
Настраиваем mplayer
Mplayer настраивается посредством текстового конфигурационного файла. Обычно этот файл имеет имя config
и хранится в домашнем каталоге текущего пользователя, в его вложенном каталоге с именем .mplayer
. Точка в начале имени каталога указывает, что каталог скрыт и по-умолчанию не показывается в оглавлении родительского каталога. Убедиться, существует такой каталог в файловой системе или нет, можно следующей командой.
$ ls -a ~ | grep .mplayer
Вот что я вижу в отклике на эту команду своего терминала.
Понятно, что в файловой системе моего компьютера каталог существует. Если вдруг этот каталог до сих пор не существует, создать его можно так же просто следующей командой.
$ mkdir ~/.mplayer
Создать текстовый файл конфигурации в заданном каталоге файловой системы можно при помощи любого консольного текстового редактора, я обычно использую Vim. Вот как будет выглядеть команда.
$ vim ~/.mplayer/config
В наборе опций mplayer имеется специальное поле heartbeat-cmd
, с помощью которого в конфигурации плеера можно задать на исполнение любую текстовую команду. Это поле я и буду использовать.
В составе Xscreensaver есть специальное средство, с помощью которого хранителем экрана можно управлять из командной строки. Это программа xscreensaver-command, с её помощью хранитель экрана можно в том числе и деактивировать. И мне осталось только "поженить" эти два инструмента (heartbeat-cmd и xscreensaver-command) с помощью вписанной в конфигурационный файл следующей строчки.
heartbeat-cmd='xscreensaver-command -deactivate &'
Вот как это выглядит в окне уже открытого в Vim файла конфигурации.
Сохраняю изменения в файл, покидаю текстовый редактор и запускаю воспроизведение любого видео файла. Внимание на следующий снимок экрана.
Как видно на снимке экрана фрагмента моего рабочего стола, кино воспроизводится в отдельном окне, а в терминале в это время каждые несколько секунд появляется отчёт исполнения вписанной в конфигурационный файл команды xscreensaver-command. И теперь при воспроизведение видео хранитель экрана нас больше не побеспокоит. Bingo!
Настраиваем mpv
Mpv — это чуть более современное и продвинутое решение для качественного воспроизведения видео файлов. Но для mpv я буду использовать тот же механизм. В недра этой программы встроен интерпретатор Lua, а это значит, что запустить всё тот же самый xscreensaver-command я могу уже с помощью этого интерпретатора и соответствующих инструментов языка программирования Lua.
Mpv хранит свои настройки в одноимённом каталоге, который вложен в каталог с именем .config
и хранится в домашнем каталоге текущего пользователя. В нём сначала создаю ещё один вложенный каталог с именем scripts
. Делается это вот такой простой командой.
$ mkdir -p ~/.config/mpv/scripts/
А теперь с помощью всё того же Vim создаю в этом каталоге файл с именем xscreensaver.lua
.
$ vim ~/.config/mpv/scripts/xscreensaver.lua
В этот файл вписываю следующий код.
local utils = require 'mp.utils'
mp.add_periodic_timer(60, function()
utils.subprocess({args={"xscreensaver-command", "-deactivate"}})
end)
Здесь следует обратить внимание, что я задал период исполнения xscreensaver-command длительностью в 60 секунд, при этом мой хранитель экрана срабатывает через 3 минуты отсутствия активности пользовательского курсора. Вот как этот код выглядит в текстовом редакторе в окне моего терминала.
Сохраняю изменения в файл и покидаю текстовый редактор. Всё, с этого момента при воспроизведении видео с помощью mpv хранитель экрана нас больше не побеспокоит и не прервёт эстетического наслаждения от просмотра киноленты. В выхлоп консоли mpv, в отличие от mplayer, никаких дополнительных сведений об исполнении xscreensaver-command не транслирует.
Подводим итог
Mplayer и mpv перекрывают 100% пользовательских потребностей для воспроизведения видео файлов. Они, хоть и являются консольными, достаточно просто управляются с помощью несложных клавиатурных команд, а возможности их настройки позволяют с лёгкостью предотвратить вмешательство хранителя экрана в процесс просмотра киноленты.
А я вынужден констатировать, что все цели этой демонстрации достигнуты.