По мотивам windows заставки «Ленты». Кроссплатформенный скринсейвер на JS и Electron

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Предисловие

Со времен появления скринсейвера "Ленты" (ориг. "Ribbons") на Windows 7, эта заставка была стандартом для всех моих рабочих мест, благо в новых версиях Windows (8, 10, 11) эта заставка остается и по сей день. Однако с момента "импортозамещения" десктопной Windows на десктопную Linux, особенно актуального с 2022 года, хотелось получить эту или хотя бы похожую заставку и на этой свобоной платформе. Но вот незадача - нормальный порт найти мне не удалось. Может, конечно, плохо искал (скиньте ссылку в комментариях, если кто-то нашел что-то работоспособное).
И тут на просторах github очень удачно нашелся вот этот репозиторий https://github.com/fadyehabamer/Ribbons-Screensaver. Автор в canvas с использованием JS наваял на мой взгляд очень даже симпатичную анимацию по мотивам того самого скринсейвера "Ленты".
Причем он в README отметил, что пытался сделать из этой анимации PWA (Progressive Web App), но почему-то у него ничего из этого не вышло, читай "failed". Вопрос, почему человек, наваявший такой годный "генератор лент", не смог в PWA, оставим за скобками.
А тут как раз я, начавший недавно по служебной необходимости, изучать всем известный фреймворк Electron для создания кроссплатформенных настольных web-приложений... Чем не альтернатива PWA?
Причина написания сего опуса как и прежде - поделиться чем-то, что делал для себя и ближайшего окружения, с теми, кому это может быть интересно.

"Challenge accepted" (c) Барни Стинсон

Понятно, что, возможно, это создание троллейбуса из буханки, но интерес возник и мотивация подоспела.
Прошу рассматривать его как мини пет проект человека, далекого от профессионального программирования, поэтому многого можно не ждать (красивого кода или гибкого функционала). Доступен по адресу https://drlight17.github.io/ribbons-electron-page. Приложение на Electron тянет за собой по сути весь браузер Chromium, поэтому итоговый вес дистрибутива и тем более установленного приложения совсем не "скринсейверный". Да и системные требования я думаю тоже приличные (серьезных замеров потребления ресурсов не было). Но что не сделаешь, лишь бы не изучать программирование под традиционный десктоп =) Да и бонусом тут полноценная кроссплатформенность - пет проект доступен как для Linux, так и для MacOS с Windows. Правда для решения проблем совместимости с MacOS пришлось, начиная с актуальной альфа версии 0.3, обновить используемую версию Electron с 22 до 29 и, как следствие, лишиться поддержки Windows 7.

Возможности

После запуска приложение живет в системном трее и все настройки доступны там. На момент написания статьи актуальная версия имеет следующие возможности:

  • поддержка нескольких дисплеев

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

  • отслеживание запущенного полноэкранного приложения в фокусе, чтобы заставка не запускалась, например, при просмотре фильма и/или во время работы поставленной на паузу игры

  • поддержка некоторой настройки визуализации (в числе прочего по запросу одного своего товарища сделал возможность работы заставки в режиме российского триколора - патриоты всех мастей должны оценить =) )

  • автоматизация установки приложения в автозагрузку ОС (должно работать на всех трех платформах, однако в случае с Linux протестировано это только для KDE и Cinnamon - будет ли работать корректно в других оболочках - надо проверять)

  • меню настроек поддерживает русский язык (языковые json файлы можно добавлять - приложение их найдет и задействует на этапе сборки проекта)

В процессе написания собственно обвязки на Electron заодно чуть изменил по своему вкусу визуальную составляющую исходного проекта уважаемого fadyehabamer (https://github.com/fadyehabamer).
В движении это можно смотреть на лендинге проекта.

Чем это приложение не является

Осваивать написание кода под нативные скринсейверы Linux xscreensaver и MacOS Screensaver framework в планах нет и, наверное, не будет. С Windows немного интереснее: если у кого-то появится интерес, то можно сделать отдельную ветку проекта с версией приложения в формате *.scr для Windows с адаптированной под нативный Windows скринсейвер логикой. Тут правда, оговорка: быстро осилить формирование превью и меню настроек не получилось, поэтому собственно и был сделан упор на "ненативность" скринсейвера. Но, опять же, если будет у кого-то интерес - могу попробовать.

Резюмируя: в настоящий момент это не нативный скрисейвер для трех платформ, а по сути кроссплатформенная полноэкранная анимация на JS с таймером. Поэтому главное, если вы решили воспользоваться им и установить его на свой ПК - обязательно отключите нативную заставку в ОС, иначе получите 2 одновременно работающих полноэкранных приложения. Кто будет поверх кого - не могу сказать, не проверял. Но уверен, что нативная заставка победит =)

Спасибо за внимание!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как вам заставка?
0% Очень даже ничего!0
0% Так себе…0
0% Отвратительно!0
Никто еще не голосовал. Воздержавшихся нет.
Источник: https://habr.com/ru/articles/876606/


Интересные статьи

Интересные статьи

Эта статья — просто идея, не судите строго. TLDR: предлагаю рассмотреть хранение исходных кодов программ в некоем бинарном формате вместо голого текста. Компилятор и IDE Как примерно работает ко...
«Линия жизни» мозга, его сеть кровеносных сосудов, подобна дереву, — говорит Матье Перно, заместитель директора Парижской лаборатории физики и медицины. Ствол начинается на шее с сонных артерий, пары ...
В данной статье мы рассмотрим систему аутентификации пользователей и внешних систем в личном кабинете через сервер аутентификации Blitz Identity Provider. Согласно требованиям проекта, который мы...
Получить трафик для интернет-магазина сегодня не проблема. Есть много каналов его привлечения: органическая выдача, контекстная реклама, контент-маркетинг, RTB-сети и т. д. Вопрос в том, как вы распор...
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...