Smithay
A smithy for rusty wayland compositors
Goals
Smithay aims to provide building blocks to create wayland compositors in Rust. While not
being a full-blown compositor, it'll provide objects and interfaces implementing common
functionalities that pretty much any compositor will need, in a generic fashion.
It supports the core Wayland protocols, the official protocol extensions, and some external extensions, such as those made by and for wlroots and KDE
Also:
-
Documented: Smithay strives to maintain a clear and detailed documentation of its API and its
functionalities. Compiled documentations are available on docs.rs for released
versions, and here for the master branch.
-
Safety: Smithay will target to be safe to use, because Rust.
-
Modularity: Smithay is not a framework, and will not be constraining. If there is a
part you don't want to use, you should not be forced to use it.
-
High-level: You should be able to not have to worry about gory low-level stuff (but
Smithay won't stop you if you really want to dive into it).
Anvil
Smithay as a compositor library has its own sample compositor: anvil.
To get informations about it and how you can run it visit anvil README
Other compositors that use Smithay
-
Cosmic: Next generation Cosmic desktop environment
-
Catacomb: A Wayland Mobile Compositor
-
MagmaWM: A versatile and customizable Wayland Compositor
-
Niri: A scrollable-tiling Wayland compositor
-
Strata: A cutting-edge, robust and sleek Wayland compositor
-
Pinnacle: A WIP Wayland compositor, inspired by AwesomeWM
-
Sudbury: Compositor designed for ChromeOS
System Dependencies
(This list can depend on features you enable)
-
libwayland
-
libxkbcommon
-
libudev
-
libinput
-
libgbm
-
libseat
-
xwayland
If you have questions or want to discuss the project with us, our main chatroom is on Matrix: #smithay:matrix.org
.