NextWM
NextWM copied to clipboard
Manual tiling wayland compositor. ( Work In Progress )
NextWM
Manual tiling wayland compositor written with wlroots aimed to be a bspwm clone.
Note: NextWM is still a work in progress project. It won't be useable anytime soon, but when it is I will be the first one to spam screenshots of it in the readme.
License:
The entire project is licensed as BSD-2 "Simplified" unless stated otherwise in the file header.
Aim
I want to learn how to write wlroots compositors with this project and keep everything commented to a great extent for others to learn from. The wlroots ecosystem is hard to initially get into as per my experience and I want to change that via NextWM.
Why multiple implementations of Nextctl?
Since this project is meant to teach others, why not show people how wayland clients are written in different languages :) ?
PS: I tried writing a go version but I never got the scanner working with my toolchain.
Building
NOTE: By default Xwayland always executes in the background. The -Dxwayland-lazy
flag was added to mitigate this issue however this may have slightly worse xwayland startup times.
NOTE: By default Nextctl C codebase is compiled and put in the mentioned --prefix
. The -Dnextctl-rs
flag compiles the rust version instead. Both versions of the tool are exactly identical.
Depedencies
-
clang
(Optional. Required if you build C implementation of Nextctl) -
cargo
(Optional. Required if you build Rust implementation of Nextctl) -
libinput
-
libevdev
-
make
-
pixman
-
pkg-config
-
scdoc
(Optional. If scdoc binary is not found, man pages are not generated.) -
wayland-protocols
-
wayland
-
wlroots
0.15 -
xkbcommon
-
zig
0.9.1
Steps
git clone --recursive https://git.sr.ht/~shinyzenith/NextWM
sudo make install
Keybind handling
Consider using the compositors in-built key mapper or swhkd if you're looking for a sxhkd like experience.
Contributing:
Send patches to: ~shinyzenith/[email protected]
Bug tracker:
https://todo.sr.ht/~shinyzenith/NextWM
Support
- https://matrix.to/#/#waycrate-tools:matrix.org