Commit graph

220 commits

Author SHA1 Message Date
Kirill Chibisov b735975486 Fix sending chars with bind not clearing selection
Fixes #2925.
2019-10-29 17:56:48 +01:00
Kirill Chibisov 9ff2838844 Fix visual bell rendering mode
Fixes #2911.
2019-10-26 21:45:47 +02:00
Ckat f1f51d3c02 Remove terminfo from deb package
Fixes #2685.
2019-10-16 21:31:12 +02:00
Christian Duerr 28cf90d130
Revert "Disable depth and stencil buffers"
This reverts commit 3475e44987.
2019-10-16 02:53:36 +02:00
Christian Duerr 1538f09e0c
Print launch command name on failure 2019-10-15 22:53:25 +02:00
Aleksey Kuznetsov 49380bffd2 Add support for alternate scroll escape
Fixes #2727.
2019-10-15 21:13:58 +02:00
Kirill Chibisov 124e98e94e Fix logged config path separators on Windows
It was discovered that we were logging path with `\\` instead of `\` as
separators on Windows due to use of Debug formatting instead of Display
for paths.
2019-10-14 22:34:54 +02:00
Dustin 401c2aab96 Add support for title stack escape sequences
This commit adds the concept of a "title stack" to the terminal. Some programs
(e.g. vim) send control sequences `CSI 22 ; 0` (push title) and `CSI 23 ; 0`
(pop title).

The title stack is just a history of previous titles.  Applications can push
the current title onto the stack, and pop it back off (setting the window title
in the process).

Fixes #2840.
2019-10-14 19:50:58 +02:00
Jasper Mattsson 3475e44987 Disable depth and stencil buffers
Disable allocation of depth and stencil buffers. This reduces active
GPU memory consumption by almost a third, at least on Linux.
2019-10-11 22:16:13 +02:00
Valentin Ignatev 4cb5566a9c Add --hold CLI flag
This implements --hold flag which keeps Alacritty open after
its child process exits.

Fixes #1165.
2019-10-09 23:37:48 +02:00
Kirill Chibisov 24651a6144 Remove automatic config generation
Fixes #2818.
2019-10-06 12:47:20 +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
wayne f6f444bc2d Add live config reload for font size 2019-10-02 20:49:19 +02:00
Paolo Capriotti 3e82aa2830 Concatenate parameters of title OSC
A semicolon in a title OSC should be interpreted literally, not as a parameter
separator, but the OSC parser is very simple and does not know about arities of
commands.

Therefore, this patch takes all the parameters returned by the OSC parser and
reconstructs the original string by interspersing semicolons. Now an OSC like
'\e]2;hello;world' will set the title to 'hello;world' and not 'hello' like
before.
2019-09-28 18:59:27 +02:00
zsugabubus fe6f1760b4 Add ReceiveChar action for passing key's text 2019-09-28 02:37:22 +02:00
Kirill Chibisov 9a0555bbba Fix cell opacity when color matches terminal bg
Commit e964af8 introduced a regression, where if cell's bg color was
equal to NamedColor::Background rgb color it was rendered with transparent
background. However the correct behavior is to render bg transparent
only when bg color is actually a NamedColor::Background.

Fixes #2814.
2019-09-26 16:10:54 +02:00
Kirill Chibisov ad24485cdb Fix overflow on wrong scroll region setting
Fixes #2822.
2019-09-26 14:44:59 +02:00
Kirill Chibisov 9a14ca42d3 Rework default bindings
This commit removes all bindings which are sending escapes from
the default configuration file, adds bindings for F13-F24, adds bindings
for ScrollToTop/ScrollToBottom actions, removes bindings for Super + F1-F12,
fixes bindings for Alt + F1-F12.

Fixes #2688.
2019-09-18 21:21:01 +02:00
Christian Duerr 8aa406b98b
Bump minimum Rust version to 1.36.0 2019-09-09 21:40:48 +00:00
Nathan Lilienthal 86ffa181b3 Reset the Mouse Cursor While Selecting
This change disabled the mouse cursor and URL highlight (underline)
while a selection is in progress. A click to clear the selection doesn't
trigger a URL action, but will re-enable the URL highlighting to
indicate the next click will trigger the launcher.
2019-09-09 20:39:39 +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
Chris Morgan e69f259d0e
Add bold italic font support
If the terminal escape sequences for bold and italic text are active,
the text should be rendered as bold and italic. However, due to missing
support in Alacritty, it would always render this text in bold.

This adds support for combining the bold and italic escapes to render
text in both styles and allows users to override the font for this
scenario using the `font.bold_italic` configuration option.
2019-08-25 14:30:42 +02:00
John Sullivan ad0365219f Show text cursor when pressing shift in mouse mode
Fixes #2550.
2019-08-24 23:18:50 +00:00
rbong 629ea247cd Follow xparsecolor spec in escape sequences
Escape sequences in xterm are parsed according to xparsecolor.
xparsecolor supports 1, 2, 3, and 4 digit hex colors.
Previously, only 2 digits were supported.

This also fixes a bug where "fX" was parsed as "0xf", where X is an invalid character.

The response to a request for fg/bg must be a valid escape sequence.
The current response uses 4-digit hex, which was previously invalid.
2019-08-19 19:56:27 +00:00
Kirill Chibisov 1da986ae2b
Fix smithay-clipboard integration
Fixes: #2574
2019-08-16 01:33:37 +02:00
Koichi Murase 33cfc52909 Ignore unsupported CSI sequences
Instead of ignoring unexpected intermediates in CSI escape sequences,
the intermediates are now explicitly checked and the escape sequence is
rejected when an unexpected intermediate is found.

Fixes #2171.
2019-08-06 22:59:16 +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
Ben Firth 54dca06bfb Fix double-click selecting trailing tab
Fixes #2639.
2019-07-26 11:18:47 +00:00
Roman Holovin f49350fd5b Respect fontconfig's embeddedbitmap setting
Fixes #2655.
2019-07-23 21:21:11 +00:00
Christian Duerr 3c3239b1cb
Override default bindings with subset mode match
Fixes #2641.
2019-07-15 21:32:48 +00:00
Alex 1c05b3bb0c Query DirectWrite for the rendering mode to use 2019-07-14 10:53:04 +00:00
Kirill Chibisov 9a159a7760 Fix cursor color setting with escape sequence
The cursor rework introduced a regression where cursor color was always picked
from a config file, rather then using `ansi::NamedColor::Cursor` for this
purpose.

This commit also removes `CursorText` option from `NamedColor` enum,
since we can't speculate with `CursorText` during runtime.

Cursor rework commits:
  cfc20d4f34
  371d13f8ef
  0d060d5d80
2019-07-10 21:24:04 +00:00
Elaina Martineau 84aca67296 Change mouse cursor when hovering over the message bar 2019-07-08 18:13:55 +00:00
Kirill Chibisov 7331e89122 Add class and short title completions
Fixes #2612.
2019-07-08 15:19:42 +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
Brian Koropoff 228c641769 Allow setting gtk variant and general class on X11 2019-07-06 19:34:56 +00:00
Lê Viết Hoàng Dũng e398eb8406 Use Menlo as fallback font on macOS
This commit makes alacritty use Menlo as a fallback font on macOS if the config specified font family isn't found.
2019-07-06 09:00:16 +00:00
Christian Duerr a3f56a5f09
Fix X11 clipboard hanging with mime set 2019-06-29 14:35:53 +00:00
Christian Duerr af30f3735a
Fix rows only resetting partially
This resolves an issue with rows only resetting partially, based on
their `occ` state. However this state is not always accurate, so more
than just the occupied elements need to be cleared.

Fixes #2340.
2019-06-28 20:19:15 +00:00
Kirill Chibisov 0815774cbf Perform clear and buffer swap before showing window
This should fill window with background color while it is offscreen instead of
showing it with uninitilized surface and then performing `clear`. So, the new
behavior should prevent glitches during startup. e.g. content of the windows
below, garbage from drivers and so on.
2019-06-25 21:34:55 +00:00
Christian Duerr e2e25b3206
Fix first unfullscreen on fullscreen mode launched window 2019-06-25 21:32:28 +00:00
Christian Duerr f002171c84
Fix performance issues with text reflow
Fixes #2567.
Fixes #2414.
2019-06-23 23:29:01 +00:00
Kirill Chibisov 72088dafec Fix inconsitent cursor position when scrolling
This commit fixes regression introduced in cfc20d4f34.
`self.cursor.line` forced the cursor to hold a fixed location while scrolling
until its "original" location (usually the shell prompt) went off the screen.
So cursor position should be keep updated, which can be achieved by using
`self.inner.line()`.

Fixes #2570.
2019-06-21 23:00:01 +00:00
Christian Duerr e0a286515f
Add block selection
This implements a block selection mode which can be triggered by holding
Control before starting a selection.

If text is copied using this block selection, newlines will be
automatically added to the end of the lines.

This fixes #526.
2019-06-20 15:56:09 +00:00
Christian Duerr fe4cfdc545
Unset DESKTOP_STARTUP_ID environment variable
This unsets the DESKTOP_STARTUP_ID environment variable at startup, to
prevent child processes from inheriting it. This solves problems with
child windows not properly spawning in the foreground with KDE.

More information can be found here:
https://specifications.freedesktop.org/startup-notification-spec/startup-notification-latest.txt
2019-06-16 16:03:52 +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 0b88b9fee4
Bump version to 0.3.3-rc1 2019-06-09 22:10:42 +02:00
Kevin Zheng 204c46c7f9 Fix dynamic multi-color escape codes 2019-06-09 18:02:15 +00:00