From 5b868fd0c94af61e62a28a80a4bd337f9cbb25b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 24 Jul 2020 18:34:19 +0200 Subject: [PATCH] config: add 'scrollback-indicator-format' option The value of this option must be either 'percent', or 'line', and determines _how_ we render the scrollback indicator. --- config.c | 14 ++++++++++++++ config.h | 1 + doc/foot.5.scd | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/config.c b/config.c index e7ba74b2..332fd11a 100644 --- a/config.c +++ b/config.c @@ -294,6 +294,19 @@ parse_section_main(const char *key, const char *value, struct config *conf, else if (strcmp(key, "scrollback-indicator") == 0) conf->scrollback_indicator = str_to_bool(value); + else if (strcmp(key, "scrollback-indicator-format") == 0) { + if (strcmp(value, "percent") == 0) + conf->scrollback_indicator_format = SCROLLBACK_INDICATOR_PERCENT; + else if (strcmp(value, "line") == 0) + conf->scrollback_indicator_format = SCROLLBACK_INDICATOR_LINENO; + else { + LOG_ERR("%s:%d: 'scrollback-indicator-format must be one " + "of 'percent' or 'line', not %s", + path, lineno, value); + return false; + } + } + else { LOG_ERR("%s:%u: invalid key: %s", path, lineno, key); return false; @@ -922,6 +935,7 @@ config_load(struct config *conf, const char *conf_path) .fonts = tll_init(), .scrollback_lines = 1000, .scrollback_indicator = true, + .scrollback_indicator_format = SCROLLBACK_INDICATOR_PERCENT, .colors = { .fg = default_foreground, diff --git a/config.h b/config.h index f0f077be..109eecb8 100644 --- a/config.h +++ b/config.h @@ -41,6 +41,7 @@ struct config { int scrollback_lines; bool scrollback_indicator; + enum {SCROLLBACK_INDICATOR_PERCENT, SCROLLBACK_INDICATOR_LINENO} scrollback_indicator_format; struct { uint32_t fg; diff --git a/doc/foot.5.scd b/doc/foot.5.scd index 1f71a8d3..485886fa 100644 --- a/doc/foot.5.scd +++ b/doc/foot.5.scd @@ -72,6 +72,11 @@ in this order: Boolean. Enables a position indicator when the viewport is not at the bottom of the scrollback history. Default: _yes_. +*scrollback-indicator-format* + Which format to use when displaying the scrollback position + indicator. Either _percent_ or _line_. This option is ignored if + *scrollback-indicator=no*. Default: _percent_. + *workers* Number of threads to use for rendering. Set to 0 to disable multithreading. Default: the number of available logical CPUs