Compiling & Installing

MorosithII edited this page Jul 15, 2018 · 50 revisions
Clone this wiki locally

Basics

Please refer to the Dependencies section to see whether a package for i3-gaps is available for your distribution. If not, you can install i3-gaps roughly as follows. Please note that these are instructions aimed at package maintainers. We don't intend users to compile from source on their own.

Questions regarding the compilation will only be answered in the following cases:

  • You are working on providing a package for i3-gaps.
  • You need to compile from source to debug an issue in the latest version.
  • You have pinged your distribution's package maintainers to provide a proper package and can link to that request.

If one of these cases apply to you, please mention this in your issue. Other questions regarding how to compile (rather than a bug in the compilation) will be closed.

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

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

# compile & install
autoreconf --force --install
rm -rf build/
mkdir -p build && cd build/

# Disabling sanitizers is important for release versions!
# The prefix and sysconfdir are, obviously, dependent on the distribution.
../configure --prefix=/usr --sysconfdir=/etc --disable-sanitizers
make
sudo make install

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 and rerun make && sudo make install.

Dependencies

This is a list of packages needed to compile i3-gaps for different distributions. If you find that anything else is needed, please edit this page accordingly. 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.

IMPORTANT NOTE: As of May 2016, i3 also relies on xcb-util-xrm which is not yet available in all distributions. Once it is available in your distribution, please add the package name to the list(s) below. In the meantime, you might have to compile it from source.

Arch

Community

i3-gaps is also available from the official Arch Community Repository as i3-gaps.

AUR

The development version of i3-gaps is available from the AUR as i3-gaps-next-git. Please refer to the package's dependencies if you explicitly want to know the dependencies.

Manjaro

Manjaro has a dedicated i3-gaps package provided by the Manjaro-i3 community spin. Of course you can also use the AUR packages mentioned above.

NixOS

Starting with NixOS 16.09, you can configure i3-gaps as default window manager in your /etc/nixos/configuration.nix:

NixOS 16.09:

services.xserver.windowManager = {
  i3-gaps.enable = true;
  default = "i3-gaps";
};

NixOS unstable/master:

services.xserver.windowManager = {
  i3 = {
    enable = true;
    package = pkgs.i3-gaps;
  };
  default = "i3";
};

Fedora

25 +

i3gaps is available as community repo on copr

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

Debian Stretch

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

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

OpenSUSE

Leap

i3-gaps is available on OBS, select your version and click on show unstable packages

Tumbleweed

i3-gaps is available in the official repo

Gentoo

emerge i3-gaps

whit both source i3-gaps will replace i3 if already installed