8000 Releases Β· zellij-org/zellij Β· GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: zellij-org/zellij

Release v0.42.2

15 Apr 07:14
Compare
Choose a tag to compare

This patch release is mainly intended to address a breaking change in the Rust compiler that caused compilation to fail with --locked starting from Rust version 1.86. (Thanks @tranzystorekk for bringing this to our attention and for the quick fix!)

This patch also includes some terminal rendering performance improvements - namely consolidating some renders and thus reducing the occasional text flicker.

What's Changed

  • refactor(terminal): log scroll region as tuple rather than Option by @imsnif in #4082
  • chore: Introduce workspace dependencies by @har7an in #4085
  • build: Don't use default features by @har7an in #4086
  • build: Don't re-export foreign crates in utils by @har7an in #4087
  • performance(render): improve rendering performance by consolidating renders and introducing repaint_delay by @imsnif in #4100
  • fix(deps): fix --locked build on rust 1.86 by @tranzystorekk in #4118

Do you like Zellij? ❀️

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you!

Release v0.42.1

21 Mar 08:47
Compare
Choose a tag to compare

This is a patch release to fix an issue with Windows Terminal (and associated terminals on windows presumably going through the win conpty) mishandling of mouse any-event motions that caused flickering and other odd behavior in Zellij. While this is not a bug on our side, we mitigated it with the help of our STDIN parsing library termwiz. More details here.

Special thanks to @zeevro who did the troubleshooting and issued a fix to termwiz!

Release v0.42.0

17 Mar 08:06
Compare
Choose a tag to compare

This version brings multiplexing to the next level with new user-facing features. It also includes a brand new theme definition spec and some more goodies.
Read all about it in the official release post.

Stacked Resize

This version of Zellij introduces an innovative new way of managing multiple panes. When resizing panes, Zellij will attempt to stack them with their neighbors - giving us more space on screen while still keeping the title of the other panes around so that we can easily navigate to them with the keyboard or mouse.
This behavior can be disabled through configuration

Pinned Floating Panes

One of the most loved features of Zellij is its native integration of floating panes. This version adds the ability to β€œpin” any such pane so that it is always on top, even when not focused. Floating panes can be pinned with a mouse click or with a keyboard shortcut: Ctrl p + i.

New Theme Definition Spec

This version introduces a new theme definition specification, allowing much greater flexibility when defining the Zellij UI appearance - extending to user plugins as well. This specification concentrates on the generic UI components used to make-up the Zellij UI rather than mapping colors. We look forward to seeing new themes created by the community with these capabilities.

For more information, see the new theme documentation

New (Rust) Plugin APIs

This version adds lots of new capabilities to plugins and exposes them in the built-in Rust SDK. Some highlights:
* Change the /host folder at runtime
* Change floating pane coordinates
* Stack arbitrary panes
* Read mouse motions

Double/Triple Mouse Click Text Selection in Terminals

Since Zellij implements its own mouse selection and copying, many users have noted the lack of ability to double or triple click text in order to mark the word boundaries or canonical line respectively. This version implements this capability for terminal panes. Upcoming in the next version is the ability for plugins to opt-in to text marking with the keyboard/mouse on all or parts of their scrollback.

Release Notes and Tips on Startup

Starting this version, on first run Zellij will display the release notes for the current version. On subsequent runs, Zellij will display a random useful usage tip on startup. It’s possible to disable both of these behaviors through the config (and in the case of tips, also at runtime through the tips window as specified). More info here and here.

Both of these can be browsed through the new about plugin with Ctrl o + a.

Do you like Zellij? ❀️

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you!

Release v0.41.2

19 Nov 12:34
Compare
Choose a tag to compare

0.41.2

This is a patch release which fixes some regressions from 0.41 and general bugs that happened to be fixed along the way. Some dependencies were also vendored (or had a vendored toggle added) to facilitate packaging.

A notable addition is that plugins now have access to a /cache folder which maps to an entry unique to their loaded URL in the Zellij cache folder.

