aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-integration-tests/tests/snapshots
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-06-16 15:44:22 +0200
committerGitHub <noreply@github.com>2026-06-16 15:44:22 +0200
commit8c7e41c9aaafc44520380a2c86db517fde54ad31 (patch)
treed54bb40aef913c07f2142bd835dfa47d09fae5af /zellij-integration-tests/tests/snapshots
parentMobile layout (#5241) (diff)
downloadsl0ppij-8c7e41c9aaafc44520380a2c86db517fde54ad31.tar.gz
sl0ppij-8c7e41c9aaafc44520380a2c86db517fde54ad31.tar.xz
sl0ppij-8c7e41c9aaafc44520380a2c86db517fde54ad31.zip
chore: new test infra (#5269)
* initial implementation * refactoring and cleanups * port basic e2e tests * fix tab rotation * migrate client and mouse tests * migrate the rest of the tests * remove old e2e tests * rustfmt * add e2e note * fix stale test * fix: cross platform locking/cleanup * fix: change mode race discovered by tests * rustfmt * fix: attach/detach race in tests * fix plugin test assertion * add pr
Diffstat (limited to 'zellij-integration-tests/tests/snapshots')
-rw-r--r--zellij-integration-tests/tests/snapshots/app__edit_scrollback.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/app__resize_terminal_window.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/app__status_bar_loads_custom_keybindings.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/app__use_custom_layout_with_relative_path.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/basic__resize_pane.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/basic__split_terminals_vertically.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/basic__starts_with_one_terminal.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/cli__override_layout_from_default_to_compact.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/cli__send_blocking_command_through_the_cli.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/cli__send_command_through_the_cli.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality-2.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__detach_and_attach_session.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__mirrored_sessions.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab-2.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs-2.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab-2.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/modes__bracketed_paste.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/modes__lock_mode.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/modes__scrolling_inside_a_pane.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/modes__tmux_mode.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/mouse__focus_pane_with_mouse.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/mouse__pin_floating_panes.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/mouse__scrolling_inside_a_pane_with_mouse.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/panes__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap24
-rw-r--r--zellij-integration-tests/tests/snapshots/panes__close_pane.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/panes__pane_closes_when_its_process_exits.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/panes__start_without_pane_frames.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/panes__toggle_floating_panes.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/panes__toggle_pane_fullscreen.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/panes__undo_rename_pane.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/plugins__load_plugins_in_background_on_startup.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session_with_viewport_serialization.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/tabs__close_tab.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left_until_it_wraps_around.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right_until_it_wraps_around.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/tabs__open_new_tab.snap28
-rw-r--r--zellij-integration-tests/tests/snapshots/tabs__undo_rename_tab.snap28
44 files changed, 1228 insertions, 0 deletions
diff --git a/zellij-integration-tests/tests/snapshots/app__edit_scrollback.snap b/zellij-integration-tests/tests/snapshots/app__edit_scrollback.snap
new file mode 100644
index 00000000..80505f55
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/app__edit_scrollback.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/app.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ EDITING SCROLLBACK ──────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ SCROLLBACK_MARKER_ONE │
+│SCROLLBACK_MARKER_TWO │
+│█ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/app__resize_terminal_window.snap b/zellij-integration-tests/tests/snapshots/app__resize_terminal_window.snap
new file mode 100644
index 00000000..2a285443
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/app__resize_terminal_window.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/app.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ───────────────────────────────────────┐┌ Pane #2 ───────────────────────────────────────┐
+│$ ││$ █ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└────────────────────────────────────────────────┘└────────────────────────────────────────────────┘
+ Ctrl + g  p  t  n  h  s  o  q  ...
diff --git a/zellij-integration-tests/tests/snapshots/app__status_bar_loads_custom_keybindings.snap b/zellij-integration-tests/tests/snapshots/app__status_bar_loads_custom_keybindings.snap
new file mode 100644
index 00000000..0670f288
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/app__status_bar_loads_custom_keybindings.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/app.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ F1  LOCK  F2  PANE  F3  TAB  F4  RESIZE  F5  MOVE  F6  SEARCH  Alt F7  SESSION  Ctrl F8  QUIT 
diff --git a/zellij-integration-tests/tests/snapshots/app__use_custom_layout_with_relative_path.snap b/zellij-integration-tests/tests/snapshots/app__use_custom_layout_with_relative_path.snap
new file mode 100644
index 00000000..a60604ea
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/app__use_custom_layout_with_relative_path.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/app.rs
+expression: normalized(&grid_snapshot)
+---
+
+ Tip: UNBOUND => open new pane. UNBOUND => navigate between panes. UNBOUND => increase/decrease pane size.
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Zellij (test)  Tab #1 
diff --git a/zellij-integration-tests/tests/snapshots/basic__resize_pane.snap b/zellij-integration-tests/tests/snapshots/basic__resize_pane.snap
new file mode 100644
index 00000000..ba160d8c
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/basic__resize_pane.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/basic.rs
+expression: normalized(&snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ───────────────────────────────────────────┐┌ Pane #2 ───────────────────────────────────────────────────────┐
+│$ ││$ █ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└────────────────────────────────────────────────────┘└────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/basic__split_terminals_vertically.snap b/zellij-integration-tests/tests/snapshots/basic__split_terminals_vertically.snap
new file mode 100644
index 00000000..7f5f5a69
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/basic__split_terminals_vertically.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/basic.rs
+expression: normalized(&snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│$ ││$ █ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/basic__starts_with_one_terminal.snap b/zellij-integration-tests/tests/snapshots/basic__starts_with_one_terminal.snap
new file mode 100644
index 00000000..7fff8f8f
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/basic__starts_with_one_terminal.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/basic.rs
+expression: normalized(&snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/cli__override_layout_from_default_to_compact.snap b/zellij-integration-tests/tests/snapshots/cli__override_layout_from_default_to_compact.snap
new file mode 100644
index 00000000..386bd7e5
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/cli__override_layout_from_default_to_compact.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/cli.rs
+expression: normalized(&grid_snapshot)
+---
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Zellij (test) NORMAL  Tab #1 
diff --git a/zellij-integration-tests/tests/snapshots/cli__send_blocking_command_through_the_cli.snap b/zellij-integration-tests/tests/snapshots/cli__send_blocking_command_through_the_cli.snap
new file mode 100644
index 00000000..6b2d58e7
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/cli__send_blocking_command_through_the_cli.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/cli.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/cli__send_command_through_the_cli.snap b/zellij-integration-tests/tests/snapshots/cli__send_command_through_the_cli.snap
new file mode 100644
index 00000000..42573137
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/cli__send_command_through_the_cli.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/cli.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ suspended-command ───────────────────────────────────────┐
+│$ ││foo │
+│ ││foo │
+│ ││█ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality-2.snap b/zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality-2.snap
new file mode 100644
index 00000000..707da328
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality-2.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/cli.rs
+expression: normalized(&watcher_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│$ ││$ █ │
+│WATCHER_OUTPUT_1 ││ │
+│WATCHER_OUTPUT_2 ││ │
+│WATCHER_OUTPUT_3 ││ │
+│WATCHER_DONE ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality.snap b/zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality.snap
new file mode 100644
index 00000000..633d8f3b
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/cli__watcher_client_functionality.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/cli.rs
+expression: normalized(&main_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│$ ││$ █ │
+│WATCHER_OUTPUT_1 ││ │
+│WATCHER_OUTPUT_2 ││ │
+│WATCHER_OUTPUT_3 ││ │
+│WATCHER_DONE ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__detach_and_attach_session.snap b/zellij-integration-tests/tests/snapshots/clients__detach_and_attach_session.snap
new file mode 100644
index 00000000..14b6ad52
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__detach_and_attach_session.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│$ ││$ I am some text█ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__mirrored_sessions.snap b/zellij-integration-tests/tests/snapshots/clients__mirrored_sessions.snap
new file mode 100644
index 00000000..0e6e31cb
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__mirrored_sessions.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&main_grid)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│$ ││$ █ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab-2.snap b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab-2.snap
new file mode 100644
index 00000000..59e690c5
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab-2.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&second_grid)
+---
+ Zellij (test)  Tab #1 [ ]
+┌ Pane #1 ───────────┤ FOCUSED USER: ├───────────────────┐┌ Pane #2 ──────────────┤ MY FOCUS ├───────────────────────┐
+│$ ││$ █ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab.snap b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab.snap
new file mode 100644
index 00000000..6ad8e0cd
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_panes_and_same_tab.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&main_grid)
+---
+ Zellij (test)  Tab #1 [ ]
+┌ Pane #1 ──────────────┤ MY FOCUS ├───────────────────────┐┌ Pane #2 ───────────┤ FOCUSED USER: ├───────────────────┐
+│$ █ ││$ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs-2.snap b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs-2.snap
new file mode 100644
index 00000000..0806898d
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs-2.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&second_grid)
+---
+ Zellij (test)  Tab #1 [ ] Tab #2 
+┌ Pane #1 ────────────────────────────────────────────┤ MY FOCUS ├─────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs.snap b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs.snap
new file mode 100644
index 00000000..fe0a78a9
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_different_tabs.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&main_grid)
+---
+ Zellij (test)  Tab #1  Tab #2 [ ]
+┌ Pane #1 ────────────────────────────────────────────┤ MY FOCUS ├─────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab-2.snap b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab-2.snap
new file mode 100644
index 00000000..ea21dde0
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab-2.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&second_grid)
+---
+ Zellij (test)  Tab #1 [ ]
+┌ Pane #1 ─────────────────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab.snap b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab.snap
new file mode 100644
index 00000000..5e27178e
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/clients__multiple_users_in_same_pane_and_tab.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/clients.rs
+expression: normalized(&main_grid)
+---
+ Zellij (test)  Tab #1 [ ]
+┌ Pane #1 ─────────────────────────────────────────┤ MY FOCUS AND: ├─────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/modes__bracketed_paste.snap b/zellij-integration-tests/tests/snapshots/modes__bracketed_paste.snap
new file mode 100644
index 00000000..421627c3
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/modes__bracketed_paste.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/modes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ nabc█ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/modes__lock_mode.snap b/zellij-integration-tests/tests/snapshots/modes__lock_mode.snap
new file mode 100644
index 00000000..8dde2b5b
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/modes__lock_mode.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/modes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ nabc█ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK 
diff --git a/zellij-integration-tests/tests/snapshots/modes__scrolling_inside_a_pane.snap b/zellij-integration-tests/tests/snapshots/modes__scrolling_inside_a_pane.snap
new file mode 100644
index 00000000..0af68b35
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/modes__scrolling_inside_a_pane.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/modes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────── SCROLL: 2/2 ┐
+│$ ││$ line1 │
+│ ││line2 │
+│ ││line3 │
+│ ││line4 │
+│ ││line5 │
+│ ││line6 │
+│ ││line7 │
+│ ││line8 │
+│ ││line9 │
+│ ││line10 │
+│ ││line11 │
+│ ││line12 │
+│ ││line13 │
+│ ││line14 │
+│ ││line15 │
+│ ││line16 │
+│ ││line17 │
+│ ││line18 │
+│ ││line19 │
+│ ││█ine20 │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <s> SEARCH   s  Search  ↓↑  Scroll  PgDn|PgUp  Scroll  d|u  Scroll  e  Edit  ENTER  Select 
diff --git a/zellij-integration-tests/tests/snapshots/modes__tmux_mode.snap b/zellij-integration-tests/tests/snapshots/modes__tmux_mode.snap
new file mode 100644
index 00000000..42363818
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/modes__tmux_mode.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/modes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│$ ││$ █ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/mouse__focus_pane_with_mouse.snap b/zellij-integration-tests/tests/snapshots/mouse__focus_pane_with_mouse.snap
new file mode 100644
index 00000000..f007cf9d
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/mouse__focus_pane_with_mouse.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/mouse.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│$ █ ││$ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/mouse__pin_floating_panes.snap b/zellij-integration-tests/tests/snapshots/mouse__pin_floating_panes.snap
new file mode 100644
index 00000000..6bdb9ca6
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/mouse__pin_floating_panes.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/mouse.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ line1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+│a │
+│line2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line5aaaaaaaaaaaaaaaaaaaaaaaa┌ Pane #2 ──────────────────────────────────────── PIN [+] ┐aaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line6aaaaaaaaaaaaaaaaaaaaaaaa│$ │aaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line7aaaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line8aaaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line9aaaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaa │
+│line10aaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+│line11aaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+│line12aaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+│line13aaaaaaaaaaaaaaaaaaaaaaa│ │aaaaaaaaaaaaaaaaaaaaaaaaaaaaa│
+│█ │ │ │
+│ └──────────────────────────────────────────────────────────┘ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/mouse__scrolling_inside_a_pane_with_mouse.snap b/zellij-integration-tests/tests/snapshots/mouse__scrolling_inside_a_pane_with_mouse.snap
new file mode 100644
index 00000000..629cc513
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/mouse__scrolling_inside_a_pane_with_mouse.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/mouse.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────── SCROLL: 2/2 ┐
+│$ ││$ line1 │
+│ ││line2 │
+│ ││line3 │
+│ ││line4 │
+│ ││line5 │
+│ ││line6 │
+│ ││line7 │
+│ ││line8 │
+│ ││line9 │
+│ ││line10 │
+│ ││line11 │
+│ ││line12 │
+│ ││line13 │
+│ ││line14 │
+│ ││line15 │
+│ ││line16 │
+│ ││line17 │
+│ ││line18 │
+│ ││line19 │
+│ ││█ine20 │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/panes__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap b/zellij-integration-tests/tests/snapshots/panes__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap
new file mode 100644
index 00000000..0800ee6c
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/panes__cannot_split_terminals_vertically_when_active_terminal_is_too_small.snap
@@ -0,0 +1,24 @@
+---
+source: zellij-integration-tests/tests/panes.rs
+expression: normalized(&grid_snapshot)
+---
+ 
+┌──────┐
+│$ done│
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────┘
+ Ctrl +
diff --git a/zellij-integration-tests/tests/snapshots/panes__close_pane.snap b/zellij-integration-tests/tests/snapshots/panes__close_pane.snap
new file mode 100644
index 00000000..b9d0bb9c
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/panes__close_pane.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/panes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/panes__pane_closes_when_its_process_exits.snap b/zellij-integration-tests/tests/snapshots/panes__pane_closes_when_its_process_exits.snap
new file mode 100644
index 00000000..b9d0bb9c
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/panes__pane_closes_when_its_process_exits.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/panes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/panes__start_without_pane_frames.snap b/zellij-integration-tests/tests/snapshots/panes__start_without_pane_frames.snap
new file mode 100644
index 00000000..e58b8c3e
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/panes__start_without_pane_frames.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/panes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+$ │$ █
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/panes__toggle_floating_panes.snap b/zellij-integration-tests/tests/snapshots/panes__toggle_floating_panes.snap
new file mode 100644
index 00000000..3a4e1240
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/panes__toggle_floating_panes.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/panes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ │
+│ │
+│ │
+│ │
+│ │
+│ ┌ Pane #2 ──────────────────────────────────────── PIN [ ] ┐ │
+│ │$ █ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ └──────────────────────────────────────────────────────────┘ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/panes__toggle_pane_fullscreen.snap b/zellij-integration-tests/tests/snapshots/panes__toggle_pane_fullscreen.snap
new file mode 100644
index 00000000..fcb1eba9
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/panes__toggle_pane_fullscreen.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/panes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 (FULLSCREEN) 
+┌ Pane #2 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/panes__undo_rename_pane.snap b/zellij-integration-tests/tests/snapshots/panes__undo_rename_pane.snap
new file mode 100644
index 00000000..b9d0bb9c
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/panes__undo_rename_pane.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/panes.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/plugins__load_plugins_in_background_on_startup.snap b/zellij-integration-tests/tests/snapshots/plugins__load_plugins_in_background_on_startup.snap
new file mode 100644
index 00000000..7341d7a6
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/plugins__load_plugins_in_background_on_startup.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/plugins.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ │
+│ │
+│ │
+│ │
+│ ┌ (.) - permission-requester ───────────────────── PIN [ ] ┐ │
+│ │This plugin asks permission to: ReadApplicationState, Chan│ │
+│ │geApplicationState, OpenFiles, RunCommands, OpenTerminalsO│ │
+│ │rPlugins, WriteToStdin, WebAccess, ReadCliPipes, MessageAn│ │
+│ │dLaunchOtherPlugins, Reconfigure, RunActionsAsUser, WriteT│ │
+│ │oClipboard, ReadSessionEnvironmentVariables. Allow? (y/n) │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ └──────────────────────────────────────────────────────────┘ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+
diff --git a/zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session.snap b/zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session.snap
new file mode 100644
index 00000000..414fdd10
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/resurrection.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  alpha  beta 
+┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
+│ ││█ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+│ ││ │
+└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session_with_viewport_serialization.snap b/zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session_with_viewport_serialization.snap
new file mode 100644
index 00000000..9cdf365b
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/resurrection__quit_and_resurrect_session_with_viewport_serialization.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/resurrection.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│ │
+│VIEWPORT_CONTENT_TO_RESTORE │
+│ │
+│█ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/tabs__close_tab.snap b/zellij-integration-tests/tests/snapshots/tabs__close_tab.snap
new file mode 100644
index 00000000..f1544d42
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/tabs__close_tab.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/tabs.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left.snap b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left.snap
new file mode 100644
index 00000000..5afe4d28
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/tabs.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1  Tab #3  Tab #2 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left_until_it_wraps_around.snap b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left_until_it_wraps_around.snap
new file mode 100644
index 00000000..d045b135
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_left_until_it_wraps_around.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/tabs.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1  Tab #2  Tab #3 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right.snap b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right.snap
new file mode 100644
index 00000000..5afe4d28
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/tabs.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1  Tab #3  Tab #2 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right_until_it_wraps_around.snap b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right_until_it_wraps_around.snap
new file mode 100644
index 00000000..2b4f6227
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/tabs__move_tab_to_right_until_it_wraps_around.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/tabs.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #3  Tab #1  Tab #2 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/tabs__open_new_tab.snap b/zellij-integration-tests/tests/snapshots/tabs__open_new_tab.snap
new file mode 100644
index 00000000..da0f2839
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/tabs__open_new_tab.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/tabs.rs
+expression: normalized(&zellij.snapshot())
+---
+ Zellij (test)  Tab #1  Tab #2 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/zellij-integration-tests/tests/snapshots/tabs__undo_rename_tab.snap b/zellij-integration-tests/tests/snapshots/tabs__undo_rename_tab.snap
new file mode 100644
index 00000000..f1544d42
--- /dev/null
+++ b/zellij-integration-tests/tests/snapshots/tabs__undo_rename_tab.snap
@@ -0,0 +1,28 @@
+---
+source: zellij-integration-tests/tests/tabs.rs
+expression: normalized(&grid_snapshot)
+---
+ Zellij (test)  Tab #1 
+┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
+│$ █ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+│ │
+└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...