Release v0.34.3
This is mostly a stability, performance and bug fix release, but also includes some nice additional features.
Main Changes
- Performance: both loading and rendering are significantly faster now and take less HW resources
- Loading screen: Zellij now has a minor loading screen (0.5 seconds) before it starts. This is so that input from STDIN will not be lost while Zellij queries the user's terminal emulator for pixel/cell ratio and the default colors
- We now fall back to
/bin/sh
if we can't find a $SHELL variable - Users can now directionally decrease pane size and not just increase it - by default these are bound to HJKL (uppercase letter) in resize mode, but can be bound like anything to other keys.
- Lots of stability and bug fixes
Breaking Changes (mainly for plugin authors)
- If plugins exceed their scrollback, the lines will be deleted from the top and not the bottom as they were until now - this is to make the behaviour more consistent with "actual" terminals (lines are pushed into the scrollback rather than cut from below). Probably the most significant change here is that if you did \n at the last line of the plugin, you'll need to remove, otherwise you'll get an empty line at the end of the plugin pane.
- Whenever plugins (re-)render, they should completely re-render themselves without considering the previous cursor position or artifacts on screen
- The plugin update function now needs to return a bool value (0/1 in non-zellij-tile world), indicating whether the plugin needs to be rendered or not. This is significant because previously plugins who subscribed to the KeyPress event would render themselves on every keypress, regardless of whether anything changed. To make everything work, plugin authors can just always return true. To be a little smarter about it though, feel free to take a look at the Zellij default-plugins - who all return conditionally here.
For a full list of changes, please see: https://github.com/zellij-org/zellij/blob/main/CHANGELOG.md#0343---2022-12-09