Age | Commit message (Collapse) | Author |
|
|
|
|
|
Fixes #5041.
|
|
Fixes #5039.
|
|
Fixes #5035.
|
|
|
|
Fixes #5022.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
|
|
Fixes #5010.
|
|
Fixes #3726.
|
|
|
|
This fixes a regression introduced in 0.7.0 where the block cursor would
not expand across both cells anymore when on top of a wide char spacer
cell.
The logic to always move the cursor on the wide char instead of the
spacer has been moved to the alacritty_terminal crate, making sure it is
always performed before any processing in the UI.
|
|
This forces all responses made to the PTY through the indirection of the
UI event loop, making sure that the writes to the PTY are in the same
order as the original requests.
This just delays all escape sequences by forcing them through the event
loop, ideally all responses which are not asynchronous (like a clipboard
read) would be made immediately. However since some escapes require
feedback from the UI to mutable structures like the config (e.g. color
query escapes), this would require additional locking.
Fixes #4872.
|
|
This resolves an issue where an excessive clipboard update frequency
would cause the Wayland display server to ignore necessary selection
updates.
Instead of copying the selection to the clipboard during the selection
process, it is now only copied once the mouse button is released.
Fixes #4953.
|
|
This includes a bump to VTE resolving an issue with invalid
intermediates when transitioning from DCS to ESC sequences. This should
however not be noticeable with any existing escape sequences.
Fixes #4827.
|
|
The patch 9cb5562 has introduced a regression which would abort if a
mouse report's line was bigger than zero, which is the exact opposite of
when a mouse report is required.
Fixes #4980.
|
|
This resolves an issue with Alacritty crashing after a resize, due to
the last cached mouse point being out of bounds.
Instead of caching the mouse point, it is now computed on demand to make
sure it can never be invalid.
Fixes #4977.
|
|
Fixes #4319.
|
|
Fixes #4968.
|
|
Fixes #4960.
|
|
This resolves a regression introduced in 96fc9ec where URLs would get
highlighted on mouse hover while mouse mode is active even when the
shift modifier was not held down.
|
|
This patch removes the old url highlighting code and replaces it with a
new implementation making use of hints as sources for finding matches in
the terminal.
|
|
Fixes #3697.
|
|
|
|
This adds some built-in actions for handling hint selections without
having to spawn external applications.
The new actions are `Copy`, `Select` and `Paste`.
|
|
In 3bd5ac221ab3b122962063edd1f4c10f9f2d117f a regression was introduced
which caused the selection of a focused match to invert the cell color
back to its original color. This was due to the removal of the
`is_match` flag on the renderable cell, which was used to make sure a
cell is not marked as part of a match if it is already part of a
selection.
Instead of relying on a flag that is passed through from content.rs, the
application of the cell colors is instead done in the content.rs file
directly. This not only fixes the bug with selecting the focused match,
but also makes the logic a bit more transparent.
Fixes #4934.
|
|
Fixes #4879.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
Previously Alacritty was using two different ways to reference lines in
the terminal. Either a `usize`, or a `Line(usize)`. These indexing
systems both served different purposes, but made it difficult to reason
about logic involving these systems because of its inconsistency.
To resolve this issue, a single new `Line(i32)` type has been
introduced. All existing references to lines and points now rely on
this definition of a line.
The indexing starts at the top of the terminal region with the line 0,
which matches the line 1 used by escape sequences. Each line in the
history becomes increasingly negative and the bottommost line is equal
to the number of visible lines minus one.
Having a system which goes into the negatives allows following the
escape sequence's indexing system closely, while at the same time making
it trivial to implement `Ord` for points.
The Alacritty UI crate is the only place which has a different indexing
system, since rendering and input puts the zero line at the top of the
viewport, rather than the top of the terminal region.
All instances which refer to a number of lines/columns instead of just a
single Line/Column have also been changed to use a `usize` instead. This
way a Line/Column will always refer to a specific place in the grid and
no confusion is created by having a count of lines as a possible index
into the grid storage.
|
|
Fixes #4922.
|
|
|
|
|
|
This fixes a regression introduced in a954e07 which caused the vi mode
cursor to be invisible after starting a search.
This was caused by a discrepancy between the search DFA and search
active state, since a search is not active after it has been confirmed
but the DFAs are still present for highlighting.
|
|
This adds support for hints, which allow opening parts of the visual
buffer with external programs if they match a certain regex.
This is done using a visual overlay triggered on a specified key
binding, which then instructs the user which keys they need to press to
pass the text to the application.
In the future it should be possible to supply some built-in actions for
Copy/Pasting the action and using this to launch text when clicking on
it with the mouse. But the current implementation should already be
useful as-is.
Fixes #2792.
Fixes #2536.
|
|
Since the bug was not present in the 0.7.2 release, there is no need to
add a changelog entry for this fix.
|
|
Fixes #4846.
|
|
Since not all suggested clippy lints by stable clippy are supported on
the MSRV of Alacritty, this commit moves the clippy checks to the MSRV.
Unfortunately this will mean that our lints might be significantly
behind, however it ensures our CI never blocks any code that should be
valid.
Developers themselves of course can still run the latest clippy to
follow the up to date recommendations.
|
|
Commit 530de00 refactored large chunk of Alacritty's internal handling
of renderable cells, cursors, and such. This patch fixes a regression
where a hollow block cursor was drawn for unfocused windows even if the
terminal cursor was hidden.
|
|
This resolves an issue which caused the vi cursor position to be
incorrect when leaving the search with the vi cursor at the far bottom.
Previously this could lead to the vi cursor disappearing completely,
when starting a vi mode search that has a match on the last line while
the original vi mode cursor was right above it.
Fixes #4833.
|
|
This adds documentation stating that Alacritty supports the synchronized
update escape, which was implemented in 9575aed.
Since tmux does check terminfo for this feature, the `Sync` capability
has also been added. Tmux's implementation can be found here:
https://github.com/tmux/tmux/blob/f5b7ebc540fe3db5c3a5fe97d01de44551e76058/tty-features.c#L185
|
|
|
|
This implements support for temporarily freezing the terminal grid to
prevent rendering of incomplete frames.
This can be triggered using the escapes `DCS = 1 s` (start) and
`DCS = 2 s` (end).
The synchronization is implemented by forwarding all received PTY bytes
to a 2 MiB buffer. This should allow updating the entire grid even if it
is fairly dense. Unfortunately this also means that another branch is
necessary in Alacritty's parser which does have a slight performance
impact.
In a previous version the freezing was implemented by caching the
renderable grid state whenever a synchronized update is started. While
this strategy makes it possible to implement this without any
performance impact without synchronized updates, a significant
performance overhead is introduced whenever a synchronized update is
started. Since this can happen thousands of times per frame, it is not a
feasible solution.
While it would be possible to render at most one synchronized update per
frame, it is possible that another synchronized update comes in at any
time and stays active for an extended period. As a result the state
visible before the long synchronization would be the first received
update per frame, not the last, which could lead to the user missing
important information during the long freezing interval.
Fixes #598.
|
|
There's no point in always trying to access the first field of the
intermediates when the only goal is figuring out that there is none.
Matching on all intermediates should make it possible to easily match
multiple intermediates directly using array matchers.
|
|
This resolves an issue where the last match would be selected after
leaving non-vi search, even if further changes to the search regex did
not result in any matches.
Fixes #4831.
|
|
|
|
|
|
This resolves a regression introduced in 530de00 where searching would
cause a deadlock when the viewport is at the bottom of the scrollback
and a match ends in the last cell.
Fixes #4800.
|
|
This fixes a regression introduced in 530de00, where the terminal cursor
would move up when the user scrolled up in the terminal history, rather
than staying in place.
Fixes #4784.
|
|
Since there have a bunch of problems caused by an excessive DPI reported
by XRandr, this limits the maximum DPR on X11 to 10.
These issues would commonly cause problems like long startup times or
crashes, which are hard to troubleshoot for the user. While a limit of
10 might not eliminate all of these issues, it should still make it
possible for Alacritty to start to make troubleshooting simpler.
Fixes #3214.
|
|
This introduces some duplicate dependencies, though they are necessary
to build properly without any warnings.
Fixes #4735.
|