From 84ff29dd024c73e94f3e65d56d907ae903fe3752 Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Wed, 17 Jul 2024 16:08:31 +0200 Subject: [PATCH] feat(ui): configuration screen + configure non-colliding keys at runtime (#3502) * rebind => reconfigure * persist keybinds and mode info to new tabs * add configuration plugin * make tests pass * remove warnings * style(fmt): rustfmt --- Cargo.lock | 9 + Cargo.toml | 1 + .../configuration/.cargo/config.toml | 2 + default-plugins/configuration/.gitignore | 1 + default-plugins/configuration/Cargo.toml | 11 + default-plugins/configuration/LICENSE.md | 1 + default-plugins/configuration/src/main.rs | 1987 +++++++++++++++++ .../fixture-plugin-for-tests/src/main.rs | 4 +- default-plugins/status-bar/src/one_line_ui.rs | 20 + ...s__e2e__cases__resize_terminal_window.snap | 4 +- ...__cases__send_command_through_the_cli.snap | 4 +- xtask/src/main.rs | 1 + zellij-server/src/lib.rs | 69 +- zellij-server/src/plugins/mod.rs | 16 + zellij-server/src/plugins/plugin_loader.rs | 24 + zellij-server/src/plugins/plugin_map.rs | 8 + .../src/plugins/unit/plugin_tests.rs | 10 +- ...ts__granted_permission_request_result.snap | 4 +- ...gin_tests__reconfigure_plugin_command.snap | 11 + ...gin_tests__request_plugin_permissions.snap | 4 +- zellij-server/src/plugins/wasm_bridge.rs | 66 + zellij-server/src/plugins/zellij_exports.rs | 11 +- zellij-server/src/route.rs | 46 +- zellij-server/src/screen.rs | 49 +- zellij-server/src/unit/screen_tests.rs | 12 +- zellij-tile/src/shim.rs | 4 +- zellij-utils/assets/config/default.kdl | 9 + .../assets/plugins/configuration.wasm | Bin 0 -> 840947 bytes .../assets/prost/api.plugin_command.rs | 8 +- .../assets/prost/api.plugin_permission.rs | 6 +- zellij-utils/src/consts.rs | 1 + zellij-utils/src/data.rs | 9 +- zellij-utils/src/errors.rs | 5 +- zellij-utils/src/input/actions.rs | 10 - zellij-utils/src/input/mod.rs | 3 +- zellij-utils/src/input/plugins.rs | 1 + zellij-utils/src/kdl/mod.rs | 4 + .../src/plugin_api/plugin_command.proto | 4 +- zellij-utils/src/plugin_api/plugin_command.rs | 14 +- .../src/plugin_api/plugin_permission.proto | 2 +- .../src/plugin_api/plugin_permission.rs | 4 +- ..._default_config_with_no_cli_arguments.snap | 172 +- ...out_env_vars_override_config_env_vars.snap | 172 +- ...out_keybinds_override_config_keybinds.snap | 14 +- ..._layout_themes_override_config_themes.snap | 172 +- ..._ui_config_overrides_config_ui_config.snap | 172 +- 46 files changed, 3066 insertions(+), 95 deletions(-) create mode 100644 default-plugins/configuration/.cargo/config.toml create mode 100644 default-plugins/configuration/.gitignore create mode 100644 default-plugins/configuration/Cargo.toml create mode 120000 default-plugins/configuration/LICENSE.md create mode 100644 default-plugins/configuration/src/main.rs create mode 100644 zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__reconfigure_plugin_command.snap create mode 100755 zellij-utils/assets/plugins/configuration.wasm diff --git a/Cargo.lock b/Cargo.lock index cfb94204..6588cffb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -749,6 +749,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "configuration" +version = "0.1.0" +dependencies = [ + "ansi_term", + "chrono", + "zellij-tile", +] + [[package]] name = "console" version = "0.15.0" diff --git a/Cargo.toml b/Cargo.toml index 26987d01..63a663fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,6 +37,7 @@ members = [ "default-plugins/tab-bar", "default-plugins/fixture-plugin-for-tests", "default-plugins/session-manager", + "default-plugins/configuration", "zellij-client", "zellij-server", "zellij-utils", diff --git a/default-plugins/configuration/.cargo/config.toml b/default-plugins/configuration/.cargo/config.toml new file mode 100644 index 00000000..bc255e30 --- /dev/null +++ b/default-plugins/configuration/.cargo/config.toml @@ -0,0 +1,2 @@ +[build] +target = "wasm32-wasi" \ No newline at end of file diff --git a/default-plugins/configuration/.gitignore b/default-plugins/configuration/.gitignore new file mode 100644 index 00000000..ea8c4bf7 --- /dev/null +++ b/default-plugins/configuration/.gitignore @@ -0,0 +1 @@ +/target diff --git a/default-plugins/configuration/Cargo.toml b/default-plugins/configuration/Cargo.toml new file mode 100644 index 00000000..52242f3d --- /dev/null +++ b/default-plugins/configuration/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "configuration" +version = "0.1.0" +authors = ["Aram Drevekenin "] +edition = "2021" +license = "MIT" + +[dependencies] +ansi_term = "0.12.1" +zellij-tile = { path = "../../zellij-tile" } +chrono = "0.4.0" diff --git a/default-plugins/configuration/LICENSE.md b/default-plugins/configuration/LICENSE.md new file mode 120000 index 00000000..f0608a63 --- /dev/null +++ b/default-plugins/configuration/LICENSE.md @@ -0,0 +1 @@ +../../LICENSE.md \ No newline at end of file diff --git a/default-plugins/configuration/src/main.rs b/default-plugins/configuration/src/main.rs new file mode 100644 index 00000000..db0219c5 --- /dev/null +++ b/default-plugins/configuration/src/main.rs @@ -0,0 +1,1987 @@ +use zellij_tile::prelude::*; + +use std::collections::{BTreeMap, BTreeSet}; + +struct State { + userspace_configuration: BTreeMap, + selected_index: Option, + selected_primary_key_index: usize, + selected_secondary_key_index: usize, + remapping_leaders: bool, + primary_modifier: BTreeSet, + secondary_modifier: BTreeSet, + possible_modifiers: Vec, + browsing_secondary_modifier: bool, + mode_color_index: usize, + preset_color_index: usize, + primary_leader_key_color_index: usize, + secondary_leader_key_color_index: usize, +} + +impl Default for State { + fn default() -> Self { + let mut primary_modifier = BTreeSet::new(); + primary_modifier.insert(KeyModifier::Ctrl); + let mut secondary_modifier = BTreeSet::new(); + secondary_modifier.insert(KeyModifier::Alt); + State { + userspace_configuration: BTreeMap::new(), + selected_index: None, + selected_primary_key_index: 0, + selected_secondary_key_index: 0, + remapping_leaders: false, + primary_modifier, + secondary_modifier, + possible_modifiers: vec![ + KeyModifier::Ctrl, + KeyModifier::Alt, + KeyModifier::Super, + KeyModifier::Shift, + ], + browsing_secondary_modifier: false, + primary_leader_key_color_index: 3, + secondary_leader_key_color_index: 0, + mode_color_index: 2, + preset_color_index: 1, + } + } +} + +register_plugin!(State); + +impl ZellijPlugin for State { + fn load(&mut self, configuration: BTreeMap) { + self.userspace_configuration = configuration; + // we need the ReadApplicationState permission to receive the ModeUpdate and TabUpdate + // events + // we need the RunCommands permission to run "cargo test" in a floating window + request_permission(&[ + PermissionType::ReadApplicationState, + PermissionType::RunCommands, + PermissionType::ReadCliPipes, + PermissionType::MessageAndLaunchOtherPlugins, + PermissionType::Reconfigure, + PermissionType::ChangeApplicationState, + ]); + subscribe(&[ + EventType::ModeUpdate, + EventType::TabUpdate, + EventType::Key, + EventType::Timer, + EventType::PermissionRequestResult, + ]); + } + fn update(&mut self, event: Event) -> bool { + let mut should_render = false; + match event { + Event::PermissionRequestResult(_) => { + should_render = true; + }, + Event::Key(key) => { + if self.remapping_leaders { + should_render = self.handle_remapping_screen_key(key); + } else { + should_render = self.handle_main_screen_key(key); + } + }, + _ => (), + }; + should_render + } + fn render(&mut self, rows: usize, cols: usize) { + if self.remapping_leaders { + self.render_remapping_leaders_screen(rows, cols); + } else { + self.render_main_screen(rows, cols); + } + } +} + +impl State { + fn handle_remapping_screen_key(&mut self, key: KeyWithModifier) -> bool { + let mut should_render = false; + if self.browsing_secondary_modifier { + if key.bare_key == BareKey::Left && key.has_no_modifiers() { + self.browsing_secondary_modifier = false; + self.selected_primary_key_index = self.selected_secondary_key_index; + should_render = true; + } else if key.bare_key == BareKey::Right && key.has_no_modifiers() { + self.browsing_secondary_modifier = false; + self.selected_primary_key_index = self.selected_secondary_key_index; + should_render = true; + } else if key.bare_key == BareKey::Down && key.has_no_modifiers() { + if self.selected_secondary_key_index + < self.possible_modifiers.len().saturating_sub(1) + { + self.selected_secondary_key_index += 1; + } else { + self.selected_secondary_key_index = 0; + } + should_render = true; + } else if key.bare_key == BareKey::Up && key.has_no_modifiers() { + if self.selected_secondary_key_index > 0 { + self.selected_secondary_key_index -= 1; + } else { + self.selected_secondary_key_index = + self.possible_modifiers.len().saturating_sub(1); + } + should_render = true; + } else if key.bare_key == BareKey::Char(' ') && key.has_no_modifiers() { + if let Some(selected_modifier) = self + .possible_modifiers + .get(self.selected_secondary_key_index) + { + if self.secondary_modifier.contains(selected_modifier) { + self.secondary_modifier.remove(selected_modifier); + } else { + self.secondary_modifier.insert(*selected_modifier); + } + should_render = true; + } + } + } else { + if key.bare_key == BareKey::Left && key.has_no_modifiers() { + self.browsing_secondary_modifier = true; + self.selected_secondary_key_index = self.selected_primary_key_index; + should_render = true; + } else if key.bare_key == BareKey::Right && key.has_no_modifiers() { + self.browsing_secondary_modifier = true; + self.selected_secondary_key_index = self.selected_primary_key_index; + should_render = true; + } else if key.bare_key == BareKey::Down && key.has_no_modifiers() { + if self.selected_primary_key_index < self.possible_modifiers.len().saturating_sub(1) + { + self.selected_primary_key_index += 1; + } else { + self.selected_primary_key_index = 0; + } + should_render = true; + } else if key.bare_key == BareKey::Up && key.has_no_modifiers() { + if self.selected_primary_key_index > 0 { + self.selected_primary_key_index -= 1; + } else { + self.selected_primary_key_index = + self.possible_modifiers.len().saturating_sub(1); + } + should_render = true; + } else if key.bare_key == BareKey::Char(' ') && key.has_no_modifiers() { + if let Some(selected_modifier) = + self.possible_modifiers.get(self.selected_primary_key_index) + { + if self.primary_modifier.contains(selected_modifier) { + self.primary_modifier.remove(selected_modifier); + } else { + self.primary_modifier.insert(*selected_modifier); + } + should_render = true; + } + } + } + if key.bare_key == BareKey::Enter { + self.remapping_leaders = false; + should_render = true; + } + should_render + } + fn handle_main_screen_key(&mut self, key: KeyWithModifier) -> bool { + let mut should_render = false; + if key.bare_key == BareKey::Down && key.has_no_modifiers() { + if self.selected_index.is_none() { + self.selected_index = Some(0); + } else if self.selected_index < Some(1) { + self.selected_index = Some(1); + } else { + self.selected_index = None; + } + should_render = true; + } else if key.bare_key == BareKey::Up && key.has_no_modifiers() { + if self.selected_index.is_none() { + self.selected_index = Some(1); + } else if self.selected_index == Some(1) { + self.selected_index = Some(0); + } else { + self.selected_index = None; + } + should_render = true; + } else if key.bare_key == BareKey::Enter && key.has_no_modifiers() { + if let Some(selected) = self.selected_index.take() { + if selected == 0 { + // TODO: these should be part of a "transaction" when they are + // implemented + reconfigure(default_keybinds( + self.primary_modifier + .iter() + .map(|m| m.to_string()) + .collect::>() + .join(" "), + self.secondary_modifier + .iter() + .map(|m| m.to_string()) + .collect::>() + .join(" "), + )); + switch_to_input_mode(&InputMode::Normal); + } else if selected == 1 { + // TODO: these should be part of a "transaction" when they are + // implemented + reconfigure(unlock_first_keybinds( + self.primary_modifier + .iter() + .map(|m| m.to_string()) + .collect::>() + .join(" "), + self.secondary_modifier + .iter() + .map(|m| m.to_string()) + .collect::>() + .join(" "), + )); + switch_to_input_mode(&InputMode::Locked); + } + should_render = true; + } + } else if key.bare_key == BareKey::Char('l') && key.has_no_modifiers() { + self.remapping_leaders = true; + should_render = true; + } else if key.bare_key == BareKey::Esc && key.has_no_modifiers() { + close_self(); + should_render = true; + } + should_render + } + fn render_selection_keymap(&self, rows: usize, cols: usize) { + let widths = self.remapping_screen_widths(); + if cols >= widths.0 { + let mut x = cols.saturating_sub(10) / 2; + let mut y = rows.saturating_sub(7) / 2; + if self.browsing_secondary_modifier { + x += 31; + y += self.selected_secondary_key_index; + } else { + y += self.selected_primary_key_index; + } + let text = "<←↓↑→> / "; + let text_len = text.chars().count(); + let text = Text::new(text) + .color_range(2, 1..5) + .color_range(2, 10..15) + .selected(); + print_text_with_coordinates(text, x.saturating_sub(text_len), y + 3, None, None); + } + } + fn render_remapping_screen_title(&self, rows: usize, cols: usize) { + let widths = self.remapping_screen_widths(); + let screen_width = if cols >= widths.0 { + widths.0 + } else if cols >= widths.1 { + widths.1 + } else { + widths.2 + }; + let leader_keys_text = if cols >= widths.0 { + "Adjust leader keys for the presets in the previous screen:" + } else { + "Adjust leader keys:" + }; + let base_x = cols.saturating_sub(screen_width) / 2; + let base_y = rows.saturating_sub(7) / 2; + print_text_with_coordinates( + Text::new(leader_keys_text).color_range(2, ..), + base_x, + base_y, + None, + None, + ); + } + fn render_primary_modifier_selector(&self, rows: usize, cols: usize) { + let widths = self.remapping_screen_widths(); + let screen_width = if cols >= widths.0 { + widths.0 + } else if cols >= widths.1 { + widths.1 + } else { + widths.2 + }; + self.render_remapping_screen_title(rows, cols); + let base_x = cols.saturating_sub(screen_width) / 2; + let base_y = rows.saturating_sub(7) / 2; + let primary_modifier_key_text = self.primary_modifier_text(); + let (primary_modifier_text, primary_modifier_start_position) = if cols >= widths.0 { + (format!("Primary: {}", primary_modifier_key_text), 9) + } else { + (format!("{}", primary_modifier_key_text), 0) + }; + print_text_with_coordinates( + Text::new(primary_modifier_text).color_range( + self.primary_leader_key_color_index, + primary_modifier_start_position.., + ), + base_x, + base_y + 2, + None, + None, + ); + print_nested_list_with_coordinates( + self.possible_modifiers + .iter() + .enumerate() + .map(|(i, m)| { + let item = if self.primary_modifier.contains(m) { + NestedListItem::new(m.to_string()) + .color_range(self.primary_leader_key_color_index, ..) + } else { + NestedListItem::new(m.to_string()) + }; + if !self.browsing_secondary_modifier && self.selected_primary_key_index == i { + item.selected() + } else { + item + } + }) + .collect(), + base_x, + base_y + 3, + Some(screen_width / 2), + None, + ); + } + fn render_secondary_modifier_selector(&mut self, rows: usize, cols: usize) { + let widths = self.remapping_screen_widths(); + let screen_width = if cols >= widths.0 { + widths.0 + } else if cols >= widths.1 { + widths.1 + } else { + widths.2 + }; + let base_x = cols.saturating_sub(screen_width) / 2; + let base_y = rows.saturating_sub(7) / 2; + let secondary_modifier_key_text = self.secondary_modifier_text(); + let (secondary_modifier_text, secondary_modifier_start_position) = if cols >= widths.0 { + (format!("Secondary: {}", secondary_modifier_key_text), 10) + } else { + (format!("{}", secondary_modifier_key_text), 0) + }; + let secondary_modifier_menu_x_coords = base_x + (screen_width / 2); + print_text_with_coordinates( + Text::new(secondary_modifier_text).color_range( + self.secondary_leader_key_color_index, + secondary_modifier_start_position.., + ), + secondary_modifier_menu_x_coords, + base_y + 2, + None, + None, + ); + print_nested_list_with_coordinates( + self.possible_modifiers + .iter() + .enumerate() + .map(|(i, m)| { + let item = if self.secondary_modifier.contains(m) { + NestedListItem::new(m.to_string()) + .color_range(self.secondary_leader_key_color_index, ..) + } else { + NestedListItem::new(m.to_string()) + }; + if self.browsing_secondary_modifier && self.selected_secondary_key_index == i { + item.selected() + } else { + item + } + }) + .collect(), + secondary_modifier_menu_x_coords, + base_y + 3, + Some(screen_width / 2), + None, + ); + } + fn render_remapping_leaders_screen(&mut self, rows: usize, cols: usize) { + self.render_remapping_screen_title(rows, cols); + self.render_primary_modifier_selector(rows, cols); + self.render_secondary_modifier_selector(rows, cols); + self.render_selection_keymap(rows, cols); + self.render_help_text_remapping(rows, cols); + } + fn render_override_title(&self, rows: usize, cols: usize, primary_modifier_key_text: &str) { + let widths = self.main_screen_widths(primary_modifier_key_text); + if cols >= widths.0 { + let title_text = "Override keybindings with one of the following presets:"; + let left_padding = cols.saturating_sub(widths.0) / 2; + print_text_with_coordinates( + Text::new(title_text).color_range(2, ..), + left_padding, + rows.saturating_sub(15) / 2, + None, + None, + ); + } else { + let title_text = "Override keybindings:"; + let left_padding = if cols >= widths.1 { + cols.saturating_sub(widths.1) / 2 + } else { + cols.saturating_sub(widths.2) / 2 + }; + print_text_with_coordinates( + Text::new(title_text).color_range(2, ..), + left_padding, + rows.saturating_sub(15) / 2, + None, + None, + ); + } + } + fn render_first_bulletin(&self, rows: usize, cols: usize, primary_modifier_key_text: &str) { + let widths = self.main_screen_widths(primary_modifier_key_text); + let primary_modifier_key_text_len = primary_modifier_key_text.chars().count(); + let default_text = "1. Default"; + let (mut list_items, max_width) = if cols >= widths.0 { + let list_items = vec![ + NestedListItem::new(default_text).color_range(self.preset_color_index, ..), + NestedListItem::new("All modes available directly from the base mode, eg.:") + .indent(1), + NestedListItem::new(format!( + "{} p - to enter PANE mode", + primary_modifier_key_text + )) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 14..primary_modifier_key_text_len + 18, + ) + .indent(1), + NestedListItem::new(format!( + "{} t - to enter TAB mode.", + primary_modifier_key_text + )) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 14..primary_modifier_key_text_len + 17, + ) + .indent(1), + ]; + let max_width = widths.0; + (list_items, max_width) + } else if cols >= widths.1 { + let list_items = vec![ + NestedListItem::new(default_text).color_range(self.preset_color_index, ..), + NestedListItem::new("Modes available directly, eg.:").indent(1), + NestedListItem::new(format!( + "{} p - to enter PANE mode", + primary_modifier_key_text + )) + .indent(1) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 14..primary_modifier_key_text_len + 18, + ), + NestedListItem::new(format!( + "{} t - to enter TAB mode.", + primary_modifier_key_text + )) + .indent(1) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 14..primary_modifier_key_text_len + 17, + ), + ]; + let max_width = widths.1; + (list_items, max_width) + } else { + let list_items = vec![ + NestedListItem::new(default_text).color_range(self.preset_color_index, ..), + NestedListItem::new("Directly, eg.:").indent(1), + NestedListItem::new(format!("{} p - PANE mode", primary_modifier_key_text)) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 10, + ) + .indent(1), + NestedListItem::new(format!("{} t - TAB mode.", primary_modifier_key_text)) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 9, + ) + .indent(1), + ]; + let max_width = widths.2; + (list_items, max_width) + }; + if self.selected_index == Some(0) { + list_items = list_items.drain(..).map(|i| i.selected()).collect(); + } + let left_padding = cols.saturating_sub(max_width) / 2; + let top_coordinates = if rows > 14 { + (rows.saturating_sub(15) / 2) + 2 + } else { + (rows.saturating_sub(15) / 2) + 1 + }; + print_nested_list_with_coordinates( + list_items, + left_padding, + top_coordinates, + Some(max_width), + None, + ); + } + fn render_second_bulletin(&self, rows: usize, cols: usize, primary_modifier_key_text: &str) { + let unlock_first_text = "2. Unlock First (non-colliding)"; + let widths = self.main_screen_widths(primary_modifier_key_text); + let primary_modifier_key_text_len = primary_modifier_key_text.chars().count(); + let (mut list_items, max_width) = if cols >= widths.0 { + let list_items = vec![ + NestedListItem::new(unlock_first_text).color_range(self.preset_color_index, ..), + NestedListItem::new(format!( + "Single key modes available after unlocking with {} g, eg.:", + primary_modifier_key_text + )) + .indent(1), + NestedListItem::new(format!( + "{} g + p to enter PANE mode", + primary_modifier_key_text + )) + .indent(1) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.primary_leader_key_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 7, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 16..primary_modifier_key_text_len + 21, + ), + NestedListItem::new(format!( + "{} g + t to enter TAB mode.", + primary_modifier_key_text + )) + .indent(1) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.primary_leader_key_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 7, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 16..primary_modifier_key_text_len + 20, + ), + ]; + let max_width = widths.0; + (list_items, max_width) + } else if cols >= widths.1 { + let list_items = vec![ + NestedListItem::new(unlock_first_text).color_range(self.preset_color_index, ..), + NestedListItem::new(format!( + "Single key modes after {} g, eg.:", + primary_modifier_key_text + )) + .indent(1), + NestedListItem::new(format!( + "{} g + p to enter PANE mode", + primary_modifier_key_text + )) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.primary_leader_key_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 7, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 16..primary_modifier_key_text_len + 21, + ) + .indent(1), + NestedListItem::new(format!( + "{} g + t to enter TAB mode.", + primary_modifier_key_text + )) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.primary_leader_key_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 7, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 16..primary_modifier_key_text_len + 20, + ) + .indent(1), + ]; + let max_width = widths.1; + (list_items, max_width) + } else { + let list_items = vec![ + NestedListItem::new("2. Unlock First").color_range(self.preset_color_index, ..), + NestedListItem::new(format!( + "{} g + single key, eg.:", + primary_modifier_key_text + )) + .indent(1), + NestedListItem::new(format!("{} g + p PANE mode", primary_modifier_key_text)) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.primary_leader_key_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 7, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 7..primary_modifier_key_text_len + 11, + ) + .indent(1), + NestedListItem::new(format!("{} g + t TAB mode.", primary_modifier_key_text)) + .color_range( + self.primary_leader_key_color_index, + ..primary_modifier_key_text_len + 3, + ) + .color_range( + self.primary_leader_key_color_index, + primary_modifier_key_text_len + 5..primary_modifier_key_text_len + 7, + ) + .color_range( + self.mode_color_index, + primary_modifier_key_text_len + 7..primary_modifier_key_text_len + 10, + ) + .indent(1), + ]; + let max_width = widths.2; + (list_items, max_width) + }; + if self.selected_index == Some(1) { + list_items = list_items.drain(..).map(|i| i.selected()).collect(); + } + let left_padding = cols.saturating_sub(max_width) / 2; + let top_coordinates = if rows > 14 { + (rows.saturating_sub(15) / 2) + 7 + } else { + (rows.saturating_sub(15) / 2) + 5 + }; + print_nested_list_with_coordinates( + list_items, + left_padding, + top_coordinates, + Some(max_width), + None, + ); + } + fn render_leader_keys_indication( + &self, + rows: usize, + cols: usize, + primary_modifier_key_text: &str, + secondary_modifier_key_text: &str, + ) { + let widths = self.main_screen_widths(primary_modifier_key_text); + let primary_modifier_key_text_len = primary_modifier_key_text.chars().count(); + let secondary_modifier_key_text_len = secondary_modifier_key_text.chars().count(); + let top_coordinates = if rows > 14 { + (rows.saturating_sub(15) / 2) + 12 + } else { + (rows.saturating_sub(15) / 2) + 9 + }; + + if cols >= widths.0 { + let leader_key_text = format!( + "Leader keys: {} - modes, {} - quicknav and shortcuts.", + primary_modifier_key_text, secondary_modifier_key_text + ); + let left_padding = cols.saturating_sub(widths.0) / 2; + print_text_with_coordinates( + Text::new(leader_key_text) + .color_range(2, ..12) + .color_range( + self.primary_leader_key_color_index, + 13..primary_modifier_key_text_len + 14, + ) + .color_range( + self.secondary_leader_key_color_index, + primary_modifier_key_text_len + 23 + ..primary_modifier_key_text_len + 23 + secondary_modifier_key_text_len, + ), + left_padding, + top_coordinates, + None, + None, + ) + } else { + let leader_key_text = format!( + "Leaders: {}, {}", + primary_modifier_key_text, secondary_modifier_key_text + ); + let left_padding = if cols >= widths.1 { + cols.saturating_sub(widths.1) / 2 + } else { + cols.saturating_sub(widths.2) / 2 + }; + print_text_with_coordinates( + Text::new(leader_key_text) + .color_range(2, ..8) + .color_range( + self.primary_leader_key_color_index, + 9..primary_modifier_key_text_len + 10, + ) + .color_range( + self.secondary_leader_key_color_index, + primary_modifier_key_text_len + 11 + ..primary_modifier_key_text_len + 12 + secondary_modifier_key_text_len, + ), + left_padding, + top_coordinates, + None, + None, + ) + }; + } + fn render_warning_if_needed(&self, rows: usize, cols: usize, primary_modifier_key_text: &str) { + let widths = self.main_screen_widths(primary_modifier_key_text); + let top_coordinates = if rows > 14 { + (rows.saturating_sub(15) / 2) + 14 + } else { + (rows.saturating_sub(15) / 2) + 10 + }; + let left_padding = if cols >= widths.0 { + cols.saturating_sub(widths.0) / 2 + } else if cols >= widths.1 { + cols.saturating_sub(widths.1) / 2 + } else { + cols.saturating_sub(widths.2) / 2 + }; + if let Some(warning_text) = self.warning_text(cols) { + print_text_with_coordinates( + Text::new(warning_text).color_range(3, ..), + left_padding, + top_coordinates, + None, + None, + ); + } + } + fn render_help_text_main(&self, rows: usize, cols: usize, primary_modifier_key_text: &str) { + let widths = self.main_screen_widths(primary_modifier_key_text); + if cols >= widths.0 { + let help_text = "Help: <↓↑/ENTER> - navigate/select, - leaders, - close"; + print_text_with_coordinates( + Text::new(help_text) + .color_range(2, 6..16) + .color_range(2, 36..39) + .color_range(2, 51..56), + 0, + rows, + None, + None, + ); + } else { + let help_text = "Help: <↓↑> / / / "; + print_text_with_coordinates( + Text::new(help_text) + .color_range(2, 6..10) + .color_range(2, 13..20) + .color_range(2, 23..26) + .color_range(2, 29..34), + 0, + rows, + None, + None, + ); + } + } + fn render_help_text_remapping(&self, rows: usize, cols: usize) { + let widths = self.remapping_screen_widths(); + if cols >= widths.0 { + let help_text = "Help: - when done"; + print_text_with_coordinates( + Text::new(help_text).color_range(2, 6..13), + 0, + rows, + None, + None, + ); + } else { + let help_text = "Help: / <←↓↑→> / "; + print_text_with_coordinates( + Text::new(help_text) + .color_range(2, 6..13) + .color_range(2, 16..22) + .color_range(2, 25..32), + 0, + rows, + None, + None, + ); + } + } + fn primary_modifier_text(&self) -> String { + if self.primary_modifier.is_empty() { + "".to_owned() + } else { + self.primary_modifier + .iter() + .map(|m| m.to_string()) + .collect::>() + .join("-") + } + } + fn secondary_modifier_text(&self) -> String { + if self.secondary_modifier.is_empty() { + "".to_owned() + } else { + self.secondary_modifier + .iter() + .map(|m| m.to_string()) + .collect::>() + .join("-") + } + } + fn main_screen_widths(&self, primary_modifier_text: &str) -> (usize, usize, usize) { + let primary_modifier_key_text_len = primary_modifier_text.chars().count(); + let full_width = 61 + primary_modifier_key_text_len; + let mid_width = 36 + primary_modifier_key_text_len; + let min_width = 26 + primary_modifier_key_text_len; + (full_width, mid_width, min_width) + } + fn remapping_screen_widths(&self) -> (usize, usize, usize) { + let full_width = 62; + let mid_width = 42; + let min_width = 30; + (full_width, mid_width, min_width) + } + fn render_main_screen(&mut self, rows: usize, cols: usize) { + let primary_modifier_key_text = self.primary_modifier_text(); + let secondary_modifier_key_text = self.secondary_modifier_text(); + self.render_override_title(rows, cols, &primary_modifier_key_text); + self.render_first_bulletin(rows, cols, &primary_modifier_key_text); + self.render_second_bulletin(rows, cols, &primary_modifier_key_text); + self.render_leader_keys_indication( + rows, + cols, + &primary_modifier_key_text, + &secondary_modifier_key_text, + ); + self.render_warning_if_needed(rows, cols, &primary_modifier_key_text); + self.render_help_text_main(rows, cols, &primary_modifier_key_text); + } + fn warning_text(&self, max_width: usize) -> Option { + if self.needs_kitty_support() { + // TODO: some widget to test support by detecting pressed keys + if max_width >= 38 { + Some(String::from("Warning: requires supporting terminal.")) + } else { + Some(String::from("Requires supporting terminal")) + } + } else if self.primary_modifier.is_empty() && self.secondary_modifier.is_empty() { + if max_width >= 49 { + Some(String::from( + "Warning: no leaders defined. UI will be disabled.", + )) + } else { + Some(String::from("No leaders. UI will be disabled.")) + } + } else { + None + } + } + fn needs_kitty_support(&self) -> bool { + self.primary_modifier.len() > 1 + || self.secondary_modifier.len() > 1 + || self.primary_modifier.contains(&KeyModifier::Super) + || self.secondary_modifier.contains(&KeyModifier::Super) + } +} + +fn unlock_first_keybinds(primary_modifier: String, secondary_modifier: String) -> String { + format!( + r#" +default_mode "locked" +keybinds clear-defaults=true {{ + normal {{ + }} + locked {{ + bind "{primary_modifier} g" {{ SwitchToMode "Normal"; }} + }} + resize {{ + bind "r" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ Resize "Increase Left"; }} + bind "j" "Down" {{ Resize "Increase Down"; }} + bind "k" "Up" {{ Resize "Increase Up"; }} + bind "l" "Right" {{ Resize "Increase Right"; }} + bind "H" {{ Resize "Decrease Left"; }} + bind "J" {{ Resize "Decrease Down"; }} + bind "K" {{ Resize "Decrease Up"; }} + bind "L" {{ Resize "Decrease Right"; }} + bind "=" "+" {{ Resize "Increase"; }} + bind "-" {{ Resize "Decrease"; }} + }} + pane {{ + bind "p" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ MoveFocus "Left"; }} + bind "l" "Right" {{ MoveFocus "Right"; }} + bind "j" "Down" {{ MoveFocus "Down"; }} + bind "k" "Up" {{ MoveFocus "Up"; }} + bind "Tab" {{ SwitchFocus; }} + bind "n" {{ NewPane; SwitchToMode "Locked"; }} + bind "d" {{ NewPane "Down"; SwitchToMode "Locked"; }} + bind "r" {{ NewPane "Right"; SwitchToMode "Locked"; }} + bind "x" {{ CloseFocus; SwitchToMode "Locked"; }} + bind "f" {{ ToggleFocusFullscreen; SwitchToMode "Locked"; }} + bind "z" {{ TogglePaneFrames; SwitchToMode "Locked"; }} + bind "w" {{ ToggleFloatingPanes; SwitchToMode "Locked"; }} + bind "e" {{ TogglePaneEmbedOrFloating; SwitchToMode "Locked"; }} + bind "c" {{ SwitchToMode "RenamePane"; PaneNameInput 0;}} + }} + move {{ + bind "m" {{ SwitchToMode "Normal"; }} + bind "n" "Tab" {{ MovePane; }} + bind "p" {{ MovePaneBackwards; }} + bind "h" "Left" {{ MovePane "Left"; }} + bind "j" "Down" {{ MovePane "Down"; }} + bind "k" "Up" {{ MovePane "Up"; }} + bind "l" "Right" {{ MovePane "Right"; }} + }} + tab {{ + bind "t" {{ SwitchToMode "Normal"; }} + bind "r" {{ SwitchToMode "RenameTab"; TabNameInput 0; }} + bind "h" "Left" "Up" "k" {{ GoToPreviousTab; }} + bind "l" "Right" "Down" "j" {{ GoToNextTab; }} + bind "n" {{ NewTab; SwitchToMode "Locked"; }} + bind "x" {{ CloseTab; SwitchToMode "Locked"; }} + bind "s" {{ ToggleActiveSyncTab; SwitchToMode "Locked"; }} + bind "b" {{ BreakPane; SwitchToMode "Locked"; }} + bind "]" {{ BreakPaneRight; SwitchToMode "Locked"; }} + bind "[" {{ BreakPaneLeft; SwitchToMode "Locked"; }} + bind "1" {{ GoToTab 1; SwitchToMode "Locked"; }} + bind "2" {{ GoToTab 2; SwitchToMode "Locked"; }} + bind "3" {{ GoToTab 3; SwitchToMode "Locked"; }} + bind "4" {{ GoToTab 4; SwitchToMode "Locked"; }} + bind "5" {{ GoToTab 5; SwitchToMode "Locked"; }} + bind "6" {{ GoToTab 6; SwitchToMode "Locked"; }} + bind "7" {{ GoToTab 7; SwitchToMode "Locked"; }} + bind "8" {{ GoToTab 8; SwitchToMode "Locked"; }} + bind "9" {{ GoToTab 9; SwitchToMode "Locked"; }} + bind "Tab" {{ ToggleTab; }} + }} + scroll {{ + bind "s" {{ SwitchToMode "Normal"; }} + bind "e" {{ EditScrollback; SwitchToMode "Locked"; }} + bind "f" {{ SwitchToMode "EnterSearch"; SearchInput 0; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Locked"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + }} + search {{ + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Locked"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + bind "n" {{ Search "down"; }} + bind "p" {{ Search "up"; }} + bind "c" {{ SearchToggleOption "CaseSensitivity"; }} + bind "w" {{ SearchToggleOption "Wrap"; }} + bind "o" {{ SearchToggleOption "WholeWord"; }} + }} + entersearch {{ + bind "Ctrl c" "Esc" {{ SwitchToMode "Scroll"; }} + bind "Enter" {{ SwitchToMode "Search"; }} + }} + renametab {{ + bind "Ctrl c" "Enter" {{ SwitchToMode "Locked"; }} + bind "Esc" {{ UndoRenameTab; SwitchToMode "Tab"; }} + }} + renamepane {{ + bind "Ctrl c" "Enter" {{ SwitchToMode "Locked"; }} + bind "Esc" {{ UndoRenamePane; SwitchToMode "Pane"; }} + }} + session {{ + bind "o" {{ SwitchToMode "Normal"; }} + bind "{primary_modifier} s" {{ SwitchToMode "Scroll"; }} + bind "d" {{ Detach; }} + bind "w" {{ + LaunchOrFocusPlugin "session-manager" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Locked" + }} + bind "c" {{ + LaunchOrFocusPlugin "configuration" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Locked" + }} + }} + shared_except "locked" "renametab" "renamepane" {{ + bind "{primary_modifier} g" {{ SwitchToMode "Locked"; }} + bind "{primary_modifier} q" {{ Quit; }} + }} + shared_among "normal" "locked" {{ + bind "{secondary_modifier} n" {{ NewPane; }} + bind "{secondary_modifier} f" {{ ToggleFloatingPanes; }} + bind "{secondary_modifier} i" {{ MoveTab "Left"; }} + bind "{secondary_modifier} o" {{ MoveTab "Right"; }} + bind "{secondary_modifier} h" "{secondary_modifier} Left" {{ MoveFocusOrTab "Left"; }} + bind "{secondary_modifier} l" "{secondary_modifier} Right" {{ MoveFocusOrTab "Right"; }} + bind "{secondary_modifier} j" "{secondary_modifier} Down" {{ MoveFocus "Down"; }} + bind "{secondary_modifier} k" "{secondary_modifier} Up" {{ MoveFocus "Up"; }} + bind "{secondary_modifier} =" "{secondary_modifier} +" {{ Resize "Increase"; }} + bind "{secondary_modifier} -" {{ Resize "Decrease"; }} + bind "{secondary_modifier} [" {{ PreviousSwapLayout; }} + bind "{secondary_modifier} ]" {{ NextSwapLayout; }} + }} + shared_except "locked" "renametab" "renamepane" {{ + bind "Enter" {{ SwitchToMode "Locked"; }} + }} + shared_except "pane" "locked" "renametab" "renamepane" "entersearch" {{ + bind "p" {{ SwitchToMode "Pane"; }} + }} + shared_except "resize" "locked" "renametab" "renamepane" "entersearch" {{ + bind "r" {{ SwitchToMode "Resize"; }} + }} + shared_except "scroll" "locked" "renametab" "renamepane" "entersearch" {{ + bind "s" {{ SwitchToMode "Scroll"; }} + }} + shared_except "session" "locked" "renametab" "renamepane" "entersearch" {{ + bind "o" {{ SwitchToMode "Session"; }} + }} + shared_except "tab" "locked" "renametab" "renamepane" "entersearch" {{ + bind "t" {{ SwitchToMode "Tab"; }} + }} + shared_except "move" "locked" "renametab" "renamepane" "entersearch" {{ + bind "m" {{ SwitchToMode "Move"; }} + }} +}}"# + ) +} + +fn default_keybinds(primary_modifier: String, secondary_modifier: String) -> String { + if primary_modifier.is_empty() && secondary_modifier.is_empty() { + return default_keybinds_no_modifiers(); + } else if primary_modifier == secondary_modifier { + return non_colliding_default_keybinds(primary_modifier, secondary_modifier); + } else if primary_modifier.is_empty() { + return default_keybinds_no_primary_modifier(secondary_modifier); + } else if secondary_modifier.is_empty() { + return default_keybinds_no_secondary_modifier(primary_modifier); + } + format!( + r#" +default_mode "normal" +keybinds clear-defaults=true {{ + normal {{}} + locked {{ + bind "{primary_modifier} g" {{ SwitchToMode "Normal"; }} + }} + resize {{ + bind "{primary_modifier} n" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ Resize "Increase Left"; }} + bind "j" "Down" {{ Resize "Increase Down"; }} + bind "k" "Up" {{ Resize "Increase Up"; }} + bind "l" "Right" {{ Resize "Increase Right"; }} + bind "H" {{ Resize "Decrease Left"; }} + bind "J" {{ Resize "Decrease Down"; }} + bind "K" {{ Resize "Decrease Up"; }} + bind "L" {{ Resize "Decrease Right"; }} + bind "=" "+" {{ Resize "Increase"; }} + bind "-" {{ Resize "Decrease"; }} + }} + pane {{ + bind "{primary_modifier} p" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ MoveFocus "Left"; }} + bind "l" "Right" {{ MoveFocus "Right"; }} + bind "j" "Down" {{ MoveFocus "Down"; }} + bind "k" "Up" {{ MoveFocus "Up"; }} + bind "p" {{ SwitchFocus; }} + bind "n" {{ NewPane; SwitchToMode "Normal"; }} + bind "d" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "r" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + bind "f" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "z" {{ TogglePaneFrames; SwitchToMode "Normal"; }} + bind "w" {{ ToggleFloatingPanes; SwitchToMode "Normal"; }} + bind "e" {{ TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }} + bind "c" {{ SwitchToMode "RenamePane"; PaneNameInput 0;}} + }} + move {{ + bind "{primary_modifier} h" {{ SwitchToMode "Normal"; }} + bind "n" "Tab" {{ MovePane; }} + bind "p" {{ MovePaneBackwards; }} + bind "h" "Left" {{ MovePane "Left"; }} + bind "j" "Down" {{ MovePane "Down"; }} + bind "k" "Up" {{ MovePane "Up"; }} + bind "l" "Right" {{ MovePane "Right"; }} + }} + tab {{ + bind "{primary_modifier} t" {{ SwitchToMode "Normal"; }} + bind "r" {{ SwitchToMode "RenameTab"; TabNameInput 0; }} + bind "h" "Left" "Up" "k" {{ GoToPreviousTab; }} + bind "l" "Right" "Down" "j" {{ GoToNextTab; }} + bind "n" {{ NewTab; SwitchToMode "Normal"; }} + bind "x" {{ CloseTab; SwitchToMode "Normal"; }} + bind "s" {{ ToggleActiveSyncTab; SwitchToMode "Normal"; }} + bind "b" {{ BreakPane; SwitchToMode "Normal"; }} + bind "]" {{ BreakPaneRight; SwitchToMode "Normal"; }} + bind "[" {{ BreakPaneLeft; SwitchToMode "Normal"; }} + bind "1" {{ GoToTab 1; SwitchToMode "Normal"; }} + bind "2" {{ GoToTab 2; SwitchToMode "Normal"; }} + bind "3" {{ GoToTab 3; SwitchToMode "Normal"; }} + bind "4" {{ GoToTab 4; SwitchToMode "Normal"; }} + bind "5" {{ GoToTab 5; SwitchToMode "Normal"; }} + bind "6" {{ GoToTab 6; SwitchToMode "Normal"; }} + bind "7" {{ GoToTab 7; SwitchToMode "Normal"; }} + bind "8" {{ GoToTab 8; SwitchToMode "Normal"; }} + bind "9" {{ GoToTab 9; SwitchToMode "Normal"; }} + bind "Tab" {{ ToggleTab; }} + }} + scroll {{ + bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} + bind "e" {{ EditScrollback; SwitchToMode "Normal"; }} + bind "s" {{ SwitchToMode "EnterSearch"; SearchInput 0; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + }} + search {{ + bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + bind "n" {{ Search "down"; }} + bind "p" {{ Search "up"; }} + bind "c" {{ SearchToggleOption "CaseSensitivity"; }} + bind "w" {{ SearchToggleOption "Wrap"; }} + bind "o" {{ SearchToggleOption "WholeWord"; }} + }} + entersearch {{ + bind "Ctrl c" "Esc" {{ SwitchToMode "Scroll"; }} + bind "Enter" {{ SwitchToMode "Search"; }} + }} + renametab {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenameTab; SwitchToMode "Tab"; }} + }} + renamepane {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenamePane; SwitchToMode "Pane"; }} + }} + session {{ + bind "{primary_modifier} o" {{ SwitchToMode "Normal"; }} + bind "{primary_modifier} s" {{ SwitchToMode "Scroll"; }} + bind "d" {{ Detach; }} + bind "w" {{ + LaunchOrFocusPlugin "session-manager" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + bind "c" {{ + LaunchOrFocusPlugin "configuration" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + }} + tmux {{ + bind "[" {{ SwitchToMode "Scroll"; }} + bind "{primary_modifier} b" {{ Write 2; SwitchToMode "Normal"; }} + bind "\"" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "%" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "z" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "c" {{ NewTab; SwitchToMode "Normal"; }} + bind "," {{ SwitchToMode "RenameTab"; }} + bind "p" {{ GoToPreviousTab; SwitchToMode "Normal"; }} + bind "n" {{ GoToNextTab; SwitchToMode "Normal"; }} + bind "Left" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "Right" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "Down" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "Up" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "h" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "l" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "j" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "k" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "o" {{ FocusNextPane; }} + bind "d" {{ Detach; }} + bind "Space" {{ NextSwapLayout; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + }} + shared_except "locked" {{ + bind "{primary_modifier} g" {{ SwitchToMode "Locked"; }} + bind "{primary_modifier} q" {{ Quit; }} + bind "{secondary_modifier} f" {{ ToggleFloatingPanes; }} + bind "{secondary_modifier} n" {{ NewPane; }} + bind "{secondary_modifier} i" {{ MoveTab "Left"; }} + bind "{secondary_modifier} o" {{ MoveTab "Right"; }} + bind "{secondary_modifier} h" "{secondary_modifier} Left" {{ MoveFocusOrTab "Left"; }} + bind "{secondary_modifier} l" "{secondary_modifier} Right" {{ MoveFocusOrTab "Right"; }} + bind "{secondary_modifier} j" "{secondary_modifier} Down" {{ MoveFocus "Down"; }} + bind "{secondary_modifier} k" "{secondary_modifier} Up" {{ MoveFocus "Up"; }} + bind "{secondary_modifier} =" "{secondary_modifier} +" {{ Resize "Increase"; }} + bind "{secondary_modifier} -" {{ Resize "Decrease"; }} + bind "{secondary_modifier} [" {{ PreviousSwapLayout; }} + bind "{secondary_modifier} ]" {{ NextSwapLayout; }} + }} + shared_except "normal" "locked" {{ + bind "Enter" "Esc" {{ SwitchToMode "Normal"; }} + }} + shared_except "pane" "locked" {{ + bind "{primary_modifier} p" {{ SwitchToMode "Pane"; }} + }} + shared_except "resize" "locked" {{ + bind "{primary_modifier} n" {{ SwitchToMode "Resize"; }} + }} + shared_except "scroll" "locked" {{ + bind "{primary_modifier} s" {{ SwitchToMode "Scroll"; }} + }} + shared_except "session" "locked" {{ + bind "{primary_modifier} o" {{ SwitchToMode "Session"; }} + }} + shared_except "tab" "locked" {{ + bind "{primary_modifier} t" {{ SwitchToMode "Tab"; }} + }} + shared_except "move" "locked" {{ + bind "{primary_modifier} h" {{ SwitchToMode "Move"; }} + }} + shared_except "tmux" "locked" {{ + bind "{primary_modifier} b" {{ SwitchToMode "Tmux"; }} + }} +}} +"# + ) +} + +fn default_keybinds_no_primary_modifier(secondary_modifier: String) -> String { + format!( + r#" +default_mode "normal" +keybinds clear-defaults=true {{ + normal {{}} + locked {{}} + resize {{ + bind "h" "Left" {{ Resize "Increase Left"; }} + bind "j" "Down" {{ Resize "Increase Down"; }} + bind "k" "Up" {{ Resize "Increase Up"; }} + bind "l" "Right" {{ Resize "Increase Right"; }} + bind "H" {{ Resize "Decrease Left"; }} + bind "J" {{ Resize "Decrease Down"; }} + bind "K" {{ Resize "Decrease Up"; }} + bind "L" {{ Resize "Decrease Right"; }} + bind "=" "+" {{ Resize "Increase"; }} + bind "-" {{ Resize "Decrease"; }} + }} + pane {{ + bind "h" "Left" {{ MoveFocus "Left"; }} + bind "l" "Right" {{ MoveFocus "Right"; }} + bind "j" "Down" {{ MoveFocus "Down"; }} + bind "k" "Up" {{ MoveFocus "Up"; }} + bind "p" {{ SwitchFocus; }} + bind "n" {{ NewPane; SwitchToMode "Normal"; }} + bind "d" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "r" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + bind "f" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "z" {{ TogglePaneFrames; SwitchToMode "Normal"; }} + bind "w" {{ ToggleFloatingPanes; SwitchToMode "Normal"; }} + bind "e" {{ TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }} + bind "c" {{ SwitchToMode "RenamePane"; PaneNameInput 0;}} + }} + move {{ + bind "n" "Tab" {{ MovePane; }} + bind "p" {{ MovePaneBackwards; }} + bind "h" "Left" {{ MovePane "Left"; }} + bind "j" "Down" {{ MovePane "Down"; }} + bind "k" "Up" {{ MovePane "Up"; }} + bind "l" "Right" {{ MovePane "Right"; }} + }} + tab {{ + bind "r" {{ SwitchToMode "RenameTab"; TabNameInput 0; }} + bind "h" "Left" "Up" "k" {{ GoToPreviousTab; }} + bind "l" "Right" "Down" "j" {{ GoToNextTab; }} + bind "n" {{ NewTab; SwitchToMode "Normal"; }} + bind "x" {{ CloseTab; SwitchToMode "Normal"; }} + bind "s" {{ ToggleActiveSyncTab; SwitchToMode "Normal"; }} + bind "b" {{ BreakPane; SwitchToMode "Normal"; }} + bind "]" {{ BreakPaneRight; SwitchToMode "Normal"; }} + bind "[" {{ BreakPaneLeft; SwitchToMode "Normal"; }} + bind "1" {{ GoToTab 1; SwitchToMode "Normal"; }} + bind "2" {{ GoToTab 2; SwitchToMode "Normal"; }} + bind "3" {{ GoToTab 3; SwitchToMode "Normal"; }} + bind "4" {{ GoToTab 4; SwitchToMode "Normal"; }} + bind "5" {{ GoToTab 5; SwitchToMode "Normal"; }} + bind "6" {{ GoToTab 6; SwitchToMode "Normal"; }} + bind "7" {{ GoToTab 7; SwitchToMode "Normal"; }} + bind "8" {{ GoToTab 8; SwitchToMode "Normal"; }} + bind "9" {{ GoToTab 9; SwitchToMode "Normal"; }} + bind "Tab" {{ ToggleTab; }} + }} + scroll {{ + bind "e" {{ EditScrollback; SwitchToMode "Normal"; }} + bind "s" {{ SwitchToMode "EnterSearch"; SearchInput 0; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + }} + search {{ + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + bind "n" {{ Search "down"; }} + bind "p" {{ Search "up"; }} + bind "c" {{ SearchToggleOption "CaseSensitivity"; }} + bind "w" {{ SearchToggleOption "Wrap"; }} + bind "o" {{ SearchToggleOption "WholeWord"; }} + }} + entersearch {{ + bind "Ctrl c" "Esc" {{ SwitchToMode "Scroll"; }} + bind "Enter" {{ SwitchToMode "Search"; }} + }} + renametab {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenameTab; SwitchToMode "Tab"; }} + }} + renamepane {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenamePane; SwitchToMode "Pane"; }} + }} + session {{ + bind "d" {{ Detach; }} + bind "w" {{ + LaunchOrFocusPlugin "session-manager" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + bind "c" {{ + LaunchOrFocusPlugin "configuration" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + }} + tmux {{ + bind "[" {{ SwitchToMode "Scroll"; }} + bind "\"" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "%" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "z" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "c" {{ NewTab; SwitchToMode "Normal"; }} + bind "," {{ SwitchToMode "RenameTab"; }} + bind "p" {{ GoToPreviousTab; SwitchToMode "Normal"; }} + bind "n" {{ GoToNextTab; SwitchToMode "Normal"; }} + bind "Left" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "Right" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "Down" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "Up" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "h" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "l" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "j" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "k" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "o" {{ FocusNextPane; }} + bind "d" {{ Detach; }} + bind "Space" {{ NextSwapLayout; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + }} + shared_except "locked" {{ + bind "{secondary_modifier} n" {{ NewPane; }} + bind "{secondary_modifier} f" {{ ToggleFloatingPanes; }} + bind "{secondary_modifier} i" {{ MoveTab "Left"; }} + bind "{secondary_modifier} o" {{ MoveTab "Right"; }} + bind "{secondary_modifier} h" "{secondary_modifier} Left" {{ MoveFocusOrTab "Left"; }} + bind "{secondary_modifier} l" "{secondary_modifier} Right" {{ MoveFocusOrTab "Right"; }} + bind "{secondary_modifier} j" "{secondary_modifier} Down" {{ MoveFocus "Down"; }} + bind "{secondary_modifier} k" "{secondary_modifier} Up" {{ MoveFocus "Up"; }} + bind "{secondary_modifier} =" "{secondary_modifier} +" {{ Resize "Increase"; }} + bind "{secondary_modifier} -" {{ Resize "Decrease"; }} + bind "{secondary_modifier} [" {{ PreviousSwapLayout; }} + bind "{secondary_modifier} ]" {{ NextSwapLayout; }} + }} + shared_except "normal" "locked" {{ + bind "Enter" "Esc" {{ SwitchToMode "Normal"; }} + }} +}} +"# + ) +} + +fn default_keybinds_no_secondary_modifier(primary_modifier: String) -> String { + format!( + r#" +default_mode "normal" +keybinds clear-defaults=true {{ + normal {{}} + locked {{ + bind "{primary_modifier} g" {{ SwitchToMode "Normal"; }} + }} + resize {{ + bind "{primary_modifier} n" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ Resize "Increase Left"; }} + bind "j" "Down" {{ Resize "Increase Down"; }} + bind "k" "Up" {{ Resize "Increase Up"; }} + bind "l" "Right" {{ Resize "Increase Right"; }} + bind "H" {{ Resize "Decrease Left"; }} + bind "J" {{ Resize "Decrease Down"; }} + bind "K" {{ Resize "Decrease Up"; }} + bind "L" {{ Resize "Decrease Right"; }} + bind "=" "+" {{ Resize "Increase"; }} + bind "-" {{ Resize "Decrease"; }} + }} + pane {{ + bind "{primary_modifier} p" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ MoveFocus "Left"; }} + bind "l" "Right" {{ MoveFocus "Right"; }} + bind "j" "Down" {{ MoveFocus "Down"; }} + bind "k" "Up" {{ MoveFocus "Up"; }} + bind "p" {{ SwitchFocus; }} + bind "n" {{ NewPane; SwitchToMode "Normal"; }} + bind "d" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "r" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + bind "f" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "z" {{ TogglePaneFrames; SwitchToMode "Normal"; }} + bind "w" {{ ToggleFloatingPanes; SwitchToMode "Normal"; }} + bind "e" {{ TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }} + bind "c" {{ SwitchToMode "RenamePane"; PaneNameInput 0;}} + }} + move {{ + bind "{primary_modifier} h" {{ SwitchToMode "Normal"; }} + bind "n" "Tab" {{ MovePane; }} + bind "p" {{ MovePaneBackwards; }} + bind "h" "Left" {{ MovePane "Left"; }} + bind "j" "Down" {{ MovePane "Down"; }} + bind "k" "Up" {{ MovePane "Up"; }} + bind "l" "Right" {{ MovePane "Right"; }} + }} + tab {{ + bind "{primary_modifier} t" {{ SwitchToMode "Normal"; }} + bind "r" {{ SwitchToMode "RenameTab"; TabNameInput 0; }} + bind "h" "Left" "Up" "k" {{ GoToPreviousTab; }} + bind "l" "Right" "Down" "j" {{ GoToNextTab; }} + bind "n" {{ NewTab; SwitchToMode "Normal"; }} + bind "x" {{ CloseTab; SwitchToMode "Normal"; }} + bind "s" {{ ToggleActiveSyncTab; SwitchToMode "Normal"; }} + bind "b" {{ BreakPane; SwitchToMode "Normal"; }} + bind "]" {{ BreakPaneRight; SwitchToMode "Normal"; }} + bind "[" {{ BreakPaneLeft; SwitchToMode "Normal"; }} + bind "1" {{ GoToTab 1; SwitchToMode "Normal"; }} + bind "2" {{ GoToTab 2; SwitchToMode "Normal"; }} + bind "3" {{ GoToTab 3; SwitchToMode "Normal"; }} + bind "4" {{ GoToTab 4; SwitchToMode "Normal"; }} + bind "5" {{ GoToTab 5; SwitchToMode "Normal"; }} + bind "6" {{ GoToTab 6; SwitchToMode "Normal"; }} + bind "7" {{ GoToTab 7; SwitchToMode "Normal"; }} + bind "8" {{ GoToTab 8; SwitchToMode "Normal"; }} + bind "9" {{ GoToTab 9; SwitchToMode "Normal"; }} + bind "Tab" {{ ToggleTab; }} + }} + scroll {{ + bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} + bind "e" {{ EditScrollback; SwitchToMode "Normal"; }} + bind "s" {{ SwitchToMode "EnterSearch"; SearchInput 0; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + }} + search {{ + bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + bind "n" {{ Search "down"; }} + bind "p" {{ Search "up"; }} + bind "c" {{ SearchToggleOption "CaseSensitivity"; }} + bind "w" {{ SearchToggleOption "Wrap"; }} + bind "o" {{ SearchToggleOption "WholeWord"; }} + }} + entersearch {{ + bind "Ctrl c" "Esc" {{ SwitchToMode "Scroll"; }} + bind "Enter" {{ SwitchToMode "Search"; }} + }} + renametab {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenameTab; SwitchToMode "Tab"; }} + }} + renamepane {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenamePane; SwitchToMode "Pane"; }} + }} + session {{ + bind "{primary_modifier} o" {{ SwitchToMode "Normal"; }} + bind "{primary_modifier} s" {{ SwitchToMode "Scroll"; }} + bind "d" {{ Detach; }} + bind "w" {{ + LaunchOrFocusPlugin "session-manager" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + bind "c" {{ + LaunchOrFocusPlugin "configuration" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + }} + tmux {{ + bind "[" {{ SwitchToMode "Scroll"; }} + bind "{primary_modifier} b" {{ Write 2; SwitchToMode "Normal"; }} + bind "\"" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "%" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "z" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "c" {{ NewTab; SwitchToMode "Normal"; }} + bind "," {{ SwitchToMode "RenameTab"; }} + bind "p" {{ GoToPreviousTab; SwitchToMode "Normal"; }} + bind "n" {{ GoToNextTab; SwitchToMode "Normal"; }} + bind "Left" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "Right" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "Down" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "Up" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "h" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "l" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "j" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "k" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "o" {{ FocusNextPane; }} + bind "d" {{ Detach; }} + bind "Space" {{ NextSwapLayout; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + }} + shared_except "locked" {{ + bind "{primary_modifier} g" {{ SwitchToMode "Locked"; }} + bind "{primary_modifier} q" {{ Quit; }} + }} + shared_except "normal" "locked" {{ + bind "Enter" "Esc" {{ SwitchToMode "Normal"; }} + }} + shared_except "pane" "locked" {{ + bind "{primary_modifier} p" {{ SwitchToMode "Pane"; }} + }} + shared_except "resize" "locked" {{ + bind "{primary_modifier} n" {{ SwitchToMode "Resize"; }} + }} + shared_except "scroll" "locked" {{ + bind "{primary_modifier} s" {{ SwitchToMode "Scroll"; }} + }} + shared_except "session" "locked" {{ + bind "{primary_modifier} o" {{ SwitchToMode "Session"; }} + }} + shared_except "tab" "locked" {{ + bind "{primary_modifier} t" {{ SwitchToMode "Tab"; }} + }} + shared_except "move" "locked" {{ + bind "{primary_modifier} h" {{ SwitchToMode "Move"; }} + }} + shared_except "tmux" "locked" {{ + bind "{primary_modifier} b" {{ SwitchToMode "Tmux"; }} + }} +}} +"# + ) +} + +fn default_keybinds_no_modifiers() -> String { + format!( + r#" +default_mode "normal" +keybinds clear-defaults=true {{ + normal {{}} + locked {{}} + resize {{ + bind "h" "Left" {{ Resize "Increase Left"; }} + bind "j" "Down" {{ Resize "Increase Down"; }} + bind "k" "Up" {{ Resize "Increase Up"; }} + bind "l" "Right" {{ Resize "Increase Right"; }} + bind "H" {{ Resize "Decrease Left"; }} + bind "J" {{ Resize "Decrease Down"; }} + bind "K" {{ Resize "Decrease Up"; }} + bind "L" {{ Resize "Decrease Right"; }} + bind "=" "+" {{ Resize "Increase"; }} + bind "-" {{ Resize "Decrease"; }} + }} + pane {{ + bind "h" "Left" {{ MoveFocus "Left"; }} + bind "l" "Right" {{ MoveFocus "Right"; }} + bind "j" "Down" {{ MoveFocus "Down"; }} + bind "k" "Up" {{ MoveFocus "Up"; }} + bind "p" {{ SwitchFocus; }} + bind "n" {{ NewPane; SwitchToMode "Normal"; }} + bind "d" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "r" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + bind "f" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "z" {{ TogglePaneFrames; SwitchToMode "Normal"; }} + bind "w" {{ ToggleFloatingPanes; SwitchToMode "Normal"; }} + bind "e" {{ TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }} + bind "c" {{ SwitchToMode "RenamePane"; PaneNameInput 0;}} + }} + move {{ + bind "n" "Tab" {{ MovePane; }} + bind "p" {{ MovePaneBackwards; }} + bind "h" "Left" {{ MovePane "Left"; }} + bind "j" "Down" {{ MovePane "Down"; }} + bind "k" "Up" {{ MovePane "Up"; }} + bind "l" "Right" {{ MovePane "Right"; }} + }} + tab {{ + bind "r" {{ SwitchToMode "RenameTab"; TabNameInput 0; }} + bind "h" "Left" "Up" "k" {{ GoToPreviousTab; }} + bind "l" "Right" "Down" "j" {{ GoToNextTab; }} + bind "n" {{ NewTab; SwitchToMode "Normal"; }} + bind "x" {{ CloseTab; SwitchToMode "Normal"; }} + bind "s" {{ ToggleActiveSyncTab; SwitchToMode "Normal"; }} + bind "b" {{ BreakPane; SwitchToMode "Normal"; }} + bind "]" {{ BreakPaneRight; SwitchToMode "Normal"; }} + bind "[" {{ BreakPaneLeft; SwitchToMode "Normal"; }} + bind "1" {{ GoToTab 1; SwitchToMode "Normal"; }} + bind "2" {{ GoToTab 2; SwitchToMode "Normal"; }} + bind "3" {{ GoToTab 3; SwitchToMode "Normal"; }} + bind "4" {{ GoToTab 4; SwitchToMode "Normal"; }} + bind "5" {{ GoToTab 5; SwitchToMode "Normal"; }} + bind "6" {{ GoToTab 6; SwitchToMode "Normal"; }} + bind "7" {{ GoToTab 7; SwitchToMode "Normal"; }} + bind "8" {{ GoToTab 8; SwitchToMode "Normal"; }} + bind "9" {{ GoToTab 9; SwitchToMode "Normal"; }} + bind "Tab" {{ ToggleTab; }} + }} + scroll {{ + bind "e" {{ EditScrollback; SwitchToMode "Normal"; }} + bind "s" {{ SwitchToMode "EnterSearch"; SearchInput 0; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + }} + search {{ + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + bind "n" {{ Search "down"; }} + bind "p" {{ Search "up"; }} + bind "c" {{ SearchToggleOption "CaseSensitivity"; }} + bind "w" {{ SearchToggleOption "Wrap"; }} + bind "o" {{ SearchToggleOption "WholeWord"; }} + }} + entersearch {{ + bind "Ctrl c" "Esc" {{ SwitchToMode "Scroll"; }} + bind "Enter" {{ SwitchToMode "Search"; }} + }} + renametab {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenameTab; SwitchToMode "Tab"; }} + }} + renamepane {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenamePane; SwitchToMode "Pane"; }} + }} + session {{ + bind "d" {{ Detach; }} + bind "w" {{ + LaunchOrFocusPlugin "session-manager" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + bind "c" {{ + LaunchOrFocusPlugin "configuration" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + }} + tmux {{ + bind "[" {{ SwitchToMode "Scroll"; }} + bind "\"" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "%" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "z" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "c" {{ NewTab; SwitchToMode "Normal"; }} + bind "," {{ SwitchToMode "RenameTab"; }} + bind "p" {{ GoToPreviousTab; SwitchToMode "Normal"; }} + bind "n" {{ GoToNextTab; SwitchToMode "Normal"; }} + bind "Left" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "Right" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "Down" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "Up" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "h" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "l" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "j" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "k" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "o" {{ FocusNextPane; }} + bind "d" {{ Detach; }} + bind "Space" {{ NextSwapLayout; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + }} + shared_except "normal" "locked" {{ + bind "Enter" "Esc" {{ SwitchToMode "Normal"; }} + }} +}} +"# + ) +} + +fn non_colliding_default_keybinds(primary_modifier: String, secondary_modifier: String) -> String { + format!( + r#" +default_mode "normal" +keybinds clear-defaults=true {{ + normal {{}} + locked {{ + bind "{primary_modifier} g" {{ SwitchToMode "Normal"; }} + }} + resize {{ + bind "{primary_modifier} r" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ Resize "Increase Left"; }} + bind "j" "Down" {{ Resize "Increase Down"; }} + bind "k" "Up" {{ Resize "Increase Up"; }} + bind "l" "Right" {{ Resize "Increase Right"; }} + bind "H" {{ Resize "Decrease Left"; }} + bind "J" {{ Resize "Decrease Down"; }} + bind "K" {{ Resize "Decrease Up"; }} + bind "L" {{ Resize "Decrease Right"; }} + bind "=" "+" {{ Resize "Increase"; }} + bind "-" {{ Resize "Decrease"; }} + }} + pane {{ + bind "{primary_modifier} p" {{ SwitchToMode "Normal"; }} + bind "h" "Left" {{ MoveFocus "Left"; }} + bind "l" "Right" {{ MoveFocus "Right"; }} + bind "j" "Down" {{ MoveFocus "Down"; }} + bind "k" "Up" {{ MoveFocus "Up"; }} + bind "p" {{ SwitchFocus; }} + bind "n" {{ NewPane; SwitchToMode "Normal"; }} + bind "d" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "r" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + bind "f" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "z" {{ TogglePaneFrames; SwitchToMode "Normal"; }} + bind "w" {{ ToggleFloatingPanes; SwitchToMode "Normal"; }} + bind "e" {{ TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }} + bind "c" {{ SwitchToMode "RenamePane"; PaneNameInput 0;}} + }} + move {{ + bind "{primary_modifier} m" {{ SwitchToMode "Normal"; }} + bind "n" "Tab" {{ MovePane; }} + bind "p" {{ MovePaneBackwards; }} + bind "h" "Left" {{ MovePane "Left"; }} + bind "j" "Down" {{ MovePane "Down"; }} + bind "k" "Up" {{ MovePane "Up"; }} + bind "l" "Right" {{ MovePane "Right"; }} + }} + tab {{ + bind "{primary_modifier} t" {{ SwitchToMode "Normal"; }} + bind "r" {{ SwitchToMode "RenameTab"; TabNameInput 0; }} + bind "h" "Left" "Up" "k" {{ GoToPreviousTab; }} + bind "l" "Right" "Down" "j" {{ GoToNextTab; }} + bind "n" {{ NewTab; SwitchToMode "Normal"; }} + bind "x" {{ CloseTab; SwitchToMode "Normal"; }} + bind "s" {{ ToggleActiveSyncTab; SwitchToMode "Normal"; }} + bind "b" {{ BreakPane; SwitchToMode "Normal"; }} + bind "]" {{ BreakPaneRight; SwitchToMode "Normal"; }} + bind "[" {{ BreakPaneLeft; SwitchToMode "Normal"; }} + bind "1" {{ GoToTab 1; SwitchToMode "Normal"; }} + bind "2" {{ GoToTab 2; SwitchToMode "Normal"; }} + bind "3" {{ GoToTab 3; SwitchToMode "Normal"; }} + bind "4" {{ GoToTab 4; SwitchToMode "Normal"; }} + bind "5" {{ GoToTab 5; SwitchToMode "Normal"; }} + bind "6" {{ GoToTab 6; SwitchToMode "Normal"; }} + bind "7" {{ GoToTab 7; SwitchToMode "Normal"; }} + bind "8" {{ GoToTab 8; SwitchToMode "Normal"; }} + bind "9" {{ GoToTab 9; SwitchToMode "Normal"; }} + bind "Tab" {{ ToggleTab; }} + }} + scroll {{ + bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} + bind "e" {{ EditScrollback; SwitchToMode "Normal"; }} + bind "s" {{ SwitchToMode "EnterSearch"; SearchInput 0; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + }} + search {{ + bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} + bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} + bind "j" "Down" {{ ScrollDown; }} + bind "k" "Up" {{ ScrollUp; }} + bind "Ctrl f" "PageDown" "Right" "l" {{ PageScrollDown; }} + bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} + bind "d" {{ HalfPageScrollDown; }} + bind "u" {{ HalfPageScrollUp; }} + bind "n" {{ Search "down"; }} + bind "p" {{ Search "up"; }} + bind "c" {{ SearchToggleOption "CaseSensitivity"; }} + bind "w" {{ SearchToggleOption "Wrap"; }} + bind "o" {{ SearchToggleOption "WholeWord"; }} + }} + entersearch {{ + bind "Ctrl c" "Esc" {{ SwitchToMode "Scroll"; }} + bind "Enter" {{ SwitchToMode "Search"; }} + }} + renametab {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenameTab; SwitchToMode "Tab"; }} + }} + renamepane {{ + bind "Ctrl c" {{ SwitchToMode "Normal"; }} + bind "Esc" {{ UndoRenamePane; SwitchToMode "Pane"; }} + }} + session {{ + bind "{primary_modifier} o" {{ SwitchToMode "Normal"; }} + bind "{primary_modifier} s" {{ SwitchToMode "Scroll"; }} + bind "d" {{ Detach; }} + bind "w" {{ + LaunchOrFocusPlugin "session-manager" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + bind "c" {{ + LaunchOrFocusPlugin "configuration" {{ + floating true + move_to_focused_tab true + }}; + SwitchToMode "Normal" + }} + }} + tmux {{ + bind "[" {{ SwitchToMode "Scroll"; }} + bind "{primary_modifier} b" {{ Write 2; SwitchToMode "Normal"; }} + bind "\"" {{ NewPane "Down"; SwitchToMode "Normal"; }} + bind "%" {{ NewPane "Right"; SwitchToMode "Normal"; }} + bind "z" {{ ToggleFocusFullscreen; SwitchToMode "Normal"; }} + bind "c" {{ NewTab; SwitchToMode "Normal"; }} + bind "," {{ SwitchToMode "RenameTab"; }} + bind "p" {{ GoToPreviousTab; SwitchToMode "Normal"; }} + bind "n" {{ GoToNextTab; SwitchToMode "Normal"; }} + bind "Left" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "Right" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "Down" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "Up" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "h" {{ MoveFocus "Left"; SwitchToMode "Normal"; }} + bind "l" {{ MoveFocus "Right"; SwitchToMode "Normal"; }} + bind "j" {{ MoveFocus "Down"; SwitchToMode "Normal"; }} + bind "k" {{ MoveFocus "Up"; SwitchToMode "Normal"; }} + bind "o" {{ FocusNextPane; }} + bind "d" {{ Detach; }} + bind "Space" {{ NextSwapLayout; }} + bind "x" {{ CloseFocus; SwitchToMode "Normal"; }} + }} + shared_except "locked" {{ + bind "{primary_modifier} g" {{ SwitchToMode "Locked"; }} + bind "{primary_modifier} q" {{ Quit; }} + bind "{secondary_modifier} f" {{ ToggleFloatingPanes; }} + bind "{secondary_modifier} n" {{ NewPane; }} + bind "{secondary_modifier} i" {{ MoveTab "Left"; }} + bind "{secondary_modifier} o" {{ MoveTab "Right"; }} + bind "{secondary_modifier} h" "{secondary_modifier} Left" {{ MoveFocusOrTab "Left"; }} + bind "{secondary_modifier} l" "{secondary_modifier} Right" {{ MoveFocusOrTab "Right"; }} + bind "{secondary_modifier} j" "{secondary_modifier} Down" {{ MoveFocus "Down"; }} + bind "{secondary_modifier} k" "{secondary_modifier} Up" {{ MoveFocus "Up"; }} + bind "{secondary_modifier} =" "{secondary_modifier} +" {{ Resize "Increase"; }} + bind "{secondary_modifier} -" {{ Resize "Decrease"; }} + bind "{secondary_modifier} [" {{ PreviousSwapLayout; }} + bind "{secondary_modifier} ]" {{ NextSwapLayout; }} + }} + shared_except "normal" "locked" {{ + bind "Enter" "Esc" {{ SwitchToMode "Normal"; }} + }} + shared_except "pane" "locked" {{ + bind "{primary_modifier} p" {{ SwitchToMode "Pane"; }} + }} + shared_except "resize" "locked" {{ + bind "{primary_modifier} r" {{ SwitchToMode "Resize"; }} + }} + shared_except "scroll" "locked" {{ + bind "{primary_modifier} s" {{ SwitchToMode "Scroll"; }} + }} + shared_except "session" "locked" "tab" {{ + bind "{primary_modifier} o" {{ SwitchToMode "Session"; }} + }} + shared_except "tab" "locked" {{ + bind "{primary_modifier} t" {{ SwitchToMode "Tab"; }} + }} + shared_except "move" "locked" {{ + bind "{primary_modifier} m" {{ SwitchToMode "Move"; }} + }} + shared_except "tmux" "locked" {{ + bind "{primary_modifier} b" {{ SwitchToMode "Tmux"; }} + }} +}} +"# + ) +} diff --git a/default-plugins/fixture-plugin-for-tests/src/main.rs b/default-plugins/fixture-plugin-for-tests/src/main.rs index b6cac35b..918aba72 100644 --- a/default-plugins/fixture-plugin-for-tests/src/main.rs +++ b/default-plugins/fixture-plugin-for-tests/src/main.rs @@ -56,7 +56,7 @@ impl ZellijPlugin for State { PermissionType::WebAccess, PermissionType::ReadCliPipes, PermissionType::MessageAndLaunchOtherPlugins, - PermissionType::RebindKeys, + PermissionType::Reconfigure, ]); self.configuration = configuration; subscribe(&[ @@ -320,7 +320,7 @@ impl ZellijPlugin for State { ); }, BareKey::Char('0') if key.has_modifiers(&[KeyModifier::Ctrl]) => { - rebind_keys( + reconfigure( " keybinds { locked { diff --git a/default-plugins/status-bar/src/one_line_ui.rs b/default-plugins/status-bar/src/one_line_ui.rs index 87b1e2fd..7e3b8a4d 100644 --- a/default-plugins/status-bar/src/one_line_ui.rs +++ b/default-plugins/status-bar/src/one_line_ui.rs @@ -1265,6 +1265,7 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec)]) -> Vec)]) -> Vec { + let mut matching = keymap.iter().find_map(|(key, acvec)| { + let has_match = acvec + .iter() + .find(|a| a.launches_plugin("configuration")) + .is_some(); + if has_match { + Some(key.clone()) + } else { + None + } + }); + if let Some(matching) = matching.take() { + vec![matching] + } else { + vec![] + } +} + fn style_key_with_modifier(keyvec: &[KeyWithModifier], color_index: Option) -> LinePart { if keyvec.is_empty() { return LinePart::default(); diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap index da8650ae..b2401f43 100644 --- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap +++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap @@ -1,6 +1,6 @@ --- source: src/tests/e2e/cases.rs -assertion_line: 1050 +assertion_line: 1064 expression: last_snapshot --- Zellij (e2e-test)  Tab #1  @@ -26,4 +26,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └────────────────────────────────────────────────┘└────────────────────────────────────────────────┘ - Ctrl + g  p  t  n  h  s  o  q  Alt +  New Pane  <←↓↑→> Change Focus  + Ctrl + g  p  t  n  h  s  o  q  Alt +  New  <←↓↑→> Focus  Floating  diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_command_through_the_cli.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_command_through_the_cli.snap index 197fd571..623bfb73 100644 --- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_command_through_the_cli.snap +++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_command_through_the_cli.snap @@ -1,6 +1,6 @@ --- source: src/tests/e2e/cases.rs -assertion_line: 2349 +assertion_line: 2372 expression: last_snapshot --- Zellij (e2e-test)  Tab #1  Alt <[]>  VERTICAL  @@ -26,4 +26,4 @@ expression: last_snapshot │ ││ │ │ ││ │ └─────────────────────────────────────────────────────────────────────────┘└ [ EXIT CODE: 0 ] re-run, drop to shell, exit ────┘ - Ctrl + LOCK 

PANE  TAB  RESIZE  MOVE  SEARCH  SESSION  QUIT  Alt +  New  <←↓↑→> Focus  + Ctrl + LOCK 

PANE  TAB  RESIZE  MOVE  SEARCH  SESSION  QUIT  diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 1f76fb4e..28bd7b3c 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -36,6 +36,7 @@ lazy_static::lazy_static! { WorkspaceMember{crate_name: "default-plugins/tab-bar", build: true}, WorkspaceMember{crate_name: "default-plugins/fixture-plugin-for-tests", build: true}, WorkspaceMember{crate_name: "default-plugins/session-manager", build: true}, + WorkspaceMember{crate_name: "default-plugins/configuration", build: true}, WorkspaceMember{crate_name: "zellij-utils", build: false}, WorkspaceMember{crate_name: "zellij-tile-utils", build: false}, WorkspaceMember{crate_name: "zellij-tile", build: false}, diff --git a/zellij-server/src/lib.rs b/zellij-server/src/lib.rs index 9a3231b3..fbde2f86 100644 --- a/zellij-server/src/lib.rs +++ b/zellij-server/src/lib.rs @@ -97,7 +97,7 @@ pub enum ServerInstruction { DisconnectAllClientsExcept(ClientId), ChangeMode(ClientId, InputMode), ChangeModeForAllClients(InputMode), - RebindKeys(ClientId, String), // String -> stringified keybindings + Reconfigure(ClientId, String), // String -> stringified configuration } impl From<&ServerInstruction> for ServerContext { @@ -129,7 +129,7 @@ impl From<&ServerInstruction> for ServerContext { ServerInstruction::ChangeModeForAllClients(..) => { ServerContext::ChangeModeForAllClients }, - ServerInstruction::RebindKeys(..) => ServerContext::RebindKeys, + ServerInstruction::Reconfigure(..) => ServerContext::Reconfigure, } } } @@ -149,7 +149,7 @@ pub(crate) struct SessionMetaData { pub config_options: Box, pub client_keybinds: HashMap, pub client_input_modes: HashMap, - pub default_mode: InputMode, + pub default_mode: HashMap, screen_thread: Option>, pty_thread: Option>, plugin_thread: Option>, @@ -570,6 +570,10 @@ pub fn start_server(mut os_input: Box, socket_path: PathBuf) { default_mode, &attrs, session_data.capabilities, + session_data + .client_keybinds + .get(&client_id) + .unwrap_or(&session_data.client_attributes.keybinds), Some(default_mode), ); session_data @@ -911,24 +915,57 @@ pub fn start_server(mut os_input: Box, socket_path: PathBuf) { .unwrap() .change_mode_for_all_clients(input_mode); }, - ServerInstruction::RebindKeys(client_id, new_keybinds) => { + ServerInstruction::Reconfigure(client_id, new_config) => { + let mut new_default_mode = None; + match Options::from_string(&new_config) { + Ok(mut new_config_options) => { + if let Some(default_mode) = new_config_options.default_mode.take() { + new_default_mode = Some(default_mode); + session_data + .write() + .unwrap() + .as_mut() + .unwrap() + .default_mode + .insert(client_id, default_mode); + } + }, + Err(e) => { + log::error!("Failed to parse config: {}", e); + }, + } + let new_keybinds = session_data .write() .unwrap() .as_mut() .unwrap() - .rebind_keys(client_id, new_keybinds) + .rebind_keys(client_id, new_config) .clone(); - if let Some(new_keybinds) = new_keybinds { - session_data - .write() - .unwrap() - .as_ref() - .unwrap() - .senders - .send_to_screen(ScreenInstruction::RebindKeys(new_keybinds, client_id)) - .unwrap(); - } + session_data + .write() + .unwrap() + .as_ref() + .unwrap() + .senders + .send_to_screen(ScreenInstruction::Reconfigure { + client_id, + keybinds: new_keybinds.clone(), + default_mode: new_default_mode, + }) + .unwrap(); + session_data + .write() + .unwrap() + .as_ref() + .unwrap() + .senders + .send_to_plugin(PluginInstruction::Reconfigure { + client_id, + keybinds: new_keybinds, + default_mode: new_default_mode, + }) + .unwrap(); }, } } @@ -1167,7 +1204,7 @@ fn init_session( plugin_thread: Some(plugin_thread), pty_writer_thread: Some(pty_writer_thread), background_jobs_thread: Some(background_jobs_thread), - default_mode, + default_mode: HashMap::new(), } } diff --git a/zellij-server/src/plugins/mod.rs b/zellij-server/src/plugins/mod.rs index 639a389e..223ecb55 100644 --- a/zellij-server/src/plugins/mod.rs +++ b/zellij-server/src/plugins/mod.rs @@ -31,6 +31,7 @@ use zellij_utils::{ errors::{prelude::*, ContextType, PluginContext}, input::{ command::TerminalAction, + keybinds::Keybinds, layout::{FloatingPaneLayout, Layout, Run, RunPlugin, RunPluginOrAlias, TiledPaneLayout}, plugins::PluginAliases, }, @@ -142,6 +143,11 @@ pub enum PluginInstruction { message: MessageToPlugin, }, UnblockCliPipes(Vec), + Reconfigure { + client_id: ClientId, + keybinds: Option, + default_mode: Option, + }, WatchFilesystem, Exit, } @@ -182,6 +188,7 @@ impl From<&PluginInstruction> for PluginContext { PluginInstruction::WatchFilesystem => PluginContext::WatchFilesystem, PluginInstruction::KeybindPipe { .. } => PluginContext::KeybindPipe, PluginInstruction::DumpLayoutToPlugin(..) => PluginContext::DumpLayoutToPlugin, + PluginInstruction::Reconfigure { .. } => PluginContext::Reconfigure, } } } @@ -734,6 +741,15 @@ pub(crate) fn plugin_thread_main( .context("failed to unblock input pipe"); } }, + PluginInstruction::Reconfigure { + client_id, + keybinds, + default_mode, + } => { + wasm_bridge + .reconfigure(client_id, keybinds, default_mode) + .non_fatal(); + }, PluginInstruction::WatchFilesystem => { wasm_bridge.start_fs_watcher_if_not_started(); }, diff --git a/zellij-server/src/plugins/plugin_loader.rs b/zellij-server/src/plugins/plugin_loader.rs index 6ed36c05..51ca3e16 100644 --- a/zellij-server/src/plugins/plugin_loader.rs +++ b/zellij-server/src/plugins/plugin_loader.rs @@ -29,6 +29,7 @@ use zellij_utils::{ data::{InputMode, PluginCapabilities}, errors::prelude::*, input::command::TerminalAction, + input::keybinds::Keybinds, input::layout::Layout, input::plugins::PluginConfig, ipc::ClientAttributes, @@ -69,6 +70,7 @@ pub struct PluginLoader<'a> { default_layout: Box, layout_dir: Option, default_mode: InputMode, + keybinds: Option, } impl<'a> PluginLoader<'a> { @@ -89,6 +91,7 @@ impl<'a> PluginLoader<'a> { default_layout: Box, layout_dir: Option, default_mode: InputMode, + keybinds: &HashMap, ) -> Result<()> { let err_context = || format!("failed to reload plugin {plugin_id} from memory"); let mut connected_clients: Vec = @@ -97,6 +100,7 @@ impl<'a> PluginLoader<'a> { return Err(anyhow!("No connected clients, cannot reload plugin")); } let first_client_id = connected_clients.remove(0); + let keybinds = keybinds.get(&first_client_id).cloned(); let mut plugin_loader = PluginLoader::new_from_existing_plugin_attributes( &plugin_cache, @@ -115,6 +119,7 @@ impl<'a> PluginLoader<'a> { default_layout, layout_dir, default_mode, + keybinds, )?; plugin_loader .load_module_from_memory() @@ -152,6 +157,7 @@ impl<'a> PluginLoader<'a> { skip_cache: bool, layout_dir: Option, default_mode: InputMode, + keybinds: Option, ) -> Result<()> { let err_context = || format!("failed to start plugin {plugin_id} for client {client_id}"); let mut plugin_loader = PluginLoader::new( @@ -173,6 +179,7 @@ impl<'a> PluginLoader<'a> { default_layout, layout_dir, default_mode, + keybinds, )?; if skip_cache { plugin_loader @@ -226,6 +233,7 @@ impl<'a> PluginLoader<'a> { default_layout: Box, layout_dir: Option, default_mode: InputMode, + keybinds: Option, ) -> Result<()> { let mut new_plugins = HashSet::new(); for plugin_id in plugin_map.lock().unwrap().plugin_ids() { @@ -249,6 +257,7 @@ impl<'a> PluginLoader<'a> { default_layout.clone(), layout_dir.clone(), default_mode, + keybinds.clone(), )?; plugin_loader .load_module_from_memory() @@ -278,6 +287,7 @@ impl<'a> PluginLoader<'a> { default_layout: Box, layout_dir: Option, default_mode: InputMode, + keybinds: &HashMap, ) -> Result<()> { let err_context = || format!("failed to reload plugin id {plugin_id}"); @@ -287,6 +297,7 @@ impl<'a> PluginLoader<'a> { return Err(anyhow!("No connected clients, cannot reload plugin")); } let first_client_id = connected_clients.remove(0); + let keybinds = keybinds.get(&first_client_id).cloned(); let mut plugin_loader = PluginLoader::new_from_existing_plugin_attributes( &plugin_cache, @@ -305,6 +316,7 @@ impl<'a> PluginLoader<'a> { default_layout, layout_dir, default_mode, + keybinds, )?; plugin_loader .compile_module() @@ -338,6 +350,7 @@ impl<'a> PluginLoader<'a> { default_layout: Box, layout_dir: Option, default_mode: InputMode, + keybinds: Option, ) -> Result { let plugin_own_data_dir = ZELLIJ_SESSION_CACHE_DIR .join(Url::from(&plugin.location).to_string()) @@ -366,6 +379,7 @@ impl<'a> PluginLoader<'a> { default_layout, layout_dir, default_mode, + keybinds, }) } pub fn new_from_existing_plugin_attributes( @@ -385,6 +399,7 @@ impl<'a> PluginLoader<'a> { default_layout: Box, layout_dir: Option, default_mode: InputMode, + keybinds: Option, ) -> Result { let err_context = || "Failed to find existing plugin"; let (running_plugin, _subscriptions, _workers) = { @@ -420,6 +435,7 @@ impl<'a> PluginLoader<'a> { default_layout, layout_dir, default_mode, + keybinds, ) } pub fn new_from_different_client_id( @@ -439,6 +455,7 @@ impl<'a> PluginLoader<'a> { default_layout: Box, layout_dir: Option, default_mode: InputMode, + keybinds: Option, ) -> Result { let err_context = || "Failed to find existing plugin"; let running_plugin = { @@ -475,6 +492,7 @@ impl<'a> PluginLoader<'a> { default_layout, layout_dir, default_mode, + keybinds, ) } pub fn load_module_from_memory(&mut self) -> Result { @@ -731,6 +749,7 @@ impl<'a> PluginLoader<'a> { self.default_layout.clone(), self.layout_dir.clone(), self.default_mode, + self.keybinds.clone(), )?; plugin_loader_for_client .load_module_from_memory() @@ -832,6 +851,11 @@ impl<'a> PluginLoader<'a> { layout_dir: self.layout_dir.clone(), default_mode: self.default_mode.clone(), subscriptions: Arc::new(Mutex::new(HashSet::new())), + keybinds: self + .keybinds + .as_ref() + .unwrap_or_else(|| &self.client_attributes.keybinds) + .clone(), stdin_pipe, stdout_pipe, }; diff --git a/zellij-server/src/plugins/plugin_map.rs b/zellij-server/src/plugins/plugin_map.rs index c5ac6d5f..6390841a 100644 --- a/zellij-server/src/plugins/plugin_map.rs +++ b/zellij-server/src/plugins/plugin_map.rs @@ -22,6 +22,7 @@ use zellij_utils::{ data::InputMode, data::PluginCapabilities, input::command::TerminalAction, + input::keybinds::Keybinds, input::layout::{Layout, PluginUserConfiguration, RunPlugin, RunPluginLocation}, input::plugins::PluginConfig, ipc::ClientAttributes, @@ -289,6 +290,7 @@ pub struct PluginEnv { pub subscriptions: Arc>, pub stdin_pipe: Arc>>, pub stdout_pipe: Arc>>, + pub keybinds: Keybinds, } #[derive(Clone)] @@ -424,4 +426,10 @@ impl RunningPlugin { false } } + pub fn update_keybinds(&mut self, keybinds: Keybinds) { + self.store.data_mut().keybinds = keybinds; + } + pub fn update_default_mode(&mut self, default_mode: InputMode) { + self.store.data_mut().default_mode = default_mode; + } } diff --git a/zellij-server/src/plugins/unit/plugin_tests.rs b/zellij-server/src/plugins/unit/plugin_tests.rs index c1f4fcd5..5ef220db 100644 --- a/zellij-server/src/plugins/unit/plugin_tests.rs +++ b/zellij-server/src/plugins/unit/plugin_tests.rs @@ -6492,7 +6492,7 @@ pub fn disconnect_other_clients_plugins_command() { #[test] #[ignore] -pub fn rebind_keys_plugin_command() { +pub fn reconfigure_plugin_command() { let temp_folder = tempdir().unwrap(); // placed explicitly in the test scope because its // destructor removes the directory let plugin_host_folder = PathBuf::from(temp_folder.path()); @@ -6527,7 +6527,7 @@ pub fn rebind_keys_plugin_command() { let received_server_instruction = Arc::new(Mutex::new(vec![])); let server_thread = log_actions_in_thread!( received_server_instruction, - ServerInstruction::RebindKeys, + ServerInstruction::Reconfigure, server_receiver, 1 ); @@ -6555,20 +6555,20 @@ pub fn rebind_keys_plugin_command() { std::thread::sleep(std::time::Duration::from_millis(500)); teardown(); server_thread.join().unwrap(); // this might take a while if the cache is cold - let rebind_keys_event = received_server_instruction + let reconfigure_event = received_server_instruction .lock() .unwrap() .iter() .rev() .find_map(|i| { - if let ServerInstruction::RebindKeys(..) = i { + if let ServerInstruction::Reconfigure(..) = i { Some(i.clone()) } else { None } }) .clone(); - assert_snapshot!(format!("{:#?}", rebind_keys_event)); + assert_snapshot!(format!("{:#?}", reconfigure_event)); } #[test] diff --git a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__granted_permission_request_result.snap b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__granted_permission_request_result.snap index 465f1088..28c7dedc 100644 --- a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__granted_permission_request_result.snap +++ b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__granted_permission_request_result.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/plugins/./unit/plugin_tests.rs -assertion_line: 5500 +assertion_line: 5505 expression: "format!(\"{:#?}\", permissions)" --- Some( @@ -14,6 +14,6 @@ Some( WebAccess, ReadCliPipes, MessageAndLaunchOtherPlugins, - RebindKeys, + Reconfigure, ], ) diff --git a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__reconfigure_plugin_command.snap b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__reconfigure_plugin_command.snap new file mode 100644 index 00000000..3f788d7d --- /dev/null +++ b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__reconfigure_plugin_command.snap @@ -0,0 +1,11 @@ +--- +source: zellij-server/src/plugins/./unit/plugin_tests.rs +assertion_line: 6571 +expression: "format!(\"{:#?}\", reconfigure_event)" +--- +Some( + Reconfigure( + 1, + "\n keybinds {\n locked {\n bind \"a\" { NewTab; }\n }\n }\n ", + ), +) diff --git a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__request_plugin_permissions.snap b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__request_plugin_permissions.snap index a0fec410..75f47da7 100644 --- a/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__request_plugin_permissions.snap +++ b/zellij-server/src/plugins/unit/snapshots/zellij_server__plugins__plugin_tests__request_plugin_permissions.snap @@ -1,6 +1,6 @@ --- source: zellij-server/src/plugins/./unit/plugin_tests.rs -assertion_line: 5409 +assertion_line: 5414 expression: "format!(\"{:#?}\", new_tab_event)" --- Some( @@ -16,6 +16,6 @@ Some( WebAccess, ReadCliPipes, MessageAndLaunchOtherPlugins, - RebindKeys, + Reconfigure, ], ) diff --git a/zellij-server/src/plugins/wasm_bridge.rs b/zellij-server/src/plugins/wasm_bridge.rs index 2abc22d3..00a7795b 100644 --- a/zellij-server/src/plugins/wasm_bridge.rs +++ b/zellij-server/src/plugins/wasm_bridge.rs @@ -21,6 +21,7 @@ use zellij_utils::async_std::task::{self, JoinHandle}; use zellij_utils::consts::ZELLIJ_CACHE_DIR; use zellij_utils::data::{InputMode, PermissionStatus, PermissionType, PipeMessage, PipeSource}; use zellij_utils::downloader::Downloader; +use zellij_utils::input::keybinds::Keybinds; use zellij_utils::input::permission::PermissionCache; use zellij_utils::notify_debouncer_full::{notify::RecommendedWatcher, Debouncer, FileIdMap}; use zellij_utils::plugin_api::event::ProtobufEvent; @@ -103,6 +104,7 @@ pub struct WasmBridge { pending_pipes: PendingPipes, layout_dir: Option, default_mode: InputMode, + keybinds: HashMap, } impl WasmBridge { @@ -149,6 +151,7 @@ impl WasmBridge { pending_pipes: Default::default(), layout_dir, default_mode, + keybinds: HashMap::new(), } } pub fn load_plugin( @@ -206,6 +209,7 @@ impl WasmBridge { let default_layout = self.default_layout.clone(); let layout_dir = self.layout_dir.clone(); let default_mode = self.default_mode; + let keybinds = self.keybinds.get(&client_id).cloned(); async move { let _ = senders.send_to_background_jobs( BackgroundJob::AnimatePluginLoading(plugin_id), @@ -254,6 +258,7 @@ impl WasmBridge { skip_cache, layout_dir, default_mode, + keybinds, ) { Ok(_) => handle_plugin_successful_loading(&senders, plugin_id), Err(e) => handle_plugin_loading_failure( @@ -346,6 +351,7 @@ impl WasmBridge { let default_layout = self.default_layout.clone(); let layout_dir = self.layout_dir.clone(); let default_mode = self.default_mode; + let keybinds = self.keybinds.clone(); async move { match PluginLoader::reload_plugin( first_plugin_id, @@ -364,6 +370,7 @@ impl WasmBridge { default_layout.clone(), layout_dir.clone(), default_mode, + &keybinds, ) { Ok(_) => { handle_plugin_successful_loading(&senders, first_plugin_id); @@ -390,6 +397,7 @@ impl WasmBridge { default_layout.clone(), layout_dir.clone(), default_mode, + &keybinds, ) { Ok(_) => handle_plugin_successful_loading(&senders, *plugin_id), Err(e) => handle_plugin_loading_failure( @@ -443,6 +451,7 @@ impl WasmBridge { self.default_layout.clone(), self.layout_dir.clone(), self.default_mode, + self.keybinds.get(&client_id).cloned(), ) { Ok(_) => { let _ = self @@ -795,6 +804,51 @@ impl WasmBridge { .unwrap() .run_plugin_of_plugin_id(plugin_id) } + + pub fn reconfigure( + &mut self, + client_id: ClientId, + keybinds: Option, + default_mode: Option, + ) -> Result<()> { + let plugins_to_reconfigure: Vec>> = self + .plugin_map + .lock() + .unwrap() + .running_plugins() + .iter() + .cloned() + .filter_map(|(_plugin_id, c_id, running_plugin)| { + if c_id == client_id { + Some(running_plugin.clone()) + } else { + None + } + }) + .collect(); + if let Some(default_mode) = default_mode.as_ref() { + self.default_mode = *default_mode; + } + if let Some(keybinds) = keybinds.as_ref() { + self.keybinds.insert(client_id, keybinds.clone()); + } + for running_plugin in plugins_to_reconfigure { + task::spawn({ + let running_plugin = running_plugin.clone(); + let keybinds = keybinds.clone(); + async move { + let mut running_plugin = running_plugin.lock().unwrap(); + if let Some(keybinds) = keybinds { + running_plugin.update_keybinds(keybinds); + } + if let Some(default_mode) = default_mode { + running_plugin.update_default_mode(default_mode); + } + } + }); + } + Ok(()) + } fn apply_cached_events_and_resizes_for_plugin( &mut self, plugin_id: PluginId, @@ -1288,6 +1342,18 @@ pub fn apply_event_to_plugin( let err_context = || format!("Failed to apply event to plugin {plugin_id}"); match check_event_permission(running_plugin.store.data(), event) { (PermissionStatus::Granted, _) => { + let mut event = event.clone(); + if let Event::ModeUpdate(mode_info) = &mut event { + // we do this because there can be some cases where this event arrives here with + // the wrong keybindings or default mode (for example: when triggered from the CLI, + // where we do not know the target client_id and thus don't know if their keybindings are the + // default or if they have changed at runtime), the keybindings in running_plugin + // should always be up-to-date. Ideally, we would have changed the keybindings in + // ModeInfo to an Option, but alas - this is already part of our contract and that + // would be a breaking change. + mode_info.keybinds = running_plugin.store.data().keybinds.to_keybinds_vec(); + mode_info.base_mode = Some(running_plugin.store.data().default_mode); + } let protobuf_event: ProtobufEvent = event .clone() .try_into() diff --git a/zellij-server/src/plugins/zellij_exports.rs b/zellij-server/src/plugins/zellij_exports.rs index a517df06..21b8b01d 100644 --- a/zellij-server/src/plugins/zellij_exports.rs +++ b/zellij-server/src/plugins/zellij_exports.rs @@ -61,6 +61,7 @@ macro_rules! apply_action { $env.default_shell.clone(), $env.default_layout.clone(), None, + $env.keybinds.clone(), $env.default_mode.clone(), ) { log::error!("{}: {:?}", $error_message(), e); @@ -244,7 +245,7 @@ fn host_run_plugin_command(caller: Caller<'_, PluginEnv>) { PluginCommand::WatchFilesystem => watch_filesystem(env), PluginCommand::DumpSessionLayout => dump_session_layout(env), PluginCommand::CloseSelf => close_self(env), - PluginCommand::RebindKeys(new_keybinds) => rebind_keys(env, new_keybinds)?, + PluginCommand::Reconfigure(new_config) => reconfigure(env, new_config)?, }, (PermissionStatus::Denied, permission) => { log::error!( @@ -781,11 +782,11 @@ fn close_self(env: &PluginEnv) { .non_fatal(); } -fn rebind_keys(env: &PluginEnv, new_keybinds: String) -> Result<()> { - let err_context = || "Failed to rebind keys"; +fn reconfigure(env: &PluginEnv, new_config: String) -> Result<()> { + let err_context = || "Failed to reconfigure"; let client_id = env.client_id; env.senders - .send_to_server(ServerInstruction::RebindKeys(client_id, new_keybinds)) + .send_to_server(ServerInstruction::Reconfigure(client_id, new_config)) .with_context(err_context)?; Ok(()) } @@ -1446,7 +1447,7 @@ fn check_command_permission( | PluginCommand::CliPipeOutput(..) => PermissionType::ReadCliPipes, PluginCommand::MessageToPlugin(..) => PermissionType::MessageAndLaunchOtherPlugins, PluginCommand::DumpSessionLayout => PermissionType::ReadApplicationState, - PluginCommand::RebindKeys(..) => PermissionType::RebindKeys, + PluginCommand::Reconfigure(..) => PermissionType::Reconfigure, _ => return (PermissionStatus::Granted, None), }; diff --git a/zellij-server/src/route.rs b/zellij-server/src/route.rs index 3092310a..ab5db049 100644 --- a/zellij-server/src/route.rs +++ b/zellij-server/src/route.rs @@ -19,6 +19,7 @@ use zellij_utils::{ actions::{Action, SearchDirection, SearchOption}, command::TerminalAction, get_mode_info, + keybinds::Keybinds, layout::Layout, }, ipc::{ @@ -38,6 +39,7 @@ pub(crate) fn route_action( default_shell: Option, default_layout: Box, mut seen_cli_pipes: Option<&mut HashSet>, + client_keybinds: Keybinds, default_mode: InputMode, ) -> Result { let mut should_break = false; @@ -99,7 +101,13 @@ pub(crate) fn route_action( .send_to_plugin(PluginInstruction::Update(vec![( None, Some(client_id), - Event::ModeUpdate(get_mode_info(mode, attrs, capabilities, Some(default_mode))), + Event::ModeUpdate(get_mode_info( + mode, + attrs, + capabilities, + &client_keybinds, + Some(default_mode), + )), )])) .with_context(err_context)?; senders @@ -107,7 +115,13 @@ pub(crate) fn route_action( .with_context(err_context)?; senders .send_to_screen(ScreenInstruction::ChangeMode( - get_mode_info(mode, attrs, capabilities, Some(default_mode)), + get_mode_info( + mode, + attrs, + capabilities, + &client_keybinds, + Some(default_mode), + ), client_id, )) .with_context(err_context)?; @@ -349,6 +363,7 @@ pub(crate) fn route_action( input_mode, attrs, capabilities, + &client_keybinds, Some(default_mode), )), )])) @@ -363,6 +378,7 @@ pub(crate) fn route_action( input_mode, attrs, capabilities, + &client_keybinds, Some(default_mode), ))) .with_context(err_context)?; @@ -1025,7 +1041,20 @@ pub(crate) fn route_thread_main( rlocked_sessions.default_shell.clone(), rlocked_sessions.layout.clone(), Some(&mut seen_cli_pipes), - rlocked_sessions.default_mode, + rlocked_sessions + .client_keybinds + .get(&client_id) + .unwrap_or( + &rlocked_sessions + .client_attributes + .keybinds, + ) + .clone(), + rlocked_sessions + .default_mode + .get(&client_id) + .unwrap_or(&InputMode::Normal) + .clone(), )? { should_break = true; } @@ -1050,7 +1079,16 @@ pub(crate) fn route_thread_main( rlocked_sessions.default_shell.clone(), rlocked_sessions.layout.clone(), Some(&mut seen_cli_pipes), - rlocked_sessions.default_mode, + rlocked_sessions + .client_keybinds + .get(&client_id) + .unwrap_or(&rlocked_sessions.client_attributes.keybinds) + .clone(), + rlocked_sessions + .default_mode + .get(&client_id) + .unwrap_or(&InputMode::Normal) + .clone(), )? { should_break = true; } diff --git a/zellij-server/src/screen.rs b/zellij-server/src/screen.rs index e61b5d19..189c2571 100644 --- a/zellij-server/src/screen.rs +++ b/zellij-server/src/screen.rs @@ -361,7 +361,11 @@ pub enum ScreenInstruction { DumpLayoutToHd, RenameSession(String, ClientId), // String -> new name ListClientsMetadata(Option, ClientId), // Option - default shell - RebindKeys(Keybinds, ClientId), + Reconfigure { + client_id: ClientId, + keybinds: Option, + default_mode: Option, + }, } impl From<&ScreenInstruction> for ScreenContext { @@ -546,7 +550,7 @@ impl From<&ScreenInstruction> for ScreenContext { ScreenInstruction::DumpLayoutToHd => ScreenContext::DumpLayoutToHd, ScreenInstruction::RenameSession(..) => ScreenContext::RenameSession, ScreenInstruction::ListClientsMetadata(..) => ScreenContext::ListClientsMetadata, - ScreenInstruction::RebindKeys(..) => ScreenContext::RebindKeys, + ScreenInstruction::Reconfigure { .. } => ScreenContext::Reconfigure, } } } @@ -1214,7 +1218,7 @@ impl Screen { let tab_name = tab_name.unwrap_or_else(|| String::new()); let position = self.tabs.len(); - let tab = Tab::new( + let mut tab = Tab::new( tab_index, position, tab_name, @@ -1245,6 +1249,9 @@ impl Screen { self.styled_underlines, self.explicitly_disable_kitty_keyboard_protocol, ); + for (client_id, mode_info) in &self.mode_info { + tab.change_mode_info(mode_info.clone(), *client_id); + } self.tabs.insert(tab_index, tab); Ok(()) } @@ -2151,17 +2158,30 @@ impl Screen { } Ok(()) } - pub fn rebind_keys(&mut self, new_keybinds: Keybinds, client_id: ClientId) -> Result<()> { + pub fn reconfigure_mode_info( + &mut self, + new_keybinds: Option, + new_default_mode: Option, + client_id: ClientId, + ) -> Result<()> { if self.connected_clients_contains(&client_id) { + let should_update_mode_info = new_keybinds.is_some() || new_default_mode.is_some(); let mode_info = self .mode_info .entry(client_id) .or_insert_with(|| self.default_mode_info.clone()); - mode_info.update_keybinds(new_keybinds); - for tab in self.tabs.values_mut() { - tab.change_mode_info(mode_info.clone(), client_id); - tab.mark_active_pane_for_rerender(client_id); - tab.update_input_modes()?; + if let Some(new_keybinds) = new_keybinds { + mode_info.update_keybinds(new_keybinds); + } + if let Some(new_default_mode) = new_default_mode { + mode_info.update_default_mode(new_default_mode); + } + if should_update_mode_info { + for tab in self.tabs.values_mut() { + tab.change_mode_info(mode_info.clone(), client_id); + tab.mark_active_pane_for_rerender(client_id); + tab.update_input_modes()?; + } } } else { log::error!("Could not find client_id {client_id} to rebind keys"); @@ -2363,6 +2383,7 @@ pub(crate) fn screen_thread_main( // ¯\_(ツ)_/¯ arrow_fonts: !arrow_fonts, }, + &client_attributes.keybinds, config_options.default_mode, ), draw_pane_frames, @@ -4028,8 +4049,14 @@ pub(crate) fn screen_thread_main( } screen.unblock_input()?; }, - ScreenInstruction::RebindKeys(new_keybinds, client_id) => { - screen.rebind_keys(new_keybinds, client_id).non_fatal(); + ScreenInstruction::Reconfigure { + client_id, + keybinds, + default_mode, + } => { + screen + .reconfigure_mode_info(keybinds, default_mode, client_id) + .non_fatal(); }, } } diff --git a/zellij-server/src/unit/screen_tests.rs b/zellij-server/src/unit/screen_tests.rs index 5f7f0a66..09d2d794 100644 --- a/zellij-server/src/unit/screen_tests.rs +++ b/zellij-server/src/unit/screen_tests.rs @@ -114,6 +114,7 @@ fn send_cli_action_to_server( let get_current_dir = || PathBuf::from("."); let actions = Action::actions_from_cli(cli_action, Box::new(get_current_dir), None).unwrap(); let senders = session_metadata.senders.clone(); + let client_keybinds = session_metadata.client_keybinds.clone(); let default_mode = session_metadata.default_mode.clone(); let capabilities = PluginCapabilities::default(); let client_attributes = ClientAttributes::default(); @@ -130,7 +131,14 @@ fn send_cli_action_to_server( default_shell.clone(), default_layout.clone(), None, - default_mode, + client_keybinds + .get(&client_id) + .unwrap_or(&session_metadata.client_attributes.keybinds) + .clone(), + default_mode + .get(&client_id) + .unwrap_or(&InputMode::Normal) + .clone(), ) .unwrap(); } @@ -578,7 +586,7 @@ impl MockScreen { layout, client_input_modes: HashMap::new(), client_keybinds: HashMap::new(), - default_mode: InputMode::Normal, + default_mode: HashMap::new(), }; let os_input = FakeInputOutput::default(); diff --git a/zellij-tile/src/shim.rs b/zellij-tile/src/shim.rs index 01049b37..d46b904a 100644 --- a/zellij-tile/src/shim.rs +++ b/zellij-tile/src/shim.rs @@ -809,8 +809,8 @@ pub fn dump_session_layout() { } /// Rebind keys for the current user -pub fn rebind_keys(keys: String) { - let plugin_command = PluginCommand::RebindKeys(keys); +pub fn reconfigure(new_config: String) { + let plugin_command = PluginCommand::Reconfigure(new_config); let protobuf_plugin_command: ProtobufPluginCommand = plugin_command.try_into().unwrap(); object_to_stdout(&protobuf_plugin_command.encode_to_vec()); unsafe { host_run_plugin_command() }; diff --git a/zellij-utils/assets/config/default.kdl b/zellij-utils/assets/config/default.kdl index e830cd09..95f42fe4 100644 --- a/zellij-utils/assets/config/default.kdl +++ b/zellij-utils/assets/config/default.kdl @@ -120,6 +120,13 @@ keybinds { }; SwitchToMode "Normal" } + bind "c" { + LaunchOrFocusPlugin "configuration" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } } tmux { bind "[" { SwitchToMode "Scroll"; } @@ -147,6 +154,7 @@ keybinds { shared_except "locked" { bind "Ctrl g" { SwitchToMode "Locked"; } bind "Ctrl q" { Quit; } + bind "Alt f" { ToggleFloatingPanes; } bind "Alt n" { NewPane; } bind "Alt i" { MoveTab "Left"; } bind "Alt o" { MoveTab "Right"; } @@ -197,6 +205,7 @@ plugins { filepicker location="zellij:strider" { cwd "/" } + configuration location="zellij:configuration" } // Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP diff --git a/zellij-utils/assets/plugins/configuration.wasm b/zellij-utils/assets/plugins/configuration.wasm new file mode 100755 index 0000000000000000000000000000000000000000..581dbfb1853940afddd58eec23232e36079d06b6 GIT binary patch literal 840947 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%0A0+qlwLcAba8u{=ML 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

7U;n(|C(t@XxaU=Ma&_SbW2?MFJIGl=_% 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

OM!9NSYN) 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%0A|F`aKo>AJ88`9+on{WS@6M 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 -$W#q$~cIFaq=A%3D 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 literal 0 HcmV?d00001 diff --git a/zellij-utils/assets/prost/api.plugin_command.rs b/zellij-utils/assets/prost/api.plugin_command.rs index 393f2e0c..1e57602e 100644 --- a/zellij-utils/assets/prost/api.plugin_command.rs +++ b/zellij-utils/assets/prost/api.plugin_command.rs @@ -119,7 +119,7 @@ pub mod plugin_command { #[prost(message, tag = "62")] NewTabsWithLayoutInfoPayload(super::NewTabsWithLayoutInfoPayload), #[prost(string, tag = "63")] - RebindKeysPayload(::prost::alloc::string::String), + ReconfigurePayload(::prost::alloc::string::String), } } #[allow(clippy::derive_partial_eq_without_eq)] @@ -433,7 +433,7 @@ pub enum CommandName { DumpSessionLayout = 84, CloseSelf = 85, NewTabsWithLayoutInfo = 86, - RebindKeys = 87, + Reconfigure = 87, } impl CommandName { /// String value of the enum field names used in the ProtoBuf definition. @@ -529,7 +529,7 @@ impl CommandName { CommandName::DumpSessionLayout => "DumpSessionLayout", CommandName::CloseSelf => "CloseSelf", CommandName::NewTabsWithLayoutInfo => "NewTabsWithLayoutInfo", - CommandName::RebindKeys => "RebindKeys", + CommandName::Reconfigure => "Reconfigure", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -622,7 +622,7 @@ impl CommandName { "DumpSessionLayout" => Some(Self::DumpSessionLayout), "CloseSelf" => Some(Self::CloseSelf), "NewTabsWithLayoutInfo" => Some(Self::NewTabsWithLayoutInfo), - "RebindKeys" => Some(Self::RebindKeys), + "Reconfigure" => Some(Self::Reconfigure), _ => None, } } diff --git a/zellij-utils/assets/prost/api.plugin_permission.rs b/zellij-utils/assets/prost/api.plugin_permission.rs index 50bc853f..013732d9 100644 --- a/zellij-utils/assets/prost/api.plugin_permission.rs +++ b/zellij-utils/assets/prost/api.plugin_permission.rs @@ -10,7 +10,7 @@ pub enum PermissionType { WebAccess = 6, ReadCliPipes = 7, MessageAndLaunchOtherPlugins = 8, - RebindKeys = 9, + Reconfigure = 9, } impl PermissionType { /// String value of the enum field names used in the ProtoBuf definition. @@ -30,7 +30,7 @@ impl PermissionType { PermissionType::MessageAndLaunchOtherPlugins => { "MessageAndLaunchOtherPlugins" } - PermissionType::RebindKeys => "RebindKeys", + PermissionType::Reconfigure => "Reconfigure", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -45,7 +45,7 @@ impl PermissionType { "WebAccess" => Some(Self::WebAccess), "ReadCliPipes" => Some(Self::ReadCliPipes), "MessageAndLaunchOtherPlugins" => Some(Self::MessageAndLaunchOtherPlugins), - "RebindKeys" => Some(Self::RebindKeys), + "Reconfigure" => Some(Self::Reconfigure), _ => None, } } diff --git a/zellij-utils/src/consts.rs b/zellij-utils/src/consts.rs index 05794495..1c11815c 100644 --- a/zellij-utils/src/consts.rs +++ b/zellij-utils/src/consts.rs @@ -110,6 +110,7 @@ mod not_wasm { add_plugin!(assets, "tab-bar.wasm"); add_plugin!(assets, "strider.wasm"); add_plugin!(assets, "session-manager.wasm"); + add_plugin!(assets, "configuration.wasm"); assets }; } diff --git a/zellij-utils/src/data.rs b/zellij-utils/src/data.rs index 54c056e3..1a3c9881 100644 --- a/zellij-utils/src/data.rs +++ b/zellij-utils/src/data.rs @@ -942,7 +942,7 @@ pub enum Permission { WebAccess, ReadCliPipes, MessageAndLaunchOtherPlugins, - RebindKeys, + Reconfigure, } impl PermissionType { @@ -963,7 +963,7 @@ impl PermissionType { PermissionType::MessageAndLaunchOtherPlugins => { "Send messages to and launch other plugins".to_owned() }, - PermissionType::RebindKeys => "Rebind keys".to_owned(), + PermissionType::Reconfigure => "Change Zellij runtime configuration".to_owned(), } } } @@ -1164,6 +1164,9 @@ impl ModeInfo { pub fn update_keybinds(&mut self, keybinds: Keybinds) { self.keybinds = keybinds.to_keybinds_vec(); } + pub fn update_default_mode(&mut self, new_default_mode: InputMode) { + self.base_mode = Some(new_default_mode); + } } #[derive(Debug, Default, Clone, PartialEq, Eq, Deserialize, Serialize)] @@ -1767,5 +1770,5 @@ pub enum PluginCommand { DumpSessionLayout, CloseSelf, NewTabsWithLayoutInfo(LayoutInfo), - RebindKeys(String), // String -> stringified keybindings + Reconfigure(String), // String -> stringified configuration } diff --git a/zellij-utils/src/errors.rs b/zellij-utils/src/errors.rs index 3656d8ad..8700dd15 100644 --- a/zellij-utils/src/errors.rs +++ b/zellij-utils/src/errors.rs @@ -353,7 +353,7 @@ pub enum ScreenContext { RenameSession, DumpLayoutToPlugin, ListClientsMetadata, - RebindKeys, + Reconfigure, } /// Stack call representations corresponding to the different types of [`PtyInstruction`]s. @@ -409,6 +409,7 @@ pub enum PluginContext { KeybindPipe, DumpLayoutToPlugin, ListClientsMetadata, + Reconfigure, } /// Stack call representations corresponding to the different types of [`ClientInstruction`]s. @@ -457,7 +458,7 @@ pub enum ServerContext { DisconnectAllClientsExcept, ChangeMode, ChangeModeForAllClients, - RebindKeys, + Reconfigure, } #[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)] diff --git a/zellij-utils/src/input/actions.rs b/zellij-utils/src/input/actions.rs index 5d6d99de..32a8a828 100644 --- a/zellij-utils/src/input/actions.rs +++ b/zellij-utils/src/input/actions.rs @@ -712,16 +712,6 @@ impl Action { pub fn launches_plugin(&self, plugin_url: &str) -> bool { match self { Action::LaunchPlugin(run_plugin_or_alias, ..) => { - log::info!( - "1: {:?} == {:?}", - run_plugin_or_alias.location_string(), - plugin_url - ); - eprintln!( - "1: {:?} == {:?}", - run_plugin_or_alias.location_string(), - plugin_url - ); &run_plugin_or_alias.location_string() == plugin_url }, Action::LaunchOrFocusPlugin(run_plugin_or_alias, ..) => { diff --git a/zellij-utils/src/input/mod.rs b/zellij-utils/src/input/mod.rs index dd17ac8c..296b5313 100644 --- a/zellij-utils/src/input/mod.rs +++ b/zellij-utils/src/input/mod.rs @@ -33,9 +33,10 @@ mod not_wasm { mode: InputMode, attributes: &ClientAttributes, capabilities: PluginCapabilities, + keybinds: &Keybinds, base_mode: Option, ) -> ModeInfo { - let keybinds = attributes.keybinds.to_keybinds_vec(); + let keybinds = keybinds.to_keybinds_vec(); let session_name = envs::get_session_name().ok(); ModeInfo { diff --git a/zellij-utils/src/input/plugins.rs b/zellij-utils/src/input/plugins.rs index ec68bd59..5a2ac645 100644 --- a/zellij-utils/src/input/plugins.rs +++ b/zellij-utils/src/input/plugins.rs @@ -65,6 +65,7 @@ impl PluginConfig { || tag == "compact-bar" || tag == "strider" || tag == "session-manager" + || tag == "configuration" { Some(PluginConfig { path: PathBuf::from(&tag), diff --git a/zellij-utils/src/kdl/mod.rs b/zellij-utils/src/kdl/mod.rs index a69b6b02..02ef0ab8 100644 --- a/zellij-utils/src/kdl/mod.rs +++ b/zellij-utils/src/kdl/mod.rs @@ -1649,6 +1649,10 @@ impl Options { support_kitty_keyboard_protocol, }) } + pub fn from_string(stringified_keybindings: &String) -> Result { + let document: KdlDocument = stringified_keybindings.parse()?; + Options::from_kdl(&document) + } } impl Layout { diff --git a/zellij-utils/src/plugin_api/plugin_command.proto b/zellij-utils/src/plugin_api/plugin_command.proto index 14ab3045..5442909e 100644 --- a/zellij-utils/src/plugin_api/plugin_command.proto +++ b/zellij-utils/src/plugin_api/plugin_command.proto @@ -98,7 +98,7 @@ enum CommandName { DumpSessionLayout = 84; CloseSelf = 85; NewTabsWithLayoutInfo = 86; - RebindKeys = 87; + Reconfigure = 87; } message PluginCommand { @@ -156,7 +156,7 @@ message PluginCommand { KillSessionsPayload kill_sessions_payload = 60; string scan_host_folder_payload = 61; NewTabsWithLayoutInfoPayload new_tabs_with_layout_info_payload = 62; - string rebind_keys_payload = 63; + string reconfigure_payload = 63; } } diff --git a/zellij-utils/src/plugin_api/plugin_command.rs b/zellij-utils/src/plugin_api/plugin_command.rs index aeafc1d4..a6514b1b 100644 --- a/zellij-utils/src/plugin_api/plugin_command.rs +++ b/zellij-utils/src/plugin_api/plugin_command.rs @@ -888,11 +888,11 @@ impl TryFrom for PluginCommand { }, _ => Err("Mismatched payload for NewTabsWithLayoutInfo"), }, - Some(CommandName::RebindKeys) => match protobuf_plugin_command.payload { - Some(Payload::RebindKeysPayload(rebind_keys_payload)) => { - Ok(PluginCommand::RebindKeys(rebind_keys_payload)) + Some(CommandName::Reconfigure) => match protobuf_plugin_command.payload { + Some(Payload::ReconfigurePayload(reconfigure_payload)) => { + Ok(PluginCommand::Reconfigure(reconfigure_payload)) }, - _ => Err("Mismatched payload for RebindKeys"), + _ => Err("Mismatched payload for Reconfigure"), }, None => Err("Unrecognized plugin command"), } @@ -1426,9 +1426,9 @@ impl TryFrom for ProtobufPluginCommand { )), }) }, - PluginCommand::RebindKeys(rebind_keys_payload) => Ok(ProtobufPluginCommand { - name: CommandName::RebindKeys as i32, - payload: Some(Payload::RebindKeysPayload(rebind_keys_payload)), + PluginCommand::Reconfigure(reconfigure_payload) => Ok(ProtobufPluginCommand { + name: CommandName::Reconfigure as i32, + payload: Some(Payload::ReconfigurePayload(reconfigure_payload)), }), } } diff --git a/zellij-utils/src/plugin_api/plugin_permission.proto b/zellij-utils/src/plugin_api/plugin_permission.proto index cc1fda6a..399ebba5 100644 --- a/zellij-utils/src/plugin_api/plugin_permission.proto +++ b/zellij-utils/src/plugin_api/plugin_permission.proto @@ -12,5 +12,5 @@ enum PermissionType { WebAccess = 6; ReadCliPipes = 7; MessageAndLaunchOtherPlugins = 8; - RebindKeys = 9; + Reconfigure = 9; } diff --git a/zellij-utils/src/plugin_api/plugin_permission.rs b/zellij-utils/src/plugin_api/plugin_permission.rs index 968de917..5ea70157 100644 --- a/zellij-utils/src/plugin_api/plugin_permission.rs +++ b/zellij-utils/src/plugin_api/plugin_permission.rs @@ -24,7 +24,7 @@ impl TryFrom for PermissionType { ProtobufPermissionType::MessageAndLaunchOtherPlugins => { Ok(PermissionType::MessageAndLaunchOtherPlugins) }, - ProtobufPermissionType::RebindKeys => Ok(PermissionType::RebindKeys), + ProtobufPermissionType::Reconfigure => Ok(PermissionType::Reconfigure), } } } @@ -50,7 +50,7 @@ impl TryFrom for ProtobufPermissionType { PermissionType::MessageAndLaunchOtherPlugins => { Ok(ProtobufPermissionType::MessageAndLaunchOtherPlugins) }, - PermissionType::RebindKeys => Ok(ProtobufPermissionType::RebindKeys), + PermissionType::Reconfigure => Ok(ProtobufPermissionType::Reconfigure), } } } diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap index 09e02f71..0f919210 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap @@ -1,6 +1,6 @@ --- source: zellij-utils/src/setup.rs -assertion_line: 725 +assertion_line: 753 expression: "format!(\"{:#?}\", config)" --- Config { @@ -117,6 +117,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -552,6 +562,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -997,6 +1017,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -1590,6 +1620,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2066,6 +2106,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2441,6 +2491,16 @@ Config { Scroll, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2824,6 +2884,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3224,6 +3294,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3545,6 +3625,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3854,6 +3944,34 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'c', + ), + key_modifiers: {}, + }: [ + LaunchOrFocusPlugin( + Alias( + PluginAlias { + name: "configuration", + configuration: Some( + PluginUserConfiguration( + {}, + ), + ), + initial_cwd: None, + run_plugin: None, + }, + ), + true, + true, + false, + false, + ), + SwitchToMode( + Normal, + ), + ], KeyWithModifier { bare_key: Char( 'd', @@ -3862,6 +3980,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4238,6 +4366,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4620,6 +4758,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5064,6 +5212,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5409,6 +5567,18 @@ Config { ), initial_cwd: None, }, + "configuration": RunPlugin { + _allow_exec_host_cmd: false, + location: Zellij( + PluginTag( + "configuration", + ), + ), + configuration: PluginUserConfiguration( + {}, + ), + initial_cwd: None, + }, "filepicker": RunPlugin { _allow_exec_host_cmd: false, location: Zellij( diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap index 6a4cb7f9..04174c5f 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap @@ -1,6 +1,6 @@ --- source: zellij-utils/src/setup.rs -assertion_line: 783 +assertion_line: 811 expression: "format!(\"{:#?}\", config)" --- Config { @@ -117,6 +117,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -552,6 +562,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -997,6 +1017,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -1590,6 +1620,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2066,6 +2106,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2441,6 +2491,16 @@ Config { Scroll, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2824,6 +2884,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3224,6 +3294,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3545,6 +3625,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3854,6 +3944,34 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'c', + ), + key_modifiers: {}, + }: [ + LaunchOrFocusPlugin( + Alias( + PluginAlias { + name: "configuration", + configuration: Some( + PluginUserConfiguration( + {}, + ), + ), + initial_cwd: None, + run_plugin: None, + }, + ), + true, + true, + false, + false, + ), + SwitchToMode( + Normal, + ), + ], KeyWithModifier { bare_key: Char( 'd', @@ -3862,6 +3980,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4238,6 +4366,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4620,6 +4758,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5064,6 +5212,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5409,6 +5567,18 @@ Config { ), initial_cwd: None, }, + "configuration": RunPlugin { + _allow_exec_host_cmd: false, + location: Zellij( + PluginTag( + "configuration", + ), + ), + configuration: PluginUserConfiguration( + {}, + ), + initial_cwd: None, + }, "filepicker": RunPlugin { _allow_exec_host_cmd: false, location: Zellij( diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_keybinds_override_config_keybinds.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_keybinds_override_config_keybinds.snap index d533e426..028feefe 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_keybinds_override_config_keybinds.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_keybinds_override_config_keybinds.snap @@ -1,6 +1,6 @@ --- source: zellij-utils/src/setup.rs -assertion_line: 825 +assertion_line: 853 expression: "format!(\"{:#?}\", config)" --- Config { @@ -134,6 +134,18 @@ Config { ), initial_cwd: None, }, + "configuration": RunPlugin { + _allow_exec_host_cmd: false, + location: Zellij( + PluginTag( + "configuration", + ), + ), + configuration: PluginUserConfiguration( + {}, + ), + initial_cwd: None, + }, "filepicker": RunPlugin { _allow_exec_host_cmd: false, location: Zellij( diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap index 2cb867e7..ef40f8c5 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap @@ -1,6 +1,6 @@ --- source: zellij-utils/src/setup.rs -assertion_line: 811 +assertion_line: 839 expression: "format!(\"{:#?}\", config)" --- Config { @@ -117,6 +117,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -552,6 +562,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -997,6 +1017,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -1590,6 +1620,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2066,6 +2106,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2441,6 +2491,16 @@ Config { Scroll, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2824,6 +2884,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3224,6 +3294,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3545,6 +3625,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3854,6 +3944,34 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'c', + ), + key_modifiers: {}, + }: [ + LaunchOrFocusPlugin( + Alias( + PluginAlias { + name: "configuration", + configuration: Some( + PluginUserConfiguration( + {}, + ), + ), + initial_cwd: None, + run_plugin: None, + }, + ), + true, + true, + false, + false, + ), + SwitchToMode( + Normal, + ), + ], KeyWithModifier { bare_key: Char( 'd', @@ -3862,6 +3980,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4238,6 +4366,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4620,6 +4758,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5064,6 +5212,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5713,6 +5871,18 @@ Config { ), initial_cwd: None, }, + "configuration": RunPlugin { + _allow_exec_host_cmd: false, + location: Zellij( + PluginTag( + "configuration", + ), + ), + configuration: PluginUserConfiguration( + {}, + ), + initial_cwd: None, + }, "filepicker": RunPlugin { _allow_exec_host_cmd: false, location: Zellij( diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap index 808e9cfb..795d0cf9 100644 --- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap +++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap @@ -1,6 +1,6 @@ --- source: zellij-utils/src/setup.rs -assertion_line: 797 +assertion_line: 825 expression: "format!(\"{:#?}\", config)" --- Config { @@ -117,6 +117,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -552,6 +562,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -997,6 +1017,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -1590,6 +1620,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2066,6 +2106,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2441,6 +2491,16 @@ Config { Scroll, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -2824,6 +2884,16 @@ Config { }: [ PageScrollDown, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3224,6 +3294,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3545,6 +3625,16 @@ Config { Normal, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -3854,6 +3944,34 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'c', + ), + key_modifiers: {}, + }: [ + LaunchOrFocusPlugin( + Alias( + PluginAlias { + name: "configuration", + configuration: Some( + PluginUserConfiguration( + {}, + ), + ), + initial_cwd: None, + run_plugin: None, + }, + ), + true, + true, + false, + false, + ), + SwitchToMode( + Normal, + ), + ], KeyWithModifier { bare_key: Char( 'd', @@ -3862,6 +3980,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4238,6 +4366,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -4620,6 +4758,16 @@ Config { Tmux, ), ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5064,6 +5212,16 @@ Config { }: [ Detach, ], + KeyWithModifier { + bare_key: Char( + 'f', + ), + key_modifiers: { + Alt, + }, + }: [ + ToggleFloatingPanes, + ], KeyWithModifier { bare_key: Char( 'g', @@ -5409,6 +5567,18 @@ Config { ), initial_cwd: None, }, + "configuration": RunPlugin { + _allow_exec_host_cmd: false, + location: Zellij( + PluginTag( + "configuration", + ), + ), + configuration: PluginUserConfiguration( + {}, + ), + initial_cwd: None, + }, "filepicker": RunPlugin { _allow_exec_host_cmd: false, location: Zellij(