Commit Graph

1057 Commits

Author SHA1 Message Date
Nathan Lilienthal 04707cbba6 Normalize Log Message Strings
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".
2019-01-07 00:06:57 +00:00
Christian Duerr dfc30eeef5
Set minimum macOS version to 10.11
To make sure that CI builds produced by Travis work on all supported
versions of macOS and building Alacritty works on all supported
versions, the minimum macOS version has been set in the Makefile.

This sets the minimum macOS version to `10.11` as a reasonable
estimation based on other applications. If the exact version chosen
turns out to cause some issues, it can be changed in the future.
2019-01-06 19:12:30 +00:00
Christian Duerr 873771fa59 Improve URL detection with special characters
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.
2019-01-05 20:49:39 +00:00
Christian Duerr b6a5ba21a1 Limit number of URL schemes
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.
2019-01-05 20:49:39 +00:00
Christian Duerr fbefd804c8 Fix removal of trailing URL characters
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.
2019-01-05 20:49:39 +00:00
Christian Duerr dd8639b6cc Launch URLs only when left-clicking
This fixes #1903.
2019-01-05 20:49:39 +00:00
Carlos Tuñón e4dc43e87c Add key/mouse action for spawning new Alacritty instances 2019-01-05 20:47:12 +00:00
Christian Duerr f4fc9eb35a
Fix double-triggering of mouse bindings
The 2d9afb9b39 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 2d9afb9b39.

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.
2019-01-03 01:56:28 +00:00
Nathan Lilienthal 2d9afb9b39 Process Mouse Binding Actions Earlier
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.
2019-01-02 21:56:36 +00:00
Jason Shirk 2e968ae0ad Change default Windows shell to PowerShell
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.
2019-01-02 21:40:32 +00:00
DarkDefender 9133f4d327 Use default cursor instead of arrow in mouse mode 2019-01-02 13:04:54 +00:00
Christian Duerr 7275ecc282
Fix line metrics
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.
2018-12-31 17:01:06 +00:00
Christian Duerr 9ffaac8ee7
Fix underline interruption with empty cells
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.
2018-12-31 16:52:29 +00:00
David Hewitt f1bc6802e1 Add support for Windows ConPTY API 2018-12-28 16:01:58 +00:00
Christian Duerr ec6f756946
Fix Windows config location documontation
The path `%APPDATA%` already includes the `Roaming` folder.
2018-12-28 15:26:58 +00:00
Nathan Lilienthal 9cd868f887 Fix `create_rect` function documentation 2018-12-27 21:02:40 +00:00
Bastien Orivel 562d96341c Update reqwest to 0.9 2018-12-27 20:43:55 +00:00
Bastien Orivel e6c4d08192 Use mio-extras instead of mio-more
The latter isn't maintained anymore and this removes a bunch of outdated
dependencies.
2018-12-27 19:49:29 +00:00
Zac Pullar-Strecker 6d7647c890 Make windows config location more sensible 2018-12-27 14:16:31 +00:00
Matt T. Proud f0180430df Report Windows panics through MessageBox
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.
2018-12-23 22:36:06 +00:00
Christian Duerr 2f9b815ebd
Add proper underline and strikeout support
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.
2018-12-22 17:16:54 +00:00
Tim McNamara dad44134e2 Expand snap description and remove comments
This commit removes the boilerplate comments that come with the template snapcraft.yaml. It also expand the description to match the project's README.
2018-12-20 00:49:26 +00:00
skliew c47c52d844 Send alt key with actual key in one flush
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.
2018-12-20 00:33:42 +00:00
kekePower e1ee890750 Add Mageia install instructions to README.md 2018-12-18 21:41:17 +00:00
Christian Duerr cf9d94eb12
Add color option to visual bell
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.
2018-12-17 19:06:07 +00:00
Steve Blundy 0c3e28617a Fixing tabs in copy-paste
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.
2018-12-15 21:33:33 +00:00
Christian Duerr 21f888ec41
Update dependencies
This fixes #1674.
2018-12-15 12:10:26 +00:00
Ross Smith II e4db833137 Add scoop install instructions for windows 2018-12-14 10:00:50 +00:00
dm1try 53c7489217 Ignore result on deregistering pty
Fixes #1897.
2018-12-14 03:54:05 +00:00
Kyle Rooker 0a73312c3d Fix color issues in ncurses programs
Certain programs like `htop` have problems with the number
of color pairs which are specified by the Alacritty terminfo
file. 

