Xwayland: don't inherit rlimit changes from river
Output: check scene damage before rendering
This should fix adaptive sync/VRR, which was regressed by db7de8151.
security-context-v1: fix assertion failure
There's a bit of subtlety I missed with the zig-wayland upgrade.
Since zig-wayland now generates its own wl_interface structs the pointer
comparison we used to do here is no longer sufficient.
deps: upgrade to latest zig-wayland
deps: update to latest zig-wayland
docs: mention key repeat defaults
alpha-modifier-v1: implement protocol
Implement the alpha-modifier-v1 protocol, which allows clients to
offload alpha blending operations to the compositor.
wlroots' scene graph code takes care of updating the opacity of
wlr_scene_buffers with an associated wp_alpha_modifier_surface_v1.
layer-surface: fix clip box coordinates
The clip box must be relative to the layer surface, not the output.
Output: workaround wlroots headless output bug
input: support scroll button lock config
docs: fix broken repology link
build: load tablet-v2 protocol from its new location
tearing-control: fix security-context related assert
tearing-control: minor cleanups/style improvements
This commit also tweaks the riverctl interface to make the global
allow-tearing option apply only to tearing-control-v1 hints from
clients. The global option no longer affects tearing/no-tearing rules
explicitly created by the user.
tearing-control-v1: implement
Implement the wp-tearing-control-v1 protocol allowing window to hint
the compositor that they prefer async "tearing" page flips.
Add tearing/no-tearing rules to allow the user to manually
enabled/disable tearing for a window.
Use async "tearing" page flips when a window that should be allowed to
tear is fullscreen.
This still requires several kernel patches to work with the wlroots
atomic DRM backend. For now, either set WLR_DRM_NO_ATOMIC=1 or use a
custom kernel that includes the unmerged patches (such as CachyOS).
Closes: https://codeberg.org/river/river/issues/1094
Root: simplify scene tree reparenting
Making these reparent() calls unconditional avoids inconsistent state.
It's also simpler and less error-prone and the wlroots function returns
immediately if the parent doesn't change anyways.
docs: clarify input device name description
The word "numerical" suggests both decimal and hexadecimal, so changed
it to decimal.
Output: don't configure uninitialized layer surfaces
It is possible for a layer surface to notably delay its initial commit;
for example shotman[1] creates two layer surfaces and uses one of them
to get enough information for a screenshot and initializing the other.
River could also have sent a configure before initial commit if two
clients raced against each other.
Fixes https://codeberg.org/river/river/issues/1123
[1]:https://sr.ht/~whynothugo/shotman/
river: attempt to recover from GPU resets