Watch
1
0
Fork
You've already forked smithay
0
Commit graph smithay/Cargo.toml
Author SHA1 Message Date
Ian Douglas Scott
7878e6ed11 EI protocol support using reis
The EI protocol is needed for the xdg-desktop-portal `RemoteDesktop`
portal to emulate input devices, as well as by the `InputCapture` portal
for Synergy-like uses (input-leap supports Wayland with this portal).

This exposes a relatively simple API for a compositor to create EI seats
and devices, mirroring the `Seat` API. It also provides an
`InputBackend`
that converts emulated input to Smithay input events.

Receiver contexts for the `InputCapture` portal are also a bit more
complicated to implement. Those involve capturing input once the cursor
crosses outside the display. That isn't implemented at all here yet.

We may want to change things in the future to accommodate receiver
contexts, etc. But this API is fairly minimal to use, so future breaking
changes shouldn't be too challenging for a compositor to adapt to.
2026-06-16 15:03:59 +02:00
Ian Douglas Scott
f949fa4865 winit: Update winit to 0.31.0-beta.2 2026-06-11 10:43:32 -07:00
Brian J. Tarricone
76b4aa9cd1 xwm: add support for _NET_WM_SYNC_REQUEST
This handles the protocol details around _NET_WM_SYNC_REQUEST, and
exposes API so the compositor can coordinate configure events and
frame/decoration resize with app repaints.

Additionally, we set _XWAYLAND_ALLOW_COMMITS to 0 on the X11 window
while a sync request is in flight, which instructs the XWayland server
to not commit to the underlying wl_surface.  This avoids black bars
along the edge of the window when resizing.

See https://specifications.freedesktop.org/wm/1.5/ar01s06.html#id-1.7.3
and https://fishsoup.net/misc/wm-spec-synchronization.html for details.
(Note that this does not implement `_NET_WM_FRAME_DRAWN` or
`_NET_WM_FRAME_TIMINGS`; this only implements the core
`_NET_WM_SYNC_REQUEST`.)
2026-05-13 12:50:57 +02:00
Ian Douglas Scott
ddc4c1267f Use 2024 Rust edition
`smithay` already requires Rust 1.85.0, the version that introduces the
2024 edition. Updating to the new edition allows us to use if let
chains, etc.

To keep things simple here, this allows `unsafe_op_in_unsafe_fn` for
now, which is a warning by default in the 2024 edition.

Removing `ref` in various places is simple enough. The more complicated
issue here is "precise capture lists" using `use<..>`. This needs to be
manually added in various places for the API to still work as it does.

We also annoyingly need to turn some impl-trait arguments to explicitly
named type parameters:
https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html#migrating-cases-involving-apit
2026-04-09 12:54:11 +02:00
PolyMeilex
8ab2d31ac1 chore: Update libinput crate to v0.10.0 2026-04-07 16:08:30 +02:00
Ian Douglas Scott
f07162e2d1 Update wayland-rs dependencies versions
Includes deadlock fix from
https://github.com/Smithay/wayland-rs/pull/889.
2026-03-31 13:01:20 +02:00
Ivan Molodetskikh
eda9f80c3f Implement optional Tracy GPU profiling
Remove profiler glFlush() and most calls outside GlesFrame

Rename EnteredGpuTracepoint -> GpuSpan

Expose profiling methods on GlesFrame

Add GPU span to blit()

It exports a sync point so there's a flush we can piggyback off.

Gate GPU profiling behind new tracy_gpu_profiling feature flag

Add profiling scope to QueryPool::collect()

Implement deleting timestamp queries

Bump tracy-client

Handle missing timer query extension

Document methods

Add GlesFrame::with_gpu_span() instead of the error-prone manual API

Make ScopedGpuSpan use a shared borrow making it possible to nest them

The enter() in render texture actually had a mistake where early error
returns were possible without exit(), which would cause an assertion
failure.

