Howto build i3 on Ubuntu 9.04 for the amd64 architecture

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.

Clone the i3 repository

$ git clone http://code.stapelberg.de/git/i3

Now install the build-dependencies for i3 which are included in ubuntu:

$ sudo apt-get install libev-dev

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

$ mkdir deb && cd deb

…and download the files

$ 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"

We install these:

$ sudo dpkg -i *.deb

then change into the i3 directory and build the package:

$ cd ../i3
$ dpkg-buildpackage

and install it

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

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

$ mkdir ~/.i3
$ cp /etc/i3/config ~/.i3/config

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

$ vim ~/.xinitrc

and enter the following lines:

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

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

$ ln -s ~/.xinitrc ~/.Xsession

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