FreeBSD gets native Wayland, the primary selection works under ext-data-control, and the docs are rewritten for the people reading them. No API changes: go get golang.design/x/clipboard@v0.10.0 is a drop-in upgrade from v0.9.0.
New
Native Wayland on FreeBSD (#173, #174). The pure-Go Wayland backend Linux uses now runs on FreeBSD too. Under a compositor that offers data-control, such as sway, Hyprland or KDE Plasma from FreeBSD packages, the clipboard no longer needs XWayland, and without XWayland it now works at all. Nothing to configure: when WAYLAND_DISPLAY is set and a data-control manager is advertised, Wayland is used; otherwise X11, as before.
It is tested in CI: a new job runs the whole test suite as a client of headless sway 1.12 in a FreeBSD VM, against wl-copy/wl-paste from FreeBSD packages. OpenBSD and NetBSD compile the same path, but it is untested there.
Fixed
The primary selection under ext-data-control (#175). FromPrimary() said the middle-click clipboard was unsupported under every compositor offering ext-data-control-v1, such as current sway, KWin and GNOME 49, although that protocol has had it since its first version. The backend was using the wlroots protocol's version rule for both. The new FreeBSD job found this: its sway prefers ext, while Ubuntu's older sway offers only the wlroots protocol.
Docs
README and package docs rewritten (#176). They now open with a quick start that compiles, followed by a platform table, a feature table, and one short section per task. Examples that no longer compiled against v0.9.0 are fixed, and so are function docs that had gone stale: Init no longer warns about libx11-dev and panics, and Read, WriteAll, FromPrimary and ErrNoData now describe the errors they actually return.
Thanks
Thanks to @halcyon for asking for FreeBSD Wayland support in #173.
Full changelog: v0.9.0...v0.10.0