XFCE on FreeBSD: Desktop Environment Review
XFCE has been one of the most reliable desktop environments on FreeBSD for over a decade. While KDE and GNOME chase modern features and Wayland transitions, XFCE maintains a deliberate focus on stability, low resource usage, and predictable behavior. For FreeBSD desktop users who want a traditional desktop that stays out of the way, XFCE remains a compelling choice.
This review covers XFCE's current state on FreeBSD, from installation and configuration to Thunar, panel customization, and how it compares to MATE and LXQt as lightweight desktop alternatives.
Installation
XFCE installs cleanly from FreeBSD packages. The meta-package pulls in all standard components:
shpkg install xfce
This installs the XFCE desktop, panel, window manager (xfwm4), Thunar file manager, terminal emulator, session manager, and associated utilities.
For a minimal install where you pick only the components you want:
shpkg install xfce4-panel xfce4-session xfwm4 xfce4-terminal thunar
You also need a display server and optionally a login manager:
sh# Install Xorg pkg install xorg # Optional: install a display manager pkg install lightdm lightdm-gtk-greeter # Enable the display manager sysrc lightdm_enable="YES" sysrc dbus_enable="YES"
If you prefer starting XFCE manually from the console:
sh# Add to ~/.xinitrc echo "exec startxfce4" > ~/.xinitrc # Start the desktop startx
Post-Install Configuration
A few FreeBSD-specific steps ensure a smooth experience:
sh# Enable D-Bus (required for XFCE) sysrc dbus_enable="YES" service dbus start # Add your user to necessary groups pw groupmod video -m youruser pw groupmod wheel -m youruser # Enable HAL or devd for device management # On modern FreeBSD, devd handles most of this natively # For sound via OSS (FreeBSD default) sysrc sndbuf_enable="YES" kldload snd_hda # or appropriate driver
For PulseAudio or PipeWire integration (needed for some XFCE plugins):
shpkg install pulseaudio xfce4-pulseaudio-plugin # Or for PipeWire pkg install pipewire
The Desktop Experience
XFCE presents a traditional desktop paradigm: a panel at the top (or bottom, your choice), a desktop with icons, and a straightforward application menu. There is no activities overview, no virtual workspace wall, no animated transitions by default. This is intentional and, for many users, exactly right.
Window Manager (xfwm4)
xfwm4 is lightweight but surprisingly capable. It supports:
- Window compositing (drop shadows, transparency) with minimal overhead
- Customizable keyboard shortcuts
- Snap-to-edge window tiling
- Multiple workspace support
- Window rules for per-application behavior
The compositor uses Xrender by default, which works reliably with FreeBSD's graphics drivers:
sh# Toggle compositor from command line xfwm4 --compositor=on xfwm4 --compositor=off # Or through Settings > Window Manager Tweaks > Compositor tab
For older hardware or if you notice graphical glitches, disabling the compositor eliminates those issues entirely while keeping full functionality.
Panel Configuration
The XFCE panel is one of its strongest features. Unlike GNOME's top bar or KDE's panels, XFCE's panel is deeply configurable without requiring extensions or third-party tools.
Default panel layout includes an application menu, task list, workspace switcher, system tray, and clock. Customization options:
sh# Panel configuration is stored in ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml # Backup before experimenting cp -r ~/.config/xfce4 ~/.config/xfce4.bak
Common panel modifications:
- Deskbar mode: Vertical panel with horizontal plugin layout. Useful for widescreen monitors where vertical space is precious.
- Multiple panels: Add a second panel for a dock-like application launcher at the bottom while keeping a status bar at the top.
- Plugin arrangement: Drag and drop plugins directly on the panel in edit mode. Right-click the panel and select "Panel > Panel Preferences."
Useful panel plugins available on FreeBSD:
shpkg install xfce4-weather-plugin xfce4-cpugraph-plugin \ xfce4-netload-plugin xfce4-systemload-plugin \ xfce4-battery-plugin xfce4-whiskermenu-plugin
The Whisker Menu plugin deserves special mention. It replaces the default application menu with a searchable, categorized launcher similar to what you find in Linux Mint's Cinnamon. It is a significant usability upgrade:
shpkg install xfce4-whiskermenu-plugin
After installing, add it to your panel by right-clicking the panel, selecting "Panel > Add New Items," and choosing Whisker Menu.
Thunar File Manager
Thunar is XFCE's native file manager and it is excellent for its weight class. It launches instantly, handles basic file operations well, and supports custom actions that extend its functionality considerably.
Custom Actions
Custom actions are Thunar's killer feature. They let you add context menu entries that run arbitrary commands on selected files:
Navigate to Edit > Configure Custom Actions. Examples for FreeBSD:
- Open terminal here: Command
xfce4-terminal --working-directory=%f, appears for directories - Extract archive: Command
tar xf %f, appears for.tar.gz,.tar.bz2files - Set file permissions: Command
xfce4-terminal -e "chmod -R 755 %F", appears for directories - Create ZFS snapshot: Command
sudo zfs snapshot %f@$(date +%%Y%%m%%d), for ZFS-mounted directories
Thunar Volume Manager
Thunar integrates with thunar-volman for automatic device handling:
shpkg install thunar-volman
On FreeBSD, this depends on proper devd configuration for USB devices. It handles USB drives, memory cards, and optical media when the underlying system supports them. The integration is not as seamless as on Linux with udisks2, but it works for common scenarios.
Thunar Plugins
sh# Archive management pkg install thunar-archive-plugin # Media tags (EXIF, audio tags) pkg install thunar-media-tags-plugin # Version control integration pkg install thunar-vcs-plugin
Limitations
Thunar lacks some features found in heavier file managers:
- No built-in split pane view (use terminal-based tools like
mcfor that) - No tabbed browsing in older versions (added in XFCE 4.18+)
- Limited network browsing support on FreeBSD (SMB/NFS browsing requires additional configuration)
- No built-in bulk rename regex (though the bulk renamer handles simpler patterns)
For users who need more from a file manager, PCManFM or Dolphin can replace Thunar while keeping the rest of XFCE.
Theming and Appearance
XFCE uses GTK for its interface, so any GTK2/GTK3 theme works:
sh# Install popular themes pkg install arc-themes numix-gtk-theme materia-gtk-theme # Install icon themes pkg install papirus-icon-theme numix-icon-theme
Apply themes through Settings > Appearance. For window decoration themes, use Settings > Window Manager.
A common annoyance: GTK2 and GTK3 applications may look inconsistent if you choose a theme that only supports one version. Arc, Materia, and Adwaita support both and provide a consistent look.
For a polished FreeBSD XFCE desktop:
sh# A consistent, modern-looking setup pkg install arc-themes papirus-icon-theme # Then in Settings > Appearance: # Style: Arc-Dark # Icons: Papirus-Dark # In Settings > Window Manager: # Style: Arc-Dark
Font Configuration
FreeBSD does not always ship with great font defaults. Improve text rendering:
shpkg install noto urw-base35-fonts webfonts # Enable subpixel rendering cat > ~/.config/fontconfig/fonts.conf << 'FONTCONF' <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font"> <edit name="antialias" mode="assign"><bool>true</bool></edit> <edit name="hinting" mode="assign"><bool>true</bool></edit> <edit name="hintstyle" mode="assign"><const>hintslight</const></edit> <edit name="rgba" mode="assign"><const>rgb</const></edit> <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> </match> </fontconfig> FONTCONF
Resource Usage
XFCE's resource footprint on FreeBSD is modest. On a clean session with the default panel and Thunar:
- RAM: 350-450 MB total (including Xorg)
- CPU: Near zero at idle
- Disk: Approximately 400 MB for a full XFCE install with Xorg
Compare this to KDE Plasma at 700-900 MB and GNOME at 800-1000 MB at idle. XFCE is genuinely lighter and the difference matters on machines with limited RAM or when you want to dedicate resources to actual work rather than the desktop environment.
On older hardware (10+ year old machines), XFCE with compositing disabled runs smoothly where KDE and GNOME would struggle.
XFCE vs MATE on FreeBSD
MATE is XFCE's closest competitor in the lightweight traditional desktop space. Both are available on FreeBSD:
shpkg install mate
Key differences:
- Heritage: MATE forked from GNOME 2. XFCE has always been its own project. MATE feels more like "old GNOME" while XFCE feels like "XFCE."
- File manager: Caja (MATE) vs Thunar (XFCE). Caja has more features out of the box (split pane, extensions). Thunar is faster and simpler.
- Panel: Both are highly configurable. MATE's panel is more GNOME 2-like. XFCE's panel has more built-in plugins.
- Resource usage: Very similar. MATE is marginally heavier (50-100 MB more RAM).
- FreeBSD integration: Both work well. XFCE has been in the FreeBSD ports tree longer and tends to receive FreeBSD-specific attention sooner.
- Active development: XFCE has recently accelerated its development pace after years of slow releases. MATE tracks GNOME library updates steadily.
The choice between XFCE and MATE is largely aesthetic preference. Both are solid on FreeBSD.
XFCE vs LXQt on FreeBSD
LXQt targets an even lighter weight class than XFCE:
shpkg install lxqt
Key differences:
- Toolkit: LXQt uses Qt; XFCE uses GTK. This matters for application consistency. If you run mostly KDE/Qt applications, LXQt integrates better. If you run mostly GNOME/GTK applications, XFCE integrates better.
- Resource usage: LXQt is lighter by 50-100 MB, but the difference is small enough to be irrelevant on any machine made in the last decade.
- Maturity: XFCE is more mature with a larger ecosystem of plugins and themes. LXQt is newer and still evolving.
- File manager: PCManFM-Qt (LXQt) vs Thunar (XFCE). PCManFM-Qt has tabbed browsing and split panes. Thunar has custom actions.
- Configuration: XFCE has a more comprehensive settings manager. LXQt defers more to manual configuration file editing.
For FreeBSD desktops, XFCE is the safer choice. LXQt is worth considering if you specifically want Qt integration or are running on very constrained hardware.
Verdict
XFCE on FreeBSD is a stable, mature, well-integrated desktop environment that does exactly what it promises. It will not impress with flashy animations or cutting-edge features. It will reliably provide a productive desktop that consumes minimal resources and rarely breaks across updates.
The panel system is genuinely excellent. Thunar is a competent file manager with the custom actions feature elevating it above its weight class. The theming ecosystem, shared with GTK, gives you plenty of visual customization options.
The main criticism is that XFCE's development pace, while recently improved, means features like Wayland support are still years away. If Wayland is important to you today, look at KDE Plasma or GNOME. If X11 stability and low overhead are your priorities, XFCE on FreeBSD is hard to beat.
Rating: 8/10 -- The best lightweight traditional desktop on FreeBSD. Loses points only for slow feature development and missing Wayland support.
Frequently Asked Questions
Does XFCE support Wayland on FreeBSD?
Not yet. XFCE is an X11-only desktop environment. Wayland support is planned but not expected in the near term. If you need Wayland, KDE Plasma or GNOME are your options on FreeBSD.
How do I get proper screen tearing fixes in XFCE on FreeBSD?
Enable the xfwm4 compositor through Settings > Window Manager Tweaks > Compositor. If that is insufficient, configure your graphics driver's vsync settings. For Intel/AMD, adding Option "TearFree" "true" to your Xorg configuration often resolves it.
Can I use XFCE with PipeWire on FreeBSD?
Yes. Install PipeWire and the XFCE PulseAudio plugin (which works with PipeWire's PulseAudio compatibility layer). Sound volume control in the panel works correctly.
Is XFCE good for older FreeBSD hardware?
Yes. XFCE with compositing disabled runs comfortably on machines with 2 GB of RAM and decade-old CPUs. It is one of the best desktop environments for older hardware on FreeBSD.
How do I autostart applications in XFCE on FreeBSD?
Use Settings > Session and Startup > Application Autostart. Alternatively, place .desktop files in ~/.config/autostart/. You can also add commands to the XFCE session's autostart script.
Can I replace xfwm4 with another window manager?
Yes. XFCE works with i3, Openbox, and other window managers. In Settings > Session and Startup, disable xfwm4 and configure your preferred window manager to start instead. Many FreeBSD users pair XFCE's panel with i3 for a tiling workflow with a traditional panel.