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

@ -10,8 +10,14 @@ If `$XDG_CONFIG_HOME` is not set, this defaults to `~/.config/beansprout/config.
An example config can be found at [examples/config.kdl](../examples/config.kdl).
If the config file is missing, beansprout falls back to its built-in defaults (which
is missing keybinds!). Similarly, if an individual node or block is invalid, it will
If the config file is missing or fails to load, beansprout falls back to its built-in
defaults. If no keybinds are configured, the following fallback keybinds are added:
- `Ctrl+Alt Delete` — exit the River session
- `Super+Shift R` — reload config
- `Super T` — spawn `foot`
Similarly, if an individual node or block is invalid, it will
try to ignore the error and continue on.
All configuration is applied top down, so later options will overwrite earlier ones.
@ -261,6 +267,7 @@ Full command reference:
| `toggle_float` | | Float/unfloat the focused window |
| `toggle_fullscreen` | | Toggle fullscreen on focused window |
| `close_window` | | Close the focused window |
| `exit_river` | | Exit the river session |
| `change_ratio` | float | Adjust primary/stack ratio on current output |
| `increment_primary_count`| | Add a window to the primary side |
| `decrement_primary_count`| | Remove a window from the primary side |