diff --git a/CHANGELOG.md b/CHANGELOG.md index 91627d0d..15d0f736 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -90,6 +90,10 @@ ### Changed * `cursor.color` moved to `colors.cursor`. +* Default value of `gamma-correct-blending` changed to `no` + (disabled) ([#2035][2035]). + +[2035]: https://codeberg.org/dnkl/foot/issues/2035 ### Deprecated diff --git a/config.c b/config.c index 7dc41aa6..8e6608d1 100644 --- a/config.c +++ b/config.c @@ -1086,17 +1086,8 @@ parse_section_main(struct context *ctx) return true; } - else if (streq(key, "gamma-correct-blending")) { - bool gamma_correct; - if (!value_to_bool(ctx, &gamma_correct)) - return false; - - conf->gamma_correct = - gamma_correct - ? GAMMA_CORRECT_ENABLED - : GAMMA_CORRECT_DISABLED; - return true; - } + else if (streq(key, "gamma-correct-blending")) + return value_to_bool(ctx, &conf->gamma_correct); else if (streq(key, "initial-color-theme")) { _Static_assert( @@ -3362,7 +3353,7 @@ config_load(struct config *conf, const char *conf_path, .underline_thickness = {.pt = 0., .px = -1}, .strikeout_thickness = {.pt = 0., .px = -1}, .dpi_aware = false, - .gamma_correct = GAMMA_CORRECT_AUTO, + .gamma_correct = false, .security = { .osc52 = OSC52_ENABLED, }, diff --git a/config.h b/config.h index cbdf11b1..be465d68 100644 --- a/config.h +++ b/config.h @@ -232,9 +232,7 @@ struct config { enum { STARTUP_WINDOWED, STARTUP_MAXIMIZED, STARTUP_FULLSCREEN } startup_mode; bool dpi_aware; - enum {GAMMA_CORRECT_DISABLED, - GAMMA_CORRECT_ENABLED, - GAMMA_CORRECT_AUTO} gamma_correct; + bool gamma_correct; struct config_font_list fonts[4]; struct font_size_adjustment font_size_adjustment; diff --git a/doc/foot.ini.5.scd b/doc/foot.ini.5.scd index f7da2c53..32d8bc4a 100644 --- a/doc/foot.ini.5.scd +++ b/doc/foot.ini.5.scd @@ -215,18 +215,19 @@ empty string to be set, but it must be quoted: *KEY=""*) *FREETYPE_PROPERTIES="cff:no-stem-darkening=0"* before starting foot. - Also be aware that many fonts have been developed on systems that - do not do gamma-correct blending, and may therefore look thicker - than intended when rendered with gamma-correct blending, since the - font designer set the font weight based on incorrect rendering. + Be aware that many fonts have been developed on systems that do + not do gamma-correct blending, and may therefore look thicker than + intended when rendered with gamma-correct blending, since the font + designer set the font weight based on incorrect rendering. Note that some colors (especially dark ones) will look a bit off. The reason for this is loss of color precision, due to foot using 8-bit surfaces (i.e. each color channel is 8 bits). The - amount of errors can be reduced by using 10-bit surfaces; see - *tweak.surface-bit-depth*. + amount of error can be reduced by using 10-bit surfaces; see + *tweak.surface-bit-depth* (do read the documentation before + enabling it). - Default: enabled when compositor support is available + Default: _no_ *box-drawings-uses-font-glyphs* Boolean. When disabled, foot generates box/line drawing characters diff --git a/render.c b/render.c index b0d21d18..0ee60d65 100644 --- a/render.c +++ b/render.c @@ -5251,6 +5251,6 @@ render_xcursor_set(struct seat *seat, struct terminal *term, bool render_do_linear_blending(const struct terminal *term) { - return term->conf->gamma_correct != GAMMA_CORRECT_DISABLED && + return term->conf->gamma_correct && term->wl->color_management.img_description != NULL; } diff --git a/wayland.c b/wayland.c index 853124be..c6a76aa7 100644 --- a/wayland.c +++ b/wayland.c @@ -1980,7 +1980,7 @@ wayl_win_init(struct terminal *term, const char *token) xdg_toplevel_icon_v1_destroy(icon); } - if (term->conf->gamma_correct != GAMMA_CORRECT_DISABLED) { + if (term->conf->gamma_correct) { if (wayl->color_management.img_description != NULL) { xassert(wayl->color_management.manager != NULL); @@ -1990,14 +1990,14 @@ wayl_win_init(struct terminal *term, const char *token) wp_color_management_surface_v1_set_image_description( win->surface.color_management, wayl->color_management.img_description, WP_COLOR_MANAGER_V1_RENDER_INTENT_PERCEPTUAL); - } else if (term->conf->gamma_correct == GAMMA_CORRECT_ENABLED) { + } else { if (wayl->color_management.manager == NULL) { LOG_WARN( - "gamma-corrected-blending: disabling; " + "gamma-correct-blending: disabling; " "compositor does not implement the color-management protocol"); } else { LOG_WARN( - "gamma-corrected-blending: disabling; " + "gamma-correct-blending: disabling; " "compositor does not implement all required color-management features"); LOG_WARN("use e.g. 'wayland-info' and verify the compositor implements:"); LOG_WARN(" - feature: parametric"); @@ -2005,8 +2005,6 @@ wayl_win_init(struct terminal *term, const char *token) LOG_WARN(" - TF: ext_linear"); LOG_WARN(" - primaries: sRGB"); } - } else { - /* "auto" - don't warn */ } }