Отключаем хранитель экрана на время воспроизведения видео в Linux

Jazz

Опубликован:
2025-06-12T07:13:15.953513Z
Отредактирован:
2025-06-12T07:13:15.953513Z
Статус:
публичный
5
0
0

Некоторые современные пользователи компьютера считают хранитель экрана рудиментом и не используют его в настройках своей операционной системы. На мой взгляд, это не достаточно верное, весьма опрометчивое решение. Все современные графические рабочие столы имеют в своём составе этот полезный инструмент, который кроме всего прочего, ещё и помогает сохранить здоровье монитору компьютера. В этом обзоре я покажу, как можно приостановить включение хранителя экрана на время воспроизведения видео в mplayer или mpv, под управлением операционной системы с Linux в качестве ядра на примере Xscreensaver — штатного и универсального хранителя экрана для всех возможных сред.

Определяем целесообразность

Хранитель экрана — это специальная программа, которая отслеживает активность пользователя на курсоре и, если таковая отсутствует, воспроизводит на экране монитора красочную, анимированную, изменяющуюся с определённой динамикой картинку. Конструкция допотопных мониторов включала в свой состав кинескопы, и, при отображении на мониторе статической картинки в течение длительного времени, в этой допотопной конструкции что-то нагревалось, накапливались избыточные заряды, в результате чего монитор быстро выходил из строя.

Современные LCD мониторы заслуженно считаются более совершенными в техническом и технологическом плане устройствами... Но, в моей практике был случай, когда я пренебрёг хранителем экрана в настройках операционной системы и оставлял LCD монитор включенным на продолжительное время без активной периодической смены изображения. В итоге, мне пришлось обращаться в сервисный центр и ремонтировать свой "телевизор" по гарантии. С тех пор я всегда настраиваю хранитель экрана в своей операционной системе и ставлю время его срабатывания на 3 минуты бездействия.

На своих рабочих машинах, в моём хозяйстве их несколько, а недавно появилось роскошное пополнение, я использую в качестве операционной системы Debian sid, а в качестве рабочего стола, архаичную и практически прекратившую развитие LXDE. В этой связке сохранять здоровье и долговечность экранов моих лэптопов мне всегда помогает Xscreensaver — инструмент такой же архаичный и допотопный, как и LXDE.

Увы, но специфика работы Xscreensaver имеет один очень неприятный недостаток. Эта штуковина не имеет в своих недрах соответствующей настройки и всегда вмешивается в процесс работы любого видео-плеера, перекрывая его окно своей анимированной картинкой через определённый, заданный в своих настройках период времени. В моём случае это 3 минуты бездействия пользовательского курсора. С этой напастью я и буду бороться средствами настройки соответствующих плееров.

Плееры

В своей повседневной практике для воспроизведения видео я пользуюсь двумя плеерами:

  1. Архаичный и допотопный, но всё ещё довольно эффективный mplayer;

  2. Более современное продолжение концепции mplayer — вездесущий и всеобъемлющий mpv.

Первый — mplayer — отличается очень бережным отношением к аппаратным ресурсам, почти не греет процессор моего лэптопа, при этом является всеядным. Mplayer великолепно справляется со всеми доступными мне сегодня форматами. Старый конь, как говорится, борозды не портит, хоть и глубоко не пашет.

Второй — mpv — основан на тяжелых аудио-видео библиотеках вездесущего ffmpeg, имеет встроенный интерпретатор Lua, и в том числе поэтому, чуть более продвинут. По моим ощущениям он чуть сильнее греет процессор, а иногда бывает капризен и отказывается воспроизводить некоторые некорректно упакованные контейнеры. Тем не менее, сегодня он является основным бойцом на поле боя...

На примере этих двух видео плееров я и планирую показать необходимые настройки для их совместной работы с Xscreensaver. Они, хоть и являются консольными, но настраиваются легко и понятно. Начнём с mplayer.

Настраиваем mplayer

Mplayer настраивается посредством текстового конфигурационного файла. Обычно этот файл имеет имя config и хранится в домашнем каталоге текущего пользователя, в его вложенном каталоге с именем .mplayer. Точка в начале имени каталога указывает, что каталог скрыт и по-умолчанию не показывается в оглавлении родительского каталога. Убедиться, существует такой каталог в файловой системе или нет, можно следующей командой.

$ ls -a ~ | grep .mplayer

Вот что я вижу в отклике на эту команду своего терминала.

XQBxR3AElB.png

Понятно, что в файловой системе моего компьютера каталог существует. Если вдруг этот каталог до сих пор не существует, создать его можно так же просто следующей командой.

$ mkdir ~/.mplayer

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

$ vim ~/.mplayer/config

В наборе опций mplayer имеется специальное поле heartbeat-cmd, с помощью которого в конфигурации плеера можно задать на исполнение любую текстовую команду. Это поле я и буду использовать.

В составе Xscreensaver есть специальное средство, с помощью которого хранителем экрана можно управлять из командной строки. Это программа xscreensaver-command, с её помощью хранитель экрана можно в том числе и деактивировать. И мне осталось только "поженить" эти два инструмента (heartbeat-cmd и xscreensaver-command) с помощью вписанной в конфигурационный файл следующей строчки.

heartbeat-cmd='xscreensaver-command -deactivate &'

Вот как это выглядит в окне уже открытого в Vim файла конфигурации.

pQc3YimOer.png

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

bhKDtWuZdQ.png

Как видно на снимке экрана фрагмента моего рабочего стола, кино воспроизводится в отдельном окне, а в терминале в это время каждые несколько секунд появляется отчёт исполнения вписанной в конфигурационный файл команды 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 минуты отсутствия активности пользовательского курсора. Вот как этот код выглядит в текстовом редакторе в окне моего терминала.

6MMW9BV8e4.png

Сохраняю изменения в файл и покидаю текстовый редактор. Всё, с этого момента при воспроизведении видео с помощью mpv хранитель экрана нас больше не побеспокоит и не прервёт эстетического наслаждения от просмотра киноленты. В выхлоп консоли mpv, в отличие от mplayer, никаких дополнительных сведений об исполнении xscreensaver-command не транслирует.

Подводим итог

Mplayer и mpv перекрывают 100% пользовательских потребностей для воспроизведения видео файлов. Они, хоть и являются консольными, достаточно просто управляются с помощью несложных клавиатурных команд, а возможности их настройки позволяют с лёгкостью предотвратить вмешательство хранителя экрана в процесс просмотра киноленты.

А я вынужден констатировать, что все цели этой демонстрации достигнуты.

Метки: