Merge pull request #4 from saloniamatteo/master

Thanks for this contribution. Note that i dont test on Ubuntu / Debian (yet), so probably a lot of stuff wont work on those platforms.
This commit is contained in:
Linus Dierheimer
2021-03-19 21:03:23 +01:00
committed by GitHub
2 changed files with 86 additions and 6 deletions
+7 -1
View File
@@ -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
+79 -5
View File
@@ -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