Skip to content

A tiling wayland compositor, influenced by xmonad

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

kenoss/sabiniwm

Repository files navigation

sabiniwm

A tiling Wayland compositor, influenced by xmonad

Goal and non goal

Goal

  • Code over configuration: extensible/configurable like xmonad
  • Minimal and clear runtime dependency (No dependency to, e.g. Haskell.)
  • Simple, clean and mentainable code

Non goal

  • 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.

Status

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).

Roadmap

Milestone 1

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.

Milestone 2

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.

Comparison

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].

Other tiling Wayland compositors

Lots of them are written in C/C++. Not easy to read and write.

Getting started

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.

How to develop

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.

How to run with udev backend

Dependencies

See .github/workflows/ci.yaml.

Run

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 select sabiniwm.

License

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.

About

A tiling wayland compositor, influenced by xmonad

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published