Commit Graph

1374 Commits

Author SHA1 Message Date
Peter Kaplan
0d2b123547 river: ext-foreign-toplevel-image-capture-source 2026-03-30 10:02:35 +02:00
Peter Kaplan
fa1a1b01bd river: add new screen capture protocols
* ext-image-copy-capture-v1
* ext-image-capture-source-v1 (without toplevel capture)
2026-03-30 01:07:08 +02:00
Isaac Freund
ceb50e8c88 Server: implement color management protocols
Thank you wlroots!
2026-03-29 19:42:53 +02:00
Isaac Freund
20957917ca cursor-shape: implement version 2 2026-03-29 18:26:43 +02:00
Isaac Freund
94463c4de2 Server: implement wl_fixes 2026-03-29 18:26:21 +02:00
Isaac Freund
f1230e8ec9 InputRelay: adapt to wlroots breaking change
This wlroots breaking change wasn't mentioned in the changelog :/

Fixes a crash when doing pretty much anything with an input method.
2026-03-28 11:03:42 +01:00
Isaac Freund
47b64bda73 build: update to wlroots 0.20 2026-03-27 18:50:21 +01:00
wakwkc
bbdc47778d Root: use attach mode top when restoring from fallback 2026-03-08 11:23:54 +01:00
nate zhou
f0908e2d11 doc: fix broken links in readme 2026-01-22 10:16:39 +01:00
Isaac Freund
5885fb79db river: support wl_shm version 2
This was a typo
2026-01-08 19:14:22 +00:00
Isaac Freund
21142a8f7c build: bump version to 0.3.15-dev 2026-01-07 04:39:16 +00:00
Isaac Freund
1787792560 build: bump version to 0.3.14 2026-01-07 04:37:34 +00:00
Isaac Freund
a46c0df7ed Server: fix wlroots assertion failure on GPU reset 2026-01-06 21:00:44 +00:00
Isaac Freund
df131f9a9d LayerSurface: don't configure in response to unmap
We should wait until the next "initial commit" before
sending a configure after a layer surface unmaps itself.
2025-12-20 18:40:30 +00:00
Isaac Freund
d38d4105c4 docs: update wiki link 2025-12-18 23:37:34 +00:00
Isaac Freund
be722b2a3f docs: fix typo in README 2025-12-10 20:24:22 +01:00
Isaac Freund
9c42ed788a build: bump version to 0.3.14-dev 2025-10-03 11:36:58 +02:00
Isaac Freund
3ef7b69112 build: bump version to 0.3.13 2025-10-03 11:35:50 +02:00
Isaac Freund
165871e0fc command: fix possible crash on focus
If the currently focused view has been moved to a different output but
the transaction has not yet been completed, we can hit unreachable code
in this function.

thread 1073 panic: reached unreachable code
/home/pkaplan/Software/river/river/command/view_operations.zig:100:21: 0x11752d6 in getTarget (river)
                    unreachable;
                    ^
