diff options
| author | Ellie Huxtable <ellie@elliehuxtable.com> | 2023-10-20 07:16:54 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-20 07:16:54 +0100 |
| commit | 88f3e2a04fcf10a1b44aaf30c91f38393b5cfeda (patch) | |
| tree | 2d3dc804c9bc9039f5d054af8bc89c046e5c7f50 /atuin-client | |
| parent | Checkout repo so the manifest publish step can read git (#1314) (diff) | |
| download | atuin-88f3e2a04fcf10a1b44aaf30c91f38393b5cfeda.zip | |
Add enter_accept to immediately execute an accepted command (#1311)
* make enter execute the command, tab copy it
* Add config for enter_accept
enter_accept will make Atuin immediately accept an execute a command
when selected. It defaults to false in our binary, but the default
config enables it.
This means that users who already use atuin will not default to the new
behaviour unless they opt in, but new users will have it by default.
Thanks to @davidhewitt for the patch and bulk of this implementation!
Currently we have it just for zsh, but I'll follow up with other shells
(unless anyone beats me to it :D)
* Add docs
* we need to tidy up the ui code anyway
* Check if using zsh
* Update docs/docs/config/config.md
Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
---------
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
Diffstat (limited to 'atuin-client')
| -rw-r--r-- | atuin-client/config.toml | 4 | ||||
| -rw-r--r-- | atuin-client/src/settings.rs | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/atuin-client/config.toml b/atuin-client/config.toml index d1c1081f..19e8e302 100644 --- a/atuin-client/config.toml +++ b/atuin-client/config.toml @@ -123,3 +123,7 @@ ## 4. Slack webhooks ## 5. Stripe live/test keys # secrets_filter = true + +## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit. +# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise. +enter_accept = true diff --git a/atuin-client/src/settings.rs b/atuin-client/src/settings.rs index 15aa9e06..fca76004 100644 --- a/atuin-client/src/settings.rs +++ b/atuin-client/src/settings.rs @@ -179,6 +179,7 @@ pub struct Settings { pub network_connect_timeout: u64, pub network_timeout: u64, + pub enter_accept: bool, // This is automatically loaded when settings is created. Do not set in // config! Keep secrets and settings apart. @@ -378,6 +379,12 @@ impl Settings { .set_default("secrets_filter", true)? .set_default("network_connect_timeout", 5)? .set_default("network_timeout", 30)? + // enter_accept defaults to false here, but true in the default config file. The dissonance is + // intentional! + // Existing users will get the default "False", so we don't mess with any potential + // muscle memory. + // New users will get the new default, that is more similar to what they are used to. + .set_default("enter_accept", false)? .add_source( Environment::with_prefix("atuin") .prefix_separator("_") @@ -391,6 +398,7 @@ impl Settings { create_dir_all(&config_dir) .wrap_err_with(|| format!("could not create dir {config_dir:?}"))?; + create_dir_all(&data_dir).wrap_err_with(|| format!("could not create dir {data_dir:?}"))?; let mut config_file = if let Ok(p) = std::env::var("ATUIN_CONFIG_DIR") { |
