Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були 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. Настуного разу спробую скористатися ним.
Цей текст взято з особистого блогу після отримання дозволу автора.
Favbet Tech – це ІТ-компанія зі 100% українською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологій та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: