Update for wlroots 0.18
Things have fallen a bit out of date. I hope it isn't a big problem that I've grouped a lot of stuff into this PR. To try to make it a bit cleaner it is at least broken up into commits.
The broad strokes of this are:
- Fix two minor typos (`handleOuptuDestroy` -> `handleOutputDestroy`, `PrefferedMode` -> `PreferredMode`)
- Delete obsolete wlroots APIs (mainly: the pending state APIs in `wlr_output_*` and the non-renderpass APIs in `wlr_renderer_*`
- Update bindings for wlroots 0.18:
- Add `RenderPass` API
- Add `Display` argument to `NewOutputLayout` and `CreateGlobal`
- Add relative direction to `NotifyPointerAxis`
- Remove `Vendor`/`Product` from `InputDevice`, since it's not supported anymore
- Add `RelativeDirection` enum
- Switch values of `AxisSource` to use `wl_pointer_axis` enum
- Add `BeginRenderPass` to replace `AttachRender`
- Switch `RenderSoftwareCursors` to use `wlr_output_add_software_cursors_to_render_pass`
- Switch pkg-config package name for wlroots to wlroots-0.18
- Update tinywl to handle the initial commit for XDG surfaces, since wlroots no longer does this automatically
- Updated tinywl to use toplevel/popup callbacks since it's now necessary
- Update Go dependencies
- Update Nix flake
- Use `buildGoModule`
- Avoid using `with` and `rec` as they are no longer best practice
- Remove usage of `gomod2nix` as it is no longer needed
- Update all dependencies
- Apply formatting with `nixfmt`
There are a few minor things. The GeoBox API wrapper contained a pointer field that was only read and never written to, so it was removed, since the two usages of it were broken. Also, there are a lot of things that could be cleaned up or improved in the future. However, I was able to get this working and run applications in it, so hopefully pending any serious issues we can get this moving :)

合并状态:已合并 合并于 2025-05-23 关闭于 2025-05-23 0 条评论