Translation(s): English


What is i3?

The i3 Window Manager (i3wm), not to be confused with the Intel processor or i386 architecture is a window manager that was built from scratch to get around some of the limitations of wmii. i3 is popular among enthusiast who value the maximizing of screen real-estate and keyboard-driven operation.

To be specific i3 is a dynamic tiling window manager.

A window manager is less robust, but much less resource intensive than a typical desktop environment such as GNOME. i3 specifically lacks actual 'desktop' functionality and so it doesn't have icons, a taskbar/launcher, or a wallpaper on its own. The i3bar adds workspace switching, status and tray icons in lieu of a traditional taskbar; dmenu is generally used in lieu of a traditional launcher, and wallpapers can be added with an external utility like feh or nitrogen. This all works toward the goal of full screen usage. i3 supports both gtk and qt applications and themes but will not do anything to standardize them.

i3 draws windows with minimal decoration, generally forcing them to a size that it determines, and allows them to be placed easily on many virtual workspaces which can each be arranged independently with as many or as few windows as you would like.

Tiling means that windows, by default are static and cannot be dragged around the workspace unless they are set to 'float'. While i3 supports floating windows as well as tabbed or stacked windows, tiling is generally the default and preferred setting. Tiling will ensure that at any given time 100% of the available workspace is being occupied and that windows will never overlap.

Dynamic means that you are able to change the arrangement of windows at any time. i3 will intelligently resize and position windows into equal parts as others are added and removed according to the mode that it is currently set to (horizontally split/vertically split). After windows are in place they can also be moved around, split differently and resized.

i3 in Debian

i3 is not included in any of the official Debian installers but is available in the repositories.

Installation

i3 requires an X-server and is not supported under Wayland. It is available as a metapackage including i3-wm, i3-lock, i3-bar, and dwm-tools. suckless-tools should also be installed to enable dmenu and i3status for application launching and system information respectively.

apt-get install i3 suckless-tools

Configuration

Upon the first login, each user will be prompted to have a config file generated for them as ~/.i3/config if this file doesn't already exist. The prompt allows the user to select either Alt or the Windows Key (AKA Meta Key, Start Key) as the $Mod key for i3.

This key is the foundation for all keybinds that the window manager will use. The Windows Key is recommended, since Alt is used by many other applications for other purposes. i3 will take precedence over other applications and other functionality based on keybinds used by i3 will be lost.

Once the config file has been generated all mandatory configuration is complete, but most users will do a lot of editing to the config file to customize their instance of i3.

The most fundamental keybind in the default configuration of i3 is $Mod+d which will run the application launcher dmenu. With dmenu, the recommended first application to run is an editor or terminal so that you can read and modify the config file.

The config file is plain text and fairly intuitive. Keybinds can be added with:

bindsym $Mod+<key> <command> <arguments>

example:

bindsym $Mod+i exec iceweasel www.debian.org

This example launches debian.org in iceweasel when $mod and the 'i' key are pressed.

Other configurable options include window management keybinds, the configuration of window borders and titlebars, naming workspaces, assigning of Applications to specific workspaces by default, management of i3bar (including auto-hiding), specifying start-up applications, and so on.

i3 needs to be restarted for changes to take affect. This will not cause any applications to close, but can occasionally cause them to move around.

i3 restart

Configuring the restart command as a memorable keybind can save a lot of time while configuring.

bindsym $Mod+<key> restart

For further information on the configuration of i3, consult the documentation.

See also