Why I Love the i3 Window Manager on Linux


Bloat is the bane of modern computing. Have you ever uninstalled apps or disabled services just to put your system on a diet? i3 is like a desktop on a diet, a lean, simple, yet powerful system that improves my workflow efficiency dramatically—and it’s not just for experts either.

Lean and Lightweight, i3 Doesn’t Drain Resources

An i3 desktop that displays 2 tiled windows: a terminal on the left and a browser window on the right.

Graeme Peacock/How-To Geek

i3 has no flashy graphics, no CPU- or GPU-intensive processes, and it doesn’t hog too much RAM. It does one thing, and it does it well: tiling.

In contrast, a large part of the desktop environment experience is subtle and smooth animations. When you move or resize a window, it doesn’t suddenly pop. Instead, there’s a succession of movements, and it must render each frame. Rendering frames takes resources, including battery power.

i3 is not the lightest window manager in terms of RAM, but it’s still light, and its ease of use makes it a serious contender.

Changing workspaces is instantaneous; in fact, if it were physically possible, I could switch between workspaces faster than my fingers could press the buttons. There are no sluggish delays or huge spikes in CPU usage. It’s indispensable for those who want a really lightweight desktop experience.

Efficient and Rapid, Everything Mapped Directly to My Fingertips

When working with a vast number of windows, do you find switching between them taxing? When I used a desktop environment, I had a vaguely defined workflow, but generally I dumped windows into random workspaces. Without a well-defined workflow, I spent far too much time cycling through the wrong windows. It was exhausting; my workspaces felt more like a junk drawer than a desktop.

The culprits are a lack of organization and a lack of muscle memory. With the junk drawer approach, you have to constantly think about how to access the correct window—thousands of times per day. With i3—through its rigid rules and practice—I press the correct buttons quicker than I can think.

Related


What Is a Tiling Window Manager on Linux? (and 5 to Try)

If you like to keep your hands on the keyboard, these might be worth a try.

My golden rule is, if the applications or windows work well side-by-side, then I group them into the same workspace. For example, my notes and research browser go into one workspace; my general browser goes into another. For development, each application goes into a separate workspace. Since i3 strictly enforces assignment rules, I know which workspace they go into beforehand. It’s like having a set of well-organized drawers; when I need something, I know exactly where it is.

Effortless Layouts: i3 Does Window Snapping for Free

An i3 desktop that displays 6 tiled windows: 1 on the left and 5 on the right.

Graeme Peacock/How-To Geek

Sticking with the aforementioned junk drawer analogy for a moment, wouldn’t it be brilliant if you could throw items into it, and they neatly organize themselves? This is what tiling window managers do: newly opened windows snap flush with their siblings. You can open as many windows as you wish, move them around, and change their layout—each time they snap flush.

Snapping is the tiling part of tiling window managers; they arrange themselves in a tile-like fashion. Tiling is a critical feature when I work with intense focus because it removes the costly distraction of window placement. Such a burden is negligible in isolation, but when it’s hundreds of times a day, it becomes tiresome. It’s such an important feature for me that I would not go back to a desktop environment.

Simplicity: Easy for Beginners; Easy for Experts

You might think that i3 seems complex, but it’s not; it’s suitable for beginners because code is not mandatory. The configuration is simple and declarative. Here’s a snippet:

bindsym Mod4+a workspace foo
bindsym Mod4+b workspace bar

This snippet creates two keymaps; both activate a different workspace called foo and bar—to activate them, press the Windows key and A or B. Here’s another example:

assign [class="^firefox$"] foo

This assigns newly created Firefox windows to a workspace called foo, using its X Window class to identify it.

A balance of simplicity, expressiveness, and advanced features is why it’s suitable for either beginners or experts. You choose the level that you’re comfortable with, and learning it is not like scaling a brick wall.

No Strings Attached, Remote Control Grants You Full Autonomy

It’s possible to control i3 via its Inter-Process Communication (IPC) interface: a special file called a Unix domain socket. We use the i3-msg command to do just that. For example, to change to workspace 3:

i3-msg workspace 3

With the IPC interface, I can send commands and listen for events—such as workspace or window change events. The beauty of i3 may be its declarative simplicity, but because I can script, I can still leverage substantial power, overcoming the limitations of its purely declarative configuration file. Even if you’re not a programmer, you should probably learn to script; doing so opens a world of customization possibilities.

Related


Shell Scripting Is Still Relevant! 7 Reasons to Learn Bash Scripting

With so many sophisticated programming languages out there, is there a place for Bash Scripting?

Most window managers provide an IPC interface, and it’s the smart way to control them because it’s decoupled, which means loosely connected. I can write one script that applies to many window managers. I highly recommend this approach because it gives me the freedom to roam between window managers in the future.


i3 is a simple declarative tiling manager: suitable for beginners, without hindering experienced users. Simplicity is the key ingredient. I get a lot of power for very little configuration, a quality that also appeals to beginners.

If you’re looking to install i3, you should check your distribution’s repositories; i3 is universal and packaged almost everywhere. If you’re looking for an out-of-the-box experience, Regolith uses i3 by default, and it’s a core part of the user experience. Either way, you will want to learn more about what i3 is and how to use it.

Related


Why I’m Not Sold on Linux Tiling Window Managers

Sometimes it’s better to stack (but I still tile when I want to).

By admin

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *