A Wayland window-stacking compositor https://labwc.github.io
Find a file
2020-07-16 20:16:43 +01:00
data Load close.xbm based on rc.xml theme name 2020-07-09 22:41:54 +01:00
include xbm.c: refactor and load builtin icons as fallback 2020-07-13 20:09:34 +01:00
protocols Add meson.build 2020-05-20 22:04:22 +01:00
src src/main.c: add usage() 2020-07-16 20:16:43 +01:00
tests src/rcxml.c: parse <keybind> 2020-06-19 22:00:22 +01:00
tools Add list-themes.sh 2020-07-14 21:16:27 +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 Render window close button 2020-06-29 19:27:59 +01:00
README.md Load close.xbm based on rc.xml theme name 2020-07-09 22:41:54 +01:00

labwc

Labwc is a [WIP] free, stacking compositor for Wayland and has the following aims:

  • Be light-weight, small and fast
  • Have the look and feel of Openbox
  • Where practicable, use other software to show wall-paper, take screenshots, and so on

It is in early development, so expect bugs and missing features.

Table of Contents

Dependencies

Runtime dependencies include wlroots (>=0.10.0), wayland-protocols,xwayland, libxml2, glib-2.0, cairo and pango.

Roadmap

  • Support xwayland
  • Parse rc.xml
  • Parse themerc
  • Read xbm icons
  • Add maximize, minimize, close buttons
  • Add grip
  • Support layer-shell background (e.g. using swaybg)
  • Draw better alt-tab rectangle
  • Try restarting and consider catching SIGHUP for --reconfigure
  • Implement client-menu
  • Implement root-menu

For further details see wiki/Roadmap.

Inspiration

Labwc has been inspired and inflenced by openbox, sway, cage, wio and rootston

Design

Labwc is based on the wlroots library.

The following were considered before choosing wlroots: QtWayland, grefsen, Mir and egmde.

Configuration

See rc.xml and themerc comments for details incl. keybinds.

Integration

Suggested apps:

  • grim - screenshots

Build

meson build && ninja -C build

To enable ASAN and UBSAN, run meson with -Db_sanitize=address,undefined

For further details see wiki/Build.