aboutsummaryrefslogtreecommitdiff
path: root/alacritty_terminal/src
Commit message (Collapse)AuthorAge
...
* Update dependenciesChristian Duerr2023-10-08
| | | | This patch applies all breaking and non-breaking dependency updates and bumps MSRV to 1.70.0.
* Port from mio to pollingJohn Nunley2023-10-07
| | | | | | | | | 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.
* Fix regex memory usageChristian Duerr2023-09-17
| | | | | | | | | | | | | | | | | | 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.
* Fix crash with anchored searchesChristian Duerr2023-08-31
| | | | While this does **not** enable the use of anchors (`^`) in user regexes, it does prevent Alacritty from crashing when attempting to do so.
* Update regex-automata to v0.3.6Christian Duerr2023-08-27
| | | This seems like a sensible first step before looking into #7097.
* Add `terminal` config section to control OSCs Kirill Chibisov2023-07-22
| | | | | | | | | | | | | | 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>
* Remove unnecessary mutable referencesPavel Roskin2023-07-18
|
* Mention all the actions in the man pageKirill Chibisov2023-07-16
| | | | | | | | | | 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.
* Unset `XDG_ACTIVATION_TOKEN` in alacritty_terminalKirill Chibisov2023-07-13
| | | This variable is what being used for Wayland's activation stuff.
* Update wix on the release CIKirill Chibisov2023-06-26
| | | Fixes #6939.
* Add support for loading conpty.dllPavel Roskin2023-06-19
| | | | Co-Authored-By: @fredizzimo Co-Authored-By: @grueslayer
* Fix the crash when shrinking scrolled terminalKirill Chibisov2023-06-17
| | | | | | | 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.
* Add errors for deserializing with unknown fieldsChristian Duerr2023-06-17
| | | | | | | | | 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.
* Fix `alacritty msg config` toml replacementChristian Duerr2023-06-15
| | | | | | | | | | 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)
* Switch to TOML configuration formatChristian Duerr2023-06-12
| | | | | | | | | | | | | | | 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.
* Bump dependenciesPavel Roskin2023-06-11
| | | Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Switch to VTE's built-in ansi featureAnhad Singh2023-05-23
| | | Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Update xdg and dirs crateKirill Chibisov2023-05-17
| | | | | | 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.
* Update bitflags to 2.2.1Kirill Chibisov2023-05-17
|
* Fix selection rotation on the last lineChristian Duerr2023-03-24
| | | | | | | | | | | | | 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.
* Fix `;` character in URI OSC 8 payloadKirill Chibisov2023-03-19
| | | | | 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.
* Update winit to 0.28Kirill Chibisov2023-02-02
| | | | | | | | Fixes #6644. Fixes #6615. Fixes #6558. Fixes #6515. Fixes #3187. Fixes #62.
* Prefer environment variables over passwdJovan Gerodetti2023-02-02
|
* Preserve last column with erase in line rightChristian Duerr2023-01-15
| | | | | | | | | | 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.
* Fix multi-line bracket selectionChristian Duerr2022-12-14
| | | | | | | 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.
* Fix startup failure on macOS with dash as /bin/shKirill Chibisov2022-10-22
| | | | | | The dash's exec doesn't have `-a` argument we rely on when running login shell, so use zsh instead. Fixes #6426.
* Fix clippy warningsChristian Duerr2022-10-12
| | | | | 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).
* Migrate from winapi to windows-syskillian2022-09-30
|
* Fix IPC config overriding previous valuesChristian Duerr2022-09-17
| | | | | | | | | | | | | | 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.
* Add IPC config subcommandChristian Duerr2022-09-01
| | | | | | | | | | | | | | | | | | | | 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.
* Make grid mutably accessible to librariesMikayla Maki2022-07-29
| | | Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
* Fix clippy warningsChris Copeland2022-07-25
|
* Fix inverted condition for cell's extra clearingKirill Chibisov2022-07-24
| | | Fixes #6215.
* Register Alacritty shells as tty sessions on macOSChris Copeland2022-07-24
| | | | | | | | | | | | | | | | | | 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.
* Remove panics from UNIX PTY initializationMikayla Maki2022-07-20
| | | Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
* Replace `map().unwrap_or()` with `map_or()`Chris Copeland2022-07-20
| | | Use a `map_or` instead of a `map().unwrap_or()` chain.
* Fix hyperlinks not being keyboard actionableKirill Chibisov2022-07-11
| | | | | | 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>
* Add support for hyperlink escape sequenceKirill Chibisov2022-07-10
| | | | | | | 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.
* Add `cursor.blink_timeout` config optionKirill Chibisov2022-07-01
| | | | | | This option should prevent extensive power usage due to cursor blinking when there's no user activity being performed. Fixes #5992.
* Use `MaybeUninit<usize>` instead of `usize` in `Storage::swap`nils2022-06-15
| | | | `Row` contains pointer bytes, which are not valid for `usize`, therefore `MaybeUninit<usize>` should be used instead to do an untyped copy.
* Fix flickering during resize on WaylandKirill Chibisov2022-06-09
| | | | | This also fixes an issue of windows not being rendered while resizing. Fixes #6069.
* Fix old vi cursor not being properly damagedKirill Chibisov2022-06-07
| | | Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Fix a few minor clippy lintsYuri Astrakhan2022-06-02
|
* Fix DEC Special Character Set (Line drawing)André Kugland2022-06-01
| | | | | | | | This patch resolves some mapping issues with the line drawing character set where characters like linefeed were incorrectly mapped to their proper character representation rather than the codepoint of their identification glpyh. Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Fix Vi cursor not being damaged on scrollKirill Chibisov2022-05-26
| | | | | There's no need to damage intermediate Vi mode cursor points, since it can't change the terminal content meaning that only the previous and current vi cursor's viewport points matter to damage it properly.
* Enable damage tracking only on WaylandKirill Chibisov2022-05-20
| | | | | | | | | | Other platforms don't have such concepts in general or have them via different interfaces not related to EGL. This commit also resolves some minor clippy issues. Fixes #6051. Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Extract `SizeInfo` from alacritty_terminalKirill Chibisov2022-04-06
| | | | | The `SizeInfo` is a SizeInfo used for rendering, which contains information about padding, and such, however all the terminal need is number of visible lines and columns.
* Fix OSC 4 color response formatChristian Duerr2022-03-31
| | | | | | | | | | The commit 60ef17e introduced support for the color query response escape for OSC 4, however it did omit the `4;` prefix and started the OSC with just the color index. This patch fixes this bug and correctly responds to queries with full OSC 4 format, including prefix plus color index. Fixes #5981.
* Add colored underline supportKirill Chibisov2022-03-16
| | | | | | | | | This commit adds support for colored underline and refines the dynamic extra storage. The extra storage now is using `Arc` making cloning it way faster compared to `Box` approach which scales really well when it comes to cloning in `Term::write_at_cursor`, since cloning `Arc` is constant time. Fixes #4142.
* Fix crash when searching during resetChristian Duerr2022-03-10
| | | | | | | | | | | | | | | | | | This fixes a crash which occurs when the terminal is reset while searching, due to the vi mode cursor being outside of the visible area. This also fixes an issue where the search state reset would incorrectly clamp the vi mode cursor to the grid, rather than the absolute viewport position. While this fix does resolve all crashes when searching while running `cat /dev/urandom`, it does raise the question if manually clamping the vi mode cursor in every location where it is modified is the right choice. A follow-up to provide a safer API which guarantees correct modification of the vi mode cursor location is probably a good idea. Fixes #5942.