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 Classic and familiar
Xfce works very much like the classic Gnome & Windows desktops, taskbars (panels) and desktop icons, letting you get your work done without being frustrated.
Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.
Pro Rock solid stability
Xfce will never be the cause of your crash.
Pro Designed for productivity
It loads and executes applications fast, while conserving system resources.
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 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 Well defined Session Manager
Pro Easy to export or import configurations
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 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 Very stable
Use of Haskell, in conjunction with smart programming practices, guarantees a crash-free experience.
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 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 Handles multiple monitors well
XMonad can handle multi-monitor setups by default.
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 No HiDPI support
Since Xfce is still based on GTK2 there is no HiDPI support (scaling UI elements).
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 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 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 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 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 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 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 Lack of useful tools
Con Not a full DE
With a pure Xfce environment you cannot do as much as with Gnome or KDE.
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 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 Steep learning curve for uninitiated users
Like a lot of tiling window managers, the learning curve for XMonad is quite steep.
Con Requires knowledge of Haskell for configuration
Understanding of Haskell is required in order to configure XMonad.
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.