Założył Xfce Classic, rozwidlenie Xfce bez dekoracji okien po stronie klienta

Sean Anastasi (Shawna Anastasio), entuzjasta wolnego oprogramowania, który kiedyś opracował własny system operacyjny ShawnOS i brał udział w przeportowaniu Chromium i Qubes OS na architekturę ppc64le, założony projekt Klasyczny Xfce, w ramach którego zamierza rozwijać forki komponentów środowiska użytkownika Xfce, działające bez użycia dekoracji okiennych po stronie klienta (CSD, dekoracje po stronie klienta), w których tytuł okna i ramki rysowane są nie przez menadżera okien, a przez samą aplikację.

Przypomnijmy, że w ramach przygotowań do kolejnej wersji Xfce 4.16, której wydanie spodziewane w październiku lub listopadzie interfejs został przeniesiony na widżet GtkHeaderBar i wykorzystanie CSD, co umożliwiło, analogicznie do GNOME, umieszczenie menu, przycisków i innych elementów interfejsu w nagłówku okna, a także zapewnienie ukrycia ramek w oknach dialogowych. Nowy silnik renderujący interfejs jest zintegrowany z biblioteką libxfce4ui, co zaowocowało automatyczną aplikacją CSD dla prawie wszystkich okien dialogowych, bez konieczności wprowadzania zmian w kodzie istniejących projektów.

Przy przejściu na CSD znaleziony przeciwnicy, którzy uważają, że obsługa CSD powinna być opcjonalna, a użytkownik powinien mieć możliwość dalszego korzystania z klasycznych tytułów okien. Wśród wad stosowania CSD można wymienić zbyt duży obszar tytułowy okna, brak konieczności przenoszenia elementów aplikacji do tytułu okna, nieoperacyjność motywów Xfwm4 oraz rozbieżności w projektowaniu okien aplikacji Xfce/GNOME i programów, które to robią nie używać CSD. Należy zauważyć, że jednym z powodów odrzucenia interfejsu GNOME przez niektórych użytkowników jest użycie CSD.

Ponieważ nie podjęto żadnej próby zapewnienia wsparcia w zakresie wyłączania CSD w ciągu 5 miesięcy, Sean Anastasi zdecydowany wziąłem tę kwestię w swoje ręce i stworzyłem rozwidlenie biblioteki libxfce4ui, w którym wyczyściłem powiązanie z CSD i przywróciłem stary tryb dekoracji po stronie serwera (menedżer okien). Aby zapewnić kompatybilność z aplikacjami korzystającymi z nowego API libxfce4ui i zachować ABI, przygotowano specjalne powiązania, które tłumaczą określone metody CSD klasy XfceTitledDialog na wywołania klasy GtkDialog. W rezultacie możliwe jest pozbycie się CSD z aplikacji Xfce poprzez wymianę biblioteki libxfce4ui, bez zmiany kodu samych aplikacji.

Dodatkowo uformowano widelec panel xfce4, co obejmuje zmiany mające na celu przywrócenie klasycznego zachowania. Przygotowano dla użytkowników Gentoo narzuta aby zainstalować libxfce4ui-nocsd. Przygotowano dla użytkowników Xubuntu/Ubuntu Repozytorium PPA z gotowymi pakietami. Sean Anastasi wyjaśnił powody stworzenia forka mówiąc, że od wielu lat korzysta z Xfce i podoba mu się interfejs tego środowiska. Po podjęciu decyzji o zmianach w interfejsie, z którymi się nie zgadzał i braku próby zapewnienia opcji powrotu do starego zachowania, zdecydował się sam rozwiązać swój problem i podzielić się rozwiązaniem z innymi osobami o podobnych poglądach.

Jednym z problemów podczas korzystania z Xfce Classic jest pojawianie się zduplikowanych tytułów w wyniku wyświetlania powtarzających się informacji w tytule i oknie aplikacji. Ta funkcja jest zgodna z zachowaniem Xfce 4.12 i 4.14 i nie jest powiązana z CSD. W niektórych aplikacjach takie powielanie wygląda normalnie (na przykład w programie do strzelania ekranu xfce4), ale w innych jest wyraźnie niewłaściwe. Aby rozwiązać ten problem, można dodać zmienną środowiskową kontrolującą renderowanie XfceHeading.

Założył Xfce Classic, rozwidlenie Xfce bez dekoracji okien po stronie klienta

Stanowisko zwolenników CSD sprowadza się do możliwości wykorzystania zmarnowanej przestrzeni tytułowej okna na umieszczenie menu, przycisków panelu i innych istotnych elementów interfejsu. Przeciwnicy CSD uważają, że takie podejście stwarza problemy z ujednoliceniem projektu okien, zwłaszcza tych napisanych dla różnych środowisk użytkownika, które definiują różne zalecenia dotyczące układu obszaru tytułowego. O wiele łatwiej jest sprowadzić projekt okien wszystkich aplikacji do jednego stylu, klasycznie renderując obszary usługowe okna po stronie serwera. W przypadku korzystania z CSD konieczne jest osobne dostosowywanie interfejsu aplikacji do każdego środowiska graficznego i dość trudno jest zadbać o to, aby aplikacja nie wyglądała obco w różnych środowiskach użytkownika.

Źródło: opennet.ru

Dodaj komentarz