diff --git a/crates/atuin-client/src/settings.rs b/crates/atuin-client/src/settings.rs index c0ead292fac..a34758db317 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 9185bc0f2a9..de0f4ea12e8 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; }