Xfce Greybird CSD theme
The default Xfce Greybird theme blends poorly with applications using Client-Side Decorations. A tweaked Xfwm theme provides better consistency and unified looks.
While being controversial, applications are continuously migrated to use Client-Side Decorations (CSD) on GTK-based Linux desktops, such as GNOME but also Xfce.
The Greybird theme (default at least on Xubuntu) unfortunately poorly integrates with the CSD style, making the look and feel of window-manager controlled applications quite inconsistent.
However, with a few tweaks, the title bars can be themed to more closely match the header bars, for a more unified experience.
Installation
For installation, the theme assets just need to be extracted into ~/.themes/
– thereby adding the new window manager theme option Greybird-compatibility.
The main themerc
offers further customization options, for example whether to draw the title bar’s bottom border line or not.
Background
Xfwm theming is pretty straight-forward and merely involves XPM PixMaps with PNG overlays. The base theme is Greybird-accessibility, with the following differences:
- matching window title colors, which originally can suffer from poor legibility anyway
- 24px background-only menu button that holds the application icon
- thin left, right, and bottom borders with adjusted colors
- bottom border line for all active or inactive title bar and corner XPM assets
- no borders around button PNG icons when not hovered or pressed
- “flat” look when inactive – i.e., without gradient overlay
- increased button spacing
The initial approach was to change as little as possible in order to get satisfying results. In case this upwards-compatible theming becomes popular, a more accurate clone with dark mode support should be easily doable.
Greybird for Qt
In addition to window decorations, Qt applications do not seem to follow the default Greybird GTK theme out-of-the-box.
Even though QT_QPA_PLATFORMTHEME
is already set to gtk2
, this needs the qt5-gtk2-platformtheme
package to be installed specifically – not to be confused with the pre-installed qt5-gtk-platformtheme
.