Proto commits in zellij-org/zellij

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:ea07e2d
Author:Aram Drevekenin
Committer:GitHub

Nested session handling (#5417) * fix: theme query and updated pixel dimensions * add no-ui-fullscreen key/action/capability * protocol core * integration test harness * fix integration tests * fix flaky tests * nested ui (dimming) and directional focus initial implementation * integration tests for nested ui dimming and directional focus * initial full screen nesteed implementation * fix: keep hidden floating panes hidden across nested no-ui fullscreen * fix integration tests * no ui fullscreen integration tests * hardening behavior/tests * fix(nested): re-derive descend/dim on host tab switch and new-tab so clicking dimmed chrome ascends * initial modal implementation * initial ui improvements * fix integration tests * improve nested selection ui * nested session modal refactoring and tests * improve integration test speed somewhat * some ui adjustments * simplify full/auto nested session handling * hints in compact-bar * guest stdin leak fix * allow floating panes to be fullscreen * make nested session handling configurable * protocol reannounce * refactor: naming confusion * improve ux somewhat * rustfmt * merge fixes * improve integration test rate limiting (fix ci) * add pr

Commit:02108ad
Author:Aram Drevekenin

merge fixes

Commit:707c0a7
Author:Aram Drevekenin
Committer:Aram Drevekenin

make nested session handling configurable

Commit:d0092b3
Author:Aram Drevekenin
Committer:Aram Drevekenin

initial ui improvements

Commit:d004c6e
Author:Aram Drevekenin
Committer:Aram Drevekenin

initial modal implementation

Commit:50a1bcb
Author:Aram Drevekenin
Committer:Aram Drevekenin

initial full screen nesteed implementation

Commit:02792b0
Author:Aram Drevekenin
Committer:Aram Drevekenin

nested ui (dimming) and directional focus initial implementation

Commit:381e951
Author:Aram Drevekenin
Committer:Aram Drevekenin

fix integration tests

Commit:468cf82
Author:Aram Drevekenin
Committer:Aram Drevekenin

protocol core

Commit:7bc14db
Author:Aram Drevekenin
Committer:Aram Drevekenin

add no-ui-fullscreen key/action/capability

Commit:cd50d72
Author:WeZZard
Committer:GitHub

feat(config): add mouse_scroll_resize option (#5283)

Commit:4bfda97
Author:Aram Drevekenin
Committer:GitHub

Allow creating panes/tabs from the CLI without changing focus to them (#5346) * feat: allow opening panes and tabs from the cli without focusing them * rustfmt * fix flake * rustfmt * add pr

Commit:4104d89
Author:Aram Drevekenin

feat: allow opening panes and tabs from the cli without focusing them

Commit:82c4a24
Author:Aram Drevekenin
Committer:GitHub

Stacked lists (#5331) * initial implementation * improve ui * fix: stacked resize interaction * title list boundaries fix * fix BEL * mouse parity * float/embed + bulk-op features * fix in-place bug * improve ui * config live reload * improve ui * fix issues, add exit status * fix for serialization * fix tests * integration tests * comments * refactor: duplicate title logic * refactor: consolidate logic * fix: flaky tests * add a stacked swap layout * rustfmt * fix e2e * add pr

Commit:4d618be
Author:Aram Drevekenin

initial implementation

Commit:245f514
Author:Aram Drevekenin
Committer:GitHub

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

Commit:907d461
Author:Aram Drevekenin

plugin surface tests

Commit:44771bd
Author:Aram Drevekenin

single pane as tab

Commit:a748285
Author:Aram Drevekenin

plugin api

Commit:e1c421d
Author:Aram Drevekenin

don't display text with full frames

Commit:90c0f7a
Author:Aram Drevekenin

hint text plugin infra

Commit:19f946d
Author:Aram Drevekenin

initial implementation

Commit:ebd731b
Author:DawidPietrykowski
Committer:GitHub

feat(panes): `FocusLastPane` action (#4241) * feat(panes): focus last pane (#4142) * add tests * add client id parameter to `add_floating_pane` * add action for floating panes * add tests for floating panes * add keybinds to configs * rebase fixes * simplify focus logic when adding stacked pane * formatting fix * formatting fix 2 * fix: make sure expanding pane always focuses it for all clients in stack * add pr * fix rebase --------- Co-authored-by: Aram Drevekenin <aram@poor.dev>

Commit:b6a5ad0
Author:Aram Drevekenin
Committer:GitHub

Mobile layout (#5241) * phase 2+3 * initial mobile plugin (phases 4 + 5 + 6) * some bugfixes * implement stage 7 * mobile interface improvements * improve mobile pane/tab picker * more ui improvements and fixes * various mobile fixes * some mobile fixes * mobile keyboard triggering fix * some cleanups * initial plugin keyboard implementation * improve keyboard hit zones * improve keyboard * pinch resize * pinching fixes * implement scrolling + panning * initial keyboard resizing * fix: mobile first render issues * keyboard responsiveness * fix some issues with the keyboard * implement fit * fix mobile scrolling * add tilde cell to compact * improve mobile keyboard * fix starting mobile terminal font to natural keyboard size * fix mobile resize blank screen flash * shadow focus for mobile * more keyboard fixes * improve mobile status bar * fix: render plugins to mobile clients * allow opening new panes/tabs from the mobile plugin * allow configuring * fix dot slash * improve mobile native soft keyboard interaction * switch to native keyboard - initial implementation * dirty hacks, but phone keyboard works now * adjust keyboard help strip * fix cursor in mobile * fix keyboard and help line * rename keyboard to modifier bar * allow starting new session * make clicking session name bring us to new session menu * allow switching to desktop from the mobile ui * mobile welcome screen initial implementation * mobile welcome screen fixes * various welcome screen fixes * more mobile fixes * moar mobile fixes * mobile ui redesign * fix: swallowed backspace bug * switch session screen improvement * touch up some interfaces * refactor: move mobile state to own struct * refactor: move fit resizing to the server * remove dead flash code * some cleanups * refactor: clear fit on close * refactor: improve fit api * refactor: pane sync functions * refactor: mouse * refactor: break into modules * some cleanups for the sessions screen * fix scrolling and other stuff * refactor: sessions screen * refactor: panes screen * refactor: new session screen * refactor: menu screen * refactor: render * cleanups * refactor: plugin structure * remove unused welcome screen path * Rename api * refactor input.js * cleanup useless comments * fit/mobile refactoring * take out the garbage * remove more comments * remove mobile flash on startup/attach * fix: various mobile startup issues * fix space bugs * cleanup * rustfmt * fix windows build * adjust modifier bar ui * add pr

Commit:6229e37
Author:Aram Drevekenin
Committer:Aram Drevekenin

allow switching to desktop from the mobile ui

Commit:2e273da
Author:Aram Drevekenin
Committer:Aram Drevekenin

remove mobile flash on startup/attach

Commit:470c39e
Author:Aram Drevekenin
Committer:Aram Drevekenin

take out the garbage

Commit:e555483
Author:Aram Drevekenin
Committer:Aram Drevekenin

Rename api

Commit:bbb5590
Author:Aram Drevekenin
Committer:Aram Drevekenin

refactor: improve fit api

Commit:cc9d179
Author:Aram Drevekenin
Committer:Aram Drevekenin

refactor: move fit resizing to the server

Commit:01698a2
Author:Aram Drevekenin
Committer:Aram Drevekenin

dirty hacks, but phone keyboard works now

Commit:c635d98
Author:Aram Drevekenin
Committer:Aram Drevekenin

allow configuring

Commit:dc03ebc
Author:Aram Drevekenin
Committer:Aram Drevekenin

allow opening new panes/tabs from the mobile plugin

Commit:83a7e62
Author:Aram Drevekenin
Committer:Aram Drevekenin

shadow focus for mobile

Commit:e14ec17
Author:Aram Drevekenin
Committer:Aram Drevekenin

implement fit

Commit:c4a4ebd
Author:Aram Drevekenin
Committer:Aram Drevekenin

fix some issues with the keyboard

Commit:4812efb
Author:Aram Drevekenin
Committer:Aram Drevekenin

implement scrolling + panning

Commit:a18347b
Author:Aram Drevekenin
Committer:Aram Drevekenin

pinching fixes

Commit:69c0947
Author:Aram Drevekenin
Committer:Aram Drevekenin

mobile keyboard triggering fix

Commit:a42f320
Author:Aram Drevekenin
Committer:Aram Drevekenin

implement stage 7

Commit:49b217d
Author:Aram Drevekenin
Committer:Aram Drevekenin

phase 2+3

Commit:377476f
Author:Aram Drevekenin
Committer:Aram Drevekenin

Welcome screen del fix (#5160) * fix: session-manager delete * rustfmt * add pr (cherry picked from commit fc6c5942a12d7314f606be390de9d05497f20bd3)

Commit:fc6c594
Author:Aram Drevekenin
Committer:GitHub

Welcome screen del fix (#5160) * fix: session-manager delete * rustfmt * add pr

Commit:618cfaf
Author:Aram Drevekenin

fix: session-manager delete

Commit:227142d
Author:Aram Drevekenin
Committer:GitHub

Support CSI2031 (dark/light theme switching) + remove STDIN cache to avoid stale color queries (#5105) * initial phase 1 implementation * various fies * some fixes * fix fragmented stdin cases * some fixes * renaming * guard against old clients * implement csi 2031 * allow toggling theme with actions * rustfmt * fix: finalize trailing characters in ansi parser as well * add pr

Commit:d2e347d
Author:Aram Drevekenin

allow toggling theme with actions

Commit:059d3d1
Author:Aram Drevekenin

implement csi 2031

Commit:95d0541
Author:Aram Drevekenin

initial phase 1 implementation

Commit:aa29cba
Author:Aram Drevekenin
Committer:GitHub

Some idle CPU and disk/io fixes, new CommandChanged plugin Event (#5063) * initial implementation * fix mouse cpu spam * prevent excess metadata write and prune sessions on startup * consolidate CommandChanged and PaneCommandChanged * tests * rustfmt * add pr

Commit:7de7a31
Author:Aram Drevekenin

consolidate CommandChanged and PaneCommandChanged

Commit:f229d13
Author:Aram Drevekenin

initial implementation

Commit:8ce05f0
Author:Aram Drevekenin
Committer:GitHub

Layout string flag (#4956) * allow sending a stringified layout with --layout-string * add --tab-id to all the things * fix windows tests * add pr

Commit:9b3bb04
Author:Aram Drevekenin

add --tab-id to all the things

Commit:608cc99
Author:Aram Drevekenin
Committer:GitHub

Support OSC-99 desktop notifications (#4931) * initial implementation * tests * fix: always report to zellij, only report to app if it wants a report * rustfmt * fix: always report capabilities to panes requesting them * rustfmt * add pr

Commit:0d1a1da
Author:Aram Drevekenin
Committer:Aram Drevekenin

initial implementation

Commit:802c96f
Author:Aram Drevekenin
Committer:GitHub

CLI focus-pane-id and are-floating-panes-visible actions (#4926) * add zellij action focus-pane-id * zellij action are-floating-panes-visible * fix e2e tests * add pr

Commit:4202267
Author:Aram Drevekenin

zellij action are-floating-panes-visible

Commit:8560f1a
Author:Aram Drevekenin

add zellij action focus-pane-id

Commit:12ee607
Author:Aram Drevekenin
Committer:GitHub

fix: performance regression when switching tabs (#4918) * remove pane render report * only collect pane contents if pane should render * add logs * conditional keybinding serialization * remove logs * rustfmt * fix tests * tests * rustfmt

Commit:a9ca0ce
Author:Aram Drevekenin
Committer:Aram Drevekenin

conditional keybinding serialization

Commit:3fa7744
Author:divens
Committer:GitHub

Add windows support in strider (#4854) * Add Windows path support to strider plugin Strider is a WASM plugin where std::path::PathBuf uses Unix semantics, so Windows backslash paths break parent(), join(), strip_prefix(), etc. Fix by normalizing all incoming paths to forward slashes at plugin boundaries and converting back to native backslashes for display. A new platform.rs module detects the host OS at runtime from the initial_cwd format and centralizes all platform-aware logic. Also fix scan_host_folder on the server side: canonicalize plugin_host_folder so the starts_with security check works on Windows, where canonicalize() adds the \?\ prefix. * Add virtual root view for drive and WSL navigation in strider On Windows, navigating up from a drive root (e.g. C:\) now shows a "Computer" view listing all available drives and WSL distributions. Drives are enumerated via GetLogicalDriveStringsW and WSL distros via `wsl -l -q` (since read_dir on \wsl.localhost fails with OS error 64/67). Drive letters appear before WSL entries, which are displayed as "Ubuntu-24.04 (WSL)" etc. On non-Windows platforms, behavior is unchanged. * Rename ListHostEntries to ListWindowsVolumes and gate behind FullHdAccess The old name was misleading — on Unix it just returned `/`, which isn't "listing host entries." Rename to ListWindowsVolumes to make the Windows-specific intent explicit, gate behind FullHdAccess permission, and replace the Unix implementation with a log::error since the command is not meaningful on non-Windows platforms. * Replace direct array indexing with .get() in strider platform detection Use safe accessors and matches! macro instead of direct byte indexing for bounds-checked access patterns. --------- Co-authored-by: divens <divens.dev@gmail.com>

Commit:4ba41c0
Author:Aram Drevekenin
Committer:GitHub

Release notes and fixes (#4879) * release notes * fix some link issues * rustfmt * fix click wording

Commit:ba076e7
Author:Aram Drevekenin

release notes

Commit:a1e2247
Author:Aram Drevekenin
Committer:GitHub

Ansi dump support (#4848) * add missing pane-id and tab-id arguments to all cli actions * rustfmt * dump-screen --ansi * edit-scrollback --ansi * add --ansi to subscribe * add tests for ansi additions * add ansi render report to plugins * rustfmt * fix e2e tests * add pr

Commit:6518d50
Author:Aram Drevekenin

add ansi render report to plugins

Commit:5552501
Author:Aram Drevekenin

add --ansi to subscribe

Commit:2e81991
Author:Aram Drevekenin

edit-scrollback --ansi

Commit:2ca7080
Author:Aram Drevekenin
Committer:Aram Drevekenin

dump-screen --ansi

Commit:aa5ca34
Author:Aram Drevekenin
Committer:GitHub

Add `--pane-id` and `--tab-id` to all relevant CLI commands (#4846) * add missing pane-id and tab-id arguments to all cli actions * rustfmt * fix tests * update e2e snapshots * add pr

Commit:61365b3
Author:Aram Drevekenin

add missing pane-id and tab-id arguments to all cli actions

Commit:6e521c7
Author:Aram Drevekenin
Committer:GitHub

Focus follows mouse and mouse clickthrough (#4836) * implement focus follows mouse * mouse click through * rustfmt * add pr

Commit:19746fe
Author:Aram Drevekenin

mouse click through

Commit:516bfd2
Author:Aram Drevekenin

implement focus follows mouse

Commit:2035e05
Author:Aram Drevekenin
Committer:GitHub

Highlight priority levels (#4827) * highlight priority levels * add pr

Commit:5f397d6
Author:Aram Drevekenin

highlight priority levels

Commit:47ba633
Author:Aram Drevekenin
Committer:GitHub

allow dumping screen to STDOUT as well (#4823)

Commit:26c5518
Author:Aram Drevekenin
Committer:Aram Drevekenin

allow dumping screen to STDOUT as well

Commit:0172836
Author:Yacine Hmito
Committer:GitHub

feat(cli): add --pane-id option to dump-screen action (#4598) * feat(cli): add --pane-id option to dump-screen action Adds the ability to dump a specific terminal pane's content by passing `--pane-id <ID>` to the `dump-screen` CLI action. When omitted, the existing behavior of dumping the focused pane is preserved. This enables coding agents running inside Zellij to inspect the content of other panes programmatically, without needing complex workarounds. Prior art: https://github.com/theslyprofessor/zellij-pane-tracker, whose design complexity is due to current limitations that this PR addresses. * address review * improve man page entry

Commit:e7985f0
Author:Aram Drevekenin
Committer:GitHub

Single screen session manager (#4821) * initial implementation * adjust ui * preserve selection * width responsiveness * behavior fixes * fix: do not count suppressed panes * ui improvements * multi-screen config and prompt hint * tests + refactoring * improve performance * add pr

Commit:f925b34
Author:Aram Drevekenin
Committer:GitHub

Merge branch 'main' into single-screen-session-manager

Commit:48b5bf6
Author:Aram Drevekenin

behavior fixes

Commit:a8d99b6
Author:Aram Drevekenin
Committer:GitHub

Add cli paste action (#4817) * add cli paste action * add pr

Commit:316e84d
Author:Aram Drevekenin

add cli paste action

Commit:58cb226
Author:Aram Drevekenin
Committer:GitHub

Allow subscribing to pane viewport updates (renders) from the CLI (#4814) * initial subscribe implementation * tests for subscribe * update cli help * rustfmt * add pr

Commit:8e93781
Author:Aram Drevekenin

initial subscribe implementation

Commit:85d29a1
Author:Aram Drevekenin
Committer:GitHub

fix: click links with alt-click (#4809)

Commit:e820ff3
Author:Aram Drevekenin

fix: click links with alt-click

Commit:903cdf5
Author:Aram Drevekenin
Committer:GitHub

Click file paths to open in editor, allow plugins to change styles and hover of viewport (#4802) * initial implementation * implement hover * add styles and foreground/background emphases, fix upsert hover collisions * initial implementation of link plugin * suppress highlighting + clicks on unfocused and mouse mode panes * also make italic * fix env var and ~ expansions * fix regex issues and add defensive validations * fix tests and add plugin assets * add tests * refactor all the things * add pr

Commit:b163898
Author:Aram Drevekenin
Committer:Aram Drevekenin

add styles and foreground/background emphases, fix upsert hover collisions

Commit:44fe032
Author:Aram Drevekenin
Committer:Aram Drevekenin

implement hover

Commit:f26f84d
Author:Aram Drevekenin
Committer:Aram Drevekenin

initial implementation

Commit:f77cdec
Author:Karl Bunch
Committer:GitHub

feat: add per-pane default foreground/background color support (#4737) * feat: add per-pane default foreground/background color support Add per-pane default foreground and background colors, configurable through four surfaces: - OSC 10/11 escape sequences (set/query) and OSC 110/111 (reset) - CLI action: zellij action set-pane-color --pane-id <id> --fg/--bg - Layout config: default_fg/default_bg properties on pane nodes - Plugin API: set_pane_color() SDK function and PaneInfo read-side Colors are applied at render time as a fallback when cells have no explicit foreground/background, without mutating stored grid data. Closes #4712 * refactor: address review feedback for pane color support - Extract adjust_styles_for_custom_bg_fg in output/mod.rs - Move color parsing (xparse_color) from tab into Grid - Move color serialization (ansi_code_to_color_string) into Grid - Pane trait now uses Option<String> for color getters/setters - Add colors to session serialization (dump-layout) - Add default_fg/default_bg to protobuf IPC schema to fix layout-in-session color loss - Update example layout with tab-bar and status-bar * fix stack overflow and ordering * rustfmt * update e2e snapshots --------- Co-authored-by: Karl Bunch <karl@karlbunch.com> Co-authored-by: Aram Drevekenin <aram@poor.dev>

Commit:f618b06
Author:Aram Drevekenin
Committer:GitHub

Visual indication for terminal bells (#4781) * initial implementation * rustfmt * allow disabling with config * add missing kdl * add pr * fix tests

Commit:c8873cb
Author:Aram Drevekenin

allow disabling with config

Commit:f7d109c
Author:Aram Drevekenin

initial implementation

Commit:6e0dd8e
Author:Aram Drevekenin
Committer:GitHub

Atomic show hide floating panes (#4764) * atomic show/hide floating panes (cli, plugin API, keybinding) * rustfmt * add pr

Commit:0444c7f
Author:Aram Drevekenin

atomic show/hide floating panes (cli, plugin API, keybinding)

Commit:2f06914
Author:Aram Drevekenin
Committer:GitHub

Allow closing replaced panes when opening panes in place (#4760) * allow close_replaced_pane from keybind and cli * rustfmt * add pr

Commit:82a4ab3
Author:Aram Drevekenin

allow close_replaced_pane from keybind and cli

Commit:007aa29
Author:Aram Drevekenin
Committer:GitHub

fix: do not attempt to reconnect from the web if kicked from the session (#4730) * fix: do not attempt to reconnect from the web if kicked from the session * fix: add missing protobuf definition * add pr