diff --git a/config.c b/config.c index 1bc5de59..a4520ea0 100644 --- a/config.c +++ b/config.c @@ -15,6 +15,21 @@ #define LOG_ENABLE_DBG 0 #include "log.h" +static char * +get_shell(void) +{ + struct passwd *passwd = getpwuid(getuid()); + if (passwd == NULL) { + LOG_ERRNO("failed to lookup user"); + return NULL; + } + + const char *shell = passwd->pw_shell; + LOG_DBG("user's shell: %s", shell); + + return strdup(shell); +} + static char * get_config_path_user_config(void) { @@ -145,6 +160,7 @@ struct config config_load(void) { struct config conf = { + .shell = get_shell(), .font = strdup("monospace"), }; @@ -174,5 +190,6 @@ out: void config_free(struct config conf) { + free(conf.shell); free(conf.font); } diff --git a/config.h b/config.h index 4215a80a..dffa2998 100644 --- a/config.h +++ b/config.h @@ -1,6 +1,7 @@ #pragma once struct config { + char *shell; char *font; };