Colors: support --colors-key

This commit is contained in:
李通洲
2023-09-22 15:04:54 +08:00
parent 34723bba89
commit d94fc32f45
3 changed files with 12 additions and 1 deletions
+1
View File
@@ -23,6 +23,7 @@ Features:
* Support full GPU detection in WSL (Linux, GPU)
* Add `--module-key " "` as a special case for hiding keys
* Support `--title-format`. See `fastfetch --help title-format` for detail
* Support `--colors-key`
Bugfixes:
* Fix fastfetch hanging in specific environment (#561)
+9 -1
View File
@@ -9,7 +9,7 @@ void ffPrintColors(FFColorsOptions* options)
if(instance.config.pipe)
return;
ffLogoPrintLine();
ffPrintLogoAndKey(FF_COLORS_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT);
if(options->paddingLeft > 0)
ffPrintCharTimes(' ', options->paddingLeft);
@@ -58,6 +58,8 @@ void ffPrintColors(FFColorsOptions* options)
void ffInitColorsOptions(FFColorsOptions* options)
{
ffOptionInitModuleBaseInfo(&options->moduleInfo, FF_COLORS_MODULE_NAME, ffParseColorsCommandOptions, ffParseColorsJsonObject, ffPrintColors, NULL);
ffOptionInitModuleArg(&options->moduleArgs);
ffStrbufSetStatic(&options->moduleArgs.key, " ");
options->symbol = FF_COLORS_SYMBOL_BLOCK;
options->paddingLeft = 0;
}
@@ -66,6 +68,8 @@ bool ffParseColorsCommandOptions(FFColorsOptions* options, const char* key, cons
{
const char* subKey = ffOptionTestPrefix(key, FF_COLORS_MODULE_NAME);
if (!subKey) return false;
if (ffOptionParseModuleArgs(key, subKey, value, &options->moduleArgs))
return true;
if (ffStrEqualsIgnCase(subKey, "symbol"))
{
@@ -92,6 +96,7 @@ bool ffParseColorsCommandOptions(FFColorsOptions* options, const char* key, cons
void ffDestroyColorsOptions(FF_MAYBE_UNUSED FFColorsOptions* options)
{
ffOptionDestroyModuleArg(&options->moduleArgs);
}
void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module)
@@ -104,6 +109,9 @@ void ffParseColorsJsonObject(FFColorsOptions* options, yyjson_val* module)
if(ffStrEqualsIgnCase(key, "type"))
continue;
if (ffJsonConfigParseModuleArgs(key, val, &options->moduleArgs))
continue;
if (ffStrEqualsIgnCase(key, "symbol"))
{
int value;
+2
View File
@@ -17,6 +17,8 @@ typedef enum FFColorsSymbol
typedef struct FFColorsOptions
{
FFModuleBaseInfo moduleInfo;
FFModuleArgs moduleArgs;
FFColorsSymbol symbol;
uint32_t paddingLeft;
} FFColorsOptions;