fix(status-bar): proper truncation of secondary info (#4313)

* fix(status-bar): properly truncate secondary keybindings

* style(fmt): rustfmt

* more correct fix

* fix e2e tests

* docs(changelog): add PR
This commit is contained in:
Aram Drevekenin 2025-07-22 21:12:38 +02:00 committed by GitHub
parent 67e08cbb74
commit 91716979e0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 41 additions and 69 deletions

View file

@ -26,6 +26,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
* fix: stack pane ordering when stacking multiple panes (https://github.com/zellij-org/zellij/pull/4308)
* fix: normalize focusing of plugins launched through pipes (https://github.com/zellij-org/zellij/pull/4309)
* performance: improve dumping screen for when editing scrollback with $EDITOR (https://github.com/zellij-org/zellij/pull/2548)
* fix: properly truncate status bar secondary info (https://github.com/zellij-org/zellij/pull/4313)
## [0.42.2] - 2025-04-15
* refactor(terminal): track scroll_region as tuple rather than Option (https://github.com/zellij-org/zellij/pull/4082)

View file

@ -980,18 +980,19 @@ fn secondary_keybinds(help: &ModeInfo, tab_info: Option<&TabInfo>, max_len: usiz
}
if short_line.len <= max_len {
short_line
} else {
} else if max_len >= 3 {
let part = serialize_text(
&Text::new(format!(
"{:>width$}",
"...",
width = max_len.saturating_sub(3)
))
.color_range(0, ..)
.opaque(),
&Text::new(format!("{:>width$}", "...", width = max_len))
.color_range(0, ..)
.opaque(),
);
let len = max_len.saturating_sub(3);
let len = max_len;
LinePart { part, len }
} else {
LinePart {
part: "".to_owned(),
len: 0,
}
}
}
}

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 2000
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 239
expression: last_snapshot
---
Zellij
@ -22,4 +21,4 @@ expression: last_snapshot
│ │
│ │
└──────┘
...
Ctrl +

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 714
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1373
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ ││ │
│ ││ │
└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1650
expression: first_runner_snapshot
---
Zellij (mirrored_sessions)  Tab #1  Tab #2 
@ -26,4 +25,4 @@ expression: first_runner_snapshot
│ ││ │
│ ││ │
└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 562
expression: account_for_races_in_snapshot(last_snapshot)
---
Zellij (e2e-test)  Tab #1  Tab #3  Tab #2 
@ -26,4 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot)
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 624
expression: account_for_races_in_snapshot(last_snapshot)
---
Zellij (e2e-test)  Tab #2  Tab #1  Tab #3 
@ -26,4 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot)
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 596
expression: account_for_races_in_snapshot(last_snapshot)
---
Zellij (e2e-test)  Tab #1  Tab #3  Tab #2 
@ -26,4 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot)
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 648
expression: account_for_races_in_snapshot(last_snapshot)
---
Zellij (e2e-test)  Tab #3  Tab #2  Tab #1 
@ -26,4 +25,4 @@ expression: account_for_races_in_snapshot(last_snapshot)
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1836
expression: second_runner_snapshot
---
Zellij (multiple_users_in_same_pane_and_tab)  Tab #1 [ ]
@ -26,4 +25,4 @@ expression: second_runner_snapshot
│ ││ │
│ ││ │
└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1835
expression: first_runner_snapshot
---
Zellij (multiple_users_in_same_pane_and_tab)  Tab #1 [ ]
@ -26,4 +25,4 @@ expression: first_runner_snapshot
│ ││ │
│ ││ │
└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1936
expression: second_runner_snapshot
---
Zellij (multiple_users_in_different_tabs)  Tab #1 [ ] Tab #2 
@ -26,4 +25,4 @@ expression: second_runner_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1935
expression: first_runner_snapshot
---
Zellij (multiple_users_in_different_tabs)  Tab #1  Tab #2 [ ]
@ -26,4 +25,4 @@ expression: first_runner_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1741
expression: second_runner_snapshot
---
Zellij (multiple_users_in_same_pane_and_tab)  Tab #1 [ ]
@ -26,4 +25,4 @@ expression: second_runner_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1740
expression: first_runner_snapshot
---
Zellij (multiple_users_in_same_pane_and_tab)  Tab #1 [ ]
@ -26,4 +25,4 @@ expression: first_runner_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 454
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1  Tab #2 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 2521
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 935
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ ││ │
│ ││ │
└────────────────────────────────────────────────────┘└────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1064
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ ││ │
│ ││ │
└────────────────────────────────────────────────┘└────────────────────────────────────────────────┘
Ctrl + g  p  t  n  h  s  o  q  ...
Ctrl + g  p  t  n  h  s  o  q  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1451
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ ││line18 │
│ ││li█e19 │
└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 2372
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1  Alt <[]>  VERTICAL 
@ -26,4 +25,4 @@ expression: last_snapshot
│ ││ │
│ ││ │
└─────────────────────────────────────────────────────────────────────────┘└ [ EXIT CODE: 0 ] <ENTER> re-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  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 195
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ ││ │
│ ││ │
└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 1500
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ $ │
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 145
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 2099
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ ││ │
│ ││ │
└──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 2049
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1  Alt <[]>  STAGGERED 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 386
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 (FULLSCREEN) 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 867
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 2263
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...

View file

@ -1,6 +1,5 @@
---
source: src/tests/e2e/cases.rs
assertion_line: 2206
expression: last_snapshot
---
Zellij (e2e-test)  Tab #1 
@ -26,4 +25,4 @@ expression: last_snapshot
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...
Ctrl + <g> LOCK  <p> PANE  <t> TAB  <n> RESIZE  <h> MOVE  <s> SEARCH  <o> SESSION  <q> QUIT  ...