From 2a676dfad837d1784ed0911d314bc263804ef4ef Mon Sep 17 00:00:00 2001 From: Chris Copeland Date: Fri, 15 Jul 2022 14:56:26 -0700 Subject: 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. --- alacritty_config_derive/tests/config.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'alacritty_config_derive/tests/config.rs') diff --git a/alacritty_config_derive/tests/config.rs b/alacritty_config_derive/tests/config.rs index 58ad8bd4..2cdae613 100644 --- a/alacritty_config_derive/tests/config.rs +++ b/alacritty_config_derive/tests/config.rs @@ -35,6 +35,8 @@ struct Test { enom_big: TestEnum, #[config(deprecated)] enom_error: TestEnum, + #[config(removed = "it's gone")] + gone: bool, } impl Default for Test { @@ -48,6 +50,7 @@ impl Default for Test { enom_small: TestEnum::default(), enom_big: TestEnum::default(), enom_error: TestEnum::default(), + gone: false, } } } @@ -90,6 +93,7 @@ fn config_deserialize() { enom_small: "one" enom_big: "THREE" enom_error: "HugaBuga" + gone: false "#, ) .unwrap(); @@ -101,6 +105,7 @@ fn config_deserialize() { assert_eq!(test.enom_small, TestEnum::One); assert_eq!(test.enom_big, TestEnum::Three); assert_eq!(test.enom_error, Test::default().enom_error); + assert_eq!(test.gone, false); assert_eq!(test.nesting.field1, Test::default().nesting.field1); assert_eq!(test.nesting.field2, None); assert_eq!(test.nesting.field3, Test::default().nesting.field3); @@ -116,8 +121,9 @@ fn config_deserialize() { ]); let warn_logs = logger.warn_logs.lock().unwrap(); assert_eq!(warn_logs.as_slice(), [ - "Config warning: field1 is deprecated; use field2 instead", - "Config warning: enom_error is deprecated", + "Config warning: field1 has been deprecated; use field2 instead", + "Config warning: enom_error has been deprecated", + "Config warning: gone has been removed; it's gone", ]); } -- cgit v1.2.3-54-g00ecf