[http://i3wm.org/ i3] is a dynamic [[Wikipedia:Tiling window manager|tiling window manager]] inspired by [[wmii]] that is primarily targeted at developers and advanced users.

−

[http://i3.zekjur.net/ i3] is a dynamic [[Wikipedia:Tiling window manager|tiling window manager]] inspired by [[wmii]] that is primarily targeted at developers and advanced users.

+

Clients (windows) are organized in a tree data structure within containers. The tree branches via horizontal or vertical splits, and containers can also be set to tabbed or stacked layouts. Floating windows are available for corner cases that don't mix well with tiling, and remain on a separate layer above the tiled windows.

−

−

== Introduction ==

−

The developers' attempt to hack and fix [[wmii]] led to the creation of i3. At the time Wmii didn't provide certain features, like support for [[Wikipedia:Xinerama|Xinerama]], and lacked source code comments and documentation.

−

−

Clients within i3 are either allowed to float or placed into containers. Clients can be stacked or tabbed within containers.

== Installation ==

== Installation ==

−

i3 is located in the {{ic|[[community]]}} repository. Installing i3 can be accomplished by choosing the {{Pkg|i3}} group, which includes the packages {{Pkg|i3lock}}, {{Pkg|i3status}} and {{Pkg|i3-wm}}.

+

Install the {{Pkg|i3}} [[Pacman#Installing package groups|package group]] from the [[official repositories]], which includes the {{Pkg|i3lock}}, {{Pkg|i3status}} and {{Pkg|i3-wm}} packages. Install {{ic|i3-wm}} for the window manger, {{ic|i3status}} to write a status line to i3bar through [[Wikipedia:Standard streams#Standard output (stdout)|stdout]], or {{ic|i3lock}} for an improved screenlocker.

−

# pacman -S i3

−

Alternatively, you can install the window manager exclusively:

+

Additional packages are available in the [[Arch User Repository]]. Install {{AUR|i3-git}} for the development version. Install {{AUR|i3-gnome}} to add a [[GNOME]]-session.

−

# pacman -S i3-wm

−

Many features that are default on other more resource-heavy Window Managers (network status, date and time, battery information) can be easily achieved by installing {{Pkg|i3status}}.

If you want i3 to log its output (useful for debugging), add this line to {{ic|~/.xinitrc}}:

If you want i3 to log its output (useful for debugging), add this line to {{ic|~/.xinitrc}}:

−

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

+

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

−

If you use the Nvidia binary driver you need to add the --force-xinerama flag to {{ic|~/.xinitrc}}. A detailed explanation can be found at [http://i3wm.org/docs/multi-monitor.html i3wm.org].

+

If you use the Nvidia binary driver '''<302.17''' you need to add the --force-xinerama flag to {{ic|~/.xinitrc}}. A detailed explanation can be found at [http://i3wm.org/docs/multi-monitor.html i3wm.org].

exec i3 --force-xinerama

exec i3 --force-xinerama

−

== Basic Keybindings and Window Management ==

+

=== Status bar ===

−

The default keybindings mostly depend on Mod1 (usually mapped to Alt) or Mod3/Mod4 (usually mapped to the Windows key) as the basic modifier key sometimes combined with Ctrl or Shift. To identify the different Mod# keys on your system, use the

−

command {{ic|xmodmap}} without arguments.

−

−

The key combinations are configured in the file {{ic|~/.i3/config}} (or, if it does not exist, {{ic|/etc/i3/config}}).

−

−

The default key combinations rely on key codes and not on the actual letters of your keyboard layout! You can replace the {{ic|bind}} directives in the config with {{ic|bindsym}} directives if you do not like this. For more info on configuration see the next section.

−

−

Some of the most important keybindings include the following:

−

* Run a program: Mod1+d

−

* Create a new terminal: Mod1+Enter

−

* Switch between different windows: Mod1+ any of "jkl;" or cursor keys (somewhat Vim-like keybindings)

−

* Move a window: Mod1+Shift+ any of "jkl;" or cursor keys

−

* Switch to a different workspace: Mod1+ any number

−

* Move window to a different workspace: Mod1+Shift+ any number

−

−

Note that i3 uses containers for window management. So in contrast to [[Wmii]] you can also tile windows horizontally. To do this, simply move a window up or down (with Mod1+Shift+DirectionKey) beyond the edge of the screen. A new row will appear. You can then use Mod4+Ctrl+DirectionKey to enlarge the window into the chosen direction. DirectionKey can be the arrow keys as well as "jkl;".

−

−

There are 3 container modes:

−

* Normal (columns): Mod1+e

−

* Tabbed: Mod1+w

−

* Stacked: Mod1+s

−

−

Additionally, you can put a window into fullscreen mode with Mod1+f.

−

−

[http://i3wm.org/docs/refcard.pdf i3 keybinding cheatsheet (pdf)]

−

−

== Configuration ==

−

−

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

The i3 [http://i3.zekjur.net/docs/userguide.html User's Guide] gives a nice overview of the config settings.

−

−

For users seeking to convert their configuration to v4, i3-wm comes with a perl script for conversion:

−

{{bc|mv config config.old #save the old file

−

i3-migrate-config-to-v4 config.old > config

−

}}

−

Have a look at the changes!

−

−

== Status bar ==

The internal status bar, i3-''ws''bar, was deprecated and replaced by i3bar in i3 v4.0.

The internal status bar, i3-''ws''bar, was deprecated and replaced by i3bar in i3 v4.0.

−

=== New method: i3bar ===

+

==== New method: i3bar ====

−

Unlike i3-wsbar, which requires dzen2, i3bar does not have any dependecies other than {{Pkg|i3-wm}}. It can be used to view information generated by [[conky]] or i3status. For example (as of version 4.1):

+

Unlike i3-wsbar, which requires dzen2, i3bar does not have any dependencies other than {{Pkg|i3-wm}}. It can be used to view information generated by [[conky]] or i3status. For example (as of version 4.1):

{{hc|~/.i3/config|<nowiki>

{{hc|~/.i3/config|<nowiki>

bar {

bar {

Line 110:

Line 51:

For further information see the [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] section of the official User Guide.

For further information see the [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] section of the official User Guide.

−

=== Old method: i3-wsbar and dzen ===

+

==== Comparison of i3bar and dzen2 ====

−

[[Dzen]] can be placed in the status bar at the bottom of the screen. Information for dzen2 can be generated using {{Pkg|i3status}}

−

i3status | dzen2 &

−

or {{Pkg|conky}}

−

conky | dzen2 &

−

The svn development version of [https://aur.archlinux.org/packages.php?ID=19926 dzen2] in the [[AUR]] offers a {{ic|-dock}} option, which puts dzen2 at the bottom of the screen and tells i3 not to manage it.

−

−

In the AUR you can also find {{AUR|i3-wsbar}}, which is able to get the list of workspaces from the socket that i3 offers for IPC. Thus you can pipe the conky output to i3-wsbar and tell it to use dzen2. For example, put the following in your i3 configuration file:

Revision as of 00:23, 29 April 2013

Clients (windows) are organized in a tree data structure within containers. The tree branches via horizontal or vertical splits, and containers can also be set to tabbed or stacked layouts. Floating windows are available for corner cases that don't mix well with tiling, and remain on a separate layer above the tiled windows.