Before we start the review itself, I’d like to open with a disclosure that will clarify where I’m standing in regards to Xfce, so that you won’t have to wonder whether I’m biased for or against it.

Xfce is my second favorite Linux desktop environment (at the moment) right after KDE. I see great potential in Xfce, yet I doubt whether this potential will be fully realized, even in the not so near future.

Xfce’s goal of being lightweight while being visually appealing and user-friendly plays a big role in my sympathy for the D.E., it is very close to the way I would describe my ultimate desktop environment.

Furthermore, the way Xfce embodies the Unix philosophy of modularity and re-usability, is also a key factor in my appreciation for it.

Lastly, I’d like to mention that, personally, I view Xfce as one of the most unique D.E.s we have on Linux platform. It has been with us since more than 2 decades, it uses GTK+ as its main development toolkit which means Xfce is written in C language – a language that produces the fastest and most lightweight executing code possible (for a high level language)[1] – thus it is geared towards performance.

And in contrast to other desktop environments, which also uses GTK+ as their main toolkit, taking a glance at Xfce’s source code proves that C language is being used profusely, and for the most part, not in conjunction with other languages – a key factor for high performance in my view.

Having said that, what Xfce lacks and is decisively affecting the user experience of it, is – features, but you’ll read more on that later in the review.

About Xfce 4.13

Xfce 4.13 has not been released as a full release, rather, it is a milestone on the road to version 4.14 which goal is to port all the core applications from GTK+ 2 to version 3.

So all the components which have already been ported to GTK+ 3 are released as 4.13, and can be installed individually alongside other components from 4.12 for which they maintain backwards compatibility with.

Xfce Is Even Lighter Than Before

As I did when I previously reviewed Xfce 4.12, I used ps_mem tool in order measure Xfce’s RAM usage and below is the result I got: (scroll down the list to see the total sum)

Private + Shared = RAM used Program 144.0 KiB + 24.5 KiB = 168.5 KiB init

156.0 KiB + 36.0 KiB = 192.0 KiB gnome-pty-helper

140.0 KiB + 64.0 KiB = 204.0 KiB ck-launch-session

604.0 KiB + 24.0 KiB = 628.0 KiB ssh-agent

252.0 KiB + 409.0 KiB = 661.0 KiB sh

644.0 KiB + 45.0 KiB = 689.0 KiB crond

528.0 KiB + 188.5 KiB = 716.5 KiB at-spi2-registryd

648.0 KiB + 143.5 KiB = 791.5 KiB at-spi-bus-launcher

740.0 KiB + 88.5 KiB = 828.5 KiB gpg-agent

684.0 KiB + 178.0 KiB = 862.0 KiB gconfd-2

848.0 KiB + 48.0 KiB = 896.0 KiB sshd

844.0 KiB + 89.0 KiB = 933.0 KiB mount.ntfs-3g

888.0 KiB + 140.5 KiB = 1.0 MiB sudo

772.0 KiB + 307.5 KiB = 1.1 MiB xfconfd (2)

960.0 KiB + 175.0 KiB = 1.1 MiB console-kit-daemon

984.0 KiB + 236.5 KiB = 1.2 MiB upowerd

828.0 KiB + 426.5 KiB = 1.2 MiB bash

976.0 KiB + 289.0 KiB = 1.2 MiB agetty (6)

948.0 KiB + 350.5 KiB = 1.3 MiB gvfsd-trash

1.2 MiB + 277.5 KiB = 1.4 MiB dbus-launch (3)

1.1 MiB + 414.0 KiB = 1.5 MiB gvfs-mtp-volume-monitor (2)

1.5 MiB + 213.0 KiB = 1.7 MiB gvfsd-metadata

1.4 MiB + 507.0 KiB = 1.9 MiB gvfsd-fuse (2)

1.3 MiB + 632.5 KiB = 1.9 MiB gconf-helper (2)

1.4 MiB + 740.0 KiB = 2.1 MiB gvfsd (2)

2.0 MiB + 206.5 KiB = 2.2 MiB udisksd

1.9 MiB + 567.0 KiB = 2.5 MiB gnome-keyring-daemon

2.3 MiB + 459.0 KiB = 2.7 MiB dbus-daemon (5)

1.9 MiB + 893.5 KiB = 2.8 MiB kdeinit5

1.6 MiB + 1.3 MiB = 2.9 MiB sddm-helper

