aboutsummaryrefslogtreecommitdiff
path: root/src/config/model.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/model.rs')
-rw-r--r--src/config/model.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/config/model.rs b/src/config/model.rs
index 7895341f..9fda88f4 100644
--- a/src/config/model.rs
+++ b/src/config/model.rs
@@ -477,6 +477,12 @@ pub struct ExperimentalConfig {
/// Cursor shape rendered for the IME anchor when
/// `reveal_hidden_cursor_for_cjk_ime` is enabled. Default: "steady_block".
pub cjk_ime_cursor_shape: ImeCursorShape,
+ /// While prefix mode is active, temporarily switch the macOS host input
+ /// source to an ASCII-capable keyboard layout so prefix commands are read
+ /// as ASCII even when a CJK IME is active, then restore the previous input
+ /// source when prefix mode exits. macOS only; a no-op elsewhere and a
+ /// best-effort no-op if the switch fails. Default: false.
+ pub switch_ascii_input_source_in_prefix: bool,
}
impl Default for KeysConfig {
@@ -756,6 +762,23 @@ reveal_hidden_cursor_for_cjk_ime = true
}
#[test]
+ fn switch_ascii_input_source_in_prefix_default_off_and_parse() {
+ let default_config = Config::default();
+ assert!(
+ !default_config
+ .experimental
+ .switch_ascii_input_source_in_prefix
+ );
+
+ let toml = r#"
+[experimental]
+switch_ascii_input_source_in_prefix = true
+"#;
+ let config: Config = toml::from_str(toml).unwrap();
+ assert!(config.experimental.switch_ascii_input_source_in_prefix);
+ }
+
+ #[test]
fn cjk_ime_cursor_shape_default_steady_block_and_parse() {
let default_config = Config::default();
assert_eq!(
@@ -1049,11 +1072,13 @@ kitty_graphics = true
allow_nested = true
kitty_graphics = true
pane_history = true
+switch_ascii_input_source_in_prefix = true
"#;
let config: Config = toml::from_str(toml).unwrap();
assert!(config.experimental.allow_nested);
assert!(config.experimental.kitty_graphics);
assert!(config.experimental.pane_history);
+ assert!(config.experimental.switch_ascii_input_source_in_prefix);
}
#[test]