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.