aboutsummaryrefslogtreecommitdiff
path: root/Cargo.lock
AgeCommit message (Collapse)Author
2022-07-15Fix thin strokes on macOSChris Copeland
Remove the `font.use_thin_strokes` config, which only did anything on macOS and only prior to Big Sur. Instead, we will enable or disable "font smoothing" on macOS based on the `AppleFontSmoothing` user default. These changes let users get the "thin strokes" behavior by setting `AppleFontSmoothing` to 0 with: ```sh $ defaults write -g AppleFontSmoothing -int 0 ``` (Or replace `-g` with `org.alacritty` to apply this setting only to Alacritty.app, rather than the whole system.) Add a `removed` config attribute to show helpful warnings to users who are using config options that don't do anything anymore, and apply this attribute to `font.use_thin_strokes`. Bump `crossfont` to 0.5.0 to pick up the new font smoothing behavior. This release also includes a fix for a crash when trying to load a disabled font. Fixes #4616. Fixes #6108.
2022-06-20Bump dirs to 4.0.0a5ob7r
This is to remove dependencies on multiple versions of dirs crate.
2022-06-18Bump copypasta to 0.8.1Christian Duerr
Fixes #6140.
2022-06-16Bump copypasta to 0.8.0Christian Duerr
This also applies all non-breaking semver updates.
2022-06-16Add value hints for clap file pathsChristian Duerr
This ensures that the generated completions properly suggest file paths for arguments which accept them.
2022-06-08Support dual source blending in GLES2 rendererVasily Khoruzhick
GLES2 has GL_EXT_blend_func_extended extension that enables dual-source blending, so essentially we can reuse fragment shader from GLSL3 renderer and do 1 rendering pass instead of 3 for the text. Co-authored-by: Kirill Chibisov <contact@kchibisov.com> Co-authored-by: Christian Duerr <contact@christianduerr.com>
2022-02-02Add damage tracking and reporting to compatible compositorsKirill Chibisov
This allows compositors to only process damaged (that is, updated) regions of our window buffer, which for larger window sizes (think 4k) should significantly reduce compositing workload under compositors that support/honor it, which is good for performance, battery life and lower latency over remote connections like VNC. On Wayland, clients are expected to always report correct damage, so this makes us a good citizen there. It can also aid remote desktop (waypipe, rdp, vnc, ...) and other types of screencopy by having damage bubble up correctly. Fixes #3186.
2022-01-13Remove time dependencyChristian Duerr
In 7398e9f a regression was introduced which causes Alacritty to crash on startup since wayland has a keyboard repeat rate thread started before our logger is initialized. Since the latest version of time was rather inconvenient to use anyway and there is no nice solution for this issue other than downgrading the `time` version again, the time since startup is now logged instead of the local time. This should still provide all the relevant information, while getting rid of an unnecessary dependency. While it would be possible to also print the delta between log messages, this can be trivially computed so it has been omitted to skip adding another `Mutex` to the `Logger` struct.
2022-01-13Update time crate to 0.3.5James McCoy
Due to unsoundness issues (c.f., time-rs/time#380 and time-rs/time#293), determining the local timezone can only happen while single-threaded. Determine the timezone early in startup and apply the offset to the UTC timestamp before formatting.
2022-01-11Fix use-after-free when formatting Wayland protocol errorKirill Chibisov
2022-01-06Fix macOS IME regressionDavid
Fixes 5669.
2022-01-04Migrate from structopt to clap 3Christian Duerr
2022-01-03Update wayland-client to v0.29.3Kirill Chibisov
This should bring support for latest wayland.xml. It also updates some other dependencies which are used by alacritty. Fixes #5743.
2021-12-27Fix input lag with nvidia driver on WaylandKirill Chibisov
Fixes #5694.
2021-12-26Bump development version to 0.11.0-devChristian Duerr
This is only an update to the development version and does not represent a stable release.
2021-12-11Update dependenciesChristian Duerr
This update includes crossfont 0.3.2, which updates the macOS font fallback behavior. Fixes #3271.
2021-12-03Bump glutin to 0.28.0Kirill Chibisov
Fixes #5603. Fixes #5422. Fixes #5350. Fixes #4105. Co-authored-by: Christian Duerr <contact@christianduerr.com>
2021-11-19Switch to clap-generated completionsChristian Duerr
The current completions required a lot of domain-specific knowledge about each individual shell and their completion functionality. Much of which is sparsely documented. While clap does not generate perfect completions, since parameters like `-e` are missing completions, it does a reasonable job while requiring no work on writing these completions. Since access to `cli.rs` isn't possible from the `build.rs`, these completions aren't always generated on build. Instead a test verifies that there has been no changes to these completions and provides a simple code sample for re-generating them. This should provide a simple solution with minimal overhead.
2021-11-15Update signal-hook to 0.3.10James McCoy
2021-10-23Add multi-window supportChristian Duerr
Previously Alacritty would always initialize only a single terminal emulator window feeding into the winit event loop, however some platforms like macOS expect all windows to be spawned by the same process and this "daemon-mode" can also come with the advantage of increased memory efficiency. The event loop has been restructured to handle all window-specific events only by the event processing context with the associated window id. This makes it possible to add new terminal windows at any time using the WindowContext::new function call. Some preliminary tests have shown that for empty terminals, this reduces the cost of additional terminal emulators from ~100M to ~6M. However at this point the robustness of the daemon against issues with individual terminals has not been refined, making the reliability of this system questionable. New windows can be created either by using the new `CreateNewWindow` action, or with the `alacritty msg create-window` subcommand. The subcommand sends a message to an IPC socket which Alacritty listens on, its location can be found in the `ALACRITTY_SOCKET` environment variable. Fixes #607.
2021-08-18Migrate CLI config to structoptChristian Duerr
While structopt also uses clap under the hood, the configuration through annotations allows for significantly more maintainable and concise CLI definition. This will also make it far easier to have platform-specific options, which is problematic with clap since no individual methods can be removed from its builder. The change in Alacritty's CLI has been kept to a minimum with the only significant changes being the `--version` flag listed before the `-v` flag and the authors all on the same line.
2021-08-01Update crossfont to 0.3.1Christian Duerr
2021-07-18Bump development version to 0.10.0-devChristian Duerr
This is only an update to the development version and does not represent a stable release.
2021-07-14Update dependenciesChristian Duerr
2021-07-10Update mio-anonymous-pipes to 0.2.0David Hewitt
Fixes #5266.
2021-07-08Fix PTY performance regressionsChristian Duerr
The patch 9e7655e introduced some changes which improved rendering with very dense grids, but the automatic benchmarks indicated a slight performance difference in the `dense_cells` benchmark. Caching the terminal lock between iterations rather than always calling `try_lock` resolves that issue. While breaking early in the `WouldBlock` case with `unprocessed != 0` does also help resolve these issues, it shows some more significant fluctuations. Combining both fixes does not help. Additionally on Windows receiving `Ok(0)` from the PTY will also occur instead of a `WouldBlock` error, so handling that fixes freezing on Windows. Fixes #5305.
2021-05-01Update crossfont to 0.3.0Christian Duerr
2021-05-01Bump development version to 0.9.0-devChristian Duerr
This is only an update to the development version and does not represent a stable release.
2021-04-17Update dependenciesChristian Duerr
This includes a bump to VTE resolving an issue with invalid intermediates when transitioning from DCS to ESC sequences. This should however not be noticeable with any existing escape sequences. Fixes #4827.
2021-04-13Add vi/mouse hint highlighting supportChristian Duerr
This patch removes the old url highlighting code and replaces it with a new implementation making use of hints as sources for finding matches in the terminal.
2021-02-27Run clippy on MSRVChristian Duerr
Since not all suggested clippy lints by stable clippy are supported on the MSRV of Alacritty, this commit moves the clippy checks to the MSRV. Unfortunately this will mean that our lints might be significantly behind, however it ensures our CI never blocks any code that should be valid. Developers themselves of course can still run the latest clippy to follow the up to date recommendations.
2021-02-24Bump base64 to 0.13.0Bastien Orivel
2021-02-24Add support for synchronized updatesChristian Duerr
This implements support for temporarily freezing the terminal grid to prevent rendering of incomplete frames. This can be triggered using the escapes `DCS = 1 s` (start) and `DCS = 2 s` (end). The synchronization is implemented by forwarding all received PTY bytes to a 2 MiB buffer. This should allow updating the entire grid even if it is fairly dense. Unfortunately this also means that another branch is necessary in Alacritty's parser which does have a slight performance impact. In a previous version the freezing was implemented by caching the renderable grid state whenever a synchronized update is started. While this strategy makes it possible to implement this without any performance impact without synchronized updates, a significant performance overhead is introduced whenever a synchronized update is started. Since this can happen thousands of times per frame, it is not a feasible solution. While it would be possible to render at most one synchronized update per frame, it is possible that another synchronized update comes in at any time and stays active for an extended period. As a result the state visible before the long synchronization would be the first received update per frame, not the last, which could lead to the user missing important information during the long freezing interval. Fixes #598.
2021-02-13Update dependenciesChristian Duerr
This introduces some duplicate dependencies, though they are necessary to build properly without any warnings. Fixes #4735.
2021-01-24Move renderable cell transformation to alacrittyChristian Duerr
This refactors a large chunk of the alacritty_terminal API to expose all data necessary for rendering uniformly through the `renderable_content` call. This also no longer transforms the cells for rendering by a GUI but instead just reports the content from a terminal emulation perspective. The transformation into renderable cells is now done inside the alacritty crate. Since the terminal itself only ever needs to know about modified color RGB values, the configuration for colors was moved to the alacritty UI code.
2021-01-06Update cargo lockfileArthur Woimbée
Fixes #4664.
2021-01-03Update vte to 0.10.0Christian Duerr
2021-01-01Remove Windows WinPTY backendChristian Duerr
2020-12-31Fix Wayland crash due to fontconfigChristian Duerr
Fixes #4591.
2020-12-23Hide "missing" glyp for zerowidth characterKirill Chibisov
This patch prevents missing zerowidth glyphs from obscuring the rendered glyph of a cell. The missing glyph itself is also consistently loaded and displayed on all platforms. It is initialized once together with the ascii symbols and then written to the atlas only once for every cached missing glyph. Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-12-22Remove terminfo dependencyCaden Haustein
Fixes #4597. Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-12-21Fix artifacts on macOS with transparent windowsChristian Duerr
Due to the way macOS draws shadows for transparent windows, resizing them will lead to text artifacts remaining present after a window has been resized. The `invalidateShadow` call is used whenever the opacity isn't `1.0` to make sure these shadows are cleared before redrawing, so no artifacts remain when resizing transparent windows. Fixes #889.
2020-12-21Replace serde's derive with custom proc macroChristian Duerr
This replaces the existing `Deserialize` derive from serde with a `ConfigDeserialize` derive. The goal of this new proc macro is to allow a more error-friendly deserialization for the Alacritty configuration file without having to manage a lot of boilerplate code inside the configuration modules. The first part of the derive macro is for struct deserialization. This takes structs which have `Default` implemented and will only replace fields which can be successfully deserialized. Otherwise the `log` crate is used for printing errors. Since this deserialization takes the default value from the struct instead of the value, it removes the necessity for creating new types just to implement `Default` on them for deserialization. Additionally, the struct deserialization also checks for `Option` values and makes sure that explicitly specifying `none` as text literal is allowed for all options. The other part of the derive macro is responsible for deserializing enums. While only enums with Unit variants are supported, it will automatically implement a deserializer for these enums which accepts any form of capitalization. Since this custom derive prevents us from using serde's attributes on fields, some of the attributes have been reimplemented for `ConfigDeserialize`. These include `#[config(flatten)]`, `#[config(skip)]` and `#[config(alias = "alias)]`. The flatten attribute is currently limited to at most one per struct. Additionally the `#[config(deprecated = "optional message")]` attribute allows easily defining uniform deprecation messages for fields on structs.
2020-12-20Fix embedded _NET_WM_ICON on X11Christian Duerr
Previously the _NET_WM_ICON would use the .ico which was also used for the Windows icon. This icon used the dimensions 256x256, but the maximum supported image size is 192x192, so a new image with the dimensions 64x64 has been added. Since we know the image format anyways, the `image` dependency could also be easily replaced with `png`, which cuts out a few extra unused dependencies.
2020-12-17Fix crash due to clipboard not being properly released on WaylandKirill Chibisov
2020-12-11Bump glutin to 0.26.0Kirill Chibisov
Fixes #4530. Fixes #4072. Fixes #1927.
2020-11-26Fix DoS caused by excessive CSI parameter valuesChristian Duerr
2020-11-24Fix Cargo.lockKirill Chibisov
During 07cfe8b the regenerated Cargo.lock file was somehow missed.
2020-11-24Add support for '~/' in config importsChristian Duerr
This allows the configuration file imports to start with '~/' and resolve relative to the user's home directory. There is no support for '~user/' or '$HOME/' or any other shell expansion. However since paths relative to the home directory should be sufficient for everything, this provides a very simple solution without any significant drawbacks. Fixes #4157.
2020-11-17Fix wide characters being cut offKirill Chibisov
Fixes #791.