Это мини-руководство показывает, как создавать скринсейверы для систем на базе 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
=======================
Поздравляю! Вы самостоятельно сделали скринсейвер! Молодцы!