Files
fastfetch/src/logo/builtin.c
T
2022-05-15 06:22:28 -07:00

1629 lines
51 KiB
C

#include "logo.h"
#include <limits.h>
#include <string.h>
#include <unistd.h>
#include <ctype.h>
typedef struct FFlogo
{
const char* data;
const char** names; //Null terminated
const char** builtinColors; //Null terminated
bool performColorReplacement;
} FFlogo;
#define FF_LOGO_INIT static FFlogo logo; static bool init = false; if(init) return &logo; init = true;
#define FF_LOGO_NAMES(...) static const char* names[] = (const char*[]) { __VA_ARGS__, NULL }; logo.names = names;
#define FF_LOGO_LINES(x) logo.data = x;
#define FF_LOGO_COLORS(...) static const char* colors[] = (const char*[]) { __VA_ARGS__, NULL }; logo.builtinColors = colors;
#define FF_LOGO_RETURN return &logo;
static const FFlogo* getLogoUnknown()
{
FF_LOGO_INIT
FF_LOGO_NAMES("unkown", "question mark", "?")
FF_LOGO_LINES(
" ________\n"
" _jgN########Ngg_\n"
" _N##N@@\"\" \"\"9NN##Np_\n"
"d###P N####p\n"
"\"^^\" T####\n"
" d###P\n"
" _g###@F\n"
" _gN##@P\n"
" gN###F\"\n"
" d###F\n"
" 0###F\n"
" 0###F\n"
" 0###F\n"
" \"NN@'\n"
"\n"
" ___\n"
" q###r\n"
" \"\""
)
FF_LOGO_COLORS("")
FF_LOGO_RETURN
}
static const FFlogo* getLogoNone()
{
FF_LOGO_INIT
FF_LOGO_NAMES("none", "empty", "")
FF_LOGO_LINES("")
FF_LOGO_COLORS("")
FF_LOGO_RETURN
}
static const FFlogo* getLogoAndroid()
{
FF_LOGO_INIT
FF_LOGO_NAMES("android")
FF_LOGO_LINES(
" -o o-\n"
" +hydNNNNdyh+\n"
" +mMMMMMMMMMMMMm+\n"
" `dMM$2m:$1NMMMMMMN$2:m$1MMd`\n"
" hMMMMMMMMMMMMMMMMMMh\n"
" .. yyyyyyyyyyyyyyyyyyyy ..\n"
".mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm.\n"
":MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:\n"
":MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:\n"
":MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:\n"
":MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:\n"
"-MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM-\n"
" +yy+ MMMMMMMMMMMMMMMMMMMM +yy+\n"
" mMMMMMMMMMMMMMMMMMMm\n"
" `/++MMMMh++hMMMM++/`\n"
" MMMMo oMMMM\n"
" MMMMo oMMMM\n"
" oNMm- -mMNs"
)
FF_LOGO_COLORS(
"32", //green
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoAndroidSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("android-small", "android_small")
FF_LOGO_LINES(
" ;, ,;\n"
" ';,.-----.,;'\n"
" ,' ',\n"
" / O O \\\n"
"| |\n"
"'-----------------'"
)
FF_LOGO_COLORS(
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoArch()
{
FF_LOGO_INIT
FF_LOGO_NAMES("arch", "archlinux", "arch-linux")
FF_LOGO_LINES(
" -`\n"
" .o+`\n"
" `ooo/\n"
" `+oooo:\n"
" `+oooooo:\n"
" -+oooooo+:\n"
" `/:-:++oooo+:\n"
" `/++++/+++++++:\n"
" `/++++++++++++++:\n"
" `/+++ooooooooooooo/`\n"
" ./ooosssso++osssssso+`\n"
" .oossssso-````/ossssss+`\n"
" -osssssso. :ssssssso.\n"
" :osssssss/ osssso+++.\n"
" /ossssssss/ +ssssooo/-\n"
" `/ossssso+/:- -:/+osssso+-\n"
" `+sso+:-` `.-/+oso:\n"
"`++:. `-/+/\n"
".` `/";
)
FF_LOGO_COLORS(
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoArchSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("arch_small", "archlinux_small", "arch-linux-small")
FF_LOGO_LINES(
" /\\\n"
" / \\\n"
" / \\\n"
" / \\\n"
" / ,, \\\n"
" / | | \\\n"
"/_-'' ''-_\\"
)
FF_LOGO_COLORS(
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoArtix()
{
FF_LOGO_INIT
FF_LOGO_NAMES("artix", "artixlinux", "artix-linux")
FF_LOGO_LINES(
" '\n"
" 'o'\n"
" 'ooo'\n"
" 'ooxoo'\n"
" 'ooxxxoo'\n"
" 'oookkxxoo'\n"
" 'oiioxkkxxoo'\n"
" ':;:iiiioxxxoo'\n"
" `'.;::ioxxoo''\n"
" '-. `':;jiooo'\n"
" 'oooio-.. `'i:io'\n"
" 'ooooxxxxoio:,. `'-;'\n"
" 'ooooxxxxxkkxoooIi:-. `'\n"
" 'ooooxxxxxkkkkxoiiiiiji'\n"
" 'ooooxxxxxkxxoiiii:'` .i'\n"
" 'ooooxxxxxoi:::'` .;ioxo'\n"
" 'ooooxooi::'` .:iiixkxxo'\n"
" 'ooooi:'` `'';ioxxo'\n"
"'i:'` '':io'\n"
"'` `'";
)
FF_LOGO_COLORS(
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoArtixSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("artix_small", "artixlinux_small", "artix-linux-small")
FF_LOGO_LINES(
" /\\\n"
" / \\\n"
" /`'.,\\\n"
" / ',\n"
" / ,`\\\n"
" / ,.'`. \\\n"
"/.,'` `'.\\"
)
FF_LOGO_COLORS(
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoArcoLinux()
{
FF_LOGO_INIT
FF_LOGO_NAMES("arco", "arcolinux", "arco-linux")
FF_LOGO_LINES(
" /-\n"
" ooo:\n"
" yoooo/\n"
" yooooooo\n"
" yooooooooo\n"
" yooooooooooo\n"
" .yooooooooooooo\n"
" .oooooooooooooooo\n"
" .oooooooarcoooooooo\n"
" .ooooooooo-oooooooooo\n"
" .ooooooooo- oooooooooo\n"
" :ooooooooo. :ooooooooo\n"
" :ooooooooo. :ooooooooo\n"
" :oooarcooo .oooarcooo\n"
" :ooooooooy .ooooooooo\n"
" $1:ooooooooo $2/ooooooooooooooooooo\n"
" $1:ooooooooo $2.-ooooooooooooooooo.\n"
" $1ooooooooo- $2-ooooooooooooo.\n"
" $1ooooooooo- $2.-oooooooooo.\n"
"$1ooooooooo. $2-ooooooooo";
)
FF_LOGO_COLORS(
"34", //blue
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoCachyOS()
{
FF_LOGO_INIT
FF_LOGO_NAMES("cachy", "cachyos", "cachy-linux", "cachyos-linux")
FF_LOGO_LINES(
" $3.$1-------------------------:\n"
" .$2+=$1========================.\n"
" :$2++$1===$2++===$1===============- :$2++$1-\n"
" :$2*++$1====$2+++++==$1===========- .==:\n"
" -$2*+++$1=====$2+***++=$1=========:\n"
" =$2*++++=$1=======------------:\n"
" =$2*+++++=$1====- $3...$1\n"
" .$2+*+++++$1=-===: .$2=+++=$1:\n"
" :$2++++$1=====-==: -***$2**$1+\n"
" :$2++=$1=======-=. .=+**+$3.$1\n"
".$2+$1==========-. $3.$1\n"
" :$2+++++++$1====- $3.$1--==-$3.$1\n"
" :$2++$1==========. $3:$2+++++++$1$3:\n"
" $1.-===========. =*****+*+\n"
" $1.-===========: .+*****+:\n"
" $1-=======$2++++$1:::::::::::::::::::::::::-: $3.$1---:\n"
" :======$2++++$1====$2+++******************=.\n"
" $1:=====$2+++$1==========$2++++++++++++++*-\n"
" $1.====$2++$1==============$2++++++++++*-\n"
" $1.===$2+$1==================$2+++++++:\n"
" $1.-=======================$2+++:\n"
" $3.........................."
)
FF_LOGO_COLORS(
"36", //cyan
"32", //green
"30" //black
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoCelOS()
{
FF_LOGO_INIT
FF_LOGO_NAMES("cel", "celos", "cel-linux", "celos-linux")
FF_LOGO_LINES(
" `-:/++++/:-`\n"
" -/syyyyyyyyyyyyy+-\n"
" :ssssyyyyyyyyyyyyyyyy/\n"
" .osy$2mmmmmmmmmmmmmmmNNNNNmmhy+\n"
" $1.sssshhhhhhhddddddddddddddds-\n"
" $1`osssssssyyyyyyyyyyyyyyyyyyhy`\n"
" $1:ssssssyyyyyyyyyyyyyyyyyyyyhh/\n"
"$2sMMMMMMMMMMMMMMMMMMMMMMMh$1yyyyyyhho\n"
" :sssssssyyyyyyyyyyyyyyyyyyyhh/\n"
" `ssssssssyyyyyyyyyyyyyyyyyyhy.\n"
" -sssssyddddddddddddddddddddy\n"
" -ssss$2hmmmmmmmmmmmmmmmmmmmyssss-\n"
" $1`/ssssyyyyyyyyyyyyyyyy+`\n"
" $1`:osyyyyyyyyyyyyys/`\n"
" $1`.:/+ooooo+:-`"
)
FF_LOGO_COLORS(
"35", //magenta
"30" //black
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoCentOS()
{
FF_LOGO_INIT
FF_LOGO_NAMES("cent", "centos", "cent-linux", "centos-linux")
FF_LOGO_LINES(
" ..\n"
" .PLTJ.\n"
" <><><><>\n"
" $2KKSSV' 4KKK $1LJ$4 KKKL.'VSSKK\n"
" $2KKV' 4KKKKK $1LJ$4 KKKKAL 'VKK\n"
" $2V' ' 'VKKKK $1LJ$4 KKKKV' ' 'V\n"
" $2.4MA.' 'VKK $1LJ$4 KKV' '.4Mb.\n"
" $4. $2KKKKKA.' 'V $1LJ$4 V' '.4KKKKK $3.\n"
" $4.4D $2KKKKKKKA.'' $1LJ$4 ''.4KKKKKKK $3FA.\n"
"$4<QDD ++++++++++++ $3++++++++++++ GFD>\n"
" '$4VD $3KKKKKKKK'.. $2LJ $1..'KKKKKKKK $3FV\n"
" $4' $3VKKKKK'. .4 $2LJ $1K. .'KKKKKV $3'\n"
" $3'VK'. .4KK $2LJ $1KKA. .'KV'\n"
" $3A. . .4KKKK $2LJ $1KKKKA. . .4\n"
" $3KKA. 'KKKKK $2LJ $1KKKKK' .4KK\n"
" $3KKSSA. VKKK $2LJ $1KKKV .4SSKK\n"
" $2<><><><>\n"
" $2'MKKM'\n"
" $2''"
)
FF_LOGO_COLORS(
"33", //yellow
"32", //green
"34", //blue
"35", //magenta
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoCentOSSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("cent_small", "centos_small", "cent-linux_small", "cent-linux-small", "centos-linux-small")
FF_LOGO_LINES(
" $2____$1^$4____\n"
" $2|\\ $1|$4 /|\n"
" $2| \\ $1|$4 / |\n"
"$4<---- $3---->\n"
" $3| / $2|$1 \\ |\n"
" $3|/__$2|$1__\\|\n"
" $2v"
)
FF_LOGO_COLORS(
"33", //yellow
"32", //green
"34", //blue
"35" //magenta
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoDebian()
{
FF_LOGO_INIT
FF_LOGO_NAMES("debian", "debian-linux")
FF_LOGO_LINES(
" $2_,met$$$$$$$$$$gg.\n"
" ,g$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P.\n"
" ,g$$$$P\" \"\"\"Y$$$$.\".\n"
" ,$$$$P' `$$$$$$.\n"
"',$$$$P ,ggs. `$$$$b:\n"
"`d$$$$' ,$P\"' $1.$2 $$$$$$\n"
" $$$$P d$' $1,$2 $$$$$$P\n"
" $$$$: $$. $1-$2 ,d$$$$'\n"
" $$$$; Y$b._ _,d$P'\n"
" Y$$$$. $1`.$2`\"Y$$$$$$$$P\"'\n"
" `$$$$b $1\"-.__\n"
" $2`Y$$$$\n"
" `Y$$$$.\n"
" `$$$$b.\n"
" `Y$$$$b.\n"
" `\"Y$$b._\n"
" `\"\"\""
)
FF_LOGO_COLORS(
"31", //red
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoDebianSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("debian_small", "debian-linux-small")
FF_LOGO_LINES(
" _____\n"
" / __ \\\n"
"| / |\n"
"| \\___-\n"
"-_\n"
" --_"
)
FF_LOGO_COLORS(
"31" //red
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoDeepin()
{
FF_LOGO_INIT
FF_LOGO_NAMES("deepin", "deepin-linux")
FF_LOGO_LINES(
"$1 ............\n"
" .';;;;;. .,;,.\n"
" .,;;;;;;;. ';;;;;;;.\n"
" .;::::::::' .,::;;,''''',.\n"
" ,'.:::::::: .;;'. ';\n"
" ;' 'cccccc, ,' :: '.. .:\n"
" ,, :ccccc. ;: .c, '' :. ,;\n"
".l. cllll' ., .lc :; .l' l.\n"
".c :lllc ;cl: .l' .ll. :'\n"
".l 'looc. . ,o: 'oo' c,\n"
".o. .:ool::coc' .ooo' o.\n"
" :: ..... .;dddo ;c\n"
" l:... .';lddddo. ,o\n"
" lxxxxxdoolllodxxxxxxxxxc :l\n"
" ,dxxxxxxxxxxxxxxxxxxl. 'o,\n"
" ,dkkkkkkkkkkkkko;. .;o;\n"
" .;okkkkkdl;. .,cl:.\n"
" .,:cccccccc:,."
)
FF_LOGO_COLORS(
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoDevuan()
{
FF_LOGO_INIT
FF_LOGO_NAMES("devuan", "devuan-linux")
FF_LOGO_LINES(
" ..,,;;;::;,..\n"
" `':ddd;:,.\n"
" `'dPPd:,.\n"
" `:b$$b`.\n"
" 'P$$$d`\n"
" .$$$$$`\n"
" ;$$$$$P\n"
" .:P$$$$$$`\n"
" .,:b$$$$$$$;'\n"
" .,:dP$$$$$$$$b:'\n"
" .,:;db$$$$$$$$$$Pd'`\n"
" ,db$$$$$$$$$$$$$$b:'`\n"
":$$$$$$$$$$$$b:'`\n"
" `$$$$$bd:''`\n"
" `'''`\n"
)
FF_LOGO_COLORS(
"35" //magenta
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoDevuanSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("devuan_small", "devuan-linux-small")
FF_LOGO_LINES(
" ..:::.\n"
" ..-==-\n"
" .+#:\n"
" =@@\n"
" :+%@#:\n"
".:=+#@@%*:\n"
"#@@@#=:\n"
)
FF_LOGO_COLORS(
"34" //blue
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoEndeavour()
{
FF_LOGO_INIT
FF_LOGO_NAMES("endeavour", "endeavour-linux", "endeavouros", "endeavouros-linux")
FF_LOGO_LINES(
" $2./$1o$3.\n"
" $2./$1sssso$3-\n"
" $2`:$1osssssss+$3-\n"
" $2`:+$1sssssssssso$3/.\n"
" $2`-/o$1ssssssssssssso$3/.\n"
" $2`-/+$1sssssssssssssssso$3+:`\n"
" $2`-:/+$1sssssssssssssssssso$3+/.\n"
" $2`.://o$1sssssssssssssssssssso$3++-\n"
" $2.://+$1ssssssssssssssssssssssso$3++:\n"
" $2.:///o$1ssssssssssssssssssssssssso$3++:\n"
" $2`:////$1ssssssssssssssssssssssssssso$3+++.\n"
"$2`-////+$1ssssssssssssssssssssssssssso$3++++-\n"
" $2`..-+$1oosssssssssssssssssssssssso$3+++++/`\n"
"$3./++++++++++++++++++++++++++++++/:.\n"
"`:::::::::::::::::::::::::------``"
)
FF_LOGO_COLORS(
"35", //magenta
"31", //red
"34" //blue
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoFedora()
{
FF_LOGO_INIT
FF_LOGO_NAMES("fedora", "fedora-linux")
FF_LOGO_LINES(
" .',;::::;,'.\n"
" .';:cccccccccccc:;,.\n"
" .;cccccccccccccccccccccc;.\n"
" .:cccccccccccccccccccccccccc:.\n"
" .;ccccccccccccc;$2.:dddl:.$1;ccccccc;.\n"
" .:ccccccccccccc;$2OWMKOOXMWd$1;ccccccc:.\n"
".:ccccccccccccc;$2KMMc$1;cc;$2xMMc$1;ccccccc:.\n"
",cccccccccccccc;$2MMM.$1;cc;$2;WW:$1;cccccccc,\n"
":cccccccccccccc;$2MMM.$1;cccccccccccccccc:\n"
":ccccccc;$2oxOOOo$1;$2MMM000k.$1;cccccccccccc:\n"
"cccccc;$20MMKxdd:$1;$2MMMkddc.$1;cccccccccccc;\n"
"ccccc;$2XMO'$1;cccc;$2MMM.$1;cccccccccccccccc'\n"
"ccccc;$2MMo$1;ccccc;$2MMW.$1;ccccccccccccccc;\n"
"ccccc;$20MNc.$1ccc$2.xMMd$1;ccccccccccccccc;\n"
"cccccc;$2dNMWXXXWM0:$1;cccccccccccccc:,\n"
"cccccccc;$2.:odl:.$1;cccccccccccccc:,.\n"
"ccccccccccccccccccccccccccccc:'.\n"
":ccccccccccccccccccccccc:;,..\n"
" ':cccccccccccccccc::;,."
)
FF_LOGO_COLORS(
"34", //blue
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoFedoraSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("fedora_small", "fedora-linux-small")
FF_LOGO_LINES(
" ,'''''.\n"
" | ,. |\n"
" | | '_'\n"
" ,....| |..\n"
".' ,_;| ..'\n"
"| | | |\n"
"| ',_,' |\n"
" '. ,'\n"
" '''''"
)
FF_LOGO_COLORS(
"34" //blue
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoFedoraOld()
{
FF_LOGO_INIT
FF_LOGO_NAMES("fedora_old", "fedora-old", "fedora-linux-old", "fedora-linux_old")
FF_LOGO_LINES(
" /:-------------:\\\n"
" :-------------------::\n"
" :-----------$2/shhOHbmp$1---:\\\n"
" /-----------$2omMMMNNNMMD$1 ---:\n"
" :-----------$2sMMMMNMNMP$1. ---:\n"
" :-----------$2:MMMdP$1------- ---\\\n"
",------------$2:MMMd$1-------- ---:\n"
":------------$2:MMMd$1------- .---:\n"
":---- $2oNMMMMMMMMMNho$1 .----:\n"
":-- .$2+shhhMMMmhhy++$1 .------/\n"
":- -------$2:MMMd$1--------------:\n"
":- --------$2/MMMd$1-------------;\n"
":- ------$2/hMMMy$1------------:\n"
":--$2 :dMNdhhdNMMNo$1------------;\n"
":---$2:sdNMMMMNds:$1------------:\n"
":------$2:://:$1-------------::\n"
":---------------------://"
)
FF_LOGO_COLORS(
"34", //blue
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoGaruda()
{
FF_LOGO_INIT
FF_LOGO_NAMES("garuda", "garuda-linux")
FF_LOGO_LINES(
" .%;888:8898898:\n"
" x;XxXB%89b8:b8%b88:\n"
" .8Xxd 8X:.\n"
" .8Xx; 8x:.\n"
" .tt8x .d x88;\n"
" .@8x8; .db: xx@;\n"
" ,tSXX° .bbbbbbbbbbbbbbbbbbbB8x@;\n"
" .SXxx bBBBBBBBBBBBBBBBBBBBbSBX8;\n"
" ,888S pd!\n"
"8X88/ q\n"
"8X88/\n"
"GBB.\n"
" x%88 d888@8@X@X@X88X@@XX@@X@8@X.\n"
" dxXd dB8b8b8B8B08bB88b998888b88x.\n"
" dxx8o .@@;.\n"
" dx88 .t@x.\n"
" d:SS@8ba89aa67a853Sxxad.\n"
" .d988999889889899dd."
)
FF_LOGO_COLORS(
"31" //red
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoGentoo()
{
FF_LOGO_INIT
FF_LOGO_NAMES("gentoo", "gentoo-linux")
FF_LOGO_LINES(
" -/oyddmdhs+:.\n"
" -o$2dNMMMMMMMMNNmhy+$1-`\n"
" -y$2NMMMMMMMMMMMNNNmmdhy$1+-\n"
" `o$2mMMMMMMMMMMMMNmdmmmmddhhy$1/`\n"
" om$2MMMMMMMMMMMN$1hhyyyo$2hmdddhhhd$1o`\n"
".y$2dMMMMMMMMMMd$1hs++so/s$2mdddhhhhdm$1+`\n"
" oy$2hdmNMMMMMMMN$1dyooy$2dmddddhhhhyhN$1d.\n"
" :o$2yhhdNNMMMMMMMNNNmmdddhhhhhyym$1Mh\n"
" .:$2+sydNMMMMMNNNmmmdddhhhhhhmM$1my\n"
" /m$2MMMMMMNNNmmmdddhhhhhmMNh$1s:\n"
" `o$2NMMMMMMMNNNmmmddddhhdmMNhs$1+`\n"
" `s$2NMMMMMMMMNNNmmmdddddmNMmhs$1/.\n"
" /N$2MMMMMMMMNNNNmmmdddmNMNdso$1:`\n"
"+M$2MMMMMMNNNNNmmmmdmNMNdso$1/-\n"
"yM$2MNNNNNNNmmmmmNNMmhs+/$1-`\n"
"/h$2MMNNNNNNNNMNdhs++/$1-`\n"
"`/$2ohdmmddhys+++/:$1.`\n"
" `-//////:--."
)
FF_LOGO_COLORS(
"35", //magenta
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoGentooSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("gentoo_small", "gentoo-linux-small")
FF_LOGO_LINES(
" _-----_\n"
"( \\\n"
"\\ 0 \\\n"
" $2\\ )\n"
" / _/\n"
"( _-\n"
"\\____-"
)
FF_LOGO_COLORS(
"35", //magenta
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoKDENeon()
{
FF_LOGO_INIT
FF_LOGO_NAMES("kde", "kde-neon", "neon")
FF_LOGO_LINES(
" `..---+/---..`\n"
" `---.`` `` `.---.`\n"
" .--.` `` `-:-.\n"
" `:/: `.----//----.` :/-\n"
" .:. `---` `--.` .:`\n"
" .:` `--` .:- `:.\n"
" `/ `:. `.-::-.` -:` `/`\n"
" /. /. `:++++++++:` .: .:\n"
"`/ .: `+++++++++++/ /` `+`\n"
"/+` -- .++++++++++++` :. .+:\n"
"`/ .: `+++++++++++/ /` `+`\n"
" /` /. `:++++++++:` .: .:\n"
" ./ `:. `.:::-.` -:` `/`\n"
" .:` `--` .:- `:.\n"
" .:. `---` `--.` .:`\n"
" `:/: `.----//----.` :/-\n"
" .-:.` `` `-:-.\n"
" `---.`` `` `.---.`\n"
" `..---+/---..`"
)
FF_LOGO_COLORS(
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoKubuntu()
{
FF_LOGO_INIT
FF_LOGO_NAMES("kubuntu", "kubuntu-linux", "kde-ubuntu", "ubuntu-kde", "ubuntu-plasma")
FF_LOGO_LINES(
"$1 `.:/ossyyyysso/:.\n"
" .:oyyyyyyyyyyyyyyyyyyo:`\n"
" -oyyyyyyyo$2dMMy$1yyyyyyysyyyyo-\n"
" -syyyyyyyyyy$2dMMy$1oyyyy$2dmMMy$1yyyys-\n"
" oyyys$2dMy$1syyyy$2dMMMMMMMMMMMMMy$1yyyyyyo\n"
" `oyyyy$2dMMMMy$1syysoooooo$2dMMMMy$1yyyyyyyyo`\n"
" oyyyyyy$2dMMMMy$1yyyyyyyyyyys$2dMMy$1sssssyyyo\n"
"-yyyyyyyy$2dMy$1syyyyyyyyyyyyyys$2dMMMMMy$1syyy-\n"
"oyyyysoo$2dMy$1yyyyyyyyyyyyyyyyyy$2dMMMMy$1syyyo\n"
"yyys$2dMMMMMy$1yyyyyyyyyyyyyyyyyysosyyyyyyyy\n"
"yyys$2dMMMMMy$1yyyyyyyyyyyyyyyyyyyyyyyyyyyyy\n"
"oyyyyysos$2dy$1yyyyyyyyyyyyyyyyyy$2dMMMMy$1syyyo\n"
"-yyyyyyyy$2dMy$1syyyyyyyyyyyyyys$2dMMMMMy$1syyy-\n"
" oyyyyyy$2dMMMy$1syyyyyyyyyyys$2dMMy$1oyyyoyyyo\n"
" `oyyyy$2dMMMy$1syyyoooooo$2dMMMMy$1oyyyyyyyyo\n"
" oyyysyyoyyyys$2dMMMMMMMMMMMy$1yyyyyyyo\n"
" -syyyyyyyyy$2dMMMy$1syyy$2dMMMy$1syyyys-\n"
" -oyyyyyyy$2dMMy$1yyyyyysosyyyyo-\n"
" ./oyyyyyyyyyyyyyyyyyyo/.\n"
" `.:/oosyyyysso/:.`"
)
FF_LOGO_COLORS(
"34", //blue
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoLinux()
{
FF_LOGO_INIT
FF_LOGO_NAMES("linux", "linux-generic")
FF_LOGO_LINES(
" $2#####\n"
" $2#######\n"
" $2##$1O$2#$1O$2##\n"
" $2#$3#####$2#\n"
" $2##$1##$3###$1##$2##\n"
" $2#$1##########$2##\n"
" $2#$1############$2##\n"
" $2#$1############$2###\n"
" $3##$2#$1###########$2##$3#\n"
"$3######$2#$1#######$2#$3######\n"
"$3#######$2#$1#####$2#$3#######\n"
" $3#####$2#######$3#####"
)
FF_LOGO_COLORS(
"37", //white
"30", //black
"33" //yellow
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoManjaro()
{
FF_LOGO_INIT
FF_LOGO_NAMES("manjaro", "manjaro-linux")
FF_LOGO_LINES(
"██████████████████ ████████\n"
"██████████████████ ████████\n"
"██████████████████ ████████\n"
"██████████████████ ████████\n"
"████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████\n"
"████████ ████████ ████████"
)
FF_LOGO_COLORS(
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoManjaroSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("manjaro_small", "manjaro-linux-small")
FF_LOGO_LINES(
"||||||||| ||||\n"
"||||||||| ||||\n"
"|||| ||||\n"
"|||| |||| ||||\n"
"|||| |||| ||||\n"
"|||| |||| ||||\n"
"|||| |||| ||||"
)
FF_LOGO_COLORS(
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoMint()
{
FF_LOGO_INIT
FF_LOGO_NAMES("mint", "linuxmint", "mint-linux", "linux-mint")
FF_LOGO_LINES(
" $2...-:::::-...\n"
" .-MMMMMMMMMMMMMMM-.\n"
" .-MMMM$1`..-:::::::-..`$2MMMM-.\n"
" .:MMMM$1.:MMMMMMMMMMMMMMM:.$2MMMM:.\n"
" -MMM$1-M---MMMMMMMMMMMMMMMMMMM.$2MMM-\n"
" `:MMM$1:MM` :MMMM:....::-...-MMMM:$2MMM:`\n"
" :MMM$1:MMM` :MM:` `` `` `:MMM:$2MMM:\n"
".MMM$1.MMMM` :MM. -MM. .MM- `MMMM.$2MMM.\n"
":MMM$1:MMMM` :MM. -MM- .MM: `MMMM-$2MMM:\n"
":MMM$1:MMMM` :MM. -MM- .MM: `MMMM:$2MMM:\n"
":MMM$1:MMMM` :MM. -MM- .MM: `MMMM-$2MMM:\n"
".MMM$1.MMMM` :MM:--:MM:--:MM: `MMMM.$2MMM.\n"
" :MMM$1:MMM- `-MMMMMMMMMMMM-` -MMM-$2MMM:\n"
" :MMM$1:MMM:` `:MMM:$2MMM:\n"
" .MMM$1.MMMM:--------------:MMMM.$2MMM.\n"
" '-MMMM$1.-MMMMMMMMMMMMMMM-.$2MMMM-'\n"
" '.-MMMM$1``--:::::--``$2MMMM-.'\n"
" '-MMMMMMMMMMMMM-'\n"
" ``-:::::-``"
)
FF_LOGO_COLORS(
"32", //green
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoMintSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("mint_small", "linuxmint_small", "mint-linux-small")
FF_LOGO_LINES(
" __________\n"
"|_ \\\n"
" | $2| _____ $1|\n"
" | $2| | | | $1|\n"
" | $2| | | | $1|\n"
" | $2\\__$2___/ $1|\n"
" \\_________/"
)
FF_LOGO_COLORS(
"32", //green
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoMintOld()
{
FF_LOGO_INIT
FF_LOGO_NAMES("mint_old", "mint-old", "mint-linux_old", "mint-linux-old", "linux-mint_old", "linux-mint-old")
FF_LOGO_LINES(
"MMMMMMMMMMMMMMMMMMMMMMMMMmds+.\n"
"MMm----::-://////////////oymNMd+`\n"
"MMd $2/++ $1-sNMd:\n"
"MMNso/` $2dMM `.::-. .-::.` $1.hMN:\n"
"ddddMMh $2dMM :hNMNMNhNMNMNh: $1`NMm\n"
" NMm $2dMM .NMN/-+MMM+-/NMN` $1dMM\n"
" NMm $2dMM -MMm `MMM dMM. $1dMM\n"
" NMm $2dMM -MMm `MMM dMM. $1dMM\n"
" NMm $2dMM .mmd `mmm yMM. $1dMM\n"
" NMm $2dMM` ..` ... ydm. $1dMM\n"
" hMM- $2+MMd/-------...-:sdds $1dMM\n"
" -NMm- $2:hNMNNNmdddddddddy/` $1dMM\n"
" -dMNs-$2``-::::-------.`` $1dMM\n"
" `/dMNmy+/:-------------:/yMMM\n"
" ./ydNMMMMMMMMMMMMMMMMMMMMM\n"
" .MMMMMMMMMMMMMMMMMMM"
)
FF_LOGO_COLORS(
"32", //green
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoNixOS()
{
FF_LOGO_INIT
FF_LOGO_NAMES("nixos", "nix", "nixos-linux", "nix-linux", "nix-os", "nix_os", "nix_os_linux")
FF_LOGO_LINES(
"$1 ▗▄▄▄ $2▗▄▄▄▄ ▄▄▄▖\n"
"$1 ▜███▙ $2▜███▙ ▟███▛\n"
"$1 ▜███▙ $2▜███▙▟███▛\n"
"$1 ▜███▙ $2▜██████▛\n"
"$1 ▟█████████████████▙ $2▜████▛ $1▟▙\n"
"$1 ▟███████████████████▙ $2▜███▙ $1▟██▙\n"
"$2 ▄▄▄▄▖ ▜███▙ $1▟███▛\n"
"$2 ▟███▛ ▜██▛ $1▟███▛\n"
"$2 ▟███▛ ▜▛ $1▟███▛\n"
"$2▟███████████▛ $1▟██████████▙\n"
"$2▜██████████▛ $1▟███████████▛\n"
"$2 ▟███▛ $1▟▙ ▟███▛\n"
"$2 ▟███▛ $1▟██▙ ▟███▛\n"
"$2 ▟███▛ $1▜███▙ ▝▀▀▀▀\n"
"$2 ▜██▛ $1▜███▙ $2▜██████████████████▛\n"
"$2 ▜▛ $1▟████▙ $2▜████████████████▛\n"
"$1 ▟██████▙ $2▜███▙\n"
"$1 ▟███▛▜███▙ $2▜███▙\n"
"$1 ▟███▛ ▜███▙ $2▜███▙\n"
"$1 ▝▀▀▀ ▀▀▀▀▘ $2▀▀▀▘"
)
FF_LOGO_COLORS(
"34", //blue
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoNixOsOld()
{
FF_LOGO_INIT
FF_LOGO_NAMES("nixos_old", "nix-old", "nixos-old", "nix_old", "nix-os-old", "nix_os_old")
FF_LOGO_LINES(
"$1 ::::. $2'::::: ::::'\n"
"$1 '::::: $2':::::. ::::'\n"
"$1 ::::: $2'::::.:::::\n"
"$1 .......:::::..... $2::::::::\n"
"$1 ::::::::::::::::::. $2:::::: $1::::.\n"
" ::::::::::::::::::::: $2:::::. $1.::::'\n"
"$2 ..... ::::' $1:::::'\n"
"$2 ::::: '::' $1:::::'\n"
"$2 ........::::: ' $1:::::::::::.\n"
"$2::::::::::::: $1:::::::::::::\n"
"$2 ::::::::::: $1.. $1:::::\n"
"$2 .::::: $1.::: $1:::::\n"
"$2 .::::: $1::::: $1''''' $2.....\n"
" ::::: $1':::::. $2......:::::::::::::'\n"
" ::: $1::::::. $2':::::::::::::::::'\n"
"$1 .:::::::: $2'::::::::::\n"
"$1 .::::''::::. $2'::::.\n"
"$1 .::::' ::::. $2'::::.\n"
"$1 .:::: :::: $2'::::."
)
FF_LOGO_COLORS(
"34", //blue
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoNixOsSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("nixos_small", "nix-small", "nixos-small", "nix_small", "nix-os-small", "nix_os_small")
FF_LOGO_LINES(
"$1 \\\\ \\\\ //\n"
" ==\\\\__\\\\/ //\n"
" // \\\\//\n"
"==// //==\n"
" //\\\\___//\n"
"// /\\\\ \\\\==\n"
" // \\\\ \\\\"
)
FF_LOGO_COLORS(
"34" //blue
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoOpenSuse()
{
FF_LOGO_INIT
FF_LOGO_NAMES("suse", "opensuse", "open_suse", "open-suse", "suse-linux")
FF_LOGO_LINES(
" $2.;ldkO0000Okdl;.\n"
" .;d00xl:^''''''^:ok00d;.\n"
" .d00l' 'o00d.\n"
" .d0Kd'$1 Okxol:;,. $2:O0d\n"
" .OK$1KKK0kOKKKKKKKKKKOxo:, $2lKO.\n"
" ,0K$1KKKKKKKKKKKKKKK0P^$2,,,$1^dx:$2 ;00,\n"
".OK$1KKKKKKKKKKKKKKKk'$2.oOPPb.$1'0k.$2 cKO.\n"
":KK$1KKKKKKKKKKKKKKK: $2kKx..dd $1lKd$2 'OK:\n"
"dKK$1KKKKKKKKKOx0KKKd $2^0KKKO' $1kKKc$2 dKd\n"
"dKK$1KKKKKKKKKK;.;oOKx,..$2^$1..;kKKK0.$2 dKd\n"
":KK$1KKKKKKKKKK0o;...^cdxxOK0O/^^' $2.0K:\n"
" kKK$1KKKKKKKKKKKKK0x;,,......,;od $2lKk\n"
" '0K$1KKKKKKKKKKKKKKKKKKKK00KKOo^ $2c00'\n"
" 'kK$1KKOxddxkOO00000Okxoc;'' $2.dKk'\n"
" l0Ko. .c00l'\n"
" 'l0Kk:. .;xK0l'\n"
" 'lkK0xl:;,,,,;:ldO0kl'\n"
" '^:ldxkkkkxdl:^'"
)
FF_LOGO_COLORS(
"32", //green
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoOpenSuseSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("suse_small", "opensuse_small", "open_suse_small", "open-suse_small")
FF_LOGO_LINES(
" _______\n"
"__| __ \\\n"
" / .\\ \\\n"
" \\__/ |\n"
" _______|\n"
" \\_______\n"
"__________/"
)
FF_LOGO_COLORS(
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoOpenSuseLeap()
{
FF_LOGO_INIT
FF_LOGO_NAMES("opensuse_leap", "open_suse_leap", "opensuse-leap", "open-suse-leap", "suse_leap", "suse-leap", "opensuseleap")
FF_LOGO_LINES(
" $2.-++:.\n"
" ./oooooo/-\n"
" `:oooooooooooo:.\n"
" -+oooooooooooooooo+-`\n"
" ./oooooooooooooooooooooo/-\n"
" :oooooooooooooooooooooooooo:\n"
" ` `-+oooooooooooooooooooo/- `\n"
" `:oo/- .:ooooooooooooooo+:` `-+oo/.\n"
"`/oooooo:. -/oooooooooo/. ./oooooo/.\n"
" `:+ooooo+-` `:+oooo+- `:oooooo+:`\n"
" .:oooooo/. .::` -+oooooo/.\n"
" -/oooooo:. ./oooooo+-\n"
" `:+ooooo+-:+oooooo:`\n"
" ./oooooooooo/.\n"
" -/oooo+:`\n"
" `:/."
)
FF_LOGO_COLORS(
"32", //green
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoOpenSuseTumbleweed()
{
FF_LOGO_INIT
FF_LOGO_NAMES("opensuse_tumbleweed", "open_suse_tumbleweed", "opensuse-tumbleweed", "open-suse-tumbleweed", "suse_tumbleweed", "suse-tumbleweed", "opensusetumbleweed")
FF_LOGO_LINES(
" $2......\n"
" .,cdxxxoc,. .:kKMMMNWMMMNk:.\n"
" cKMMN0OOOKWMMXo. ; ;0MWk:. .:OMMk.\n"
" ;WMK;. .lKMMNM, :NMK, .OMW;\n"
" cMW; 'WMMMN ,XMK, oMM'\n"
".MMc ..;l. xMN: KM0\n"
"'MM. 'NMO oMM\n"
".MM, .kMMl xMN\n"
" KM0 .kMM0. .dl:,.. .WMd\n"
" .XM0. ,OMMK, OMMMK. .XMK\n"
" oWMO:. .;xNMMk, NNNMKl. .xWMx\n"
" :ONMMNXMMMKx; . ,xNMWKkxllox0NMWk,\n"
" ..... .:dOOXXKOxl,"
)
FF_LOGO_COLORS(
"32", //green
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoPop()
{
FF_LOGO_INIT
FF_LOGO_NAMES("pop", "popos", "pop_os", "pop-linux")
FF_LOGO_LINES(
" /////////////\n"
" /////////////////////\n"
" ///////$2*767$1////////////////\n"
" //////$27676767676*$1//////////////\n"
" /////$276767$1//$27676767$1//////////////\n"
" /////$2767676$1///$2*76767$1///////////////\n"
" ///////$2767676$1///$276767$1.///$27676*$1///////\n"
"/////////$2767676$1//$276767$1///$2767676$1////////\n"
"//////////$276767676767$1////$276767$1/////////\n"
"///////////$276767676$1//////$27676$1//////////\n"
"////////////,$27676$1,///////$2767$1///////////\n"
"/////////////*$27676$1///////$276$1////////////\n"
"///////////////$27676$1////////////////////\n"
" ///////////////$27676$1///$2767$1////////////\n"
" //////////////////////$2'$1////////////\n"
" //////$2.7676767676767676767,$1//////\n"
" /////$2767676767676767676767$1/////\n"
" ///////////////////////////\n"
" /////////////////////\n"
" /////////////"
)
FF_LOGO_COLORS(
"36", //cyan
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoPopSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("pop_small", "popos_small", "pop_os_small", "pop-linux-small")
FF_LOGO_LINES(
"______\n"
"\\ _ \\ __\n"
" \\ \\ \\ \\ / /\n"
" \\ \\_\\ \\ / /\n"
" \\ ___\\ /_/\n"
" \\ \\ _\n"
" __\\_\\__(_)_\n"
" (___________)`"
)
FF_LOGO_COLORS(
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoReborn()
{
FF_LOGO_INIT
FF_LOGO_NAMES("reborn", "reborn-os", "rebornos", "rebornos-linux", "reborn-os-linux")
FF_LOGO_LINES(
" :::::::::::::::::::::::\n"
" .:^!!!!!!!!!^.^!!!!!!!!!^:.\n"
" .:~!!!!!!!!!!^.^!!!!!!!!!!~:.\n"
" .:~!!!!!~~~~~~^.^~~~~~~!!!!!~:.\n"
" .^!!!!!~::$2=====:.:=====$1::~!!!!!^.\n"
" .::^~~!!~:$2^77777?~.~?77777^$1:~!!~~^::.\n"
" .:~~^:::^.$2^77777!!^.^7!77777^$1.^:::^~~:.\n"
" .:~!!!!~::::$2^~!!::^^^^^::!!~^$1::::~!!!!~:.\n"
" .^!!!!!~::$2!7!~^:.^?JJJJJ?^.:^~!7!$1::~!!!!!^.\n"
".:^!!!!!~:$2^77777~.~JJJJJJJJJ~.~77777^$1:~!!!!!^:.\n"
".:^!!!!!~:$2^77777~.~JJJJJJJJJ~.~77777^$1:~!!!!!^:.\n"
" .^!!!!!~::$2!7!~^:.^?JJJJJ?^.:^~!7!$1::~!!!!!^.\n"
" .:~!!!!~::$2::^~!!::^^^^^::!!~^::$1::~!!!!~:.\n"
" .:~~^:::^.$2^77777!!^.^7!77777^.$1^:::^~~:.\n"
" .::^~~!!~:$2^77777?~.~?77777^$1:~!!~~^::.\n"
" .^!!!!!~::$2=====:.:=====$1::~!!!!!^.\n"
" .:~!!!!!~~~~~~^.^~~~~~~!!!!!~:.\n"
" .:~!!!!!!!!!!^.^!!!!!!!!!!~:.\n"
" .:^!!!!!!!!!^.^!!!!!!!!!^:.\n"
" :::::::::::::::::::::::\n"
)
FF_LOGO_COLORS(
"34", //blue
"36" //cyan
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoRebornSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("reborn_small", "reborn-os-small", "rebornos_small", "rebornos-linux-small", "reborn-os-linux-small")
FF_LOGO_LINES(
" _______________\n"
" / \\ / \\\n"
" / \\_______/ \\\n"
" / / \\ / \\ \\\n"
" / / \\___/ \\ \\\n"
"/____/____/ \\____\\____\\\n"
"\\ \\ \\___/ / /\n"
" \\ \\ / \\ / /\n"
" \\ \\/_______\\/ /\n"
" \\ / \\ /\n"
" \\_/___________\\_/\n"
)
FF_LOGO_COLORS(
"34" //blue
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoRedHatEnterpriseLinux()
{
FF_LOGO_INIT
FF_LOGO_NAMES("rhel", "redhat", "redhat-linux")
FF_LOGO_LINES(
" .MMM..:MMMMMMM\n"
" MMMMMMMMMMMMMMMMMM\n"
" MMMMMMMMMMMMMMMMMMMM.\n"
" MMMMMMMMMMMMMMMMMMMMMM\n"
" ,MMMMMMMMMMMMMMMMMMMMMM:\n"
" MMMMMMMMMMMMMMMMMMMMMMMM\n"
" .MMMM' MMMMMMMMMMMMMMMMMMMMMM\n"
" MMMMMM `MMMMMMMMMMMMMMMMMMMM.\n"
"MMMMMMMM MMMMMMMMMMMMMMMMMM .\n"
"MMMMMMMMM. `MMMMMMMMMMMMM' MM.\n"
"MMMMMMMMMMM. MMMM\n"
"`MMMMMMMMMMMMM. ,MMMMM.\n"
" `MMMMMMMMMMMMMMMMM. ,MMMMMMMM.\n"
" MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n"
" MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:\n"
" MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n"
" `MMMMMMMMMMMMMMMMMMMMMMMM:\n"
" ``MMMMMMMMMMMMMMMMM'"
)
FF_LOGO_COLORS(
"31" //red
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoRedstarOS()
{
FF_LOGO_INIT
FF_LOGO_NAMES("redstar", "redstar-os", "redstaros", "redstaros-linux", "redstar-os-linux")
FF_LOGO_LINES(
"$1 ..\n"
" .oK0l\n"
" :0KKKKd.\n"
" .xKO0KKKKd\n"
" ,Od' .d0000l\n"
" .c;. .'''... ..'.\n"
".,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx:\n"
";kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,.\n"
" .okkkkd,.lko .......',;:cllc:;,,'''''.\n"
" .cdo. :xd' cd:. ..';'',,,'',,;;;,'.\n"
" . .ddl.;doooc'..;oc;'..';::;,'.\n"
" coo;.oooolllllllcccc:'. .\n"
" .ool''lllllccccccc:::::;.\n"
" ;lll. .':cccc:::::::;;;;'\n"
" :lcc:'',..';::::;;;;;;;,,.\n"
" :cccc::::;...';;;;;,,,,,,.\n"
" ,::::::;;;,'. ..',,,,'''.\n"
" ........ ......"
)
FF_LOGO_COLORS(
"31" //red
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoUbuntu()
{
FF_LOGO_INIT
FF_LOGO_NAMES("ubuntu", "ubuntu-linux")
FF_LOGO_LINES(
" .-/+oossssoo+/-.\n"
" `:+ssssssssssssssssss+:`\n"
" -+ssssssssssssssssssyyssss+-\n"
" .ossssssssssssssssssd$2MMMNy$1sssso.\n"
" /sssssssssss$2hdmmNNmmyNMMMMh$1ssssss/\n"
" +sssssssss$2hmydMMMMMMMNddddy$1ssssssss+\n"
" /ssssssss$2hNMMMyhhyyyyhmNMMMNh$1ssssssss/\n"
".ssssssss$2dMMMNh$1ssssssssss$2hNMMMd$1ssssssss.\n"
"+ssss$2hhhyNMMNy$1ssssssssssss$2yNMMMy$1sssssss+\n"
"oss$2yNMMMNyMMh$1ssssssssssssss$2hmmmh$1ssssssso\n"
"oss$2yNMMMNyMMh$1ssssssssssssss$2hmmmh$1ssssssso\n"
"+ssss$2hhhyNMMNy$1ssssssssssss$2yNMMMy$1sssssss+\n"
".ssssssss$2dMMMNh$1ssssssssss$2hNMMMd$1ssssssss.\n"
" /ssssssss$2hNMMMyhhyyyyhdNMMMNh$1ssssssss/\n"
" +sssssssss$2dmydMMMMMMMMddddy$1ssssssss+\n"
" /sssssssssss$2hdmNNNNmyNMMMMh$1ssssss/\n"
" .ossssssssssssssssss$2dMMMNy$1sssso.\n"
" -+sssssssssssssssss$2yyy$1ssss+-\n"
" `:+ssssssssssssssssss+:`\n"
" .-/+oossssoo+/-."
)
FF_LOGO_COLORS(
"31", //red
"37" //white
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoUbuntuSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("ubuntu_small", "ubuntu-linux-small")
FF_LOGO_LINES(
" _\n"
" ---(_)\n"
" _/ --- \\\n"
"(_) | |\n"
" \\ --- _/\n"
" ---(_)"
)
FF_LOGO_COLORS(
"31" //red
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoVoid()
{
FF_LOGO_INIT
FF_LOGO_NAMES("void", "void-linux")
FF_LOGO_LINES(
" __.;=====;.__\n"
" _.=+==++=++=+=+===;.\n"
" -=+++=+===+=+=+++++=_\n"
" . -=:`` `--==+=++==.\n"
" _vi, ` --+=++++:\n"
" .uvnvi. _._ -==+==+.\n"
" .vvnvnI` .;==|==;. :|=||=|.\n"
"$2+QmQQm$1pvvnv;$2 _yYsyQQWUUQQQm #QmQ#$1:$2QQQWUV$QQm.\n"
" $2-QQWQW$1pvvo$2wZ?.wQQQE$1==<$2QWWQ/QWQW.QQWW$1(:$2 jQWQE\n"
" $2-$QQQQmmU' jQQQ$1@+=<$2QWQQ)mQQQ.mQQQC$1+;$2jWQQ@'\n"
" $2-$WQ8Y$1nI:$2 QWQQwgQQWV$1`$2mWQQ.jQWQQgyyWW@!\n"
" $1-1vvnvv. `~+++` ++|+++\n"
" +vnvnnv, `-|===\n"
" +vnvnvns. . :=-\n"
" -Invnvvnsi..___..=sv=. `\n"
" +Invnvnvnnnnnnnnvvnn;.\n"
" ~|Invnvnvvnvvvnnv}+`\n"
" -~|{*l}*|~"
)
FF_LOGO_COLORS(
"32", //green
"30" //black
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoVoidSmall()
{
FF_LOGO_INIT
FF_LOGO_NAMES("void_small", "void-linux-small")
FF_LOGO_LINES(
" _______\n"
" _ \\______ -\n"
"| \\ ___ \\ |\n"
"| | / \\ | |\n"
"| | \\___/ | |\n"
"| \\______ \\_|\n"
" -_______\\"
)
FF_LOGO_COLORS(
"32" //green
)
FF_LOGO_RETURN
}
static const FFlogo* getLogoZorin()
{
FF_LOGO_INIT
FF_LOGO_NAMES("zorin", "zorin-linux", "zorinos", "zorinos-linux")
FF_LOGO_LINES(
" `osssssssssssssssssssso`\n"
" .osssssssssssssssssssssso.\n"
" .+oooooooooooooooooooooooo+.\n"
"\n"
"\n"
" `::::::::::::::::::::::. .:`\n"
" `+ssssssssssssssssss+:.` `.:+ssso`\n"
".ossssssssssssssso/. `-+ossssssso.\n"
"ssssssssssssso/-` `-/osssssssssssss\n"
".ossssssso/-` .-/ossssssssssssssso.\n"
" `+sss+:. `.:+ssssssssssssssssss+`\n"
" `:. .::::::::::::::::::::::`\n"
"\n"
"\n"
" .+oooooooooooooooooooooooo+.\n"
" -osssssssssssssssssssssso-\n"
" `osssssssssssssssssssso`"
)
FF_LOGO_COLORS(
"34" //blue
)
FF_LOGO_RETURN
}
typedef const FFlogo*(*GetLogoMethod)();
static GetLogoMethod* getLogos()
{
static GetLogoMethod logoMethods[] = {
getLogoNone,
getLogoUnknown,
getLogoAndroid,
getLogoAndroidSmall,
getLogoArch,
getLogoArchSmall,
getLogoArcoLinux,
getLogoArtix,
getLogoArtixSmall,
getLogoCachyOS,
getLogoCelOS,
getLogoCentOS,
getLogoCentOSSmall,
getLogoDebian,
getLogoDevuan,
getLogoDevuanSmall,
getLogoDebianSmall,
getLogoDeepin,
getLogoEndeavour,
getLogoFedora,
getLogoFedoraSmall,
getLogoFedoraOld,
getLogoGaruda,
getLogoGentoo,
getLogoGentooSmall,
getLogoKDENeon,
getLogoKubuntu,
getLogoLinux,
getLogoManjaro,
getLogoManjaroSmall,
getLogoMint,
getLogoMintSmall,
getLogoMintOld,
getLogoNixOS,
getLogoNixOsOld,
getLogoNixOsSmall,
getLogoOpenSuse,
getLogoOpenSuseSmall,
getLogoOpenSuseLeap,
getLogoOpenSuseTumbleweed,
getLogoPop,
getLogoPopSmall,
getLogoReborn,
getLogoRebornSmall,
getLogoRedHatEnterpriseLinux,
getLogoRedstarOS,
getLogoUbuntu,
getLogoUbuntuSmall,
getLogoVoid,
getLogoVoidSmall,
getLogoZorin,
NULL
};
return logoMethods;
}
static bool logoHasName(const FFlogo* logo, const char* name)
{
const char** logoName = logo->names;
while(*logoName != NULL)
{
if(strcasecmp(*logoName, name) == 0)
return true;
++logoName;
}
return false;
}
static const FFlogo* getBuiltinLogo(const char* name)
{
GetLogoMethod* methods = getLogos();
while(*methods != NULL)
{
const FFlogo* logo = (*methods)();
if(logoHasName(logo, name))
return logo;
++methods;
}
return NULL;
}
static const FFlogo* detectBuiltinLogoWithVersion(const FFstrbuf* versionString, const FFstrbuf* name)
{
if(versionString->length == 0)
return getBuiltinLogo(name->chars);
#define FF_PRINT_LOGO_VERSIONED_IF_EXISTS(newLogo, oldLogo, ver) \
if(logoHasName(newLogo, name->chars)) \
{ \
long version = strtol(versionString->chars, NULL, 10); \
return (version == 0 || version == LONG_MAX || version == LONG_MIN || version > ver) ? newLogo : oldLogo; \
}
FF_PRINT_LOGO_VERSIONED_IF_EXISTS(getLogoFedora(), getLogoFedoraOld(), 34)
FF_PRINT_LOGO_VERSIONED_IF_EXISTS(getLogoMint(), getLogoMintOld(), 19)
return getBuiltinLogo(name->chars);
}
static const FFlogo* detectBuiltinLogo(const FFinstance* instance)
{
static const FFlogo* logo;
static bool detected = false;
if(detected)
return logo;
detected = true;
const FFOSResult* os = ffDetectOS(instance);
logo = detectBuiltinLogoWithVersion(&os->version, &os->name);
if(logo != NULL)
return logo;
logo = detectBuiltinLogoWithVersion(&os->version, &os->id);
if(logo != NULL)
return logo;
logo = detectBuiltinLogoWithVersion(&os->version, &os->idLike);
if(logo != NULL)
return logo;
logo = detectBuiltinLogoWithVersion(&os->version, &os->systemName);
if(logo != NULL)
return logo;
return getLogoUnknown();
}
void ffLogoSetMainColor(FFinstance* instance)
{
const FFlogo* logo = NULL;
if(instance->config.logoSource.length > 0)
logo = getBuiltinLogo(instance->config.logoSource.chars);
if(logo == NULL)
logo = detectBuiltinLogo(instance);
ffStrbufAppendS(&instance->config.mainColor, logo->builtinColors[0]);
}
static void printLogoStruct(FFinstance* instance, const FFlogo* logo, bool doColorReplacement)
{
if(!doColorReplacement)
{
ffLogoPrint(instance, logo->data, false);
return;
}
const char** colors = logo->builtinColors;
for(int i = 0; *colors != NULL && i < FASTFETCH_LOGO_MAX_COLORS; i++, colors++)
{
if(instance->config.logoColors[i].length == 0)
ffStrbufAppendS(&instance->config.logoColors[i], *colors);
}
ffLogoPrint(instance, logo->data, true);
}
void ffLogoPrintUnknown(FFinstance* instance)
{
printLogoStruct(instance, getLogoUnknown(), false);
}
bool ffLogoPrintBuiltinIfExists(FFinstance* instance)
{
const FFlogo* logo = getBuiltinLogo(instance->config.logoSource.chars);
if(logo == NULL)
return false;
printLogoStruct(instance, logo, true);
return true;
}
void ffLogoPrintBuiltinDetected(FFinstance* instance)
{
printLogoStruct(instance, detectBuiltinLogo(instance), true);
}
void ffPrintBuiltinLogos(FFinstance* instance)
{
GetLogoMethod* methods = getLogos();
while(*methods != NULL)
{
const FFlogo* logo = (*methods)();
printf("\033[%sm%s:\033[0m\n", logo->builtinColors[0], logo->names[0]);
printLogoStruct(instance, logo, true);
ffPrintRemainingLogo(instance);
instance->state.logoHeight = 0;
for(uint8_t i = 0; i < FASTFETCH_LOGO_MAX_COLORS; i++)
ffStrbufClear(&instance->config.logoColors[i]);
puts("\n");
++methods;
}
}
void ffListBuiltinLogos()
{
GetLogoMethod* methods = getLogos();
uint32_t counter = 0;
while(*methods != NULL)
{
const FFlogo* logo = (*methods)();
const char** names = logo->names;
printf("%u)%s ", counter, counter < 10 ? " " : "");
++counter;
while(*names != NULL)
{
printf("\"%s\" ", *names);
++names;
}
putchar('\n');
++methods;
}
}
void ffListBuiltinLogosAutocompletion()
{
GetLogoMethod* methods = getLogos();
while(*methods != NULL)
{
printf("%s\n", (*methods)()->names[0]);
++methods;
}
}