Age | Commit message (Collapse) | Author |
|
This patch resolves a behavior that display area doesn't keep track of
content in a scrollback buffer due to display offset reset when viewport
clear is invoked.
This is similar to #5341, but this problem is caused by viewport clear
instead of new outputs to the viewport.
|
|
Fixes #5638.
|
|
|
|
This update includes crossfont 0.3.2, which updates the macOS font
fallback behavior.
Fixes #3271.
|
|
This fixes an issue where the vi cursor would move down one line if it's
positioned at the topmost visible line, while at least partially scrolled
up into history, when new lines are added to the terminal.
This problem is caused by using a display offset of a grid not scrolled
yet when scrolling and determining a new vi cursor position.
|
|
Fixes #5544.
|
|
Fixes #5603.
Fixes #5422.
Fixes #5350.
Fixes #4105.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
Alacritty's `msg create-window` subcommand would previously inherit all
the CLI parameters from the original executable. However not only could
this lead to unexpected behavior, it also prevents multi-window users
from making use of parameters like `-e`, `--working-directory`, or
`--hold`.
This is solved by adding a JSON-based message format to the IPC socket
messages which instructs the Alacritty server on which CLI parameters
should be used to create the new window.
Fixes #5562.
Fixes #5561.
Fixes #5560.
|
|
The current completions required a lot of domain-specific knowledge
about each individual shell and their completion functionality. Much of
which is sparsely documented.
While clap does not generate perfect completions, since parameters like
`-e` are missing completions, it does a reasonable job while requiring
no work on writing these completions.
Since access to `cli.rs` isn't possible from the `build.rs`, these
completions aren't always generated on build. Instead a test verifies
that there has been no changes to these completions and provides a
simple code sample for re-generating them. This should provide a simple
solution with minimal overhead.
|
|
|
|
Fixes #5492.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
The original multiwindow PR added a new manpage, however this was not
properly documented or included in our CI. This patch resolves these
issues.
|
|
Fixes #5586.
|
|
Previously Alacritty would always initialize only a single terminal
emulator window feeding into the winit event loop, however some
platforms like macOS expect all windows to be spawned by the same
process and this "daemon-mode" can also come with the advantage of
increased memory efficiency.
The event loop has been restructured to handle all window-specific
events only by the event processing context with the associated window
id. This makes it possible to add new terminal windows at any time using
the WindowContext::new function call.
Some preliminary tests have shown that for empty terminals, this reduces
the cost of additional terminal emulators from ~100M to ~6M. However at
this point the robustness of the daemon against issues with individual
terminals has not been refined, making the reliability of this system
questionable.
New windows can be created either by using the new `CreateNewWindow`
action, or with the `alacritty msg create-window` subcommand. The
subcommand sends a message to an IPC socket which Alacritty listens on,
its location can be found in the `ALACRITTY_SOCKET` environment
variable.
Fixes #607.
|
|
The existing cursor inversion logic was causing more problems than it
solved, without solving the problem of invisible cursor when inverting a
cell with matching foreground and background colors.
This patch reworks this logic and only inverts the cursor when the
foreground and background colors of the cursor are similar and the
cursor colors aren't set to fixed RGB values.
Fixes #4564.
Fixes #5550.
|
|
In this change I went through all current rustfmt configuration options
and expanded our existing configuration with overrides whenever deemed
appropriate.
The `normalize_doc_attributes` option is still unstable, but seems to
work without any issues. Even when passing macros like `include_str!`
that is recognized properly and not normalized. So while this wasn't an
issue anywhere in the code, it should make sure it never will be.
When it comes to imports there are two new major additions. The
`imports_granularity` and `group_imports` options. Both mostly just
incorporate unwritten rules that have existed in Alacritty for a long
time. Unfortunately since `alacritty_terminal` imports in `alacritty`
are supposed to be separate blocks, the `group_imports` option cannot be
used.
|
|
|
|
Fixes #5460.
|
|
Fixes #5504.
|
|
`ErrorKind::Other` no longer includes `EIO` since Rust 1.55:
https://blog.rust-lang.org/2021/09/09/Rust-1.55.0.html#stdioerrorkind-variants-updated
It was not precise enough from the very beginning, as the comment says
that only EIO should be hidden, while the code was any uncategorised
errors.
|
|
|
|
While it might be nice to have the full `Passwd` struct around should
anything ever change in the future, there's really no reason why
Alacritty would need this information. So just removing things for now
makes more sense than adding `#[allow(unused)]`.
|
|
|
|
While the custom merge strategy can make things simpler in some
scenarios, it has repeatedly shown to silently introduce errors that
have to be manually spotted and corrected after the fact.
It's much more reliable and efficient to always manually oversee
potential conflicts, rather than letting them slip through half of the
time and having to contribute follow-up patches.
|
|
To make it possible to detect the replacement of the configuration file
when it is a symlink, the symlinks path has to be observed in addition
to the canonicalized path. That way changes to either file will trigger
a live config reload.
Multiple layers of symlinks would still not get detected when any
symlink other than the configuration file itself is replaced, but this
patch should cover most realistic usage scenarios.
|
|
The "consoleapi" feature in the winapi crate is required when using
things from the `winapi::um::consoleapi` module.
|
|
During the deprecation of the 'background_opacity' field, it was
incorrectly renamed to 'window_opacity'. This changes that back to ensure
the old field still works and a warning is emitted accordingly.
See the original regression here:
https://github.com/alacritty/alacritty/commit/c24d7dfd0d2d8849f0398d7cb1a65d6562ee7a0d#diff-f92f0b1ad70a7b75b7266f3c9e569025e023d186814aa88c2b690800850ccb78L72-R73
Fixes #5437.
|
|
While structopt also uses clap under the hood, the configuration through
annotations allows for significantly more maintainable and concise CLI
definition.
This will also make it far easier to have platform-specific options,
which is problematic with clap since no individual methods can be
removed from its builder.
The change in Alacritty's CLI has been kept to a minimum with the only
significant changes being the `--version` flag listed before the
`-v` flag and the authors all on the same line.
|
|
|
|
In some cases it could be desired to apply 'background_opacity'
to all background colors instead of just 'colors.primary.background',
thus adding an 'colors.opaque_background_colors' option to control that.
Fixes #741.
|
|
|
|
Fixes #5387.
|
|
Fixes #5383.
|
|
|
|
Fixes #4132.
|
|
|
|
The glutin version bump to 0.27.0 has introduced a lot of new issues and
crashes to Alacritty due to the connected winit update. Since it doesn't
solve any major issues downgrading glutin temporarily should improve
Alacritty's reliability.
|
|
|
|
This patch resolves an issue with fullwidth characters, where it is
possible to crash Alacritty by moving a fullwidth character off the side
of the terminal using insert mode.
This issue occurs since trying to overwrite a fullwidth spacer in the
first column leads to an underflow when trying to access its fullwidth
character cell. During insert mode before the character is inserted into
the cell, the existing content is rotated to the right, which leads to
the fullwidth spacer being in the first column even though it is only
there temporarily to be immediately overwritten.
While it would be possible to clear the flags after rotation, this would
still leave the opportunity for other ways to trigger this issue and
cause a separate crash. So instead the column is checked while
overwriting the spacer to make sure the fullwidth character isn't
accessed if it would lead to an underflow.
The following is a minimal example for reproducing this crash:
```sh
printf "漢"
printf "\e[4h"
printf "\r"
for _ in $(seq 3 $(tput cols)); do
printf "x"
done
printf "\r_"
```
Fixes #5337.
|
|
This commit swaps source and target for the windows asset symlinks,
since creation of a symlink is not possible on Windows systems without
administrator permissions.
By making the files inside the source folder the source instead of the
destination, a build is still possible without requiring elevated
privileges.
Fixes #5338.
|
|
|
|
This is only an update to the development version and does not represent
a stable release.
|
|
This removes the releases section to make the creation of new releases a
bit simpler.
|
|
This resolves an issue with the vi mode cursor where it would not keep
track of the content while scrolled up in history but instead slowly
leave the viewport due to its absolute positioning.
While an alternative solution would have been to always keep the vi mode
cursor in the same spot on the viewport, keeping track of the content is
not only more easy to implement but it also makes for a nicer connection
between the vi mode cursor and the content below it.
Fixes #5339.
|
|
Fixes #5084.
|
|
|
|
Fixes #5114.
|
|
Fixes #5320.
|
|
Fixes #5315.
|
|
Fixes #5266.
|