XFCE

From wikinotes

Xfce is a modular lightweight desktop manager.
My favourite part about XFCE is that it is modular in two ways.

  • No component depends on any other component, leaving you free to pick-and-choose.
  • You can modify/extend each component

Xfce is also built on-top of openbox, which means you can trim the fat, and introduce only the parts of XFCE on top of the openbox base.

Install

Base Install

sudo pacman -S xfce4									## Base XFCE
sudo pacman -S xfce4 xfce4-whiskermenu 
packer -S xfce-theme-manager
startxfce4

NOTE use F11 to make an application fullscreen.
NOTE if you want transparency, you'll need to autostart xcompmgr. I have instructions elsewhere on how to do this.
NOTE XFCE is nice, but it's window controls aren't ideal. I prefer replacing xfwm with openbox for better controls, and less GUIish config

# otherwise, Xfdesktop is rendered overtop of feh
sudo pacman -Rs xfdesktop
# /etc/X11/xorg.conf
xinerama=1
#(restart x)

Disable xfdesktop

# Uninstalling xfdesktop will disable your desktop, but will let feh
# manage the wallpaper. I don't really care for a desktop, always hidden
# anyways.

sudo pacman -Rs xfdesktop

Hotkeys

WhiskerMenu > Search > Window Manager Tweaks > Accessibility:
  - Key Used to grab and move windows: Super

WhiskerMenu > Settings > Keyboard > Application Shortcuts :
  st -g 12000x700                 # Win+Shift+Enter
  transset-df -a --dec 0.05       # Win+ "-"
  transset-df -a --inc 0.05       # Win+ "+"
  transset-df -a -t .92           # Win+A
  /usr/bin/dmenu_run              # Win+P
  /usr/bin/xfce4-popup-whiskermenu                               # Win
  /usr/bin/xdotool windowkill `/usr/bin/xdotool getactivewindow` # Win+C

WhiskerMenu > Search > Window Manager:
  Keyboard:
    Close Window                    # Win+c
    Move Window to Bottom Workspace # Win+Down
    Move Window to Top Workspace    # Win+Up
    Move Window to Left Workspace   # Win+left
    Move Window to Right Workspace  # Win+Right

Themes

WhiskerMenu > Apperance > Style:       Mediteranean Dark

WhiskerMenu > Window Manager > Focus:  Focus Follows Mouse

Advanced:
  Snap windows to other windows

WhiskerMenu > Search > Window Manager > Style

WhiskerMenu > Search > Xfce Theme Manager:
  Advanced > Uncheck Window Borders

Disable Session Saving

Session saving is both annoying, and makes all of my startup programs run twice you'll notice conky keeps multiplying every time that you log in very annoying. To disable session saving:

sudo mkdir /etc/xdg/xfce4/kiosk
# /etc/xdg/xfce4/kiosk/kioskrc
[xfce4-session]
SaveSession=NONE
Menu > Settings > Settings Manager:
  - Settings Editor > xfce4-session
  - Uncheck Save on Exit
# log out of xfce, CTRL+ALT+F2
cd ~/.cache/sessions/

# remove all files (from last saved session)
reboot

Workspace Setup

# On Panel, create workspace
Whisker > Workspace
Set workspaces to 9

Autostart

It seems the only solution for autostarting programs in XFCE is creating a .desktop file in '~/.config/autostart'. Creating a .xsessionrc, .xsession, or adding instructions to .xinitrc would not work for XFCE.

Whisker > Sesion and Startup >  Application Autostart
Name:    wpstart
Command: /home/will/.start
# ~/.config/autostart/xstartup.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=wpstart
Name[en_US]=wpstart
Exec=/home/will/.start
Comment[en_US]=

Create '~/.start'. No program that requires root privileges can be run with this. (If you need a program that runs as root, just create a service for it)

Thunar Automounting

For more precision instead of gvfs you can use autofs, but this keeps things simple for girlfriend/friends.

Install

sudo pacman -S gvfs
- Applications Menu > Settings > Removable Drives and Media
- Mount removable drives when hot-plugged
- Mount removable media when inserted

Openbox

Like I mentioned before, my largest gripes with XFCE are that it is not customizeable enough, and you need to jump hoops in order to to configure it. Here is how to replace xfwm with openbox for more powerful and simpler hotkey configuration, alongside some of XFCE's conveniences such as the whisker-menu.

Setup

# Replace xfwm4 with openbox (better window navigation)
if [[ "$DESKTOP_SESSION" == "Xfce Session" ]] ; then
    openbox --replace & exit  
fi
# /home/will/.start

# If you want openbox to manage all hotkeys, temporarily comment out the above
# code so you're running xfwm, and manually unset all hotkeys in:
Whisker > Window Manager
Whisker > Keyboard

Multimedia Keys

# openbox multimedia keys are not being detected for some reason, so instead
# I bound them using XFCE's keyboard menu
Whisker > keyboard

/home/will/progs/bash/arch/notifyVolume 'vol' '+'
/home/will/progs/bash/arch/notifyVolume 'vol' '-'
/home/will/progs/bash/arch/notifyVolume 'vol' ':'

Extending

Panel Plugins

If you'd like to add custom items to your XFCE panel (start-bar).

https://github.com/xfce-mirror/xfce4-rss-plugin example written in python
https://wiki.xfce.org/dev/howto/panel_plugins official docs