Commit Graph

1492 Commits

Author SHA1 Message Date
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 6d60a49956
Run clippy on oldest supported version
Since there were some problems with clippy suggesting changes that were
not yet available in the oldest supported Rust compiler of Alacritty,
the clippy stage has been moved from stable to 1.37.0.
2020-03-12 22:49:46 +00:00
Christian Duerr c2e39085e3
Fix crash when selecting last column
This resolves a bug where the selection start would be set to the number
of columns, causing an out of bounds when trying to index with it.
Instead of extending the selection beyond the grid when the right side
of the last column is the start of the selection, the selection will now
start in the beginning of the next line.

Fixes #3446.
2020-03-12 03:14:00 +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
Kirill Chibisov de5d770416
Fix caching of variable font faces 2020-03-06 23:15:43 +00:00
Christian Duerr 33cabfc3d2
Remove `ref_test` option from configuration file
This removes the `debug.ref_test` option from the configuration file,
after this change was originally requested from kchibisov in
https://github.com/alacritty/alacritty/pull/3396.

While this option is valueable for the CLI, it provides no value in the
configuration file.
2020-03-04 11:32:07 +00:00
Rémi Garde f7561850b4
Remove HollowBlock/Hidden config cursor styles
Fixes #3367.
2020-03-02 20:41:26 +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 a710866007
Move debug to bottom of config
Since this information is the least relevant to the user, it should be
the last thing in the configuration file.
2020-03-01 21:41:05 +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
Valentin Ignatev 31e01cc0e0
Add GNU Guix installation instructions 2020-03-01 04:33:36 +03:00
Kirill Chibisov 2ac017fa64
Update terminfo dependency 2020-02-29 21:10:51 +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
Christian Duerr 43f89a64c2
Remove unnecessary macos focus check
Since winit now filters out clicks on unfocused windows on macOS
anyways, we don't need to implement this logic ourselves anymore.
2020-02-27 23:42:39 +00:00
Christian Duerr 17b8bbb908
Remove docs for 0xRRGGBB color notation 2020-02-27 23:06:04 +00:00
Kirill Chibisov e3f095ca96
Fix crash on Wayland compositors with `wl_seat` version 7+ 2020-02-28 01:02:34 +03:00
Kirill Chibisov 223f8dcfd0
Revert caching of font pixelsize
We can't reliably do that, because some fonts are bitmap,
but marked as scalable by Fontconfig.

Fixes #3387.
2020-02-27 23:44:35 +03:00
Cole Helbling 50c1fd077a
Add missing angled bracket to email 2020-02-27 06:07:59 +03:00
Kirill Chibisov 84f57ac836
Add FreeType face cache 2020-02-26 21:29:14 +00:00
Kirill Chibisov 14dc170caa
Change documented default TERM to alacritty 2020-02-23 20:54:44 +00: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
Kirill Chibisov 8abca44182
Fix discarding of FreeType loading flags
Fixes regression introduced in 6b327b6f8f.

Fixes #3355.
2020-02-20 00:24:50 +03:00
bgkillas 933b2e25ff
Add Alpine Linux installation instructions 2020-02-18 00:15:05 +00:00
Christian Duerr eb1a28ce58
Extract winpty crate
The winpty crate and its winpty-sys depedency have been moved to
https://github.com/alacritty/winpty.
2020-02-17 16:24:27 +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
Christian Duerr a842d6827c
Add custom merge strategy for CHANGELOG.md
The merge strategy `union` should hopefully reduce the number of
conflicts when trying to rebase the configuration file, since most of
the changes are simple additions anyways.
2020-02-15 13:25:02 +03:00
Christian Duerr 988a846c52
Add seconds and nanoseconds to log output 2020-02-14 10:35:34 +03:00
Kirill Chibisov 696fc792e8
Increase Beam, Underline and Box cursors' line width 2020-02-13 22:22:02 +00:00
Kirill Chibisov 7ecf93ec70
Fix incorrect display offset after rotation
Regression was introduced in 4cc6421daa,
however it was working before only due to grid.len() bug.
2020-02-12 20:24:24 +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 5cd13f8c47
Document that Alacritty does not create config 2020-02-07 23:39:39 +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
BrainFace cbec5e415b
Add docs about multiple bindings on same trigger 2020-02-05 22:59:16 +00:00
Kirill Chibisov b72903e720
Start window invisible on Windows 2020-02-04 17:47:54 +00:00
Christian Duerr 74039bde12
Remove unsetting of dirty flag on key press
There's no reason why we should ever manually set the terminal to not be
dirty, since this can lead to a lot of other logic being affected. This
also does not have any benefit and was likely added in the event loop
rework as a bug (probably should have been dirty = true).
2020-02-03 02:40:38 +00:00
Kirill Chibisov 2672770683
Fix non-scalable font resize issue
Fixes resize regression from 15cc07c069.
2020-02-03 00:17:04 +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
Christian Duerr 871a22eaf4
Fix inconsistent test module naming 2020-01-28 12:32:35 +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
Christian Duerr 0f15dc05d9 Switch to flamegraph-rs script
This cleans up the Alacritty scripts a bit by removing some of them
which are not recommended to be used anymore and switching from the
official FlameGraph tool to the more specialized Rust FlameGraph
implementation.
2020-01-27 02:30:23 +03:00