XScreenSaver (Русский)

Состояние перевода: На этой странице представлен перевод статьи XScreenSaver. Дата последней синхронизации: 3 июня 2025. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

XScreenSaver — реализация хранителя экрана (заставки) и блокировки сеанса с графическими эффектами. X Window System имеет встроенное управление питанием экрана, но XScreenSaver предоставляет дополнительные возможности.

Установка

Установите пакет xscreensaver.

Пакет xscreensaver-arch-logoAUR предоставляет модифицированную версию с логотипом Arch Linux.

Настройка

Большинство опций настраиваются для каждого пользователя отдельно через графический интерфейс xscreensaver-settings. Эта программа записывает настройки в ~/.xscreensaver, отменяя любые ручные изменения этого файла. Глобальные параметры определены в /usr/lib/X11/app-defaults/XScreenSaver.

С версии 5.22 можно изменять настройки с помощью Xresources, в том числе тему.

Темы

С версии 6.0 XScreenSaver имеет несколько встроенных тем. Можно переключаться между ними через xscreensaver-settings или с помощью опции dialogTheme (dialogTheme: имятемы в ~/.xscreensaver или через ресурсы X: xscreensaver-auth.dialogTheme: имятемы).

Вы можете изменять темы с помощью ресурсов X. Пример ниже демонстрирует изменение некоторых цветов и шрифтов. Если вы выбрали тему отличную от стандартной, замените default на название выбранной вами темы в нижнем регистре или пропишите вопросительный знак (?), чтобы изменение повлияло на все темы:

~/.Xresources
! Шрифт для обычного текста.
! Имена шрифтов не чувствительны к регистру.
! Можно прописать список через запятую, чтобы задать fallback-шрифт.
xscreensaver-auth.default.Dialog.bodyFont: times new roman 12, dejavu serif 12

! Фоновый цвет окна. Цвета можно задавать с помощью имён.
xscreensaver-auth.default.Dialog.background: black

! Основной цвет текста. Цвета можно задавать также с помощью HEX-кода.
xscreensaver-auth.default.Dialog.foreground: #ffffff

Посмотреть список всех доступных для изменения ресурсов можно в файле /usr/lib/X11/app-defaults/XScreenSaver.

Не забудьте перезагрузить файл ресурсов после изменения.

DPMS и гашение экрана

XScreenSaver управляет гашением экрана (screen blanking) и энергосбережением дисплея (DPMS) независимо от самого́ X и переопределяет его. Чтобы настроить тайминги для гашения экрана, режима ожидания, выключения дисплея и т.п., используйте xscreensaver-demo или отредактируйте файл настроек вручную, например, ~/.xscreensaver:

timeout:	1:00:00
cycle:		0:05:00
lock:		False
lockTimeout:	0:00:00
passwdTimeout:	0:00:30
fade:		True
unfade:		False
fadeSeconds:	0:00:03
dpmsEnabled:	True
dpmsStandby:	2:00:00
dpmsSuspend:	2:00:00
dpmsOff:	4:00:00

Отключить гашение экрана и DPMS можно через xscreensaver-settings, выбрав в списке Mode пункт Disable Screen Saver.

Примечание Если значение Lock Screen After включено и установлено в 0 минут, экран будет заблокирован сразу после включения заставки. Если галочка Power Management Enabled снята, DPMS выключается, однако это не означает, что XScreenSaver перестаёт контролировать настройки DPMS.

Использование

Совет Чтобы запустить XScreenSaver без окна приветствия, используйте опцию --no-splash. Посмотреть список всех доступных опций можно в xscreensaver(1).

В LXDE и LXQt XScreenSaver запускается автоматически и дополнительные действия не требуются.

Для других сред смотрите статью Автозапуск.

В KDE Plasma заставка и блокировка экрана реализуются через ksmserver, который будет конфликтовать с XScreenSaver. Чтобы отключить его, нужно изменить пользовательский юнит plasma-ksmserver.service:

~/.config/systemd/user/plasma-ksmserver.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/ksmserver --no-lockscreen

Также откройте параметры системы и отключите Управление питанием > Отключение экрана.

Затем перелогиньтесь, и после этого XScreenSaver должен заработать нормально. Смотрите xscreensaver(1) § INSTALLING XSCREENSAVER ON KDE для более подробной информации.

Когда демон XScreenSaver запущен, можно немедленно заблокировать экран с помощью следующей команды:

$ xscreensaver-command -lock

Блокировка при переходе в ждущий режим

XScreenSaver имеет в своём составе утилиту xscreensaver-systemd, которая обрабатывает сигналы D-Bus от systemd и автоматически блокирует экран при переходе в ждущий или спящий режим. Она запускается автоматически вместе с xscreensaver, дополнительные действия не требуются. Смотрите xscreensaver-systemd(6) для более подробной информации.

