Commit graph

2051 commits

Author SHA1 Message Date
Kirill Chibisov 79860622a7
Fix crash while typing on Wayland
Fixes #6487.
2022-12-06 04:06:50 +00:00
Philip Taron df32b5216b
Fix VirtualKeyCode config documentation
The `winit` crate was split off of the `glutin` crate. This patch fixes
the config link to correctly point to the winit enum instead of the old
glutin reexport.
2022-12-02 22:20:40 +00:00
Kirill Chibisov 2c58e096f9
Ignore errors from swap_buffers
Most of them are innocent and require just swap again. It was
like that before anyway due to old glutin bug in the error
handling implementation where errors won't pulled on swap buffers,
but old observed error was used.

Fixes #6538.
2022-12-02 04:27:08 +03:00
Kirill Chibisov 706682646b
Bump glutin to 0.30.2
Fixes #6498.
2022-12-02 00:45:10 +03:00
Kirill Chibisov 2d619850ae
Add 'debug.renderer' config option
This should help trouble shooting the renderer being created and
different renderer options to determine when something like dual-source
rendering isn't working.
2022-11-28 13:12:53 +03:00
Christian Duerr 19120f40be
Fix padding update not updating renderer
This fixes an issue where it was possible to update the padding of the
terminal without actually queueing an update for the renderer
projection, leading to a blurry projection.

Closes #6502.
2022-11-28 02:06:19 +00:00
James McCoy d92a8a0e16
Update to notify v5 via notify_debouncer_mini
Notify v5 moved the debounced API into the notify_debouncer_mini crate.
The debounced API doesn't provide details on the type of event that
happened, just that a list of events or errors happened. Therefore,
reload is triggered on any event for a matching path.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
2022-11-15 14:10:08 +00:00
Chris Copeland 7785580602
Fix cursor visibility with focus change on macOS
Fixes #6452.
2022-11-11 10:27:05 +00:00
Kirill Chibisov 0e418bc2f7
Update glutin to 0.30.0
The glutin 0.30.0 update decouples glutin from winit which
provides us with basis for a multithreaded renderer. This
also improves robustness of our configuration picking,
context creation, and surface handling.

As an example we're now able to start on systems without a vsync,
we don't try to build lots of contexts to check if some config works,
and so on.

That also brings us possibility to handle context losses, but that's
a future work.

Fixes #1268.
2022-11-03 19:37:54 +03:00
Kirill Chibisov 578e08486d
Update winit to 0.27.5
Fixes #6396.
2022-10-26 23:04:35 +03:00
Kirill Chibisov 2a2d38fcaa
Bump crossfont and sctk-adwaita
Fixes #6432.
Fixes #6414.
Fixes #6400.
Fixes #6338.
2022-10-26 01:32:02 +03:00
Kirill Chibisov e3af53c863
Fix startup failure on macOS with dash as /bin/sh
The dash's exec doesn't have `-a` argument we rely on when running
login shell, so use zsh instead.

Fixes #6426.
2022-10-22 13:17:46 +03:00
Kirill Chibisov 62e9d3ab39
Fix crash with very low font sizes
Fixes #6432.
2022-10-21 22:40:42 +03:00
Kirill Chibisov 5b1dd38806
Fix cursor and underlines always being black
Some old hardware doesn't like universal shader approach for all the
rectangle kinds leading to ALU instruction limits. This commit fixes
it by splitting the shader per rectangle kind.

Fixes #6417.
2022-10-21 22:19:42 +03:00
Andrzej Grzeslak c3b915b695
Fix --help output for --class to match man pages
The output of --help did not match the man pages with regards to the
ordering of arguments for the --class flag. This has now been fixed.

