Commit graph

315 commits

Author SHA1 Message Date
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