Replacing XFCE's default components with minimal alternatives

4 min, 665 words

Kenneth Dodrill published on

Tags: Linux


Replacing XFCE's default components with minimal alternatives

I think XFCE is one of my favorite DE's. However, some of the components that are built-in to it aren't great and cause issues.

One issue in particular that I had was XFCE's lock screen. If I turned off my displays after locking, it would show my desktop when turning them back on (I mean...it's a lock screen. It shouldn't do that.), but the screen was not responsive because (I assume) the lock screen was still in place, it was just not shown. Typing my password into the void still worked, and successfully unlocked my computer. Obviously this is a security problem. Even after the unlock, graphical issues persisted which led to a reboot each time.

Another problem is the compositor. It's pretty slow.

Who this guide is for

This guide is mainly for me, so I can come back to these notes if I ever need to reinstall my system. However, I do believe it provides a great XFCE experience, one that many others could enjoy.

Required packages

We are going to need all of the packages that we will replace XFCE's components with. These are my personal preferences - if you have a different package that you like more than one of these then absolutely use that.

xbps-install picom slock plank ulauncher

picom is our new compositor. This is a fork of compton, and is the currently developed version.

slock is a simple lock screen. It does nothing else except lock your screen, and works perfectly with multiple monitors.

plank is a dock. It is macOS-esque. This one is optional, as I think the XFCE panel as a dock is actually pretty good.

ulauncher is a program launcher. I love this package - you can configure it easily and it has a lot of extensions if you want them.

Replacing the default compositor with picom

picom is going to give you more performance and make everything look a lot smoother. To replace the default compositor, go into XFCE's graphical settings manager. In Window Manager Tweaks > Compositor, uncheck "Enable display compositing". Now issue this command:

cp /usr/share/examples/picom/picom.sample.conf $HOME/.config/picom.conf

You can play around with these settings to get things working right. Now go back to the root level of the settings manager. In Session and Startup > Application Autostart, you can enable picom to load on logging in.

Replacing the default lock screen with slock

This one is slightly more complicated, as there a lot of lock screen settings in XFCE that we need to disable to get things working correctly. First, we want to kill the current lock screen and screensaver:

pkill xscreensaver
pkill xflock4
  • In the settings manager go to Session and Startup > Application Autostart. Remove or uncheck anything related to xflock4 and xscreensaver.
  • Go to Screensaver.
    • In the Screensaver tab, turn off both options at the bottom.
    • In the Lock Screen tab, turn off Enable Lock Screen.
  • Go into Keyboard > Application Shortcuts and replace the xflock4 shortcut with slock.
  • Finally, go into Power Manager > System and uncheck "Lock screen when system is going to sleep".

Setting up plank and ulauncher

For our last two packages, we just need to enable these on system startup. Both of them can be configured in their respective settings menu.

A few more tweaks

To end this, here are some tweaks that I find essential.

  • Turn off mouse acceleration. In Mouse and Touchpad > Devices, select your mouse (it may accidentally have something else selected). Under "Pointer Speed", drag "Acceleration" all the way to zero.
  • Do not raise windows when any mouse button is pressed. In Window Manager Tweaks > Accessibility, uncheck "Raise windows when any mouse button is pressed".
  • Unset the key that is used to grab and move windows. In Window Manager Tweaks > Accessibility, change the "Key used to grab and move windows" option to "None". Programs that use the "Alt" key will greatly benefit from this now disabled option.