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 circumvent some of the limitations of wmii. The i3 is popular with enthusiasts who value maximizing actual screen and keyboard operation.
To be specific, i3 is a dynamic window manager.
A window manager is less robust, but consumes much less resources than a typical desktop environment such as GNOME. The i3 specifically does not have current desktop functionality, so it has no icons, a taskbar / launcher, or a wallpaper of its own. i3bar adds desktop, status, and tray change icons instead of a traditional taskbar; The dmenu is usually used in place of a traditional launcher, and wallpapers can be added with an external utility such as feh or nitrogen. This all works towards the goal of full screen use. I3 supports gtk and qt applications and themes, but will do nothing to standardize them.
The i3 designs minimally decorated windows, usually forcing them to a size you determine, and allows them to be easily placed into many virtual workspaces, which can be organized independently with as many or as many windows as you wish.
Tiling means that windows by default are static and cannot be dragged across the workspace unless they are set to float. Although i3 supports floating windows as well as tabbed or stacked windows, tiling is usually the default and preferred setting. Tiling will ensure that at any time 100% of the available work area is being occupied and that windows never overlap.
Dynamic means you can change the arrangement of windows at any time. I3 will intelligently resize and position windows in equal parts as others are added and removed according to the mode in which it is currently set (split horizontally/vertically split). Once the windows are in place, they can also be moved, split differently and resized.
i3 in Debian
i3 not included in any official Debian installer, but it is available in major repositories.
i3 requires an X-server and is not supported by Wayland. It is available as a metapackage that includes i3-wm, i3lock, i3status, dunst, and suckless-tools.
# apt install i3
If you want to install i3 minimally without useful packages, such as i3lock and i3status, use:
# apt install i3 --no-install-recommends
After the first login, each user will be prompted to have a configuration file generated for them such as ~ /.i3/config or ~ /.config/i3/config if this file still not exist. The prompt allows the user to select Alt or the Windows key (AKA Meta key, Start key) as the $Mod key for i3.
This key is the basis for all keybinds that the window manager will use. The Windows key is recommended because Alt is used by many other applications for other purposes. I3 will take precedence over other applications and other keybind-based functionality used by i3 will be lost.
Once the configuration file has been generated, all required configuration is complete, but most users will do a lot of editing in the configuration file to customize their i3 instance.
The most fundamental keybind in the default i3 configuration is the $Mod + d, which will launch the application startup dmenu. With dmenu, the first recommended application to run is an editor or terminal so you can read and modify the configuration file.
The configuration file is simple and quite intuitive. Keybinds can be added with:
bindsym $Mod+<key> <command> <arguments>
bindsym $Mod+i exec firefox www.debian.org
This example launches debian.org in firefox when $mod and the 'i' key are pressed.
Other configurable options include window management keybinds, window border and title bar configuration, workspace naming, application assignment to specific desktops by default, i3bar management (including autohide), startup applications and so on.
i3 must be restarted for the changes to take effect. This will not cause any applications to close, but may occasionally cause them to move.
Setting the restart command as a memorable keybind can save a lot of time during configuration.
bindsym $Mod+<key> restart
For more information about setting up your i3, see theDocumentation.
There is no default way to set wallpapers in i3 and this is a feature many users switching from a desktop environment will miss. You can install programs like nitrogen that provide you a way to set wallpapers. Another way to do this is to use feh. A nifty trick is create a script that will set a random wallpaper from a folder and bind it to a keybinding, so whenever you press the keybinding the script will set a new wallpaper. The script given below does exactly that.
# A simple script to change to a random walpaper from a specific folder when executed feh --randomize --bg-fill ~/Pictures/Wallpapers/
I3-gaps is an i3 fork that has additional features on top of i3, especially the ability to add spaces between windows. Currently, i3-gap is not supported on Debian, however a bug report has been submitted about this.
It is still possible to get i3-gaps from Debian. It is not fully supported by Debian, so do not expect appropriate support for it. To make it work in Debian, it can be compiled from source and installed with make install.