From efd98eaebb2ffaf140fbe76aace8c9a9e909d58b Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Thu, 21 May 2020 20:28:57 +0100 Subject: [PATCH] README.md: update with build instructions --- README.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 5c486462..c760f514 100644 --- a/README.md +++ b/README.md @@ -4,38 +4,39 @@ A light-weight openbox alternative for Wayland. This software is in early development. -# Dependencies +## Dependencies - wlroots (>=0.10.0) - wayland-protocols +- xwayland -# Aim +## Aim -[x] Support xwayland -[ ] Support some of openbox's rc.xml -[ ] Support openbox themes -[ ] Support layer-shell's background layer +[x] Support xwayland +[ ] Support some of openbox's rc.xml +[ ] Support openbox themes +[ ] Support layer-shell's background layer -# Influenced by +## Influenced by - [sway](https://github.com/swaywm/sway) - [cage](https://www.hjdskes.nl/blog/cage-01/) - [wio](https://wio-project.org/) -- [rootston]() +- [rootston](https://github.com/swaywm/rootston) - [openbox](https://github.com/danakj/openbox) - [i3](https://github.com/i3/i3) - [dwm](https://dwm.suckless.org) -# Alternatives +## Alternatives The following were considered before choosing wlroots: - [QtWayland](https://github.com/qt/qtwayland), [grefsen](https://github.com/ec1oud/grefsen) - [Mir](https://mir-server.io), [egmde](https://github.com/AlanGriffiths/egmde) -# CONFIGURATION +## Configuration -## Keyboard shortcuts +### Keyboard Shortcuts We will support rc.xml keybinds, but for the time being: @@ -45,12 +46,72 @@ Alt+F2 Cycle windows Alt+F3 Launch dmenu ``` -## Keyboard layout +### Keyboard Layout Set environment variable `XKB_DEFAULT_LAYOUT` for your keyboard layout, for example `gb`. Read `xkeyboard-config(7)` for details. -# Integration +## Integration - Use grim for scrots +## Build + +### Arch Linux + + sudo pacman -S wlroots + git clone https://github.com/johanmalm/labwc + cd labwc + meson build + ninja -C build + +### Debian + + sudo apt install \ + build-essential \ + cmake \ + 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 \ + xwayland + + # Debian Buster has an old version of meson, so we use pip3 + pip3 install --target=$HOME/bin meson + + git clone https://github.com/johanmalm/labwc + cd labwc + git clone https://github.com/swaywm/wlroots subprojects/wlroots + + # wlroots 0.10.0 is the last version which runs with Wayland 0.16 + # (which is what Buster runs) + cd subprojects/wlroots && git checkout 0.10.0 && cd ../.. + + meson build + ninja -C build + +## Debug + +To enable ASAN and UBSAN, run meson with `-Db_sanitize=address,undefined`