/home/pkaplan/Software/river/river/command/view_operations.zig:46:22: 0x1146f36 in focusView (river)
    if (try getTarget(
                     ^
/home/pkaplan/Software/river/river/command.zig:144:16: 0x11124e3 in run (river)
    try impl_fn(seat, args, out);
               ^
/home/pkaplan/Software/river/river/Seat.zig:447:16: 0x10eb00f in runCommand (river)
    command.run(seat, args, &out) catch |err| {
               ^
/home/pkaplan/Software/river/river/Seat.zig:423:24: 0x1110350 in handleMapping (river)
        seat.runCommand(mapping.command_args);
                       ^
/home/pkaplan/Software/river/river/Keyboard.zig:213:47: 0x10e83b8 in wrapper (river)
        if (keyboard.device.seat.handleMapping(keycode, modifiers, released, xkb_state)) {
                                              ^
???:?:?: 0x7d8f73aa051d in ??? (libwayland-server.so.0)
Unwind information for `libwayland-server.so.0:0x7d8f73aa051d` was not available, trace may be incomplete

???:?:?: 0x7d8f739fecc7 in ??? (libwlroots-0.18.so)
???:?:?: 0x7d8f739d0dbb in ??? (libwlroots-0.18.so)
???:?:?: 0x7d8f73aa2111 in ??? (libwayland-server.so.0)
???:?:?: 0x7d8f73aa41f6 in ??? (libwayland-server.so.0)
/home/pkaplan/Software/river/river/main.zig:139:25: 0x10715dd in main (river)
    server.wl_server.run();
                        ^
/usr/lib/zig/std/start.zig:524:37: 0x107083e in main (river)
            const result = root.main() catch |err| {
                                    ^
???:?:?: 0x7d8f736b06b4 in ??? (libc.so.6)
???:?:?: 0x7d8f736b0768 in ??? (libc.so.6)
???:?:?: 0x1070354 in ??? (???)
2025-10-03 11:28:19 +02:00
Isaac Freund
633f4e2733 river: remove dead code 2025-10-03 11:28:01 +02:00
Isaac Freund
170cac310d linux-dmabuf: disable fine-grained feedback again
Despite the better debouncing in wlroots 0.19, this is still causing
problems. In particular, certain clients (mostly Xwayland games it
seems) have a bad interaction with this additional feedback, possibly
related to the cursor buffer.

The reported symptoms are significant framerate drops and stuttering on
pointer input.

Probably there's a wlroots bug here at fault but I don't have the
resources to fix it myself currently and would rather not force river
users to suffer.

Setting WLR_SCENE_DISABLE_DIRECT_SCANOUT=1 isn't sufficient to solve
these problems either, as wlr_scene still sends enough extra feedback
to trigger the problems.

Closes: https://codeberg.org/river/river/issues/1277
2025-09-02 10:52:57 +02:00
Isaac Freund
c18ed4aae1 river: fix logging to non-pipe
Since the Zig 0.15 upgrade, if stderr is redirected to a file, river
writes every log message to the beginning of the file, overwriting the
previous message. This commit fixes that and also switches to the nicer
new std.debug API for stderr logging.
2025-09-02 09:46:46 +02:00
Isaac Freund
f0c7f57d36 LayerSurface: fix crash on bad exclusive zone
River closes layer surfaces with an unreasonably large exclusive zone.
However, due to unfortunate/awkward code structure, this currently
may cause a use-after-free on mapping layer surface.
2025-09-01 09:55:49 +02:00
Isaac Freund
d412c9cdd1 doc: tweak README formatting 2025-08-30 19:23:45 +02:00
Isaac Freund
e5c7d75dcc build: bump version to 0.3.13-dev 2025-08-30 19:01:32 +02:00
Isaac Freund
8e4f3f6800 build: bump version to 0.3.12 2025-08-30 19:01:32 +02:00
Isaac Freund
50d5108d1f ci: rename to river-classic 2025-08-30 19:01:32 +02:00
Isaac Freund
1168a3f47a doc: rename to river-classic 2025-08-30 18:56:31 +02:00
Isaac Freund
265461162f build: rename to river-classic 2025-08-30 18:56:31 +02:00
Isaac Freund
7bc761306e Cursor: clear pointer focus on hide
This line seems to have been removed by accident while fixing a
different unrelated bug.

Fixes: f482b9ddaa
2025-08-30 18:08:24 +02:00
Isaac Freund
88a8c45ac0 river: run 0.15 zig fmt 2025-08-22 15:11:50 +02:00
Isaac Freund
d72408df18 build: update to Zig 0.15 2025-08-22 15:09:07 +02:00
Isaac Freund
63542fdf3e build: bump zig-wlroots version
This version includes a fix for a regression introduced with the wlroots
0.19 upgrade.
2025-07-10 14:55:38 +02:00
Isaac Freund
b8ec02796f build: bump version to 0.3.12-dev 2025-07-01 09:40:25 +02:00
Isaac Freund
0898a06a96 build: bump version to 0.3.11 2025-07-01 09:37:56 +02:00
Isaac Freund
d2520301cd build: switch to zig-wlroots tag 2025-07-01 09:36:30 +02:00
Peter Kaplan
1db51285c0 ext-foreign-toplevel-list-v1: implement protocol 2025-07-01 09:26:26 +02:00
Isaac Freund
d08c170571 Seat: ignore virtual keyboards until keymap set
The wlr-virtual-keyboard-v1 protocol fails to make keyboard creation
atomic. There is nothing a client can do with a virtual keyboard that
has no keymap except for destroy it, so we can completely ignore them
until a keymap is set.

This fixes a regression with fcitx caused by river sending the null
keymap of a new virtual keyboard to fcitx.
2025-06-30 12:57:06 +02:00
Isaac Freund
fe759d2d8a Keyboard: don't add virtual keyboards to group
Also don't set their keymap, the client handles that.

This is the first step towards fixing a regression with fcitx5.
2025-06-30 12:56:51 +02:00
Isaac Freund
fcf8b1e442 Cursor: fix formatting
This is a behavior change in zig 0.14
2025-06-26 11:01:19 +02:00
Isaac Freund
ed85b4401e build: bump version to 0.3.11-dev 2025-06-18 14:14:46 +02:00
Isaac Freund
6af8369624 build: bump version to 0.3.10 2025-06-18 14:06:52 +02:00
Isaac Freund
7fc7b570f0 View: workaround wlr_box_intersect() quirk 2025-06-18 13:46:17 +02:00
Isaac Freund
6385d71c37 XwaylandView: remove set_decorations listener on unmap 2025-06-18 12:26:46 +02:00
Daniel Eklöf
c8fb3952f8 XwaylandView: drop set_decorations link in handleDestroy()
Fixes yet another assertion in wlroots:

    river: xwayland/xwm.c:601: xwayland_surface_destroy: Assertion `wl_list_empty(&xsurface->events.set_decorations.listener_list)' failed.
2025-06-18 12:22:17 +02:00
Daniel Eklöf
40294223d4 LayerSurface: drop new_popup link in handleDestroy()
This fixes an assertion in wlroots:

    river: types/wlr_layer_shell_v1.c:55: layer_surface_destroy: Assertion `wl_list_empty(&surface->events.new_popup.listener_list)' failed.
2025-06-18 12:22:17 +02:00
Isaac Freund
c111fc9905 river: drop wl_drm support
Looks like other compositors have completely dropped this by now.
2025-06-18 12:22:17 +02:00
Isaac Freund
bbb62ac8d8 linux-drm-syncobj: implement protocol 2025-06-18 12:22:17 +02:00
Isaac Freund
15736c57d7 linux-dmabuf: re-enable per-surface feedback
This was disabled due to being too spammy in the past. Since wlr_scene
now debounces per-surface feedback it should be fine to re-enable this.
2025-06-18 12:22:17 +02:00
Isaac Freund
037314823e build: update to wlroots 0.19 2025-06-18 12:22:17 +02:00