Skip to content
This repository has been archived by the owner on Nov 7, 2022. It is now read-only.

Building from source

Ingo Bürk edited this page Aug 1, 2021 · 9 revisions

Important Note

Building i3-gaps from source is an advanced topic, and as such only users with appropriate knowledge should consider doing this. It is not a supported way just to install i3-gaps for everyday usage. If you are a regular user wanting to install i3-gaps, please refer to the wiki.

Use any of these instructions at your own caution. Questions regarding the compilation will only be supported in the following cases:

  1. You are working on providing a package for i3-gaps on some distribution.
  2. You are in need to build from source in order to debug an issue.
  3. You have asked package maintainers in your distribution to create a package for i3-gaps and can link to this request.
  4. There's an actual compilation failure caused by i3-gaps.

Issues opened on this topic which do not clearly fall into one of these categories will probably be closed. The Linux ecosystem is community-based, and each respective community should strive to just package i3-gaps if there is sufficient need.

Building

The most important, first step is to read the section above.

i3-gaps, like i3, uses the meson build system, and can be built as documented there. This boils down to

cd /path/where/you/want/the/repository

# clone the repository
git clone https://www.github.com/Airblader/i3 i3-gaps
cd i3-gaps

# compile
mkdir -p build && cd build
meson ..
ninja

If you haven't installed i3 before, you will likely get compilation errors due to missing packages. To solve that, install all required dependencies as listed in the section below first.

Dependencies

This is a list of packages needed to compile i3-gaps for different distributions. Please note that i3-gaps does not add any dependencies to i3, so the packages listed here are the same needed to install i3 itself.

Fedora (22+)

libxcb-devel xcb-util-keysyms-devel xcb-util-devel xcb-util-wm-devel xcb-util-xrm-devel yajl-devel libXrandr-devel startup-notification-devel libev-devel xcb-util-cursor-devel libXinerama-devel libxkbcommon-devel libxkbcommon-x11-devel pcre-devel pango-devel git gcc automake

Ubuntu

14.04 - 16.04

libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev \
libxcb-util0-dev libxcb-icccm4-dev libyajl-dev \
libstartup-notification0-dev libxcb-randr0-dev \
libev-dev libxcb-cursor-dev libxcb-xinerama0-dev \
libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev \
autoconf libxcb-xrm-dev

You will also need libxcb-xrm-dev from a PPA

sudo add-apt-repository ppa:aguignard/ppa
sudo apt-get update
sudo apt-get install libxcb-xrm-dev

16.10 +

libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev \
libxcb-util0-dev libxcb-icccm4-dev libyajl-dev \
libstartup-notification0-dev libxcb-randr0-dev \
libev-dev libxcb-cursor-dev libxcb-xinerama0-dev \
libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev \
autoconf libxcb-xrm0 libxcb-xrm-dev automake libxcb-shape0-dev

Debian

apt install dh-autoreconf libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev xcb libxcb1-dev libxcb-icccm4-dev libyajl-dev libev-dev libxcb-xkb-dev libxcb-cursor-dev libxkbcommon-dev libxcb-xinerama0-dev libxkbcommon-x11-dev libstartup-notification0-dev libxcb-randr0-dev libxcb-xrm0 libxcb-xrm-dev libxcb-shape0 libxcb-shape0-dev

Solus

libxcb-devel libxkbcommon-devel xcb-util-keysyms xcb-util-keysyms-devel xcb-util-devel xcb-util-wm-devel xcb-util-xrm-devel yajl-devel libev-devel xcb-util-cursor-devel libpcre-devel libxrandr-devel libxinerama-devel libxkbcommon-devel libstartup-notification-devel libcairo-devel pango-devel git gcc automake