aboutsummaryrefslogtreecommitdiff
path: root/alacritty_terminal/src/tty/windows
Commit message (Collapse)AuthorAge
* Add alacritty_terminal option to escape pty argsfeeiyu2025-08-02
| | | | | | | | | | | This adds a new `escape_args` option to `tty::Options` on Windows, which can be used to automatically escape all arguments passed to the shell. While useful to automatically make most arguments work on Windows, there are some scenarios where it is not possible for users to properly specify arguments with this option enabled (e.g.: `cmd /c`). An option should always be present to disable this option when used. The implementation is based on the `Command` code in Rust's STD lib.
* Migrate to 2024 editionChristian Duerr2025-07-13
|
* Bump all dependenciesChristian Duerr2024-11-02
| | | | | This patch applies all major and minor version bumps, with the exception of `unicode-width` since it will need to be handled separately for Unicode version 16.
* Make `ConPty` creation fallible张小白2024-08-16
|
* Allow setting terminal env vars via PTY optionsKirill Bulatov2024-03-18
| | | Closes #7778.
* Send exit code events on child process exitKirill Bulatov2024-03-09
| | | | Fixes #7753.
* Expose more process info on WindowsSmall White2024-03-07
|
* Remove `alacritty_config` from alacritty_terminalKirill Chibisov2023-11-10
| | | | | There's no need to force alacritty's user configuration on other users of the crate, thus provide the options actually used by alacritty_terminal itself.
* 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.
* Add support for loading conpty.dllPavel Roskin2023-06-19
| | | | Co-Authored-By: @fredizzimo Co-Authored-By: @grueslayer
* Bump dependenciesPavel Roskin2023-06-11
| | | Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Migrate from winapi to windows-syskillian2022-09-30
|
* 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.
* 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.
* Add parameters to `msg create-window` subcommandKirill Chibisov2021-11-22
| | | | | | | | | | | | | | | Alacritty's `msg create-window` subcommand would previously inherit all the CLI parameters from the original executable. However not only could this lead to unexpected behavior, it also prevents multi-window users from making use of parameters like `-e`, `--working-directory`, or `--hold`. This is solved by adding a JSON-based message format to the IPC socket messages which instructs the Alacritty server on which CLI parameters should be used to create the new window. Fixes #5562. Fixes #5561. Fixes #5560.
* Update rustfmt configurationChristian Duerr2021-10-11
| | | | | | | | | | | | | | | | | In this change I went through all current rustfmt configuration options and expanded our existing configuration with overrides whenever deemed appropriate. The `normalize_doc_attributes` option is still unstable, but seems to work without any issues. Even when passing macros like `include_str!` that is recognized properly and not normalized. So while this wasn't an issue anywhere in the code, it should make sure it never will be. When it comes to imports there are two new major additions. The `imports_granularity` and `group_imports` options. Both mostly just incorporate unwritten rules that have existed in Alacritty for a long time. Unfortunately since `alacritty_terminal` imports in `alacritty` are supposed to be separate blocks, the `group_imports` option cannot be used.
* Unify the grid line indexing typesChristian Duerr2021-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Remove Windows WinPTY backendChristian Duerr2021-01-01
|
* Add support for single line terminalsii412020-09-27
| | | | | | | | | | | | | | | | | This changes the minimum terminal dimensions from 2 lines and 2 columns, to 1 line and 2 columns. This also reworks the `SizeInfo` to store the number of columns and lines and consistently has only the terminal lines/columns stored, instead of including the message bar and search in some places of the Alacritty renderer/input. These new changes also make it easy to properly start the selection scrolling as soon as the mouse is over the message bar, instead of waiting until it is beyond it. Fixes #4207. Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Disable WinPTY with windows-gnu toolchainMateusz Mikuła2020-08-31
| | | Co-authored-by: Christian Duerr <contact@christianduerr.com>
* Bump minimum supported Rust version to 1.43.0Kirill Chibisov2020-07-28
|
* Remove gui dependencies from alacritty_terminalKirill Chibisov2020-07-11
| | | | | | | | 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.
* Remove copyright notice from filesChristian Duerr2020-06-06
| | | | | | | | | | | | | | Keeping the license as part of every file bloats up the files unnecessarily and introduces an additional overhead to the creation of new modules. Since cargo already provides excellent dependency management, most of the code-reuse of Alacritty should occur through Rust's dependency management instead of copying it source. If code is copied partially, copying the license from the main license file should be just as easy as copying from the top of the file and making some adjustments based on where it is used is likely necessary anyways.
* Refactor Shell, Command, and Launcher to share implKirill Chibisov2020-06-05
|
* Add cargo feature for WinPTYDavid Hewitt2020-06-02
|
* Extend style guideline documentationChristian Duerr2020-05-05
|
* Fix inconsistent test module namingChristian Duerr2020-01-28
|
* Remove Windows working directory canonicalizationDavid Hewitt2020-01-15
| | | Fixes #3198.
* Fix crash with invalid working directoryChristian Duerr2020-01-12
|
* Clean up Windows PTY string handlingDavid Hewitt2020-01-02
| | | | | Removes widestring and dunce dependencies, reduces some code duplication and corrects a few typos.
* Remove outdated information from READMEKirill Chibisov2019-12-29
|
* Remove unneeded NamedPipe::connect() callsDavid Hewitt2019-12-22
| | | | In the way the code was set up, these calls would always do nothing and return io::ErrorKind::WouldBlock, so they can be safely removed.
* Default to ConPTY instead of WinPTYDavid Hewitt2019-12-21
|
* Add conpty dynamic loading restrictions docssterlingjensen2019-12-15
|
* Send PTY resize messages through event loopDavid Hewitt2019-12-14
| | | | | | | This allows us to clean up the Arcs on windows, as well as tidy up the code on unix a little too. Fixes #3086.
* Fix deadlock when closing on Windows using ConptyDavid Hewitt2019-12-12
| | | Fixes #3042.
* Remove unnecessary lifetimes from winptysterlingjensen2019-12-05
|
* Fix WinPTY freeze on terminationMaciej Makowski2019-11-16
| | | Fixes #2889.
* Add support for title stack escape sequencesDustin2019-10-14
| | | | | | | | | | | | This commit adds the concept of a "title stack" to the terminal. Some programs (e.g. vim) send control sequences `CSI 22 ; 0` (push title) and `CSI 23 ; 0` (pop title). The title stack is just a history of previous titles. Applications can push the current title onto the stack, and pop it back off (setting the window title in the process). Fixes #2840.
* Update to winit/glutin EventLoop 2.0Christian Duerr2019-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | This takes the latest glutin master to port Alacritty to the EventLoop 2.0 rework. This changes a big part of the event loop handling by pushing the event loop in a separate thread from the renderer and running both in parallel. Fixes #2796. Fixes #2694. Fixes #2643. Fixes #2625. Fixes #2618. Fixes #2601. Fixes #2564. Fixes #2456. Fixes #2438. Fixes #2334. Fixes #2254. Fixes #2217. Fixes #1789. Fixes #1750. Fixes #1125.
* Refactor config parsing filesChristian Duerr2019-05-10
| | | | | | | | This is a large refactor of the config parsing structure, attempting to reduce the size of the file a bit by splitting it up into different modules with more specific purposes. This also fixes #2279.
* Add git hash to version string, and fix crate name (#2397)Nathan Lilienthal2019-05-03
| | | | This moves `cli` out of `alacritty_terminal` and into `alacritty` where it belongs, along with the `clap` dependency.
* Fix spelling mistakesJDTX2019-04-28
|
* Split alacritty into a separate cratesTheodore Dubois2019-04-28
The crate containing the entry point is called alacritty, and the crate containing everything else is called alacritty_terminal.