Xfce Classic Brings An Alternative To Those Who Do Not Want Xfce To Become GNOME Light
The next version of the popular Xfce desktop environment for GNU/Linux computers will have the controversial client side decorations (CSD) for window borders, identical to those of the GNOME 3 desktop environment. Many free software users moved from GNOME to avoid these kinds of user-hostile design decisions, and developers decided to create new classic desktop environments like Unity, Cinnamon and Mate. Users who do not want to upgrade Xfce and find themselves in a foreign unfamiliar desktop environment with strange window header-bars, instead of sane window decorations, have a new choice when Xfce 4.16 arrives: Shawn Anastasio has taken the lead in a new Xfce fork called "Xfce Classic".
written by 윤채경 (Yoon Chae-kyung). published 2020-07-11 - last edited 2020-08-30
The new Xfce Classic project is not be as "classic" as the name implies. It is based on the current Xfce development code-base scheduled to be released as Xfce 4.16 in August. The main differences between Xfce Classic and Xfce 4.16 will be the controversial visible changes. Xfce Classic will have the same sane "classic" window titlebars Xfce has today whereas Xfce 4.16 will look like a GNOME light.
Lead Xfce Classic developer Shawn Anastasio explained that the fork is motivated by the user interface changes in the upcoming Xfce release:
"Well, Xfce has been a core part of my workflow for many years and I've grown to like its UI. When I realized that they were making some UI decisions I disagreed with (and had no intentions to offer toggles) I figured I'd just fork the relevant components and publish them in case anybody else felt the same way."
Many users have requested that the Xfce team make the client side decorations optional. Requests on the new gitlab issue tracker, the Xfce forums, and Xfce developer blog comments and so on have been dismissed or censored. The Xfce developer who wrote most of the CSD-related code, Simon Steinbeiß, has become so invested in it that he refers to any critisim of it as "passive-aggressive" and "trolling". It does, indeed, seem like there is zero hope client side decorations being optional in the upcoming Xfce release.
The move to client side decorations do not only affect the Xfce desktop itself. Many programs, like LibreOffice, get CSD header-bars instead of window title-bars when they are launched under Xfce 4.16. That means that many third party applications, not just Xfce programs, lose functionality like the make window sticky button, the ability to set the window title area to shade windows by scrolling the mouse on it, the ability to maximize windows vertically by clicking the maximize button using the left mouse button - and so on.
Dialogue boxes like the GTK file picker are also affected.
Developer Shawn Anastasio has begun restoring Xfce to the familiar way look of Xfce 4.12 and 4.14 by forking libxfce4ui and xfce4-panel. These have the most crucial changes separating Xfce Classic from Xfce 4.16. libxfce4ui-nocsd will do for Xfce what the PCMan's gtk3-nocsd library can do for GNOME and GTK3 applications: Restore the regular, familiar, window title-bars.
"Currently focus will be on just libxfce4ui (the panel repo just has a small tweak I tried to get merged but was never accepted). If upstream decides to implement more invasive UI/CSD changes that can't be fixed within the scope of libxfce4ui then I'll fork the affected components."
The upstream change to
xfce4-settings causing GTK boxes like the file picker to look odd and unfamiliar in Xfce 4.16 will likely not be fixed by a fork. The change, introduced in upstream commit ee29d64bb7ebe8, adds
<property name="DialogsUseHeader" type="bool" value="true"></property> to the default
xsettings.xml configuration file. Users can change this file by editing
$HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml. That file can also be changed using to set the ▸ value to
"It's probably not worth a fork as long as it's a user-configurable option."
Double Titles On Many Xfce Components
Several Xfce components get what looks like a double header when client side decorations are turned off. This is actually not an effect of the changes in Xfce 4.16, this is the classic behaviour. This behaviour has been there since Xfce 4.12, perhaps earlier.
"Anything that uses
XfceTitledDialog class will include that extra header with icon+title (
XfceHeading). That's been a part of xfce for years and isn't related to the CSD changes.
That said, you could probably patch out the XfceHeading instantiation in xfce-titled-dialog.c in libxfce4ui if you don't want it.
I'm not against adding an environment variable to toggle it either I guess.
It does look particularly CSD-ish with whatever theme you're using too. Here's what it looks like [in Xfce Classic] with arc-dark:
I think in some applications (like xfce4-screenshooter) it looks fine, but in others it definitely looks a bit superfluous."
Shawn Anastasio is otherwise, in relation to free software, mostly involved in kernel development and porting software to lesser-used architectures like OpenPOWER.
"Apart from a few miscellaneous contributions to some FOSS projects (most notably the Linux kernel), I'm pretty active in software porting efforts for architectures like OpenPOWER. My most notable contributions there are a port of Google Chromium to ppc64le and libkvmchan, an implemention of some Xen APIs which lay the groundwork for a port of Qubes OS to ppc64le."
Xfce Classic development is taking place at github.com/Xfce-Classic. The two components forked so far, libxfce4ui-nocsd and xfce4-panel, can be used together with the non-forked packages from the upstream Xfce development git tree. It compiles, installs and works as expected: The traditional classic Xfce experience is restored.
Developer Shawn Anastasio has a profile with contact information at keybase.
On a slightly related note: The Xfce 4.14 bug that makes it impossible to resize the xfce4-settings window vertically was due to a problem with the
exo package which is fixed in xfce git. No stable 4.14 release has been made with this fix. The bug in the xfwm4 git tree that makes all Qt and KDE applications show the menus where they previously where if the window is moved, something that makes all Qt and KDE programs practically unusable under Xfce 4.16, is not fixed. You need to revert
821ee7cc before compiling xfwm4 from git.