aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-client/src/cli_client.rs (follow)
Commit message (Collapse)AuthorAge
* chore: new test infra (#5269)Aram Drevekenin2026-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Error on socket paths that are too long (#4957)Aram Drevekenin2026-03-30
| | | | | * error on socket paths that are too long * add pr
* Fix cli blocking logic and update dependencies (#4881)Aram Drevekenin2026-03-21
| | | | | | | * fix: do not unblock blocking commands for other unblock conditions * update deps * allow trailing : in file path detection and change log format to match
* Warning and duplication cleanups (#4857)Aram Drevekenin2026-03-16
| | | | | * cleanup compilation warnings * consolidate EditScrollbackRaw into EditScrollback
* Ansi dump support (#4848)Aram Drevekenin2026-03-14
| | | | | | | | | | | | | | | | | | | | | * 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
* Allow subscribing to pane viewport updates (renders) from the CLI (#4814)Aram Drevekenin2026-03-07
| | | | | | | | | | | * initial subscribe implementation * tests for subscribe * update cli help * rustfmt * add pr
* Improve CLI interface (add detach, switch session, blocking zellij run and ↵Aram Drevekenin2025-10-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | more) (#4492) * initial implementation * fix tests * move more ations * screen adjustments (does not compile) * plugin/pty adjustments (does not compile) * more progress, tests not compiling * fix tests * more progress, does not compile * more progress, compiles, tests failing * tests passing * rely on Drop for NotificationEnd * atomicify some more actions * fmt * move unblock input to route * don't pass hard-coded action names * refactor: consolidate completion channel logic * comment * track last active client * track cli clients explicitly * use the last active client for cli commands when possible * fix focus-next-pane for multiple clients * various fixes for multi-client actions from the cli * add detach action * fix tests * add switch session cli action * fix switch session deadlock * add and layout to switch-session cli action * blocking zellij run: add NewBlockingPane variant * blocking zellij run: wait forever mechanism * blocking zellij run: thread NotificationEnd as needed until TerminalPane (tests not compiling) * blocking zellij run: update cli * blocking zellij run: add command * blocking zellij run: finish implementation * fix tests * e2e test and close_on_exit fixes * fmt * fix e2e tests * fix plugin tests
* fix(ipc): make sessions compatible between versions (#4439)Aram Drevekenin2025-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * translate ipc tuple enum variants to struct enum variants * initial client/server contract * tests and missing types * migrate web server and remove rmp_serde * change socket folder * fix crash on unknown messages * fix client logout on unknown message * fix web client logout on unknown message * rustfmt * add comment and change log level * address compilation warnings * style(fmt): rustfmt * fix plugin system test assertions * add pr
* build: Don't re-export foreign crates in utils (#4087)har7an2025-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * build(utils): Don't use reexported dependency for internal code, but use the dependency directly. * build(client): Don't use re-exports from `utils` but turn `zellij-utils` dependencies into shared workspace dependencies instead and specify those in `Cargo.toml` explicitly. This gives a much better overview of what component in zellij uses which crates. The previous approach hides a lot of this information since it looks like crates are used in a single place where this isn't actually true. * deps(tile): Don't use re-exports from zellij-utils. * build(zellij): Don't use re-exports from zellij-utils. * build(server): Don't use re-exports from zellij-utils. * build(utils): Don't re-export foreign crates. * docs: Update Changelog with PR #4087. * style: Apply rustfmt. * style: Apply rustfmt. * build(e2e): Don't use re-export from zellij-utils. * test: Restore e2e tests. * style: Apply more formatting.
* fix(cli): tab and pane name input (#3295)Aram Drevekenin2024-04-24
|
* feat(cli): allow starting a session detached (#3257)Aram Drevekenin2024-04-12
| | | | | * feat(cli): allow starting a session detached * fix tests
* feat(plugins): session manager cwd and new filepicker (#3200)Aram Drevekenin2024-03-18
| | | | | | | | | | | | | | | | | | | | | | | * prototype * folder selection ui in session manager * overhaul strider * scan folder host command * get strider to work from the cli and some cli pipe fixes * some ux improvements to strider * improve strider's ui * make strider ui responsive * make session-manager new ui parts responsive * fix tests * style(fmt): rustfmt
* feat(plugins): introduce 'pipes', allowing users to pipe data to and control ↵Aram Drevekenin2024-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | plugins from the command line (#3066) * prototype - working with message from the cli * prototype - pipe from the CLI to plugins * prototype - pipe from the CLI to plugins and back again * prototype - working with better cli interface * prototype - working after removing unused stuff * prototype - working with launching plugin if it is not launched, also fixed event ordering * refactor: change message to cli-message * prototype - allow plugins to send messages to each other * fix: allow cli messages to send plugin parameters (and implement backpressure) * fix: use input_pipe_id to identify cli pipes instead of their message name * fix: come cleanups and add skip_cache parameter * fix: pipe/client-server communication robustness * fix: leaking messages between plugins while loading * feat: allow plugins to specify how a new plugin instance is launched when sending messages * fix: add permissions * refactor: adjust cli api * fix: improve cli plugin loading error messages * docs: cli pipe * fix: take plugin configuration into account when messaging between plugins * refactor: pipe message protobuf interface * refactor: update(event) -> pipe * refactor - rename CliMessage to CliPipe * fix: add is_private to pipes and change some naming * refactor - cli client * refactor: various cleanups * style(fmt): rustfmt * fix(pipes): backpressure across multiple plugins * style: some cleanups * style(fmt): rustfmt * style: fix merge conflict mistake * style(wording): clarify pipe permission
* feat(ux): allow renaming sessions (#2903)Aram Drevekenin2023-11-05
| | | | | | | * change session name through the cli * change session name from the session-manager * style(fmt): rustfmt
* feat(panes): in place run (#2795)Aram Drevekenin2023-09-18
| | | | | | | | | | | | | | | * prototype * fix tests * add to all the things except plugins * add in-place to plugin commands * fix launch-or-focus should_float and in place behavior * various cleanups * style(fmt): rustfmt
* feat(cli): `QueryTabNames` cli action to list all tab names (#2145)哇呜哇呜呀咦耶2023-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * extend display char in tab * Add action to list all tab names * print tab names and remove logs * change msg name, and handle Log in normal client * fix log * resolve code conflict * change var name * add snapshot test * fix failed test case * restore snapshot * Revert "restore snapshot" This reverts commit b97a9512ab106615a1a1e5882392a03a17cdf1a3. * restore snapshot * revert snapshot * fix(layout): various parser and ui fixes (#2191) * fix(layout): error on nodes outside layout node * fix(layout): move stacked property to pane * fix(layout): various stack exceptions * fix(ui): non-flexible stacked pane titles now take up their full length * fix(ui): stack titles with no-pane-frames take up their proper length * style(fmt): rustfmt * docs(changelog): layout fixes * fix(messaging): cache hold pane messages by their tab_id if the tab is not ready (#2196) * fix(messaging): cache hold pane messages by their tab_id if the tab is not ready * style(fmt): rustfmt * docs(changelog): open panes fix * fix(layout): tab focus (#2197) * fix(layout): tab focus * style(fmt): rustfmt * docs(changel0g): tab focus fix * fix(cli): new-tab now also looks in layout_dir for layouts (#2198) * fix(cli): the new-tab action now also searches for layouts in the layout dir * style(fmt): rustfmt * fix(tests): add missing parameter to cli action * docs(changelog): new-tab cli layout folder fix * fix(kdl): new-tab keybind looks in layout_dir for layouts (#2200) * fix(themes): missing tokyo-night-dark theme * fix(kdl): new-tab keybind also looks in layout_dir for layouts * docs(changelog): new-tab keybind layout folder fix * fix(cli): edit cwd (#2201) * fix(cli): properly set cwd for edit panes * fix(layouts): properly set cwd for edit panes * style(fmt): rustfmt * docs(changelog0 * fix(layouts): do not relayout twice on auto_layout (#2202) * fix(layouts): do not relayout twice on auto_layout * style(fmt): rustfmt * fix(new-tab): get config parameters from config file (#2203) * fix(cli): take default shell from config if it exists when opening new tab * fix(cli): take layout dir from config when opening new tab if it exists * style(fmt): rustfmt * docs(changelog): new-tab config parameters * fix(grid): only use background pending styling when deleting characters (#2204) * docs(changelog): neovim underline fix * feat(layouts): exact panes constraint (#2206) * style(fmt): remove warnings * fix(swap-layouts): introduce exact panes constraint * fix(swap-layouts): improve floating pane swap layout ux * style(fmt): rustfmt * docs(changelog): exact panes constraint * fix(pty): report no-cwd for empty path returned from sysinfo (#2213) * fix(sixel): report pixel size in winsize change ioctl (#2212) * fix(sixel): report pixel size in winsize change ioctl * style(fmt): rustfmt * docs(changelog): various fixes * style(code): naming * test(log): adjust query tab names test to look at the log message * style(fmt): rustfmt --------- Co-authored-by: Aram Drevekenin <aram@poor.dev> Co-authored-by: Jae-Heon Ji <32578710+jaeheonji@users.noreply.github.com>
* feat(config): switch to kdl (#1759)Aram Drevekenin2022-10-05
* chore(config): default kdl keybindings config * tests * work * refactor(config): move stuff around * work * tab merge layout * work * work * layouts working * work * layout tests * work * work * feat(parsing): kdl layouts without config * refactor(kdl): move stuff around * work * tests(layout): add cases and fix bugs * work * fix(kdl): various bugs * chore(layouts): move all layouts to kdl * feat(kdl): shared keybidns * fix(layout): do not count fixed panes toward percentile * fix(keybinds): missing keybinds and actions * fix(config): adjust default tips * refactor(config): move stuff around * fix(tests): make e2e tests pass * fix(kdl): add verbose parsing errors * fix(kdl): focused tab * fix(layout): corret default_tab_template behavior * style(code): fix compile warnings * feat(cli): send actions through the cli * fix(cli): exit only when action is done * fix(cli): open embedded pane from floating pane * fix(cli): send actions to other sessions * feat(cli): command alias * feat(converter): convert old config * feat(converter): convert old layout and theme files * feat(kdl): pretty errors * feat(client): convert old YAML files on startup * fix: various bugs and styling issues * fix: e2e tests * fix(screen): propagate errors after merge * style(clippy): lower clippy level * fix(tests): own session_name variable * style(fmt): rustfmt * fix(cli): various action fixes * style(fmt): rustfmt * fix(themes): loading of theme files * style(fmt): rustfmt * fix(tests): theme fixtures * fix(layouts): better errors on unknown nodes * fix(kdl): clarify valid node terminator error * fix(e2e): adjust close tab test * fix(e2e): adjust close tab test again * style(code): cleanup some comments