Skip to content

waycrate/NextWM

Repository files navigation

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.

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 :) ?

To-Do

  • Compress man pages using zig stdlib.
  • Simple inbuilt bar.
  • Toplevel location data export?
  • focused_wlr_output and focused_toplevel data export?

Building

Note: All Nextctl implementations are exactly identical.

Build Flags

  • -Dxwayland flag enables Xwayland supoprt.
  • -Dxwayland-lazy lazy load Xwayland (might have slightly worse xwayland startup times but reduces resource consumption).
  • -Dnextctl-rs Compile the Rust version of Nextctl (Default is C codebase).
  • -Dnextctl-go Compile the Go version of Nextctl (Default is C codebase).

Depedencies

  1. cargo (Optional. Required if you build Rust implementation of Nextctl) *
  2. go 1.18 (Optional. Required if you build Go implementation of Nextctl) *
  3. libevdev
  4. libinput
  5. make *
  6. pixman
  7. pkg-config *
  8. scdoc (Optional. If scdoc binary is not found, man pages are not generated.) *
  9. wayland-protocols *
  10. wayland
  11. wlroots 0.16
  12. scenefx (Currently chasing master as there's no tagged release.)
  13. xkbcommon
  14. xwayland (Optional. Required if you want Xwayland support.)
  15. zig 0.11.0 *

* Compile-time dependencies

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/NextWM@lists.sr.ht

Bug tracker:

https://todo.sr.ht/~shinyzenith/NextWM

Support