diff --git a/src/common/init.c b/src/common/init.c index 1c9fd67bb..726057508 100644 --- a/src/common/init.c +++ b/src/common/init.c @@ -35,9 +35,11 @@ static void defaultConfig(FFinstance* instance) ffStrbufInit(&instance->config.colorKeys); ffStrbufInit(&instance->config.colorTitle); - - ffStrbufInit(&instance->config.keyValueSeparator); - ffStrbufAppendS(&instance->config.keyValueSeparator, ": "); + ffStrbufInitS(&instance->config.keyValueSeparator, ": "); + + #if defined(__linux__) || defined(__FreeBSD__) + ffStrbufInit(&instance->config.playerName); + #endif instance->config.showErrors = false; instance->config.recache = false; @@ -252,6 +254,10 @@ static void destroyConfig(FFinstance* instance) ffStrbufDestroy(&instance->config.colorKeys); ffStrbufDestroy(&instance->config.colorTitle); ffStrbufDestroy(&instance->config.keyValueSeparator); + + #if defined(__linux__) || defined(__FreeBSD__) + ffStrbufDestroy(&instance->config.playerName); + #endif ffDestroyTitleOptions(&instance->config.title); ffDestroyOSOptions(&instance->config.os); diff --git a/src/common/jsonconfig.c b/src/common/jsonconfig.c index efd192609..61b460a89 100644 --- a/src/common/jsonconfig.c +++ b/src/common/jsonconfig.c @@ -304,6 +304,12 @@ const char* ffParseGeneralJsonConfig(FFinstance* instance) config->escapeBedrock = yyjson_get_bool(val); else if (strcasecmp(key, "pipe") == 0) config->pipe = yyjson_get_bool(val); + + #if defined(__linux__) || defined(__FreeBSD__) + else if (strcasecmp(key, "playerName") == 0) + ffStrbufSetS(&config->playerName, yyjson_get_str(val)); + #endif + else return "Unknown general property"; } diff --git a/src/detection/media/media_linux.c b/src/detection/media/media_linux.c index e9b5909d8..9615ee1a1 100644 --- a/src/detection/media/media_linux.c +++ b/src/detection/media/media_linux.c @@ -160,8 +160,8 @@ static const char* getMedia(const FFinstance* instance, FFMediaResult* result) // FIXME: This is shared for both player and media module. // However it uses an option in one specific module - if(instance->config.player.name.length > 0) - getCustomBus(&data, &instance->config.player.name, result); + if(instance->config.playerName.length > 0) + getCustomBus(&data, &instance->config.playerName, result); else getBestBus(&data, result); diff --git a/src/fastfetch.c b/src/fastfetch.c index cfd9e7190..0ec386abe 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -899,6 +899,11 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con else if(strcasecmp(key, "--load-user-config") == 0) data->loadUserConfig = optionParseBoolean(value); + #if defined(__linux__) || defined(__FreeBSD__) + else if(strcasecmp(key, "--player-name") == 0) + optionParseString(key, value, &instance->config.playerName); + #endif + //////////////// //Logo options// //////////////// diff --git a/src/fastfetch.h b/src/fastfetch.h index b1bfb2d52..dbc87b2da 100644 --- a/src/fastfetch.h +++ b/src/fastfetch.h @@ -48,6 +48,10 @@ typedef struct FFconfig bool multithreading; bool stat; + #if defined(__linux__) || defined(__FreeBSD__) + FFstrbuf playerName; + #endif + FFTitleOptions title; FFOSOptions os; FFHostOptions host; diff --git a/src/modules/player/option.h b/src/modules/player/option.h index 8fa057a47..e27056055 100644 --- a/src/modules/player/option.h +++ b/src/modules/player/option.h @@ -8,6 +8,4 @@ typedef struct FFPlayerOptions { const char* moduleName; FFModuleArgs moduleArgs; - - FFstrbuf name; } FFPlayerOptions; diff --git a/src/modules/player/player.c b/src/modules/player/player.c index 5178d3746..6c0644a85 100644 --- a/src/modules/player/player.c +++ b/src/modules/player/player.c @@ -76,8 +76,6 @@ void ffInitPlayerOptions(FFPlayerOptions* options) { options->moduleName = FF_PLAYER_MODULE_NAME; ffOptionInitModuleArg(&options->moduleArgs); - - ffStrbufInit(&options->name); } bool ffParsePlayerCommandOptions(FFPlayerOptions* options, const char* key, const char* value) @@ -93,8 +91,6 @@ bool ffParsePlayerCommandOptions(FFPlayerOptions* options, const char* key, cons void ffDestroyPlayerOptions(FFPlayerOptions* options) { ffOptionDestroyModuleArg(&options->moduleArgs); - - ffStrbufDestroy(&options->name); } void ffParsePlayerJsonObject(FFinstance* instance, yyjson_val* module)