Xfce desktop

Xfce desktop

Xfce is a lightweight but full-featured Desktop Environment1 (DE) embodying the traditional UNIX philosophy2 of modularity and re-usability. Every component is packaged separately. For this reason, it is a perfect starting point to create a streamlined system of my own.

This guide describes the following tasks to install and setup Xfce:

  1. Installing a #Display server
  2. #Display manager setup for autologin
  3. Customizing the #Desktop environment
  4. Setting up a #Screen lock
  5. #File manager extensions
ℹ️
Some of my instructions are specific to the hardware found in the laptop model Dell Latitude. If you use different desktop or laptop hardware, you should refer to the brand in the Category:Laptops and also read the kernel module page to check for hardware support.

Display server

Although Wayland3 aims to become the successor of the X Window System4 and many technical differences between Wayland and X may lead to choose Wayland over Xorg, the Xfce DE is not yet compatible with it (see Wayland roadmap).

I install the Xorg server and xinit. Additionally, I like to use xkill for killing desktop applications graphically.

sudo pacman -S xorg-server xorg-xinit xorg-xkill

I set a German keymap using the following commands:

sudo localectl --no-convert set-keymap de-latin1-nodeadkeys
sudo localectl --no-convert set-x11-keymap de pc105 deadgraveacute

This will create a /etc/X11/xorg.conf.d/00-keyboard.conf file containing:

/etc/X11/xorg.conf.d/00-keyboard.conf
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
        Option "XkbModel" "pc105"
        Option "XkbVariant" "deadgraveacute"
EndSection

Additionally, I append the following to line to the /etc/environment file to globally set the LANG variable using PAM:

/etc/environment
echo "LANG=de_DE.utf8" | sudo tee -a /etc/environment

Display manager

A lightweight and independent display manager that provides automatic login or autologin is LightDM. I install the package lightdm:

sudo pacman -S lightdm
⚠️
Enabling autologin removes session authentication of the DE for convenience in a single-user scenario. This doesn’t work for multi-user setups. The access is still secured by disk encryption setup in the system preparation guide and a #Screen lock that is described later.

I enable the autologin feature by editing the /etc/lightdm/lightdm.conf file: In the [Seat:*] section, I uncomment the following lines while providing the values xfce (DE) and thisven (user):

/etc/lightdm/lightdm.conf
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#autologin-user-timeout=0
#autologin-user=thisven
#autologin-session=xfce

I need to create a autologin group and add my username to it:

sudo groupadd -r autologin
sudo gpasswd -a thisven autologin

I enable LightDM’s Systemd service to use the configured Xfce autologin at boot:

sudo systemctl enable lightdm.service

Desktop environment

For the Xfce installation I use the package group xfce4 and the xfce4-goodies tools:

sudo pacman -S xfce4 xfce4-goodies
⚠️
Keep attention at a dialog asking to opt for a sound server. Choose the pipewire-jack package to install PipeWire with support for the JACK Audio Connection Kit (JACK) described in pro audio.

Now it’s time to reboot and automatically login into a Xfce session as configured in the previous section.

sudo reboot

Xfce Terminal

To use the advantages of the DE after rebooting and entering Xfce I like to use a terminal emulator5 provided for any further command-line interaction. The Xfce Terminal can be found in the applications menu or is invoked through the application finder (shortcut: <Ctrl>+<F2>) by using the command:

xfce4-terminal

Whisker menu

I prefer the Whisker menu over the Applications Menu, as it provides a search bar. To activate it I open the panel preferences and add it to a panel of my choice (per default this is most probably Panel 1) in the Items tab.

NetworkManager applet

To manage NetworkManager connections graphically, I install the package network-manager-applet and start it in the background using the nm-applet & command:

sudo pacman -S network-manager-applet
nm-applet &

Using the nm-applet I can easily create additional connections as needed.

Theming

To apply a built-in dark theme I open the Xfce settings and set Adwaita dark in the Style tab and to use a window manager theme that is simple and slim I prefer Totem. It is configured in the Style tab of the window manager preferences.

