diff --git a/src/main.c b/src/main.c index a0ef538..b8fa3e8 100644 --- a/src/main.c +++ b/src/main.c @@ -431,7 +431,12 @@ static void print_help() "\t --xkb-options [-] Set XkbOptions for input devices\n" "\n" "Font Options:\n" - "\t --font-engine [pango] Font engine\n", + "\t --font-engine [pango]\n" + "\t Font engine\n" + "\t --font-size [10]\n" + "\t Font size in points\n" + "\t --font-name [monospace]\n" + "\t Font name\n", "kmscon"); /* * 80 char line: @@ -517,6 +522,8 @@ struct conf_option options[] = { CONF_OPTION_STRING(0, "xkb-variant", NULL, &kmscon_conf.xkb_variant, ""), CONF_OPTION_STRING(0, "xkb-options", NULL, &kmscon_conf.xkb_options, ""), CONF_OPTION_STRING(0, "font-engine", NULL, &kmscon_conf.font_engine, "pango"), + CONF_OPTION_UINT(0, "font-size", NULL, &kmscon_conf.font_size, 10), + CONF_OPTION_STRING(0, "font-name", NULL, &kmscon_conf.font_name, "monospace"), CONF_OPTION_STRING_LIST(0, "seats", aftercheck_seats, &kmscon_conf.seats, def_seats), }; diff --git a/src/main.h b/src/main.h index 99de55e..144d117 100644 --- a/src/main.h +++ b/src/main.h @@ -68,6 +68,10 @@ struct kmscon_conf_t { /* font engine */ char *font_engine; + /* font size */ + unsigned int font_size; + /* font name */ + char *font_name; /* color palette */ char *palette; diff --git a/src/terminal.c b/src/terminal.c index 118ad96..cd4d2a9 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -149,9 +149,13 @@ static int add_display(struct kmscon_terminal *term, struct uterm_display *disp) struct screen *scr; int ret; unsigned int cols, rows; - const struct kmscon_font_attr attr = { "", 0, 20, false, false, 0, 0 }; + struct kmscon_font_attr attr = { "", 0, 20, false, false, 0, 0 }; const char *be; + attr.points = kmscon_conf.font_size; + strncpy(attr.name, kmscon_conf.font_name, KMSCON_FONT_MAX_NAME - 1); + attr.name[KMSCON_FONT_MAX_NAME - 1] = 0; + kmscon_dlist_for_each(iter, &term->screens) { scr = kmscon_dlist_entry(iter, struct screen, list); if (scr->disp == disp)