By reducing the maximum number of color pairs to the value
which is specified by xterm-256color, these issues are
resolved.

This fixes #1862.
2018-12-12 14:12:59 +00:00
Joe Wilm 217ad9ec28 Upgrade to Rust 2018
This resolves a lot of NLL issues, however full NLL will be necessary to
handle a couple of remaining issues.
2018-12-10 17:53:56 +00:00
Christian Duerr 7ab0b44847
Bump version to 0.2.4 2018-12-09 23:28:29 +00:00
Christian Duerr 1cebcd660b
Fix rendering of zero-width characters
Instead of rendering zero-width characters as full characters, they are
now properly rendered without advancing the cursor.

Because of performance limitations, this implementation only supports up
to 5 zero-width characters per cell. However, as a result of this
limitation there should not be any performance impact.

This fixes #1317, fixes #696 and closes #1318.
2018-12-09 15:28:22 +00:00
Vineeth Sagar 47f8f1bac6 Add a contributing.md file 2018-12-09 01:46:09 +00:00
Tezkerek aef38d6c2f Change missing config log level to info 2018-12-08 20:51:36 +00:00
Nathan Lilienthal f32facfbfd Refactor Alacritty scripts
This includes some changes to the scripts `README.md` to provide
some more information on the different Alacritty scripts.

A new script for testing the 24 bit support of Alacritty has been
added with the `24-bit-color.sh` name. This should help with
troubleshooting truecolor support issues.

Since `perf` is a standard tool which is available in the official
repositories for most distributions, it doesn't make much sense to
provide an installation script specifically for Ubuntu. As a result of
this, the script has been removed.
2018-12-08 20:28:57 +00:00
Christian Duerr 6b61e96739
Fix recording of ref tests
Due to the lazy initialization of lines in the Alacritty history, the
recording of ref tests was broken. Because a WM would often resize the
ref test window after it was spawned, some additional lines were
initialized in the stored ref test.

To make sure lazy initialization does not play any role in the recording
and replaying of reftests, before recording and replaying the tests, the
complete grid is initialized and then truncated. This should make sure
that only the relevant lines are kept.
2018-12-08 01:50:01 +00:00
Matthias Krüger a6764ba05f Use tool lints for clippy allow/deny lint attributes 2018-12-07 13:58:11 +00:00
Muhammad Talal Anwar cdc22ce76a Add docs for enabling system font smoothing on macOS 2018-12-06 21:55:02 +00:00
Vineeth Sagar cadbb86eb7 Detach Child process to avoid zombie processes
This makes use of the common double-fork behavior to prevent
spawning zombie processes every time a URL is clicked.
2018-12-06 21:38:34 +00:00
Muhammad Talal Anwar f57bd6e12f Remove sudo keyword from travis
The `sudo` keyword has been deprecated.

See: https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration
2018-12-06 14:17:54 +00:00
Bjorn Neergaard 0d2f5b0f0f Launch a login shell by default on macOS 2018-12-03 22:26:59 +00:00
Barret Rennie ca9a259caa Request user attention when bell received in macOS
We now request the user's attention in macOS when a visual bell
character is received. This manifests as the window jumping up and down
in the dock.
2018-12-02 16:11:51 +00:00
Christian Duerr e690a1444e
Add change log entries for macOS privacy requests 2018-12-02 17:07:23 +01:00
John Naylor 973db4845c Request OSX privacy permissions 2018-12-02 16:06:24 +00:00
Zac Pullar-Strecker 742a6b48a1
Fix for an underflow on some type conversions (#1715) 2018-11-25 10:08:02 +13:00
dm1try 0d47cd25b9 Ignore initial size if the window is maximized on start 2018-11-23 23:41:06 +00:00
Zac Pullar-Strecker 6f4ad9bb4f Move winpty-sys dep to crates.io 2018-11-24 12:02:10 +13:00
Jonathan Dahan 2ede659134 Add option for launching Alacritty maximized 2018-11-19 21:23:47 +00:00
Ilya Epifanov fc04bc1e6d Changed path to standard /usr/bin/..., registered as an x-terminal-emulator alternative 2018-11-19 09:24:22 +00:00