conf: make number of scrollback lines configurable

This commit is contained in:
Daniel Eklöf 2019-08-01 19:28:14 +02:00
parent 67b4b9401d
commit 4801e39eae
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 17 additions and 2 deletions

View file

@ -162,6 +162,15 @@ parse_section_main(const char *key, const char *value, struct config *conf,
conf->render_worker_count = count; conf->render_worker_count = count;
} }
else if (strcmp(key, "scrollback") == 0) {
unsigned long lines;
if (!str_to_ulong(value, 10, &lines)) {
LOG_ERR("%s:%d: expected an integer: %s", path, lineno, value);
return false;
}
conf->scrollback_lines = lines;
}
else { else {
LOG_WARN("%s:%u: invalid key: %s", path, lineno, key); LOG_WARN("%s:%u: invalid key: %s", path, lineno, key);
return false; return false;
@ -407,6 +416,7 @@ config_load(struct config *conf)
.term = strdup("foot"), .term = strdup("foot"),
.shell = get_shell(), .shell = get_shell(),
.fonts = tll_init(), .fonts = tll_init(),
.scrollback_lines = 1000,
.colors = { .colors = {
.fg = default_foreground, .fg = default_foreground,

View file

@ -11,6 +11,8 @@ struct config {
char *shell; char *shell;
tll(char *) fonts; tll(char *) fonts;
int scrollback_lines;
struct { struct {
uint32_t fg; uint32_t fg;
uint32_t bg; uint32_t bg;

5
footrc
View file

@ -1,6 +1,7 @@
# term=foot
# shell=/usr/bin/zsh
# font=monospace # font=monospace
# scrollback=1000
# shell=/usr/bin/zsh
# term=foot
# workers=<number of logical CPUs> # workers=<number of logical CPUs>
[cursor] [cursor]

1
main.c
View file

@ -387,6 +387,7 @@ main(int argc, char *const *argv)
.alt = {.damage = tll_init(), .scroll_damage = tll_init()}, .alt = {.damage = tll_init(), .scroll_damage = tll_init()},
.grid = &term.normal, .grid = &term.normal,
.render = { .render = {
.scrollback_lines = conf.scrollback_lines,
.workers = { .workers = {
.count = conf.render_worker_count, .count = conf.render_worker_count,
.queue = tll_init(), .queue = tll_init(),

View file

@ -315,6 +315,7 @@ struct terminal {
struct wayland wl; struct wayland wl;
struct { struct {
int scrollback_lines;
struct wl_callback *frame_callback; struct wl_callback *frame_callback;
struct { struct {