summaryrefslogtreecommitdiff
path: root/alacritty_terminal/src/tty/windows
AgeCommit message (Collapse)Author
2024-03-18Allow setting terminal env vars via PTY optionsKirill Bulatov
Closes #7778.
2024-03-09Send exit code events on child process exitKirill Bulatov
Fixes #7753.
2024-03-07Expose more process info on WindowsSmall White
2023-11-10Remove `alacritty_config` from alacritty_terminalKirill Chibisov
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.
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-06-19Add support for loading conpty.dllPavel Roskin
Co-Authored-By: @fredizzimo Co-Authored-By: @grueslayer
2023-06-11Bump dependenciesPavel Roskin
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2022-09-30Migrate from winapi to windows-syskillian
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-04-06Extract `SizeInfo` from alacritty_terminalKirill Chibisov
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.
2021-11-22Add parameters to `msg create-window` subcommandKirill Chibisov
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.
2021-10-11Update rustfmt configurationChristian Duerr
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.
2021-03-30Unify the grid line indexing typesChristian Duerr
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.
2021-01-01Remove Windows WinPTY backendChristian Duerr
2020-09-27Add support for single line terminalsii41
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>
2020-08-31Disable WinPTY with windows-gnu toolchainMateusz MikuĊ‚a
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-07-28Bump minimum supported Rust version to 1.43.0Kirill Chibisov
2020-07-11Remove gui dependencies from alacritty_terminalKirill Chibisov
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.
2020-06-06Remove copyright notice from filesChristian Duerr
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.
2020-06-05Refactor Shell, Command, and Launcher to share implKirill Chibisov
2020-06-02Add cargo feature for WinPTYDavid Hewitt
2020-05-05Extend style guideline documentationChristian Duerr
2020-01-28Fix inconsistent test module namingChristian Duerr
2020-01-15Remove Windows working directory canonicalizationDavid Hewitt
Fixes #3198.
2020-01-12Fix crash with invalid working directoryChristian Duerr
2020-01-02Clean up Windows PTY string handlingDavid Hewitt
Removes widestring and dunce dependencies, reduces some code duplication and corrects a few typos.
2019-12-29Remove outdated information from READMEKirill Chibisov
2019-12-22Remove unneeded NamedPipe::connect() callsDavid Hewitt
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.
2019-12-21Default to ConPTY instead of WinPTYDavid Hewitt
2019-12-15Add conpty dynamic loading restrictions docssterlingjensen
2019-12-14Send PTY resize messages through event loopDavid Hewitt
This allows us to clean up the Arcs on windows, as well as tidy up the code on unix a little too. Fixes #3086.
2019-12-12Fix deadlock when closing on Windows using ConptyDavid Hewitt
Fixes #3042.
2019-12-05Remove unnecessary lifetimes from winptysterlingjensen
2019-11-16Fix WinPTY freeze on terminationMaciej Makowski
Fixes #2889.
2019-10-14Add support for title stack escape sequencesDustin
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.
2019-10-05Update to winit/glutin EventLoop 2.0Christian Duerr
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.
2019-05-10Refactor config parsing filesChristian Duerr
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.
2019-05-03Add git hash to version string, and fix crate name (#2397)Nathan Lilienthal
This moves `cli` out of `alacritty_terminal` and into `alacritty` where it belongs, along with the `clap` dependency.
2019-04-28Fix spelling mistakesJDTX
2019-04-28Split alacritty into a separate cratesTheodore Dubois
The crate containing the entry point is called alacritty, and the crate containing everything else is called alacritty_terminal.