Age | Commit message (Collapse) | Author |
|
|
|
The [kitty keyboard protocol][1] explicitly requires that the
*un-shifted* version of the pressed key is used to report the primary
code point in `CSI code-point;modifiers u` sequences.
> Note that the codepoint used is always the lower-case (or more
> technically, un-shifted) version of the key. If the user presses, for
> example, ctrl+shift+a the escape code would be CSI 97;modifiers u. It
> must not be CSI 65; modifiers u.
Alacritty's current behavior is to report the shifted version when shift
is pressed, and the un-shifted version otherwise:
```console
# Note that you'll have to kill Alacritty after running this to get
# control back!
$ echo -ne '\x1b[>1u'; cat
^[[97;5u^[[65;6u
```
The above was generated by pressing `CTRL`+`a` followed by
`CTRL`+`SHIFT`+`a` after running the command. Here `97` and `65` are the
codepoints for `a` and `A` respectively.
This change makes Alacritty match the protocol (and Kitty's) behavior.
With this change applied, `97` is reported for both `CTRL`+`a` and
`CTRL`+`SHIFT`+`a`.
[1]: https://sw.kovidgoyal.net/kitty/keyboard-protocol/#key-codes
|
|
This fixes a regression, likely introduced in 5d173f6df, which changed
the severity of missing imports from `info` back to `error`.
The cause of this issue was a more complicated error handling mechanism,
which explicitly translated IO errors to a separate enum variant without
accounting for it in all scenarios.
While retrospectively this seems completely unnecessary to me, it did
mean shorter error messages in case the main config file was not found.
To preserve the benefits of both approaches, explicit handling for the
`NotFound` IO error has been added when loading the main configuration
file.
|
|
This patch fixes an issue with signal handling where Alacritty would
permanently create one signal handling FD for each alacritty window
created by an instance. This FD was never released, causing a leak of
the FD.
Closes #7983.
|
|
The following config was broken:
```
[mouse]
bindings = [
{ mouse = "Right", mods = "Shift", action = "Copy" },
{ mouse = "Right", mods = "Shift", action = "ClearSelection" },
]
```
Only the first action was applied. Change to allow more than one exact
match in mouse mode with shift held, but keep the logic to not allow
fallback search if any exact match was found.
Regression was introduced in 1a143d11.
|
|
Closes #7886.
|
|
|
|
This fixes an issue where Windows spawned after the initial one through
IPC or bindings would not update their title due to the initial window
having its title set through the CLI.
Title changes are still inhibited for additional windows when they are
spawned through `alacritty msg create-window` with the `--title` CLI
option added.
Closes #6836.
|
|
Fix incorrect usage of the `flags` when drawing the preedit resulting
in setting the `flags`, but not actually reading the value back.
The logic to skip things was also used incorrectly, because the renderer
does that already based on the `WIDE_CHAR` flag on the cell.
Fixes: 67a433ceed (Skip whitespaces for wide chars in preedit)
|
|
This fixes an issue where Alacritty would crash when trying to open a
new tab on macOS while having decorations disabled.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
Winit explicitly states that the window is not focused by default and
the `Focused` event will deliver the state later on.
Also start adding notable changes to alacritty_terminal in its own
CHANGELOG.
Closes #7866.
|
|
This is only an update to the development version and does not represent
a stable release.
|
|
Make `Alt` send `ESC` for unicode input the way it's done for ASCII.
Previously it was disabled because of macOS, however on macOS we're
using the `option_as_alt` setting, which solves the original issue.
The `Alt` prefixing is still disabled for the unicode strings, like
when they come from the compose input.
Fixes #7852.
|
|
On Windows some key combinations for regular text input, like Ctrl+1
don't have any text attached, so they were generating the kitty escape
sequence even when they shouldn't.
|
|
|
|
This fixes an issue where the `Select` action for hyperlink escape text
would select the entire line, instead of selecting only the hyperlink
itself.
It also changes the way hyperlinks with the same ID are highlighted,
removing the restriction of being on consecutive lines and instead
highlighting all visible cells that correspond to the matching
hyperlink.
Closes #7766.
|
|
|
|
x11-clipboard was unconditionally using eventfd which is not present
on NetBSD.
Links: https://github.com/quininer/x11-clipboard/issues/48
|
|
|
|
|
|
Fixes #7633.
Fixes #7613.
Fixes #7607.
Fixes #7571.
Fixes #7549.
|
|
This fixes an issue where a scrolling region that does not start at the
top of the screen would still rotate lines into history when scrolling
the content "upwards".
|
|
|
|
|
|
Fixes #7665.
|
|
Fixes #7665.
|
|
Originally kitty defined that functional keys, which are not encoded
by default, like `Pause` should be encoded with `CSI u`. However
the specification was clarified and now it says that terminal
may ignore that part. Given that Alacritty tries to follow xterm/urxvt
when it comes to bindings, CSI u bindings are not send for consistency
reasons.
This also brings back F13-F20 bindings used by Alacritty in 0.12.3, as
well as explicitly defines `NumpadEnter` like it was before.
Closes #7623.
|
|
|
|
This has a side effect that we'll have text reported for Alt+Shift+T
and similar, but only C0/C1 should be excluded and Alt+Shift+T is
emitting neither, thus regular `T` will be reported.
Fixes #7657.
|
|
Sextants are similar to quadrants and should align with them and
other box drawing, thus use builtin font to align them properly.
Part-of: #7422.
|
|
Closes #7592.
|
|
This fixes an issue where all CLI environment variables would replace
existing configuration file variables instead of merging the two maps
together.
Fixes #7618.
|
|
Closes #7587.
|
|
This is only an update to the development version and does not represent
a stable release.
|
|
Fixes #7559.
Fixes #7533.
|
|
This should help with broken YAML configurations by throwing nulls
away, which are not representable in toml.
|
|
Closes #7511.
|
|
This fixes an issue with the default `SerdeReplace` implementation where
it would never recurse through options but always replace the entire
option with the new value.
Closes #7518.
|
|
The toml migration introduced a regression which stopped numbered key
binding's from working. This patch implements the required number type
to make things work again.
Fixes #7527.
|
|
Fixes #7514.
Fixes #7502.
Fixes #7494.
Fixes #7474.
Fixes #7472.
|
|
Fixes #7470.
|
|
Also fix the wrong ordering of base and shifted keys.
Fixes #7492.
|
|
This broke unintentionally due to routing paste-like input
via paste function.
Fixes #7476.
|
|
Fixes #7506.
|
|
Fixes #7475.
|
|
Fixes #7473.
|
|
This also bumps other dependencies along the way.
Fixes #2886.
|
|
This is only an update to the development versions and does not
represent a stable release.
|
|
|
|
|