Xfce4 Desktop Environment Customization - NicoHood/NicoHood.github.io GitHub Wiki
This guide shows how you can customize your Xfce setup to look super fancy while it still runs on slower PC, such as the Raspberry Pi. Those settings are the one I prefer and use over the time. You can always use something different. Be careful when you use commands that require root privilegs.
I've mainly used the following packages for my modifications:
- Xfce
- Arc Theme
- Arc Icon Theme
- xfce4-whiskermenu-plugin
- plank
- compton
- elementary-icon-theme
- lightdm
- lightdm-locker
- glacier wallpaper
The software from the official sources mainly contains packages from xfce4, xfce4-goodies, optional dependencies and the other required software listed above. Not all packages of the xfce4 groups were used here.
# X-Org
# Also install special acceleration drivers for your graphics card:
# https://wiki.archlinux.org/index.php/xorg
PKG_DESKTOP+="xorg-server mesa mesa-libgl xf86-input-libinput xf86-video-fbdev "
PKG_DESKTOP+="xf86-video-vesa gstreamer-vaapi libva-mesa-driver "
PKG_DESKTOP+="libva-vdpau-driver libx264 "
# Intel
PKG_DESKTOP+="libva-intel-driver libvdpau-va-gl "
# Nvidia
PKG_DESKTOP+="xf86-video-nouveau mesa-vdpau "
# ATI
PKG_DESKTOP+="xf86-video-ati mesa-vdpau "
# AMD
PKG_DESKTOP+="xf86-video-amdgpu mesa-vdpau "
# Raspberry Pi
PKG_DESKTOP+="xf86-video-fbturbo-git "
# Virtual Box
PKG_DESKTOP+="linux-headers linux-lts-headers "
PKG_DESKTOP+="virtualbox-guest-utils virtualbox-guest-dkms "
# Lightdm
PKG_DESKTOP+="lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings "
PKG_DESKTOP+="accountsservice light-locker "
# Xfce4
PKG_DESKTOP+="exo garcon gtk-xfce-engine xfce4-panel xfwm4 xfce4-terminal "
PKG_DESKTOP+="xfce4-power-manager xfce4-session xfce4-settings xfconf "
PKG_DESKTOP+="xfdesktop compton "
# File manager
PKG_DESKTOP+="thunar thunar-volman thunar-archive-plugin tumbler file-roller "
PKG_DESKTOP+="catfish mlocate gvfs udisks udisks2 thunar-media-tags-plugin "
PKG_DESKTOP+="ffmpegthumbnailer freetype2 libgsf libopenraw poppler-glib "
# Sound
PKG_DESKTOP+="xfce4-mixer gstreamer0.10-good-plugins pulseaudio paprefs "
PKG_DESKTOP+="pavucontrol alsa-utils pulseaudio-zeroconf "
# (Fallback) Themes
PKG_DESKTOP+="arc-gtk-theme arc-icon-theme gnome-themes-standard gtk-engine-murrine elementary-icon-theme "
# Network
PKG_DESKTOP+="networkmanager network-manager-applet dnsmasq avahi nss-mdns "
# Plank dock
PKG_DESKTOP+="plank "
# Whiskermenu
PKG_DESKTOP+="xfce4-whiskermenu-plugin alacarte "
# Xfce4 panel plugins
PKG_DESKTOP+="nm-connection-editor xfce4-xkb-plugin xfce4-cpugraph-plugin "
PKG_DESKTOP+="xfce4-genmon-plugin xfce4-sensors-plugin xfce4-notes-plugin "
# Install other DE related tools/plugins (also see xfce4-goodies)
PKG_DESKTOP+="dconf-editor xdg-user-dirs xfce4-notifyd "
# Install the listed software
sudo pacman -S --needed ${PKG_DESKTOP}
Not all options can be set via command line or GUI. Sometimes you have to mix. On a clean install some commands might fail because no config file exists yet. Thanks why I've mainly focused on setting the settings via GUI only. The commands are just optional for legacy purposes, not all will work.
You might need to restart the session or PC that the changes take affect.
On the Raspberry Pi you first want to configure your monitor before you start
using the DE. This can be done via editing /boot/config.txt
. Important
settings are summarized below:
# General display setting
disable_overscan=1
hdmi_force_hotplug=1
disable_splash=1
# A higher color depth only increases the gpu mem by 4mb, also for kodi
# But the desktop backgrounds and web pages will look way better
# sudo /opt/vc/bin/vcdbg reloc
framebuffer_depth=32
framebuffer_ignore_alpha=1
# For more information visit:
# https://www.raspberrypi.org/documentation/configuration/config-txt.md
To make use of tools as tvservice
you can add /opt/vc/bin
to your $PATH.
# Global, all users
echo 'export PATH=${PATH}:/opt/vc/bin' | sudo tee -a /etc/bash.bashrc
# Current user only
echo 'export PATH=${PATH}:/opt/vc/bin' >> ~/.bashrc
# Try DE first to see if it works
sudo systemctl start lightdm.service
# Enable DE if it works and you want to start it at boot
sudo systemctl enable lightdm.service
- Use the default panel layout when starting xfce for the first time
- Go to
Settings->Panel
- Delete the bottom panel with
-
- Only for setups with more than two monitors:
- Select the top panel
- Go to
Display
- Set
Output
toauto
- Unlock the panel, move it to the desired monitor and lock again
- Go to
Settings->Panel->Items
- Add
whiskermenu
and remove the normalApplication menu
- Configure whisker menu (Select whiskermenu and click the edit button)
- Set
Appearance->PanelButton->Display
toIcon and title
- Set
Behavior->Menu
withSwitch categories by hovering
andPosition categories next to panel button
- Set
Commands->Lock Screen
tolight-locker-command -l
- Set
Commands->Switch Users
todm-tool switch-to-greeter
- Set
Commands->Edit Applications
toalacarte
- Disable
Commands->Edit Profile
-
Edit the
Action Buttons
entry inSettings->Panel->Items
-
Set
Appearance
toAction Buttons
and only checkLog Out...
-
Add
Keyboard Layouts
inSettings->Panel->Items
and set it totext
,small
,globally
-
Add
Power Manager Plugin
inSettings->Panel->Items
-
Add
CPU Graph
inSettings->Panel->Items
-
Configure CPU Graph (Select CPU Graph and click the edit button)
-
Pick the color of the task bar (
#2B2E37
) asBackground
-
Pick the close button color (
#CC575D
) asColor 1
-
In
Advanced
setWidth
to64
-
Set
Associated command
tognome-system-monitor
-
Only check the
show border
box and uncheck all other options -
Add
Notes
-
Configure Notes (Select Notes and click the edit button)
-
Set
Tabs position
toTop
-
Set
Background
toGTK+
-
Set
Font
toMonospace 10
- Download the wallpaper
- Copy the wallpaper to
/usr/local/share/backgrounds/xfce/
- Go to
Settings->Desktop
- Go to
Background
- Enable the wallpaper for every display
- Go to
Icons
- Set
Icon type
asNone
- Also disable all desktop menus in
Settings->Desktop->Menus
sudo install -Dm 644 glacier.jpg /usr/local/share/backgrounds/xfce/glacier.jpg
xfconf-query -c xfce4-desktop -p /desktop-icons/style -s 0
xfconf-query -c xfce4-desktop -s "/usr/local/share/backgrounds/xfce/glacier.jpg" \
-p /backdrop/screen0/monitor0/workspace0/last-image
Install the Arc gtk and icon theme. Arc theme and icons have to be installed
from AUR or from git. See the official build instructions for the most up to
date installation instructions. You can use elementary
as icon theme fallback.
- Go to
Settings->Window Manager
- Go to
Style
- Enable the theme (Arc-Darker)
- Go to
Settings->Appearance
- Go to
Style
- Enable the theme (Arc-Darker)
- Go to
Icons
- Enable the theme (Arc)
- Go to
Settings->LightDM GTK+ Greeter settings
- Select
Arc-Dark
asTheme
- Select
Arc
asIcons
- Select the
glacier.jpg
from/usr/local/share/backgrounds/xfce/
asImage
- Go to
Settings->Mouse and Touchpad
- Go to
Theme
- Select
elementary
as cursor - Set a user avatar
xfconf-query -c xfwm4 -p /general/theme -s "Arc-Darker"
xfconf-query -c xsettings -p /Net/ThemeName -s "Arc-Darker"
xfconf-query -c xsettings -p /Net/IconThemeName -s "Arc"
sudoedit /etc/lightdm/lightdm-gtk-greeter.conf
- Call
plank --preferences
to set theTransparent
theme - Go to
Settings->Session and Startup
- Go to
Application Autostart
- Add and entry
Plank
with the commandplank
- Start
plank
dconf write /net/launchpad/plank/docks/dock1/theme "'Transparent'"
mkdir -p ~/.config/autostart/
ln -s /usr/share/applications/plank.desktop ~/.config/autostart/plank.desktop
To configure some keys you first need to press the key, than the modifier.
For example first press Print
and then Alt
to trigger the setting.
Some other keys may only be available on keyboard with media keys.
- Go to
Settings->Keyboard
- Go to
Layout
- Make sure to
Use system defaults
and set the X11 keyboard config properly - Go to
Application Shortcuts
- Make sure your keyboard shortcut table looks like this:
Command | Shortcut |
---|---|
exo-open --launch FileManager | XF86Explorer |
exo-open --launch FileManager | Super+E |
exo-open --launch MailReader | XF86Mail |
exo-open --launch TerminalEmulator | Super+T |
exo-open --launch WebBrowser | XF86HomePage |
exo-open --launch WebBrowser | XF86WWW |
gnome-calculator | XF86Calculator |
light-locker-command -l | Ctrl+Alt+L |
xfce4-display-settings --minimal | Super+P |
xfce4-display-settings --minimal | XF86Display |
xfce4-popup-whiskermenu | Super+Space |
xfce4-screenshooter --fullscreen | |
xfce4-screenshooter --region | Ctrl+Print |
xfce4-screenshooter --window | Alt+Print |
xfdesktop --menu | Ctrl+Escape |
xset dpms force off | XF86Sleep |
xfconf-query -c xfce4-keyboard-shortcuts -p /commands/custom/Print \
-s "xfce4-screenshooter --fullscreen"
xfconf-query -c xfce4-keyboard-shortcuts -p /commands/custom/Super_L \
-s "xfce4-popup-whiskermenu"
xfconf-query -c xfce4-keyboard-shortcuts -p "/commands/custom/<Alt>F1" -r
xfconf-query -c xfce4-keyboard-shortcuts -p "/commands/custom/<Alt>F2" -r
xfconf-query -c xfce4-keyboard-shortcuts -p "/commands/custom/<Alt>F3" -r
# Enable DNS caching
sudo sed -i 's/^dns=.*/dns=dnsmasq/' /etc/NetworkManager/NetworkManager.conf
# Replace dhcpcd with NetworkManager
sudo systemctl disable dhcpcd
sudo systemctl stop dhcpcd
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
# Enable and start avahi name resolution
sudo systemctl start avahi-daemon.service
sudo systemctl enable avahi-daemon.service
sudo sed -i 's/^hosts: files*/hosts: files mdns_minimal [NOTFOUND=return]/' /etc/nsswitch.conf
-
Go to
Settings->Window Manager Tweaks
-
Go to
Cycling
-
Enable
Cycle through windows on all workspaces
-
Disable
Draw frame around selected windows while cycling
-
Go to
Accessibility
-
Disable
Use mouse wheel on tile bar to roll up the window
-
Go to
Workspaces
-
Disable
Use the mouse wheel on the desktop to switch workspaces
-
Go to
Compositor
-
Disable
Show shadows under dock windows
to remove the sticky horizontal line -
Enable
Synchronize drawing to the vertical blank
-
Or disable compositing and use compton instead:
-
Go to
Settings->Session and Startup
-
Go to
Application Autostart
-
Add entry:
Compton
,Compositor for X11
,compton
-
Start
compton
-
Go to
Settings->Window Manager->Style->Button layout
-
Set the window button layout to
close,minimize,maximize:title
-
Go to
Settings->Session and Startup
-
Go to
General
-
Disable
Automatically save session on logout
-
Go to
Session
-
Hit
Clear saved session
-
Go to
Settings->Workspaces
-
Set
Number of workspaces
to1
xfconf-query -c xfwm4 -p /general/cycle_workspaces -s true
xfconf-query -c xfwm4 -p /general/cycle_draw_frame -s false
xfconf-query -c xfwm4 -p /general/mousewheel_rollup -s false
xfconf-query -c xfwm4 -p /general/scroll_workspaces -s false
xfconf-query -c xfwm4 -p /general/show_dock_shadow -s false
xfconf-query -c xfwm4 -p /general/button_layout -s 'CHM|'
xfconf-query -c xfce4-session -p /general/AutoSave -s false
rm -f ~/.cache/sessions/xfce4-session-*
xfconf-query -c xfwm4 -p /general/workspace_count -s 1
-
Open Thunar
-
Go to
Edit->Preferences->Side Pane
-
Set all
Icon Size
toVery Small
-
Go to
Behavior
-
Enable
Middle Click->Open folder in new tab
-
Go to
Edit->Configure custom actions...
-
Add a search entry
Search
:Search this folder for files using Catfish
-
Install
catfish mlocate
Name | Command | File patterns | Appears if selection contains |
---|---|---|---|
Search | catfish --path=%f | * | Directories |
echo "Configuring file manager..."
xfconf-query -c thunar -p /shortcuts-icon-size -s "THUNAR_ICON_SIZE_SMALLEST"
xfconf-query -c thunar -p /tree-icon-size -s "THUNAR_ICON_SIZE_SMALLEST"
xfconf-query -c thunar -p /misc-middle-click-in-tab -s true
- Open a Terminal and go to
Edit->Preferences
- Go to
General
- Disable
Scroll single line using Shift-Up/-Down keys
- Disable
Scroll on output
- Go to
Appearance
- Set
Font
toMonospace 11
- Set the
Background
toTransparent background
withTransparency 0.95
- Go to
Colors
- Set
Background color
to the Arc window color (#2F343F) - Set
Cursor color
to the Arc text color (#AAAAAA) - Set
Tab activity color
to The Arc close button color (#FF5555) - You can also drop the colors from the
Palette
Add history search of the command line to the terminal. Type a previous command
start and then use shift
+ up
to search the history filtered with the
command start. Can also be set local for the user in ~/.inputrc
.
# Global, all users
echo '"\e[1;2A": history-search-backward' | sudo tee -a /etc/inputrc
echo '"\e[1;2B": history-search-forward' | sudo tee -a /etc/inputrc
# Current user only
echo '"\e[1;2A": history-search-backward' >> ~/.inputrc
echo '"\e[1;2B": history-search-forward' >> ~/.inputrc
There is no need in installing the intel driver, as the kernel already supports the intel chipset even better.
# Fix GTK themes
sudo sed -i '/export SAL_USE_VCLPLUGIN=gtk$/s/^#//g' \
/etc/profile.d/libreoffice-fresh.sh