diff options
Diffstat (limited to 'pkgs/by-name/ri')
-rw-r--r-- | pkgs/by-name/ri/river-mk-keymap/Cargo.lock | 12 | ||||
-rw-r--r-- | pkgs/by-name/ri/river-mk-keymap/Cargo.toml | 2 | ||||
-rw-r--r-- | pkgs/by-name/ri/river-mk-keymap/flake.lock | 6 | ||||
-rw-r--r-- | pkgs/by-name/ri/river-mk-keymap/src/key_map/commands.rs | 16 | ||||
-rw-r--r-- | pkgs/by-name/ri/river-mk-keymap/src/key_map/mod.rs | 5 |
5 files changed, 30 insertions, 11 deletions
diff --git a/pkgs/by-name/ri/river-mk-keymap/Cargo.lock b/pkgs/by-name/ri/river-mk-keymap/Cargo.lock index 725c02d7..5640dc9b 100644 --- a/pkgs/by-name/ri/river-mk-keymap/Cargo.lock +++ b/pkgs/by-name/ri/river-mk-keymap/Cargo.lock @@ -13,9 +13,9 @@ version = 4 [[package]] name = "ab_glyph" -version = "0.2.29" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" +checksum = "1e0f4f6fbdc5ee39f2ede9f5f3ec79477271a6d6a2baff22310d51736bda6cea" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "ab_glyph_rasterizer" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" +checksum = "b2187590a23ab1e3df8681afdf0987c48504d80291f002fcdb651f0ef5e25169" [[package]] name = "anstream" @@ -410,9 +410,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", diff --git a/pkgs/by-name/ri/river-mk-keymap/Cargo.toml b/pkgs/by-name/ri/river-mk-keymap/Cargo.toml index 8198738a..9d8d2bba 100644 --- a/pkgs/by-name/ri/river-mk-keymap/Cargo.toml +++ b/pkgs/by-name/ri/river-mk-keymap/Cargo.toml @@ -16,7 +16,7 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -ab_glyph = "0.2.29" +ab_glyph = "0.2.30" anyhow = "1.0.98" clap = { version = "4.5.40", features = ["derive"] } font-kit = "0.14.3" diff --git a/pkgs/by-name/ri/river-mk-keymap/flake.lock b/pkgs/by-name/ri/river-mk-keymap/flake.lock index a267d6fb..175494e6 100644 --- a/pkgs/by-name/ri/river-mk-keymap/flake.lock +++ b/pkgs/by-name/ri/river-mk-keymap/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1750731501, - "narHash": "sha256-Ah4qq+SbwMaGkuXCibyg+Fwn00el4KmI3XFX6htfDuk=", + "lastModified": 1751285371, + "narHash": "sha256-/hDU+2AUeFFu5qGHO/UyFMc4UG/x5Cw5uXO36KGTk6c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "69dfebb3d175bde602f612915c5576a41b18486b", + "rev": "b9c03fbbaf84d85bb28eee530c7e9edc4021ca1b", "type": "github" }, "original": { 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, )); diff --git a/pkgs/by-name/ri/river-mk-keymap/src/key_map/mod.rs b/pkgs/by-name/ri/river-mk-keymap/src/key_map/mod.rs index 5c89c2e2..16dc02f4 100644 --- a/pkgs/by-name/ri/river-mk-keymap/src/key_map/mod.rs +++ b/pkgs/by-name/ri/river-mk-keymap/src/key_map/mod.rs @@ -30,6 +30,10 @@ pub struct KeyConfig { #[serde(default)] allow_locked: bool, + /// Whether to go back to the normal mode, after running this command. + #[serde(default)] + once: bool, + /// Use a different description to display this command, instead of the `command`. description: Option<String>, } @@ -51,6 +55,7 @@ impl FromStr for KeyMap { .collect::<Option<_>>() .ok_or(anyhow!("A array contained a non-string value: {value:#?}"))?, allow_locked: false, + once: false, description: None, } } else if let Some(object) = value.as_object() { |