For a significant period, I relied on comprehensive desktop environments such as GNOME while using Ubuntu. These environments are visually appealing, user-friendly, and typically function seamlessly right after installation. However, as someone who spends considerable time in a terminal, I began to notice that I was dedicating more time to managing window layouts rather than focusing on my tasks. This realization led me to transition to the i3 Window Manager, a tool designed specifically for efficient window management, and since then, my productivity has dramatically improved. I’ve never returned to a traditional desktop setup.
Reasons Behind My Preference for i3 Window Manager
Unlike full-fledged desktop environments, i3 is a dedicated window manager. This means it lacks unnecessary graphical layers, superfluous background services, and visual distractions. Instead, it offers a streamlined interface with logical window tiling, complete keyboard navigation, and a straightforward text-based configuration file. For instance, upon opening two terminal windows, i3 automatically splits the screen into non-overlapping tiles, ensuring optimal use of space and visibility.
While desktop environments like GNOME excel in user-friendliness and aesthetics, I found I needed a solution that fostered speed and minimized distractions. Below are several compelling reasons why I have grown to favor i3wm:
Keyboard-Driven Efficiency
If you’re comfortable with keyboard shortcuts, particularly those from Vim, you’ll quickly feel at home in i3. The reliance on keyboard commands allows you to navigate, launch applications, and manage windows without ever needing to reach for a mouse. After memorizing the keybindings, everything becomes a matter of fluid keyboard use.
Moreover, everything from keybindings to colors and startup options is controlled through a user-friendly text configuration file, enhancing customization potential.
Rapid Workspace Switching
Another standout feature of i3wm is its exceptional workspace management. With the capability to create up to 10 workspaces and switch between them instantaneously using simple key combinations (e.g., Mod + 1 or Mod + 2), i3wm eliminates any delay or lag, enabling efficient context switching.
Incredibly Lightweight
One of i3wm’s primary advantages is its minimal resource consumption. While modern machines can handle substantial RAM, using a lightweight window manager like i3 can enhance system performance, particularly on older hardware or while running resource-heavy applications. Although precise memory usage varies based on configuration, a typical minimal session with Xorg and essential utilities usually consumes only 100 to 300 MB of RAM—considerably less than many contemporary desktop environments that can easily exceed one gigabyte of memory at idle.
Why Tiling in i3wm is Beneficial
i3wm revolutionizes window management by automatically arranging windows in a tiled format, significantly reducing clutter and maximizing screen space. This feature is particularly valuable for users like me who often have a text editor, terminal, and browser open concurrently, allowing for effortless accessibility without having to cycle through numerous windows.

Installing and Setting Up i3wm
Installing i3wm on Ubuntu is a simple task since it’s available directly from the official repositories. Other distribution users can typically find i3wm through their package managers as well.
To begin, update your package lists with the following command:
sudo apt update
Next, install i3 with:
sudo apt install i3
You may also locate i3 within your Software Center for installation.
During installation, you might be asked to select a display manager. If uncertain, using the default option (often GDM on Ubuntu) is recommended. This process will install i3, along with i3status (for the status bar) and i3lock (for screen locking), providing users with a comprehensive basic setup.
For an extended installation, you can manually execute:
sudo apt install i3-wm i3status i3lock dmenu
After the installation process is complete, log out of your current session. At the login screen, click the small gear icon (often found in the right corner or near the password input) and select i3 from your desktop options before proceeding to log in.

Your first launch of i3 will prompt you to create a default configuration file—accept this option. You’ll then be asked to select a Mod key, either the Windows key or Alt. This key differentiates regular typing from i3 commands, so choose whichever feels more intuitive. I prefer the Windows key to avoid interference with terminal shortcuts.
Using i3wm: Key Functions
With i3wm successfully installed, let’s explore the fundamental tasks you can efficiently carry out:
Navigating with Keyboard Shortcuts
In i3wm, most actions are performed using keyboard shortcuts. While there are numerous predefined keybindings, you can customize them to suit your preferences. Familiarizing yourself with these basic shortcuts is essential before proceeding.
To begin, you’ll likely want to open a terminal. Use Mod + Enter to launch one. Pressing Mod + Enter repeatedly will reveal i3’s default screen division pattern.

