When comparing bspwm vs awesome, the Slant community recommends bspwm for most people. In the question“What are the best desktop environments for Arch Linux?” bspwm is ranked 13th while awesome is ranked 16th. The most important reason people chose bspwm is:
It has a low footprint.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
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.
Pro Highly configurable
Awesome is highly configurable, allowing the user to change anything they see fit in order to make the WM work for them and their workflow.
Pro Low latency
Awesome was the first window manager to be ported to use the asynchronous XCB library instead of XLib, making it much more responsive than most other window managers.
Pro Keyboard friendly
Awesome is really keyboard friendly and you can do almost anything with keyboard shortcuts.
Pro Fully extensible with Lua
Awesome can be skinned, configured, and extended with Lua, a language with a programming model similar to the ubiquitous Javascript. Learning resources for Lua are fairly abundant, as Lua is a popular extension language, often used for scripting in games.
Pro Stable
Awesome always works as it should: it is very stable and reliable.
Pro Good default configuration
By default, you'll have a status bar (hidden in some modes), an application launcher, automatic fullscreen, manual fullscreen shortcut, etc.
Pro Tags instead of workspaces
With awesome, clients are organized with tags: one client can be on more than one tag, and multiple tags can be displayed at the same time.
Pro Some mouse tiling support
You can rearrange and re-size [some] panels via the mouse.
Pro Xinerama support
Awesome has real multi-head support via XRandR/Xinerama, with per-screen desktops.
Pro Any window can be full screen
Select the window. Hold ALT+SHIFT and press SPACE until the window takes up the entire screen.
Pro Easy module for useless gaps
Lain module makes useless gaps easy.
Pro Excellent user configurations available
For those looking to customize the window manager, some beautiful examples can be found on Github and the subreddit r/unixporn that put other window managers to shame in the sheer potential to expand and modify the window manager awesome has.
Pro Single window, multi-workspace support
The user can have each window visible on one, multiple, or no workspace. You can also temporarily include another workspace in the current one.
Pro Can create tabbed containers for yourself or use a user library
Lua opens the possibility of adding these "missing" features through one's own efforts or one of the user libraries available on Github.
Cons
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)
Con You should have some skills to configure it
Awesome, like most window managers, is targeted at advanced users. Though is has sane defaults and easy to read documentation, it is still a far jump from the more common graphical UIs found in computing.
Con Messy configuration file
The config file is too long. The heavy reliance on modules (which you don't what each one does) makes it confusing for the user. And it is written in Lua. Combine these three things together and you get a ghastly monster of a configuration file.
Con Doesn't have tabbed containers
There is no option to have tabbed containers in awesome window manager.
Con Regular API breakage
Results in many of the scripts for awesome to be found online end up being outdated.
Con Updates break everything
There are substantial differences between versions, changing radical amounts of the window manager, that mean configurations need to be rewritten.
Con Pull requests for bug fixes take forever to get merged
Due to the number of devs required to do checks on the pull requests, they take upwards of 6 months before being merged into the main. This means if you need one of these features or fixes, you have to build from the source using that branch (which if you use the dev branch you probably already do).
Con Some programs don't cooperate well with tiling window managers
The user can usually work around this, but it can be quite annoying at the same time.
Con Configuration uses Lua (Programming Language)
It is time-consuming to make changes to configuration. Though Lua is a good language, a plain text file to configure things would seem to be a better approach.
Con Difficult to google for solutions to problems
Awesome is a very common word, making searches for solutions to problems using Google very time-consuming as a lot of chaff has to be sifted through.
Con Concept of layout sometimes does not fit what you want
The concept of layout sometimes does not fit what you want, for example, if you like the concept of layouts in tmux or in i3 - it works differently here.