As the name suggests, Linux Window Managers are responsible for coordinating how application windows work. They run quietly in the background of your operating system, handling the look and arrangement of open programs.
There are several Window Managers that you can use on Linux but just as you would expect, here is an article that lists the best tiling window managers for you to choose from.
1. i3 – Improved Tiling WM
i3 is a free, open-source, and completely configurable window manager app targeted at advanced Linux and BSD users and developers. It features a tree data structure that allows for more flexible layouts than its alternatives and it does not require Haskell or LUA.
i3 is among the most loved manual window tiling manager apps because of its vast features which include settings in plain text, custom keyboard shortcuts, and configuration without the need to restart the underlying system.
The package ‘i3‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install i3 [On Debian, Ubuntu and Mint] $ sudo yum install i3 [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge x11-wm/i3 [On Gentoo Linux] $ sudo apk add i3 [On Alpine Linux] $ sudo pacman -S i3 [On Arch Linux] $ sudo zypper install i3 [On OpenSUSE]
2. bspwm
bspwm is a free, lightweight, and open-source tiling manager known for adhering to the Linux philosophy by concentrating on doing one thing and getting it done properly.
It is based on binary space partitioning which represents windows as the leaves of a complete binary tree and it handles key binding with a separate utility sxhkd, which allows for smoother performance and support for other input devices.
bspwm’s features include support for multiple windows, partial support for EWMH, automatic mode for automatically setting the position of app tiles, and it is configured and controlled through messages, among others.
The package ‘bspwm‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install bspwm [On Debian, Ubuntu and Mint] $ sudo yum install bspwm [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/bspwm [On Gentoo Linux] $ sudo apk add bspwm [On Alpine Linux] $ sudo pacman -S bspwm [On Arch Linux] $ sudo zypper install bspwm [On OpenSUSE]
3. herbstluftwm
herbstluftwm is a free and open-source configurable manual tiling window manager for x11 using Glib and Xlib. Basically, it works using a layout based on splitting frames into sub-frames which can be further split and filled with windows.
herbstluftwm’s main features include tags (i.e. workspaces or virtual desktops), a configuration script that runs at startup, exactly one tag per monitor, etc.
The package ‘herbstluftwm‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install herbstluftwm [On Debian, Ubuntu and Mint] $ sudo yum install herbstluftwm [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/herbstluftwm [On Gentoo Linux] $ sudo apk add herbstluftwm [On Alpine Linux] $ sudo pacman -S herbstluftwm [On Arch Linux] $ sudo zypper install herbstluftwm [On OpenSUSE]
4. awesome
awesome is a free and open-source next-generation tiling manager for X built to be fast and extensible and it is primarily aimed at developers, power users, and anyone who would like to control their graphical environment.
Its features include well-documented source code and API, real multi-head support with per-screen desktops, support for D-Bus, support for Lua extensions, no floating or tiled layers, etc.
The package ‘awesome‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install awesome [On Debian, Ubuntu and Mint] $ sudo yum install awesome [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/awesome [On Gentoo Linux] $ sudo apk add awesome [On Alpine Linux] $ sudo pacman -S awesome [On Arch Linux] $ sudo zypper install awesome [On OpenSUSE]
5. Tilix
Tilix is an advanced GTK3 tiling terminal emulator and manager that uses the Gnome Human Interface Guidelines. It enables users to organize app windows horizontally and vertically using drag and drop.
Tilix offers its users a lot of features including working with custom titles and custom hyperlinks, support for transparent background images, notifications in the background, multiple panes, and persistent layouts.
The package ‘Tilix‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install tilix [On Debian, Ubuntu and Mint] $ sudo yum install tilix [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/tilix [On Gentoo Linux] $ sudo apk add tilix [On Alpine Linux] $ sudo pacman -S tilix [On Arch Linux] $ sudo zypper install tilix [On OpenSUSE]
6. XMonad
XMonad is a free and open-source dynamic tiling X11 window manager that exists to automate window searching and alignment. It is extensible using its very own extension library which gives it options for status bars and window decorations. It is also minimal, stable, and easy to configure.
The package ‘XMonad‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install xmonad [On Debian, Ubuntu and Mint] $ sudo yum install xmonad [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/xmonad [On Gentoo Linux] $ sudo apk add xmonad [On Alpine Linux] $ sudo pacman -S xmonad [On Arch Linux] $ sudo zypper install xmonad [On OpenSUSE]
7. Sway
Sway is a free, open-source, and lightweight tiling Wayland i3-compatible window manager that automatically arranges app windows to logically maximize desktop space. It arranges windows into a grid by default and supports almost all the commands included in i3.
Its features include support for keyboard shortcuts, its usage of Wayland instead of Xorg, and gaps.
The package ‘Sway‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install sway [On Debian, Ubuntu and Mint] $ sudo yum install sway [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/sway [On Gentoo Linux] $ sudo apk add sway [On Alpine Linux] $ sudo pacman -S sway [On Arch Linux] $ sudo zypper install sway [On OpenSUSE]
8. tmux
tmux is an open-source terminal multiplexer that enables users to create multiple terminal sessions that they can access and control from a single screen which makes it perfect for running several command-line programs at the same time.
tmux makes use of all the space available to it and it is easily usable thanks to its support for keybindings which you can use to split windows and create more panes. You can also share individual shell instances between distinct sessions to be used for different purposes by different users.
The package ‘tmux‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install tmux [On Debian, Ubuntu and Mint] $ sudo yum install tmux [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/tmux [On Gentoo Linux] $ sudo apk add tmux [On Alpine Linux] $ sudo pacman -S tmux [On Arch Linux] $ sudo zypper install tmux [On OpenSUSE]
9. spectrwm
spectrwm is a small, dynamic, xmonad, and dwm-inspired reparenting and tiling window manager built for X11 to be fast, compact, and concise. It was created with the aim of solving the issues of xmonad and dwm face.
spectrwm uses a plain text configuration file, boasts defaults similar to those in xmonad and dwm, and features built-in keyboard shortcuts. Its other features include customizable colors and border width, drag-to-float, quick launch menu, customizable status bar, dynamic RandR support, etc.
The package ‘spectrwm‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install spectrwm [On Debian, Ubuntu and Mint] $ sudo yum install spectrwm [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/spectrwm [On Gentoo Linux] $ sudo apk add spectrwm [On Alpine Linux] $ sudo pacman -S spectrwm [On Arch Linux] $ sudo zypper install spectrwm [On OpenSUSE]
10. JWM
JWM (Joe’s Window Manager) is an open-source C-based lightweight window manager for the X11 Window System optimized to work smoothly on older, less powerful computer systems.
It requires only the Xlib library to run but is capable of working with a host of other libraries including libXext for shape extension, Cairo and libRSVG for icons and backgrounds, libjpeg and libpng for JPEG and PNG backgrounds and icons respectively, etc.
JWM is included in a couple of Linux distros e.g. Damn Small Linux and Puppy Linux and has found most of its use on portable PCs like the Raspberry Pi.
$ sudo apt install jwm [On Debian, Ubuntu and Mint] $ sudo yum install jwm [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/jwm [On Gentoo Linux] $ sudo apk add jwm [On Alpine Linux] $ sudo pacman -S jwm [On Arch Linux] $ sudo zypper install jwm [On OpenSUSE]
11. Qtile
Qtile is a small but full-featured and completely configurable open-source tiling window manager developed in Python. It is designed with a focus on simplicity, extensibility using extensions, and customization.
Qtile features easy-to-write custom layouts, commands, and widgets. It can also be scripted remotely in order to set up workspaces, update status bar widgets, manipulate windows, etc. It has comprehensive documentation in case you need clarification along the way.
On newer Ubuntu (18.04 or greater), Debian (10 or greater), and Fedora versions, there are Qtile packages available to install via.
$ sudo apt install qtile [On Debian, Ubuntu and Mint] $ sudo yum install qtile [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
12. Ratpoison
Ratpoison is a lightweight Window Manager designed to be simple and without fancy graphics, window decorations, or dependence on any other projects. It is modeled after the GNU Screen which is very popular in the virtual terminal community.
Ratpoison’s main features include the ability to split windows into non-overlapping frames with all windows maximized within their frames. It is solely operated using keyboard commands.
The package ‘Ratpoison‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install ratpoison [On Debian, Ubuntu and Mint] $ sudo yum install ratpoison [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/ratpoison [On Gentoo Linux] $ sudo apk add ratpoison [On Alpine Linux] $ sudo pacman -S ratpoison [On Arch Linux] $ sudo zypper install ratpoison [On OpenSUSE]
13. dwm
dwm is a lightweight and dynamic tiling window manager for the X Windows system that has guided the development of various other X window managers, including awesome and xmonad window manager.
dwm controls windows in tiled, monocle, and floating layouts, and all of these layouts can be added dynamically, enhancing the environment for the application in use, and the task executed.
The package ‘dwm‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install dwm [On Debian, Ubuntu and Mint] $ sudo yum install dwm [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/dwm [On Gentoo Linux] $ sudo apk add dwm [On Alpine Linux] $ sudo pacman -S dwm [On Arch Linux] $ sudo zypper install dwm [On OpenSUSE]
14. Notion
Notion is a unique window manager designed for the X window system that offers a tiling feature, where the screen is divided into non-overlapping tiles, each holding one window, maximizing its use.
Additionally, Notion supports tabbing, allowing multiple windows to be organized within a single tile. Notably, it’s a static manager, unlike many dynamic ones that automatically adjust tile sizes.
The package ‘notion‘ is available in the distribution you’re using, simply use your package manager to install it, as demonstrated below.
$ sudo apt install notion [On Debian, Ubuntu and Mint] $ sudo yum install notion [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/notion [On Gentoo Linux] $ sudo apk add notion [On Alpine Linux] $ sudo pacman -S notion [On Arch Linux] $ sudo zypper install notion [On OpenSUSE]
Conclusion
There are more tiling managers in the community that you can choose from but not many of them offer nearly a complete feature list as the apps listed above.
Do you know any commendable apps that are worthy of mention? Or have you had experiences with any that influenced your choice of one over the other? Feel free to share your thoughts with us in the comments section below.
I am a computer science student learning development-related topics. Which window manager (WM) would be good for me that does not break frequently and is stable?
@Amit,
Given your needs for stability and reliability, I’d recommend trying i3 or XMonad. Both are known for their stability and have strong community support.
i3 is particularly beginner-friendly and highly configurable, while XMonad is a great choice if you’re comfortable with Haskell and want more flexibility.
As others have commented, JWM is not a *tiling* window manager; rather, it’s a *stacking* window manager. Regardless, it’s my WM-of-choice, which I’ve been using since (at least) October 2006.
With Ubuntu and Linux Mint (i386), and now Debian 12 (arm64, on a Raspberry Pi 4B, 8GB). With only the XDM Login Manager and no DE, it’s low-resource, and perfect for my needs.
Have you ever forgotten about the notion of the fork of ion3?
@Christian,
Yes, I’ve added Notion to my list. It’s an interesting window manager.
Why do you consider JWM a tiling window manager? Why do you consider TMUX or Tilix even window managers?
I’m a long-time Compiz user. I still like my wobbly windows! QTile had been integrated into Compiz a long time ago as a “Grid” under Windows Management. It works well on my install.
A couple of issues with this article:
1. DWM is last.
DWM is not any worse than JWM, Ratpoison, or Qtile. In fact, quite a lot of people use it. It may be a little hard to configure, and it’s made usually for developers, but just because the config is hard doesn’t mean it’s last. There really isn’t any other downsides I can think of.
2. Tilix is on this list.
Tilix is a tiling terminal emulator, not a tiling window manager. I can’t think of anybody that calls it a window manager.
3. Qtile is really low in this list.
Sure, it’s a little buggy, it’s made in Python, and isn’t that well known. Doesn’t make it worse than a terminal emulator or a stacking window manager. In my experience, the qtile bar is insane. It is VERY customizable, though nowhere near bars like polybar. You really should consider giving it a better position in the list.
4. JWM is not a tiling window manager.
This article was titled “best tiling window managers for Linux”. Why is there a stacking window manager in a tiling window manager list?
5. No instructions for Arch users(honestly not that big of an issue).
This isn’t the biggest issue as arch users should be able to install any one of these window managers/terminal emulators.
“1. DWM is last.”
“3. Qtile is really low in this list.”
If you had read the comments, you would know that dwm and Qtile were added after the article was already published so they were added towards the end. I think the author listed the WMs in random order. So the placement on the list of any particular one has absolutely no significance.
How “good” an app is depends solely on how useful it is to each and every individual user. Some people praise Windows to no end, others use Linux. Just because YOU think dwm is The Greatest Thing Since Sliced Bread does not mean everybody has to or will share your opinion.
Don’t forget the notion window manager (former ion3)!
Why isn’t there any mention about dwm here?!
@Chinmay,
I’ve included dwm tiling window manager in the list as suggested by you…
Thanks :)
Sorry for all the typos, I didn’t find an edit button.
No worries. I can’t see your comment, though
Ah! Window managers!
I fall in love with
i3
three years ago. I’m a developer and I was using Unity with Ubuntu before, and the number of bugs pushed me to try i3, with some of my colleagues praising it like it was the source of all enlightenment.I can’t use a desktop environment anymore. My whole workflow shifted from GUI to CLIs. It’s great.
I wrote a comprehensive article how to configure i3 with the minimum, explain you everything about this config, including how to personalize it yourself further -> https://thevaluable.dev/window-manager-mouseless-i3/
Thanks for your feedback, Matthieu. Yes, i3 is indeed a spectacular product. Awesome post you got there, too
Thank you!
tilix is a multiplexing terminal, and tmux is a terminal multiplexer, either of those arent window manager.
Try ratpoison window manager!!! Super minimalist and my absolute favorite :)
Thanks. Will do
Alas, I have to try tiling wms after this article. Distro hopping, DE hopping, WM hopping… Damn You GNU/Linux.
decisions, decisions
qtile wasn’t qualified!. Why??
I have never used it before a reader suggested it to me. But I now know that it is an excellent tool.
Tillix, tmux and jwm are not window managers per the title of this article.
Because they don’t manage the windows of non-terminal apps?
tilix is a multiplexing terminal, not a tiling window manager. tmux is a terminal multiplexer, not a tiling window manager either. jwm is a lightweight STACKING window manager. I guess you could call tmux a tiling wm for a console only system (along with gnu screen and dvtm), but that’s really stretching your definition, and the other two certainly don’t qualify.
Why would I want to use a tiling WM rather than a more traditional stacking WM? From what I can see, they look simplistic and primitive.
Because tiling can be a cooler way to organize windows
Definitely go for appearance over function. Must always be “kewl”.
♂️ to each his own. You already know this.
Cooler how? Cooler why? Seems nothing more than a matter of taste, and my tastes run to the traditional.
Exactly. It’s cooler to whoever chooses to use it for reasons best known to them.
I use tiling WM and stack WM (i3wm and deepin). I NEED to use tiling WM when I dev applications or web sites because I win time and space and RAM with tiling WM like i3wm.
All goes good from the keyboard (no mouse need), no window border loose place, optimal screen window’s print, very low RAM to run this WM (more power for real use). You can also consider to use them for little powered computer (ARM proc like odroid or raspberry or other). There is some real efficient reason to use tiling WM, it is not for fun.
The visual appearance is certainly not the main draw. Tiling window managers main goal is the efficient organization of space, both in the sense of actual physical space on your screen, and also in the sense of conceptual space.
When I talk of conceptual space, I mean the notion of organization of tasks. Tiling wms allow me to easily compare documents side by side, group collections of related tasks. and see exactly all of the information I need at the same time.
For instance, I use a tiling wm at home, but at work I do not. At work I frequently find myself wanting to shift through a few different instances of file managers, each with a few tabs studying different parts of a file tree, or alternatively 4 or 5 terminal windows, also each tabbed up a few times.
I find that I spend a lot of my time at work simply shifting through this mess, looking for the specific instance that I wanted, or carefully arranging windows so that I can compare 3 or 4 sources of information at once. At home, on my tiling wm, all of these issues are almost nonexistent. My work computer nearly drives me insane sometimes for this reason.
Upon observation of other people using stacking wms, I found that most of them try to keep very few things running at once, and often close and reopen files several times in a session. They probably aren’t thinking specifically that they are avoiding my brand of chaos though: It is just a habit for them. Tiling wms got me out of this habit, because they make it unnecessary. Having 8 or 9 terminals going at the same time does not feel any more confusing than having one of them.
Your complaint is somewhat valid: Tiling wms may well look simplistic and primitive. They are not about style, appearance, user friendliness or intuitiveness. They are about efficiency and functionality ONLY. While many see form vs. function as a sort of balance, often trying to find compromises that improve both together, tiling wms are about what happens when you attempt ONLY to optimize function and disregard form entirely. They are absolutely not for everyone, but some people (myself included) find it very hard to work without them.
“They are about efficiency and functionality ONLY”
Only if you are used to them and fluent in their usage. For somebody who isn’t (like me), using them is very inefficient. Don’t get me wrong, I am not criticizing anybody for using tiling wms. I just wanted to know what the allure was. Now I know. Different strokes for different folks.
I concur!
What I actually love about tiling wm is the accessibility of workspaces.
Most of the windows occupy the whole screen and do not if you open more than one window in a single workspace, but they do not overlap by default. So you can have a whole workspace just for your web-browser, a workspace for multiple virtual terminals that do not stack on each other, a workspace for an email client and some other workspace that do not do tiling and behaves like a traditional one.
I have no idea what’s the use of overlapping windows though but if there’s an advantage in using an overlapping windows then tiling wm can do it too.
The desktop is also much cleaner without icons and shortcuts scattered around. Even if you manage to keep it clean it’ll eventually become a mess.