To reposition windows, utilize Mod + h to navigate left, Mod + j to move down, Mod + k to ascend, and Mod + l to shift right. This scheme will be somewhat familiar to Vim users, albeit with slight variations. You can also adjust it to match actual Vim bindings.
To move windows, simply add Shift to any directional hotkeys; for example, move a window down using Mod + Shift + j.
If you want to configure the window splits, direct the desired window and use Mod + h for horizontal splits or Mod + v for vertical ones. Closing a window is also straightforward with Mod + Shift + q.
Manipulating Windows within i3wm
i3wm accommodates floating windows. Some applications, such as GIMP’s toolbars, will open as floating by default, but you can enable floating for any window using Mod + Shift + Space, toggling between floating and tiled modes for the selected window.

Moreover, forcing any window to fullscreen mode can be achieved with Mod + f, and toggling back is just as simple.
Launching Applications in i3wm
To launch programs in i3wm, use a launcher, with dmenu being the default option. Alternatives like rofi can also be employed.

Launchers function similarly to search tools for your applications. Simply enter the name of the desired program and press Enter to initiate it. The launcher remembers frequently used applications and lists them when opened, allowing easy access without typing.
The hotkey to activate the launcher is Mod + d.
Basic Configuration of i3wm
The customization options of i3wm are extensive, allowing for a high degree of personalization. Here, we’ll cover several common configurations.
Upon generating the default configuration during the initial launch, it finds its place in the “~/.config/i3/” directory.
mkdir -p ~/.config/i3cp /etc/i3/config ~/.config/i3/config
Changing colors is straightforward, as i3wm utilizes hex values similar to CSS. You can define various classes, each with a border, background, text, and indicator value. This organization allows for easy adjustments.
class border backgr.text indicatorclient.focused #1e1e1e #1e1e1e #151515 #AA0000client.focused_inactiveclient.unfocusedclient.urgentclient.placeholderclient.background #454545
Within the i3wm configuration, the keyword bindsym creates a new hotkey, while exec launches applications. This functionality enables you to create hotkeys for your most frequently used programs, allowing access without needing the launcher. For example:
bindsym $mod+Shift+w exec firefox
You can also set applications to start automatically by incorporating exec in your configuration.
exec firefox
Customizing Your Status Bar
The status bar serves as a crucial element in your desktop environment, displaying your workspaces and essential information.i3wm offers a variety of customization options for the status bar.
Near the end of the configuration file, you will encounter a section labeled bar. All status bar configurations will reside within this block.
The status_command parameter allows you to select the desired status bar. While the default option is i3status, alternative choices are available, including i3blocks, lemonbar, and polybar, each with unique features.
You can modify the position of the bar using:
position top
A separate colors block can be established here, allowing you to similarly customize the i3 color scheme.
colors { #class #border #bg #txt focused_workspace #454565 #252525 #1E1E1E active_workspace inactive_workspace urgent_workspace binding_mode background #151515}
Determining If i3 is Right for You
While i3 is undeniably powerful, it may not suit everyone’s needs. Users accustomed to traditional point-and-click interfaces might initially find i3’s minimalist approach daunting. The absence of a graphical settings panel means that most configurations must be executed manually via a text file. This lack of visual elements can feel restrictive for those who lean heavily on graphical organization.
It is also crucial to note that i3 only supports X11, with no functionality for Wayland yet.
For gamers, i3 can be compatible, but it may require additional configuration. For instance, while fullscreen games typically work under X11, i3 lacks an inherent compositor, which can lead to screen tearing unless one is set up manually. Therefore, if gaming is a top priority, opting for a complete desktop environment with built-in display management and Wayland support may prove more convenient in the long run.
Leave a Reply