Last updated on 2021-05-09 Tagged under  # linux

My Xfce

I've been trying out the latest Xfce desktop environment for a bit. Things I like:

That last point is what led me to try Xfce in the first place. I've successfully used Xfce's power manager for years in Openbox. The great thing about Xfce is that, for a little extra overhead, you get all the flexibility of a window manager like Openbox plus all the added perks of a full desktop. Xfce can be configured to provide a comfortable migration path for new Linux users coming from Windows or Mac OS, or customized to the nth degree for longtime users.

Here are some things I do with Xfce (v4.16) running on Debian Bullseye.


On a new machine, I like to start with a minimal install of Debian, then add Xfce afterwards.

A simple ...

$ sudo apt install task-xfce-desktop

... will pull in the complete bells-and-whistles desktop.

Plus a few desktop extras that I want ...

$ sudo apt install diodon fonts-firacode lightdm-gtk-greeter package-update-indicator plymouth-themes qt5-style-plugins wmctrl xdotool  

Login, then go to Applications->Settings->Settings Manager to configure the desktop.

Startup applications

Add applications to run at startup in Applications->Settings->Session and Startup->Application Autostart.

I like to have a terminal immediately available after login, so I add the command xfce4-terminal --maximize to the list.

Another useful application to launch at startup is diodon (clipboard).

Keyboard shortcuts

Customize keyboard shortcuts for managing windows, simple tiling, applications, switching desktops, and whatnot in Settings->Keyboard and Settings->Window Manager->Keyboard.

At home I connect my laptop to an external monitor that I use as my primary display. Xfce doesn't have a keyboard shortcut for moving windows between the two displays, so I use this movescreen.py script to provide that function, and set a command shortcut in Applications->Settings->Keyboard->Application Shortcuts.

Xfce-terminal binds F1 and F11 to help and fullscreen, respectively, which can make using terminal programs like htop difficult. To disable those shortcuts, edit ~/.config/xfce4/terminal/accels.scm ...

(gtk_accel_path "<Actions>/terminal-window/fullscreen" "")
(gtk_accel_path "<Actions>/terminal-window/contents" "")

Disable hidden scrollbars

Some (GTK) desktop windows have scrollbars that disappear when the mouse is not moving. If you want scrollbars to always remain visible, add the setting GTK_OVERLAY_SCROLLING=0 to /etc/environment.


Add, remove, arrange the components of the xfce-panel in Applications->Settings->Panel.

In addition, I set the tasklist buttons to expand into available space, and change the styling of other buttons, by creating the file ~/.config/gtk-3.0/gtk.css.



Xfce is styled using themes, and third-party themes can be installed in ~/.themes. Sometimes with dramatic results.

I like the Nord colour palette. To style Xfce with this look ...

$ sudo update-icon-caches /home/your_username/.icons/*

... and select Flat-Remix-colour in Applications->Settings->Appearance->Icons

I like Fira Code fonts for the terminal. Select Fira Code Regular in Edit->Preferences->Appearance-Font.

For a uniform look between GTK and QT applications, install qt5-style-plugins, and add to ~/.profile ...



Not part of Xfce per se, LightDM is a display manager + login greeter for desktops. Select a background wallpaper and theme in /etc/lightdm/lightdm-gtk-greeter.conf ...


Note: Background image can't be located in a home directory.

Set a user avatar by saving a 96x96 image to ~/.face.

Both in /etc/lightdm/lightdm.conf and /usr/share/lightdm/lightdm.conf.d/01_debian.conf, set greeter-hide-users=false.

Restart lightdm ...

$ sudo systemctl restart lightdm.service

Since I enter a passphrase at boot time to unlock encrypted storage, I enable auto-login into Xfce to skip entering a second passphrase.

Look up these lines in /etc/lightdm/lightdm.conf ...


... uncomment to enable, adding the username to autologin-user=.


To source the contents of ~/.profile when using LightDM, create ~/.xsessionrc with the entry ...

. $HOME/.profile


Plymouth presents a graphical display while the system boots. A good complement to LightDM.

Modify /etc/default/grub to set the splash option and the display resolution (example: 1366x768) ...


Save changes, then sudo update-grub.

I like Circle from this Plymouth theme collection. To use this theme, download and unpack the collection, then ...

$ sudo cp -r circle/ /usr/share/plymouth/themes
$ sudo plymouth-set-default-theme -R circle

Good stuff!

» Later: Rearrange LVM after installing Linux Mint

« Earlier: Transfer files between phone and computer via USB