Skip to content

Latest commit

 

History

History
634 lines (568 loc) · 44.9 KB

CHANGELOG.md

File metadata and controls

634 lines (568 loc) · 44.9 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog

[Unreleased]

[0.31.4] - 2022-09-09

[0.31.3] - 2022-08-18

  • HOTFIX: fix up-arrow regression

[0.31.2] - 2022-08-17

  • fix: crash when attaching to a session without the first tab (zellij-org#1648)
  • fix: race crash on startup when server is not ready (zellij-org#1651)
  • Terminal compatibility: forward OSC52 clipboard copy events from terminals (zellij-org#1644)
  • refactor: terminal characters (zellij-org#1663)
  • Terminal compatibility: properly send mouse clicks and drags to terminal panes (zellij-org#1664)

[0.31.1] - 2022-08-02

[0.31.0] - 2022-07-28

  • feat: Log errors causing "empty message received from client" (zellij-org#1459)

  • chore(dependencies): update crossbeam 0.8.0 -> 0.8.1 (zellij-org#1463)

  • add(option): default-layout setting for changing the default layout upon start, example: default_layout: compact (zellij-org#1467)

  • fix: many typos (zellij-org#1481)

  • add: checksum for release binary (zellij-org#1482)

  • fix: update cli tooltips (zellij-org#1488)

  • refactor: deduplicate code in screen.rs (zellij-org#1453)

  • chore(dependencies): update clap: 3.1.18 -> 3.2.2 (zellij-org#1496)

  • fix: send WriteChars: once per action (zellij-org#1516)

  • feat: allow swapping tabs, in a fullscreen pane (zellij-org#1515)

  • feat: add action of undo rename (zellij-org#1513)

  • fix(docs): fix macport installation instructions (zellij-org#1529)

  • feat: allow hex colors for themes (zellij-org#1536)

  • fix: client hang when server is killed / shutdown delay (zellij-org#1535)

  • fix: properly handle in-place editor in full-screen (zellij-org#1544)

  • Terminal compatibility: properly trim whitespace in lines with wide-characters when resizing panes (zellij-org#1545)

  • fix: reset scroll properly when typing in certain edge cases (zellij-org#1547)

  • fix: logging may fill up /tmp, now logs are capped at 100 kB (zellij-org#1548)

  • fix: crash when terminal rows or columns are 0 (zellij-org#1552)

  • refactor: moved shared data structures to zellij-utils (zellij-org#1541)

  • feat: support displaying images/video in the terminal with sixel graphics (zellij-org#1557)

  • fix: add usage comment to fish auto-start script (zellij-org#1583)

  • fix: refactor match session name (zellij-org#1582)

  • fix: print "Session detached" rather than "Bye from Zellij!" when detaching from a session (zellij-org#1573 (comment))

  • performance: improve terminal responsiveness (zellij-org#1585 and zellij-org#1610)

  • Terminal compatibility: persist cursor show/hide across alternate screen (zellij-org#1586)

  • fix: support multi-argument EDITOR/VISUAL/scrollback-editor commands (zellij-org#1587)

  • fix: avoid sending mouse click events on pane frames to applications (zellij-org#1584)

  • feat: search through terminal scrollback (zellij-org#1521)

  • feat: support themes directory (zellij-org#1577)

  • feat: Improve logging by writing server panics into the logfile (zellij-org#1602)

  • fix: reflect configured keybindings in the status bar (zellij-org#1242)

  • add: capability to dispatch actions from the cli (zellij-org#1265)

    This feature is gated behind the unstable feature flag. Because the serialization format will be changed at some point. We would still already be glad about early feedback on this feature.

    Can be invoked through zellij action [ACTIONS].

    Automatically sends the action to the current session, or if there is just one to the single session, if there are multiple sessions, then the session name must be specified.

    Example:

    zellij
    zellij action NewTab:
    

    Send actions to a specific session:

    zellij -s fluffy-cat
    zellij -s fluffy-cat action 'NewPane: , WriteChars: "echo Purrr\n"'
    

    Open htop in a new tab:

    zj action "NewTab: {run: {command: {cmd: htop}}}"
    

[0.30.0] - 2022-06-07

  • fix: right and middle clicks creating selection (zellij-org#1372)
  • feat: Attach to sessions more conveniently by only typing their name's first character(s) (zellij-org#1360)
  • fix: a small typo (zellij-org#1390)
  • feat: show subcommand aliases in help output (zellij-org#1409)
  • chore(dependencies): rename crate suggestion -> suggest (zellij-org#1387)
  • fix: update to output error when using --layout (zellij-org#1413)
  • fix: ANSI output sent to terminal on resize in certain cases (zellij-org#1384)
  • fix: freeze when pasting large amounts of text to vim (zellij-org#1383)
  • feat: new action to dump the scrollbuffer to a file (zellij-org#1375)
  • fix(strider): update out of range index in files (zellij-org#1425)
  • feat: strip debug symbols of release builds 20% size reduction, MSRV is now 1.59 (zellij-org#1177)
  • chore(dependencies): update names and dialoguer crates (zellij-org#1430)
  • fix: add checking for missing extensions (zellij-org#1432)
  • fix: client process hanging / not exiting when terminal emulator was closed (zellij-org#1433)
  • BREAKING CHANGE: merge --layout and --layout-path (zellij-org#1426)
  • add: a version of the tab-bar plugin, that carries mode information, called compact-bar also adds a new default layout called compact, which can be loaded with: zellij --layout compact, that loads the compact-bar. (zellij-org#1450)
  • feat: allow searching through and editing the pane scrollback with your default editor (zellij-org#1456)
  • fix: exit client loop on empty message from server (zellij-org#1454)
  • fix: mouse selection sometimes getting stuck (zellij-org#1418)
  • feat: tweak simplified UI (zellij-org#1458)
  • feat: add status more tips (zellij-org#1462)
  • add: new features to manpage (zellij-org#1549)

[0.29.1] - 2022-05-02

[0.29.0] - 2022-05-02

[0.28.1] - 2022-04-13

[0.27.0] - 2022-03-31

  • Fix: feature disable_automatic_asset_installation (zellij-org#1226)
  • Fix: wasm_vm use cache_dirs for ephemeral plugin data (zellij-org#1230)
  • Bump nix version to 0.23.1 (zellij-org#1234)
  • Refactor: move tiled_panes to their own module (zellij-org#1239)
  • Add: allow rounded frame corners to be selected in the config (zellij-org#1227)
  • Deps: move from termion to termwiz (zellij-org#1249)
  • Fix: resolve crash when opening tab and zellij tmp dir does not exist (zellij-org#1256)
  • Fix: Behave properly when embedding floating pane into a fullscreen tiled pane (zellij-org#1267)
  • Fix: various screen crashes in some edge cases (zellij-org#1269)
  • Feat: Add Alt+Arrows quick navigation (zellij-org#1264)
  • Fix: don't crash on bad intermediate tab state (zellij-org#1272)
  • Fix: resolve crash when closing panes on single core systems (zellij-org#1051)
  • Terminal Compatibility: Behave properly when ansi scrolling down with an undefined scroll region (zellij-org#1279)
  • Fix: properly render selection when background color of characters is not set (zellij-org#1250)
  • Terminal Compatibility: revert previous incorrect change to csi erase display (zellij-org#1283)

[0.26.1] - 2022-03-16

[0.26.0] - 2022-03-11

[0.25.0] - 2022-02-22

[0.24.0] - 2022-01-05

  • Terminal compatibility: properly handle insertion of characters in a line with wide characters (zellij-org#964)
  • Terminal compatibility: properly handle deletion of characters in a line with wide characters (zellij-org#965)
  • Fix: properly remove clients when detaching from a session (zellij-org#966)
  • Fix: plugin theme coloring (zellij-org#975)
  • Fix: prevent unhandled mouse events escape to terminal (zellij-org#976)
  • Fix: ensure clippy runs on all targets (zellij-org#972)
  • Fix: atomically create default assets every time a session starts (zellij-org#961)
  • Fix: Allow multiple users to switch tabs with the mouse (zellij-org#959)
  • Fix: Allow switching tabs with the mouse when pane is in fullscreen (zellij-org#977)
  • Fix: pass bell (helpful for eg. desktop notifications) from terminal to desktop (zellij-org#981)
  • Fix: tab click crash on mouse click with multiple users (zellij-org#984)
  • Fix: accidental tab synchronization bug between multiple users when clicking with mouse (zellij-org#986)
  • Fix: Properly move users out of closed tab in a multiuser session (zellij-org#990)
  • Feature: Pass active pane title to terminal emulator (zellij-org#980)
  • Feature: Improve default keybindings (zellij-org#991)
  • Feature: Configurable scroll buffer size (zellij-org#936)

[0.23.0] - 2021-12-20

  • Feature: add collaboration support - multiple users using multiple cursors (zellij-org#957)

[0.22.1] - 2021-12-14

  • Hotfix: Focus fullscreen pane when switching tab focus (zellij-org#941)

[0.22.0] - 2021-12-13

[0.21.0] - 2021-11-29

  • Add: initial preparations for overlay's (zellij-org#871)

  • Add: initial zellij.desktop file (zellij-org#870)

  • Add: section for third party repositories THIRD_PARTY_INSTALL.md (zellij-org#857)

  • Add: suggestion for similar session name, on attach (zellij-org#843)

  • Fix: handling and overwriting options through the cli (zellij-org#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 (zellij-org#863)

  • Refactor: Support multiple users in Tabs (zellij-org#864)

  • Refactor: close_pane returns closed pane (zellij-org#853)

  • Add: ability to configure zellij through layouts (zellij-org#866)

  • Refactor: simplify terminal character style diff (zellij-org#839)

  • Fix: improve performance with large scrollback buffer (zellij-org#881)

  • Add: support osc8 escape code (zellij-org#822)

  • Add: optionally leave ephemeral modes by pressing the esc key to default config (zellij-org#889)

  • Feature: Multiple users UI for panes behind a turned-off feature flag (zellij-org#897)

  • Add: plugin api, to provide version information to plugins (zellij-org#894)

[0.20.1] - 2021-11-10

[0.20.0] - 2021-11-08

  • Fix: improve performance of echoed keystrokes (zellij-org#798)
  • Add: Use hyperlinks for the setup information (zellij-org#768)
  • Feature: Rotate Pane location (zellij-org#802)
  • Terminal compatibility: improve handling of wide-characters when inserted mid-line (zellij-org#806)
  • Fix: plugins are now only compiled once and cached on disk (zellij-org#807)
  • Fix: pasted text performs much faster and doesn't kill Termion (zellij-org#810)
  • Fix: resizing/scrolling through heavily wrapped panes no longer hangs (zellij-org#814)
  • Terminal compatibility: properly handle HOME/END keys in eg. vim/zsh (zellij-org#815)
  • Fix: Typo (zellij-org#821)
  • Fix: Update cargo-make instructions post v0.35.3 (zellij-org#819)
  • Fix: Unused import for darwin systems (zellij-org#820)
  • Add: WriteChars action (zellij-org#825)
  • Fix: typo and grammar (zellij-org#826)
  • Add: rust-version - msrv field to Cargo.toml (zellij-org#828)
  • Fix: improve memory utilization, reap both sides of pty properly and do not expose open FDs to child processes (zellij-org#830)
  • Fix: move from the deprecated colors_transform to colorsys (zellij-org#832)
  • Feature: plugins can now detect right mouse clicks (zellij-org#801)
  • Fix: open pane in cwd even when explicitly specifying shell (zellij-org#834)
  • Fix: do not resize panes below minimum (zellij-org#838)
  • Feature: Non directional resize of panes (zellij-org#520)
  • Add: colored crate to replace manual color formatting (zellij-org#837)
  • Add: introduce thiserrror to simplify error types (zellij-org#836)
  • Add: support --index option for the attach subcommand in order to choose the session indexed by the provided creation date (zellij-org#824)
  • Fix: simplify the main function significantly (zellij-org#829)
  • Feature: half page scrolling actions (zellij-org#813)

[0.19.0] - 2021-10-20

  • Fix: Prevent text overwrite when scrolled up (zellij-org#655)
  • Add: Treat empty config files as empty yaml documents (zellij-org#720)
  • Fix: Commands that don't interact with the config file don't throw errors on malformed config files (zellij-org#765)
  • Add: Add config options to default config file (zellij-org#766)
  • Fix: Properly clear "FULLSCREEN" status when a pane exits on its own (zellij-org#757)
  • Refactor: handle clients in tabs/screen (zellij-org#770)
  • Feature: kill-session and kill-all-sessions cli commands (zellij-org#745)
  • Fix: Keep default file permissions for new files (zellij-org#777)
  • Feature: Add mouse events to plugins – including strider and the tab-bar (zellij-org#629)
  • Feature: Directional movement of panes (zellij-org#762)
  • Refactor: More groundwork to support multiple-clients in tabs (zellij-org#788)

[0.18.1] - 2021-09-30

[0.18.0] - 2021-09-29

  • Fix: Properly open new pane with CWD also when switching to a new tab (zellij-org#729)
  • Feature: Option to create a new session if attach fails (zellij attach --create) (zellij-org#731)
  • Feature: Added the new Visible event, allowing plugins to detect if they are visible in the current tab (zellij-org#717)
  • Feature: Plugins now have access to a data directory at /data – the working directory is now mounted at /host instead of . (zellij-org#723)
  • Feature: Add ability to solely specify the tab name in the tabs section (zellij-org#722)
  • Feature: Plugins can be configured and the groundwork for "Headless" plugins has been laid (zellij-org#660)
  • Automatically update example/default.yaml on release (zellij-org#736)
  • Feature: allow mirroring sessions in multiple terminal windows (zellij-org#740)
  • Feature: display a message when the current pane is in full-screen (zellij-org#450)
  • Terminal compatibility: handle cursor movements outside scroll region (zellij-org#746)
  • Terminal compatibility: scroll lines into scrollback when clearing viewport (zellij-org#747)

[0.17.0] - 2021-09-15

  • New panes/tabs now open in CWD of focused pane (zellij-org#691)
  • Fix bug when opening new tab the new pane's viewport would sometimes be calculated incorrectly (zellij-org#683)
  • Fix bug when in some cases closing a tab would not clear the previous pane's contents (zellij-org#684)
  • Fix bug where tabs would sometimes be created with the wrong index in their name (zellij-org#686)
  • Fix bug where wide chars would mess up pane titles (zellij-org#698)
  • Fix various borderless-frame in viewport bugs (zellij-org#697)
  • Fix example configuration file (zellij-org#693)
  • Fix various tab bar responsiveness issues (zellij-org#703)
  • Allow plugins to run system commands (zellij-org#666)
    • This has also added a temporary new permission flag that needs to be specified in the layout. This is a breaking change:
      ...
      plugin: strider
      ...
      has become:
      plugin:
        path: strider
      A plugin can be given command executing permission with:
      plugin:
        path: strider
        _allow_exec_host_cmd: true
  • Use the unicode width in tab-bar plugin, for tab names (zellij-org#709)
  • Fix automated builds that make use of the setup subcommand (zellij-org#711)
  • Add option to specify a tabs name in the tab layout file (zellij-org#715)
  • Improve handling of empty valid yaml files (zellij-org#716)
  • Add options subcommand to attach (zellij-org#718)
  • Fix: do not pad empty pane frame title (zellij-org#724)
  • Fix: Do not overflow empty lines when resizing panes (zellij-org#725)

[0.16.0] - 2021-08-31

  • Plugins don't crash zellij anymore on receiving mouse events (zellij-org#620)

  • A universal logging system has been implemented (zellij-org#592)

    • Added log crate support for logging within Zellij
    • Messages sent over the stderr of plugins are now logged as well, bringing back dbg! support!
  • Add displaying of the session-name to the tab-bar (zellij-org#608)

  • Add command to dump layouts to stdout (zellij-org#623)

    • zellij setup --dump-layout [LAYOUT] [default, strider, disable-status]
  • Add action: ScrollToBottom (zellij-org#626)

    • Bound by default to ^c in scroll mode, scrolls to bottom and exists the scroll mode
  • Simplify deserialization slightly (zellij-org#633)

  • Fix update plugin attributes on inactive tab (zellij-org#634)

  • New pane UI: draw pane frames - can be disabled with ctrl-p + z, or through configuration (zellij-org#643)

  • Terminal compatibility: support changing index colors through OSC 4 and similar (zellij-org#646)

  • Fix various shells (eg. nushell) unexpectedly exiting when the user presses ctrl-c (zellij-org#648)

  • Fix line wrapping while scrolling (zellij-org#650)

  • Indicate to the user when text is copied to the clipboard with the mouse (zellij-org#642)

  • Terminal compatibility: properly paste multilines (zellij-org#653 + zellij-org#658)

  • Terminal compatibility: fix progress bar line overflow (http://github.com/zellij-org/zellij/pull/656)

  • Add action to toggle between tabs ToggleTab, bound by default to [TAB] in tab mode (zellij-org#622)

  • Terminal compatibility: properly handle cursor shape changes in eg. Neovim (zellij-org#659)

  • The resize and layout systems have been overhauled (zellij-org#568)

    • Resizing a terminal then returning it to its original size will now always return panes to their original sizes and positions
    • Resize mode resizes panes by 5% of the space on screen, not some fixed number
    • Panes on-screen keep their ratios – a screen split 50/50 between two panes will remain 50/50 even as the terminal is resized (zellij-org#406)
    • The terminal can now be resized without leaving fullscreen mode
    • Layout parts are split into equal percentages if no explicit split-size is given (zellij-org#619)
    • Fixed display of the tab bar at small terminal widths
  • Add tabs to layouts (zellij-org#625)

    The layout has now a template, and tabs section. The template specifies the location a tab is inserted in with body: true.

    Eg:

    ---
    template:
      direction: Horizontal
      parts:
        - direction: Vertical
          borderless: true
          split_size:
            Fixed: 1
          run:
            plugin: tab-bar
        - direction: Vertical # <= The location of
          body: true          # <= the inserted tab.
        - direction: Vertical
          borderless: true
          split_size:
            Fixed: 2
          run:
            plugin: status-bar
    tabs:
      - direction: Vertical # <= Multiple tabs can be
      - direction: Vertical # <= specified in the layout.
      - direction: Vertical
    

    The NewTab action can optionally be bound to open a layout that is assumed to be in the new tabs section

    This is a BREAKING CHANGE for people that have the NewTab action already bound in the config file:

    - action: [NewTab, ]
      key: [F: 5,]
    

    must now be specified as:

    - action: [NewTab: ,]
      key: [F: 5,]
    

    Optionally a layout that should be opened on the new tab can be specified:

    - action: [NewTab: {
      direction: Vertical,
      parts: [ {direction: Horizontal, split_size: {Percent: 50}},
      {direction: Horizontal, run: {command: {cmd: "htop"}}},],
      key: [F: 6,]
    

[0.15.0] - 2021-07-19

  • Kill children properly (zellij-org#601)

  • Change name of Run binding for actions (zellij-org#602)

  • Add running commands to layouts (zellij-org#600)

    POSSIBLE BREAKING CHANGE for custom layouts: Plugins are under the run category now, that means:

    plugin: status-bar
    

    is now:

    run:
        plugin: status-bar
    
  • Add on_force_close config option (zellij-org#609)

[0.14.0] - 2021-07-05

  • Add improved error handling for layouts (zellij-org#576)
  • Change layout directory from data to config (zellij-org#577) POSSIBLE BREAKING CHANGE: In case of having custom layouts in the previous layout-dir one can switch either the layouts to the new dir, or set the layout-dir to be the current layout-dir
  • Fix Makefile.toml because of missing directory (zellij-org#580)
  • Autodetach on force close (zellij-org#581)
  • Add option to specify a default shell (zellij-org#594)
  • Add action to run bound commands in a pane (zellij-org#596)
  • Initial mouse support (zellij-org#448)
  • Add layout-dir to setup --check subcommand (zellij-org#599)

[0.13.0] - 2021-06-04

[0.12.1] - 2021-05-28

  • HOTFIX: fix Zellij not responding to input on certain terminals (zellij-org#538)

[0.12.0] - 2021-05-27

  • Remove unused imports (zellij-org#504)
  • More Infrastructure changes for the upcoming session detach feature: run server and client in separate processes (zellij-org#499)
  • Restructuring cargo workspace: Separate client, server and utils into separate crates (zellij-org#515)
  • Terminal compatibility: handle most OSC sequences (zellij-org#517)
  • Split layout flag into layout and layout-path (zellij-org#514)
  • Fix behaviour of the clean flag (zellij-org#519)
  • Make distinction clearer between certain configuration flags (zellij-org#529)
  • Resource usage and performance improvements (zellij-org#523)
  • Feature: Detachable/Persistent sessions (zellij-org#531)
  • Terminal compatibility: Support wide characters (zellij-org#535)

[0.11.0] - 2021-05-15

This version is mostly an installation hotfix.

  • Add check flag to setup subcommand, move generate-completions subcommand to setup flag (zellij-org#503)
  • Change the asset installation from an opt-in to an opt-out (zellij-org#512)

[0.10.0] - 2021-05-14

[0.9.0] - 2021-05-11

  • Add more functionality to unbinding the default keybindings (zellij-org#468)
  • Terminal compatibility: fix support for CSI subparameters (zellij-org#469)
  • Move the sync command to tab mode (zellij-org#412)
  • Fix exit code of dump-default-config (zellij-org#480)
  • Feature: Switch tabs using Alt + h/l in normal mode if there are no panes in the direction (zellij-org#471)
  • Terminal Compatibility: various behaviour fixes (zellij-org#486)
  • Fix handling of $HOME config directory, especially relevant for darwin systems (zellij-org#487)

[0.8.0] - 2021-05-07

[0.7.0] - 2021-05-04

[0.6.0] - 2021-04-29

  • Doesn't quit anymore on single q press while in tab mode (zellij-org#342)
  • Completions are not assets anymore, but commands option --generate-completion [shell] (zellij-org#369)
  • Fixes in the default configuration default.yaml file. Adds initial tmux-compat keybindings tmux.yaml (zellij-org#362)
  • Added the get_plugin_ids() query function to the plugin API (zellij-org#392)
  • Implemented simple plugin timers via the set_timeout() call (zellij-org#394)
  • Added more configuration locations, changed ZELLIJ_CONFIG to ZELLIJ_CONFIG_FILE (zellij-org#391)
  • Improved keybind handling (zellij-org#400)
  • Added initial screen-compat keybinds screen.yaml (zellij-org#399)
  • Added the ability to synchronize input sent to panes (zellij-org#395)
  • Terminal fix: pass vttest 1 (zellij-org#408)

[0.5.1] - 2021-04-23

[0.5.0] - 2021-04-20

Beta release with all the things