aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-client/src
diff options
context:
space:
mode:
authorSteven Xu <stevenxxiu@users.noreply.github.com>2023-03-06 05:49:09 +1100
committerGitHub <noreply@github.com>2023-03-05 18:49:09 +0000
commit2e79e73af32793f7fe103b81246a5ef5a6e1cfbe (patch)
tree1916278c4aa294f5fca3b7bcf29802eecf81e1fa /atuin-client/src
parentUp arrow filter_mode setting default to global filter mode (#758) (diff)
downloadatuin-2e79e73af32793f7fe103b81246a5ef5a6e1cfbe.zip
feat: add common default keybindings (#719)
* feat: add common default keybindings * feat: add `WORD_SEPARATORS` to config as `word_chars`, as this is what *Zsh* calls it * feat: add option for *Emacs* word jumping * feat: scroll with `PageUp` and `PageDown`, cf #374
Diffstat (limited to 'atuin-client/src')
-rw-r--r--atuin-client/src/settings.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/atuin-client/src/settings.rs b/atuin-client/src/settings.rs
index 6b642b78..bd47d5aa 100644
--- a/atuin-client/src/settings.rs
+++ b/atuin-client/src/settings.rs
@@ -97,6 +97,15 @@ pub enum Style {
Compact,
}
+#[derive(Clone, Debug, Deserialize, Copy)]
+pub enum WordJumpMode {
+ #[serde(rename = "emacs")]
+ Emacs,
+
+ #[serde(rename = "subl")]
+ Subl,
+}
+
#[derive(Clone, Debug, Deserialize)]
pub struct Settings {
pub dialect: Dialect,
@@ -114,6 +123,9 @@ pub struct Settings {
pub shell_up_key_binding: bool,
pub show_preview: bool,
pub exit_mode: ExitMode,
+ pub word_jump_mode: WordJumpMode,
+ pub word_chars: String,
+ pub scroll_context_lines: usize,
#[serde(with = "serde_regex", default = "RegexSet::empty")]
pub history_filter: RegexSet,
@@ -300,6 +312,12 @@ impl Settings {
.set_default("exit_mode", "return-original")?
.set_default("session_token", "")?
.set_default("style", "auto")?
+ .set_default("word_jump_mode", "emacs")?
+ .set_default(
+ "word_chars",
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
+ )?
+ .set_default("scroll_context_lines", 1)?
.add_source(
Environment::with_prefix("atuin")
.prefix_separator("_")