mirror of
https://github.com/wez/wezterm.git
synced 2024-09-21 11:50:42 +03:00
palette: add icons for a number of entries
refs: https://github.com/wez/wezterm/issues/1485
This commit is contained in:
parent
b2e694032f
commit
378853f5a5
@ -64,6 +64,7 @@ pub struct CommandDef {
|
||||
pub args: &'static [ArgType],
|
||||
/// Where to place the command in a menubar
|
||||
pub menubar: &'static [&'static str],
|
||||
pub icon: Option<&'static str>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
@ -73,6 +74,7 @@ pub struct ExpandedCommand {
|
||||
pub action: KeyAssignment,
|
||||
pub keys: Vec<(Modifiers, KeyCode)>,
|
||||
pub menubar: &'static [&'static str],
|
||||
pub icon: Option<&'static str>,
|
||||
}
|
||||
|
||||
impl std::fmt::Debug for CommandDef {
|
||||
@ -175,6 +177,7 @@ impl CommandDef {
|
||||
keys,
|
||||
action,
|
||||
menubar: def.menubar,
|
||||
icon: def.icon,
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -211,6 +214,7 @@ impl CommandDef {
|
||||
keys: vec![],
|
||||
action: KeyAssignment::SpawnCommandInNewTab(cmd.clone()),
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_tab_plus"),
|
||||
});
|
||||
}
|
||||
|
||||
@ -245,6 +249,7 @@ impl CommandDef {
|
||||
..SpawnCommand::default()
|
||||
}),
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_tab_plus"),
|
||||
});
|
||||
} else {
|
||||
result.push(ExpandedCommand {
|
||||
@ -253,6 +258,7 @@ impl CommandDef {
|
||||
keys: vec![],
|
||||
action: KeyAssignment::AttachDomain(name.to_string()),
|
||||
menubar: &["Shell", "Attach"],
|
||||
icon: Some("mdi_pipe"),
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -274,6 +280,7 @@ impl CommandDef {
|
||||
name.to_string(),
|
||||
)),
|
||||
menubar: &["Shell", "Detach"],
|
||||
icon: Some("mdi_pipe_disconnected"),
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -290,6 +297,7 @@ impl CommandDef {
|
||||
spawn: None,
|
||||
},
|
||||
menubar: &["Window", "Workspace"],
|
||||
icon: None,
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -302,6 +310,7 @@ impl CommandDef {
|
||||
spawn: None,
|
||||
},
|
||||
menubar: &["Window", "Workspace"],
|
||||
icon: None,
|
||||
});
|
||||
}
|
||||
|
||||
@ -322,6 +331,7 @@ impl CommandDef {
|
||||
keys: vec![],
|
||||
action: entry.action.clone(),
|
||||
menubar: cmd.menubar,
|
||||
icon: cmd.icon,
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -341,6 +351,7 @@ impl CommandDef {
|
||||
keys: vec![],
|
||||
action: entry.action.clone(),
|
||||
menubar: cmd.menubar,
|
||||
icon: cmd.icon,
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -582,6 +593,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SHIFT, "Insert".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("mdi_content_paste"),
|
||||
},
|
||||
CopyTo(ClipboardCopyDestination::PrimarySelection) => CommandDef {
|
||||
brief: "Copy to primary selection".into(),
|
||||
@ -589,6 +601,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL, "Insert".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("mdi_content_copy"),
|
||||
},
|
||||
CopyTo(ClipboardCopyDestination::Clipboard) => CommandDef {
|
||||
brief: "Copy to clipboard".into(),
|
||||
@ -599,6 +612,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("mdi_content_copy"),
|
||||
},
|
||||
CopyTo(ClipboardCopyDestination::ClipboardAndPrimarySelection) => CommandDef {
|
||||
brief: "Copy to clipboard and primary selection".into(),
|
||||
@ -606,6 +620,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL, "Insert".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("mdi_content_copy"),
|
||||
},
|
||||
PasteFrom(ClipboardPasteSource::Clipboard) => CommandDef {
|
||||
brief: "Paste from clipboard".into(),
|
||||
@ -616,6 +631,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("mdi_content_paste"),
|
||||
},
|
||||
ToggleFullScreen => CommandDef {
|
||||
brief: "Toggle full screen mode".into(),
|
||||
@ -623,6 +639,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::ALT, "Return".into())],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["View"],
|
||||
icon: Some("mdi_fullscreen"),
|
||||
},
|
||||
Hide => CommandDef {
|
||||
brief: "Hide/Minimize Window".into(),
|
||||
@ -630,6 +647,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "m".into())],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Window"],
|
||||
icon: Some("mdi_window_minimize"),
|
||||
},
|
||||
Show => CommandDef {
|
||||
brief: "Show/Restore Window".into(),
|
||||
@ -637,6 +655,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_window_restore"),
|
||||
},
|
||||
HideApplication => CommandDef {
|
||||
brief: "Hide Application".into(),
|
||||
@ -646,6 +665,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "h".into())],
|
||||
args: &[],
|
||||
menubar: &["WezTerm"],
|
||||
icon: None,
|
||||
},
|
||||
SpawnWindow => CommandDef {
|
||||
brief: "New Window".into(),
|
||||
@ -653,6 +673,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "n".into())],
|
||||
args: &[],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("cod_empty_window"),
|
||||
},
|
||||
ClearScrollback(ScrollbackEraseMode::ScrollbackOnly) => CommandDef {
|
||||
brief: "Clear scrollback".into(),
|
||||
@ -662,6 +683,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "k".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("cod_clear_all"),
|
||||
},
|
||||
ClearScrollback(ScrollbackEraseMode::ScrollbackAndViewport) => CommandDef {
|
||||
brief: "Clear the scrollback and viewport".into(),
|
||||
@ -669,6 +691,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("cod_clear_all"),
|
||||
},
|
||||
Search(Pattern::CurrentSelectionOrEmptyString) => CommandDef {
|
||||
brief: "Search pane output".into(),
|
||||
@ -676,6 +699,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "f".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("oct_search"),
|
||||
},
|
||||
Search(_) => CommandDef {
|
||||
brief: "Search pane output".into(),
|
||||
@ -683,6 +707,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: Some("oct_search"),
|
||||
},
|
||||
ShowDebugOverlay => CommandDef {
|
||||
brief: "Show debug overlay".into(),
|
||||
@ -690,6 +715,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "l".into())],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Help"],
|
||||
icon: Some("cod_debug"),
|
||||
},
|
||||
QuickSelect => CommandDef {
|
||||
brief: "Enter QuickSelect mode".into(),
|
||||
@ -697,6 +723,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "Space".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: None,
|
||||
},
|
||||
QuickSelectArgs(_) => CommandDef {
|
||||
brief: "Enter QuickSelect mode".into(),
|
||||
@ -704,6 +731,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
CharSelect(_) => CommandDef {
|
||||
brief: "Enter Emoji / Character selection mode".into(),
|
||||
@ -711,6 +739,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "u".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("mdi_sticker_emoji"),
|
||||
},
|
||||
PaneSelect(_) => CommandDef {
|
||||
brief: "Enter Pane selection mode".into(),
|
||||
@ -718,6 +747,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![], // FIXME: find a new assignment
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window"],
|
||||
icon: Some("cod_multiple_windows"),
|
||||
},
|
||||
DecreaseFontSize => CommandDef {
|
||||
brief: "Decrease font size".into(),
|
||||
@ -728,6 +758,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["View", "Font Size"],
|
||||
icon: Some("mdi_format_size"),
|
||||
},
|
||||
IncreaseFontSize => CommandDef {
|
||||
brief: "Increase font size".into(),
|
||||
@ -738,6 +769,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["View", "Font Size"],
|
||||
icon: Some("mdi_format_size"),
|
||||
},
|
||||
ResetFontSize => CommandDef {
|
||||
brief: "Reset font size".into(),
|
||||
@ -748,6 +780,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["View", "Font Size"],
|
||||
icon: Some("mdi_format_size"),
|
||||
},
|
||||
ResetFontAndWindowSize => CommandDef {
|
||||
brief: "Reset the window and font size".into(),
|
||||
@ -755,6 +788,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["View", "Font Size"],
|
||||
icon: Some("mdi_format_size"),
|
||||
},
|
||||
SpawnTab(SpawnTabDomain::CurrentPaneDomain) => CommandDef {
|
||||
brief: "New Tab".into(),
|
||||
@ -762,6 +796,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "t".into())],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_tab_plus"),
|
||||
},
|
||||
SpawnTab(SpawnTabDomain::DefaultDomain) => CommandDef {
|
||||
brief: "New Tab (Default Domain)".into(),
|
||||
@ -769,6 +804,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_tab_plus"),
|
||||
},
|
||||
SpawnTab(SpawnTabDomain::DomainName(name)) => CommandDef {
|
||||
brief: format!("New Tab (`{name}` Domain)").into(),
|
||||
@ -776,6 +812,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_tab_plus"),
|
||||
},
|
||||
SpawnTab(SpawnTabDomain::DomainId(id)) => CommandDef {
|
||||
brief: format!("New Tab (Domain with id {id})").into(),
|
||||
@ -783,6 +820,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_tab_plus"),
|
||||
},
|
||||
SpawnCommandInNewTab(cmd) => CommandDef {
|
||||
brief: format!("Spawn a new Tab with {cmd:?}").into(),
|
||||
@ -790,6 +828,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_tab_plus"),
|
||||
},
|
||||
SpawnCommandInNewWindow(cmd) => CommandDef {
|
||||
brief: format!("Spawn a new Window with {cmd:?}").into(),
|
||||
@ -797,6 +836,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_open_in_new"),
|
||||
},
|
||||
ActivateTab(-1) => CommandDef {
|
||||
brief: "Activate right-most tab".into(),
|
||||
@ -804,6 +844,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "9".into())],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Window", "Select Tab"],
|
||||
icon: None,
|
||||
},
|
||||
ActivateTab(n) => {
|
||||
let n = *n;
|
||||
@ -819,6 +860,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys,
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Window", "Select Tab"],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
ActivatePaneByIndex(n) => {
|
||||
@ -830,6 +872,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
SetPaneZoomState(true) => CommandDef {
|
||||
@ -842,6 +885,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_fullscreen"),
|
||||
},
|
||||
SetPaneZoomState(false) => CommandDef {
|
||||
brief: format!("Un-Zooms the current Pane").into(),
|
||||
@ -849,6 +893,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_fullscreen"),
|
||||
},
|
||||
EmitEvent(name) => CommandDef {
|
||||
brief: format!("Emit event `{name}`").into(),
|
||||
@ -860,6 +905,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
CloseCurrentTab { confirm: true } => CommandDef {
|
||||
brief: "Close current Tab".into(),
|
||||
@ -869,6 +915,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "w".into())],
|
||||
args: &[ArgType::ActiveTab],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_close_box_outline"),
|
||||
},
|
||||
CloseCurrentTab { confirm: false } => CommandDef {
|
||||
brief: "Close current Tab".into(),
|
||||
@ -878,6 +925,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveTab],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_close_box_outline"),
|
||||
},
|
||||
CloseCurrentPane { confirm: true } => CommandDef {
|
||||
brief: "Close current Pane".into(),
|
||||
@ -887,6 +935,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("mdi_close_box_outline"),
|
||||
},
|
||||
CloseCurrentPane { confirm: false } => CommandDef {
|
||||
brief: "Close current Pane".into(),
|
||||
@ -896,6 +945,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_close_box_outline"),
|
||||
},
|
||||
ActivateTabRelative(-1) => CommandDef {
|
||||
brief: "Activate the tab to the left".into(),
|
||||
@ -909,6 +959,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Window", "Select Tab"],
|
||||
icon: None,
|
||||
},
|
||||
ActivateTabRelative(1) => CommandDef {
|
||||
brief: "Activate the tab to the right".into(),
|
||||
@ -922,6 +973,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Window", "Select Tab"],
|
||||
icon: None,
|
||||
},
|
||||
ActivateTabRelative(n) => {
|
||||
let (direction, amount) = if *n < 0 { ("left", -n) } else { ("right", *n) };
|
||||
@ -936,6 +988,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
ActivateTabRelativeNoWrap(-1) => CommandDef {
|
||||
@ -944,6 +997,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
ActivateTabRelativeNoWrap(1) => CommandDef {
|
||||
brief: "Activate the tab to the right (no wrapping)".into(),
|
||||
@ -951,6 +1005,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
ActivateTabRelativeNoWrap(n) => {
|
||||
let (direction, amount) = if *n < 0 { ("left", -n) } else { ("right", *n) };
|
||||
@ -961,6 +1016,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
ReloadConfiguration => CommandDef {
|
||||
@ -969,6 +1025,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "r".into())],
|
||||
args: &[],
|
||||
menubar: &["WezTerm"],
|
||||
icon: Some("mdi_reload"),
|
||||
},
|
||||
QuitApplication => CommandDef {
|
||||
brief: "Quit WezTerm".into(),
|
||||
@ -976,6 +1033,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SUPER, "q".into())],
|
||||
args: &[],
|
||||
menubar: &["WezTerm"],
|
||||
icon: Some("oct_stop"),
|
||||
},
|
||||
MoveTabRelative(-1) => CommandDef {
|
||||
brief: "Move tab one place to the left".into(),
|
||||
@ -985,6 +1043,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "PageUp".into())],
|
||||
args: &[ArgType::ActiveTab],
|
||||
menubar: &["Window", "Move Tab"],
|
||||
icon: Some("fa_long_arrow_left"),
|
||||
},
|
||||
MoveTabRelative(1) => CommandDef {
|
||||
brief: "Move tab one place to the right".into(),
|
||||
@ -994,12 +1053,13 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "PageDown".into())],
|
||||
args: &[ArgType::ActiveTab],
|
||||
menubar: &["Window", "Move Tab"],
|
||||
icon: Some("fa_long_arrow_right"),
|
||||
},
|
||||
MoveTabRelative(n) => {
|
||||
let (direction, amount) = if *n < 0 {
|
||||
("left", (-n).to_string())
|
||||
let (direction, amount, icon) = if *n < 0 {
|
||||
("left", (-n).to_string(), "mdi_chevron_double_left")
|
||||
} else {
|
||||
("right", n.to_string())
|
||||
("right", n.to_string(), "mdi_chevron_double_right")
|
||||
};
|
||||
|
||||
CommandDef {
|
||||
@ -1012,6 +1072,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveTab],
|
||||
menubar: &[],
|
||||
icon: Some(icon),
|
||||
}
|
||||
}
|
||||
MoveTab(n) => {
|
||||
@ -1026,6 +1087,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveTab],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
ScrollByPage(amount) => {
|
||||
@ -1037,6 +1099,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SHIFT, "PageUp".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["View"],
|
||||
icon: None,
|
||||
}
|
||||
} else if amount == 1.0 {
|
||||
CommandDef {
|
||||
@ -1045,6 +1108,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::SHIFT, "PageDown".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["View"],
|
||||
icon: None,
|
||||
}
|
||||
} else if amount < 0.0 {
|
||||
let amount = -amount;
|
||||
@ -1054,6 +1118,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["View"],
|
||||
icon: None,
|
||||
}
|
||||
} else {
|
||||
CommandDef {
|
||||
@ -1062,6 +1127,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["View"],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1081,6 +1147,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
ScrollToPrompt(n) => {
|
||||
@ -1096,6 +1163,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: Some("oct_terminal"),
|
||||
}
|
||||
}
|
||||
ScrollByCurrentEventWheelDelta => CommandDef {
|
||||
@ -1108,6 +1176,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
ScrollToBottom => CommandDef {
|
||||
brief: "Scroll to the bottom".into(),
|
||||
@ -1115,6 +1184,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["View"],
|
||||
icon: Some("mdi_format_align_bottom"),
|
||||
},
|
||||
ScrollToTop => CommandDef {
|
||||
brief: "Scroll to the top".into(),
|
||||
@ -1122,6 +1192,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["View"],
|
||||
icon: Some("mdi_format_align_top"),
|
||||
},
|
||||
ActivateCopyMode => CommandDef {
|
||||
brief: "Activate Copy Mode".into(),
|
||||
@ -1131,6 +1202,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "x".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: Some("mdi_content_copy"),
|
||||
},
|
||||
SplitVertical(SpawnCommand {
|
||||
domain: SpawnTabDomain::CurrentPaneDomain,
|
||||
@ -1148,6 +1220,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
)],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("cod_split_vertical"),
|
||||
},
|
||||
SplitHorizontal(SpawnCommand {
|
||||
domain: SpawnTabDomain::CurrentPaneDomain,
|
||||
@ -1165,6 +1238,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
)],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell"],
|
||||
icon: Some("cod_split_horizontal"),
|
||||
},
|
||||
SplitHorizontal(_) => CommandDef {
|
||||
brief: "Split Horizontally (Left/Right)".into(),
|
||||
@ -1174,6 +1248,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: Some("cod_split_horizontal"),
|
||||
},
|
||||
SplitVertical(_) => CommandDef {
|
||||
brief: "Split Vertically (Top/Bottom)".into(),
|
||||
@ -1183,6 +1258,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: Some("cod_split_vertical"),
|
||||
},
|
||||
AdjustPaneSize(PaneDirection::Left, amount) => CommandDef {
|
||||
brief: format!("Resize Pane {amount} cells to the Left").into(),
|
||||
@ -1195,6 +1271,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
)],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Resize Pane"],
|
||||
icon: None,
|
||||
},
|
||||
AdjustPaneSize(PaneDirection::Right, amount) => CommandDef {
|
||||
brief: format!("Resize Pane {amount} cells to the Right").into(),
|
||||
@ -1207,6 +1284,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
)],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Resize Pane"],
|
||||
icon: None,
|
||||
},
|
||||
AdjustPaneSize(PaneDirection::Up, amount) => CommandDef {
|
||||
brief: format!("Resize Pane {amount} cells Upwards").into(),
|
||||
@ -1219,6 +1297,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
)],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Resize Pane"],
|
||||
icon: None,
|
||||
},
|
||||
AdjustPaneSize(PaneDirection::Down, amount) => CommandDef {
|
||||
brief: format!("Resize Pane {amount} cells Downwards").into(),
|
||||
@ -1231,6 +1310,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
)],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Resize Pane"],
|
||||
icon: None,
|
||||
},
|
||||
AdjustPaneSize(PaneDirection::Next | PaneDirection::Prev, _) => return None,
|
||||
ActivatePaneDirection(PaneDirection::Next | PaneDirection::Prev) => return None,
|
||||
@ -1240,6 +1320,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "LeftArrow".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Select Pane"],
|
||||
icon: Some("fa_long_arrow_left"),
|
||||
},
|
||||
ActivatePaneDirection(PaneDirection::Right) => CommandDef {
|
||||
brief: "Activate Pane Right".into(),
|
||||
@ -1247,6 +1328,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "RightArrow".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Select Pane"],
|
||||
icon: Some("fa_long_arrow_right"),
|
||||
},
|
||||
ActivatePaneDirection(PaneDirection::Up) => CommandDef {
|
||||
brief: "Activate Pane Up".into(),
|
||||
@ -1254,6 +1336,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "UpArrow".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Select Pane"],
|
||||
icon: Some("fa_long_arrow_up"),
|
||||
},
|
||||
ActivatePaneDirection(PaneDirection::Down) => CommandDef {
|
||||
brief: "Activate Pane Down".into(),
|
||||
@ -1261,6 +1344,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "DownArrow".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Select Pane"],
|
||||
icon: Some("fa_long_arrow_down"),
|
||||
},
|
||||
TogglePaneZoomState => CommandDef {
|
||||
brief: "Toggle Pane Zoom".into(),
|
||||
@ -1268,6 +1352,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "z".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window"],
|
||||
icon: Some("mdi_fullscreen"),
|
||||
},
|
||||
ActivateLastTab => CommandDef {
|
||||
brief: "Activate the last active tab".into(),
|
||||
@ -1275,6 +1360,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Window", "Select Tab"],
|
||||
icon: None,
|
||||
},
|
||||
ClearKeyTableStack => CommandDef {
|
||||
brief: "Clear the key table stack".into(),
|
||||
@ -1282,6 +1368,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Edit"],
|
||||
icon: None,
|
||||
},
|
||||
OpenLinkAtMouseCursor => CommandDef {
|
||||
brief: "Open link at mouse cursor".into(),
|
||||
@ -1289,6 +1376,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell"],
|
||||
icon: None,
|
||||
},
|
||||
ShowLauncherArgs(_) | ShowLauncher => CommandDef {
|
||||
brief: "Show the launcher".into(),
|
||||
@ -1296,6 +1384,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Shell"],
|
||||
icon: None,
|
||||
},
|
||||
ShowTabNavigator => CommandDef {
|
||||
brief: "Navigate tabs".into(),
|
||||
@ -1303,6 +1392,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActiveWindow],
|
||||
menubar: &["Window", "Select Tab"],
|
||||
icon: Some("cod_list_flat"),
|
||||
},
|
||||
DetachDomain(SpawnTabDomain::CurrentPaneDomain) => CommandDef {
|
||||
brief: "Detach the domain of the active pane".into(),
|
||||
@ -1310,6 +1400,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell", "Detach"],
|
||||
icon: Some("mdi_pipe_disconnected"),
|
||||
},
|
||||
DetachDomain(SpawnTabDomain::DefaultDomain) => CommandDef {
|
||||
brief: "Detach the default domain".into(),
|
||||
@ -1317,6 +1408,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell", "Detach"],
|
||||
icon: Some("mdi_pipe_disconnected"),
|
||||
},
|
||||
DetachDomain(SpawnTabDomain::DomainName(name)) => CommandDef {
|
||||
brief: format!("Detach the `{name}` domain").into(),
|
||||
@ -1324,6 +1416,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell", "Detach"],
|
||||
icon: Some("mdi_pipe_disconnected"),
|
||||
},
|
||||
DetachDomain(SpawnTabDomain::DomainId(id)) => CommandDef {
|
||||
brief: format!("Detach the domain with id {id}").into(),
|
||||
@ -1331,6 +1424,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell", "Detach"],
|
||||
icon: Some("mdi_pipe_disconnected"),
|
||||
},
|
||||
OpenUri(uri) => match uri.as_ref() {
|
||||
"https://wezfurlong.org/wezterm/" => CommandDef {
|
||||
@ -1339,6 +1433,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &["Help"],
|
||||
icon: Some("mdi_help"),
|
||||
},
|
||||
"https://github.com/wez/wezterm/discussions/" => CommandDef {
|
||||
brief: "Discuss on GitHub".into(),
|
||||
@ -1346,6 +1441,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &["Help"],
|
||||
icon: Some("oct_comment_discussion"),
|
||||
},
|
||||
"https://github.com/wez/wezterm/issues/" => CommandDef {
|
||||
brief: "Search or report issue on GitHub".into(),
|
||||
@ -1353,6 +1449,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &["Help"],
|
||||
icon: Some("fa_ticket"),
|
||||
},
|
||||
_ => CommandDef {
|
||||
brief: format!("Open {uri} in your browser").into(),
|
||||
@ -1360,6 +1457,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: Some("oct_browser"),
|
||||
},
|
||||
},
|
||||
SendString(text) => CommandDef {
|
||||
@ -1376,6 +1474,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_keyboard_variant"),
|
||||
},
|
||||
SendKey(key) => CommandDef {
|
||||
brief: format!(
|
||||
@ -1391,6 +1490,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_keyboard_variant"),
|
||||
},
|
||||
Nop => CommandDef {
|
||||
brief: "Does nothing".into(),
|
||||
@ -1398,6 +1498,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
DisableDefaultAssignment => return None,
|
||||
SelectTextAtMouseCursor(mode) => CommandDef {
|
||||
@ -1414,6 +1515,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
ExtendSelectionToMouseCursor(mode) => CommandDef {
|
||||
brief: format!(
|
||||
@ -1429,6 +1531,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
ClearSelection => CommandDef {
|
||||
brief: "Clears the selection in the current pane".into(),
|
||||
@ -1436,6 +1539,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
CompleteSelection(destination) => CommandDef {
|
||||
brief: format!("Completes selection, and copy {destination:?}").into(),
|
||||
@ -1447,6 +1551,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
CompleteSelectionOrOpenLinkAtMouseCursor(destination) => CommandDef {
|
||||
brief: format!(
|
||||
@ -1462,6 +1567,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
StartWindowDrag => CommandDef {
|
||||
brief: "Requests a window drag operation from \
|
||||
@ -1473,6 +1579,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &[],
|
||||
icon: Some("mdi_drag"),
|
||||
},
|
||||
Multiple(actions) => {
|
||||
let mut brief = String::new();
|
||||
@ -1495,6 +1602,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
SwitchToWorkspace {
|
||||
@ -1514,6 +1622,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &["Window", "Workspace"],
|
||||
icon: None,
|
||||
},
|
||||
SwitchToWorkspace {
|
||||
name: Some(name),
|
||||
@ -1532,6 +1641,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &["Window", "Workspace"],
|
||||
icon: None,
|
||||
},
|
||||
SwitchToWorkspace {
|
||||
name: Some(name),
|
||||
@ -1550,6 +1660,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &["Window", "Workspace"],
|
||||
icon: None,
|
||||
},
|
||||
SwitchToWorkspace {
|
||||
name: None,
|
||||
@ -1560,6 +1671,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[],
|
||||
menubar: &["Window", "Workspace"],
|
||||
icon: None,
|
||||
},
|
||||
SwitchWorkspaceRelative(n) => {
|
||||
let (direction, amount) = if *n < 0 {
|
||||
@ -1578,6 +1690,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Workspace"],
|
||||
icon: None,
|
||||
}
|
||||
}
|
||||
ActivateKeyTable { name, .. } => CommandDef {
|
||||
@ -1586,6 +1699,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
PopKeyTable => CommandDef {
|
||||
brief: "Pop the current key table".into(),
|
||||
@ -1593,6 +1707,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: None,
|
||||
},
|
||||
AttachDomain(name) => CommandDef {
|
||||
brief: format!("Attach domain `{name}`").into(),
|
||||
@ -1600,6 +1715,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell", "Attach"],
|
||||
icon: Some("mdi_pipe"),
|
||||
},
|
||||
CopyMode(copy_mode) => CommandDef {
|
||||
brief: format!("{copy_mode:?}").into(),
|
||||
@ -1607,6 +1723,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit", "Copy Mode"],
|
||||
icon: None,
|
||||
},
|
||||
RotatePanes(direction) => CommandDef {
|
||||
brief: format!("Rotate panes {direction:?}").into(),
|
||||
@ -1614,6 +1731,10 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Window", "Rotate Pane"],
|
||||
icon: Some(match direction {
|
||||
RotationDirection::Clockwise => "mdi_rotate_right",
|
||||
RotationDirection::CounterClockwise => "mdi_rotate_left",
|
||||
}),
|
||||
},
|
||||
SplitPane(split) => {
|
||||
let direction = split.direction;
|
||||
@ -1623,6 +1744,11 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &[],
|
||||
icon: match split.direction {
|
||||
PaneDirection::Up | PaneDirection::Down => Some("cod_split_vertical"),
|
||||
PaneDirection::Left | PaneDirection::Right => Some("cod_split_horizontal"),
|
||||
PaneDirection::Next | PaneDirection::Prev => None,
|
||||
},
|
||||
}
|
||||
}
|
||||
ResetTerminal => CommandDef {
|
||||
@ -1631,6 +1757,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Shell"],
|
||||
icon: None,
|
||||
},
|
||||
ActivateCommandPalette => CommandDef {
|
||||
brief: "Activate Command Palette".into(),
|
||||
@ -1638,6 +1765,7 @@ pub fn derive_command_from_key_assignment(action: &KeyAssignment) -> Option<Comm
|
||||
keys: vec![(Modifiers::CTRL.union(Modifiers::SHIFT), "p".into())],
|
||||
args: &[ArgType::ActivePane],
|
||||
menubar: &["Edit"],
|
||||
icon: None,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ use std::cell::{Ref, RefCell};
|
||||
use std::cmp::Ordering;
|
||||
use std::collections::HashMap;
|
||||
use std::path::PathBuf;
|
||||
use termwiz::nerdfonts::NERD_FONTS;
|
||||
use wezterm_term::{KeyCode, KeyModifiers, MouseEvent};
|
||||
use window::color::LinearRgba;
|
||||
|
||||
@ -221,6 +222,14 @@ impl CommandPalette {
|
||||
format!("{}: ", command.menubar.join(" | "))
|
||||
};
|
||||
|
||||
let icon = match &command.icon {
|
||||
Some(nf) => NERD_FONTS.get(nf).unwrap_or_else(|| {
|
||||
log::error!("nerdfont {nf} not found in NERD_FONTS");
|
||||
&'?'
|
||||
}),
|
||||
None => &' ',
|
||||
};
|
||||
|
||||
let (bg, text) = if display_idx == selected_row {
|
||||
(
|
||||
term_window
|
||||
@ -255,19 +264,26 @@ impl CommandPalette {
|
||||
};
|
||||
|
||||
elements.push(
|
||||
Element::new(&font, ElementContent::Text(label))
|
||||
.colors(ElementColors {
|
||||
border: BorderColor::default(),
|
||||
bg,
|
||||
text,
|
||||
})
|
||||
.padding(BoxDimension {
|
||||
left: Dimension::Cells(0.25),
|
||||
right: Dimension::Cells(0.25),
|
||||
top: Dimension::Cells(0.),
|
||||
bottom: Dimension::Cells(0.),
|
||||
})
|
||||
.display(DisplayType::Block),
|
||||
Element::new(
|
||||
&font,
|
||||
ElementContent::Children(vec![
|
||||
Element::new(&font, ElementContent::Text(icon.to_string()))
|
||||
.min_width(Some(Dimension::Cells(2.))),
|
||||
Element::new(&font, ElementContent::Text(label)),
|
||||
]),
|
||||
)
|
||||
.colors(ElementColors {
|
||||
border: BorderColor::default(),
|
||||
bg,
|
||||
text,
|
||||
})
|
||||
.padding(BoxDimension {
|
||||
left: Dimension::Cells(0.25),
|
||||
right: Dimension::Cells(0.25),
|
||||
top: Dimension::Cells(0.),
|
||||
bottom: Dimension::Cells(0.),
|
||||
})
|
||||
.display(DisplayType::Block),
|
||||
);
|
||||
}
|
||||
|
||||
@ -331,7 +347,7 @@ impl CommandPalette {
|
||||
let size = term_window.terminal_size;
|
||||
|
||||
// Avoid covering the entire width
|
||||
let desired_width = (size.cols / 3).max(80).min(size.cols);
|
||||
let desired_width = (size.cols / 3).max(75).min(size.cols);
|
||||
|
||||
// Center it
|
||||
let avail_pixel_width =
|
||||
|
Loading…
Reference in New Issue
Block a user