Commit Graph

1175 Commits

Author SHA1 Message Date
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
Nicolas Hahn a47d716daa Update pty size when font size changed 2019-04-19 13:34:38 +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
Nathan Lilienthal badc41e1d0 Remove outdated comment line. 2019-04-18 22:33:57 -04:00
Eike Christian Karbe ab8fddd593 Call TIOCSWINSZ only on grid change
Instead of calling TIOCSWINSZ for every pixel change it will now be called only on changes to the grid size. This should reduce screen refreshes.

This fixes #2177.
2019-04-17 22:42:27 +00:00
Christian Duerr 5174f9b274
Fix duplicate resize events
If a resize event is identical to the current size, it is no longer
propagated but the resize is discarded immediately.

To further prevent resizes when not necessary, the list of monitors is
enumerated and the DPR of the first display is assumed to be the target
DPR.

This allows spawning a window with dimensions when the config has
columns and lines specified and the window only needs to be resized if
the estimated DPR is not correct.

Fixes #1825.
Fixes #204.
2019-04-14 15:37:58 +00:00
Christian Duerr aac62ce5ac
Fix macos subprocess execution
This fixes the execution of subprocesses on macOS which could sometimes
prevent actions like `SpawnNewProcess` or custom commands from launching
their processes correctly.

This fixes #2259.
2019-04-11 08:41:20 +00:00
Matthias Krüger 3478676f8f Remove redundant closures and imports 2019-04-11 07:54:26 +00:00
Michael Murphy d406627acb Add Pop!_OS to the list of supported Linux distros 2019-04-10 18:29:53 +00:00
Alex Touchet 94ab5f2b5b Switch 0.3.0 announcement link to https 2019-04-10 18:11:20 +00:00
Christian Duerr 6518231924
Fix Alacritty icon background on Windows
This fixes #2285.
2019-04-10 00:04:24 +00:00
Christian Duerr e35796485c
Document URL launcher parameter options
This fixes #2112.
2019-04-09 21:17:22 +00:00
Christian Duerr a0e39c9076
Document EGL driver dependency on Wayland
This fixes #1497.
2019-04-09 21:11:54 +00:00
Christian Duerr 272a583bd0
Document VC++ redistributable requirement
This fixes #1972.
2019-04-09 21:05:26 +00:00
Christian Duerr 2b12b16678
Document distro support for precompiled binaries
This fixes #2273.
2019-04-09 20:59:46 +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 f2a5def2cb
Add 0.3.0 announcement blog to readme 2019-04-09 16:54:09 +00:00
Alex Touchet 22eff1b550 Remove duplicate changelog entry 2019-04-08 22:37:21 +00:00
Daniel Eklöf bc80a74a69 Reset scrolling region when receiving RIS escape 2019-04-08 22:19:22 +00:00
Jerry Yin 090842bd8e Add ScrollLineUp and ScrollLineDown actions for scrolling line by line 2019-04-08 19:50:06 +00:00
Christian Duerr 6757acbb82
Bump version to 0.3.0 2019-04-08 19:14:51 +00:00
Christian Duerr cd8d537bed
Add new icon to macOS binary
This adds the new Alacritty icon to the macOS binary available in the
github releases. On sizes 128x128 and up the image with scanlines is
included.

The ci deployment process should now also offer the svg file for
download so the .desktop file can be used without having to look through
the repos for the icon.
2019-04-07 04:42:10 +02:00
David Hotham 4cfb17529d Fix warning about inconsistent types in shader 2019-04-06 22:36:49 +02: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
Christian Duerr 5776ec09d6
Disable automatic graphics switching on macOS
Temporarily disabled automatic graphics switching due to a bug in macOS
which leads to crashing.

See #2221.
2019-04-04 23:05:49 +00:00
Christian Duerr 91f889849e
Fix .desktop path in snapcraft.yml 2019-04-04 20:57:19 +00:00
Kirill Chibisov dbce674d70 Add icon to Linux .desktop file 2019-04-04 18:41:57 +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
Christian Duerr 48d781d123
Fix Windows deployment 2019-04-02 22:58:18 +00:00
Christian Duerr 6f4d1afcf8
Add official logo 2019-04-01 22:41:20 +00:00
Christian Duerr 5523f64c6f
Revert daemon removal
This reverts the removal of the call to libc::daemon and instead adds an
annotation to ignore the deprecation warnings on macos.

This will not be an issue in the future since macOS is only discouraging
the use of `daemon`, but I'm not aware of any intention to actually
remove it.

This fixes #2211.
2019-04-01 22:27:27 +00:00
David Hewitt a9c6e2807f Merge "Changed" sections in ChangeLog 2019-03-31 18:29:04 +00:00
Christian Duerr cfd025b528
Add rustfmt style guide 2019-03-30 16:48:36 +00:00
Christian Duerr 91aa683bcd
Rework URL highlighting
This completely reworks URL highlighting to fix two issues which were
caused by the original approach.

