diff --git a/README.md b/README.md index a63700900..2aca376ee 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,13 @@ At the moment the performance difference is measurable, but too small to be huma ## Supported logos -Currently, `fastfetch` supports the `Arch` and the `Artix` logos only. Unknown/unsupported logos will be replaced with a question mark when running fastfetch. To add a new logo, edit [`src/logos.c`](src/logo.c). +Currently, `fastfetch` supports the following logos: +- `Arch` +- `Artix` +- `Ubuntu` +- `Debian` + +Unknown/unsupported logos will be replaced with a question mark when running fastfetch. To add a new logo, edit [`src/logo.c`](src/logo.c). ## Dependencies diff --git a/src/logo.c b/src/logo.c index 8dc897609..57a866301 100644 --- a/src/logo.c +++ b/src/logo.c @@ -96,6 +96,69 @@ static void loadArtixLogo(FFlogo* logo, bool doColor) sprintf(logo->chars[19], FASTFETCH_TEXT_MODIFIER_BOLT"%s'` `'"FASTFETCH_TEXT_MODIFIER_RESET, color); } +static void loadUbuntuLogo(FFlogo *logo, bool doColor) +{ + logo->width = 40; + logo->height = 20; + strcpy(logo->name, "ubuntu"); + + /* color = red; color2 = white */ + const char* color = doColor ? "\033[91m" : ""; + const char* color2 = doColor ? "\033[97m" : ""; + strcpy(logo->color, "\033[91m"); + + sprintf(logo->chars[0], FASTFETCH_TEXT_MODIFIER_BOLT"%s .-/+oossssoo+/-. "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[1], FASTFETCH_TEXT_MODIFIER_BOLT"%s `:+ssssssssssssssssss+:` "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[2], FASTFETCH_TEXT_MODIFIER_BOLT"%s -+ssssssssssssssssssyyssss+- "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[3], FASTFETCH_TEXT_MODIFIER_BOLT"%s .ossssssssssssssssssd%sMMMNy%ssssso. "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[4], FASTFETCH_TEXT_MODIFIER_BOLT"%s /sssssssssss%shdmmNNmmyNMMMMh%sssssss/ "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[5], FASTFETCH_TEXT_MODIFIER_BOLT"%s +sssssssss%shmydMMMMMMMNddddy%sssssssss+ "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[6], FASTFETCH_TEXT_MODIFIER_BOLT"%s /ssssssss%shNMMMyhhyyyyhmNMMMNh%sssssssss/ "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[7], FASTFETCH_TEXT_MODIFIER_BOLT"%s.ssssssss%sdMMMNh%sssssssssss%shNMMMd%sssssssss."FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color, color2, color); + sprintf(logo->chars[8], FASTFETCH_TEXT_MODIFIER_BOLT"%s+ssss%shhhyNMMNy%sssssssssssss%syNMMMy%ssssssss+"FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color, color2, color); + sprintf(logo->chars[9], FASTFETCH_TEXT_MODIFIER_BOLT"%soss%syNMMMNyMMh%sssssssssssssss%shmmmh%sssssssso"FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color, color2, color); + sprintf(logo->chars[10], FASTFETCH_TEXT_MODIFIER_BOLT"%soss%syNMMMNyMMh%sssssssssssssss%shmmmh%sssssssso"FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color, color2, color); + sprintf(logo->chars[11], FASTFETCH_TEXT_MODIFIER_BOLT"%s+ssss%shhhyNMMNy%sssssssssssss%syNMMMy%ssssssss+"FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color, color2, color); + sprintf(logo->chars[12], FASTFETCH_TEXT_MODIFIER_BOLT"%s.ssssssss%sdMMMNh%sssssssssss%shNMMMd%sssssssss."FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color, color2, color); + sprintf(logo->chars[13], FASTFETCH_TEXT_MODIFIER_BOLT"%s /ssssssss%shNMMMyhhyyyyhdNMMMNh%sssssssss/ "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[14], FASTFETCH_TEXT_MODIFIER_BOLT"%s +sssssssss%sdmydMMMMMMMMddddy%sssssssss+ "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[15], FASTFETCH_TEXT_MODIFIER_BOLT"%s /sssssssssss%shdmNNNNmyNMMMMh%sssssss/ "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[16], FASTFETCH_TEXT_MODIFIER_BOLT"%s .ossssssssssssssssss%sdMMMNy%ssssso. "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[17], FASTFETCH_TEXT_MODIFIER_BOLT"%s -+sssssssssssssssss%syyy%sssss+- "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[18], FASTFETCH_TEXT_MODIFIER_BOLT"%s `:+ssssssssssssssssss+:` "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[19], FASTFETCH_TEXT_MODIFIER_BOLT"%s .-/+oossssoo+/-. "FASTFETCH_TEXT_MODIFIER_RESET, color); +} + +static void loadDebianLogo(FFlogo *logo, bool doColor) +{ + logo->width = 27; + logo->height = 17; + strcpy(logo->name, "debian"); + + /* color = red; color2 = white */ + const char* color = doColor ? "\033[91m" : ""; + const char* color2 = doColor ? "\033[97m" : ""; + strcpy(logo->color, "\033[91m"); + + sprintf(logo->chars[0], FASTFETCH_TEXT_MODIFIER_BOLT"%s _,met$$$$$gg. "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[1], FASTFETCH_TEXT_MODIFIER_BOLT"%s ,g$$$$$$$$$$$$$$$P. "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[2], FASTFETCH_TEXT_MODIFIER_BOLT"%s ,g$$P\" \"\"\"Y$$.\". "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[3], FASTFETCH_TEXT_MODIFIER_BOLT"%s ,$$P' `$$$. "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[4], FASTFETCH_TEXT_MODIFIER_BOLT"%s',$$P ,ggs. `$$b:"FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[5], FASTFETCH_TEXT_MODIFIER_BOLT"%s`d$$' ,$P\"' %s.%s $$$ "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[6], FASTFETCH_TEXT_MODIFIER_BOLT"%s $$P d$' %s,%s $$P "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[7], FASTFETCH_TEXT_MODIFIER_BOLT"%s $$: $$. %s-%s ,d$$' "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[8], FASTFETCH_TEXT_MODIFIER_BOLT"%s $$; Y$b._ _,d$P' "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[9], FASTFETCH_TEXT_MODIFIER_BOLT"%s Y$$. %s`.%s`\"Y$$$$P\"' "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[10], FASTFETCH_TEXT_MODIFIER_BOLT"%s `$$b %s\"-.__%s "FASTFETCH_TEXT_MODIFIER_RESET, color, color2, color); + sprintf(logo->chars[11], FASTFETCH_TEXT_MODIFIER_BOLT"%s `Y$$ "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[12], FASTFETCH_TEXT_MODIFIER_BOLT"%s `Y$$. "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[13], FASTFETCH_TEXT_MODIFIER_BOLT"%s `$$b. "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[14], FASTFETCH_TEXT_MODIFIER_BOLT"%s `Y$$b. "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[15], FASTFETCH_TEXT_MODIFIER_BOLT"%s `\"Y$b._ "FASTFETCH_TEXT_MODIFIER_RESET, color); + sprintf(logo->chars[16], FASTFETCH_TEXT_MODIFIER_BOLT"%s `\"\"\" "FASTFETCH_TEXT_MODIFIER_RESET, color); +} + void ffLoadLogoSet(FFconfig* config, const char* logo) { if(strcasecmp(logo, "none") == 0) @@ -111,6 +174,14 @@ void ffLoadLogoSet(FFconfig* config, const char* logo) { loadArtixLogo(&config->logo, config->colorLogo); } + else if(strcasecmp(logo, "ubuntu") == 0) + { + loadUbuntuLogo(&config->logo, config->colorLogo); + } + else if(strcasecmp(logo, "debian") == 0) + { + loadDebianLogo(&config->logo, config->colorLogo); + } else { if(config->showErrors) @@ -145,14 +216,14 @@ void ffPrintLogoLine(FFinstance* instance) if(instance->state.current_row < instance->config.logo.height) { - printf(instance->config.logo.chars[instance->state.current_row] + cut); + printf("%s", instance->config.logo.chars[instance->state.current_row] + cut); } else { for(uint8_t i = 0; i < instance->config.logo.width - cut; i++) - putchar(' '); + putchar(' '); } - + for(uint16_t i = 0; i < instance->config.logo_spacer; i++) putchar(' '); @@ -163,17 +234,19 @@ void ffPrintLogoLine(FFinstance* instance) static FFlogo* getLogos(uint8_t* size, bool color) { - #define FASTFETCH_LOGO_AMOUNT 4 + #define FASTFETCH_LOGO_AMOUNT 6 *size = FASTFETCH_LOGO_AMOUNT; static FFlogo logos[FASTFETCH_LOGO_AMOUNT]; - + #undef FASTFETCH_LOGO_AMOUNT loadNoneLogo(&logos[0]); loadUnknownLogo(&logos[1]); loadArchLogo(&logos[2], color); loadArtixLogo(&logos[3], color); + loadUbuntuLogo(&logos[4], color); + loadDebianLogo(&logos[5], color); return logos; } @@ -202,3 +275,4 @@ void ffPrintLogos(bool doColor) } #endif +