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