diff options
28 files changed, 291 insertions, 107 deletions
diff --git a/assets/layouts/disable-status-bar.yaml b/assets/layouts/disable-status-bar.yaml new file mode 100644 index 000000000..fd9c97da6 --- /dev/null +++ b/assets/layouts/disable-status-bar.yaml @@ -0,0 +1,8 @@ +--- +direction: Horizontal +parts: + - direction: Vertical + split_size: + Fixed: 1 + plugin: tab-bar + - direction: Vertical diff --git a/src/main.rs b/src/main.rs index 97ad3deee..1c0dc3904 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,6 +13,7 @@ use zellij_utils::{ cli::{CliArgs, Command, Sessions}, consts::{ZELLIJ_TMP_DIR, ZELLIJ_TMP_LOG_DIR}, input::config::Config, + input::layout::Layout, input::options::Options, logging::*, setup::{get_default_data_dir, Setup}, @@ -72,6 +73,7 @@ pub fn main() { opts, config, ClientInfo::Attach(session_name.unwrap(), force, config_options), + None, ); } else { let session_name = opts @@ -85,11 +87,18 @@ pub fn main() { #[cfg(not(disable_automatic_asset_installation))] populate_data_dir(&data_dir); + let layout = Layout::from_path_or_default( + opts.layout.as_ref(), + opts.layout_path.as_ref(), + &data_dir, + ); + start_client( Box::new(os_input), opts, config, ClientInfo::New(session_name), + layout, ); } } diff --git a/src/tests/fixtures/htop b/src/tests/fixtures/htop Binary files differindex 37ee07771..dab2b7833 100644 --- a/src/tests/fixtures/htop +++ b/src/tests/fixtures/htop diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs index 640b1c553..bd1787019 100644 --- a/src/tests/integration/basic.rs +++ b/src/tests/integration/basic.rs @@ -33,6 +33,7 @@ pub fn starts_with_one_terminal() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -61,6 +62,7 @@ pub fn split_terminals_vertically() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -89,6 +91,7 @@ pub fn split_terminals_horizontally() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -124,6 +127,7 @@ pub fn split_largest_terminal() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -152,6 +156,7 @@ pub fn cannot_split_terminals_vertically_when_active_terminal_is_too_small() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -180,6 +185,7 @@ pub fn cannot_split_terminals_horizontally_when_active_terminal_is_too_small() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -208,6 +214,7 @@ pub fn cannot_split_largest_terminal_when_there_is_no_room() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -244,6 +251,7 @@ pub fn scrolling_up_inside_a_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -282,6 +290,7 @@ pub fn scrolling_down_inside_a_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -317,6 +326,7 @@ pub fn scrolling_page_up_inside_a_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -355,6 +365,7 @@ pub fn scrolling_page_down_inside_a_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -394,6 +405,7 @@ pub fn max_panes() { opts, Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -431,6 +443,7 @@ pub fn toggle_focused_pane_fullscreen() { opts, Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -471,6 +484,7 @@ pub fn bracketed_paste() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer diff --git a/src/tests/integration/close_pane.rs b/src/tests/integration/close_pane.rs index 598815145..b9af7bccc 100644 --- a/src/tests/integration/close_pane.rs +++ b/src/tests/integration/close_pane.rs @@ -46,6 +46,7 @@ pub fn close_pane_with_another_pane_above_it() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -89,6 +90,7 @@ pub fn close_pane_with_another_pane_below_it() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -129,6 +131,7 @@ pub fn close_pane_with_another_pane_to_the_left() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -170,6 +173,7 @@ pub fn close_pane_with_another_pane_to_the_right() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -216,6 +220,7 @@ pub fn close_pane_with_multiple_panes_above_it() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -260,6 +265,7 @@ pub fn close_pane_with_multiple_panes_below_it() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -306,6 +312,7 @@ pub fn close_pane_with_multiple_panes_to_the_left() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -350,6 +357,7 @@ pub fn close_pane_with_multiple_panes_to_the_right() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -417,6 +425,7 @@ pub fn close_pane_with_multiple_panes_above_it_away_from_screen_edges() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -480,6 +489,7 @@ pub fn close_pane_with_multiple_panes_below_it_away_from_screen_edges() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -545,6 +555,7 @@ pub fn close_pane_with_multiple_panes_to_the_left_away_from_screen_edges() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -610,6 +621,7 @@ pub fn close_pane_with_multiple_panes_to_the_right_away_from_screen_edges() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -647,6 +659,7 @@ pub fn closing_last_pane_exits_app() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output diff --git a/src/tests/integration/compatibility.rs b/src/tests/integration/compatibility.rs index ec983b095..d3bbccba0 100644 --- a/src/tests/integration/compatibility.rs +++ b/src/tests/integration/compatibility.rs @@ -49,6 +49,7 @@ pub fn run_bandwhich_from_fish_shell() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -78,6 +79,7 @@ pub fn fish_tab_completion_options() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -112,6 +114,7 @@ pub fn fish_select_tab_completion_options() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -150,6 +153,7 @@ pub fn vim_scroll_region_down() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -185,6 +189,7 @@ pub fn vim_ctrl_d() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -219,6 +224,7 @@ pub fn vim_ctrl_u() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -248,6 +254,7 @@ pub fn htop() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -277,6 +284,7 @@ pub fn htop_scrolling() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -306,6 +314,7 @@ pub fn htop_right_scrolling() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -343,6 +352,7 @@ pub fn vim_overwrite() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -375,6 +385,7 @@ pub fn clear_scroll_region() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -404,6 +415,7 @@ pub fn display_tab_characters_properly() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -433,6 +445,7 @@ pub fn neovim_insert_mode() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -464,6 +477,7 @@ pub fn bash_cursor_linewrap() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -495,6 +509,7 @@ pub fn fish_paste_multiline() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -524,6 +539,7 @@ pub fn git_log() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -555,6 +571,7 @@ pub fn git_diff_scrollup() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -584,6 +601,7 @@ pub fn emacs_longbuf() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -613,6 +631,7 @@ pub fn top_and_quit() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer @@ -648,6 +667,7 @@ pub fn exa_plus_omf_theme() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output .stdout_writer diff --git a/src/tests/integration/layouts.rs b/src/tests/integration/layouts.rs index e69869249..9a97170bb 100644 --- a/src/tests/integration/layouts.rs +++ b/src/tests/integration/layouts.rs @@ -29,11 +29,18 @@ pub fn accepts_basic_layout() { "src/tests/fixtures/layouts/three-panes-with-nesting.yaml", )); + let layout = zellij_utils::input::layout::Layout::from_path_or_default( + None, + opts.layout_path.as_ref(), + std::path::Path::new("unused"), + ); + start( Box::new(fake_input_output.clone()), opts, Box::new(fake_input_output.clone()), Config::default(), + layout, ); let output_frames = fake_input_output .stdout_writer diff --git a/src/tests/integration/move_focus_down.rs b/src/tests/integration/move_focus_down.rs index 2f18ab623..507897394 100644 --- a/src/tests/integration/move_focus_down.rs +++ b/src/tests/integration/move_focus_down.rs @@ -38,6 +38,7 @@ pub fn move_focus_down() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -75,6 +76,7 @@ pub fn move_focus_down_to_the_most_recently_used_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output diff --git a/src/tests/integration/move_focus_left.rs b/src/tests/integration/move_focus_left.rs index a9fca49ed..d33ccffab 100644 --- a/src/tests/integration/move_focus_left.rs +++ b/src/tests/integration/move_focus_left.rs @@ -38,6 +38,7 @@ pub fn move_focus_left() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -76,6 +77,7 @@ pub fn move_focus_left_to_the_most_recently_used_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -114,6 +116,7 @@ pub fn move_focus_left_changes_tab() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output diff --git a/src/tests/integration/move_focus_right.rs b/src/tests/integration/move_focus_right.rs index c85d5b96e..62e2a0dfa 100644 --- a/src/tests/integration/move_focus_right.rs +++ b/src/tests/integration/move_focus_right.rs @@ -39,6 +39,7 @@ pub fn move_focus_right() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -76,6 +77,7 @@ pub fn move_focus_right_to_the_most_recently_used_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -114,6 +116,7 @@ pub fn move_focus_right_changes_tab() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output diff --git a/src/tests/integration/move_focus_up.rs b/src/tests/integration/move_focus_up.rs index d161ff8a4..17dced0bd 100644 --- a/src/tests/integration/move_focus_up.rs +++ b/src/tests/integration/move_focus_up.rs @@ -37,6 +37,7 @@ pub fn move_focus_up() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output @@ -75,6 +76,7 @@ pub fn move_focus_up_to_the_most_recently_used_pane() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, ); let output_frames = fake_input_output diff --git a/src/tests/integration/resize_down.rs b/src/tests/integration/resize_down.rs index e5d35c266..ee439b630 100644 --- a/src/tests/integration/resize_down.rs +++ b/src/tests/integration/resize_down.rs @@ -49,6 +49,7 @@ pub fn resize_down_with_pane_above() { CliArgs::default(), Box::new(fake_input_output.clone()), Config::default(), + None, |