Skip to content

Latest commit

 

History

History
412 lines (367 loc) · 27 KB

CHANGELOG.md

File metadata and controls

412 lines (367 loc) · 27 KB

Changelog

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

The format is based on Keep a Changelog

[Unreleased]

[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 repositiories 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