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).
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.
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.
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.
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.
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.
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.
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.
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>
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.
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.
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>
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.
This commit adds support for hyperlink escape sequence
`OSC 8 ; params ; URI ST`. The configuration option responsible for
those is `hints.enabled.hyperlinks`.
Fixes#922.
When we have currently active context when asking EGL on Wayland to
create new context it'll lock the backing buffer of surface using that context.
So making it non-current before-hand to prevent it.
Follow-up to 90552e3.
When using `--config-file /dev/null` with `live_config_reload`, each
write to `/dev/null` was forcing alacritty to reload its configuration.
This commit makes alacritty ignore special files for live config reload.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
GLES2 has GL_EXT_blend_func_extended extension that enables
dual-source blending, so essentially we can reuse fragment shader
from GLSL3 renderer and do 1 rendering pass instead of 3 for the
text.
Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
Co-authored-by: Christian Duerr <contact@christianduerr.com>