LINUX.ORG.RU
ФорумAdmin

Как в ubuntu-frame включить и настроить скринсейвер?

 , ,


0

1

Есть Ubuntu Core версии 20, на котором стоит snap-пакеты ubuntu-frame и wpe-webkit-mir-kiosk. Всё хорошо работает, но нужно добавить хранитель экрана, который запускается спустя какое-то время, когда отсутствует ввод с сенсорного экрана, и который пропадает, если по экрану тапнуть. При запуске этого скринсейвера должно высвечиваться кастомное изображение. Где это можно настроить?

★★★★★

1. Проверьте поддержку скринсейвера в ubuntu-frame

Сначала убедитесь, что ваш дисплей-сервер поддерживает скринсейвер.
В ubuntu-frame (на базе Mir) можно использовать x11-screenSaver или сторонние решения.
2. Установка и настройка X11-скринсейвера (если используется X11-бэкенд)

Если ubuntu-frame работает поверх X11 (редкий случай), можно установить стандартные скринсейверы:
bash

sudo apt update
sudo apt install xscreensaver

Затем настроить его:
bash

xscreensaver-demo

Но, скорее всего, это не ваш случай, так как ubuntu-frame обычно использует Wayland/Mir.
3. Использование Wayland-совместимого скринсейвера

Для Wayland/Mir можно использовать:

swayidle (для Wayland-окружений)

gnome-screensaver (если окружение GNOME)

custom solutions (например, запуск blank screen через wlopm)

Пример настройки swayidle (для Wayland):
bash

sudo apt install swayidle

Создайте конфигурацию (например, /etc/ubuntu-frame/screensaver.conf):
bash

swayidle -w \
timeout 300 'wlopm --off «*»' \
resume 'wlopm --on «*»'

Где:

300 — время в секундах до включения скринсейвера (5 минут).

wlopm — утилита для управления дисплеями в Wayland (может потребовать установки).

4. Альтернатива: Встроенный DPMS (Energy Star)

Если дисплей поддерживает DPMS, можно включить затемнение через xset (если X11-бэкенд):
bash

xset dpms 300 600 900

Где:

300 — время до standby (5 минут).

600 — время до suspend (10 минут).

900 — время до выключения (15 минут).

Но в чистом Wayland/Mir это может не работать.
5. Интеграция с systemd (автозапуск)

Чтобы скринсейвер запускался автоматически, создайте сервис:
bash

sudo nano /etc/systemd/system/screensaver.service

Добавьте:
ini

[Unit]
Description=Screen Saver for Ubuntu Frame
After=graphical.target

[Service]
ExecStart=/usr/bin/swayidle -w timeout 300 'wlopm --off «*»' resume 'wlopm --on «*»'
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Затем включите сервис:
bash

sudo systemctl enable --now screensaver.service

6. Проверка

Перезагрузите ubuntu-frame и проверьте:
bash

sudo systemctl restart ubuntu-frame

Через 5 минут дисплей должен погаснуть.
Вывод

Если ubuntu-frame использует X11 → xscreensaver или xset dpms.

Если Wayland/Mir → swayidle + wlopm или другой Wayland-совместимый скринсейвер.

Для встроенных решений проверьте ubuntu-frame документацию на official site.

Если нужно более специфичное решение, уточните ваш бэкенд (X11/Wayland/Mir) и тип устройства (kiosk, дисплей и т. д.).

kto_tama ★★★★★
()
Ответ на: комментарий от kto_tama

Ваш дипсик не знал про то, что именно для Ubuntu Core нужно решение, в котором всё через snap — даже ядра linux обновляются через snap, никаких apt-ов нету, а параметры этих snap-пакетов задаются через подкоманду set команды snap для каждого установленного пакета.

Infra_HDC ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.