summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-08-01Fix configuration file documentationv0.5.0Joshua Steele
2020-08-01Fix crates.io publishing restrictionsChristian Duerr
This works around the problem that crates pushed to crates.io cannot reference files outside of their crate directory.
2020-08-01Add 0.5.0 announcement blog to readmeKirill Chibisov
This is only an update to the readme and does not represent a stable release.
2020-07-31Bump version to 0.5.0v0.5.0alacritty_terminal_v0.10.0Christian Duerr
2020-07-31Fix 0.5.0 changelogChristian Duerr
2020-07-27Bump version to 0.5.0-rc4v0.5.0-rc4Christian Duerr
2020-07-27Fix scrolling with selection expansionChristian Duerr
Fixes #4040.
2020-07-25Bump version to 0.5.0-rc3v0.5.0-rc3Christian Duerr
2020-07-25Fix viless search originChristian Duerr
When searching without vi mode the display is no longer reset when the user hasn't jumped between matches at all. Since there's no reason to confirm the search, we shouldn't just reset the viewport without a good reason. The search is now also restarted completely when the entire search regex is deleted. While this doesn't reset to the original viewport position if the user has jumped between matches, it should make things feel a little less arbitrary. Fixes #4020.
2020-07-25Improve selection expansion changelog entryChristian Duerr
2020-07-19Bump version to 0.5.0-rc2v0.5.0-rc2Christian Duerr
2020-07-16Bump version to 0.5.0-rc1v0.5.0-rc1Christian Duerr
2020-07-15Add support for searching without vi modeChristian Duerr
This implements search without vi mode by using the selection to track the active search match and advancing it on user input. The keys to go to the next or previous match are not configurable and are bound to enter and shift enter based on Firefox's behavior. Fixes #3937.
2020-07-15Fix docs about multiple simultaneous keybindingsChristian Duerr
2020-07-15Fix padding change not being applied immediatelyKirill Chibisov
2020-07-15Fix cursor reflowChristian Duerr
This resolves three different issues with cursor reflow. The first issue was that the cursor could reach the top of the screen during reflow, since content was pushed into history despite viewport space being available. Since the cursor cannot leave the viewport, this would insert new space between the cursor and content (see #3968). Another issue was that the wrapline flag was not set correctly with content being available behind the cursor. Since the cursor is not necessarily at the end of the line, it is possible that the cursor should reflow to the next line instead of staying on the current one and setting the wrapline flag. The last bug fixed in this is about reflow with content available behind the cursor. Since that might have en effect on new lines being inserted and deleted below the cursor, the cursor needs to be reflown based on it. Fixes #3968.
2020-07-14Fix movement within search matchesChristian Duerr
Previously the SearchEndNext and SearchEndPrevious match acted exactly like the SearchNext and SearchPrevious action, however this is not how vim works. In vim, regardless of direction the `gN` action always jumps to the next match start to the left of the cursor, while the `gn` action always jumps to the next search end to the right of the cursor. While both approaches might seem reasonable at first, vim's approach has a significant advantage w.r.t. predictability and automation of the movement. By always knowing which direction the motion goes to, this allows for mappings that reliably navigate inside the current match regardless of the global search direction. So deleting until the end of the match would always be `dgn` for example, regardless in which direction the user has jumped to it. Fixes #3953.
2020-07-14Fallback to SHELL instead of passwd if presentMattbazooka
Instead of just always falling back to the shell specified in the passwd file when no config or cli shell was specified, Alacritty will not first look at the `$SHELL` environment variable. If this is unset, it will still read the passwd file. Since macOS is a bit peculiar and does not set the `$SHELL` environment variable by default, it is set manually to the shell used by Alacritty while any existing `$SHELL` variables are ignored. This matches the behavior of iTerm and Terminal.app. Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-07-14Fix freetype 26.6 format conversioncynecx
This resolves a rounding issue when converting to the 26.6 format used by freetype for character sizes. This rounding behavior is taken from cairo: https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/src/cairo-ft-font.c#L900-903 There are various different implementations of the F26Dot6 conversion online, but the rounding that cairo does seems to be the most common. Since cairo is very commonly used, it should produce good results compared with the rest of Linux text rendering. Fixes #2780. Co-authored-by: Christian Duerr <contact@christianduerr.com> Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
2020-07-14Fix crash on cursor resizeChristian Duerr
Fixes #3960.
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-07-11Remove alacritty.yml mentions from font crate errorsKirill Chibisov
2020-07-11Fix crash when configured font is missingChristian Duerr
Fixes #3942.
2020-07-10Add readline bindings to searchChristian Duerr
Fixes #3938.
2020-07-10Fix clipboard not working on KDE WaylandKirill Chibisov
Fixes #3920.
2020-07-10Add option to run command on bell Kirill Chibisov
Fixes #1528.
2020-07-10Set default FreeType propertiesKirill Chibisov
In addition it also starts respecting Fontconfig's `autohint` and `hinting` options. Fixes #3534.
2020-07-10Bump urlocator and unicode-widthChristian Duerr
2020-07-10Fail compilation if Fontconfig is not installed on Linux/BSDKirill Chibisov
Statically linking Fontconfig was leading to slow startup and various errors, so forcing the use of system's library.
2020-07-09Add regex scrollback buffer searchChristian Duerr
This adds a new regex search which allows searching the entire scrollback and jumping between matches using the vi mode. All visible matches should be highlighted unless their lines are excessively long. This should help with performance since highlighting is done during render time. Fixes #1017.
2020-07-09Fix cursor reflowChristian Duerr
To make sure that output is consistent even while resizing the window, the cursor will now reflow with the content whenever the window size is changed. Since the saved cursor is more likely to represent a position in the grid rather than a reference to the content below it and handling of resize before jumping back to it is more likely than with the primary cursor, no reflow is performed for the saved cursor The primary cursor is unfortunately always reflowed automatically by shells like zsh, which has always caused problems like duplicating parts of the prompt and stretching it out "infinitely". Since the cursor is now reflowed appropriately the duplication of the shell prompt should be reduced, however it is possible that the shell moves the cursor up one line after it has already been reflowed, which will cause a line of history to be deleted if there is no duplicated prompt line above the reflowed prompt. Since this behavior is identical in VTE and Kitty, no attempt is made to work around it in this patch. Fixes #3584.
2020-07-06Fix saved cursor handlingChristian Duerr
This resolves several problems with handling of the saved cursor when switching between primary and alternate screen. Additionally ref-tests are also added for all common interactions to make sure the behavior does not regress. The behavior is based on XTerm's behavior except for interaction with `reset`. XTerm does not reset the alternate screen's saved cursor on `reset`, but VTE does. Since a `reset` should reset as much as possible, Alacritty copies VTE here instead of XTerm.
2020-07-06Preserve linewrap flag across alt screen switchesChristian Duerr
While neither VTE, URxvt nor Kitty handle this, preserving the linewrap flag across alternate screen switches seems like the correct thing to do. XTerm also does handle this correctly, which indicates that it is a bug and not a feature.
2020-07-04Fix compilation on 32bit targetsKirill Chibisov
Fixes #3915.
2020-07-04Add auxiliary files to macOS Application bundleAndrew Zhou
Fixes #2653.
2020-07-04Update --help for class option to match manpageJeff Windsor
2020-07-03Document supported escape sequencesChristian Duerr
Fixes #3440.
2020-07-01Fix reflow of empty wrapped cursor lineChristian Duerr
This bug was caused by trying to grow the terminal while the cursor line was wrapped but entirely empty. Resizing the terminal now accounts for the position of the deleted line and moves the cursor up only when the line deleted was above it. The deletion of the line was caused by the shell redrawing itself whenever the cursor is moved. Fixes #3583.
2020-06-29Fix foreground dimming with truecolor textCarlo Abelli
Fixes #3766.
2020-06-28Rename alt_grid to inactive_gridChristian Duerr
Since the alt_grid is not always the alternate screen buffer, the name inactive_grid should fit much better. Fixes #3504.
2020-06-26Clear selection on clear line/screen escapesKirill Chibisov
Selection is now cleared if clear line or clear screen escape sequences are clearing content behind it.
2020-06-25Fix scroll down escape pulling lines from historyChristian Duerr
This works around a bug where the optimized version of the `Grid::scroll_down` function would just rotate the entire grid down if the scrolling region starts at the top of the screen, even if there is history available. Since rotations of scrolling regions should not affect the scrollback history, this optimized version is now only called when the max scrollback size is 0, making it impossible for the grid to have any history while it is used. Since the main usecase of this is the alternate screen buffer, which never has any history, the performance should not be affected negatively by this change. Fixes #3582.
2020-06-24Fix live right-click expansionChristian Duerr
While the commit 43c0ad6ea9d2467ccf867a310c4f1e30f5b627c6 introduced right click as a way to expand the active selection, it did not allow for holding right click to continuously do so. This commit remedies that problem by allowing live expansion with while holding the right mouse button.
2020-06-23Remove checks on nightly from CIKirill Chibisov
2020-06-23Run rustfmt on sr.htKirill Chibisov
This should provide more clear feedback whether rustfmt job is failed or not.
2020-06-23Add selection expansionChristian Duerr
This allows for expanding the selection using the right mouse button. The new selection type depends on the number of clicks and applies to both sides of the selection. Fixes #1554.
2020-06-18Add automatic scrolling during selectionChristian Duerr
This adds a new `Scheduler` which allows for staging events to be processed at a later time. If there is a selection active and the mouse is above or below the window, the viewport will now scroll torwards the direction of the mouse. The amount of lines scrolled depends on the distance of the mouse to the boundaries used for selection scrolling. To make it possible to scroll while in fullscreen, the selection scrolling area includes the padding of the window and is at least 5 pixels high in case there is not enough padding present.
2020-06-15Use compile_error! instead of panic! in build.rsKirill Chibisov
The compile_error! failure is way more readable and noticeable than panic!.
2020-06-15Rework default config binding replacementKirill Chibisov
This reworks the criteria necessary for default bindings to be overwritten by custom user bindings. It should provide a better heuristic which accounts for the possibility that notmodes are added which prevent a conflict between the bindings, so the default isn't unnecessarily removed. It is still possible to define a new binding that intersects a default binding without the default getting removed, if the user explicitly specifies a mode that doesn't include the default binding's mode. This is based on the assumption that users explicitly specifying a new mode are trying to make a mode-specific addition and are capable of removing the default when desired. This helps with old modes still being present in user's config files, since a lot of new config options just have the additional ~Vi mode set. Fixes #3476.
2020-06-15Improve documentation for install on macOS via brew caskSteve Dondley