Commit Graph

184 Commits

Author SHA1 Message Date
Kirill Chibisov d76bb0c697 Update dependencies 2019-10-23 21:17:09 +02:00
Kirill Chibisov 7b814c3be7 Bump winit version
Fixes cursor icon managing with `hide_when_typing: true` on Wayland.
2019-10-16 21:20:38 +02:00
Christian Duerr 729eef0c93
Update to winit/glutin EventLoop 2.0
This takes the latest glutin master to port Alacritty to the EventLoop
2.0 rework.

This changes a big part of the event loop handling by pushing the event
loop in a separate thread from the renderer and running both in
parallel.

Fixes #2796.
Fixes #2694.
Fixes #2643.
Fixes #2625.
Fixes #2618.
Fixes #2601.
Fixes #2564.
Fixes #2456.
Fixes #2438.
Fixes #2334.
Fixes #2254.
Fixes #2217.
Fixes #1789.
Fixes #1750.
Fixes #1125.
2019-10-05 02:29:26 +02:00
Christian Duerr 8aa406b98b
Bump minimum Rust version to 1.36.0 2019-09-09 21:40:48 +00:00
Bastien Orivel 20846ef925 Update and dedupe parking_lot to 0.9 2019-09-06 19:35:28 +00:00
Kirill Chibisov db63c31554 Fix Wayland selection clipboard not storing text when stopping outside of window 2019-09-03 15:42:24 +00:00
Bastien Orivel a8692983f5 Update depedencies 2019-08-18 02:46:29 +00:00
Kirill Chibisov 1da986ae2b
Fix smithay-clipboard integration
Fixes: #2574
2019-08-16 01:33:37 +02:00
Christian Duerr 14fa02648e
Remove errno depedency 2019-08-04 20:17:22 +00:00
Christian Duerr 9dddf649a1
Switch to rfind_url for URL detection
This switches to rfind_url for detecting URLs inside the grid. Instead
of expanding at the cursor position, the complete terminal is searched
from the bottom until the visible region is left with no active URL.

Instead of having the field `cur` publicly accessibly on the
`DisplayIterator`, there are the two methods `DisplayIterator::point`
and `DisplayIterator::cell` for accessing the current element of the
iterator now. This allows accessing the current element right after
creating the iterator.

Fixes #2629.
Fixes #2627.
2019-08-01 15:37:01 +00:00
Christian Duerr 86b9cdbabe
Bump minimum supported Rust version to 1.34.0 2019-07-30 22:13:51 +00:00
Wild Kat 14a48a2533 Update gl_generator to 0.13 2019-07-28 17:03:52 +00:00
Christian Duerr a23b372f34
Fix NetBSD build failure
Fixes #2631.
2019-07-22 18:56:08 +00:00
Christian Duerr c4d2725e14
Fix row occ not set during new and reset
Since ref tests were only stored whenever winit requested the window
close, they would not get stored properly when the terminal was closed
through Alacritty using `exit`, Ctrl+D or similar.

This moves the ref test code to the and of the main entry point, which
will always be executed regardless of how the terminal was shutdown.

Fixes #2613.
2019-07-10 21:17:20 +00:00
Christian Duerr 165246f50a
Fix saving of ref tests
Since ref tests were only stored whenever winit requested the window
close, they would not get stored properly when the terminal was closed
through Alacritty using `exit`, Ctrl+D or similar.

This moves the ref test code to the and of the main entry point, which
will always be executed regardless of how the terminal was shutdown.
2019-07-07 14:51:11 +00:00
Christian Duerr a3f56a5f09
Fix X11 clipboard hanging with mime set 2019-06-29 14:35:53 +00:00
Christian Duerr f002171c84
Fix performance issues with text reflow
Fixes #2567.
Fixes #2414.
2019-06-23 23:29:01 +00:00
Christian Duerr cc3e4d3d5c
Bump version to 0.3.3 2019-06-16 14:10:15 +00:00
Christian Duerr 8ea28eb1b0
Bump version to 0.3.3-rc2 2019-06-15 21:34:13 +02:00
Christian Duerr 1b26059a06
Bump smithay-clipboard dependency version 2019-06-15 19:08:51 +00:00
Bastien Orivel 6cd0f12efb Remove reqwest dependency on Windows 2019-06-13 21:18:01 +00:00
Christian Duerr 0b88b9fee4
Bump version to 0.3.3-rc1 2019-06-09 22:10:42 +02:00
Christian Duerr bc2c34eb7f
Add wayland primary selection clipboard support 2019-06-09 11:46:31 +00:00
Christian Duerr 4cd55acd78
Bump minimum supported Rust version to 1.32.0 2019-06-08 16:01:14 +00:00
Bernardo Meurer 679b15e274 Update Cargo.lock 2019-05-17 19:08:42 +00:00
Christian Duerr 5d173f6df3
Refactor config parsing files
This is a large refactor of the config parsing structure, attempting to
reduce the size of the file a bit by splitting it up into different
modules with more specific purposes.

