Releases: zellij-org/zellij
Release v0.32.0
This is a pretty major Zellij release that includes lots of goodies mostly geared toward advanced users.
Notable Changes
- All configuration has moved from
YAML
toKDL
- see breaking change below - Command panes: try
zellij run --floating -- ls -l
- Send commands to Zellij through the CLI: see
zellij action --help
- New layout system
For more details and examples, see: https://zellij.dev/news/config-command-layouts/
Documentation for the new features
Breaking Change
This release changes the entire configuration language of Zellij from YAML
to KDL
. For configuration, layouts and themes.
When Zellij starts, it will prompt the user before converting the files automatically. The originals will not be modified.
This can also be done manually:
zellij convert-config /path/to/my/config.yaml > /path/to/my/config.kdl
zellij convert-layout /path/to/my/layout.yaml > /path/to/my/layout.kdl
zellij convert-theme /path/to/my/theme.yaml > /path/to/my/theme.kdl
All changes
- Feature: Better error handling/reporting by @har7an in #1670
- Don't send the server an exit signal when client crashes by @raphCode in #1731
- test: simplify tab integration tests by @tlinford in #1728
- Fix: issue 1734 by @har7an in #1749
- Add docs about error handling by @har7an in #1745
- build(deps): bump DeterminateSystems/update-flake-lock from 13 to 14 by @dependabot in #1762
- flake.lock: Update by @a-kenji in #1761
- zellij-server/src/screen: improve error handling by @arriven in #1770
- fix(nix) missing frameworks on darwin by @mdavezac in #1724
- Switch to kdl by @imsnif in #1759
- Server: Remove
panic
s intab
module by @har7an in #1748 - zellij-server: improve thread_bus error handling by @arriven in #1775
- feat(ux): rerun command pane by @imsnif in #1787
- fix(converter): escape quotes by @imsnif in #1790
- fix(tab): frameless pane size wrong after closing other panes by @tlinford in #1776
- fix(layouts): error on mixed nodes by @imsnif in #1791
- fix(layouts): duplicate layout definition error by @imsnif in #1792
- fix(cli): use provided session-name by @imsnif in #1793
- zellij/commands: Prevent recursive sessions by @har7an in #1766
- fix(layouts): various kdl layout issues and features by @imsnif in #1797
- feat(layouts): global cwd by @imsnif in #1798
- feat(layouts): edit panes by @imsnif in #1799
- Log
thread_bus
IPC messages only in debug mode by @har7an in #1800 - feat(cli): zellij run improvements by @imsnif in #1804
- docs: Describe how to handle Options as errors by @har7an in #1805
- feat(panes): change floating window positions by @imsnif in #1810
- fix(editor): default to vi when no editor is set by @imsnif in #1811
- chore(deps): upgrade log4rs by @imsnif in #1814
- allow dump_screen() to only dump the viewport by @dannasman in #1794
- fix(terminal): reset scroll region when clearing screen by @imsnif in #1826
- feat(layouts): allow defining a tab cwd by @imsnif in #1828
- fix(command): better error when command not found by @imsnif in #1829
- errors: Don't panic in
wasm_vm
by @har7an in #1827 - fix(layouts): do not override explicitly set layout if it exists by @imsnif in #1830
- fix(layouts): various bugs and better errors by @imsnif in #1831
- improve error handling in route by @naosense in #1808
- rust-toolchain: Update by @a-kenji in #1834
- plugins: Improve error handling on plugin version mismatch by @har7an in #1838
- Add help for options of newly added actions by @jaeheonji in #1839
- fix(various): minor fixes before 32 by @imsnif in #1841
New Contributors
- @arriven made their first contribution in #1770
- @mdavezac made their first contribution in #1724
- @dannasman made their first contribution in #1794
- @naosense made their first contribution in #1808
Full Changelog: v0.31.4...v0.32.0
Release v0.31.4
This is a patch version including many stability and compatibility fixes, none of them breaking.
Changelog for this version
- Terminal compatibility: improve vttest compliance (#1671)
- fix: bracketed paste handling regression (#1689)
- fix: occasional startup crashes (#1706)
- fix: gracefully handle SSH disconnects (#1710)
- fix: handle osc params larger than 1024 bytes (#1711)
- Terminal compatibility: implement faux scrolling when in alternate screen mode(#1678)
- fix: mouse-click on tab-bar in simplified-ui now always focuses the correct tab (#1658)
- fix: sort UI cursors properly when multiple users are focused on the same pane (#1719)
All changes
- Improve vttest by @AutumnMeowMeow in #1671
- build(deps): bump DeterminateSystems/update-flake-lock from 12 to 13 by @dependabot in #1683
- fix: bracketed paste input not getting adjusted properly by @tlinford in #1689
- fix(router): startup race by @imsnif in #1706
- fix(router): gracefully handle client crashes by @imsnif in #1710
- fix osc params 1024 bytes limit by @tlinford in #1711
- flake.lock: Update by @a-kenji in #1703
- feat(compatibility): mouse wheel faux scrolling in alternate screen by @tlinford in #1678
- fix(tab-bar): fix tab bar click when tabs are collapsed, fix tab bar length calculation by @prscoelho in #1658
- fix(ui): sort multiple ui cursors by @imsnif in #1719
New Contributors
- @AutumnMeowMeow made their first contribution in #1671
Full Changelog: v0.31.3...v0.31.4
Release v0.31.3
This is a hotfix to fix a regression in the latest patch where Arrow-Up wasn't working.
Release v0.31.2
This is a patch release mainly to fix some critical bugs
Changes
- fix: crash when attaching to a session without the first tab (#1648)
- fix: race crash on startup when server is not ready (#1651)
- Terminal compatibility: forward OSC52 clipboard copy events from terminals (#1644)
- refactor: terminal characters (#1663)
- Terminal compatibility: properly send mouse clicks and drags to terminal panes (#1664)
What's Changed
- chore(logging): log all unhandled ansi sequences by @imsnif in #1636
- flake.lock: Update by @a-kenji in #1639
- screen: Don't crash when first tab doesn't exist by @har7an in #1648
- fix(router): retry messages when server is not ready by @imsnif in #1651
- forward OSC52 events by @apexo in #1644
- Update CHANGELOG.md by @vaporup in #1611
- rust-toolchain: Update by @a-kenji in #1659
- A little refactoring by @TornaxO7 in #1663
- Fix SGR/UTF8 mouse reporting in terminal panes by @imsnif in #1664
New Contributors
Full Changelog: v0.31.1...v0.31.2
Release v0.31.1
This is a hotfix patch for some issues with themes
What's Changed
- fix(ci): change checksum tool in macos by @jaeheonji in #1613
- Adding solarized-light by @TornaxO7 in #1608
- fix(readme): cargo install instructions by @a-kenji in #1616
- fix(ci): remove cachix environment by @a-kenji in #1617
- move: default.nix and shell.nix files from root by @a-kenji in #1618
- Readme: link to documentation pages in-text by @f0x52 in #1621
- build(deps): bump DeterminateSystems/update-flake-lock from 10 to 12 by @dependabot in #1624
- docs(contributing): document logging by @imsnif in #1627
- fix: theme not loading without config by @jaeheonji in #1631
New Contributors
Full Changelog: v0.31.0...v0.31.1
Release v0.31.0
This release includes three major features that have each been in the work for quite a while, and have all been very widely requested.
- Sixel support* - Zellij now supports Sixel graphics (https://en.wikipedia.org/wiki/Sixel) for displaying images and video in the terminal.
- Search mode - You can now search through the pane scrollback. We renamed "Scroll mode" to "Search mode" and it now includes all the old capabilities as well as the new search feature.
- The status-bar keybindings now update according to your config
Since we updated the keybindings (for the search mode) please note that if you have a custom configuration that defined keybindings (eg. one you created with zellij setup --dump-config), you'll probably need to update it. You can do that with zellij setup --dump-config > ~/.config/zellij/config.yaml
(for more information on the configuration and its location - please check out: https://zellij.dev/documentation/configuration.html)
*Note that you'll need a supported terminal to take advantage of this feature. There's a nice list here: https://www.reddit.com/r/linux/comments/t3m7zm/quick_roundup_of_bitmap_graphics_availability_in/
What's Changed
- Add logging to ipc receiver by @raphCode in #1459
- chore(deps): update
crossbeam
by @a-kenji in #1463 - move:
test-template
layout tolayouts
directory by @a-kenji in #1464 - remove: obsolete comment by @a-kenji in #1465
- add(option):
default_layout
by @a-kenji in #1467 - ci(nix): retry nix build on spurious failure by @a-kenji in #1472
- remove: obsolete nonfunctional configurations by @a-kenji in #1474
- add(README): quick links to documentation by @a-kenji in #1473
- add: fix a small lint by @a-kenji in #1476
- add(ci/makefile): run clippy on all features by @a-kenji in #1479
- docs: fix typos by @kianmeng in #1481
- add(style): add trailing comma in match blocks by @a-kenji in #1483
- ci: add checksum for release binary by @jaeheonji in #1482
- fix: update architecture-docs by @a-kenji in #1487
- fix(cli): clear up tooltip information by @a-kenji in #1488
- fix: tab selection by left click in compact-bar by @amaihoefner in #1485
- flake.lock: Update by @a-kenji in #1489
- fix(themes): unify filename and themename usage by @a-kenji in #1492
- Deduplicate code in zellij-server screen by @har7an in #1453
- chore(deps): update
clap
:3.1.18
->3.2.2
by @a-kenji in #1496 - fix(themes): gruvbox-dark by @a-kenji in #1499
- feat: add capability to dispatch actions from cli by @a-kenji in #1265
- fix: remove obsolete logs by @a-kenji in #1504
- fix(clippy): clippy fixes by @a-kenji in #1508
- Add/ci enable clippy by @a-kenji in #1509
- fix(action): send
WriteChars
once per action by @a-kenji in #1516 - feat: fullscreen focus swapping by @nacairns1 in #1515
- fix(action): correctly dispatch the
Write
action by @a-kenji in #1518 - fix: clarify comments by @a-kenji in #1519
- add(ci): check for msrv by @a-kenji in #1522
- fix(action): dispatch of
edit-scrollback
by @a-kenji in #1523 - feat: add action to undo rename by @jaeheonji in #1513
- flake.lock: Update by @a-kenji in #1527
- Fix installation with MacPorts by @ken-matsui in #1529
- fix: dispatch various actions correctly by @a-kenji in #1530
- add: debug information for certain actions by @a-kenji in #1533
- Exit client empty rcv by @raphCode in #1535
- utils/input: Make key order consistent by @har7an in #1539
- feat(theme): allow hex colors for themes by @RGFTheCoder in #1536
- add(feature):
unstable
by @a-kenji in #1542 - build(deps): bump DeterminateSystems/update-flake-lock from 9 to 10 by @dependabot in #1543
- fix(editor): handle editor in fullscreen by @imsnif in #1544
- fix(terminal): properly trim lines with widechars on resize by @imsnif in #1545
- fix(scroll): reset scroll properly when typing by @imsnif in #1547
- roll over logs / fix filling up /tmp with logs by @raphCode in #1548
- docs(manpage): update manpage by @jaeheonji in #1549
- fix: various typos by @a-kenji in #1553
- flake.lock: Update by @a-kenji in #1554
- fix: fallback to default values when terminal rows/cols are 0 by @tlinford in #1552
- Fix ci clippy by @a-kenji in #1559
- add(nix): add
compact-bar
to the flake outputs by @a-kenji in #1560 - Refactor all shared contents from zellij tile to zellij utils by @har7an in #1541
- fix: typo by @a-kenji in #1567
- Sixel support by @imsnif in #1557
- flake.lock: Update by @a-kenji in #1575
- fix(ci): add new rust toolchain location to action by @a-kenji in #1576
- rust-toolchain: Update by @a-kenji in #1578
- chore(nix): hide
nix
directory by @a-kenji in #1579 - chore(docs): add more matrix links by @a-kenji in #1581
- fix: add usage comment to fish shell auto-start snippet (#1574) by @tsdh in #1583
- Refactor match session name by @matthiasbeyer in #1582
- Let the exit message be different when detaching by @matthiasbeyer in #1573
- Improve terminal performance by @imsnif in #1585
- fix(terminal): persist cursor hide/show through alternate screen by @imsnif in #1586
- fix(editor): handle editor/visual/configured editor with arguments by @imsnif in #1587
- fix(ci): quoting issues by @a-kenji in #1589
- fix: avoid forwarding mouse events on pane border by @tlinford in #1584
- flake.lock: Update by @a-kenji in #1592
- Search panes by @msirringhaus in #1521
- flake.lock: Update by @a-kenji in #1601
- feat: support
themes
directory by @jaeheonji in #1577 - Log every panic to the logfile by @raphCode in #1602
- status-bar: Reflect actual current keybindings by @har7an in #1242
- performance(pty): update last render time on non-backed-up render by @imsnif in #1610
New Contributors
- @kianmeng made their first contribution in #1481
- @amaihoefner made their first contribution in #1485
- @har7an made their first contribution in #1453
- @nacairns1 made their first contribution in #1515
- @RGFTheCoder made their first contribution in #1536
- @tsdh made their first contribution in #1583
- @msirringhaus made their first contribution in #1521
Full Changelog: v0.30.0...v0.31.0
Release v0.30.0
This is an exciting release with lots of bugfixes and some really nice new features:
- You can now use your default $EDITOR (eg. vim) to search through and save your pane's scrollback: use
Ctrl + <s> + <e>
on your focused pane. - We added a "compact" layout to Zellij which will save you screen real-estate. It loads a version of the tab-bar that also shows you the input mode you're in (eg. Normal, Pane, Tab, Locked) and does not load the status bar. It's great if you're already familiar with the keybindings. To load it start Zellij with
zellij -l compact
- There are now lots more "Tip"s added to the status-bar if you do want to load it. They advertize some less-known features of Zellij that can help you out in your day-to-day.
- We tweaked the "simplified-ui" mode, and it should now appear a little nicer.
- The Zellij website now includes a "Try Zellij without installing" link. Now you can more easily recommend Zellij to your friends! Thanks @raphcodes and @spyros for your efforts on this.
Note that if you adjusted the config in a separate config file, you'll have to update it in order to get the new keybindigns from point 1. The easiest way to do this is tieh zellij setup --dump-config > /path/to_config_location
and then copying over your changes (be sure to backup the file first).
In addition, we recently also added a roadmap for the Zellij project. Check it out if you'd like to see what's coming next: https://zellij.dev/roadmap/
Changelog
- fix: right and middle clicks creating selection (#1372)
- feat: Attach to sessions more conveniently by only typing their name's first character(s) (#1360)
- fix: a small typo (#1390)
- feat: show subcommand aliases in help output (#1409)
- chore(dependencies): rename crate
suggestion
->suggest
(#1387) - fix: update to output error when using
--layout
(#1413) - fix: ANSI output sent to terminal on resize in certain cases (#1384)
- fix: freeze when pasting large amounts of text to vim (#1383)
- feat: new action to dump the scrollbuffer to a file (#1375)
- fix(strider): update out of range index in files (#1425)
- feat: strip debug symbols of release builds 20% size reduction, MSRV is now
1.59
(#1177) - chore(dependencies): update
names
anddialoguer
crates (#1430) - fix: add checking for missing extensions (#1432)
- fix: client process hanging / not exiting when terminal emulator was closed (#1433)
- BREAKING CHANGE: merge
--layout
and--layout-path
(#1426) - add: a version of the
tab-bar
plugin, that carries mode information, calledcompact-bar
also adds a new default layout calledcompact
, which can be loaded with:zellij --layout compact
,
that loads thecompact-bar
. (#1450) - feat: allow searching through and editing the pane scrollback with your default editor (#1456)
- fix: exit client loop on empty message from server (#1454)
- fix: mouse selection sometimes getting stuck (#1418)
- feat: tweak simplified UI (#1458)
- feat: add status more tips (#1462)
All changes
- fix(mouse): middle or right clicks creating selection by @tlinford in #1372
- feat: Attach sessions by unique prefix name (#1169) by @raphCode in #1360
- flake.lock: Update by @a-kenji in #1385
- build(deps): bump log from 0.4.16 to 0.4.17 by @dependabot in #1386
- fix: a small typo by @a-kenji in #1390
- feat: Shows subcommand aliases in help text by @bigbass1997 in #1409
- fix(deps): Rename
suggestion
crate tosuggest
by @ken-matsui in #1387 - fix: update to output error when using
--layout
by @jaeheonji in #1413 - flake.lock: Update by @a-kenji in #1417
- fix: macos ansi instruction parsing by @tlinford in #1384
- fix paste freeze (#1366) by @tlinford in #1383
- fix: ensure pty_writer thread closes by @tlinford in #1422
- Dump the terminal screen into a file by @cosminadrianpopescu in #1375
- flake.lock: Update by @a-kenji in #1427
- fix(strider): update out of range index in files by @jaeheonji in #1425
- build: strip debug symbols by @a-kenji in #1177
- Updated names and dialoguer crates dependencies by @Laiot in #1430
- fix: add checking for missing extensions by @jaeheonji in #1432
- Fix double panic lockup in clients panic handler by @raphCode in #1433
- Update Dracula Theme by @welcoMattic in #1435
- Merge --layout and --layout-path by @SpyrosRoum in #1426
- flake.lock: Update by @a-kenji in #1438
- fix: clarify help text by @a-kenji in #1442
- add: more information to the manpage by @a-kenji in #1443
- add(plugin):
compact-bar
&compact
layout by @a-kenji in #1450 - fix(compact-bar): remove duplicate padding by @a-kenji in #1451
- flake.lock: Update by @a-kenji in #1455
- Edit scrollback by @cosminadrianpopescu in #1456
- Exit client-loop on empty message receive by @SpyrosRoum in #1454
- feat(ui): minor tweaks to the compact tab bar by @imsnif in #1457
- fix(mouse): selection sometimes getting stuck by @tlinford in #1418
- Tweak simplified UI by @imsnif in #1458
- Add status bar tips by @imsnif in #1462
New Contributors
- @bigbass1997 made their first contribution in #1409
- @cosminadrianpopescu made their first contribution in #1375
- @Laiot made their first contribution in #1430
- @welcoMattic made their first contribution in #1435
- @SpyrosRoum made their first contribution in #1426
Full Changelog: v0.29.1...v0.30.0
Release v0.29.1
This is a patch release to fix a regression wherein tabs weren't switchable with the mouse.
What's Changed
Full Changelog: v0.29.0...v0.29.1
Release v0.29.0
Notable changes
- add: clarify copy to clipboard message (#1321)
- Terminal compatibility: fix ANSI scrolling regression (#1324)
- fix: send SIGHUP instead of SIGTERM when closing a pane (#1320)
- add:
copy_on_select
option to configure automatic copy behavior (#1298) - fix: minor system improvements (#1328)
- add: add command for auto-start script (#1281)
- Terminal compatibility: fix cursor pane escape and invalid ansi crash (#1349)
- fix: recover from corrupted ipc bus state (#1351)
- Terminal compatibility: respond to foreground/background color ansi requests (OSC 10 and 11) (#1358)
- fix: avoid panic in link_handler.rs (#1356)
- Terminal compatibility: prevent wide chars from overflowing the title line (#1361)
- Terminal compatibility: adjust saved cursor position on resize (#1362)
- fix: avoid panic on renaming a floating pane (#1357)
- fix: change the way sessions are sorted (#1347)
- fix: improve mouse event reporting, avoid clicks on plugin panes causing active pane scrolling (#1329)
All changes
- Improve message when copying to system clipboard by @raphCode in #1321
- fix(compatibility): various ansi fixes by @imsnif in #1324
- Fix #1286 by sending SIGHUP when closing a pane by @raphCode in #1320
- feat(copy): add copy_on_select option by @tlinford in #1298
- fix: minor system improvements by @jaeheonji in #1328
- flake.lock: Update by @a-kenji in #1331
- feat: support the command of auto-start script for shell by @jaeheonji in #1281
- flake.lock: Update by @a-kenji in #1338
- fix: remove
flake-utils
follows attribute by @a-kenji in #1341 - fix(nix): separate default plugins by @a-kenji in #1342
- fix(compatibility): fix crash and don't allow cursor beyond row width by @imsnif in #1349
- Fix empty ipc msg crash by @imsnif in #1351
- fix(stability): avoid link handler panic on bad index by @tlinford in #1356
- Respond to bg and fg color ansi queries by @imsnif in #1358
- Fix title widechar overflow by @imsnif in #1361
- fix(compatibility): adjust saved cursor position on resize by @imsnif in #1362
- fix: change the way sessions are sorted by @jaeheonji in #1347
- Fix crash on renaming a floating pane (#1323) by @raphCode in #1357
- Mouse fixes by @tlinford in #1329
- flake.lock: Update by @a-kenji in #1364
- build(deps): bump DeterminateSystems/update-flake-lock from 8 to 9 by @dependabot in #1365
Full Changelog: v0.28.1...v0.29.0
Release v0.28.1
- (BREAKING CHANGE) Feature: Improve theme usage and add default themes. Remove gray color from themes. (#1274)
- repo: add
.git-blame-ignore-revs-file
(#1295) - add:
musl
target torust-toolchain
(#1294) - fix: update termwiz to fix crash when pasting on wsl (#1303)
- add: nord theme example (#1304)
- Terminal compatibility: preserve background color when scrolling (#1305 and #1307)
- add:
overlays
to theflake
outputs
(#1312) - refactor: reduce code duplication in tiled_panes (#1299)
- Terminal compatibility: support XTWINOPS CSI 14 + 16 to query terminal pixel info (#1316)
- Fix: Update UI when next-to-last user manually detaches from the session (#1317)