From 7984f9ef0c1824d4f2cffcb6e93cc951d3913be8 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Tue, 18 Jun 2024 10:24:43 +0100 Subject: [PATCH] feat(tui): configurable prefix character (#2157) * feat(tui): configurable prefix character * string not char because toml/json lol --- crates/atuin-client/src/settings.rs | 2 ++ crates/atuin/src/command/client/search/interactive.rs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/atuin-client/src/settings.rs b/crates/atuin-client/src/settings.rs index c0ead292..a34758db 100644 --- a/crates/atuin-client/src/settings.rs +++ b/crates/atuin-client/src/settings.rs @@ -330,6 +330,7 @@ pub struct Sync { #[derive(Clone, Debug, Deserialize, Default, Serialize)] pub struct Keys { pub scroll_exits: bool, + pub prefix: String, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -715,6 +716,7 @@ impl Settings { .set_default("enter_accept", false)? .set_default("sync.records", false)? .set_default("keys.scroll_exits", true)? + .set_default("keys.prefix", "a")? .set_default("keymap_mode", "emacs")? .set_default("keymap_mode_shell", "auto")? .set_default("keymap_cursor", HashMap::::new())? diff --git a/crates/atuin/src/command/client/search/interactive.rs b/crates/atuin/src/command/client/search/interactive.rs index 9185bc0f..de0f4ea1 100644 --- a/crates/atuin/src/command/client/search/interactive.rs +++ b/crates/atuin/src/command/client/search/interactive.rs @@ -204,7 +204,7 @@ impl State { let esc_allow_exit = !(self.tab_index == 0 && self.keymap_mode == KeymapMode::VimInsert); // support ctrl-a prefix, like screen or tmux - if ctrl && input.code == KeyCode::Char('a') { + if ctrl && input.code == KeyCode::Char(settings.keys.prefix.chars().next().unwrap_or('a')) { self.prefix = true; return InputAction::Continue; }