68 lines
2.1 KiB
Rust
68 lines
2.1 KiB
Rust
//! Definition of the actions that can be bound to keys.
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
use zellij_tile::data::InputMode;
|
|
|
|
/// The four directions (left, right, up, down).
|
|
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
|
|
pub enum Direction {
|
|
Left,
|
|
Right,
|
|
Up,
|
|
Down,
|
|
}
|
|
|
|
// As these actions are bound to the default config, please
|
|
// do take care when refactoring - or renaming.
|
|
// They might need to be adjusted in the default config
|
|
// as well `../../../assets/config/default.yaml`
|
|
/// Actions that can be bound to keys.
|
|
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
|
|
pub enum Action {
|
|
/// Quit Zellij.
|
|
Quit,
|
|
/// Write to the terminal.
|
|
Write(Vec<u8>),
|
|
/// Switch to the specified input mode.
|
|
SwitchToMode(InputMode),
|
|
/// Resize focus pane in specified direction.
|
|
Resize(Direction),
|
|
/// Switch focus to next pane in specified direction.
|
|
FocusNextPane,
|
|
FocusPreviousPane,
|
|
/// Move the focus pane in specified direction.
|
|
SwitchFocus,
|
|
MoveFocus(Direction),
|
|
/// Tries to move the focus pane in specified direction.
|
|
/// If there is no pane in the direction, move to previous/next Tab.
|
|
MoveFocusOrTab(Direction),
|
|
/// Scroll up in focus pane.
|
|
ScrollUp,
|
|
/// Scroll down in focus pane.
|
|
ScrollDown,
|
|
/// Scroll up one page in focus pane.
|
|
PageScrollUp,
|
|
/// Scroll down one page in focus pane.
|
|
PageScrollDown,
|
|
/// Toggle between fullscreen focus pane and normal layout.
|
|
ToggleFocusFullscreen,
|
|
/// Toggle between sending text commands to all panes on the current tab and normal mode.
|
|
ToggleActiveSyncTab,
|
|
/// Open a new pane in the specified direction (relative to focus).
|
|
/// If no direction is specified, will try to use the biggest available space.
|
|
NewPane(Option<Direction>),
|
|
/// Close the focus pane.
|
|
CloseFocus,
|
|
/// Create a new tab.
|
|
NewTab,
|
|
/// Do nothing.
|
|
NoOp,
|
|
/// Go to the next tab.
|
|
GoToNextTab,
|
|
/// Go to the previous tab.
|
|
GoToPreviousTab,
|
|
/// Close the current tab.
|
|
CloseTab,
|
|
GoToTab(u32),
|
|
TabNameInput(Vec<u8>),
|
|
}
|