| Commit message (Collapse) | Author | Age |
| |
|
|
| |
Backward buttons)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously whenever the user would use touch gestures to make selections
or scroll the terminal, IME would automatically be enabled due to the
focus change and reduce the terminal height. This isn't ideal when the
goal is just scanning through the terminal history without making any
input.
This patch keeps track of pointer and touch focus and only enables IME
when either the pointer is within the window or a tap touch sequence was
performed to give the window 'touch focus'.
The initial touch tap sequence used to enable IME is still forwarded to
the terminal as a simulated click event, since otherwise touch devices
without virtual keyboard would be forced into a confusing additional tap
to make it work. This means that virtual keyboard users will not be able
to open the virtual keyboard without creating a click event, which
should still be preferable to the status quo.
|
| | |
|
| |
|
|
|
| |
This changes the way the touch zoom works by switching into a separate
mode when one of the touch slots is removed, allowing continuous zoom as
long as at least one slot is active.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes an issue where changes made to the bindings of a hint through
IPC were completely ignored, since the hint key bindings were only
generated on config load without regeneration on IPC config override.
While it would be possible to just filter out remove hint key bindings
based on their action and then repopulate them on IPC config reload,
this solution would be quite hacky.
To have a better distinction between traditional and hint key bindings,
the two have been entirely separated and hint bindings are just
converted to key bindings on demand. This allows easily replacing the
entire hint array without any post-processing, making it simpler to
maintain for future changes.
Closes #8568.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch adds Vi's semantic search and paragraph motion.
The semantic search uses either the selection or the semantic word under
the cursor and jumps to the next match in the desired direction.
Paragraph motion jumps to just above or below the current paragraph.
Closes #7961.
Co-authored-by: Fletcher Gornick <fletcher@gornick.dev>
|
| |
|
|
| |
The keys were not disambiguated, but they should be. Was just an
oversight.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When Kitty's keyboard protocol is used and Report all keys as escape
codes flag (8) is enabled, modifier key escape codes trigger the usual
"write something to the terminal" code path, which clears the selection
/ scrolls down etc.
This behavior is mostly unexpected, and makes some actions more painful
to perform (for instance copying text becomes harder: hitting CTRL to
begin the CTRL+SHIFT+C sequence clears the selection).
This patch clears the selection only if the key event is not a modifier
key, which aligns with Alacritty's usual behavior.
Fixes #8509.
|
| | |
|
| |
|
|
|
| |
This patch removes the `hold` option on `alacritty_terminal` in favor of
a `drain_on_exit` option, which will drain the PTY before shutdown. The
hold logic is instead handled in `alacritty`.
|
| |
|
|
|
| |
The behavior changed and now it actually makes sense.
Fix #8385.
|
| |
|
|
| |
Changing block selection to regular semantic one doesn't feel intuitive,
thus don't switch to it when user has control pressed.
|
| |
|
|
| |
While this doesn't change much with how parsers are implemented, it
improves consistency with how key release is handled.
|
| |
|
|
|
|
|
|
|
|
|
| |
This fixes an issue with hints where it was possible that the terminal
content of highlighted hints changed between the highlighted hint update
and the activation of the hint.
This patch always validates the hint's text content against the hint
itself to ensure that the content is still valid for the original hint
which triggered the highlight.
Closes #8277.
|
| |
|
|
|
|
|
|
|
|
|
| |
This changes the behavior of inline search from only accepting direct
key inputs, to also accepting IME and paste. The additional characters
are still being discarded, matching the existing behavior.
This also fixes an issue where inline search wouldn't work for
characters requiring modifiers, since the modifier press was interpreted
as the search target instead.
Closes #8208.
|
| | |
|
| |
|
|
| |
Update winit and clap to latest versions.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
Closes #7592.
|
| | |
|
| |
|
|
|
| |
Also fix the wrong ordering of base and shifted keys.
Fixes #7492.
|
| |
|
|
| |
Fixes #7506.
|
| |
|
|
| |
Fixes #7475.
|
| |
|
|
|
|
|
|
|
| |
While this doesn't handle releases with multiple identical modifiers
pressed, the release can't work reliable anyway, since one modifier
could be pressed before focusing the window, thus tracking modifiers
based on the keysym values won't work as it was suggested by kitty
author.
Links: https://github.com/kovidgoyal/kitty/issues/6913
|
| |
|
|
|
|
| |
By default `Alt` is not a real `Alt` on macOS, so we shouldn't treat
it as a modifier.
Fixes #7443.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
When the key doesn't have textual representation we shouldn't emit
the text for them, since they are processed via bindings.
Also, fix the logic to handle named keys with disambiguate without
special modes/modifiers.
Fixes #7423.
|
| |
|
|
|
|
|
| |
We should ensure that the `Shift` is actually pressed when trying to
prefer regular bindings instead of the ones if we had Shift applied.
Fixes: 500b696ca8ed (Prefer exact matches for bindings in mouse mode)
Fixes #7415.
|
| | |
|
|
|
The protocol enables robust key reporting for the applications, so
they could bind more keys and the user won't have collisions with
the normal control keys.
Links: https://sw.kovidgoyal.net/kitty/keyboard-protocol
Fixes #6378.
|