summaryrefslogtreecommitdiffstats
path: root/zellij-client
diff options
context:
space:
mode:
authora-kenji <aks.kenji@protonmail.com>2021-07-09 23:37:36 +0200
committera-kenji <aks.kenji@protonmail.com>2021-07-23 17:13:35 +0200
commit5ede25dc37ceb192032524ac9200bb1ca95e5863 (patch)
tree1b2a19f3110ca12ec8705dcb0c07502746c06ff5 /zellij-client
parent3df0210647e65170576f1ea97328cce26c211a43 (diff)
Add `tabs` to `layouts`
fixes #603, fixes #349 * The layout has now a unique `tabs` section, that can be used, like the `parts` section, everything that is not inside the tabs section is assumed to be present on every single tab that is opened. This is a BREAKING CHANGE for people that use custom `layouts` already, since the `tabs` section is not optional - for clarity and intentionality reasons. The functionality to specify multiple tabs is already there, but is still gated behind a panic, until #621 is fixed. So for now one tab can be specified to load on startup. * The `NewTab` action can optionally be bound to open a layout that is assumed to be in the new `tabs` section This is a BREAKING CHANGE for people that have the `NewTab` action already bound in the config file: ``` - action: [NewTab, ] key: [F: 5,] ``` must now be specified as: ``` - action: [NewTab: ,] key: [F: 5,] ``` Optionally a layout that should be opened on the new tab can be specified: ``` - action: [NewTab: { direction: Vertical, parts: [ {direction: Horizontal, split_size: {Percent: 50}}, {direction: Horizontal, run: {command: {cmd: "htop"}}},], key: [F: 6,] ``` or: ``` - action: [NewTab: {direction: Vertical, run: {command: {cmd: "htop"} }},] key: [F: 7,] ``` or ``` - action: [NewTab: { direction: Vertical, parts: [ {direction: Vertical, split_size: {Percent: 25},run: {plugin: "strider" }}, {direction: Horizontal}],}, MoveFocus: Left,] key: [F: 8,] ```
Diffstat (limited to 'zellij-client')
-rw-r--r--zellij-client/src/input_handler.rs2
-rw-r--r--zellij-client/src/lib.rs4
2 files changed, 3 insertions, 3 deletions
diff --git a/zellij-client/src/input_handler.rs b/zellij-client/src/input_handler.rs
index f02b5ad81..19b0f6291 100644
--- a/zellij-client/src/input_handler.rs
+++ b/zellij-client/src/input_handler.rs
@@ -183,7 +183,7 @@ impl InputHandler {
}
Action::CloseFocus
| Action::NewPane(_)
- | Action::NewTab
+ | Action::NewTab(_)
| Action::GoToNextTab
| Action::GoToPreviousTab
| Action::CloseTab
diff --git a/zellij-client/src/lib.rs b/zellij-client/src/lib.rs
index 2bfaae2e8..8bb595bc7 100644
--- a/zellij-client/src/lib.rs
+++ b/zellij-client/src/lib.rs
@@ -18,7 +18,7 @@ use zellij_utils::{
channels::{self, ChannelWithContext, SenderWithContext},
consts::{SESSION_NAME, ZELLIJ_IPC_PIPE},
errors::{ClientContext, ContextType, ErrorInstruction},
- input::{actions::Action, config::Config, layout::Layout, options::Options},
+ input::{actions::Action, config::Config, layout::MainLayout, options::Options},
ipc::{ClientAttributes, ClientToServerMsg, ExitReason, ServerToClientMsg},
};
@@ -86,7 +86,7 @@ pub fn start_client(
opts: CliArgs,
config: Config,
info: ClientInfo,
- layout: Option<Layout>,
+ layout: Option<MainLayout>,
) {
let clear_client_terminal_attributes = "\u{1b}[?1l\u{1b}=\u{1b}[r\u{1b}12l\u{1b}[?1000l\u{1b}[?1002l\u{1b}[?1003l\u{1b}[?1005l\u{1b}[?1006l\u{1b}[?12l";
let take_snapshot = "\u{1b}[?1049h";