LINUX.ORG.RU

Создание скринсейвера на базе mpv и swayidle

 , , swayidle,


3

2

Это мини-руководство показывает, как создавать скринсейверы для систем на базе Wayland с фрагментами видео. Swayidle — это служба управления простоями (idle management daemon), совместимая с любыми Wayland-композиторами, поддерживающими протокол ext-idle-notify.

Для начала можно с помощью yt-dlp скачать с ютуба видео какого-нибудь коммерческого скринсейвера, типа Dream Aquarium. В моём примере видео будет начинаться со случайной позиции, в полноэкранном режиме, зациклено и будет выключаться по нажатию пробела.
Приступим.

pacman -S swayidle mpv


/home/seth/.s44-programs/Dream Aquarium/aqua-start.sh

#!/usr/bin/env bash

cd "$(dirname "$0")" # Определяем директорию скрипта, как текущую рабочую

# запускаем MPV на весь экран, зациклено, со случайной позиции видео
mpv --osc=no --start=$(shuf -n1 -i0-7200) --fs --loop-file "$HOME/Видео/DreamAquarium.webm" &
echo $! >./aquarium.pid # Записываем PID запущенного экземпляра MPV

--start=$(shuf -n1 -i0-7200) — это функция получения случайной позиции видео. Вместо 7200 впишите длительность своего видео в секундах.


/home/seth/.s44-programs/Dream Aquarium/aqua-kill.sh
#!/usr/bin/env bash

cd "$(dirname "$0")" # Смена каталога по месту нахождения скрипта

kill -15 $(cat ./aquarium.pid) # Завершаем MPV

Далее нужно создать ярлычок SwayIdle в автозагрузке:
swayidle timeout 300 ./aqua-start.sh resume ./aqua-kill.sh

Укажите в качестве рабочей директории программы путь к папке со скриптами!

Не забудьте дать права на выполнение:

chmod +x aqua-start.sh
chmod +x aqua-kill.sh

=======================
Поздравляю! Вы самостоятельно сделали скринсейвер! Молодцы!



Проверено: hobbit ()
Последнее исправление: Set440 (всего исправлений: 14)

Васянский дух 2005 года из журнала Мой Компьютер жив по сей день!!!

Set440
() автор топика

А что здесь заставляет его работать в качестве скринсейвера? В sway скринсейвер работает через ext-session-lock-v1. mpv очевидно не умеет работать через этот протокол.

eternal_sorrow ★★★★★
()

Красиво. Но цихлид лучше убрать, пожрут растения.

urxvt ★★★★★
()

Далее нужно создать ярлычок SwayIdle в автозагрузке:

можно поподробней, как это сделать?

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

Я не задумывался о блокировке экрана… Это у меня на домашней машине, а в опросе выяснилось, что большинство дома сидит под рутом, так-что я ещё и не самый крайний в вопросе безопасности.

Set440
() автор топика
Ответ на: комментарий от zendrz

Я только знаю как это делается на кедах. Про гнум и свэй я не в курсе… :(

Set440
() автор топика
Ответ на: комментарий от Set440

Я просто прописал запуск скрипта запускающего feh в полноэкранном режиме в настройках энергосбережения KDE…

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

Чтобы на матрице не оставалось следов статичного изображения

masa
()
Ответ на: комментарий от TechnoMag

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

Set440
() автор топика

Как-то выкладывал ссылку на живые обои. Это, конечно, про другое - про X и не про скринсейвер, но видео красивое. )

krasnh ★★★★
()

Ладно, в этом вайланд превосходит Х11.

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

У тебя что телевизор заставку не умеет показывать?

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

Ты не представляешь как тёлки текут когда на экране цветок раскрывается. Ярко красный с розовым бутон так будоражит их сознание

Xant1k ★★
()

Запуск mpv по idle-таймеру это не скринсейвер. Он у тебя ещё полоску с кнопками и прокруткой будет к тому же показывать.

Поздравляю! Вы самостоятельно сделали скринсейвер! Молодцы!

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

Про блокировку я тоже не подумал, но да и это стоит учесть.

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

Он у тебя ещё полоску с кнопками и прокруткой будет к тому же показывать.

Такая мелочь, что и не стоит упоминания, --osc=no. )

krasnh ★★★★
()

О рыбки! Впервые я их в конце 1998 года увидел, тогда они смотрелись очень круто :)

Rodegast ★★★★★
()

Огромное спасибо за статью. Я правда планирую запилить скринсейвер со звездами из xscreensaver, но мне это будет отличным подспорьем. Хотел сделать на основе swaylock-effects, но что-то закопался с тем как сделать в той архитектуре обновление 60к\с, а не один раз на старте.

Почитал внимательно. Не, всё же не совсем то. Можно конечно как замену скринсейвера, но для себя попробую наколхозить на основе swaylock. Всё равно разбираться как рисовать правильно в буфер на вейланде.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от Set440

а в опросе выяснилось, что большинство дома сидит под рутом

ого, это где такой опрос был? сложно поверить в такое.

Входим в текущую рабочую директорию

не вводите в заблуждение таким комментарием. это смена каталога по месту нахождения скрипта.

ergo ★★★
()
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от ergo

В какой степени вы ограничиваете вашего пользователя в системе на десктопе?

Здесь в комментариях 6-8 человек написали, что сидят под рутом, и некоторые написали, что хотят пересесть под рута

Set440
() автор топика
Ответ на: комментарий от Set440

По твойей ссылке:

Работаю под рутом 50 (9%)

Это не тянет на большинство.

PS И использование flock убрало бы некоторые проблемы из твоей «Васянской» реализации.

PRN
()
Последнее исправление: PRN (всего исправлений: 1)
Ответ на: комментарий от Set440

голосование как раз таки показывает, что только 9% из проголосовавших - отморозки )))))

ergo ★★★
()

Если интересно кому, то появился форк swaylock - swaylock-plugin, который умеет и в видео и в скринсейверы(портированные из xscreensaver) и ещё кучку вариантов. И всё это не просто картинкой, а с блокировкой. Пока что это всё очень сырое и версии только гит, но я собрал и у меня всё работает. Я доволен.

Loki13 ★★★★★
()

в гноме будет работать?

votafak ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.