|
|
||
|---|---|---|
| docs | ||
| include | ||
| protocols | ||
| src | ||
| .gitignore | ||
| LICENSE | ||
| meson.build | ||
| README.md | ||
labwc
1. What is this?
Labwc is a [WIP] free, stacking compositor for Wayland with 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
Build dependencies include:
- meson
- wlroots (>=0.10.0)
- wayland
- wayland-protocols
- xwayland
- libxml2
- cairo
- pango
- glib-2.0
- xcb
- xkbcommon
For further details see 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 (useful if running under X11 and alt-tab is already bound to something)
- Alt-F3: launch dmenu (if installed)
- Alt-escape: exit
5. Integrate
Suggested apps to use with labwc:
- grim - Screenshoter
- wf-recorder - Screen-recorder
- swaybg - Background image
- waybar - Panel
- bemenu - Launcher
- fuzzel - Launcher
- wofi - Launcher
6. Roadmap
- Support xwayland
- Parse ~/.config/labwc/{rc.xml,autostart,environment}
- Parse /usr/share/themes/
<name>/openbox-3/themerc and associated xbm icons - Show maximize, iconify, close buttons
- Catch SIGHUP to re-load config file and theme
- Support layer-shell protocol (partial)
- Support 'maximize'
- Show window title
- 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
- Support kanshi
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.
