Add exit_river keybinding

Recently, river removed the hardcoded Ctrl+Alt Delete keybinding that
exits river and replaces it with a new `exit_session` request. This adds
support for that request via the new `exit_session` bind. We also added
3 hardcoded default keybinds to: exit river, reload the config, and
open foot. This way, if the config fails to load or is missing, you
should still be able to try reload. I guess you're still SOL if you have
at least one keybind and it's not reload_config, but you do what you can
do.
This commit is contained in:
Ben Buhse 2026-03-06 09:21:07 -06:00
commit 678d0563ed
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
11 changed files with 293 additions and 108 deletions

View file

@ -262,7 +262,8 @@ fn registryListener(registry: *wl.Registry, event: wl.Registry.Event, globals: *
fatal("Failed to bind to river_layer_shell_v1: {any}", .{@errorName(e)});
};
} else if (mem.orderZ(u8, ev.interface, river.WindowManagerV1.interface.name) == .eq) {
globals.river_window_manager_v1 = registry.bind(ev.name, river.WindowManagerV1, 3) catch |e| {
if (ev.version < 4) utils.versionNotSupported(river.WindowManagerV1, ev.version, 4);
globals.river_window_manager_v1 = registry.bind(ev.name, river.WindowManagerV1, 4) catch |e| {
fatal("Failed to bind to river_window_manager_v1: {any}", .{@errorName(e)});
};
} else if (mem.orderZ(u8, ev.interface, river.XkbBindingsV1.interface.name) == .eq) {