Shawn Anastasio (), ein Enthusiast für Open Source-Software, der einst sein eigenes Betriebssystem entwickelt hat, und Portierungen von Chromium und Qubes OS auf die Architektur ppc64le durchgeführt hat, Projekt , in dessen Rahmen er beabsichtigt, Forks von Komponenten der Benutzeroberfläche von Xfce zu entwickeln, die ohne Client-seitige Dekorationen (CSD) arbeiten, bei denen die Titel und Rahmen von Fenstern nicht vom Fenstermanager, sondern von der Anwendung selbst gezeichnet werden.
Zur Erinnerung: Bei der Vorbereitung der nächsten Version Xfce 4.16, deren Veröffentlichung im Oktober oder November stattfinden soll, wurde die Benutzeroberfläche auf das Widget GtkHeaderBar umgestellt und CSD implementiert, was es ermöglichte, Menüs, Schaltflächen und andere Benutzeroberflächenelemente im Fenstertitel zu platzieren und die Rahmen in Dialogen auszublenden. Der neue Rendering-Mechanismus der Benutzeroberfläche ist in die Bibliothek libxfce4ui integriert, was dazu führte, dass CSD automatisch für fast alle Dialoge angewendet wurde, ohne dass Änderungen am Code vorhandener Projekte erforderlich waren.
Der Übergang zu CSD , die der Meinung sind, dass die Unterstützung von CSD optional sein sollte und dass der Benutzer die klassischen Fenstertitel weiterhin verwenden können sollte. Zu den Nachteilen der Anwendung von CSD wird das überdimensionierte Titelbereich des Fensters, die fehlende Notwendigkeit, Anwendungselemente in den Fenstertitel zu verschieben, die Unbenutzbarkeit von Xfwm4-Themen und die Inkonsistenz im Design von Fensteranwendungen zwischen Xfce/GNOME und Programmen, die CSD nicht verwenden, erwähnt. Es wird festgestellt, dass einer der Gründe für die Ablehnung der GNOME-Oberfläche durch einige Benutzer die Anwendung von CSD ist.
Da in den letzten 5 Monaten keine Versuche unternommen wurden, die Unterstützung für die Deaktivierung von CSD bereitzustellen, hat Sean Anastasi dieses Thema selbst in die Hand zu nehmen und hat einen Fork der Bibliothek , in dem die Bindung an CSD bereinigt und der alte Dekorationsmodus auf der Serverseite (Fenstermanager) zurückgegeben wurde. Um die Kompatibilität mit Anwendungen, die die neue API libxfce4ui nutzen, zu gewährleisten und ABI zu erhalten, wurden spezielle Wrapper vorbereitet, die spezifische CSD-Methoden der Klasse XfceTitledDialog in Aufrufe der Klasse GtkDialog übersetzen. Dadurch wird die Möglichkeit geschaffen, Xfce-Anwendungen von CSD zu befreien, indem die Bibliothek libxfce4ui ersetzt wird, ohne den Code der Anwendungen selbst zu ändern.
Zusätzlich wurde ein Fork , der Änderungen für die Rückkehr zum klassischen Verhalten beinhaltet. Für Gentoo-Nutzer wurde ein Paket zur Installation von libxfce4ui-nocsd vorbereitet. Für Xubuntu/Ubuntu-Nutzer wurde ein mit vorgefertigten Paketen erstellt. Die Beweggründe für die Erstellung des Forks erklärte Sean Anastasi damit, dass er Xfce seit vielen Jahren benutzt und die Oberfläche dieses Desktops mag. Nach der Entscheidung über die Änderung der Benutzeroberfläche, mit der er nicht einverstanden war, und der mangelnden Versuche, eine Option zum Zurückkehren zum alten Verhalten anzubieten, entschied er sich, sein Problem selbst zu lösen und seine Lösung mit anderen zu teilen, die seine Ansicht teilen.
Bei der Nutzung von Xfce Classic wird das Gefühl von doppelten Überschriften festgestellt, da Informationen sowohl in der Überschrift als auch im Anwendungsfenster wiederholt angezeigt werden. Dieses Verhalten entspricht den Versionen Xfce 4.12 und 4.14 und steht nicht im Zusammenhang mit CSD. In einigen Anwendungen wirkt diese Wiederholung normal (z. B. im xfce4-screenshooter), während sie in anderen offensichtlich unangebracht ist. Um dieses Problem zu beheben, wird nicht ausgeschlossen, dass eine Umgebungsvariable hinzugefügt wird, die das Rendering von XfceHeading steuert.
Die Position der CSD-Befürworter besteht darin, den ungenutzten Raum in der Fensterüberschrift für die Platzierung von Menüs, Schaltflächen und anderen bedeutenden Benutzeroberflächenelementen zu nutzen. Dagegen glauben die Gegner des CSD, dass dieser Ansatz zu Problemen bei der Vereinheitlichung des Fensterdesigns führt, insbesondere für Anwendungen, die für unterschiedliche Benutzerumgebungen entwickelt wurden, die unterschiedliche Empfehlungen zur Anordnung des Headerbereichs bieten. Das Design aller Anwendungen lässt sich viel einfacher auf einen einheitlichen Stil bringen, wenn die funktionalen Bereiche des Fensters klassisch auf der Serverseite gerendert werden. Bei Verwendung des CSD muss die Benutzeroberfläche jeder Anwendung getrennt an jede grafische Umgebung angepasst werden, was es recht schwierig macht, sicherzustellen, dass die Anwendung in verschiedenen Benutzerumgebungen nicht fremd aussieht.
Quelle: opennet.ru
