Files

Wayland clipboard backport

Slint 1.18 replaced copypasta with arboard (Slint #12373). On Wayland, arboard needs the data-control protocol on a connection of its own. GNOME and COSMIC do not offer it by default, and compositors hide it from sandboxed clients. arboard then falls back to X11, which a Flatpak with --socket=fallback-x11 does not have on Wayland. Slint silently uses a no-op clipboard, so copy and paste do nothing (Mail #108).

Sources and adaptation

crates/i-slint-backend-winit is the published 1.18.1 archive, revision 372cf0ee5577c3dfec309a45e7b778ba4e81b734, plus two patches. 0001-wayland-clipboard.patch is Slint #14248 at cb91c1927cd8c17649ba445d28d3a0c2a0041238, adapted to 1.18.1's cfg_if block and normalized manifest. On Wayland, smithay-clipboard uses the event loop's own wl_display with the core wl_data_device and primary-selection protocols, which every compositor offers to sandboxed clients too. arboard stays for X11. The upstream changelog and lockfile hunks are omitted. 0002-dependency-scanner.patch lists five dependencies that the release declares but does not import, so cargo machete can scan the crate. Cargo.toml.orig is kept unchanged for provenance. The standalone lockfile is omitted; both application lockfiles resolve the patched manifest.

smithay-clipboard is pinned to 0.7.2, which uses SCTK 0.19 like winit 0.30. Version 0.7.3 moved to SCTK 0.20 and would build a second copy.

The reader's rich-text copy and primary selection still go through arboard (src/reader_clipboard.rs). Where arboard has no backend, rich copy falls back to plain text through Slint.

Verification and removal

python3 scripts/verify-slint-winit.py

The verifier downloads the checksum-pinned archive, checks its revision, applies the patch, and compares every file with the vendored crate. It also checks the desktop/Android patch wiring, that both lockfiles resolve the local crate for Slint 1.18.1, and the smithay-clipboard pin.

When a Slint release includes #14248, remove the vendored crate, this directory, both manifest patches, the .gitignore and .gitattributes entries, the verifier, and its CI step. Then update both lockfiles and packaging/flatpak/cargo-sources.json.