3.0 MiB + 52.0 KiB = 3.1 MiB udevd

2.2 MiB + 1.0 MiB = 3.2 MiB panel-3-systray

2.6 MiB + 605.5 KiB = 3.2 MiB ntpd

2.3 MiB + 1.0 MiB = 3.3 MiB xfce4-session

2.5 MiB + 1.3 MiB = 3.8 MiB sddm

3.4 MiB + 725.5 KiB = 4.1 MiB colord

3.4 MiB + 771.0 KiB = 4.1 MiB cupsd

2.9 MiB + 1.2 MiB = 4.2 MiB xfsettingsd

4.9 MiB + 299.0 KiB = 5.2 MiB NetworkManager

688.0 KiB + 4.9 MiB = 5.5 MiB php-fpm (3)

5.9 MiB + 287.5 KiB = 6.2 MiB polkitd

4.1 MiB + 2.1 MiB = 6.2 MiB gksu

4.7 MiB + 3.1 MiB = 7.8 MiB polkit-gnome-authentication-agent-1

7.9 MiB + 47.5 KiB = 8.0 MiB dhclient

4.5 MiB + 4.1 MiB = 8.5 MiB kuiserver5

4.4 MiB + 4.2 MiB = 8.6 MiB klauncher

7.3 MiB + 1.8 MiB = 9.1 MiB xfce4-panel

9.1 MiB + 2.6 MiB = 11.7 MiB xfce4-terminal

9.3 MiB + 2.7 MiB = 12.0 MiB panel-5-whisker

8.7 MiB + 3.4 MiB = 12.1 MiB pulseaudio (2)

10.6 MiB + 2.0 MiB = 12.6 MiB xfce4-xkb-plugin

10.0 MiB + 2.9 MiB = 12.9 MiB Thunar

8.1 MiB + 6.5 MiB = 14.6 MiB xfce4-power-manager

13.4 MiB + 1.3 MiB = 14.7 MiB applet.py

14.4 MiB + 1.9 MiB = 16.4 MiB nginx (9)

9.4 MiB + 8.2 MiB = 17.7 MiB kactivitymanagerd (2)

13.4 MiB + 5.8 MiB = 19.2 MiB xfwm4

17.8 MiB + 5.2 MiB = 23.0 MiB xfdesktop

26.9 MiB + 10.0 MiB = 36.9 MiB Xorg

117.7 MiB + 586.0 KiB = 118.3 MiB mysqld

---------------------------------

455.2 MiB

=================================

Xfce is even more lightweight than it used to be, despite migrating to GTK+ 3, or perhaps due to it. When adding up only the Xfce components in the list, the total sum received is then ~123.7 MiB, in comparison to the result I got previously ~287 MiB – that’s a huge difference, however, do keep in mind that my Gentoo system has changed with time as well since last time when I reviewed version 4.12.

If we delve into the specifics behind the numbers though, we can see that the same components from the previous review have reduced their weight from version 4.12 to 4.13, for instance: xfwm4 (4.12) weighed 21.4 MiB while xfwm4 (4.13) weighs 19.2 MiB – this indicates that Xfce has indeed reduced in size however, not necessarily a dramatic reduction as depicted by the total sum of Xfce components.

For reference, I’ve also measured RAM usage of my other desktop environment (on the same system) – KDE, so you can see where is Xfce located in terms of resources usage relative to other D.E.s

Private + Shared = RAM used Program 108.0 KiB + 20.0 KiB = 128.0 KiB start_kdeinit

144.0 KiB + 28.5 KiB = 172.5 KiB init

140.0 KiB + 78.0 KiB = 218.0 KiB ck-launch-session

644.0 KiB + 51.0 KiB = 695.0 KiB crond

276.0 KiB + 447.0 KiB = 723.0 KiB startkde

532.0 KiB + 316.5 KiB = 848.5 KiB kwrapper5

660.0 KiB + 217.5 KiB = 877.5 KiB dconf-service

848.0 KiB + 51.0 KiB = 899.0 KiB sshd

676.0 KiB + 276.0 KiB = 952.0 KiB gconfd-2

940.0 KiB + 49.5 KiB = 989.5 KiB gpg-agent

788.0 KiB + 217.0 KiB = 1.0 MiB dbus-launch (2)

1.0 MiB + 39.0 KiB = 1.0 MiB mount.ntfs-3g

900.0 KiB + 154.5 KiB = 1.0 MiB sudo