The primary issues that were not straight-forward to resolve with the
previous implementation were about handling the URL highlighted content
moving while the highlight is active.

This lead to issues with highlighting with scrolling and when the
display offset was not 0.

The new approach sticks closely to prior art done for the selection,
where the selection is tracked on the grid and updated whenever the
buffer is rotated.

The truncation of URLs was incorrectly assuming input to be just a
single codepoint wide to truncate the end of URLs with unmatching
closing parenthesis. This is now handled properly using Rust's built-in
Unicode support.

This fixes #2231.
This fixes #2225.
2019-03-30 09:23:48 +00:00
Christian Duerr 28636923e0
Update --class docs
Since the `--class` flag has been changed to take effect on Wayland too,
the documentation has been updated to reflect that.

The original change was made in #2077.
2019-03-29 13:21:55 +00:00
Christian Duerr 8654a09f73
Fix prompt jumping during reflow
If the window is resized while lines are longer than the visible area,
Alacritty will no longer move down the prompt and pull from history when
possible but instead keep the prompt in place and move the additional
lines into the scrollback buffer.

This fixes #2213.
2019-03-28 14:35:01 +00:00
Christian Duerr 16153e615d
Disable URL highlight with URL launcher disabled 2019-03-28 07:02:44 +00:00
Christian Duerr 77536e8fac
Revert accidental deletion of change log entry 2019-03-26 17:38:01 +01:00
Elaina Martineau 022f0782e4 Fix `start_maximized` option on X11 2019-03-25 00:27:34 +00:00
Christian Duerr 3e36d714fe
Fix URL highlight crash
The URL highlight stores the state of the last URL highlight with the
position of the URL start position. However when resizing, it's possible
that the indices of this point change which will cause a crash if the
old positions are not within the grid anymore.

This has been resolved by resetting the URL highlight state whenever the
terminal is resized.

The original PR incorrectly required the shift modifier to be required
when the user was in the alternate screen buffer. However the correct
behavior is to require it when the mouse mode is enabled.

This has been resolved and URLs are now highlighted in the alt screen
even if no shift modifier is pressed.

This fixes #2194.
2019-03-24 17:37:30 +00:00
Christian Duerr d8272662db
Fix URL parsing with double-width characters
Since double-width characters are followed by an empty cell containing
only the `WIDE_CELL_SPACER` flag, the URL parser would stop once
encountering the cell after a double-width character.

By skipping cells that contain the `WIDE_CELL_SPACER` flag and
incrementing the URL length by unicode width of the character instead of
cell count, this can be resolved for both URL launching and URL
highlighting.

Fixes #2158.
2019-03-23 11:56:46 +00:00
Alex Touchet d29c309007 Update extended-description for deb file 2019-03-21 22:45:03 +00:00
Christian Duerr 32cb48774a
Remove deprecated libc::daemon call
Since version 10.5 of macOS the libc::daemon call has been deprecated.
While it is recommended by macOS to use launchd instead, this is not
easily available on other unix platforms.

However since we just spawn a daemon process to prevent Alacritty from
spawning zombies, we can manually invoke `fork` in the child process to
cause a double-fork and re-parent the child process under init so it can
be reaped automatically.

Since the daemon call is not part of POSIX, using the double fork on all
unix platforms also has some portability advantages.
2019-03-21 19:55:19 +00:00
Christian Duerr c6ab2a8867
Fix URLs getting incorrectly extended to next line
If a URL ends right at the end of the terminal, it would sometimes
incorrectly include the characters from the following line when
launching the URL.

Similar to the semantic search function, the URL parsing iterator will
now stop if it encounters a cell at the end of the line which does not
contain the `WRAPLINE` flag.

This fixes #1906.
2019-03-19 22:32:40 +00:00
Christian Duerr a672f7d553
Add URL hover highlighting
This changes the cursor whenever it moves to a cell which contains
part of a URL.

When a URL is hovered over, all characters that are recognized as part
of the URL will be underlined and the mouse cursor shape will be
changed. After the cursor leaves the URL, the previous hover state is
restored.

This also changes the behavior when clicking an illegal character right
in front of a URL. Previously this would still launch the URL, but strip
the illegal character. Now these clicks are ignored to make sure there's
no mismatch between underline and legal URL click positions
2019-03-19 19:14:17 +00:00
Christian Duerr eb7a1ea803
Remove InclusiveRange code
This removes all inclusive range code since it has been recently
stabilized in the standard lib.
2019-03-17 21:09:27 +00:00
Christian Duerr fc28e49c27
Add change log entry for Wayland title fix
Fixes #2104.
2019-03-15 20:48:51 +00:00
Aaron Goodfellow e2eb5bbd2e Add additional key bindings for changing font size
This fixes #2010.
2019-03-15 20:41:48 +00:00