Fixes #6413.
2022-10-18 22:11:40 +00:00
Christian Duerr 269b6e3dba
Fix changelog versioning 2022-10-14 05:57:20 +03:00
Christian Duerr 1ea49b9a6f
Fix Windows release build
Closes #6392.
2022-10-14 01:57:56 +00:00
Christian Duerr 21c75d9d94
Fix clippy warnings
This patch applies all clippy lints currently present on the latest
clippy master than are compatible with our oldstable clippy (only
exception is the `_else(||` stuff).
2022-10-12 07:40:46 +03:00
Kirill Chibisov 182086f59c
Bump winit to 0.27.4
Fixes #6370.
Fixes #6356.
2022-10-09 22:57:06 +00:00
Nathaniel Graham d721424822
Add RHEL8 instructions to INSTALL.md
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2022-10-07 22:39:06 +00:00
Hugal31 2aedee1c29
Fix icon decoding on X11
Glutin is waiting for an RGBA buffer with 8-bit depth, but our icon is
16-bit depth. So we need to normalize the color data when decoding the
icon.
2022-10-05 13:14:23 +00:00
killian e9ee8dcd9f
Migrate from winapi to windows-sys 2022-09-30 11:49:02 +00:00
Christian Duerr c5ae05e810
Fix IPC config overriding previous values
Before this patch whenever changing the IPC configuration, all previous
configuration options would be discarded. This was the case even when
the new option was invalid.

This patch ensures that the IPC config is only ever cleared when the
`--reset` flag is passed. Invalid IPC config options are logged and
discarded.

Additionally whenever a new IPC config message is sent, all previous IPC
error messages are cleared.

Closes #6330.
2022-09-17 13:32:10 +00:00
Christian Duerr 3a38f0b996
Update unicode-width to Unicode 15
This applies all not-breaking dependency changes, including an update to
unicode-width. This brings support for Unicode 15 with its new widths
table so new glyphs and Emojis are shown correctly.
2022-09-17 13:10:38 +00:00
Kirill Chibisov 5bbba6973f
Bump winit to 0.27.3
Fixes #6324.
Fixes #6313.
2022-09-15 23:51:06 +03:00
Kirill Chibisov bf3e882293
Avoid text cursor location for hyperlink preview
Fixes #6325.
2022-09-14 02:33:15 +00:00
Kirill Chibisov f2e74d9947
Update Cargo.lock for new -dev bump 2022-09-12 12:03:27 +00:00
Kirill Chibisov 1d86775229
Don't enable multisampling
It never worked in the first place, because we were
never requesting it in glutin, and it provides no value
given that textures are already antialiased.
2022-09-11 00:23:32 +03:00
Christian Duerr 89f4bdb770
Add licenses to alacritty_config 2022-09-05 09:39:09 +03:00
Christian Duerr a51dbe25d6
Bump development version to 0.12.0-dev
This is only an update to the development version and does not represent
a stable release.
2022-09-03 19:43:05 +00:00
Christian Duerr 4ddb608563
Add IPC config subcommand
This patch adds a new mechanism for changing configuration options
without editing the configuration file, by sending options to running
instances through `alacritty msg`.

Each window will load Alacritty's configuration file by default and then
accept IPC messages for config updates using the `alacritty msg config`
subcommand. By default all windows will be updated, individual windows
can be addressed using `alacritty msg config --window-id
"$ALACRITTY_WINDOW_ID"`.

Each option will replace the config's current value and cannot be reset
until Alacritty is restarted or the option is overwritten with a new
value.

Configuration options are passed in the format `field.subfield=value`,
where `value` is interpreted as yaml.

Closes #472.
2022-09-01 01:48:38 +03:00
Kirill Chibisov 18f9c27939
Add inline input method support
This commit adds support for inline IME handling. It also makes the
search bar use underline cursor instead of using '_' character.

Fixes #1613.
2022-08-29 16:29:13 +03:00
Kirill Chibisov 791f79a02a
Rework --class CLI option
This commit swaps the order of `general` and `instance` arguments
and also sets `instance` to `general` when only one argument was
provided. This should make this option behave like in other terminals
on X11, since they set either both or general by default, but
not instance like Alacritty.

Fixes #6279.
2022-08-25 05:51:19 +00:00
Christian Duerr 8f88b4d4be
Include extra directory in crate
Instead of having the extra symlink in the root, this puts the symlink
in the alacritty crate. Since we build the package on Linux this is not
a problem and even allows us to get rid of the `alacritty.png` symlink.

To avoid having complicated symlinks with regards to the windows build
assets directory, it has just been removed from the `extra` directory
completely. Since we only need it for building, it doesn't matter where
it's located and users will never have to interact with it manually
anyway.

