summaryrefslogtreecommitdiffstats
path: root/zellij-utils
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2023-02-15 16:16:53 +0100
committerAram Drevekenin <aram@poor.dev>2023-02-15 16:16:53 +0100
commitc560f31b4552992ed29b3857cc65297f70047ed4 (patch)
treee9fb0847271a5b3c1a341b5cb5f6da53a92838e9 /zellij-utils
parent5dd319c8528ee5f25580baee94596e639513f3b9 (diff)
fix(ux): move pane forward/backwards also with floating panes
Diffstat (limited to 'zellij-utils')
-rw-r--r--zellij-utils/assets/config/default.kdl1
-rw-r--r--zellij-utils/src/cli.rs6
-rw-r--r--zellij-utils/src/errors.rs1
-rw-r--r--zellij-utils/src/input/actions.rs4
-rw-r--r--zellij-utils/src/kdl/mod.rs6
-rw-r--r--zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap7
-rw-r--r--zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap7
-rw-r--r--zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_plugins_override_config_plugins.snap7
-rw-r--r--zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap7
-rw-r--r--zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap7
10 files changed, 45 insertions, 8 deletions
diff --git a/zellij-utils/assets/config/default.kdl b/zellij-utils/assets/config/default.kdl
index df39c0de9..6131efc27 100644
--- a/zellij-utils/assets/config/default.kdl
+++ b/zellij-utils/assets/config/default.kdl
@@ -40,6 +40,7 @@ keybinds {
move {
bind "Ctrl h" { SwitchToMode "Normal"; }
bind "n" "Tab" { MovePane; }
+ bind "p" { MovePaneBackwards; }
bind "h" "Left" { MovePane "Left"; }
bind "j" "Down" { MovePane "Down"; }
bind "k" "Up" { MovePane "Up"; }
diff --git a/zellij-utils/src/cli.rs b/zellij-utils/src/cli.rs
index 660dc6d3c..4facc6443 100644
--- a/zellij-utils/src/cli.rs
+++ b/zellij-utils/src/cli.rs
@@ -197,9 +197,11 @@ pub enum CliAction {
/// 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
+ /// 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,
diff --git a/zellij-utils/src/errors.rs b/zellij-utils/src/errors.rs
index 87f4ac3ec..0ea1190f6 100644
--- a/zellij-utils/src/errors.rs
+++ b/zellij-utils/src/errors.rs
@@ -285,6 +285,7 @@ pub enum ScreenContext {
MoveFocusRight,
MoveFocusRightOrNextTab,
MovePane,
+ MovePaneBackwards,
MovePaneDown,
MovePaneUp,
MovePaneRight,
diff --git a/zellij-utils/src/input/actions.rs b/zellij-utils/src/input/actions.rs
index 2aca3107c..8183f3263 100644
--- a/zellij-utils/src/input/actions.rs
+++ b/zellij-utils/src/input/actions.rs
@@ -115,6 +115,7 @@ pub enum Action {
/// If there is no pane in the direction, move to previous/next Tab.
MoveFocusOrTab(Direction),
MovePane(Option<Direction>),
+ MovePaneBackwards,
/// Dumps the screen to a file
DumpScreen(String, bool),
/// Scroll up in focus pane.
@@ -219,7 +220,8 @@ impl Action {
CliAction::FocusPreviousPane => Ok(vec![Action::FocusPreviousPane]),
CliAction::MoveFocus { direction } => Ok(vec![Action::MoveFocus(direction)]),
CliAction::MoveFocusOrTab { direction } => Ok(vec![Action::MoveFocusOrTab(direction)]),
- CliAction::MovePane { direction } => Ok(vec![Action::MovePane(Some(direction))]),
+ CliAction::MovePane { direction } => Ok(vec![Action::MovePane(direction)]),
+ CliAction::MovePaneBackwards => Ok(vec![Action::MovePaneBackwards]),
CliAction::DumpScreen { path, full } => Ok(vec![Action::DumpScreen(
path.as_os_str().to_string_lossy().into(),
full,
diff --git a/zellij-utils/src/kdl/mod.rs b/zellij-utils/src/kdl/mod.rs
index 8801f4612..cfe098cd6 100644
--- a/zellij-utils/src/kdl/mod.rs
+++ b/zellij-utils/src/kdl/mod.rs
@@ -453,6 +453,7 @@ impl Action {
Ok(Action::MovePane(Some(direction)))
}
},
+ "MovePaneBackwards" => Ok(Action::MovePaneBackwards),
"DumpScreen" => Ok(Action::DumpScreen(string, false)),
"NewPane" => {
if string.is_empty() {
@@ -727,6 +728,11 @@ impl TryFrom<&KdlNode> for Action {
action_arguments,
kdl_action
),
+ "MovePaneBackwards" => parse_kdl_action_char_or_string_arguments!(
+ action_name,
+ action_arguments,
+ kdl_action
+ ),
"DumpScreen" => parse_kdl_action_char_or_string_arguments!(
action_name,
action_arguments,
diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap
index 056a687ca..2d5aea7b4 100644
--- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap
+++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__default_config_with_no_cli_arguments.snap
@@ -1,6 +1,6 @@
---
source: zellij-utils/src/setup.rs
-assertion_line: 600
+assertion_line: 621
expression: "format!(\"{:#?}\", config)"
---
Config {
@@ -2737,6 +2737,11 @@ Config {
None,
),
],
+ Char(
+ 'p',
+ ): [
+ MovePaneBackwards,
+ ],
Alt(
Char(
'+',
diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap
index 5e72b510f..8e94086a5 100644
--- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap
+++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_env_vars_override_config_env_vars.snap
@@ -1,6 +1,6 @@
---
source: zellij-utils/src/setup.rs
-assertion_line: 658
+assertion_line: 679
expression: "format!(\"{:#?}\", config)"
---
Config {
@@ -2737,6 +2737,11 @@ Config {
None,
),
],
+ Char(
+ 'p',
+ ): [
+ MovePaneBackwards,
+ ],
Alt(
Char(
'+',
diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_plugins_override_config_plugins.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_plugins_override_config_plugins.snap
index 481357366..049208cab 100644
--- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_plugins_override_config_plugins.snap
+++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_plugins_override_config_plugins.snap
@@ -1,6 +1,6 @@
---
source: zellij-utils/src/setup.rs
-assertion_line: 686
+assertion_line: 707
expression: "format!(\"{:#?}\", config)"
---
Config {
@@ -2737,6 +2737,11 @@ Config {
None,
),
],
+ Char(
+ 'p',
+ ): [
+ MovePaneBackwards,
+ ],
Alt(
Char(
'+',
diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap
index c504f63ff..7b1a46071 100644
--- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap
+++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_themes_override_config_themes.snap
@@ -1,6 +1,6 @@
---
source: zellij-utils/src/setup.rs
-assertion_line: 700
+assertion_line: 721
expression: "format!(\"{:#?}\", config)"
---
Config {
@@ -2737,6 +2737,11 @@ Config {
None,
),
],
+ Char(
+ 'p',
+ ): [
+ MovePaneBackwards,
+ ],
Alt(
Char(
'+',
diff --git a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap
index 0447ca8e3..d8694a0ee 100644
--- a/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap
+++ b/zellij-utils/src/snapshots/zellij_utils__setup__setup_test__layout_ui_config_overrides_config_ui_config.snap
@@ -1,6 +1,6 @@
---
source: zellij-utils/src/setup.rs
-assertion_line: 672
+assertion_line: 693
expression: "format!(\"{:#?}\", config)"
---
Config {
@@ -2737,6 +2737,11 @@ Config {
None,
),
],
+ Char(
+ 'p',
+ ): [
+ MovePaneBackwards,
+ ],
Alt(
Char(
'+',