aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/plugin_api
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-03-27 16:23:14 +0100
committerGitHub <noreply@github.com>2026-03-27 16:23:14 +0100
commit802c96f5fca9de479af7c249130a7928bc441349 (patch)
tree8ebf6ef1d535d5e1ea706c823eae589bc0809edd /zellij-utils/src/plugin_api
parentdocs(changelog): riscv64 binaries (diff)
downloadsl0ppij-802c96f5fca9de479af7c249130a7928bc441349.tar.gz
sl0ppij-802c96f5fca9de479af7c249130a7928bc441349.tar.xz
sl0ppij-802c96f5fca9de479af7c249130a7928bc441349.zip
CLI focus-pane-id and are-floating-panes-visible actions (#4926)
* add zellij action focus-pane-id * zellij action are-floating-panes-visible * fix e2e tests * add pr
Diffstat (limited to 'zellij-utils/src/plugin_api')
-rw-r--r--zellij-utils/src/plugin_api/action.proto6
-rw-r--r--zellij-utils/src/plugin_api/action.rs21
2 files changed, 27 insertions, 0 deletions
diff --git a/zellij-utils/src/plugin_api/action.proto b/zellij-utils/src/plugin_api/action.proto
index 5f92ad94..ea043d56 100644
--- a/zellij-utils/src/plugin_api/action.proto
+++ b/zellij-utils/src/plugin_api/action.proto
@@ -244,6 +244,7 @@ message Action {
TabIdAndName rename_tab_by_id_payload = 57;
ShowFloatingPanesPayload show_floating_panes_payload = 58;
HideFloatingPanesPayload hide_floating_panes_payload = 59;
+ AreFloatingPanesVisiblePayload are_floating_panes_visible_payload = 60;
}
}
@@ -272,6 +273,10 @@ message HideFloatingPanesPayload {
optional uint32 tab_id = 1;
}
+message AreFloatingPanesVisiblePayload {
+ optional uint32 tab_id = 1;
+}
+
message PaneIdAndShouldFloat {
uint32 pane_id = 1;
bool should_float = 2;
@@ -484,6 +489,7 @@ enum ActionName {
RenameTabById = 97;
ShowFloatingPanes = 98;
HideFloatingPanes = 99;
+ AreFloatingPanesVisible = 100;
}
message Position {
diff --git a/zellij-utils/src/plugin_api/action.rs b/zellij-utils/src/plugin_api/action.rs
index 93d0a556..4384eb68 100644
--- a/zellij-utils/src/plugin_api/action.rs
+++ b/zellij-utils/src/plugin_api/action.rs
@@ -7,6 +7,7 @@ pub use super::generated_api::api::{
run_plugin_or_alias::PluginType,
Action as ProtobufAction,
ActionName as ProtobufActionName,
+ AreFloatingPanesVisiblePayload,
BareKey as ProtobufBareKey,
// New layout-related types
CommandOrPlugin as ProtobufCommandOrPlugin,
@@ -424,6 +425,17 @@ impl TryFrom<ProtobufAction> for Action {
None => Ok(Action::HideFloatingPanes { tab_id: None }),
_ => Err("Wrong payload for HideFloatingPanes"),
},
+ Some(ProtobufActionName::AreFloatingPanesVisible) => {
+ match protobuf_action.optional_payload {
+ Some(OptionalPayload::AreFloatingPanesVisiblePayload(payload)) => {
+ Ok(Action::AreFloatingPanesVisible {
+ tab_id: payload.tab_id.map(|id| id as usize),
+ })
+ },
+ None => Ok(Action::AreFloatingPanesVisible { tab_id: None }),
+ _ => Err("Wrong payload for AreFloatingPanesVisible"),
+ }
+ },
Some(ProtobufActionName::CloseFocus) => match protobuf_action.optional_payload {
Some(_) => Err("CloseFocus should not have a payload"),
None => Ok(Action::CloseFocus),
@@ -1086,6 +1098,7 @@ impl TryFrom<Action> for ProtobufAction {
| Action::RenamePaneByPaneId { .. }
| Action::UndoRenamePaneByPaneId { .. }
| Action::TogglePanePinnedByPaneId { .. }
+ | Action::FocusPaneByPaneId { .. }
| Action::UndoRenameTabByTabId { .. }
| Action::ToggleActiveSyncTabByTabId { .. }
| Action::ToggleFloatingPanesByTabId { .. }
@@ -1380,6 +1393,14 @@ impl TryFrom<Action> for ProtobufAction {
},
)),
}),
+ Action::AreFloatingPanesVisible { tab_id } => Ok(ProtobufAction {
+ name: ProtobufActionName::AreFloatingPanesVisible as i32,
+ optional_payload: Some(OptionalPayload::AreFloatingPanesVisiblePayload(
+ AreFloatingPanesVisiblePayload {
+ tab_id: tab_id.map(|id| id as u32),
+ },
+ )),
+ }),
Action::CloseFocus => Ok(ProtobufAction {
name: ProtobufActionName::CloseFocus as i32,
optional_payload: None,