Releases: zellij-org/zellij
Release v0.27.0
Important Notes
- Since we changed the key configuration, if you have a custom config you'll need to update it. As always, you can dump the default config and adjust it (after backing up your old config!) with:
zellij setup --dump-config > ~/.config/zellij/config.yaml
(for more details: https://zellij.dev/documentation/configuration.html) - We changed our STDIN parsing library - this means that more key combinations would work, but it also means that we unfortunately had to let go of the Alt + [] shortcuts for quick navigation. We do apologize for this and it was important to us to give an alternative (you can now use Alt + ). These never really worked well and caused a lot of issues. There was unfortunately no easy way around it.
Changelog
- Fix: feature
disable_automatic_asset_installation
(#1226) - Fix:
wasm_vm
usecache_dirs
for ephemeral plugin data (#1230) - Bump
nix
version to0.23.1
(#1234) - Refactor: move tiled_panes to their own module (#1239)
- Add: allow rounded frame corners to be selected in the config (#1227)
- Deps: move from termion to termwiz (#1249)
- Fix: resolve crash when opening tab and zellij tmp dir does not exist (#1256)
- Fix: Behave properly when embedding floating pane into a fullscreen tiled pane (#1267)
- Fix: various screen crashes in some edge cases (#1269)
- Feat: Add Alt+Arrows quick navigation (#1264)
- Fix: don't crash on bad intermediate tab state (#1272)
- Fix: resolve crash when closing panes on single core systems (#1051)
- Terminal Compatibility: Behave properly when ansi scrolling down with an undefined scroll region (#1279)
- Fix: properly render selection when background color of characters is not set (#1250)
- Terminal Compatibility: revert previous incorrect change to csi erase display (#1283)
All Changes
- fix(feat):
disable_automatic_asset_installation
by @a-kenji in #1226 - fix(wasm_vm): use
cache_dirs
for ephemeral plugin data by @a-kenji in #1230 - chore: bump
nix
version to 0.23.1 by @jaeheonji in #1234 - add(ci): install
cargo-make
throughnix
by @a-kenji in #1233 - Feat/add rust toolchain by @a-kenji in #1235
- [Update] rust-toolchain by @github-actions in #1236
- refactor(tab): move tiled panes to their own module by @imsnif in #1239
- flake.lock: Update by @github-actions in #1243
- add(ci): toolchain by @a-kenji in #1245
- fix: remove obsolete script by @a-kenji in #1247
- fix(ci): scope nix workflows by @a-kenji in #1248
- fix: cargo issue by @a-kenji in #1253
- feat(ui): round frame corners by @TheLostLambda in #1227
- Move from termion to termwiz for STDIN handling by @imsnif in #1249
- fix(crash): ensure ZELLIJ_TMP_DIR exists when starting plugins by @tlinford in #1256
- fix(tab): do not crash when only floating panes are left by @imsnif in #1266
- fix(tab): floating panes embed/fullscreen and frame color by @imsnif in #1267
- fix(screen): handle various edge cases rather than crashing by @imsnif in #1269
- Add navigation with alt + arrow keys by @imsnif in #1264
- Fix crash in intermediate no-tabs state by @imsnif in #1272
- fix: catch and report errors about tty I/O (#882) by @raphCode in #1051
- flake.lock: Update by @a-kenji in #1275
- build(deps): bump log from 0.4.14 to 0.4.16 by @dependabot in #1278
- fix(compatibility): ansi scroll down by @imsnif in #1279
- build(deps): bump actions/cache from 2 to 3 by @dependabot in #1277
- fix(ui): add missing closing > by @imsnif in #1280
- fix selection rendering of unstyled characters by @tlinford in #1250
- fix(compatibility): revert change in csi erase in display handling by @tlinford in #1283
- fix(compatibility): don't crash on invalid state when padding line by @imsnif in #1285
New Contributors
Full Changelog: v0.26.1...v0.27.0
Release v0.26.1
This is (mostly) a hotfix release to fix a regression when pasting.
What's Changed
- HOTFIX: Paste regression by @imsnif (08d2014)
- feat: improve error reporting system by @jaeheonji in #1038
- add(ci): add labels to flake update pr by @a-kenji in #1211
- fix(ci):
update-flake-lock
by @a-kenji in #1213 - flake.lock: Update by @github-actions in #1214
- fix(nix): fix
makeDesktopItem
by @a-kenji in #1215 - docs: add
cargo-binstall
by @jaeheonji in #1212 - add(readme): built-with-nix badge by @a-kenji in #1220
- fix: release tagging by @a-kenji in #1223
- chore(update): pretty-bytes
0.2
->0.2.2
by @a-kenji in #1224 - fix: deprecated function in clap by @a-kenji in #1225
Full Changelog: v0.26.0...v0.26.1
Release v0.26.0
What's Changed
- fix: invalid assignment of
client_id
by @jaeheonji in #1052 - Replace unnecessary
assert_eq!
withassert!
by @ken-matsui in #1079 - Simplify unnecessary
return
statements by @ken-matsui in #1080 - add(conf): add action to send
^b
by @a-kenji in #1106 - Remove unnecessary
continue
by @ken-matsui in #1077 - add: a few extra tmux binding keys by @casonadams in #1098
- Replace
sort_by
withsort_by_key
by @ken-matsui in #1089 - fix(docs): replace the list with a table that is more readable rather than strikethrough by @ken-matsui in #1088
- Remove redundant
.clone()
calls by @ken-matsui in #1085 - Remove unnecessary borrow operators by @ken-matsui in #1084
- Ensure Title doesn't overrun by @tfgast in #1094
- Simplify
find(..).is_some()
toany(..)
and use+=
instead by @ken-matsui in #1081 - Simplify the conversion from
bool
toi32
by @ken-matsui in #1075 - Fix a grammatical error in
CONTRIBUTING.md
by @ken-matsui in #1070 - fix(input): handle discontiguous STDIN input by @imsnif in #1119
- fix(compatibility): properly clear pane before switching to alternate screen by @imsnif in #1120
- Use the
clippy-check
action by @ken-matsui in #1122 - fix(docs): add information about clippy lints by @ken-matsui in #1126
- Bump
suggestion
version to the latest by @ken-matsui in #1124 - fix(docs): add a link to release page for roadmap by @ken-matsui in #1123
- add tmux ctrl+b d shortcut for detach by @casonadams in #1116
- init: nix support by @a-kenji in #1131
- ci(add): update flake lock action by @a-kenji in #1135
- fix: gitignore by @a-kenji in #1136
- docs(add):
podman
as alternative todocker
by @a-kenji in #1137 - Fix unused code warnings by @orhun in #1087
- feat: add
cargo-binstall
method by @jaeheonji in #1129 - flake.lock: Update by @github-actions in #1138
- Fix nix by @a-kenji in #1140
- Init nix ci by @a-kenji in #1141
- fix(compatibilty): do not use current cursor style in csi erase display by @tlinford in #1142
- fix(tests): ensure e2e tests use updated plugins by @tlinford in #1047
- Fix nix darwin by @a-kenji in #1143
- Improve gitignore by @a-kenji in #1144
- chore(deps): bump DeterminateSystems/update-flake-lock from 6 to 8 by @dependabot in #1147
- Nix add man by @a-kenji in #1148
- fix: Allow terminal title passthrough even when not drawing pane frames. by @KerfuffleV2 in #1113
- docs(readme): move install docs to docs by @a-kenji in #1150
- fix: typo in error message by @a-kenji in #1151
- add: set
env
var's from config and layout by @a-kenji in #1154 - add: editorconfig by @a-kenji in #1156
- add(nix): add binary cache
zellij
by @a-kenji in #1157 - fix(nix): remove
jq
by @a-kenji in #1158 - fix(layout): allow lowercase keys and values by @a-kenji in #1160
- add(nix): add
cargo-insta
by @a-kenji in #1162 - add: limited set of
crates
to dependabot by @a-kenji in #1163 - chore(deps): bump actions/checkout from 2 to 3 by @dependabot in #1164
- docs: add installation instructions for Void Linux by @tranzystorek-io in #1165
- fix(nix): add
example
to exclude by @a-kenji in #1168 - fix(cargo.toml): remove reduntant
resolver
key by @a-kenji in #1170 - docs(contributing): add a small
nix
section by @a-kenji in #1172 - docs(contributing): add a small
nix
section by @a-kenji in #1173 - fix(cli):
list-sessions
stderr on fail by @a-kenji in #1174 - add(comp): dynamic completions for fish by @a-kenji in #1176
- fix(comp): typo and add new option by @a-kenji in #1178
- add(readme): matrix logo to the badge by @a-kenji in #1179
- fix(readme): switch badges and gif by @a-kenji in #1180
- add(nix): add crate2nix by @a-kenji in #1181
- fix(comp): typo in long option '--generate-completion' for fish by @folliehiyuki in #1183
- refactor(tab): simplify logic for scrolling active pane by @tlinford in #1184
- Improve: more explicit detach instruction by @jaeheonji in #1161
- fix(floating-panes): update tooltip after hiding floating panes with mouse by @tlinford in #1186
- fix(ci): give clearer names by @a-kenji in #1187
- refactor(tab): simplify mouse hold and release by @tlinford in #1185
- build(nix): apply overrrides correctly by @a-kenji in #1194
- fix(compatibility): replace wide characters under cursor properly by @imsnif in #1196
- fix(compatibility): home and end in cursor keys mode by @tlinford in #1190
- feature(mouse): forward mouse events by @tlinford in #1191
- build(nix): apply overlay for crate2nix by @a-kenji in #1198
- add(nix): lorri integration by @a-kenji in #1200
- add(nix): treefmt / alejandra by @a-kenji in #1201
- fix(config): allow POSIX style
--config
override by @a-kenji in #1205
New Contributors
- @casonadams made their first contribution in #1098
- @tfgast made their first contribution in #1094
- @orhun made their first contribution in #1087
- @github-actions made their first contribution in #1138
- @KerfuffleV2 made their first contribution in #1113
- @folliehiyuki made their first contribution in #1183
Full Changelog: v0.25.0...v0.26.0
Release v0.25.0
Notable Features
- Floating panes - you can now open a new floating pane with
ctrl-p
+w
, or toggle floating of an existing embedded / floated window withctrl-p
+e
- Tmux mode - Zellij now supports basic tmux keybindings for splitting panes, moving focus and opening/renaming tabs. They work out of the box without further configuration.
- Copy directly to system clipboard - Zellij now supports a configuration that would allow it to copy directly to system clipboard, providing a workaround for terminals who previously weren't supported (eg. gnome-terminal). More information: https://zellij.dev/documentation/compatibility.html#clipboard-not-working
Upgrading from previous versions
This version includes new keybindings (for floating panes and tmux mode). If you have a custom configuration that unbinds all keybindings, you'll need to update it in order to be able to use these features. This can be done with zellij setup --dump-config > new-config-file.yaml
. For more information: https://zellij.dev/documentation/configuration.html
Breaking Changes
This version includes some breaking changes for plugins. Fortunately, all of them are internally handled in the zellij-tile
library. To get your plugins to work with the new version, you'll need to compile them again against the new version. If you have any questions or issues, please reach out on one of our chat servers or open an issue.
What's Changed
- fix: add exception for cwd does not exist by @jaeheonji in #995
- feat: change dependency for
process_cwd
by @jaeheonji in #1001 - Proposal: Allow use of system clipboard by @djpate in #996
- Add option to default config for copy_command (PR #996) by @JCallicoat in #1019
- Update arg parsing to clap v3 by @tranzystorek-io in #1017
- feat: accept only printable unicode char by @jaeheonji in #1016
- fix(scroll): scroll pane by actual amount of rows by @tlinford in #1025
- fix(compatibility): handle csi erase param 3 by @tlinford in #1026
- Create tokyonightDark.yaml by @Vanderscycle in #1015
- fix(config): warn on mode without actions by @a-kenji in #1035
- feat: add focus attribute in layout by @jaeheonji in #958
- fix(compatibility): do not set scroll buffer in alternate screen by @tlinford in #1032
- allow osc52 copy destination configuration by @tlinford in #1022
- Solve Issue #1010 by @RobWalt in #1045
- fix fzf crash by @tlinford in #1056
- Add floating panes by @imsnif in #1066
- chore: bump internal autocfg dependency to 1.1.0 by @tranzystorek-io in #1071
- feat(ux): tmux mode by @imsnif in #1073
- fix(copy): rejoin wrapped lines by @tlinford in #1069
- fix(ui): floating panes UI by @imsnif in #1074
- fix(ui): restore get active at by @imsnif in #1076
- update demo animation by @imsnif in #1086
New Contributors
- @djpate made their first contribution in #996
- @JCallicoat made their first contribution in #1019
- @Vanderscycle made their first contribution in #1015
- @RobWalt made their first contribution in #1045
Full Changelog: v0.24.0...v0.25.0
Release v0.24.0
This is a breaking change
In this release we improved the default keybindings (for more details: #991)
If you don't have a custom config this does not affect you.
If you have a custom config, everything should still work as usual, except for the occasional keybinding inconsistency. You might want to re-create it though to get the new keybindings - we feel they are much more usable. You can re-create it with zellij setup --dump-config /path/to/config/file
for more details: https://zellij.dev/documentation/configuration.html
Changes
- Terminal compatibility: properly handle insertion of characters in a line with wide characters (#964)
- Terminal compatibility: properly handle deletion of characters in a line with wide characters (#965)
- Fix: properly remove clients when detaching from a session (#966)
- Fix: plugin theme coloring (#975)
- Fix: prevent unhandled mouse events escape to terminal (#976)
- Fix: ensure clippy runs on all targets (#972)
- Fix: atomically create default assets every time a session starts (#961)
- Fix: Allow multiple users to switch tabs with the mouse (#959)
- Fix: Allow switching tabs with the mouse when pane is in fullscreen (#977)
- Fix: pass bell (helpful for eg. desktop notifications) from terminal to desktop (#981)
- Fix: tab click crash on mouse click with multiple users (#984)
- Fix: accidental tab synchronization bug between multiple users when clicking with mouse (#986)
- Fix: Properly move users out of closed tab in a multiuser session (#990)
- Feature: Pass active pane title to terminal emulator (#980)
- Feature: Improve default keybindings (#991)
- Feature: Configurable scroll buffer size (#936)
Release v0.23.0
- Feature: add collaboration support - multiple users using multiple cursors (#957)
This change adds collaboration features to Zellij, and as such is a breaking change UX-wise.
From this version, if you attach to the same Zellij session from different windows (or of course, from different machines!) - you'll get a cursor for each connected user. You can focus on different panes, or different tabs and see each other typing. To get the previous behaviour of mirroring every window, use options --mirror-session
when starting the original session.
Release v0.22.1
- Hotfix: Focus fullscreen pane when switching tab focus (#941)
Release v0.22.0
- Fix: missing themes in configuration merge (#913)
- Fix: add
gray
to theme section (#914) - Fix: prevent zellij session from attaching to itself (#911)
- Terminal compatibility: fix flaky scrolling issue (#915)
- Fix: handle pasted text properly in windows terminal (#917)
- Fix: update example config options (#920)
- Fix: correct handling of unbinds (#923)
- Fix: improve perfomance when resizing window with a large scrollback buffer (#895)
- Fix: support multiple users in plugins (#930)
- Fix: update default layouts (#926)
- Add: infrastructure to show distinct tips in the
status-bar
plugin (#926) - Feature: Allow naming panes (#928)
Release v0.21.0
-
Add: initial preparations for overlay's (#871)
-
Add: initial
zellij.desktop
file (#870) -
Add: section for third party repositiories
THIRD_PARTY_INSTALL.md
(#857) -
Add: suggestion for similar session name, on attach (#843)
-
Fix: handling and overwriting options through the cli (#859)
THIS IS A BREAKING CHANGE:
Previously it was only possible to turn off certain features through the cli,
now it also is possible to overwrite this behavior - for that the following changed:- renamed and inverted:
disable_mouse_mode -> mouse_mode no_pane_frames -> pane_frames
- cli options added:
mouse-mode [bool] pane-frames [bool] simplified-ui [bool]
- cli flag removed:
simplified-ui
Now the cli options can optionally be toggled on, even if the config
turns it off, example:zellij options --mouse-mode true
-
Fix: fix CSI cursor next line not moving cursor to beginning of line after moving it down (#863)
-
Refactor: Support multiple users in
Tab
s (#864) -
Refactor: close_pane returns closed pane (#853)
-
Add: ability to configure zellij through layouts (#866)
-
Refactor: simplify terminal character style diff (#839)
-
Fix: improve performance with large scrollback buffer (#881)
-
Add: support osc8 escape code (#822)
-
Add: optionally leave ephemeral modes by pressing the
esc
key to default config (#889) -
Feature: Multiple users UI for panes behind a turned-off feature flag (#897)
-
Add: plugin api, to provide version information to plugins (#894)
Release v0.20.1
-
Add: initial session name to layout template (#789)
-
Fix: simplify matches (#844)
-
Add: support darwin builds on ci (#846)
-
Add: e2e instructions for x86 and arm darwin systems (#846)
-
Fix: use key-value style for
docker-compose
(#338) -
Fix: unify zellij environment variable handling (#842)
-
Add: toggle boolean options with cli flags (#855)
-
HOTFIX: fix pasting regression (#858)