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:
- Installing a #Display server
- #Display manager setup for autologin
- Customizing the #Desktop environment
- Setting up a #Screen lock
- #File manager extensions
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:
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:
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
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):
#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
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.
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.
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:
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.
-
Desktop Environment in the ArchWiki ↩︎
-
UNIX philosophy in the Wikipedia ↩︎
-
X Window System in the ArchWiki ↩︎
-
Terminal emulator in the Wikipedia ↩︎