When comparing i3 vs awesome, the Slant community recommends awesome for most people. In the question“What are the best Linux tiling window managers with high DPI support for retina displays?” awesome is ranked 1st while i3 is ranked 2nd. The most important reason people chose awesome is:
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.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Fully configurable (including tiling)
One of the biggest attractions of i3 is that it can be configured just about any way the user likes. Ranging from custom keyboard shortcuts to placement of opened apps, it is up to the user as to how they would like their window manager to behave.
Pro Windows can be turned into Tabs
i3 permits tabbing through windows by turning on Tab mode with $mod+w.
This shortcut can be changed in config file.
Pro Easily switch to and manage floating windows
i3 can allow for the user to manage floating windows. Floating mode can be toggled by pressing $mod+Shift+Space. This way the user can take advantage of tiling as well as floating windows, all in the same session.
Pro Excellent documentation
Every feature is thoroughly documented (including examples), and documentation is kept up-to-date. For questions that are not answered by the i3 user guide, because they concern tools outside of i3 for example, there is the community question & answer site.
Pro Can stack
i3 allows for stacking of windows in its environment.
Pro Fast, especially on weaker hardware
Tiling means there are no fancy compositing or window effects to take up system resources.
Pro Never have to take hands off keyboard
Keyboard shortcut based navigation can seem daunting at first, but one quickly gets used to it. It enables the user to never have to take their hands off the keyboard, meaning that they can use their computer quickly and efficiently.
Pro No window borders
Screen area is not wasted by window decorations. This allows programs to use the entire screen.
NOTE: Default config has window title bar enabled so there is a little screen space lose on the top of the screen.
Pro Simple to use
Configuration is nearly automatic and simple, which can be really helpful to beginners.
Pro RandR support
RandR provides more information about your outputs and connected screens than Xinerama does. To be specific, the code which handled on-the-fly screen reconfiguration (meaning without restarting the X server) was a very messy heuristic approach and most of the time did not work correctly — that is just not possible with the limited information that Xinerama offers (just a list of screen resolutions and no identifiers for the screens or any additional information). Xinerama simply was not designed for dynamic configuration.
Pro Easily readable plain-text configuration
i3 has plain-text configuration, meaning that no lua or haskell is needed. This makes it rather easy to recommend i3 to other people without worrying whether or not they have the knowledge to configure it as it can be read by anyone without prior knowledge.
Pro VIM Style key bindings
You can configure i3 so that your keys for moving windows is similar to vim, for example, M-j to move the window down.
Pro Terminal bell can be used to notify of completed actions
Terminal-bell gets passed through and marks the workspace visibly.
Pro Sane development process
i3 uses test driven development with an extensive test suite to prevent bugs from ever happening again. All external contributions require a thorough code review to guarantee a certain level of quality.
Pro Can be reloaded quickly and configured without a client restart
Just two hot keys: Shift+Super+C to reload the config and Shift+Super+R to restart (which takes less than one second). Restarts pick up new versions of i3 or the updated config file, so you can upgrade to a newer version or quickly see the changes to i3 without quitting your X session.
Pro Layouts can be saved and reused
Pro Configuration allows for multi-monitor support
User can assign specific workspaces to specific displays as well as apps to workspaces. This makes possible opening set of most used apps with 1 shortcut always on the same screens.
Pro Great choice for keyboard users
The user keeps their hands in one spot (most of the time). One will find that the mouse is used less and less, making navigation quicker over time.
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 Missing "include" possibility in config
While pretty good and easy to use for common tasks, the configuration language is missing the include
directive common in other languages. You can use a workaround - a shell script to config parts on demand. It would be best if this were built-in however.
Con Poor floating window support
Sometimes this is necessary, even when the Dev rejects feature requests. Firefox child windows (option dialog) is an example.
Con Not as configurable as other WMs
Unlike XMonad or Awesome, i3 can't be configured in a turing complete language, so it is much harder to alter its core functionality to do exactly what the user wants.
Con Manual tiling
The layout isn't automatic. The user must move panels manually and may indeed end up spending time on that rather than on working with the application.
Con No shortcut to switch between two recently used applications/windows
You can easily switch between two workspaces but not two windows (which are not adjacent to each other). The functionality simply isn't there and the dev refuses to include it as a part of i3 core. This can get annoying when you have multiple windows in the same workspace. There is a manual workaround though.
Con Steep learning curve
Has a steep learning curve for beginners.
Con Cannot share workspaces between monitors
You have to pick and choose which workspaces go where, which effectively halves the number of workspaces you have. The developer refuses to allow this feature.
Con It has some issues with transparency
Using transparent windows can cause them to crash.
Con The plain-text configuration may not be suitable for beginners
i3 is configured through a plaintext configuration file. While it's very powerful and easy to learn, it may not be entirely user-friendly for those who have never edited a text configuration.
Con A program running on Discrete GPU may have problem rendering
That is a common issue with laptops which renders some programs in discrete GPU but passes the frames through integrated GPU to display. This makes it pain to play games on laptops using discrete GPU.
Con Documentation is online
Can't access it offline unless you download the page.
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.