aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Split alacritty into a separate cratesTheodore Dubois2019-04-28
| | | | | The crate containing the entry point is called alacritty, and the crate containing everything else is called alacritty_terminal.
* Fix position of zero-width over double-width charactersChristian Duerr2019-04-25
|
* Fix cursor disappearingChristian Duerr2019-04-25
| | | | | | | | | | | | | | The cfc20d4f34dca535654cc32df18e785296af4cc5 commit introduced a regression which would cause the cursor to disappear after the glyph cache has been filled. Since the cursor was not cached on the glyph cache, the cursor would quickly fill up the OpenGL texture with lots of cursor textures and then things would break after the atlas was filled completely. This adds a separate cursor cache which is keyed by the cursor style that will persist the texture without flooding the atlas. This fixes #2355.
* Show same fg/bg text when inversedChristian Duerr2019-04-25
| | | | | | | | | | | If a cell has a matching foreground and background and is inversed through the escape or selection, it will now fall back to the default background on top of the default foreground. This makes it possible to show invisible text like this by selecting it. Hidden text is unaffected by this change. This fixes #2315.
* Fix message bar not updating PTY sizeChristian Duerr2019-04-24
|
* Add fullscreen supportacheronfail2019-04-23
| | | | Fixes #34. Fixes #2012.
* Fix ConPTY panicAndrew Opalach2019-04-22
|
* Fix hidden cursor inverting cell colorsChristian Duerr2019-04-22
| | | | | | | | | | Since the block cursor inverts the background and foreground colors of a cell, the hidden cursor has done the same thing without rendering a cursor since it was using the block cursor shape. A new `Hidden` cursor style has been introduced for explicitly handling the invisible cursor differently. This fixes #2342.
* Improve errors for missing shell file on Windows Christian Duerr2019-04-21
| | | | | | | | | | | | The ConPTY had a cryptic 'assertion failed: success' error whenever spawning the shell failed. This changes the ConPTY assertion to a human-readable error which clearly states that the file could not be found. The WinPTY backend has not been fixed yet. This fixes #2016.
* Fix cursor colorsChristian Duerr2019-04-20
| | | | | | | | | | This fixes a recent regression in cfc20d4f34dca535654cc32df18e785296af4cc5 which broke cursor colors when specified in the `colors.cursor` field in the config. It also removes a lot of unneeded code from the font crate related to the cursor rendering. This fixes #2338.
* Fix cursor dimension style issuesChristian Duerr2019-04-19
|
* Fix cursor dimensions with font offsetChristian Duerr2019-04-19
| | | | | | | | | | | | | | Previously cursor dimensions were not calculated correctly when a font offset was specified, since the font offset was completely ignored. This has been fixed by moving all the cursor logic from the font into the Alacritty crate, applying the config's offsets before rasterizing the cursors. This has also fixed an issue with some cursors not being rendered as double-width correctly when over double-width glyphs. This fixes #2209.
* Update pty size when font size changedNicolas Hahn2019-04-19
|
* Fix update_lines performance issuesChristian Duerr2019-04-19
| | | | | | | | | | | This resolves performance issues with the `update_lines` method that were caused by excessive updates without underlines or strikeout present. This also resolves a bug that was causing the underline and strikeout to extend beyond the end of line in some rare cases. This fixes #114.
* Remove outdated comment line.Nathan Lilienthal2019-04-18
|
* Call TIOCSWINSZ only on grid changeEike Christian Karbe2019-04-17
| | | | | Instead of calling TIOCSWINSZ for every pixel change it will now be called only on changes to the grid size. This should reduce screen refreshes. This fixes #2177.
* Fix duplicate resize eventsChristian Duerr2019-04-14
| | | | | | | | | | | | | | | | If a resize event is identical to the current size, it is no longer propagated but the resize is discarded immediately. To further prevent resizes when not necessary, the list of monitors is enumerated and the DPR of the first display is assumed to be the target DPR. This allows spawning a window with dimensions when the config has columns and lines specified and the window only needs to be resized if the estimated DPR is not correct. Fixes #1825. Fixes #204.
* Fix macos subprocess executionChristian Duerr2019-04-11
| | | | | | | | This fixes the execution of subprocesses on macOS which could sometimes prevent actions like `SpawnNewProcess` or custom commands from launching their processes correctly. This fixes #2259.
* Remove redundant closures and importsMatthias Krüger2019-04-11
|
* Set maximum Rust version to 1.31.0Christian Duerr2019-04-09
| | | | | | | | | | | | | By setting the minimum Rust version and enforcing it with CI, Alacritty should hopefully make it possible for maintainers to package the application even on distributions which are not rolling release. The 1.31.0 target has been chosen here because it's the first version of the Rust 2018 release. Bumping this version in the future should be considered to be a breaking change and should only be done with caution and in consideration of the supported Rust versions of the major distributions available. This fixes #2277.
* Reset scrolling region when receiving RIS escapeDaniel Eklöf2019-04-08
|
* Add ScrollLineUp and ScrollLineDown actions for scrolling line by lineJerry Yin2019-04-08
|
* Bump version to 0.3.0Christian Duerr2019-04-08
|
* Fix build errors on BSDChristian Duerr2019-04-04
| | | | | | | | | | | | | | | This updates winit and glutin to the latest git versions instead of relying on releases to fix a build failure on BSD. Unfortunately the upstream version bumps might still take a bit and there hasn't been any feedback with regards to a planned release date. This also fixes a slight issue on Windows where selections would start when focusing a window and a build failure with some Linux systems Fixes #2243. Fixes #2170. Fixes #2244.
* Upgrade to winapi 0.3.7David Hewitt2019-04-04
|
* Add official logoChristian Duerr2019-04-01
|
* Revert daemon removalChristian Duerr2019-04-01
| | | | | | | | | | | This reverts the removal of the call to libc::daemon and instead adds an annotation to ignore the deprecation warnings on macos. This will not be an issue in the future since macOS is only discouraging the use of `daemon`, but I'm not aware of any intention to actually remove it. This fixes #2211.
* Add rustfmt style guideChristian Duerr2019-03-30
|
* Rework URL highlightingChristian Duerr2019-03-30
| | | | | | | | | | | | | | | | | | | | | | | | This completely reworks URL highlighting to fix two issues which were caused by the original approach. The primary issues that were not straight-forward to resolve with the previous implementation were about handling the URL highlighted content moving while the highlight is active. This lead to issues with highlighting with scrolling and when the display offset was not 0. The new approach sticks closely to prior art done for the selection, where the selection is tracked on the grid and updated whenever the buffer is rotated. The truncation of URLs was incorrectly assuming input to be just a single codepoint wide to truncate the end of URLs with unmatching closing parenthesis. This is now handled properly using Rust's built-in Unicode support. This fixes #2231. This fixes #2225.
* Update --class docsChristian Duerr2019-03-29
| | | | | | Since the `--class` flag has been changed to take effect on Wayland too, the documentation has been updated to reflect that. The original change was made in #2077.
* Fix prompt jumping during reflowChristian Duerr2019-03-28
| | | | | | | | If the window is resized while lines are longer than the visible area, Alacritty will no longer move down the prompt and pull from history when possible but instead keep the prompt in place and move the additional lines into the scrollback buffer. This fixes #2213.
* Disable URL highlight with URL launcher disabledChristian Duerr2019-03-28
|
* Fix `start_maximized` option on X11Elaina Martineau2019-03-25
|
* Fix URL highlight crashChristian Duerr2019-03-24
| | | | | | | | | | | | | | | | | | The URL highlight stores the state of the last URL highlight with the position of the URL start position. However when resizing, it's possible that the indices of this point change which will cause a crash if the old positions are not within the grid anymore. This has been resolved by resetting the URL highlight state whenever the terminal is resized. The original PR incorrectly required the shift modifier to be required when the user was in the alternate screen buffer. However the correct behavior is to require it when the mouse mode is enabled. This has been resolved and URLs are now highlighted in the alt screen even if no shift modifier is pressed. This fixes #2194.
* Fix URL parsing with double-width charactersChristian Duerr2019-03-23
| | | | | | | | | | | | | Since double-width characters are followed by an empty cell containing only the `WIDE_CELL_SPACER` flag, the URL parser would stop once encountering the cell after a double-width character. By skipping cells that contain the `WIDE_CELL_SPACER` flag and incrementing the URL length by unicode width of the character instead of cell count, this can be resolved for both URL launching and URL highlighting. Fixes #2158.
* Remove deprecated libc::daemon callChristian Duerr2019-03-21
| | | | | | | | | | | | | Since version 10.5 of macOS the libc::daemon call has been deprecated. While it is recommended by macOS to use launchd instead, this is not easily available on other unix platforms. However since we just spawn a daemon process to prevent Alacritty from spawning zombies, we can manually invoke `fork` in the child process to cause a double-fork and re-parent the child process under init so it can be reaped automatically. Since the daemon call is not part of POSIX, using the double fork on all unix platforms also has some portability advantages.
* Fix URLs getting incorrectly extended to next lineChristian Duerr2019-03-19
| | | | | | | | | | | | If a URL ends right at the end of the terminal, it would sometimes incorrectly include the characters from the following line when launching the URL. Similar to the semantic search function, the URL parsing iterator will now stop if it encounters a cell at the end of the line which does not contain the `WRAPLINE` flag. This fixes #1906.
* Add URL hover highlightingChristian Duerr2019-03-19
| | | | | | | | | | | | | | | This changes the cursor whenever it moves to a cell which contains part of a URL. When a URL is hovered over, all characters that are recognized as part of the URL will be underlined and the mouse cursor shape will be changed. After the cursor leaves the URL, the previous hover state is restored. This also changes the behavior when clicking an illegal character right in front of a URL. Previously this would still launch the URL, but strip the illegal character. Now these clicks are ignored to make sure there's no mismatch between underline and legal URL click positions
* Remove InclusiveRange codeChristian Duerr2019-03-17
| | | | This removes all inclusive range code since it has been recently stabilized in the standard lib.
* Add additional key bindings for changing font sizeAaron Goodfellow2019-03-15
| | | This fixes #2010.
* Fix invalid --working-dir string ptr for ConPTYAlex Purdy2019-03-14
|
* Update glutin to version 0.20Christian Duerr2019-03-14
| | | | | Fixes #458. Fixes #1681.
* Add text reflowChristian Duerr2019-03-13
| | | | | | | | | | | | | | | | | | | | Alacritty will now automatically reflow lines and shrink them when they would usually exceed the new width of the terminal instead of truncation. If a line had to be truncated, it will also be reflown into the previous line after growing the terminal width. The reflow behavior when not at the bottom of the history is similar to that of VTE and aims to keep the viewport stationary whenever possible. Opposed to VTE, reflow will also be performed in the alternate screen buffer. There will be bugs when resizing the terminal emulator to a size smaller than the prompt, though these issues were present in all terminal emulators with reflow support. This fixes #591.
* Add config option to change selection colorKirill Chibisov2019-03-12
|
* Fix signal handling on Unix systemsRachel K2019-03-12
| | | | | | | | | | | | | | | | | | | | This removes the the signal handling machinery in tty::unix, and replaces it with functionality from signal-hook, which should be more robust. Signals caught by signal-hook wake up the existing I/O event loop, which then delegates back to the PTY to handle them. In particular, this allows `SIGCHLD` (i.e. child process exits) to shut down the terminal promptly, instead of sometimes leaving the window lingering. Fixes #915. Fixes #1276. Fixes #1313. As a side effect, this fixes a very rare bug on Linux, where a `read` from the PTY on the master side would sometimes "fail" with `EIO` if the child closed the client side at a particular moment. This was subject to a race condition, and was very difficult to trigger in practice.
* Add option for window position at startupCole Helbling2019-03-11
|
* Add support for SpawnNewInstance using linux compat on FreeBSDTobias Kortkamp2019-03-08
| | | | | | | | | | | This fixes opening a new instance in the shell's current working directory. The code currently assumes that there is a Linux compatible procfs mounted on /proc which is not the case on FreeBSD. However linprocfs(5) is often mounted on /compat/linux/proc so we can use that here for the time being. A proper solution would look up the kern.proc.cwd.<pid> sysctl instead, but that is not currently easily doable due to missing KERN_PROC_CWD and struct kinfo_file definitions in the libc crate.
* Add dynamic title support for WindowDavid Hewitt2019-03-07
|
* Make start_daemon behaviour on Windows consistent with UnixDavid Hewitt2019-03-04
| | | | | | | In cases where the Alacritty process had invalid std handles then the ConPTY subprocess would fail to spawn. By setting appropriate flags we prevent these handles from being passed to the ConPTY subprocess.
* Fix selection starting inside paddingLado Tonia2019-03-04
| | | This fixes #2109.