976.0 KiB + 268.0 KiB = 1.2 MiB console-kit-daemon

804.0 KiB + 463.5 KiB = 1.2 MiB bash

976.0 KiB + 331.0 KiB = 1.3 MiB agetty (6)

1.1 MiB + 307.5 KiB = 1.4 MiB upowerd

1.6 MiB + 351.0 KiB = 2.0 MiB dbus-daemon (3)

1.5 MiB + 835.5 KiB = 2.3 MiB sddm-helper

2.0 MiB + 339.5 KiB = 2.3 MiB udisksd

1.8 MiB + 908.5 KiB = 2.7 MiB sddm

2.0 MiB + 903.0 KiB = 2.9 MiB gconf-helper (3)

1.9 MiB + 986.0 KiB = 2.9 MiB kscreen_backend_launcher

2.0 MiB + 1.1 MiB = 3.0 MiB backlighthelper

568.0 KiB + 2.5 MiB = 3.1 MiB kdeinit5

3.0 MiB + 56.0 KiB = 3.1 MiB udevd

2.7 MiB + 633.5 KiB = 3.3 MiB ntpd

3.3 MiB + 624.0 KiB = 3.9 MiB cupsd

3.4 MiB + 960.5 KiB = 4.3 MiB colord

4.9 MiB + 443.0 KiB = 5.4 MiB NetworkManager

692.0 KiB + 4.9 MiB = 5.5 MiB php-fpm (3)

3.8 MiB + 2.0 MiB = 5.7 MiB xembedsniproxy

4.0 MiB + 2.1 MiB = 6.0 MiB kuiserver5

3.8 MiB + 2.2 MiB = 6.1 MiB klauncher

6.0 MiB + 421.5 KiB = 6.4 MiB polkitd

4.2 MiB + 2.3 MiB = 6.5 MiB polkit-kde-authentication-agent-1

4.4 MiB + 2.3 MiB = 6.7 MiB kaccess

5.0 MiB + 2.0 MiB = 7.0 MiB kglobalaccel5

5.0 MiB + 2.6 MiB = 7.6 MiB kactivitymanagerd

5.1 MiB + 2.8 MiB = 7.9 MiB org_kde_powerdevil

7.9 MiB + 52.5 KiB = 8.0 MiB dhclient

5.1 MiB + 3.6 MiB = 8.6 MiB ksmserver

12.1 MiB + 3.6 MiB = 15.7 MiB pulseaudio (3)

9.3 MiB + 6.5 MiB = 15.8 MiB kded5

14.4 MiB + 1.9 MiB = 16.4 MiB nginx (9)

12.1 MiB + 6.8 MiB = 18.9 MiB konsole

15.4 MiB + 3.6 MiB = 19.0 MiB Xorg

18.0 MiB + 9.9 MiB = 27.9 MiB krunner

26.9 MiB + 9.6 MiB = 36.5 MiB kwin_x11

75.0 MiB + 14.8 MiB = 89.8 MiB plasmashell

117.8 MiB + 553.0 KiB = 118.4 MiB mysqld

---------------------------------

496.0 MiB

=================================

The total amount of RAM usage by KDE components amounts to ~237.6 MiB.

You can see that, all in all, both desktop environments are very low on resources in general, Plasma however offers much more features than Xfce, so therefore the difference is reasonable.

Xfce 4.13 Finally Eliminates Screen Tearing

In my previous review, one of the main gripes I had with Xfce was the horrible screen tearing experienced by users of Nvidia graphics card by default. As I mentioned, xfwm – Xfce’s window manager – lacked a proper implementation of Sync to Vblank (Vsync) property, thus as a way of circumventing that issue, users of Nvidia drivers needed to resort to using Compton instead of Xfce’s default window manager, or use other types of hacks.

Fortunately however, as my Gentoo system now shows, proper support for opengl technology was finally implemented and now screen tearing is no longer an issue for Nvidia users, even when the Sync to Vblank option is turned off in Xfce’s Settings.

xfdashboard Adds GNOME Like Overview

A new plugin that entered Xfce’s inventory recently, called xfdashboard, is bringing GNOME Shell like overview to Xfce (without the slick animations though).

This plugin is extremely useful especially when used in conjunction with HotCorner plugin, as it lets users access an integral feature, part of any modern desktop environment – ability to preview windows feature.

Nevertheless, both of these plugins are still very new so they might not yet be available on all major Linux distributions.