i3

From ArchWiki
Revision as of 14:19, 11 April 2013 by Dom0 (Talk | contribs) (Alternative: py3status)

Jump to: navigation, search

i3 is a dynamic 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.

Installation

Install the i3 package group from the official repositories, which includes the i3lock, i3status and i3-wm packages. Install i3-wm for the window manger, i3status to write a status line to i3bar through stdout, or i3lock for an improved screenlocker.

Additional packages are available in the Arch User Repository. Install i3-gitAUR for the development version. Install i3-gnomeAUR to add a GNOME-session.

Configuration

Edit your ~/.xinitrc and add:

exec i3

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

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

If you use the Nvidia binary driver <302.17 you need to add the --force-xinerama flag to ~/.xinitrc. A detailed explanation can be found at i3wm.org.

exec i3 --force-xinerama

Status bar

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

New method: i3bar

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

~/.i3/config
bar {
    output            LVDS1
    status_command    i3status
    position          top
    mode              hide
    workspace_buttons yes
    tray_output       none
    
    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1

    colors {
        background #000000
        statusline #ffffff

        focused_workspace  #ffffff #285577
        active_workspace   #ffffff #333333
        inactive_workspace #888888 #222222
        urgent_workspace   #ffffff #900000
    }
}

For further information see the Configuring i3bar section of the official User Guide.

Comparison of i3bar and dzen2

This comparison of i3bar and dzen2 only takes into account how well the two programs can handle the input from conky or i3status.

Program Color Codes Formatting Special Fonts Dock Trayer
i3bar Yes No, right aligned No (UTF8 only) Yes Yes
dzen2 Yes No, left aligned Yes Yes (the svn version) No

Though development of i3bar is very active and support for custom formatting and fonts has been announced, dzen2-svn has an edge over i3bar (as of August 7th).

Alternatives

  • i3pystatus - extensible i3status replacement with many modules and very flexible configuration. Multi-threaded and lock-up free.
  • py3status – an extensible i3status wrapper written in python

Quickly jumping to open window

  • quickswitch-for-i3 – A Python utility to quickly change to and locate windows in i3
  • i3-wm-scripts – search for and jump to windows with particular names matching regexp
  • winmenupy launches dmenu with a list of clients, sorted after workspaces. Selecting a client jumps to that window.

Suspending with i3lock

You need to add unit file below and enable it with # systemctl enable suspend@<user>.service.

/etc/systemd/system/suspend@.service
[Unit]
Description=Starts i3lock at suspend time
Before=sleep.target

[Service]
User=%I
Type=forking
Environment=DISPLAY=:0
ExecStartPre= 
ExecStart=/usr/bin/i3lock

[Install]
WantedBy=sleep.target

Usage

See the official documentation on this subject for more information: i3 User’s Guide

i3 currently uses dmenu as a application launcher, which is bound by default to Template:Keypress+Template:Keypress.

See also

Arch Linux Forums