Shawn Anastasio (), a free software enthusiast who once developed his own operating system and worked on porting Chromium and Qubes OS to the ppc64le architecture, project , through which he aims to develop forks of Xfce's user environment components that operate without client-side decorations (CSD), where the title and window borders are rendered by the application itself instead of the window manager.
It is worth noting that in preparation for the upcoming Xfce 4.16 release, expected in October or November, the interface has been transitioned to the GtkHeaderBar widget and CSD has been implemented, allowing for menu placement, buttons, and other interface elements in the window title, as well as disabling borders in dialogs. The new interface rendering mechanism is integrated into the libxfce4ui library, leading to the automatic application of CSD for almost all dialogs without the need for changes to the code of existing projects.
There are , who believe that CSD support should be optional and users should have the choice to continue using classic window titles. Among the drawbacks of using CSD are the excessively large title area, the lack of necessity to move application elements into the title bar, the incompatibility of Xfwm4 themes, and the inconsistency of window styling between Xfce/GNOME and applications that do not use CSD. It is noted that one of the reasons some users reject the GNOME interface is the use of CSD.
Since no attempts were made to provide support for disabling CSD over the past five months, Shawn Anastasio to take this matter into his own hands and created a fork of the , which cleans the CSD binding and reverts the old decoration mode on the server side (window manager). To ensure compatibility with applications using the new API libxfce4ui and to maintain ABI, special wrappers have been created that translate the specific CSD methods of the XfceTitledDialog class into calls to the GtkDialog class. As a result, Xfce applications can be freed from CSD by replacing the libxfce4ui library without modifying the application code.
Additionally, a fork has been created , which includes changes to restore classic behavior. For Gentoo users, an has been prepared for installing libxfce4ui-nocsd. For Xubuntu/Ubuntu users, a with ready packages has been prepared. Sean Anastasi explained his motives for creating the fork by stating that he has been using Xfce for many years and enjoys the interface of this environment. After the decision was made to change the interface, which he disagreed with, and the lack of attempts to provide an option to revert to the old behavior, he decided to solve his problem independently and share the solution with others who share his viewpoint.
Among the issues when using Xfce Classic, the impression of duplicated titles is noted due to the repeated information displayed in both the title and the application window. This feature corresponds to the behavior of Xfce 4.12 and 4.14 and is not related to CSD. In some applications, this duplication looks normal (for example, in xfce4-screenshooter), but in others, it is clearly inappropriate. To address this issue, the addition of an environment variable regulating the rendering of XfceHeading is not ruled out.
The position of CSD supporters centers around the ability to utilize the otherwise wasted space of the window title bar for placing menus, toolbar buttons, and other significant interface elements. Opponents of CSD argue that this approach leads to issues with standardizing window appearances, especially for applications written for different user environments, which define varying layout guidelines for the title area. It's much easier to unify the presentation of all application windows with traditional rendering of window chrome on the server side. When applying CSD, it's necessary to separately adapt the application's interface for each graphical environment, and it is quite challenging to ensure that the application does not appear out of place in various user environments.
Source: opennet.ru
