| .clang-format | ||
| .gitignore | ||
| labwc.h | ||
| LICENSE | ||
| main.c | ||
| Makefile | ||
| output.c | ||
| README.md | ||
| server.c | ||
| view.c | ||
| xdg.c | ||
| xwl.c | ||
labwc
labwc is a wayland compositor based on wlroots
Dependencies
- wlroots
- wayland-protocols
Keyboard shortcuts
Alt+Escape Exit labwc
Alt+F2 Cycle between windows
Alt+F3 Launch dmenu
Alt+F6 Move window
Alt+F12 Print all views (helpful if run from X11)
Running labwc
labwc can be run from a tty or in an existing Wayland/X11 session.
Why?
I saw sway, cage and wio, and felt the itch to have a go at hacking on a wlroots compositor myself.
I am also quietly looking for a Wayland alternative to openbox and playing around with some code-bases seems an obvious way to evaluate and explore options.
QtWayland and Mir
Before trying wlroots, I messed around with QtWayland / grefsen and Mir / egmde. These are pretty cool and still worth exploring further.
Lubuntu have declared that they will be switching to Wayland by default for 20.10 and that they are going to do this by porting Openbox to use the Mir display server and Drew DeVault’s QtLayerShell, etc. One to keep an eye on.
kwin and mutter
I don't think that the KDE and GNOME compositors will be right. Although they offer a brilliant experience, they are pretty heavy and quite integrated with their respective stacks. I think I'm right in saying that they're not standalone window managers.
mutter - 411k lines-of-code (LOC)
kwin - 191k LOC
In terms of size comparison of these two giants, it's worth reflecting on the size of a few friends:
sway - 37k LOC
rootston - 7k LOC
openbox - 53k LOC
i3 - 20k LOC (but does include i3bar, etc)
dwm - 2k LOC