aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2023-08-25 16:25:09 +0200
committerGitHub <noreply@github.com>2023-08-25 16:25:09 +0200
commita537e09bb7de280db90143c6e450eb906ef65abd (patch)
tree04cec87e4f0dd02778af48d81cc29d04c26fdfd9
parentdocs(changelog): move plugin to focused tab (diff)
downloadsl0ppij-a537e09bb7de280db90143c6e450eb906ef65abd.tar.gz
sl0ppij-a537e09bb7de280db90143c6e450eb906ef65abd.tar.xz
sl0ppij-a537e09bb7de280db90143c6e450eb906ef65abd.zip
fix(keybinds): add 'floating' and 'name' to the Run command keybinding (#2726)
* fix(keybinds): add 'floating' and 'name' to the Run command keybinding * style(fmt): rustfmt
-rw-r--r--zellij-utils/src/kdl/mod.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/zellij-utils/src/kdl/mod.rs b/zellij-utils/src/kdl/mod.rs
index 1d09bdac..a7573af5 100644
--- a/zellij-utils/src/kdl/mod.rs
+++ b/zellij-utils/src/kdl/mod.rs
@@ -870,6 +870,9 @@ impl TryFrom<(&KdlNode, &Options)> for Action {
let cwd = command_metadata
.and_then(|c_m| kdl_child_string_value_for_entry(c_m, "cwd"))
.map(|cwd_string| PathBuf::from(cwd_string));
+ let name = command_metadata
+ .and_then(|c_m| kdl_child_string_value_for_entry(c_m, "name"))
+ .map(|name_string| name_string.to_string());
let direction = command_metadata
.and_then(|c_m| kdl_child_string_value_for_entry(c_m, "direction"))
.and_then(|direction_string| Direction::from_str(direction_string).ok());
@@ -880,6 +883,9 @@ impl TryFrom<(&KdlNode, &Options)> for Action {
let hold_on_start = command_metadata
.and_then(|c_m| kdl_child_bool_value_for_entry(c_m, "start_suspended"))
.unwrap_or(false);
+ let floating = command_metadata
+ .and_then(|c_m| kdl_child_bool_value_for_entry(c_m, "floating"))
+ .unwrap_or(false);
let run_command_action = RunCommandAction {
command: PathBuf::from(command),
args,
@@ -888,7 +894,15 @@ impl TryFrom<(&KdlNode, &Options)> for Action {
hold_on_close,
hold_on_start,
};
- Ok(Action::Run(run_command_action))
+ if floating {
+ Ok(Action::NewFloatingPane(Some(run_command_action), name))
+ } else {
+ Ok(Action::NewTiledPane(
+ direction,
+ Some(run_command_action),
+ name,
+ ))
+ }
},
"LaunchOrFocusPlugin" => {
let arguments = action_arguments.iter().copied();