What's Changed

  • fix(input): keypresses not being identified properly with kitty keyboard protocol in some terminals (#3725)
  • fix(input): reapply ctrl-j fix for the new architecture
  • fix(plugins): various cwd and usability fixes for the plugin manager (#3749)
  • fix(output-buffer): handle race that sometimes caused text spillover (#3750)
  • fix(tabs): some event ordering issues exposed by the recent runtime change (#3758)
  • fix(plugins): do not duplicate built-in plugins, eg. session-manager (#3759)
  • fix(terminal): reset kitty keyboard support when resetting terminal state (#3760)
  • fix(startup): crash when unable to watch config dir (#3761)
  • fix(startup): slow start in some cases due to a race in the server retry queue (#3767)
  • fix(screen): various crashes due to invalid state exposed by the recent wasm runtime change (#3776)
  • chore(package): add the option to use the system curl instead of the vendored version when compiling (#3766)
  • fix(ux): change plugin manager "open from filesystem" shortcut for consistency with the session-manager (#3779)
  • fix(plugins): send PaneClosed event to plugins also when an entire tab was closed (#3781)
  • feat(plugins): add a /cache folder to plugins to persist data between runs (#3787)
  • feat(package): vendor the common_path dependency (#3780)
  • fix(plugins): derive Hash and Ord for PaneIds (#3790)

Do you like Zellij ❀️ ?

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you! https://github.com/sponsors/imsnif

Release v0.41.1

04 Nov 11:15
Compare
Choose a tag to compare

This is a patch release to fix issues with our CI not creating the generic release binaries properly. It contains no new features.

To read more about 0.41

Please see: https://github.com/zellij-org/zellij/releases/tag/v0.41.0

Do you like Zellij ❀️ ?

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you! https://github.com/sponsors/imsnif

Release v0.41.0

04 Nov 08:35
Compare
Choose a tag to compare

Release notes

This is a large and significant version that includes many new features and fixes, and has been in the works for 6 months - yikes!

Special thanks to all contributors. This release includes some large guest contributions that have made a highly positive impact on the tool.

Notable Changes

  • A "non-colliding" keybinding preset: This is a UX change to allow users to opt-in to a different keybinding setup and default_mode. This is intended to solve the "colliding keybindings" problem by starting with the interface locked and having to unlock it in order to perform actions.
  • A new Configuration screen: Allowing users to switch between the default and non-colliding keybinding presets (temporarily per session or permanently by updating the configuration file), as well as change the Ctrl and Alt leader keys. Accessible by default with Ctrl o + c.
  • A first run Setup Wizard: When Zellij runs for the first time (==there is no configuration file AND a default one was written successfully to disk), a special version of the Configuration screen will run, titled "First Time Setup Wizard Step 1/1", inviting the user to choose the default keybindings or the new "non-colliding" keybindings.
  • Support for the Kitty Keyboard Protocol: Zellij now supports the first progressive enhancement of the Kitty Keyboard Protocol. Both for terminals/plugins running inside its panes and for input sent to it from the terminal it's running inside. This means multiple modifiers, as well as using the Super and Shift key as modifiers are now fully supported - assuming the terminal emulator also supports this protocol (most do).
  • Configuration live reloading: Changes to the configuration file now affect running Zellij sessions.
  • A new WebAssembly/WASI runtime: We have switched to wasmtime for running our plugins.
  • A new Plugin Manager: This new built-in plugin lists all the running plugins in the session as well as the configuration with which they were started. It allows loading new plugins, and also reloading and focusing existing plugins. Accessible by default with Ctrl o + p.
  • --layout now supports URLs: It's possible to load layouts from a URL (eg. zellij --layout https://example.com/my-layout.kdl), commands in these layouts will not be run - instead starting suspended with a Waiting to run <command> message, inviting the user to decide whether they would like to run this command. Plugins will prompt for permissions as usual.
  • New status-bar: The Zellij status bar has been updated to a new design. It now takes up only one line, and is aware of the "non-colliding" preset if it is chosen - guiding users through the keybinding chord as they enter it. It also includes more visibility on the secondary Alt modifiers, as well as adding a new Floating toggle for floating panes (by default Alt f). To get the old status bar, start Zellij with the classic layout (eg. zellij --layout classic).
  • Loading background plugins on startup: There is a new load_plugins section in the configuration - by default empty - to which plugins can be added in the form of paths/URLs/aliases with an optional configuration (similar to how they are loaded in layouts). These plugins will be loaded in the background (suspended by default) on session start. If they request permissions, the permission screen will still be visible.
  • Many new themes: these include: ao, atelier-sulphurpool, ayu_mirage, ayu_dark, ayu_light, vesper, night-owl, iceberg-dark, iceberg-light, onedark, ansi, lucario.

Breaking Changes

  • The --layout flag is not idempotent(-ish): This flag, used to start a new Zellij session with the specified layout, now behaves differently if run inside a Zellij session. In this case, it will load the layout as one or more additional tabs into the session. This should make this flag an easy default choice for loading layouts: it will probably do what you want wherever you run it, rather than creating a nested Zellij session. For the old behavior, use the new --new-session-with-layout <layout> flag.
  • The ENTER key event changed in plugins: The ENTER key is now explicitly sent to plugins, rather than being sent as Char('\n'). While the protobuf files have not been changed in order not to break the serialization, the Zellij behavior has changed. I ask for plugin authors' understanding, and would be happy to support updating efforts if needed.
  • zellij-tile API change for plugins: zellij-tile now has new types representing keybindings, reflecting the fact the users can now use multiple modifiers to communicate with plugins. Note that users require a supporting terminal for this (see above). Old plugins compiled with an older version of zellij-tile should still work due to the backwards-compatible serialization Zellij uses in the form of protobuffers.
  • Key forwarding is now based on default_mode: Previously keys-presses were forwarded verbatim to the terminal from STDIN in locked and normal modes. In all other modes they only took effect if the key was bound. Now this is instead true to locked mode and the defined default_mode in the configuration (defaulting to normal). This is in order to give a better user experience with the non-colliding keybinding preset.

New Plugin APIs

A brief description of the new plugin APIs (for a full list, see the zellij-tile API documentation, or the protobuf files if you are an SDK author):

  • Rebind keys at runtime (temporarily per session or permanently in the configuration file)
  • Change configuration (reconfigure) at runtime
  • Allow starting a new session with a stringified layout
  • Control command panes (knowing when they were opened, closed, exited, re-run) and get information about their exit code
  • Hide and show panes based on their pane id
  • Open command panes in the background (eg. and then only show them if they had a non-0 exit code)
  • Rerun existing command panes that have exited
  • Control other panes (everything from writing input to arbitrary panes, changing them to fullscreen, toggle their floating status, break several of them to a new tab, etc.)
  • Load/reload other plugins
  • List-clients (including their focused pane_id, and running command or plugin url)

Do you like Zellij ❀️ ?

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you! https://github.com/sponsors/imsnif

Release v0.40.1

02 May 07:16
Compare
Choose a tag to compare

This is a patch release mainly aimed at fixing some issues mostly introduced or exposed in the latest 0.40.0 release.

However, this version also introduces two exciting new features:

  1. Ctrl j is now bindable thanks to a community contribution (thanks @hiasr !) - you can read more about the technical details of the implementation.
  2. A new zellij action list-clients command was added for tools wishing to integrate with Zellij through the command line (this should facilitate interaction with other nested multiplexers such as neovim).

All changes

  • fix(sessions): issue where sessions would occasionally become unresponsive (#3281)
  • fix(cli): respect all options (eg. default-layout) when creating a session in the background from the CLI (#3288)
  • fix(cli): rename tab and pane from cli (#3295)
  • fix(plugins): respect $SHELL when opening a terminal from plugins (eg. from the filepicker strider) (#3296)
  • fix(tabs): closing a tab no longer breaks tab movement (#3299)
  • feat(plugins): add API to open new tabs with a LayoutInfo (#3305)
  • feat(cli): add zellij action list-clients to allow listing the connected clients as well as their pane_id and running command (#3314)
  • feat(cli): allow binding Ctrl J (#3307)

Do you like Zellij ❀️ ?

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you! https://github.com/sponsors/imsnif

Release v0.40.0

16 Apr 07:29
Compare
Choose a tag to compare

Release notes

This release includes exciting new features as well as some long awaited and requested improvements.

Some highlights

  • A new welcome screen
  • A new filepicker
  • Pipes
  • Open floating panes at specific coordinates
  • Rearrange tabs
  • Disconnect other clients
  • Plugin aliases
  • New possible keys to bind
  • Start session in the background
  • Performance improvements

Check out the official announcement

Also check out the two new screencasts/tutorials about session management and the new filepicker.

Are you upgrading from an older version using a custom config file?

In order to take advantage of some of the new features (eg. the welcome-screen and filepicker), you'll need to swap the plugins section in your configuration file with the one from the default file.

Do you like Zellij? ❀️

Me too! So much so that I spend 100% of my time developing and maintaining it and have no other income.

Zellij will always be free and open-source. Zellij will never contain ads or collect your data.

So if the tool gives you value and you are able, please consider a recurring monthly donation of 5-10$ to help me pay my bills. There are Zellij stickers in it for you!

Release v0.39.2

29 Nov 10:58
Compare
Choose a tag to compare

This is a patch release mostly to fix an issue where the sessions in the session-manager would take ~1 minute to be updated.

What's Changed

  • Fix typo in help page by @wendrul in #2906
  • fix(sessions): untie serialization interval from session read interval by @imsnif in #2951
  • fixup: zellij-server: fix compiler warnings by @rmsyn in #2873

New Contributors

Full Changelog: v0.39.1...v0.39.2

Release v0.39.1

13 Nov 08:05
Compare
Choose a tag to compare

This is a patch release to fix some issues that came out with the recent 0.39.0 release.

The main user-facing issue here is reducing the serialization interval to 1 minute by default and allowing it to be configured using the serialization_interval configuration parameter.

Thanks to the many community contributions which helped quickly fix a lot of the bugs found in the release! It's good to see so many people relying heavily on the tool and helping maintain it so quickly.

What's Changed

New Contributors

Full Changelog: v0.39.0...v0.39.1

0