What Is a Tiling Window Manager on Linux? (and 5 to Try)
Linux & macOS Terminal
Summary
- Tiling window managers arrange the windows on your screen efficiently to maximize productivity, leaving other programs to handle other jobs.
- They do require some initial setup time, and you may have to familiarize yourself with programming languages to do this.
- Popular options like i3, Sway, Hyprland, Qtile, and AwesomeWM offer varied approaches and setups.
Tiling window managers have the potential to enhance your productivity, after you spend a little time setting one up anyway. Let’s look at how they work and what you need to get started.
What Is a Tiling Window Manager?
On a typical Linux desktop, once you log in, you’re presented with a full-fledged desktop environment, like the GNOME Desktop, for example. This is a complex suite of software that not only draws the windows you use, but also includes a text editor, terminal, and plenty of other apps.
On the other hand, a window manager (WM) does just that: it manages windows. Nearly everything else is left up to either you or some other program. A tiling WM won’t typically offer any built-in power management, as an example. Instead, this is either offered as plugin functionality or you’ll need to add it yourself.
Both GNOME and KDE Plasma feature window managers, but they’re part of a much larger collection of software. While you can install KDE easily, you can’t only install KWin, the window manager that the desktop uses.
That’s the window manager part covered, but what about the tiling part? That all comes down to how exactly windows are arranged as you add them to the screen. Actually, opening those windows in the first place is slightly different as well.
How Tiling Window Managers Are Different
If you look at a typical desktop, chances are pretty good you’ll see a fair amount of unused space between windows. Tiling window managers simply do away with this, shifting windows around so that your display area is always divided among the currently visible windows.
The ability to tile windows does not necessarily make a tiling window manager. For example, macOS introduced window snapping in Sequoia, and Windows has had various forms of window snapping over the years including Windows 11’s latest Snap feature. Neither of those snapping implementations has much in common with a traditional tiling window manager.
Instead, you’ll rarely need to manually tile windows in a tiling window manager. This happens automatically as windows are created. You can shift them and move them, and the other windows will move accordingly.
Because of this method of windows, you end up with two approaches for tiling window managers. Some follow various predetermined schemes to dynamically arrange windows, while others will either allow or require you to specify where to place a new window when it launches. We’ll look at both dynamic and manual tiling window managers below.
Tiling Window Managers to Try
Here are some tiling window managers we recommend giving a try if you’re new to the scene.
i3
One of the most popular tiling window managers you’ll encounter, the i3 window manager is easy to get started with, for a few reasons. To start, while some other tiling WMs use a programming language like Lua or Python for configuration, i3 uses a typical config file.
The very popularity of i3 also makes it a great choice for beginners. Because so many people use it, there are plenty of third-party solutions for the various aspects of setting up your configuration. While i3 does install a very basic configuration, you’ll still likely want the documentation open on another device for your first time.
The i3 window manager uses manual tiling, which means you can easily split windows, much like you would in a terminal with tmux. In my time using i3, I quickly got used to the workflow. That said, after spending time with WMs that use dynamic tiling, I think it could feel strange now.
Compared to other tiling window managers, i3 also has a robust set of utilities. The i3lock
command handles locking and unlocking the screen, for example, something that many other SMs leave completely up to you to configure.
One thing to keep in mind is that i3 uses X11 instead of the newer Wayland protocol. If you’re using Wayland, the Sway window manager we’re looking at next is perfect for you.
Sway
If this section is shorter than the others, it has nothing to do with the quality of Sway WM. This is a fantastic tiling window manager, it’s just very similar to i3 because, well, that’s exactly what it’s meant to be.
As mentioned in the section about i3 above, the Sway window manager was developed to be a drop-in replacement for i3, but running on the Wayland backend. This means you can back up your i3 config, install Wayland and Sway WM, copy over your i3 config, and everything should work just fine.
Sway features support for every i3 feature—and even a few extras. Aside from that, it has the same advantages. It has also inherited much of i3’s popularity, so in addition to the wealth of i3 information available, you’ll find plenty dedicated to Sway as well.
Hyprland
Hyprland is a newer tiling window manager, running on the Wayland backend. Unlike Sway, which does this mainly for compatibility reasons, Hyprland uses its capabilities to provide much more eye candy than many other tiling window managers.
Unlike i3 and Sway, Hyprland is a dynamic window manager. This means that it follows a set of predetermined layouts when creating new windows. For example, it might put your first window on the left, your second on the right, then for the third, split the right side of the screen vertically.
When it comes to eye candy, the first aspect you’ll notice in screenshots are rounded corners, though it’s possible to add these in many other WMs. On the other hand, you won’t find Hyprland’s flashy, bouncy animations in many other window managers.
Fancy animations aren’t the main reasons most people opt for a a tiling window manager, but if you want a hyper-productive desktop you can still show off to your friends, Hyprland is a great option.
Qtile
Like Hyprland, Qtile is a relatively new kid on the block, but it’s a powerful dynamic tiling window manager. Both fully written and configured in Python, Qtile also works with either X11 or Wayland, meaning you can run it regardless of your windowing protocol.
I’ve spent quite a bit of time with Qtile and was impressed with both its speed and stability, but those aren’t what I’d consider this window manager’s main strength. Instead, the true advantage of Qtile lies in its excellent documentation.
While I’ve needed to spend plenty of hours searching random forums or Reddit threads to find key info for other WMs, nearly everything I’ve ever wanted to know about Qtile has been in the docs. For those getting started, the visuals for keybindings alone are essential.
Writing Python code isn’t for everyone, especially if you’re not a fan of indentation-based syntax. That said, the documentation helps a lot here as well.
AwesomeWM
Finally, we come to an especially unique example. While AwesomeWM is a tiling window manager, by default, it launches running in floating mode. Even stranger, at least compared to most tiling WMs, it features a menu for launching apps, at least once you configure it correctly.
Anecdotally, it seems that of the window managers we’re looking at here, AwesomeWM is the trickiest to get started with. Actually using the window manager is easy thanks to dynamic tiling. Plus, it’s simple to swap through the different available layouts. The issue comes down to getting everything configured.
AwesomeWM uses the Lua programming language for all of its configuration, and while this language has plenty of fans, it can take some getting used to if you’re new to it. For example, I’ve been using AwesomeWM as much window manager for around half a year, but Neovim (which also uses Lua for its config) for much longer, and I’m still not very comfortable with Lua.
Still, this configuration makes AwesomeWM very extensible and customizable. Like any good tiling window manager, once you find a configuration that fits your workflow, you won’t want to use anything else.