Переключение пользователя с экрана блокировки

Важно При переключении пользователей с помощью экранного менеджера некоторые экранные менеджеры вроде LXDM не отправляют сигнал для блокировки исходного сеанса — доступ к нему можно получить без пароля, просто переключившись на соответствующий TTY. Если это касается вашего экранного менеджера, запускайте xscreensaver-command -lock или loginctl lock-session вручную или используйте другую программу блокировки экрана — смотрите Список приложений/Безопасность#Блокировка экрана.

По умолчанию кнопка New Login выполняет команду gdmflexiserver -ls для переключения пользователя. Это работает в GDM, но для других экранных менеджеров нужно прописать правильную команду в настройках.

Совет Если в ~/.Xresources добавить xscreensaver-auth.default.*.newLoginCommand: с пустым значением, то кнопка New Login исчезнет.

xscreensaver-settings сбрасывает ручные изменения файла ~/.xscreensaver, поэтому здесь используется ~/.Xresources.

LXDM

xscreensaver-auth.default.*.newLoginCommand: lxdm -c USER_SWITCH

LightDM

xscreensaver-auth.default.*.newLoginCommand: dm-tool switch-to-greeter
Примечание Если вы используете это для перехода к уже вошедшему в систему пользователю, возможно, придётся ввести пароль дважды (один раз для LightDM, и один раз для диалога XScreenSaver того пользователя, к которому вы вошли).

SDDM

SDDM не поддерживает переключение пользователей. [1] Вы можете попробовать вызвать метод SwitchToGreeter с помощью dbus-send, но это может работать некорректно.

Советы и рекомендации

Отключение во время просмотра видео

Начиная с версии 5.45, утилита xscreensaver-systemd реализует D-Bus интерфейс ScreenSaver. Она запускается автоматически вместе с xscreensaver, так что большинство приложений должны корректно отключать хранитель экрана без дополнительных настроек. Однако некоторые приложения не поддерживают D-Bus или используют другие интерфейсы.

mpv

По умолчанию mpv использует X11 Screen Saver extension (XSS). Он выключает заставку при запуске и включает её снова при выходе. Заставка также включается, когда проигрыватель приостановлен. Поведение можно настроить в файле ~/.config/mpv/mpv.conf:

stop-screensaver = "yes"

Это поддерживается не на всех видеовыходах и платформах. Если вы столкнулись с проблемами, попробуйте создать Lua-скрипт, который будет отключать заставку каждые полминуты:

~/.config/mpv/scripts/xscreensaver.lua
local utils = require 'mp.utils'
mp.add_periodic_timer(30, function()
    utils.subprocess({args={"xscreensaver-command", "-deactivate"}})
end)

Скрипт будет запускать указанную команду каждые полминуты.

mplayer

Добавьте в ~/.mplayer/config:

heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &"

Kodi

Kodi не имеет встроенной поддержки XScreenSaver (он использует свой собственный хранитель экрана). Установите пакет kodi-prevent-xscreensaverAUR или используйте расширение OS Screen Saver Manager.

HTML5-видео в браузерах

Большинство браузеров (Chromium и основанные на нём, Firefox, GNOME Web, Otter Browser и т.д.) поддерживают интерфейс D-Bus ScreenSaver и должны нормально отключать хранитель экрана при воспроизведении HTML5-видео.

Другие приложения

Если вы используете приложения, которые не умеют отключать хранитель экрана, можно попробовать использовать скрипт lightsonplus, который отключает хранитель экрана, когда обнаруживает полноэкранное видео. Некоторые приложения (totem, Steam и другие) поддерживаются из коробки, нужно лишь включить их обнаружение в скрипте lightson+. Если используемое вами приложение не поддерживается, но имеет постоянное имя окна, можно прописать его в переменной window_name.

Анимированный фон

Можно поставить заставку на фон рабочего стола. Для этого сперва завершите все процессы, которые контролируют фон (корневое окно), а затем найдите исполняемый файл нужной вам заставки (они обычно лежат в /usr/lib/xscreensaver/) и запустите с опцией -root, например:

$ /usr/lib/xscreensaver/glslideshow -root &
Примечание Если есть проблемы с xcompmgr или picom, установите пакет shantz-xwinwrap-bzrAUR и запускайте заставку так:
$ xwinwrap -b -fs -sp -nf -ov -- /usr/lib/xscreensaver/glslideshow -root -window-id WID &

Решение проблем

Для вывода более подробного журнала запустите xscreensaver с опцией --verbose. Также можно добавить verbose: True в файл ~/.xscreensaver, чтобы сделать это постоянным.

Для записи журнала в файл можно указать путь к файлу с помощью опции --log. Использование этой опции автоматически включает подробный вывод. (Эквивалента данной опции в файле ~/.xscreensaver или ресурсах X нет.)

Смотрите также