commit fa1a1b01bda020cb10fee649d8c5f34b749289cd from: Peter Kaplan date: Sun Mar 29 23:07:08 2026 UTC river: add new screen capture protocols * ext-image-copy-capture-v1 * ext-image-capture-source-v1 (without toplevel capture) commit - ceb50e8c88a83df13464c7305a58fee7ec8a292d commit + fa1a1b01bda020cb10fee649d8c5f34b749289cd blob - 2377cfd86367258a818b89df5d9d34bc1ab535f1 blob + 81128dc1e29081f8fc72c6aeb477aa151054cd71 --- build.zig +++ build.zig @@ -90,6 +90,7 @@ pub fn build(b: *Build) !void { scanner.addSystemProtocol("staging/color-representation/color-representation-v1.xml"); scanner.addSystemProtocol("staging/cursor-shape/cursor-shape-v1.xml"); scanner.addSystemProtocol("staging/ext-session-lock/ext-session-lock-v1.xml"); + scanner.addSystemProtocol("staging/ext-image-copy-capture/ext-image-copy-capture-v1.xml"); scanner.addSystemProtocol("staging/tearing-control/tearing-control-v1.xml"); scanner.addSystemProtocol("unstable/pointer-constraints/pointer-constraints-unstable-v1.xml"); scanner.addSystemProtocol("unstable/pointer-gestures/pointer-gestures-unstable-v1.xml"); @@ -120,6 +121,7 @@ pub fn build(b: *Build) !void { scanner.generate("zwp_tablet_manager_v2", 1); scanner.generate("zxdg_decoration_manager_v1", 1); scanner.generate("ext_session_lock_manager_v1", 1); + scanner.generate("ext_image_copy_capture_manager_v1", 1); scanner.generate("wp_cursor_shape_manager_v1", 1); scanner.generate("wp_tearing_control_manager_v1", 1); scanner.generate("wp_color_manager_v1", 2); blob - eb5de2bda24e06b9007b48de87c8a380893de8ee blob + 5d0f06871a5a131915fdae0264cf28dd28031cbf --- river/Server.zig +++ river/Server.zig @@ -91,6 +91,9 @@ data_control_manager: *wlr.DataControlManagerV1, export_dmabuf_manager: *wlr.ExportDmabufManagerV1, screencopy_manager: *wlr.ScreencopyManagerV1, +image_copy_capture_manager: *wlr.ExtImageCopyCaptureManagerV1, +output_image_capture_source_manager: *wlr.ExtOutputImageCaptureSourceManagerV1, + foreign_toplevel_manager: *wlr.ForeignToplevelManagerV1, foreign_toplevel_list: *wlr.ExtForeignToplevelListV1, @@ -176,6 +179,9 @@ pub fn init(server: *Server, runtime_xwayland: bool) ! .export_dmabuf_manager = try wlr.ExportDmabufManagerV1.create(wl_server), .screencopy_manager = try wlr.ScreencopyManagerV1.create(wl_server), + .image_copy_capture_manager = try wlr.ExtImageCopyCaptureManagerV1.create(wl_server, 1), + .output_image_capture_source_manager = try wlr.ExtOutputImageCaptureSourceManagerV1.create(wl_server, 1), + .foreign_toplevel_manager = try wlr.ForeignToplevelManagerV1.create(wl_server), .foreign_toplevel_list = try wlr.ExtForeignToplevelListV1.create(wl_server, 1), @@ -384,6 +390,8 @@ fn blocklist(server: *Server, global: *const wl.Global global == server.foreign_toplevel_manager.global or global == server.foreign_toplevel_list.global or global == server.screencopy_manager.global or + global == server.image_copy_capture_manager.global or + global == server.output_image_capture_source_manager.global or global == server.export_dmabuf_manager.global or global == server.data_control_manager.global or global == server.layout_manager.global or