From 9fff92e00a285885910cafd508df6d98ef0921e2 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Tue, 1 Jul 2025 13:00:39 +0200 Subject: {modules/river,pkgs/river-mk-keymap}: Support `once` key mappings Otherwise, the prompt for the new screenshot is overshadowed by the normal key mappings in the `run` mode. --- pkgs/by-name/ri/river-mk-keymap/src/key_map/commands.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'pkgs/by-name/ri/river-mk-keymap/src/key_map/commands.rs') diff --git a/pkgs/by-name/ri/river-mk-keymap/src/key_map/commands.rs b/pkgs/by-name/ri/river-mk-keymap/src/key_map/commands.rs index 058606c9..52a6ba8a 100644 --- a/pkgs/by-name/ri/river-mk-keymap/src/key_map/commands.rs +++ b/pkgs/by-name/ri/river-mk-keymap/src/key_map/commands.rs @@ -145,9 +145,23 @@ impl KeyMap { (Some(mode_name), acc_vec) }); + let command = if value.once { + vec![ + "spawn".to_owned(), + format!( + "riverctl {} && {}", + shlex::try_join(value.command.iter().map(String::as_str)) + .expect("Should work"), + shlex::try_join(["riverctl", "enter-mode", "normal"]) + .expect("Should work"), + ), + ] + } else { + value.command + }; base.extend(key_to_command( mapping[0], - &value.command, + &command, final_mode.as_ref().map_or("normal", |v| v.as_str()), value.allow_locked, )); -- cgit 1.4.1