Implement river-xkb-config-v1

This commit adds support for the river-xkb-config-v1 protocol. There's
a new keyboard_layout block in config that can take options from
xkeyboard-config(7).
This commit is contained in:
Ben Buhse 2026-03-16 08:41:49 -05:00
commit a1bd356943
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
12 changed files with 714 additions and 6 deletions

View file

@ -41,6 +41,7 @@ pub fn build(b: *std.Build) !void {
scanner.addCustomProtocol(b.path("protocol/river-layer-shell-v1.xml"));
scanner.addCustomProtocol(b.path("protocol/river-window-management-v1.xml"));
scanner.addCustomProtocol(b.path("protocol/river-xkb-bindings-v1.xml"));
scanner.addCustomProtocol(b.path("protocol/river-xkb-config-v1.xml"));
scanner.addSystemProtocol("stable/xdg-shell/xdg-shell.xml"); // dep of wlr-layer-shell-unstable-v1
scanner.addCustomProtocol(b.path("protocol/wlr-layer-shell-unstable-v1.xml"));
@ -52,6 +53,7 @@ pub fn build(b: *std.Build) !void {
scanner.generate("river_layer_shell_v1", 1);
scanner.generate("river_window_manager_v1", 4);
scanner.generate("river_xkb_bindings_v1", 2);
scanner.generate("river_xkb_config_v1", 1);
scanner.generate("zwlr_layer_shell_v1", 3);
const options = b.addOptions();