Commit graph

550 commits

Author SHA1 Message Date
Christian Duerr 9a78449876
Add ability to select text during search
This removes the restriction of not being able to select text while the
search is active, making it a bit less jarring of a UX when the user
tries to interact with the terminal during search.

Since the selection was used during vi-less search to highlight the
focused match, there is now an option for a focused match color, which
uses the inverted normal match color by default. This focused match is
used for both search modes.

Other mouse interactions are now also possible during search, like
opening URLs or clicking inside of mouse mode applications.
2020-11-13 08:40:09 +03:00
Nathan Lilienthal 4fc35f6038
Spawn new alacritty processes in CWD on macOS
On macOS we can use 'proc_pidinfo' to determine the working
directory of the terminal foreground process.

Fixes #1979.
2020-11-07 04:48:48 +00:00
Christian Duerr 3957a2555d
Deprecate the WinPTY backend 2020-11-06 17:33:02 +00:00
Christian Duerr ec42b42ce6
Use dynamic storage for zerowidth characters
The zerowidth characters were conventionally stored in a [char; 5].
This creates problems both by limiting the maximum number of zerowidth
characters and by increasing the cell size beyond what is necessary even
when no zerowidth characters are used.

Instead of storing zerowidth characters as a slice, a new CellExtra
struct is introduced which can store arbitrary optional cell data that
is rarely required. Since this is stored behind an optional pointer
(Option<Box<CellExtra>>), the initialization and dropping in the case
of no extra data are extremely cheap and the size penalty to cells
without this extra data is limited to 8 instead of 20 bytes.

The most noticible difference with this PR should be a reduction in
memory size of up to at least 30% (1.06G -> 733M, 100k scrollback, 72
lines, 280 columns). Since the zerowidth characters are now stored
dynamically, the limit of 5 per cell is also no longer present.
2020-11-05 04:45:14 +00:00
Christian Duerr 9028fb451a
Fix visual bell getting stuck
This resolves a problem with the visual bell where it would not
automatically trigger a redraw itself after the initial frame has been
rendered.