Co-authored-by: Christian Meissl <meissl.christian@gmail.com>
2026-01-09 18:40:15 +01:00
Ian Douglas Scott
1ce7b74d2d wayland: Add wl_fixes protocol to destroy wl_registry 2025-12-31 03:48:20 +01:00
Victoria Brekenfeld
74dde521f2 cargo: Enable MSRV-aware resolver 2025-11-13 14:02:19 +01:00
may
848eca5dde unpin indexmap from 2.11.x 2025-11-10 17:02:57 +01:00
Victoria Brekenfeld
b252c0fa64 msrv: Bumb to 1.85 2025-11-07 19:59:43 +01:00
Christian Meissl
f4c2084fed restrict indexmap to 2.11 to keep our MSRV at 1.80 2025-10-26 18:15:51 +01:00
Bartłomiej Maryńczak
a92540d56b
Implement pointer-warp-v1 protocol 2025-08-14 17:40:02 +02:00
Paddi
bdf094ab68 Update xkbcommon-rs
Fixes #1355
2025-08-10 18:31:35 +02:00
Bartłomiej Maryńczak
a166cf4c94
Version Bump 0.7.0 (#1756)
* Version bump 0.7.0
2025-06-24 21:04:19 +02:00
may
10f0f1e3a1 wayland/cursor_shape: update to v2 2025-05-26 16:31:20 +02:00
PapyElGringo
0b3d070107 add get client id to x11 surface 2025-05-22 16:39:09 +02:00
may
db7a532ef6 update to rustix 1.0 2025-05-22 15:24:17 +02:00
PolyMeilex
da0dddba69 Update wayland-rs 2025-05-22 13:27:18 +02:00
Ian Douglas Scott
a23bfe8db8 input/keyboard: Use hash for ID of KeymapFile
This fixes excessive keymap events with `virtual-keyboard-unstable-v1`
clients like fcitx5.

This depends on `sha2`. Adding a new dependency for this is annoying,
but this is a fairly widely used crate. `blake3` could also work but is
less widely used. Perhaps a dependency couple be avoided if `SipHasher`
is good enough, but as I understand it's not really meant to guarantee
an absence of collisions (but may be good enough in practice here?).

I expect computing a hash won't impact performance much, compared to
clients having to process excessive `keymap` events
2025-05-22 13:23:10 +02:00
Ian Douglas Scott
c1f13a6b96 Update rand and thiserror dependencies 2025-04-29 19:10:23 +02:00
Bartłomiej Maryńczak
f85d06a462
Version bump 0.6.0 (#1707)
Version & Changelog for 0.6.0
2025-04-25 21:04:22 +02:00
Christian Meissl
2acced9751 gbm: track the device node of GbmBuffers 2025-04-16 21:36:47 +02:00
Victoria Brekenfeld
db76e34384 xwm: Add events/method for randr primary output management 2025-04-09 22:48:29 +02:00
Victoria Brekenfeld
ff1689b4d9 compositor: Allow fractional client scales 2025-04-04 18:28:38 +02:00
Victoria Brekenfeld
df08c6f29e renderer: Introduce explicit framebuffers 2025-03-02 20:33:19 +01:00
Bartłomiej Maryńczak
25cf3cf41c
Fixup docs-rs build (#1665) 2025-02-27 19:07:52 +01:00
Bartłomiej Maryńczak
c579dd9c12
0.5.0 Version bump 🎉 (#1660) 2025-02-27 18:34:55 +01:00
PolyMeilex
dbd088dae0 wayland.selection: ExtDataControl 2025-02-10 16:47:23 +01:00
Bartłomiej Maryńczak
2ae322bf4d
0.4.0 Version bump 🎉 (#1644) 2025-01-23 19:05:15 +01:00
Ian Douglas Scott
fe31867e3a Update glow to 0.16.0 2025-01-14 13:43:48 +01:00
Ha
4689174915
Drop once_cell dependency (#1624)
drop `once_cell` dependency
2025-01-05 14:45:02 +01:00
Victoria Brekenfeld
6edf242d95 deps: Update pixman to 0.2.1 2025-01-02 13:06:26 +01:00
Victoria Brekenfeld
dbe96e2037 msrv: Bump to 1.80.1 2025-01-02 13:06:26 +01:00
Ian Douglas Scott
48f5ba4a04 Update to pixman 0.2
Enable the new `sync` feature to make `pixman::Image` `Send`/`Sync`.

The new `pixman` version also makes various methods take `&mut`, so this
updates things to use mutable references where needed. This changes some
`borrow()` calls to `borrow_mut()`, but looks like it shouldn't cause
double borrows.
2024-12-09 11:02:14 +01:00
Ian Douglas Scott
0eba496b1c Update gbm to 0.18
Eliminates `DeviceDestroyedError` and related error variants.
2024-12-03 17:57:49 +01:00
Victoria Brekenfeld
df03b4cc34 deps: bumb profiling 2024-11-25 14:06:07 +01:00
PolyMeilex
be77aaf22b xdg_system_bell: Implement v1 of xdg system bell 2024-10-27 14:15:17 +01:00
Bartłomiej Maryńczak
de5ad9eac9
xdg shell: Introduce reset_initial_configure_sent() (#1542)
* xdg-shell: `reset_initial_configure_sent` For xdg_surface remapping

* test-clients: XDG Surface Map/Unmap loop client

* xdg-shell: reset_initial_configure_sent automatically after unmap
2024-10-25 23:15:30 +02:00
Ian Douglas Scott
e8af9a1e45 Update drm, gbm, udev dependencies 2024-10-01 17:22:56 +02:00
Ian Douglas Scott
3b0ecce6c1 Update glow to 0.14
`smithay-egui` also needs to be updated with `egui-glow` 0.29 to match.
2024-09-27 15:49:23 +02:00
Ian Douglas Scott
dc5f01516b x11: Use xinput2 protocol
If we require dri3 and present, it should be fair to assume xinput2 as
well. This will be needed if we want to add touch and gesture events,
etc.
2024-09-18 19:24:55 +02:00
Paraworker
caa29100ba Replace lazy_static with once_cell::sync::Lazy 2024-09-18 13:30:33 +02:00
PolyMeilex
fe643bd16c Drop scan_fmt dependency 2024-09-18 13:06:24 +02:00
Bartłomiej Maryńczak
85268cde71
wayland.xdg_toplevel_icon: Initial implementation (#1512)
* wayland.xdg_toplevel_icon: Initial implementation
* wayland.shm: Introduce destruction hooks
2024-09-10 19:31:34 +02:00
Victoria Brekenfeld
2e6b9cb0e4 chore: Update wayland-backend 2024-08-22 15:50:17 -06:00
Jeff Peeler
de94e8f59e input: add iso_level5_shift modifier 2024-07-31 15:44:21 +02:00
Victoria Brekenfeld
0d78919bd1 cargo: don't use default_features 2024-06-26 21:37:19 +02:00
Ian Douglas Scott
ba0c180d5c winit: Require newer wayland-client/wayland-cursor
Fixes `-Z minimial-versions` build.
2024-06-20 21:17:34 +02:00
Ian Douglas Scott
a4a2539d2a Update winit to 0.30.0 2024-06-20 21:17:34 +02:00