A Wayland window-stacking compositor https://labwc.github.io
Find a file
Johan Malm 60f9624a19 server: support screen recording
Works with wf-recorder
2020-09-21 19:54:41 +01:00
data rcxml: s/csd/xdg_shell_server_side_deco 2020-09-15 21:10:02 +01:00
docs rcxml: s/csd/xdg_shell_server_side_deco 2020-09-15 21:10:02 +01:00
include desktop: focus next 'mapped' view on minimize 2020-09-18 20:28:48 +01:00
protocols Add meson.build 2020-05-20 22:04:22 +01:00
src server: support screen recording 2020-09-21 19:54:41 +01:00
tests rcxml: s/csd/xdg_shell_server_side_deco 2020-09-15 21:10:02 +01:00
tools mv xbm/ .. 2020-08-31 20:01:08 +01:00
.clang-format Support xwayland view resize (LAB_DECO_PART_LEFT) 2020-05-25 13:42:40 +01:00
.gitignore Update README.md 2020-09-21 19:51:16 +01:00
LICENSE Initial commit 2019-05-11 21:21:58 +01:00
meson.build meson.build: remove werror=true 2020-08-18 20:16:05 +01:00
README.md Update README.md 2020-09-21 19:51:16 +01:00

labwc

1. What is this?

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.

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

Labwc is based on the wlroots library. The following were considered before choosing wlroots: qtwayland, grefsen, mir and egmde.

2. Build

meson build && ninja -C build

Runtime dependencies include:

  • wlroots (>=0.10.0)
  • xwayland
  • libxml2
  • cairo
  • pango

For further details see tools/build and wiki/Build.

3. Configure

If you want to override the defaults, copy data/rc.xml to ~/.config/labwc/ and tweak to suit.

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

See full details in the following:

4. Run

./build/labwc -s <some-application>

If you have not created an rc.xml configuration file, default keybinds will be:

  • Alt-tab: cycle window
  • Alt-F2: cycle window
  • Alt-F3: launch dmenu (if installed)
  • Alt-escape: exit

5. Integrate

Suggested apps to use with labwc:

  • grim - Take screenshot

6. Roadmap

  • Support xwayland
  • Parse rc.xml
  • Parse themerc
  • Read xbm icons
  • Show maximize, iconify, close buttons
  • Support 'maximize'
  • Show window title
  • Catch SIGHUP for --reconfigure
  • Read ~/.config/labwc/autostart
  • Read ~/.config/labwc/environment (useful for XKB environment variables)
  • Support layer-shell protocol (e.g. for setting background with swaybg).
  • Support foreign-toplevel protocol (e.g. to integrate with wlroots panels/bars)
  • Support damage control to reduce CPU usage
  • Implement client-menu
  • Implement root-menu
  • Support on-screen display (OSD), for example to support alt-tab window list

For further details see wiki/Roadmap.

Based on development so far, it looks like only a modest fraction of all theme and configuration options are required to adequately render most common themes and provide a pretty openbox-like experience.

It is likely that only a subset of the full specification will be implemented in order to keep the code base simpler and cleaner.