Skip to content

Building i3 from scratch

Dependencies

i3 has the following dependencies:

"min" means minimum required version "lkgv" means last known good version

dependency min. lkgv URL
pkg-config 0.25 0.29 https://pkgconfig.freedesktop.org/
libxcb 1.1.93 1.12 https://xcb.freedesktop.org/dist/
xcb-util 0.3.3 0.4.1 https://xcb.freedesktop.org/dist/
xkbcommon 0.4.0 0.6.1 https://xkbcommon.org/
xkbcommon-x11 │ 0.4.0 0.6.1 https://xkbcommon.org/
util-cursor (3,4) 0.0.99 0.1.3 https://xcb.freedesktop.org/dist/
util-wm (4) 0.3.8 0.3.8 https://xcb.freedesktop.org/dist/
util-keysyms (4) 0.3.8 0.4.0 https://xcb.freedesktop.org/dist/
util-xrm (4) 1.0.0 1.0.0 https://github.com/Airblader/xcb-util-xrm/
libev 4.0 4.19 http://libev.schmorp.de/
yajl 2.0.1 2.1.0 https://lloyd.github.com/yajl/
asciidoc 8.3.0 8.6.9 http://www.methods.co.nz/asciidoc/
xmlto 0.0.23 0.0.23 http://www.methods.co.nz/asciidoc/
Pod::Simple (2) 3.22 3.22 http://search.cpan.org/dist/Pod-Simple/
docbook-xml 4.5 4.5 http://www.methods.co.nz/asciidoc/
PCRE 8.12 8.38 https://www.pcre.org/
libsn (1) 0.10 0.12 https://freedesktop.org/wiki/Software/startup-notification/
pango 1.30.0 1.40.1 http://www.pango.org/
cairo 1.14.4 1.14.6 https5
- (1) libsn = libstartup-notification
- (2) Pod::Simple is a Perl module required for converting the testsuite documentation to HTML. See https://michael.stapelberg.de/cpan/#Pod::Simple
- (3) xcb-util-cursor, to be precise.
- (4) Depending on your distribution, this might be considered part of xcb-util.

i3bar, i3-msg, i3-input, i3-nagbar and i3-config-wizard do not introduce any new dependencies.

i3-migrate-config-to-v4 and i3-dmenu-desktop are implemented in Perl, but have no dependencies besides Perl 5.10.

i3-save-tree is also implemented in Perl and needs AnyEvent::I3 (>= 0.12) and JSON::XS. While i3-save-tree is not required for running i3 itself, it is strongly recommended to provide it in distribution packages.

Ubuntu based distros

sudo apt-get install libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev \
libxcb-shape0-dev libxcb-xkb-dev libxcb-cursor-dev libxcb-util-dev \
libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-xrm-dev libxkbcommon-dev \
libxkbcommon-x11-dev libyajl-dev libcairo2-dev libpango1.0-dev

Get the packages that aren't included

sudo apt install dunst i3status i3lock dmenu

Compile i3

make -j4

Install i3 on your system

make install