From 650cfa18efdc38164600959e90fdaa50f58910e4 Mon Sep 17 00:00:00 2001 From: "feeptr@codeberg.org" Date: Mon, 27 Sep 2021 19:05:40 +0000 Subject: [PATCH] config, render: scrollback indicator: allow configuring scrollback indicator colors --- config.c | 13 +++++++++++++ config.h | 6 ++++++ render.c | 9 ++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/config.c b/config.c index 3448cab6..a213075b 100644 --- a/config.c +++ b/config.c @@ -1324,6 +1324,18 @@ parse_section_colors(const char *key, const char *value, struct config *conf, return true; } + else if (strcmp(key, "scrollback-indicator") == 0) { + if (!str_to_two_colors( + value, &conf->colors.scrollback_indicator.fg, &conf->colors.scrollback_indicator.bg, + false, conf, path, lineno, "colors", "scrollback-indicator")) + { + return false; + } + + conf->colors.use_custom.scrollback_indicator = true; + return true; + } + else if (strcmp(key, "urls") == 0) { if (!str_to_color(value, &conf->colors.url, false, conf, path, lineno, "colors", "urls")) @@ -2926,6 +2938,7 @@ config_load(struct config *conf, const char *conf_path, .use_custom = { .selection = false, .jump_label = false, + .scrollback_indicator = false, .url = false, }, }, diff --git a/config.h b/config.h index 66db5d2f..db4bc275 100644 --- a/config.h +++ b/config.h @@ -163,9 +163,15 @@ struct config { uint32_t bg; } jump_label; + struct { + uint32_t fg; + uint32_t bg; + } scrollback_indicator; + struct { bool selection:1; bool jump_label:1; + bool scrollback_indicator:1; bool url:1; } use_custom; } colors; diff --git a/render.c b/render.c index c4b1b4c8..9a5291e4 100644 --- a/render.c +++ b/render.c @@ -2147,12 +2147,19 @@ render_scrollback_position(struct terminal *term) wl_subsurface_set_position( win->scrollback_indicator.sub, x / scale, y / scale); + uint32_t fg = term->colors.table[0]; + uint32_t bg = term->colors.table[8 + 4]; + if (term->conf->colors.use_custom.scrollback_indicator) { + fg = term->conf->colors.scrollback_indicator.fg; + bg = term->conf->colors.scrollback_indicator.bg; + } + render_osd( term, win->scrollback_indicator.surf, win->scrollback_indicator.sub, term->fonts[0], buf, text, - term->colors.table[0], 0xffu << 24 | term->colors.table[8 + 4], + fg, 0xffu << 24 | bg, width - margin - wcslen(text) * term->cell_width, margin); }