When comparing Xfce vs XMonad, the Slant community recommends XMonad for most people. In the question“What are the best window managers for Linux?” XMonad is ranked 3rd while Xfce is ranked 13th. The most important reason people chose XMonad is:
XMonad is written, configured, and fully extensible in Haskell. This means that users aren't limited to a small set of pre-programmed layouts and actions: anything can be programmed into the configuration. It's simple to modify basic settings, and the example config has lots of comments to get you started. Haskell keeps this code clean, concise, and readable, and its type system keeps you safe from any serious mistakes. This makes it fast and light, even on very small and slow systems.
Ranked in these QuestionsQuestion Ranking
Pro Low system resource consumption
Not just helpful for older computers where few system resources are available, but also simply for those who want to get the most out of their systems.
Pro Highly customizable
Xfce offers plenty of settings, and even things like theming XFWM is a simple task (it's just a handful of images.)
Many possible permutations of window colors, borders, fonts, etc. Compositing can make it look downright sexy.
Pro Works on a wide variety of platforms
Xfce can be installed on several UNIX platforms. It is known to compile on Linux, NetBSD, FreeBSD, OpenBSD, Solaris, Cygwin and MacOS X, on x86, PPC, Sparc, and Alpha.
Pro Designed for productivity
It loads and executes applications fast, while conserving system resources.
Pro Rock solid stability
Xfce will never be the cause of your crash.
Pro A true UNIX Desktop Environment
Xfce adheres to the UNIX philosophy, which means it strives for being modular, minimal and expandable. This makes it very much customizable. You can make it as minimal as you want and as heavyweight as you want depending on the features and modules/plugins you use.
Pro Adheres to standards
A priority of Xfce is adherence to standards, specifically those defined at freedesktop.org allowing for interoperability and shared technology for X Window System desktops. This interoperability is particularly significant for users looking to, e.g., run alternative window managers.
Pro Does what it's meant to do easily and efficiently
XFCE is a desktop environment first and foremost, it does not waste time being overly flashy or by being bloated with features.
Pro Best for newcomers
Any one new to Linux feels comfortable using it.
Pro Low resource usage combined with flexible configuration
Pro Well defined Session Manager
Pro Window manager (XFWM) is a compositing WM by default
By having a compositing WM as the default WM makes way for a lot of visual tweaks and tricks that can and do make Xfce look great. You can adjust the transparency, shadows, borders, etc. and many other advanced tweaks are also available.
Pro Easy to export or import configurations
Pro Excellent panel management and selection of panel applets
Xfce provides excellent management of panels and a rich selection of panel applets.
Pro Fully extensible with Haskell
XMonad is written, configured, and fully extensible in Haskell. This means that users aren't limited to a small set of pre-programmed layouts and actions: anything can be programmed into the configuration.
It's simple to modify basic settings, and the example config has lots of comments to get you started. Haskell keeps this code clean, concise, and readable, and its type system keeps you safe from any serious mistakes. This makes it fast and light, even on very small and slow systems.
Pro Efficient to use
XMonad is a very minimal and efficient window manager, especially if the user is familiar with Haskell.
Pro Very stable
Use of Haskell, in conjunction with smart programming practices, guarantees a crash-free experience.
Pro Handles multiple monitors well
XMonad can handle multi-monitor setups by default.
Pro Absolutely minimal
The entire window manager is extremely small, and includes nothing beyond basic window manipulation and tiling. Out of the box, there are no window decorations, status bar nor icon dock; just clean lines and efficiency.
Pro Highly configurable
If you enjoy programming, you can even add features to XMonad to make it your perfect desktop environment, and the Contrib modules give you most of what you need to do exactly that.
Pro Edit configuration and reload on-the-fly
Configuration is compiled into the WM, and it can be changed/updated on-the-fly, without requiring a full reload.
Pro Great availability of libraries
The use of Haskell as an extension language means that popular pieces of functionality are easily shared and widely available as Haskell Libraries. Many default layouts, and tools for quickly and easily building your own, are available through XMonad-contrib, and highly re-usable configurations are commonly shared through blog articles and the Xmonad Wiki.
Pro Xinerama support
XMonad has full support for Xinerama: windows can be tiled and managed across multiple physical screens.
Pro Dynamic Tiling
XMonad uses dynamic tiling which means that it automatically handles arranging your windows into various layouts which the user can cycle through.
Con Terrible project infrastructure
The whole project is split across various sites so contributing is really hard. You also need to register on every site separately.
Con No HiDPI support
Since Xfce is still based on GTK2 there is no HiDPI support (scaling UI elements).
Con Lacks modern design and effects
No support for transparency, effects in opening or closing a file browser, or other effects like cube or cylinder, unlike, say, KDE.
Con Looks dated
It just looks like a 20 year old desktop in its stock form. However, it is possible for you to to give it a more elegant look using themes, icons and other customizations.
Con Screen tearing issues
The built-in compositor for Xfce does not handle VSync, meaning that it does not address screen tearing for those with Intel integrated graphics. A third party solution will have to be used for those that do want VSync such as using Nvidia proprietary drivers to handle VSync or installing a third party compositor such as Compton.
Con Missing some basic functionality for a desktop environment
Xfce is missing essential functionality like a file-archiver or a polkit-client, so you have to find alternatives for those applications (eg: by stealing them from MATE or GNOME, however this adds additional dependencies that will bloat Xfce).
Con Not a full DE
With a pure Xfce environment you cannot do as much as with Gnome or KDE.
Con Looks ugly out of the box
Out of the box, Xfce is the one of the ugliest if not the ugliest DE out there. It definitely can become the most beautiful and gorgeous DE after a bit of tinkering and theming, but the default theme is not that good.
Con Lack of useful tools
Con One pixel wide window borders
The non-configurable, one pixel wide window borders make resizing difficult. Work-arounds exist but those are clunky at best.
Con Sessions cannot be disabled
There is a known bug where sessions keep getting saved involuntarily. So even when you try to clean your saved session it will be reproduced the next time you login.
Con Not good for different users' locales on one system
When you have users with different personal locales, XfcE has problems using the right locale for the right user.
Con Uses many custom GTK widgets
Xfce is using many custom-made GTK widgets(like an custom pathbar, GtkDialog headers, Xfceiconview and more), while this makes it different to other GTK desktops it also breaks certain GTK styles that don't have workarounds for those widgets.
Con Now with Client Side decorations
Recent development versions introduce GNOME-ClientSideDecorations for some Xfce applications. Like on GNOME this breaks the overall consistency of the desktop. Eg: GNOME and some Xfce applicaions will use GNOME based interfaces like CSD's and popovers while the most other will use normal titlebars and popupmenus.
Con Steep learning curve for uninitiated users
Like a lot of tiling window managers, the learning curve for XMonad is quite steep.
Con Requires a lot of Haskell dependencies
XMonad depends on GHC (the Glasgow Haskell Compiler) which can take up about 700 MB or disk space.
Con Requires knowledge of Haskell for configuration
Understanding of Haskell is required in order to configure XMonad.