summaryrefslogtreecommitdiff
path: root/alacritty_terminal
AgeCommit message (Collapse)Author
2023-10-11Use openpty-rustix instead of nixKirill Chibisov
Follow upstream libraries and use rustix to reduce the amount of dependencies in the future. Co-authored-by: Christian Duerr <contact@christianduerr.com>
2023-10-09Fix regex patterns allowing for empty stringsChristian Duerr
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.
2023-10-08Fix regex matches ending on multilineChristian Duerr
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.
2023-10-08Fix PTY being closed on creationKirill Chibisov
The PTY got closed because `OwnedFd` automatically closed it. Fixes: 59c63d37 (Update dependencies)
2023-10-08Update dependenciesChristian Duerr
This patch applies all breaking and non-breaking dependency updates and bumps MSRV to 1.70.0.
2023-10-07Port from mio to pollingJohn Nunley
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.
2023-09-26Bump VTE to 0.12.0Kirill Chibisov
Fixes #6845.
2023-09-17Fix regex memory usageChristian Duerr
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.
2023-08-31Fix crash with anchored searchesChristian Duerr
While this does **not** enable the use of anchors (`^`) in user regexes, it does prevent Alacritty from crashing when attempting to do so.
2023-08-27Update regex-automata to v0.3.6Christian Duerr
This seems like a sensible first step before looking into #7097.
2023-07-22Add `terminal` config section to control OSCs Kirill Chibisov
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>
2023-07-18Remove unnecessary mutable referencesPavel Roskin
2023-07-16Mention all the actions in the man pageKirill Chibisov
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.
2023-07-13Unset `XDG_ACTIVATION_TOKEN` in alacritty_terminalKirill Chibisov
This variable is what being used for Wayland's activation stuff.
2023-07-01Add version 0.12.2 to CHANGELOGKirill Chibisov
This is only an update to the development version and does not represent a stable release.
2023-06-26Update wix on the release CIKirill Chibisov
Fixes #6939.
2023-06-19Add support for loading conpty.dllPavel Roskin
Co-Authored-By: @fredizzimo Co-Authored-By: @grueslayer
2023-06-17Fix the crash when shrinking scrolled terminalKirill Chibisov
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.
2023-06-17Add errors for deserializing with unknown fieldsChristian Duerr
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.
2023-06-15Fix `alacritty msg config` toml replacementChristian Duerr
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)
2023-06-12Switch to TOML configuration formatChristian Duerr
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.
2023-06-11Bump dependenciesPavel Roskin
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2023-05-23Switch to VTE's built-in ansi featureAnhad Singh
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2023-05-22Add version 0.12.1 to CHANGELOGKirill Chibisov
2023-05-17Update patch dependenciesKirill Chibisov
2023-05-17Update xdg and dirs crateKirill Chibisov
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.
2023-05-17Update bitflags to 2.2.1Kirill Chibisov
2023-03-24Fix selection rotation on the last lineChristian Duerr
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.
2023-03-19Fix `;` character in URI OSC 8 payloadKirill Chibisov
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.
2023-02-15Bump development version to 0.13.0-devKirill Chibisov
This is only an update to the development version and does not represent a stable release.
2023-02-02Update winit to 0.28Kirill Chibisov
Fixes #6644. Fixes #6615. Fixes #6558. Fixes #6515. Fixes #3187. Fixes #62.
2023-02-02Prefer environment variables over passwdJovan Gerodetti
2023-01-15Preserve last column with erase in line rightChristian Duerr
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.
2022-12-14Fix multi-line bracket selectionChristian Duerr
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.
2022-11-03Update glutin to 0.30.0Kirill Chibisov
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.
2022-10-22Fix startup failure on macOS with dash as /bin/shKirill Chibisov
The dash's exec doesn't have `-a` argument we rely on when running login shell, so use zsh instead. Fixes #6426.
2022-10-12Fix clippy warningsChristian Duerr
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).
2022-09-30Migrate from winapi to windows-syskillian
2022-09-17Fix IPC config overriding previous valuesChristian Duerr
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.
2022-09-03Bump development version to 0.12.0-devChristian Duerr
This is only an update to the development version and does not represent a stable release.
2022-09-01Add IPC config subcommandChristian Duerr
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.
2022-08-10Bump glutin to 0.29.1Kirill Chibisov
Fixes #6239. Fixes #5975. Fixes #5876. Fixes #5767. Fixes #4484. Fixes #3139.
2022-07-29Make grid mutably accessible to librariesMikayla Maki
Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
2022-07-25Fix clippy warningsChris Copeland
2022-07-24Fix inverted condition for cell's extra clearingKirill Chibisov
Fixes #6215.
2022-07-24Register Alacritty shells as tty sessions on macOSChris Copeland
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.
2022-07-20Remove panics from UNIX PTY initializationMikayla Maki
Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
2022-07-20Replace `map().unwrap_or()` with `map_or()`Chris Copeland
Use a `map_or` instead of a `map().unwrap_or()` chain.
2022-07-11Fix hyperlinks not being keyboard actionableKirill Chibisov
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>
2022-07-10Add support for hyperlink escape sequenceKirill Chibisov
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.