No matter how many monitors you use with your computer, you will never be able to put all app windows on your desktop. Unless, of course, you have the right tools.
A window manager is a perfect tool that responds well to this requirement and allows you to exploit the full potential of your computer/external display screen.
But what exactly is it, what can it do, and what are some of the best window managers to use on Linux? Here is a guide with answers to all such questions.
What is a window manager?
Like any other Unix-like operating system, Linux also uses the X Window System (or X11) as the default windowing system to generate the essential GUI elements that various GUI-based apps need to function.
Other than that, however, the X11 system doesn’t have much to offer. As a result, you cannot use it to manage and organize the app windows on your desktop to your preference.
This is where a window manager comes in handy. Allows you to manage the way app windows appear and behave on your computer’s display or external monitor. That way, you can control their placement and thus appearance, so you can get the most out of your display and enhance your multitasking experience.
The Best Window Managers for Linux
Following is a list of the best window managers for Linux – both floating and tiling – that you can use to make the most of your screen’s real estate.
Xmonad is a free and open-source dynamic tile window manager for Linux. It is written in Haskell and comes with a configuration file that allows you to customize the behavior to your preference.
Because it is written in Haskell, understanding and configuring the xmonad configuration file right away can be challenging, especially if you have no previous experience with Haskell. However, for those with a good grasp of the language, the scope of customizability and usability extends well beyond what you can get out of most window managers.
One of the biggest benefits of xmonad is that it automates the window layout for you, so you can better focus on getting your work done. As for the feature set, the program offers an extensive extension library, Xinerama support (for multi-display setups), and on-the-fly reconfiguration, among other things.
To install xmonad on Debian/Ubuntu, run:
sudo apt install xmonad
On Arch Linux:
sudo pacman -S xmonad
On Fedora/CentOS and other RHEL-based systems:
sudo dnf install xmonad
Awesome started out as a fork from DWM (Dynamic Window Manager), but later evolved into a full-fledged Linux window manager in its own right. One of the goals of the program was to provide a quick and easy window management solution without compromising on the advanced functionalities. And for the most part, it has managed to make that happen.
It is written in Lua, a powerful programming language with an extensive scope related to customization. If you’re a power user who wants complete control over the GUI and window management, Awesome can give you pretty much everything you could want, with a well-documented API to get you started.
One of the aspects that sets awesome apart from some of the other window managers is that, instead of using the Xlib library, which is known to cause latency, it uses the asynchronous XCM library which ensures that your actions don’t subject to so much latency.
Install Awesome on Debian/Ubuntu:
sudo apt install awesome
On Arch Linux:
sudo pacman -S awesome
sudo dnf install awesome
DWM or Dynamic Window Manager is one of the older Linux window managers on this list. It is a dynamic window tiling manager and has been an inspiration behind the development of popular window managers such as xmonad and awesome, mainly because of its minimal and simplistic functionality that just works well.
However, as a result of this lightweight approach, DWM suffers from certain shortcomings. One is the lack of a configuration file, which makes customizing the program’s elements complicated, as you now have to modify the source code and build it every time you want to make a change.
It is for this reason that DWM is usually a preferred window manager for those who need a simple window manager that does only one task – window management – as opposed to something packed with extra elements and features, which can add complexity to the experience.
To install DWM on Debian and Ubuntu use:
sudo apt install dwm
On Arch Linux:
sudo pacman -S dwm
Installing DWM on Fedora/CentOS and RHEL-based systems is easy:
sudo dnf install dwm
IceWM is a stacking window manager written in C++. It is fully focused on delivering a fast and smooth window management experience, making it perfect for underpowered Linux machines. However, despite being lightweight, the program doesn’t compromise on essential usability and customizability.
It uses a plain text file, which is much easier to modify and makes customization a breeze. Not only that, it also provides documented guides to help you modify the configuration file. In addition, there are random (read “useful”) tooltips here and there to familiarize you with the GUI elements and their functionalities.
An interesting GUI addition in IceWM is the built-in taskbar at the bottom that further simplifies managing and organizing app windows and workspaces on the desktop. Likewise, it also offers support for both RandR and Xinerama, which is a nice touch to help you with multi-monitor setups.
Install IceWM on Debian/Ubuntu:
sudo apt install icewm
On Arch Linux:
sudo pacman -S icewm
sudo dnf install icewm
The i3 window manager is a manual window tiler that supports a variety of window organization settings. It is written in C, and like IceWM, it also provides the configuration functionality via a plain text file, making it easy to customize the elements to suit your style.
At its core, i3 aims to be fast and minimal while still appealing to advanced users. As such, you get the essential features like manual window placement, themes, multiple focus modes, along with advanced options like a taskbar, configurable keyboard shortcuts, and the ability to create custom scripts for further customization.
Overall, i3’s approach is ideal for all types of users as it puts you in control of how you want to use the program on your system. You can use it as is or completely customize it to your needs. And this also makes it suitable for low-power computers.
sudo apt install i3
To install i3 on Arch Linux:
sudo pacman -S i3
On Fedora/CentOS/RHEL systems:
sudo dnf install i3
Effectively Manage App Windows on Linux
If you are someone who has to jump back and forth between a lot of apps on your computer and screens, then you can use one of the above window managers to make the most of your screen space and multitask efficiently.
If you are just getting started with Linux, we recommend checking out the i3 window manager. It’s fast, minimal, and offers pretty much all the essential features you need to keep your app windows organized and maximize your productivity.