foot/CHANGELOG.md

821 lines
30 KiB
Markdown
Raw Normal View History

2020-03-06 19:45:04 +01:00
# Changelog
* [Unreleased](#Unreleased)
2020-12-21 15:58:25 +01:00
* [1.6.2](#1-6-2)
2020-12-20 15:46:05 +01:00
* [1.6.1](#1-6-1)
2020-12-19 22:50:18 +00:00
* [1.6.0](#1-6-0)
2020-12-01 19:33:22 +01:00
* [1.5.4](#1-5-4)
2020-11-06 20:06:31 +01:00
* [1.5.3](#1-5-3)
* [1.5.2](#1-5-2)
2020-10-11 19:31:01 +02:00
* [1.5.1](#1-5-1)
2020-09-18 21:22:59 +02:00
* [1.5.0](#1-5-0)
2020-07-29 06:55:23 +02:00
* [1.4.4](#1-4-4)
2020-07-27 18:55:12 +02:00
* [1.4.3](#1-4-3)
* [1.4.2](#1-4-2)
2020-07-22 20:03:28 +02:00
* [1.4.1](#1-4-1)
2020-07-22 18:59:19 +02:00
* [1.4.0](#1-4-0)
2020-05-13 13:09:12 +02:00
* [1.3.0](#1-3-0)
2020-03-15 11:39:11 +01:00
* [1.2.3](#1-2-3)
* [1.2.2](#1-2-2)
* [1.2.1](#1-2-1)
* [1.2.0](#1-2-0)
## Unreleased
### 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).
2021-01-07 22:21:07 +03:00
* Completions for fish shell
(https://codeberg.org/dnkl/foot/issues/11)
* `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.
### 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)
* Trailing comments in `foot.ini` must now be preceded by a space or tab
(https://codeberg.org/dnkl/foot/issues/270)
* 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.
2020-12-20 15:42:32 +01:00
2020-12-20 15:51:04 +01:00
### Deprecated
### Removed
* The `-g,--geometry` command-line option (which had been deprecated and
2021-01-14 10:57:56 +01:00
superseded by `-w,--window-size-pixels` since 1.5.0).
2020-12-20 15:51:04 +01:00
### 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
2021-01-11 09:35:01 +01:00
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)
2020-12-20 15:51:04 +01:00
### Security
### Contributors
* [craigbarnes](https://codeberg.org/craigbarnes)
2020-12-26 12:14:07 +01:00
* [birger](https://codeberg.org/birger)
2021-01-03 15:49:24 -05:00
* [pc](https://codeberg.org/pc)
2021-01-07 22:21:07 +03:00
* [FollieHiyuki](https://codeberg.org/FollieHiyuki)
2020-12-20 15:51:04 +01:00
2020-12-21 15:58:25 +01:00
## 1.6.2
### Fixed
* Version number in `meson.build`.
2020-12-20 15:51:04 +01:00
## 1.6.1
2020-12-20 15:46:05 +01:00
### Added
* `--seed` to `generate-alt-random.py`, enabling deterministic PGO
builds.
2020-12-20 15:46:05 +01:00
### Changed
2020-12-21 13:55:19 +01:00
* 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)
2020-12-20 15:42:32 +01:00
* [sterni](https://codeberg.org/sterni)
2020-12-18 14:51:34 +01:00
## 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
2020-10-02 21:44:03 +02:00
2020-12-05 11:09:05 +01:00
* 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
2020-12-08 20:31:48 +01:00
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 monitors 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
2020-10-08 19:52:10 +02:00
`CSI ? 45 l`. It is **enabled** by default
2020-10-02 21:44:03 +02:00
(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).
2020-10-11 18:19:38 +02:00
* 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
2020-11-14 11:23:01 +01:00
(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).
2020-10-02 21:44:03 +02:00
### 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).
term: split cursor blink state into two There are two different escape sequences that can be used to set the cursor blink state: ‘CSI ? 12 h/l’ and ‘CSI Ps SP q’. Up until now, they both modified the same internal state in foot. This meant you could enable a blinking cursor with e.g. ‘CSI ? 12 h’ and then disable it with ‘CSI 2 SP q’. Since the ‘CSI ? 12’ escapes are used in the civis/cnorm/cvvis terminfo entries, applications often ended up disabling the blink state on exit (typically be emitting ‘cnorm’), requiring users to manually re-enable blinking. By splitting the internal state into two separate states, we can improve the situation. The cursor will blink if at least one of the two have been enabled. The setting in foot.ini sets the default state of the ‘CSI Ps SP q’ escape. This means if the user has enabled blinking in the configuration, the cursor will blink regardless of civis/cnorm/cvvis. Which probably is what the user wants. If the user has NOT enabled blinking, civis/cnorm/cvvis act as intended: cvvis blink, civis and cnorm do not. If an application overrides the cursor blink/style with ‘CSI Ps SP q’, that will override the user’s setting in foot.ini. But most likely that too is intended (for example, the user may have configured the application to use a different cursor style). And, a well written application will emit the ‘Se’ terminfo sequence on exit, which in foot is defined to ‘CSI SP q’, which will reset both the style and blink state to the user configured style/state. Closes #218
2020-11-26 18:09:32 +01:00
* 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.
2020-12-16 10:33:04 +01:00
* SGR 21 no longer disables **bold**. According to ECMA-48, SGR 21 is
_”double underline_”. Foot does not (yet) implement that, but thats
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`.
input: report mouse drag events also when the pointer is outside the grid As long as the mouse button was *pressed* while the pointer was inside the grid, we want to keep reporting motion events until the button is released. Even when the pointer moves outside the grid (but in this case, the reported coordinates are bounded by the grid size). This patch also tries to improve multi-button handling (i.e. multiple buttons pressed at the same time), and the events we report to the client for these, in the following ways: * Motion events now report the *initial* button. That is, if you start a drag operation with the LEFT button, then press RIGHT (before releasing LEFT), keep reporting LEFT in the motion events. * Mouse release events are reported for *any* button, as long as the pointer is *inside* the grid, *or*, the button released was the button used to start a drag operation. The last point is important; if we have reported a button press followed by motion events (i.e. a drag operation), we need to report the button release, *even* if the pointer is outside the grid. Note that the client may receive unbalanced button press/release events in the following ways if the user pressed one, and then a second button *inside* the grid, then releases the *first* button (possibly outside the grid), and finally releases the *second* button *outside* the grid. In this case, both buttons will report press events. The first button will report a release event since it is the initial button in the drag operation. However, we don’t track the fact that the second button is being pressed, and thus if it is released outside the grid, it wont generate a release event.
2020-12-11 20:48:43 +01:00
* 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.
2020-12-01 20:02:58 +01:00
### Contributors
* [kennylevinsen](https://codeberg.org/kennylevinsen)
* [craigbarnes](https://codeberg.org/craigbarnes)
2020-12-01 19:33:22 +01:00
## 1.5.4
### Changed
2020-12-01 20:02:58 +01:00
* Num Lock by default overrides the keypad mode. See
2020-11-12 18:20:54 +01:00
**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.
2020-12-01 19:33:22 +01:00
### 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.
2020-11-06 20:21:33 +01:00
### Contributors
2020-11-21 22:05:24 +01:00
* [craigbarnes](https://codeberg.org/craigbarnes)
2020-11-06 20:21:33 +01:00
2020-11-06 20:06:31 +01:00
## 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)
2020-10-11 19:31:01 +02:00
## 1.5.1
2020-10-02 21:44:03 +02:00
### 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
2020-10-09 19:19:40 +02:00
* [craigbarnes](https://codeberg.org/craigbarnes)
* [zar](https://codeberg.org/zar)
2020-10-09 19:19:40 +02:00
2020-09-18 21:22:59 +02:00
## 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).
2020-08-15 23:29:38 +02:00
* 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).
2020-08-11 10:26:31 +02:00
* 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`
2020-08-11 10:26:31 +02:00
(https://codeberg.org/dnkl/foot/issues/79).
2020-08-16 17:03:58 +02:00
* 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.
2020-08-07 20:08:30 +02:00
* 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.
2020-08-13 06:33:10 +02:00
* 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)
2020-08-16 09:14:15 +02:00
* [Ordoviz](https://codeberg.org/Ordoviz)
2020-09-18 21:22:27 +02:00
* [cherti](https://codeberg.org/cherti)
2020-07-29 06:55:23 +02:00
## 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`
2020-07-27 18:55:12 +02:00
## 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).
2020-07-25 13:55:05 +02:00
### Contributors
* [birger](https://codeberg.org/birger)
* [cherti](https://codeberg.org/cherti)
2020-03-15 11:39:11 +01:00
2020-07-23 18:51:33 +02:00
## 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.
2020-07-22 20:03:28 +02:00
## 1.4.1
### Fixed
2020-07-22 20:03:28 +02:00
* Compilation errors in release builds with some combinations of
compilers and compiler flags.
2020-07-22 18:59:19 +02:00
## 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`.
2020-06-27 20:05:50 +02:00
* 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.
2020-07-09 09:17:42 +02:00
* 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.
2020-06-29 21:52:32 +02:00
* 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..
2020-05-21 20:28:26 +02:00
* New terminal windows spawned with `ctrl`+`shift`+`n` are no longer
double forked.
2020-06-14 09:14:04 +02:00
* 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.
2020-06-14 09:14:04 +02:00
* 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.
2020-06-29 21:53:07 +02:00
* Restore signal mask in the client process.
2020-05-26 18:18:11 +02:00
* 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.
2020-06-29 21:53:07 +02:00
* 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.
2020-08-15 23:29:38 +02:00
* 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.
2020-07-14 10:52:15 +02:00
* `IND` and `RI` now clears `LCF`.
2020-07-14 12:48:16 +02:00
* `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.
2020-07-15 11:05:22 +02:00
* Font size can no longer be reduced to negative values
(https://codeberg.org/dnkl/foot/issues/38).
2020-06-14 09:14:04 +02:00
2020-05-13 13:09:12 +02:00
## 1.3.0
### Added
2020-03-14 23:28:21 +01:00
* 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.
2020-03-14 23:28:21 +01:00
2020-03-14 23:21:56 +01:00
### 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
2020-06-30 17:46:25 +02:00
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`.
2020-03-14 23:21:56 +01:00
### Removed
2020-03-14 23:28:21 +01:00
2020-03-14 23:21:56 +01:00
* Keyboard/pointer handler workarounds for Sway 1.2.
2020-03-14 23:28:21 +01:00
2020-03-14 23:21:56 +01:00
### Fixed
2020-03-14 23:28:21 +01:00
2020-03-14 23:21:56 +01:00
* 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.
2020-04-08 17:39:54 +02:00
* 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.
2020-03-14 23:28:21 +01:00
2020-03-15 11:28:01 +01:00
## 1.2.3
### Fixed
* Forgot to version bump 1.2.2
2020-03-09 21:11:41 +01:00
## 1.2.2
### Changed
2020-03-14 23:28:21 +01:00
2020-03-09 21:11:41 +01:00
* 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.
2020-03-14 23:28:21 +01:00
### Fixed
2020-03-14 23:28:21 +01:00
* Window size doubling when moving window between outputs with
different scaling factors (https://codeberg.org/dnkl/foot/issues/3).
2020-03-11 20:18:47 +01:00
* Font being too small on monitors with fractional scaling
(https://codeberg.org/dnkl/foot/issues/5).
## 1.2.1
### Fixed
2020-03-14 23:28:21 +01:00
* Building AUR package
## 1.2.0
2020-03-06 19:45:04 +01:00
### Added
2020-03-14 23:28:21 +01:00
* 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
2020-03-14 23:28:21 +01:00
2020-03-06 19:45:04 +01:00
### Changed
2020-03-14 23:28:21 +01:00
* 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)
2020-03-14 23:28:21 +01:00
2020-03-06 19:45:04 +01:00
### Removed
2020-03-14 23:28:21 +01:00
* '28' from DA response