Budgie desktop przełącza się z bibliotek GTK na EFL z projektu Enlightenment

Twórcy środowiska graficznego Budgie postanowili odejść od korzystania z biblioteki GTK na rzecz bibliotek EFL (Enlightenment Foundation Library) opracowanych w ramach projektu Enlightenment. Wyniki migracji zostaną zaprezentowane w wydaniu Budgie 11. Warto zaznaczyć, że nie jest to pierwsza próba odejścia od korzystania z GTK – w 2017 roku projekt podjął już decyzję o przejściu na Qt, ale później zrewidował swoje plany, w nadziei, że sytuacja w GTK4 ulegnie zmianie.

Niestety GTK4 nie spełniło oczekiwań twórców ze względu na ciągłe skupianie się wyłącznie na potrzebach projektu GNOME, którego twórcy nie słuchają opinii alternatywnych projektów i nie są skłonni uwzględniać ich potrzeb. Głównym impulsem do odejścia od GTK były plany GNOME dotyczące zmiany sposobu obsługi skórek, co utrudnia tworzenie niestandardowych skórek w projektach innych firm. W szczególności styl interfejsu platformy zapewnia biblioteka libadwaita, która jest powiązana z motywem projektowym Adwaita.

Twórcy zewnętrznych środowisk, którzy nie chcą całkowicie replikować interfejsu GNOME, powinni przygotować swoje biblioteki do obsługi tego stylu, jednak w tym przypadku istnieje rozbieżność w projektowaniu aplikacji wykorzystujących bibliotekę alternatywną i bibliotekę motywów platformy. Nie ma standardowych narzędzi do dodawania dodatkowych funkcji do libadwaita, a próby dodania API Recoloring, które ułatwiłoby zmianę kolorów w aplikacjach, nie mogły zostać uzgodnione ze względu na obawy, że motywy inne niż Adwaita mogą negatywnie wpłynąć na jakość aplikacji dla GNOME i komplikują analizę problemów użytkowników. W ten sposób twórcy alternatywnych komputerów stacjonarnych związali się z motywem Adwaita.

Wśród cech GTK4, które powodują niezadowolenie wśród programistów Budgie, można wymienić wyłączenie możliwości zmiany niektórych widżetów poprzez tworzenie podklas, przeniesienie do kategorii przestarzałych API X11, które nie są kompatybilne z Waylandem (np. w Budgie wywołuje GdkScreen i GdkX11Screen zostały wykorzystane do ustalenia połączenia i zmiany konfiguracji monitorów), problemy z przewijaniem w widżecie GtkListView oraz utrata możliwości obsługi zdarzeń myszy i klawiatury w GtkPopovers w przypadku, gdy okno nie jest aktywne.

Po rozważeniu wszystkich za i przeciw przejścia na alternatywne zestawy narzędzi, programiści doszli do wniosku, że najbardziej optymalną opcją jest przejście projektu na korzystanie z bibliotek EFL. Przejście na Qt jest uważane za problematyczne ze względu na oparcie biblioteki na C++ i niepewność co do przyszłej polityki licencyjnej. Większość kodu Budgie jest napisana w języku Vala, ale jako opcje migracji dostępny był zestaw narzędzi C lub Rust.

Jeśli chodzi o dystrybucję Solus, projekt będzie nadal tworzył alternatywną kompilację opartą na GNOME, ale ta kompilacja zostanie oznaczona jako nienadzorowana przez projekt i wyróżniona w osobnej sekcji na stronie pobierania. Po wydaniu Budgie 11 programiści ocenią jego możliwości w porównaniu z powłoką GNOME i zadecydują, czy kontynuować budowanie kompilacji przy użyciu GNOME, czy też przerwać, udostępniając narzędzia do migracji do kompilacji z Budgie 11. W wersji Solus z pulpitem Budgie 11, planowana jest rewizja składu aplikacji, zastąpienie aplikacji GNOME analogami, w tym opracowanymi w ramach projektu. Planowane jest na przykład rozwinięcie własnego centrum instalacji aplikacji.

Przypomnijmy, że pulpit Budgie oferuje własną implementację powłoki GNOME, panelu, apletów i systemu powiadomień. Do zarządzania oknami wykorzystuje się menedżera okien Budgie Window Manager (BWM), który jest rozszerzoną modyfikacją podstawowej wtyczki Mutter. Budgie opiera się na panelu przypominającym organizacją klasyczne panele desktopowe. Wszystkie elementy panelu są apletami, co pozwala elastycznie dostosowywać kompozycję, zmieniać rozmieszczenie i zastępować implementacje głównych elementów panelu według własnych upodobań. Dostępne aplety obejmują klasyczne menu aplikacji, system przełączania zadań, obszar listy otwartych okien, przeglądarkę wirtualnego pulpitu, wskaźnik zarządzania energią, aplet regulacji głośności, wskaźnik stanu systemu i zegar.

Budgie desktop przełącza się z bibliotek GTK na EFL z projektu Enlightenment


Źródło: opennet.ru

Dodaj komentarz