Founded Xfce Classic, fork of Xfce without client-side window decoration

Sean Anastasi (Shawn Anastasio), a free software enthusiast who at one time developed his own operating system Shawn OS and ported Chromium and Qubes OS to the ppc64le architecture, основал project Xfce Classic, within which he intends to develop forks of the Xfce user environment components that work without the use of client-side window decorations (CSD, client-side decorations), in which the title and frame of the window are drawn not by the window manager, but by the application itself.

Recall that in preparation for the next release of Xfce 4.16, the release of which expected in October or November, the interface was transferred to the GtkHeaderBar widget and the use of CSD, which made it possible, by analogy with GNOME, to achieve the placement of menus, buttons and other interface elements in the window title, as well as to ensure the hiding of frames in dialogs. The new interface rendering mechanism is integrated into the libxfce4ui library, which has resulted in the automatic application of CSD for almost all dialogs, without the need to make changes to the code of existing projects.

At the transition to CSD found opponents, who believe that CSD support should be optional and the user should be able to continue using the classic window titles. Among the disadvantages of using CSD, there is a too massive window title area, no need to transfer application elements to the window title, the inoperability of Xfwm4 themes, and inconsistency in the design of windows of Xfce / GNOME applications and programs that do not use CSD. It is noted that one of the reasons for the rejection of the GNOME interface by some users is the use of CSD.

Since no attempt was made to provide support for disabling CSD in 5 months, Sean Anastasi I decided take this issue into your own hands and created a fork of the library libxfce4ui, in which I cleaned up the binding to CSD and returned the old decoration mode on the server side (window manager). To ensure compatibility with applications using the new libxfce4ui API and preserve the ABI, special bindings have been prepared that translate specific CSD methods of the XfceTitledDialog class into calls to the GtkDialog class. As a result, it was possible to get rid of Xfce applications from CSD by replacing the libxfce4ui library, without changing the code of the applications themselves.

Additional fork formed xfce4-panel panelsA that includes changes to bring back the classic behavior. Prepared for Gentoo users overlay to install libxfce4ui-nocsd. Prepared for Xubuntu/Ubuntu users PPA repository with ready-made packages. Sean Anastasi explained the motives for creating the fork by saying that he has been using Xfce for many years and he likes the interface of this environment. After deciding on interface changes that he disagreed with, and not trying to provide an option to bring back the old behavior, it was decided to solve his own problem and share the solution with other people who share his point of view.

One of the problems when using Xfce Classic is the appearance of duplicating titles due to the display of repeated information in the title and in the application window. This feature matches the behavior of Xfce 4.12 and 4.14, and is not related to CSD. In some applications, such duplication looks fine (for example, in xfce4-screenshooter), but in others it is clearly inappropriate. To solve this problem, adding an environment variable that regulates the rendering of XfceHeading is not ruled out.

Founded Xfce Classic, fork of Xfce without client-side window decoration

The position of CSD supporters is reduced to the ability to use the wasted space of the window title to place menus, panel buttons and other significant interface elements. Opponents of CSD argue that this approach has problems with unifying the appearance of windows, especially those written for different user environments that define different guidelines for the layout of the header area. It is much easier to bring the window design of all applications to a single style with the classic rendering of window service areas on the server side. In the case of using CSD, it is required to separately adapt the application interface to each graphical environment and it is rather difficult to ensure that the application does not look alien in different user environments.

Source: opennet.ru

Add a comment