Restoring the XFWM title bar for XFCE desktop
Date: 2021-03-01
If you've installed XFCE 4.16, you may or may not have taken notice toward the snazzy new designs of the XFCE desktop applications!
Among the re-design is the introduction of the new header bar / title bars, known as Client-Side Decorations. This is part of a GNOME initiative[1] in separating Operating System and user level controls of the traditional GNU/Linux desktop UI / UX paradigm from the GTK toolkit to favour a modern demographic of brand conscious app developers.[2]
If you would like to restore the XFCE Window Manager title bars for your desktop applications, then follow along!
Steps for XFCE applications
Step 1
-
XUbuntu:
You can install the the libxfce4ui-nocsd[3] fork which primarily affects XFCE applications.
For XUbuntu 20.04 and 21.10 users that installed XFCE 4.16 from the XUbuntu staging PPA, you can install libxfce4ui-nocsd from the very same archive.
sudo apt install libxfce4ui-nocsd-2-0
For XUbuntu 22.04 users, you can install libxfce4ui-nocsd from the Xubuntu QA Experimental PPA.[4]
sudo add-apt-repository ppa:xubuntu-dev/experimental sudo apt install libxfce4ui-nocsd
-
Debian:
For those of you running Debian, you will likely have to build libxfce4ui-nocsd for yourself. You should follow the instructions from the GitHub repository.
-
Arch:
For Arch platforms, libxfce4ui-nocsd is available in the AUR.
pacman -S libxfce4ui-nocsd
Step 2
-
The libxfce4ui-nocsd library will only remove the CSD header bars for particular XFCE applications that use the XfceTitledDialog class. You can replace the header bars from any application that use GTK3 Dialogs by setting the "DialogsUseHeader" option to false from xfconf.
Open a terminal and run the following command:
xfconf-query -c xsettings -p /Gtk/DialogsUseHeader -s false
Before:
After:
[Return to top]
Steps for other non-XFCE applications
For non-XFCE GTK based applications you can use gtk3-classic[5], which takes a holistic approach to restoring a traditional desktop experience by disableding CSD headers, restoring traditional dialog boxes and file chooser improvements.
Alternatively there is also gtk3-nocsd[6] which will only restore the titlebar and window manager border style for most applications that attempt to mask the window manager. A common critique observed with gtk3-nocsd however is where the titlebar may look out of place or clash with the installed desktop theme.
In case you were wondering, you shouldn't need both gtk3-classic and gtk3-nocsd simultaneously installed, so choose only one.
gtk3-classic
-
Ubuntu:
There is a PPA available for Ubuntu based platforms ranging from version 20.04 to 22.04.
sudo add-apt-repository ppa:lah7/gtk3-classic sudo apt dist-upgrade
If you would like to remove gtk3-classic and restore the original GTK3, you can use ppa-purge.
sudo apt-get install ppa-purge sudo ppa-purge ppa:lah7/gtk3-classic
-
Debian:
Yet again, for those of you running Debian, you'll likely have to build gtk3-classic for yourself.
-
Arch:
The gtk3-classic package is available in the AUR.
pacman -S gtk3-classic lib32-gtk3-classic
gtk3-nocsd
Step 1
-
Debian based platforms:
The gtk3-nocsd package is available for most Debian based systems, such as Ubuntu or Devuan.
sudo apt install gtk3-nocsd
-
Arch based platforms:
I recommend installing the git version since it appears to be the most active version of the package on the AUR.
pacman -S gtk3-nocsd-git
Step 2
Reboot your system after installing gtk3-nocsd.
You should notice most GTK3 applications with your window managers title bar restored.
Before:
After:
Right-click the image and select View Image to see in full resolution.
Conclusion
I don't actually mind these header bars. Sure, I agree that it breaks the consistency with the rest of your non-GNOME-ified applications, and that the functionality is typically cumbersom and non-intuitive, but it's really no more different than a toolbar in concept and the issues experienced are largely due to poor implementation.
From my observations, the criticism lodged toward application header bars which replace the traditional window manager controls and border style is largely a reaction to poor UI / UX, which I would like to go into some detail in a latter blog. At present, many implementations are either for glitz and glamour or given in to tech-fashion development trends that promote apathetic low effort attitudes toward desktop application UI development and the power users that expect better.
At some point the many and varied Linux desktop themes and customizations we take for granted today (icons included) will eventually become client-side only, meaning that it will be determined by each application itself with only the most rudimentary of customizability and controls. While this will eventually come to pass, for now we can still enjoy our Personal Computers as they are.
Personal
References
1. https://wiki.gnome.org/Initiatives/CSD
3. https://github.com/Xfce-Classic/libxfce4ui-nocsd
4. https://launchpad.net/~xubuntu-dev/+archive/ubuntu/experimental/
5. https://github.com/lah7/gtk3-classic
6. https://github.com/PCMan/gtk3-nocsd
[Return to top]