1346 lines
50 KiB
Markdown
1346 lines
50 KiB
Markdown
|
# Changelog
|
|||
|
|
|||
|
* [1.8.2](#1-8-2)
|
|||
|
* [1.8.1](#1-8-1)
|
|||
|
* [1.8.0](#1-8-0)
|
|||
|
* [1.7.2](#1-7-2)
|
|||
|
* [1.7.1](#1-7-1)
|
|||
|
* [1.7.0](#1-7-0)
|
|||
|
* [1.6.4](#1-6-4)
|
|||
|
* [1.6.3](#1-6-3)
|
|||
|
* [1.6.2](#1-6-2)
|
|||
|
* [1.6.1](#1-6-1)
|
|||
|
* [1.6.0](#1-6-0)
|
|||
|
* [1.5.4](#1-5-4)
|
|||
|
* [1.5.3](#1-5-3)
|
|||
|
* [1.5.2](#1-5-2)
|
|||
|
* [1.5.1](#1-5-1)
|
|||
|
* [1.5.0](#1-5-0)
|
|||
|
* [1.4.4](#1-4-4)
|
|||
|
* [1.4.3](#1-4-3)
|
|||
|
* [1.4.2](#1-4-2)
|
|||
|
* [1.4.1](#1-4-1)
|
|||
|
* [1.4.0](#1-4-0)
|
|||
|
* [1.3.0](#1-3-0)
|
|||
|
* [1.2.3](#1-2-3)
|
|||
|
* [1.2.2](#1-2-2)
|
|||
|
* [1.2.1](#1-2-1)
|
|||
|
* [1.2.0](#1-2-0)
|
|||
|
|
|||
|
|
|||
|
## 1.8.2
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* `locked-title=no|yes` to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/386).
|
|||
|
* `tweak.overflowing-glyphs` option, which can be enabled to fix rendering
|
|||
|
issues with glyphs of any width that appear cut-off
|
|||
|
(https://codeberg.org/dnkl/foot/issues/592).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Non-empty lines are now considered to have a hard linebreak,
|
|||
|
_unless_ an actual word-wrap is inserted.
|
|||
|
* Setting `DECSDM` now _disables_ sixel scrolling, while resetting it
|
|||
|
_enables_ scrolling (https://codeberg.org/dnkl/foot/issues/631).
|
|||
|
|
|||
|
|
|||
|
### Removed
|
|||
|
|
|||
|
* The `tweak.allow-overflowing-double-width-glyphs` and
|
|||
|
`tweak.pua-double-width` options (which have been superseded by
|
|||
|
`tweak.overflowing-glyphs`).
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* FD exhaustion when repeatedly entering/exiting URL mode with many
|
|||
|
URLs.
|
|||
|
* Double free of URL while removing duplicated and/or overlapping URLs
|
|||
|
in URL mode (https://codeberg.org/dnkl/foot/issues/627).
|
|||
|
* Crash when an unclosed OSC-8 URL ran into un-allocated scrollback
|
|||
|
rows.
|
|||
|
* Some box-drawing characters were rendered incorrectly on big-endian
|
|||
|
architectures.
|
|||
|
* Crash when resizing the window to the smallest possible size while
|
|||
|
scrollback search is active.
|
|||
|
* Scrollback indicator being incorrectly rendered when window size is
|
|||
|
very small.
|
|||
|
* Reduced memory usage in URL mode.
|
|||
|
* Crash when the `E3` escape (`\E[3J`) was executed, and there was a
|
|||
|
selection, or sixel image, in the scrollback
|
|||
|
(https://codeberg.org/dnkl/foot/issues/633).
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [clktmr](https://codeberg.org/clktmr)
|
|||
|
|
|||
|
|
|||
|
## 1.8.1
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* `--log-level=none` command-line option.
|
|||
|
* `Tc`, `setrgbf` and `setrgbb` capabilities in `foot` and `foot-direct`
|
|||
|
terminfo entries. This should make 24-bit RGB colors work in tmux and
|
|||
|
neovim, without the need for config hacks or detection heuristics
|
|||
|
(https://codeberg.org/dnkl/foot/issues/615).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Grapheme cluster width is now limited to two cells by default. This
|
|||
|
may cause cursor synchronization issues with many applications. You
|
|||
|
can set `[tweak].grapheme-width-method=wcswidth` to revert to the
|
|||
|
behavior in foot-1.8.0.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Grapheme cluster state being reset between codepoints.
|
|||
|
* Regression: custom URL key bindings not working
|
|||
|
(https://codeberg.org/dnkl/foot/issues/614).
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
|
|||
|
|
|||
|
## 1.8.0
|
|||
|
|
|||
|
### Grapheme shaping
|
|||
|
|
|||
|
This release adds _experimental, opt-in_ support for grapheme cluster
|
|||
|
segmentation and grapheme shaping.
|
|||
|
|
|||
|
(note: several of the examples below may not render correctly in your
|
|||
|
browser, viewer or editor).
|
|||
|
|
|||
|
Grapheme cluster segmentation is the art of splitting up text into
|
|||
|
grapheme clusters, where a cluster may consist of more than one
|
|||
|
Unicode codepoint. For example, 🙂 is a single codepoint, while 👩🏽🚀
|
|||
|
consists of 4 codepoints (_Woman_ + _Medium skin tone_ + _Zero width
|
|||
|
joiner_ + _Rocket_). The goal is to _cluster_ codepoints belonging to
|
|||
|
the same grapheme in the same cell in the terminal.
|
|||
|
|
|||
|
Previous versions of foot implemented a simple grapheme cluster
|
|||
|
segmentation technique that **only** handled zero-width
|
|||
|
codepoints. This allowed us to cluster combining characters, like q́
|
|||
|
(_q_ + _COMBINING ACUTE ACCENT_).
|
|||
|
|
|||
|
Once we have a grapheme cluster, we need to _shape_ it.
|
|||
|
|
|||
|
Combining characters are simple: they are typically rendered as
|
|||
|
multiple glyphs layered on top of each other. This is why previous
|
|||
|
versions of foot got away with it without any actual text shaping
|
|||
|
support.
|
|||
|
|
|||
|
Beyond that, support from the font library is needed. Foot now depends
|
|||
|
on fcft-2.4, which added support for grapheme and text shaping. When
|
|||
|
rendering a cell, we ask the font library: give us the glyph(s) for
|
|||
|
this sequence of codepoints.
|
|||
|
|
|||
|
Fancy emoji sequences aside, using libutf8proc for grapheme cluster
|
|||
|
segmentation means **improved correctness**.
|
|||
|
|
|||
|
For full support, the following is required:
|
|||
|
|
|||
|
* fcft compiled with HarfBuzz support
|
|||
|
* foot compiled with libutf8proc support
|
|||
|
* `tweak.grapheme-shaping=yes` in `foot.ini`
|
|||
|
|
|||
|
If `tweak.grapheme-shaping` has **not** been enabled, foot will
|
|||
|
neither use libutf8proc to do grapheme cluster segmentation, nor will
|
|||
|
it use fcft’s grapheme shaping capabilities to shape combining
|
|||
|
characters.
|
|||
|
|
|||
|
This feature is _experimental_ mostly due to the “wcwidth” problem;
|
|||
|
how many cells should foot allocate for a grapheme cluster? While the
|
|||
|
answer may seem simple, the problem is that, whatever the answer is,
|
|||
|
the client application **must** come up with the **same**
|
|||
|
answer. Otherwise we get cursor synchronization issues.
|
|||
|
|
|||
|
In this release, foot simply adds together the `wcwidth()` of all
|
|||
|
codepoints in the grapheme cluster. This is equivalent to running
|
|||
|
`wcswidth()` on the entire cluster. **This is likely to change in the
|
|||
|
future**.
|
|||
|
|
|||
|
Finally, note that grapheme shaping is not the same thing as text (or
|
|||
|
text run) shaping. In this version, foot only shapes individual
|
|||
|
graphemes, not entire text runs. That means e.g. ligatures are **not**
|
|||
|
supported.
|
|||
|
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* Support for DECSET/DECRST 2026, as an alternative to the existing
|
|||
|
"synchronized updates" DCS sequences
|
|||
|
(https://codeberg.org/dnkl/foot/issues/459).
|
|||
|
* `cursor.beam-thickness` option to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/464).
|
|||
|
* `cursor.underline-thickness` option to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/524).
|
|||
|
* Unicode 13 characters U+1FB70 - U+1FB8B to list of box drawing
|
|||
|
characters rendered by foot itself (rather than using font glyphs)
|
|||
|
(https://codeberg.org/dnkl/foot/issues/471).
|
|||
|
* Dedicated `[bell]` section to config, supporting multiple actions
|
|||
|
and a new `command` action to run an arbitrary command.
|
|||
|
(https://codeberg.org/dnkl/foot/pulls/483)
|
|||
|
* Dedicated `[url]` section to config.
|
|||
|
* `[url].protocols` option to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/531).
|
|||
|
* Support for setting the full 256 color palette in foot.ini
|
|||
|
(https://codeberg.org/dnkl/foot/issues/489)
|
|||
|
* XDG activation support, will be used by `[bell].urgent` when
|
|||
|
available (falling back to coloring the window margins red when
|
|||
|
unavailable) (https://codeberg.org/dnkl/foot/issues/487).
|
|||
|
* `ctrl`+`c` as a default key binding; to cancel search/url mode.
|
|||
|
* `${window-title}` to `notify`.
|
|||
|
* Support for including files in `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/555).
|
|||
|
* `ENVIRONMENT` section in **foot**(1) and **footclient**(1) man pages
|
|||
|
(https://codeberg.org/dnkl/foot/issues/556).
|
|||
|
* `tweak.pua-double-width` option to `foot.ini`, letting you force
|
|||
|
_Private Usage Area_ codepoints to be treated as double-width
|
|||
|
characters.
|
|||
|
* OSC 9 desktop notifications (iTerm2 compatible).
|
|||
|
* Support for LS2 and LS3 (locking shift) escape sequences
|
|||
|
(https://codeberg.org/dnkl/foot/issues/581).
|
|||
|
* Support for overriding configuration options on the command line
|
|||
|
(https://codeberg.org/dnkl/foot/issues/554,
|
|||
|
https://codeberg.org/dnkl/foot/issues/600).
|
|||
|
* `underline-offset` option to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/490).
|
|||
|
* `csd.button-color` option to `foot.ini`.
|
|||
|
* `-Dterminfo-install-location=disabled|<custom-path>` meson command
|
|||
|
line option (https://codeberg.org/dnkl/foot/issues/569).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* [fcft](https://codeberg.org/dnkl/fcft): required version bumped from
|
|||
|
2.3.x to 2.4.x.
|
|||
|
* `generate-alt-random-writes.py --sixel`: width and height of emitted
|
|||
|
sixels has been adjusted.
|
|||
|
* _Concealed_ text (`\E[8m`) is now revealed when highlighted.
|
|||
|
* The background color of highlighted text is now adjusted, when the
|
|||
|
foreground and background colors are the same, making the
|
|||
|
highlighted text legible
|
|||
|
(https://codeberg.org/dnkl/foot/issues/455).
|
|||
|
* `cursor.style=bar` to `cursor.style=beam`. `bar` remains a
|
|||
|
recognized value, but will eventually be deprecated, and removed.
|
|||
|
* Point values in `line-height`, `letter-spacing`,
|
|||
|
`horizontal-letter-offset` and `vertical-letter-offset` are now
|
|||
|
rounded, not truncated, when translated to pixel values.
|
|||
|
* Foot’s exit code is now -26/230 when foot itself failed to launch
|
|||
|
(due to invalid command line options, client application/shell not
|
|||
|
found etc). Footclient’s exit code is -36/220 when it itself fails
|
|||
|
to launch (e.g. bad command line option) and -26/230 when the foot
|
|||
|
server failed to instantiate a new window
|
|||
|
(https://codeberg.org/dnkl/foot/issues/466).
|
|||
|
* Background alpha no longer applied to palette or RGB colors that
|
|||
|
matches the background color.
|
|||
|
* Improved performance on compositors that does not release shm
|
|||
|
buffers immediately, e.g. KWin
|
|||
|
(https://codeberg.org/dnkl/foot/issues/478).
|
|||
|
* `ctrl + w` (_extend-to-word-boundary_) can now be used across lines
|
|||
|
(https://codeberg.org/dnkl/foot/issues/421).
|
|||
|
* Ignore auto-detected URLs that overlap with OSC-8 URLs.
|
|||
|
* Default value for the `notify` option to use `-a ${app-id} -i
|
|||
|
${app-id} ...` instead of `-a foot -i foot ...`.
|
|||
|
* `scrollback-*`+`pipe-scrollback` key bindings are now passed through
|
|||
|
to the client application when the alt screen is active
|
|||
|
(https://codeberg.org/dnkl/foot/issues/573).
|
|||
|
* Reverse video (`\E[?5h`) now only swaps the default foreground and
|
|||
|
background colors. Cells with explicit foreground and/or background
|
|||
|
colors remain unchanged.
|
|||
|
* Tabs (`\t`) are now preserved when the window is resized, and when
|
|||
|
copying text (https://codeberg.org/dnkl/foot/issues/508).
|
|||
|
* Writing a sixel on top of another sixel no longer erases the first
|
|||
|
sixel, but the two are instead blended
|
|||
|
(https://codeberg.org/dnkl/foot/issues/562).
|
|||
|
* Running foot without a configuration file is no longer an error; it
|
|||
|
has been demoted to a warning, and is no longer presented as a
|
|||
|
notification in the terminal window, but only logged on stderr.
|
|||
|
|
|||
|
|
|||
|
### Deprecated
|
|||
|
|
|||
|
* `bell` option in `foot.ini`; set actions in the `[bell]` section
|
|||
|
instead.
|
|||
|
* `url-launch` option in `foot.ini`; use `launch` in the `[url]`
|
|||
|
section instead.
|
|||
|
* `jump-label-letters` option in `foot.ini`; use `label-letters` in
|
|||
|
the `[url]` section instead.
|
|||
|
* `osc8-underline` option in `foot.ini`; use `osc8-underline` in the
|
|||
|
`[url]` section instead.
|
|||
|
|
|||
|
|
|||
|
### Removed
|
|||
|
|
|||
|
* Buffer damage quirk for Plasma/KWin.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* `generate-alt-random-writes.py --sixel` sometimes crashing,
|
|||
|
resulting in PGO build failures.
|
|||
|
* Wrong colors in the 256-color cube
|
|||
|
(https://codeberg.org/dnkl/foot/issues/479).
|
|||
|
* Memory leak triggered by “opening” an OSC-8 URI and then resetting
|
|||
|
the terminal without closing the URI
|
|||
|
(https://codeberg.org/dnkl/foot/issues/495).
|
|||
|
* Assertion when emitting a sixel occupying the entire scrollback
|
|||
|
history (https://codeberg.org/dnkl/foot/issues/494).
|
|||
|
* Font underlines being positioned below the cell (and thus being
|
|||
|
invisible) for certain combinations of fonts and font sizes
|
|||
|
(https://codeberg.org/dnkl/foot/issues/503).
|
|||
|
* Sixels with transparent bottom border being resized below the size
|
|||
|
specified in _”Set Raster Attributes”_.
|
|||
|
* Fonts sometimes not being reloaded with the correct scaling factor
|
|||
|
when `dpi-aware=no`, or `dpi-aware=auto` with monitor(s) with a
|
|||
|
scaling factor > 1 (https://codeberg.org/dnkl/foot/issues/509).
|
|||
|
* Crash caused by certain CSI sequences with very large parameter
|
|||
|
values (https://codeberg.org/dnkl/foot/issues/522).
|
|||
|
* Rare occurrences where the window did not close when the shell
|
|||
|
exited. Only seen on FreeBSD
|
|||
|
(https://codeberg.org/dnkl/foot/issues/534)
|
|||
|
* Foot process(es) sometimes remaining, using 100% CPU, when closing
|
|||
|
multiple foot windows at the same time
|
|||
|
(https://codeberg.org/dnkl/foot/issues/542).
|
|||
|
* Regression where `<mod>+shift+tab` always produced `\E[Z` instead of
|
|||
|
the correct `\E[27;<mod>;9~` sequence
|
|||
|
(https://codeberg.org/dnkl/foot/issues/547).
|
|||
|
* Crash when a line wrapping OSC-8 URI crossed the scrollback wrap
|
|||
|
around (https://codeberg.org/dnkl/foot/issues/552).
|
|||
|
* Selection incorrectly wrapping rows ending with an explicit newline
|
|||
|
(https://codeberg.org/dnkl/foot/issues/565).
|
|||
|
* Off-by-one error in markup of auto-detected URLs when the URL ends
|
|||
|
in the right-most column.
|
|||
|
* Multi-column characters being cut in half when resizing the
|
|||
|
alternate screen.
|
|||
|
* Restore `SIGHUP` in spawned processes.
|
|||
|
* Text reflow performance (https://codeberg.org/dnkl/foot/issues/504).
|
|||
|
* IL+DL (`CSI Ps L` + `CSI Ps M`) now moves the cursor to column 0.
|
|||
|
* SS2 and SS3 (single shift) escape sequences behaving like locking
|
|||
|
shifts (https://codeberg.org/dnkl/foot/issues/580).
|
|||
|
* `TEXT`+`STRING`+`UTF8_STRING` mime types not being recognized in
|
|||
|
clipboard offers (https://codeberg.org/dnkl/foot/issues/583).
|
|||
|
* Memory leak caused by custom box drawing glyphs not being completely
|
|||
|
freed when destroying a foot window instance
|
|||
|
(https://codeberg.org/dnkl/foot/issues/586).
|
|||
|
* Crash in scrollback search when current XKB layout is missing
|
|||
|
_compose_ definitions.
|
|||
|
* Window title not being updated while window is hidden
|
|||
|
(https://codeberg.org/dnkl/foot/issues/591).
|
|||
|
* Crash on badly formatted URIs in e.g. OSC-8 URLs.
|
|||
|
* Window being incorrectly resized on CSD/SSD run-time changes.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
* [r\_c\_f](https://codeberg.org/r_c_f)
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
|
|||
|
|
|||
|
## 1.7.2
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* URxvt OSC-11 extension to set background alpha
|
|||
|
(https://codeberg.org/dnkl/foot/issues/436).
|
|||
|
* OSC 17/117/19/119 - change/reset selection background/foreground
|
|||
|
color.
|
|||
|
* `box-drawings-uses-font-glyphs=yes|no` option to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/430).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Underline cursor is now rendered below text underline
|
|||
|
(https://codeberg.org/dnkl/foot/issues/415).
|
|||
|
* Foot now tries much harder to keep URL jump labels inside the window
|
|||
|
geometry (https://codeberg.org/dnkl/foot/issues/443).
|
|||
|
* `bold-text-in-bright` may now be set to `palette-based`, in which
|
|||
|
case it will use the corresponding bright palette color when the
|
|||
|
color to brighten matches one of the base 8 colors, instead of
|
|||
|
increasing the luminance
|
|||
|
(https://codeberg.org/dnkl/foot/issues/449).
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Reverted _"Consumed modifiers are no longer sent to the client
|
|||
|
application"_ (https://codeberg.org/dnkl/foot/issues/425).
|
|||
|
* Crash caused by a double free originating in `XTSMGRAPHICS` - set
|
|||
|
number of color registers
|
|||
|
(https://codeberg.org/dnkl/foot/issues/427).
|
|||
|
* Wrong action referenced in error message for key binding collisions
|
|||
|
(https://codeberg.org/dnkl/foot/issues/432).
|
|||
|
* OSC 4/104 out-of-bounds accesses to the color table. This was the
|
|||
|
reason pywal turned foot windows transparent
|
|||
|
(https://codeberg.org/dnkl/foot/issues/434).
|
|||
|
* PTY not being drained when the client application terminates.
|
|||
|
* `auto_left_margin` not being limited to `cub1`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/441).
|
|||
|
* Crash in scrollback search mode when searching beyond the last output.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [cglogic](https://codeberg.org/cglogic)
|
|||
|
|
|||
|
|
|||
|
## 1.7.1
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Update PGO build instructions in `INSTALL.md`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/418).
|
|||
|
* In scrollback search mode, empty cells can now be matched by spaces.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Logic that repairs invalid key bindings ended up breaking valid key
|
|||
|
bindings instead (https://codeberg.org/dnkl/foot/issues/407).
|
|||
|
* Custom `line-height` settings now scale when increasing or
|
|||
|
decreasing the font size at run-time.
|
|||
|
* Newlines sometimes incorrectly inserted into copied text
|
|||
|
(https://codeberg.org/dnkl/foot/issues/410).
|
|||
|
* Crash when compositor send `text-input-v3::enter` events without
|
|||
|
first having sent a `keyboard::enter` event
|
|||
|
(https://codeberg.org/dnkl/foot/issues/411).
|
|||
|
* Deadlock when rendering sixel images.
|
|||
|
* URL labels, scrollback search box or scrollback position indicator
|
|||
|
sometimes not showing up, caused by invalidly sized surface buffers
|
|||
|
when output scaling was enabled
|
|||
|
(https://codeberg.org/dnkl/foot/issues/409).
|
|||
|
* Empty sixels resulted in non-empty images.
|
|||
|
|
|||
|
|
|||
|
## 1.7.0
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* The `pad` option now accepts an optional third argument, `center`
|
|||
|
(e.g. `pad=5x5 center`), causing the grid to be centered in the
|
|||
|
window, with equal amount of padding of the left/right and
|
|||
|
top/bottom side (https://codeberg.org/dnkl/foot/issues/273).
|
|||
|
* `line-height`, `letter-spacing`, `horizontal-letter-offset` and
|
|||
|
`vertical-letter-offset` to `foot.ini`. These options let you tweak
|
|||
|
cell size and glyph positioning
|
|||
|
(https://codeberg.org/dnkl/foot/issues/244).
|
|||
|
* Key/mouse binding `select-extend-character-wise`, which forces the
|
|||
|
selection mode to 'character-wise' when extending a selection.
|
|||
|
* `DECSET` `47`, `1047` and `1048`.
|
|||
|
* URL detection and OSC-8 support. URLs are highlighted and activated
|
|||
|
using the keyboard (**no** mouse support). See **foot**(1)::URLs, or
|
|||
|
[README.md](README.md#urls) for details
|
|||
|
(https://codeberg.org/dnkl/foot/issues/14).
|
|||
|
* `-d,--log-level={info|warning|error}` to both `foot` and
|
|||
|
`footclient` (https://codeberg.org/dnkl/foot/issues/337).
|
|||
|
* `-D,--working-directory=DIR` to both `foot` and `footclient`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/347)
|
|||
|
* `DECSET 80` - sixel scrolling
|
|||
|
(https://codeberg.org/dnkl/foot/issues/361).
|
|||
|
* `DECSET 1070` - sixel private color palette
|
|||
|
(https://codeberg.org/dnkl/foot/issues/362).
|
|||
|
* `DECSET 8452` - position cursor to the right of sixels
|
|||
|
(https://codeberg.org/dnkl/foot/issues/363).
|
|||
|
* Man page **foot-ctlseqs**(7), documenting all supported escape
|
|||
|
sequences (https://codeberg.org/dnkl/foot/issues/235).
|
|||
|
* Support for transparent sixels (DCS parameter `P2=1`)
|
|||
|
(https://codeberg.org/dnkl/foot/issues/391).
|
|||
|
* `-N,--no-wait` to `footclient`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/395).
|
|||
|
* Completions for Bash shell
|
|||
|
(https://codeberg.org/dnkl/foot/issues/10).
|
|||
|
* Implement `XTVERSION` (`CSI > 0q`). Foot will reply with
|
|||
|
`DCS>|foot(<major>.<minor>.<patch>)ST`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/359).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* The fcft and tllist library subprojects are now handled via Meson
|
|||
|
[wrap files](https://mesonbuild.com/Wrap-dependency-system-manual.html)
|
|||
|
instead of needing to be manually cloned.
|
|||
|
* Box drawing characters are now rendered by foot, instead of using
|
|||
|
font glyphs (https://codeberg.org/dnkl/foot/issues/198)
|
|||
|
* Double- or triple clicking then dragging now extends the selection
|
|||
|
word- or line-wise (https://codeberg.org/dnkl/foot/issues/267).
|
|||
|
* The line thickness of box drawing characters now depend on the font
|
|||
|
size (https://codeberg.org/dnkl/foot/issues/281).
|
|||
|
* Extending a word/line-wise selection now uses the original selection
|
|||
|
mode instead of switching to character-wise.
|
|||
|
* While doing an interactive resize of a foot window, foot now
|
|||
|
requires 100ms of idle time (where the window size does not change)
|
|||
|
before sending the new dimensions to the client application. The
|
|||
|
timing can be tweaked, or completely disabled, by setting
|
|||
|
`resize-delay-ms` (https://codeberg.org/dnkl/foot/issues/301).
|
|||
|
* `CSI 13 ; 2 t` now reports (0,0).
|
|||
|
* Key binding matching logic; key combinations like `Control+Shift+C`
|
|||
|
**must** now be written as either `Control+C` or `Control+Shift+c`,
|
|||
|
the latter being the preferred
|
|||
|
variant. (https://codeberg.org/dnkl/foot/issues/376)
|
|||
|
* Consumed modifiers are no longer sent to the client application
|
|||
|
(https://codeberg.org/dnkl/foot/issues/376).
|
|||
|
* The minimum version requirement for the libxkbcommon dependency is
|
|||
|
now 1.0.0.
|
|||
|
* Empty pixel rows at the bottom of a sixel is now trimmed.
|
|||
|
* Sixels with DCS parameter `P2=0|2` now use the _current_ ANSI
|
|||
|
background color for empty pixels instead of the default background
|
|||
|
color (https://codeberg.org/dnkl/foot/issues/391).
|
|||
|
* Sixel decoding optimized; up to 100% faster in some cases.
|
|||
|
* Reported sixel “max geometry” from current window size, to the
|
|||
|
configured maximum size (defaulting to 10000x10000).
|
|||
|
|
|||
|
|
|||
|
### Removed
|
|||
|
|
|||
|
* The `-g,--geometry` command-line option (which had been deprecated
|
|||
|
and superseded by `-w,--window-size-pixels` since 1.5.0).
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Some mouse bindings (_primary paste_, for example) did not require
|
|||
|
`shift` to be pressed while used in a mouse grabbing
|
|||
|
application. This meant the mouse event was never seen by the
|
|||
|
application.
|
|||
|
* Terminals spawned with `ctrl`+`shift`+`n` not terminating when
|
|||
|
exiting shell (https://codeberg.org/dnkl/foot/issues/366).
|
|||
|
* Default value of `-t,--term` in `--help` output when foot was built
|
|||
|
without terminfo support.
|
|||
|
* Drain PTY when the client application terminates.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
* toast
|
|||
|
* [l3mon4d3](https://codeberg.org/l3mon4d3)
|
|||
|
* [Simon Schricker](mailto:s.schricker@sillage.at)
|
|||
|
|
|||
|
|
|||
|
## 1.6.4
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* `selection-target=none|primary|clipboard|both` to `foot.ini`. It can
|
|||
|
be used to configure which clipboard(s) selected text should be
|
|||
|
copied to. The default is `primary`, which corresponds to the
|
|||
|
behavior in older foot releases
|
|||
|
(https://codeberg.org/dnkl/foot/issues/288).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* The IME state no longer stays stuck in the terminal if the IME goes
|
|||
|
away during preedit.
|
|||
|
* `-Dterminfo` changed from a `boolean` to a `feature` option.
|
|||
|
* Use standard signals instead of a signalfd to handle
|
|||
|
`SIGCHLD`. Fixes an issue on FreeBSD where foot did not detect when
|
|||
|
the client application had terminated.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* `BS`, `HT` and `DEL` from being stripped in bracketed paste mode.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [tdeo](https://codeberg.org/tdeo)
|
|||
|
* jbeich
|
|||
|
|
|||
|
|
|||
|
## 1.6.3
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* Completions for fish shell
|
|||
|
(https://codeberg.org/dnkl/foot/issues/11)
|
|||
|
* FreeBSD support (https://codeberg.org/dnkl/foot/issues/238).
|
|||
|
* IME popup location support: foot now sends the location of the cursor
|
|||
|
so any popup can be displayed near the text that is being typed.
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Trailing comments in `foot.ini` must now be preceded by a space or tab
|
|||
|
(https://codeberg.org/dnkl/foot/issues/270)
|
|||
|
* The scrollback search box no longer accepts non-printable characters.
|
|||
|
* Non-formatting C0 control characters, `BS`, `HT` and `DEL` are now
|
|||
|
stripped from pasted text.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Exit when the client application terminates, not when the TTY file
|
|||
|
descriptor is closed.
|
|||
|
* Crash on compositors not implementing the _text input_ interface
|
|||
|
(https://codeberg.org/dnkl/foot/issues/259).
|
|||
|
* Erased, overflowing glyphs (when
|
|||
|
`tweak.allow-overflowing-double-width-glyphs=yes` - the default) not
|
|||
|
properly erasing the cell overflowed **into**.
|
|||
|
* `word-delimiters` option ignores `#` and subsequent characters
|
|||
|
(https://codeberg.org/dnkl/foot/issues/270)
|
|||
|
* Combining characters not being rendered when composed with colored
|
|||
|
bitmap glyphs (i.e. colored emojis).
|
|||
|
* Pasting URIs from the clipboard when the source has not
|
|||
|
newline-terminated the last URI
|
|||
|
(https://codeberg.org/dnkl/foot/issues/291).
|
|||
|
* Sixel “current geometry” query response not being bounded by the
|
|||
|
current window dimensions (fixes `lsix` output)
|
|||
|
* Crash on keyboard input when repeat rate was zero (i.e. no repeat).
|
|||
|
* Wrong button encoding of mouse buttons 6 and 7 in mouse events.
|
|||
|
* Scrollback search not matching composed characters.
|
|||
|
* High CPU usage when holding down e.g. arrow keys while in scrollback
|
|||
|
search mode.
|
|||
|
* Rendering of composed characters in the scrollback search box.
|
|||
|
* IME pre-edit cursor when positioned at the end of the pre-edit
|
|||
|
string.
|
|||
|
* Scrollback search not matching multi-column characters.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [pc](https://codeberg.org/pc)
|
|||
|
* [FollieHiyuki](https://codeberg.org/FollieHiyuki)
|
|||
|
* jbeich
|
|||
|
* [tdeo](https://codeberg.org/tdeo)
|
|||
|
|
|||
|
|
|||
|
## 1.6.2
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Version number in `meson.build`.
|
|||
|
|
|||
|
|
|||
|
## 1.6.1
|
|||
|
### Added
|
|||
|
|
|||
|
* `--seed` to `generate-alt-random.py`, enabling deterministic PGO
|
|||
|
builds.
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
|
|||
|
* Use `-std=c11` instead of `-std=c18`.
|
|||
|
* Added `-Wno-profile-instr-unprofiled` to Clang cflags in PGO builds
|
|||
|
([INSTALL.md](https://codeberg.org/dnkl/foot/src/branch/releases/1.6/INSTALL.md#user-content-performance-optimized-pgo))
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Missing dependencies in meson, causing heavily parallelized builds
|
|||
|
to fail.
|
|||
|
* Background color when alpha < 1.0 being wrong
|
|||
|
(https://codeberg.org/dnkl/foot/issues/249).
|
|||
|
* `generate-alt-random.py` failing in containers.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
* [sterni](https://codeberg.org/sterni)
|
|||
|
|
|||
|
|
|||
|
## 1.6.0
|
|||
|
|
|||
|
### For packagers
|
|||
|
|
|||
|
Starting with this release, foot can be PGO:d (compiled using profile
|
|||
|
guided optimizations) **without** a running Wayland session. This
|
|||
|
means foot can be PGO:d in e.g. sandboxed build scripts. See
|
|||
|
[INSTALL.md](INSTALL.md#user-content-performance-optimized-pgo).
|
|||
|
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* IME support. This is compile-time optional, see
|
|||
|
[INSTALL.md](INSTALL.md#user-content-options)
|
|||
|
(https://codeberg.org/dnkl/foot/issues/134).
|
|||
|
* `DECSET` escape to enable/disable IME: `CSI ? 737769 h` enables IME
|
|||
|
and `CSI ? 737769 l` disables it. This can be used to
|
|||
|
e.g. enable/disable IME when entering/leaving insert mode in vim.
|
|||
|
* `dpi-aware` option to `foot.ini`. The default, `auto`, sizes fonts
|
|||
|
using the monitor’s DPI when output scaling has been
|
|||
|
**disabled**. If output scaling has been **enabled**, fonts are
|
|||
|
sized using the scaling factor. DPI-only font sizing can be forced
|
|||
|
by setting `dpi-aware=yes`. Setting `dpi-aware=no` forces font
|
|||
|
sizing to be based on the scaling factor.
|
|||
|
(https://codeberg.org/dnkl/foot/issues/206).
|
|||
|
* Implement reverse auto-wrap (_auto\_left\_margin_, _bw_, in
|
|||
|
terminfo). This mode can be enabled/disabled with `CSI ? 45 h` and
|
|||
|
`CSI ? 45 l`. It is **enabled** by default
|
|||
|
(https://codeberg.org/dnkl/foot/issues/150).
|
|||
|
* `bell` option to `foot.ini`. Can be set to `set-urgency` to make
|
|||
|
foot render the margins in red when receiving `BEL` while **not**
|
|||
|
having keyboard focus. Applications can dynamically enable/disable
|
|||
|
this with the `CSI ? 1042 h` and `CSI ? 1042 l` escape
|
|||
|
sequences. Note that Wayland does **not** implement an _urgency_
|
|||
|
hint like X11, but that there is a
|
|||
|
[proposal](https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/9)
|
|||
|
to add support for this. The value `set-urgency` was chosen for
|
|||
|
forward-compatibility, in the hopes that this proposal eventualizes
|
|||
|
(https://codeberg.org/dnkl/foot/issues/157).
|
|||
|
* `bell` option can also be set to `notify`, in which case a desktop
|
|||
|
notification is emitted when foot receives `BEL` in an unfocused
|
|||
|
window.
|
|||
|
* `word-delimiters` option to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/156).
|
|||
|
* `csd.preferred` can now be set to `none` to disable window
|
|||
|
decorations. Note that some compositors will render SSDs despite
|
|||
|
this option being used (https://codeberg.org/dnkl/foot/issues/163).
|
|||
|
* Terminal content is now auto-scrolled when moving the mouse above or
|
|||
|
below the window while selecting
|
|||
|
(https://codeberg.org/dnkl/foot/issues/149).
|
|||
|
* `font-bold`, `font-italic` `font-bold-italic` options to
|
|||
|
`foot.ini`. These options allow custom bold/italic fonts. They are
|
|||
|
unset by default, meaning the bold/italic version of the regular
|
|||
|
font is used (https://codeberg.org/dnkl/foot/issues/169).
|
|||
|
* Drag & drop support; text, files and URLs can now be dropped in a
|
|||
|
foot terminal window (https://codeberg.org/dnkl/foot/issues/175).
|
|||
|
* `clipboard-paste` and `primary-paste` scrollback search bindings. By
|
|||
|
default, they are bound to `ctrl+v ctrl+y` and `shift+insert`
|
|||
|
respectively, and lets you paste from the clipboard or primary
|
|||
|
selection into the search buffer.
|
|||
|
* Support for `pipe-*` actions in mouse bindings. It was previously
|
|||
|
not possible to add a command to these actions when used in mouse
|
|||
|
bindings, making them useless
|
|||
|
(https://codeberg.org/dnkl/foot/issues/183).
|
|||
|
* `bold-text-in-bright` option to `foot.ini`. When enabled, bold text
|
|||
|
is rendered in a brighter color
|
|||
|
(https://codeberg.org/dnkl/foot/issues/199).
|
|||
|
* `-w,--window-size-pixels` and `-W,--window-size-chars` command line
|
|||
|
options to `footclient` (https://codeberg.org/dnkl/foot/issues/189).
|
|||
|
* Short command line options for `--title`, `--maximized`,
|
|||
|
`--fullscreen`, `--login-shell`, `--hold` and `--check-config`.
|
|||
|
* `DECSET` escape to modify the `escape` key to send `\E[27;1;27~`
|
|||
|
instead of `\E`: `CSI ? 27127 h` enables the new behavior, `CSI ?
|
|||
|
27127 l` disables it (the default).
|
|||
|
* OSC 777;notify: desktop notifications. Use in combination with the
|
|||
|
new `notify` option in `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/224).
|
|||
|
* Status line terminfo capabilities `hs`, `tsl`, `fsl` and `dsl`. This
|
|||
|
enables e.g. vim to set the window title
|
|||
|
(https://codeberg.org/dnkl/foot/issues/242).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Blinking text now uses the foreground color, but dimmed down in its
|
|||
|
off state, instead of the background color.
|
|||
|
* Sixel default maximum size is now 10000x10000 instead of the current
|
|||
|
window size.
|
|||
|
* Graphical glitches/flashes when resizing the window while running a
|
|||
|
fullscreen application, i.e. the 'alt' screen
|
|||
|
(https://codeberg.org/dnkl/foot/issues/221).
|
|||
|
* Cursor will now blink if **either** `CSI ? 12 h` or `CSI Ps SP q`
|
|||
|
has been used to enable blinking. **cursor.blink** in `foot.ini`
|
|||
|
controls the default state of `CSI Ps SP q`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/218).
|
|||
|
* The sub-parameter versions of the SGR RGB color escapes (e.g
|
|||
|
`\E[38:2...m`) can now be used _without_ the color space ID
|
|||
|
parameter.
|
|||
|
* SGR 21 no longer disables **bold**. According to ECMA-48, SGR 21 is
|
|||
|
_”double underline_”. Foot does not (yet) implement that, but that’s
|
|||
|
no reason to implement a non-standard behavior.
|
|||
|
* `DECRQM` now returns actual state of the requested mode, instead of
|
|||
|
always returning `2`.
|
|||
|
|
|||
|
|
|||
|
### Removed
|
|||
|
|
|||
|
* Support for loading configuration from `$XDG_CONFIG_HOME/footrc`.
|
|||
|
* `scrollback` option from `foot.ini`.
|
|||
|
* `geometry` from `foot.ini`.
|
|||
|
* Key binding action `scrollback-up` and `scrollback-down`.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Error when re-assigning a default key binding
|
|||
|
(https://codeberg.org/dnkl/foot/issues/233).
|
|||
|
* `\E[s`+`\E[u` (save/restore cursor) now saves and restores
|
|||
|
attributes and charset configuration, just like `\E7`+`\E8`.
|
|||
|
* Report mouse motion events to the client application also while
|
|||
|
dragging the cursor outside the grid.
|
|||
|
* Parsing of the sub-parameter versions of indexed SGR color escapes
|
|||
|
(e.g. `\E[38:5...m`)
|
|||
|
* Frames occasionally being rendered while application synchronized
|
|||
|
updates is in effect.
|
|||
|
* Handling of failures to parse the font specification string.
|
|||
|
* Extra private/intermediate characters in escape sequences not being
|
|||
|
ignored.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [kennylevinsen](https://codeberg.org/kennylevinsen)
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
|
|||
|
|
|||
|
## 1.5.4
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
|
|||
|
* Num Lock by default overrides the keypad mode. See
|
|||
|
**foot.ini**(5)::KEYPAD, or
|
|||
|
[README.md](README.md#user-content-keypad) for details
|
|||
|
(https://codeberg.org/dnkl/foot/issues/194).
|
|||
|
* Single-width characters with double-width glyphs are now allowed to
|
|||
|
overflow into neighboring cells by default. Set
|
|||
|
**tweak.allow-overflowing-double-width-glyphs** to ‘no’ to disable
|
|||
|
this.
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Resize very slow when window is hidden
|
|||
|
(https://codeberg.org/dnkl/foot/issues/190).
|
|||
|
* Key mappings for key combinations with `shift`+`tab`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/210).
|
|||
|
* Key mappings for key combinations with `alt`+`return`.
|
|||
|
* `footclient` `-m` (`--maximized`) flag being ignored.
|
|||
|
* Crash with explicitly sized sixels with a height less than 6 pixels.
|
|||
|
* Key mappings for `esc` with modifiers.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
|
|||
|
|
|||
|
## 1.5.3
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Crash when libxkbcommon cannot find a suitable libX11 _compose_
|
|||
|
file. Note that foot will run, but without support for dead keys.
|
|||
|
(https://codeberg.org/dnkl/foot/issues/170).
|
|||
|
* Restored window size when window is un-tiled.
|
|||
|
* XCursor shape in CSD corners when window is tiled.
|
|||
|
* Error handling when processing keyboard input (maybe
|
|||
|
https://codeberg.org/dnkl/foot/issues/171).
|
|||
|
* Compilation error _"overflow in conversion from long 'unsigned int'
|
|||
|
to 'int' changes value... "_ seen on platforms where the `request`
|
|||
|
argument in `ioctl(3)` is an `int` (for example: linux/ppc64).
|
|||
|
* Crash when using the mouse in alternate scroll mode in an unfocused
|
|||
|
window (https://codeberg.org/dnkl/foot/issues/179).
|
|||
|
* Character dropped from selection when "right-click-hold"-extending a
|
|||
|
selection (https://codeberg.org/dnkl/foot/issues/180).
|
|||
|
|
|||
|
|
|||
|
## 1.5.2
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Regression: middle clicking double pastes in e.g. vim
|
|||
|
(https://codeberg.org/dnkl/foot/issues/168)
|
|||
|
|
|||
|
|
|||
|
## 1.5.1
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Default value of the **scrollback.multiplier** option in `foot.ini`
|
|||
|
from `1.0` to `3.0`.
|
|||
|
* `shift`+`insert` now pastes from the primary selection by
|
|||
|
default. This is in addition to middle-clicking with the mouse.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Mouse bindings now match even if the actual click count is larger
|
|||
|
than specified in the binding. This allows you to, for example,
|
|||
|
quickly press the middle-button to paste multiple times
|
|||
|
(https://codeberg.org/dnkl/foot/issues/146).
|
|||
|
* Color flashes when changing the color palette with OSC 4,10,11
|
|||
|
(https://codeberg.org/dnkl/foot/issues/141).
|
|||
|
* Scrollback position is now retained when resizing the window
|
|||
|
(https://codeberg.org/dnkl/foot/issues/142).
|
|||
|
* Trackpad scrolling speed to better match the mouse scrolling speed,
|
|||
|
and to be consistent with other (Wayland) terminal emulators. Note
|
|||
|
that it is (much) slower compared to previous foot versions. Use the
|
|||
|
**scrollback.multiplier** option in `foot.ini` if you find the new
|
|||
|
speed too slow (https://codeberg.org/dnkl/foot/issues/144).
|
|||
|
* Crash when `foot.ini` contains an invalid section name
|
|||
|
(https://codeberg.org/dnkl/foot/issues/159).
|
|||
|
* Background opacity when in _reverse video_ mode.
|
|||
|
* Crash when writing a sixel image that extends outside the terminal's
|
|||
|
right margin (https://codeberg.org/dnkl/foot/issues/151).
|
|||
|
* Sixel image at non-zero column positions getting sheared at
|
|||
|
seemingly random occasions
|
|||
|
(https://codeberg.org/dnkl/foot/issues/151).
|
|||
|
* Crash after either resizing a window or changing the font size if
|
|||
|
there were sixels present in the scrollback while doing so.
|
|||
|
* _Send Device Attributes_ to only send a response if `Ps == 0`.
|
|||
|
* Paste from primary when clipboard is empty.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
* [zar](https://codeberg.org/zar)
|
|||
|
|
|||
|
|
|||
|
## 1.5.0
|
|||
|
|
|||
|
### Deprecated
|
|||
|
|
|||
|
* `$XDG_CONFIG_HOME/footrc`/`~/.config/footrc`. Use
|
|||
|
`$XDG_CONFIG_HOME/foot/foot.ini`/`~/.config/foot/foot.ini` instead.
|
|||
|
* **scrollback** option in `foot.ini`. Use **scrollback.lines**
|
|||
|
instead.
|
|||
|
* **scrollback-up** key binding. Use **scrollback-up-page** instead.
|
|||
|
* **scrollback-down** key binding. Use **scrollback-down-page**
|
|||
|
instead.
|
|||
|
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* Scrollback position indicator. This feature is optional and
|
|||
|
controlled by the **scrollback.indicator-position** and
|
|||
|
**scrollback.indicator-format** options in `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/42).
|
|||
|
* Key bindings in _scrollback search_ mode are now configurable.
|
|||
|
* `--check-config` command line option.
|
|||
|
* **pipe-selected** key binding. Works like **pipe-visible** and
|
|||
|
**pipe-scrollback**, but only pipes the currently selected text, if
|
|||
|
any (https://codeberg.org/dnkl/foot/issues/51).
|
|||
|
* **mouse.hide-when-typing** option to `foot.ini`.
|
|||
|
* **scrollback.multiplier** option to `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/54).
|
|||
|
* **colors.selection-foreground** and **colors.selection-background**
|
|||
|
options to `foot.ini`.
|
|||
|
* **tweak.render-timer** option to `foot.ini`.
|
|||
|
* Modifier support in mouse bindings
|
|||
|
(https://codeberg.org/dnkl/foot/issues/77).
|
|||
|
* Click count support in mouse bindings, i.e double- and triple-click
|
|||
|
(https://codeberg.org/dnkl/foot/issues/78).
|
|||
|
* All mouse actions (begin selection, select word, select row etc) are
|
|||
|
now configurable, via the new **select-begin**,
|
|||
|
**select-begin-block**, **select-extend**, **select-word**,
|
|||
|
**select-word-whitespace** and **select-row** options in the
|
|||
|
**mouse-bindings** section in `foot.ini`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/79).
|
|||
|
* Implement XTSAVE/XTRESTORE escape sequences, `CSI ? Ps s` and `CSI ?
|
|||
|
Ps r` (https://codeberg.org/dnkl/foot/issues/91).
|
|||
|
* `$COLORTERM` is now set to `truecolor` at startup, to indicate
|
|||
|
support for 24-bit RGB colors.
|
|||
|
* Experimental support for rendering double-width glyphs with a
|
|||
|
character width of 1. Must be explicitly enabled with
|
|||
|
`tweak.allow-overflowing-double-width-glyphs`
|
|||
|
(https://codeberg.org/dnkl/foot/issues/116).
|
|||
|
* **initial-window-size-pixels** options to `foot.ini` and
|
|||
|
`-w,--window-size-pixels` command line option to `foot`. This option
|
|||
|
replaces the now deprecated **geometry** and `-g,--geometry`
|
|||
|
options.
|
|||
|
* **initial-window-size-chars** option to `foot.ini` and
|
|||
|
`-W,--window-size-chars` command line option to `foot`. This option
|
|||
|
configures the initial window size in **characters**, and is an
|
|||
|
alternative to **initial-window-size-pixels**.
|
|||
|
* **scrollback-up-half-page** and **scrollback-down-half-page** key
|
|||
|
bindings. They scroll up/down half of a page in the scrollback
|
|||
|
(https://codeberg.org/dnkl/foot/issues/128).
|
|||
|
* **scrollback-up-line** and **scrollback-down-line** key
|
|||
|
bindings. They scroll up/down a single line in the scrollback.
|
|||
|
* **mouse.alternate-scroll-mode** option to `foot.ini`. This option
|
|||
|
controls the initial state of the _Alternate Scroll Mode_, and
|
|||
|
defaults to `yes`. When enabled, mouse scroll events are translated
|
|||
|
to up/down key events in the alternate screen, letting you scroll in
|
|||
|
e.g. `less` and other applications without enabling native mouse
|
|||
|
support in them (https://codeberg.org/dnkl/foot/issues/135).
|
|||
|
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* Renamed man page for `foot.ini` from **foot**(5) to **foot.ini**(5).
|
|||
|
* Configuration errors are no longer fatal; foot will start and print
|
|||
|
an error inside the terminal (and of course still log errors on
|
|||
|
stderr).
|
|||
|
* Default `--server` socket path to use `$WAYLAND_DISPLAY` instead of
|
|||
|
`$XDG_SESSION_ID` (https://codeberg.org/dnkl/foot/issues/55).
|
|||
|
* Trailing empty cells are no longer highlighted in mouse selections.
|
|||
|
* Foot now searches for its configuration in
|
|||
|
`$XDG_DATA_DIRS/foot/foot.ini`, if no configuration is found in
|
|||
|
`$XDG_CONFIG_HOME/foot/foot.ini` or in `$XDG_CONFIG_HOME/footrc`.
|
|||
|
* Minimum window size changed from four rows and 20 columns, to 1 row
|
|||
|
and 2 columns.
|
|||
|
* **scrollback-up/down** renamed to **scrollback-up/down-page**.
|
|||
|
* fcft >= 2.3.0 is now required.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Command lines for **pipe-visible** and **pipe-scrollback** are now
|
|||
|
tokenized (i.e. syntax checked) when the configuration is loaded,
|
|||
|
instead of every time the key binding is executed.
|
|||
|
* Incorrect multi-column character spacer insertion when reflowing
|
|||
|
text.
|
|||
|
* Compilation errors in 32-bit builds.
|
|||
|
* Mouse cursor style in top and left margins.
|
|||
|
* Selection is now **updated** when the cursor moves outside the grid
|
|||
|
(https://codeberg.org/dnkl/foot/issues/70).
|
|||
|
* Viewport sometimes not moving when doing a scrollback search.
|
|||
|
* Crash when canceling a scrollback search and the window had been
|
|||
|
resized while searching.
|
|||
|
* Selection start point not moving when the selection changes
|
|||
|
direction.
|
|||
|
* OSC 10/11/104/110/111 (modify colors) did not update existing screen
|
|||
|
content (https://codeberg.org/dnkl/foot/issues/94).
|
|||
|
* Extra newlines when copying empty cells
|
|||
|
(https://codeberg.org/dnkl/foot/issues/97).
|
|||
|
* Mouse events from being sent to client application when a mouse
|
|||
|
binding has consumed it.
|
|||
|
* Input events from getting mixed with paste data
|
|||
|
(https://codeberg.org/dnkl/foot/issues/101).
|
|||
|
* Missing DPI values for “some” monitors on Gnome
|
|||
|
(https://codeberg.org/dnkl/foot/issues/118).
|
|||
|
* Handling of multi-column composed characters while reflowing.
|
|||
|
* Escape sequences sent for key combinations with `Return`, that did
|
|||
|
**not** include `Alt`.
|
|||
|
* Clipboard (or primary selection) is now cleared when receiving an
|
|||
|
OSC-52 command with an invalid base64 encoded payload.
|
|||
|
* Cursor position being set outside the grid when reflowing text.
|
|||
|
* CSD buttons to be hidden when window size becomes so small that they
|
|||
|
no longer fit.
|
|||
|
|
|||
|
|
|||
|
### Contributors
|
|||
|
|
|||
|
* [craigbarnes](https://codeberg.org/craigbarnes)
|
|||
|
* [birger](https://codeberg.org/birger)
|
|||
|
* [Ordoviz](https://codeberg.org/Ordoviz)
|
|||
|
* [cherti](https://codeberg.org/cherti)
|
|||
|
|
|||
|
|
|||
|
## 1.4.4
|
|||
|
### Changed
|
|||
|
|
|||
|
* Mouse cursor is now always a `left_ptr` when inside the margins, to
|
|||
|
indicate it is not possible to start a selection.
|
|||
|
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Crash when starting a selection inside the margins.
|
|||
|
* Improved font size consistency across multiple monitors with
|
|||
|
different DPI (https://codeberg.org/dnkl/foot/issues/47).
|
|||
|
* Handle trailing comments in `footrc`
|
|||
|
|
|||
|
|
|||
|
## 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
|
|||
|
|
|||
|
### 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
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Compilation errors in release builds with some combinations of
|
|||
|
compilers and compiler flags.
|
|||
|
|
|||
|
|
|||
|
## 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 client 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
|
|||
|
|
|||
|
### 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 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
|
|||
|
|
|||
|
### Fixed
|
|||
|
* Forgot to version bump 1.2.2
|
|||
|
|
|||
|
|
|||
|
## 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
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Building AUR package
|
|||
|
|
|||
|
|
|||
|
## 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
|