Age | Commit message (Collapse) | Author |
|
This implements the colon separated form of SGR 38 and 48.
Fixes #1485.
|
|
Since users should be capable of finding packages for their
distributions, this removes all instructions that point users directly
at specific packages.
The third party repositories like COPR have been kept, since those
are more difficult to find.
The structure of the installation instructions has also been reworked to
adjust for this and the post build instructions should be a bit cleaner
now.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
|
|
Fixes #4082.
|
|
The InstanceData type in the rendering subsystem was previously 17 f32s
plus one u8 which occupied a total of 72 bytes per instance. This meant
that for every character or background cell drawn, 72 bytes were sent to
the GPU. In the case of a 400x100 cell grid, a total of 2.9MB would be
sent.
This patch reduces InstanceData's size to 36 bytes, a 50% improvement!
Using the above example for comparison, a worst case of 1.44MB would be
transferred.
The motivation for this patch comes from macOS. Once the terminal grid
would reach a certain size, performance experienced a sharp and dramatic
drop (render times would go from ~3ms to ~16ms). I don't want to
speculate too much on the underlying issue, but suffice it to say that
this patch alleviates the problem in my testing.
While the performance impact was most significant on macOS, with
rendering times cut by more than 50% in some cases, this also results in
a measurable performance difference on other systems with high density
grids.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
|
|
|
|
This resolves an issue with travis release deployment where tags would
cause a release deployment even if the tag did not match the `vX.Y.Z`
format.
|
|
This resolves an issue where negative window positions set in the
configuration file would not place the Alacritty window in the correct
location.
Fixes #4061.
|
|
|
|
|
|
This works around the problem that crates pushed to crates.io cannot
reference files outside of their crate directory.
|
|
This is only an update to the readme and does not represent a stable
release.
|
|
This is only an update to the changelog and does not represent a stable
release.
|
|
This clarifies the order of subsections in the changelog. All entries
are now defined in the order `Packaging`, `Removed`, `Added`, `Changed`
and `Fixed`.
The sections `Security` and `Deprecated` have been removed. Since
deprecation should always just be a soft deprecation with clear user
warnings, it's not much different from just `Changed`, so that should
make it easier to decide where to put things. The `Security` section is
often not clear enough since a lot of changes might have some form of
security impact depending on interpretation. Since there's unlikely to
be any major security advisories from the Alacritty project, that
section is not particularly useful.
The `Added`, `Changed` and `Fixed` order follows the interest of the
user and the impact on them. This puts the most interesting new features
front and center while allowing to go for a deep dive to see if specific
bugs have been fixed.
The `Removed` section was put last since realistically this should not
affect users. All options should be gradually deprecated and no major
features should just get removed. So most of the time this will just
list deprecated features that are now completely removed, which usually
means there's no impact for users that updated from the last version.
|
|
|
|
Since Alacritty should not be responsible for packaging and the
maintainers of the snap package have not kept it up to date, this
removes its configuration file.
|
|
|
|
This commit fixes regression introduced in
bedf5f3004e8f33011925ca471be02ead96f4581, when setting
certain CellForeground/CellBackground combinations stoppped working.
|
|
Fixes #4040.
|
|
Fixes #4035.
|
|
This should reduce the number of times people with fixed cursor colors
run into troubles when existing text is already colored.
Using just the background color as a metric instead of both background
and foreground color should ensure that the cursor still has a clear
shape, since just changing the foreground color for a cursor might be
difficult to see. Always inverting the entire cursor instead of keeping
the fixed foreground color is important to make sure the contrast isn't
messed up.
Fixes #4016.
|
|
When searching without vi mode the display is no longer reset when the
user hasn't jumped between matches at all. Since there's no reason to
confirm the search, we shouldn't just reset the viewport without a good
reason.
The search is now also restarted completely when the entire search regex
is deleted. While this doesn't reset to the original viewport position
if the user has jumped between matches, it should make things feel a
little less arbitrary.
Fixes #4020.
|
|
|
|
|
|
This adds support for the secondary DA escape sequence response.
Alacritty's version is formatted allowing for up to 99 minor and patch
versions, which should be sufficient.
The tertiary DA is intentionally not implemented and marked as rejected
in the documentation, since a lot of terminals do not support it, or
report useless data (XTerm/URxvt/Kitty).
Fixes #3100.
|
|
|
|
|
|
This change bumps the version of the `alacritty_terminal` crate to force
it out of sync with the Alacritty application. Since it is a library
that will be published on crates.io, it should be following semver
rather than our binary's release version.
While it would be possible to just keep it at 0.5.0, explicitly
disconnecting it from the Alacritty version should give it a clean
starting-off point and prevent unnecessary confusion. Bumping it to
0.10.0 instead of something like 0.6.0 should allow for a nice gap
between the different versions without being too arbitrary. Changing the
version to 0.1.0 is not an option since decreasing semver version would
likely cause a lot of problems.
While it would be possible to further separate the Alacritty terminal
library from the Alacritty terminal emulator, by renaming it from
`alacritty_terminal` to something different, I don't think that is
necessary or a good idea at the moment. Even though the
`alacritty_terminal` library *can* be used for other terminals, its
primary goal is still to support the Alacritty terminal emulator and I
don't see that changing. So making that clear in its name seems like a
good idea. Since there is no plan to maintain this library separately
from Alacritty, but to keep both tied together, the naming should
reflect this.
|
|
|
|
|
|
This fixes two crashes related to search. The first crash was due to
variable shadowing computing the incorrect length of a search as soon as
it was started, causing an overflow after attempting a subtraction.
Since overflows are only debug mode checks, in release this would lead
to an IME positioned far, far beyond the window's boundaries (likely
offscreen).
The other bug was that the search was always started from the last
column in reverse search without vi mode, but after shrinking the
terminal width that origin point is no longer a valid part of the grid.
As a result it would cause an index out of bounds. The line was already
clamped to the grid, but now the same is also done for the column.
Fixes #3987.
|
|
|
|
|
|
Since the Ubuntu PPA from mmstick is apparently not maintained anymore,
people should no longer be instructed to install the outdated version
that is available from the PPA.
The System76 PPA repository still contains an up to date version of
Alacritty, but since it also comes with several other packages we cannot
recommend users to install it outside of Pop!_OS.
Fixes #3863.
|
|
This implements search without vi mode by using the selection to track
the active search match and advancing it on user input. The keys to go
to the next or previous match are not configurable and are bound to
enter and shift enter based on Firefox's behavior.
Fixes #3937.
|
|
|
|
|
|
This resolves three different issues with cursor reflow.
The first issue was that the cursor could reach the top of the screen
during reflow, since content was pushed into history despite viewport
space being available. Since the cursor cannot leave the viewport, this
would insert new space between the cursor and content (see #3968).
Another issue was that the wrapline flag was not set correctly with
content being available behind the cursor. Since the cursor is not
necessarily at the end of the line, it is possible that the cursor
should reflow to the next line instead of staying on the current one and
setting the wrapline flag.
The last bug fixed in this is about reflow with content available behind
the cursor. Since that might have en effect on new lines being inserted
and deleted below the cursor, the cursor needs to be reflown based on
it.
Fixes #3968.
|
|
Previously the SearchEndNext and SearchEndPrevious match acted exactly
like the SearchNext and SearchPrevious action, however this is not how
vim works. In vim, regardless of direction the `gN` action always jumps
to the next match start to the left of the cursor, while the `gn` action
always jumps to the next search end to the right of the cursor.
While both approaches might seem reasonable at first, vim's approach has
a significant advantage w.r.t. predictability and automation of the
movement. By always knowing which direction the motion goes to, this
allows for mappings that reliably navigate inside the current match
regardless of the global search direction. So deleting until the end of
the match would always be `dgn` for example, regardless in which
direction the user has jumped to it.
Fixes #3953.
|
|
Instead of just always falling back to the shell specified in the passwd
file when no config or cli shell was specified, Alacritty will not first
look at the `$SHELL` environment variable. If this is unset, it will
still read the passwd file.
Since macOS is a bit peculiar and does not set the `$SHELL` environment
variable by default, it is set manually to the shell used by Alacritty
while any existing `$SHELL` variables are ignored. This matches the
behavior of iTerm and Terminal.app.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
This resolves a rounding issue when converting to the 26.6 format used
by freetype for character sizes.
This rounding behavior is taken from cairo:
https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/src/cairo-ft-font.c#L900-903
There are various different implementations of the F26Dot6 conversion
online, but the rounding that cairo does seems to be the most common.
Since cairo is very commonly used, it should produce good results
compared with the rest of Linux text rendering.
Fixes #2780.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
|
|
Fixes #3960.
|
|
This commit removes font dependency from alacritty_terminal,
so it'll simplify the usage of alacritty_terminal as a library,
since you won't link to system's libraries anymore. It also
moves many alacritty related config options from it.
Fixes #3393.
|
|
|
|
Fixes #3942.
|
|
Fixes #3938.
|
|
Fixes #3920.
|
|
Fixes #1528.
|
|
In addition it also starts respecting Fontconfig's `autohint`
and `hinting` options.
Fixes #3534.
|