aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* docs(changelog): cmd/cwd fixesAram Drevekenin2025-07-15
|
* fix(plugins): forward CWD when opening new panes (#4290)Aram Drevekenin2025-07-15
| | | | | | | | | * use plugin cwd as last focused pane cwd when starting plugins * fix strider to use the new change_host_folder method * start terminals in same cwd as plugin pane if focused * style(fmt): rustfmt
* fix: populate layount metadata with the right cmd and cwd (#4287)Rousseau Vincent2025-07-15
| | | | | Add cmd from sysinfo in terminal_ids_to_commands if no cmd are return by ps. So then, cmd and cwd are udpated in "session-layout.kdl" even if no cmd is runing in pane.
* fix(web-server): thread leak due to excess file watching (#4286)Aram Drevekenin2025-07-12
| | | | | * fix(web-server): thread leak due to excess file watching * docs(changelog): add PR
* fix(compact-bar): fix cursor length calculation for multiple users (#4279)Aram Drevekenin2025-07-09
| | | | | | | | | * fix(compact-bar): account for multiplayer cursor length * fix(e2e): account for races in tmux mode * style(fmt): rustfmt * docs(changelog): add PR
* fix(web-client): use default_layout if configured (#4278)Aram Drevekenin2025-07-09
| | | | | * fix(web-client): use default_layout if configured * docs(changelog): add PR
* fix(serialization): don't serialize when only UI elements present and ↵Aram Drevekenin2025-07-08
| | | | | | | | | | | | | | | | | | | provide post command discovery hook (#4276) * do not serialize when only UI elements are present * start work on a post serialization hook * add post_command_discovery_hook * fix tests * style(fmt): rustfmt * some cleanups * moar formatting * docs(changelog): add PR
* fix(tabs): allow setting cwd without a layout (#4273)Aram Drevekenin2025-07-08
| | | | | | | | | * working for cli and keybinding * working for plugin API * style(fmt): rustfmt * docs(changelog): add PR
* fix(plugins): use the terminal title when spawning terminals (#4272)Aram Drevekenin2025-07-07
| | | | | | | * fix(plugins): use the terminal title when spawning terminals * docs(changelog): add PR * fix: plugin tests
* feat(terminal): multiline hyperlink support (#4264)Aram Drevekenin2025-07-04
| | | | | | | * working * done * docs(changelog): add PR
* HOTFIX: e2e test flakinessAram Drevekenin2025-07-02
|
* fix(web-client): various bugs (#4257)Aram Drevekenin2025-07-02
| | | | | | | | | * fix: background color issues and server recovery bug * fix: display title in web client * style(fmt): rustfmt * docs(changelog): add PR
* feat: stack pane action (#4255)Aram Drevekenin2025-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor: group placement properties * add stackpane cli and keybinding * add test * refactor: move spawn vertically/horizontally to spawnterminal * fix tests and cleanups * some cleanups and minor fixes * more cleanups * add stack action to the UI * style(fmt): rustfmt * fix serialization * add to default config * fix e2e tests * style(fmt): rustfmt * fix cli * fix tests * docs(changelog): add PR
* docs(changelog): replace pane APIAram Drevekenin2025-06-26
|
* feat(plugin-api): allow replacing pane with existing pane (#4246)Aram Drevekenin2025-06-26
| | | | | | | | | | | * work * make the api work * some cleanups * close pane * style(fmt): rustfmt
* docs(changelog): terminal performanceAram Drevekenin2025-06-26
|
* performance(terminal): consolidate renders (#4245)Aram Drevekenin2025-06-26
| | | | | | | | | | | | | | | | | | | | | * work * fix tests for async rendering * remove comment * some cleanups * style(fmt): rustfmt * fix e2e tests * fix more e2e tests * style(fmt): rustfmt * fix one more test * style(fmt): rustfmt
* Feature: web-client/server to share your sessions in the browser (#4242)Aram Drevekenin2025-06-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * work * moar work * notes * work * separate to terminal and control channels * stdin working * serve html web client initial * serve static assets loaded with include_dir * merge * enable_web_server config parameter * compile time flag to disable web server capability * rustfmt * add license to all xterm.js assets * mouse working except copy/paste * helpful comment * web client improvements - move script to js file - add favicon - add nerd font - change title TODO: investigate if font license embedded in otf is sufficient * get mouse to work properly * kitty keyboard support initial * fix wrong type in preload link * wip axum websocket handlers - upgrade axum to v0.8.1, enable ws feature - begin setup of websocket handlers - tidy up imports * replace control listener * handle terminal websocket with axum * cleanup Cargo.toml * kitty fixes and bracketed paste * fix(mouse): pane not found crash * initial session switching infra * add `web_client_font` option * session switching, creation and resurrection working through the session manager * move session module to zellij-utils and share logic with web-client * some cleanups * require restart for enable-web-server * use session name from router * write config to disk and watch for config changes * rename session name to ipc path * add basic panic handler, make render_to_client exit on channel close * use while let instead of loop * handle websocket close * add mouse motions * make clipboard work * add weblink handling and webgl rendering * add todo * fix: use session name instead of patch on session switch * use "default" layout for new sessions * ui indication for session being shared * share this session ui * plugin assets * Fix process crash on mac with notify watcher. Use poll watcher instead of recommended as a workaround. * make url session switching and creation work * start welcome screen on root url * scaffold control messages, set font from config * set dimensions on session start * bring back session name from url * send bytes on terminal websocket instead of json - create web client os input and id before websocket connection * draft ui * work * refactor ui * remove otf font, remove margins to avoid scrollbar * version query endpoint for server status * web session info query endpoint * refactor: move stuff around * add web client info to session metadata * make tests pass * populate real data in session list * remove unnecessary endpoint * add web_client node to config, add font option * remove web_client_font * allow disabling the web session through the config - WIP * formalize sharing/not-sharing configuration * fix tests * allow shutting down web server * display error when web clients are forbidden to attach * only show sessions that allow web clients if this is a web client * style(fmt): rustfmt * fix: query web server from Zellij rather than from each plugin * remove log spam * handle some error paths better in the web client * allow controlling the web server through the cli * allow configuring the web server's ip/port * fix tests and format code * use direct WebServerStatus event instead of piggy-backing on SessionInfo * plugin revamp initial * make plugin responsive * adjust plugin title * refactor: share plugin * refactor: share plugin * add cors middleware * some fixes for running without a compiled web server capability * display error when starting the share plugin without web server support * clarify config * add pipelines to compile zellij without web support * display error when unable to start web server * only query web server when share plugin is running * refactor(web-client): connection table * give zellij_server_listener access to the control channel * fixes and clarifications * refactor: consolidate generate_unique_session_name * give proper error when trying to attach to a forbidden session * change browser URL when switching sessions * add keyboard shortcut * enforce https when bound to non-loopback ip * initial authentication token implementation * background color from theme * initial web client theme config * basic token generation ui * refactor set config message creation * also set body background * allow editing scrollback for plugins too * set scrollback to 0 * properly parse colors in config * generate token from plugin * nice login modals * initial token management screen * implement token authentication * refactor(share): token management screen * style(fmt): rustfmt * fix(plugin): some minor bugs * refactor(share): main screen * refactor(share): token screen * refactor(share): main * refactor(share): ui components * fix(responsiveness): properly send usage_width to the render function * fix cli commands and add some verbosity * add support for settings ansi and selection colors * add cursor and cursor accent * basic web client tests * fix tests * refactor: web client * use session tokens for authentication * improve modals * move shutdown to ipc * refactor: ipc logic * serialize theme config for web client * update tests * refactor: move some stuff around to prepare for config hot reload * config live reloading for the web clients * change remember-me UI wording * improve xterm.js link handling * make sure terminal is focused on mousemove * remove deprecated sharing indication from compact-bar * gate deps and functionality behind the web_server_compatibility feature * feat(build): add --no-web flag in all the places * fix some other build flows * add new assets * update CI for no-web (untested) * make more dependencies optional * update axum-extra * add web client configuration options * gracefully close connections on server exit * tests for graceful connection closing * handle client-side reconnect when server is down * fix: make sure ipc bus folder exists before starting * add commands to manage login tokens from the cli * style(fmt): rustfmt * some cleanups * fix(ux): allow alt-right-click on the web client without opening the context menu * fix: prevent attaching to welcome screen * fix: reload config issues * fix long socket path on macos * normalize config conversion and fix color gap in browser * revoke session_token cookie if it is not valid * fix: visual bug with multiple clients in extremely small screen sizes * fix: only include rusqlite for the web server capability builds * update e2e snapshots * refactor(web): client side js * some cleanups * moar cleanups * fix(tests): wait for server instead of using a fixed timeout * debug CI * fix(tests): use spawn_blocking for running the test web server * fix(tests): wait for http rather than tcp port * fix(tests): properly pass config path - hopefully this is the issue... * success! bring back the rest of the tests * attempt to fix the macos CI issue * docs(changelog): add PR --------- Co-authored-by: Thomas Linford <linford.t@gmail.com>
* feat(ui): add optional tooltip with key hints to the compact bar (#4225)Aram Drevekenin2025-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | * initial implementation * some refactoring * refactor: separate some concerns and tidy up * fix: move tooltip to focused tab as needed * some ux adjustments * some refactoring * only show tooltip if we have configured a shortcut key * add plugin artifacts * fix tests * truncate tooltip if it exceeds width * change config name * remove comment * docs(changelog): add PR
* feat(ux): improve multiple select (#4221)Aram Drevekenin2025-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * intercept/clear-intercept key APIs * allow opening a pinned unfocused floating pane * rework plugin * improve some apis * fix tests * tests for pane groups * more exact placement and tests * plugin command permission and cleanup * improve some multiselect ux * improve plugin ui * remove old status indicator * allow moving plugin out of the way * style(fmt): rustfmt * update plugins * remove old keybinding * cleanups * fix: only rename pane if needed * changelog and some cleanups * style(fmt): rustfmt
* docs(changelog): theme fixesAram Drevekenin2025-04-30
|
* fix(themes): frame highlight and some contrast issues (#4171)Aram Drevekenin2025-04-30
| | | | | | | * fix(themes): add highlighted frame color to all themes * fix everforest-light theme * fix pencil-light theme
* docs(changelog): multiple selectAram Drevekenin2025-04-29
|
* feat: multiple Select and Bulk Pane Actions (#4169)Aram Drevekenin2025-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * initial implementation with break panes to new tab * break pane group left/right * group embed/eject panes * stack pane group on resize * close pane group * style(fmt): rustfmt * fix tests * group drag and ungroup with the mouse * fix mouse hover for multiple clients * fix for multiple clients * multiple select plugin initial * use real data in plugin * adjust functionality * fix some ux issues * reflect group mouse group selections in plugin * group/ungroup panes in Zellij * highlight frames when marked by the plugin * refactor: render function in plugin * some ui responsiveness * some more responsiveness and adjust hover text * break out functionality * stack functionality * break panes left/right and close multiple panes * fix(tab): only relayout the relevant layout when non-focused pane is closed * status bar UI * embed and float panes * work * fix some ui/ux issues * refactor: move stuff around * some responsiveness and fix search result browsing bug * change plugin pane title * differentiate group from focused pane * add keyboard shortcut * add ui to compact bar * make boundary colors appear properly without pane frames * get plugins to also display their frame color * make hover shortcuts appear on command panes * fix: do not render search string component if it's empty * BeforeClose Event and unhighlight panes on exit * some UI/UX fixes * some fixes to the catppuccin-latte theme * remove ungroup shortcut * make some ui components opaque * fix more opaque elements * fix some issues with stacking pane order * keyboard shortcuts for grouping * config to opt out of advanced mouse actions * make selected + focused frame color distinct * group marking mode * refactor: multiple-select plugin * adjust stacking group behavior * adjust flashing periods * render common modifier in group controls * add to compact bar * adjust key hint wording * add key to presets and default config * some cleanups * some refactoring * fix tests * fix plugin system tests * tests: group/ungroup/hover * test: BeforeClose plugin event * new plugin assets * style(fmt): rustfmt * remove warnings * tests: give plugin more time to load
* chore: update development versionAram Drevekenin2025-04-15
|
* chore(release): v0.42.2Aram Drevekenin2025-04-15
|
* chore: update patch versionAram Drevekenin2025-04-15
|
* fix(utils): Re-export prost (#4133)har7an2025-04-12
| | | | | until shortly before the next minor release, just to make sure that subsequent patch releases don't unexpectedly break downstream consumers code.
* docs(changelog): deps upgradeAram Drevekenin2025-04-08
|
* fix(deps): fix --locked build on rust 1.86 (#4118)tranzystorekk2025-04-08
|
* performance(render): improve rendering performance by consolidating renders ↵Aram Drevekenin2025-03-24
| | | | | | | | | | | | | | | and introducing repaint_delay (#4100) * initial draft * style(comment): add explanation to async render * remove timeouts from terminal_bytes * some cleanups * cleanups * chore(docs): update 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.
* build: Don't use default features (#4086)har7an2025-03-22
| | | | | | | | | | | | | | | | | * chore: Cut down dependency features and reduce the impact of future changes to crate `default-feature` changes. Also reduce a few transient dependencies which were previously pulled in by crate features we aren't using. * deps(utils): Remove `once_cell` dependency. * deps: Remove more dependency features. * deps: Remove remaining default features. * docs: Update Changelog with PR #4086. * style: Apply rustfmt.
* chore: Introduce workspace dependencies (#4085)har7an2025-03-22
| | | | | | | | | * cargo: Introduce workspace dependencies and deduplicate dependency entries across all non-plugin workspace members. In the future this hopefully makes dependency upgrade easier since shared dependencies need only be touched in one location. * docs: Update CHANGELOG with PR #4085.
* refactor(terminal): log scroll region as tuple rather than Option<tuple> (#4082)Aram Drevekenin2025-03-22
| | | | | | | | | | | | | * initial go over * do not pad scroll region by default * some cleanups * moar cleanups * style(fmt): rustfmt * docs(changelog): add PR
* chore(repo): update development versionAram Drevekenin2025-03-21
|
* chore(release): v0.42.1Aram Drevekenin2025-03-21
|
* docs(changelog): windows terminal fixAram Drevekenin2025-03-21
|
* fix(mouse): fix mouse handling in windows terminal (#4065) (#4076)Zeev Rotshtein2025-03-21
|
* chore(repo): update development versionAram Drevekenin2025-03-17
|
* chore(release): v0.42.0Aram Drevekenin2025-03-17
|
* fix(plugins): styling in the "about" plugin (#4062)har7an2025-03-16
| | | | | | | * fix(about): Don't repeat item number. * fix(about): Color entire key sequence. * CHANGELOG: Add MR #4062.
* HOTFIX: fix tutorial link in about pluginAram Drevekenin2025-03-12
|
* Fix compiler warnings (#4053)har7an2025-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * chore(cargo): Update dependencies for xtask subcommand to remove warnings about unknown compiler attributes. * deps(xtask): Remove `lazy_static` as dependency, since the code we need can now be expressed using rusts `std` builtin types. * fix(xtask): Hide deprecated args so the compiler doesn't complain about dead code any more. * fix(xtask): Remove needless borrow. * fix: Remove dead code across the codebase, as discovered by the rust compiler. * fix(server): Log previously ignored errors. * fix(xtask): Remove needless `format!` calls. * fix(xtask): Remove superfluous return statement. * fix(client): Remove unused enum variant from `ClientInstruction` and all code attached to it. * fix(server): Restore functions needed in tests. * chore: Apply rustfmt. * fix(server): Add missing code. * fix: Remove leftover warnings. * CHANGELOG: Add MR #4026. * fix(xtask): Pin `xshell` to version 0.2.2 because release 0.2.3 changed the way stdin is handled, breaking interactive command invocations (such as we use).
* docs(contributing): update PR statement wordingAram Drevekenin2025-03-10
|
* docs(changelog): update 2 recent PRsAram Drevekenin2025-03-10
|
* fix(selection): add proper multi-click dragging options (#4052)Aram Drevekenin2025-03-10
| | | | | | | | | | | | | * properly extend/reduce word-bound selection on drag * properly extend/reduce line bound selection on drag * fix scrolling * style(fmt): rustfmt --------- Co-authored-by: aram <aram@green.green>
* fix(stacked): stacked panes can't resize status-bar (#4051)Brooks Rady2025-03-10
| | | | | | | | | | | | | | | | | | | | * fix(typo): fix a typo in error message * fix(typo): fix typo in Tip #6 * fix(logging): silence filesystem error This `Option` chain already ends with `.unwrap_or_else(Default::default)` so it's clearly expected that prior operations in the chain may fail. I didn't have the default `layout_dir` on my computer, and it would fill my logfile with unhelpful spam — on every pane creation, resize, etc. * fix(stacked): stacked panes can't resize status-bar * fix(e2e): race in multiple users test --------- Co-authored-by: Aram Drevekenin <aram@poor.dev>
* docs(changelog): add 3 recent PRsAram Drevekenin2025-03-06
|
* fix(ui): add split right/down shortcut hints to the status-bar (#4046)Aram Drevekenin2025-03-06
|