summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-03-23Fix URL parsing with double-width charactersChristian Duerr
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.
2019-03-21Update extended-description for deb fileAlex Touchet
2019-03-21Remove deprecated libc::daemon callChristian Duerr
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.
2019-03-19Fix URLs getting incorrectly extended to next lineChristian Duerr
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.
2019-03-19Add URL hover highlightingChristian Duerr
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
2019-03-17Remove InclusiveRange codeChristian Duerr
This removes all inclusive range code since it has been recently stabilized in the standard lib.
2019-03-15Add change log entry for Wayland title fixChristian Duerr
Fixes #2104.
2019-03-15Add additional key bindings for changing font sizeAaron Goodfellow
This fixes #2010.
2019-03-15Update Cargo.lockHirokazu Hata
2019-03-14Fix invalid --working-dir string ptr for ConPTYAlex Purdy
2019-03-14Update glutin to version 0.20Christian Duerr
Fixes #458. Fixes #1681.
2019-03-13Add text reflowChristian Duerr
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.
2019-03-12Add config option to change selection colorKirill Chibisov
2019-03-12Fix signal handling on Unix systemsRachel K
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.
2019-03-11Add option for window position at startupCole Helbling
2019-03-08Add support for SpawnNewInstance using linux compat on FreeBSDTobias Kortkamp
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.
2019-03-07Add dynamic title support for WindowDavid Hewitt
2019-03-04Make start_daemon behaviour on Windows consistent with UnixDavid Hewitt
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.
2019-03-04Remove appveyor badge from readmeChristian Duerr
2019-03-04Fix selection starting inside paddingLado Tonia
This fixes #2109.
2019-03-03Fix terminfo support for extended capabilitiesChristian Duerr
To make sure all extended capabilities can be queried correctly, it is necessary to compile the terminfo file using the `-x` flag. Since Alacritty specified support for the XTerm mouse mode (XM/xm), using the `-x` flag was not possible until now without breaking programs like `htop`. By removing this flag, these issues should be resolved. This fixes https://github.com/jwilm/alacritty/issues/2131.
2019-03-02Fix alt screen bugsChristian Duerr
This fixes two bugs with the alternate screen buffer. When resetting while in the alt screen, Alacritty would not swap out the grids leading to scrollback getting disabled. By swapping out the grids again when resetting in the alternate screen buffer, scrollback is now unaffected from a reset. There was another issue with the cursor jumping around when leaving the alt screen even though it was not active, this was fixed by skipping all alt screen swap routines unless the current state matches the expected state. This fixes #2145.
2019-03-02Add additional key bindingsstfn
2019-03-02Fix scrollback live reloadingChristian Duerr
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.
2019-03-02Add MSI installer for WindowsErik Berkun-Drevnig
2019-02-25Add install instructions for Chocolatey to readmeStarz0r
2019-02-21Fix selection copying with mouse outside of windowChristian Duerr
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.
2019-02-21Fix panic on exit with ConPTYDavid Hewitt
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.
2019-02-18Small Updates to the README (#2091)Nathan Lilienthal
Update the README and related files. This commit generally updates some language in the "About" section, and other sections with respect to keeping accurate information, and laying out the project goals in a clear way. We're also marking Alacritty as "beta" software at this point, not that this has any explicit meaning.
2019-02-16Add early return to `received_char`Tanuj
2019-02-16Fix broken link in CONTRIBUTING.mdTanuj
2019-02-16Remove incorrect doc commentTanuj
2019-02-13Update fish completion installationChristian Duerr
2019-02-11Bump version to 0.2.9v0.2.9Christian Duerr
2019-02-11 Fix font spacing errorChristian Duerr
Fixes #2098.
2019-02-10Remove deployment script from clippy buildsChristian Duerr
2019-02-10Bump version to 0.2.8v0.2.8Christian Duerr
2019-02-10Fix dimensions CLI/manpage docsChristian Duerr
2019-02-09Change font size only when new metrics are validMartin Sucha
This prevents cell_width or cell_height being zero. Fixes #1693
2019-02-08Remove selections when clearing screen partiallyChristian Duerr
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.
2019-02-08 Change shift+pgup/pgdown to scroll historyChristian Duerr
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.
2019-02-07Dynamically resize terminal for errors/warningsChristian Duerr
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.
2019-02-07Fix unclickable URLs with scrolled viewportChristian Duerr
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.
2019-02-06Set window title on WaylandChristian Duerr
Fixes #1582. Fixes #1875.
2019-02-05Disable incremental for release buildsChristian Duerr
This fixes #1115.
2019-02-05Scale IME position by hidpi_factorDesuwa
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.
2019-02-04Remove library lockfiles from gitChristian Duerr
Following Rust's standard, the lockfiles for Alacritty's sub-libraries have been removed. One instance of the deprecated `ATOMIC_USIZE_INIT` has also been removed. This fixes #2040.
2019-02-04Simplify text shaderM. Stoeckl
2019-02-04Fix macOS config decorations docChristian Duerr
2019-02-03Remove unused coordinate from rect shaderM. Stoeckl