Age | Commit message (Collapse) | Author |
|
Follow upstream libraries and use rustix to reduce the amount of
dependencies in the future.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
This patch changes the mode we search for patterns which allow an empty
string, by anchoring all searches. As a result we will match the longest
possible match when multiple patterns are present (like `;*|rust`),
instead of using the leftmost pattern only.
This is only possible with empty matches since our parser is reset on
every byte anyway, so anchoring the search makes no difference.
Fixes #7276.
|
|
This fixes an issue where the reverse search for the regex start would
truncate a character when ending on a newline, since it was omitting the
EOI check in that case.
This also fixes a separate issue which caused regexes which capture
empty strings (e.g.: `.*`) to always report a match.
This is a regression introduced in 73276b6.
|
|
The PTY got closed because `OwnedFd` automatically closed it.
Fixes: 59c63d37 (Update dependencies)
|
|
This patch applies all breaking and non-breaking dependency updates
and bumps MSRV to 1.70.0.
|
|
This patch replaces the mio crate with the polling. Now that
smol-rs/polling#96 has been merged, we should be at full feature parity
with mio v0.6 now.
Fixes #7104.
Fixes #6486.
|
|
Fixes #6845.
|
|
This fixes an issue where regexes with a large number of possible states
would consume excessive memory, since the entire DFA was compiled ahead
of time.
To solve this, the DFA is now built at runtime using `regex-automata`'s
hybrid DFA.
There are however still some checks performed ahead of time, causing
errors with obscenely large regexes (`[0-9A-Za-z]{999999999}`), which
shouldn't cause any issues.
A regex which is large, but not large enough to fail the NFA
construction (like `[0-9A-Za-z]{999999}`) will cause a long search of
the entire grid, but will complete and show the match.
Closes #7097.
|
|
While this does **not** enable the use of anchors (`^`) in user regexes,
it does prevent Alacritty from crashing when attempting to do so.
|
|
This seems like a sensible first step before looking into #7097.
|
|
Some environments demand certain OSC sequences to be disabled or
some escape sequence could require handling which is out of scope
of alacritty, but could be done by external script (OSC 777).
Added section for now just handles the `OSC 52` sequence and changes
its default to be `OnlyCopy`, which is handy for remote copy, but
`Paste` is redundant because normal `Paste` hotkey could be used as
well.
Fixes #3386.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
|
|
A lot of actions were left without a notice, so the only way to figure
out some of them was to browse source code. An example of such
actions were `Maximize` and `Minimize`, since we don't have a binding
for them, so they were left even in alacritty-bindings(5).
Explicitly list all the bindings we have. The search bindings were
also not accurately restricted, since we allow them to be executed
inside regardless of mode.
|
|
This variable is what being used for Wayland's activation stuff.
|
|
This is only an update to the development version and does not represent
a stable release.
|
|
Fixes #6939.
|
|
Co-Authored-By: @fredizzimo
Co-Authored-By: @grueslayer
|
|
display_offset was adjusted unconditionally, thus it could go
beyound the history limits, so clamp it to history like we do
in grow_colums.
Fixes #6862.
|
|
Currently there are still some places where `Deserialize` is used rather
than `ConfigDeserialize`, which means that the built-in warning for
unused fields is not emitted automatically.
To ensure users don't have invalid configurations, the
`#[serde(deny_unknown_fields)]` annotation has been added to these
structs, making it a hard error when an unknown field is present.
|
|
This fixes a regression introduced in bd49067 which broke the override
of configuration file variables using `alacritty msg config`.
To fix this the `replace` functionality was rewritten to behave more
like the `serde_utils::merge` where entire values are inserted into the
existing structure rather than separating the keys from the values.
Fixes: bd49067 (Switch to TOML configuration format)
|
|
This switches Alacritty's default configuration format from yaml to
toml. While yaml is still supported, it is done by converting it to toml
and should be removed entirely in the future.
All existing features were persisted based on my testing. Behavior
should not change much, though `--option` might have slightly different
behavior since the entire line is not interpreted as one line of toml.
A new `alacritty migrate` subcommand has been added which allows
automatic migration from yaml to toml. This also could be used as a
facility to automatically fix configuration file changes in the future.
Closes #6592.
|
|
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
|
|
|
|
The recent version on xdg crate moved to home crate which is used
by cargo. Thus to query for home directory we can use the home
dependency instead which is smaller.
|
|
|
|
This fixes an issue with terminal resizes when the selection is on the
last line. Alacritty would fail to rotate lines and keep the selection
in the same line index whenever the terminal line count was grown or
shrunk.
This issue occurred due to the range passed to the selection's rotate
function still being based on the old terminal size, which caused the
initial or target state of the rotation to be outside of the terminal
bounds.
Closes #6698.
|
|
The special character `;` can be not URL-encoded, thus it'll add
extra parameter in the payload. Handle it joining extra parameters
with the `;` as a separator.
|
|
This is only an update to the development version and does not represent
a stable release.
|
|
Fixes #6644.
Fixes #6615.
Fixes #6558.
Fixes #6515.
Fixes #3187.
Fixes #62.
|
|
|
|
When the erase in line escape sequence with a parameter of 0 (right) is
passed while the wrapline flag is already set, it will no longer clear
the last column and instead ignore the operation.
The behavior of `\e[1K` and `\e[2K` is unchanged and both will clear the
entire first line without clearing the wrapline flag.
Closes #6159.
|
|
This fixes a bug where semantic selection for bracket characters wasn't
working properly over multiple lines since start and end of the
selection were swapped.
Closes #6567.
|
|
The glutin 0.30.0 update decouples glutin from winit which
provides us with basis for a multithreaded renderer. This
also improves robustness of our configuration picking,
context creation, and surface handling.
As an example we're now able to start on systems without a vsync,
we don't try to build lots of contexts to check if some config works,
and so on.
That also brings us possibility to handle context losses, but that's
a future work.
Fixes #1268.
|
|
The dash's exec doesn't have `-a` argument we rely on when running
login shell, so use zsh instead.
Fixes #6426.
|
|
This patch applies all clippy lints currently present on the latest
clippy master than are compatible with our oldstable clippy (only
exception is the `_else(||` stuff).
|
|
|
|
Before this patch whenever changing the IPC configuration, all previous
configuration options would be discarded. This was the case even when
the new option was invalid.
This patch ensures that the IPC config is only ever cleared when the
`--reset` flag is passed. Invalid IPC config options are logged and
discarded.
Additionally whenever a new IPC config message is sent, all previous IPC
error messages are cleared.
Closes #6330.
|
|
This is only an update to the development version and does not represent
a stable release.
|
|
This patch adds a new mechanism for changing configuration options
without editing the configuration file, by sending options to running
instances through `alacritty msg`.
Each window will load Alacritty's configuration file by default and then
accept IPC messages for config updates using the `alacritty msg config`
subcommand. By default all windows will be updated, individual windows
can be addressed using `alacritty msg config --window-id
"$ALACRITTY_WINDOW_ID"`.
Each option will replace the config's current value and cannot be reset
until Alacritty is restarted or the option is overwritten with a new
value.
Configuration options are passed in the format `field.subfield=value`,
where `value` is interpreted as yaml.
Closes #472.
|
|
Fixes #6239.
Fixes #5975.
Fixes #5876.
Fixes #5767.
Fixes #4484.
Fixes #3139.
|
|
Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
|
|
|
|
Fixes #6215.
|
|
Unless the `shell` config is specified, launch the user's shell with:
```sh
login -flp $USER /bin/sh -c "exec -a -shell /path/to/shell"
```
On macOS, just running a shell prefixed by `-` is not sufficient to be
registered as a login session for things like `w` and `logname`.
However, using the `login` command changes the directory to `$HOME`
before running the program by default, which is not desired. The `-l`
flag disables this behavior, but also skips prepending `-` to the
executed program, so shells will not run as login shells. Instead we
just do this part ourselves with `exec -a`. The result is login shells
that run in the intended directory and are registered as tty sessions.
Fixes #3420.
|
|
Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
|
|
Use a `map_or` instead of a `map().unwrap_or()` chain.
|
|
This fixes a typo in 694a52b which was filtering all hyperlinks, except
only duplicated ones when opening them with keyboard.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
|
|
This commit adds support for hyperlink escape sequence
`OSC 8 ; params ; URI ST`. The configuration option responsible for
those is `hints.enabled.hyperlinks`.
Fixes #922.
|