The “joys” of systemd in Fedora XFCE
No, I am not part of the religious “
systemd is evil” war. I won’t be using Devuan, and the fact that MX Linux defaults to
sysvinit is actually a disadvantage of that distro (yes, I know
systemd can be enabled, but I’m not sure all their tweaking tools would still work properly). Some third-party software actually requires
systemd, and that’s a fact. Why aren’t people boycotting e.g. Wayland instead of
systemd? This being said, I’m puzzled by a bug in Fedora.
The simple differences
systemd being used in most distros for some time now, some of the advice that can be found on the Internet doesn’t necessarily work in Fedora 35.
Say, Fedora has this annoying system speaker beep in many apps, and even upon selecting e.g. logout from the menu. To make
xset b off permanent, I tried and noticed that neither of
echo xset b off >> ~/.xession
echo xset -b >> ~/.xession
work. Apparently, Fedora disregards
~/.xession (but during the current session, running
xset b off seemed to work).
What worked was to add
blacklist pcspkr blacklist snd_pcsp
or (less elegantly) even to
Next task: make Fedora XFCE enable CTRL+ALT+Backspace to kill X. Adding
/etc/default/keyboard was totally useless.
What worked was to edit this file
in the area
Section "InputClass" Identifier "system-keyboard"
and, in my case, replace
Option "XkbOptions" "grp:lctrl_lshift_toggle"
Option "XkbOptions" "grp:lctrl_lshift_toggle,terminate:ctrl_alt_bksp"
The tougher nut: autologin in XFCE
The big question was: how to enable autologin in LightDM? Anaconda was told to do that for me, but it didn’t work! (Adding my user to the
autologin group, like in Arch, wasn’t enough.)
In two different Fedora 35 XFCE installations, what the installer did for me was to enable this line
in the file
In different tutorials and documentations, you’d be told to edit the file
/etc/lightdm/lightdm.conf and to put something like this:
[Seat:*] autologin-user=username autologin-session=/usr/share/xsessions/xfce.desktop
where the session was selected from
/usr/share/wayland-sessions/*.desktop. And no, as I wasn’t using GNOME, nor
gnome-keyring, there was no need to set up a blank
In other distros, you might be told to edit or create
/etc/lightdm/lightdm.conf, and to make sure you also have
The contrary might be true sometimes, like in this 2019 Fedora Bug 1733696 – The autologin does not work, where the fix was to set this timeout to 5 seconds!
Note that the order in which the config files are read is:
To find the current configuration, together with the file from which each value has originated, run
lightdm --show-config. Here’s what I got in my second installation, after everything I tried to make it work:
$ lightdm --show-config [Seat:*] J allow-guest=false M session-wrapper=/etc/X11/xinit/Xsession O xserver-command=X -core -noreset P greeter-session=lightdm-gtk-greeter P autologin-user=ludditus P autologin-user-timeout=5 P autologin-session=/usr/share/xsessions/xfce.desktop [LightDM] K minimum-vt=1 L run-directory=/run/lightdm N user-authority-in-system-dir=true Sources: I /usr/share/lightdm/lightdm.conf.d/50-backup-logs.conf J /usr/share/lightdm/lightdm.conf.d/50-disable-guest.conf K /usr/share/lightdm/lightdm.conf.d/50-minimum-vt.conf L /usr/share/lightdm/lightdm.conf.d/50-run-directory.conf M /usr/share/lightdm/lightdm.conf.d/50-session-wrapper.conf N /usr/share/lightdm/lightdm.conf.d/50-user-authority-in-system-dir.conf O /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf P /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf I /usr/share/lightdm/lightdm.conf.d/50-backup-logs.conf J /usr/share/lightdm/lightdm.conf.d/50-disable-guest.conf K /usr/share/lightdm/lightdm.conf.d/50-minimum-vt.conf L /usr/share/lightdm/lightdm.conf.d/50-run-directory.conf M /usr/share/lightdm/lightdm.conf.d/50-session-wrapper.conf N /usr/share/lightdm/lightdm.conf.d/50-user-authority-in-system-dir.conf O /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf P /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf Q /etc/lightdm/lightdm.conf
For some strange reason, it has decided to read each
systemd-specific file twice. Is that a bug, or … a feature?
Well, the problem is… it still didn’t automatically login, for it still prompted me to select a session! No, not the session as in “XFCE or other DE” (I only have XFCE on the system, so the
autologin-session is not really necessary), but the XFCE session (apps and windows):
That one is saved here:
But no, there isn’t a way to specify
xfce4-session-ludditus:0 someplace; instead, what I had to do was to make sure the option inappropriately labeled “Display chooser on login” is disabled. I didn’t know what kind of chooser (“Display the list of saved sessions” would have been rocket science, I reckon) was it, so I had it enabled:
The autologin requires to have it disabled:
What was the bug, then?
First, the Arch advice was correct: if during the setup, you don’t tell Anaconda to add your user to the
autologin group, it won’t do it for you, despite having been told you want to login automatically! (Anaconda is a true piece of crap.) In such a case, something like this is required for the autologin to work:
sudo usermod -a - G autologin ludditus
Of course, adapt it to your username.
What’s even worse, that
autologin-user-timeout of 5 seconds is really necessary, otherwise, upon a fresh reboot, it will ask for a password! (Subsequent logins after e.g. killing X would typically work.) In my case, a value of 3 seconds was enough:
in the file
This is not normal, though. And they happily closed the Fedora Bug 1733696 – The autologin does not work, without taking any action!