Shawn Anastasio (), entuzjasta wolnego oprogramowania, który w swoim czasie rozwijał własny system operacyjny i zajmował się portowaniem Chromium i Qubes OS na architekturę ppc64le, projekt , w ramach którego zamierza rozwijać forki komponentów środowiska użytkownika Xfce, działających bez użycia dekoracji okien po stronie klienta (CSD, dekoracje po stronie klienta), w którym nagłówek i ramki okna są rysowane nie przez menedżera okien, lecz przez same aplikacje.
Przypomnijmy, że w trakcie przygotowywania następnej wersji Xfce 4.16, której wydanie nastąpi w październiku lub listopadzie, dokonano przetłumaczenia interfejsu na widżet GtkHeaderBar oraz zastosowania CSD, co pozwoliło, w podobny sposób jak w GNOME, umieścić menu, przyciski i inne elementy interfejsu w nagłówku okna oraz umożliwiło ukrycie ramek w dialogach. Nowy mechanizm rysowania interfejsu został zintegrowany z biblioteką libxfce4ui, co doprowadziło do automatycznego stosowania CSD w prawie wszystkich dialogach, bez konieczności wprowadzania zmian w kodzie istniejących projektów.
W przejściu na CSD , którzy uważają, że wsparcie dla CSD powinno być opcjonalne i użytkownik powinien mieć możliwość kontynuacji korzystania z klasycznych nagłówków okien. Wśród wad stosowania CSD wymienia się zbyt masywny obszar nagłówka okna, brak konieczności przenoszenia elementów aplikacji do nagłówka okna, niezgodność motywów Xfwm4 oraz różnorodność w wyglądzie okien aplikacji Xfce/GNOME i programów, które nie używają CSD. Zauważono, że jedną z przyczyn niechęci do interfejsu GNOME wśród niektórych użytkowników jest zastosowanie CSD.
Ponieważ przez 5 miesięcy nie podjęto prób zapewnienia wsparcia dla wyłączenia CSD, Shawn Anastasio wziął ten problem w swoje ręce i stworzył fork biblioteki , w którym przeprowadził czyszczenie związku z CSD i przywrócił stary tryb dekoracji po stronie serwera (menedżera okien). Aby zapewnić zgodność z aplikacjami korzystającymi z nowego API libxfce4ui i zachować ABI, przygotowano specjalne opakowania, które przekształcają specyficzne metody CSD klasy XfceTitledDialog w wywołania klasy GtkDialog. W rezultacie umożliwiono pozbycie się CSD w aplikacjach Xfce poprzez wymianę biblioteki libxfce4ui, bez zmiany kodu samych aplikacji.
Dodatkowo utworzono fork , zawierający zmiany przywracające klasyczne zachowanie. Dla użytkowników Gentoo przygotowano do zainstalowania libxfce4ui-nocsd. Dla użytkowników Xubuntu/Ubuntu przygotowano z gotowymi pakietami. Motywy utworzenia forka Sean Anastasi wyjaśnił tym, ż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ł, oraz braku prób wprowadzenia opcji przywracającej stare zachowanie, postanowiono samodzielnie rozwiązać problem i podzielić się rozwiązaniem z innymi osobami, które podzielają jego punkt widzenia.
Wśród problemów związanych z używaniem Xfce Classic zauważa się powstawanie wrażenia duplikacji nagłówków z powodu wyświetlania powtarzających się informacji w nagłówku i w oknie aplikacji. Cecha ta odpowiada zachowaniu Xfce 4.12 i 4.14 i nie jest związana z CSD. W niektórych aplikacjach takie duplikowanie wygląda normalnie (na przykład w xfce4-screenshooter), ale w innych jest wyraźnie nieodpowiednie. W celu rozwiązania tego problemu nie wyklucza się dodania zmiennej środowiskowej regulującej renderowanie XfceHeading.
Stanowisko zwolenników CSD sprowadza się do możliwości wykorzystania marnującej się przestrzeni nagłówka okna do umieszczenia menu, przycisków panelu i innych istotnych elementów interfejsu. Przeciwnicy CSD uważają, że przy takim podejściu pojawia się problem z unifikacją wyglądu okien, szczególnie tych napisanych dla różnych środowisk użytkownika, które definiują różne wskazówki dotyczące kompozycji obszaru nagłówka. Oformowanie okien wszystkich aplikacji znacznie łatwiej jest doprowadzić do jednego stylu przy klasycznym renderowaniu obszarów funkcjonalnych okna po stronie serwera. W przypadku zastosowania CSD konieczne jest osobne dostosowanie interfejsu aplikacji do każdego środowiska graficznego, a osiągnięcie tego, aby aplikacja nie wyglądała obco w różnych środowiskach użytkownika, jest wystarczająco trudne.
Źródło: opennet.ru
