A tiling Wayland compositor, influenced by xmonad
- Code over configuration: extensible/configurable like xmonad
- Minimal and clear runtime dependency (No dependency to, e.g. Haskell.)
- Simple, clean and mentainable code
- Excessive use of animation
- Not a priority. Small use of animation might be supported in the future.
- Configuration with file
- A user can implement it if they need it. Please publish a crate if you implemented it.
- Battery included (default configuration)
- The author believes that there is no good default values for configuration. Users must configure by theirselves.
Alpha, not stable.
In the short-term, you shouldn't expect API stability.
The author kenoss@ is using it on Asahi Linux, M2 Macbook Air (main machine).
kenoss@ is 80%-ish satisfied daily use of it on private machine, Macbook Air.
- Fundamental udev support (Touchpad, Scaling for HiDPI display)
- Fundamental features of tiling
- Layouts (Tall, Full, Select, Toggle, margin, border)
- Floating windows
- Screen lock
- Screenshot/screencast
- etc.
kenoss@ is 80%-ish satisfied daily use of it on coop machine.
- External (wireless) mouse (I have to look into [random disconnection issue].)
- Authentication dialog with security keys (Floating windows + manage hooks?)
- xrandr (Multiple outputs, external displays)
- Notification
- Screencast with Chrome
- IME
- etc.
xmonad is useful, matured, and the source of ideas of sabiniwm. But it lacks Wayland support, and never supports [issue 1][issue 2].
niri is beautiful and feature-rich tiliing Wayland compositor. But it's not xmonad-like.
I recommend you to try it if you are not seeking xmonad alternatives. sabiniwm aims at opposite direction.
The project looks not active [issue].
Lots of them are written in C/C++. Not easy to read and write.
No document is available.
You can start with running and modifying sabiniwm-chocomint
/sabiniwm-pistachio
.
$ cargo run -- --bin sabiniwm-chocomint
$ cargo run -- --bin sabiniwm-pistachio # If you are a dvorak user.
See justfile. For example,
$ # build
$ cargo build
$ # run
$ cargo run
$ # check
$ just check-strict
$ # watch
$ cargo watch -c -s 'cargo build && just check-strict'
$ # install to /usr/share/wayland-sessions/
$ just install-session-dev
See also tatarajo educational course.
See .github/workflows/ci.yaml.
You can run it with udev backend in the following ways:
- From TTY (i.e., turning off display manager): Just
cargo run
works. - From display manager: Use
just install-session-dev
and selectsabiniwm
.
This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.
See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.