aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Fix scrollback live reloadingChristian Duerr2019-03-02
| | | | | | | | | | | | | This fixes two issues with live reloading the `scrolling.history` property. It is now possible to increase the scrollback history without restarting Alacritty. When decreasing the scrollback history while scrolled beyond the new history limit, Alacritty will reset the viewport position to the new limit instead of crashing. This fixes #2147.
* Fix selection copying with mouse outside of windowChristian Duerr2019-02-21
| | | | | | | | | There was an issue caused by 35efb4619c4b7a77b3c30de763856bc4441e236e which would lead to the current selection not getting copied to the clipboard if the mouse was released outside of the window. Instead of aborting any press/release actions when the cursor is not inside of Alacritty, the handling is now delayed until actual usage.
* Fix panic on exit with ConPTYDavid Hewitt2019-02-21
| | | | | | | | Even though the `ClosePseudoConsole` API does not have a return value, it was incorrectly queried by the `Drop` implementation for the ConPTY, leading to a panic on exit. The definition of this call has been updated to match the actual function signatures, which resolve this problem.
* Add early return to `received_char`Tanuj2019-02-16
|
* Remove incorrect doc commentTanuj2019-02-16
|
* Fix font spacing errorChristian Duerr2019-02-11
| | | | Fixes #2098.
* Fix dimensions CLI/manpage docsChristian Duerr2019-02-10
|
* Change font size only when new metrics are validMartin Sucha2019-02-09
| | | | | | This prevents cell_width or cell_height being zero. Fixes #1693
* Remove selections when clearing screen partiallyChristian Duerr2019-02-08
| | | | | | | | | | | | | | Automatically remove all selections when part of the screen is cleared. This fixes issues in applications like `less -S` where a selection would stay around after scrolling horizontally. XTerm and URxvt both choose to always remove the selection, even if it's outside of the cleared area, however VTE only clears the selection if any part of it is inside the cleared area. To keep things simple, Alacritty has adopted the behavior of XTerm and URxvt to always clear selections. This fixes #1644.
* Change shift+pgup/pgdown to scroll historyChristian Duerr2019-02-08
| | | | | | | | | | | | | | | | | The default shift+pgup/pgdown buttons were sending the escape sequences specified by the official standard, however most terminal emulators like XTerm, URxvt and VTE make an exception for this special case and instead scroll the native history buffer. Both XTerm and URxvt do never send the escapes for Shift+PgUp/PgDown, however VTE does send them in the alternate screen. Since Alacritty already supports keybindings based on terminal mode and the binding to scroll the history is useless when in the alternate screen buffer, Alacritty is now following VTEs behavior here, allowing applications in the alt screen (like vim) to handle this escape. Fixes #1989.
* Dynamically resize terminal for errors/warningsChristian Duerr2019-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The warning and error messages now don't overwrite other terminal content anymore but instead resize the terminal to make sure that text can always be read. Instead of just showing that there is a new error and pointing to the log, errors will now be displayed fully in multiple lines of text, assuming that there is enough space left in the terminal. Explicit mouse click handling has also been added to the message bar, which made it possible to add a simple `close` button in the form of `[X]`. Alacritty's log file location is now stored in the `$ALACRITTY_LOG` environment variable which the shell inherits automatically. Previously there were some issues with the log file only being deleted when certain methods for closing Alacritty were used (like typing `exit`). This has been reworked and now Ctrl+D, exit and signals should all work properly. Before the config is reloaded, all current messages are now dropped. This should help with multiple terminals all getting clogged up at the same time when the config is broken. When one message is removed, all other duplicate messages are automatically removed too.
* Fix unclickable URLs with scrolled viewportChristian Duerr2019-02-07
| | | | | | | | | | | Since scrolling the terminal moves around the underlying data structure of the terminal, the URL selection would search for the URL at the position where the click would have been without any scrolling. By adding the viewport offset to the click position, the URL clicking now searches at the correct location. This fixes https://github.com/jwilm/alacritty/issues/2076.
* Set window title on WaylandChristian Duerr2019-02-06
| | | | | Fixes #1582. Fixes #1875.
* Scale IME position by hidpi_factorDesuwa2019-02-05
| | | | | | | | | | | Since the IME was positioned using physical coordinates, the location would be incorrect with monitors using a DPR other than 1.0. This has been resolved by converting the physical position to a logical position using the methods built into winit. Fixes #2056.
* Simplify text shaderM. Stoeckl2019-02-04
|
* Remove unused coordinate from rect shaderM. Stoeckl2019-02-03
|
* Fix regression in the URL launcher config Christian Duerr2019-02-03
| | | | | | | | | | | Due to the merging of configuration files on all platforms, it has been made impossible to completely disable URL launching without still executing some kind of program like `true`. Setting the launcher to `None` in the config, will now disable it completely. This fixes #2058.
* Fix reloading with empty configChristian Duerr2019-02-02
| | | | | | | | | When loading an empty configuration file, Alacritty only prints an info message and then proceeds to load the default config. However when reloading the configuration file it would throw a hard error. This has been fixed and a hard error is now only thrown when an error is returned during reload which isn't the empty file error.
* Trim unicode characters from the start of URLsSander van Harmelen2019-01-28
|
* Improve touchpad scrollingray8511072019-01-27
| | | | | | | By scaling fractional scaling by scrolling multiplier before conversion to lines it is now possible to scroll much more accurately with touchpads. The `scrolling.multiplier` now also applies to touchpads.
* Move clippy tests to stableChristian Duerr2019-01-23
| | | | | | | | | | | | The clippy tests had to be run on nightly previously since it wasn't available with the stable compiler yet, however this had the potential to fail a lot since not all nightly builds offer clippy. Since clippy is now available for stable rust, moving clippy to a stable build should make sure that the failure rate of the CI job is cut down to a minimum. This fixes https://github.com/jwilm/alacritty/issues/2007.
* Fix off-by-one error in erase_charsAlexander Bulimov2019-01-21
|
* Fix crash on Windows (#2021)Christian Duerr2019-01-20
| | | | | | | | | | The rusttype backend did not properly support manually specifying font styles, but instead chose to panic when they are specified. The rusttype implementation now provides a proper implementation for handling `bold`, `italic` and `regular` font styles. This fixes #2020.
* Fix crash on macOS and BSD with SpawnNewInstance actionCarlos Tuñón2019-01-19
|
* Add config option to send or not send ESC when ALT-key is pressedSimon Dahlberg2019-01-17
|
* Make all configuration fields optionalChristian Duerr2019-01-17
| | | | | | | | | | | | | | | | | | All configuration fields now have fallback values which will be used if the field is not present. This includes mouse, key bindings and platform specific differences. The mouse and key bindings are now filled by default, if the user rebinds a default mapping, it will be overwritten. To unbind a default binding, it can be mapped to `chars: ""`. Since all platform differences can now be correctly handled by the `src/config/mod.rs` code, it's no longer necessary to maintain separate configuration files, so the `alacritty_macos.yml` and `alacritty_windows.yml` have been deleted. Fixes #40. Fixes #1923.
* Fix tabs overwriting cells during movementChristian Duerr2019-01-13
| | | | | | | | | | | When compiling ncurses with the `--enable-hard-tabs` option, it will make use of tabs to speed up cursor movement. These tabs can be set at positions which will overwrite existing characters. Since these are only for movement and not supposed to write anything to the terminal, it is now checked that a cell does not contain any character before writing a tab to it. This fixes #1933.
* Fix crash when starting Alacritty on full drivesChristian Duerr2019-01-09
| | | | | | | | | | | | Since the Alacritty configuration file is written to the filesystem at startup, this could create issues when the system does not have any free space left. To circumvent this problem, the default configuration is now returned even when the configuration file could not be created. Instead of crashing Alacritty, an error is now emitted. Fixes #1936.
* Fix selection with right and middle mouseChristian Duerr2019-01-08
| | | | | | | | | | | | Since there was no check for the button state for semantic and line selection, it was possible to trigger selection using the middle and right mouse button. This has been resolved by explicitly checking for the pressed button before starting these selections. To further ensure that double and triple clicks are only triggered when the same button is pressed multiple times, the last pressed button is stored. This fixes #1915.
* Normalize Log Message StringsNathan Lilienthal2019-01-07
| | | | | | The general style for errors, warnings and info messages is to start with a capitalized letter and end without a period. The main exception is when dealing with nouns that are clearer with special case handling, e.g. "macOS failed to work" or "ioctl is borked".
* Improve URL detection with special charactersChristian Duerr2019-01-05
| | | | | | | | | | | | | Various special characters and character combinations were not handled correctly with URL detection. All these instances have been resolved and covered by various tests to prevent future regressions. Notable fixes include single quotes working more properly now (like `'https://example.org'`) and IPv6 URL support. Since URL detection is now more than just a few lines of code and it's mostly unrelated to the `Term`, it has also been extracted into the `src/url.rs` file together with all URL-related tests.
* Limit number of URL schemesChristian Duerr2019-01-05
| | | | | | | | | | | | | | | | | This limits the number of allowed schemes for the URL launcher, to reduce the number of false-positives. The accepted URL schemes are now: - http - https - mailto - news - file - git - ssh - ftp This fixes #1727.
* Fix removal of trailing URL charactersChristian Duerr2019-01-05
| | | | | | | | | | | | | | | Some characters were not correctly stripped from the end of URLs with the URL launching feature. The list of URL separator characters has been extended to include '<', '>', '"', ' ', '{', '}', '|', '\\', '^' and '`', following the URL specification defined here: https://tools.ietf.org/html/rfc3987#page-13 Additionally, a list of characters which are always stripped from the end of URLs has been setup to contain '.', ',', ';', ':', '?', '!', and '/'. This fixes #1753.
* Launch URLs only when left-clickingChristian Duerr2019-01-05
| | | | This fixes #1903.
* Add key/mouse action for spawning new Alacritty instancesCarlos Tuñón2019-01-05
|
* Fix double-triggering of mouse bindingsChristian Duerr2019-01-03
| | | | | | | | | | | | | | | | | The 2d9afb9b395ea0cc71432613e0df104aefcf24c1 commit lead to mouse actions being triggered on both press and release of mouse buttons. This reverts the mouse binding behavior back to the previous state where they are only triggered when the button is pressed, not when it's released. The `mouse_input` method's structure was overly complicated and did not accurately represent the logic which should be implemented by it. This is likely what caused the regression in 2d9afb9b395ea0cc71432613e0df104aefcf24c1. To prevent similar issues from popping up in the future, the method has been cleaned up and the structure should now represent the logic required more logically.
* Process Mouse Binding Actions EarlierNathan Lilienthal2019-01-02
| | | | | | To allow for a mouse binding to properly copy text, we should process the mouse binding actions before thee built-in functionality, which will clear the selection on right click, for example.
* Change default Windows shell to PowerShellJason Shirk2019-01-02
| | | | | | | | | Update the Windows shell settings and comments so they look familiar to Windows users, but comment out the shell settings for consistency with Linux and Mac. Stop checking COMSPEC when the configuration file does not specify which shell to use, and just default to PowerShell.
* Use default cursor instead of arrow in mouse modeDarkDefender2019-01-02
|
* Fix line metricsChristian Duerr2018-12-31
| | | | | | | | | | | | | | Since bitmap fonts do not provide their own underline metrics, the self-calculated metrics which have been used for rusttype are now also used for bitmap fonts with freetype. The rusttype and bitmap fallback metrics have incorrectly offset the underline by the underline height. Since the position is already defined as the center point, that is not necessary. All rounding and clamping has also been removed from the font library, so that the raw values are reported now. The clamping and rounding is now done in the line renderer.
* Fix underline interruption with empty cellsChristian Duerr2018-12-31
| | | | | | | | | | | | Since completely empty cells are not reported by the renderable cells iterator, the line renderer has incorrectly assumed that these cells did not cause any change in cell state, leading to underlines spanning empty cells. Instead of assuming that the line state is unchanged, the line calculation now correctly interprets a jump in the renderable cells column as an interruption of the line. This fixes #1960.
* Add support for Windows ConPTY APIDavid Hewitt2018-12-28
|
* Fix `create_rect` function documentationNathan Lilienthal2018-12-27
|
* Use mio-extras instead of mio-moreBastien Orivel2018-12-27
| | | | The latter isn't maintained anymore and this removes a bunch of outdated dependencies.
* Make windows config location more sensibleZac Pullar-Strecker2018-12-27
|
* Report Windows panics through MessageBoxMatt T. Proud2018-12-23
| | | | | | | | | | Alacritty is often spawned through the executable on Windows. Since this doesn't allow access to the stderr and crashes on startup are more common on Windows due to the agent, it can be hard to troubleshoot issues. This reports all Alacritty crashes through error popups on Windows, which should resolve the problem of crashing Alacritty instances without any error feedback.
* Add proper underline and strikeout supportChristian Duerr2018-12-22
| | | | | This makes use of the new rectangle rendering methods used to display the colored visual bell to add proper underline and strikeout support to Alacritty.
* Send alt key with actual key in one flushskliew2018-12-20
| | | | | The delay between the alt key and the actual received key might cause certain key sequences to be missed, ex. when tmux has its escape-time set to 0.
* Add color option to visual bellChristian Duerr2018-12-17
| | | | | | | | | This adds the option to specify the color of the visual bell using the `visual_bell.color` configuration setting. This is done by rendering a big quad over the entire screen, which also opens up options to draw other arbitrary rectangles on the screen in the future.
* Fixing tabs in copy-pasteSteve Blundy2018-12-15
| | | | | | | | | | This resolves issues with copy-pasting tabs by including them in the pasted string. Selection of tabs is still inconsistent with what might be expected based on other terminal emulators, however the behavior hasn't regressed. This fixes https://github.com/jwilm/alacritty/issues/219.