mirror of
https://github.com/wez/wezterm.git
synced 2024-12-24 22:01:47 +03:00
wezterm: add disable_default_(key|mouse)_bindings config
If set to true, then none of the default key or mouse bindings, respectively, will be registered in the GUI, leaving it up to the user to provide all key assignments.
This commit is contained in:
parent
acd016cdd4
commit
9e89a557d4
@ -416,9 +416,13 @@ pub struct Config {
|
|||||||
|
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub keys: Vec<Key>,
|
pub keys: Vec<Key>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub disable_default_key_bindings: bool,
|
||||||
|
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub mouse_bindings: Vec<Mouse>,
|
pub mouse_bindings: Vec<Mouse>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub disable_default_mouse_bindings: bool,
|
||||||
|
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub daemon_options: DaemonOptions,
|
pub daemon_options: DaemonOptions,
|
||||||
|
@ -143,192 +143,196 @@ impl InputMap {
|
|||||||
|
|
||||||
let ctrl_shift = KeyModifiers::CTRL | KeyModifiers::SHIFT;
|
let ctrl_shift = KeyModifiers::CTRL | KeyModifiers::SHIFT;
|
||||||
|
|
||||||
// Apply the default bindings; if the user has already mapped
|
if !config.disable_default_key_bindings {
|
||||||
// a given entry then that will take precedence.
|
// Apply the default bindings; if the user has already mapped
|
||||||
k!(
|
// a given entry then that will take precedence.
|
||||||
// Clipboard
|
k!(
|
||||||
[KeyModifiers::SHIFT, KeyCode::Insert, Paste],
|
// Clipboard
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('c'), Copy],
|
[KeyModifiers::SHIFT, KeyCode::Insert, Paste],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('v'), Paste],
|
[KeyModifiers::SUPER, KeyCode::Char('c'), Copy],
|
||||||
[ctrl_shift, KeyCode::Char('C'), Copy],
|
[KeyModifiers::SUPER, KeyCode::Char('v'), Paste],
|
||||||
[ctrl_shift, KeyCode::Char('V'), Paste],
|
[ctrl_shift, KeyCode::Char('C'), Copy],
|
||||||
// Window management
|
[ctrl_shift, KeyCode::Char('V'), Paste],
|
||||||
[KeyModifiers::ALT, KeyCode::Char('\n'), ToggleFullScreen],
|
// Window management
|
||||||
[KeyModifiers::ALT, KeyCode::Char('\r'), ToggleFullScreen],
|
[KeyModifiers::ALT, KeyCode::Char('\n'), ToggleFullScreen],
|
||||||
[KeyModifiers::ALT, KeyCode::Enter, ToggleFullScreen],
|
[KeyModifiers::ALT, KeyCode::Char('\r'), ToggleFullScreen],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('m'), Hide],
|
[KeyModifiers::ALT, KeyCode::Enter, ToggleFullScreen],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('n'), SpawnWindow],
|
[KeyModifiers::SUPER, KeyCode::Char('m'), Hide],
|
||||||
[ctrl_shift, KeyCode::Char('M'), Hide],
|
[KeyModifiers::SUPER, KeyCode::Char('n'), SpawnWindow],
|
||||||
[ctrl_shift, KeyCode::Char('N'), SpawnWindow],
|
[ctrl_shift, KeyCode::Char('M'), Hide],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('k'), ClearScrollback],
|
[ctrl_shift, KeyCode::Char('N'), SpawnWindow],
|
||||||
[ctrl_shift, KeyCode::Char('K'), ClearScrollback],
|
[KeyModifiers::SUPER, KeyCode::Char('k'), ClearScrollback],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('f'), Search],
|
[ctrl_shift, KeyCode::Char('K'), ClearScrollback],
|
||||||
[ctrl_shift, KeyCode::Char('F'), Search],
|
[KeyModifiers::SUPER, KeyCode::Char('f'), Search],
|
||||||
// Font size manipulation
|
[ctrl_shift, KeyCode::Char('F'), Search],
|
||||||
[KeyModifiers::CTRL, KeyCode::Char('-'), DecreaseFontSize],
|
// Font size manipulation
|
||||||
[KeyModifiers::CTRL, KeyCode::Char('0'), ResetFontSize],
|
[KeyModifiers::CTRL, KeyCode::Char('-'), DecreaseFontSize],
|
||||||
[KeyModifiers::CTRL, KeyCode::Char('='), IncreaseFontSize],
|
[KeyModifiers::CTRL, KeyCode::Char('0'), ResetFontSize],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('-'), DecreaseFontSize],
|
[KeyModifiers::CTRL, KeyCode::Char('='), IncreaseFontSize],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('0'), ResetFontSize],
|
[KeyModifiers::SUPER, KeyCode::Char('-'), DecreaseFontSize],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('='), IncreaseFontSize],
|
[KeyModifiers::SUPER, KeyCode::Char('0'), ResetFontSize],
|
||||||
// Tab navigation and management
|
[KeyModifiers::SUPER, KeyCode::Char('='), IncreaseFontSize],
|
||||||
[
|
// Tab navigation and management
|
||||||
KeyModifiers::SUPER,
|
[
|
||||||
KeyCode::Char('t'),
|
KeyModifiers::SUPER,
|
||||||
SpawnTab(SpawnTabDomain::CurrentTabDomain)
|
KeyCode::Char('t'),
|
||||||
],
|
SpawnTab(SpawnTabDomain::CurrentTabDomain)
|
||||||
[
|
],
|
||||||
ctrl_shift,
|
[
|
||||||
KeyCode::Char('T'),
|
ctrl_shift,
|
||||||
SpawnTab(SpawnTabDomain::CurrentTabDomain)
|
KeyCode::Char('T'),
|
||||||
],
|
SpawnTab(SpawnTabDomain::CurrentTabDomain)
|
||||||
[
|
],
|
||||||
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
[
|
||||||
KeyCode::Char('T'),
|
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
||||||
SpawnTab(SpawnTabDomain::CurrentTabDomain)
|
KeyCode::Char('T'),
|
||||||
],
|
SpawnTab(SpawnTabDomain::CurrentTabDomain)
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('1'), ActivateTab(0)],
|
],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('2'), ActivateTab(1)],
|
[KeyModifiers::SUPER, KeyCode::Char('1'), ActivateTab(0)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('3'), ActivateTab(2)],
|
[KeyModifiers::SUPER, KeyCode::Char('2'), ActivateTab(1)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('4'), ActivateTab(3)],
|
[KeyModifiers::SUPER, KeyCode::Char('3'), ActivateTab(2)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('5'), ActivateTab(4)],
|
[KeyModifiers::SUPER, KeyCode::Char('4'), ActivateTab(3)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('6'), ActivateTab(5)],
|
[KeyModifiers::SUPER, KeyCode::Char('5'), ActivateTab(4)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('7'), ActivateTab(6)],
|
[KeyModifiers::SUPER, KeyCode::Char('6'), ActivateTab(5)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('8'), ActivateTab(7)],
|
[KeyModifiers::SUPER, KeyCode::Char('7'), ActivateTab(6)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('9'), ActivateTab(8)],
|
[KeyModifiers::SUPER, KeyCode::Char('8'), ActivateTab(7)],
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('w'), CloseCurrentTab],
|
[KeyModifiers::SUPER, KeyCode::Char('9'), ActivateTab(8)],
|
||||||
[ctrl_shift, KeyCode::Char('1'), ActivateTab(0)],
|
[KeyModifiers::SUPER, KeyCode::Char('w'), CloseCurrentTab],
|
||||||
[ctrl_shift, KeyCode::Char('2'), ActivateTab(1)],
|
[ctrl_shift, KeyCode::Char('1'), ActivateTab(0)],
|
||||||
[ctrl_shift, KeyCode::Char('3'), ActivateTab(2)],
|
[ctrl_shift, KeyCode::Char('2'), ActivateTab(1)],
|
||||||
[ctrl_shift, KeyCode::Char('4'), ActivateTab(3)],
|
[ctrl_shift, KeyCode::Char('3'), ActivateTab(2)],
|
||||||
[ctrl_shift, KeyCode::Char('5'), ActivateTab(4)],
|
[ctrl_shift, KeyCode::Char('4'), ActivateTab(3)],
|
||||||
[ctrl_shift, KeyCode::Char('6'), ActivateTab(5)],
|
[ctrl_shift, KeyCode::Char('5'), ActivateTab(4)],
|
||||||
[ctrl_shift, KeyCode::Char('7'), ActivateTab(6)],
|
[ctrl_shift, KeyCode::Char('6'), ActivateTab(5)],
|
||||||
[ctrl_shift, KeyCode::Char('8'), ActivateTab(7)],
|
[ctrl_shift, KeyCode::Char('7'), ActivateTab(6)],
|
||||||
[ctrl_shift, KeyCode::Char('9'), ActivateTab(8)],
|
[ctrl_shift, KeyCode::Char('8'), ActivateTab(7)],
|
||||||
[ctrl_shift, KeyCode::Char('W'), CloseCurrentTab],
|
[ctrl_shift, KeyCode::Char('9'), ActivateTab(8)],
|
||||||
[
|
[ctrl_shift, KeyCode::Char('W'), CloseCurrentTab],
|
||||||
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
[
|
||||||
KeyCode::Char('['),
|
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
||||||
ActivateTabRelative(-1)
|
KeyCode::Char('['),
|
||||||
],
|
ActivateTabRelative(-1)
|
||||||
[
|
],
|
||||||
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
[
|
||||||
KeyCode::Char('{'),
|
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
||||||
ActivateTabRelative(-1)
|
KeyCode::Char('{'),
|
||||||
],
|
ActivateTabRelative(-1)
|
||||||
[
|
],
|
||||||
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
[
|
||||||
KeyCode::Char(']'),
|
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
||||||
ActivateTabRelative(1)
|
KeyCode::Char(']'),
|
||||||
],
|
ActivateTabRelative(1)
|
||||||
[
|
],
|
||||||
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
[
|
||||||
KeyCode::Char('}'),
|
KeyModifiers::SUPER | KeyModifiers::SHIFT,
|
||||||
ActivateTabRelative(1)
|
KeyCode::Char('}'),
|
||||||
],
|
ActivateTabRelative(1)
|
||||||
[KeyModifiers::SUPER, KeyCode::Char('r'), ReloadConfiguration],
|
],
|
||||||
[ctrl_shift, KeyCode::Char('R'), ReloadConfiguration],
|
[KeyModifiers::SUPER, KeyCode::Char('r'), ReloadConfiguration],
|
||||||
[ctrl_shift, KeyCode::PageUp, MoveTabRelative(-1)],
|
[ctrl_shift, KeyCode::Char('R'), ReloadConfiguration],
|
||||||
[ctrl_shift, KeyCode::PageDown, MoveTabRelative(1)],
|
[ctrl_shift, KeyCode::PageUp, MoveTabRelative(-1)],
|
||||||
[KeyModifiers::SHIFT, KeyCode::PageUp, ScrollByPage(-1)],
|
[ctrl_shift, KeyCode::PageDown, MoveTabRelative(1)],
|
||||||
[KeyModifiers::SHIFT, KeyCode::PageDown, ScrollByPage(1)],
|
[KeyModifiers::SHIFT, KeyCode::PageUp, ScrollByPage(-1)],
|
||||||
[KeyModifiers::ALT, KeyCode::Char('9'), ShowTabNavigator],
|
[KeyModifiers::SHIFT, KeyCode::PageDown, ScrollByPage(1)],
|
||||||
);
|
[KeyModifiers::ALT, KeyCode::Char('9'), ShowTabNavigator],
|
||||||
|
);
|
||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
k!([KeyModifiers::SUPER, KeyCode::Char('h'), HideApplication],);
|
k!([KeyModifiers::SUPER, KeyCode::Char('h'), HideApplication],);
|
||||||
|
}
|
||||||
|
|
||||||
m!(
|
if !config.disable_default_mouse_bindings {
|
||||||
[
|
m!(
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Down {
|
KeyModifiers::NONE,
|
||||||
streak: 3,
|
MouseEventTrigger::Down {
|
||||||
button: MouseButton::Left
|
streak: 3,
|
||||||
},
|
button: MouseButton::Left
|
||||||
SelectTextAtMouseCursor(SelectionMode::Line)
|
},
|
||||||
],
|
SelectTextAtMouseCursor(SelectionMode::Line)
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Down {
|
KeyModifiers::NONE,
|
||||||
streak: 2,
|
MouseEventTrigger::Down {
|
||||||
button: MouseButton::Left
|
streak: 2,
|
||||||
},
|
button: MouseButton::Left
|
||||||
SelectTextAtMouseCursor(SelectionMode::Word)
|
},
|
||||||
],
|
SelectTextAtMouseCursor(SelectionMode::Word)
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Down {
|
KeyModifiers::NONE,
|
||||||
streak: 1,
|
MouseEventTrigger::Down {
|
||||||
button: MouseButton::Left
|
streak: 1,
|
||||||
},
|
button: MouseButton::Left
|
||||||
SelectTextAtMouseCursor(SelectionMode::Cell)
|
},
|
||||||
],
|
SelectTextAtMouseCursor(SelectionMode::Cell)
|
||||||
[
|
],
|
||||||
KeyModifiers::SHIFT,
|
[
|
||||||
MouseEventTrigger::Down {
|
KeyModifiers::SHIFT,
|
||||||
streak: 1,
|
MouseEventTrigger::Down {
|
||||||
button: MouseButton::Left
|
streak: 1,
|
||||||
},
|
button: MouseButton::Left
|
||||||
ExtendSelectionToMouseCursor(None)
|
},
|
||||||
],
|
ExtendSelectionToMouseCursor(None)
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Up {
|
KeyModifiers::NONE,
|
||||||
streak: 1,
|
MouseEventTrigger::Up {
|
||||||
button: MouseButton::Left
|
streak: 1,
|
||||||
},
|
button: MouseButton::Left
|
||||||
CompleteSelectionOrOpenLinkAtMouseCursor
|
},
|
||||||
],
|
CompleteSelectionOrOpenLinkAtMouseCursor
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Up {
|
KeyModifiers::NONE,
|
||||||
streak: 2,
|
MouseEventTrigger::Up {
|
||||||
button: MouseButton::Left
|
streak: 2,
|
||||||
},
|
button: MouseButton::Left
|
||||||
CompleteSelection
|
},
|
||||||
],
|
CompleteSelection
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Up {
|
KeyModifiers::NONE,
|
||||||
streak: 3,
|
MouseEventTrigger::Up {
|
||||||
button: MouseButton::Left
|
streak: 3,
|
||||||
},
|
button: MouseButton::Left
|
||||||
CompleteSelection
|
},
|
||||||
],
|
CompleteSelection
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Drag {
|
KeyModifiers::NONE,
|
||||||
streak: 1,
|
MouseEventTrigger::Drag {
|
||||||
button: MouseButton::Left
|
streak: 1,
|
||||||
},
|
button: MouseButton::Left
|
||||||
ExtendSelectionToMouseCursor(Some(SelectionMode::Cell))
|
},
|
||||||
],
|
ExtendSelectionToMouseCursor(Some(SelectionMode::Cell))
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Drag {
|
KeyModifiers::NONE,
|
||||||
streak: 2,
|
MouseEventTrigger::Drag {
|
||||||
button: MouseButton::Left
|
streak: 2,
|
||||||
},
|
button: MouseButton::Left
|
||||||
ExtendSelectionToMouseCursor(Some(SelectionMode::Word))
|
},
|
||||||
],
|
ExtendSelectionToMouseCursor(Some(SelectionMode::Word))
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Drag {
|
KeyModifiers::NONE,
|
||||||
streak: 3,
|
MouseEventTrigger::Drag {
|
||||||
button: MouseButton::Left
|
streak: 3,
|
||||||
},
|
button: MouseButton::Left
|
||||||
ExtendSelectionToMouseCursor(Some(SelectionMode::Line))
|
},
|
||||||
],
|
ExtendSelectionToMouseCursor(Some(SelectionMode::Line))
|
||||||
[
|
],
|
||||||
KeyModifiers::NONE,
|
[
|
||||||
MouseEventTrigger::Down {
|
KeyModifiers::NONE,
|
||||||
streak: 1,
|
MouseEventTrigger::Down {
|
||||||
button: MouseButton::Middle
|
streak: 1,
|
||||||
},
|
button: MouseButton::Middle
|
||||||
Paste
|
},
|
||||||
],
|
Paste
|
||||||
);
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Self { keys, mouse }
|
Self { keys, mouse }
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user