Find a file
Christian Meissl 3731734d5a
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / clippy-check (push) Has been cancelled
Continuous Integration / smithay-check-features (push) Has been cancelled
Continuous Integration / check-msrv (push) Has been cancelled
Continuous Integration / check-minimal (push) Has been cancelled
Continuous Integration / smithay-tests (push) Has been cancelled
Continuous Integration / smallvil-check (push) Has been cancelled
Continuous Integration / anvil-check-features (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (buffer, BadBufferTest*, Bad Buffer Test) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (core, SelfTest*:FrameSubmission*, Core tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (output, XdgOutputV1Test*, Output tests) (push) Has been cancelled
Continuous Integration / WLCS: ${{ matrix.job_name }} (pointer-input, */SurfacePointerMotionTest*:RelativePointer*, Pointer input tests) (push) Has been cancelled
Continuous Integration / Documentation on Github Pages (push) Has been cancelled
pixman: re-map resized shm pool images
The actual mmap can change if the shm pool gets
resized. In this case we have to re-map our image
to prevent accessing a unmapped memory region.
2024-07-01 22:58:35 +02:00
.github/workflows Update calloop to 0.14.0 2024-06-20 21:17:34 +02:00
anvil drm: pick one primary plane if we have multiple 2024-06-28 12:58:22 +02:00
benches Fix new Clippy warnings 2024-06-18 11:01:14 +02:00
examples compositor: Make cached_state access thread-safe 2024-06-21 16:26:59 +02:00
smallvil compositor: Make cached_state access thread-safe 2024-06-21 16:26:59 +02:00
smithay-drm-extras Update drm, gbm, image; xkbcommon/x11rb deps of Anvil 2024-04-22 10:47:42 +02:00
src pixman: re-map resized shm pool images 2024-07-01 22:58:35 +02:00
wlcs_anvil anvil: get rid of the cursor image mutex 2024-04-07 09:31:08 +02:00
.gitignore Fix travis build with updated libinput 2017-12-15 19:22:40 +01:00
.rustfmt.toml Remove unstable rustfmt options 2018-04-17 17:48:20 +02:00
build.rs Use clippy to disallow e/print/ln macros 2023-11-08 11:08:10 +02:00
Cargo.toml cargo: don't use default_features 2024-06-26 21:37:19 +02:00
CHANGELOG.md wayland: allow to always send a configure event 2023-05-06 22:19:14 +02:00
clippy.toml bumb msrv to 1.72 2024-02-15 15:50:05 +01:00
compile_wlcs.sh compile_wlcs: Bump WLCS version 2023-06-21 10:06:37 -07:00
CONTRIBUTING.md fix-3-typos 2022-11-25 12:11:48 +01:00
doc_index.html travis: add a redirect doc homepage 2017-10-01 20:34:24 +02:00
LICENSE.txt Update names 2022-06-23 16:46:15 +00:00
README.md Add wprs to other compositors section. 2024-06-17 14:01:03 +02:00
test_gbm_bo_create_with_modifiers2.c allocator/gbm: Allow customizing usage flags 2023-02-10 21:00:07 +01:00
test_gbm_bo_get_fd_for_plane.c gbm: detect gbm_bo_get_fd_for_plane 2022-10-03 09:54:07 +02:00

Smithay

Crates.io docs.rs Build Status Join the chat on matrix at #smithay:matrix.org Join the chat via bridge on #smithay on libera.chat

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
  • wprs: Like xpra, but for Wayland, and written in Rust.

System Dependencies

(This list can depend on features you enable)

  • libwayland
  • libxkbcommon
  • libudev
  • libinput
  • libgbm
  • libseat
  • xwayland

Contact us

If you have questions or want to discuss the project with us, our main chatroom is on Matrix: #smithay:matrix.org.