From 1e7e4dc65d89fe5f05d07d07dd64b5e5612a7013 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 23 May 2019 15:40:52 +0200 Subject: implement profiles --- gterm.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gterm.c') diff --git a/gterm.c b/gterm.c index f0e16cb..f1272f5 100644 --- a/gterm.c +++ b/gterm.c @@ -26,6 +26,7 @@ #define GTERM_CFG_KEY_CURSOR_COLOR "cursorColor" #define GTERM_CFG_KEY_FOREGROUND "foreground" #define GTERM_CFG_KEY_BACKGROUND "background" +#define GTERM_CFG_KEY_PROFILE "profile" typedef struct gterm_opt { char *opt; @@ -48,6 +49,8 @@ static const gterm_opt gterm_opts[] = { { .opt = "cr", .key = GTERM_CFG_KEY_CURSOR_COLOR }, { .opt = "fg", .key = GTERM_CFG_KEY_FOREGROUND }, { .opt = "bg", .key = GTERM_CFG_KEY_BACKGROUND }, + { .opt = "name", .key = GTERM_CFG_KEY_PROFILE }, + { .opt = "class", .key = GTERM_CFG_KEY_PROFILE }, { .opt = "bc", .key = GTERM_CFG_KEY_CURSOR_BLINK, .is_bool = true }, }; @@ -79,12 +82,22 @@ static void gterm_cfg_set(GKeyFile *cfg, char *key, char *value) static char *gterm_cfg_get(GKeyFile *cfg, char *key) { + char *profile; char *value; + profile = g_key_file_get_string(cfg, GTERM_CFG_GROUP_CMDLINE, + GTERM_CFG_KEY_PROFILE, NULL); + value = g_key_file_get_string(cfg, GTERM_CFG_GROUP_CMDLINE, key, NULL); if (value) return value; + if (profile) { + value = g_key_file_get_string(cfg, profile, key, NULL); + if (value) + return value; + } + value = g_key_file_get_string(cfg, GTERM_CFG_GROUP_DEFAULT, key, NULL); if (value) return value; -- cgit