A Wayland window-stacking compositor https://labwc.github.io
Find a file
2020-05-22 21:13:43 +01:00
protocols Add meson.build 2020-05-20 22:04:22 +01:00
.clang-format Add .clang-format and apply 2019-12-27 21:22:45 +00:00
.gitignore Add meson.build 2020-05-20 22:04:22 +01:00
dbg.c Take into account deco on initial window positioning 2020-05-12 22:24:18 +01:00
deco.c Take into account deco on initial window positioning 2020-05-12 22:24:18 +01:00
labwc.h Move begin_interactive() to server.c 2020-05-22 21:13:43 +01:00
LICENSE Initial commit 2019-05-11 21:21:58 +01:00
main.c Clean up memory leaks 2020-05-19 21:20:58 +01:00
meson.build Add meson.build 2020-05-20 22:04:22 +01:00
output.c view.c: refactor 2020-05-16 12:04:12 +01:00
README.md Move begin_interactive() to server.c 2020-05-22 21:13:43 +01:00
server.c Move begin_interactive() to server.c 2020-05-22 21:13:43 +01:00
view.c Move begin_interactive() to server.c 2020-05-22 21:13:43 +01:00
xdg.c Support openbox style "cycle window" 2020-05-18 20:54:25 +01:00
xwl.c Support openbox style "cycle window" 2020-05-18 20:54:25 +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