Since the unit of the visual bell duration is also unclear, it has been
clarified.
2020-10-30 09:22:13 +03:00
Christian Duerr bede5d5d1c
Fix crash with large negative font offset
Fixes #4363.
2020-10-29 22:14:43 +00:00
Kirill Chibisov f03269cab0
Update dependencies
Fixes #4194.
2020-10-14 19:09:19 +03:00
Taylor Blau 56e0f5bb05
Add support for urgency hints CSI
Teach Alacritty to stop setting the window as urgent upon a bell by
emulating xterm's 'bellIsUrgent' resource and relevant CSI. When this
resource is enabled (with 'CSI ? 1042 h'), a bell event causes the
window to be marked as urgent. When the resource is disabled (with 'CSI
? 1042 l'), the window is not marked urgent in the event of a bell.

There are two wrinkles worth noting here:

  - The 'TermMode::URGENCY_HINTS' does _not_ affect the terminal's
    configured bell command, since we only want to control whether or
    not the window is marked as urgent, not anything else.

  - In xterm, the 'bellIsUrgent' resource is _disabled_ by default.
    Since bouncing the dock icon has been the default in Alacritty on
    macOS thus far, do not make an effort to change that in this patch.

This allows users to emit "\e[?1042l" and disable bouncing the dock
icon.

Fixes #2950.
2020-10-10 21:24:40 +00:00
Kirill Chibisov 860adde457
Fix feature checking in cross builds
Checking for target os in build.rs doesn't work, since build.rs
is running for host, so checking should be done in src. Thus moving
'compile_error!' check from build.rs to main.rs.
2020-10-10 00:25:39 +03:00
Kirill Chibisov 67db9b228d
Bump glutin to 0.25.0
Fixes #4206.
Fixes #4162.
Fixes #4017.
Fixes #3998.
Fixes #3831.
Fixes #3782.
Fixes #3708.
Fixes #2734.
Fixes #2714.
Fixes #1801.
2020-10-07 17:40:50 +03:00
Alessandro Menezes 44a6dba0af
Fix non-ascii message bar text width calculation
When formatting text for display in the message bar, Alacritty was using
the byte length of the text instead of the glyph count. This lead to
unnecessary blank space at the end of lines due to overestimation of
their length.

There also were no extra spaces inserted after fullwidth characters,
leading to Alacritty giving them only a single cell of space. In line
with the rest of Alacritty's rendering, a wide char spacer whitespace is
now inserted in the message bar after glyphs which should occupy two
cells.

Fixes #4250.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-10-04 03:17:36 +00:00
ii41 a754d06b44
Add support for single line terminals
This changes the minimum terminal dimensions from 2 lines and 2 columns,
to 1 line and 2 columns.

This also reworks the `SizeInfo` to store the number of columns and
lines and consistently has only the terminal lines/columns stored,
instead of including the message bar and search in some places of the
Alacritty renderer/input.

These new changes also make it easy to properly start the selection
scrolling as soon as the mouse is over the message bar, instead of
waiting until it is beyond it.

Fixes #4207.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-09-27 22:36:08 +00:00
Kirill Chibisov e9c0034f4d
Fix selection incorrectly expanding when scrolled in history
When doing selection expansion we were checking for wide char flags
on a cells from the bottom of the terminal instead of in a current
viewport when scrolled up in history, which was leading to expanding
more than needed if we had wide chars on the same viewport cell,
but in the bottom of the terminal.

Fixes #4257.
2020-09-26 23:51:31 +00:00
Christian Duerr 085cc35b14
Fix IME position with fullwidth chars in search 2020-09-25 00:21:21 +00:00
Christian Duerr 56d25d1ff8
Add changelog entry for FreeType version bump 2020-09-22 20:42:16 +00:00
Rohan Poojary 1bf40a8cc7
Pass existing CLI parameters to SpawnNewInstance
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-09-06 15:38:49 +00:00
Mateusz Mikuła 5ee7ae8a27
Disable WinPTY with windows-gnu toolchain
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-08-31 22:30:45 +00:00
Kirill Chibisov b39c791649
Update smithay-clipboard to 0.5.2
Fixes #4139.
Fixes #4085.
2020-08-30 21:18:01 +03:00
Ayose Cazorla cdf5e51e74
Add escape to report text area size
This implements the escapes `CSI 14 t` and `CSI 18 t` which report the
text area size in pixels and characters.
2020-08-28 22:26:03 +00:00
Christian Duerr 6cfcd7c259
Add CLI parameter to override config options
This uses the facilities added in
3c3e6870de to allow overriding individual
configuration file options dynamically from the CLI using the
--options/-o parameter.

Fixes #1258.
2020-08-22 20:55:27 +00:00
Christian Duerr 3c3e6870de
Add configuration file imports
This adds the ability for users to have multiple configuration files
which all inherit from each other.

The order of imports is chronological, branching out to the deepest
children first and overriding every field with that of the configuration
files that are loaded at a later point in time.

Live config reload watches the directories of all configuration files,
allowing edits in any of them to update Alacritty immediately. While the
imports are live reloaded, a new configuration file watcher will only be
spawned once Alacritty is restarted.

Since this might cause loops which would be very difficult to detect, a
maximum depth is set to limit the recursion possible with nested
configuration files.

Fixes #779.
2020-08-21 18:48:48 +03:00
Christian Duerr 0003f6683f
Fix selection scrolling with message bar visible
This resolves an issue with selection scrolling which would cause the
selection to wrap to the top of the screen once the cursor enters the
padding below the message bar.

Fixes #4120.
2020-08-14 10:26:42 +03:00
Kirill Chibisov 0a1683e84d
Use yellow/red from the config for message bar colors
This commit completes the effort to use config colors for
message bar content by picking red/yellow from user's
colors.normal.{red,yellow} for error/warning messages
instead of fixed colors.

It also removes alacritty_terminal::term::color::RED and
alacritty_terminal::term::color::YELLOW from the alacritty_terminal API,
bumping its version to 0.11.0-dev.

Fixes #4116.
2020-08-13 14:59:35 +03:00
Kirill Chibisov f221108086
Use user's background color for render timer text
Using the user's background color in pair with red should provide better
contrast.
2020-08-13 10:55:11 +00:00
Christian Duerr b904207b19
Add support for double underlines
This adds support for double underlines using the colon separated escape
sequence `CSI 4 : 2 m`.

Alacritty will now also always fallback to the normal underline in case
any of the other underlines like the undercurl are specified. The escape
sequence `CSI 4 : 0 m` can now be used to clear all underlines.

Some terminals support `CSI 21 m` for double underline, but since
Alacritty already uses that as cancel bold which is a little more
consistent, that behavior has not changed. So the colon separated
variant must be used.
2020-08-12 19:05:22 +03:00
Christian Duerr 96ea5c445e
Fix handling of wrapline flag in last line
This resolves an issue where Alacritty would crash when a wrapline flag
was present in the last column of the last line.

While it should not be possible to achieve this with normal text flow,
it is possible to rotate the content downwards using the `CSI Ps T`
escape, causing this bug to occur.

This also works around other issues like the vi cursor jumping to the
top of the screen when trying to move beyond the last column using the
`l` key. In debug mode this even lead to a crash due to the overflow.

Fixes #4109.
2020-08-12 08:36:24 +00:00
Christian Duerr 1d00883f10
Fix characters swallowed during search
This resolves a bug where characters get swallowed when pressing them
after pressing backspace before the backspace key is released.
2020-08-09 23:29:58 +00:00
Christian Duerr 4b516c6365
Add ^C binding to cancel search and leave Vi mode
Fixes #4089.
2020-08-10 01:57:55 +03:00
Christian Duerr 576252294d
Add support for colon separated SGR parameters
This implements the colon separated form of SGR 38 and 48.

Fixes #1485.
2020-08-07 22:37:23 +00:00
Christian Duerr 291de2500f
Use tcgetpgrp to get PID for SpawnNewInstance
Fixes #4082.
2020-08-06 00:42:49 +00:00
Joe Wilm 99c34c7ce9
Reduce InstanceData footprint
The InstanceData type in the rendering subsystem was previously 17 f32s
plus one u8 which occupied a total of 72 bytes per instance. This meant
that for every character or background cell drawn, 72 bytes were sent to
the GPU. In the case of a 400x100 cell grid, a total of 2.9MB would be
sent.

This patch reduces InstanceData's size to 36 bytes, a 50% improvement!
Using the above example for comparison, a worst case of 1.44MB would be
transferred.

The motivation for this patch comes from macOS. Once the terminal grid
would reach a certain size, performance experienced a sharp and dramatic
drop (render times would go from ~3ms to ~16ms). I don't want to
speculate too much on the underlying issue, but suffice it to say that
this patch alleviates the problem in my testing.

While the performance impact was most significant on macOS, with
rendering times cut by more than 50% in some cases, this also results in
a measurable performance difference on other systems with high density
grids.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-08-05 00:24:51 +00:00
Christian Duerr 8b5787a21e
Fix negative window position
This resolves an issue where negative window positions set in the
configuration file would not place the Alacritty window in the correct
location.

Fixes #4061.
2020-08-02 20:09:53 +00:00
Kirill Chibisov c015b39070 Remove 0.5.0 changelog suffix
This is only an update to the changelog and does not represent a stable
release.
2020-08-01 00:38:28 +00:00
Christian Duerr a2b7c9544b Unify changelog section order
This clarifies the order of subsections in the changelog. All entries
are now defined in the order `Packaging`, `Removed`, `Added`, `Changed`
and `Fixed`.

The sections `Security` and `Deprecated` have been removed. Since
deprecation should always just be a soft deprecation with clear user
warnings, it's not much different from just `Changed`, so that should
make it easier to decide where to put things. The `Security` section is
often not clear enough since a lot of changes might have some form of
security impact depending on interpretation. Since there's unlikely to
be any major security advisories from the Alacritty project, that
section is not particularly useful.

The `Added`, `Changed` and `Fixed` order follows the interest of the
user and the impact on them. This puts the most interesting new features
front and center while allowing to go for a deep dive to see if specific
bugs have been fixed.

The `Removed` section was put last since realistically this should not
affect users. All options should be gradually deprecated and no major
features should just get removed. So most of the time this will just
list deprecated features that are now completely removed, which usually
means there's no impact for users that updated from the last version.
2020-07-31 21:01:36 +00:00
Christian Duerr 6378830469 Fix 0.5.0 changelog 2020-07-31 21:01:36 +00:00
Christian Duerr 57c4ac9145
Remove snap packaging config
Since Alacritty should not be responsible for packaging and the
maintainers of the snap package have not kept it up to date, this
removes its configuration file.
2020-07-30 04:02:16 +00:00
Kirill Chibisov 6c4e45f3a6
Bump minimum supported Rust version to 1.43.0 2020-07-28 13:00:55 +03:00
Christian Duerr bedf5f3004
Invert fixed color cursor if it's close to cell bg
This should reduce the number of times people with fixed cursor colors
run into troubles when existing text is already colored.

Using just the background color as a metric instead of both background
and foreground color should ensure that the cursor still has a clear
shape, since just changing the foreground color for a cursor might be
difficult to see. Always inverting the entire cursor instead of keeping
the fixed foreground color is important to make sure the contrast isn't
messed up.

Fixes #4016.
2020-07-26 01:04:39 +00:00
Christian Duerr 0dfd8601c9
Add secondary DA support
This adds support for the secondary DA escape sequence response.
Alacritty's version is formatted allowing for up to 99 minor and patch
versions, which should be sufficient.

The tertiary DA is intentionally not implemented and marked as rejected
in the documentation, since a lot of terminals do not support it, or
report useless data (XTerm/URxvt/Kitty).

Fixes #3100.
2020-07-23 21:55:15 +00:00
Christian Duerr dd32447bc2
Improve selection expansion changelog entry 2020-07-22 18:11:24 +00:00
Christian Duerr 3688b5c075
Bump version to 0.6.0-dev 2020-07-19 20:37:59 +00:00
Mattbazooka 76a4c373da
Fallback to SHELL instead of passwd if present
Instead of just always falling back to the shell specified in the passwd
file when no config or cli shell was specified, Alacritty will not first
look at the `$SHELL` environment variable. If this is unset, it will
still read the passwd file.

Since macOS is a bit peculiar and does not set the `$SHELL` environment
variable by default, it is set manually to the shell used by Alacritty
while any existing `$SHELL` variables are ignored. This matches the
behavior of iTerm and Terminal.app.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
2020-07-14 09:03:36 +00:00
cynecx 68209e88fd
Fix freetype 26.6 format conversion
This resolves a rounding issue when converting to the 26.6 format used
by freetype for character sizes.

This rounding behavior is taken from cairo:
https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/src/cairo-ft-font.c#L900-903

There are various different implementations of the F26Dot6 conversion
online, but the rounding that cairo does seems to be the most common.
Since cairo is very commonly used, it should produce good results
compared with the rest of Linux text rendering.

Fixes #2780.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
2020-07-14 01:13:19 +00:00
Kirill Chibisov 18cf806a27
Remove gui dependencies from alacritty_terminal
This commit removes font dependency from alacritty_terminal,
so it'll simplify the usage of alacritty_terminal as a library,
since you won't link to system's libraries anymore. It also
moves many alacritty related config options from it.

Fixes #3393.
2020-07-11 20:03:09 +03:00
Christian Duerr 521a58d691
Fix crash when configured font is missing
Fixes #3942.
2020-07-11 02:41:45 +03:00
Kirill Chibisov 8bd2c13490
Add option to run command on bell
Fixes #1528.
2020-07-10 22:32:44 +03:00
Kirill Chibisov b78f3d1339
Set default FreeType properties
In addition it also starts respecting Fontconfig's `autohint`
and `hinting` options.

Fixes #3534.
2020-07-10 21:54:35 +03:00
Christian Duerr 44f25493ca
Bump urlocator and unicode-width 2020-07-10 02:26:57 +03:00
Kirill Chibisov 0210a43196
Fail compilation if Fontconfig is not installed on Linux/BSD
Statically linking Fontconfig was leading to slow startup and
various errors, so forcing the use of system's library.
2020-07-10 01:24:55 +03:00
Christian Duerr 46c0f352c4
Add regex scrollback buffer search
This adds a new regex search which allows searching the entire
scrollback and jumping between matches using the vi mode.

All visible matches should be highlighted unless their lines are
excessively long. This should help with performance since highlighting
is done during render time.

Fixes #1017.
2020-07-09 21:45:22 +00:00
Christian Duerr 9974bc8baa
Fix cursor reflow
To make sure that output is consistent even while resizing the window,
the cursor will now reflow with the content whenever the window size is
changed.

Since the saved cursor is more likely to represent a position in the
grid rather than a reference to the content below it and handling of
resize before jumping back to it is more likely than with the primary
cursor, no reflow is performed for the saved cursor

The primary cursor is unfortunately always reflowed automatically by
shells like zsh, which has always caused problems like duplicating parts
of the prompt and stretching it out "infinitely". Since the cursor is
now reflowed appropriately the duplication of the shell prompt should be
reduced, however it is possible that the shell moves the cursor up one
line after it has already been reflowed, which will cause a line of
history to be deleted if there is no duplicated prompt line above the
reflowed prompt. Since this behavior is identical in VTE and Kitty, no
attempt is made to work around it in this patch.

Fixes #3584.
2020-07-09 05:16:20 +03:00
Christian Duerr 65bff1878f
Fix saved cursor handling
This resolves several problems with handling of the saved cursor when
switching between primary and alternate screen. Additionally ref-tests
are also added for all common interactions to make sure the behavior
does not regress.

The behavior is based on XTerm's behavior except for interaction with
`reset`. XTerm does not reset the alternate screen's saved cursor on
`reset`, but VTE does. Since a `reset` should reset as much as possible,
Alacritty copies VTE here instead of XTerm.
2020-07-06 19:10:06 +00:00
Christian Duerr 72c916ff43
Preserve linewrap flag across alt screen switches
While neither VTE, URxvt nor Kitty handle this, preserving the linewrap
flag across alternate screen switches seems like the correct thing to
do. XTerm also does handle this correctly, which indicates that it is a
bug and not a feature.
2020-07-06 05:08:36 +00:00
Andrew Zhou 466f95d3ba
Add auxiliary files to macOS Application bundle
Fixes #2653.
2020-07-04 14:03:48 +00:00
Jeff Windsor e1474a1e5f
Update --help for class option to match manpage 2020-07-04 09:13:32 +03:00
Christian Duerr bc60782e42
Fix reflow of empty wrapped cursor line
This bug was caused by trying to grow the terminal while the cursor line
was wrapped but entirely empty. Resizing the terminal now accounts for
the position of the deleted line and moves the cursor up only when the
line deleted was above it.

The deletion of the line was caused by the shell redrawing itself
whenever the cursor is moved.

Fixes #3583.
2020-07-01 09:58:06 +03:00
Carlo Abelli 8688e47ddb
Fix foreground dimming with truecolor text
Fixes #3766.
2020-06-29 00:07:16 +00:00
Kirill Chibisov 8a39346b75
Clear selection on clear line/screen escapes
Selection is now cleared if clear line or clear screen escape sequences
are clearing content behind it.
2020-06-26 16:04:55 +00:00
Christian Duerr 6c8966f426
Fix scroll down escape pulling lines from history
This works around a bug where the optimized version of the
`Grid::scroll_down` function would just rotate the entire grid down if
the scrolling region starts at the top of the screen, even if there is
history available.

Since rotations of scrolling regions should not affect the scrollback
history, this optimized version is now only called when the max
scrollback size is 0, making it impossible for the grid to have any
history while it is used.

Since the main usecase of this is the alternate screen buffer, which
never has any history, the performance should not be affected negatively
by this change.

Fixes #3582.
2020-06-25 09:50:17 +00:00
Christian Duerr 43c0ad6ea9
Add selection expansion
This allows for expanding the selection using the right mouse button.
The new selection type depends on the number of clicks and applies to
both sides of the selection.

Fixes #1554.
2020-06-23 12:57:15 +03:00
Christian Duerr 87e5b1aa25
Add automatic scrolling during selection
This adds a new `Scheduler` which allows for staging events to be
processed at a later time.

If there is a selection active and the mouse is above or below the
window, the viewport will now scroll torwards the direction of the
mouse. The amount of lines scrolled depends on the distance of the mouse
to the boundaries used for selection scrolling.

To make it possible to scroll while in fullscreen, the selection
scrolling area includes the padding of the window and is at least 5
pixels high in case there is not enough padding present.
2020-06-18 01:02:56 +00:00
Kirill Chibisov b15b476371
Rework default config binding replacement
This reworks the criteria necessary for default bindings to be
overwritten by custom user bindings. It should provide a better
heuristic which accounts for the possibility that notmodes are added
which prevent a conflict between the bindings, so the default isn't
unnecessarily removed.

It is still possible to define a new binding that intersects a default
binding without the default getting removed, if the user explicitly
specifies a mode that doesn't include the default binding's mode. This
is based on the assumption that users explicitly specifying a new mode
are trying to make a mode-specific addition and are capable of removing
the default when desired.

This helps with old modes still being present in user's config files,
since a lot of new config options just have the additional ~Vi mode set.

Fixes #3476.
2020-06-15 03:12:39 +03:00
Jade Michael Thornton 1e32e5a515
Fix font rendering regression on macOS
This fixes a regression introduced in
77f2d6e853.

Fixes #3809.
2020-06-04 20:24:09 +00:00
Christian Duerr e6475c6753
Add version 0.4.3 entries to changelog 2020-06-03 19:52:50 +00:00
Fernando e009869623
Add whitespace after dropped file paths
Fixes #3767.
2020-06-03 00:01:26 +00:00
David Hewitt c102e845cd
Add cargo feature for WinPTY 2020-06-02 21:31:06 +00:00
Christian Duerr 1dacc99183
Refactor Term/Grid separation
This commit aims to clear up the separation between Term and Grid to
make way for implementing search.

The `cursor` and `cursor_save` have been moved to the grid, since
they're always bound to their specific grid and this makes updating
easier.

Since the selection is independent of the active grid, it has been moved
to the `Term`.
2020-05-30 20:45:44 +00:00
Kirill Chibisov f7fb67f870
Update dependencies 2020-05-30 22:54:56 +03:00
Christian Duerr f1bf481eb8
Remove env_logger depedency
The env logger has been broken for over a year and is not used by anyone
as far as I know. This removes this option entirely in favor of
Alacritty's built-in logger level selection flags.
2020-05-29 06:22:16 +00:00
Kirill Chibisov a669f12793
Set IUTF8 input setting on supported platforms
Fixes #3769.
2020-05-27 18:24:01 +03:00
Kirill Chibisov 0f82817c03
Update copypasta to v0.7.0
Fixes #3592.
2020-05-21 01:22:39 +03:00
Christian Duerr 395fee2b01
Fix crash when writing wide char in last column
This resolves an issue where trying to write a fullwidth character in
the last column would crash Alacritty, if linewrapping was disabled.

Instead of assuming that the linewrap put after the linewrapping spacer
was successful, the character writing is now skipped completely when
trying to put a wide character in the last column.
2020-05-17 15:32:06 +00:00
Christian Duerr 922f48e52c
Bump winit to 0.22.2
Fixes #2601.
Fixes #2475.
2020-05-16 23:31:00 +00:00
Alexey Chernyshov 9a0eac0a14
Change default color scheme to 'Tomorrow Night'
Fixes #3404.
2020-05-16 22:27:31 +00:00
Kirill Chibisov 7ae701d57b
Add support for Fontconfig embolden and matrix options
Fixes #1754.
2020-05-14 04:25:11 +03:00
Christian Duerr b656fba35e
Fix OSCs terminated by \x9c byte in unicode
Fixes #3591.
2020-05-13 12:58:34 +03:00
Christian Duerr 73c7f0c48d
Remove prebuilt linux binaries
Fixes #3628.
2020-05-12 15:18:37 +00:00
lbonn 77f2d6e853
Fix emojis being blended with background
Fixes #1864.
2020-05-12 16:23:35 +03:00
Alexey Chernyshov 49a1ac96f4
Treat Shift + Backspace as Backspace 2020-05-07 15:37:49 +03:00
David Herberth becd7cf459
Don't hide cursor on modifier press
Fixes #2761.
2020-05-06 21:58:43 +00:00
Kirill Chibisov 04f0bcaf54
Use frame callbacks instead of vsync on Wayland
Instead of blocking on vsync, Alacritty now requests a notification from
wayland about when the next frame should be rendered. this helps with
input latency, since it gives alacritty more time to process events
before a redraw. it also prevents alacritty from drawing unless the
compositor tells it to do so.

Fixes #2851.
2020-05-03 23:29:11 +00:00
David Herberth 17a3b85265
Use numbers instead of strings for additional mouse bindings
Fixes: #2861.
2020-05-02 02:03:28 +03:00
Kirill Chibisov 38d20d0c39
Call glFinish right after swap_buffers on X11
On X11 `swap_buffers` does not block for vsync. However the next OpenGl command
will block to synchronize (this is `glClear` in Alacritty), which causes a
permanent one frame delay.

Calling `glFinish` after swapping buffers forces Alacritty to finish the buffer
swap before returning control to the event loop.

Fixes #3061.
2020-05-01 20:57:25 +00:00
Casper Rogild Storm 7901b454ee
Fix startup locale on macOS
Fixes #2800.
Fixes #2566.
2020-04-30 18:04:02 +00:00
David Hewitt f4689a1c36
Use embedded resource for window icon 2020-04-25 14:39:27 +00:00
Christian Duerr 738c8de232 Bump minimum supported Rust version to 1.41.0 2020-04-23 19:04:13 +00:00
Rémi Garde 34daa1237b
Clear selection on grid swap
Fixes #3290.
2020-04-20 23:38:25 +00:00
David Hewitt 840cb1b93a
Add Windows font fallback 2020-04-16 18:46:17 +00:00
Kirill Chibisov 33abfe34a8
Add config option to set cursor thickness
Fixes #3526.
2020-04-15 03:50:34 +00:00
Kirill Chibisov 2fc5120327
Use config colors to theme Wayland decorations
Fixes #2092.
2020-04-09 04:02:10 +03:00
Kirill Chibisov 13eb50de79
Remove 0.4.2 changelog suffix 2020-03-30 17:22:01 +00:00
Kirill Chibisov f80e8eca73
Fix tabstops not being reset with 'reset' 2020-03-30 11:46:20 +03:00
Christian Duerr c35dbc9657
Fix cursor position after alt screen resize
This fixes a regression introduced in 4cc6421, which ignored the main
grid's cursor when increasing the number of lines available, causing
incorrect cursor position after restoring to the primary screen.

Additionally another similar bug has been fixed where the grid was not
scrolled correctly when shrinking while in the alternate screen.

When the grid is resized multiple lines at once, there was also an issue
with Alacritty either pulling all lines from history or none at all,
instead of mixing both approaches and pulling just what is required.
This lead to incorrect cursor positions when the resize could partially
make use of history.

Fixes #3499.
2020-03-24 01:29:07 +00:00
Kirill Chibisov c9c5fbbe2b
Add CopyPrimary keybinding action on Linux/BSD 2020-03-23 23:46:33 +00:00
Christian Duerr 232aea46c0
Add changelog entry for minimum Rust version bump 2020-03-23 19:24:47 +03:00
Stefan Devai 3d7a789fd3
Remove right click deselection
Fixes #3144.
2020-03-19 15:39:00 +03:00
Christian Duerr 1a8cd172e5
Add modal keyboard motion mode
This implements a basic mode for navigating inside of Alacritty's
history with keyboard bindings. They're bound by default to vi's motion
shortcuts but are fully customizable. Since this relies on key bindings
only single key bindings are currently supported (so no `ge`, or
repetition).

Other than navigating the history and moving the viewport, this mode
should enable making use of all available selection modes to copy
content to the clipboard and launch URLs below the cursor.

This also changes the rendering of the block cursor at the side of
selections, since previously it could be inverted to be completely
invisible. Since that would have caused some troubles with this keyboard
selection mode, the block cursor now is no longer inverted when it is at
the edges of a selection.

Fixes #262.
2020-03-18 02:35:08 +00:00
Nathan Lilienthal 64db7d3daa
Add default keybinding for SpawnNewInstance on macOS 2020-03-17 22:37:36 +03:00
Christian Duerr e272572168
Fix changelog version 2020-03-14 22:09:28 +00:00
Christian Duerr 6801c4a4fd
Bump version to 0.5.0-dev
This is a bump of the development version and does not represent a
stable release.
2020-03-14 16:39:02 +00:00
Christian Duerr ead8d68c69
Fix live config reload for window title
This enables live config reload for the window title. This includes
updating the title after it has been pushed and popped from the title
stack.

The dynamic title option also isn't disabled automatically anymore when
the title is set in the config. If the title is set from CLI, the
behavior is unchanged and dynamic title changes are still disabled.

If the dynamic title is disabled in the config, the title is still
updated when the config title is changed. Dynamic title now only
prevents changes to the UI's title.
2020-03-14 15:09:10 +00:00
Nathan Lilienthal d20051b5e5
Capitalized the .desktop Filename (#3425)
Follow free desktop file naming conventions.
2020-03-13 15:17:19 -04:00
Kirill Chibisov 4000ec04d8
Add option to pick Linux/BSD backends
This commit adds two cargo features `x11` and `wayland` to pick
Linux/BSD backends, with both enabled by default.

Fixes #3340.
2020-03-13 03:33:12 +03:00
Christian Duerr cc2fc0b1c3
Update to glutin 0.24.0
Fixes #3266.
Fixes #3248.
Fixes #3188.
Fixes #3177.
Fixes #2445.
Fixes #1574.
2020-03-12 01:31:59 +03:00
Kirill Chibisov bb0a214a15
Bump copypasta to 0.6.3
Fixes #3050.
2020-03-10 02:15:30 +03:00
Christian Duerr 64a3115648
Fix selection with invisible start and end
This resolves an issue with the selection clamping, where no selection
would be rendered at all when the start was above the viewport while the
end was below it.
2020-03-07 22:17:38 +00:00
Timo f83d55f0f0
Fix ignoring of slow touchpad scrolling
Fixes #3377.
2020-03-02 08:32:18 +03:00
Christian Duerr 1972cce8a4
Fix DCS escape parsing crash
This resolves a problem with the vte depedency, where the parser would
crash when trying to parse a DCS escape with more than 16 parameters.
2020-03-02 01:19:06 +00:00
Christian Duerr 8c64224582
Remove tabspaces config option
This completely removes the tabspaces option from the Alacritty
configuration, due to frequent misuse of it. Based on some research,
none of the terminal emulators support setting the value for tabspaces
or read the terminfo to determine init_tabs value at startup. The tested
terminal emulators were URxvt, XTerm, and Termite.
2020-03-01 07:07:36 +03:00
Christian Duerr bea6ece3f6
Fix tabs across linewrap
This resolves an issue with tabs not breaking across line boundaries,
instead the characters would just all get written to the last column and
thus be lost.

It also tweaks the behavior of what happens when the terminal resizes
with the default tabspaces changed, using something like the `tabs`
program. Previously all tabstops would be reset to the default on
resize, which is what URxvt does. Now the tabspaces are kept and the new
columns are filled with the default tabstops, which emulates Termite.
2020-03-01 06:27:23 +03:00
Kirill Chibisov 2365425fd2
Fix log target of color config errors
Due to incorrect log target in the color config errors, the message bar was not
cleared when the error was fixed.
2020-02-28 02:28:15 +00:00
Kirill Chibisov e3f095ca96
Fix crash on Wayland compositors with wl_seat version 7+ 2020-02-28 01:02:34 +03:00
Christian Duerr fa11b56cf6
Fix config reload updating incorrect grid 2020-02-23 01:55:29 +00:00
Kirill Chibisov 73641d0367
Fix Fontconfig's font size query
Previously we were rounding pattern's `pixelsize` before `fc_sort`, however we were using not rounded one in `get_glyph`, so bitmap fonts could look a bit smaller when used in a mix with scalable fonts.
2020-02-23 02:09:23 +03:00
Christian Duerr 71dd1bc386
Fix block selection including last column
The block selection will now only insert extra newline characters after
each line if the last line isn't already included. This resolves an
issue with duplicate newlines, since newlines are automatically appended
when the last column is part of a selection.

Fixes #3304.
2020-02-22 02:42:44 +00:00
Christian Duerr ff09e39309
Fix parser stopping at unknown modes
This resolves an issue in the parser where it would stop as soon as the
first unknown value is encountered in private mode/sgr attribute
escapes.

Fixes #3339.
2020-02-15 20:00:53 +00:00
Kirill Chibisov 696fc792e8
Increase Beam, Underline and Box cursors' line width 2020-02-13 22:22:02 +00:00
Christian Duerr bfd69d0178
Bump vte and urlocator
Fixes #3247.
2020-02-11 23:50:20 +00:00
Christian Duerr 3b8ef3a0c4
Revert "Fix backspace deleting chars when IME is open"
This reverts commit 7f4dce2ee0.

Originally it was assumed that macOS always sends the \x7f on backspace
anyways, however this is not true. It seems like the character on
backspace can change even within the same terminal session, so we need
to have our own binding to reliably set the correct binding.

A solution for #1606 should be implemented in cooperation with winit.
2020-02-10 23:41:48 +00:00
Kirill Chibisov db9e8d4b97
Update glutin to v0.23.0
Fixes #3191.
Fixes #3150.
Fixes #1465.
Fixes #1359.
2020-02-07 16:44:11 +03:00
Christian Duerr 6832b86aa7
Fix selection expansion across full-width glyphs
Instead of trying to expand the start and end of a selection across
full-width glyphs, the selection should now only go from its origin to
the end without any kind of expansion.

Instead, the expansion is now done where the cells are actually checked
for their selection status, expanding across the entire full-width glyph
whenever any part of it is selected.

Fixes #3106.
2020-02-07 09:50:18 +03:00
Kirill Chibisov 15cc07c069
Fix handling of OpenType variable fonts
Fixes #3257.
2020-01-31 14:54:02 +00:00
Christian Duerr 2ef5e47b8e
Mirror OSC query terminator
Fixes #3091.
2020-01-31 00:00:23 +00:00
Christian Duerr 7f4dce2ee0
Fix backspace deleting chars when IME is open
Fixes #1606.
2020-01-30 22:16:30 +00:00
Kirill Chibisov 6b327b6f8f
Rework Fontconfig fallback to use cached list from font_sort
Previous implementation was querying Fontconfig using `charset` in a pattern,
which was leading to unpredictable fallbacks in some cases, since Fontconfig
was picking the font with the most coverage for a given charset, regardless of
user configuration. Moreover all fallback was based on font_match which is
extremely slow for such performance sensitive task as a fallback, so alacritty
had a hard times on vtebench's unicode-random-write.

The new approach is to use some internal fallback list from font_sort
and iterate over it to get a proper fallback font, since it matches the
following example query from `fc-match`:

`fc-match -s "monospace:pixelsize=X:style=Y"

That being said it's more intuitive for users to setup their system Fontconfig
fallback, and also most applications are doing similar things. Moreover the new
implementation uses internal caches over Fontconfig API when possible and
performs font matches only once during load of requested font with font_sort,
which leads to dramatically improved performance on already mentioned
vtebench's unicode-random-write.

Fixes #3176.
Fixes #3134.
Fixes #2657.
Fixes #1560.
Fixes #965.
Fixes #511.
2020-01-27 03:54:33 +03:00
Kirill Chibisov f48204eee2 Add font metric caching 2020-01-25 00:42:23 +01:00
Christian Duerr bdd28f4766
Fix selection rotating outside of scrolling region
Fixes #2983.
2020-01-24 23:57:22 +01:00
Kirill Chibisov e61c28e451
Fix underline position for bitmap fonts
Fixes #3235.
2020-01-22 23:47:59 +03:00
Kirill Chibisov 767d59155a Fix stack overflow when printing shader error
Fixes #3238.
2020-01-21 23:36:44 +01:00
Christian Duerr c84cd0fdb0
Fix first cell when selection is off screen
Since the expansion of the selection was done after clamping it to the
grid, the selection would incorrectly move the clamped start over by one
cell when the start was to the right of the original column. By
resetting the side of the start point to `Left` before expanding, this
can be circumvented.

This also resolves a regression which broke backwards bracket selection.

Fixes #3223.
2020-01-21 00:56:10 +01:00
Kirill Chibisov 5e22512fe6 Disable drawing bold text bright by default
Since the assumption is usually that bold text is drawn in bright
colors, this might break some applications. However some other terminals
have already taken this leap, which should lessen the impact for
Alacritty.

Since this might still be desired and necessary for certain
applications, the config option is just switched to draw with normal
colors by default, however the old behavior can still be restored.

Fixes #2779.
2020-01-20 22:13:39 +01:00
Kirill Chibisov 2f1a390aaa
Remove scrolling.auto_scroll feature
Fixes: #1873
2020-01-20 23:03:54 +03:00
Christian Duerr fb1d3bef3f
Bump minimum Rust version to 1.37.0 2020-01-19 16:27:24 +01:00
Josh Comer 2199bbef51 Force application symlink on macOS make build 2020-01-18 15:48:34 +03:00
Michael Fresco bd96e7f769 Change Alacritty .ico to use higher resolution
Fixes #2651.
2020-01-17 22:28:34 +01:00
Christian Duerr 3203d2b3fa Fix reset CLI parameters on config reload (#3216)
Fix reset CLI parameters on config reload

Fixes #3197.
2020-01-17 02:42:26 +03:00
Christian Duerr 7d1edf01c2
Expand line selection across wrapped lines 2020-01-15 17:36:33 +01:00
David Hewitt 7dc406252b Remove Windows working directory canonicalization
Fixes #3198.
2020-01-15 13:47:15 +01:00
Christian Duerr c1664b348d
Remove synthetic keyboard event handling
Fixes #3109.
2020-01-14 17:01:43 +01:00
Christian Duerr 12e211d82a
Bump VTE to 0.5.0
This change includes dynamic escape buffer support in VTE, which allows
us to have arbitrary escape sizes.

Since tmux could potentially use very long escapes for the clipboard
escape, this allows copying more text.

Fixes #1002.
2020-01-12 17:28:40 +01:00
Christian Duerr 09ed64bd36
Fix crash with invalid working directory 2020-01-12 01:24:56 +01:00
Christian Duerr a82df6ac43
Fix font size reset when moving between screens
Fixes #3183.
2020-01-11 05:19:40 +01:00
Christian Duerr c2c8d6bf37
Move Alacritty to organization
This fixes various outdated links pointing to the old jwilm/alacritty
repository.

Since `copypasta` now has its own github repository at
https://github.com/alacritty/copypasta, the sources have been removed
from Alacritty.
2020-01-11 02:23:13 +01:00
Christian Duerr c34ec12c30
Bump glutin to 0.22.0
Fixes #3165.
2020-01-10 01:51:37 +00:00
Christian Duerr dd1413eb4d
Force exact modifiers match for mouse bindings
Fixes #3152.
2020-01-10 00:44:41 +00:00
Christian Duerr 3fb631b91c
Fix cut off full width glyphs in last column
This resolves the issue with full width glyphs getting rendered in the
last column. Since they need at least two glyphs, it is not possible to
properly render them in the last column.

Instead of rendering half of the glyph in the last column, with the
other half cut off, an additional spacer is now inserted before the wide
glyph. This means that the specific glyph in question is then three
cells wide.

Fixes #2385.
2020-01-09 23:06:41 +00:00
Christian Duerr 18836f20dd
Fix incorrect config path in --help and manpage
Fixes #3154.
2020-01-06 16:14:59 +00:00
Kirill Chibisov 7fd17ab0dd Bump version to 0.4.2-dev 2020-01-05 14:42:11 +00:00
Kirill Chibisov 0cc68da04f Add Minimize binding action
Fixes #2534.
2020-01-05 01:54:14 +00:00
Christian Duerr 1cfb0740bc
Bump winit to 0.20.0 Alpha 6
Fixes #3070.
Fixes #2893.
Fixes #2877.
Fixes #2829.
Fixes #2767.
Fixes #2271.
2020-01-05 01:00:50 +00:00
Christian Duerr dc063180f3
Fix macOS OpenGL context resize ordering
Fixes #2226.
2020-01-04 00:19:06 +00:00
Christian Duerr 77acb26d73
Remove C1 escape support
Fixes #2981.
2019-12-31 20:56:27 +00:00
Kirill Chibisov 6478ccaaa3 Fix high startup time on wlroots compositors 2019-12-31 16:53:27 +00:00
Christian Duerr 9da0c042d4
Fix screen reset not clearing cell flags 2019-12-24 20:51:06 +00:00
Kirill Chibisov 44037fa42a Fix crash on clear when scrolled up in history
Fixes #3112.
2019-12-22 11:05:19 +00:00
David Hewitt 7a957978e4 Default to ConPTY instead of WinPTY 2019-12-21 21:23:18 +00:00
David Hewitt 6deb274b82 Fix deadlock when closing on Windows using Conpty
Fixes #3042.
2019-12-12 16:01:23 +01:00
David Hewitt 4d3f6de41a Fix vague startup crash messages with WinPTY
Fixes #2344.
2019-12-12 00:30:30 +01:00
Christian Duerr 36185c4753
Fix colored row reset performance
This fixes a bug where a row would always get reset completely if its
background does not equal the default terminal background. This leads to
big performance bottlenecks when running commands like `echo "\e[41m" &&
yes`.

Instead of resetting the entire row whenever the template cell is not
empty, the template cell is now compared to the last cell in the row.
The last cell will always be equal to the previous template cell when
`row.occ < row.inner.len()` and if `occ` is equal to the row's length,
the entire row is always reset anyways.

Fixes #2989.
2019-12-10 00:35:13 +01:00
Kirill Chibisov 79b19176ee Add support for colored emojis on Linux/BSD
Fixes #153.
2019-12-09 23:12:44 +01:00
David Hewitt 88b4dbfc5a Fix minimize causing resize Windows 2019-12-09 18:26:31 +01:00
Mark Vainomaa 586ff78df2 Add /Application symlink to macOS DMG 2019-12-07 00:06:38 +01:00
Christian Duerr 6301775d3f
Fix unicode 11/12 glyph width 2019-12-06 22:35:44 +01:00
Christian Duerr 047719bcd2
Add documentation for the release process
Fixes #3032.
2019-12-05 00:12:23 +01:00
Christian Duerr fb046091f6
Fix incorrect DPI after wakeup on X11
Fixes #3022.
2019-12-04 21:11:50 +01:00
Christian Duerr 400d24f023
Fix direct escape input on Windows using alt
Fixes #1939.
2019-11-30 16:36:37 +01:00
Kirill Chibisov 0d637a096a Add Insert/Delete bindings with combined modifiers
Fixes #3046.
2019-11-28 21:18:22 +01:00
jansol 1836d4679a Add prerendered PNG and simplified SVG logo
This should help with compatibility problems with some platforms like
KDE, that do not support all the features necessary for rendering the
default Alacritty logo.
2019-11-28 19:09:14 +01:00
Christian Duerr a075c932f1
Fix OSC 52 with empty clipboard param
This fixes the behavior of the clipboard escape (`OSC 52`) when the
second parameter is not specified. If it is missing, the parameter is
now assumed to be `c`, defaulting to the default clipboard.

This has been fixed both for writing and reading.

Fixes #3037.
2019-11-28 08:08:04 +01:00
Christian Duerr b9c513bd27
Fix parsing of file scheme
Fixes #3034.
2019-11-27 20:21:51 +01:00
Kirill Chibisov 5ea4fb6034 Fix paste on Wayland inserting empty lines
Fixes #2844.
2019-11-21 19:11:55 +01:00
Christian Duerr ec3fa2b33a
Bump master to 0.4.1-dev
To make the release process a bit smoother and prevent a freeze of the
master process while review candidates are out, this will put the master
in a perpetual development state.

This should make it clear to everyone that the official source for
releases is always the tagged branch and make it possible to release new
versions completely independently.

Since versions are bumped after each release, this makes it so the
release branches do not have to get merged back into the master branch
to show the correct development version.
2019-11-19 21:34:34 +01:00
Nathan Lilienthal 182a9d5c2e Fix deletion of lines when clearing the screen
Previously Alacritty would delete lines when clearing the screen, leading to a
loss of data in the scrollback buffer. Instead of deleting these lines, they
are now rotated outside of the visible region.

This also fixes some issues with Alacritty only resetting lines partially when
the background color of the template cell changed.

Fixes #2199.
2019-11-18 22:15:25 +01:00
Kirill Chibisov bcdc605436 Fix ESC escapes not ignoring invalid intermediates
Previously, `ESC` escapes would ignore invalid intermediates and still
execute the specified actions, leading to false positives. If there's an
unexpected, intermediate specified now, the escape will be dropped.

This also fixes an issue with `CSI Ps c` not dropping the escape with
invalid intermediates.
2019-11-17 03:10:11 +01:00
Kirill Chibisov 495a6f3526 Fix cell reset not clearing flags and foreground
Fixes #2330.
2019-11-17 01:04:16 +01:00
Christian Duerr 2a8c6d44e9
Fix CSI Ps M deleting lines above cursor
Fixes #2984.
2019-11-15 20:58:03 +01:00
Kirill Chibisov d707e064a9 Fix mouse modes not being mutually exclusive 2019-11-12 17:50:33 +01:00
Christian Duerr e8ca1ef7d9
Add escape for reading clipboard 2019-11-11 01:12:14 +01:00
Kirill Chibisov 2c671afb69 Add UTF-8 mouse mode support
Fixes #1934.
2019-11-04 20:41:13 +01:00
wayne fa6ceacfa4 Add live config reload for font family and style
Fixes #2737.
2019-11-03 20:02:26 +01:00
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