diff --git a/kitty/options/definition.py b/kitty/options/definition.py index 9bfc92b4c..d5c373bfe 100644 --- a/kitty/options/definition.py +++ b/kitty/options/definition.py @@ -1592,11 +1592,7 @@ launch your editor. See also :opt:`transparent_background_colors`. Be aware that using a value less than 1.0 is a (possibly significant) performance hit. When using a low value for this setting, it is desirable that you set the :opt:`background` color to a color the matches the -general color of the desktop background, for best text rendering. Note that -to workaround window managers not doing gamma-corrected blending kitty -makes background_opacity non-linear which means, especially for light backgrounds -you might need to make the value much lower than you expect to get good results, -see :iss:`6218` for details. +general color of the desktop background, for best text rendering. If you want to dynamically change transparency of windows, set :opt:`dynamic_background_opacity` to :code:`yes` (this is off by default as it diff --git a/kitty/shaders.c b/kitty/shaders.c index 6fe58523c..523105cc3 100644 --- a/kitty/shaders.c +++ b/kitty/shaders.c @@ -16,7 +16,6 @@ /* * TODO: for shader refactoring - * Check color fringing issues and background lightness issues are properly fixed * Port graphics rendering to start use a dummy 1 pixel empty texture then possibly replace with defines so that the most * common use case of no graphics has zero performance overhead. * Convert all images loaded to GPU to linear space for correct blending or alternately do conversion to linear space in @@ -638,7 +637,7 @@ viewport_for_cells(const CellRenderData *crd) { } static void -draw_cells_simple(Screen *screen, bool is_semi_transparent) { +draw_cells_with_layers(Screen *screen, bool is_semi_transparent) { if (is_semi_transparent) { bind_program(CELL_TRANSPARENT_PROGRAM); glDisable(GL_FRAMEBUFFER_SRGB); @@ -946,7 +945,7 @@ draw_cells(ssize_t vao_idx, const WindowRenderData *srd, OSWindow *os_window, bo has_underlying_image |= grd.num_of_below_refs > 0 || grd.num_of_negative_refs > 0; (void)has_underlying_image; bool is_semi_transparent = os_window->is_semi_transparent && min_bg_opacity < 1.; - draw_cells_simple(screen, is_semi_transparent); + draw_cells_with_layers(screen, is_semi_transparent); draw_scroll_indicator(is_semi_transparent, screen, &crd); if (screen->start_visual_bell_at) {