When comparing dwm vs bspwm, the Slant community recommends dwm for most people. In the question“What are the best desktop environments for Arch Linux?” dwm is ranked 7th while bspwm is ranked 13th. The most important reason people chose dwm is:
Dwm is a low-resource window manager that is entirely simplistic in design.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Simple and small
Dwm is a low-resource window manager that is entirely simplistic in design.
Pro Encourages user modification
Dwm is part of the suckless suite of tools, and encourages users to extend and configure it by modifying the code itself. To this end, dwm is kept under 2000 SLOC, and is an exemplar of clean, readable code (C). This, while giving users all the flexibility they could ask for, also makes dwm as lightweight as possible, and means that users have a full understanding of how it works.
Pro XRandR/Xinerama support
Dwm has support for XRandR and Xinerama, allowing for multi-monitor support.
Pro Many and unique patches available
Thanks to the small codebase, many users contributed patches to the suckless website. They offer unique functionality, e.g. swallow or fakefullscreen, that is not seen in many other WMs.
Pro Sane defaults
Uses Master&Stack layout by default.
Pro Minimalist
Small and easy to digest source for those who want to patch it.
Pro Easy to configure
Configuring dwm is straight-forward thanks to its config.h file (though it will have to be rebuilt for the effects to take place).
Pro Fast
Feels even faster than others minimal window manager.
Pro Very customizable
The clean code and the patches allow us to configure dwm to be exactly what we want.
Pro Default keybindings and functionality are very useful and well thought-out
An example of this is the application of alt-tab to switch between two tags.
Pro No glitches
Imagine a window manager that works perfectly in every situation. No glitches, no delays, no slow downs, no focus problems. Even the best window managers out there have glitches but dwm. Dwm works flawless.
Pro Useful and informative status bar
The dwm status bar can be set to display all kinds of useful information, such as volume level, wifi signal strength, and battery notification.
Pro Application grouping with tags
Dwm's design paradigm is to use tags to group clients (applications) that can then be pulled into a view (workspace); this allows you to view multiple clients at once and to assign or reassign those tags and their related views on the fly.
Contrary to most other window managers, when you view a tag you are not ‘visiting’ a workspace: you are pulling the tagged windows into a single workspace.
Combined with rules in the config.h
, this makes for a flexible and responsive means to manage your workflow.
Pro Very lightweight
It has a low footprint.
Pro Very flexible
The keyboard shortcut are handled by another module so it's easy to use other inputs. The configuration is also simple.
Pro Open source
It's open source.
Pro Drag&drop / Mouse support for resize/move
You can resize, switch panes, and resize tiles via the mouse.
Pro Simple interface
All actions of the window manager (like opening or resizing a window, changing the workspace, etc.) are handled by a program called bspc, which communicates with bspwm over a socket connection. The config file is just a shell executable making calls to that program. This makes it very easy to write your own scripts to handle bspwm's behavior.
Pro Based on binary space partitioning
The windows tiling is handled as the leaves of a full binary tree. This makes it easy to partition as you like.
Pro Simple, adheres to the UNIX philosophy
Configuration takes much less work than in similar window managers. Hotkey binding is handled by a separate utility, sxhkd.
Pro Native gaps
Has gaps!
Pro Easily scriptable / modular
All window management is done via the bspc command allowing for easy scripting and extensibility. This also means your sxhkd keybinds can be ported elsewhere without being tied to the wm.
Pro Live configuration updates
No need to restart for updating configurations.
Pro Simple and easy configuration
When everything is seperate, keybinding, status bar, windows manager, it makes everything is easier to configure deeply in detail and organization.
Pro Separate hotkey daemon
The hotkeys run through sxhkd which is a daemon that's separate from the window manager itself.
Pro Comes without a compositor
You can to choose which compositor you want! A popular one is compton.
Out of the box it "Lacks transparency support" but if you choose to add compton then you can have transparency, blur etc.
Pro Has basic ewmh implementation
With basic ewmh I can easily config to make a fullscreen program show in a window.
Cons
Con No runtime config file
There is no config file that can be edited after the window manager is compiled: all changes need to be made prior to compiling.
Con By developers, for developers
Basic knowledge of C language, general programming, and compilation are all required.
Con The patch system breaks the code
To add features one has to patch the original code. That maybe easy to do with only one patch, but things can go down hill after 3+ patches, specially for those who don't know how to code on C.
Con More latency
It uses Xlib instead of XCB.
Con X11 only
X11 is outdated and insecure, there are Wayland clones such as Velox and dwl, but dwm still takes the cake.
Con Poorly documented
Compared to something like i3 for example, a user following through i3's documentation is basically guaranteed to get a working desktop suited to their needs. Setting up bspwm is much more of a headache due to developers assuming things are clearer than they are.
Con Lacks transparency support
Like most window managers there is no built in compositing, which means no transparencies.
Con Lack of layouts
It offers less layouts then most of the tiled windows managers. (Only binary and monocle)