Робочий стіл Budgie переходить із GTK на бібліотеки EFL від проекту Enlightenment

Розробники десктоп оточення Budgie вирішили уникнути використання бібліотеки GTK на користь бібліотек EFL (Enlightenment Foundation Library), що розвиваються проектом Enlightenment. Результати міграції будуть запропоновані у випуску Budgie 11. Примітно, що це не перша спроба уникнення використання GTK — у 2017 році проект вже приймав рішення про перехід на Qt, але пізніше переглянув плани, сподіваючись, що в GTK4 ситуація зміниться.

На жаль, GTK4 не виправдав очікувань розробників через продовження повної орієнтації лише на потреби проекту GNOME, розробники якого не прислухаються до думки альтернативних проектів і не бажають враховувати їхні потреби. Основним стимулом для уникнення застосування GTK послужили плани GNOME щодо зміни роботи з темами оформлення, які ускладнюють створення власних варіантів оформлення в сторонніх проектах. Зокрема стиль інтерфейсу платформи забезпечується бібліотекою libadwaita, яка прив'язана до теми оформлення Adwaita.

Творці сторонніх оточень, які не бажають повністю повторювати інтерфейс GNOME, повинні підготувати свої бібліотеки для обробки стилю, але в цьому випадку виникає різнобій в оформленні додатків, які використовують альтернативну бібліотеку та бібліотеку теми платформи. Штатних засобів для додавання додаткових можливостей у libadwaita немає, а спроби додати API Recoloring, який дозволив би легко змінювати кольори в додатках, не вдалося узгодити через побоювання, що відмінні від Adwaita теми можуть негативно вплинути на якість додатків для GNOME та ускладнити аналіз проблем у користувачів. Таким чином, розробники альтернативних робочих столів були прив'язані до теми Adwaita.

З особливостей GTK4, які викликають невдоволення у розробників Budgie, також виділяється виняток можливості зміни деяких віджетів через створення субкласів, переведення в розряд застарілих API X11, які не поєднуються з Wayland (наприклад, у Budgie виклики GdkScreen та GdkX11Screen використовувалися для визначення підключення та зміни конфігурацій) ), проблеми з прокручуванням у віджеті GtkListView і зникнення можливості обробити події миші та клавіатури в GtkPopovers, якщо вікно не у фокусі.

Зваживши всі плюси та мінуси переходу на альтернативні тулкіти, розробники дійшли висновку, що найбільш оптимальним є перехід проекту на використання бібліотек EFL. Перехід на Qt визнаний проблематичним через зав'язку даної бібліотеки на C++ та невизначеність у майбутній ліцензійній політиці. Більшість коду Budgie написана мовою Vala, але як варіанти для міграції допускалося використання тулкіту на Сі або Rust.

Що стосується дистрибутива Solus, то проектом буде продовжено формування альтернативної збірки на основі GNOME, але дана збірка буде позначена як некурована проектом і виділена в окрему секцію на сторінці завантаження. Після виходу Budgie 11 розробники оцінять його можливості в порівнянні з GNOME Shell і приймуть рішення продовжити формування збірки з GNOME або припинити, надавши інструменти для міграції на збірку з Budgie 11. на аналоги, у тому числі розроблені усередині проекту. Наприклад, планується розробити власний центр встановлення програм.

Нагадаємо, що робочий стіл Budgie пропонує власну реалізацію оболонки GNOME Shell, панелі, аплетів та системи виведення повідомлень. Для керування вікнами використовується віконний менеджер Budgie Window Manager (BWM), що є розширеною модифікацією базового плагіна Mutter. Основу Budgie складає панель, близька до роботи з класичними панелями робочого столу. Всі елементи панелі є аплетами, що дозволяє гнучко налаштовувати склад, змінювати розміщення та замінювати реалізацію основних елементів панелі на свій смак. Серед доступних аплетів можна відзначити класичне меню програм, систему перемикання завдань, область зі списком відкритих вікон, перегляд віртуальних робочих столів, індикатор управління живленням, аплет управління рівнем гучності, індикатор стану системи та годинник.

Робочий стіл Budgie переходить із GTK на бібліотеки EFL від проекту Enlightenment


Джерело: opennet.ru

Додати коментар або відгук