javascript

«Danil OS» или локальные веб интерфейсы

  • воскресенье, 27 апреля 2025 г. в 00:00:04
https://habr.com/ru/articles/904598/

Эта статья расскажет о моём эксперименте по оптимизации моего рабочего пространства в macOS.

Примерно 10 лет назад я придумал одну идею — канбан-рабочий стол. Я понял, что иконки на рабочем столе были крутыми… в 1984 году. и втом числе поэтому 1984 не был как 1984) Но камон, за 40 лет кроме виджетов почти ничего не изменилось. Марк…

10 лет назад, узнав о системе канбан, я начал пользоваться Illustrator’ом и рисовал себе 4 колонки прямо на рабочем столе. Поверх них размещал стандартные стикеры, полностью отключив иконки рабочего стола.

Прошло много лет. Я немного выучил веб, и теперь у нас есть опенсорсный софт, который помог мне сделать то же самое, но уже более серьёзно.
Во-первых, Plash — программулька, которая ставит Chrome вместо бэкграунда.
Я также сделал на Python с FastAPI и Jinja и запустил себе уже настроенный канбан-рабочий стол.

Но как вы понимаете, на этом дело не кончилось.
Гуляя по интернету, я нашёл несколько исходников с открытыми лицензиями, которые я использовал в своём проекте.

Во-первых, Future Sticky Navigation with Glass Effect-от Benjamin Koehler. Это моя база: вертикальный слайдер с красивыми эффектами.
Тут тоже пришлось внести доработки:
— переход на православный CSS вместо Sass,
— реализация snapping и закрытия при нажатии на backdrop,
— добавление динамических ссылок в href и фреймов через
Пока что всё храню в LocalStorage и реализовал возможность выгрузки и загрузки списка айфреймов с их ссылками и названиями. Потому что к этому моменту у меня уже было больше пяти локальных серверов, и я решил обойтись без бэкенда там, где это возможно.

WebGL Fluid Simulation — это потрясающий бэкграунд на 2к строках кода от Pavel DoGreat (шатаут!). Это было нелегко, если вкратце, но поскольку лицензия открытая, я убрал всё лишнее, поставил, залочил цвета и подключил микрофон. В общем, я был в шоке от того, насколько это сложный код. Ебаные ИИ ещё долго не смогут разобраться, что там и как, учитывая, что даже я не смог. Я имею в виду, что, играя с настройками, движок “заинчантился” и произошёл unexpected behavior, который выглядит круче, чем исходный проект. Думаю, то, что получилось, можно смело назвать датамошем.

далее видео с аудио анализатором

Для пущего эффекта некоторые переходы были украшены Lottie-анимацией, которую я нащёлкал в After Effects по старой памяти.

lottie
lottie

Потом уже пошли всякие мелочи — типа “помидорки”, виджета погоды, uTorrent Web. Всё это стало нормально вставать в интерфейс, особенно после того как я выпилил все лишние элементы.
Ну и сама канбан-доска, с картинками и gridfs

Жонглировать айфреймами — это, скажу вам, ещё тот квест. Есть и минусы:
ощутимая нагрузка на систему — держать одновременно 5 разных серверов, даже если многие из них — это просто стандартный python3 -m http.server 8888 на macOS, всё равно прилично грузят процессор.
Плюс держать 5–7 открытых терминалов — не то чтобы кайф, прямо скажем.

Хочется всё это перенести в облако и спокойно хостить атомарное количество микросервисов — по одному под каждый виджет.
Хотя, конечно, многое можно объединить на один общий бэкенд.

Наверное, в идеале нужен какой-то гибридный режим: чтобы часть системы работала локально, а часть — в облаке.


Хочется split-screen, нормальный файловый менеджер, иконки в меню — и чтобы всё это выглядело как нечто между Launchpad, сквозную цветовую тему

я все это леал исключительно для сбеа любимого пожмму этот проект скрооее про Я всё это делал исключительно для себя любимого, поэтому проект скорее про красивую и приятную сборку некоторого количества проектов под одной крышей.
Мои друзья назвали это Danil OS, и мне, честно говоря, зашло — своей локальной тупорылостью.