<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>i3 - an improved dynamic tiling window manager</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body {
	text-align: justify;
	max-width: 800px;
}

li {
	margin-bottom: 10px;
}
</style>
</head>
<body>

<h1>Howto build i3 on Ubuntu 9.04 for the amd64 architecture</h1>

<p>
  Due to Ubuntu 9.04’s lack of recent libxcb* packages, we cannot simply provide a debian
  package. The following howto will explain how to build one for yourself after downloading
  the necessary libxcb* packages from Debian.
</p>

<p>
  Clone the i3 repository
</p>

<pre>
$ git clone http://code.stapelberg.de/git/i3
</pre>

<p>
  The Ubuntu repositories do not contain the required versions of several packages. Hence we need
  to get them from Debian. Create a new directory for the .debs
</p>

<pre>
$ mkdir deb &amp;&amp; cd deb
</pre>

<p>
  …and download the files
</p>

<pre>
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libx11/libx11-dev_1.2.1-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-aux0-dev_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-keysyms1-dev_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libxcb/libxcb-xinerama0-dev_1.2-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-event1-dev_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-property1-dev_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-atom1-dev_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-icccm1-dev_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/a/asciidoc/asciidoc_8.4.4-1_all.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libxcb/libxcb1-dev_1.2-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp-dev_1.0.2-3_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/x11proto-core/x11proto-core-dev_7.0.15-1_all.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.1-2_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libp/libpthread-stubs/libpthread-stubs0_0.1-2_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libxau/libxau-dev_1.0.4-2_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libxau/libxau6_1.0.4-2_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp-dev_1.0.2-3_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libx11/libx11-6_1.2.1-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/x11proto-input/x11proto-input-dev_1.5.0-2_all.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/x11proto-kb/x11proto-kb-dev_1.0.3-3_all.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xtrans/xtrans-dev_1.2.3-3_all.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-atom1_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-aux0_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-event1_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-icccm1_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-property1_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/x/xcb-util/libxcb-keysyms1_0.3.4-1_amd64.deb"
$ wget "http://ftp.de.debian.org/debian/pool/main/libx/libxcb/libxcb-xinerama0_1.2-1_amd64.deb"
</pre>

<p>
  We install these:
</p>

<pre>
$ sudo dpkg -i *.deb
</pre>

<p>
  then change into the i3 directory and build the package:
</p>

<pre>
$ cd ../i3
$ dpkg-buildpackage
</pre>

<p>
  and install it
</p>

<pre>
$ sudo dpkg -i ../i3-wm_1.0-1_amd64.deb
$ sudo dpkg -i ../i3_1.0-1_amd64.deb
</pre>

<p>
  What remains is to configure i3. Create the default directory for i3’s config and copy the default config to it
</p>

<pre>
$ mkdir ~/.i3
$ cp /etc/i3/config ~/.i3/config
</pre>

<p>
Lastly, we need to set up i3 as default window manager. Create a new file ~/.xinitrc
</p>

<pre>
$ vim ~/.xinitrc
</pre>

<p>
  and enter the following lines:
</p>

<pre>
#!/bin/sh
xsetroot -solid black 
exec /usr/bin/i3
</pre>

<p>
  Close vim and create a link to ~/.xinitrc and link it to ~/.Xsession:
</p>

<pre>
$ ln -s ~/.xinitrc ~/.Xsession
</pre>

<p>
  You are done. When you are in the login screen, select "Sessions", and switch to "Default" or "Xsession" to start i3.
</p>