aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* Give plugins the ability to read pane contents (#4465)Aram Drevekenin2025-10-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * initial implementation * add Selection and better types * event to plugins * only send viewport diff * simplify data structure sent over the wire * cleanups * rustfmt * remove dead code and fix tests * commit tests * get pane scrollback plugin command without implementation * add lines above and lines below to pane contents * implement get scrollback plugin command * selection => selected_text * add convenience method to get the selected text * move Selection back to zellij-server * rustfmt * bring back client id to get contents command * rustfmt * add pr
* build(cargo): Update Rust toolchain to 1.90.0 (#4457)har7an2025-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * build(cargo): Define shared manifest properties workspace-wide in order to allow workspace members to easily copy their values, rather than copying the actual values manually between files. Prepare for a future update of the Rust edition this way by defining the edition in one central location. * build(cargo): Share the license between all workspace members and don't copy the actual license value manually between crates. * build(cargo): Share the rust edition between workspace members rather than manually defining the value per crate. There is no apparent advantage in having different parts of the code use different rust editions. It only makes the code inconsistent, which is not a goal worth striving for. * build(cargo): Share the crate version between workspace members at least for those workspace members that are versioned in lockstep. * refactor(session-manager): Migrate to Rust edition 2021 from edition 2018 in order to use a single unified Rust edition across the entire workspace. Apparently the migration does not involve changes to the actual code. * refactor(plugin-manager): Migrate to Rust edition 2021 from edition 2018 in order to use a single unified Rust edition across the entire workspace. Apparently the migration does not involve changes to the actual code. * build(zellij-utils): Remove the obsolete build script which has contained nothing but comments for two years now. The initial "workaround" has by now become the proper solution and the original issue (see <https://github.com/zellij-org/zellij/pull/2711>) has never been heard of since. The real motivation for this change is the simple fact that this version of prost-build pulled in a pretty old version of the `which` crate which doesn't appear to build with Rust 1.89 (latest stable as of now). * build(cargo): Update Rust toolchain to 1.89 which is the latest stable toolchain as of writing this and has support for the 2024 Rust edition, unlike the previously used 1.84. * fixup! build(zellij-utils): Remove the obsolete build script * refactor: Make implicitly elided lifetimes explicit in cases where a functions return type has an actual lifetime that depends on a non `'static` argument. * build(cargo): Update Rust toolchain to 1.90.0 which is the latest stable toolchain as of writing this. Compared to 1.89.0 this changes the default linker and should, hence, cut down iteration times during development significantly. * ci: Force configured rust toolchain version in release builds for the tagged release assets. Previously the rust version was unconditionally overwritten to be `stable` regardless of what `rust-toolchain.toml` configured. * docs(changelog): Add MR #4457 to list of unreleased changes. * build: Read package version from workspace version value since it no longer resides directly in the `package` object.
* New Feature: remote attach to a Zellij session from the terminal (#4460)Aram Drevekenin2025-10-06
| | | | | * remote web attach * docs(changelog): add PR
* fix(resurrection): allow splitting fixed one-row fixed panes (#4442)Aram Drevekenin2025-09-25
| | | | | * fix(resurrection): allow splitting fixed one-row fixed panes * docs(changelog): add PR
* fix(resurrection): occasional status-bar pop-out after resurrection (#4440)Aram Drevekenin2025-09-24
| | | | | * fix(resurrection): occasional status-bar pop-out after resurrection * add pr
* 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
* refactor(client-server-contract): config + layout (#4383)Aram Drevekenin2025-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commented out ConfigWrittenToDisk instructions * commented out WriteConfigToDisk instructions * commented out FailedToWriteConfigToDisk and WriteConfigToDisk instructions * pass cli assets from client to server instead of parsed config - kind of working, lots of stuff still broken * move ClientAttributes to the server side * move ClientAttributes to the server side in Attach instruction as well * move CliArgs and runtime options from NewClient -> move them to the server * moved plugin_aliases to the server side * moved initial config writing to the server side * moved layout parsing to the server * some cleanups * move config file watching and live reload to the server * move config file writing to the server side * use saved config when attaching * get web server to work with the new config roles * some cleanups * moar cleanups * even moar cleanups * yet more cleanups * fix tests * style(fmt): rustfmt * style(fmt): rustfmt * fix e2e tests * docs(changelog): add PR
* fix(web): avoid sending single meta keypresses, cleanup (#4376)Thomas Linford2025-08-20
| | | | | | | | | * fix(web): avoid sending single meta keypresses, cleanup - extend the logic already used to skip single modifier keypresses to meta - refactor: extract the code into a function, make it simpler and use event.key instead of deprecated event.keyCode - cleanup leftover axum cors config from feature development * update changelog
* chore(repo): update development versionAram Drevekenin2025-08-08
|
* chore(release): v0.43.1Aram Drevekenin2025-08-08
|
* docs(changelog): KKP fixAram Drevekenin2025-08-08
|
* fix(terminal): handle omitted flags in kitty keyboard protocol push sequence ↵Anton2025-08-08
| | | | | | | | | | | | | | (#4334) The CSI > u sequence (push) should default omitted flags to 0 per the Kitty keyboard protocol specification. Previously, omitted flags incorrectly defaulted to 1, causing progressive enhancements to be enabled when they should remain disabled. This fix ensures push with no flags (printf "\e[>u") correctly sets flags to 0, matching the protocol specification and making push behavior consistent with the existing CSI = u implementation. Author: Anton Afanasyev <anton@doubleasoftware.com>
* fix(web): use session name as initial document title (#4357)Aram Drevekenin2025-08-08
| | | | | * fix(web): use session name as initial document title * docs(changelog): add PR
* fix(compact-bar): make tooltip hints use opaque bg (#4356)Aram Drevekenin2025-08-08
| | | | | * fix(compact-bar): make tooltip hints use opaque bg * docs(changelog): add PR
* docs(readme): description and roadmap updateAram Drevekenin2025-08-08
|
* docs(changelog): resurrection fixAram Drevekenin2025-08-07
|
* fix(list): do not list sessions as resurrectable unless they are (#4354)Aram Drevekenin2025-08-07
|
* docs(changelog): terminal title fixAram Drevekenin2025-08-07
|
* fix: terminal title (#4352)Aram Drevekenin2025-08-07
|
* docs(changelog): safari login fixAram Drevekenin2025-08-07
|
* fix(web): set secure cookie flag only for https (#4345)Aram Drevekenin2025-08-07
|
* fix(panes): backspace pane name regression (#4346)Aram Drevekenin2025-08-06
| | | | | * fix(panes): backspace pane name regression * docs(changelog): add PR
* chore(repo): update development versionAram Drevekenin2025-08-05
|
* chore(release): v0.43.0Aram Drevekenin2025-08-05
|
* style: link and help fixes (#4339)Aram Drevekenin2025-08-04
| | | | | * style: link and help fixes * fix: tip coloring
* fix(ci): make cross compilation work with the no-web variant (#4330)Aram Drevekenin2025-08-01
| | | | | | | * add no_web flag to ci cross compilation * chore(ci): refactor release to web/no-web variants * fix ci for cross building with no-web
* style: some cleanups (#4329)Aram Drevekenin2025-08-01
| | | | | * style: some cleanups * style(fmt): rustfmt
* docs(about): release notes for version 0.43.0 (#4326)Aram Drevekenin2025-07-31
|
* fix(web): focus terminal on init (#4325)Thomas Linford2025-07-31
| | | Always focus the terminal during init instead of on a mouse event.
* fix(web): allow pasting with cmd-v (#4321)Thomas Linford2025-07-30
|
* fix(web-client): theme not loading (#4265)Thomas Linford2025-07-28
| | | | | | Fix theme not getting applied in web client. - Ensure theme is properly read from config - Update config in web server shared state when it gets updated (without this, clients connecting after a config change would still get the old settings)
* Add gruber-darker theme (#4288)Vishal2025-07-28
| | | | | * Create gruber-darker.kdl * Removed verification comments from gruber-darker.kdl
* fix(web_server): Handle extracting session_token from multiple cookies (#4271)DawidPietrykowski2025-07-28
| | | | | Replaces `headers().get("cookie)` with `headers().get_all("cookie")` because Axum splits a single `Cookie: a; b; c` into 3 separate headers each with a single value
* feat(web): allow specifying ip/port/cert/key through the cli (#4314)Aram Drevekenin2025-07-23
| | | | | * feat(web): allow specifying ip/port/cert/key through the cli * fix no-web
* fix(status-bar): proper truncation of secondary info (#4313)Aram Drevekenin2025-07-22
| | | | | | | | | | | * fix(status-bar): properly truncate secondary keybindings * style(fmt): rustfmt * more correct fix * fix e2e tests * docs(changelog): add PR
* docs(changelog): dump screen performanceAram Drevekenin2025-07-22
|
* performance(server): Improve dump_screen! performance (#2548)Tanapol Prucksakorn2025-07-22
| | | | | | * Pre-allocates `buf` string. * Uses `trim_end_matches()` instead of regex. Co-authored-by: Tanapol Prucksakorn <tanapol.pr@gmail.com>
* fix(plugins): multiple-select + compact-bar tooltip multiplayer issues (#4312)Aram Drevekenin2025-07-22
| | | | | | | | | | | * fix: allow stacking panes if root pane is floating * fix: handle multiple client gracefully in multiple select * style(fmt): rustfmt * fix compact-bar tooltip multiuser duplication * style(fmt): rustfmt
* fix(compact-bar): tooltip duplication (#4310)Aram Drevekenin2025-07-21
| | | | | * fix(tooltip): update config name and only launch once * add new stacked pane to tooltip
* fix(plugins): standardize should_focus parameter when launching new plugin ↵Aram Drevekenin2025-07-21
| | | | | | | via pipe (#4309) * fix(plugins): standardize should_focus parameter when launching new plugins via pipe * docs(changelog): add PR
* fix: stack ordering command (#4308)Aram Drevekenin2025-07-21
| | | | | | | * fix: some issues with stacking panes * cleanups and formatting * docs(changelog): add PR
* fix(ux): allow pasting and inputing wide-chars in search + tab rename + pane ↵Aram Drevekenin2025-07-18
| | | | | | | | | | | rename (#4303) * fix(ux): allow pasting to search/tab-rename/pane-rename * fix(ux): allow setting wide chars (eg. emoji) in tab/pane names * style(fmt): rustfmt * docs(changelog): add PR
* fix(grid): account for wide characters when double-triple mouse clicking (#4302)Aram Drevekenin2025-07-18
| | | | | | | * fix(grid): account for wide characters when double-triple mouse clicking * fix(e2e): moar race conditions * docs(changelog): add PR
* fix(tabs): do not send release event to inactive tab (#4300)Aram Drevekenin2025-07-17
| | | | | | | * fix(ui): switch left/right in multiple-select to prevent confusion * fix(mouse): do not send release event to inactive pane * docs(changelog): add PR
* fix(web): change URL when renaming session (#4299)Aram Drevekenin2025-07-17
| | | | | * fix(web): change URL when renaming session * style(fmt): rustfmt
* fix(clipboard): reap process of external command (#4298)Aram Drevekenin2025-07-17
| | | | | * fix(clipboard): reap process of external command * docs(changelog): add PR
* fix(panes): do not default to tiled pane (#4295)Aram Drevekenin2025-07-16
|
* fix(resurrection): do not parse resurrection layouts on startup (#4292)Aram Drevekenin2025-07-16
| | | | | | | | | | | * fix(resurrection): do not parse resurrection layouts on startup * proper error when file is corrupt * docs(changelog): add PR * fix attach command * style(fmt): rustfmt
* fix(sessions): remove popups from welcome screen (#4294)Aram Drevekenin2025-07-16
| | | | | * remove popups from welcome screen * docs(changelog): add pr
* fix(web): allow pasting with ctrl-shift-v (#4291)Aram Drevekenin2025-07-15
|