aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-06-29 18:10:59 +0200
committerGitHub <noreply@github.com>2026-06-29 18:10:59 +0200
commit245f5141c9bb7eb91f003efac4defc94470243fd (patch)
tree52ae6d003366f97e41c8a1450602aef63c8fdca2 /src
parentfeat: reload config on theme change (#5135) (diff)
downloadsl0ppij-245f5141c9bb7eb91f003efac4defc94470243fd.tar.gz
sl0ppij-245f5141c9bb7eb91f003efac4defc94470243fd.tar.xz
sl0ppij-245f5141c9bb7eb91f003efac4defc94470243fd.zip
Title frames (#5318)
* initial implementation * improve single line title design * hint text plugin infra * add proto regen task * display alt text in status bar * don't display text with full frames * style alt hover text * fix + style control own pane hover * make multiplayer indications responsive * update snapshots * plugin api * single pane as tab * better scroll styling * fix tests * tab-bar plus hover * plugin surface tests * integration tests * adjust all integration tests * reduce hover noise * add pane id to in place * more integration tests * style: rustfmt * update plugin assets * update assets and snapshots * add pr
Diffstat (limited to 'src')
-rw-r--r--src/main.rs2
-rw-r--r--src/tests/e2e/cases.rs18
-rw-r--r--src/tests/e2e/snapshots/zellij__tests__e2e__cases__quit_and_resurrect_session.snap47
-rw-r--r--src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap46
-rw-r--r--src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_blocking_command_through_the_cli.snap48
-rw-r--r--src/tests/e2e/snapshots/zellij__tests__e2e__cases__starts_with_one_terminal.snap46
-rw-r--r--src/tests/e2e/snapshots/zellij__tests__e2e__cases__typing_exit_closes_pane.snap46
7 files changed, 127 insertions, 126 deletions
diff --git a/src/main.rs b/src/main.rs
index c6ebebea..a5faf7d3 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -76,6 +76,7 @@ fn main() {
floating,
in_place,
close_replaced_pane,
+ pane_id: None,
name,
close_on_exit,
start_suspended,
@@ -127,6 +128,7 @@ fn main() {
floating,
in_place,
close_replaced_pane,
+ pane_id: None,
name: None,
close_on_exit: false,
start_suspended: false,
diff --git a/src/tests/e2e/cases.rs b/src/tests/e2e/cases.rs
index c20eb2c8..b83a7c6a 100644
--- a/src/tests/e2e/cases.rs
+++ b/src/tests/e2e/cases.rs
@@ -125,7 +125,7 @@ pub fn starts_with_one_terminal() {
name: "Wait for app to load",
instruction: |remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
- if remote_terminal.status_bar_appears() && remote_terminal.cursor_position_is(3, 2)
+ if remote_terminal.status_bar_appears() && remote_terminal.cursor_position_is(2, 1)
{
step_is_complete = true;
}
@@ -160,7 +160,7 @@ pub fn typing_exit_closes_pane() {
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
if remote_terminal.status_bar_appears()
- && remote_terminal.cursor_position_is(3, 2)
+ && remote_terminal.cursor_position_is(2, 1)
{
remote_terminal.send_key(&PANE_MODE);
std::thread::sleep(std::time::Duration::from_millis(100));
@@ -174,7 +174,7 @@ pub fn typing_exit_closes_pane() {
name: "Type exit",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
- if remote_terminal.cursor_position_is(63, 2)
+ if remote_terminal.cursor_position_is(62, 2)
&& remote_terminal.status_bar_appears()
{
remote_terminal.send_key("e".as_bytes());
@@ -196,7 +196,7 @@ pub fn typing_exit_closes_pane() {
name: "Wait for pane to close",
instruction: |remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
- if remote_terminal.cursor_position_is(3, 2) && remote_terminal.status_bar_appears()
+ if remote_terminal.cursor_position_is(2, 1) && remote_terminal.status_bar_appears()
{
// cursor is in the original pane
step_is_complete = true;
@@ -232,7 +232,7 @@ pub fn resize_terminal_window() {
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
if remote_terminal.status_bar_appears()
- && remote_terminal.cursor_position_is(3, 2)
+ && remote_terminal.cursor_position_is(2, 1)
{
remote_terminal.send_key(&PANE_MODE);
std::thread::sleep(std::time::Duration::from_millis(100));
@@ -246,7 +246,7 @@ pub fn resize_terminal_window() {
name: "Change terminal window size",
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
- if remote_terminal.cursor_position_is(63, 2)
+ if remote_terminal.cursor_position_is(62, 2)
&& remote_terminal.status_bar_appears()
{
// new pane has been opened and focused
@@ -261,7 +261,7 @@ pub fn resize_terminal_window() {
name: "wait for terminal to be resized and app to be re-rendered",
instruction: |remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
- if remote_terminal.cursor_position_is(53, 2) && remote_terminal.ctrl_plus_appears()
+ if remote_terminal.cursor_position_is(52, 2) && remote_terminal.ctrl_plus_appears()
{
// size has been changed
step_is_complete = true;
@@ -358,7 +358,7 @@ pub fn send_blocking_command_through_the_cli() {
instruction: |mut remote_terminal: RemoteTerminal| -> bool {
let mut step_is_complete = false;
if remote_terminal.status_bar_appears()
- && remote_terminal.cursor_position_is(3, 2)
+ && remote_terminal.cursor_position_is(2, 1)
{
std::thread::sleep(std::time::Duration::from_millis(100));
remote_terminal
@@ -415,7 +415,7 @@ pub fn send_blocking_command_through_the_cli() {
// wait until echo $? is visible, the exit status rendered, and the cursor is back
// at a blank prompt, which means the shell command actually executed
if remote_terminal.snapshot_contains("echo $?")
- && remote_terminal.snapshot_contains("│42")
+ && remote_terminal.snapshot_contains("42")
&& remote_terminal.snapshot_contains("$ \u{2588}")
&& remote_terminal.status_bar_appears()
{
diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__quit_and_resurrect_session.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__quit_and_resurrect_session.snap
index 2cc662bb..cee30f74 100644
--- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__quit_and_resurrect_session.snap
+++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__quit_and_resurrect_session.snap
@@ -1,29 +1,28 @@
---
source: src/tests/e2e/cases.rs
-assertion_line: 1212
expression: last_snapshot
---
- Zellij (e2e-test)  Tab #1  Tab #2  Tab #3  Tab #4 
-┌ Pane #1 ─────────────────────────────────────────────────┐┌ Pane #2 ─────────────────────────────────────────────────┐
-│$ ││$ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ┌ Pane #4 ────────────────────────────────────── PIN [ ] ┐ │
-│ │$ │ │
-│ │ ┌ top ────────────────────────────────────────── PIN [ ] ┐ │
-│ │ │ │ │
-│ │ │ │ ┐ │
-│ │ │ │ │────────────────────────────┘
-│ │ │ Waiting to run: top │ │────────────────────────────┐
-│ │ │ │ │ │
-│ │ │ <ENTER> run, <ESC> drop to shell, <Ctrl-c> exit │ │ │
-│ └─│ │ │ │
-│ │ │ │ │
-│ └─ <ENTER> run, <ESC> drop to shell, <Ctrl-c> exit ──────┘ │ │
-│ │ │ │
-│ └────────────────────────────────────────────────────────┘ │
-│ ││ │
-└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
+ Zellij (e2e-test)  Tab #1  Tab #2  Tab #3  Tab #4  + 
+ Pane #1 │ Pane #2
+$ │$
+ │
+ │
+ │
+ ┌ Pane #4 ────────────────────────────────────── PIN [ ] ┐
+ │$ │
+ │ ┌ top ────────────────────────────────────────── PIN [ ] ┐
+ │ │ │
+ │ │ │ ┐
+ │ │ │ │─────────────────────────────
+ │ │ Waiting to run: top │ │ #3
+ │ │ │ │
+ │ │ <ENTER> run, <ESC> drop to shell, <Ctrl-c> exit │ │
+ └─│ │ │
+ │ │ │
+ └─ <ENTER> run, <ESC> drop to shell, <Ctrl-c> exit ──────┘ │
+ │ │
+ └────────────────────────────────────────────────────────┘
+ │
+ │
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  BASE 
- (FLOATING PANES VISIBLE): Press Ctrl p, <w> to hide.
+ (FLOATING PANES VISIBLE): Press Ctrl p, <w> to hide.
diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap
index 86285b60..f7e731a0 100644
--- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap
+++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__resize_terminal_window.snap
@@ -2,27 +2,27 @@
source: src/tests/e2e/cases.rs
expression: last_snapshot
---
- Zellij (e2e-test)  Tab #1 
-┌ Pane #1 ───────────────────────────────────────┐┌ Pane #2 ───────────────────────────────────────┐
-│$ ││$ █ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-│ ││ │
-└────────────────────────────────────────────────┘└────────────────────────────────────────────────┘
+ Zellij (e2e-test)  Tab #1  + 
+ Pane #1 │ Pane #2
+$ │$ █
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
+ │
Ctrl + g  p  t  n  h  s  o  q  ...
diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_blocking_command_through_the_cli.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_blocking_command_through_the_cli.snap
index 38453712..c1a0ac4c 100644
--- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_blocking_command_through_the_cli.snap
+++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__send_blocking_command_through_the_cli.snap
@@ -2,27 +2,27 @@
source: src/tests/e2e/cases.rs
expression: last_snapshot
---
- Zellij (e2e-test)  Tab #1 
-┌ Pane #1 ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
-│$ /usr/src/zellij/zellij run --blocking --floating --close-on-exit -- bash -c 'sleep 2 && exit 42' │
-│$ │
-│$ echo $? │
-│42 │
-│$ │
-│$ █ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
- Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  Alt +  <n> New Pane  <f> Floating 
+ Zellij (e2e-test)  Tab #1  + 
+$ /usr/src/zellij/zellij run --blocking --floating --close-on-exit -- bash -c 'sleep 2 && exit 42'
+$
+$ echo $?
+42
+$
+$ █
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  Alt +  <n> New Pane  <f> Floating 
diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__starts_with_one_terminal.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__starts_with_one_terminal.snap
index 9a9b2265..cb5cc64c 100644
--- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__starts_with_one_terminal.snap
+++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__starts_with_one_terminal.snap
@@ -2,27 +2,27 @@
source: src/tests/e2e/cases.rs
expression: last_snapshot
---
- Zellij (e2e-test)  Tab #1 
-┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
-│$ █ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Zellij (e2e-test)  Tab #1  + 
+$ █
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__typing_exit_closes_pane.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__typing_exit_closes_pane.snap
index 9a9b2265..cb5cc64c 100644
--- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__typing_exit_closes_pane.snap
+++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__typing_exit_closes_pane.snap
@@ -2,27 +2,27 @@
source: src/tests/e2e/cases.rs
expression: last_snapshot
---
- Zellij (e2e-test)  Tab #1 
-┌ Pane #1 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
-│$ █ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-│ │
-└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
+ Zellij (e2e-test)  Tab #1  + 
+$ █
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...