diff options
author | Aram Drevekenin <aram@poor.dev> | 2023-02-17 12:05:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-17 12:05:50 +0100 |
commit | f1ff272b0b65f6d328fef24531ada67ea585ce85 (patch) | |
tree | 0e33aa4a1af21c0785fa30118ee42a21972497cf /zellij-utils/src | |
parent | 1517036c2489b2a7dc43230e2ba8a05841a69dbe (diff) |
feat(ui): swap layouts and stacked panes (#2167)
* relayout working with hard coded layout
* work
* refactor(layout): PaneLayout => TiledPaneLayout
* tests passing
* tests passing
* tests passing
* stacked panes and passing tests
* tests for stacked panes
* refactor(panes): stacked panes
* fix: focusing into stacked panes from the left/right
* fix(layouts): handle stacked layouts in the middle of the screen
* fix(pane-stack): focus correctly when coming to stack from above/below
* fix(stacked-panes): resize stack
* fix(stacked-panes): focus with mouse
* fix(stacked-panes): focus next pane
* fix(layout-applier): sane focus order
* fix(stacked-panes): better titles for one-liners
* fix(stacked-panes): handle moving pane location in stack
* fix(relayout): properly calculate display area
* fix(relayout): properly calculate rounding errors
* fix(stacked-panes): properly handle closing a pane near a stack
* fix(swap-layouts): adjust swap layout sort order
* feat(swap-layouts): ui + ux
* fix(swap-layouts): include base layout
* refactor(layout): remove unused method
* fix(swap-layouts): respect pane contents and focus
* work
* fix(swap-layouts): load swap layouts from external file
* fix(swap-layouts): properly truncate layout children
* fix(stacked-panes): allow stacked panes to become fullscreen
* fix(swap-layouts): work with multiple tabs
* fix(swap-layouts): embed/eject panes properly with auto-layout
* fix(stacked-panes): close last pane in stack
* fix(stacked-panes): move focus for all clients in stack
* fix(floating-panes): set layout damaged when moving panes
* fix(relayout): move out of unfitting layout when resizing whole tab
* fix(ui): background color for swap layout indicator
* fix(keybinds): add switch next layout in tmux
* fix(ui): swap layout indication in compact layout
* fix(compact): correct swap constraint
* fix(tests): tmux swap config shortcut
* fix(resizes): cache resizes so as not to confuse panes (eg. vim) with multiple resizes that it debounces weirdly
* feat(cli): dump swap layouts
* fix(ui): stacked panes without pane frames
* fix(ux): move pane forward/backwards also with floating panes
* refactor(lint): remove unused stuff
* refactor(tab): move swap layouts to separate file
* style(fmt): rustfmt
* style(fmt): rustfmt
* refactor(panes): various cleanups
* chore(deps): upgrade termwiz to get alt left-bracket
* fix(assets): merge conflicts of binary files
* style(fmt): rustfmt
* style(clippy): no thank you!
* chore(repo): remove garbage file
Diffstat (limited to 'zellij-utils/src')
62 files changed, 6688 insertions, 2260 deletions
diff --git a/zellij-utils/src/cli.rs b/zellij-utils/src/cli.rs index 1ef43e27f..ea0b8d728 100644 --- a/zellij-utils/src/cli.rs +++ b/zellij-utils/src/cli.rs @@ -180,9 +180,13 @@ pub enum Sessions { #[derive(Debug, Subcommand, Clone, Serialize, Deserialize)] pub enum CliAction { /// Write bytes to the terminal. - Write { bytes: Vec<u8> }, + Write { + bytes: Vec<u8>, + }, /// Write characters to the terminal. - WriteChars { chars: String }, + WriteChars { + chars: String, + }, /// [increase|decrease] the focused panes area at the [left|down|up|right] border. Resize { resize: Resize, @@ -193,13 +197,21 @@ pub enum CliAction { /// Change focus to the previous pane FocusPreviousPane, /// Move the focused pane in the specified direction. [right|left|up|down] - MoveFocus { direction: Direction }, + MoveFocus { + direction: Direction, + }, /// Move focus to the pane or tab (if on screen edge) in the specified direction /// [right|left|up|down] - MoveFocusOrTab { direction: Direction }, - /// Change the location of the focused pane in the specified direction + MoveFocusOrTab { + direction: Direction, + }, + /// Change the location of the focused pane in the specified direction or rotate forwrads /// [right|left|up|down] - MovePane { direction: Direction }, + MovePane { + direction: Option<Direction>, + }, + /// Rotate the location of the previous pane backwards + MovePaneBackwards, /// Dump the focused pane to a file DumpScreen { path: PathBuf, @@ -296,7 +308,9 @@ pub enum CliAction { cwd: Option<PathBuf>, }, /// Switch input mode of all connected clients [locked|pane|tab|resize|move|search|session] - SwitchMode { input_mode: InputMode }, + SwitchMode { + input_mode: InputMode, + }, /// Embed focused pane if floating or float focused pane if embedded TogglePaneEmbedOrFloating, /// Toggle the visibility of all fdirectionloating panes in the current Tab, open one if none exist @@ -304,7 +318,9 @@ pub enum CliAction { /// Close the focused pane. ClosePane, /// Renames the focused pane - RenamePane { name: String }, + RenamePane { + name: String, + }, /// Remove a previously set pane name UndoRenamePane, /// Go to the next tab. @@ -314,7 +330,9 @@ pub enum CliAction { /// Close the current tab. CloseTab, /// Go to tab with index [index] - GoToTab { index: u32 }, + GoToTab { + index: u32, + }, /// Go to tab with name [name] GoToTabName { name: String, @@ -323,7 +341,9 @@ |