| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | # labwc
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | A light-weight openbox alternative for Wayland. | 
					
						
							| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | This software is in early development. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ## Dependencies
 | 
					
						
							| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-12 20:37:05 +01:00
										 |  |  | - wlroots (>=0.10.0) | 
					
						
							| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | - wayland-protocols | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | - xwayland | 
					
						
							| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ## Aim
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-22 21:13:43 +01:00
										 |  |  | - [x] Support xwayland | 
					
						
							|  |  |  | - [ ] Support some of openbox's rc.xml | 
					
						
							|  |  |  | - [ ] Support openbox themes | 
					
						
							|  |  |  | - [ ] Support layer-shell's background layer | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ## Influenced by
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | - [sway](https://github.com/swaywm/sway) | 
					
						
							|  |  |  | - [cage](https://www.hjdskes.nl/blog/cage-01/) | 
					
						
							|  |  |  | - [wio](https://wio-project.org/) | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | - [rootston](https://github.com/swaywm/rootston) | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | - [openbox](https://github.com/danakj/openbox) | 
					
						
							|  |  |  | - [i3](https://github.com/i3/i3) | 
					
						
							|  |  |  | - [dwm](https://dwm.suckless.org) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ## Alternatives
 | 
					
						
							| 
									
										
										
										
											2020-05-10 20:10:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | The following were considered before choosing wlroots: | 
					
						
							| 
									
										
										
										
											2020-05-10 20:10:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | - [QtWayland](https://github.com/qt/qtwayland), [grefsen](https://github.com/ec1oud/grefsen) | 
					
						
							|  |  |  | - [Mir](https://mir-server.io), [egmde](https://github.com/AlanGriffiths/egmde) | 
					
						
							| 
									
										
										
										
											2020-05-10 20:10:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ## Configuration
 | 
					
						
							| 
									
										
										
										
											2020-05-10 20:10:36 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ### Keyboard Shortcuts
 | 
					
						
							| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | We will support rc.xml keybinds, but for the time being: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | ``` | 
					
						
							|  |  |  | Alt+Escape  Exit labwc | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | Alt+F2      Cycle windows | 
					
						
							| 
									
										
										
										
											2019-05-12 21:44:41 +01:00
										 |  |  | Alt+F3      Launch dmenu | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ### Keyboard Layout
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | Set environment variable `XKB_DEFAULT_LAYOUT` for your keyboard layout, for | 
					
						
							|  |  |  | example `gb`. Read `xkeyboard-config(7)` for details. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ## Integration
 | 
					
						
							| 
									
										
										
										
											2020-05-18 21:01:01 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | - Use grim for scrots | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | ## Build
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Arch Linux
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     sudo pacman -S wlroots | 
					
						
							|  |  |  |     git clone https://github.com/johanmalm/labwc | 
					
						
							|  |  |  |     cd labwc | 
					
						
							|  |  |  |     meson build | 
					
						
							|  |  |  |     ninja -C build | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Debian
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-22 21:13:43 +01:00
										 |  |  | ``` | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2020-05-21 20:28:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Debug
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To enable ASAN and UBSAN, run meson with `-Db_sanitize=address,undefined` | 
					
						
							| 
									
										
										
										
											2020-05-22 21:13:43 +01:00
										 |  |  | 
 |