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.
On macOS every shell is a login shell, which will always print
information about the last login when the terminal is started. The macOS
standard for disabling this is to place a `.hushlogin` file in the
user's home directory, but this did not work with Alacritty since
`login` only looks for this file in the current directory.
To ensure the login message is properly suppressed, Alacritty's default
shell will now check for the presence of the `.hushlogin` file in the
user's home directory and append `-q` to the `login` arguments if it is
present, which will behave as if a `.hushlogin` file was found by
`login`.
Co-authored-by: Thomas <thomas@zed.dev>
Co-authored-by: Anthony <anthony@zed.dev>
Use the `std::env::set_current_dir` from the `pre_exec` and ignore
error, since not changing working directory is a side effect which
shouldn't break spawning a program or block window creation.
Signed-off-by: Tycho Andersen <tycho@tycho.pizza>
Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
Co-authored-by: Christian Duerr <contact@christianduerr.com>
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`.
Sometimes points could end up outside of viewport, thus the screen
will need to be invalidated. The default unwrapping does handle both
cases.
Fixes: a1ed79bd2c (Fix highlight invalidation on grid scroll)
This fixes an issue with daemon mode where the first spawned window
would not use the window options passed to the `create-window`
subcommand, but would instead use the options passed during creation of
the original daemon.
Closes#8371.
This patch fixes an issue where the semantic vi motion commands
`SemanticRight` and `SemanticLeft` were not behaving as expected when a
fullwidth character was used as a semantic character.
Closes#8314.
This patch applies all major and minor version bumps, with the exception
of `unicode-width` since it will need to be handled separately for
Unicode version 16.
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 fixes a couple issues with hint highlight invalidation, which would
cause hints to lose their underline highlight despite the terminal
itself not having changed since the highlight started.
Closes#8270.