diff --git a/completions/bash b/completions/bash index 11313cc65..5c645d898 100644 --- a/completions/bash +++ b/completions/bash @@ -326,6 +326,9 @@ __fastfetch_completion() "--opencl-key" "--opencl-format" "--opencl-error" + "--users-key" + "--users-format" + "--users-error" ) local FF_OPTIONS_PATH=( diff --git a/src/common/init.c b/src/common/init.c index 7d630d8cb..99277abc7 100644 --- a/src/common/init.c +++ b/src/common/init.c @@ -196,6 +196,7 @@ static void defaultConfig(FFinstance* instance) initModuleArg(&instance->config.vulkan); initModuleArg(&instance->config.openGL); initModuleArg(&instance->config.openCL); + initModuleArg(&instance->config.users); ffStrbufInitA(&instance->config.libPCI, 0); ffStrbufInitA(&instance->config.libVulkan, 0); diff --git a/src/data/config_user.txt b/src/data/config_user.txt index 05e1c9996..d745e0ba6 100644 --- a/src/data/config_user.txt +++ b/src/data/config_user.txt @@ -219,6 +219,7 @@ #--vulkan-key Vulkan #--opengl-key OpenGL #--opencl-key OpenCL +#--users-key Users # Format options: # Sets the format string for module values. @@ -259,6 +260,7 @@ #--vulkan-format #--opengl-format #--opencl-format +#--users-format # Error options: # Sets the format string to use if an error occured @@ -299,6 +301,7 @@ #--vulkan-error #--opengl-error #--opencl-error +#--users-error # Library options: # Sets an user specific path to a library to load. diff --git a/src/fastfetch.c b/src/fastfetch.c index 2254f30cf..9dc7cdef0 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -1199,6 +1199,12 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con optionParseString(key, value, &instance->config.openCL.outputFormat); else if(strcasecmp(key, "--opencl-error") == 0) optionParseString(key, value, &instance->config.openCL.errorFormat); + else if(strcasecmp(key, "--users-key") == 0) + optionParseString(key, value, &instance->config.users.key); + else if(strcasecmp(key, "--users-format") == 0) + optionParseString(key, value, &instance->config.users.outputFormat); + else if(strcasecmp(key, "--users-error") == 0) + optionParseString(key, value, &instance->config.users.errorFormat); /////////////////// //Library options// diff --git a/src/fastfetch.h b/src/fastfetch.h index d1439b84b..1a2872e30 100644 --- a/src/fastfetch.h +++ b/src/fastfetch.h @@ -128,6 +128,7 @@ typedef struct FFconfig FFModuleArgs vulkan; FFModuleArgs openGL; FFModuleArgs openCL; + FFModuleArgs users; FFstrbuf libPCI; FFstrbuf libVulkan; diff --git a/src/modules/users.c b/src/modules/users.c index ec1265338..c49c2570a 100644 --- a/src/modules/users.c +++ b/src/modules/users.c @@ -36,6 +36,13 @@ next: } } + if(users.length == 0) + { + ffListDestroy(&users); + ffPrintError(instance, FF_USERS_MODULE_NAME, 0, &instance->config.users, "Unable to detect users"); + return; + } + FFstrbuf result; ffStrbufInit(&result); for(uint32_t i = 0; i < users.length; ++i) @@ -46,14 +53,14 @@ next: } ffListDestroy(&users); - if(instance->config.uptime.outputFormat.length == 0) + if(instance->config.users.outputFormat.length == 0) { - ffPrintLogoAndKey(instance, FF_USERS_MODULE_NAME, 0, &instance->config.uptime.key); + ffPrintLogoAndKey(instance, FF_USERS_MODULE_NAME, 0, &instance->config.users.key); puts(result.chars); } else { - ffPrintFormat(instance, FF_USERS_MODULE_NAME, 0, &instance->config.uptime, FF_USERS_NUM_FORMAT_ARGS, (FFformatarg[]){ + ffPrintFormat(instance, FF_USERS_MODULE_NAME, 0, &instance->config.users, FF_USERS_NUM_FORMAT_ARGS, (FFformatarg[]){ {FF_FORMAT_ARG_TYPE_STRBUF, &result}, }); }