Closes #6242.
2022-08-24 09:19:30 +00:00
Ulrik de Muelenaere 23915cfc53
Fix general and instance class set on window (#6276)
This fixes a regression introduced in 7d708d5, which caused the general
and instance class to be swapped.
2022-08-20 16:43:02 +00:00
Kirill Chibisov 5549e9eb04
Bump winit to 0.27.2 2022-08-13 10:06:54 +04:00
trimental 376300385b
Use WindowEvent::Occluded to hint rendering
This should prevent rendering on macOS and X11 to invisible
windows.
2022-08-11 13:06:19 +04:00
Kirill Chibisov 7d708d53f7
Bump glutin to 0.29.1
Fixes #6239.
Fixes #5975.
Fixes #5876.
Fixes #5767.
Fixes #4484.
Fixes #3139.
2022-08-10 16:48:46 +04:00
Sabu Siyad 76c5d01ee2
Warn if only columns XOR lines is set
Co-authored-by: Christian Duerr <contact@christianduerr.com>
2022-08-02 20:43:37 +00:00
Mikayla Maki 1df32309fe
Make grid mutably accessible to libraries
Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
2022-07-29 06:31:31 +00:00
Peter DeLong f4304d5a30
Fix visible regex match on tall viewports
The end of the search window is currently calculated using the viewport
start instead of the end.  The observed behavior is that all hinting
stops suddenly after line 101.  This was introduced in #6139 when the
code was refactored into this file from display/content.rs.
2022-07-26 12:15:40 +03:00
Chris Copeland 766a3b5582
Fix clippy warnings 2022-07-25 03:04:27 +00:00
Kirill Chibisov b86667b298
Remove redundant dirty updates
In some cases dirty was set without any ui update leading
to extra redraws, this commit resolves this.

Co-authored-by: Greg Depoire--Ferrer <greg@gregdf.com>
2022-07-25 02:17:57 +03:00
Kirill Chibisov 4fce2b16f5
Fix inverted condition for cell's extra clearing
Fixes #6215.
2022-07-24 13:05:46 +03:00
Chris Copeland c3f3bd3666
Register Alacritty shells as tty sessions on macOS
Unless the `shell` config is specified, launch the user's shell with:

```sh
login -flp $USER /bin/sh -c "exec -a -shell /path/to/shell"
```

On macOS, just running a shell prefixed by `-` is not sufficient to be
registered as a login session for things like `w` and `logname`.
However, using the `login` command changes the directory to `$HOME`
before running the program by default, which is not desired. The `-l`
flag disables this behavior, but also skips prepending `-` to the
executed program, so shells will not run as login shells. Instead we
just do this part ourselves with `exec -a`. The result is login shells
that run in the intended directory and are registered as tty sessions.

Fixes #3420.
2022-07-24 02:51:16 +00:00
Mikayla Maki ed4614d0bd
Remove panics from UNIX PTY initialization
Co-authored-by: Mikayla Maki <mikayla.c.maki@icloud.com>
2022-07-20 22:30:55 +00:00
Chris Copeland 48454c0047
Replace map().unwrap_or() with map_or()
Use a `map_or` instead of a `map().unwrap_or()` chain.
2022-07-20 11:24:27 +03:00
Chris Copeland 2a676dfad8
Fix thin strokes on macOS
Remove the `font.use_thin_strokes` config, which only did anything on
macOS and only prior to Big Sur. Instead, we will enable or disable
"font smoothing" on macOS based on the `AppleFontSmoothing` user
default.

These changes let users get the "thin strokes" behavior by setting
`AppleFontSmoothing` to 0 with:

```sh
$ defaults write -g AppleFontSmoothing -int 0
```

(Or replace `-g` with `org.alacritty` to apply this setting only to
Alacritty.app, rather than the whole system.)

Add a `removed` config attribute to show helpful warnings to users
who are using config options that don't do anything anymore, and apply
this attribute to `font.use_thin_strokes`.

Bump `crossfont` to 0.5.0 to pick up the new font smoothing behavior.
This release also includes a fix for a crash when trying to load a
disabled font.

Fixes #4616.
Fixes #6108.
2022-07-15 21:56:26 +00:00
Kirill Chibisov 40bbdce6de
Fix hyperlinks not being keyboard actionable
This fixes a typo in 694a52b which was filtering all hyperlinks, except
only duplicated ones when opening them with keyboard.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
2022-07-11 22:54:28 +03:00
Kirill Chibisov e09ff0b4b0
Use org.alacritty instead of io.alacritty
The common naming is reverse DNS, and given that alacritty is using
alacritty.org it makes more sense to use org.alacritty instead of
old io.alacritty.
2022-07-10 23:55:57 +03:00