Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були offline-first, і працювали значно швидше ніж зараз.
Одна з ідей які циркулюють у мене в голові це програмуємий статус бар тільки в треї. Наприклад, є polybar, але він займає непропорційно багато вертикального місця, а я не знаю як та чи можливо зробити менюбар апок так само як в macOS. Також на ці статусбари зазвичай виводять непотрібну інформацію, типу швидкості мережі чи пісні що грає, або завантаженості CPU. Я б хотів щось корисне, що використовую в роботі щодня.
Вже тривалий час мені муляє одна проблема: необхідність перевіряти чи успішно пробігли мої CI пайплайни. Нотифікації на e-mail вимкнені, тому доводиться йти в інтерфейс GitLab або GitHub та дивитися, чи там все гаразд. Я хотів зробити собі простий нотифікатор який би свистів мені про те що щось зламалось.
До того ніяк не доходили руки, але нарешті з’явилося трішки вільного часу і я вирішив повайбкодити. Задача дуже проста — через GitLab API витягнути всі пайплайни, які були нещодавно та подивитися їх статус. Якщо хоч один пайплайн впав — показати червону іконку, якщо нічого не впало, але щось біжить — синю, якщо все пробігло коректно — зелену, якщо нічого не бігло крайні два дні — сіру. Повторяти через інтервал.
Пішов в Claude та запитав, як мені зробити програму для Linux Mint Cinnamon (я вже 6 років сиджу на Linux Mint), яка відображала б у треї статус моїх пайплайнів.
Отож, для Cinnamon (так називається десктоп в Linux Mint) є SDK для розробки «аплетів». Його засновано на Gnome, відповідно доступний GJS — це біндинги GNOME SDK для JavaScript. Виконується все це всередині SpiderMonkey, тобто це не браузер, та більшість Web API недоступна.
Проте цей SDK радикально знижує вимоги до програміста.
Claude видав мені купу готового коду, я поставив аплет собі в систему, і звісно ж нічого не запрацювало. З’ясувалося, що код був написаний під HTTP клієнта попередньої версії. Попросив переписати, але знову нічого не запрацювало. Я зрозумів що навряд чи досягну мети чисто на вайбах, та пішов читати документацію. AI пропустив пару обов’язкових параметрів, я пофіксив це й отримав краш десктопа. Вайб зовсім згас, і я взявся акуратно переписувати все що мені нагенерувало. За кілька годин роботи вже мав готовий аплет який не падав та коректно все відображав.
Результат можете подивитися тут. А якщо ваш десктоп базується на Gnome, то можете і поставити.
Круто що LLM сильно спрощують розробку прототипів. Хоч я і не зміг ваншотнути проєкт, але замість того щоб гуглити як ті аплети взагалі робити, я з першого разу отримав шаблон, який сильно прискорив розробку. Фактично, я лише підправив виклики до SDK.
Заохочую вас спробувати щось навайбкодити для себе!
P.S.: до речі, гітлабівські іконки мені теж допоміг перефарбувати Claude. Я просто скинув йому hex-коди палітри та попросив зробити червону, зелену та синю версії.
P.P.S.: якщо знаєте схожі проєкти для інших систем, такі от невеликі статусбари, то скидуйте, мені цікаво.
P.P.P.S.: звісно це не вайбкодинг, бо я копіпастив все з веб-інтерфейсу. Вже після того як написав матеріал, пошукав та знайшов безкоштовний плагін для IntelliJ: ProxyAI. Настуного разу спробую скористатися ним.
Цей текст взято з особистого блогу після отримання дозволу автора.
Надсилаючи криптовалюту, багато новачків ставлять запитання: як працюють комісії та чому вони відрізняються в різних…
Нова афера набирає обертів — ось детальний розбір того, як фальшиві потенційні роботодавці намагаються вкрасти…
Соцмережа з можливістю вбудовувати повноцінні додатки прямо в пости — звучить як фантастика, але Farcaster…
Я ніколи в житті не був на співбесіді «по ту сторону». Мене ніхто не запрошував…
Я багато писав про fly.io — тоді ще новачка на ринку IaaS/PaaS хостингу. Я й…
Що мене спонукало зайнятися автоматизацією? Це був 2016 рік. Я стояв у «Сільпо» біля КПІ.…