Skip to content

Debian 10 (Buster) Installation

Malte Kiefer edited this page Aug 27, 2019 · 19 revisions

Before installing

Note: these instructions are community-maintained and are not supported by sway.

This document will guide you through installing Sway on Debian 10 (Buster).

If you prefer to just run a script, you can use this gist: https://gist.github.com/davidrios/535c43cbaafe6be665b7c6bd345ea6f4.

Else, proceed with the manual steps below.

Make sure you have activated the contrib and non-free apt repositories.

Update apt cache:

sudo apt update

Create a directory to organize sources:

mkdir ~/sway-src

Install wlroots

First we'll install wlroots 0.7 with almost all extra dependencies:

sudo apt install build-essential cmake meson libwayland-dev wayland-protocols \
 libegl1-mesa-dev libgles2-mesa-dev libdrm-dev libgbm-dev libinput-dev \
 libxkbcommon-dev libudev-dev libpixman-1-dev libsystemd-dev libcap-dev \
 libxcb1-dev libxcb-composite0-dev libxcb-xfixes0-dev libxcb-xinput-dev \
 libxcb-image0-dev libxcb-render-util0-dev libx11-xcb-dev libxcb-icccm4-dev \
 freerdp2-dev libwinpr2-dev libpng-dev libavutil-dev libavcodec-dev \
 libavformat-dev universal-ctags

cd ~/sway-src
git clone https://github.com/swaywm/wlroots.git
cd wlroots
git checkout 0.7.0
meson build
sudo ninja -C build install

Install json-c

Debian's json-c version is too old, we need to manually build a newer version:

sudo apt install autoconf libtool

cd ~/sway-src
git clone https://github.com/json-c/json-c.git
cd json-c
git checkout json-c-0.13.1-20180305
sh autogen.sh
./configure --enable-threading --prefix=/usr/local
CPUCOUNT=$(grep processor /proc/cpuinfo | wc -l)
make -j$CPUCOUNT
sudo make install
sudo ldconfig

Install scdoc (optional)

scdoc is needed for manual pages generation, which I recommend, but Debian's scdoc version is also too old, we need to manually build a newer version:

cd ~/sway-src
git clone https://git.sr.ht/~sircmpwn/scdoc
cd scdoc
git checkout 1.9.7
make PREFIX=/usr/local -j$CPUCOUNT
sudo make PREFIX=/usr/local install

Install sway

Next we'll install sway 1.2:

sudo apt install libpcre3-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev

cd ~/sway-src
git clone https://github.com/swaywm/sway.git
cd sway
git checkout 1.2
meson build
sudo ninja -C build install

Install swaybg

We need to install swaybg, or else the default configuration won't work:

cd ~/sway-src
git clone https://github.com/swaywm/swaybg.git
cd swaybg
git checkout 1.0 
meson build
sudo ninja -C build install