Find a file
Victoria Brekenfeld d763452a08 gbm: Force implicit modifiers for old api
Buffers created via `gbm_bo_create` might return (errornous or actual) modifiers, which can then lead to errors trying to attach them to drm or exporting in dmabuf, which will then suddenly have modifiers.

So lets track if the creation method allows for modifiers or not.
2024-05-16 15:01:42 +02:00
.github/workflows ci: Exclude use_bindgen from cargo hack check 2024-04-22 10:47:42 +02:00
anvil Add shape/orientation to TouchHandle and TouchGrab 2024-05-16 14:51:18 +02:00
benches Use a thread-local for thread ID in UserDataMap::get 2023-05-17 16:00:57 -07:00
examples egl: Propagate sync interrupt where possible 2024-04-06 17:25:26 +02:00
smallvil Call *grab::unset in *set_grab, before restoring focus 2024-04-16 12:00:38 +02:00
smithay-drm-extras Update drm, gbm, image; xkbcommon/x11rb deps of Anvil 2024-04-22 10:47:42 +02:00
src gbm: Force implicit modifiers for old api 2024-05-16 15:01:42 +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 Update drm, gbm, image; xkbcommon/x11rb deps of Anvil 2024-04-22 10:47:42 +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 fix: typo in README (#1372) 2024-03-31 21:49:26 +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

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.