add keybinds for session mode and detach
This commit is contained in:
parent
b8acf19071
commit
ac082a1c93
4 changed files with 57 additions and 0 deletions
|
|
@ -12,6 +12,8 @@ keybinds:
|
|||
key: [Ctrl: 't',]
|
||||
- action: [SwitchToMode: Scroll,]
|
||||
key: [Ctrl: 's',]
|
||||
- action: [SwitchToMode: Session,]
|
||||
key: [Ctrl: 'b',]
|
||||
- action: [Quit,]
|
||||
key: [Ctrl: 'q',]
|
||||
- action: [NewPane: ]
|
||||
|
|
@ -42,6 +44,8 @@ keybinds:
|
|||
key: [Ctrl: 'r', Char: "\n", Char: ' ',]
|
||||
- action: [SwitchToMode: Scroll,]
|
||||
key: [Ctrl: 's']
|
||||
- action: [SwitchToMode: Session,]
|
||||
key: [Ctrl: 'b',]
|
||||
- action: [Quit]
|
||||
key: [Ctrl: 'q']
|
||||
- action: [Resize: Left,]
|
||||
|
|
@ -77,6 +81,8 @@ keybinds:
|
|||
key: [Ctrl: 'p', Char: "\n", Char: ' ',]
|
||||
- action: [SwitchToMode: Scroll,]
|
||||
key: [Ctrl: 's']
|
||||
- action: [SwitchToMode: Session,]
|
||||
key: [Ctrl: 'b',]
|
||||
- action: [Quit,]
|
||||
key: [Ctrl: 'q',]
|
||||
- action: [MoveFocus: Left,]
|
||||
|
|
@ -114,6 +120,8 @@ keybinds:
|
|||
key: [Ctrl: 't', Char: "\n", Char: ' ',]
|
||||
- action: [SwitchToMode: Scroll,]
|
||||
key: [Ctrl: 's']
|
||||
- action: [SwitchToMode: Session,]
|
||||
key: [Ctrl: 'b',]
|
||||
- action: [SwitchToMode: RenameTab, TabNameInput: [0],]
|
||||
key: [Char: 'r']
|
||||
- action: [Quit,]
|
||||
|
|
@ -168,6 +176,8 @@ keybinds:
|
|||
key: [Ctrl: 'g',]
|
||||
- action: [SwitchToMode: Pane,]
|
||||
key: [Ctrl: 'p',]
|
||||
- action: [SwitchToMode: Session,]
|
||||
key: [Ctrl: 'b',]
|
||||
- action: [Quit,]
|
||||
key: [Ctrl: 'q',]
|
||||
- action: [ScrollDown,]
|
||||
|
|
@ -213,3 +223,20 @@ keybinds:
|
|||
key: [ Alt: '[',]
|
||||
- action: [FocusNextPane,]
|
||||
key: [ Alt: ']',]
|
||||
session:
|
||||
- action: [SwitchToMode: Locked,]
|
||||
key: [Ctrl: 'g']
|
||||
- action: [SwitchToMode: Resize,]
|
||||
key: [Ctrl: 'r',]
|
||||
- action: [SwitchToMode: Pane,]
|
||||
key: [Ctrl: 'p',]
|
||||
- action: [SwitchToMode: Tab,]
|
||||
key: [Ctrl: 't',]
|
||||
- action: [SwitchToMode: Normal,]
|
||||
key: [Ctrl: 'b', Char: "\n", Char: ' ',]
|
||||
- action: [SwitchToMode: Scroll,]
|
||||
key: [Ctrl: 's']
|
||||
- action: [Quit,]
|
||||
key: [Ctrl: 'q',]
|
||||
- action: [Detach,]
|
||||
key: [Char: 'd',]
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ enum CtrlKeyAction {
|
|||
Resize,
|
||||
Scroll,
|
||||
Quit,
|
||||
Session,
|
||||
}
|
||||
|
||||
enum CtrlKeyMode {
|
||||
|
|
@ -39,6 +40,7 @@ impl CtrlKeyShortcut {
|
|||
CtrlKeyAction::Resize => String::from("RESIZE"),
|
||||
CtrlKeyAction::Scroll => String::from("SCROLL"),
|
||||
CtrlKeyAction::Quit => String::from("QUIT"),
|
||||
CtrlKeyAction::Session => String::from("SESSION"),
|
||||
}
|
||||
}
|
||||
pub fn shortened_text(&self) -> String {
|
||||
|
|
@ -49,6 +51,7 @@ impl CtrlKeyShortcut {
|
|||
CtrlKeyAction::Resize => String::from("esize"),
|
||||
CtrlKeyAction::Scroll => String::from("croll"),
|
||||
CtrlKeyAction::Quit => String::from("uit"),
|
||||
CtrlKeyAction::Session => String::from("sess"),
|
||||
}
|
||||
}
|
||||
pub fn letter_shortcut(&self) -> char {
|
||||
|
|
@ -59,6 +62,7 @@ impl CtrlKeyShortcut {
|
|||
CtrlKeyAction::Resize => 'r',
|
||||
CtrlKeyAction::Scroll => 's',
|
||||
CtrlKeyAction::Quit => 'q',
|
||||
CtrlKeyAction::Session => 'b',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -297,6 +301,7 @@ pub fn ctrl_keys(help: &ModeInfo, max_len: usize, separator: &str) -> LinePart {
|
|||
CtrlKeyShortcut::new(CtrlKeyMode::Disabled, CtrlKeyAction::Resize),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Disabled, CtrlKeyAction::Scroll),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Disabled, CtrlKeyAction::Quit),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Session),
|
||||
],
|
||||
colored_elements,
|
||||
separator,
|
||||
|
|
@ -310,6 +315,7 @@ pub fn ctrl_keys(help: &ModeInfo, max_len: usize, separator: &str) -> LinePart {
|
|||
CtrlKeyShortcut::new(CtrlKeyMode::Selected, CtrlKeyAction::Resize),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Scroll),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Quit),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Session),
|
||||
],
|
||||
colored_elements,
|
||||
separator,
|
||||
|
|
@ -323,6 +329,7 @@ pub fn ctrl_keys(help: &ModeInfo, max_len: usize, separator: &str) -> LinePart {
|
|||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Resize),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Scroll),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Quit),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Session),
|
||||
],
|
||||
colored_elements,
|
||||
separator,
|
||||
|
|
@ -336,6 +343,7 @@ pub fn ctrl_keys(help: &ModeInfo, max_len: usize, separator: &str) -> LinePart {
|
|||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Resize),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Scroll),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Quit),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Session),
|
||||
],
|
||||
colored_elements,
|
||||
separator,
|
||||
|
|
@ -349,6 +357,7 @@ pub fn ctrl_keys(help: &ModeInfo, max_len: usize, separator: &str) -> LinePart {
|
|||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Resize),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Selected, CtrlKeyAction::Scroll),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Quit),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Session),
|
||||
],
|
||||
colored_elements,
|
||||
separator,
|
||||
|
|
@ -362,6 +371,21 @@ pub fn ctrl_keys(help: &ModeInfo, max_len: usize, separator: &str) -> LinePart {
|
|||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Resize),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Scroll),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Quit),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Session),
|
||||
],
|
||||
colored_elements,
|
||||
separator,
|
||||
),
|
||||
InputMode::Session => key_indicators(
|
||||
max_len,
|
||||
&[
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Lock),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Pane),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Tab),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Resize),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Scroll),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Unselected, CtrlKeyAction::Quit),
|
||||
CtrlKeyShortcut::new(CtrlKeyMode::Selected, CtrlKeyAction::Session),
|
||||
],
|
||||
colored_elements,
|
||||
separator,
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ pub enum InputMode {
|
|||
Scroll,
|
||||
#[serde(alias = "renametab")]
|
||||
RenameTab,
|
||||
/// `Session` mode allows detaching sessions
|
||||
#[serde(alias = "session")]
|
||||
Session,
|
||||
}
|
||||
|
||||
impl Default for InputMode {
|
||||
|
|
|
|||
|
|
@ -45,6 +45,9 @@ pub fn get_mode_info(
|
|||
InputMode::RenameTab => {
|
||||
keybinds.push(("Enter".to_string(), "when done".to_string()));
|
||||
}
|
||||
InputMode::Session => {
|
||||
keybinds.push(("d".to_string(), "Detach".to_string()));
|
||||
}
|
||||
}
|
||||
ModeInfo {
|
||||
mode,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue