Add an option to control how much dimming SGR dim does
This commit is contained in:
parent
6f2d63eb87
commit
7282d8edc1
@ -47,6 +47,7 @@ out float bg_alpha;
|
|||||||
|
|
||||||
#ifdef NEEDS_FOREGROUND
|
#ifdef NEEDS_FOREGROUND
|
||||||
uniform float inactive_text_alpha;
|
uniform float inactive_text_alpha;
|
||||||
|
uniform float dim_opacity;
|
||||||
out vec3 sprite_pos;
|
out vec3 sprite_pos;
|
||||||
out vec3 underline_pos;
|
out vec3 underline_pos;
|
||||||
out vec3 strike_pos;
|
out vec3 strike_pos;
|
||||||
@ -152,7 +153,7 @@ void main() {
|
|||||||
uint resolved_fg = resolve_color(colors[fg_index], default_colors[fg_index]);
|
uint resolved_fg = resolve_color(colors[fg_index], default_colors[fg_index]);
|
||||||
foreground = color_to_vec(resolved_fg);
|
foreground = color_to_vec(resolved_fg);
|
||||||
float has_dim = float((text_attrs >> DIM_SHIFT) & ONE);
|
float has_dim = float((text_attrs >> DIM_SHIFT) & ONE);
|
||||||
effective_text_alpha = inactive_text_alpha * mix(1.0, 0.75, has_dim);
|
effective_text_alpha = inactive_text_alpha * mix(1.0, dim_opacity, has_dim);
|
||||||
// Selection
|
// Selection
|
||||||
foreground = choose_color(float(is_selected & ONE), color_to_vec(highlight_fg), foreground);
|
foreground = choose_color(float(is_selected & ONE), color_to_vec(highlight_fg), foreground);
|
||||||
// Underline and strike through (rendered via sprites)
|
// Underline and strike through (rendered via sprites)
|
||||||
|
|||||||
@ -356,6 +356,7 @@ type_map = {
|
|||||||
'macos_titlebar_color': macos_titlebar_color,
|
'macos_titlebar_color': macos_titlebar_color,
|
||||||
'box_drawing_scale': box_drawing_scale,
|
'box_drawing_scale': box_drawing_scale,
|
||||||
'background_opacity': unit_float,
|
'background_opacity': unit_float,
|
||||||
|
'dim_opacity': unit_float,
|
||||||
'tab_separator': tab_separator,
|
'tab_separator': tab_separator,
|
||||||
'active_tab_font_style': tab_font_style,
|
'active_tab_font_style': tab_font_style,
|
||||||
'inactive_tab_font_style': tab_font_style,
|
'inactive_tab_font_style': tab_font_style,
|
||||||
|
|||||||
@ -259,6 +259,10 @@ background #000000
|
|||||||
# Be aware that using a value less than 1.0 is a (possibly significant) performance hit.
|
# Be aware that using a value less than 1.0 is a (possibly significant) performance hit.
|
||||||
background_opacity 1.0
|
background_opacity 1.0
|
||||||
|
|
||||||
|
# How much to dim text that has the DIM/FAINT attribute set. 1.0 means no dimming and
|
||||||
|
# 0.0 means fully dimmed (i.e. invisible).
|
||||||
|
dim_opacity 0.75
|
||||||
|
|
||||||
# The foreground for selections
|
# The foreground for selections
|
||||||
selection_foreground #000000
|
selection_foreground #000000
|
||||||
|
|
||||||
|
|||||||
@ -394,9 +394,10 @@ set_cell_uniforms(float current_inactive_text_alpha) {
|
|||||||
cell_uniform_data.gpploc = glGetUniformLocation(program_id(GRAPHICS_PREMULT_PROGRAM), "inactive_text_alpha");
|
cell_uniform_data.gpploc = glGetUniformLocation(program_id(GRAPHICS_PREMULT_PROGRAM), "inactive_text_alpha");
|
||||||
cell_uniform_data.cploc = glGetUniformLocation(program_id(CELL_PROGRAM), "inactive_text_alpha");
|
cell_uniform_data.cploc = glGetUniformLocation(program_id(CELL_PROGRAM), "inactive_text_alpha");
|
||||||
cell_uniform_data.cfploc = glGetUniformLocation(program_id(CELL_FG_PROGRAM), "inactive_text_alpha");
|
cell_uniform_data.cfploc = glGetUniformLocation(program_id(CELL_FG_PROGRAM), "inactive_text_alpha");
|
||||||
#define S(prog, name, val) { bind_program(prog); glUniform1i(glGetUniformLocation(program_id(prog), #name), val); }
|
#define S(prog, name, val, type) { bind_program(prog); glUniform##type(glGetUniformLocation(program_id(prog), #name), val); }
|
||||||
S(GRAPHICS_PROGRAM, image, GRAPHICS_UNIT); S(GRAPHICS_PREMULT_PROGRAM, image, GRAPHICS_UNIT);
|
S(GRAPHICS_PROGRAM, image, GRAPHICS_UNIT, 1i); S(GRAPHICS_PREMULT_PROGRAM, image, GRAPHICS_UNIT, 1i);
|
||||||
S(CELL_PROGRAM, sprites, SPRITE_MAP_UNIT); S(CELL_FG_PROGRAM, sprites, SPRITE_MAP_UNIT);
|
S(CELL_PROGRAM, sprites, SPRITE_MAP_UNIT, 1i); S(CELL_FG_PROGRAM, sprites, SPRITE_MAP_UNIT, 1i);
|
||||||
|
S(CELL_PROGRAM, dim_opacity, OPT(dim_opacity), 1f); S(CELL_FG_PROGRAM, dim_opacity, OPT(dim_opacity), 1f);
|
||||||
#undef S
|
#undef S
|
||||||
cell_uniform_data.constants_set = true;
|
cell_uniform_data.constants_set = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -359,6 +359,7 @@ PYWRAP1(set_options) {
|
|||||||
S(cursor_blink_interval, PyFloat_AsDouble);
|
S(cursor_blink_interval, PyFloat_AsDouble);
|
||||||
S(cursor_stop_blinking_after, PyFloat_AsDouble);
|
S(cursor_stop_blinking_after, PyFloat_AsDouble);
|
||||||
S(background_opacity, PyFloat_AsDouble);
|
S(background_opacity, PyFloat_AsDouble);
|
||||||
|
S(dim_opacity, PyFloat_AsDouble);
|
||||||
S(inactive_text_alpha, PyFloat_AsDouble);
|
S(inactive_text_alpha, PyFloat_AsDouble);
|
||||||
S(window_padding_width, PyFloat_AsDouble);
|
S(window_padding_width, PyFloat_AsDouble);
|
||||||
S(cursor_shape, PyLong_AsLong);
|
S(cursor_shape, PyLong_AsLong);
|
||||||
|
|||||||
@ -26,7 +26,7 @@ typedef struct {
|
|||||||
bool macos_option_as_alt, macos_hide_titlebar, macos_hide_from_tasks;
|
bool macos_option_as_alt, macos_hide_titlebar, macos_hide_from_tasks;
|
||||||
int adjust_line_height_px, adjust_column_width_px;
|
int adjust_line_height_px, adjust_column_width_px;
|
||||||
float adjust_line_height_frac, adjust_column_width_frac;
|
float adjust_line_height_frac, adjust_column_width_frac;
|
||||||
float background_opacity;
|
float background_opacity, dim_opacity;
|
||||||
float inactive_text_alpha;
|
float inactive_text_alpha;
|
||||||
float window_padding_width;
|
float window_padding_width;
|
||||||
Edge tab_bar_edge;
|
Edge tab_bar_edge;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user