From ArchWiki
Revision as of 16:54, 12 August 2010 by Infiniteh (talk | contribs) (used Filename template for consistency, removed extraneous double-quote)
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 accomplished by 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 Template:Filename and add:

exec i3

If you want i3 to log its output (useful for debugging), add this line to Template:Filename:

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

If you use the nvidia binary drivers provided by nvidia, you must use the following in your Template:Filename 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 Template:Filename and if it doesn't exist, reads the default config at Template:Filename. 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 merely displays 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 docking dzen2 and simply place it over the internal statusbar. However, a cleaner solution is to completely disable the internal statusbar with:

workspace_bar no

Now you can get back your list of workspaces, 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 Template:Filename:

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