libAdapta: Рішення Linux Mint для інтеграції тем у програми GTK4

libAdapta GTK4 Linux Mint

У своїх постійних зусиллях щодо забезпечення послідовного та настроюваного робочого столу, Розробники Linux Mint оголосили про випуск libAdapta, нова бібліотека, що виникла як прямий форк libAdwaita.

Хоча обидві бібліотеки мають спільне ядро ​​та ідентичний візуальний вигляд за замовчуванням, libAdapta відрізняється підтримкою тем та іншими ключовими покращеннями, які неможливі в оригінальній бібліотеці через обмеження, накладені моделлю розробки GNOME.

Чому виделка?

Команда Монетного двору зазначає, що причина створення форку libAdwaita, обумовлено що ти знайшов Постійні перешкоди для інтеграції їхніх удосконалень безпосередньо в libAdwaita, яка зосереджена виключно на рекомендаціях щодо середовища GNOME та не розглядає розширення чи сумісність поза межами своєї екосистеми.

Це призвело до створення libAdapta як форку, який регулярно синхронізується з новими версіями libAdwaita для підтримки сумісності, але водночас пропонує свободу впровадження змін без залежності від рішень команди GNOME.

libAdapta — це libAdwaita з підтримкою тем оформлення та деякими додатковими функціями.

За замовчуванням надає ті ж самі функції та зовнішній вигляд, що й libAdwaita.

У середовищах робочого столу, які дозволяють вибір теми, програми libAdapta дотримуються теми та використовують відповідні елементи керування вікном.

libAdwaita також надає заголовок сумісності, який дозволяє розробникам легко перемикатися між libAdwaita та libAdapta без будь-яких змін коду.

Ця стратегія дозволяє Linux Mint розвиватися незалежно, адаптуючи бібліотеку до потреб своїх користувачів, особливо ті, хто використовує середовища робочого столу, відмінні від GNOME, та цінує інтегрований візуальний вигляд.

Реальна підтримка тем

Один з найкритичніших моментів що спричинило це роздвоєння є відмовою libAdwaita пропонувати підтримку власних тем, обмежуючись одним візуальним стилем GNOME. В результаті, програми, створені за допомогою libAdwaita, часто виглядають недоречно на решті робочого столу в таких середовищах, як Cinnamon, Xfce або MATE.

libAdapta вирішує цю проблему, дозволяючи програмам успадковувати стиль теми GT.К у використанні. Для цього бібліотека виявляє активну системну тему та шукає певний підкаталог (libadapta-*), який містить відповідні стилі. Якщо такого не існує, бібліотека повертається до стилю libAdwaita за замовчуванням, забезпечуючи сумісність.

Перевага представлено libAdapta є його сумісність бінарного та вихідного коду з libAdwaita, оскільки Включено спеціальний заголовковий файл, який дозволяє розробникам переходити з однієї бібліотеки до іншої без зміни коду, що спрощує експерименти з libAdapta або її впровадження в існуючі проекти без значних переписувань.

Якщо ви хочете створити офіційну програму GNOME, відвідайте libAdwaita. Це офіційна бібліотека платформи. Якщо ви хочете бути включені до кола GNOME та офіційно визнані як програма GNOME, це саме те, що вам потрібно.

Якщо ви хочете створити програму, яка працює в GNOME, використовуйте будь-яку з бібліотек. Обидва однакові. LibAdwaita розвиватиметься швидше. Це має свої переваги та недоліки. Вам доведеться стежити за своїм кодом, але ви отримаєте нові функції швидше, ніж якби чекали на перебазування libAdapta.

libAdwaita розроблено відповідно до рекомендацій GNOME щодо інтерфейсу користувача (HIG) та тісно співпрацює з GTK4. Його інтеграція зі стилем Adwaita та його високорівневими компонентами, такими як списки, кнопки, форми та діалогові вікна, надає йому цілісності в середовищі GNOME, але також ізолює його від інших робочих столів та візуальних стилів.

Ввівши libAdapta, Linux Mint повертає гнучкість екосистемі GTK що багато користувачів і розробників вважається необхідним. Форк не призначений для конкуренції з GNOME, а радше для відновлення можливостей створення тем для програм GTK4, зберігаючи при цьому переваги libAdwaita.

Варто зазначити, що цей перший реліз libAdapta базується на версії libAdwaita 1.5, пропонуючи, таким чином, більшість функцій та підтримки цієї версії.

Нарешті, якщо вам цікаво дізнатися більше про це, ви можете ознайомитися з деталями в наступне посилання.