I've been trying out the latest Xfce desktop environment for a bit. Things I like:
- usable out-of-box with sensible defaults
- easy to configure and customize
- modular components that can be swapped out for alternatives, or used in non-Xfce desktops
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.
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).
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
(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
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 ...
- download Nordic theme, install in
~/.themes, and select Nordic in Applications->Settings->Appearance->Style
- download Flat Remix icon theme, install in
~/.icons, run the command ...
$ sudo update-icon-caches /home/your_username/.icons/*
... and select Flat-Remix-colour in Applications->Settings->Appearance->Icons
- download Nord-xfce-terminal, install in
~/.local/share/xfce4/terminal/colorschemes, and select Nord in terminal's Edit->Preferences->Colors->Load Presets...
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
[greeter] background=/usr/share/pixmaps/my_image.jpg theme-name=Adwaita-dark
Note: Background image can't be located in a home directory.
Set a user avatar by saving a 96x96 image to
/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
[Seat:*] #autologin-user= #autologin-user-timeout=0
... uncomment to enable, adding the username to autologin-user=.
To source the contents of ~/.profile when using LightDM, create ~/.xsessionrc with the entry ...
Plymouth presents a graphical display while the system boots. A good complement to LightDM.
/etc/default/grub to set the splash option and the display resolution (example: 1366x768) ...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_GFXMODE=1366x768
Save changes, then
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
» Later: Rearrange LVM after installing Linux Mint
« Earlier: Transfer files between phone and computer via USB