Skip to content
Tags give the ability to mark specific points in history as being important
  • 1.4.3
    Release 1.4.3
    
    Added
    -----
    
    * Section to [README.md](README.md) describing how to programmatically
      identify foot.
    * [LICENSE](LICENSE), [README.md](README.md) and
      [CHANGELOG.md](CHANGELOG.md) are now installed to
      `${datadir}/doc/foot`.
    * Support for escaping quotes in **pipe-visible** and
      **pipe-scrollback** commands.
    
    Changed
    -------
    
    * Primary DA to no longer indicate support for _Selective Erase_,
      _Technical Characters_ and _Terminal State Interrogation_.
    * Secondary DA to report foot as a VT220 instead of a VT420.
    * Secondary DA to report foot's version number in parameter 2, the
      _Firmware Version_. The string is made up of foot's major, minor and
      patch version numbers, always using two digits for each version
      number and without any other separating characters. Thus, _1.4.2_
      would be reported as `010402` (i.e. the full response would be
      `\E[>1;010402;0c`).
    * Scrollback search to only move the viewport if the match lies
      outside it.
    * Scrollback search to focus match, that requires a viewport change,
      roughly in the center of the screen.
    * Extending a selection with the right mouse button now works while
      dragging the mouse.
    
    Fixed
    -----
    
    * Crash in scrollback search.
    * Crash when a **pipe-visible** or **pipe-scrollback** command
      contained an unclosed quote
      (https://codeberg.org/dnkl/foot/issues/49).
    
    Contributors
    ------------
    
    * [birger](https://codeberg.org/birger)
    * [cherti](https://codeberg.org/cherti)
  • 1.4.2
    Release 1.4.2
    
    Changed
    -------
    
    * Maximum window title length from 100 to 2048.
    
    Fixed
    -----
    
    * Crash when overwriting a sixel and the row being overwritten did not
      cover an entire cell.
    * Assertion failure in debug builds when overwriting a sixel image.
  • 1.4.1
    Release 1.4.1
    
    Fixed
    -----
    
    * Compilation errors in release builds with some combinations of
      compilers and compiler flags.
  • 1.4.0
    Release 1.4.0
    
    Added
    -----
    
    * `Sync` to terminfo. This is a tmux extension that indicates
      _"Synchronized Updates"_ are supported.
    * `--hold` command line option to `footclient`.
    * Key mapping for `KP_Decimal`.
    * Terminfo entries for keypad keys: `ka1`, `ka2`, `ka3`, `kb1`, `kb3`,
      `kc1`, `kc2`, `kc3`, `kp5`, `kpADD`, `kpCMA`, `kpDIV`, `kpDOT`,
      `kpMUL`, `kpSUB` and `kpZRO`.
    * **blink** option to `footrc`; a boolean that lets you control
        whether the cursor should blink or not by default. Note that
        applications can override this.
    * Multi-seat support
    * Implemented `C0::FF` (form feed)
    * **pipe-visible** and **pipe-scrollback** key bindings. These let you
      pipe either the currently visible text, or the entire scrollback to
      external tools (https://codeberg.org/dnkl/foot/issues/29). Example:
      `pipe-visible=[sh -c "xurls | bemenu | xargs -r firefox] Control+Print`
    
    Changed
    -------
    
    * Background transparency to only be used with the default background
      color.
    * Copy-to-clipboard/primary-selection to insert a line break if either
      the last cell on the previous line or the first cell on the next
      line is empty.
    * Number of lines to scroll is now always clamped to the number of
      lines in the scrolling region..
    * New terminal windows spawned with `ctrl`+`shift`+`n` are no longer
      double forked.
    * Unicode combining character overflow errors are only logged when
      debug logging has been enabled.
    * OSC 4 (_Set Color_) now updates already rendered cells, excluding
      scrollback.
    * Mouse cursor from `hand2` to `left_ptr` when client is capturing the
      mouse.
    * Sixel images are now removed when the font size is **decreased**.
    * `DECSCUSR` (_Set Cursor Style_, `CSI Ps SP q`) now uses `Ps=0`
      instead of `Ps=2` to reset the style to the user configured default
      style. `Ps=2` now always configures a _Steady Block_ cursor.
    * `Se` terminfo capability from `\E[2 q` to `\E[ q`.
    * Hollow cursor to be drawn when window has lost _keyboard_ focus
      rather than _visual_ focus.
    
    Fixed
    -----
    
    * Do not stop an ongoing selection when `shift` is released. When the
      client application is capturing the mouse, one must hold down
      `shift` to start a selection. This selection is now finalized only
      when the mouse button is released - not as soon as `shift` is
      released.
    * Selected cells did not appear selected if programmatically modified.
    * Rare crash when scrolling and the new viewport ended up **exactly**
      on the wrap around.
    * Selection handling when viewport wrapped around.
    * Restore signal mask in the client process.
    * Set `IUTF8`.
    * Selection of double-width characters. It is no longer possible to
      select half of a double-width character.
    * Draw hollow block cursor on top of character.
    * Set an initial `TIOCSWINSZ`. This ensures clients never read a
      `0x0` terminal size (https://codeberg.org/dnkl/foot/issues/20).
    * Glyphs overflowing into surrounding cells
      (https://codeberg.org/dnkl/foot/issues/21).
    * Crash when last rendered cursor cell had scrolled off screen and
      `\E[J3` was executed.
    * Assert (debug builds) when an `\e]4` OSC escape was not followed by
      a `;`.
    * Window title always being set to "foot" on reset.
    * Terminfo entry `kb2` (center keypad key); it is now set to `\EOu`
      (which is what foot emits) instead of the incorrect value `\EOE`.
    * Palette re-use in sixel images. Previously, the palette was reset
      after each image.
    * Do not auto-resize a sixel image for which the cllent has specified
      a size. This fixes an issue where an image would incorrectly
      overflow into the cell row beneath.
    * Text printed, or other sixel images drawn, on top of a sixel image
      no longer erases the entire image, only the part(s) covered by the
      new text or image.
    * Sixel images being erased when printing text next to them.
    * Sixel handling when resizing window.
    * Sixel handling when scrollback wraps around.
    * Foot now issues much fewer `wl_surface_damage_buffer()` calls
      (https://codeberg.org/dnkl/foot/issues/35).
    * `C0::VT` to be processed as `C0::LF`. Previously, `C0::VT` would
      only move the cursor down, but never scroll.
    * `C0::HT` (_Horizontal Tab_, or `\t`) no longer clears `LCF` (_Last
      Column Flag_).
    * `C0::LF` now always clears `LCF`. Previously, it only cleared it
      when the cursor was **not** at the bottom of the scrolling region.
    * `IND` and `RI` now clears `LCF`.
    * `DECAWM` now clears `LCF`.
    * A multi-column character that does not fit on the current line is
      now printed on the next line, instead of only printing half the
      character.
    * Font size can no longer be reduced to negative values
      (https://codeberg.org/dnkl/foot/issues/38).
  • 1.3.0
    Release 1.3.0
    
    Added
    -----
    
    * User configurable key- and mouse bindings. See `man 5 foot` and the
      example `footrc` (https://codeberg.org/dnkl/foot/issues/1)
    * **initial-window-mode** option to `footrc`, that lets you control
      the initial mode for each newly spawned window: _windowed_,
      _maximized_ or _fullscreen_.
    * **app-id** option to `footrc` and `--app-id` command line option,
      that sets the _app-id_ property on the Wayland window.
    * **title** option to `footrc` and `--title` command line option, that
      sets the initial window title.
    * Right mouse button extends the current selection.
    * `CSI Ps ; Ps ; Ps t` escape sequences for the following parameters:
      `11t`, `13t`, `13;2t`, `14t`, `14;2t`, `15t`, `19t`.
    * Unicode combining characters.
    
    Changed
    -------
    
    * Spaces no longer removed from zsh font name completions.
    * Default key binding for _spawn-terminal_ to ctrl+shift+n.
    * Renderer is now much faster with interactive scrolling
      (https://codeberg.org/dnkl/foot/issues/4)
    * memfd sealing failures are no longer fatal errors.
    * Selection to no longer be cleared on resize.
    * The current monitor's subpixel order (RGB/BGR/V-RGB/V-BGR) is
      preferred over FontConfig's `rgba` property. Only if the monitor's
      subpixel order is `unknown` is FontConfig's `rgba` property used. If
      the subpixel order is `none`, then grayscale antialiasing is
      used. The subpixel order is ignored if antialiasing has been
      disabled.
    * The four primary font variants (normal, bold, italic, bold italic)
      are now loaded in parallel. This speeds up both the initial startup
      time, as well as a DPI changes.
    * Command line parsing no longer tries to parse arguments following
      the command-to-execute. This means one can now write `foot sh -c
      true` instead of `foot -- sh -c true`.
    
    Removed
    -------
    
    * Keyboard/pointer handler workarounds for Sway 1.2.
    
    Fixed
    -----
    
    * Sixel images moved or deleted on window resize.
    * Cursor sometimes incorrectly restored on exit from alternate screen.
    * 'Underline' cursor being invisible on underlined text.
    * Restored cursor position in 'normal' screen when window was resized
      while in 'alt' screen.
    * Hostname in OSC 7 URI not being validated.
    * OSC 4 with multiple `c;spec` pairs.
    * Alt+Return to emit "ESC \r".
    * Trackpad sloooow scrolling to eventually scroll a line.
    * Memory leak in terminal reset.
    * Translation of cursor coordinates on resize
    * Scaling color specifiers in OSC sequences.
    * `OSC 12 ?` to return the cursor color, not the cursor's text color.
    * `OSC 12;#000000` to configure the cursor to use inverted
      foreground/background colors.
    * Call `ioctl(TIOCSCTTY)` on the pts fd in the slave process.
  • 1.2.3
    Release 1.2.3
    
    * Forgot to version bump 1.2.2
  • 1.2.2
    Release 1.2.2
    
    Changed
    -------
    
    * Changed icon name in `foot.desktop` and `foot-server.desktop` from
      _terminal_ to _utilities-terminal_.
    * `XDG_SESSION_ID` is now included in the server/daemon default socket
      path.
    
    Fixed
    -----
    
    * Window size doubling when moving window between outputs with
      different scaling factors (https://codeberg.org/dnkl/foot/issues/3).
    * Font being too small on monitors with fractional scaling
      (https://codeberg.org/dnkl/foot/issues/5).
  • 1.2.1
    Release 1.2.1
    
    Fixed
    -----
    * Building AUR package
  • 1.2.0
    Release 1.2.0
    
    Added
    -----
    * Run-time text resize using ctrl-+, ctrl+- and ctrl+0
    * Font size adjusts dynamically to outputs' DPI
    * Reflow text when resizing window
    * **pad** option to `footrc`
    * **login-shell** option to `footrc` and `--login-shell` command line
      option
    * Client side decorations (CSDs). This finally makes foot usable on
      GNOME.
    * Sixel graphics support
    * OSC 12 and 112 escape sequences (set/reset text cursor color)
    * REP CSI escape sequence
    * `oc` to terminfo
    * foot-server.desktop file
    * Window and cell size reporting escape sequences
    * `--hold` command line option
    * `--print-pid=FILE|FD` command line option
    
    Changed
    -------
    * Subpixel antialiasing is only enabled when background is opaque
    * Meta/alt ESC prefix can now be disabled with `\E[?1036l`. In this
      mode, the 8:th bit is set and the result is UTF-8 encoded. This can
      also be disabled with `\E[1024l` (in which case the Alt key is
      effectively being ignored).
    * terminfo now uses ST instead of BEL as OSC terminator
    * Logging to print to stderr, not stdout
    * Backspace now emits DEL (^?), and ctrl+backspace emits BS (^H)
    
    Removed
    -------
    * '28' from DA response
  • 1.1.0
    Release 1.1.0
    
    Lots of changes, improvements and bug fixes
    
    * Implemented blinking cursor. This can be enabled in the
      configuration, or programatically.
    * Block cursor rendered as a hollow rectangle when window is unfocused
    * Fixes to the zsh completions
    * UTF-8 locale is now enforced
    * Speed improvements to the VT parser. Small cache CPUs benefit the most.
    * Added support for OSC 7; this allows the client (shell) to inform
      the terminal about the current working directory.
    * Set 'RGB' flag in the terminfo.
    * Differentiate between **visual** focus and **keyboard** focus.
    * When background is opaque, inform the compositor about this.
    * Implemented block selections (press ctrl and drag mouse).
    * Speed improvements when client turns on and off mouse tracking very
      fast (for example, 'less' with mouse tracking enabled).
    * Implemented Application Synchronized Updates (BSU/ESU).
  • 1.0.0
    This is it! 1.0.0
  • 0.9.0
    Release 0.9.0