Tiling desktops are graphical environments in which windows open in a grid. They appeared early in Linux’s history and have always had a few followers, especially among developers. However, for the last two decades, tiling desktops were often ignored in the efforts to mimic Windows and macOS and to improve usability. However, in the last few years, tiling desktops have become more popular, most likely because modern computing power means that more users are working with more windows open. Today, users can choose from a variety of tiling desktops: Some have been around for years, and others are more recent.
The idea behind tiling desktops is to reduce clutter on the desktop and make windows easier to find. By contrast, the standard or stacking desktop becomes less orderly with each open window. Most stacking desktops open windows in the upper left corner or some other default location. As users search through windows, the unwanted ones tend to be dragged aside, destroying what little order existed. In fact, the clutter is so great that many stacking desktops have a Show Desktop icon or widget. Others, like Ubuntu’s discarded Unity desktop, encourage users to open only one window at a time. Tiling desktops, on the other hand, arrange windows in a grid, making them easy to find. Should the windows become too numerous and too small for comfortable browsing, users can use virtual workspaces to add another grid. You can remove windows from the grid to increase their size and temporarily stack them on top of the grid. Another advantage of tiling desktops is that they can be easily navigated from the keyboard, although many also support a mouse.
You can get a feel for tiling desktops from terminal multiplexers like GNU Screen, tmux, or Tilix (Figure 1), which turn a terminal into a tiling environment with multiple prompts. When you are ready to try an actual tiling desktop, here are some of the most popular choices. Many of these options can be installed as desktop environments in distributions, although a couple are also distributions in their own right.
Inspired by the terminal multiplexer GNU Screen, ratpoison (Figure 2) is one of the earliest tiling desktops, and it still has a following today. Ratpoison is written in the C programming language (although some users may prefer StumpWM, which offers similar features and is written in Common Lisp). The name is a playful reference to the fact that ratpoison does not require a mouse, relying instead on keyboard commands that closely follow those of the once popular Emacs text editor. Moreover, although it can launch graphical applications, they are run from the command line. By default, ratpoison uses a single workspace, but it usually installs with a script called rpws to enable additional ones. If you value speed and configurability and have the patience to learn, you will find ratpoison ideal. If you value user-friendliness above all else, you should look at another tiling desktop instead.
Forked from the older window manager dwm, awesome (Figure 3) quickly went on to eclipse its original inspiration. Like many tiling window managers, awesome is designed for power users and those who enjoy tinkering. Written in C and Lua, awesome has all the expected features of tiling desktops, while enjoying a reputation for speed and configurability. In fact, an online search reveals page upon page dedicated to scripting for awesome, including the awesome project website and Debian’s awesome-dedicated wiki. These websites should make customizing awesome much easier.
Although written in Haskell, XMonad (Figure 4) has much in common with awesome. Both were forked from dwm at roughly the same time and are highly configurable, with plenty of scripts available online that users can easily modify. However, XMonad is aimed at more general users, with clear documentation that includes an FAQ and a step-by-step guide to basic navigation. Just as importantly, XMonad offers many features such as separate layouts for workspaces, separate status bars for screens, and on-the-fly updating of the display when configuration files are updated. Many features introduced by XMonad later have been copied by other tiling managers.
The i3 Family
i3 (Figure 5), or i3-wm as it appears in some repositories, is one of the most widely used tiling desktops. You navigate i3 by keyboard using commands starting with the Mod key (Alt or Win) plus letters or numbers for switching tiles, resizing the current tile or making it full-screen, or opening a virtual workspace. Similarly, applications are started with Mod+d. Users can also add a new tile that is horizontal or vertical to the current one. Minor or temporary windows, such as pop-up dialog boxes, can be set to float so that they do not take up a lot of room. Should you have multiple screens, one workspace is set up on each screen by default. The result is a lot of flexibility, all of which can be customized in text-based configuration files, but the flexibility comes at the cost of a lot of learning.
Like many popular open source apps, i3 has spawned a number of forks. For instance, i3-gaps allows spacing between tiles, which makes for easier reading. More conveniently, Regolith (Figure 6) places i3-gaps in both an Ubuntu-based distribution and a window manager package for related distributions. Regolith features a handy cheat sheet of keystroke commands and can save snapshots of window layouts for future use. Yet another fork, Sway, runs on Wayland.
Designed by System76 for its workstations and laptops, Pop!_OS (Figure 7) is probably the main reason for the recent renewed interest in tiling desktops. Although tiling is not enabled during installation, a button in the desktop’s upper-right corner enables tiling and provides a drop-down list of features and settings, including a list of keyboard shortcuts, can be conveniently displayed as a tile, and a setting for adjusting the gap between tiles. Although tiles are arranged automatically, you can adjust each tile’s size by dragging with the mouse. Best of all, Pop!_OS lets you discover how tiling works in a matter of minutes, making Pop!_OS by far the most user-friendly tiling desktop available today – so much so that tiling desktops are now less exclusive than they once were. Since the basic desktop is based on Gnome, the tiling features are already available for Ubuntu as an extension and will likely soon be ready for other distributions as well.
Unknown to many users, a few traditionally stacking desktops have offered their own limited form of tiling. Gnome, deepin, and KDE Plasma all provide an overview of virtual desktops and the windows open on them, although Gnome and Plasma remain primarily stacking desktops. Due to the increased interest in tiling, Gnome is currently developing PaperWM, a tiling extension, while KDE offers kwin-tiling, a script for its window manager.
A word should also be said about Plasma Activities, which are separate stacking desktops, each with its own desktop environment and icons. Activities can be organized by task, or by some other criterion. For example, I have one Activity devoted to graphics, with icons for Gimp, Inkscape, Krita, and LibreOffice Draw, and another for the command line, which includes only icons for a terminal and screenshots. Other users, I have heard, have separate Activities for different projects, or for school or office. Such specialization minimizes clutter and also makes required resources easy to find and a single click away, providing similar benefits to tiling.
All these solutions require rethinking the way you work. On the one hand, if you are a tidy worker, opening one application at a time and closing the window when you are done, you may not find much benefit in tiling or the hybrid features of traditional stacking desktops. Similarly, if you prefer using a mouse, some tiling manager’s reliance on keyboard commands may not suit you. On the other hand, if you regularly have 20 or more tabs open in your web browser, a tiling manager or a hybrid just might help you to organize your work and improve your efficiency.