aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-client
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-01-13 11:27:07 +0100
committerGitHub <noreply@github.com>2026-01-13 11:27:07 +0100
commit4a27ceea0d99b036ca607e05714cef15689d7c26 (patch)
tree22c0148718a82082bdb196c5e867697f514cc541 /zellij-client
parentdocs(CONTRIBUTING): Describe rust toolchain versioning policy (#4585) (diff)
downloadsl0ppij-4a27ceea0d99b036ca607e05714cef15689d7c26.tar.gz
sl0ppij-4a27ceea0d99b036ca607e05714cef15689d7c26.tar.xz
sl0ppij-4a27ceea0d99b036ca607e05714cef15689d7c26.zip
Layout manager (#4601)
* ad plugin override_layout command * watch available layouts and report to plugin thread * Event::AvailableLayoutInfo * save layout command * refactor save_layout * fix api and permissions * delete_layout API command * edit layout in place API * edit layout response through api * propagate layout parsing errors * generate random name plugin api * dump stringified layout API * synchronicity dump_session_layout and include LayoutMetadata in sync response * parse_layout plugin api * fix: default to default layout dir in plugin api * rename_layout plugin command API * initial implementation of multi-tab override * apply to multiple tabs * allow applying to only the active tab * add tab/pane names to layout parsing metadata * indicate is_builtin_plugin in PaneMetadata * get_layout_dir plugin API command * consolidate (and fix) is_builtin_plugin logic * fix bad ret * allow dumping the layout for just a specific tab in the session * get focused pane and tab sync api * color last substring variants * add plugin * update assets * fix tests * add e2e tests for new plugin apis * update ui with new shortcut * rustfmt * docs(changelog): add PR
Diffstat (limited to 'zellij-client')
-rw-r--r--zellij-client/src/lib.rs12
-rw-r--r--zellij-client/src/web_client/session_management.rs3
2 files changed, 11 insertions, 4 deletions
diff --git a/zellij-client/src/lib.rs b/zellij-client/src/lib.rs
index ce11e874..5fcf68be 100644
--- a/zellij-client/src/lib.rs
+++ b/zellij-client/src/lib.rs
@@ -85,7 +85,7 @@ use zellij_utils::cli::CliArgs;
use zellij_utils::{
channels::{self, ChannelWithContext, SenderWithContext},
consts::{set_permissions, ZELLIJ_SOCK_DIR},
- data::{ClientId, ConnectToSession, KeyWithModifier, LayoutInfo},
+ data::{ClientId, ConnectToSession, KeyWithModifier, LayoutInfo, LayoutMetadata},
envs,
errors::{ClientContext, ContextType, ErrorInstruction},
input::{cli_assets::CliAssets, config::Config, options::Options},
@@ -696,7 +696,10 @@ pub fn start_client(
config_dir: cli_args.config_dir.clone(),
should_ignore_config: cli_args.is_setup_clean(),
configuration_options: Some(config_options.clone()),
- layout: Some(LayoutInfo::File(path_to_layout.display().to_string())),
+ layout: Some(LayoutInfo::File(
+ path_to_layout.display().to_string(),
+ LayoutMetadata::default(),
+ )),
terminal_window_size: full_screen_ws,
data_dir: cli_args.data_dir.clone(),
is_debug: cli_args.debug,
@@ -1128,7 +1131,10 @@ pub fn start_server_detached(
config_dir: cli_args.config_dir.clone(),
should_ignore_config: cli_args.is_setup_clean(),
configuration_options: Some(config_options.clone()),
- layout: Some(LayoutInfo::File(path_to_layout.display().to_string())),
+ layout: Some(LayoutInfo::File(
+ path_to_layout.display().to_string(),
+ LayoutMetadata::default(),
+ )),
terminal_window_size: Size { cols: 50, rows: 50 }, // static number until a
// client connects
data_dir: cli_args.data_dir.clone(),
diff --git a/zellij-client/src/web_client/session_management.rs b/zellij-client/src/web_client/session_management.rs
index d3518b53..9530ba94 100644
--- a/zellij-client/src/web_client/session_management.rs
+++ b/zellij-client/src/web_client/session_management.rs
@@ -4,7 +4,7 @@ use crate::spawn_server;
use std::{fs, path::PathBuf};
use zellij_utils::{
consts::session_layout_cache_file_name,
- data::{ConnectToSession, LayoutInfo, WebSharing},
+ data::{ConnectToSession, LayoutInfo, LayoutMetadata, WebSharing},
envs,
input::{cli_assets::CliAssets, config::Config, options::Options},
ipc::{ClientAttributes, ClientToServerMsg},
@@ -70,6 +70,7 @@ pub fn create_first_message(
session_layout_cache_file_name(&session_name)
.display()
.to_string(),
+ LayoutMetadata::default(),
))
} else {
None