mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-18 22:05:25 -05:00
When scrolling, there are a couple of cases where an existing selection must be canceled because we cannot meaningfully represent it after scrolling. These are when the selection is (partly) inside: * The top scrolling region * The bottom scrolling region * The new lines scrolled in. I.e. re-used lines For the scrolling regions, the real problem is when the selection crosses the scrolling region boundary; a selection that is completely inside a scrolling regions _might_ be possible to keep, but we would need to translate the selection coordinates to the new scrolling region lines. For simplicity, we cancel the selection if it touches the scrolling region. Period. The last item, newly scrolled in lines is when the selection covers very old lines and we're now wrapping around the scrollback history. Then there's a fourth problem case: when the user has started a selection, but hasn't yet moved the cursor. In this case, we have no end point. What's more problematic is that when the user (after scrolling) moves the cursor, we try to create a huge selection that covers mostly empty (NULL) rows, causing us to crash. This can happen e.g. when reverse scrolling in such a way that we wrap around the scrollback history. The actual viewport in this case is something like `-n - m`. But the selection we'll end up trying to create will be `m - (rows - n)`. This range may very well contain NULL rows. To deal with this, we simply cancel the selection.
177 lines
5.3 KiB
Markdown
177 lines
5.3 KiB
Markdown
# Changelog
|
|
|
|
* [Unreleased](#unreleased)
|
|
* [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)
|
|
|
|
|
|
## Unreleased
|
|
|
|
### Added
|
|
|
|
* `Sync` to terminfo. This is a tmux extension that indicates
|
|
_"Synchronized Updates"_ are supported.
|
|
|
|
|
|
### 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..
|
|
|
|
### Deprecated
|
|
### Removed
|
|
### Fixed
|
|
|
|
* Do not stop an ongoing selection when `shift` is released. When the
|
|
client application is capturing mouse events, 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 modified.
|
|
* Very rare crash when beginning a selection at the same time the
|
|
terminal content was scrolled.
|
|
|
|
### Security
|
|
|
|
|
|
## 1.3.0
|
|
|
|
### Added
|
|
|
|
* User configurable key- and mouse bindings. See `man 5 foot` and the
|
|
example `footrc` (https://codeberg.org/dnkl/foot/issues/1)
|
|
* **initial-window-mode** option to `footrc`, that lets you control
|
|
the initial mode for each newly spawned window: _windowed_,
|
|
_maximized_ or _fullscreen_.
|
|
* **app-id** option to `footrc` and `--app-id` command line option,
|
|
that sets the _app-id_ property on the Wayland window.
|
|
* **title** option to `footrc` and `--title` command line option, that
|
|
sets the initial window title.
|
|
* Right mouse button extends the current selection.
|
|
* `CSI Ps ; Ps ; Ps t` escape sequences for the following parameters:
|
|
`11t`, `13t`, `13;2t`, `14t`, `14;2t`, `15t`, `19t`.
|
|
* Unicode combining characters.
|
|
|
|
### Changed
|
|
|
|
* Spaces no longer removed from zsh font name completions.
|
|
* Default key binding for _spawn-terminal_ to ctrl+shift+n.
|
|
* Renderer is now much faster with interactive scrolling
|
|
(https://codeberg.org/dnkl/foot/issues/4)
|
|
* memfd sealing failures are no longer fatal errors.
|
|
* Selection to no longer be cleared on resize.
|
|
* The current monitor's subpixel order (RGB/BGR/V-RGB/V-BGR) is
|
|
preferred over FontConfig's `rgba` property. Only if the monitor's
|
|
subpixel order is `unknown` is FontConfig's `rgba` property used. If
|
|
the subpixel order is `none`, then grayscale antialiasing is
|
|
used. The subpixel order is ignored if antialiasing has been
|
|
disabled.
|
|
* The four primary font variants (normal, bold, italic, bold italic)
|
|
are now loaded in parallel. This speeds up both the initial startup
|
|
time, as well as a DPI changes.
|
|
* Command line parsing no longer tries to parse arguments following
|
|
the command-to-execute. This means one can now write `foot sh -c
|
|
true` instead of `foot -- sh -c true`.
|
|
|
|
|
|
### Removed
|
|
|
|
* Keyboard/pointer handler workarounds for Sway 1.2.
|
|
|
|
|
|
### Fixed
|
|
|
|
* Sixel images moved or deleted on window resize.
|
|
* Cursor sometimes incorrectly restored on exit from alternate screen.
|
|
* 'Underline' cursor being invisible on underlined text.
|
|
* Restored cursor position in 'normal' screen when window was resized
|
|
while in 'alt' screen.
|
|
* Hostname in OSC 7 URI not being validated.
|
|
* OSC 4 with multiple `c;spec` pairs.
|
|
* Alt+Return to emit "ESC \r".
|
|
* Trackpad sloooow scrolling to eventually scroll a line.
|
|
* Memory leak in terminal reset.
|
|
* Translation of cursor coordinates on resize
|
|
* Scaling color specifiers in OSC sequences.
|
|
* `OSC 12 ?` to return the cursor color, not the cursor's text color.
|
|
* `OSC 12;#000000` to configure the cursor to use inverted
|
|
foreground/background colors.
|
|
* Call `ioctl(TIOCSCTTY)` on the pts fd in the slave process.
|
|
|
|
|
|
## 1.2.3
|
|
|
|
### 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
|