December 14, 2016

Fedora 24 and XFCE

The XFCE desktop used to be an option at install time, but apparently no longer. So when I did a full fresh install of Fedora 24, I chose "Mate", which is OK, but not as nice as XFCE. Now I am discovering that XFCE is an option, but I have to go through the total hell of changing my desktop environment. In particular, Mate has some kind of mouse focus bug when I change desktops that is always infuriating me.

Gnome 3 and is it time to abandon Fedora

No sane person who actually wants to get work done chooses Gnome.

The big mystery is why Fedora is in bed with Gnome and so willing to go down with the ship. They have provided Fedora "spins", but there is some inherent laziness (or maybe a "we know what is best for you" attitude that makes using Gnome the path of least resistance.

I keep giving serious thought to abandoning Fedora for Debian (or Ubuntu) if they have user friendly mainstream support for XFCE.

Take a look at the alternatives

Apparently Mate and Cinnamon are both forks of Gnome 2. This is a solid and good idea. I have no idea why there are two. I have been using Mate and am mildly annoyed with the mouse focus bug that affects me every day of the week. People say that Cinnamon forces you to use a graphics card with hardware acceleration to get "cool effects" that I could frankly care less about. I just want to get work done for crying outloud!

There is of course KDE, but I am not interested in that (and apparently it had serious bugs when Fedora 24 first came out. I am looking for something stable and conservative, not the latest cool animation features.

XFCE however is not a fork of Gnome 2, does not require hardware acceleration, and used to please me very well with no bugs before the recent Fedora install shoved me away from it. Apparently though Fedora has not abandoned XFCE, though they have certainly done nothing whatever to make it easy to switch desktops.

Figure out how to switch to XFCE from Mate

The first thing is to install the packages.
dnf install @xfce-desktop-environment
This drags in 45 packages (which is encouraging frankly). The claim is:
After installing Xfce you can use the "Session" menu to choose an Xfce login instead of a GNOME or KDE login. Sometimes you need to reboot the system.
Sadly, this simply does not work. So we are faced with setting aside a day to beat my head against the wall and figure out how to make XFCE my default desktop. Let's use "ps" to do some recon:
ps -alx | grep dm
4     0  1074     1  20   0 346104  6104 poll_s SLsl ?          0:00 /usr/sbin/lightdm
4     0  1080  1074  20   0 638816 97928 -      Rsl+ tty1      45:30 /usr/libexec/Xorg -background none :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch
4     0  1131  1074  20   0 283292  8496 wait   Sl   ?          0:00 lightdm --session-child 12 19

ps -alx | grep mate
0  1004  1757  1512  20   0 684552 87376 poll_s Sl   ?         24:01 mate-terminal

ps -alx | grep inna
4  1004  1199  1131  20   0 456984 21328 poll_s Ssl  ?          0:02 cinnamon-session --session cinnamon
1  1004  1350  1199  20   0  51316   580 poll_s Ss   ?          0:03 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "cinnamon-session-cinnamon"
0  1004  1400  1199  20   0 1127060 51804 poll_s Sl  ?          1:29 /usr/libexec/cinnamon-settings-daemon
0  1004  1473  1199  20   0 217620 27824 wait   S    ?          0:00 /usr/bin/python3 /usr/bin/cinnamon-launcher
0  1004  1512  1473  20   0 1814160 433292 -    Rl   ?        121:23 cinnamon --replace
0  1004  1537  1199  20   0 445620 28492 poll_s Sl   ?          0:02 /usr/bin/python3 /usr/bin/cinnamon-killer-daemon
0  1004  1750  1199  20   0 681764 45576 poll_s Sl   ?          0:14 cinnamon-screensaver

ps -alx | grep X
4     0  1080  1074  20   0 640428 99080 poll_s Ssl+ tty1      45:33 /usr/libexec/Xorg -background none :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch

ps -alx | grep fce
-------------- nothing !!
This is somewhat instructive. The fact that I am running lightdm rather than gdm may explain why I don't get a session menu. I could either switch to gdm or figure out how to get an xfce session while running lightdm.

There is talk about X versus Wayland and the statement is made that xfce does not run under Wayland yet. This is worrisome because Fedora seems to be crazy about Wayland. This makes me think I should stick with lightdm and figure out how to make it run xfce.

Look at all that cinnamon stuff, no telling what that is all about.

Dump lightdm for gdm

Ultimately this is caving in to the Fedora way, but gets the job done. I spent a little time trying to learn about lightdm, and perhaps this could be made to work, but I simply gave up. I have other things to do. There is a thing called "dm-tool" that screws with lightdm:
dm-tool list-seats
Seat0
  CanSwitch=true
  HasGuestAccount=false
  Session0
    UserName='tom'
The general way to switch from lightdm (which is usually used with xfce) to gdm is
systemctl disable lightdm.service
systemctl disable gdm.service
However people say that once you switch from lightdm to gdm you get an error trying to switch back. Sounds like the usual Fedora/Gnome conspiracy. Ultimately though, this is what I had to do.
systemctl disable display-manager.service
dnf install gdm
systemctl start gdm.service
It seems that installing the gdm package did the "systemctl enable".

I fooled around a bit with the display manager disabled (I had to reboot to have this take effect). This gave me a text login, and when I tried typing "xfce4-session", it told me "cannot open display" (The X xerver was not running).

Once we have gdm running, there is indeed a gear thing that brings up a menu of various desktop flavors. And once we select XFCE, it sticks with it, so I am satisfied.


Have any comments? Questions? Drop me a line!

Adventures in Computing / tom@mmto.org