Icons

The Papirus icon theme provides some icon sets for dark and light themes. I install the package papirus-icon-theme:

sudo pacman -S papirus-icon-theme

In the Icons tab of the appearance settings I set Papirus-Dark to change the icons theme.

ℹ️
Close and re-open the settings manager window after the installation of icon themes, fonts, etc. to refresh item lists.

Fonts

The ttf-liberation fonts aim at metric compatibility with de facto standard but non-libre fonts such as Arial, Courier New, and Times New Roman as known from other operating systems to provide some basic interoperability. For improved readibility in terminals I use ttf-inconsolata. These libre font families are provided in TrueType6 format and installed via:

sudo pacman -S ttf-dejavu ttf-inconsolata ttf-liberation

I change the fonts settings to use the Liberation Sans Regular with a font size of 13 as the Default Font and Inconsolata Regular with the same font size as the Default Monospace Font. Anti-aliasing may improve the smoothness of character edges, especially on TFT LCD7 displays. I use the hinting setting Strong and set the subpixel order to RGB.

ℹ️
Optimal hinting and subpixel order settings may depend on the fonts you use. The font configuration article in the ArchWiki supports in the investigation.

Undesired default applications

Afterwards I remove undesired Xfce applications and their dependencies, as I will install more appealing substitutes in the later guides:

sudo pacman -Rss parole ristretto xfburn

Screen lock

To lock the screen the xfce4-screensaver has been already been installed as a dependency of the xfce4-goodies package and it does a sufficient job. Additionally, I can manually lock the screen with the shortcut <Ctrl>+<Alt>+<l> at any time.

To block TTY access and prevent a user from killing the Xorg server I append the following lines to the /etc/X11/xorg.conf file, which has been automatically created during the Xorg installation in the #Display server section:

/etc/X11/xorg.conf
Section "ServerFlags"
        Option "DontVTSwitch" "True"
        Option "DontZap"      "True"
EndSection

File manager extensions

Thunar is a fast and easy-to-use file manager in Xfce. Its clean interface may appear to lack some funcionanlity, but this is an intended design decision as it allows to add more extensions through plugins and addons.

Volume management

The first plugin I want to add is the Thunar Volume Manager to mount and unmount removeable media. I Install the thunar-volman package, the gvfs package for the Gnome Virtual File System (GVFS) and udiskie to manage disks greater than 1 TB:

sudo pacman -S thunar-volman gvfs udiskie

In the Application autostart tab of Session and Startup inside Preferences I add an entry for the command thunar --daemon to configure Thunar for starting in daemon mode. Another entry contains the command udiskie -2 & to allow the automounting of large external drives.

Archives

I install the xarchiver and thunar-archive-plugin packages to do archive management within Thunar:

sudo pacman -S thunar-archive-plugin xarchiver

The command line tools for the popular non-free archive formats 7zip, RAR, and ZIP extent xarchiver’s compatibility:

sudo pacman -S p7zip unzip unrar zip

Network shares

Thunar can browse remote locations out-of-the-box using GVFS by opening an URI scheme, such as davs:// and sftp://, with <Ctrl>+<l>. However, I have to install the packages gvfs-smb and sshfs to access smb:// and ssh:// locations. For NFS there is no URI scheme, but mounting it using the /etc/fstab file is provided by Thunar.

Known bugs

Sometimes the background image or color is missing and the right click menu doesn’t appear. This is fixed by running xfdesktop in a terminal as described at Fosslicious:

xfdesktop &

Proceed with maintenance and peripherals or for skip to the Multimedia and web use case setting up multimedia capabilities and Internet technologies.


  1. Desktop Environment in the ArchWiki ↩︎

  2. UNIX philosophy in the Wikipedia ↩︎

  3. Wayland in the ArchWiki ↩︎

  4. X Window System in the ArchWiki ↩︎

  5. Terminal emulator in the Wikipedia ↩︎

  6. TrueType in the Wikipedia ↩︎

  7. TFT LCD in the Wikipedia ↩︎

Last updated on