mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
A Wayland window-stacking compositor
https://labwc.github.io
| data | ||
| include | ||
| protocols | ||
| src | ||
| tests | ||
| tools | ||
| .clang-format | ||
| .gitignore | ||
| LICENSE | ||
| meson.build | ||
| README.md | ||
labwc
Labwc is a [WIP] free, stacking compositor for Wayland.
It is in early development and has the following aims:
-
Be light-weight, small and fast.
-
Have the look and feel of the X11 Window Manager Openbox.
-
Where practicable, use other software to show wall-paper, take screenshots, and so on.
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
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
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