Skip to content
Release 1.17.0

- Support for opening an existing PTY, e.g. a VM console.
  ([#1564][1564])
* Unicode input mode now accepts input from the numpad as well,
  numlock is ignored.
* A new `resize-by-cells` option, enabled by default, allows the size
  of floating windows to be constrained to multiples of the cell size.
* Support for custom (i.e. other than ctrl/shift/alt/super) modifiers
  in key bindings ([#1348][1348]).
* `pipe-command-output` key binding.
* Support for OSC-176, _"Set App-ID"_
  (https://gist.github.com/delthas/d451e2cc1573bb2364839849c7117239).
* Support for `DECRQM` queries with ANSI/ECMA-48 modes (`CSI Ps $ p`).
* Rectangular edit functions: `DECCARA`, `DECRARA`, `DECCRA`, `DECFRA`
  and `DECERA` ([#1633][1633]).
* `Rect` capability to terminfo.
* `fe` and `fd` (focus in/out enable/disable) capabilities to
  terminfo.
* `nel` capability to terminfo.

[1348]: https://codeberg.org/dnkl/foot/issues/1348
[1633]: https://codeberg.org/dnkl/foot/issues/1633
[1564]: https://codeberg.org/dnkl/foot/pulls/1564
[`DECBKM`]: https://vt100.net/docs/vt510-rm/DECBKM.html

* config: ARGB color values now default to opaque, rather than
  transparent, when the alpha component has been left out
  ([#1526][1526]).
* The `foot` process now changes CWD to `/` after spawning the shell
  process. This ensures the terminal itself does not "lock" a
  directory; for example, preventing a mount point from being
  unmounted ([#1528][1528]).
* Kitty keyboard protocol: updated behavior of modifiers bits during
  modifier key events, to match the (new [#6913][kitty-6913]) behavior
  in kitty >= 0.32.0 ([#1561][1561]).
* When changing font sizes or display scales in floating windows, the
  window will be resized as needed to preserve the same grid size.
* `smm` now disables private mode 1036 (_"send ESC when Meta modifies
  a key"_), and enables private mode 1034 (_"8-bit Meta mode"_). `rmm`
  does the opposite ([#1584][1584]).
* Grid is now always centered in the window, when either fullscreened
  or maximized.
* Ctrl+wheel up/down bound to `font-increase` and `font-decrease`
  respectively (in addition to the already existing default key
  bindings `ctrl-+` and `ctrl+-`).
* Use XRGB pixel format (instead of ARGB) when there is no
  transparency.
* Prefer CSS xcursor names, and fallback to legacy X11 names.
* Kitty keyboard protocol: use the `XKB` mode when retrieving locked
  modifiers, instead of the `GTK` mode. This fixes an issue where some
  key combinations (e.g. Shift+space) produces different results
  depending on the state of e.g. the NumLock key.
* Kitty keyboard protocol: filter out **all** locked modifiers (as
  reported by XKB), rather than hardcoding it to CapsLock only, when
  determining whether a key combination produces text or not.
* CSI-t queries now report pixel values **unscaled**, instead of
  **scaled** ([#1643][1643]).
* Sixel: text cursor is now placed on the last text row touched by the
  sixel, instead of the text row touched by the _upper_ pixel of the
  last sixel ([#chafa-192][chafa-192]).
* Sixel: trailing, fully transparent rows are now trimmed
  ([#chafa-192][chafa-192]).
* `1004` (enable focus in/out events) removed from the `XM` terminfo
  capability. To enable focus in/out, use the `fe` and `fd`
  capabilities instead.
* Tightened the regular expression in the `rv` terminfo capability.
* Tightened the regular expression in the `xr` terminfo capability.
* `DECRQM` queries for private mode 67 ([`DECBKM`]) now reply with mode
  value 4 ("permanently reset") instead of 0 ("not recognized").

[1526]: https://codeberg.org/dnkl/foot/issues/1526
[1528]: https://codeberg.org/dnkl/foot/issues/1528
[1561]: https://codeberg.org/dnkl/foot/issues/1561
[kitty-6913]: https://github.com/kovidgoyal/kitty/issues/6913
[1584]: https://codeberg.org/dnkl/foot/issues/1584
[1643]: https://codeberg.org/dnkl/foot/issues/1643
[chafa-192]: https://github.com/hpjansson/chafa/issues/192

* config: improved validation of color values.
* config: double close of file descriptor, resulting in a chain of
  errors ultimately leading to a startup failure ([#1531][1531]).
* Crash when using a desktop scaling factor > 1, on compositors that
  implements neither the `fractional-scale-v1`, nor the
  `cursor-shape-v1` Wayland protocols ([#1573][1573]).
* Crash in `--server` mode when one or more environment variables are
  set in `[environment]`.
* Environment variables normally set by foot lost with `footclient
  -E,--client-environment` ([#1568][1568]).
* XDG toplevel protocol violation, by trying to set a title that
  contains an invalid UTF-8 sequence ([#1552][1552]).
* Crash when erasing the scrollback, when scrollback history is
  exactly 0 rows. This happens when `[scrollback].line = 0`, and the
  window size (number of rows) is a power of two (i.e. 2, 4, 8, 16
  etc) ([#1610][1610]).
* VS16 (variation selector 16 - emoji representation) should only
  affect emojis.
* Pressing a modifier key while the kitty keyboard protocol is enabled
  no longer resets the viewport, or clears the selection.
* Crash when failing to load an xcursor image ([#1624][1624]).
* Crash when resizing a dynamically sized sixel (no raster
  attributes), with a non-1:1 aspect ratio.
* The default sixel color table is now initialized to the colors used
  by the VT340, instead of not being initialized at all (thus
  requiring the sixel escape sequence to explicitly set all colors it
  used).

[1531]: https://codeberg.org/dnkl/foot/issues/1531
[1573]: https://codeberg.org/dnkl/foot/issues/1573
[1568]: https://codeberg.org/dnkl/foot/issues/1568
[1552]: https://codeberg.org/dnkl/foot/issues/1552
[1610]: https://codeberg.org/dnkl/foot/issues/1610
[1624]: https://codeberg.org/dnkl/foot/issues/1624

* Alyssa Ross
* Andrew J. Hesford
* Artturin
* Craig Barnes
* delthas
* eugenrh
* Fazzi
* Gregory Anders
* Jan Palus
* Leonardo Hernández Hernández
* LmbMaxim
* Matheus Afonso Martins Moreira
* Sivecano
* Tim Culverhouse
* xnuk