This also fixes #2279.
2019-05-10 11:36:16 +00:00
Bastien Orivel 81cd108395 Update dependencies 2019-05-08 08:38:52 +00:00
Christian Duerr f3cc7c4c4e
Fix empty clipboard freezing Alacritty on X11
This fixes #2392.
2019-05-04 18:05:45 +00:00
Nathan Lilienthal 34c54e7e0e
Add git hash to version string, and fix crate name (#2397)
This moves `cli` out of `alacritty_terminal` and into `alacritty` where
it belongs, along with the `clap` dependency.
2019-05-03 19:48:25 -04:00
Christian Duerr 9e89aaa477
Switch from copypasta to rust-clipboard
This switches our own `copypasta` crate with the more standardized
`clipboard` library, which allows us to get rid of the `xclip`
dependency on X11.

Additionally, this lays the foundation for native Wayland clipboard
support once the clipboard crate is updated (or a fork is created).

Fixes #5.
2019-04-28 20:21:39 +00:00
Theodore Dubois dbd8538762 Split alacritty into a separate crates
The crate containing the entry point is called alacritty, and the crate
containing everything else is called alacritty_terminal.
2019-04-28 13:24:58 +00:00
Ben Pye b0efa9d105 Add DirectWrite font rasterizer
This adds a DirectWrite font rasterizer for Windows and enables
subpixel rendering and hinting.

It also completely replaces rusttype for font rendering on Windows,
allowing Alacritty to use the native font stacks on all operating systems.

Fixes #1673.
Fixes #2316.
2019-04-23 17:41:21 +00:00
Christian Duerr 4fbae5e397
Bump version to 0.3.2 2019-04-22 22:19:55 +00:00
Christian Duerr 2b39e6bf99
Bump version to 0.3.1 2019-04-22 16:04:58 +00:00
Christian Duerr cfc20d4f34
Fix cursor dimensions with font offset
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.
2019-04-19 18:00:24 +00:00
Christian Duerr 6716c81c08
Fix update_lines performance issues
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.
2019-04-19 12:07:56 +00:00
Christian Duerr 56fea343ff
Set maximum Rust version to 1.31.0
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.
2019-04-09 19:29:46 +00:00
Christian Duerr 6757acbb82
Bump version to 0.3.0 2019-04-08 19:14:51 +00:00
Christian Duerr f0dbfc9b9c
Fix build errors on BSD
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.
2019-04-04 23:11:29 +00:00
David Hewitt 83b5474c4f Upgrade to winapi 0.3.7 2019-04-04 17:04:06 +00:00
Christian Duerr e98ea64c74
Bump dependencies 2019-04-03 22:57:54 +00:00
Christian Duerr 86ccd0566e
Fix BSD build failure
This updates all dependencies removing any reference to nix 0.12 which
prevents successful builds on OpenBSD.

Fixes #2244.
2019-04-02 23:29:36 +00:00
Hirokazu Hata 94cf97b42d Update Cargo.lock 2019-03-15 00:11:44 +00:00
Christian Duerr 0f96a62218
Update glutin to version 0.20
Fixes #458.
Fixes #1681.
2019-03-14 20:06:38 +00:00
Rachel K 62c1d999e1 Fix signal handling on Unix systems
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-12 19:44:47 +00:00
Christian Duerr 3ec53b4f0b
Bump version to 0.2.9 2019-02-11 23:59:21 +00:00
Christian Duerr 85df82a6fd
Bump version to 0.2.8 2019-02-10 20:14:52 +00:00
Christian Duerr 35efb4619c
Dynamically resize terminal for errors/warnings
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-07 22:36:45 +00:00
Christian Duerr 851e77383e
Remove library lockfiles from git
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-04 23:12:56 +00:00
M. Stoeckl 40237b213a Simplify text shader 2019-02-04 19:03:25 +00:00