When comparing Xfce vs XMonad, the Slant community recommends Xfce for most people. In the question“What are the best desktop environments for Arch Linux?” Xfce is ranked 1st while XMonad is ranked 19th. The most important reason people chose Xfce is:
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.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
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 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 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 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 Rock solid stability
Xfce will never be the cause of your crash.
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 Designed for productivity
It loads and executes applications fast, while conserving system resources.
Pro Low resource usage combined with flexible configuration
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 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 Excellent panel management and selection of panel applets
Xfce provides excellent management of panels and a rich selection of panel applets.
Pro Easily Customizable as compared to other DEs
Pro Best for newcomers
Any one new to Linux feels comfortable using it.
Pro Well defined Session Manager
Pro Easy to export or import configurations
Pro HiDPI support
After release 4.14 Xfce supports HiDPI.
Pro Modularity and Ease of use
Don't like the default window manager? Just slap in bspwm.
A full DE that is both user-friendly and very configurable. Has no equal.
Pro Has a convenient launcher and a Genmon plugin
Pro 4.14 has beautiful and functional notifications
Pro Manages multiple displays with choice of monitor for desktop icons
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 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 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 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. The documentation in XMonad-contrib is very clear and easy to read.
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.
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 Intuitive model which separates "screens" and "workspaces"
XMonad separates screens and workspaces. A screen "projects" a workspace. You can put a window to a specific screen, regardless of which workspace is currently projected onto that screen. This is more intuitive than other WMs e.g. i3, which only has the notion of workspace but not "screen" and requires you to remember workspace numbering. It is especially beneficial for multi-monitor setups.
Pro Extensive documentation
It is sadly a very rare thing among tilling window managers to have comprehensive documentation, Xmonad is the exception to this rule as opposed to those like DWM, and BSPWM.
Pro Friendly community
Especially in comparison to DWM.
Cons
Con Does not support HiDPI
Xfwm for example does not support scaling.
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 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. This also makes it almost impossible to use Xfce >=4.15 components on traditional Window Managers like: Openbox, Fluxbox or IceWM.
Con Missing some basic functionality for a desktop environment
Xfce is missing essential functionality like a file-archiver, polkit-client or even a bluetooth or wifi managers, so you have to find alternatives for those applications (eg: by stealing them from MATE or GNOME, which adds additional dependencies that will bloat Xfce and makes it easily even heavier than GNOME).
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 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 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 Configuration is stored in a database
All configuration is stored in xfconf or dconf which is like the WIndows Registry very hard to edit with simple tools.
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 Breaks standards
Sine 4.16 the developers ignore standards like the freedesktop icon naming scheme. Instead they now follow GNOME with rDNS icon naming breaking dozens of icon themes.
eg: gnome-calculator.svg becomes org.gnome.Calculator.png
rDNS naming also uses uppercase letters in filenames which is a bad idea on unix systems.
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 a full DE
With a pure Xfce environment you cannot do as much as with Gnome or KDE.
Con Xfwm theming is limited
For example, unlike metacity/marco/miffin it does not support different styles for window types.
Con GConf
It's the same Windows Registry clone as GNOME.
Con It doesn't support fn button for laptops
You can easily enable it, but it's not on out-of-the-box -> read comment.
Con There is no Thunderbolt GUI
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 Has become a GNOME2/MATE clone
It has lost its way since 4.4 and is now just another GNOME2-like desktop.
Con Will become more interconnected an less modular
Isn't as modular anymore as it was 10 years ago. In the future (4.16) they will also introduce GTK Client Side Decorations to all setting dialogs so you will have some problems with using a different Window manager or when using xfce components outside of Xfce/GNOME.
Con Out-dated
Development are often too slow and unable provide necessary functionalities.
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 Openbox doesn't support Wayland
Con Officially is no Longer the Champion of Lightweight Memory Usage
According to multiple credible sources in the Linux world and the KDE developers, XFCE now uses more memory than Plasma 5.17, due to Plasma bringing better and faster updates. Even the XFCE folks admit XFCE is somewhat getting out of hand.
I suppose this was tested on a minimal install of Plasma, without the entire KDE ecosystem. So if you are concerned with memory usage and use a "build-it-yourself" distribution like Arch, avoid XFCE and install Plasma by itself.
Con Poor support
It can take years for the devs to answer to bug reports.
Con No sound effects
Xfce does not support freedesktop sound themes.
Con Focuses on artwork/eyecandy instead of usability
Sine 4.14 there was a shift to focus more on artwork than usability.
Con Not modular anymore
Until 4.10 xfce was the modular desktop and you could xfce apps and components outside of xfce, but nowadays all components are interconnected.
Con Too lightweight
Feels too lightweight and doesn't have enough packages and applications.
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.
Con Doesn't play nice with bars other than Xmobar
Though Xmobar is functional enough, it would have been nice to have a full compatibility to polybar, or at least for it to have more options for improving appearance.
Con Fragile haskell toolchain
Because of its very tight dependency on GHC, which doesn't have a stable ABI, trying to use distro-packaged toolchains can be a nightmare.
Con Has no really powerful layout like bspwm does
Although they have one with the same name.
Con Only tiling
No support for stacking.