aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-11-10Fix sr.ht clippy jobKirill Chibisov
This commit brings back '--all-targets' parameter for clippy, which was accidentally removed in dae0145.
2020-11-10Fix github actions clippy jobChristian Duerr
2020-11-09Update wayland-rs to 0.28.2Kirill Chibisov
Fixes #4385.
2020-11-07Fix configuration file formattingChristian Duerr
The configuration file, especially the section documenting the different binding actions, had some extremely long lines. All the text is now reformatted to be at most 80 columns wide. The only lines remaining which are beyond 80 columns wide are the configuration bindings, which would significantly suffer from linebreaks and are not plain text.
2020-11-07Spawn new alacritty processes in CWD on macOSNathan Lilienthal
On macOS we can use 'proc_pidinfo' to determine the working directory of the terminal foreground process. Fixes #1979.
2020-11-06Migrate from Travis CI to GitHub ActionsChristian Duerr
This removes all CI builds from travis-ci, due to their recent changes in policy and harsh limitations on builds. With build times over 2 hours, it was a significant hindrance to development. Instead of Travis CI, the CI is now split on Sourcehut and GitHub. Since Sourcehut only supports Linux/BSD, all builds on those operating systems are executed there. The GitHub Actions CI is used to build for Windows/macOS, which are not available on Sourcehut. Since asset deployment for releases requires builds on all platforms, this is also done on GitHub actions. Though the new `upload_asset.sh` script makes sure that migration in the future is fairly simple and we do not tie ourselves to the overly complicated GitHub Actions ecosystem.
2020-11-06Deprecate the WinPTY backendChristian Duerr
2020-11-06Add editorconfig Kirill Chibisov
This commit also purges .gitignore, since the files mentioned in it should be handled by global ignore file. Fixes #4378.
2020-11-05Use dynamic storage for zerowidth charactersChristian Duerr
The zerowidth characters were conventionally stored in a [char; 5]. This creates problems both by limiting the maximum number of zerowidth characters and by increasing the cell size beyond what is necessary even when no zerowidth characters are used. Instead of storing zerowidth characters as a slice, a new CellExtra struct is introduced which can store arbitrary optional cell data that is rarely required. Since this is stored behind an optional pointer (Option<Box<CellExtra>>), the initialization and dropping in the case of no extra data are extremely cheap and the size penalty to cells without this extra data is limited to 8 instead of 20 bytes. The most noticible difference with this PR should be a reduction in memory size of up to at least 30% (1.06G -> 733M, 100k scrollback, 72 lines, 280 columns). Since the zerowidth characters are now stored dynamically, the limit of 5 per cell is also no longer present.
2020-10-30Fix visual bell getting stuckChristian Duerr
This resolves a problem with the visual bell where it would not automatically trigger a redraw itself after the initial frame has been rendered. Since the unit of the visual bell duration is also unclear, it has been clarified.
2020-10-29Fix crash with large negative font offsetChristian Duerr
Fixes #4363.
2020-10-29Error on warnings when running clippyKirill Chibisov
It should simplify tracking of new warnings raised on CI builds and when cross checking. This commit also enables warnings for 'rust_2018_idioms' and 'future_incompatible'.
2020-10-28Fix build failure on macOS without featuresChristian Duerr
Fixes #4353.
2020-10-25Remove rustc_tools_util dependencyChristian Duerr
Since our usage of the rustc_tools_util crate is so trivial, it seems like we should be able to just inline it directly into Alacritty. It's a very well trusted crate, being hosted directly by rust-lang and it does not pull in any other dependencies, but having a dependency for just 6 lines of code seems a bit extreme.
2020-10-24Remove all duplicate dependencies from Linux/BSDChristian Duerr
This bumps andrew and removes the last duplicate dependency ('num-traits') from Alacritty's Linux/BSD dependencies.
2020-10-22Remove unneeded collect during line rect creationMark Lodato
2020-10-22Check viewport size after initial resizeChristian Duerr
Since the 'set_inner_size' call might immediately alter the window size, the query for the window's dimensions should be performed after the resize has been requested.
2020-10-17Add license symlinks for cratesStefano Figura
2020-10-14Update dependenciesKirill Chibisov
Fixes #4194.
2020-10-12Fix incorrect X11 feature checkChristian Duerr
See https://github.com/alacritty/alacritty/commit/721f789b5f98ab5c47e6e817c3c2228636ca0a1a#r43183826.
2020-10-12Make use of glutin wayland/x11 featuresKirill Chibisov
This should allow users that are not using Wayland/X11 to reduce the resulted binary size and compilation times.
2020-10-10Add support for urgency hints CSITaylor Blau
Teach Alacritty to stop setting the window as urgent upon a bell by emulating xterm's 'bellIsUrgent' resource and relevant CSI. When this resource is enabled (with 'CSI ? 1042 h'), a bell event causes the window to be marked as urgent. When the resource is disabled (with 'CSI ? 1042 l'), the window is not marked urgent in the event of a bell. There are two wrinkles worth noting here: - The 'TermMode::URGENCY_HINTS' does _not_ affect the terminal's configured bell command, since we only want to control whether or not the window is marked as urgent, not anything else. - In xterm, the 'bellIsUrgent' resource is _disabled_ by default. Since bouncing the dock icon has been the default in Alacritty on macOS thus far, do not make an effort to change that in this patch. This allows users to emit "\e[?1042l" and disable bouncing the dock icon. Fixes #2950.
2020-10-10Fix feature checking in cross buildsKirill Chibisov
Checking for target os in build.rs doesn't work, since build.rs is running for host, so checking should be done in src. Thus moving 'compile_error!' check from build.rs to main.rs.
2020-10-07Bump glutin to 0.25.0Kirill Chibisov
Fixes #4206. Fixes #4162. Fixes #4017. Fixes #3998. Fixes #3831. Fixes #3782. Fixes #3708. Fixes #2734. Fixes #2714. Fixes #1801.
2020-10-04Fix non-ascii message bar text width calculationAlessandro Menezes
When formatting text for display in the message bar, Alacritty was using the byte length of the text instead of the glyph count. This lead to unnecessary blank space at the end of lines due to overestimation of their length. There also were no extra spaces inserted after fullwidth characters, leading to Alacritty giving them only a single cell of space. In line with the rest of Alacritty's rendering, a wide char spacer whitespace is now inserted in the message bar after glyphs which should occupy two cells. Fixes #4250. Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-09-30Add additional CentOS/RHEL build dependenciesChristian Duerr
Fixes #4271.
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-09-26Fix selection incorrectly expanding when scrolled in historyKirill Chibisov
When doing selection expansion we were checking for wide char flags on a cells from the bottom of the terminal instead of in a current viewport when scrolled up in history, which was leading to expanding more than needed if we had wide chars on the same viewport cell, but in the bottom of the terminal. Fixes #4257.
2020-09-25Fix IME position with fullwidth chars in searchChristian Duerr
2020-09-24Remove unused Linear newtype. (#4248)Nathan Lilienthal
2020-09-24Log new padding and cell size on 'SizeInfo' updateKirill Chibisov
This makes our logging of 'SizeInfo' changes more consistent with the one we're using when creating a new 'Display'.
2020-09-22Add changelog entry for FreeType version bumpChristian Duerr
2020-09-20Fix CLI arguments without config fileChristian Duerr
Since we only applied the CLI arguments as overrides to the configuration file after the file was loaded, all CLI arguments that are stored on the config would be dropped without a configuration file in place. This also makes sure that all configuration file config overrides are still loaded if the configuration file could not be loaded for any reason, since there's no reason why we'd just drop everything in that case.
2020-09-16Update cargo lockfileChristian Duerr
This updates the lockfile to the new format introduced in Rust 1.41.0. Since the lockfile has been completely regenerated, all depedencies were updated.
2020-09-13Improve example for the -o CLI flagNathan Lilienthal
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-09-06Pass existing CLI parameters to SpawnNewInstanceRohan Poojary
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-08-30Update smithay-clipboard to 0.5.2Kirill Chibisov
Fixes #4139. Fixes #4085.
2020-08-30Fix multiline URL highlightingChristian Duerr
Fixes #4182.
2020-08-28Add escape to report text area sizeAyose Cazorla
This implements the escapes `CSI 14 t` and `CSI 18 t` which report the text area size in pixels and characters.
2020-08-25Unify term dimension callsChristian Duerr
Since the `Term` implements the `Dimensions` trait itself, we shouldn't call `term.grid()` to call methods from the `Dimensions` trait. This removes all instances of this that I could find in the code at the moment.
2020-08-22Add CLI parameter to override config optionsChristian Duerr
This uses the facilities added in 3c3e6870dedad56b270f5b65ea57d5a6e46b1de6 to allow overriding individual configuration file options dynamically from the CLI using the --options/-o parameter. Fixes #1258.
2020-08-22Fix config import error handlingChristian Duerr
2020-08-21Add configuration file importsChristian Duerr
This adds the ability for users to have multiple configuration files which all inherit from each other. The order of imports is chronological, branching out to the deepest children first and overriding every field with that of the configuration files that are loaded at a later point in time. Live config reload watches the directories of all configuration files, allowing edits in any of them to update Alacritty immediately. While the imports are live reloaded, a new configuration file watcher will only be spawned once Alacritty is restarted. Since this might cause loops which would be very difficult to detect, a maximum depth is set to limit the recursion possible with nested configuration files. Fixes #779.
2020-08-15Update spec filegrumpey
2020-08-14Add logging for crossfontChristian Duerr
This refactors the logging function to clean things up a little bit and also adds the ability to see log messages for the `crossfont` library.
2020-08-14Fix selection scrolling with message bar visibleChristian Duerr
This resolves an issue with selection scrolling which would cause the selection to wrap to the top of the screen once the cursor enters the padding below the message bar. Fixes #4120.
2020-08-13Use yellow/red from the config for message bar colorsKirill Chibisov
This commit completes the effort to use config colors for message bar content by picking red/yellow from user's colors.normal.{red,yellow} for error/warning messages instead of fixed colors. It also removes alacritty_terminal::term::color::RED and alacritty_terminal::term::color::YELLOW from the alacritty_terminal API, bumping its version to 0.11.0-dev. Fixes #4116.
2020-08-13Use user's background color for render timer textKirill Chibisov
Using the user's background color in pair with red should provide better contrast.
2020-08-12Add support for double underlinesChristian Duerr
This adds support for double underlines using the colon separated escape sequence `CSI 4 : 2 m`. Alacritty will now also always fallback to the normal underline in case any of the other underlines like the undercurl are specified. The escape sequence `CSI 4 : 0 m` can now be used to clear all underlines. Some terminals support `CSI 21 m` for double underline, but since Alacritty already uses that as cancel bold which is a little more consistent, that behavior has not changed. So the colon separated variant must be used.