From ArchWiki
Revision as of 18:53, 11 August 2010 by Infiniteh (talk | contribs) (Introduction: typo; reformatted quotation and used proper English quoting rules)
Jump to: navigation, search


i3 is a manual tiling window manager which places clients into containers. Containers can be stacked (like wmii) or tabbed (like ion3). i3 also supports floating windows.

From the website:

"i3 is a tiling window manager, completely written from scratch.
"i3 was created because wmii, the author's favorite window manager at the time, didn’t provide some features they wanted (Xinerama done right, for example), had some bugs, didn’t progress since quite some time and wasn’t easy to hack at all (source code comments/documentation completely lacking). Still, we think the wmii developers and contributors did a great job. Thank you for inspiring us to create i3.
"Please be aware that i3 is primarily targeted at advanced users and developers."


i3 is now in the community repo, installing i3 is either possible with installing the group:

pacman -S i3

or if you only want the window manager itself by installing i3-wm:

pacman -S i3-wm

i3-git is available in AUR - git

Then edit your ~/.xinitrc and add:

exec i3

If you want i3 to log it's output (useful for debuging) add this line to ~/.xinitrc:

exec i3 -V >>~/.i3/i3log ">&1

If you use the nvidia binary drivers provided by nvidia you must use the following in your ~/.xinitrc due to nvidia not yet supporting randr

exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1


i3 is configured using a simple text file. It first looks for ~/.i3/config and if it doesn't exist, reads the default config at /etc/i3/config. So to start customizing, copy the config file to your home directory:

cp /etc/i3/config ~/.i3/config

The config allows you to change such things as:

  • Border colors
  • Font
  • Keybindings
  • Workspace names
  • Default container layout
  • Assignment of apps to specific workspaces

The i3 User's Guide gives a nice overview of the config settings.

Status Bar

The internal statusbar does merely display a list of the existing workspaces and does not accept infos from standard input. dzen2 can be placed in the information bar at the bottom of the screen. Information for dzen2 can be generated using i3status or conky.

i3status | dzen2 &


conky | dzen2 &

The svn development version of dzen2 offers a -dock option, which puts dzen2 at the bottom of the screen and tells i3 not to manage it. However, if you use both the internal statusbar and conky/dzen2 you get a duplication of statusbars. You could avoid to dock dzen2 and put it just over the internal statusbar. However, a cleaner solution is to disable completely the internal statusbar with:

workspace_bar no

Now you can get back your list of workspace, since i3 makes it available for external tools through an ipc socket. In the AUR you can find i3-wsbar, which is able to get the list of workspaces from the ipc socket. Thus you can pipe the conky output to i3-wsbar and tell i3-wsbar to use dzen2. E.g., put the following in ~/.i3/config:

exec conky | i3-wsbar -c "dzen2 -x %x -dock -fn -*-profont-*-*-*-*-11-*-*-*-*-*-*-* -ta l"

Please note that in your conky configuration file you can use the color codes for dzen2, so that you can get a nice, colored statusbar (see this sample conkyrc and the corresponding screenshot).

Other Tools

  • i3 currently uses dmenu as a launcher (by default, bound to Mod1+v)
  • i3lock - A modification of slock