A Wayland window-stacking compositor https://labwc.github.io
Find a file
2020-05-27 14:29:05 +01:00
include Put code in src/ and include/ 2020-05-27 14:29:05 +01:00
protocols Add meson.build 2020-05-20 22:04:22 +01:00
src Put code in src/ and include/ 2020-05-27 14:29:05 +01:00
.clang-format Support xwayland view resize (LAB_DECO_PART_LEFT) 2020-05-25 13:42:40 +01:00
.gitignore Add meson.build 2020-05-20 22:04:22 +01:00
LICENSE Initial commit 2019-05-11 21:21:58 +01:00
meson.build Put code in src/ and include/ 2020-05-27 14:29:05 +01:00
README.md Move begin_interactive() to server.c 2020-05-22 21:13:43 +01:00

labwc

A light-weight openbox alternative for Wayland.

This software is in early development.

Dependencies

  • wlroots (>=0.10.0)
  • wayland-protocols
  • xwayland

Aim

  • Support xwayland
  • Support some of openbox's rc.xml
  • Support openbox themes
  • Support layer-shell's background layer

Influenced by

Alternatives

The following were considered before choosing wlroots:

Configuration

Keyboard Shortcuts

We will support rc.xml keybinds, but for the time being:

Alt+Escape  Exit labwc
Alt+F2      Cycle windows
Alt+F3      Launch dmenu

Keyboard Layout

Set environment variable XKB_DEFAULT_LAYOUT for your keyboard layout, for example gb. Read xkeyboard-config(7) for details.

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