Window Managers
Table of Contents
1. Introduction
WARNING: This article is very biased.
WARNING(1): This article is a work in progress.
2. Definition
Window managers manage windows. They control the appearance and behaviour of windows and how they are arranged.
3. Window Managers
This is not a complete list.
3.1. Awesome
Awesome could easily be considered the most powerful window manager1 on Linux, as with enough time and effort, the WM itself is capable of recreating many DE like functionalities.
You can have notification centers, action centers, dashboards, lock screens, anything you can think of.
It's window management is dynamic and equally good at both tiling and floating.
It's widget system is also incredibly powerful in the right hands and the tight integration with the rest of the window manager makes it even more so.
3.1.1. Bling
bling is an awesomewm utility library that focuses on adding new layouts and modules that make use of the widget system, but primarily focus on the new window managing features.
It adds a lot of cool features like additional layouts, window swallowing, scratchpads, playerctl signals, a tab container, tag preview, task preview, an app launcher and a window switcher.
3.2. Berry
Berry is a small floating window manager written in C. It has a surprising amount of features, and probably is my favourite floating window manager.
Neat Features:
- Powerful command-line client, and can thus be controlled via a hotkey daemon such as sxhkd or extended via shell scripts.
- Extensive theming options with titlebars, window text and double borders.
- Intuitively places new windows in unoccupied spaces and supports virtual desktops.
3.3. bspwm
https://github.com/baskerville/bspwm
bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages (bspc
).
As of April 2022, it is the most used window manager in the unixporn discord.
3.4. FVWM
Extremely powerful and customizable ICCCM-compliant multiple virtual desktop window manager for the X Window system. Although, the configuration syntax is a bit complicated.
3.5. Herbstluftwm
herbstluftwm is a manual tiling window manager for the X window system. It is configured through herbstclient
, so the config file is simply a shell script run at startup.
All configuration can be done via herbstclient
and thus there is no need to restart the window manager.
3.6. i3
3.7. Openbox
Openbox is a lightweight, powerful, and highly configurable stacking window manager with extensive standards support.
cool openbox rice
another cool openbox rice
cool openbox rice collection
3.8. Worm
https://github.com/codic12/worm
Worm is a is a dynamic, tag-based window manager for X11. It supports both a floating layout and a master-stack tiling layout and is under active development. It is configured via wormc
, and can thus be controlled via shell scripts. It is also written in the Nim programming language.
3.9. XMonad
XMonad is a dynamically tiling X11 window manager that is written and configured in Haskell. It is full of features, and is very good at moving windows around. Although, as it is configured in haskell, it may take a while to get started and to get used to it. But if you're actually interested in the concept, dont let the language stop you.
4. Credits
- nes (Dark NES#4901): helping me shill for awesome
Footnotes:
SirAiedal: Technically, Awesome does not fit a list of "window managers". It is a window manager framework, or "runtime + set of libraries".