summaryrefslogtreecommitdiffstats
path: root/src/logo
diff options
context:
space:
mode:
authorsumuel <samuel@yakubos.org>2026-08-17 20:44:55 +0000
committersumuel <samuel@yakubos.org>2026-08-17 20:44:55 +0000
commit76424950e373d3b04ac3dd13019151bfba3e8423 (patch)
tree4c3cfdbda039e592b9186be3e28f8d7cfd439e8a /src/logo
Add the files
Diffstat (limited to 'src/logo')
-rw-r--r--src/logo/ascii/_/unknown.txt18
-rw-r--r--src/logo/ascii/a.inc881
-rw-r--r--src/logo/ascii/a/adelie.txt16
-rw-r--r--src/logo/ascii/a/aeon.txt14
-rw-r--r--src/logo/ascii/a/aeros.txt21
-rw-r--r--src/logo/ascii/a/aerynos.txt18
-rw-r--r--src/logo/ascii/a/aerynos_old.txt16
-rw-r--r--src/logo/ascii/a/afterglow.txt15
-rw-r--r--src/logo/ascii/a/aix.txt20
-rw-r--r--src/logo/ascii/a/almalinux.txt20
-rw-r--r--src/logo/ascii/a/alpine.txt20
-rw-r--r--src/logo/ascii/a/alpine2.txt16
-rw-r--r--src/logo/ascii/a/alpine2_small.txt6
-rw-r--r--src/logo/ascii/a/alpine3_small.txt6
-rw-r--r--src/logo/ascii/a/alpine_small.txt6
-rw-r--r--src/logo/ascii/a/alter.txt20
-rw-r--r--src/logo/ascii/a/altlinux.txt22
-rw-r--r--src/logo/ascii/a/amazon.txt19
-rw-r--r--src/logo/ascii/a/amazon_linux.txt10
-rw-r--r--src/logo/ascii/a/amiga.txt13
-rw-r--r--src/logo/ascii/a/amogos.txt19
-rw-r--r--src/logo/ascii/a/anarchy.txt28
-rw-r--r--src/logo/ascii/a/android.txt18
-rw-r--r--src/logo/ascii/a/android_small.txt6
-rw-r--r--src/logo/ascii/a/anduinos.txt19
-rw-r--r--src/logo/ascii/a/antergos.txt19
-rw-r--r--src/logo/ascii/a/antix.txt12
-rw-r--r--src/logo/ascii/a/anushos.txt20
-rw-r--r--src/logo/ascii/a/aoscos.txt17
-rw-r--r--src/logo/ascii/a/aoscos_old.txt20
-rw-r--r--src/logo/ascii/a/aoscosretro.txt18
-rw-r--r--src/logo/ascii/a/aoscosretro_small.txt9
-rw-r--r--src/logo/ascii/a/aperture.txt20
-rw-r--r--src/logo/ascii/a/apricity.txt18
-rw-r--r--src/logo/ascii/a/arch.txt19
-rw-r--r--src/logo/ascii/a/arch2.txt19
-rw-r--r--src/logo/ascii/a/arch3.txt19
-rw-r--r--src/logo/ascii/a/arch_old.txt16
-rw-r--r--src/logo/ascii/a/arch_small.txt7
-rw-r--r--src/logo/ascii/a/archbox.txt19
-rw-r--r--src/logo/ascii/a/archcraft.txt20
-rw-r--r--src/logo/ascii/a/archcraft2.txt20
-rw-r--r--src/logo/ascii/a/archlabs.txt21
-rw-r--r--src/logo/ascii/a/archstrike.txt17
-rw-r--r--src/logo/ascii/a/arco.txt20
-rw-r--r--src/logo/ascii/a/arco_small.txt11
-rw-r--r--src/logo/ascii/a/arkane.txt23
-rw-r--r--src/logo/ascii/a/armbian.txt22
-rw-r--r--src/logo/ascii/a/armbian2.txt14
-rw-r--r--src/logo/ascii/a/arselinux.txt15
-rw-r--r--src/logo/ascii/a/artix.txt20
-rw-r--r--src/logo/ascii/a/artix2.txt20
-rw-r--r--src/logo/ascii/a/artix2_small.txt7
-rw-r--r--src/logo/ascii/a/artix_small.txt13
-rw-r--r--src/logo/ascii/a/arya.txt15
-rw-r--r--src/logo/ascii/a/asahi.txt18
-rw-r--r--src/logo/ascii/a/asahi2.txt18
-rw-r--r--src/logo/ascii/a/aster.txt18
-rw-r--r--src/logo/ascii/a/asteroidos.txt17
-rw-r--r--src/logo/ascii/a/astos.txt23
-rw-r--r--src/logo/ascii/a/astra_linux.txt22
-rw-r--r--src/logo/ascii/a/athenaos.txt29
-rw-r--r--src/logo/ascii/a/athenaos_old.txt24
-rw-r--r--src/logo/ascii/a/aurora.txt28
-rw-r--r--src/logo/ascii/a/axos.txt16
-rw-r--r--src/logo/ascii/a/azos.txt17
-rw-r--r--src/logo/ascii/b.inc218
-rw-r--r--src/logo/ascii/b/bedrock.txt17
-rw-r--r--src/logo/ascii/b/bedrock_small.txt6
-rw-r--r--src/logo/ascii/b/berserkarch.txt21
-rw-r--r--src/logo/ascii/b/biglinux.txt19
-rw-r--r--src/logo/ascii/b/bitrig.txt17
-rw-r--r--src/logo/ascii/b/blackarch.txt21
-rw-r--r--src/logo/ascii/b/blackmesa.txt20
-rw-r--r--src/logo/ascii/b/blackpanther.txt23
-rw-r--r--src/logo/ascii/b/blag.txt17
-rw-r--r--src/logo/ascii/b/blankon.txt17
-rw-r--r--src/logo/ascii/b/bluelight.txt19
-rw-r--r--src/logo/ascii/b/bodhi.txt18
-rw-r--r--src/logo/ascii/b/bonsai.txt16
-rw-r--r--src/logo/ascii/b/bredos.txt9
-rw-r--r--src/logo/ascii/b/bsd.txt19
-rw-r--r--src/logo/ascii/b/bunsenlabs.txt20
-rw-r--r--src/logo/ascii/c.inc515
-rw-r--r--src/logo/ascii/c/cachyos.txt22
-rw-r--r--src/logo/ascii/c/cachyos_small.txt8
-rw-r--r--src/logo/ascii/c/calculate.txt20
-rw-r--r--src/logo/ascii/c/calinixos.txt25
-rw-r--r--src/logo/ascii/c/calinixos_small.txt15
-rw-r--r--src/logo/ascii/c/carbs.txt18
-rw-r--r--src/logo/ascii/c/cbl_mariner.txt18
-rw-r--r--src/logo/ascii/c/celos.txt15
-rw-r--r--src/logo/ascii/c/center.txt13
-rw-r--r--src/logo/ascii/c/centos.txt19
-rw-r--r--src/logo/ascii/c/centos_small.txt7
-rw-r--r--src/logo/ascii/c/cereus.txt27
-rw-r--r--src/logo/ascii/c/chakra.txt18
-rw-r--r--src/logo/ascii/c/chaletos.txt20
-rw-r--r--src/logo/ascii/c/chapeau.txt18
-rw-r--r--src/logo/ascii/c/chimera_linux.txt18
-rw-r--r--src/logo/ascii/c/chonkysealos.txt21
-rw-r--r--src/logo/ascii/c/chrom.txt18
-rw-r--r--src/logo/ascii/c/cleanjaro.txt12
-rw-r--r--src/logo/ascii/c/cleanjaro_small.txt7
-rw-r--r--src/logo/ascii/c/clear_linux.txt20
-rw-r--r--src/logo/ascii/c/clearos.txt20
-rw-r--r--src/logo/ascii/c/clover.txt20
-rw-r--r--src/logo/ascii/c/cobalt.txt16
-rw-r--r--src/logo/ascii/c/codex.txt12
-rw-r--r--src/logo/ascii/c/condres.txt17
-rw-r--r--src/logo/ascii/c/cosmic.txt11
-rw-r--r--src/logo/ascii/c/crux.txt18
-rw-r--r--src/logo/ascii/c/crux_small.txt7
-rw-r--r--src/logo/ascii/c/crystal.txt20
-rw-r--r--src/logo/ascii/c/cucumber.txt20
-rw-r--r--src/logo/ascii/c/cuerdos.txt13
-rw-r--r--src/logo/ascii/c/cutefishos.txt9
-rw-r--r--src/logo/ascii/c/cuteos.txt14
-rw-r--r--src/logo/ascii/c/cyberos.txt15
-rw-r--r--src/logo/ascii/c/cycledream.txt21
-rw-r--r--src/logo/ascii/d.inc206
-rw-r--r--src/logo/ascii/d/dahlia.txt17
-rw-r--r--src/logo/ascii/d/darkos.txt20
-rw-r--r--src/logo/ascii/d/debian.txt17
-rw-r--r--src/logo/ascii/d/debian_small.txt6
-rw-r--r--src/logo/ascii/d/deepin.txt18
-rw-r--r--src/logo/ascii/d/desaos.txt16
-rw-r--r--src/logo/ascii/d/devuan.txt15
-rw-r--r--src/logo/ascii/d/devuan_small.txt7
-rw-r--r--src/logo/ascii/d/dietpi.txt19
-rw-r--r--src/logo/ascii/d/dracos.txt13
-rw-r--r--src/logo/ascii/d/dragonfly.txt15
-rw-r--r--src/logo/ascii/d/dragonfly_old.txt17
-rw-r--r--src/logo/ascii/d/dragonfly_small.txt7
-rw-r--r--src/logo/ascii/d/drauger.txt16
-rw-r--r--src/logo/ascii/d/droidian.txt15
-rw-r--r--src/logo/ascii/e.inc256
-rw-r--r--src/logo/ascii/e/elbrus.txt14
-rw-r--r--src/logo/ascii/e/elementary.txt17
-rw-r--r--src/logo/ascii/e/elementary_small.txt6
-rw-r--r--src/logo/ascii/e/elive.txt17
-rw-r--r--src/logo/ascii/e/emmabuntus.txt15
-rw-r--r--src/logo/ascii/e/emperoros.txt13
-rw-r--r--src/logo/ascii/e/encryptos.txt13
-rw-r--r--src/logo/ascii/e/endeavouros.txt15
-rw-r--r--src/logo/ascii/e/endeavouros_small.txt7
-rw-r--r--src/logo/ascii/e/endless.txt20
-rw-r--r--src/logo/ascii/e/enos.txt6
-rw-r--r--src/logo/ascii/e/enso.txt19
-rw-r--r--src/logo/ascii/e/eshanizedos.txt27
-rw-r--r--src/logo/ascii/e/eurolinux.txt18
-rw-r--r--src/logo/ascii/e/evolutionos.txt21
-rw-r--r--src/logo/ascii/e/evolutionos_old.txt18
-rw-r--r--src/logo/ascii/e/evolutionos_small.txt9
-rw-r--r--src/logo/ascii/e/eweos.txt15
-rw-r--r--src/logo/ascii/e/exherbo.txt22
-rw-r--r--src/logo/ascii/e/exodia_predator.txt24
-rw-r--r--src/logo/ascii/f.inc288
-rw-r--r--src/logo/ascii/f/fastfetch.txt11
-rw-r--r--src/logo/ascii/f/fedora.txt19
-rw-r--r--src/logo/ascii/f/fedora2_small.txt5
-rw-r--r--src/logo/ascii/f/fedora_coreos.txt20
-rw-r--r--src/logo/ascii/f/fedora_kinoite.txt18
-rw-r--r--src/logo/ascii/f/fedora_old.txt17
-rw-r--r--src/logo/ascii/f/fedora_sericea.txt17
-rw-r--r--src/logo/ascii/f/fedora_silverblue.txt17
-rw-r--r--src/logo/ascii/f/fedora_small.txt9
-rw-r--r--src/logo/ascii/f/femboyos.txt20
-rw-r--r--src/logo/ascii/f/feren.txt16
-rw-r--r--src/logo/ascii/f/filotimo.txt20
-rw-r--r--src/logo/ascii/f/finnix.txt17
-rw-r--r--src/logo/ascii/f/floflis.txt19
-rw-r--r--src/logo/ascii/f/freebsd.txt15
-rw-r--r--src/logo/ascii/f/freebsd_small.txt6
-rw-r--r--src/logo/ascii/f/freemint.txt15
-rw-r--r--src/logo/ascii/f/frugalware.txt23
-rw-r--r--src/logo/ascii/f/funtoo.txt10
-rw-r--r--src/logo/ascii/f/furreto.txt22
-rw-r--r--src/logo/ascii/g.inc244
-rw-r--r--src/logo/ascii/g/galliumos.txt19
-rw-r--r--src/logo/ascii/g/garuda.txt18
-rw-r--r--src/logo/ascii/g/garuda_dragon.txt24
-rw-r--r--src/logo/ascii/g/garuda_small.txt5
-rw-r--r--src/logo/ascii/g/gentoo.txt18
-rw-r--r--src/logo/ascii/g/gentoo_small.txt7
-rw-r--r--src/logo/ascii/g/ghostbsd.txt13
-rw-r--r--src/logo/ascii/g/ghostfreak.txt19
-rw-r--r--src/logo/ascii/g/glaucus.txt12
-rw-r--r--src/logo/ascii/g/gnewsense.txt12
-rw-r--r--src/logo/ascii/g/gnome.txt21
-rw-r--r--src/logo/ascii/g/gnu.txt18
-rw-r--r--src/logo/ascii/g/gobolinux.txt6
-rw-r--r--src/logo/ascii/g/goldendoglinux.txt19
-rw-r--r--src/logo/ascii/g/grapheneos.txt23
-rw-r--r--src/logo/ascii/g/grombyang.txt18
-rw-r--r--src/logo/ascii/g/guix.txt10
-rw-r--r--src/logo/ascii/g/guix_small.txt7
-rw-r--r--src/logo/ascii/g/gxde.txt20
-rw-r--r--src/logo/ascii/h.inc211
-rw-r--r--src/logo/ascii/h/haiku.txt12
-rw-r--r--src/logo/ascii/h/haiku2.txt17
-rw-r--r--src/logo/ascii/h/haiku_small.txt8
-rw-r--r--src/logo/ascii/h/hamonikr.txt23
-rw-r--r--src/logo/ascii/h/hardclanz.txt19
-rw-r--r--src/logo/ascii/h/harmonyos.txt19
-rw-r--r--src/logo/ascii/h/hash.txt13
-rw-r--r--src/logo/ascii/h/hce.txt24
-rw-r--r--src/logo/ascii/h/heliumos.txt20
-rw-r--r--src/logo/ascii/h/huayra.txt17
-rw-r--r--src/logo/ascii/h/hybrid.txt16
-rw-r--r--src/logo/ascii/h/hydroos.txt8
-rw-r--r--src/logo/ascii/h/hyperbola.txt16
-rw-r--r--src/logo/ascii/h/hyperbola_small.txt7
-rw-r--r--src/logo/ascii/h/hypros.txt17
-rw-r--r--src/logo/ascii/i.inc83
-rw-r--r--src/logo/ascii/i/iglunix.txt12
-rw-r--r--src/logo/ascii/i/instantos.txt20
-rw-r--r--src/logo/ascii/i/interix.txt17
-rw-r--r--src/logo/ascii/i/irix.txt19
-rw-r--r--src/logo/ascii/i/ironclad.txt11
-rw-r--r--src/logo/ascii/i/itc.txt10
-rw-r--r--src/logo/ascii/j.inc21
-rw-r--r--src/logo/ascii/j/januslinux.txt24
-rw-r--r--src/logo/ascii/k.inc239
-rw-r--r--src/logo/ascii/k/kaisen.txt17
-rw-r--r--src/logo/ascii/k/kali.txt21
-rw-r--r--src/logo/ascii/k/kali_small.txt16
-rw-r--r--src/logo/ascii/k/kalpa_desktop.txt22
-rw-r--r--src/logo/ascii/k/kaos.txt16
-rw-r--r--src/logo/ascii/k/kdelinux.txt14
-rw-r--r--src/logo/ascii/k/kdeneon.txt19
-rw-r--r--src/logo/ascii/k/kernelos.txt19
-rw-r--r--src/logo/ascii/k/kibaos.txt6
-rw-r--r--src/logo/ascii/k/kibojoe.txt13
-rw-r--r--src/logo/ascii/k/kiss.txt7
-rw-r--r--src/logo/ascii/k/kiss2.txt11
-rw-r--r--src/logo/ascii/k/kogaion.txt20
-rw-r--r--src/logo/ascii/k/korora.txt16
-rw-r--r--src/logo/ascii/k/krassos.txt19
-rw-r--r--src/logo/ascii/k/kslinux.txt11
-rw-r--r--src/logo/ascii/k/kubuntu.txt20
-rw-r--r--src/logo/ascii/k/kylin.txt22
-rw-r--r--src/logo/ascii/l.inc326
-rw-r--r--src/logo/ascii/l/lainos.txt20
-rw-r--r--src/logo/ascii/l/langitketujuh.txt11
-rw-r--r--src/logo/ascii/l/laxeros.txt20
-rw-r--r--src/logo/ascii/l/lede.txt9
-rw-r--r--src/logo/ascii/l/lfs.txt18
-rw-r--r--src/logo/ascii/l/libreelec.txt20
-rw-r--r--src/logo/ascii/l/lilidog.txt16
-rw-r--r--src/logo/ascii/l/limeos.txt23
-rw-r--r--src/logo/ascii/l/lingmo.txt20
-rw-r--r--src/logo/ascii/l/linspire.txt12
-rw-r--r--src/logo/ascii/l/linux.txt12
-rw-r--r--src/logo/ascii/l/linux_small.txt7
-rw-r--r--src/logo/ascii/l/linuxlite.txt20
-rw-r--r--src/logo/ascii/l/linuxlite_small.txt7
-rw-r--r--src/logo/ascii/l/linuxmint.txt19
-rw-r--r--src/logo/ascii/l/linuxmint2.txt19
-rw-r--r--src/logo/ascii/l/linuxmint_old.txt16
-rw-r--r--src/logo/ascii/l/linuxmint_small.txt7
-rw-r--r--src/logo/ascii/l/live_raizo.txt20
-rw-r--r--src/logo/ascii/l/lliurex.txt16
-rw-r--r--src/logo/ascii/l/lmde.txt17
-rw-r--r--src/logo/ascii/l/locos.txt18
-rw-r--r--src/logo/ascii/l/lubuntu.txt20
-rw-r--r--src/logo/ascii/l/lunar.txt13
-rw-r--r--src/logo/ascii/m.inc436
-rw-r--r--src/logo/ascii/m/macaronios.txt11
-rw-r--r--src/logo/ascii/m/macos.txt17
-rw-r--r--src/logo/ascii/m/macos2.txt17
-rw-r--r--src/logo/ascii/m/macos2_small.txt7
-rw-r--r--src/logo/ascii/m/macos3.txt16
-rw-r--r--src/logo/ascii/m/macos_small.txt7
-rw-r--r--src/logo/ascii/m/mageia.txt19
-rw-r--r--src/logo/ascii/m/mageia_small.txt7
-rw-r--r--src/logo/ascii/m/magix.txt19
-rw-r--r--src/logo/ascii/m/magpieos.txt20
-rw-r--r--src/logo/ascii/m/mainsailos.txt18
-rw-r--r--src/logo/ascii/m/mainsailos_small.txt7
-rw-r--r--src/logo/ascii/m/mandriva.txt15
-rw-r--r--src/logo/ascii/m/manjaro.txt14
-rw-r--r--src/logo/ascii/m/manjaro_small.txt7
-rw-r--r--src/logo/ascii/m/massos.txt18
-rw-r--r--src/logo/ascii/m/matuusos.txt20
-rw-r--r--src/logo/ascii/m/maui.txt20
-rw-r--r--src/logo/ascii/m/mauna.txt15
-rw-r--r--src/logo/ascii/m/meowix.txt10
-rw-r--r--src/logo/ascii/m/mer.txt27
-rw-r--r--src/logo/ascii/m/midnightbsd.txt16
-rw-r--r--src/logo/ascii/m/midos.txt20
-rw-r--r--src/logo/ascii/m/midos_old.txt20
-rw-r--r--src/logo/ascii/m/minimal.txt18
-rw-r--r--src/logo/ascii/m/minix.txt17
-rw-r--r--src/logo/ascii/m/miracle_linux.txt16
-rw-r--r--src/logo/ascii/m/mos.txt18
-rw-r--r--src/logo/ascii/m/msys2.txt25
-rw-r--r--src/logo/ascii/m/mx.txt17
-rw-r--r--src/logo/ascii/m/mx2.txt18
-rw-r--r--src/logo/ascii/m/mx_small.txt7
-rw-r--r--src/logo/ascii/n.inc266
-rw-r--r--src/logo/ascii/n/namib.txt20
-rw-r--r--src/logo/ascii/n/nebios.txt19
-rw-r--r--src/logo/ascii/n/nekos.txt23
-rw-r--r--src/logo/ascii/n/neptune.txt17
-rw-r--r--src/logo/ascii/n/netbsd.txt17
-rw-r--r--src/logo/ascii/n/netbsd2.txt20
-rw-r--r--src/logo/ascii/n/netbsd_small.txt8
-rw-r--r--src/logo/ascii/n/nethydra.txt11
-rw-r--r--src/logo/ascii/n/netrunner.txt20
-rw-r--r--src/logo/ascii/n/nexalinux.txt19
-rw-r--r--src/logo/ascii/n/nitrux.txt18
-rw-r--r--src/logo/ascii/n/nixos.txt20
-rw-r--r--src/logo/ascii/n/nixos2.txt17
-rw-r--r--src/logo/ascii/n/nixos_old.txt28
-rw-r--r--src/logo/ascii/n/nixos_old_small.txt7
-rw-r--r--src/logo/ascii/n/nixos_small.txt7
-rw-r--r--src/logo/ascii/n/nobara.txt17
-rw-r--r--src/logo/ascii/n/nomadbsd.txt13
-rw-r--r--src/logo/ascii/n/nuros.txt8
-rw-r--r--src/logo/ascii/n/nurunner.txt19
-rw-r--r--src/logo/ascii/n/nutyx.txt23
-rw-r--r--src/logo/ascii/o.inc488
-rw-r--r--src/logo/ascii/o/obarun.txt19
-rw-r--r--src/logo/ascii/o/obrevenge.txt18
-rw-r--r--src/logo/ascii/o/obsidianos.txt16
-rw-r--r--src/logo/ascii/o/omnios.txt8
-rw-r--r--src/logo/ascii/o/openbsd.txt23
-rw-r--r--src/logo/ascii/o/openbsd_small.txt7
-rw-r--r--src/logo/ascii/o/openeuler.txt23
-rw-r--r--src/logo/ascii/o/openindiana.txt16
-rw-r--r--src/logo/ascii/o/openkylin.txt18
-rw-r--r--src/logo/ascii/o/openmamba.txt21
-rw-r--r--src/logo/ascii/o/openmandriva.txt22
-rw-r--r--src/logo/ascii/o/openruyi.txt12
-rw-r--r--src/logo/ascii/o/openstage.txt17
-rw-r--r--src/logo/ascii/o/opensuse.txt18
-rw-r--r--src/logo/ascii/o/opensuse_leap.txt18
-rw-r--r--src/logo/ascii/o/opensuse_leap_old.txt16
-rw-r--r--src/logo/ascii/o/opensuse_microos.txt10
-rw-r--r--src/logo/ascii/o/opensuse_slowroll.txt20
-rw-r--r--src/logo/ascii/o/opensuse_small.txt7
-rw-r--r--src/logo/ascii/o/opensuse_tumbleweed.txt22
-rw-r--r--src/logo/ascii/o/opensuse_tumbleweed2.txt19
-rw-r--r--src/logo/ascii/o/opensuse_tumbleweed_old.txt13
-rw-r--r--src/logo/ascii/o/opensuse_tumbleweed_small.txt9
-rw-r--r--src/logo/ascii/o/openwrt.txt18
-rw-r--r--src/logo/ascii/o/openwrt_old.txt9
-rw-r--r--src/logo/ascii/o/openwrt_small.txt9
-rw-r--r--src/logo/ascii/o/opnsense.txt20
-rw-r--r--src/logo/ascii/o/oracle.txt11
-rw-r--r--src/logo/ascii/o/orchid.txt20
-rw-r--r--src/logo/ascii/o/orchid_small.txt13
-rw-r--r--src/logo/ascii/o/oreon.txt22
-rw-r--r--src/logo/ascii/o/origami.txt12
-rw-r--r--src/logo/ascii/o/origami_small.txt8
-rw-r--r--src/logo/ascii/o/os2warp.txt17
-rw-r--r--src/logo/ascii/o/os_elbrus.txt14
-rw-r--r--src/logo/ascii/o/osmc.txt20
-rw-r--r--src/logo/ascii/p.inc369
-rw-r--r--src/logo/ascii/p/pacbsd.txt24
-rw-r--r--src/logo/ascii/p/panwah.txt21
-rw-r--r--src/logo/ascii/p/parabola.txt16
-rw-r--r--src/logo/ascii/p/parabola_small.txt6
-rw-r--r--src/logo/ascii/p/parch.txt25
-rw-r--r--src/logo/ascii/p/pardus.txt18
-rw-r--r--src/logo/ascii/p/parrot.txt24
-rw-r--r--src/logo/ascii/p/parsix.txt21
-rw-r--r--src/logo/ascii/p/pcbsd.txt27
-rw-r--r--src/logo/ascii/p/pclinuxos.txt19
-rw-r--r--src/logo/ascii/p/pearos.txt21
-rw-r--r--src/logo/ascii/p/pengwin.txt15
-rw-r--r--src/logo/ascii/p/pentoo.txt20
-rw-r--r--src/logo/ascii/p/peppermint.txt21
-rw-r--r--src/logo/ascii/p/peropesis.txt5
-rw-r--r--src/logo/ascii/p/phyos.txt17
-rw-r--r--src/logo/ascii/p/pikaos.txt18
-rw-r--r--src/logo/ascii/p/pisi.txt19
-rw-r--r--src/logo/ascii/p/pnm_linux.txt19
-rw-r--r--src/logo/ascii/p/pop.txt20
-rw-r--r--src/logo/ascii/p/pop_small.txt8
-rw-r--r--src/logo/ascii/p/porteus.txt23
-rw-r--r--src/logo/ascii/p/postmarketos.txt18
-rw-r--r--src/logo/ascii/p/postmarketos_small.txt9
-rw-r--r--src/logo/ascii/p/prismlinux.txt21
-rw-r--r--src/logo/ascii/p/prismlinux_small.txt13
-rw-r--r--src/logo/ascii/p/proxmox.txt20
-rw-r--r--src/logo/ascii/p/puffos.txt12
-rw-r--r--src/logo/ascii/p/puppy.txt18
-rw-r--r--src/logo/ascii/p/pureos.txt12
-rw-r--r--src/logo/ascii/p/pureos_small.txt6
-rw-r--r--src/logo/ascii/q.inc89
-rw-r--r--src/logo/ascii/q/q4os.txt19
-rw-r--r--src/logo/ascii/q/qts.txt14
-rw-r--r--src/logo/ascii/q/quasar.txt25
-rw-r--r--src/logo/ascii/q/qubes.txt21
-rw-r--r--src/logo/ascii/q/qubyt.txt15
-rw-r--r--src/logo/ascii/q/quibian.txt18
-rw-r--r--src/logo/ascii/q/quirinux.txt17
-rw-r--r--src/logo/ascii/r.inc297
-rw-r--r--src/logo/ascii/r/radix.txt18
-rw-r--r--src/logo/ascii/r/raspbian.txt23
-rw-r--r--src/logo/ascii/r/raspbian_small.txt10
-rw-r--r--src/logo/ascii/r/ravynos.txt20
-rw-r--r--src/logo/ascii/r/rebornos.txt20
-rw-r--r--src/logo/ascii/r/rebornos_small.txt7
-rw-r--r--src/logo/ascii/r/redcore.txt16
-rw-r--r--src/logo/ascii/r/redos.txt18
-rw-r--r--src/logo/ascii/r/redos_small.txt8
-rwxr-xr-xsrc/logo/ascii/r/redrose.txt17
-rw-r--r--src/logo/ascii/r/redstar.txt18
-rw-r--r--src/logo/ascii/r/refracta.txt18
-rw-r--r--src/logo/ascii/r/regata.txt20
-rw-r--r--src/logo/ascii/r/regolith.txt18
-rw-r--r--src/logo/ascii/r/rengeos.txt16
-rw-r--r--src/logo/ascii/r/rhaymos.txt14
-rw-r--r--src/logo/ascii/r/rhel.txt18
-rw-r--r--src/logo/ascii/r/rhel_old.txt16
-rw-r--r--src/logo/ascii/r/rhel_small.txt9
-rw-r--r--src/logo/ascii/r/rhino.txt12
-rw-r--r--src/logo/ascii/r/rocky.txt19
-rw-r--r--src/logo/ascii/r/rocky_small.txt12
-rw-r--r--src/logo/ascii/r/rosa.txt18
-rw-r--r--src/logo/ascii/s.inc530
-rw-r--r--src/logo/ascii/s/sabayon.txt18
-rw-r--r--src/logo/ascii/s/sabotage.txt11
-rw-r--r--src/logo/ascii/s/sailfish.txt13
-rw-r--r--src/logo/ascii/s/salentos.txt20
-rw-r--r--src/logo/ascii/s/salientos.txt20
-rw-r--r--src/logo/ascii/s/salix.txt18
-rw-r--r--src/logo/ascii/s/sambabox.txt19
-rw-r--r--src/logo/ascii/s/sasanqua.txt18
-rw-r--r--src/logo/ascii/s/scientific.txt20
-rw-r--r--src/logo/ascii/s/secureblue.txt20
-rw-r--r--src/logo/ascii/s/semc.txt9
-rw-r--r--src/logo/ascii/s/septor.txt20
-rw-r--r--src/logo/ascii/s/serene.txt20
-rw-r--r--src/logo/ascii/s/serpent_os.txt18
-rw-r--r--src/logo/ascii/s/sharklinux.txt15
-rw-r--r--src/logo/ascii/s/shastraos.txt19
-rw-r--r--src/logo/ascii/s/shebang.txt20
-rw-r--r--src/logo/ascii/s/siduction.txt20
-rw-r--r--src/logo/ascii/s/skiffos.txt9
-rw-r--r--src/logo/ascii/s/slackel.txt22
-rw-r--r--src/logo/ascii/s/slackware.txt21
-rw-r--r--src/logo/ascii/s/slackware_small.txt7
-rw-r--r--src/logo/ascii/s/sleeperos.txt16
-rw-r--r--src/logo/ascii/s/sleeperos_small.txt7
-rw-r--r--src/logo/ascii/s/slitaz.txt17
-rw-r--r--src/logo/ascii/s/smartos.txt17
-rw-r--r--src/logo/ascii/s/snigdhaos.txt20
-rw-r--r--src/logo/ascii/s/soda.txt15
-rw-r--r--src/logo/ascii/s/solaris.txt8
-rw-r--r--src/logo/ascii/s/solaris_small.txt5
-rw-r--r--src/logo/ascii/s/solus.txt20
-rw-r--r--src/logo/ascii/s/source_mage.txt21
-rw-r--r--src/logo/ascii/s/sparky.txt20
-rw-r--r--src/logo/ascii/s/spoinkos.txt5
-rw-r--r--src/logo/ascii/s/star.txt19
-rw-r--r--src/logo/ascii/s/steamdeck.txt24
-rw-r--r--src/logo/ascii/s/steamdeck_small.txt5
-rw-r--r--src/logo/ascii/s/steamos.txt18
-rw-r--r--src/logo/ascii/s/stock_linux.txt19
-rw-r--r--src/logo/ascii/s/sulin.txt20
-rw-r--r--src/logo/ascii/s/summitos.txt22
-rw-r--r--src/logo/ascii/s/suse.txt11
-rw-r--r--src/logo/ascii/s/swagarch.txt15
-rw-r--r--src/logo/ascii/t.inc152
-rw-r--r--src/logo/ascii/t/t2.txt14
-rw-r--r--src/logo/ascii/t/t2_small.txt6
-rw-r--r--src/logo/ascii/t/tails.txt19
-rw-r--r--src/logo/ascii/t/tatra.txt15
-rw-r--r--src/logo/ascii/t/tearch.txt21
-rw-r--r--src/logo/ascii/t/templeos.txt20
-rw-r--r--src/logo/ascii/t/tileos.txt20
-rw-r--r--src/logo/ascii/t/torizoncore.txt29
-rw-r--r--src/logo/ascii/t/trisquel.txt17
-rw-r--r--src/logo/ascii/t/truenas_scale.txt18
-rw-r--r--src/logo/ascii/t/tuxedo_os.txt16
-rw-r--r--src/logo/ascii/t/twister.txt23
-rw-r--r--src/logo/ascii/u.inc316
-rw-r--r--src/logo/ascii/u/ublinux.txt19
-rw-r--r--src/logo/ascii/u/ublinux_small.txt11
-rw-r--r--src/logo/ascii/u/ubuntu.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_budgie.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_cinnamon.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_gnome.txt16
-rw-r--r--src/logo/ascii/u/ubuntu_kylin.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_mate.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_old.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_old2.txt18
-rw-r--r--src/logo/ascii/u/ubuntu_old2_small.txt6
-rw-r--r--src/logo/ascii/u/ubuntu_small.txt11
-rw-r--r--src/logo/ascii/u/ubuntu_studio.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_sway.txt20
-rw-r--r--src/logo/ascii/u/ubuntu_touch.txt7
-rw-r--r--src/logo/ascii/u/ubuntu_unity.txt25
-rw-r--r--src/logo/ascii/u/ultramarine.txt20
-rw-r--r--src/logo/ascii/u/ultramarine_small.txt14
-rw-r--r--src/logo/ascii/u/unifi.txt6
-rw-r--r--src/logo/ascii/u/univalent.txt18
-rw-r--r--src/logo/ascii/u/univention.txt20
-rw-r--r--src/logo/ascii/u/uos.txt20
-rw-r--r--src/logo/ascii/u/urukos.txt20
-rw-r--r--src/logo/ascii/u/uwuntu.txt20
-rw-r--r--src/logo/ascii/u/uzbek.txt11
-rw-r--r--src/logo/ascii/v.inc170
-rw-r--r--src/logo/ascii/v/valhalla.txt10
-rw-r--r--src/logo/ascii/v/vanilla.txt18
-rw-r--r--src/logo/ascii/v/vanilla2.txt16
-rw-r--r--src/logo/ascii/v/vanilla_small.txt7
-rw-r--r--src/logo/ascii/v/venom.txt19
-rw-r--r--src/logo/ascii/v/venom_small.txt11
-rw-r--r--src/logo/ascii/v/vincentos.txt16
-rw-r--r--src/logo/ascii/v/vnux.txt20
-rw-r--r--src/logo/ascii/v/void.txt18
-rw-r--r--src/logo/ascii/v/void2.txt25
-rw-r--r--src/logo/ascii/v/void2_small.txt7
-rw-r--r--src/logo/ascii/v/void_small.txt7
-rw-r--r--src/logo/ascii/v/vzlinux.txt20
-rw-r--r--src/logo/ascii/w.inc123
-rw-r--r--src/logo/ascii/w/wii_linux.txt16
-rw-r--r--src/logo/ascii/w/windows.txt16
-rw-r--r--src/logo/ascii/w/windows_11.txt17
-rw-r--r--src/logo/ascii/w/windows_11_small.txt7
-rw-r--r--src/logo/ascii/w/windows_2025.txt17
-rw-r--r--src/logo/ascii/w/windows_8.txt19
-rw-r--r--src/logo/ascii/w/windows_95.txt18
-rw-r--r--src/logo/ascii/w/wolfos.txt5
-rw-r--r--src/logo/ascii/x.inc132
-rw-r--r--src/logo/ascii/x/xcp_ng.txt15
-rw-r--r--src/logo/ascii/x/xenia.txt15
-rw-r--r--src/logo/ascii/x/xenia_old.txt21
-rw-r--r--src/logo/ascii/x/xeroarch.txt19
-rw-r--r--src/logo/ascii/x/xferience.txt19
-rw-r--r--src/logo/ascii/x/ximper.txt13
-rw-r--r--src/logo/ascii/x/xinux.txt14
-rw-r--r--src/logo/ascii/x/xj380.txt19
-rw-r--r--src/logo/ascii/x/xray_os.txt21
-rw-r--r--src/logo/ascii/x/xubuntu.txt19
-rw-r--r--src/logo/ascii/y.inc31
-rw-r--r--src/logo/ascii/y/yakubos.txt20
-rw-r--r--src/logo/ascii/y/yiffos.txt19
-rw-r--r--src/logo/ascii/z.inc42
-rw-r--r--src/logo/ascii/z/zorin.txt17
-rw-r--r--src/logo/ascii/z/zos.txt7
-rw-r--r--src/logo/ascii/z/zraxyl.txt10
-rw-r--r--src/logo/builtin.c67
-rw-r--r--src/logo/image/im6.c27
-rw-r--r--src/logo/image/im7.c28
-rw-r--r--src/logo/image/image.c1032
-rw-r--r--src/logo/image/image.h43
-rw-r--r--src/logo/logo.c813
-rw-r--r--src/logo/logo.h44
-rw-r--r--src/logo/logo.svg39
555 files changed, 17523 insertions, 0 deletions
diff --git a/src/logo/ascii/_/unknown.txt b/src/logo/ascii/_/unknown.txt
new file mode 100644
index 0000000..ed7418e
--- /dev/null
+++ b/src/logo/ascii/_/unknown.txt
@@ -0,0 +1,18 @@
+ ________
+ _jgN########Ngg_
+ _N##N@@"" ""9NN##Np_
+d###P N####p
+"^^" T####
+ d###P
+ _g###@F
+ _gN##@P
+ gN###F"
+ d###F
+ 0###F
+ 0###F
+ 0###F
+ "NN@'
+
+ ___
+ q###r
+ "" \ No newline at end of file
diff --git a/src/logo/ascii/a.inc b/src/logo/ascii/a.inc
new file mode 100644
index 0000000..848cad1
--- /dev/null
+++ b/src/logo/ascii/a.inc
@@ -0,0 +1,881 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo A[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_ADELIE
+ // Adélie
+ {
+ .names = { "Adélie", "Adelie" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ADELIE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AEROS
+ // AerOS
+ {
+ .names = { "aerOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AEROS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AEON
+ // Aeon
+ {
+ .names = { "Aeon" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AEON,
+ .colors = {
+ FF_COLOR_FG_256 "36",
+ FF_COLOR_FG_256 "36",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AERYNOS
+ // AerynOS
+ {
+ .names = { "AerynOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AERYNOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AERYNOS_OLD
+ // AerynOS_old
+ {
+ .names = { "AerynOS_old" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AERYNOS_OLD,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_MAGENTA,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AFTERGLOW
+ // Afterglow
+ {
+ .names = { "Afterglow" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AFTERGLOW,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AIX
+ // AIX
+ {
+ .names = { "aix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AIX,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALMALINUX
+ // AlmaLinux
+ {
+ .names = { "Almalinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ALMALINUX,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_YELLOW,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_LIGHT_GREEN,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALPINE
+ // Alpine
+ {
+ .names = { "Alpine" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ALPINE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALPINE2
+ // Alpine2
+ {
+ .names = { "Alpine2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ALPINE2,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALPINE_SMALL
+ // AlpineSmall
+ {
+ .names = { "Alpine_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ALPINE_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALPINE2_SMALL
+ // Alpine2Small
+ {
+ .names = { "alpine2_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ALPINE2_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALPINE3_SMALL
+ // Alpine3Small
+ {
+ .names = { "alpine3_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ALPINE3_SMALL,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALTER
+ // Alter
+ {
+ .names = { "Alter" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ALTER,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ALTLINUX
+ // ALTLinux
+ {
+ .names = { "ALTLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ALTLINUX,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AMAZON
+ // Amazon
+ {
+ .names = { "Amazon" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AMAZON,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AMAZON_LINUX
+ // AmazonLinux
+ {
+ .names = { "Amazon Linux", "amzn" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AMAZON_LINUX,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_256 "178",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AMIGA
+ // Amiga
+ {
+ .names = { "Amiga" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AMIGA,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_LIGHT_YELLOW,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AMOGOS
+ // AmogOS
+ {
+ .names = { "AmogOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AMOGOS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ANARCHY
+ // Anarchy
+ {
+ .names = { "Anarchy" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ANARCHY,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ANDROID
+ // Android
+ {
+ .names = { "android" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ANDROID,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ANDROID_SMALL
+ // AndroidSmall
+ {
+ .names = { "android_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ANDROID_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ANDUINOS
+ // AnduinOS
+ {
+ .names = { "anduinos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ANDUINOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ANTERGOS
+ // Antergos
+ {
+ .names = { "Antergos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ANTERGOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ANTIX
+ // Antix
+ {
+ .names = { "antiX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ANTIX,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ANUSHOS
+ // AnushOS
+ {
+ .names = { "AnushOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ANUSHOS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AOSCOSRETRO
+ // AoscOsRetro
+ {
+ .names = { "Aosc OS/Retro", "aoscosretro" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AOSCOSRETRO,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AOSCOSRETRO_SMALL
+ // AoscOsRetro_small
+ {
+ .names = { "Aosc OS/Retro_small", "aoscosretro_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_AOSCOSRETRO_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AOSCOS
+ // AoscOS
+ {
+ .names = { "Aosc OS", "aoscos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AOSCOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AOSCOS_OLD
+ // AoscOS_old
+ {
+ .names = { "Aosc OS_old", "aoscos_old" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AOSCOS_OLD,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_APERTURE
+ // Aperture
+ {
+ .names = { "Aperture" },
+ .lines = FASTFETCH_DATATEXT_LOGO_APERTURE,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS
+ // Apple
+ {
+ .names = { "Apple" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS_SMALL
+ // AppleSmall
+ {
+ .names = { "Apple_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_APRICITY
+ // Apricity
+ {
+ .names = { "Apricity" },
+ .lines = FASTFETCH_DATATEXT_LOGO_APRICITY,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCHBOX
+ // ArchBox
+ {
+ .names = { "ArchBox" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCHBOX,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCHCRAFT
+ // Archcraft
+ {
+ .names = { "Archcraft" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCHCRAFT,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCHCRAFT2
+ // Archcraft2
+ {
+ .names = { "Archcraft2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCHCRAFT2,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCH
+ // Arch
+ {
+ .names = { "arch", "archmerge" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCH,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCH2
+ // Arch2
+ {
+ .names = { "arch2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCH2,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCH3
+ // Arch3
+ {
+ .names = { "arch3" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCH3,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCH_SMALL
+ // ArchSmall
+ {
+ .names = { "arch_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCH_SMALL,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCH_OLD
+ // ArchOld
+ {
+ .names = { "arch_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCH_OLD,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ .colorKeys = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCHLABS
+ // Archlabs
+ {
+ .names = { "ARCHlabs" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCHLABS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCHSTRIKE
+ // ArchStrike
+ {
+ .names = { "ArchStrike" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCHSTRIKE,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARKANE
+ // Arkane
+ {
+ .names = { "Arkane", "Arkane Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARKANE,
+ .colors = {
+ FF_COLOR_FG_256 "237",
+ FF_COLOR_FG_256 "130",
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_256 "130",
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARMBIAN
+ // Armbian
+ {
+ .names = { "Armbian" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARMBIAN,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARMBIAN2
+ // Armbian2
+ {
+ .names = { "Armbian2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARMBIAN2,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARTIX
+ // Artix
+ {
+ .names = { "artix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARTIX,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARTIX_SMALL
+ // ArtixSmall
+ {
+ .names = { "artix_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARTIX_SMALL,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARTIX2_SMALL
+ // Artix2Small
+ {
+ .names = { "artix2_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARTIX2_SMALL,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCO
+ // ArcoLinux (Discontinued)
+ {
+ .names = { "arco", "arcolinux" }, // ID=arcolinux
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCO,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARCO_SMALL
+ // ArcoLinuxSmall
+ {
+ .names = { "arco_small", "arcolinux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ARCO_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARSELINUX
+ // ArseLinux
+ {
+ .names = { "arse", "arselinux", "arse-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARSELINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ARYA
+ // Arya
+ {
+ .names = { "Arya" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ARYA,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ASAHI
+ // Asahi
+ {
+ .names = { "asahi", "asahi-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ASAHI,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ASAHI2
+ // Asahi2
+ {
+ .names = { "asahi2", "asahi-linux2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ASAHI2,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_LIGHT_YELLOW,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_LIGHT_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ASTER
+ // Aster
+ {
+ .names = { "aster" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ASTER,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ASTEROIDOS
+ // AsteroidOS
+ {
+ .names = { "AsteroidOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ASTEROIDOS,
+ .colors = {
+ FF_COLOR_FG_256 "160",
+ FF_COLOR_FG_256 "208",
+ FF_COLOR_FG_256 "202",
+ FF_COLOR_FG_256 "214",
+ },
+ .colorKeys = FF_COLOR_FG_256 "160",
+ .colorTitle = FF_COLOR_FG_256 "208",
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ASTOS
+ // AstOS
+ {
+ .names = { "astOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ASTOS,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ASTRA_LINUX
+ // Astra
+ {
+ .names = { "Astra", "Astra Linux", "astralinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ASTRA_LINUX,
+ .colors = {
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_JANUSLINUX
+ // Ataraxia
+ {
+ .names = { "Ataraxia Linux", "Ataraxia" },
+ .lines = FASTFETCH_DATATEXT_LOGO_JANUSLINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ATHENAOS
+ // AthenaOS
+ {
+ .names = { "AthenaOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ATHENAOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_LIGHT_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_LIGHT_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ATHENAOS_OLD
+ // AthenaOS_old
+ {
+ .names = { "AthenaOS_old" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ATHENAOS_OLD,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AURORA
+ // Aurora
+ {
+ .names = { "Aurora" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AURORA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AXOS
+ // AxOS
+ {
+ .names = { "AxOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AXOS,
+ .colors = {
+ FF_COLOR_FG_RGB "222;6;255",
+ FF_COLOR_FG_RGB "222;6;255",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_AZOS
+ // Azos
+ {
+ .names = { "Azos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_AZOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/a/adelie.txt b/src/logo/ascii/a/adelie.txt
new file mode 100644
index 0000000..923072f
--- /dev/null
+++ b/src/logo/ascii/a/adelie.txt
@@ -0,0 +1,16 @@
+ $3 ,-^-___
+$3 /\\\///
+$2refined.$1 /\\\\//
+$2reliable.$1 /\\\///
+$2ready.$1 /\\/////\
+ __///\\\\/////\
+$3 _//////\\\\\\\////
+$1 ///////$3\\\\\\\\\\//
+ //////$1\\\\\/
+ /////\\\\\/
+ /////$3\\\\/
+ /\\///\\\/
+ /\\\/$1\\/
+ /\\\\//
+ //////
+ /// $3\\\\\ \ No newline at end of file
diff --git a/src/logo/ascii/a/aeon.txt b/src/logo/ascii/a/aeon.txt
new file mode 100644
index 0000000..902af06
--- /dev/null
+++ b/src/logo/ascii/a/aeon.txt
@@ -0,0 +1,14 @@
+⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷
+⣿⡇ ⢸⣿
+⣿⡇ ⢀⣀ ⣀⡀ ⢸⣿
+⣿⣇ ⠸⣿⣄ ⣠⣿⠇ ⣸⣿
+⢹⣿⡄ ⠙⠻⠿⠿⠟⠋ ⢠⣿⡏
+ ⠹⣿⣦⡀ ⢀⣴⣿⠏
+ ⠈⠛⢿⣶⣤⣄ ⣠⣤⣶⡿⠛⠁
+$2 ⣠⣴⡿⠿⠛ ⠛⠿⢿⣦⣄
+ ⣠⣾⠟⠉ ⠉⠻⣷⣄
+⢰⣿⠏ ⢀⣤⣶⣶⣤⡀ ⠹⣿⡆
+⣿⡟ ⢰⣿⠏⠁⠈⠹⣿⡆ ⢿⣿
+⣿⡇ ⠈⠋ ⠙⠁ ⢸⣿
+⣿⡇ ⢸⣿
+⣿⣷⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣾⣿ \ No newline at end of file
diff --git a/src/logo/ascii/a/aeros.txt b/src/logo/ascii/a/aeros.txt
new file mode 100644
index 0000000..9448c51
--- /dev/null
+++ b/src/logo/ascii/a/aeros.txt
@@ -0,0 +1,21 @@
+ ooo OOO OOO ooo
+ oOO OOo
+ oOO OOo
+ oOO OOo
+ oOO OOo
+ oOO OOo
+ oOO OOo
+ OOo
+ OOo
+ OOo
+ OOo
+ OOo
+ OOo
+oOO OOo
+ oOO OOo
+ oOO OOo
+ oOO OOo
+ oO OOo
+ oOO OOo
+ oOO OOo
+ ooo OOO OOO ooo \ No newline at end of file
diff --git a/src/logo/ascii/a/aerynos.txt b/src/logo/ascii/a/aerynos.txt
new file mode 100644
index 0000000..fe8b3a7
--- /dev/null
+++ b/src/logo/ascii/a/aerynos.txt
@@ -0,0 +1,18 @@
+ $1::
+ $1-++-
+ $1-++++-
+ $1-++++++-
+ $1=+++==+++=
+ $1=+++= =+++=
+ $1=+++= =+++=
+ $1:+++= =+++:
+ $1-+++- -+++-
+ $1:+++=. .=+++:
+ $2.. $1-++++=--=+++++++=:
+ $2.:::. $1:=++++++++===++++=.
+ $2.::::. $1.:----:. $1.-++++-
+ $2.::::. .::. $1.++++-
+ $2.:::. .:::. $1.=+++-
+ $2.::::. ..:::: $1.=-. .++++=
+ $2.::::::::::::::::. $1.+++++++++++++++=
+$2'''''''''''''''''' $1''''''''''''''''' \ No newline at end of file
diff --git a/src/logo/ascii/a/aerynos_old.txt b/src/logo/ascii/a/aerynos_old.txt
new file mode 100644
index 0000000..3078dac
--- /dev/null
+++ b/src/logo/ascii/a/aerynos_old.txt
@@ -0,0 +1,16 @@
+ ;llll.
+ 0MMMMMM:
+ NMMMMMMMMd
+ .@ .cccccccccoWMMMMMMMMMM0
+ @@ .MMMMMMMMMMMMMMMMMMMMMMMN
+ OMMMMMMMMMMMMMMMW.
+.@ .MMMMMMMMMMMMMMMMMMM.
+.@ dMMMMMMMMMMMMMMMMMMl OMMMMMMMMk
+ .OWMMMMM; dMMMMMMMMMk
+ .MMMMMMMMMk
+ @@ ooooooooooooooooooo .MMMMMMMMMN
+ .@ oooooMMMMMMMMMMMMP NMMMMMMMMW.
+ KMMMMMMMMMM. 0MMMMMMMMM:
+ NMMMMMMMMM. dMMMMMMMMMd
+ .WMMMMMMMW. XMMMMMMMMO
+ .MMMMMMMk. xMMMMMMMMX \ No newline at end of file
diff --git a/src/logo/ascii/a/afterglow.txt b/src/logo/ascii/a/afterglow.txt
new file mode 100644
index 0000000..6b8bbed
--- /dev/null
+++ b/src/logo/ascii/a/afterglow.txt
@@ -0,0 +1,15 @@
+ $2.
+ $1. $2.{!
+ $1.L! $2J@||*
+ $1gJJJJL` $2g@FFS"
+ $1,@FFFJF`$2_g@@LLP`
+ $1_@FFFFF`$2_@@@@@P` $4.
+ $1J@@@LLF $2_@@@@@P` $4.J!
+ $1g@@@@@" $2_@@@@@P`$3. $4.L|||*
+$1g@@@@M" $2"VP`$3.L! $4<@JJJJ`
+ $1"@N" $3:||||! $4JFFFFS"
+ $3.{JJ||F`$4_gFFFF@'
+ $3.@FJJJF`$4,@LFFFF`
+ $3_@FFFFF $4VLLLP`
+ $3J@@LL@" $4`"
+ $3V@@" \ No newline at end of file
diff --git a/src/logo/ascii/a/aix.txt b/src/logo/ascii/a/aix.txt
new file mode 100644
index 0000000..42b3f43
--- /dev/null
+++ b/src/logo/ascii/a/aix.txt
@@ -0,0 +1,20 @@
+ `:+ssssossossss+-`
+ .oys///oyhddddhyo///sy+.
+ /yo:+hNNNNNNNNNNNNNNNNh+:oy/
+ :h/:yNNNNNNNNNNNNNNNNNNNNNNy-+h:
+ `ys.yNNNNNNNNNNNNNNNNNNNNNNNNNNy.ys
+ `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oh
+ h+-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.oy
+/d`mNNNNNNN/::mNNNd::m+:/dNNNo::dNNNd`m:
+h//NNNNNNN: . .NNNh mNo od. -dNNNNN:+y
+N.sNNNNNN+ -N/ -NNh mNNd. sNNNNNNNo-m
+N.sNNNNNs +oo /Nh mNNs` ` /mNNNNNNo-m
+h//NNNNh ossss` +h md- .hm/ `sNNNNN:+y
+:d`mNNN+/yNNNNNd//y//h//oNNNNy//sNNNd`m-
+ yo-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNm.ss
+ `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oy
+ sy.yNNNNNNNNNNNNNNNNNNNNNNNNNNs.yo
+ :h+-yNNNNNNNNNNNNNNNNNNNNNNs-oh-
+ :ys:/yNNNNNNNNNNNNNNNmy/:sy:
+ .+ys///osyhhhhys+///sy+.
+ -/osssossossso/- \ No newline at end of file
diff --git a/src/logo/ascii/a/almalinux.txt b/src/logo/ascii/a/almalinux.txt
new file mode 100644
index 0000000..6a1000f
--- /dev/null
+++ b/src/logo/ascii/a/almalinux.txt
@@ -0,0 +1,20 @@
+$1 'c:.
+$1 lkkkx, .. $2.. ,cc,
+$1 okkkk:ckkx' $2.lxkkx.okkkkd
+$1 .:llcokkx' $2:kkkxkko:xkkd,
+$1 .xkkkkdood: $2;kx, .lkxlll;
+$1 xkkx. $2xk' xkkkkk:
+$1 'xkx. $2xd .....,.
+$3 .. $1:xkl' $2:c ..''..
+$3 .dkx' $1.:ldl:'. $2' $4':lollldkkxo;
+$3 .''lkkko' $4ckkkx.
+$3'xkkkd:kkd. .. $5;' $4:kkxo.
+$3,xkkkd;kk' ,d; $5ld. $4':dkd::cc,
+$3 .,,.;xkko'.';lxo. $5dx, $4:kkk'xkkkkc
+$3 'dkkkkkxo:. $5;kx $4.kkk:;xkkd.
+$3 ..... $5.;dk:. $5lkk. $4:;,
+ $5:kkkkkkkdoxkkx
+ ,c,,;;;:xkkd.
+ ;kkkkl...
+ ;kkkkl
+ ,od; \ No newline at end of file
diff --git a/src/logo/ascii/a/alpine.txt b/src/logo/ascii/a/alpine.txt
new file mode 100644
index 0000000..3379ff4
--- /dev/null
+++ b/src/logo/ascii/a/alpine.txt
@@ -0,0 +1,20 @@
+ .hddddddddddddddddddddddh.
+ :dddddddddddddddddddddddddd:
+ /dddddddddddddddddddddddddddd/
+ +dddddddddddddddddddddddddddddd+
+ `sdddddddddddddddddddddddddddddddds`
+ `ydddddddddddd++hdddddddddddddddddddy`
+.hddddddddddd+` `+ddddh:-sdddddddddddh.
+hdddddddddd+` `+y: .sddddddddddh
+ddddddddh+` `//` `.` -sddddddddd
+ddddddh+` `/hddh/` `:s- -sddddddd
+ddddh+` `/+/dddddh/` `+s- -sddddd
+ddd+` `/o` :dddddddh/` `oy- .yddd
+hdddyo+ohddyosdddddddddho+oydddy++ohdddh
+.hddddddddddddddddddddddddddddddddddddh.
+ `yddddddddddddddddddddddddddddddddddy`
+ `sdddddddddddddddddddddddddddddddds`
+ +dddddddddddddddddddddddddddddd+
+ /dddddddddddddddddddddddddddd/
+ :dddddddddddddddddddddddddd:
+ .hddddddddddddddddddddddh. \ No newline at end of file
diff --git a/src/logo/ascii/a/alpine2.txt b/src/logo/ascii/a/alpine2.txt
new file mode 100644
index 0000000..4d79ae3
--- /dev/null
+++ b/src/logo/ascii/a/alpine2.txt
@@ -0,0 +1,16 @@
+ .:::::::::::::::::::::.
+ .:::::::::::::::::::::::.
+ .:::::::::::::::::::::::::.
+ .:::::::::::::::::::::::::::.
+ .:::::::::$2,db,$1::::::::::::::::.
+ .::::::::$2,d%%%%b,$1::$2,db,$1:::::::::.
+ .:::::::$2,%%%%P'%%%b,d%%%b,$1::::::::.
+.::::::$2,%%%%P,$1:::$2`%%%b'^q%%b,$1:::::::.
+'::::$2,%%%%P,d|$1:::::$2`%%%b:'^%%b,$1:::::'
+ '::$2`%%%'$1:$2'q$|$1:::::::$2'q%%b'`q%%b'$1::'
+ ':::::::::::::::::::::::::::::::'
+ ':::::::::::::::::::::::::::::'
+ ':::::::::::::::::::::::::::'
+ ':::::::::::::::::::::::::'
+ ':::::::::::::::::::::::'
+ ':::::::::::::::::::::'
diff --git a/src/logo/ascii/a/alpine2_small.txt b/src/logo/ascii/a/alpine2_small.txt
new file mode 100644
index 0000000..65be837
--- /dev/null
+++ b/src/logo/ascii/a/alpine2_small.txt
@@ -0,0 +1,6 @@
+$1 /\ /\
+ /$2/ $1\ \
+ /$2// $1\ \
+/$2// $1\ \
+$2// $1\ \
+ \ \ No newline at end of file
diff --git a/src/logo/ascii/a/alpine3_small.txt b/src/logo/ascii/a/alpine3_small.txt
new file mode 100644
index 0000000..38a4476
--- /dev/null
+++ b/src/logo/ascii/a/alpine3_small.txt
@@ -0,0 +1,6 @@
+ ,db,
+ ,d%%%%b, ,db,
+ ,%%%%P'%%%b,d%%%b,
+ ,%%%%P, `%%%b'^q%%b,
+ ,%%%%P,d| `%%%b '^%%b,
+`%%%' 'q$| 'q%%b'`q%%b
diff --git a/src/logo/ascii/a/alpine_small.txt b/src/logo/ascii/a/alpine_small.txt
new file mode 100644
index 0000000..a0cb082
--- /dev/null
+++ b/src/logo/ascii/a/alpine_small.txt
@@ -0,0 +1,6 @@
+ /\ /\
+ // \ \
+ // \ \
+/// \ \
+// \ \
+ \ \ No newline at end of file
diff --git a/src/logo/ascii/a/alter.txt b/src/logo/ascii/a/alter.txt
new file mode 100644
index 0000000..c5727e9
--- /dev/null
+++ b/src/logo/ascii/a/alter.txt
@@ -0,0 +1,20 @@
+ %,
+ ^WWWw
+ 'wwwwww
+ !wwwwwwww
+ #`wwwwwwwww
+ @wwwwwwwwwwww
+ wwwwwwwwwwwwwww
+ wwwwwwwwwwwwwwwww
+ wwwwwwwwwwwwwwwwwww
+ wwwwwwwwwwwwwwwwwwww,
+ w~1i.wwwwwwwwwwwwwwwww,
+ 3~:~1lli.wwwwwwwwwwwwwwww.
+ :~~:~?ttttzwwwwwwwwwwwwwwww
+ #<~:~~~~?llllltO-.wwwwwwwwwww
+ #~:~~:~:~~?ltlltlttO-.wwwwwwwww
+ @~:~~:~:~:~~(zttlltltlOda.wwwwwww
+ @~:~~: ~:~~:~:(zltlltlO a,wwwwww
+ 8~~:~~:~~~~:~~~~_1ltltu ,www
+ 5~~:~~:~~:~~:~~:~~~_1ltq N,,
+ g~:~~:~~~:~~:~~:~:~~~~1q N, \ No newline at end of file
diff --git a/src/logo/ascii/a/altlinux.txt b/src/logo/ascii/a/altlinux.txt
new file mode 100644
index 0000000..1ad2ba6
--- /dev/null
+++ b/src/logo/ascii/a/altlinux.txt
@@ -0,0 +1,22 @@
+ ##############
+ ######################
+ ##########################
+ ##+$2####$1#######################
+ #####$2#$1*$2###%+$1######################
+ ########$2%$1*#$2%#####$1###################
+ ##########$2##$1*#*$2#######%+$1##############
+#############$2%#############%$1############
+#############$2+################$1##########
+##############$2################*$1#########
+##############$2+################+$1########
+###############$2##########$1###$2+##%$1########
+###############$2+########$1######$2###$1#######
+#############$2*####$1############$2%#+$1#######
+############$2+###$3####$1##########$2%#*$1#######
+ ##########$2###*$3######$2+#+$1#####$2+##*$1######
+ #########$2##%$3#####$2:%#####$1###$2###*$1#####
+ ########$2%#+$3######$2#############$1####
+ #####$2##%:$3######$2:############$1##
+ ##$2+##*$3########$2############$1
+ $2###$3#########$2##########$1
+ $3########$2###### \ No newline at end of file
diff --git a/src/logo/ascii/a/amazon.txt b/src/logo/ascii/a/amazon.txt
new file mode 100644
index 0000000..27ff31a
--- /dev/null
+++ b/src/logo/ascii/a/amazon.txt
@@ -0,0 +1,19 @@
+ `-/oydNNdyo:.`
+ `.:+shmMMMMMMMMMMMMMMmhs+:.`
+ -+hNNMMMMMMMMMMMMMMMMMMMMMMNNho-
+.`` -/+shmNNMMMMMMNNmhs+/- ``.
+dNmhs+:. `.:/oo/:.` .:+shmNd
+dMMMMMMMNdhs+:.. ..:+shdNMMMMMMMd
+dMMMMMMMMMMMMMMNds odNMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+.:+ydNMMMMMMMMMMMh yMMMMMMMMMMMNdy+:.
+ `.:+shNMMMMMh yMMMMMNhs+:``
+ `-+shy shs+:` \ No newline at end of file
diff --git a/src/logo/ascii/a/amazon_linux.txt b/src/logo/ascii/a/amazon_linux.txt
new file mode 100644
index 0000000..04394bc
--- /dev/null
+++ b/src/logo/ascii/a/amazon_linux.txt
@@ -0,0 +1,10 @@
+ , $2#_$1
+ ~\_ $2####_$1
+ ~~ \_$2#####\$1
+ ~~ \$2###|$1
+ ~~ \$2#/$1 ___
+ ~~ V~' '->
+ ~~~ /
+ ~~._. _/
+ _/ _/
+ _/m/' \ No newline at end of file
diff --git a/src/logo/ascii/a/amiga.txt b/src/logo/ascii/a/amiga.txt
new file mode 100644
index 0000000..ba4350d
--- /dev/null
+++ b/src/logo/ascii/a/amiga.txt
@@ -0,0 +1,13 @@
+ ----.---
+ :-==.-==-
+$2 -=== ===:
+ ===-:===.
+$3 -+++:=++=
+ =+++ +++.
+$6 .+++-=++=
+$4.::. ::: $6 :**+ +**-
+$4 :--:.---. $6 .+**=-***.
+$5 :--- ---::$6***:***+
+$5 .---::-$6=##*.*##-
+$7 ----+$6##=:##*.
+$7 :-$6###-*##+
diff --git a/src/logo/ascii/a/amogos.txt b/src/logo/ascii/a/amogos.txt
new file mode 100644
index 0000000..8f79c3a
--- /dev/null
+++ b/src/logo/ascii/a/amogos.txt
@@ -0,0 +1,19 @@
+ ___________
+ / \
+ / $2______$1 \
+ / $2/ \$1 \
+ | $2( )$1 \
+ / $2\______/$1 |
+ | |
+ / \
+ | |
+ | |
+ / |
+ | |
+ | _______ |
+ ____/ / \ |
+/ | | |
+| / ____/ |
+\_________/ / |
+ \ __/
+ \_______/ \ No newline at end of file
diff --git a/src/logo/ascii/a/anarchy.txt b/src/logo/ascii/a/anarchy.txt
new file mode 100644
index 0000000..75456bd
--- /dev/null
+++ b/src/logo/ascii/a/anarchy.txt
@@ -0,0 +1,28 @@
+ $2..$1
+ $2..$1
+ $2:..$1
+ $2:+++.$1
+ .:::++$2++++$1+::.
+ .:+######$2++++$1######+:.
+ .+#########$2+++++$1##########:.
+ .+##########$2+++++++$1##$2+$1#########+.
+ +###########$2+++++++++$1############:
+ +##########$2++++++$1#$2++++$1#$2+$1###########+
+ +###########$2+++++$1###$2++++$1#$2+$1###########+
+ :##########$2+$1#$2++++$1####$2++++$1#$2+$1############:
+ ###########$2+++++$1#####$2+++++$1#$2+$1###$2++$1######+
+.##########$2++++++$1#####$2++++++++++++$1#######.
+.##########$2+++++++++++++++++++$1###########.
+ #####$2++++++++++++++$1###$2++++++++$1#########+
+ :###$2++++++++++$1#########$2+++++++$1#########:
+ +######$2+++++$1##########$2++++++++$1#######+
+ +####$2+++++$1###########$2+++++++++$1#####+
+ :##$2++++++$1############$2++++++++++$1##:
+ .$2++++++$1#############$2++++++++++$1+.
+ :$2++++$1###############$2+++++++$1::
+ .$2++. .:+$1##############$2+++++++$1..
+ $2.:.$1 ..::++++++::..:$2++++$1+.
+ $2.$1 $2.:+++$1.
+ $2.:$1:
+ $2..$1
+ $2..$1 \ No newline at end of file
diff --git a/src/logo/ascii/a/android.txt b/src/logo/ascii/a/android.txt
new file mode 100644
index 0000000..dba9163
--- /dev/null
+++ b/src/logo/ascii/a/android.txt
@@ -0,0 +1,18 @@
+ -o o-
+ +hydNNNNdyh+
+ +mMMMMMMMMMMMMm+
+ `dMM$2m:$1NMMMMMMN$2:m$1MMd`
+ hMMMMMMMMMMMMMMMMMMh
+ .. yyyyyyyyyyyyyyyyyyyy ..
+.mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm.
+:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
+:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
+:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
+:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
+-MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM-
+ +yy+ MMMMMMMMMMMMMMMMMMMM +yy+
+ mMMMMMMMMMMMMMMMMMMm
+ `/++MMMMh++hMMMM++/`
+ MMMMo oMMMM
+ MMMMo oMMMM
+ oNMm- -mMNs \ No newline at end of file
diff --git a/src/logo/ascii/a/android_small.txt b/src/logo/ascii/a/android_small.txt
new file mode 100644
index 0000000..0d7df96
--- /dev/null
+++ b/src/logo/ascii/a/android_small.txt
@@ -0,0 +1,6 @@
+ ;, ,;
+ ';,.-----.,;'
+ ,' ',
+ / O O \
+| |
+'-----------------' \ No newline at end of file
diff --git a/src/logo/ascii/a/anduinos.txt b/src/logo/ascii/a/anduinos.txt
new file mode 100644
index 0000000..d57e6f9
--- /dev/null
+++ b/src/logo/ascii/a/anduinos.txt
@@ -0,0 +1,19 @@
+ $1+++++++++++
+ +++++++++++++++++++++
+ +++++++++++++++++++++++++++++++
+=+++++++++++++++++++++++++++++++++++++++=
++++++++++++++++++++++++++++++++++++++++++++++
+=++++++++++++++++++++++++++++++++++++++++++++
+ ==+++++++++++++++++++++++++++++++++==
+ +++++++++++++++++++++++++++
+$2**** $1++=+++++++++++=++ $2****
+********** $1+++++++ $2**********
+************** **************
+ **************** ****************
+ ***********************
+****** ************* ******
+*********** *** ***********
+*************** ***************
+ *************** ***************
+ *********************
+ ***********
diff --git a/src/logo/ascii/a/antergos.txt b/src/logo/ascii/a/antergos.txt
new file mode 100644
index 0000000..f7b0eba
--- /dev/null
+++ b/src/logo/ascii/a/antergos.txt
@@ -0,0 +1,19 @@
+$2 `.-/::/-``
+ .-/osssssssso/.
+ :osyysssssssyyys+-
+ `.+yyyysssssssssyyyyy+.
+ `/syyyyyssssssssssyyyyys-`
+ `/yhyyyyysss$1++$2ssosyyyyhhy/`
+ .ohhhyyyys$1o++/+o$2so$1+$2syy$1+$2shhhho.
+ .shhhhys$1oo++//+$2sss$1+++$2yyy$1+s$2hhhhs.
+ -yhhhhs$1+++++++o$2ssso$1+++$2yyy$1s+o$2hhddy:
+ -yddhhy$1o+++++o$2syyss$1++++$2yyy$1yooy$2hdddy-
+ .yddddhs$1o++o$2syyyyys$1+++++$2yyhh$1sos$2hddddy`
+`odddddhyosyhyyyyyy$1++++++$2yhhhyosddddddo
+.dmdddddhhhhhhhyyyo$1+++++$2shhhhhohddddmmh.
+ddmmdddddhhhhhhhso$1++++++$2yhhhhhhdddddmmdy
+dmmmdddddddhhhyso$1++++++$2shhhhhddddddmmmmh
+-dmmmdddddddhhys$1o++++o$2shhhhdddddddmmmmd-
+.smmmmddddddddhhhhhhhhhdddddddddmmmms.
+ `+ydmmmdddddddddddddddddddmmmmdy/.
+ `.:+ooyyddddddddddddyyso+:.` \ No newline at end of file
diff --git a/src/logo/ascii/a/antix.txt b/src/logo/ascii/a/antix.txt
new file mode 100644
index 0000000..85b56cc
--- /dev/null
+++ b/src/logo/ascii/a/antix.txt
@@ -0,0 +1,12 @@
+ \
+ , - ~ ^ ~ - \ /
+ , ' \ ' , /
+ , \ '/
+ , \ / ,
+ ,___, \/ ,
+ / | _ _ _|_ o /\ ,
+|, | / |/ | | | / \ ,
+ \,_/\_/ | |_/|_/|_/_/ \,
+ , / ,\
+ , / , ' \
+ ' - , _ _ _ , ' \ No newline at end of file
diff --git a/src/logo/ascii/a/anushos.txt b/src/logo/ascii/a/anushos.txt
new file mode 100644
index 0000000..bf831b7
--- /dev/null
+++ b/src/logo/ascii/a/anushos.txt
@@ -0,0 +1,20 @@
+ $4#######################
+ $4# $2##### $4#
+ $4# $2####### $4#
+ $4# $2##$5O$2#$5O$2## $4#
+ $4# $2#$3#####$2# $4#
+ $4# $2##$1##$3###$1##$2## $4#
+ $4# $2#$1##########$2## $4#
+ $4# $2#$1############$2## $4#
+ $4# $2#$1######$5A_O$1####$2### $4#
+ $4# $3##$2#$1############$2##$3## $4#
+ $4#$3######$2#$1#######$2#$3######$4#
+ $4#$3#######$2#$1#####$2#$3#######$4#
+ $4# $3#####$2#######$3##### $4#
+ $4#######################
+ $4#$5╔═╗╔╗╔╦ ╦╔═╗╦ ╦╔═╗╔═╗$4#
+ $4#$5╠═╣║║║║ ║╚═╗╠═╣║ ║╚═╗$4#
+ $4#$5╩ ╩╝╚╝╚═╝╚═╝╩ ╩╚═╝╚═╝$4#
+ $4#######################
+ $4# $3WWW.ANUSHOS.ORG $4#
+ $4#######################
diff --git a/src/logo/ascii/a/aoscos.txt b/src/logo/ascii/a/aoscos.txt
new file mode 100644
index 0000000..3df0782
--- /dev/null
+++ b/src/logo/ascii/a/aoscos.txt
@@ -0,0 +1,17 @@
+ $2__
+ $2gpBBBBBBBBBP
+ $2_gBBBBBBBBBRP
+ $24BBBBBBBBRP $4,_____
+ $2`"" $4_g@@@@@@@@@@@@@%g>
+ $4__@@@@@@@@@@@@@@@@P" $1___
+ $4_g@@@@@@@@@@@@@@@N"` $1_gN@@@@@N^
+ $4_w@@@@@@@@@@@@@@@@P" $1_g@@@@@@@P"
+ $4_g@@@@@@@@@@@@@@@N"` $1VMNN@NNNM^`
+$4^MMM@@@@@@@@@@@MP" $3,ggppww__
+ $4`""""" $3_wNNNNNNNNNNNNNNNNNNN
+ $3_gBNNNNNNNNNNNNNNNNNP"
+ $3_wNNNNNNNNNNNNNNNNNNMP`
+ $3_gBNNNNNNNNNNNNNNNNNP"
+ $3_wNNNNNNNNNNNNNNNNNNNM^
+ $3""Y^^MNNNNNNNNNNNNP`
+ $3`""""""" \ No newline at end of file
diff --git a/src/logo/ascii/a/aoscos_old.txt b/src/logo/ascii/a/aoscos_old.txt
new file mode 100644
index 0000000..16f31c2
--- /dev/null
+++ b/src/logo/ascii/a/aoscos_old.txt
@@ -0,0 +1,20 @@
+ .:+syhhhhys+:.
+ .ohNMMMMMMMMMMMMMMNho.
+ `+mMMMMMMMMMMmdmNMMMMMMMMm+`
+ +NMMMMMMMMMMMM/ `./smMMMMMN+
+ .mMMMMMMMMMMMMMMo -yMMMMMm.
+ :NMMMMMMMMMMMMMMMs .hMMMMN:
+ .NMMMMhmMMMMMMMMMMm+/- oMMMMN.
+ dMMMMs ./ymMMMMMMMMMMNy. sMMMMd
+-MMMMN` oMMMMMMMMMMMN: `NMMMM-
+/MMMMh NMMMMMMMMMMMMm hMMMM/
+/MMMMh NMMMMMMMMMMMMm hMMMM/
+-MMMMN` :MMMMMMMMMMMMy. `NMMMM-
+ dMMMMs .yNMMMMMMMMMMMNy/. sMMMMd
+ .NMMMMo -/+sMMMMMMMMMMMmMMMMN.
+ :NMMMMh. .MMMMMMMMMMMMMMMN:
+ .mMMMMMy- NMMMMMMMMMMMMMm.
+ +NMMMMMms/.` mMMMMMMMMMMMN+
+ `+mMMMMMMMMNmddMMMMMMMMMMm+`
+ .ohNMMMMMMMMMMMMMMNho.
+ .:+syhhhhys+:. \ No newline at end of file
diff --git a/src/logo/ascii/a/aoscosretro.txt b/src/logo/ascii/a/aoscosretro.txt
new file mode 100644
index 0000000..88e0ea8
--- /dev/null
+++ b/src/logo/ascii/a/aoscosretro.txt
@@ -0,0 +1,18 @@
+$2 .........
+ ...................
+ .....................$1################$2
+ .............. ....$1################$2
+.............. ...$1################$2
+............. ..$1****************$2
+............ . .$1****************$2
+........... ... $1................$2
+.......... ..... $1...............$2
+......... ....... ...
+ .$3...... $2.
+ $3..... .....$2.... $4...........
+ $3.... ......$2. $4...........
+ $3... ....... $4...........
+ $3................ $4***********
+ $3................ $4###########
+ $3****************
+ $3################ \ No newline at end of file
diff --git a/src/logo/ascii/a/aoscosretro_small.txt b/src/logo/ascii/a/aoscosretro_small.txt
new file mode 100644
index 0000000..cf8ec45
--- /dev/null
+++ b/src/logo/ascii/a/aoscosretro_small.txt
@@ -0,0 +1,9 @@
+$2 _____ $1_____$2
+ -' '-$1| |$2
+ / ___ $1| |$2
+| / _ \$1|_____|$2
+' / /_\ \
+ \ / _____ \$4___
+ $3|$2/_/ $3| $4| |
+ $3| | $4|___|
+ $3|_____| \ No newline at end of file
diff --git a/src/logo/ascii/a/aperture.txt b/src/logo/ascii/a/aperture.txt
new file mode 100644
index 0000000..59a9a77
--- /dev/null
+++ b/src/logo/ascii/a/aperture.txt
@@ -0,0 +1,20 @@
+ .,-:;//;:=,
+ $8. $1:H@@@MM@M#H/.$2,+%;,
+ $8,/X+ $1+M@@M@MM%=,$2-%HMMM@X/,
+ $8-+@MM; $1$$M@@MH+-,$2;XMMMM@MMMM@+-
+ $8;@M@@M- $1XM@X;. $2-+XXXXXHHH@M@M#@/.
+ $8,%MM@@MH $1,@%= $2.---=-=:=,.
+ $8=@#@@@MX., $3-%HX$$$$%%%:;
+ $7=-$8./@M@M$$ $3.;@MMMM@MM:
+ $7X@/$8 -$$MM/ $3. +MM@@@M$$
+$7,@M@H:$8 :@: $4. $3=X#@@@@-
+$7,@@@MMX,$8 . $4/H- $3;@M@M=
+$7.H@@@@M@+, $4%MM+. $3%#$.
+ $7/MMMM@MMH/. $4XM@MH; $3=;
+ $7/%+%$$XHH@$$= $5, $4.H@@@@MX,
+ $6=----------. $5-%H.$4,@@@@@MX,
+ $6.%MM@@@HHHXX$$$$$$%+- $5.:$$MMX$4 =M@@MM%.
+ $6=XMMM@MM@MM#H;$5,-+HMM@M+$4 /MMMX=
+ $6=%@M@M#@$$-$5.=$@MM@@@M;$4 %M%=
+ $6,:+$$+-$5,/H#MMMMMMM@=$4 =,
+ $5=++%%%%+/:-. \ No newline at end of file
diff --git a/src/logo/ascii/a/apricity.txt b/src/logo/ascii/a/apricity.txt
new file mode 100644
index 0000000..ec991e9
--- /dev/null
+++ b/src/logo/ascii/a/apricity.txt
@@ -0,0 +1,18 @@
+ ./o-
+ ``...`` `:. -/:
+ `-+ymNMMMMMNmho-` :sdNNm/
+ `+dMMMMMMMMMMMMMMMmo` sh:.:::-
+ /mMMMMMMMMMMMMMMMMMMMm/`sNd/
+ oMMMMMMMMMMMMMMMMMMMMMMMs -`
+:MMMMMMMMMMMMMMMMMMMMMMMMM/
+NMMMMMMMMMMMMMMMMMMMMMMMMMd
+MMMMMMMmdmMMMMMMMMMMMMMMMMd
+MMMMMMy` .mMMMMMMMMMMMmho:`
+MMMMMMNo/sMMMMMMMNdy+-.`-/
+MMMMMMMMMMMMNdy+:.`.:ohmm:
+MMMMMMMmhs+-.`.:+ymNMMMy.
+MMMMMM/`.-/ohmNMMMMMMy-
+MMMMMMNmNNMMMMMMMMmo.
+MMMMMMMMMMMMMMMms:`
+MMMMMMMMMMNds/.
+dhhyys+/-` \ No newline at end of file
diff --git a/src/logo/ascii/a/arch.txt b/src/logo/ascii/a/arch.txt
new file mode 100644
index 0000000..75338f0
--- /dev/null
+++ b/src/logo/ascii/a/arch.txt
@@ -0,0 +1,19 @@
+ -`
+ .o+`
+ `ooo/
+ `+oooo:
+ `+oooooo:
+ -+oooooo+:
+ `/:-:++oooo+:
+ `/++++/+++++++:
+ `/++++++++++++++:
+ `/+++o$2oooooooo$1oooo/`
+ ./$2ooosssso++osssssso$1+`
+$2 .oossssso-````/ossssss+`
+ -osssssso. :ssssssso.
+ :osssssss/ osssso+++.
+ /ossssssss/ +ssssooo/-
+ `/ossssso+/:- -:/+osssso+-
+ `+sso+:-` `.-/+oso:
+`++:. `-/+/
+.` `/ \ No newline at end of file
diff --git a/src/logo/ascii/a/arch2.txt b/src/logo/ascii/a/arch2.txt
new file mode 100644
index 0000000..138883b
--- /dev/null
+++ b/src/logo/ascii/a/arch2.txt
@@ -0,0 +1,19 @@
+ ▄
+ ▟█▙
+ ▟███▙
+ ▟█████▙
+ ▟███████▙
+ ▂▔▀▜██████▙
+ ▟██▅▂▝▜█████▙
+ ▟█████████████▙
+ ▟███████████████▙
+ ▟█████████████████▙
+ ▟███████████████████▙
+$2 ▟█████████▛▀▀▜████████▙
+ ▟████████▛ ▜███████▙
+ ▟█████████ ████████▙
+ ▟██████████ █████▆▅▄▃▂
+ ▟██████████▛ ▜█████████▙
+ ▟██████▀▀▀ ▀▀██████▙
+ ▟███▀▘ ▝▀███▙
+▟▛▀ ▀▜▙ \ No newline at end of file
diff --git a/src/logo/ascii/a/arch3.txt b/src/logo/ascii/a/arch3.txt
new file mode 100644
index 0000000..bf76557
--- /dev/null
+++ b/src/logo/ascii/a/arch3.txt
@@ -0,0 +1,19 @@
+ .
+ / \
+ / \
+ / \
+ / \
+ />, \
+ / `*. \
+ / ` \
+ / \
+ / \
+$2 / ,.-+-.. \
+ / ,/' `\. \
+ / .|' `|. _ \
+ / :|. ,|; `+.\
+ / .\: ;/, "<\
+ / __,--+" "+--.__ \
+ / _,+'" "'+._ \
+ /,-' `-.\
+' ' \ No newline at end of file
diff --git a/src/logo/ascii/a/arch_old.txt b/src/logo/ascii/a/arch_old.txt
new file mode 100644
index 0000000..a0391b7
--- /dev/null
+++ b/src/logo/ascii/a/arch_old.txt
@@ -0,0 +1,16 @@
+ __
+ _=(SDGJT=_
+ _GTDJHGGFCVS)
+ ,GTDJGGDTDFBGX0
+$1 JDJDIJHRORVFSBSVL$2-=+=,_
+$1 IJFDUFHJNXIXCDXDSV,$2 "DEBL
+$1 [LKDSDJTDU=OUSCSBFLD.$2 '?ZWX,
+$1 ,LMDSDSWH' `DCBOSI$2 DRDS],
+$1 SDDFDFH' !YEWD,$2 )HDROD
+$1 !KMDOCG &GSU|$2\_GFHRGO\'
+$1 HKLSGP'$2 __$1\TKM0$2\GHRBV)'
+$1JSNRVW'$2 __+MNAEC$1\IOI,$2\BN'
+$1HELK['$2 __,=OFFXCBGHC$1\FD)
+$1?KGHE $2\_-#DASDFLSV='$1 'EF
+'EHTI !H
+ `0F' '! \ No newline at end of file
diff --git a/src/logo/ascii/a/arch_small.txt b/src/logo/ascii/a/arch_small.txt
new file mode 100644
index 0000000..e1957f7
--- /dev/null
+++ b/src/logo/ascii/a/arch_small.txt
@@ -0,0 +1,7 @@
+ /\
+ / \
+ / \
+ / \
+$2 / ,, \
+ / | | \
+/_-'' ''-_\ \ No newline at end of file
diff --git a/src/logo/ascii/a/archbox.txt b/src/logo/ascii/a/archbox.txt
new file mode 100644
index 0000000..e295ec9
--- /dev/null
+++ b/src/logo/ascii/a/archbox.txt
@@ -0,0 +1,19 @@
+ ...:+oh/:::..
+ ..-/oshhhhhh` `::::-.
+ .:/ohhhhhhhhhhhh` `-::::.
+ .+shhhhhhhhhhhhhhhhh` `.::-.
+ /`-:+shhhhhhhhhhhhhh` .-/+shh
+ / .:/ohhhhhhhhh` .:/ohhhhhhhh
+ / `-:+shhh` ..:+shhhhhhhhhhhh
+ / .:ohhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / .+o+ `hhhhhhhhhhhhhhhhhhhh
+ / -hhhhh `hhhhhhhhhhhhhhhhhhhh
+ / ohhhhho `hhhhhhhhhhhhhhhhhhhh
+ /:::+`hhhhoos` `hhhhhhhhhhhhhhhhhs+`
+ `--/:` /: `hhhhhhhhhhhho/-
+ -/:. `hhhhhhs+:-`
+ ::::/ho/-` \ No newline at end of file
diff --git a/src/logo/ascii/a/archcraft.txt b/src/logo/ascii/a/archcraft.txt
new file mode 100644
index 0000000..1cebab9
--- /dev/null
+++ b/src/logo/ascii/a/archcraft.txt
@@ -0,0 +1,20 @@
+$1⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⢰⡆$1⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$2⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⢠⣿⣿⡄$2⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$3⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⢀⣾⣿⣿⣿⡀$3⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$4⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣼⣿⣿⣿⣿⣷⡀$4⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$5⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣼⣿⣿⣿⣿⣿⣿⣷$5⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$6⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⢼⣿⣿⣿⣿⣿⣿⣿⣿⣧$6⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$1⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣰⣤⣈⠻⢿⣿⣿⣿⣿⣿⣿⣧$1⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$2⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣰⣿⣿⣿⣿⣮⣿⣿⣿⣿⣿⣿⣿⣧$2⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$3⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧$3⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$4⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧$4⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$5⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧$5⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
+$6⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⣼⣿⣿⣿⣿⣿⡿⣿⣿⡟$6⠄⠄$1⠸⣿⣿⡿⣿⣿⣿⣿⣿⣷⡀$6⠄⠄⠄⠄⠄⠄⠄⠄
+$1⠄⠄⠄⠄⠄⠄⠄⠄$1⣼⣿⣿⣿⣿⣿⡏$1⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⠈⣿⣿⣿⣿⣿⣷⡀$1⠄⠄⠄⠄⠄⠄⠄
+$2⠄⠄⠄⠄⠄⠄$1⢀⣼⣿⣿⣿⣿⣿⣿⡗$2⠄⠄⠄$1⢀⣠⣤⣀⠄⠄⠄$1⠸⣿⣿⣿⣿⣿⣿⣷⡀$2⠄⠄⠄⠄⠄⠄
+$3⠄⠄⠄⠄⠄$1⢀⣾⣿⣿⣿⣿⣿⡏⠁$3⠄⠄⠄$1⢠⣿⣿⣿⣿⡇$3⠄⠄⠄⠄$1⢙⣿⣿⣻⠿⣿⣷⡀$3⠄⠄⠄⠄⠄
+$4⠄⠄⠄⠄$1⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀$4⠄⠄⠄$1⠻⣿⣿⡿⠃$4⠄⠄⠄$1⢀⣼⣿⣿⣿⣿⣦⣌⠙⠄$4⠄⠄⠄⠄
+$5⠄⠄⠄$1⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏$5⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀$5⠄⠄⠄
+$6⠄⠄$1⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁$6⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄$6⠄⠄
+$1⠄$1⣠⣿⣿⣿⣿⠿⠛⠋⠁$1⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⠉⠙⠻⢿⣿⣿⣿⣿⣆$1⠄
+$1⡰⠟⠛⠉⠁$2⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄$1⠉⠙⠛⠿⢆ \ No newline at end of file
diff --git a/src/logo/ascii/a/archcraft2.txt b/src/logo/ascii/a/archcraft2.txt
new file mode 100644
index 0000000..28ec4cd
--- /dev/null
+++ b/src/logo/ascii/a/archcraft2.txt
@@ -0,0 +1,20 @@
+ -o\
+ :ooo:
+ .ooooo.
+ ooooooo.
+ +oooooooo.
+ -oooooooooo.
+ --:-+oooooooo.
+ yooo+=+sooooooo.
+ yoooooosooooooooo.
+ y+ooooooooooooooooo.
+ yoooooooooooooooooooo`
+ yoooooo+oo= :oo++ooooo`
+ :oooooo. +ooooo-
+ -ooooooo. .::. +ooosoo=
+ -oooooo` .oooo` +os-=o=
+ =ooooooo=: `oo+ :=ooo=--`.
+ +ooooooooos. .=sooooooo+-
+ .+osossos+-` `-+osososs+.
+ :sss+=-:` `:-=+ssss:
+:=-:` `-=+: \ No newline at end of file
diff --git a/src/logo/ascii/a/archlabs.txt b/src/logo/ascii/a/archlabs.txt
new file mode 100644
index 0000000..cedb10d
--- /dev/null
+++ b/src/logo/ascii/a/archlabs.txt
@@ -0,0 +1,21 @@
+ 'c'
+ 'kKk,
+ .dKKKx.
+ .oKXKXKd.
+ .l0XXXXKKo.
+ c0KXXXXKX0l.
+ :0XKKOxxOKX0l.
+ :OXKOc. .c0XX0l.
+ :OK0o. $2...$1'dKKX0l.
+ :OX0c $2;xOx'$1'dKXX0l.
+ :0KKo.$2.o0XXKd'.$1lKXX0l.
+ c0XKd.$2.oKXXXXKd..$1oKKX0l.
+ .c0XKk;$2.l0K0OO0XKd..$1oKXXKo.
+ .l0XXXk:$2,dKx,.'l0XKo.$1.kXXXKo.
+ .o0XXXX0d,$2:x; .oKKx'$1.dXKXXKd.
+ .oKXXXXKK0c.$2;. :00c'$1cOXXXXXKd.
+ .dKXXXXXXXXk,$2. cKx'$1'xKXXXXXXKx'
+ 'xKXXXXK0kdl:. $2.ok; $1.cdk0KKXXXKx'
+ 'xKK0koc,.. $2'c, $1 ..,cok0KKk,
+ ,xko:'. $2.. $1 .':okx;
+ .,'. .',. \ No newline at end of file
diff --git a/src/logo/ascii/a/archstrike.txt b/src/logo/ascii/a/archstrike.txt
new file mode 100644
index 0000000..7fc46d2
--- /dev/null
+++ b/src/logo/ascii/a/archstrike.txt
@@ -0,0 +1,17 @@
+$1 *
+ **.
+ ****
+ ******
+ *******
+ ** *******
+ **** *******
+ $1****$2_____$1***$2/$1*
+ ***$2/$1*******$2//$1***
+ **$2/$1********$2///$1*$2/$1**
+ **$2/$1*******$2////$1***$2/$1**
+ **$2/$1****$2//////.,$1****$2/$1**
+ ***$2/$1*****$2/////////$1**$2/$1***
+ ****$2/$1**** $2/////$1***$2/$1****
+ ******$2/$1*** $2//// $1**$2/$1******
+ ********$2/$1* $2/// $1*$2/$1********
+ ,****** $2// ______ / $1******, \ No newline at end of file
diff --git a/src/logo/ascii/a/arco.txt b/src/logo/ascii/a/arco.txt
new file mode 100644
index 0000000..d24c3ca
--- /dev/null
+++ b/src/logo/ascii/a/arco.txt
@@ -0,0 +1,20 @@
+ /-
+ ooo:
+ yoooo/
+ yooooooo
+ yooooooooo
+ yooooooooooo
+ .yooooooooooooo
+ .oooooooooooooooo
+ .oooooooarcoooooooo
+ .ooooooooo-oooooooooo
+ .ooooooooo- oooooooooo
+ :ooooooooo. :ooooooooo
+ :ooooooooo. :ooooooooo
+ :oooarcooo .oooarcooo
+ :ooooooooy .ooooooooo
+ $1:ooooooooo $2/ooooooooooooooooooo
+ $1:ooooooooo $2.-ooooooooooooooooo.
+ $1ooooooooo- $2-ooooooooooooo.
+ $1ooooooooo- $2.-oooooooooo.
+$1ooooooooo. $2-ooooooooo \ No newline at end of file
diff --git a/src/logo/ascii/a/arco_small.txt b/src/logo/ascii/a/arco_small.txt
new file mode 100644
index 0000000..66fdc5a
--- /dev/null
+++ b/src/logo/ascii/a/arco_small.txt
@@ -0,0 +1,11 @@
+ A
+ ooo
+ ooooo
+ ooooooo
+ ooooooooo
+ ooooo ooooo
+ ooooo ooooo
+ ooooo ooooo
+ ooooo $2<oooooooo>$1
+ ooooo $2<oooooo>$1
+ooooo $2<oooo> \ No newline at end of file
diff --git a/src/logo/ascii/a/arkane.txt b/src/logo/ascii/a/arkane.txt
new file mode 100644
index 0000000..57f50de
--- /dev/null
+++ b/src/logo/ascii/a/arkane.txt
@@ -0,0 +1,23 @@
+ .:..
+ ..:::......
+ $2.$1 .$2.$1.....
+ $2+=$1...$2==$1....
+ ......:.$3:-$2:$1..$3+*$2=$1....
+ $2:----::$1......
+ $2.=***##*+=: $1..
+ $2=$3***######*$2=
+ $2.$3-*######+
+ $2:+$3###%%%###$1:
+ $2-+*$3########+$1.
+ $2=++*$3#######$1-
+ $2-+=+**$3*####$1=
+ $1.$2-=++==***$3##*$1-
+ $2-++++++==++++=
+ .-+++**+++=+===$1.
+$2:---===++++=-=--$1.
+$2-===============$1-==--:
+$2.-==+++***++*$3*#########$1=:::.
+ $2.-=++++*++++**$3#######%%###$1=
+ $2.:==++++++**$3#############$1:
+ $2.$1-+*++*+++==$3###$1+
+ -$3*+$1: \ No newline at end of file
diff --git a/src/logo/ascii/a/armbian.txt b/src/logo/ascii/a/armbian.txt
new file mode 100644
index 0000000..d5e1374
--- /dev/null
+++ b/src/logo/ascii/a/armbian.txt
@@ -0,0 +1,22 @@
+ ..
+ `:]x**j-,'
+ .,+t***********z\<"
+ ?******************;
+ '*n` .'`^,;;,^`'. ,cc.
+ -<. .[l
+ // ^^ ^^ \\
+ !^ $2^^$1 ":
+ 'tt}` $2!~]rj_$1 ")t/.
+ Itttt?' $2~~]rr]$1 `{tttt,
+ \tttttt!""I$2_]r($1"""~tttttt1
+ '_tttttttttttt$2)f$1tttttttttttti.
+ \*ztttttttttttttttttttttttttf**[
+l**c)tttttttttttttttttttttttt(z**,
+.z*x.`tttttttttttttttttttttttt.`u*n
+>` (tttttttttttttttttttttt] "I
+ ,tttttttttttttttttttttt`
+ ./ttttt$2f$1tttttttt$2f$1ttttt(
+ 'I)$2))(\()($1tt$2))|\()($1{;'
+ $2.~~~~~~~|)~~~~~~~<$1
+ '$2[)))))1$1|($2)))))))$1?
+ $2",,," ",,,^ \ No newline at end of file
diff --git a/src/logo/ascii/a/armbian2.txt b/src/logo/ascii/a/armbian2.txt
new file mode 100644
index 0000000..7307cf2
--- /dev/null
+++ b/src/logo/ascii/a/armbian2.txt
@@ -0,0 +1,14 @@
+ █ █ █ █ █ █ █ █ █ █ █
+ ███████████████████████
+▄▄██ ██▄▄
+▄▄██ ███████████ ██▄▄
+▄▄██ ██ ██ ██▄▄
+▄▄██ ██ ██ ██▄▄
+▄▄██ ██ ██ ██▄▄
+▄▄██ █████████████ ██▄▄
+▄▄██ ██ ██ ██▄▄
+▄▄██ ██ ██ ██▄▄
+▄▄██ ██ ██ ██▄▄
+▄▄██ ██▄▄
+ ███████████████████████
+ █ █ █ █ █ █ █ █ █ █ █ \ No newline at end of file
diff --git a/src/logo/ascii/a/arselinux.txt b/src/logo/ascii/a/arselinux.txt
new file mode 100644
index 0000000..303f9b8
--- /dev/null
+++ b/src/logo/ascii/a/arselinux.txt
@@ -0,0 +1,15 @@
+ ⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⣶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⣴⣶⠀⠀⠀⠀⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣄⠀⠀⠀⠀⣼⠟⠁⠀⠀⢀⣀⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⢀⣤⡀⠀⠀⠀⠉⢻⣷⡄⠀⠀⠁⠀⢀⣤⣾⡿⠟⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣿⠏⠀⠀⠀⠀⠀⠀⠹⣿⡄⠀⠀⠀⠙⠉⠁⠀⠀⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⡄⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠀⠀⠀⠠⣶⣶⣶⡶
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⢠⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠂⠀⠀⠀⠀⠀⢀⣾⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠇⠀⠀⠀⠀⠀⣠⣾⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣇⣀⣀⣀⣠⣴⣾⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⢸⣿⠀⠀⠀⠀⠀⣤⣤⣴⣶⣾⠿⠟⣿⡏⠙⠛⠛⠛⠋⠉⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⣿⡄⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠇⠀⠀⠀⠀⠀⠀⠘⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ \ No newline at end of file
diff --git a/src/logo/ascii/a/artix.txt b/src/logo/ascii/a/artix.txt
new file mode 100644
index 0000000..a1e26a8
--- /dev/null
+++ b/src/logo/ascii/a/artix.txt
@@ -0,0 +1,20 @@
+ '
+ 'o'
+ 'ooo'
+ 'ooxoo'
+ 'ooxxxoo'
+ 'oookkxxoo'
+ 'oiioxkkxxoo'
+ ':;:iiiioxxxoo'
+ `'.;::ioxxoo'
+ '-. `':;jiooo'
+ 'oooio-.. `'i:io'
+ 'ooooxxxxoio:,. `'-;'
+ 'ooooxxxxxkkxoooIi:-. `'
+ 'ooooxxxxxkkkkxoiiiiiji'
+ 'ooooxxxxxkxxoiiii:'` .i'
+ 'ooooxxxxxoi:::'` .;ioxo'
+ 'ooooxooi::'` .:iiixkxxo'
+ 'ooooi:'` `'';ioxxo'
+ 'i:'` '':io'
+'` `' \ No newline at end of file
diff --git a/src/logo/ascii/a/artix2.txt b/src/logo/ascii/a/artix2.txt
new file mode 100644
index 0000000..0e87beb
--- /dev/null
+++ b/src/logo/ascii/a/artix2.txt
@@ -0,0 +1,20 @@
+ .:
+ .==:
+ .====:
+ .======:
+ .========:
+ .==========:
+ .============:
+ .-===========:
+ .:-========:
+ .-:. .:======:
+ .======:.. :-===.
+ .============:.. .:=.
+ .==================:..
+ .=======================:
+ .====================::. .
+ ================::. :-===
+ ============-:. .:========
+ ========-:. :-==========
+ =====:. ..:-=====
+ =::. ..::
diff --git a/src/logo/ascii/a/artix2_small.txt b/src/logo/ascii/a/artix2_small.txt
new file mode 100644
index 0000000..9f9052f
--- /dev/null
+++ b/src/logo/ascii/a/artix2_small.txt
@@ -0,0 +1,7 @@
+ /\
+ / \
+ /`'.,\
+ / ',
+ / ,`\
+ / ,.'`. \
+/.,'` `'.\
diff --git a/src/logo/ascii/a/artix_small.txt b/src/logo/ascii/a/artix_small.txt
new file mode 100644
index 0000000..14e7083
--- /dev/null
+++ b/src/logo/ascii/a/artix_small.txt
@@ -0,0 +1,13 @@
+ '
+ 'A'
+ 'ooo'
+ 'ookxo'
+ `ookxxo'
+ '. `ooko'
+ 'ooo`. `oo'
+ 'ooxxxoo`. `'
+ 'ookxxxkooo.` .
+ 'ookxxkoo'` .'oo'
+ 'ooxoo'` .:ooxxo'
+ 'io'` `'oo'
+'` `'
diff --git a/src/logo/ascii/a/arya.txt b/src/logo/ascii/a/arya.txt
new file mode 100644
index 0000000..a6758e6
--- /dev/null
+++ b/src/logo/ascii/a/arya.txt
@@ -0,0 +1,15 @@
+$1 `oyyy/$2-yyyyyy+
+$1 -syyyy/$2-yyyyyy+
+$1 .syyyyy/$2-yyyyyy+
+$1 :yyyyyy/$2-yyyyyy+
+$1 `/ :yyyyyy/$2-yyyyyy+
+$1 .+s :yyyyyy/$2-yyyyyy+
+$1 .oys :yyyyyy/$2-yyyyyy+
+$1 -oyys :yyyyyy/$2-yyyyyy+
+$1 :syyys :yyyyyy/$2-yyyyyy+
+$1 /syyyys :yyyyyy/$2-yyyyyy+
+$1 +yyyyyys :yyyyyy/$2-yyyyyy+
+$1 .oyyyyyyo. :yyyyyy/$2-yyyyyy+ ---------
+$1 .syyyyyy+` :yyyyyy/$2-yyyyy+-+syyyyyyyy
+$1 -syyyyyy/ :yyyyyy/$2-yyys:.syyyyyyyyyy
+$1:syyyyyy/ :yyyyyy/$2-yyo.:syyyyyyyyyyy \ No newline at end of file
diff --git a/src/logo/ascii/a/asahi.txt b/src/logo/ascii/a/asahi.txt
new file mode 100644
index 0000000..90de319
--- /dev/null
+++ b/src/logo/ascii/a/asahi.txt
@@ -0,0 +1,18 @@
+ ## $2**
+ $1*####$2****.
+ $1###$2,
+ $3...,$1/#$3,,,..
+ $3/*,,,,,,,,$1*$3,........$4,,
+ $3,((((((//*,,,,,,,,$4,......
+ $3(((((((((((((($5%..$4..........
+ $3,((((((((((((((($5@@($4............
+ $3((((((((((((((((($5@@@@/$4............
+ $3,(((((((((((((((((($5@@@@@&*$4...........
+ $3(((((((((((((((((((($5@@@@@@@&$4,...........
+$3((((((((((((((((((((($5@@@$6&%&$5@@@%$4,..........
+ $3/((((((((((((((((((($5@@@$6&%%&$5@@@@($4........
+ $3,(((((((((((((((($5@@@$6&&$5@@&/&@@@/$4..
+ $3/(((((((((((($5@@@@@@/$4.../&&
+ $3.((((((((($5@@@@($4....
+ $3/((((($5@@#$4...
+ $3.(($4&, \ No newline at end of file
diff --git a/src/logo/ascii/a/asahi2.txt b/src/logo/ascii/a/asahi2.txt
new file mode 100644
index 0000000..9cec063
--- /dev/null
+++ b/src/logo/ascii/a/asahi2.txt
@@ -0,0 +1,18 @@
+ $1_wwM $2_ww
+ $1MMM$2MMMM
+ $1MM
+ $3_ww##############yy_
+ $4wMMMMM$3###########$4MMMMm
+ $4,MMMMMMMMM$3######$4MMMMMMMM0_
+ $4wMMMMMMMMMMMMM$5MM$60MMMMMMMMMMm
+ $4,MMMMMMMMMMMMMMM$5MMMM$60MMMMMMMMM0,
+ $4wMMMMMMMMMMMMMMMM$5MMMMM0$6MMMMMMMMMMb
+ $4_MMMMMMMMMMMMMMMMMM$5MMMMMMM0$6MMMMMMMMM0,
+ $4_MMMMMMMMMMMMMMMMMMM$5MMMM$7M$5MMMW$6MMMMMMMMMM_
+$4_MMMMMMMMMMMMMMMMMMMM$5MMMM$7M0$5MMMW$6MMMMMMMMMM_
+ $4~MMMMMMMMMMMMMMMMM$5MMMM$7M$5MMMW$6MMMMM00~
+ $4~MMMMMMMMMMMMM$5MMMWMMM$60MM$5MMM$6~
+ $4~MMMMMMMMMM$5MMMMM$60MMM~~
+ $4~MMMMMM$5MMM$60MM~
+ $4~MM$5M$6@~
+ $4M \ No newline at end of file
diff --git a/src/logo/ascii/a/aster.txt b/src/logo/ascii/a/aster.txt
new file mode 100644
index 0000000..f5c2a1a
--- /dev/null
+++ b/src/logo/ascii/a/aster.txt
@@ -0,0 +1,18 @@
+ ...''...
+ .;oOXWMWNXXXNMMN0d:.
+ .oXMWOo;.. ..:oO;
+ ;KMWx, co,
+ 'KMNl dMMW.
+ oMMx xMMMMk
+ xMM: dMMMMMM;
+ cMMl dMMMMMMMW
+ NMK xMMMx::dXMx
+,MMl xMMN' .o.
+cMM; dMMW'
+;MMc oMMW,
+ WMK dMMW, ccccccc.
+ lMMl oMMM; ooooooo.
+ OMMc ...
+ xMMx
+ ;XMN:
+ ,. \ No newline at end of file
diff --git a/src/logo/ascii/a/asteroidos.txt b/src/logo/ascii/a/asteroidos.txt
new file mode 100644
index 0000000..d7dfca6
--- /dev/null
+++ b/src/logo/ascii/a/asteroidos.txt
@@ -0,0 +1,17 @@
+$1 ***
+$1 *****
+$1 **********
+$1 ***************
+$1 *///****////****////.
+$2 (/////// /////// ///////(
+$2 /(((((//* //, //((((((.
+$2 ((((((((((( ((( ((((((((
+$2 *((((((((((((((((((((((( ((((((((
+$3 (((((#(((((((#((((( ((#(((((
+$3 (#(#(#####(#(#, ####(#(#
+$3 ######### ########
+$3 /######## ########
+$4 #######%#######
+$4 (#%%%%%%%#
+$4 %%%%%
+$4 %%% \ No newline at end of file
diff --git a/src/logo/ascii/a/astos.txt b/src/logo/ascii/a/astos.txt
new file mode 100644
index 0000000..f37157b
--- /dev/null
+++ b/src/logo/ascii/a/astos.txt
@@ -0,0 +1,23 @@
+ oQA#$%UMn
+ H 9
+ G #
+ 6 %
+ ?#M#%KW3"
+ // \\
+ // \\
+ // \\
+ // \\
+ n%@$DK&ML .0O3#@&M_
+ P # 8 W
+ H U G #
+ B N O @
+ C&&#%HNAR 'WS3QMHB"
+ // \\ \\
+ // \\ \\
+ // \\ \\
+ // \\ \\
+uURF$##Bv nKWB$%ABc aM@3R@D@b
+8 M @ O # %
+% & G U @ @
+& @ # % % #
+!HGN@MNCf t&S9#%HQr ?@G#6S@QP \ No newline at end of file
diff --git a/src/logo/ascii/a/astra_linux.txt b/src/logo/ascii/a/astra_linux.txt
new file mode 100644
index 0000000..f35a66d
--- /dev/null
+++ b/src/logo/ascii/a/astra_linux.txt
@@ -0,0 +1,22 @@
+ AA
+ AaaA
+ Aa$2/\$1aA
+$1 Aa$2/$1aa$2\$1aA
+$1 Aa$2/$1aAAa$2\$1aA
+$1 aA$2/$1aaAAaa$2\$1Aa
+$1 aA$2/$1aaAAAAaa$2\$1Aa
+$1 aaaaaaAAAAa$2/$1aaAAAAAAaa$2\$1aAAAAaaaaa
+$1aAAa$2-----$1aaaaaAAAAAAAAAAaaaaa$2-----$1aAAa
+$1 aAA$2\ $1aAAAAAAAAAAAAAAAAAAAAAAa$2 /$1AAa
+$1 aAa$2\$1aAAA$2\$1AAAA$2\$1AAAA$2\$1AAA$2\$1AAa$2/$1aAa
+$1 aAa$2\$1aA$2\\$1AAA$2\\$1AAA$2\\$1AA$2\\/$1aAa
+$1 aAA$2\$1aA$2\\$1AAA$2\\$1AAA$2\\$1Aa$2/$1AAa
+$1 aA$2\$1aA$2\\$1AAA$2\\$1AAA$2\\/$1Aa
+$1 aA$2/$1AA$2\\\$1AA$2\\\$1AA$2\\\$1Aa
+$1 aA$2/\$1AAa$2\\\$1Aa$2\\\$1Aa$2\\\$1Aa
+$1 aA$2/\\$1AAa$2\\/\$1a$2\\\$1Aa$2\\$1Aa
+$1 aA$2/$1a$2\\\$1Aa$2\/$1AA$2\\\\\$1Aa$2\\$1Aa
+$1 aA$2/$1aA$2\\/$1aAa aAa$2\\\$1Aa$2\$1Aa
+$1 aA$2/\$1A$2\/$1Aa aA$2\\$1A$2\\$1Aa
+$1 A$2|/$1aaAa aAaa$2\|$1A
+$1 aAaa aaAa \ No newline at end of file
diff --git a/src/logo/ascii/a/athenaos.txt b/src/logo/ascii/a/athenaos.txt
new file mode 100644
index 0000000..383b5ab
--- /dev/null
+++ b/src/logo/ascii/a/athenaos.txt
@@ -0,0 +1,29 @@
+ u.
+ ..:Y
+ .Y..1
+ ..::i::.. .br7S.
+ .::::...::::. 5dDr:
+ ..:::.. .:i::.. Y7:
+ ..:::::.. ..::::.
+ ...:i:i:i:.. $2... $1:.:..:i:::...
+ ::i:. $2.USL Yr $1..i::.
+.:::. $2:K :u. $1.::.
+:... $2jB. .:vUi: 77 KB: $1..::
+...: $2iBR vP::5X5PgSKXvLjS. iBB $1.::.
+:i:: $2BBQr jgDIuj1UuJjXbbi 2BBP $1:::;
+'i:: $2sQBg: i2S55121XSSU. YBQZ: $1.:::
+ r::: $2r:JgBMu. Q :BqEqZEB: Q :qBBK7i: $1:i:i
+ .rir. $2IBqPDgQBDr P rB :q 1QBRgEqgB $1.::i.
+ :i:i $2:JsXPDDRQQPBL P qQXBQRDDPIYY $1rir:
+ :iii $25qvLUDDMgMgBB5 :DBQZRgMDdJ7Ygi $1iir:
+ iri: $2MBRgdZZggQgRBMIBQQRRggdZdMBBr $1riri
+ irii $2IBQgdZbDDRRRgQgQQMZDdZdgBB. $1iiri
+ i7rr $2.BBQZZbEEMQQDBQMEZdDDBBP $1.rir:
+ :7ir. $27BBQMDMQSbB5ZBggQBBQ. $1ivr7.
+ :r7r. $27BBBB:rBbQ.1BBBM. $1:r7vi
+ ::rLrr. $2.b:rBQ7QB uU. $1:7vLi.
+ .BB .iLYv: $1idL B1 $1:r77r.
+ LBB :vrvvr rvu7r:
+ ZB. ':7v177Lsvurr:'
+ .d2 ''::r:''
+ :' \ No newline at end of file
diff --git a/src/logo/ascii/a/athenaos_old.txt b/src/logo/ascii/a/athenaos_old.txt
new file mode 100644
index 0000000..d26fa04
--- /dev/null
+++ b/src/logo/ascii/a/athenaos_old.txt
@@ -0,0 +1,24 @@
+ . ..
+$1 :####: ####.
+$1 .################
+$1 :##################
+$1.###################.
+$1######## #######
+$1####### $2####$1 #####
+$1:#######. ####
+$1 ######### $2#$1 ## #
+$1 ####### $2##$1 ####
+$1######## $2####$1 #######
+$1######## $2#####$1 ########
+$1######## $2#######$1 #######
+$1 ####### $2########$1 #######
+$1 ######## $2#########$1 ######
+$1 ######## $2#########$1 #####
+$1 ####### $2#########$1 ####
+$1 ####### $2#########$1 ##
+$1 ####### $2########$1 ##
+$1 ###### $2########$1 #
+$1 ### $2#######$1
+$1 $2######$1
+$1 $2####$1
+$1 $2##$1 \ No newline at end of file
diff --git a/src/logo/ascii/a/aurora.txt b/src/logo/ascii/a/aurora.txt
new file mode 100644
index 0000000..fe04fdc
--- /dev/null
+++ b/src/logo/ascii/a/aurora.txt
@@ -0,0 +1,28 @@
+ +++++++++
+ +++++$4+$1++++++$4+$1++
+ ++++++$4+$1+++ +++++++++++
+ +++++++++++ $2+$1 +++++$4+$1+++++
+ ++++++$4+$1++++ $4+++$1 +++++++++++
+ ++++++++++$4 + +++++ ++ $2+++++$4+$2++++
+ +++$4+$1++++$4 + + + +++++++ + + $2+++++$4+$2++
+++++++$4 $2+$4 +++ +++++++++ +++ $2++++++++
++++$4+$1++$4 + +++++ +++++ +
+++++++$4 $2+$4 +++++ +++++ +++++
+++$4+$2+++$4 + +++++ ++++++ ++++++++++
+++++++$4 +++++ +++++ + +++++++++++++++++++
+++++++$4 + +++++ + +++++++++++++++
++++$4++$2+$4 ++++++ +++++++++++++
+++++++$4 + ++++++ +++++++++++++ $2+++ $4++
+++++++$4 ++++++++++++++++ $2++$4+$2+ $4++ $1+
+++++++$4 ++++++++++++++ $3+ $2++++
+++++++$4 +++++++++++ + $4+ $3++++++
+++$4+$3+++$4 ++++++++++ +++ $3+++++++++++++
++++++ $4+++++++++ + $3+++++++++++++
+ +++ $4++++++++ $2++$4 + $3++++++++++++++ ++++
+ ++ $4++++++++ $3+ ++++++++++++++ +++++++
+ $4++++++ $2+ $3+++++++++++++ +++++++$2++
+ $4++++ $3+++++++++++++ ++++++$2+++
+ +++++++++++ ++++++$2+++
+ +++++ ++++++$2+++
+ ++++++$2++
+ +++++ \ No newline at end of file
diff --git a/src/logo/ascii/a/axos.txt b/src/logo/ascii/a/axos.txt
new file mode 100644
index 0000000..4cc4f83
--- /dev/null
+++ b/src/logo/ascii/a/axos.txt
@@ -0,0 +1,16 @@
+ ▂🬭𜴧⎻𜷗𜴗𜴦𜵎⎻𜴧🬭▂
+ ▁▂𜴧━𜵼𜵶𜶮▂🬭🬭𜴐🭗 🬁𜴜🬭🬭▂𜶮▁𜵁━𜴧▂▁
+ 𜷓𜵐🬂🬂🮂𜶮𜴸𜴪━𜴆🮂▔ ▔🮂𜴆━𜴩𜵳𜴸🮂🬂🬂𜶚🬿
+ 🭄🬨▍ 🬜🮂▔ ▁▂▂🬭🬭▂▂▁ ▔🮂🬪 🮈🬕𜶿
+ 🭄🭙▐▎𜵫 🭃██████████🭎 🭢𜶡🮇▌🭤𜶿
+ 🭄🭙 ▐🭄🭙 🭋█████🭜𜴦█████🭀 🭤🭏▌ 🭤🭏
+ 𜵫🭗 🮉🭛 🭃███🭝🭙 🭥🭒███🭎 🭦▋ 🭢𜶡
+▟🬮𜴧━🭷🭘 🭋████▄▂ ▂▄████🭀 🭣𜴇━𜴧🬯🭏
+🭕𜴸𜴆╾🭺🬽 🭃██🭡 🭖██🭐 🭈𜵡╼𜴆🬡🭠
+ 𜴤🬼 🮉🭀 🭋███΄ 🭤███🭀 🭋▊ 🭇𜵐
+ 𜴠🬾 ▐𜴢🬾▁▁ 🭃██𜴍 𜶘██🭐 ▁▁🭉🭫▌ 🭉🭠
+ 𜴠🬾🮈▎𜶚 ▔🮂🬂▀🬎🬎 🮅🬎▀🬂🮂▔ 𜵐🮇▌🭉𜴏
+ 𜴢🭿▍ 𜴬▂▁ ▁▂🬜΄🮈🬲𜴏
+ 🭥𜶡🬭🬭▂𜶭▁𜵁━𜴧▂▁ ▁▂𜴧━𜶷𜶭𜶮▂🬭🬭𜵫🭚
+ ▔⎺𜴆━𜴩▔𜶮🮂🬂🬂𜴜🬼 🭇𜴐🬂🬂🮂𜶮▔𜴨━𜴆⎺▔
+ ⠈🮂🭷𜴆╾𜶦𜷞🭄𜴬╼𜴆🬂🮂΄ \ No newline at end of file
diff --git a/src/logo/ascii/a/azos.txt b/src/logo/ascii/a/azos.txt
new file mode 100644
index 0000000..e341d3f
--- /dev/null
+++ b/src/logo/ascii/a/azos.txt
@@ -0,0 +1,17 @@
+$1 ////. $2 (((((
+$1//////// $2 @((((((((
+$1//////// $2 @((((((((
+$1//////// /////// $2 ((((((( @((((((((
+$1//////// ///////// $2 ((((((((( @((((((((
+$1//////// ///////// $2 ((((((((( @((((((((
+$1//////// ///////// ////// $2 (((((( ((((((((( @((((((((
+$1//////// ///////// //////// $2 (((((((( ((((((((( @((((((((
+$1//////// ///////// //////// $2 (((((((( ((((((((( @((((((((
+$1//////// ///////// //////// $2 ((((((( ((((((((( @((((((((
+$1//////// ///////// /// $2 ( ((((((((( @((((((((
+$1//////// ///////// $2 ((((((((( @((((((((
+$1//////// ///////// $2 &(((((((( @((((((((
+$1//////// ////// $2 @(((( @((((((((
+$1//////// $2 @((((((((
+$1//////// $2 @((((((((
+$1 ///// $2 ((((( \ No newline at end of file
diff --git a/src/logo/ascii/b.inc b/src/logo/ascii/b.inc
new file mode 100644
index 0000000..2844655
--- /dev/null
+++ b/src/logo/ascii/b.inc
@@ -0,0 +1,218 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo B[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_BEDROCK
+ // Bedrock
+ {
+ .names = { "bedrock" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BEDROCK,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK, // grey
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK, // grey
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BEDROCK_SMALL
+ // BedrockSmall
+ {
+ .names = { "bedrock_small" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BEDROCK_SMALL,
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK, // grey
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK, // grey
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BERSERKARCH
+ // BerserkArch
+ {
+ .names = { "BerserkArch" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BERSERKARCH,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BIGLINUX
+ // BigLinux
+ {
+ .names = { "BigLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BIGLINUX,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BITRIG
+ // Bitrig
+ {
+ .names = { "Bitrig" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BITRIG,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BLACKARCH
+ // BlackArch
+ {
+ .names = { "Blackarch" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BLACKARCH,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BLACKMESA
+ // BlackMesa
+ {
+ .names = { "BlackMesa", "black-mesa" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BLACKMESA,
+ .colors = {
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BLACKPANTHER
+ // BlackPanther
+ {
+ .names = { "BlackPanther" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BLACKPANTHER,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BLAG
+ // BLAG
+ {
+ .names = { "BLAG" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BLAG,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BLANKON
+ // BlankOn
+ {
+ .names = { "BlankOn" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BLANKON,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BLUELIGHT
+ // BlueLight
+ {
+ .names = { "BlueLight" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BLUELIGHT,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BODHI
+ // Bodhi
+ {
+ .names = { "Bodhi" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BODHI,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_YELLOW,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BONSAI
+ // Bonsai
+ {
+ .names = { "Bonsai" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BONSAI,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BREDOS
+ // BredOS
+ {
+ .names = { "Bredos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BREDOS,
+ .colors = {
+ FF_COLOR_FG_RGB "198;151;66", // grey
+ },
+ .colorKeys = FF_COLOR_FG_RGB "198;151;66",
+ .colorTitle = FF_COLOR_FG_RGB "198;151;66",
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BSD
+ // BSD
+ {
+ .names = { "BSD" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BSD,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_BUNSENLABS
+ // BunsenLabs
+ {
+ .names = { "BunsenLabs" },
+ .lines = FASTFETCH_DATATEXT_LOGO_BUNSENLABS,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/b/bedrock.txt b/src/logo/ascii/b/bedrock.txt
new file mode 100644
index 0000000..6bbd44a
--- /dev/null
+++ b/src/logo/ascii/b/bedrock.txt
@@ -0,0 +1,17 @@
+--------------------------------------
+--------------------------------------
+--------------------------------------
+---$2\\\\\\\\\\\\$1-----------------------
+----$2\\\ \\\$1----------------------
+-----$2\\\ \\\$1---------------------
+------$2\\\ \\\\\\\\\\\\\\\\\$1------
+-------$2\\\ \\\$1-----
+--------$2\\\ \\\$1----
+---------$2\\\ ______ \\\$1---
+----------$2\\\ ///$1---
+-----------$2\\\ ///$1----
+------------$2\\\ ///$1-----
+-------------$2\\\////////////////$1------
+--------------------------------------
+--------------------------------------
+-------------------------------------- \ No newline at end of file
diff --git a/src/logo/ascii/b/bedrock_small.txt b/src/logo/ascii/b/bedrock_small.txt
new file mode 100644
index 0000000..59d7de1
--- /dev/null
+++ b/src/logo/ascii/b/bedrock_small.txt
@@ -0,0 +1,6 @@
+ _________
+| $2__ $1 |
+| $2\ \___ $1 |
+| $2 \ _ \$1 |
+| $2 \___/$1 |
+|_________|
diff --git a/src/logo/ascii/b/berserkarch.txt b/src/logo/ascii/b/berserkarch.txt
new file mode 100644
index 0000000..90128af
--- /dev/null
+++ b/src/logo/ascii/b/berserkarch.txt
@@ -0,0 +1,21 @@
+ .~?5P^
+ :&@#Y~..!^ :^
+ 7@&: ^JPP!!55#!~YB#7.
+ ^: !&@&.?&GJ5G##G&@@@@@@J:.
+ JP. @@#?#@&#@&5&@@@@@@@@@@G!:
+ ^PP: :#@&@@@@@@&#G&B#&@@@@@@@@&5^
+ ~J Y@@@@&&@@@@@@#~Y@@@@@@@@@@@@@&Y.
+:G .@@@PJ&@&&@@@&BP#@@@@@@@@@@@@@@??~
+5: .&@BG&@7J@@@!. .:!J&@@@@@@@@@@~ ..
+? . :B@@@&BG@@@@&#5!. .&@@@@@@@@@@~
+~ ?&&@&#5&@#Y~^^: !#@@@@@@@@@@B.
+. J&7:&@@^ ^@@@@@@@@@@&!G.
+ .&G~. J@@@@@@@@@@@# !
+ . . ^YG@@@@@@@@@@@@!?
+ P. : ~#B&@@@@@@@@@@@B#@@.
+ Y@: ?&B@@@@@@@@@@@@&G?~P@@B
+ .?#5. .Y&@@@@@@@@@@&####BGB@@@@Y
+ !#G^ Y@@@@@@@@@@BP#&@@@@@@@@&!B^
+ B@@#Y5##&&&@@@@@#&@@@@@@@@@#! ^
+ ^YG#@@@@@@@@@@@@@@@@@@@@#J:
+ .~#@@@@@@@@@&&BP?^ \ No newline at end of file
diff --git a/src/logo/ascii/b/biglinux.txt b/src/logo/ascii/b/biglinux.txt
new file mode 100644
index 0000000..b61a3a6
--- /dev/null
+++ b/src/logo/ascii/b/biglinux.txt
@@ -0,0 +1,19 @@
+ ...
+ :OWMMMNd.
+ :NMMMMMMMMWc
+ okkl. kMMMMMW0xdOWMl
+ : xMMMMMW. kMMMMNc lW.
+ :x NMMMMMO ,MMMM0. 'l
+ Xx "lkk" kMMMX .okx,
+$2.MX .cc;. .xXKx. KMMM: .OMMMMMl
+:MM' 'KMMMMWK: 0MMMMk xMMM. lWMMMMMMM'
+cMMN:;xMMMMk::MMO oMMMMX .XMM. .KMMMWOOMMMd
+'MMMMMMMMN, NMMx OMMMMl .kM0OMMMMk. ;MMd
+ xMMMMMMd .MMMW :NMMMd .ckKKx' KMc
+ dWMNd. oMMMN lkNMX, oM.
+ ;. ;MMMMx "MM:. cO
+$3 .X. oMMMMW. l.
+ dMk:..;xWMMMMW,
+ kMMMMMMMMMMX.
+ :XMMMMMMK:
+ ':MM:" Made in Brazil \ No newline at end of file
diff --git a/src/logo/ascii/b/bitrig.txt b/src/logo/ascii/b/bitrig.txt
new file mode 100644
index 0000000..ef26184
--- /dev/null
+++ b/src/logo/ascii/b/bitrig.txt
@@ -0,0 +1,17 @@
+ `hMMMMN+
+ -MMo-dMd`
+ oMN- oMN`
+ yMd /NM:
+ .mMmyyhMMs
+ :NMMMhsmMh
+ +MNhNNoyMm-
+ hMd.-hMNMN:
+ mMmsssmMMMo
+ .MMdyyhNMMMd
+ oMN.`/dMddMN`
+ yMm/hNm+./MM/
+.dMMMmo.``.NMo
+:NMMMNmmmmmMMh
+/MN/-------oNN:
+hMd. .dMh
+sm/ /ms \ No newline at end of file
diff --git a/src/logo/ascii/b/blackarch.txt b/src/logo/ascii/b/blackarch.txt
new file mode 100644
index 0000000..440d5f8
--- /dev/null
+++ b/src/logo/ascii/b/blackarch.txt
@@ -0,0 +1,21 @@
+$3 00
+ 11
+ ====$1
+ .$3//$1
+ `o$3//$1:
+ `+o$3//$1o:
+ `+oo$3//$1oo:
+ -+oo$3//$1oo+:
+ `/:-:+$3//$1ooo+:
+ `/+++++$3//$1+++++:
+ `/++++++$3//$1++++++:
+ `/+++o$2ooo$3//$2ooo$1oooo/`
+$2 $1./$2ooosssso$3//$2osssssso$1+`
+$2 .oossssso-`$3//$1`/ossssss+`
+ -osssssso. $3//$1 :ssssssso.
+ :osssssss/ $3//$1 osssso+++.
+ /ossssssss/ $3//$1 +ssssooo/-
+ `/ossssso+/:- $3//$1 -:/+osssso+-
+ `+sso+:-` $3//$1 `.-/+oso:
+ `++:. $3//$1 `-/+/
+ .` $3/$1 `/ \ No newline at end of file
diff --git a/src/logo/ascii/b/blackmesa.txt b/src/logo/ascii/b/blackmesa.txt
new file mode 100644
index 0000000..c25a44d
--- /dev/null
+++ b/src/logo/ascii/b/blackmesa.txt
@@ -0,0 +1,20 @@
+ .-;+$$XHHHHHHX$$+;-
+ ,:X@@X%/;=----=:\%X@@X:,
+ =$$@@%=. .=+H@X:
+ -XMX: =XMX=
+ /@@: =H@+
+ %@X. .$$@$$
+ +@X, $$@%
+/@@, .@@\
+%@% +@$$
+H@: :@H
+H@: :HHHHHHHHHHHHHHHHHHX, =@H
+%@% ;@M@@@@@@@@@@@@@@@@@H- +@$$
+=@@, :@@@@@@@@@@@@@@@@@@@@@= .@@:
+ =@X :@@@@@@@@@@@@@@@@@@@@@@:%@%
+ $$@$$, ;@@@@@@@@@@@@@@@@@M@@@@@@$$
+ +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@
+ =X@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
+ :$$@@@@@@@@@@@@@@@@@@M@@@@$$:
+ \$$@@@@@@@@@@@@@@@@@@X/-
+ .-;+$$XXHHHHHX$$+;-. \ No newline at end of file
diff --git a/src/logo/ascii/b/blackpanther.txt b/src/logo/ascii/b/blackpanther.txt
new file mode 100644
index 0000000..a96f7e6
--- /dev/null
+++ b/src/logo/ascii/b/blackpanther.txt
@@ -0,0 +1,23 @@
+$3 ........
+ .,»╔╗╗╬▄▄╫█▀▓▄▄╬╗╗g≈,.
+ ,j╗╬╣▓▓███████▌;»╙▀▀▀▀█▄▄╗j,
+ .≈╗╬▓██▀▀▀▀▀╠╙░░»»;:`$2``>$1▄ $3▐ ▓╫╗⌂,
+ .j╬▓█▀▒░░░░░░░░░»»»;:```` ╙▀█▌╬░,
+ ;╗▓█▄▄███████▀░░»»»»;```` ╓▄▄█▄▄φ ██▌Ñ>.
+ .j╣█████▀▀░░░░░░░░»»╓▄▄¿``▄███████/▄████▓╬U.
+ .j╣▓██▀ÜÑ╦╦░░░░░░▐█@▄████⌐▐███████████████▓╬H.
+ «╫▓█▀░ÑÑ╩╦░░░░░░░░▀██████M"▀███████████████▓╫░
+ :]╣█▌ÑÑÑÑ▄▄██▀░░░░»»██████████████████████████Ñ~
+ »╫▓█╫ÑÑ▄███▀░░░░░»»▐██████████████████████████▌░
+ `j╣█▌Ñ╬████░░░░░░░»»▐████████████████████████▌▐█U`
+ `/╫█▌▄███▌░░░░░░░»»»;▀██████████████▀████████w▐█░`
+ ;╟█▌███▌░░░░░░░▄▄»»;:`▀▀████████▀Ü▄████████▌ ▐▌>`
+ `]▓████░░░░░░░░██⌂;:````╓▄▄µp╓▄▄██████████▀ ,█M`
+ "╠╣██▌░░░░░░░»██▌;```` ╙▀██████████████M █▀"
+ "╟╣█░░░░░░░░»███⌂``` ▐▀████████▀░ █▌░`
+ "╩█▄░░░░░░»»▀███ `` └└` ,█▀"`
+ `░▀█▄░░░»»»»████@ .▄█Ü`
+ `╙▀█▄@»»»;`▀███▌¿ ,▄▀Ñ"`
+ `"╨▀█▄▄▄░`▐█████▄, ,▄▄▀▀░`
+ `"╙╩▀▀▀▀████████▓▌▌▌▀▀▀╨"``
+ ``""░╚╨╝╝╝╝╨╨░""`` \ No newline at end of file
diff --git a/src/logo/ascii/b/blag.txt b/src/logo/ascii/b/blag.txt
new file mode 100644
index 0000000..f8eafb1
--- /dev/null
+++ b/src/logo/ascii/b/blag.txt
@@ -0,0 +1,17 @@
+ d
+ ,MK:
+ xMMMX:
+ .NMMMMMX;
+ lMMMMMMMM0clodkO0KXWW:
+ KMMMMMMMMMMMMMMMMMMX'
+ .;d0NMMMMMMMMMMMMMMMMMMK.
+ .;dONMMMMMMMMMMMMMMMMMMMMMMx
+'dKMMMMMMMMMMMMMMMMMMMMMMMMl
+ .:xKWMMMMMMMMMMMMMMMMMMM0.
+ .:xNMMMMMMMMMMMMMMMMMK.
+ lMMMMMMMMMMMMMMMMMMK.
+ ,MMMMMMMMWkOXWMMMMMM0
+ .NMMMMMNd. `':ldko
+ OMMMK:
+ oWk,
+ ;: \ No newline at end of file
diff --git a/src/logo/ascii/b/blankon.txt b/src/logo/ascii/b/blankon.txt
new file mode 100644
index 0000000..a7862e2
--- /dev/null
+++ b/src/logo/ascii/b/blankon.txt
@@ -0,0 +1,17 @@
+$2 `./ohdNMMMMNmho+.` $1 .+oo:`
+$2 -smMMMMMMMMMMMMMMMMmy-` $1`yyyyy+
+$2 `:dMMMMMMMMMMMMMMMMMMMMMMd/` $1`yyyyys
+$2 .hMMMMMMMNmhso/++symNMMMMMMMh- $1`yyyyys
+$2 -mMMMMMMms-` -omMMMMMMN-$1.yyyyys
+$2.mMMMMMMy. .yMMMMMMm:$1yyyyys
+$2sMMMMMMy `sMMMMMMh$1yyyyys
+$2NMMMMMN: .NMMMMMN$1yyyyys
+$2MMMMMMm. NMMMMMN$1yyyyys
+$2hMMMMMM+ /MMMMMMN$1yyyyys
+$2:NMMMMMN: :mMMMMMM+$1yyyyys
+$2 oMMMMMMNs- .sNMMMMMMs.$1yyyyys
+$2 +MMMMMMMNho:.` `.:ohNMMMMMMNo $1`yyyyys
+$2 -hMMMMMMMMNNNmmNNNMMMMMMMMh- $1`yyyyys
+$2 :yNMMMMMMMMMMMMMMMMMMNy:` $1`yyyyys
+$2 .:sdNMMMMMMMMMMNds/. $1`yyyyyo
+$2 `.:/++++/:.` $1:oys+. \ No newline at end of file
diff --git a/src/logo/ascii/b/bluelight.txt b/src/logo/ascii/b/bluelight.txt
new file mode 100644
index 0000000..946bd12
--- /dev/null
+++ b/src/logo/ascii/b/bluelight.txt
@@ -0,0 +1,19 @@
+ oMMNMMMMMMMMMMMMMMMMMMMMMM
+ oMMMMMMMMMMMMMMMMMMMMMMMMM
+ oMMMMMMMMMMMMMMMMMMMMMMMMM
+ oMMMMMMMMMMMMMMMMMMMMMMMMM
+ -+++++++++++++++++++++++mM$2
+ ```````````````````````..$1dM$2
+ ```````````````````````....$1dM$2
+ ```````````````````````......$1dM$2
+ ```````````````````````........$1dM$2
+ ```````````````````````..........$1dM$2
+ ```````````````````````............$1dM$2
+.::::::::::::::::::::::-..............$1dM$2
+ `-+yyyyyyyyyyyyyyyyyyyo............$1+mMM$2
+ -+yyyyyyyyyyyyyyyyo..........$1+mMMMM$2
+ ./syyyyyyyyyyyyo........$1+mMMMMMM$2
+ ./oyyyyyyyyyo......$1+mMMMMMMMM$2
+ omdyyyyyyo....$1+mMMMMMMMMMM$2
+ $1oMMM$2mdhyyo..$1+mMMMMMMMMMMMM
+ oNNNNNNm$2dso$1mMMMMMMMMMMMMMM \ No newline at end of file
diff --git a/src/logo/ascii/b/bodhi.txt b/src/logo/ascii/b/bodhi.txt
new file mode 100644
index 0000000..77b6c9d
--- /dev/null
+++ b/src/logo/ascii/b/bodhi.txt
@@ -0,0 +1,18 @@
+$1| $2,,mmKKKKKKKKWm,,
+ $1' $2,aKKP$1LL**********|L*$2TKp,
+ $1t $2aKP$1L**``` ```**L$2*Kp
+ IX$1EL$3L,wwww, $1``*||$2Kp
+ ,#P$1L|$3KKKpPP@IPPTKmw, $1`*||$2K
+ ,K$1LL*$3{KKKKKKPPb$KPhpKKPKp $1`||$2K
+ #$1PL $3!KKKKKKPhKPPP$KKEhKKKKp $1`||$2K
+!H$1L* $31KKKKKKKphKbPKKKKKK$KKp $1`|I$2W
+$$$$1bL $3KKKKKKKKBQKhKbKKKKKKKK $1|I$2N
+$$$$1bL $3!KKKKKKKKKKNKKKKKKKPP` $1|I$2b
+TH$1L* $3TKKKKKK##KKKN@KKKK^ $1|I$2M
+ K@$1L $3*KKKKKKKKKKKEKE5 $1||$2K
+ `NL$1L $3`KKKKKKKKKK"```|L $1||$2#P
+ `K@$1LL $3`"**"` $1'. :||$2#P
+ Yp$1LL $1' |L$2$M`
+ `Tp$1pLL, ,|||$2p'L
+ "Kpp$1LL++,., ,,|||$$$$2#K* $1'.
+ $2`"MKWpppppppp#KM"` $1`h, \ No newline at end of file
diff --git a/src/logo/ascii/b/bonsai.txt b/src/logo/ascii/b/bonsai.txt
new file mode 100644
index 0000000..994b200
--- /dev/null
+++ b/src/logo/ascii/b/bonsai.txt
@@ -0,0 +1,16 @@
+$2 ,####,
+ $2#######, $2,#####,
+ $2#####',# $2'######
+ $2''###'$3';,,,'$2###'
+ $3 ,; ''''
+ $3 ;;; $2,#####,
+ $3 ;;;' ,,;$2;;###
+ $3 ';;;;''$2'####'
+ $3 ;;;
+ $3 ,.;;';'',,,
+ $3 ' '
+$1 #
+ # O
+ ##, ,##,',##, ,## ,#, ,
+ # # # # #''# #,, # # #
+ '#' '##' # # ,,# '##;, # \ No newline at end of file
diff --git a/src/logo/ascii/b/bredos.txt b/src/logo/ascii/b/bredos.txt
new file mode 100644
index 0000000..d8542fc
--- /dev/null
+++ b/src/logo/ascii/b/bredos.txt
@@ -0,0 +1,9 @@
+ ████████████████
+ ██████░░░░░░████░░░░██ ████
+ ████░░░░████░░░░░░██░░░░░░██░░░░██
+ ██░░░░░░░░░░██░░░░░░██░░░░░░░░██░░░░██
+ ██░░░░░░░░░░██░░░░░░░░░░░░░░░░██░░░░░░██
+██▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓██
+██▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓██
+██▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓▓▓▓██
+ ██████████████████████████ \ No newline at end of file
diff --git a/src/logo/ascii/b/bsd.txt b/src/logo/ascii/b/bsd.txt
new file mode 100644
index 0000000..f6c9ea9
--- /dev/null
+++ b/src/logo/ascii/b/bsd.txt
@@ -0,0 +1,19 @@
+$1 , ,
+ /( )`
+ \ \___ / |
+ /- _ `-/ '
+ ($2/\/ \ $1\ /\
+ $2/ / | ` $1\
+ $3O O $2) $1/ |
+ $2`-^--'$1`< '
+ (_.) _ ) /
+ `.___/` /
+ `-----' /
+$4<----. __ / __ \
+$4<----|====$1O)))$4==$1) \) /$4====|
+<----' $1`--' `.__,' \
+ | |
+ \ / /\
+ $5______$1( (_ / \______/
+ $5,' ,-----' |
+ `--{__________) \ No newline at end of file
diff --git a/src/logo/ascii/b/bunsenlabs.txt b/src/logo/ascii/b/bunsenlabs.txt
new file mode 100644
index 0000000..8d31988
--- /dev/null
+++ b/src/logo/ascii/b/bunsenlabs.txt
@@ -0,0 +1,20 @@
+ `++
+ -yMMs
+ `yMMMMN`
+ -NMMMMMMm.
+ :MMMMMMMMMN-
+ .NMMMMMMMMMMM/
+ yMMMMMMMMMMMMM/
+`MMMMMMNMMMMMMMN.
+-MMMMN+ /mMMMMMMy
+-MMMm` `dMMMMMM
+`MMN. .NMMMMM.
+ hMy yMMMMM`
+ -Mo +MMMMN
+ /o +MMMMs
+ +MMMN`
+ hMMM:
+ `NMM/
+ +MN:
+ mh.
+ -/ \ No newline at end of file
diff --git a/src/logo/ascii/c.inc b/src/logo/ascii/c.inc
new file mode 100644
index 0000000..2cf1a4a
--- /dev/null
+++ b/src/logo/ascii/c.inc
@@ -0,0 +1,515 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo C[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_CACHYOS
+ // CachyOS
+ {
+ .names = { "CachyOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CACHYOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CACHYOS_SMALL
+ // CachyOSSmall
+ {
+ .names = { "CachyOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_CACHYOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CALCULATE
+ // Calculate
+ {
+ .names = { "Calculate" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CALCULATE,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CALINIXOS
+ // CalinixOS
+ {
+ .names = { "Calinix", "calinixos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CALINIXOS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CALINIXOS_SMALL
+ // CalinixOSSmall
+ {
+ .names = { "Calinix_small", "calinixos_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_CALINIXOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CARBS
+ // Carbs
+ {
+ .names = { "Carbs" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CARBS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CBL_MARINER
+ // CBL-Mariner
+ {
+ .names = { "CBL-Mariner" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CBL_MARINER,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CELOS
+ // CelOS
+ {
+ .names = { "Cel", "celos", "cel-linux", "celos-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CELOS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CENTER
+ // Center
+ {
+ .names = { "Center" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CENTER,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CENTOS
+ // CentOS
+ {
+ .names = { "CentOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CENTOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CENTOS_SMALL
+ // CentOSSmall
+ {
+ .names = { "CentOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_CENTOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CEREUS
+ // Cereus
+ {
+ .names = { "Cereus", "Cereus Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CEREUS,
+ .colors = {
+ FF_COLOR_FG_256 "173",
+ FF_COLOR_FG_256 "108",
+ FF_COLOR_FG_256 "71",
+ FF_COLOR_FG_256 "151",
+ FF_COLOR_FG_256 "72",
+ },
+ .colorKeys = FF_COLOR_FG_256 "108",
+ .colorTitle = FF_COLOR_MODE_BOLD FF_COLOR_FG_WHITE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CHAKRA
+ // Chakra
+ {
+ .names = { "Chakra" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CHAKRA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CHALETOS
+ // ChaletOS
+ {
+ .names = { "ChaletOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CHALETOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CHAPEAU
+ // Chapeau
+ {
+ .names = { "Chapeau" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CHAPEAU,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CHIMERA_LINUX
+ // Chimera
+ {
+ .names = { "Chimera" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CHIMERA_LINUX,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CHONKYSEALOS
+ // ChonkySealOS
+ {
+ .names = { "ChonkySealOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CHONKYSEALOS,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CHROM
+ // Chrom
+ {
+ .names = { "Chrom", "ChromeOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CHROM,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CLEANJARO
+ // Cleanjaro
+ {
+ .names = { "Cleanjaro" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CLEANJARO,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CLEANJARO_SMALL
+ // CleanjaroSmall
+ {
+ .names = { "Cleanjaro_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_CLEANJARO_SMALL,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CLEAR_LINUX
+ // ClearLinux
+ {
+ .names = { "Clear Linux", "clearlinux", "Clear Linux OS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CLEAR_LINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CLEAROS
+ // ClearOS
+ {
+ .names = { "ClearOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CLEAROS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CLOVER
+ // Clover
+ {
+ .names = { "Clover" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CLOVER,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_COBALT
+ // Cobalt
+ {
+ .names = { "Cobalt" },
+ .lines = FASTFETCH_DATATEXT_LOGO_COBALT,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_LIGHT_BLUE,
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CODEX
+ // Codex Linux (reMarkable OS)
+ {
+ .names = { "Codex Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CODEX,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CONDRES
+ // Condres
+ {
+ .names = { "Condres" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CONDRES,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA_COREOS
+ // ContainerLinux
+ {
+ .names = { "ContainerLinux", "Container Linux", "Container Linux by CoreOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA_COREOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TORIZONCORE
+ // Common Torizon
+ {
+ .names = { "common-torizon" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TORIZONCORE,
+ .colors = {
+ FF_COLOR_FG_LIGHT_WHITE,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_COSMIC
+ // Cosmic DE
+ {
+ .names = { "Cosmic" },
+ .lines = FASTFETCH_DATATEXT_LOGO_COSMIC,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_YELLOW,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_RED,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CRUX
+ // CRUX
+ {
+ .names = { "CRUX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CRUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CRUX_SMALL
+ // CRUXSmall
+ {
+ .names = { "CRUX_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_CRUX_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CRYSTAL
+ // CrystalLinux
+ {
+ .names = { "Crystal", "Crystal", "crystal-linux", "Crystal-Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CRYSTAL,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CUCUMBER
+ // Cucumber
+ {
+ .names = { "Cucumber", "CucumberOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CUCUMBER,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CUERDOS
+ // CuerdOS
+ {
+ .names = { "CuerdOS", "CuerdOS GNU/Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CUERDOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CUTEFISHOS
+ // CutefishOS
+ {
+ .names = { "CutefishOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CUTEFISHOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CUTEOS
+ // CuteOS
+ {
+ .names = { "CuteOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CUTEOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_256 "57",
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CYBEROS
+ // CyberOS
+ {
+ .names = { "CyberOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CYBEROS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_256 "57",
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_CYCLEDREAM
+ // cycledream
+ {
+ .names = { "cycledream" },
+ .lines = FASTFETCH_DATATEXT_LOGO_CYCLEDREAM,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/c/cachyos.txt b/src/logo/ascii/c/cachyos.txt
new file mode 100644
index 0000000..10c1e42
--- /dev/null
+++ b/src/logo/ascii/c/cachyos.txt
@@ -0,0 +1,22 @@
+ $3.$1-------------------------:
+ .$2+=$1========================.
+ :$2++$1===$2++===$1===============- :$2++$1-
+ :$2*++$1====$2+++++==$1===========- .==:
+ -$2*+++$1=====$2+***++=$1=========:
+ =$2*++++=$1=======------------:
+ =$2*+++++=$1====- $3...$1
+ .$2+*+++++$1=-===: .$2=+++=$1:
+ :$2++++$1=====-==: -***$2**$1+
+ :$2++=$1=======-=. .=+**+$3.$1
+.$2+$1==========-. $3.$1
+ :$2+++++++$1====- $3.$1--==-$3.$1
+ :$2++$1==========. $3:$2+++++++$1$3:
+ $1.-===========. =*****+*+
+ $1.-===========: .+*****+:
+ $1-=======$2++++$1:::::::::::::::::::::::::-: $3.$1---:
+ :======$2++++$1====$2+++******************=.
+ $1:=====$2+++$1==========$2++++++++++++++*-
+ $1.====$2++$1==============$2++++++++++*-
+ $1.===$2+$1==================$2+++++++:
+ $1.-=======================$2+++:
+ $3.......................... \ No newline at end of file
diff --git a/src/logo/ascii/c/cachyos_small.txt b/src/logo/ascii/c/cachyos_small.txt
new file mode 100644
index 0000000..6497db4
--- /dev/null
+++ b/src/logo/ascii/c/cachyos_small.txt
@@ -0,0 +1,8 @@
+ /''''''''''''/
+ /''''''''''''/
+ /''''''/
+/''''''/
+\......\
+ \......\
+ \.............../
+ \............./ \ No newline at end of file
diff --git a/src/logo/ascii/c/calculate.txt b/src/logo/ascii/c/calculate.txt
new file mode 100644
index 0000000..7ac7bc8
--- /dev/null
+++ b/src/logo/ascii/c/calculate.txt
@@ -0,0 +1,20 @@
+ ......
+ ,,+++++++,.
+ .,,,....,,,$2+**+,,.$1
+ ............,$2++++,,,$1
+ ...............
+ ......,,,........
+ .....+*#####+,,,*+.
+ .....,*###############,..,,,,,,..
+ ......,*#################*..,,,,,..,,,..
+ .,,....*####################+***+,,,,...,++,
+ .,,..,..*#####################*,
+ ,+,.+*..*#######################.
+ ,+,,+*+..,########################*
+.,++++++. ..+##**###################+
+..... ..+##***#################*.
+ .,.*#*****##############*.
+ ..,,*********#####****+.
+ $2.,++*****+++$1*****************$2+++++,.$1
+ $2,++++++**+++++$1***********$2+++++++++,$1
+ $2.,,,,++++,.. .,,,,,.....,+++,.,,$1 \ No newline at end of file
diff --git a/src/logo/ascii/c/calinixos.txt b/src/logo/ascii/c/calinixos.txt
new file mode 100644
index 0000000..d8cbade
--- /dev/null
+++ b/src/logo/ascii/c/calinixos.txt
@@ -0,0 +1,25 @@
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⠤⠔⠒⠒⠋⠉⠉⠉⠉⠓⠒⠒⠦⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠒⠉⣁⣠⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣄⣈⠙⠲⢤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠴⠋⢁⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡈⠑⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⣠⠞⢁⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⢀⠞⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠋⠉⠁⠀⠀⠀⠀⠈⠉⠙⠛⠿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠈⢢⡀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⡰⠃⣠⣾⣿⣿⣿⣿⣿⣿⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⢿⡿⠁⠀⠀⠀⠀⠀⠀⠙⣄⠀⠀⠀⠀
+⠀⠀⠀⡼⠁⣴⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀
+⠀⠀⡼⠀⣼⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠀⠀
+⠀⣰⠁⣸⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀
+⢀⡇⢠⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀
+⢸⠀⣸⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄
+⣼⠀⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
+⡇⠀⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢛⣿⣿⣿⣿⣿⣿⣿⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
+⢻⠀⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
+⢸⡀⢹⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃
+⠀⣇⠘⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠀
+⠀⠸⡄⢹⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃⠀
+⠀⠀⢳⡀⢻⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠀⠀
+⠀⠀⠀⠳⡀⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣷⣄⡀⠀⠀⠀⠀⢠⠏⠀⠀⠀
+⠀⠀⠀⠀⠙⣄⠙⢿⣿⣿⣿⣿⣿⣿⣷⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣦⡀⠀⡰⠃⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠈⠢⡈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣄⣀⡀⠀⠀⠀⠀⢀⣀⣠⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣠⠞⠁⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠈⠢⡈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⣡⠞⠁⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢤⡈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⣁⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠢⢄⣉⠙⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠋⣉⡤⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠓⠒⠢⠤⠤⠤⠤⠤⠤⠤⠤⠖⠒⠋⠉⠀ \ No newline at end of file
diff --git a/src/logo/ascii/c/calinixos_small.txt b/src/logo/ascii/c/calinixos_small.txt
new file mode 100644
index 0000000..fa6e7c7
--- /dev/null
+++ b/src/logo/ascii/c/calinixos_small.txt
@@ -0,0 +1,15 @@
+⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠐⣂⣈⣩⣭⣭⣍⣀⣐⠀⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⡀⠔⣨⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣅⠢⡀⠀⠀⠀⠀⠀
+⠀⠀⠀⠠⢊⣴⣾⣿⣿⣿⣿⠿⠟⠛⠛⠛⠛⠻⠿⣿⣿⣿⣿⠃⠀⠠⡀⠀⠀⠀
+⠀⠀⡐⢡⣾⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠁⠀⠀⠀⠈⢆⠀⠀
+⠀⡘⢰⣿⣿⣿⡟⠁⠀⠀⢀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀
+⢠⢠⣿⣿⣿⡟⠀⠀⠀⠀⠀⠙⠿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡀
+⡄⢸⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁
+⡇⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣹⣿⣿⣿⣷⠄⠀⠀⠀⠀⠀⠀⠀⠀
+⠃⢸⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⡀
+⠘⡘⣿⣿⣿⣧⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠁
+⠀⠡⠸⣿⣿⣿⣧⡀⠀⠀⠀⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⢀⠆⠀
+⠀⠀⠡⡘⢿⣿⣿⣿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣷⣦⡀⢀⠊⠀⠀
+⠀⠀⠀⠈⠊⡻⢿⣿⣿⣿⣿⣶⣤⣤⣤⣤⣤⣤⣶⣿⣿⣿⣿⡿⢟⠕⠁⠀⠀⠀
+⠀⠀⠀⠀⠀⠈⠢⢙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⡩⠐⠁⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠂⠭⠉⠙⣛⣛⠋⠉⠭⠐⠂⠁⠀⠀⠀⠀ \ No newline at end of file
diff --git a/src/logo/ascii/c/carbs.txt b/src/logo/ascii/c/carbs.txt
new file mode 100644
index 0000000..f1f19a2
--- /dev/null
+++ b/src/logo/ascii/c/carbs.txt
@@ -0,0 +1,18 @@
+ ..........
+ ..,;:ccccccc:;'..
+ ..,clllc:;;;;;:cllc,.
+ .,cllc,... ..';;'.
+ .;lol;.. ..
+ .,lol;.
+ .coo:.
+ .'lol,.
+ .,lol,.
+ .,lol,.
+ 'col;.
+ .:ooc'.
+ .'col:.
+ .'cllc'.. .''.
+ ..:lolc,'.......',cll,.
+ ..;cllllccccclllc;'.
+ ...',;;;;;;,,...
+ ..... \ No newline at end of file
diff --git a/src/logo/ascii/c/cbl_mariner.txt b/src/logo/ascii/c/cbl_mariner.txt
new file mode 100644
index 0000000..c4dc9ee
--- /dev/null
+++ b/src/logo/ascii/c/cbl_mariner.txt
@@ -0,0 +1,18 @@
+ .
+ :- .
+ :==. .=:
+ :===: -==:
+ :-===: .====:
+ :-====- -=====:
+ -====== :=======:
+ -======. .=========:
+ -======: -==========.
+ -======- -===========.
+ :======- :===========.
+ :=======. .-==========.
+ :=======: -==========.
+ :=======- :==========.
+ :=======- .-========-
+:--------. :========-
+ ..:::--=========-
+ ..::---================-=- \ No newline at end of file
diff --git a/src/logo/ascii/c/celos.txt b/src/logo/ascii/c/celos.txt
new file mode 100644
index 0000000..b5b7661
--- /dev/null
+++ b/src/logo/ascii/c/celos.txt
@@ -0,0 +1,15 @@
+ `-:/++++/:-`
+ -/syyyyyyyyyyyyy+-
+ :ssssyyyyyyyyyyyyyyyy/
+ .osy$2mmmmmmmmmmmmmmmNNNNNmmhy+
+ $1.sssshhhhhhhddddddddddddddds-
+ $1`osssssssyyyyyyyyyyyyyyyyyyhy`
+ $1:ssssssyyyyyyyyyyyyyyyyyyyyhh/
+$2sMMMMMMMMMMMMMMMMMMMMMMMh$1yyyyyyhho
+ :sssssssyyyyyyyyyyyyyyyyyyyhh/
+ `ssssssssyyyyyyyyyyyyyyyyyyhy.
+ -sssssyddddddddddddddddddddy
+ -ssss$2hmmmmmmmmmmmmmmmmmmmyssss-
+ $1`/ssssyyyyyyyyyyyyyyyy+`
+ $1`:osyyyyyyyyyyyyys/`
+ $1`.:/+ooooo+:-` \ No newline at end of file
diff --git a/src/logo/ascii/c/center.txt b/src/logo/ascii/c/center.txt
new file mode 100644
index 0000000..58d64f7
--- /dev/null
+++ b/src/logo/ascii/c/center.txt
@@ -0,0 +1,13 @@
+ .
+ o,
+ . d, .
+ ';' ..d;.. .cl'
+ .:; 'oldO,.oo.
+ ..,:,xKXxoo;'.
+,;;;;;ldxkONMMMXxkxc;;;;;.
+.....':oddXWMNOxlcl:......
+ .:dlxk0c;:. .
+ :d:.,xcld,.,:.
+ ;l, .l; ';'
+ .o;
+ l, \ No newline at end of file
diff --git a/src/logo/ascii/c/centos.txt b/src/logo/ascii/c/centos.txt
new file mode 100644
index 0000000..be42a9d
--- /dev/null
+++ b/src/logo/ascii/c/centos.txt
@@ -0,0 +1,19 @@
+ ..
+ .PLTJ.
+ <><><><>
+ $2KKSSV' 4KKK $1LJ$4 KKKL.'VSSKK
+ $2KKV' 4KKKKK $1LJ$4 KKKKAL 'VKK
+ $2V' ' 'VKKKK $1LJ$4 KKKKV' ' 'V
+ $2.4MA.' 'VKK $1LJ$4 KKV' '.4Mb.
+ $4. $2KKKKKA.' 'V $1LJ$4 V' '.4KKKKK $3.
+ $4.4D $2KKKKKKKA.'' $1LJ$4 ''.4KKKKKKK $3FA.
+$4<QDD ++++++++++++ $3++++++++++++ GFD>
+ '$4VD $3KKKKKKKK'.. $2LJ $1..'KKKKKKKK $3FV
+ $4' $3VKKKKK'. .4 $2LJ $1K. .'KKKKKV $3'
+ $3'VK'. .4KK $2LJ $1KKA. .'KV'
+ $3A. . .4KKKK $2LJ $1KKKKA. . .4
+ $3KKA. 'KKKKK $2LJ $1KKKKK' .4KK
+ $3KKSSA. VKKK $2LJ $1KKKV .4SSKK
+ $2<><><><>
+ $2'MKKM'
+ $2'' \ No newline at end of file
diff --git a/src/logo/ascii/c/centos_small.txt b/src/logo/ascii/c/centos_small.txt
new file mode 100644
index 0000000..52d8027
--- /dev/null
+++ b/src/logo/ascii/c/centos_small.txt
@@ -0,0 +1,7 @@
+ $2____$1^$4____
+ $2|\ $1|$4 /|
+ $2| \ $1|$4 / |
+$4<---- $3---->
+ $3| / $2|$1 \ |
+ $3|/__$2|$1__\|
+ $2v \ No newline at end of file
diff --git a/src/logo/ascii/c/cereus.txt b/src/logo/ascii/c/cereus.txt
new file mode 100644
index 0000000..bae0738
--- /dev/null
+++ b/src/logo/ascii/c/cereus.txt
@@ -0,0 +1,27 @@
+ ..
+ '::,.....
+ .,;:llll;. $4 ...
+ $2...... $1''''.$4 ':::;.
+ $2 ..,::lll::;,..$4 ::::;.
+ $2 ':llllllllllll:' $4 ;:::;
+ $2 .;llllllllllllllll' $4 ;::;.
+$3 .... $2 .;lllllllllllllllll:. $4 ;::;.
+$3 .;::::, $2 ,lllllllllllllllllll. $4 .
+$3 .::::::.$2 .lllllllllllllllllll:.
+$3 .::::::. $2 ,lllllllllllllllllll:.$3 ......
+$3 .;:::::'$2 .;lllllllllllllllllll,$3 .,::::::,.
+$3 .;::::;.$2.:lllllllllllllllllll.$3 .,::::::::;.
+$3 .,;::;$2;lllllllllllllllllll;$3 .:::::::::;.
+$3 ...$2,lllllllllllllllllll.$3 ':::::::::,.
+$2 .:lllllllllllllllll, $3 .;::::::::;.
+$2 .:llllllllllllllll:.$3 .;::::::::,.
+$2 ,llllllllllllllll'$3 .';:::::::;.
+$5 ... $2 .llllllllllllllll;$3,,,,;:::::::;,.
+$5.:l:. $2 ,llllllllllllll;$3,,:::::::;,'..
+$5.;::, $2 .;lllllllllllll,$3 '''''''''''
+$5 .:::. $2 ':lllllllllll:.
+$5 .;::' $2 .,:llllllllll,
+$5 .,::;. $2 .';lllllllll'
+$5 .,::;'.. $2 .';lllllll,.
+$5 ..,;::;,. $2 ...,;lll:.
+$5 ...''. $2 ..',;'. \ No newline at end of file
diff --git a/src/logo/ascii/c/chakra.txt b/src/logo/ascii/c/chakra.txt
new file mode 100644
index 0000000..9a6a82a
--- /dev/null
+++ b/src/logo/ascii/c/chakra.txt
@@ -0,0 +1,18 @@
+ _ _ _ "kkkkkkkk.
+ ,kkkkkkkk., 'kkkkkkkkk,
+ ,kkkkkkkkkkkk., 'kkkkkkkkk.
+ ,kkkkkkkkkkkkkkkk,'kkkkkkkk,
+ ,kkkkkkkkkkkkkkkkkkk'kkkkkkk.
+ "''"''',;::,,"''kkk''kkkkk; __
+ ,kkkkkkkkkk, "k''kkkkk' ,kkkk
+ ,kkkkkkk' ., ' .: 'kkkk',kkkkkk
+ ,kkkkkkkk'.k' , ,kkkk;kkkkkkkkk
+ ,kkkkkkkk';kk 'k "'k',kkkkkkkkkkkk
+.kkkkkkkkk.kkkk.'kkkkkkkkkkkkkkkkkk'
+;kkkkkkkk''kkkkkk;'kkkkkkkkkkkkk''
+'kkkkkkk; 'kkkkkkkk.,""''"''""
+ ''kkkk; 'kkkkkkkkkk.,
+ ';' 'kkkkkkkkkkkk.,
+ ';kkkkkkkkkk'
+ ';kkkkkk'
+ "''" \ No newline at end of file
diff --git a/src/logo/ascii/c/chaletos.txt b/src/logo/ascii/c/chaletos.txt
new file mode 100644
index 0000000..e51c652
--- /dev/null
+++ b/src/logo/ascii/c/chaletos.txt
@@ -0,0 +1,20 @@
+ `.//+osso+/:``
+ `/sdNNmhyssssydmNNdo:`
+ :hNmy+-` .-+hNNs-
+ /mMh/` `+:` `+dMd:
+ .hMd- -sNNMNo. /yyy /mMs`
+ -NM+ `/dMd/--omNh::dMM `yMd`
+ .NN+ .sNNs:/dMNy:/hNmo/s yMd`
+ hMs `/hNd+-smMMMMMMd+:omNy- `dMo
+:NM. .omMy:/hNMMMMMMMMMMNy:/hMd+` :Md`
+/Md` `sm+.omMMMMMMMMMMMMMMMMd/-sm+ .MN:
+/Md` MMMMMMMMMMMMMMMMMMMN .MN:
+:NN. MMMMMMm....--NMMMMMN -Mm.
+`dMo MMMMMMd mMMMMMN hMs
+ -MN: MMMMMMd mMMMMMN oMm`
+ :NM: MMMMMMd mMMMMMN +Mm-
+ -mMy. mmmmmmh dmmmmmh -hMh.
+ oNNs- :yMm/
+ .+mMdo:` `:smMd/`
+ -ohNNmhsoo++osshmNNh+.
+ `./+syyhhyys+:`` \ No newline at end of file
diff --git a/src/logo/ascii/c/chapeau.txt b/src/logo/ascii/c/chapeau.txt
new file mode 100644
index 0000000..f96d531
--- /dev/null
+++ b/src/logo/ascii/c/chapeau.txt
@@ -0,0 +1,18 @@
+ .-/-.
+ ////////.
+ ////////$2y+$1//.
+ ////////$2mMN$1/////.
+ ////////$2mMN+$1////////.
+ ////////////////////////.
+ /////////+$2shhddhyo$1+////////.
+ ////////$2ymMNmdhhdmNNdo$1///////.
+///////+$2mMms$1////////$2hNMh$1///////.
+///////$2NMm+$1//////////$2sMMh$1///////
+//////$2oMMNmmmmmmmmmmmmMMm$1///////
+//////$2+MMmssssssssssssss+$1///////
+`//////$2yMMy$1////////////////////
+ `//////$2smMNhso++oydNm$1////////
+ `///////$2ohmNMMMNNdy+$1///////
+ `//////////$2++$1//////////
+ `////////////////.
+ -////////- \ No newline at end of file
diff --git a/src/logo/ascii/c/chimera_linux.txt b/src/logo/ascii/c/chimera_linux.txt
new file mode 100644
index 0000000..d0bc304
--- /dev/null
+++ b/src/logo/ascii/c/chimera_linux.txt
@@ -0,0 +1,18 @@
+$3ddddddddddddddc $1,cc:
+$3ddddddddddddddc $1,cc:
+$3ddddddddddddddd $1,cc:
+$3ddddddddddddl:' $1,cc:
+$3dddddddddl' $1..;cc:
+$3dddddddo. $1,:cccccc:
+$3ddddddl $1,ccc:'''''
+$3dddddo. $1;ccc. ............
+ .ccc. cccccccccccc
+$2...... $1.ccc. .ccc'''''''''
+$2OOOOOk. $1;ccc. .ccc; ......
+$2OOOOOOd $1'ccc:,....,:ccc' $4coooooo
+$2OOOOOOOx. $1':cccccccc:' $4.looooooo
+$2OOOOOOOOOd, $1`'''` $4.coooooooo
+$2OOOOOOOOOOOOdc,. $4..,coooooooooooo
+$2OOOOOOOOOOOOOOOO' $4.oooooooooooooooo
+$2OOOOOOOOOOOOOOOO' $4.oooooooooooooooo
+$2OOOOOOOOOOOOOOOO' $4.oooooooooooooooo \ No newline at end of file
diff --git a/src/logo/ascii/c/chonkysealos.txt b/src/logo/ascii/c/chonkysealos.txt
new file mode 100644
index 0000000..a0ededb
--- /dev/null
+++ b/src/logo/ascii/c/chonkysealos.txt
@@ -0,0 +1,21 @@
+ .-/-.
+ .:-=++****++=-:.
+ .:=+*##%%%%%%%%%%##*+=:.
+ :=*#%%%%%%%%%%%%%%%%%%%%#*=:
+ :=*#%%%%%%%%%%%%%%%%%%%%%%%%#*=.
+ -+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+-
+ =+#%%%%@@@@@@@%%%%%%%@@@@@@@%%%%%#+=
+ =+#@%%%%*+=-==*%%%%%%%#+====*%%%%%@#+=
+:+*%%%%@* +@%%%@# -@%%%%%*+:
+=+#%%%%%%#+====*###%%##*=--=+*%%%%%%%#+=
++*%%%%%%%@@##%%%%*=::=#%%%##%@%%%%%%%%*+
++*%%%%%%%@**@%%%%%@==@%%%%%@+#%%%%%%%%*+
+=+#%%%%%%@#*@%%%%%%**%%%%%@%+%%%%%%%%#+=
+:+*%%%%%%%@#*####**###*####*%@%%%%%%%*+:
+ =+#@%%%%%%@%%%%%%%@@%%%%%%%%%%%%%%@#+=
+ =+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+=
+ -+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%*+-
+ .=*#%%%%%%%%%%%%%%%%%%%%%%%%#*=.
+ :=*##%%%%%%%%%%%%%%%%%%##*=:
+ .:=+*##%%%%%%%%%%##*+=:.
+ .:-=++****++=-:. \ No newline at end of file
diff --git a/src/logo/ascii/c/chrom.txt b/src/logo/ascii/c/chrom.txt
new file mode 100644
index 0000000..d72922a
--- /dev/null
+++ b/src/logo/ascii/c/chrom.txt
@@ -0,0 +1,18 @@
+$2 .,:loool:,.
+ .,coooooooooooooc,.
+ .,lllllllllllllllllllll,.
+ ;ccccccccccccccccccccccccc;
+$1 '$2ccccccccccccccccccccccccccccc.
+$1 ,oo$2c::::::::okO$5000$30OOkkkkkkkkkkk:
+$1.ooool$2;;;;:x$5K0$4kxxxxxk$50X$3K0000000000.
+$1:oooool$2;,;O$5K$4ddddddddddd$5KX$3000000000d
+$1lllllool$2;l$5N$4dllllllllllld$5N$3K000000000
+$1lllllllll$2o$5M$4dccccccccccco$5W$3K000000000
+$1;cllllllllX$5X$4c:::::::::c$50X$3000000000d
+$1.ccccllllllO$5Nk$4c;,,,;cx$5KK$30000000000.
+$1 .cccccclllllxOO$5OOO$1Okx$3O0000000000;
+$1 .:ccccccccllllllllo$3O0000000OOO,
+$1 ,:ccccccccclllcd$30000OOOOOOl.
+$1 '::ccccccccc$3dOOOOOOOkx:.
+$1 ..,::cccc$3xOOOkkko;.
+$1 ..,:$3dOkxl:. \ No newline at end of file
diff --git a/src/logo/ascii/c/cleanjaro.txt b/src/logo/ascii/c/cleanjaro.txt
new file mode 100644
index 0000000..ce33aeb
--- /dev/null
+++ b/src/logo/ascii/c/cleanjaro.txt
@@ -0,0 +1,12 @@
+███████▌ ████████████████
+███████▌ ████████████████
+███████▌ ████████████████
+███████▌
+███████▌
+███████▌
+███████▌
+███████▌
+█████████████████████████
+█████████████████████████
+█████████████████████████
+▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ \ No newline at end of file
diff --git a/src/logo/ascii/c/cleanjaro_small.txt b/src/logo/ascii/c/cleanjaro_small.txt
new file mode 100644
index 0000000..b069f25
--- /dev/null
+++ b/src/logo/ascii/c/cleanjaro_small.txt
@@ -0,0 +1,7 @@
+█████ ██████████
+█████ ██████████
+█████
+█████
+█████
+████████████████
+████████████████ \ No newline at end of file
diff --git a/src/logo/ascii/c/clear_linux.txt b/src/logo/ascii/c/clear_linux.txt
new file mode 100644
index 0000000..e3201f4
--- /dev/null
+++ b/src/logo/ascii/c/clear_linux.txt
@@ -0,0 +1,20 @@
+ BBB
+ BBBBBBBBB
+ BBBBBBBBBBBBBBB
+ BBBBBBBBBBBBBBBBBBBB
+ BBBBBBBBBBB BBB
+ BBBBBBBB$2YYYYY
+$1 BBBBBBBB$2YYYYYY
+$1 BBBBBBBB$2YYYYYYY
+$1 BBBBBBBBB$2YYYYY$3W
+$4 GG$1BBBBBBBY$2YYYY$3WWW
+$4 GGG$1BBBBBBB$2YY$3WWWWWWWW
+$4 GGGGGG$1BBBBBB$3WWWWWWWW
+$4 GGGGGGGG$1BBBB$3WWWWWWWW
+$4GGGGGGGGGGG$1BBB$3WWWWWWW
+$4GGGGGGGGGGGGG$1B$3WWWWWW
+$4GGGGGGGG$3WWWWWWWWWWW
+$4GG$3WWWWWWWWWWWWWWWW
+ WWWWWWWWWWWWWWWW
+ WWWWWWWWWW
+ WWW \ No newline at end of file
diff --git a/src/logo/ascii/c/clearos.txt b/src/logo/ascii/c/clearos.txt
new file mode 100644
index 0000000..3b6fe97
--- /dev/null
+++ b/src/logo/ascii/c/clearos.txt
@@ -0,0 +1,20 @@
+ `.--::::::--.`
+ .-:////////////////:-.
+ `-////////////////////////-`
+ -////////////////////////////-
+ `//////////////-..-//////////////`
+ ./////////////: ://///////////.
+ `//////:..-////: :////-..-//////`
+ ://////` -///:.``.:///-` ://///:
+`///////:. -////////-` `:///////`
+.//:--////:. -////-` `:////--://.
+./: .////:. --` `:////- :/.
+`//-` .////:. `:////- `-//`
+ :///-` .////:. `:////- `-///:
+ `/////-` -///: :///- `-/////`
+ `//////- `///: :///` .//////`
+ `:////: `///: :///` -////:`
+ .://: `///: :///` -//:.
+ .:: `///: :///` -:.
+ `///: :///`
+ `... ...` \ No newline at end of file
diff --git a/src/logo/ascii/c/clover.txt b/src/logo/ascii/c/clover.txt
new file mode 100644
index 0000000..bc21d89
--- /dev/null
+++ b/src/logo/ascii/c/clover.txt
@@ -0,0 +1,20 @@
+ `omo``omo`
+ `oNMMMNNMMMNo`
+ `oNMMMMMMMMMMMMNo`
+ oNMMMMMMMMMMMMMMMMNo
+ `sNMMMMMMMMMMMMMMNs`
+ `omo` `sNMMMMMMMMMMNs` `omo`
+ `oNMMMNo` `sNMMMMMMNs` `oNMMMNo`
+ `oNMMMMMMMNo` `oNMMNs` `oNMMMMMMMNo`
+oNMMMMMMMMMMMNo` `sy` `oNMMMMMMMMMMMNo
+`sNMMMMMMMMMMMMNo.$2oNNs$1.oNMMMMMMMMMMMMNs`
+`oNMMMMMMMMMMMMNs.$2oNNs$1.oNMMMMMMMMMMMMNo`
+oNMMMMMMMMMMMNs` `sy` `oNMMMMMMMMMMMNo
+ `oNMMMMMMMNs` `oNMMNo` `oNMMMMMMMNs`
+ `oNMMMNs` `sNMMMMMMNs` `oNMMMNs`
+ `oNs` `sNMMMMMMMMMMNs` `oNs`
+ `sNMMMMMMMMMMMMMMNs`
+ +NMMMMMMMMMMMMMMMMNo
+ `oNMMMMMMMMMMMMNo`
+ `oNMMMNNMMMNs`
+ `omo``oNs` \ No newline at end of file
diff --git a/src/logo/ascii/c/cobalt.txt b/src/logo/ascii/c/cobalt.txt
new file mode 100644
index 0000000..4ed0219
--- /dev/null
+++ b/src/logo/ascii/c/cobalt.txt
@@ -0,0 +1,16 @@
+$1 ///
+$1 ,//////////////
+$1 ///////////////////////////////
+$1 ///////////////$5***********$1//////
+ ////$5***********************$1/////
+ /////$5***********************$1////
+ //////$5,,,,,,,,,,,,,,,,,,,,,,$1///
+ //////$5,,,,,,,,,,,,,,,,,,,,,,,,,$1/////
+ /////$5,,,,,,,,,,,,,,,,,,,,,,,,,,,,$1/////
+$4 *****$3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,$4*****
+ ******$3,,,,,,,,,,,,,,,,,,,,,,,,,,,,$4*****
+ *******$3,,,,,,,,,,,,,,,,,,,,,,,,,$4******
+ *******$3......................$4*******
+ ******$3....$4***********************
+ ****************************
+ ***** \ No newline at end of file
diff --git a/src/logo/ascii/c/codex.txt b/src/logo/ascii/c/codex.txt
new file mode 100644
index 0000000..6ae684f
--- /dev/null
+++ b/src/logo/ascii/c/codex.txt
@@ -0,0 +1,12 @@
+#: :+#@@@@%#
+@@#: .*@@@@@@@@@
+@@@@#- .@@@@@@@@@@@
+@@@@@@%- %@@@@@@@@@@@
+@@@@@@@@%= :@@@@%%%%@@@@
+@@@@@@@@@@%==*-: .:=#
+:*@@@@@@@@@@=
+ :*@@@@@@@@=
+ .*@@@@@@=
+ .+@@@@=
+ .+%@=
+ +=
diff --git a/src/logo/ascii/c/condres.txt b/src/logo/ascii/c/condres.txt
new file mode 100644
index 0000000..1024184
--- /dev/null
+++ b/src/logo/ascii/c/condres.txt
@@ -0,0 +1,17 @@
+$1syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+$3.+.
+$1`oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+$3:++.
+$2/o$1+oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/$3oo++.
+$2/y+$1syyyyyyyyyyyyyyyyyyyyyyyyyyyyy$3+ooo++.
+$2/hy+$1oyyyhhhhhhhhhhhhhhyyyyyyyyy$3+oo+++++.
+$2/hhh+$1shhhhhdddddhhhhhhhyyyyyyy$3+oo++++++.
+$2/hhdd+$1oddddddddddddhhhhhyyyys$3+oo+++++++.
+$2/hhddd+$1odmmmdddddddhhhhyyyy$3+ooo++++++++.
+$2/hhdddmo$1odmmmdddddhhhhhyyy$3+oooo++++++++.
+$2/hdddmmms$1/dmdddddhhhhyyys$3+oooo+++++++++.
+$2/hddddmmmy$1/hdddhhhhyyyyo$3+oooo++++++++++:
+$2/hhdddmmmmy$1:yhhhhyyyyy+$3+oooo+++++++++++:
+$2/hhddddddddy$1-syyyyyys+$3ooooo++++++++++++:
+$2/hhhddddddddy$1-+yyyy+$3/ooooo+++++++++++++:
+$2/hhhhhdddddhhy$1./yo:$3+oooooo+++++++++++++/
+$2/hhhhhhhhhhhhhy$1:-.$3+sooooo+++++++++++///:
+$2:sssssssssssso++$1$3`:/:--------.```````` \ No newline at end of file
diff --git a/src/logo/ascii/c/cosmic.txt b/src/logo/ascii/c/cosmic.txt
new file mode 100644
index 0000000..10fd4e1
--- /dev/null
+++ b/src/logo/ascii/c/cosmic.txt
@@ -0,0 +1,11 @@
+ .xMMMMMMMMMMMMMMMMMMMMMMx.
+JDMMMMMMMMMMMMMMMMMMMMMMMMOL
+IMMMY' 'YMMMI
+MMMM MMMM
+MMMM MMMM
+IMMMb dMMMI
+'YMMMMMMMMb. .dMMMMMMMMK'
+ 'OMMMMMMMP' 'YMMMMMMMP'
+
+ $2.x76767$36767676$476767$5676x.
+ $2'*76767$36767676$476767$5676*'
diff --git a/src/logo/ascii/c/crux.txt b/src/logo/ascii/c/crux.txt
new file mode 100644
index 0000000..7b62147
--- /dev/null
+++ b/src/logo/ascii/c/crux.txt
@@ -0,0 +1,18 @@
+ $1odddd
+ oddxkkkxxdoo
+ ddcoddxxxdoool
+ xdclodod olol
+ xoc xdd olol
+ xdc $2k00$1Okdlol
+ xxd$2kOKKKOkd$1ldd
+ xdco$2xOkdlo$1dldd
+ ddc:cl$2lll$1oooodo
+ odxxdd$3xkO000kx$1ooxdo
+ oxddx$30NMMMMMMWW0o$1dkkxo
+ oooxd$30WMMMMMMMMMW0o$1dxkx
+docldkXW$3MMMMMMMWWN$1Odolco
+xx$2dx$1kxxOKN$3WMMWN$10xdoxo::c
+$2xOkkO$10oo$3odOW$2WW$1XkdodOxc:l
+$2dkkkxkkk$3OKX$2NNNX0Oxx$1xc:cd
+ $2odxxdx$3xllo$2dddooxx$1dc:ldo
+ $2lodd$1dolccc$2ccox$1xoloo \ No newline at end of file
diff --git a/src/logo/ascii/c/crux_small.txt b/src/logo/ascii/c/crux_small.txt
new file mode 100644
index 0000000..5f597b2
--- /dev/null
+++ b/src/logo/ascii/c/crux_small.txt
@@ -0,0 +1,7 @@
+ ___
+ ($3.· $1|
+ ($2<> $1|
+ / $3__ $1\
+ ( $3/ \ $1/|
+$2_$1/\ $3__)$1/$2_$1)
+$2\/$1-____$2\/ \ No newline at end of file
diff --git a/src/logo/ascii/c/crystal.txt b/src/logo/ascii/c/crystal.txt
new file mode 100644
index 0000000..85cfd25
--- /dev/null
+++ b/src/logo/ascii/c/crystal.txt
@@ -0,0 +1,20 @@
+ mysssym
+ mysssym
+ mysssym
+ mysssym
+ mysssyd
+ mysssyd N
+ mysssyd mysym
+ mysssyd dysssym
+ mysssyd dysssym
+mysssyd dysssym
+mysssyd dysssym
+ mysssyd dysssym
+ mysssyd dysssym
+ mysym dysssym
+ N dysssym
+ dysssym
+ dysssym
+ dysssym
+ dysssym
+ dysssym \ No newline at end of file
diff --git a/src/logo/ascii/c/cucumber.txt b/src/logo/ascii/c/cucumber.txt
new file mode 100644
index 0000000..e899fb8
--- /dev/null
+++ b/src/logo/ascii/c/cucumber.txt
@@ -0,0 +1,20 @@
+ `.-://++++++//:-.`
+ `:/+//$2::--------$1:://+/:`
+ -++/:$2----..........----$1:/++-
+ .++:$2---...........-......---$1:++.
+ /+:$2---....-::/:/--//:::-....---$1:+/
+ `++:$2--.....:---::/--/::---:.....--$1:++`
+ /+:$2--.....--.--::::-/::--.--.....--$1:+/
+-o:$2--.......-:::://--/:::::-.......--$1:o-
+/+:$2--...-:-::---:::..:::---:--:-...--$1:+/
+o/:$2-...-:.:.-/:::......::/:.--.:-...-$1:/o
+o/$2--...::-:/::/:-......-::::::-/-...-$1:/o
+/+:$2--..-/:/:::--:::..:::--::////-..--$1:+/
+-o:$2--...----::/:::/--/:::::-----...--$1:o-
+ /+:$2--....://:::.:/--/:.::://:....--$1:+/
+ `++:$2--...-:::.--.:..:.--.:/:-...--$1:++`
+ /+:$2---....----:-..-:----....---$1:+/
+ .++:$2---..................---$1:++.
+ -/+/:$2----..........----$1:/+/-
+ `:/+//$2::--------:::$1/+/:`
+ `.-://++++++//:-.` \ No newline at end of file
diff --git a/src/logo/ascii/c/cuerdos.txt b/src/logo/ascii/c/cuerdos.txt
new file mode 100644
index 0000000..1161084
--- /dev/null
+++ b/src/logo/ascii/c/cuerdos.txt
@@ -0,0 +1,13 @@
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀
+⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣶⣾⣿⣿⣿⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣶⣿⣿⣿⡇
+⠀⠀⡄⢀⣤⣤⣤⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣤⣤⣤⣤⣤⣄⠀⣿⣿⣿⣿⣿⡇
+⠀⠀⡇⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⠁
+⠀⠀⣧⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃
+⠀⠀⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁
+⠀⠀⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁
+⠀⠀⠇⠘⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⠿⠿⠿⠛⠛⠋⠉
+⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⡇
+⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉
+____________________________________
+| Optimizado hasta el último pixel |
+************************************ \ No newline at end of file
diff --git a/src/logo/ascii/c/cutefishos.txt b/src/logo/ascii/c/cutefishos.txt
new file mode 100644
index 0000000..08b9920
--- /dev/null
+++ b/src/logo/ascii/c/cutefishos.txt
@@ -0,0 +1,9 @@
+ ___ww___
+_ _wwMMM@M^^^^MMMMww_
+M0w_ _wMMM~~ ~~MMm_
+ ~MMy _ww0M~ ~MMy
+ ~MMMM~ o "MM
+$3 jw0M~~MMMw_ _wMM'
+wMM~ ~~MMmw__ __w0M~
+~ ~~MM0MmwwwwwwwwwMMM~
+ ~~~~^^~~~ \ No newline at end of file
diff --git a/src/logo/ascii/c/cuteos.txt b/src/logo/ascii/c/cuteos.txt
new file mode 100644
index 0000000..1829a7b
--- /dev/null
+++ b/src/logo/ascii/c/cuteos.txt
@@ -0,0 +1,14 @@
+ $31ua$2
+ $3MMM1ua$2
+ $1MM$2EE $3 MMMMM1uazE$2
+$1MM $2EEEE $3M1MM1uazzEn $2EEEE MME
+ EEEEE $3MMM uazEno $2EEEE
+ EEEEE$1MMMMMMEno~; $2EE E$2
+ EE $1MMMMMMMM~;;E $2MMMMM M $2
+ E $1MMMMMMMMM $2 E E $2
+ $1MMMMMMMMMMM
+ $1MMMMMMMMM $2EE $1
+ MM1MMMM $2EEE $1
+ MMMMM
+ MMM
+ M \ No newline at end of file
diff --git a/src/logo/ascii/c/cyberos.txt b/src/logo/ascii/c/cyberos.txt
new file mode 100644
index 0000000..3a5fd10
--- /dev/null
+++ b/src/logo/ascii/c/cyberos.txt
@@ -0,0 +1,15 @@
+$3 !M$EEEEEEEEEEEP
+ .MMMMM000000Nr.
+ $3&MMMMMM$2MMMMMMMMMMMMM9
+ $3~MMM$1MMMM$2MMMMMMMMMMMMC
+ $1" $3M$1MMMMMMM$2MMMMMMMMMMs
+ $1iM$2MMM&&$1MMMMMMMM$2MMMMMMMMs
+ $1BMMM$2MMMMM$1MMMMMMM$2MMMMMM$3"
+$19MMMMM$2MMMMMMM$1MMMM$2MMMM$3MMMf-
+ $2sMMMMMMMM$1MM$2M$3MMMMMMMMM3_
+ $2+ffffffff$1P$3MMMMMMMMMMMM0
+ $2CMMMMMMMMMMM
+ }MMMMMMMMM
+ ~MMMMMMM
+ "RMMMM
+ .PMB \ No newline at end of file
diff --git a/src/logo/ascii/c/cycledream.txt b/src/logo/ascii/c/cycledream.txt
new file mode 100644
index 0000000..fd0df05
--- /dev/null
+++ b/src/logo/ascii/c/cycledream.txt
@@ -0,0 +1,21 @@
+ .:ox00000kdc,
+ ;; 'cdO. dxl,.
+ 00 'oO' 0x;
+ 00ko ,Oc
+ x00Okxx lO'
+ .x, .0c
+ ;c .O00' :: '0:
+ . O0000. o0.
+.0c ,,;;:clO00000Olc:;;,, .0l
+x0 ;00000000000000000c 00
+00 0000000000000. 0O
+x0. ... 00000000000. ... '0:
+.0c ,00000000000o .o
+ o0. O000; '0000
+ 0k .0 O O'
+ lO. ''.....
+ .0o d000
+ Oo' ,dO O0
+ ;Oo;. .;oO, 00
+ xkdocc:ccodko
+ ;k0k, \ No newline at end of file
diff --git a/src/logo/ascii/d.inc b/src/logo/ascii/d.inc
new file mode 100644
index 0000000..f9acc5b
--- /dev/null
+++ b/src/logo/ascii/d.inc
@@ -0,0 +1,206 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo D[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_DAHLIA
+ // DahliaOS
+ {
+ .names = { "dahliaOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DAHLIA,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DARKOS
+ // DarkOS
+ {
+ .names = { "DarkOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DARKOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DEBIAN
+ // Debian
+ {
+ .names = { "Debian" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DEBIAN,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DEBIAN_SMALL
+ // DebianSmall
+ {
+ .names = { "Debian_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_DEBIAN_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DEEPIN
+ // Deepin
+ {
+ .names = { "Deepin" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DEEPIN,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DESAOS
+ // DesaOS
+ {
+ .names = { "DesaOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DESAOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DEVUAN
+ // Devuan
+ {
+ .names = { "Devuan" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DEVUAN,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DEVUAN_SMALL
+ // DevuanSmall
+ {
+ .names = { "Devuan_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_DEVUAN_SMALL,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DIETPI
+ // DietPi
+ {
+ .names = { "DietPi" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DIETPI,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DRACOS
+ // DracOS
+ {
+ .names = { "DracOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DRACOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DRAGONFLY
+ // DragonFly
+ {
+ .names = { "DragonFly" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DRAGONFLY,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DRAGONFLY_SMALL
+ // DragonFlySmall
+ {
+ .names = { "DragonFly_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_DRAGONFLY_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DRAGONFLY_OLD
+ // DragonFlyOld
+ {
+ .names = { "DragonFly_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_DRAGONFLY_OLD,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DRAUGER
+ // DraugerOS
+ {
+ .names = { "DraugerOS", "Drauger" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DRAUGER,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_DROIDIAN
+ // Droidian
+ {
+ .names = { "Droidian" },
+ .lines = FASTFETCH_DATATEXT_LOGO_DROIDIAN,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_LIGHT_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_LIGHT_GREEN,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/d/dahlia.txt b/src/logo/ascii/d/dahlia.txt
new file mode 100644
index 0000000..df886d9
--- /dev/null
+++ b/src/logo/ascii/d/dahlia.txt
@@ -0,0 +1,17 @@
+ .#.
+ *%@@@%*
+ .,,,,,(&@@@@@@@&/,,,,,.
+ ,#@@@@@@@@@@@@@@@@@@@@@#.
+ ,#@@@@@@@&#///#&@@@@@@@#.
+ ,/%&@@@@@%/, .,(%@@@@@&#/.
+ *#&@@@@@@#,. .*#@@@@@@&#,
+ .&@@@@@@@@@( .(@@@@@@@@@&&.
+#@@@@@@@@@@( )@@@@@@@@@@@#
+ °@@@@@@@@@@( .(@@@@@@@@@@@°
+ *%@@@@@@@(. ,#@@@@@@@%*
+ ,(&@@@@@@%*. ./%@@@@@@%(,
+ ,#@@@@@@@&(***(&@@@@@@@#.
+ ,#@@@@@@@@@@@@@@@@@@@@@#.
+ ,*****#&@@@@@@@&(*****,
+ ,/%@@@%/.
+ ,#, \ No newline at end of file
diff --git a/src/logo/ascii/d/darkos.txt b/src/logo/ascii/d/darkos.txt
new file mode 100644
index 0000000..aaf1546
--- /dev/null
+++ b/src/logo/ascii/d/darkos.txt
@@ -0,0 +1,20 @@
+$3⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⠋⡆⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$5⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡆⢀⣤⢛⠛⣠⣿⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$6⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣿⠟⣡⠊⣠⣾⣿⠃⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣯⣿⠀⠊⣤⣿⣿⣿⠃⣴⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⡟⣠⣶⣿⣿⣿⢋⣤⠿⠛⠉⢁⣭⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$4 ⠀⠀⠀⠀⠀⠀ ⠀⣠⠖⡭⢉⣿⣯⣿⣯⣿⣿⣿⣟⣧⠛⢉⣤⣶⣾⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$5⠀⠀⠀⠀⠀⠀⠀⠀⣴⣫⠓⢱⣯⣿⢿⠋⠛⢛⠟⠯⠶⢟⣿⣯⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$2⠀⠀⠀⠀⠀⠀⢀⡮⢁⣴⣿⣿⣿⠖⣠⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠛⠛⢿⣶⣄⠀⠀⠀⠀⠀⠀⠀
+$3⠀⠀⠀⠀⢀⣤⣷⣿⣿⠿⢛⣭⠒⠉⠀⠀⠀⣀⣀⣄⣤⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
+$1⠀⢀⣶⠏⠟⠝⠉⢀⣤⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$6⢴⣯⣤⣶⣿⣿⣿⣿⣿⡿⣿⣯⠉⠉⠉⠉⠀⠀⠀⠈⣿⡀⣟⣿⣿⢿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$5⠀⠀⠀⠉⠛⣿⣧⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠃⣿⣿⣯⣿⣦⡀⠀⠉⠻⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$3⠀⠀⠀⠀⠀⠀⠉⢿⣮⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⣯⠉⠉⠛⢿⣿⣷⣄⠀⠈⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀
+$2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠀⠀⠀⠀⠀⢀⢡⠃⣾⣿⣿⣦⠀⠀⠀⠙⢿⣿⣤⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀
+$6⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋⢿⣄⠀⠀⠀⠈⡄⠙⣶⣈⡄⠀⠀⠀⠀⠀⠀
+$1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀
+$4⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+$5⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀ \ No newline at end of file
diff --git a/src/logo/ascii/d/debian.txt b/src/logo/ascii/d/debian.txt
new file mode 100644
index 0000000..514bc5a
--- /dev/null
+++ b/src/logo/ascii/d/debian.txt
@@ -0,0 +1,17 @@
+ $2_,met$$$$$$$$$$gg.
+ ,g$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P.
+ ,g$$$$P"" """Y$$$$.".
+ ,$$$$P' `$$$$$$.
+',$$$$P ,ggs. `$$$$b:
+`d$$$$' ,$P"' $1.$2 $$$$$$
+ $$$$P d$' $1,$2 $$$$P
+ $$$$: $$$. $1-$2 ,d$$$$'
+ $$$$; Y$b._ _,d$P'
+ Y$$$$. $1`.$2`"Y$$$$$$$$P"'
+ `$$$$b $1"-.__
+ $2`Y$$$$b
+ `Y$$$$.
+ `$$$$b.
+ `Y$$$$b.
+ `"Y$$b._
+ `"""" \ No newline at end of file
diff --git a/src/logo/ascii/d/debian_small.txt b/src/logo/ascii/d/debian_small.txt
new file mode 100644
index 0000000..7db04d8
--- /dev/null
+++ b/src/logo/ascii/d/debian_small.txt
@@ -0,0 +1,6 @@
+ _____
+ / __ \
+| / |
+| \___-
+-_
+ --_ \ No newline at end of file
diff --git a/src/logo/ascii/d/deepin.txt b/src/logo/ascii/d/deepin.txt
new file mode 100644
index 0000000..f28458c
--- /dev/null
+++ b/src/logo/ascii/d/deepin.txt
@@ -0,0 +1,18 @@
+ ............
+ .';;;;;. .,;,.
+ .,;;;;;;;. ';;;;;;;.
+ .;::::::::' .,::;;,''''',.
+ ,'.:::::::: .;;'. ';
+ ;' 'cccccc, ,' :: '.. .:
+ ,, :ccccc. ;: .c, '' :. ,;
+.l. cllll' ., .lc :; .l' l.
+.c :lllc ;cl: .l' .ll. :'
+.l 'looc. . ,o: 'oo' c,
+.o. .:ool::coc' .ooo' o.
+ :: ..... .;dddo ;c
+ l:... .';lddddo. ,o
+ lxxxxxdoolllodxxxxxxxxxc :l
+ ,dxxxxxxxxxxxxxxxxxxl. 'o,
+ ,dkkkkkkkkkkkkko;. .;o;
+ .;okkkkkdl;. .,cl:.
+ .,:cccccccc:,. \ No newline at end of file
diff --git a/src/logo/ascii/d/desaos.txt b/src/logo/ascii/d/desaos.txt
new file mode 100644
index 0000000..f8e9fc3
--- /dev/null
+++ b/src/logo/ascii/d/desaos.txt
@@ -0,0 +1,16 @@
+███████████████████████
+███████████████████████
+███████████████████████
+███████████████████████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+██████████████████████████████
+██████████████████████████████
+████████████████████████
+████████████████████████
+████████████████████████ \ No newline at end of file
diff --git a/src/logo/ascii/d/devuan.txt b/src/logo/ascii/d/devuan.txt
new file mode 100644
index 0000000..b9a7dd8
--- /dev/null
+++ b/src/logo/ascii/d/devuan.txt
@@ -0,0 +1,15 @@
+ ..,,;;;::;,..
+ `':ddd;:,.
+ `'dPPd:,.
+ `:b$$$$b`.
+ 'P$$$$$d`
+ .$$$$$$$$$`
+ ;$$$$$$$$$P
+ .:P$$$$$$$$$$$$`
+ .,:b$$$$$$$$$$$$$;'
+ .,:dP$$$$$$$$$$$$$$$$b:'
+ .,:;db$$$$$$$$$$$$$$$$$$$$Pd'`
+ ,db$$$$$$$$$$$$$$$$$$$$$$$$$$$$b:'`
+:$$$$$$$$$$$$$$$$$$$$$$$$b:'`
+ `$$$$$$$$$bd:''`
+ `'''` \ No newline at end of file
diff --git a/src/logo/ascii/d/devuan_small.txt b/src/logo/ascii/d/devuan_small.txt
new file mode 100644
index 0000000..a85add0
--- /dev/null
+++ b/src/logo/ascii/d/devuan_small.txt
@@ -0,0 +1,7 @@
+ ..:::.
+ ..-==-
+ .+#:
+ =@@
+ :+%@#:
+.:=+#@@%*:
+#@@@#=: \ No newline at end of file
diff --git a/src/logo/ascii/d/dietpi.txt b/src/logo/ascii/d/dietpi.txt
new file mode 100644
index 0000000..505c7dc
--- /dev/null
+++ b/src/logo/ascii/d/dietpi.txt
@@ -0,0 +1,19 @@
+ :=+******+- -+******+=:
+ =#-::-::::-=#:-#=-::::-::-#=
+ :%-::--==-::-%%-::-==--::-%:
+ +#-:::::=+++$2@@$1+++=-::::-#=
+ :#+-::::=%$2@@@@@$1=::::-+#:
+ =@%##%$2@@@@@@@@$1%##%@=
+$2 .#@@@@@@@@@@@@@@@@@@@@#.
+ %@@@@@@@@@@@@@@@@@@@@@@%
+ -@@@@@@@@@@@@@@@@@@@@@@@@:
+.#@@@@@@@@@@%%%%%@@@@@@@@@@@#.
+#@@@$1+-=*#%$2%%%%%%%%%$1%%#+--#$2@@@#
+%@@%$1*. .:$2=*%%%%*$1=: .#$2@@@%
+:%@@@$1#+=-:$2:-*%%%%+::$1:-=+%$2@@@%:
+ :@@@@%@%%%%@$1#$2#$1#$2%@%%%%@%@@@@.
+ +@@@@@@@@@$1%$2=*+$1%$2@%@@@@@@@@+
+ #@@@@@@@@@@@@@@@@@@@@@@#
+ -#@@@@@@@@@@@@@@@@@@#-
+ -*%@@@@@@@@@@%*-
+ .+%@@@@%+. \ No newline at end of file
diff --git a/src/logo/ascii/d/dracos.txt b/src/logo/ascii/d/dracos.txt
new file mode 100644
index 0000000..6cfa5c7
--- /dev/null
+++ b/src/logo/ascii/d/dracos.txt
@@ -0,0 +1,13 @@
+ `-:/-
+ -os:
+ -os/`
+ :sy+-`
+ `/yyyy+.
+ `+yyyyo-
+ `/yyyys:
+`:osssoooo++- +yyyyyy/`
+ ./yyyyyyo yo`:syyyy+.
+ -oyyy+ +- :yyyyyo-
+ `:sy: `. `/yyyyys:
+ ./o/.` .oyyso+oo:`
+ :+oo+//::::///:-.` `.` \ No newline at end of file
diff --git a/src/logo/ascii/d/dragonfly.txt b/src/logo/ascii/d/dragonfly.txt
new file mode 100644
index 0000000..95357ad
--- /dev/null
+++ b/src/logo/ascii/d/dragonfly.txt
@@ -0,0 +1,15 @@
+$2,--, $1| $2,--,
+$2| `-, $1,^, $2,-' |
+$2 `, `-, $1(/ \) $2,-' ,'
+$2 `-, `-,$1/ \$2,-' ,-'
+$2 `------$1( )$2------'
+$2 ,----------$1( )$2----------,
+$2 | _,-$1( )$2-,_ |
+$2 `-,__,-' $1\ /$2 `-,__,-'
+$1 | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ `|' \ No newline at end of file
diff --git a/src/logo/ascii/d/dragonfly_old.txt b/src/logo/ascii/d/dragonfly_old.txt
new file mode 100644
index 0000000..81dacd2
--- /dev/null
+++ b/src/logo/ascii/d/dragonfly_old.txt
@@ -0,0 +1,17 @@
+ .-.
+ $3 ()$1I$3()
+ $1 "==.__:-:__.=="
+ "==.__/~|~\__.=="
+ "==._( Y )_.=="
+ $2.-'~~""~=--...,__$1\/|\/$2__,...--=~""~~'-.
+( ..=$1\=$1/$2=.. )
+ `'-. ,.-"`;$1/=\$2;"-.,_ .-'`
+ `~"-=-~` .-~` $1|=|$2 `~-. `~-=-"~`
+ .-~` /$1|=|$2\ `~-.
+ .~` / $1|=|$2 \ `~.
+ .-~` .' $1|=|$2 `. `~-.
+ (` _,.-="` $1 |=|$2 `"=-.,_ `)
+ `~"~"` $1 |=|$2 `"~"~`
+ $1 /=\
+ \=/
+ ^ \ No newline at end of file
diff --git a/src/logo/ascii/d/dragonfly_small.txt b/src/logo/ascii/d/dragonfly_small.txt
new file mode 100644
index 0000000..6612742
--- /dev/null
+++ b/src/logo/ascii/d/dragonfly_small.txt
@@ -0,0 +1,7 @@
+$2 ,$1_$2,
+('-_$1|$2_-')
+ >--$1|$2--<
+(_-'$1|$2'-_)
+ $1|
+ |
+ | \ No newline at end of file
diff --git a/src/logo/ascii/d/drauger.txt b/src/logo/ascii/d/drauger.txt
new file mode 100644
index 0000000..6dc569c
--- /dev/null
+++ b/src/logo/ascii/d/drauger.txt
@@ -0,0 +1,16 @@
+ -``-
+ `:+``+:`
+ `/++``++/.
+ .++/. ./++.
+ :++/` `/++:
+ `/++: :++/`
+ ./+/- -/+/.
+ -++/. ./++-
+ :++:` `:++:
+ `/++- -++/`
+ ./++. ./+/.
+ -++/` `/++-
+ :++:` `:++:
+ `/++- -++/`
+.:-.`..............................`.-:.
+`.-/++++++++++++++++++++++++++++++++/-.` \ No newline at end of file
diff --git a/src/logo/ascii/d/droidian.txt b/src/logo/ascii/d/droidian.txt
new file mode 100644
index 0000000..adf1706
--- /dev/null
+++ b/src/logo/ascii/d/droidian.txt
@@ -0,0 +1,15 @@
+$2 _,met$$$$$$$$$$gg.
+ ,g$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P.
+ ,$$$$P' `$$$$$$.
+',$$$$P ,ggs. `$$$$b:
+`d$$$$' ,$$P"' $1.$2 $$$$$$
+ $$$$P d$$' $1,$2 $$$$P
+ $$$$: $$$$. $1-$2 ,d$$$$'
+ $$$$; Y$$b._ _,d$$P'
+ Y$$$$. $1`.$2`"Y$$$$$$$$P"'
+$2 `$$$$b $1"-.__
+$2 `Y$$$$
+ `Y$$$$.
+ `$$$$b.
+ `Y$$$$b.
+ `"Y$$b._ \ No newline at end of file
diff --git a/src/logo/ascii/e.inc b/src/logo/ascii/e.inc
new file mode 100644
index 0000000..3e5fd91
--- /dev/null
+++ b/src/logo/ascii/e.inc
@@ -0,0 +1,256 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo E[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_ELBRUS
+ // Elbrus
+ {
+ .names = { "elbrus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ELBRUS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ELEMENTARY
+ // Elementary
+ {
+ .names = { "Elementary" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ELEMENTARY,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ELEMENTARY_SMALL
+ // ElementarySmall
+ {
+ .names = { "Elementary_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ELEMENTARY_SMALL,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ELIVE
+ // Elive
+ {
+ .names = { "Elive" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ELIVE,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EMMABUNTUS
+ // Emmabuntüs
+ {
+ .names = { "Emmabuntus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_EMMABUNTUS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EMPEROROS
+ // EmperorOS
+ {
+ .names = { "Emperor" },
+ .lines = FASTFETCH_DATATEXT_LOGO_EMPEROROS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ENOS
+ // EN-OS
+ {
+ .names = { "ENOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ENOS,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLUE,
+ .colorTitle = FF_COLOR_FG_LIGHT_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ENCRYPTOS
+ // EncryptOS
+ {
+ .names = { "EncryptOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ENCRYPTOS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ENDEAVOUROS
+ // EndeavourOS
+ {
+ .names = { "EndeavourOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ENDEAVOUROS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ENDEAVOUROS_SMALL
+ // EndeavourOSSmall
+ {
+ .names = { "EndeavourOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ENDEAVOUROS_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ENDLESS
+ // Endless
+ {
+ .names = { "Endless" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ENDLESS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ENSO
+ // Enso
+ {
+ .names = { "Enso" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ENSO,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ESHANIZEDOS
+ // EshanizedOS
+ {
+ .names = { "EshanizedOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ESHANIZEDOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EUROLINUX
+ // EuroLinux
+ {
+ .names = { "EuroLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_EUROLINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EVOLUTIONOS
+ // EvolutionOS
+ {
+ .names = { "EvolutionOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_EVOLUTIONOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EVOLUTIONOS_SMALL
+ // EvolutionOSSmall
+ {
+ .names = { "EvolutionOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_EVOLUTIONOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EVOLUTIONOS_OLD
+ // EvolutionOS_old
+ {
+ .names = { "EvolutionOS_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_EVOLUTIONOS_OLD,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EWEOS
+ // eweOS
+ {
+ .names = { "eweOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_EWEOS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_YELLOW,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EXHERBO
+ // Exherbo
+ {
+ .names = { "Exherbo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_EXHERBO,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_EXODIA_PREDATOR
+ // ExodiaOS
+ {
+ .names = { "Exodia" },
+ .lines = FASTFETCH_DATATEXT_LOGO_EXODIA_PREDATOR,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/e/elbrus.txt b/src/logo/ascii/e/elbrus.txt
new file mode 100644
index 0000000..9e30e83
--- /dev/null
+++ b/src/logo/ascii/e/elbrus.txt
@@ -0,0 +1,14 @@
+▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
+██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
+██ ██
+██ ███████ ███████ ██
+██ ██ ██ ██ ██ ██
+██ ██ ██ ██ ██ ██
+██ ██ ██ ██ ██ ██
+██ ██ ██ ██ ██ ██
+██ ██ ███████ ███████
+██ ██ ██
+██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██
+██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
+██ ██
+███████████████████████████ \ No newline at end of file
diff --git a/src/logo/ascii/e/elementary.txt b/src/logo/ascii/e/elementary.txt
new file mode 100644
index 0000000..6fc0b9e
--- /dev/null
+++ b/src/logo/ascii/e/elementary.txt
@@ -0,0 +1,17 @@
+ eeeeeeeeeeeeeeeee
+ eeeeeeeeeeeeeeeeeeeeeee
+ eeeee eeeeeeeeeeee eeeee
+ eeee eeeee eee eeee
+ eeee eeee eee eeee
+eee eee eee eee
+eee eee eee eee
+ee eee eeee eeee
+ee eee eeeee eeeeee
+ee eee eeeee eeeee ee
+eee eeee eeeeee eeeee eee
+eee eeeeeeeeee eeeeee eee
+ eeeeeeeeeeeeeeeeeeeeeeee eeeee
+ eeeeeeee eeeeeeeeeeee eeee
+ eeeee eeeee
+ eeeeeee eeeeeee
+ eeeeeeeeeeeeeeeee \ No newline at end of file
diff --git a/src/logo/ascii/e/elementary_small.txt b/src/logo/ascii/e/elementary_small.txt
new file mode 100644
index 0000000..5cb0103
--- /dev/null
+++ b/src/logo/ascii/e/elementary_small.txt
@@ -0,0 +1,6 @@
+ _______
+ / ____ \
+/ | / /\
+|__\ / / |
+\ /__/ /
+ \_______/ \ No newline at end of file
diff --git a/src/logo/ascii/e/elive.txt b/src/logo/ascii/e/elive.txt
new file mode 100644
index 0000000..e9ce457
--- /dev/null
+++ b/src/logo/ascii/e/elive.txt
@@ -0,0 +1,17 @@
+ *@$2,,&(%%%..%*.
+ $1(@$2&%/##############((/$1*,
+ $2@$1@&$2#########$1*..../$2########%$1*..
+ $2@$1&$2#%%%%%. $3,.$1,$2%%%%%%.
+ /%$2(%%%%. $1($2%%%%#.
+ /$1*$2%%##,. .,%%###,
+ ,####. ,$1*$2#%$1#$3/,(/ $2/$1#$2###,
+((###/ ,,##########$1($3/(# $2%####,
+%#((($1. .$1./$2(((((((((((((($1($2#/$3*.. $3*.$2((($1/
+$2%#///$1. $3***$2.*/////////////
+$3#$2#////* $3***$2.*/////.
+ $3($2(***** $3***
+ $2,*****..
+ ..$1*$2*****.. *$1%$2/****.
+ .,,*******,$3,,../##($2%&$1&$2#******$1,$2.
+ ,*$1,$2,,,,,,,,,,,,,,,,,,,$1,$2..
+ *//$1/,,$2,,,,,,,$1,..$2 \ No newline at end of file
diff --git a/src/logo/ascii/e/emmabuntus.txt b/src/logo/ascii/e/emmabuntus.txt
new file mode 100644
index 0000000..8b5aa21
--- /dev/null
+++ b/src/logo/ascii/e/emmabuntus.txt
@@ -0,0 +1,15 @@
+ _~~_
+ nmmmmmmm/$2/**\$1\
+ nmHhHMMMHh\$2\__/$1/
+ nm zot $2__$1 t*~~*n
+ m b $2_+*´cc`*+_$1 p m
+ m & $2/%cc,;;,cc%\$1 & m
+ _~~_ & $2c__ +cc$1 & n
+/$2/**\$1\& $2cc;$1 & m
+\$2\__/$1/& $2c~~ +cc´$1 & n
+ *~~* & $2\cc%*--*%cc/$1 & m
+ m b $2`+.cccc.+´$1 p m
+ nm zo o_~~_
+ nmHhHMMMHhH/$2/**\$1\
+ nmmmmmmmm\$2\__/$1/
+ *~~*
diff --git a/src/logo/ascii/e/emperoros.txt b/src/logo/ascii/e/emperoros.txt
new file mode 100644
index 0000000..55dcaa9
--- /dev/null
+++ b/src/logo/ascii/e/emperoros.txt
@@ -0,0 +1,13 @@
+ !!
+ !!!!
+ llllll
+ llllll
+ IIIIIIIIII
+ IIIIIIIIIIIIIIIIIIII
+;;;;;;;;;;;;;;;;;;;;;;;;
+ ;;;;;;;;;;;;;;;;;;;;
+ :;;::;:;::
+ ::::::
+ ,,,,,,
+ ,,,,
+ "" \ No newline at end of file
diff --git a/src/logo/ascii/e/encryptos.txt b/src/logo/ascii/e/encryptos.txt
new file mode 100644
index 0000000..2783b1b
--- /dev/null
+++ b/src/logo/ascii/e/encryptos.txt
@@ -0,0 +1,13 @@
+ *******
+ *** **.
+ ** **
+ ** **
+
+ *****************
+,,,,,,,,,,,,,,,,***
+,,,,,,, ,,,,,,,
+,,,,,,, ,,,,,,,
+,,,,,,, ,,,,,,,
+,,,,,,, ,,,,,,,
+,,,,,,,,,,,,,,,,,,,
+ ,,,,,,,,,,,,. \ No newline at end of file
diff --git a/src/logo/ascii/e/endeavouros.txt b/src/logo/ascii/e/endeavouros.txt
new file mode 100644
index 0000000..2bdf27d
--- /dev/null
+++ b/src/logo/ascii/e/endeavouros.txt
@@ -0,0 +1,15 @@
+ $2./$1o$3.
+ $2./$1sssso$3-
+ $2`:$1osssssss+$3-
+ $2`:+$1sssssssssso$3/.
+ $2`-/o$1ssssssssssssso$3/.
+ $2`-/+$1sssssssssssssssso$3+:`
+ $2`-:/+$1sssssssssssssssssso$3+/.
+ $2`.://o$1sssssssssssssssssssso$3++-
+ $2.://+$1ssssssssssssssssssssssso$3++:
+ $2.:///o$1ssssssssssssssssssssssssso$3++:
+ $2`:////$1ssssssssssssssssssssssssssso$3+++.
+$2`-////+$1ssssssssssssssssssssssssssso$3++++-
+ $2`..-+$1oosssssssssssssssssssssssso$3+++++/`
+ $3./++++++++++++++++++++++++++++++/:.
+ `:::::::::::::::::::::::::------`` \ No newline at end of file
diff --git a/src/logo/ascii/e/endeavouros_small.txt b/src/logo/ascii/e/endeavouros_small.txt
new file mode 100644
index 0000000..dbe011a
--- /dev/null
+++ b/src/logo/ascii/e/endeavouros_small.txt
@@ -0,0 +1,7 @@
+ /$2o$3.
+$1 /$2sssso$3-
+$1 /$2ossssssso$3:
+$1 /$2ssssssssssso$3+
+$1 /$2ssssssssssssssso$3+
+$1//$2osssssssssssssso$3+-
+ `+++++++++++++++-` \ No newline at end of file
diff --git a/src/logo/ascii/e/endless.txt b/src/logo/ascii/e/endless.txt
new file mode 100644
index 0000000..8fc8b65
--- /dev/null
+++ b/src/logo/ascii/e/endless.txt
@@ -0,0 +1,20 @@
+ `:+yhmNMMMMNmhy+:`
+ -odMMNhso//////oshNMMdo-
+ /dMMh+. .+hMMd/
+ /mMNo` `oNMm:
+ `yMMo` `oMMy`
+ `dMN- -NMd`
+ hMN. .NMh
+/MM/ -os` /MM/
+dMm `smNmmhs/- `:sNMd+ `` mMd
+MMy oMd--:+yMMMMMNo.:ohmMMMNy` yMM
+MMy -NNyyhmMNh+oNMMMMMy:. dMo yMM
+dMm `/++/-``/yNNh+/sdNMNddMm- mMd
+/MM/ `dNy: `-::- /MM/
+ hMN. .NMh
+ `dMN- -NMd`
+ `yMMo` `oMMy`
+ /mMNo` `oNMm/
+ /dMMh+. .+hMMd/
+ -odMMNhso//////oshNMMdo-
+ `:+yhmNMMMMNmhy+:` \ No newline at end of file
diff --git a/src/logo/ascii/e/enos.txt b/src/logo/ascii/e/enos.txt
new file mode 100644
index 0000000..4a13b87
--- /dev/null
+++ b/src/logo/ascii/e/enos.txt
@@ -0,0 +1,6 @@
+ ______ _ _ ____ _____
+| ____| \ | | / __ \ / ____|
+| |__ | \| |______| | | | (___
+| __| | . ` |______| | | |\___ \
+| |____| |\ | | |__| |____) |
+|______|_| \_| \____/|_____/
diff --git a/src/logo/ascii/e/enso.txt b/src/logo/ascii/e/enso.txt
new file mode 100644
index 0000000..5f93412
--- /dev/null
+++ b/src/logo/ascii/e/enso.txt
@@ -0,0 +1,19 @@
+ .:--==--:.
+ :=*#############*+-.
+ .+##################*##*:
+ .*##########+==-==++*####*##-
+ =########=: .-+**#***.
+ *#######- ++*#**.
+ +######+ -*+#**
+ :######* .*+**=
+ *######: --#*#
+ ####### +++#.
+ #######. ++=*.
+ *######+ .-+*+
+ :#######- -:*+:
+ =#######*. :.*+-
+ +########*- :*=-
+ =###########+=: =+=:
+ .+#############. .-==:
+ .=###########= ..:--:.
+ .-+######+ \ No newline at end of file
diff --git a/src/logo/ascii/e/eshanizedos.txt b/src/logo/ascii/e/eshanizedos.txt
new file mode 100644
index 0000000..3d6e348
--- /dev/null
+++ b/src/logo/ascii/e/eshanizedos.txt
@@ -0,0 +1,27 @@
+ .:-==++++++++++++++++++++++-.
+ .:=+##############################+
+ .=*###################################-
+ :+######################################:
+ :+######################################*-
+ .+#############*+--:::::::::::::::::::::.
+ :*##########*=:
+ -###########=
+ :##########+.
+ *#########=
+ =*********+ .::::::::::::::::.
+ **********. -*###################+:
+:********** =#######################=
+-*********+ +************************
+:*********+ :***********************:
+.********** .=******************+-
+ +*********-
+ .**********.
+ =**********:
+ +**********=.
+ =***********=:
+ -*************+-.
+ :+****************+++++++++++++++++++++==:
+ :+**************************************+.
+ -+************************************-
+ .-+*********************************.
+ :-==+*************************=. \ No newline at end of file
diff --git a/src/logo/ascii/e/eurolinux.txt b/src/logo/ascii/e/eurolinux.txt
new file mode 100644
index 0000000..18c808d
--- /dev/null
+++ b/src/logo/ascii/e/eurolinux.txt
@@ -0,0 +1,18 @@
+ __
+ -wwwWWWWWWWWWwww-
+ -WWWWWWWWWWWWWWWWWWw-
+ \WWWWWWWWWWWWWWWWWWW-
+ _Ww `WWWWWWWWWWWWWWWWWWWw
+ -W$2E$1Www -WWWWWWWWW-
+_WW$2U$1WWWW- _WWWWWWWW
+_WW$2R$1WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW-
+wWW$2O$1WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
+WWW$2L$1WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw
+WWW$2I$1WWWWWWWWWWWWWWWWWWWWWWWWWWWWww-
+wWW$2N$1WWWWw
+ WW$2U$1WWWWWWw
+ wW$2X$1WWWWWWWWww
+ wWWWWWWWWWWWWWWWw
+ wWWWWWWWWWWWWWWWw
+ WWWWWWWWWWWWWw
+ wWWWWWWWw \ No newline at end of file
diff --git a/src/logo/ascii/e/evolutionos.txt b/src/logo/ascii/e/evolutionos.txt
new file mode 100644
index 0000000..16dfd8b
--- /dev/null
+++ b/src/logo/ascii/e/evolutionos.txt
@@ -0,0 +1,21 @@
+ $2.':ldxxxxdo:,.
+ .lXMMMMMMMMMMMMMMMMNo'
+ dWMMMMMMMMMMMMMMMMMMMMMMWk
+ .OMMMMWWWWWWWWWWWWWWWWWWWMMMMM0;
+ kMMMMM$1XxxxxkkkkkkkkkkkkkkkK$2WMMMMMK.
+ .kMMMMMM$1Xddd0KKKKKKKKKKKKKKKN$2MMMMMMMN.
+ KMMMMMMM$1XdddX$2MMMMMMMMMMMMMMMMMMMMMMMMX.
+ cMMMMMMMM$1XdddX$2MMMMMMMMMMMMMMMMMMMMMMMMMo
+ KMMMMMMMM$1XdddX$2MMMMMMMMMMMMMMMMMMMMMMMMMN
+ XMMMMMMMM$1XdddX$2WO$1kkkkkkkK$2WK$1OOOX$2MMMMMMMMMW
+ XMMMMMMMM$1XdddX$2WO$1kkkkkkkK$2WK$1OOOX$2MMMMMMMMMW
+ 0MMMMMMMM$1XdddX$2MWWWWWWWWWMWWWWWMMMMMMMMMN
+ cMMMMMMMM$1XdddX$2MMMMMMMMMMMMMMMMMMMMMMMMMd
+ .kMMMMMMM$1XdddX$2MMMMMMMMMMMMMMMMMMMMMMMM0.
+ .kMMMMMM$1XxxxN$2W0$1OOOOOOOOOOOOOK$2MMMMMMMK.
+ oMMMMM$1XxxxN$2W0$1OOOOOOOOOOOOOK$2WMMMMMk.
+ '0MMMWNNNWMWWWWWWWWWWWWWWWMMMMX;
+ cWMMMMMMMMMMMMMMMMMMMMMMWd
+ :KWMMMMMMMMMMMMMMWXo.
+ .cdO0KK00xl'
+ .. \ No newline at end of file
diff --git a/src/logo/ascii/e/evolutionos_old.txt b/src/logo/ascii/e/evolutionos_old.txt
new file mode 100644
index 0000000..5144631
--- /dev/null
+++ b/src/logo/ascii/e/evolutionos_old.txt
@@ -0,0 +1,18 @@
+ dddddddddddddddddddddddd
+.dddd''''''''''''''''''''''dddd.
+dd: dddddddddddddddddddd; dd:
+dd: ldl:'''''''''''''''' dd:
+dd: ldl: dd:
+dd: ldl: dd:
+dd: ldl: dd:
+dd: ldl: dd:
+dd: ldl: ddddddd; ddddd; dd:
+dd: ldl: ''''''' ''''' dd:
+dd: ldl: dd:
+dd: ldl: dd:
+dd: ldl: dd:
+dd: ldl: dd:
+dd: ldl: ddddddddddddddd; dd:
+dddd:.''' ''''''''''''''' dddd:
+ dddddddddddddddddddddddddd;;'
+ ''''''''''''''''''''''''' \ No newline at end of file
diff --git a/src/logo/ascii/e/evolutionos_small.txt b/src/logo/ascii/e/evolutionos_small.txt
new file mode 100644
index 0000000..ddc911a
--- /dev/null
+++ b/src/logo/ascii/e/evolutionos_small.txt
@@ -0,0 +1,9 @@
+ $2,coddoc'
+ 'cddddddddddc'
+ 'ddd$1OWWXXXXXXK$2ddo.
+.dddd$1OMX$2ddddddddddd.
+odddd$1OMX$2k$100O$2k$1OO$2ddddo
+.dddd$1OMX$2kOOOxOkdddd.
+ .ddd$1OWW$2X$1XXXXXK$2ddd'
+ 'dddddddddddd'
+ 'cddddd, \ No newline at end of file
diff --git a/src/logo/ascii/e/eweos.txt b/src/logo/ascii/e/eweos.txt
new file mode 100644
index 0000000..6a5b6bd
--- /dev/null
+++ b/src/logo/ascii/e/eweos.txt
@@ -0,0 +1,15 @@
+$2 #####%%%
+$2 ##%%$3////$2%%%%%$3///
+$2 #%%%%$3////((((////$2%
+$1 *@@@@@@@$3/$5,,,$3/////$5,,,$2%$1@@@@@@@
+ .@@@@@@@@@@@$3////////$2%%%$1@@@@@@@@@@@@
+@@@$4...$1@@@@@@$3////$2%%$3////$1@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@ @@@@@@
+ @@@ @@@
diff --git a/src/logo/ascii/e/exherbo.txt b/src/logo/ascii/e/exherbo.txt
new file mode 100644
index 0000000..e8d0846
--- /dev/null
+++ b/src/logo/ascii/e/exherbo.txt
@@ -0,0 +1,22 @@
+$2 ,
+OXo.
+NXdX0: .cok0KXNNXXK0ko:.
+KX '0XdKMMK;.xMMMk, .0MMMMMXx; ...
+'NO..xWkMMx kMMM cMMMMMX,NMWOxOXd.
+ cNMk NK .oXM. OMMMMO. 0MMNo kW.
+ lMc o: ., .oKNk; ;NMMWlxW'
+ ;Mc .. .,,' .0M$1g;$2WMN'dWMMMMMMO
+ XX ,WMMMMW. cM$1cfli$2WMKlo. .kMk
+.Mo .WM$1GD$2MW. XM$1WO0$2MMk oMl
+,M: ,XMMWx::,''oOK0x; NM.
+'Ml ,kNKOxxxxxkkO0XXKOd:. oMk
+ NK .0Nxc$3:::::::::::::::$2fkKNk, .MW
+ ,Mo .NXc$3::$2qXWXb$3::::::::::$2oo$3::$2lNK. .MW
+ ;Wo oMd$3:::$2oNMNP$3::::::::$2oWMMMx$3:$2c0M; lMO
+ 'NO;W0c$3:::::::::::::::$2dMMMMO$3::$2lMk .WM'
+ xWONXdc$3::::::::::::::$2oOOo$3::$2lXN. ,WMd
+ 'KWWNXXK0Okxxo,$3:::::::$2,lkKNo xMMO
+ :XMNxl,';:lodxkOO000Oxc. .oWMMo
+ 'dXMMXkl;,. .,o0MMNo'
+ ':d0XWMMMMWNNNNMMMNOl'
+ ':okKXWNKkl' \ No newline at end of file
diff --git a/src/logo/ascii/e/exodia_predator.txt b/src/logo/ascii/e/exodia_predator.txt
new file mode 100644
index 0000000..4b75012
--- /dev/null
+++ b/src/logo/ascii/e/exodia_predator.txt
@@ -0,0 +1,24 @@
+- :
++: :+
+++. .++
++++ : . +++
++++= .+ + =+++
+++++- ++ += -++++
+++++++- -++ ++- -++++++
+++++++++: .+++ +++. :++++++++
+++++++++++: ++++ ++++ :++++++++++
++++++++++++==++++ ++++=++++++=+++++
++++++.:++++++++++ ++++++++++:.+++++
++++++. .+++++++++ +++++++++. .+++++
++++++: ++++++++ ++++++++ :+++++
+++++++- =+++++++ +++++++= -++++++
+ :+++++= =+++++++ +++++++= =+++++:
+ :+++= =+++++++ +++++++= =+++:
+ -+= =+++++++ +++++++= ++-
+ : =++++++- -++++++= :
+ =++++- -++++=
+ =++= =++=
+ =++ ++=
+ =+. .+=
+ =- -=
+ : : \ No newline at end of file
diff --git a/src/logo/ascii/f.inc b/src/logo/ascii/f.inc
new file mode 100644
index 0000000..8be44fa
--- /dev/null
+++ b/src/logo/ascii/f.inc
@@ -0,0 +1,288 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo F[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_FASTFETCH
+ // Fastfetch
+ {
+ .names = { "Fastfetch", "FF" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FASTFETCH,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA
+ // Fedora
+ {
+ .names = { "Fedora" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ASAHI
+ // FedoraAsahiRemix
+ {
+ .names = { "fedora-asahi-remix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ASAHI,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA_SMALL
+ // FedoraSmall
+ {
+ .names = { "Fedora_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA2_SMALL
+ {
+ .names = { "Fedora2_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA2_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA_OLD
+ // FedoraOld
+ {
+ .names = { "Fedora_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA_OLD,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA_SILVERBLUE
+ // FedoraSilverblue
+ {
+ .names = { "Fedora-Silverblue" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA_SILVERBLUE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA_KINOITE
+ // FedoraKinoite
+ {
+ .names = { "Fedora-Kinoite" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA_KINOITE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA_SERICEA
+ // FedoraSericea
+ {
+ .names = { "Fedora-Sericea" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA_SERICEA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEDORA_COREOS
+ // FedoraCoreOS
+ {
+ .names = { "Fedora-CoreOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEDORA_COREOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEMBOYOS
+ // FemboyOS
+ {
+ .names = { "FemboyOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEMBOYOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FEREN
+ // Feren
+ {
+ .names = { "Feren" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FEREN,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FILOTIMO
+ // Filotimo
+ {
+ .names = { "filotimo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FILOTIMO,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FINNIX
+ // Finnix
+ {
+ .names = { "Finnix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FINNIX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FLOFLIS
+ // Floflis
+ {
+ .names = { "Floflis" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FLOFLIS,
+ .colors = {
+ FF_COLOR_FG_LIGHT_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FREEBSD
+ // FreeBSD
+ {
+ .names = { "Freebsd" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FREEBSD,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FREEBSD_SMALL
+ // FreeBSDSmall
+ {
+ .names = { "freebsd_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_FREEBSD_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FREEMINT
+ // FreeMiNT
+ {
+ .names = { "FreeMiNT" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FREEMINT,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FRUGALWARE
+ // Frugalware
+ {
+ .names = { "Frugalware", "frugalware-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FRUGALWARE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FUNTOO
+ // Funtoo
+ {
+ .names = { "Funtoo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FUNTOO,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FURRETO
+ // Furreto
+ {
+ .names = { "Furreto" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FURRETO,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/f/fastfetch.txt b/src/logo/ascii/f/fastfetch.txt
new file mode 100644
index 0000000..099baf8
--- /dev/null
+++ b/src/logo/ascii/f/fastfetch.txt
@@ -0,0 +1,11 @@
+╭───────────────────────╮
+│ $2● $3● $4● $5FASTFETCH $1│
+├───────────────────────┤
+│ │
+│ $2 /\ $7►►►►►►► $1│
+│ $2 /--\ $7►►►►►► $1│
+│ $2/----\ $7►►►►► $1│
+│ $6|xx| $7►►►► $1│
+│ $6|xx| $7►►► $1│
+│ $3^^^^ $1│
+╰───────────────────────╯ \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora.txt b/src/logo/ascii/f/fedora.txt
new file mode 100644
index 0000000..f0cfe76
--- /dev/null
+++ b/src/logo/ascii/f/fedora.txt
@@ -0,0 +1,19 @@
+ .',;::::;,'.
+ .';:cccccccccccc:;,.
+ .;cccccccccccccccccccccc;.
+ .:cccccccccccccccccccccccccc:.
+ .;ccccccccccccc;$2.:dddl:.$1;ccccccc;.
+ .:ccccccccccccc;$2OWMKOOXMWd$1;ccccccc:.
+.:ccccccccccccc;$2KMMc$1;cc;$2xMMc$1;ccccccc:.
+,cccccccccccccc;$2MMM.$1;cc;$2;WW:$1;cccccccc,
+:cccccccccccccc;$2MMM.$1;cccccccccccccccc:
+:ccccccc;$2oxOOOo$1;$2MMM000k.$1;cccccccccccc:
+cccccc;$20MMKxdd:$1;$2MMMkddc.$1;cccccccccccc;
+ccccc;$2XMO'$1;cccc;$2MMM.$1;cccccccccccccccc'
+ccccc;$2MMo$1;ccccc;$2MMW.$1;ccccccccccccccc;
+ccccc;$20MNc.$1ccc$2.xMMd$1;ccccccccccccccc;
+cccccc;$2dNMWXXXWM0:$1;cccccccccccccc:,
+cccccccc;$2.:odl:.$1;cccccccccccccc:,.
+ccccccccccccccccccccccccccccc:'.
+:ccccccccccccccccccccccc:;,..
+ ':cccccccccccccccc::;,. \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora2_small.txt b/src/logo/ascii/f/fedora2_small.txt
new file mode 100644
index 0000000..4768040
--- /dev/null
+++ b/src/logo/ascii/f/fedora2_small.txt
@@ -0,0 +1,5 @@
+ __
+ / \
+ __ |_
+/ |
+\__/ \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora_coreos.txt b/src/logo/ascii/f/fedora_coreos.txt
new file mode 100644
index 0000000..0eae596
--- /dev/null
+++ b/src/logo/ascii/f/fedora_coreos.txt
@@ -0,0 +1,20 @@
+ .....
+ .';:cccccccc:;'.
+ ':ccccclc$3lllllllll$1cc:.
+ .;cccccccc$3lllllllllllllll$1c,
+ ;clllccccc$3llllllllllllllllll$1c,
+ .cllclccccc$3lllll$2lll$3llllllllllll$1c:
+ ccclclcccc$3cllll$2kWMMNKk$3llllllllll$1c:
+ :ccclclcccc$3llll$2oWMMMMMMWO$3lllllllll$1c,
+.ccllllllccc$3clll$2OMMMMMMMMM0$3lllllllll$1c
+.lllllclcccc$3llll$2KMMMMMMMMMMo$3llllllll$1c.
+.lllllllcccc$3clll$2KMMMMMMMMN0$3lllllllll$1c.
+.cclllllcccc$3lllld$2xkkxxdo$3llllllllllc$1lc
+ :cccllllllcccc$3lllccllllcclccc$1cccccc;
+ .ccclllllllcccccccc$3lll$1ccccclccccccc
+ .cllllllllllclcccclccclccllllcllc
+ :cllllllllccclcllllllllllllcc;
+ .cccccccccccccclcccccccccc:.
+ .;cccclccccccllllllccc,.
+ .';ccccclllccc:;..
+ ..... \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora_kinoite.txt b/src/logo/ascii/f/fedora_kinoite.txt
new file mode 100644
index 0000000..64bc7d5
--- /dev/null
+++ b/src/logo/ascii/f/fedora_kinoite.txt
@@ -0,0 +1,18 @@
+ ,clll:.$2 .,::::::::::::'
+$1:ooooooo$2 .;::::::::::::::
+$1looooooo$2 ,:::::::::::::::'
+$1looooooo$2 .::::::::::::::::
+$1looooooo$2 ;:::::::::::::::.
+$1looooooo$2 .::::::::::::::::
+$1looooool$2;;;;,::::::::::::::::
+$1looool$2::, .::::::::::::::
+$1looooc$2:: ;::
+$1looooc$2::;. .::;
+$1loooool$2:::::::::::.
+$1looooooo$2. .::::::'
+$1looooooo$2 .::::::,;,..
+$1looooooo$2 :::;' ';:;.
+$1looooooo$2 ::: :::
+$1cooooooo$2 .::' '::.
+$1 .ooooc $2 ::, ,::
+ '''' \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora_old.txt b/src/logo/ascii/f/fedora_old.txt
new file mode 100644
index 0000000..b943ce9
--- /dev/null
+++ b/src/logo/ascii/f/fedora_old.txt
@@ -0,0 +1,17 @@
+ /:-------------:\
+ :-------------------::
+ :-----------$2/shhOHbmp$1---:\
+ /-----------$2omMMMNNNMMD$1 ---:
+ :-----------$2sMMMMNMNMP$1. ---:
+ :-----------$2:MMMdP$1------- ---\
+,------------$2:MMMd$1-------- ---:
+:------------$2:MMMd$1------- .---:
+:---- $2oNMMMMMMMMMNho$1 .----:
+:-- .$2+shhhMMMmhhy++$1 .------/
+:- -------$2:MMMd$1--------------:
+:- --------$2/MMMd$1-------------;
+:- ------$2/hMMMy$1------------:
+:--$2 :dMNdhhdNMMNo$1------------;
+:---$2:sdNMMMMNds:$1------------:
+:------$2:://:$1-------------::
+:---------------------:// \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora_sericea.txt b/src/logo/ascii/f/fedora_sericea.txt
new file mode 100644
index 0000000..cd7dfb2
--- /dev/null
+++ b/src/logo/ascii/f/fedora_sericea.txt
@@ -0,0 +1,17 @@
+ :oooo, .','
+ .';;;.;oooooooolooooo'
+ coooooooooooooooooooooooolc'
+ .':oooooooooooo$2ll$1ooooooooooooool
+.oooooooooooooooo$2ll$1oooooooooooo$2l$1ool
+ooooooooooooooooo$2ll$1ooooooooooo$2ll$1oo'
+ oooo$2l$1oooooooooo$2lll$1ooooooooo$2lll$1oo
+ .ooooo$2lll$1ooooo$2lll$1ooooooooo$2lll$1ool
+ .ooooooo$2lll$1oo$2llll$1oooo$2lllll$1ooooo:
+ 'oooooooo$2llllllllllll$1oooooooo'
+ .c,.oo$2lllll$1oooooooo.$2
+ 'll;
+ 'll.
+ lll
+ lll
+ ;ll,
+ .l: \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora_silverblue.txt b/src/logo/ascii/f/fedora_silverblue.txt
new file mode 100644
index 0000000..993a99f
--- /dev/null
+++ b/src/logo/ascii/f/fedora_silverblue.txt
@@ -0,0 +1,17 @@
+ .;ooooooooooooooooooooooooooo.
+ ,dddddddddddddddddddddddddddddd'$3;
+$1 lddddddddddddddddddddddddddddd'$3;;;
+$1ddddd$2,XXX.$1ddddd$2,XXX.$1dddd'$2,XXX.$3;;;;;
+$1ddddd$2XX$1x$2XX$1ddddd$2XX$1x$2XX$1ddd'$2,XX$3x$2XX$3;;;;;
+$1ddddd$2'XXX'$1ddddd$2'XXX'$1dd'$2XXXXXX'$3;;;;;
+$1dddddd$2;X;$1ddddddd$2;X:$1d'$2XXX$3;;;;;;;;;;;
+$1dddddd$2;X;$1ddddddd$2;X:$2XXX$3;;;;;;;;;;;;;
+$1dddddd$2;X;$1dddddd'$2;XXX,,,,,,XXX.$3;;;;;
+$1dddddd$2;X;$1dddd'$2XXXX$2XXXXXXXXX$3x$2XX$3;;;;;
+$1dddddd$2;X;$1dd'$2XXX$3;;;;;;;;;;;$2XXX$3;;;;;;
+$1dddddd$2;X;$1'$2XXX$3;;;;;;;;;;;;;;;;;;;;;;
+$1dddddd$2;XXXXX,,,,,,,,,,,,,;XXX:$3;;;;;
+$1dddddd$2:XXXXXXXXXXXXXXXXXXXX$3x$2XX$3;;;;;
+$1ddddd'$3;;;;;;;;;;;;;;;;;;;$2'XXX'$3;;;;'
+$1ddd'$3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+$1o'$3;;;;;;;;;;;;;;;;;;;;;;;;;;;;' \ No newline at end of file
diff --git a/src/logo/ascii/f/fedora_small.txt b/src/logo/ascii/f/fedora_small.txt
new file mode 100644
index 0000000..0220cc5
--- /dev/null
+++ b/src/logo/ascii/f/fedora_small.txt
@@ -0,0 +1,9 @@
+ ,'''''.
+ | ,. |
+ | | '_'
+ ,....| |..
+.' ,_;| ..'
+| | | |
+| ',_,' |
+ '. ,'
+ ''''' \ No newline at end of file
diff --git a/src/logo/ascii/f/femboyos.txt b/src/logo/ascii/f/femboyos.txt
new file mode 100644
index 0000000..c447e7a
--- /dev/null
+++ b/src/logo/ascii/f/femboyos.txt
@@ -0,0 +1,20 @@
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+MMMMWKkxkKWMMMMMMMMMMMMMMMMMMMMWKkxkKWMM
+MMMMXo. .;xKWMMMMMMMMMMMMMMMMMMXo. .oXMM
+MMWXx,..'..oXMMMMMMMMMMMMMMMMWKx, .lXMM
+MMNo. .cOc.,xKWMMMMMMMMMMMMWXx;.....cXMM
+MMXl..;kKl. .oXMMMMMMMMMMWKx;..,ok:.'o0W
+WKx,.cKWNk;..lXMMMMMMMMWKx;..,o0NXl. .oN
+No. .lXMMWKc.,dKWMMMMMMNo..;d0NWMNx,..lX
+Nk:,:kNMMMNk:,ckNMMMMMMNxcxXWMMMMMN0ockN
+MWNNNWMMMMMWNNNWMMMMMMMMWWWMMMMMMMMMWWWM
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+MMMMMMMNXKXNWMMMMMMMMMMMWNKOKWMMMMMMMMMM
+MMMMMMWKdccxXMMMMMMMMMMW0o'.oXMMMMMMMMMM
+MMMMMMMNO:.'o0NKkkkkkOXXo. .lXMMMMMMMMMM
+MMMMMMMMNx,..;o;. .:o,..;kNMMMMMMMMMM
+MMMMMMMMMNO: ... .cKWMMMMMMMMMMM
+MMMMMMMMMMNx,. .;dk:. .;kNMMMMMMMMMMMM
+MMMMMMMMMMMN0ocxXWNkl:,:xXWMMMMMMMMMMMMM
+MMMMMMMMMMMMMWNWMMMWWNNNWMMMMMMMMMMMMMMM
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM \ No newline at end of file
diff --git a/src/logo/ascii/f/feren.txt b/src/logo/ascii/f/feren.txt
new file mode 100644
index 0000000..f1d3a5c
--- /dev/null
+++ b/src/logo/ascii/f/feren.txt
@@ -0,0 +1,16 @@
+ `----------`
+ :+ooooooooo+.
+-o+oooooooooo+-
+..`/+++++++++++/...`````````````````
+ .++++++++++++++++++++++++++/////-
+ ++++++++++++++++++++++++++++++++//:`
+ -++++++++++++++++++++++++++++++/-`
+ ++++++++++++++++++++++++++++:.
+ -++++++++++++++++++++++++/.
+ +++++++++++++++++++++/-`
+ -++++++++++++++++++//-`
+ .:+++++++++++++//////-
+ .:++++++++//////////-
+ `-++++++---:::://///.
+ `.:///+++. `
+ `......... \ No newline at end of file
diff --git a/src/logo/ascii/f/filotimo.txt b/src/logo/ascii/f/filotimo.txt
new file mode 100644
index 0000000..48ebb26
--- /dev/null
+++ b/src/logo/ascii/f/filotimo.txt
@@ -0,0 +1,20 @@
+O '
+lk: ;xX. .0K '
+lodk ;lldK' .lld0O :okX;
+lloo0 ;lllld0: .lllllxKx :clllkKk
+llllo, ;llllloox .clllllloxK :cclllllx0N
+lllll, ;llllllll .cclllllllo' :cccclllllld
+cllll, ;cclllllc .ccccllllll' :cccccclllll
+cllll, ;cccllllc ccccccllll' ::cccccclllc
+ccccl, ;cccccllc :cccccccll' :::ccccccclc
+ccccc, ;cccccccc ::cccccccl' :::::ccccccc
+:cccc, ;:ccccccc ::::cccccc' :::::::ccccc
+:cccc, ;:::ccccc ::::::cccc' :;::::::ccc:
+:::cc, ;:::::ccc ;:::::::cc' :;;:::::::c:
+:::::, ;:::::::c ;;:::::::c' :;;;;:::::::
+:::::, ;;::::::c ;;;;::::::' :;;;;;::::::
+;::::, ,;;;::::c ,;;;;;::::' ';;;;;;::::
+';;::, ;;;;::: .;;;;;::' .;;;;;::
+ ;;;, ;;;;: .;;;:' ;;;:
+ ,;, ,;: ';'
+ ., \ No newline at end of file
diff --git a/src/logo/ascii/f/finnix.txt b/src/logo/ascii/f/finnix.txt
new file mode 100644
index 0000000..5673c6e
--- /dev/null
+++ b/src/logo/ascii/f/finnix.txt
@@ -0,0 +1,17 @@
+ ,,:;;;;:,,
+ ,;*%S########S%*;,
+ ;?#################S?:
+ :%######################?:
+ +##########################;
+ +############################;
+ :#############.**,#############,
+ *###########+ +###########+
+ ?########## $3Finnix$1 ##########*
+ *###########, ,###########+
+ :#############%..%#############,
+ *############################+
+ *##########################+
+ ;S######################%:
+ ,+%##################%;
+ :+?S##########S?+:
+ ,:;++++;:, \ No newline at end of file
diff --git a/src/logo/ascii/f/floflis.txt b/src/logo/ascii/f/floflis.txt
new file mode 100644
index 0000000..6247b37
--- /dev/null
+++ b/src/logo/ascii/f/floflis.txt
@@ -0,0 +1,19 @@
+ ,▄▄▄▌▓▓███▓▓▌▄▄▄,
+ ,▄▒▓███████████████████▓▄▄
+ ▄▓███████████████████████████▌
+ ▓███████████████████████████████
+ , ╙▓████████████████████████████▀ ▄
+ ╓█▓▄ ╙▀▓████████████████████▀▀` ,▄██▓
+ ╓█████▌▄, '▀▀▀▀▓▓▓▓▓▓▀▀Å╙` ▄▄▓█████▌
+ ██████████▓▌▄ , ▄▓███████████▄
+╢████████████▓ ║████▓▓███▌ ╣█████████████▓
+▓█████████████ ▐█████████▀ ▓██████████████
+▓█████████████ ▐█████████▄ ███████████████
+▀████████████▌ ║█████████▌ ▀█████████████▌
+ ████████████M ▓██████████ ▐█████████████⌐
+ ▀██████████▌ ▐███████████▌ ▀███████████▌
+ ╙▓█████▓ ▓██████████████▄ ▀███████▀
+ ╝▓██▀ ╓▓████████████████▓ ▀▓██▀
+ ,▄████████████████████▌,
+ ╝▀████████████████████▓▀'
+ `╙▀▀▓▓███████▓▀▀╩' \ No newline at end of file
diff --git a/src/logo/ascii/f/freebsd.txt b/src/logo/ascii/f/freebsd.txt
new file mode 100644
index 0000000..8526f42
--- /dev/null
+++ b/src/logo/ascii/f/freebsd.txt
@@ -0,0 +1,15 @@
+``` $2`
+ $1` `.....---...$2....--.``` -/
+ $1+o .--` $2/y:` +.
+ $1yo`:. $2:o `+-
+ $1y/ $2-/` -o/
+ $1.- $2::/sy+:.
+ $1/ $2`-- /
+ $1`: $2:`
+ $1`: $2:`
+ $1/ $2/
+ $1.- $2-.
+ $1-- $2-.
+ $1`:` $2`:`
+ .-- `--.
+ .---.....----. \ No newline at end of file
diff --git a/src/logo/ascii/f/freebsd_small.txt b/src/logo/ascii/f/freebsd_small.txt
new file mode 100644
index 0000000..ee345f8
--- /dev/null
+++ b/src/logo/ascii/f/freebsd_small.txt
@@ -0,0 +1,6 @@
+$1/\,-'''''-,/\
+\_) (_/
+| |
+| |
+ ; ;
+ '-_____-' \ No newline at end of file
diff --git a/src/logo/ascii/f/freemint.txt b/src/logo/ascii/f/freemint.txt
new file mode 100644
index 0000000..34d6b73
--- /dev/null
+++ b/src/logo/ascii/f/freemint.txt
@@ -0,0 +1,15 @@
+ ##
+ ## #########
+ #### ##
+ #### #### ##
+#### #### ## ##
+ #### #### ## ##
+ #### #### ## ## ##
+ #### ######
+ ###### ## ## ####
+ #### ################
+ #### ## ####
+ ## #### ######
+ ## ## #### ####
+ ## ## ## ## ## ####
+ #### ## ## ## \ No newline at end of file
diff --git a/src/logo/ascii/f/frugalware.txt b/src/logo/ascii/f/frugalware.txt
new file mode 100644
index 0000000..91c55e5
--- /dev/null
+++ b/src/logo/ascii/f/frugalware.txt
@@ -0,0 +1,23 @@
+ `++/::-.`
+ /o+++++++++/::-.`
+ `o+++++++++++++++o++/::-.`
+ /+++++++++++++++++++++++oo++/:-.``
+ .o+ooooooooooooooooooosssssssso++oo++/:-`
+ ++osoooooooooooosssssssssssssyyo+++++++o:
+ -o+ssoooooooooooosssssssssssssyyo+++++++s`
+ o++ssoooooo++++++++++++++sssyyyyo++++++o:
+ :o++ssoooooo$2/-------------$1+syyyyyo+++++oo
+ `o+++ssoooooo$2/-----$1+++++ooosyyyyyyo++++os:
+ /o+++ssoooooo$2/-----$1ooooooosyyyyyyyo+oooss
+ .o++++ssooooos$2/------------$1syyyyyyhsosssy-
+ ++++++ssooooss$2/-----$1+++++ooyyhhhhhdssssso
+ -s+++++syssssss$2/-----$1yyhhhhhhhhhhhddssssy.
+ sooooooyhyyyyyh$2/-----$1hhhhhhhhhhhddddyssy+
+ :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy`
+ yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/
+-ysooooooydhhhhhhhhhhhddddddddddddddddssy
+ .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:
+ ``.-/+oosysssssssssssssssssssssss
+ ``.:/+osyysssssssssssssh.
+ `-:/+osyyssssyo
+ .-:+++` \ No newline at end of file
diff --git a/src/logo/ascii/f/funtoo.txt b/src/logo/ascii/f/funtoo.txt
new file mode 100644
index 0000000..7943633
--- /dev/null
+++ b/src/logo/ascii/f/funtoo.txt
@@ -0,0 +1,10 @@
+ .dKXXd .
+ :XXl;:. .OXo
+.'OXO'' .''''''''''''''''''''':XNd..'oco.lco,
+xXXXXXX, cXXXNNNXXXXNNXXXXXXXXNNNNKOOK; d0O .k
+ kXX xXo KNNN0 KNN. 'xXNo :c; 'cc.
+ kXX xNo KNNN0 KNN. :xxxx. 'NNo
+ kXX xNo loooc KNN. oNNNN. 'NNo
+ kXX xN0:. KNN' oNNNX' ,XNk
+ kXX xNNXNNNNNNNNXNNNNNNNNXNNOxXNX0Xl
+ ... ......................... .;cc;. \ No newline at end of file
diff --git a/src/logo/ascii/f/furreto.txt b/src/logo/ascii/f/furreto.txt
new file mode 100644
index 0000000..95ee07c
--- /dev/null
+++ b/src/logo/ascii/f/furreto.txt
@@ -0,0 +1,22 @@
+ .$2xOOko $1.$2odd,
+ oX$1WW$2KOOOO. 'ON$1WW$20kkk.
+ $1.$2k0XKOOOOOOcOON$1W$2NOOOOO.
+ xOOOOOOOOOkkOOOOOOOOO;
+ $1.$2O0OkkocxO000000kcdk0OO0OOkx
+ k$1W$1M$2Xkkkkloxkkkx; :dxxxxddc...
+ 'kO0OOOOOkc .cl:..kk0KK0Okc
+ ;kOOO0000xd. dO00000Oo .xkO$1NMM$2XOOOO
+.dddxkOOOkddc.kKN$1WW$2N000000l.ddk0000OOOO.
+ 'dd:;ddddd;.dK$1MMMW$2K00KKK0O::ddxkO00Oko
+ .okxkOKK0kkOO00KKOxxlodddddddl
+ .00OOkkkkkkkkOOO00OOOO0O; .dddl
+ 'kkkkkxxkkkkkkkOOkxdxkxxddd.
+ cddddddddxxkkkkkxddddddddddo
+ 'ddddddodddddddddddddddddddc
+ $1.$2ddddddodddddddddodddddddc
+ .odddo.
+
+ $1.$2kOOkkk;
+ lkK$1WN$2kkkxc
+ kkxkkkkkkx.
+ ,,..xxx. \ No newline at end of file
diff --git a/src/logo/ascii/g.inc b/src/logo/ascii/g.inc
new file mode 100644
index 0000000..3fa3f7a
--- /dev/null
+++ b/src/logo/ascii/g.inc
@@ -0,0 +1,244 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo G[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_GALLIUMOS
+ // GalliumOS
+ {
+ .names = { "GalliumOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GALLIUMOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GARUDA
+ // Garuda
+ {
+ .names = { "Garuda", "garuda-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GARUDA,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GARUDA_DRAGON
+ // GarudaDragon
+ {
+ .names = { "GarudaDragon", "garuda-dragon" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GARUDA_DRAGON,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GARUDA_SMALL
+ // GarudaSmall
+ {
+ .names = { "Garuda_small", "garuda-linux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_GARUDA_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GENTOO
+ // Gentoo
+ {
+ .names = { "Gentoo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GENTOO,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GENTOO_SMALL
+ // GentooSmall
+ {
+ .names = { "Gentoo_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_GENTOO_SMALL,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GHOSTBSD
+ // GhostBSD
+ {
+ .names = { "GhostBSD" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GHOSTBSD,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GHOSTFREAK
+ // GhostFreak
+ {
+ .names = { "GhostFreak" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GHOSTFREAK,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GLAUCUS
+ // Glaucus
+ {
+ .names = { "Glaucus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GLAUCUS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GNEWSENSE
+ // GNewSense
+ {
+ .names = { "gNewSense" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GNEWSENSE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GNOME
+ // GNOME OS
+ {
+ .names = { "GNOME OS" }, // matches "NAME"
+ .lines = FASTFETCH_DATATEXT_LOGO_GNOME,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GNU
+ // GNU
+ {
+ .names = { "GNU" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GNU,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GOBOLINUX
+ // GoboLinux
+ {
+ .names = { "GoboLinux", "Gobo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GOBOLINUX,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GOLDENDOGLINUX
+ // GoldenDogLinux
+ {
+ .names = { "GoldenDog Linux", "GDL", "goldendoglinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GOLDENDOGLINUX,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GRAPHENEOS
+ // GrapheneOS
+ {
+ .names = { "GrapheneOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GRAPHENEOS,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GROMBYANG
+ // Grombyang
+ {
+ .names = { "Grombyang" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GROMBYANG,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GUIX
+ // Guix
+ {
+ .names = { "Guix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GUIX,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GUIX_SMALL
+ // GuixSmall
+ {
+ .names = { "Guix_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_GUIX_SMALL,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_GXDE
+ // GXDE
+ {
+ .names = { "GXDE" },
+ .lines = FASTFETCH_DATATEXT_LOGO_GXDE,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/g/galliumos.txt b/src/logo/ascii/g/galliumos.txt
new file mode 100644
index 0000000..527344c
--- /dev/null
+++ b/src/logo/ascii/g/galliumos.txt
@@ -0,0 +1,19 @@
+sooooooooooooooooooooooooooooooooooooo+:
+yyooooooooooooooooooooooooooooooooo+/:::
+yyysoooooooooooooooooooooooooooo+/::::::
+yyyyyoooooooooooooooooooooooo+/:::::::::
+yyyyyysoooooooooooooooooo++/::::::::::::
+yyyyyyysoooooooooooooo++/:::::::::::::::
+yyyyyyyyysoooooo$2sydddys$1+/:::::::::::::::
+yyyyyyyyyysooo$2smMMMMMMMNd$1+::::::::::::::
+yyyyyyyyyyyyo$2sMMMMMMMMMMMN$1/:::::::::::::
+yyyyyyyyyyyyy$2dMMMMMMMMMMMM$1o//:::::::::::
+yyyyyyyyyyyyy$2hMMMMMMMMMMMm$1--//::::::::::
+yyyyyyyyyyyyyy$2hmMMMMMMMNy$1:..-://::::::::
+yyyyyyyyyyyyyyy$2yyhhyys+:$1......://:::::::
+yyyyyyyyyyyyyyys+:--...........-///:::::
+yyyyyyyyyyyys+:--................://::::
+yyyyyyyyyo+:-.....................-//:::
+yyyyyyo+:-..........................://:
+yyyo+:-..............................-//
+o/:-...................................: \ No newline at end of file
diff --git a/src/logo/ascii/g/garuda.txt b/src/logo/ascii/g/garuda.txt
new file mode 100644
index 0000000..2234a61
--- /dev/null
+++ b/src/logo/ascii/g/garuda.txt
@@ -0,0 +1,18 @@
+ .%;888:8898898:
+ x;XxXB%89b8:b8%b88:
+ .8Xxd 8X:.
+ .8Xx; 8x:.
+ .tt8x .d x88;
+ .@8x8; .db: xx@;
+ ,tSXX° .bbbbbbbbbbbbbbbbbbbB8x@;
+ .SXxx bBBBBBBBBBBBBBBBBBBBbSBX8;
+ ,888S pd!
+8X88/ q
+8X88/
+GBB.
+ x%88 d888@8@X@X@X88X@@XX@@X@8@X.
+ dxXd dB8b8b8B8B08bB88b998888b88x.
+ dxx8o .@@;.
+ dx88 .t@x.
+ d:SS@8ba89aa67a853Sxxad.
+ .d988999889889899dd. \ No newline at end of file
diff --git a/src/logo/ascii/g/garuda_dragon.txt b/src/logo/ascii/g/garuda_dragon.txt
new file mode 100644
index 0000000..e93a04d
--- /dev/null
+++ b/src/logo/ascii/g/garuda_dragon.txt
@@ -0,0 +1,24 @@
+ .:--=========--:..
+ .:-=+++++===-----=======-:.
+ :=++++-:.. ..:-===-:.
+ .+++=:. .-=---.
+ . :-: :---:
+ := . :---:
+ .=-: :-. .---:
+ :-===--::. .::::. ---:
+ .::--====-===+=-----=-: ---:
+ :: :-++++====--=-:=====--=--: .---
++**=:+++===++++++==- -===== -==-. ---:
+*****+==++==--::::::======== . ===-. :---
+****==++-::.:::::-.::--======-.-=== .---
+***+=+-::::--:. -==:-==--=======-::. . :---
+=**++-::::== -+===-==: :::.:-=-==--- :--:
+.*+*-:::-+= ...::==== .:: .=-:--. ..
+ -*++:::=+-: .:=- -- .: . ...
+ =*++:.++-+: .:. =-.: :-: :: :.
+ -*++-=+=-+=-=++===-. .====: .::::.
+ :++++++-:::--.-:=== --.
+ .=+++++- .= +.=:= .::
+ :=+++++:. .: : . :----
+ .-++++=-:.. .:--===-.
+ .-=+++++===-----=======-:. \ No newline at end of file
diff --git a/src/logo/ascii/g/garuda_small.txt b/src/logo/ascii/g/garuda_small.txt
new file mode 100644
index 0000000..7716d67
--- /dev/null
+++ b/src/logo/ascii/g/garuda_small.txt
@@ -0,0 +1,5 @@
+ .----.
+ .' , '.
+ .' '-----|
+'. -----,
+ '.____.' \ No newline at end of file
diff --git a/src/logo/ascii/g/gentoo.txt b/src/logo/ascii/g/gentoo.txt
new file mode 100644
index 0000000..a90dd33
--- /dev/null
+++ b/src/logo/ascii/g/gentoo.txt
@@ -0,0 +1,18 @@
+ -/oyddmdhs+:.
+ -o$2dNMMMMMMMMNNmhy+$1-`
+ -y$2NMMMMMMMMMMMNNNmmdhy$1+-
+ `o$2mMMMMMMMMMMMMNmdmmmmddhhy$1/`
+ om$2MMMMMMMMMMMN$1hhyyyo$2hmdddhhhd$1o`
+.y$2dMMMMMMMMMMd$1hs++so/s$2mdddhhhhdm$1+`
+ oy$2hdmNMMMMMMMN$1dyooy$2dmddddhhhhyhN$1d.
+ :o$2yhhdNNMMMMMMMNNNmmdddhhhhhyym$1Mh
+ .:$2+sydNMMMMMNNNmmmdddhhhhhhmM$1my
+ /m$2MMMMMMNNNmmmdddhhhhhmMNh$1s:
+ `o$2NMMMMMMMNNNmmmddddhhdmMNhs$1+`
+ `s$2NMMMMMMMMNNNmmmdddddmNMmhs$1/.
+ /N$2MMMMMMMMNNNNmmmdddmNMNdso$1:`
++M$2MMMMMMNNNNNmmmmdmNMNdso$1/-
+yM$2MNNNNNNNmmmmmNNMmhs+/$1-`
+/h$2MMNNNNNNNNMNdhs++/$1-`
+`/$2ohdmmddhys+++/:$1.`
+ `-//////:--. \ No newline at end of file
diff --git a/src/logo/ascii/g/gentoo_small.txt b/src/logo/ascii/g/gentoo_small.txt
new file mode 100644
index 0000000..5c471a7
--- /dev/null
+++ b/src/logo/ascii/g/gentoo_small.txt
@@ -0,0 +1,7 @@
+ _-----_
+( \
+\ 0 \
+ $2\ )
+ / _/
+( _-
+\____- \ No newline at end of file
diff --git a/src/logo/ascii/g/ghostbsd.txt b/src/logo/ascii/g/ghostbsd.txt
new file mode 100644
index 0000000..97d060c
--- /dev/null
+++ b/src/logo/ascii/g/ghostbsd.txt
@@ -0,0 +1,13 @@
+ ,gggggg.
+ ,agg9* .g)
+ .agg* ._.,gg*
+ ,gga* (ggg*'
+ ,ga* ,ga*
+ ,ga' .ag*
+ ,ga' .agga'
+ 9g' .agg'g*,a
+ 'gggg*',gga'
+ .gg*'
+ .gga*
+ .gga*
+ (ga* \ No newline at end of file
diff --git a/src/logo/ascii/g/ghostfreak.txt b/src/logo/ascii/g/ghostfreak.txt
new file mode 100644
index 0000000..264abea
--- /dev/null
+++ b/src/logo/ascii/g/ghostfreak.txt
@@ -0,0 +1,19 @@
+ xSSSSSSSSSSSx:
+ XSSSSSSSSSSSSSSSSSSSSX
+ xSSSSSSSSSSSSSSSSSSSSSSSxSSX
+ xSSSSSSSSSSSSSSSSSSSSSSSSSSSSXSS
+ SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXXXS;
+ +SSSSSSx++SSSSSSSSSSSSSSSSSSSSSSSSSXSX
+ SSSSS:::::::SSSSSSSSSSSSSXSSSSSSSSSS+S+
+ XSSSX::::::::XxSSSSSSSSXSx;::xSSSSSSSSSS
+;SSSS:::::::::XSSSSSSSSS+:::::::xSSSSSSSS;
++SSSSx::::::::SSSSSSSSS;:::::::::XSSSSSSSX
+ SSSSXSx:::::SSSSxXSSSS::::::::::XSSSSSSSX
+ xSSSSSSSSSSSS:::::SSSX::::::::::XSSSSSSS;
+ +SSSSSSSSSSSSSSX:SSSSS;:::::::SxSSSSSSS
+ +SSSSSSSSSSSSSSSSSSSSSSSSSXSSxSSSSSS
+ xxSSSSSSSSSSSSSSSSSSSSSSSSSSSSSx
+ SSSSSSSSSSSSSSSSSSSSSSSSSSSX
+ xXSSSSSSSSSSSSX
+ SSS +SSSxSSSSS
+ ;x xSSx \ No newline at end of file
diff --git a/src/logo/ascii/g/glaucus.txt b/src/logo/ascii/g/glaucus.txt
new file mode 100644
index 0000000..f10d7e5
--- /dev/null
+++ b/src/logo/ascii/g/glaucus.txt
@@ -0,0 +1,12 @@
+ ,, ,d88P
+ ,d8P ,ad8888*
+ ,888P d88888* ,,ad8888P*
+ d d888P a88888P* ,ad8888888*
+ .d8 d8888: d888888* ,d888888P*
+ .888; 88888b d8888888b8888888P
+ d8888J888888a88888888888888P* ,d
+ 88888888888888888888888888P ,,d8*
+ 888888888888888888888888888888888*
+ *8888888888888888888888888888888*
+ Y888888888P* `*``*888888888888*
+ *^888^* *Y888P** \ No newline at end of file
diff --git a/src/logo/ascii/g/gnewsense.txt b/src/logo/ascii/g/gnewsense.txt
new file mode 100644
index 0000000..5333e92
--- /dev/null
+++ b/src/logo/ascii/g/gnewsense.txt
@@ -0,0 +1,12 @@
+ ..,,,,..
+ .oocchhhhhhhhhhccoo.
+ .ochhlllllllc hhhhhh ollllllhhco.
+ ochlllllllllll hhhllllllhhh lllllllllllhco
+ .cllllllllllllll hlllllo +hllh llllllllllllllc.
+ollllllllllhco'' hlllllo +hllh ``ochllllllllllo
+hllllllllc' hllllllllllllh `cllllllllh
+ollllllh +llllllllllll+ hllllllo
+ `cllllh. ohllllllho .hllllc'
+ ochllc. ++++ .cllhco
+ `+occooo+. .+ooocco+'
+ `+oo++++ ++++oo+' \ No newline at end of file
diff --git a/src/logo/ascii/g/gnome.txt b/src/logo/ascii/g/gnome.txt
new file mode 100644
index 0000000..71e7b21
--- /dev/null
+++ b/src/logo/ascii/g/gnome.txt
@@ -0,0 +1,21 @@
+ ,@@@@@@@@,
+ @@@@@@ @@@@@@@@@@@@
+ ,@@. @@@@@@@ *@@@@@@@@@@@@
+ @@@@@% @@@@@@( @@@@@@@@@@@&
+ @@@@@@ @@@@* @@@@@@@@@#
+@@@@* @@@@, *@@@@@%
+@@@@@.
+ @@@@# @@@@@@@@@@@@@@@@
+ ,@@@@@@@@@@@@@@@@@@@@@@@,
+ ,@@@@@@@@@@@@@@@@@@@@@@@@@@&
+ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@(
+ @@@@@@@@@@@@@@@@@@@@%
+ @@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@* @@@@@@@@/
+ &@@@@@@@@@@ @@@@@@@@@*
+ @@@@@@@@@@@, @@@@@@@@@*
+ ,@@@@@@@@@@@@@@@@@@@@&
+ &@@@@@@@@@@@@@@
+ ... \ No newline at end of file
diff --git a/src/logo/ascii/g/gnu.txt b/src/logo/ascii/g/gnu.txt
new file mode 100644
index 0000000..0b9c3e2
--- /dev/null
+++ b/src/logo/ascii/g/gnu.txt
@@ -0,0 +1,18 @@
+ _-`````-, ,- '- .
+ .' .- - | | - -. `.
+ /.' / `. \
+:/ : _... ..._ `` :
+:: : /._ .`:'_.._\. || :
+:: `._ ./ ,` : \ . _.'' .
+`:. / | -. \-. \\_ /
+ \:._ _/ .' .@) \@) ` `\ ,.'
+ _/,--' .- .\,-.`--`.
+ ,'/'' (( \ ` )
+ /'/' \ `-' (
+ '/'' `._,-----'
+ ''/' .,---'
+ ''/' ;:
+ ''/'' ''/
+ ''/''/''
+ '/'/'
+ `; \ No newline at end of file
diff --git a/src/logo/ascii/g/gobolinux.txt b/src/logo/ascii/g/gobolinux.txt
new file mode 100644
index 0000000..062dc9c
--- /dev/null
+++ b/src/logo/ascii/g/gobolinux.txt
@@ -0,0 +1,6 @@
+ _____ _
+ / ____| | |
+| | __ ___ | |__ ___
+| | |_ |/ _ \| '_ \ / _ \
+| |__| | (_) | |_) | (_) |
+ \_____|\___/|_.__/ \___/ \ No newline at end of file
diff --git a/src/logo/ascii/g/goldendoglinux.txt b/src/logo/ascii/g/goldendoglinux.txt
new file mode 100644
index 0000000..d40abf3
--- /dev/null
+++ b/src/logo/ascii/g/goldendoglinux.txt
@@ -0,0 +1,19 @@
+ .:^~!!^. .::
+ ^7777!!!777!77Y5?
+ :??!!~~~77!~~~~~!7Y.
+ :J7~~!?!~!~~~~~~~!??
+ ??~~~~7J7~~~~~~~7?!.
+ J7~~~~~!J7~~~~!J7.
+ !J~~~~!!?Y~~~~?7
+ ~?7777?Y7~~~!Y^
+ !J???7!~~~~!J!
+ ~?7~~~~~~~~~~~7J
+ .~?7~~~~~~~~~~~~~7J
+ .~?7~~~~~~~~~~~~~~~7J
+ ^??~~~~~~~~~~~~~~~~!Y^
+ !J!~~~~~~!7777!!~~~~7J
+ !J!~~~~~!!!!!!77??~~~7J
+ :Y!~~~~~~~~~~~~~!!J?~~7J
+ :. !J!~~~~~~~~~~~~~!!JJ~~7Y.
+ JJ!!Y!~~~~~~~~~~~~!!JY!~~!J~
+.....~YJ?J!~~~~~~~~~~~~!JYJJJ7~!J^^:::.... \ No newline at end of file
diff --git a/src/logo/ascii/g/grapheneos.txt b/src/logo/ascii/g/grapheneos.txt
new file mode 100644
index 0000000..e474bde
--- /dev/null
+++ b/src/logo/ascii/g/grapheneos.txt
@@ -0,0 +1,23 @@
+ B?
+ G~
+ G~&
+ G!^:^?#
+ &^.:::.J
+ &PG& #G5JJ7~^~?JY5B& #PG
+ B5JJPGJ77YG5JYP# && &B5JYPGJ7?YG5JYP#
+ &Y..::.:P& &?..::.:G
+ #!::::? B~::::J
+ B~J# B!?#
+ !P 75
+ !P 75
+ !5 7Y
+ &Y~:^!P &J~:^!P
+ P..::.:B Y..::.:#
+ #PYJJ~^^!JJYP# &B5YJ?~^^!JJYG#
+ &YYG# && #PYJ5G5??JGGYJ5G& && #PYP
+ B^.::..7&
+ J::::^G
+ #Y^G&
+ B~
+ G!
+ # \ No newline at end of file
diff --git a/src/logo/ascii/g/grombyang.txt b/src/logo/ascii/g/grombyang.txt
new file mode 100644
index 0000000..9cb1451
--- /dev/null
+++ b/src/logo/ascii/g/grombyang.txt
@@ -0,0 +1,18 @@
+ eeeeeeeeeeee
+ eeeeeeeeeeeeeeeee
+ eeeeeeeeeeeeeeeeeeeeeee
+ eeeee $2.o+ $1eeee
+ eeee $2`ooo/ $1eeee
+ eeee $2`+oooo: $1eeee
+eee $2`+oooooo: $1eee
+eee $2-+oooooo+: $1eee
+ee $2`/:oooooooo+: $1ee
+ee $2`/+ +++ +: $1ee
+ee $2+o+\ $1ee
+eee $2+o+\ $1eee
+eee $2// \ooo/ \\ $1eee
+ eee $2//++++oooo++++\\ $1eee
+ eeee $2::::++oooo+::::: $1eeee
+ eeeee $3Grombyang OS $1 eeee
+ eeeeeeeeeeeeeeeeeeeeeee
+ eeeeeeeeeeeeeeeee \ No newline at end of file
diff --git a/src/logo/ascii/g/guix.txt b/src/logo/ascii/g/guix.txt
new file mode 100644
index 0000000..a77ee77
--- /dev/null
+++ b/src/logo/ascii/g/guix.txt
@@ -0,0 +1,10 @@
+ .. `.
+ `--..```..` `..```..--`
+ .-:///-:::. `-:::///:-.
+ ````.:::` `:::.````
+ -//:` -::-
+ ://: -::-
+ `///- .:::`
+ -+++-:::.
+ :+/:::-
+ `-....` \ No newline at end of file
diff --git a/src/logo/ascii/g/guix_small.txt b/src/logo/ascii/g/guix_small.txt
new file mode 100644
index 0000000..19b87dd
--- /dev/null
+++ b/src/logo/ascii/g/guix_small.txt
@@ -0,0 +1,7 @@
+|.__ __.|
+|__ \ / __|
+ \ \ / /
+ \ \ / /
+ \ \ / /
+ \ \/ /
+ \__/ \ No newline at end of file
diff --git a/src/logo/ascii/g/gxde.txt b/src/logo/ascii/g/gxde.txt
new file mode 100644
index 0000000..388c377
--- /dev/null
+++ b/src/logo/ascii/g/gxde.txt
@@ -0,0 +1,20 @@
+ ################
+ ########################
+ ##########-- --##########
+ #######* ****** *#######
+ ###### --*######--- ######
+ ##### --- *#### #####
+ ##### *-- #*#*#* * #### #####
+#####* ##- ##*-#* ### ### *#####
+##### ###* -##*#* *# *# *### #####
+##### ###* -*##*-*## *#* ### #####
+##### #### - --#### - ##* ### #####
+##### *####* * - ###- ##* #####
+#####* #######- *###- ### *#####
+ #####* ***#####****--- ### *#####
+ ###### ----------- - ### ######
+ ###### ----- ### ######
+ ####### #######
+ ##########*----*##########
+ ######################
+ ##############
diff --git a/src/logo/ascii/h.inc b/src/logo/ascii/h.inc
new file mode 100644
index 0000000..9d471eb
--- /dev/null
+++ b/src/logo/ascii/h.inc
@@ -0,0 +1,211 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo H[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_HAIKU
+ // Haiku
+ {
+ .names = { "Haiku" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HAIKU,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HAIKU2
+ // Haiku2
+ {
+ .names = { "Haiku2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HAIKU2,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HAIKU_SMALL
+ // HaikuSmall
+ {
+ .names = { "Haiku_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_HAIKU_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HAMONIKR
+ // HamoniKR
+ {
+ .names = { "HamoniKR" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HAMONIKR,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_256 "99",
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HARDCLANZ
+ // HarDClanZ
+ {
+ .names = { "HarDClanZ" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HARDCLANZ,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_FREEBSD
+ // HardenedBSD
+ {
+ .names = { "HardenedBSD" },
+ .lines = FASTFETCH_DATATEXT_LOGO_FREEBSD,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HARMONYOS
+ // HarmonyOS
+ {
+ .names = { "HarmonyOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HARMONYOS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HASH
+ // Hash
+ {
+ .names = { "Hash" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HASH,
+ .colors = {
+ FF_COLOR_FG_256 "123",
+ FF_COLOR_FG_256 "123",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HELIUMOS
+ // HeliumOS
+ {
+ .names = { "HeliumOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HELIUMOS,
+ .colors = {
+ FF_COLOR_FG_256 "81",
+ },
+ .colorKeys = FF_COLOR_FG_256 "81",
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HCE
+ // Huawei Cloud EulerOS
+ {
+ .names = { "Huawei Cloud EulerOS", "hce" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HCE,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HUAYRA
+ // Huayra
+ {
+ .names = { "Huayra" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HUAYRA,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HYBRID
+ // Hybrid
+ {
+ .names = { "Hybrid" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HYBRID,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_LIGHT_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HYDROOS
+ // HydroOS
+ {
+ .names = { "HydroOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HYDROOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HYPROS
+ // HyprOS
+ {
+ .names = { "hypros" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HYPROS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HYPERBOLA
+ // Hyperbola
+ {
+ .names = { "Hyperbola" },
+ .lines = FASTFETCH_DATATEXT_LOGO_HYPERBOLA,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_HYPERBOLA_SMALL
+ // HyperbolaSmall
+ {
+ .names = { "Hyperbola_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_HYPERBOLA_SMALL,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/h/haiku.txt b/src/logo/ascii/h/haiku.txt
new file mode 100644
index 0000000..52863dd
--- /dev/null
+++ b/src/logo/ascii/h/haiku.txt
@@ -0,0 +1,12 @@
+ MMMM MMMM
+ MMMM MMMM
+ MMMM MMMM
+ MMMM MMMM
+ MMMM$2 .ciO| /YMMMMM*"
+$1 MMMM$2 .cOMMMMM|/MMMMM/`
+ , ,iMM|/MMMMMMMMMMMMMMM*
+ `*.__,-cMMMMMMMMMMMMMMMMM/`$1.MMM
+ MM$2MMMMMMM/`:MMM/ $1MMMM
+ MMMM MMMM
+ MMMM MMMM
+ """" """"
diff --git a/src/logo/ascii/h/haiku2.txt b/src/logo/ascii/h/haiku2.txt
new file mode 100644
index 0000000..f09f596
--- /dev/null
+++ b/src/logo/ascii/h/haiku2.txt
@@ -0,0 +1,17 @@
+$2 :dc'
+ 'l:;'$1,$2'ck. .;dc:.
+ co $1..$2k. .;; ':o.
+ co $1..$2k. ol $1.$20.
+ co $1..$2k. oc $1..$20.
+ co $1..$2k. oc $1..$20.
+.Ol,. co $1...''$2Oc;kkodxOdddOoc,.
+ ';lxxlxOdxkxk0kd$1oooll$2dl$1ccc:$2clxd;
+ ..$1oOolllllccccccc:::::$2od;
+ cx:ooc$1:::::::;$2cooolcX.
+ cd$1.$2''cloxdoollc' $1...$20.
+ cd$1......$2k;$1.$2xl$1.... .$20.
+ .::c$1;..$2cx;$1.$2xo$1..... .$20.
+ '::c'$1...$2do$1..... .$2K,
+ cd,.$1....:$2O,$1
+ ':clod:'$1
+ $1
diff --git a/src/logo/ascii/h/haiku_small.txt b/src/logo/ascii/h/haiku_small.txt
new file mode 100644
index 0000000..4b85e07
--- /dev/null
+++ b/src/logo/ascii/h/haiku_small.txt
@@ -0,0 +1,8 @@
+ ,^,
+ / \
+*--_ ; ; _--*
+\ '" "' /
+ '. .'
+.-'" "'-.
+ '-.__. .__.-'
+ |_| \ No newline at end of file
diff --git a/src/logo/ascii/h/hamonikr.txt b/src/logo/ascii/h/hamonikr.txt
new file mode 100644
index 0000000..ff8cd91
--- /dev/null
+++ b/src/logo/ascii/h/hamonikr.txt
@@ -0,0 +1,23 @@
+ cO0Ox.
+ .ldddddddo.
+ .lddddddddddo
+ 'lddddddddddddc
+ ,oddddddddddddd;
+ 'ldddddddddddddo.
+ .oddddddddddddddc.
+ ,dddddddddddddddo.
+ ,ccoooooooocoddooo:
+ ,cooooooooooooooooop $3 c000x.
+$1.cooooooooooooooopcllll$3 .cddddddo.
+$1coooooooooooooop' .qlll.$3 .ddoooooooo;
+$1cooooooooooc; $3'qlllp. .ddoooooooooo;
+$1.cooooooc; $3'lllbc...coooooooooooo;
+$1 .cooc' $3.llllcoooooooooooooo.
+ .coooooooooooooop:
+ .coooooooooooooop'
+ .cooooooooooooop.
+ .cooooooooooooop.
+ .coooooooooooop.
+ .cooooooooooop.
+ .cooooooooop.
+ .cooooop' \ No newline at end of file
diff --git a/src/logo/ascii/h/hardclanz.txt b/src/logo/ascii/h/hardclanz.txt
new file mode 100644
index 0000000..7c289df
--- /dev/null
+++ b/src/logo/ascii/h/hardclanz.txt
@@ -0,0 +1,19 @@
+$1 ........::::....
+ ::################::..
+ :########################:.
+ :######**###################:
+ :###$2&&&&^$1############ $2&$1#######:
+ :#$2&&&&&$1.:##############:$2^&o$1`:###:
+ :#$2&&&&$1.:#################:.$2&&&$1`###:
+ :##$2&^$1:######################:$2^&&$1::##:
+ :#############################:$2&$1:##::
+ :##########$2@@$1###########$2@@$1#####:.###:
+:#########$2@@$3o$2@@$1#########$2@@$3o$2@@$1########:
+:#######:$2@@$3o$50$3o$2@@@@$1###$2@@@@$3o$50$3o$2@@$1######: :
+ :######:$2@@@$3o$2@@@@@@$1V$2@@@@@@$3o$2@@@$1######:
+ :#####:$2@@@@@@@@@@@@@@@@@@@$1:####;
+ :####:.$2@@@@@@@@@@@@@@@@$1:#####:
+ `:####:.$2@@@@@@@@@@@@@@$1:#####:
+ ``:##:.$2@@@@@@@@@@@@$1^## # :
+ : ## $2\@@@;@@@/ $1:: # :
+ $2 VVV \ No newline at end of file
diff --git a/src/logo/ascii/h/harmonyos.txt b/src/logo/ascii/h/harmonyos.txt
new file mode 100644
index 0000000..cc3b7a4
--- /dev/null
+++ b/src/logo/ascii/h/harmonyos.txt
@@ -0,0 +1,19 @@
+ ....-----....
+ .-+##############+-..
+ .+######################+..
+ .########+- -++#######-.
+ .+######- -######+.
+ .######. .######..
+ .+####+ +#####..
+ .-####+. +####+.
+ .+####+ -####+..
+ ..+####+ -####+...
+$2......--$1+####+$2--.......................--$1+####+$2-.........
+ ..$1--++++-$2...... ...$1-++++--$2..
+ ..$1--+++--$2... ...$1-+++++-$2..
+ .$1--+++--$2.... ....$1--+++-$2...
+ ..$1-++++++--$2..... ......$1---+---$2...
+ ...$1-+++++++++-----$2..$1----++++++--$2..
+ ...$1---++++++----++++++++---$2...
+ .....$1-----+++-----$2...
+ ...$1---$2... \ No newline at end of file
diff --git a/src/logo/ascii/h/hash.txt b/src/logo/ascii/h/hash.txt
new file mode 100644
index 0000000..5849628
--- /dev/null
+++ b/src/logo/ascii/h/hash.txt
@@ -0,0 +1,13 @@
+ + ###### +
+ ### ###### ###
+ ##### ###### #####
+ ###### ###### ######
+
+####### '"###### '"########
+####### ###### ########
+####### ###### ########
+
+ ###### '"###### '"######
+ ##### ###### #####
+ ### ###### ###
+ ~ ###### ~ \ No newline at end of file
diff --git a/src/logo/ascii/h/hce.txt b/src/logo/ascii/h/hce.txt
new file mode 100644
index 0000000..8b5ea50
--- /dev/null
+++ b/src/logo/ascii/h/hce.txt
@@ -0,0 +1,24 @@
+ ti
+ jGGGGj
+ tGGGGGGt
+ ,LGGLGGGGGGGG,
+ jGGGGjGGGGGGGGGj
+ GGGGGGGGGGGGGGGGGGGG
+iGGGGGGt tLLLLLLi
+,GGGGGi iGGGGG,
+,jGGGG LGGGG,
+,LjGGj LLLL,
+,LLGG. iiii.
+,LLj
+,LLj jLL,
+,LLLL. GGLL,
+,LLLLt GGLL,
+,LGGGG LGGGj,
+,GGGGGi iGGGGG,
+iGGGGGGj tGGGGGG,
+ GGGGGGGGGGGGGGGGGGGG
+ jGGGGGGGGGjGGGGj
+ ,LGGGGGGGGGGG,
+ tGGGGGGt
+ jGGGGj
+ it \ No newline at end of file
diff --git a/src/logo/ascii/h/heliumos.txt b/src/logo/ascii/h/heliumos.txt
new file mode 100644
index 0000000..30430cd
--- /dev/null
+++ b/src/logo/ascii/h/heliumos.txt
@@ -0,0 +1,20 @@
+ ,,╥╥╥╦╦╦╥╥,,
+ ,╓╦Ñ╨^`_,,,,,,. `"╨╩Nw
+ ,╥Ñ^`,╥╦╫╫╫╫╫╫╫╫╫╫╫╫ÑN≥,`╙Ñ╦_
+ ,j╩_,╦Ñ╙╙╩╫╫╫╫╫╫╫╫╫╫╫╫╫Ñ╨╨╩N,`╨N,
+ j╩_╓╫╫Ñ ]N ]╫╫╫╫╫╫╫╫╫╫╫╫_]N ]╫Ñw_╩N
+ ,╫^ ]╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫N_╙╫
+ _╫`,╫╫╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫╫╫ `╫
+ ÑH ╫╫╫╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫╫╫╫_]Ñ
+j╫ ]╫╫╫╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫╫╫╫H ╫H
+j╫ ╟╫╫╫╫╫╫Ñ ╫╫,,,,,,,,,,,,,,,╫╫ ]╫╫╫╫╫╫╫ ╠N
+j╫ ]╫╫╫╫╫╫Ñ ╫╫```````````````╫╫ ]╫╫╫╫╫╫╫ 1╡
+ ╫_j╫╫╫╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫╫╫╫N ╫H
+ ╟H_╫╫╫╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫╫╫╫ jÑ
+ _╫╕ ╫╫╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫╫╫ ,╫
+ ╫╥ ╩╫╫╫Ñ ╫╫ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╫╫ ]╫╫╫Ñ ╓Ñ
+ _╚N_`╫╫Ñ ╩╩ ]╫╫╫╫╫╫╫╫╫╫╫╫ ╩╩ 1╫Ñ`,jÑ_
+ `╩N,`╨N╦╦Ñ╫╫╫╫╫╫╫╫╫╫╫╫╫N╦╥]╩`,╦╩`
+ _╙Ñ╦,`"╩Ñ╫╫╫╫╫╫╫╫╫╫╫Ñ╩^`,╥Ñ^_
+ _"╨N╦w,_ `````_ ,╓╦N╩^
+ __`"^╙╙╨╙╙^^`__ \ No newline at end of file
diff --git a/src/logo/ascii/h/huayra.txt b/src/logo/ascii/h/huayra.txt
new file mode 100644
index 0000000..90a774c
--- /dev/null
+++ b/src/logo/ascii/h/huayra.txt
@@ -0,0 +1,17 @@
+$2 `
+ . . `
+ `` - . .
+ `.` -` `. - `` .`
+ ..`-`-` + - / .` ```
+ .--.+--`+:- :/.` .-``.`
+ -+/so::h:.d-`./:`.`
+ :hNhyMomy:os-...-. ````
+ .dhsshNmNhoo+:-``.```
+ $1`ohy:-$2NMds+::-.``
+ ````$1.hNN+`$2mMNho/:-....````
+ ````` `../dmNhoo+/:..``
+ ```` .dh++o/:....`
+.+s/` `/s-.-.:.`` ````
+::` `::`..`
+ .` `..
+ `` \ No newline at end of file
diff --git a/src/logo/ascii/h/hybrid.txt b/src/logo/ascii/h/hybrid.txt
new file mode 100644
index 0000000..ddfc3ba
--- /dev/null
+++ b/src/logo/ascii/h/hybrid.txt
@@ -0,0 +1,16 @@
+$1 / $2#
+$1////& $2#####
+$1///// $2######
+$1///// ////////// $2######
+$1///// //////////////////// $2######
+$1////////////////////////// $2######
+$1///////// /// $2######
+$1/////// / $2######
+$1////// $2######
+$1///// $2######
+$1///// $2######
+$1///// $2######
+$1///// $2######
+$1///// $2######
+$1///// $2#########
+$1////& $2######## \ No newline at end of file
diff --git a/src/logo/ascii/h/hydroos.txt b/src/logo/ascii/h/hydroos.txt
new file mode 100644
index 0000000..defd799
--- /dev/null
+++ b/src/logo/ascii/h/hydroos.txt
@@ -0,0 +1,8 @@
+ _ _ _ ____ _____
+| | | | | | / __ \ / ____|
+| |__| |_ _ __| |_ __ ___ | | | | (___
+| __ | | | |/ _` | '__/ _ \| | | |\___ \
+| | | | |_| | (_| | | | (_) | |__| |____) |
+|_| |_|\__, |\__,_|_| \___/ \____/|_____/
+ __/ |
+ |___/ \ No newline at end of file
diff --git a/src/logo/ascii/h/hyperbola.txt b/src/logo/ascii/h/hyperbola.txt
new file mode 100644
index 0000000..3e5cbaa
--- /dev/null
+++ b/src/logo/ascii/h/hyperbola.txt
@@ -0,0 +1,16 @@
+ WW
+ KX W
+ WO0W NX0O
+ NOO0NW WNXK0OOKW
+ W0OOOOOOOOOOOOKN
+ N0OOOOOOO0KXW
+ WNXXXNW
+ NXK00000KN
+ WNK0OOOOOOOOOO0W
+ NK0OOOOOOOOOOOOOO0W
+ X0OOOOOOO00KK00OOOOOK
+ X0OOOO0KNWW WX0OO0W
+ X0OO0XNW KOOW
+ N00KNW KOW
+ NKXN W0W
+WW W \ No newline at end of file
diff --git a/src/logo/ascii/h/hyperbola_small.txt b/src/logo/ascii/h/hyperbola_small.txt
new file mode 100644
index 0000000..c2b7c38
--- /dev/null
+++ b/src/logo/ascii/h/hyperbola_small.txt
@@ -0,0 +1,7 @@
+ |`__.`/
+ \____/
+ .--.
+ / \
+ / ___ \
+ / .` `.\
+/.` `.\ \ No newline at end of file
diff --git a/src/logo/ascii/h/hypros.txt b/src/logo/ascii/h/hypros.txt
new file mode 100644
index 0000000..5b7d4dd
--- /dev/null
+++ b/src/logo/ascii/h/hypros.txt
@@ -0,0 +1,17 @@
+ ___
+ ,adZZEEEE#&$2>=x.
+ $1,zAP*~'$4_,-$2'~*VM$2N&x.
+ $1,%&P^`$4<$3,.$4<<$2,-===--.N>x
+ $1.%M7$4//$3,%^$2,x<3#$13EEbo$2<&>&b
+ $1&#/$4/$3.<^$4/$2x<>^$4-.`$1`+&WW$2<&N&;
+$1/#/$4//$34$4//$2/W/ $4^+.`$1`###$2NM\
+$1##'$4|$3.l$4|$2,&/ $4`.',$1I#I$2HI#
+$1#I$4||$3`I$4|$2(#( $3)`'$1)##$2H~^
+$1@\$4|||$3\$4\$2`X\ $3///$1,##%V$3'/
+$4\\\\\\$3Y,$2*@b, $3.-+//$1/&#%#/$3,'
+$4`\\\\$2,.$4\$3<$2`*$3^`x<$1,z<#&#x"$3,'
+ $3`x<<$2`Xx,$3`<_`$1+{##&@P^$4'>$3'
+ $3`<_<<$2^<\-.$3`*`>$1<^'$4,-'
+ $3`<_=-$2^\Xx$1XX\.$3+<.
+ $3`^<_-$2^<Xx$1#X\x$3+'-.
+ $3`"^^$2+*$1*``` $3``` \ No newline at end of file
diff --git a/src/logo/ascii/i.inc b/src/logo/ascii/i.inc
new file mode 100644
index 0000000..3b41f46
--- /dev/null
+++ b/src/logo/ascii/i.inc
@@ -0,0 +1,83 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo I[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_IGLUNIX
+ // Iglunix
+ {
+ .names = { "Iglunix", "Iglu" },
+ .lines = FASTFETCH_DATATEXT_LOGO_IGLUNIX,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_INSTANTOS
+ // InstantOS
+ {
+ .names = { "InstantOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_INSTANTOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_INTERIX
+ // Interix
+ {
+ .names = { "Interix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_INTERIX,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_IRIX
+ // IRIX
+ {
+ .names = { "IRIX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_IRIX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_IRONCLAD
+ // Ironclad
+ {
+ .names = { "Ironclad" },
+ .lines = FASTFETCH_DATATEXT_LOGO_IRONCLAD,
+ .colors = {
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ITC
+ // Itc
+ {
+ .names = { "Itc" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ITC,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/i/iglunix.txt b/src/logo/ascii/i/iglunix.txt
new file mode 100644
index 0000000..7378f99
--- /dev/null
+++ b/src/logo/ascii/i/iglunix.txt
@@ -0,0 +1,12 @@
+ |
+ | |
+ |
+| ________
+| /\ | \
+ / \ | \ |
+ / \ \ |
+/ \________\
+\ / /
+ \ / /
+ \ / /
+ \/________/ \ No newline at end of file
diff --git a/src/logo/ascii/i/instantos.txt b/src/logo/ascii/i/instantos.txt
new file mode 100644
index 0000000..caf7b2c
--- /dev/null
+++ b/src/logo/ascii/i/instantos.txt
@@ -0,0 +1,20 @@
+ 'cx0XWWMMWNKOd:'.
+ .;kNMMMMMMMMMMMMMWNKd'
+ 'kNMMMMMMWNNNWMMMMMMMMXo.
+,0MMMMMW0o;'..,:dKWMMMMMWx.
+OMMMMMXl. .xNMMMMMNo
+WMMMMNl .kWWMMMMO'
+MMMMMX; oNWMMMMK,
+NMMMMWo .OWMMMMMK,
+kWMMMMNd. ,kWMMMMMMK,
+'kWMMMMWXxl:;;:okNMMMMMMMMK,
+ .oXMMMMMMMWWWMMMMMMMMMMMMK,
+ 'oKWMMMMMMMMMMMMMMMMMMMK,
+ .;lxOKXXXXXXXXXXXXXXXO;......
+ ................,d0000000kd:.
+ .kMMMMMMMMMW0;
+ .kMMMMMMMMMMMX
+ .xMMMMMMMMMMMW
+ cXMMMMMMMMMM0
+ :0WMMMMMMNx,
+ .o0NMWNOc. \ No newline at end of file
diff --git a/src/logo/ascii/i/interix.txt b/src/logo/ascii/i/interix.txt
new file mode 100644
index 0000000..056359f
--- /dev/null
+++ b/src/logo/ascii/i/interix.txt
@@ -0,0 +1,17 @@
+ .$3.
+$1 75$3G!
+$1 ^?PG$3&&J.
+$1 :!5GPP$3&&&B!
+$1 :YPPPPP$3&&&&&Y:
+$1 !5PPPPPP$3&&&&&&B!
+$1 :?PPPPPPPP$3&&&&&&&&Y~
+$1 !5PPPPPPPPP$3###&&&&&&B7
+$1 :?PPPP5555555$3B####&&&&&&5:
+$1 ~5PPPP555YJ$57!~7?$35B###&&&&&B?.
+$1 .:JPPPP5555Y$5?^....:^?$3G####&&&&&5:
+$1 75PPP555555Y$57:....:^!$35#####&&&&&B7.
+$1 :JPPPP$2555555YY?$5~::::^~$27YPGBB###$3&&&&&5^
+$175$2GGPPPPPP555555YJ?77??YYYYYY55PPGGB#$3&B?
+$2~!!7JY5PGGBBBBBBBBGGGGGGGBGGGGGP5YJ?7~~~
+ .::^~7?JYPGBB#BGPYJ?7!7^:.
+ ..:^... \ No newline at end of file
diff --git a/src/logo/ascii/i/irix.txt b/src/logo/ascii/i/irix.txt
new file mode 100644
index 0000000..3b15e78
--- /dev/null
+++ b/src/logo/ascii/i/irix.txt
@@ -0,0 +1,19 @@
+ ./ohmNd/ +dNmho/-
+ `:+ydNMMMMMMMM.-MMMMMMMMMdyo:.
+ `hMMMMMMNhs/sMMM-:MMM+/shNMMMMMMh`
+ -NMMMMMmo-` /MMM-/MMM- `-omMMMMMN.
+ `.`-+hNMMMMMNhyMMM-/MMMshmMMMMMmy+...`
++mMNds:-:sdNMMMMMMMyyMMMMMMMNdo:.:sdMMm+
+dMMMMMMmy+.-/ymNMMMMMMMMNmy/-.+hmMMMMMMd
+oMMMMmMMMMNds:.+MMMmmMMN/.-odNMMMMmMMMM+
+.MMMM-/ymMMMMMmNMMy..hMMNmMMMMMmy/-MMMM.
+ hMMM/ `/dMMMMMMMN////NMMMMMMMd/. /MMMh
+ /MMMdhmMMMmyyMMMMMMMMMMMMhymMMMmhdMMM:
+ `mMMMMNho//sdMMMMM//NMMMMms//ohNMMMMd
+ `/so/:+ymMMMNMMMM` mMMMMMMMmh+::+o/`
+ `yNMMNho-yMMMM` NMMMm.+hNMMNh`
+ -MMMMd: oMMMM. NMMMh :hMMMM-
+ -yNMMMmooMMMM- NMMMyomMMMNy-
+ .omMMMMMMMM-`NMMMMMMMmo.
+ `:hMMMMMM. NMMMMMh/`
+ .odNm+ /dNms. \ No newline at end of file
diff --git a/src/logo/ascii/i/ironclad.txt b/src/logo/ascii/i/ironclad.txt
new file mode 100644
index 0000000..308f465
--- /dev/null
+++ b/src/logo/ascii/i/ironclad.txt
@@ -0,0 +1,11 @@
+ &#BGPPPPPG#&
+ B5?77!!?YJJ7!7YBB&
+ &G5YJ77!7JYYYYYBPJ&PY#
+ #PYYYYYY?!?YYYYY7?7JP5JJ
+ B?YYYYYY7!!7JYYYYJ!!?JJJ5
+ && B7?J?77?7!!!!!77777!7Y5YYBBPGGG&
+G77?YBB!!!!!!!!!!!!!JYJ??7JYJJY# PYPPG&
+J777JB?!7JJ???!!!7?JYYYYYPJ!7JB
+GYYG #JJJJJ??7!!!JYYY5PGB&GB&
+ #Y!?GB5YYJY5PG###&
+ GJJP \ No newline at end of file
diff --git a/src/logo/ascii/i/itc.txt b/src/logo/ascii/i/itc.txt
new file mode 100644
index 0000000..4bd2826
--- /dev/null
+++ b/src/logo/ascii/i/itc.txt
@@ -0,0 +1,10 @@
+$1....................-==============+...
+$1....................-==============:...
+$1...:===========-....-==============:...
+$1...-===========:....-==============-...
+$1....*==========+........-::********-...
+$1....*===========+.:*====**==*+-.-......
+$1....:============*+-..--:+**====*---...
+$1......::--........................::...
+$1..+-:+-.+::*:+::+:-++::++-.:-.*.:++:++.
+$1..:-:-++++:-::--:+::-::.:++-++:++--:-:. \ No newline at end of file
diff --git a/src/logo/ascii/j.inc b/src/logo/ascii/j.inc
new file mode 100644
index 0000000..023f66d
--- /dev/null
+++ b/src/logo/ascii/j.inc
@@ -0,0 +1,21 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo J[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_JANUSLINUX
+ // Januslinux
+ {
+ .names = { "januslinux", "janus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_JANUSLINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/j/januslinux.txt b/src/logo/ascii/j/januslinux.txt
new file mode 100644
index 0000000..e4708b6
--- /dev/null
+++ b/src/logo/ascii/j/januslinux.txt
@@ -0,0 +1,24 @@
+ 'l:
+ loooooo
+ loooo coooool
+ looooooooooooooooooool
+ looooooooooooooooo
+ lool cooo
+ coooooooloooooooo
+ clooooo ;lood cloooo
+ :loooocooo cloo loooo
+ loooo :ooooool loooo
+looo cooooo cooooo
+looooooooooooo ;loooooo $2looooooc
+$1looooooooo loo cloooooool $2looooc
+$1 cooo cooooooooooo $2looolooooool
+$1 cooo: $2coooooooooooooooooool
+ loooooooooooolc: loooc;
+ cooo: loooooooooooc
+ ;oool looooooo:
+ coool olc,
+ looooc ,,
+ coooooc loc
+ :oooool, coool:, looool:,
+ looool: ooooooooooooooo:
+ cooolc .ooooooooooool \ No newline at end of file
diff --git a/src/logo/ascii/k.inc b/src/logo/ascii/k.inc
new file mode 100644
index 0000000..354b702
--- /dev/null
+++ b/src/logo/ascii/k.inc
@@ -0,0 +1,239 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo K[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_KAISEN
+ // Kaisen
+ {
+ .names = { "Kaisen" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KAISEN,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KALI
+ // Kali
+ {
+ .names = { "Kali" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KALI,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KALI_SMALL
+ // KaliSmall
+ {
+ .names = { "Kali_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_KALI_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KALPA_DESKTOP
+ // Kalpa Desktop
+ {
+ .names = { "kalpa-desktop" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KALPA_DESKTOP,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KAOS
+ // KaOS
+ {
+ .names = { "KaOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KAOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KERNELOS
+ // KernelOS
+ {
+ .names = { "KernelOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KERNELOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KDELINUX
+ // KDELinux
+ {
+ .names = { "kdelinux", "kde-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KDELINUX,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KDENEON
+ // KDE Neon
+ {
+ .names = { "KDE Neon" }, // Distro ID is "neon"; Distro name is "KDE Neon"
+ .lines = FASTFETCH_DATATEXT_LOGO_KDENEON,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KIBAOS
+ // KibaOS
+ {
+ .names = { "KibaOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KIBAOS,
+ .colors = {
+ FF_COLOR_BG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KIBOJOE
+ // Kibojoe
+ {
+ .names = { "Kibojoe" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KIBOJOE,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KISS
+ // KISSLinux
+ {
+ .names = { "KISS", "kiss-linux", "kisslinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KISS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KISS2
+ // KISSLinux2
+ {
+ .names = { "kiss2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KISS2,
+ .colors = {
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KOGAION
+ // Kogaion
+ {
+ .names = { "Kogaion" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KOGAION,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KORORA
+ // Korora
+ {
+ .names = { "Korora" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KORORA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KRASSOS
+ // KrassOS
+ {
+ .names = { "KrassOS", "Krass" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KRASSOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KSLINUX
+ // KSLinux
+ {
+ .names = { "KSLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KSLINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KUBUNTU
+ // Kubuntu
+ {
+ .names = { "Kubuntu", "kubuntu-linux", "kde-ubuntu" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KUBUNTU,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_KYLIN
+ // Kylin
+ {
+ .names = { "Kylin" },
+ .lines = FASTFETCH_DATATEXT_LOGO_KYLIN,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/k/kaisen.txt b/src/logo/ascii/k/kaisen.txt
new file mode 100644
index 0000000..bde443b
--- /dev/null
+++ b/src/logo/ascii/k/kaisen.txt
@@ -0,0 +1,17 @@
+ `:+oyyho.
+ `+:`sdddddd/
+ `+` :ho oyo++ohds-`
+ .ho :dd. .: `sddddddhhyso+/-
+ ody.ddd-:yd- +hysssyhddddddddho`
+ yddddddhddd` ` `--` -+hddddddh.
+ hddy-+dddddy+ohh/..+sddddy/:::+ys
+ :ddd/sdddddddddd- oddddddd `
+ `yddddddddddddddd/ /ddddddd/
+:. :ydddddddddddddddddo..sddddddy/`
+odhdddddddo- `ddddh+-``....-+hdddddds.
+-ddddddhd: /dddo -ydddddddhdddddddd-
+ /hdy:o - `:sddds .`./hdddddddddddddo
+ `/- `+hddyosy+ :dddddddy-.-od/
+ :sydds -hddddddd` /
+ .+shd- `:ohddddddddd`
+ `:+ooooooooooooo: \ No newline at end of file
diff --git a/src/logo/ascii/k/kali.txt b/src/logo/ascii/k/kali.txt
new file mode 100644
index 0000000..6cc6c00
--- /dev/null
+++ b/src/logo/ascii/k/kali.txt
@@ -0,0 +1,21 @@
+..............
+ ..,;:ccc,.
+ ......''';lxO.
+.....''''..........,:ld;
+ .';;;:::;,,.x,
+ ..'''. 0Xxoc:,. ...
+ .... ,ONkc;,;cokOdc',.
+ . OMo ':$2dd$1o.
+ dMc :OO;
+ 0M. .:o.
+ ;Wd
+ ;XO,
+ ,d0Odlc;,..
+ ..',;:cdOOd::,.
+ .:d;.':;.
+ 'd, .'
+ ;l ..
+ .o
+ c
+ .'
+ . \ No newline at end of file
diff --git a/src/logo/ascii/k/kali_small.txt b/src/logo/ascii/k/kali_small.txt
new file mode 100644
index 0000000..0bf2ecc
--- /dev/null
+++ b/src/logo/ascii/k/kali_small.txt
@@ -0,0 +1,16 @@
+ -#. #
+ @###
+ -######
+ @#########
+=##. .#####
+## ## ##
+## ## #
+## @###
+##. ###
+ ##% ##-
+ -##% -*
+ :*##+
+ :*#*
+ -#
+ @
+ : \ No newline at end of file
diff --git a/src/logo/ascii/k/kalpa_desktop.txt b/src/logo/ascii/k/kalpa_desktop.txt
new file mode 100644
index 0000000..3ca6be2
--- /dev/null
+++ b/src/logo/ascii/k/kalpa_desktop.txt
@@ -0,0 +1,22 @@
+ +++
+ ++++++++ +
+ ++++++++++++ +++
+ ++++++++++* +++++++++ ++++
+ +++++++ ++++++++++++++++++
+ ++++ ++++ +++++
+ ++++ +++ ++++
+ +++++ +++ ++++++ +++
++++++++++++++ +++++++++ +++
++++++++++++++ +++ +++ +++
++++++++++++++ ++++ +++ +++
+ ++++++++ +++ +++++++ +++
+ +++++++ +++
+ ++++++++ ++++ ++
+ +++++++++++ +++++ +++++
+ ++++++++ ++++++++++++ +++++++++
+ ++++++++++++++ ++++++++++++++++
+ ++++++++++++++++++++++++ +++++++++
+ ++++++ +++++++++ ++++
+ + +++++++
+ +++++++
+ +++++ \ No newline at end of file
diff --git a/src/logo/ascii/k/kaos.txt b/src/logo/ascii/k/kaos.txt
new file mode 100644
index 0000000..481bf51
--- /dev/null
+++ b/src/logo/ascii/k/kaos.txt
@@ -0,0 +1,16 @@
+ ..
+ ..... ..OSSAAAAAAA..
+ .KKKKSS. .SSAAAAAAAAAAA.
+.KKKKKSO. .SAAAAAAAAAA...
+KKKKKKS. .OAAAAAAAA.
+KKKKKKS. .OAAAAAA.
+KKKKKKS. .SSAA..
+.KKKKKS..OAAAAAAAAAAAA........
+ DKKKKO.=AA=========A===AASSSO..
+ AKKKS.==========AASSSSAAAAAASS.
+ .=KKO..========ASS.....SSSSASSSS.
+ .KK. .ASS..O.. =SSSSAOSS:
+ .OK. .ASSSSSSSO...=A.SSA.
+ .K ..SSSASSSS.. ..SSA.
+ .SSS.AAKAKSSKA.
+ .SSS....S.. \ No newline at end of file
diff --git a/src/logo/ascii/k/kdelinux.txt b/src/logo/ascii/k/kdelinux.txt
new file mode 100644
index 0000000..788dd4e
--- /dev/null
+++ b/src/logo/ascii/k/kdelinux.txt
@@ -0,0 +1,14 @@
+ $1kB@BB >BWWmm$2
+ $1$BBBB .kBBBBB"$2
+ ,mp. $1%BBBB {BBBBBF$2
+ '%BBBBmm $1$BBBR,$BBBBB`$2
+ `TBBB"` $1$BBBBBBBBBF$2
+ kBF $1%BBBRRBBBBB.$2
+,mmWBBF $1kBBBB `%BBBBm$2
+T%BBBB $1%BBBB %BBBBBn$2
+ `"T%m $1$BBBB "%BBBBm$2
+ TBm $1"*""" $2,m.$1"F""`$2
+ {BBBBm,. ,zmBBBm.
+ !%BBBP"T%BBBBBB""R%BBB
+ `` %BBBF ``
+ !BBP \ No newline at end of file
diff --git a/src/logo/ascii/k/kdeneon.txt b/src/logo/ascii/k/kdeneon.txt
new file mode 100644
index 0000000..716339e
--- /dev/null
+++ b/src/logo/ascii/k/kdeneon.txt
@@ -0,0 +1,19 @@
+ `..---+/---..`
+ `---.`` `` `.---.`
+ .--.` `` `-:-.
+ `:/: `.----//----.` :/-
+ .:. `---` `--.` .:`
+ .:` `--` .:- `:.
+ `/ `:. `.-::-.` -:` `/`
+ /. /. `:++++++++:` .: .:
+`/ .: `+++++++++++/ /` `+`
+/+` -- .++++++++++++` :. .+:
+`/ .: `+++++++++++/ /` `+`
+ /` /. `:++++++++:` .: .:
+ ./ `:. `.:::-.` -:` `/`
+ .:` `--` .:- `:.
+ .:. `---` `--.` .:`
+ `:/: `.----//----.` :/-
+ .-:.` `` `-:-.
+ `---.`` `` `.---.`
+ `..---+/---..` \ No newline at end of file
diff --git a/src/logo/ascii/k/kernelos.txt b/src/logo/ascii/k/kernelos.txt
new file mode 100644
index 0000000..f76fc26
--- /dev/null
+++ b/src/logo/ascii/k/kernelos.txt
@@ -0,0 +1,19 @@
+ .''''....''''.
+ .''... ...''.
+ ''.. ..''
+ '.. ..''
+ .'. .,,'.. .',,,' ..'.
+ .'. .,,,,' .,,,,,' .'.
+ .'. .,,,,' .,,,,,. .'.
+ '.. .,,,,'',,,,;. .''
+.'. .,,,,,,,;;. ..'
+.'. .,,,,;;;;;$2, $1..'.
+ '.. .,;;;,$2';;;;;, $1..'
+ .'. .;;$2;;' .;;:::: $1.,.
+ '.. $2.;;;;' .::::::. $1.,'
+ '.. $2.;;;;' .::::::. $1.,$2'$1
+ .'.. $2.',.
+ $1',.. $2.','
+ $1.,,... $2..',,.
+ ..,,''........',,,.
+ ...... \ No newline at end of file
diff --git a/src/logo/ascii/k/kibaos.txt b/src/logo/ascii/k/kibaos.txt
new file mode 100644
index 0000000..b9ee09a
--- /dev/null
+++ b/src/logo/ascii/k/kibaos.txt
@@ -0,0 +1,6 @@
+ _ ___ _ ___ ____
+| |/ (_) |__ __ _ / _ \/ ___|
+| ' /| | '_ \ / _` | | | \___ \
+| . \| | |_) | (_| | |_| |___) |
+|_|\_\_|_.__/ \__,_|\___/|____/
+
diff --git a/src/logo/ascii/k/kibojoe.txt b/src/logo/ascii/k/kibojoe.txt
new file mode 100644
index 0000000..3afc7eb
--- /dev/null
+++ b/src/logo/ascii/k/kibojoe.txt
@@ -0,0 +1,13 @@
+$3 ./+oooooo+/.
+ -/+ooooo+/:.`
+ $1`$3yyyo$2+++/++$3osss$1.
+ $1+NMN$3yssssssssssss$1.
+ $1.dMMMMN$3sssssssssssy$1Ns`
+ +MMMMMMMm$3sssssssssssh$1MNo`
+ `hMMMMMNNNMd$3sssssssssssd$1MMN/
+ .$3syyyssssssy$1NNmmmmd$3sssss$1hMMMMd:
+ -NMmh$3yssssssssyhhhhyssyh$1mMMMMMMMy`
+ -NMMMMMNN$3mdhyyyyyyyhdm$1NMMMMMMMMMMMN+
+`NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd.
+ods+/:-----://+oyydmNMMMMMMMMMMMMMMMMMN-
+` .-:+osyhhdmmNNNmdo \ No newline at end of file
diff --git a/src/logo/ascii/k/kiss.txt b/src/logo/ascii/k/kiss.txt
new file mode 100644
index 0000000..275012a
--- /dev/null
+++ b/src/logo/ascii/k/kiss.txt
@@ -0,0 +1,7 @@
+ $3 ___
+ ($2.· $3|
+ ($1<> $3|
+ / $2__$3 \
+ ( $1/ \ $3/|
+$1_$3/\ $2__)$3/$1_$3)
+$1\/$3-____$1\/$2 \ No newline at end of file
diff --git a/src/logo/ascii/k/kiss2.txt b/src/logo/ascii/k/kiss2.txt
new file mode 100644
index 0000000..1fbd6ae
--- /dev/null
+++ b/src/logo/ascii/k/kiss2.txt
@@ -0,0 +1,11 @@
+ ██████ ██████
+ ██$2██████$1████$2██████$1██
+ ██$3████$2████████████████$1██
+ ██$2██$3████$2██████████████████$1██
+██$2██$3██$2████$3████████████$2████████$1██
+██$2██████$3████████████████$2██████$1██
+██$2████████████████████████████$1██
+ ██$2████████████████████████$1██
+ ██$2██████$3████████$2██████$1██
+ ████$2████████████$1████
+ ████████████ \ No newline at end of file
diff --git a/src/logo/ascii/k/kogaion.txt b/src/logo/ascii/k/kogaion.txt
new file mode 100644
index 0000000..07c6226
--- /dev/null
+++ b/src/logo/ascii/k/kogaion.txt
@@ -0,0 +1,20 @@
+ ;; ,;
+ ;;; ,;;
+ ,;;;; ;;;;
+ ,;;;;;;;; ;;;;
+ ;;;;;;;;;;; ;;;;;
+ ,;;;;;;;;;;;; ';;;;;,
+ ;;;;;;;;;;;;;;, ';;;;;;;
+ ;;;;;;;;;;;;;;;;;, ';;;;;
+; ';;;;;;;;;;;;;;;;;;, ;;;
+;;;, ';;;;;;;;;;;;;;;;;;;,;;
+;;;;;, ';;;;;;;;;;;;;;;;;;,
+;;;;;;;;, ';;;;;;;;;;;;;;;;,
+;;;;;;;;;;;;, ';;;;;;;;;;;;;;
+';;;;;;;;;;;;; ';;;;;;;;;;;;;
+ ';;;;;;;;;;;;;, ';;;;;;;;;;;
+ ';;;;;;;;;;;;; ;;;;;;;;;;
+ ';;;;;;;;;;;; ;;;;;;;;
+ ';;;;;;;; ;;;;;;
+ ';;;;; ;;;;
+ ';;; ;; \ No newline at end of file
diff --git a/src/logo/ascii/k/korora.txt b/src/logo/ascii/k/korora.txt
new file mode 100644
index 0000000..26135c9
--- /dev/null
+++ b/src/logo/ascii/k/korora.txt
@@ -0,0 +1,16 @@
+$2 ____________
+ _add55555555554$1:
+ _w?'$1``````````'$2)k$1:
+ _Z'$1`$2 ]k$1:
+ m($1`$2 )k$1:
+ _.ss$1`$2m[$1`$2, ]e$1:
+ .uY"^`$1`$2Xc$1`$2?Ss. d($1`
+ jF'$1`$2 `@. $1`$2Sc .jr$1`
+ jr$1`$2 `?n_ $1`$2$; _a2"$1`
+.m$1:$2 `~M$1`$21k$1`$25?!`$1`
+:#$1:$2 $1`$2)e$1```
+:m$1:$2 ,#'$1`
+:#$1:$2 .s2'$1`
+:m,________.aa7^$1`
+:#baaaaaaas!J'$1`
+ ``````````` \ No newline at end of file
diff --git a/src/logo/ascii/k/krassos.txt b/src/logo/ascii/k/krassos.txt
new file mode 100644
index 0000000..bfc3dea
--- /dev/null
+++ b/src/logo/ascii/k/krassos.txt
@@ -0,0 +1,19 @@
+ $2**@@@@@@@@@@@*
+ $2,@@@@%$1((((((((((((($2%@@@@,
+ $2#@@&$1((((((((((((((((((((((($2&@@%
+ $2@@&$1((((((((((((((((((((((((((((($2@@@
+ $2@@&$1((((((((((((((((((((((((((((((((($2&@@
+ $2.@@$1((((((((((((((((((((((((((((((((((((($2@@.
+ $2@@$1((((((((((((((((((((((((((((((((((((((($2@@
+ $2@@#$1((((((((((((((((((((((((((((($2%@@@@@@@#$1(#$2@@
+ $2.@@$1(((((((((((((((($2#%@@@@@@@@@&%#$1(((($2%@&$1(((($2@@.
+ $2.@@$1(((((((/($2&@@@@@@%$1(/(((((((((((((($2@@/$1((((($2@@.
+ $2.@@$1(///////////////////////////////$2@$1(///////$2@@
+ $2%@#$1/////////////////////////////($2#$1////////$2%@%
+ $2 @@$1(///////////////////////////$2%$1/////////($2@@
+ $2@@#$1***********************************$2%@@
+ $2*@@$1********************************$2/@@/
+ $2,@@#$1***************************$2%@@*
+ $2@@@&$1********************$2/@@@@
+ $2&@@@@&$1(//***//($2&@@@@&
+ $2**@@@@@@@@@@@* \ No newline at end of file
diff --git a/src/logo/ascii/k/kslinux.txt b/src/logo/ascii/k/kslinux.txt
new file mode 100644
index 0000000..3844490
--- /dev/null
+++ b/src/logo/ascii/k/kslinux.txt
@@ -0,0 +1,11 @@
+K K U U RRRR ooo
+K K U U R R o o
+KKK U U RRRR o o
+K K U U R R o o
+K K UUU R R ooo
+
+$2 SSS AAA W W AAA
+S A A W W A A
+ SSS AAAAA W W W AAAAA
+ S A A WW WW A A
+ SSS A A W W A A \ No newline at end of file
diff --git a/src/logo/ascii/k/kubuntu.txt b/src/logo/ascii/k/kubuntu.txt
new file mode 100644
index 0000000..d19bca2
--- /dev/null
+++ b/src/logo/ascii/k/kubuntu.txt
@@ -0,0 +1,20 @@
+$1 `.:/ossyyyysso/:.
+ .:oyyyyyyyyyyyyyyyyyyo:`
+ -oyyyyyyyo$2dMMy$1yyyyyyysyyyyo-
+ -syyyyyyyyyy$2dMMy$1oyyyy$2dmMMy$1yyyys-
+ oyyys$2dMy$1syyyy$2dMMMMMMMMMMMMMy$1yyyyyyo
+ `oyyyy$2dMMMMy$1syysoooooo$2dMMMMy$1yyyyyyyyo`
+ oyyyyyy$2dMMMMy$1yyyyyyyyyyys$2dMMy$1sssssyyyo
+-yyyyyyyy$2dMy$1syyyyyyyyyyyyyys$2dMMMMMy$1syyy-
+oyyyysoo$2dMy$1yyyyyyyyyyyyyyyyyy$2dMMMMy$1syyyo
+yyys$2dMMMMMy$1yyyyyyyyyyyyyyyyyysosyyyyyyyy
+yyys$2dMMMMMy$1yyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+oyyyyysos$2dy$1yyyyyyyyyyyyyyyyyy$2dMMMMy$1syyyo
+-yyyyyyyy$2dMy$1syyyyyyyyyyyyyys$2dMMMMMy$1syyy-
+ oyyyyyy$2dMMMy$1syyyyyyyyyyys$2dMMy$1oyyyoyyyo
+ `oyyyy$2dMMMy$1syyyoooooo$2dMMMMy$1oyyyyyyyyo
+ oyyysyyoyyyys$2dMMMMMMMMMMMy$1yyyyyyyo
+ -syyyyyyyyy$2dMMMy$1syyy$2dMMMy$1syyyys-
+ -oyyyyyyy$2dMMy$1yyyyyysosyyyyo-
+ ./oyyyyyyyyyyyyyyyyyyo/.
+ `.:/oosyyyysso/:.` \ No newline at end of file
diff --git a/src/logo/ascii/k/kylin.txt b/src/logo/ascii/k/kylin.txt
new file mode 100644
index 0000000..f71dc7b
--- /dev/null
+++ b/src/logo/ascii/k/kylin.txt
@@ -0,0 +1,22 @@
+ $1++
+ $2* ***
+ $2*******
+ $2*******$1++
+ $2********$1+$3===
+ $2******$1#$2*$1+$3======
+ $2*******$1#$2***$1++$3===
+ $2*********$1+$2**$3===
+ $1##$2*********$1##$3== $3====$1+
+$4%$1##$2****$1++$3==$1+$2****$1# $2***$1+$3=$2**
+$1#$2****$1++$3=====$1++$2****$1## $2********
+$1####$2*$1+$3=======$1+$2******$3===$1- $2***$1#$2*$1##$2****
+ $1#$4%$1#$2******$1+$2**$1+$3==$1++$2**$3=======$1+$2*$1+$2*$1#$4%
+ $4%$1#$2****$1+$2******$3=====$1+$3====$1+++$3==$2**
+ $1#$2*********$1##$2***$1###$2********$1##$4%
+ $2***$1##$4%$1#$4%%%%$2*****$1#$2*$1###$2*****$1#$4%
+ $2*$1#$4%%%$1#$4%%%%%$2**** $4%%$2*******$1#$4%
+ $1#$4%%%%%% $4%%%$1##$2***$1###$4%%
+ $2**$1#$4% $4%%%%$1#$4% $2**$1#$2**$1##
+ $1###$4%% $4%%%%%$1 $4%%%$2***
+ $4%%%%%% $4%%%%%%%$1 $4%%%%$1#$2*
+ $4%%%%%% $4%%%%%%$1+$3= \ No newline at end of file
diff --git a/src/logo/ascii/l.inc b/src/logo/ascii/l.inc
new file mode 100644
index 0000000..ace13ca
--- /dev/null
+++ b/src/logo/ascii/l.inc
@@ -0,0 +1,326 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo L[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_LAINOS
+ // LainOS
+ {
+ .names = { "LainOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LAINOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_256 "14",
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LANGITKETUJUH
+ // LangitKetujuh
+ {
+ .names = { "langitketujuh", "l7" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LANGITKETUJUH,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LAXEROS
+ // Laxeros
+ {
+ .names = { "Laxeros" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LAXEROS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LEDE
+ // LEDE
+ {
+ .names = { "LEDE" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LEDE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LIBREELEC
+ // LibreELEC
+ {
+ .names = { "LibreELEC" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LIBREELEC,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LILIDOG
+ // Lilidog
+ {
+ .names = { "Lilidog" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LILIDOG,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINGMO
+ // Lingmo OS
+ {
+ .names = { "Lingmo", "LingmoOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LINGMO,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LIMEOS
+ // LimeOS
+ {
+ .names = { "LimeOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LIMEOS,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINSPIRE
+ // Linspire
+ {
+ .names = { "Linspire", "Lindows" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LINSPIRE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUX
+ // Linux
+ {
+ .names = { "Linux", "linux-generic" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUX,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LFS
+ // LinuxFromScratch
+ {
+ .names = { "LinuxFromScratch", "lfs" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LFS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_BLACK,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUX_SMALL
+ // LinuxSmall
+ {
+ .names = { "Linux_small", "linux-generic_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUX_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUXLITE
+ // LinuxLite
+ {
+ .names = { "LinuxLite" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUXLITE,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUXLITE_SMALL
+ // LinuxLiteSmall
+ {
+ .names = { "LinuxLite_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUXLITE_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUXMINT
+ // LinuxMint
+ {
+ .names = { "linuxmint" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUXMINT,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUXMINT_SMALL
+ // LinuxMintSmall
+ {
+ .names = { "linuxmint_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUXMINT_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUXMINT2
+ // LinuxMint2
+ {
+ .names = { "linuxmint2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUXMINT2,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LINUXMINT_OLD
+ // LinuxMintOld
+ {
+ .names = { "linuxmint_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_LINUXMINT_OLD,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LIVE_RAIZO
+ // Live_Raizo
+ {
+ .names = { "Live Raizo", "Live_Raizo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LIVE_RAIZO,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LLIUREX
+ // LliureX
+ {
+ .names = { "LliureX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LLIUREX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LMDE
+ // LMDE
+ {
+ .names = { "LMDE" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LMDE,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LOCOS
+ // Loc-OS
+ {
+ .names = { "locos", "loc-os", "Loc-OS Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LOCOS,
+ .colors = {
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LUBUNTU
+ // Lubuntu
+ {
+ .names = { "lubuntu" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LUBUNTU,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_LUNAR
+ // Lunar
+ {
+ .names = { "Lunar" },
+ .lines = FASTFETCH_DATATEXT_LOGO_LUNAR,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/l/lainos.txt b/src/logo/ascii/l/lainos.txt
new file mode 100644
index 0000000..7b4b31c
--- /dev/null
+++ b/src/logo/ascii/l/lainos.txt
@@ -0,0 +1,20 @@
+$2 /==\
+ \==/
+$1 · · · · · · ·
+ · · · · · · · · · ·
+ · · · $2.-======-.$1· · · ·
+$2 .::.$1 ·$2.-============-.$1· $2.::.
+ .:==:$1· $2.:===:'$1. ·· .$2':===:.$1 ·$2:==:.
+ .:===:$1 · $2:===.$1 · $3.--.$1 · $2.===:$1 · $2:===:.
+ :===:$1· · $2:===.$1 · $3.:====:.$1 · $2.===:$1 · ·$2:===:
+(===:$1· · $2:===-$1 · $3:======:$1 · $2-===:$1 · ·$2:===)
+ :===:$1· · $2:===.$1 · $3':====:'$1 · $2.===:$1 · ·$2:===:
+ ':===:$1 · $2:===.$1 · $3'--'$1 · $2.===:$1 · $2:===:'
+ ':==:$1· $2':===:.$1' ·· '$2.:===:'$1 ·$2:==:'
+ '::'$1 · $2'===-. .-==='$1 · $2'::'
+ $2/==\$1 · · · $2:=== ===:$1 · · · $2/==\
+ \==/$1 · · ·$2:===$1 ·$2===:$1· · · $2\==/$2
+ .-. $1· $2:===$1· $2===:$1 ·$2 $2.-.
+ .===. .=== ===. .===.
+ .======== ========.
+ ''''' ''''' \ No newline at end of file
diff --git a/src/logo/ascii/l/langitketujuh.txt b/src/logo/ascii/l/langitketujuh.txt
new file mode 100644
index 0000000..220c72d
--- /dev/null
+++ b/src/logo/ascii/l/langitketujuh.txt
@@ -0,0 +1,11 @@
+$2. $1'7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7
+$2L7. $1'7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7
+$2L7L7L $17L7L7L7L7L7L7L7L7L7L7L7L7L7
+$2L7L7L7 $1L7L7L7
+$2L7L7L7 $1'L7L7L7L7L7L7L7L7L7L7
+$2L7L7L7 $1'L7L7L7L7L7L7L7L7
+$2L7L7L7 $1'L7L7L7L7L7L7
+$2L7L7L7 $1L7L7L7
+$2L7L7L7L7L7L7L7L7L7L7LL7L7L7. $1'7L7L7
+$2L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L. $1'L7
+$2L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7. $1' \ No newline at end of file
diff --git a/src/logo/ascii/l/laxeros.txt b/src/logo/ascii/l/laxeros.txt
new file mode 100644
index 0000000..6d23bf1
--- /dev/null
+++ b/src/logo/ascii/l/laxeros.txt
@@ -0,0 +1,20 @@
+ /.
+ `://:-
+ `//////:
+ .////////:`
+ -//////////:`
+ -/////////////`
+ :///////////////.
+ `://////.```-//////-
+ `://///:` .//////-
+ `//////: `//////:
+ .//////- `://///:`
+ -//////- `://///:`
+ -//////. ://////`
+ ://////` -//////.
+ `/////:` ./////:
+ .-::-` .:::-`
+
+.:://////////////////////////////////::.
+////////////////////////////////////////
+.:////////////////////////////////////:. \ No newline at end of file
diff --git a/src/logo/ascii/l/lede.txt b/src/logo/ascii/l/lede.txt
new file mode 100644
index 0000000..efc7f7b
--- /dev/null
+++ b/src/logo/ascii/l/lede.txt
@@ -0,0 +1,9 @@
+ _________
+ / /\
+ / LE / \
+ / DE / \
+/________/ LE \
+\ \ DE /
+ \ LE \ /
+ \ DE \ /
+ \________\/ \ No newline at end of file
diff --git a/src/logo/ascii/l/lfs.txt b/src/logo/ascii/l/lfs.txt
new file mode 100644
index 0000000..14d34d9
--- /dev/null
+++ b/src/logo/ascii/l/lfs.txt
@@ -0,0 +1,18 @@
+$2 :@@@@@@@:
+$2 @@@@@@@@@-
+$2 .:%. @@@@@@@@@+. @%
+$2 *@@@%+: :@@@@@@@%=: .=%@@@@@@=
+$2 :@@@@@@##@@@@@@@@@%*+%@%+@@@@@@@+
+$2 @@#$1####$2+@@@@@@@%:$1######$2=@@@@@@@@@-
+$2 *@%$1######$2.@@@@@#$1#########$2-@@@@@@@@#.
+$2 %@-$1#$2.@$1=$2:$1##$2+@@@@-$1###$2%@$1:$2=$1###$2*@#*+=-+#:
+$2 @@.$1#$2@@*$1=$2:$1#$2-%%**-$1##$2%@@%$1*$2*$1###$2#=-
+$2 @@-$1#$2@@@@+.-$3...$2:=.$1#$2%@@@@%$1###$2#-
+$2 %@%$1##$2*#:$3.o.....o...$2-%@+$1###$2#@+ -:
+$2 +@@*$1#$3....................$2+@@@@@@@@+
+$2 @%:$3....................._:$2@@@@@@@=.
+$2 .=:$3...............__*-=`.$2=@@@@@@#=.
+$2 :+:$3....:==*__*-=`:..==-:$2#@@@@@%+:
+$2 .--=-: $3+..::.....-: $2=%@*=:
+$2 :........-
+$2 .:...--. \ No newline at end of file
diff --git a/src/logo/ascii/l/libreelec.txt b/src/logo/ascii/l/libreelec.txt
new file mode 100644
index 0000000..13278c6
--- /dev/null
+++ b/src/logo/ascii/l/libreelec.txt
@@ -0,0 +1,20 @@
+$1 :+ooo/. $2./ooo+:
+$1 :+ooooooo/. $2./ooooooo+:
+$1 :+ooooooooooo:$2:ooooooooooo+:
+$1 :+ooooooooooo+- $2-+ooooooooooo+:
+$1 :+ooooooooooo+- $3-- $2-+ooooooooooo+:
+$1.+ooooooooooo+- $3:+oo+: $2-+ooooooooooo+-
+$1-+ooooooooo+- $3:+oooooo+: $2-+oooooooooo-
+$1 :+ooooo+- $3:+oooooooooo+: $2-+oooooo:
+$1 :+o+- $3:+oooooooooooooo+: $2-+oo:
+$4 ./ $3:oooooooooooooooooo: $5/.
+$4 ./oo+: $3-+oooooooooooooo+- $5:+oo/.
+$4 ./oooooo+: $3-+oooooooooo+- $5:+oooooo/.
+$4-oooooooooo+: $3-+oooooo+- $5:+oooooooooo-
+$4.+ooooooooooo+: $3-+oo+- $5:+ooooooooooo+.
+$4 -+ooooooooooo+: $3.. $5:+ooooooooooo+-
+$4 -+ooooooooooo+: $5:+ooooooooooo+-
+$4 -+oooooooooo+:$5:+oooooooooo+-
+$4 -+oooooo+: $5:+oooooo+-
+$4 -+oo+: $5:+oo+-
+$4 .. $5.. \ No newline at end of file
diff --git a/src/logo/ascii/l/lilidog.txt b/src/logo/ascii/l/lilidog.txt
new file mode 100644
index 0000000..abc6c2f
--- /dev/null
+++ b/src/logo/ascii/l/lilidog.txt
@@ -0,0 +1,16 @@
+ +DDDL+ +LDDDDD+
+ LD++++D+D+::::::+D
+ D+-::::=D+::::::::+LLDD+
+ D=::::::=L=-::::::=LL++=+D
+ D-:::::=LDD=-::-=+L=-::::=D
+ L+--==+++===++LDD+:::::::-D
+ DL+++==:::::::::-+D-:::::::=D
+ D=:::::::::::::::::++:::::-+D
+D+::::::::::::::::::+D++==+LD+
+ D=:::::::::::::::::+LD+=--:-+D
+ L+=-::::::::::::::L+-::::::=D
+ DLL++-::::::::::-D:::::::-+D
+ DL+:::::::::+D=-:::-=+D
+ D=:::::::-D +LDLLD+
+ L+--::-=D
+ +LDLDD+ \ No newline at end of file
diff --git a/src/logo/ascii/l/limeos.txt b/src/logo/ascii/l/limeos.txt
new file mode 100644
index 0000000..b819ffd
--- /dev/null
+++ b/src/logo/ascii/l/limeos.txt
@@ -0,0 +1,23 @@
+ ############
+ ####### #######
+ #### ####
+ ### ###### ###### ###
+ ### ######### ######### ###
+ ### ######## ######## ###
+ ### #### ###### ####### ### ###
+ ### ####### ##### ##### ###### ###
+ ## ######## ### ### ######## ##
+### ########### ########### ###
+## ############ ########### ##
+## ##
+## ############ ########### ##
+### ########### ########### ###
+ ## ######## ### ### ######## ##
+ ### ###### ##### ##### ###### ###
+ ### ### ####### ####### ### ###
+ ### ######### ######### ###
+ ### ######### ######### ###
+ ### ###### ###### ###
+ #### ####
+ ####### #######
+ ##############
diff --git a/src/logo/ascii/l/lingmo.txt b/src/logo/ascii/l/lingmo.txt
new file mode 100644
index 0000000..23651b4
--- /dev/null
+++ b/src/logo/ascii/l/lingmo.txt
@@ -0,0 +1,20 @@
+ ..',;;;;;;,,..
+ ..,;;;;;;;;;;;;;;;;,..
+ .';;;;;;;;;;;;;;;;;;;;;;;;,.
+ .;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'
+ .;;;;;;;;;$2clodddol:$1;;;;;;;;;;;;;;;;.
+ ';;;;;;;$2ckXWWWNNWWWN0d:$1;;;;;;;;;;;;;;'
+ ';;;;;;$2cOWWKxl:$1;;;:$2okXWXx$1;;;;;;;;;;;;;;,
+ ;;;;;;$2:XWWo$1;;;;;;;;;;;$2ONNx$1;;;;;;;;;;;;;;.
+,;;;;;;$2xWMk$1;;;;;;;;;;;;;$20NX:$1;;;;;;;;;;;;;;
+;;;;;;;$2xMMk$1;;;;;;;;;;;;;$2oXNdcloooolc:$1;;;;;
+,;;;;;;$2:NMWl$1;;;;;;;;;;;;$2ckodKK00000Oc$1;;;;;
+.;;;;;;;$2cKMWOo:$1;;;;;$2cox0Xccdl:$1;;;;;:;;;;;'
+ ;;;;;;;;;$2o0WWNK000KXXKkodKKo$1;;;;;;;;;;;;
+ ,;;;;;;;;;$2:loxxxxdlc$1;;;;$2xKKxc$1;;;;;;;;;
+ ,;;;;;;;;;;;;;;;;;;;;;;;$2ckK0o;$1;;;;;;
+ ;;;;;;;;;;;;;;;;;;;;;;;;$2:l$1;;;;;;.
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
+ ;;;;;;;;;;;;;;;;;;;;;;.
+ ';;;;;;;;;;;;,
+ ';;'.
diff --git a/src/logo/ascii/l/linspire.txt b/src/logo/ascii/l/linspire.txt
new file mode 100644
index 0000000..48b2c8e
--- /dev/null
+++ b/src/logo/ascii/l/linspire.txt
@@ -0,0 +1,12 @@
+$2 __^
+$2 __/ \
+$2 MMy dMy __/ \
+$2 dMMy MMy $1MM$2 \
+$2 MMMy ,, $1dMMMMn $2\
+$2 dMMy dMM dMMMMMMy $1dMM MM dMMMMMy dMM MM.nMMM dMMMMMM
+$1MMM $2MMy MMy MMy $1dMM MMy MMy MMy MMy dy dMy
+$1MMM $2dMM dMM MMy $1dMMMMy dMM dMM dMM dMM dMMMMMMM
+$2 dMMy MMy MMy MMy $1dMMy MM MMy MMy MMy dMM
+$2dMMy dMM dMM dMM $1dMM MMy dMMMMMy dMM dMM MMy MM
+$2MMMMMMMMMM MMy MMy MMy $1dMMMyyy MMy MMy MMy dMMMMMMy
+$2 $1dy \ No newline at end of file
diff --git a/src/logo/ascii/l/linux.txt b/src/logo/ascii/l/linux.txt
new file mode 100644
index 0000000..fc8a5b4
--- /dev/null
+++ b/src/logo/ascii/l/linux.txt
@@ -0,0 +1,12 @@
+ $2#####
+ $2#######
+ $2##$1O$2#$1O$2##
+ $2#$3#####$2#
+ $2##$1##$3###$1##$2##
+ $2#$1##########$2##
+ $2#$1############$2##
+ $2#$1############$2###
+ $3##$2#$1###########$2##$3#
+$3######$2#$1#######$2#$3######
+$3#######$2#$1#####$2#$3#######
+ $3#####$2#######$3##### \ No newline at end of file
diff --git a/src/logo/ascii/l/linux_small.txt b/src/logo/ascii/l/linux_small.txt
new file mode 100644
index 0000000..ff7a311
--- /dev/null
+++ b/src/logo/ascii/l/linux_small.txt
@@ -0,0 +1,7 @@
+ $1___
+ ($2.. $1\
+ ($3<> $1|
+ /$2/ \ $1\
+ ( $2| | $1/|
+$3_$1/\ $2__)$1/$3_$1)
+$3\/$1-____$3\/ \ No newline at end of file
diff --git a/src/logo/ascii/l/linuxlite.txt b/src/logo/ascii/l/linuxlite.txt
new file mode 100644
index 0000000..eb5185a
--- /dev/null
+++ b/src/logo/ascii/l/linuxlite.txt
@@ -0,0 +1,20 @@
+ ,xXc
+ .l0MMMMMO
+ .kNMMMMM$2W$1MMMN,
+ KMMMMMM$2K$1MMMMMMo
+ 'MMMMMMN$2K$1MMMMMM:
+ kMMMMMM$2O$1MMMMMMO
+ .MMMMMM$20$1XMMMMMW.
+ oMMMMM$2x$1MMMMMMM:
+ WMMMMM$2x$1MMMMMMO
+:MMMMMM$2O$1XMMMMW
+.0MMMMM$2x$1MMMMM;
+:;cKMMW$2x$1MMMMO
+'MMWMMX$2O$1MMMMl
+ kMMMMK$2O$1MMMMMX:
+ .WMMMMK$2O$1WMMM0c
+ lMMMMMW$2O$1WMNd:'
+ oollXMK$2o$1Xxl;.
+ ':. .:$2 .$1'
+ $2..
+ . \ No newline at end of file
diff --git a/src/logo/ascii/l/linuxlite_small.txt b/src/logo/ascii/l/linuxlite_small.txt
new file mode 100644
index 0000000..2e0fc1f
--- /dev/null
+++ b/src/logo/ascii/l/linuxlite_small.txt
@@ -0,0 +1,7 @@
+ /\
+ / \
+ / $2/ $1/
+/ $2/ $1/
+\ $2\ $1\
+ \_$2\$1_\
+$2 \ \ No newline at end of file
diff --git a/src/logo/ascii/l/linuxmint.txt b/src/logo/ascii/l/linuxmint.txt
new file mode 100644
index 0000000..c6be568
--- /dev/null
+++ b/src/logo/ascii/l/linuxmint.txt
@@ -0,0 +1,19 @@
+ $2_.-ppOOOOOOqq-._
+ .oOOOOPPPPPPPPPPOOOOo.
+ .oOOOO$1.=oOOOOOOOOOOo=.$2OOOOo.
+ .:OOO$1.=oOOOOOOOOOOOOOOOOo=.$2OOO:.
+ .OOO$1.OOOOOOOOOOOOOOOOOOOOOOOO.$2OOO.
+ .OOO$1.OO OOO:´ `::´ `:OOO.$2OO:
+ .OOO$1.OOO OO OOO.$2OOO:
+ OOO$1.OOOO OO oo oo OOOO.$2OOO
+:OOO$1:OOOO OO OO OO OOOO:$2OOO:
+:OOO$1:OOOO OO OO OO OOOO:$2OOO:
+'OOO$1'OOOO OO OO OO OOOO'$2OOO'
+ OOO$1'OOOO OO____OO____OO OOOO'$2OOO'
+ 'OOO$1'OOO 'OOOOOOOOOOOO' OOOO'$2OOO
+ 'OOO$1'OOO .OOO'$2OOO'
+ 'OOO$1'OOOO:ooooooooooooooo:OOOO'$2OOO'
+ ':OOOo$1'=OOOOOOOOOOOOOOOOO='$2oOOO:'
+ ':OOOOo$1'=OOOOOOOOOOO='$2oOOOO:'
+ ``-OOOOooooooooooOOOO-´´
+ ```-=:OOOO:=-´´´
diff --git a/src/logo/ascii/l/linuxmint2.txt b/src/logo/ascii/l/linuxmint2.txt
new file mode 100644
index 0000000..c14451d
--- /dev/null
+++ b/src/logo/ascii/l/linuxmint2.txt
@@ -0,0 +1,19 @@
+ $2...-:::::-...
+ .-MMMMMMMMMMMMMMM-.
+ .-MMMM$1`..-:::::::-..`$2MMMM-.
+ .:MMMM$1.:MMMMMMMMMMMMMMM:.$2MMMM:.
+ -MMM$1-M---MMMMMMMMMMMMMMMMMMM.$2MMM-
+ :MMM$1:MM` :MMMM:....::-...-MMMM:$2MMM:
+ :MMM$1:MMM` :MM:` `` `` `:MMM:$2MMM:
+.MMM$1.MMMM` :MM. -MM. .MM- `MMMM.$2MMM.
+:MMM$1:MMMM` :MM. -MM- .MM: `MMMM-$2MMM:
+:MMM$1:MMMM` :MM. -MM- .MM: `MMMM:$2MMM:
+:MMM$1:MMMM` :MM. -MM- .MM: `MMMM-$2MMM:
+.MMM$1.MMMM` :MM:--:MM:--:MM: `MMMM.$2MMM.
+ :MMM$1:MMM- `-MMMMMMMMMMMM-` -MMM-$2MMM:
+ :MMM$1:MMM:` `:MMM:$2MMM:
+ .MMM$1.MMMM:--------------:MMMM.$2MMM.
+ '-MMMM$1.-MMMMMMMMMMMMMMM-.$2MMMM-'
+ '.-MMMM$1``--:::::--``$2MMMM-.'
+ '-MMMMMMMMMMMMM-'
+ ``-:::::-`` \ No newline at end of file
diff --git a/src/logo/ascii/l/linuxmint_old.txt b/src/logo/ascii/l/linuxmint_old.txt
new file mode 100644
index 0000000..e94eca0
--- /dev/null
+++ b/src/logo/ascii/l/linuxmint_old.txt
@@ -0,0 +1,16 @@
+MMMMMMMMMMMMMMMMMMMMMMMMMmds+.
+MMm----::-://////////////oymNMd+`
+MMd $2/++ $1-sNMd:
+MMNso/` $2dMM `.::-. .-::.` $1.hMN:
+ddddMMh $2dMM :hNMNMNhNMNMNh: $1`NMm
+ NMm $2dMM .NMN/-+MMM+-/NMN` $1dMM
+ NMm $2dMM -MMm `MMM dMM. $1dMM
+ NMm $2dMM -MMm `MMM dMM. $1dMM
+ NMm $2dMM .mmd `mmm yMM. $1dMM
+ NMm $2dMM` ..` ... ydm. $1dMM
+ hMM- $2+MMd/-------...-:sdds $1dMM
+ -NMm- $2:hNMNNNmdddddddddy/` $1dMM
+ -dMNs-$2``-::::-------.`` $1dMM
+ `/dMNmy+/:-------------:/yMMM
+ ./ydNMMMMMMMMMMMMMMMMMMMMM
+ .MMMMMMMMMMMMMMMMMMM \ No newline at end of file
diff --git a/src/logo/ascii/l/linuxmint_small.txt b/src/logo/ascii/l/linuxmint_small.txt
new file mode 100644
index 0000000..9d294e0
--- /dev/null
+++ b/src/logo/ascii/l/linuxmint_small.txt
@@ -0,0 +1,7 @@
+ __________
+|_ \
+ | $2| _____ $1|
+ | $2| | | | $1|
+ | $2| | | | $1|
+ | $2\__$2___/ $1|
+ \_________/ \ No newline at end of file
diff --git a/src/logo/ascii/l/live_raizo.txt b/src/logo/ascii/l/live_raizo.txt
new file mode 100644
index 0000000..926417d
--- /dev/null
+++ b/src/logo/ascii/l/live_raizo.txt
@@ -0,0 +1,20 @@
+ `......`
+ -+shmNMMMMMMNmhs/.
+ :smMMMMMmmhyyhmmMMMMMmo-
+ -hMMMMd+:. `----` .:odMMMMh-
+ `hMMMN+. .odNMMMMMMNdo. .yMMMMs`
+ hMMMd. -dMMMMmdhhdNMMMNh` .mMMMh
+oMMMm` :MMMNs.:sddy:-sMMMN- `NMMM+
+mMMMs dMMMo sMMMMMMd yMMMd sMMMm
+----` .---` oNMMMMMh `---. .----
+ .sMMy:
+ /MM/
+ +dMMms.
+ hMMMMMMN
+ `dMMMMMMm:
+ .+ss+sMNysMMoomMd+ss+.
+ +MMMMMMN` +MM/ hMMMMMNs
+ sMMMMMMm-hNMMMd-hMMMMMMd
+ :yddh+`hMMMMMMN :yddy/`
+ .hMMMMd:
+ `..` \ No newline at end of file
diff --git a/src/logo/ascii/l/lliurex.txt b/src/logo/ascii/l/lliurex.txt
new file mode 100644
index 0000000..27bad81
--- /dev/null
+++ b/src/logo/ascii/l/lliurex.txt
@@ -0,0 +1,16 @@
+ ~. ........
+ ::~~ +=: ~:========:~
+ ..~:+oo===oo:.~+oooooooooooo+~
+ .:+==ooooooooooo==ooooooooooooooo:
+ .:=oooooooooooooooooooooooooooooooo=
+.. .=oooooooooooooooooooooooooooooooooo=
+==. .+ooooooooooooooooooooooooooooooooooo=
+~+:~:oooooooooooooooooooooooooooooooooooo:
+ ~ooooooooooooooooooooooooooooooooooooo=:
+ ~oooooooooooooooooooooooooooooooooo==:.
+ .+oooooooooooooooooooooooooo=~::::~..
+ ~+oooooooooooooooooooooooo=:
+ .:=ooooooooooooooooooooo=:
+ .:==ooooooooooooooo==:.
+ ~~:===oooooo==+:~
+ ...~~:~::..
diff --git a/src/logo/ascii/l/lmde.txt b/src/logo/ascii/l/lmde.txt
new file mode 100644
index 0000000..9e45de8
--- /dev/null
+++ b/src/logo/ascii/l/lmde.txt
@@ -0,0 +1,17 @@
+$2 `.-::---..
+$1 .:++++ooooosssoo:.
+ .+o++::. `.:oos+.
+$1 :oo:.` -+oo$2:
+$1 $2`$1+o/` .$2::::::$1-. .++-$2`
+$1$2`$1/s/ .yyyyyyyyyyo: +o-$2`
+$1$2`$1so .ss ohyo` :s-$2:
+$1$2`$1s/ .ss h m myy/ /s`$2`
+$1`s: `oo s m Myy+-o:`
+`oo :+sdoohyoydyso/.
+ :o. .:////////++:
+$1 `/++ $2-:::::-
+$1 $2`$1++-
+$1 $2`$1/+-
+$1 $2.$1+/.
+$1 $2.$1:+-.
+ `--.`` \ No newline at end of file
diff --git a/src/logo/ascii/l/locos.txt b/src/logo/ascii/l/locos.txt
new file mode 100644
index 0000000..91bfe00
--- /dev/null
+++ b/src/logo/ascii/l/locos.txt
@@ -0,0 +1,18 @@
+ $3..;:::::::;.
+ .0X'$1''''''''''''$3'N:
+ :Xd$1,.'''''''''''''''$3lKx
+ .0o$1'.'''''''''''''''''''$3:K;
+ .O$1;.'$3okOx:$1'''''''''$3,dOOx:$1''$3O;
+ xc$1.'$3xXl$1 $3kX;$1''$2:cc;$1''$3kXl$1 $3OX;$1''$3k.
+ 'x$1..'$3:0X0Xx$1',$2OOOOOd$1,:$30X0Xx$1'''$3o:
+ ::$1..'$2,clollxOOOOOOOOdlddlc$1''''$3d
+ l'$1..$2':kkkkOOOOOOOOOOOOkkkx,$1'''$3x
+ o$1...''''',$2codxkkxxxdl$1:''''''''$3d.
+ d$1...''''''''''''''''''''''''''$3o.
+ d$1..''''$3,loc,$1''''''''$3;os:,$1'''''$3d'
+ :d$1..'$3,dKXXXXX0kxxxk0XXXXXX0l$1'''$3,O.
+ '0$1..'$3cKXXXXXXXXXXXXXXXXXXXXXXk$1'''$3ck
+ '0$1'.'$3cXXXXXXXXXXXXXXXXXXXXXXXXXO$1'''$3od
+ .0$1,.''$30XXXXXXXXXXXXXXXXXXXXXXXXXXo$1'''$3k;
+ cc$1..''$3XXXXXXXXXXXXXXXXXXXXXXXXXXXk$1''''$3k
+ l$1...',$3XXXXXXXXXXXXXXXXXXXXXXXXXXXO$1''''$3d. \ No newline at end of file
diff --git a/src/logo/ascii/l/lubuntu.txt b/src/logo/ascii/l/lubuntu.txt
new file mode 100644
index 0000000..49acd83
--- /dev/null
+++ b/src/logo/ascii/l/lubuntu.txt
@@ -0,0 +1,20 @@
+ `.:/ossyyyysso/:.
+ `.:yyyyyyyyyyyyyyyyyy:.`
+ .:yyyyyyyyyyyyyyyyyyyyyyyy:.
+ .:yyyyyyyyyyyyyyyyyyyyyyyyyyyy:.
+ -yyyyyyyyyyyyyy$2+hNMMMNh+$1yyyyyyyyy-
+ :yy$2mNy+$1yyyyyyyy$2+Nmso++smMdhyysoo+$1yy:
+ -yy$2+MMMmmy$1yyyyyy$2hh$1yyyyyyyyyyyyyyyyyyy-
+.yyyy$2NMN$1yy$2shhs$1yyy$2+o$1yyyyyyyyyyyyyyyyyyyy.
+:yyyy$2oNM+$1yyyy$2+sso$1yyyyyyy$2ss$1yyyyyyyyyyyyy:
+:yyyyy$2+dNs$1yyyyyyy$2++$1yyyyy$2oN+$1yyyyyyyyyyyy:
+:yyyyy$2oMMmhysso$1yyyyyyyyyy$2mN+$1yyyyyyyyyyy:
+:yyyyyy$2hMm$1yyyyy$2+++$1yyyyyyy$2+MN$1yyyyyyyyyyy:
+.yyyyyyy$2ohmy+$1yyyyyyyyyyyyy$2NMh$1yyyyyyyyyy.
+ -yyyyyyyyyy$2++$1yyyyyyyyyyyy$2MMh$1yyyyyyyyy-
+ :yyyyyyyyyyyyyyyyyyyyy$2+mMN+$1yyyyyyyy:
+ -yyyyyyyyyyyyyyyyy$2+sdMMd+$1yyyyyyyy-
+ .:yyyyyyyyy$2hmdmmNMNdy+$1yyyyyyyy:.
+ .:yyyyyyy$2my$1yyyyyyyyyyyyyyy:.
+ `.:yyyy$2s$1yyyyyyyyyyyyy:.`
+ `.:/oosyyyysso/:.`
diff --git a/src/logo/ascii/l/lunar.txt b/src/logo/ascii/l/lunar.txt
new file mode 100644
index 0000000..de98565
--- /dev/null
+++ b/src/logo/ascii/l/lunar.txt
@@ -0,0 +1,13 @@
+`-. `-.
+ -ohys/-` `:+shy/`
+ -omNNdyo/` :+shmNNy/`
+ $3 -
+ /mMmo
+ hMMMN`
+ .NMMs
+ $1 -:+oooo+//: $3/MN$1. -///oooo+/-`
+ /:.` $3/$1 `.:/`
+$3 __
+ | | _ _ ___ ___ ___
+ | |__| | | | .'| _|
+ |_____|___|_|_|__,|_| \ No newline at end of file
diff --git a/src/logo/ascii/m.inc b/src/logo/ascii/m.inc
new file mode 100644
index 0000000..b0a1456
--- /dev/null
+++ b/src/logo/ascii/m.inc
@@ -0,0 +1,436 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo M[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACARONIOS
+ // Macaroni
+ {
+ .names = { "Macaroni" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MACARONIOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS
+ // MacOS
+ {
+ .names = { "macOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS_SMALL
+ // MacOSSmall
+ {
+ .names = { "macOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS2
+ // MacOS2
+ {
+ .names = { "macOS2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS2,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS2_SMALL
+ // MacOS2Small
+ {
+ .names = { "macOS2_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS2_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS3
+ // MacOS3
+ {
+ .names = { "macOS3" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS3,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAINSAILOS
+ // MainsailOS
+ {
+ .names = { "MainsailOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MAINSAILOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAINSAILOS_SMALL
+ // MainsailOSSmall
+ {
+ .names = { "MainsailOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MAINSAILOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAGEIA
+ // Mageia
+ {
+ .names = { "Mageia" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MAGEIA,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAGEIA_SMALL
+ // MageiaSmall
+ {
+ .names = { "Mageia_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MAGEIA_SMALL,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAGIX
+ // Magix
+ {
+ .names = { "Magix", "MagixOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MAGIX,
+ .colors = {
+ FF_COLOR_FG_LIGHT_MAGENTA,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_LIGHT_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAGPIEOS
+ // MagpieOS
+ {
+ .names = { "MagpieOS", "Magpie" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MAGPIEOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MANDRIVA
+ // Mandriva
+ {
+ .names = { "mandriva", "mandrake" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MANDRIVA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MANJARO
+ // Manjaro
+ {
+ .names = { "manjaro", "manjaro-arm" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MANJARO,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MANJARO_SMALL
+ // ManjaroSmall
+ {
+ .names = { "manjaro_small", "manjaro-arm_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MANJARO_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MASSOS
+ // MassOS
+ {
+ .names = { "MassOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MASSOS,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MATUUSOS
+ // MatuusOS
+ {
+ .names = { "MatuusOS", "Matuus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MATUUSOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAUI
+ // MaUI
+ {
+ .names = { "MaUI" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MAUI,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MAUNA
+ // Mauna
+ {
+ .names = { "Mauna" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MAUNA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MEOWIX
+ // Meowix
+ {
+ .names = { "Meowix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MEOWIX,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MER
+ // Mer
+ {
+ .names = { "Mer" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MER,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MIDNIGHTBSD
+ // MidnightBSD
+ {
+ .names = { "MidnightBSD" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MIDNIGHTBSD,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MIDOS
+ // MidOS
+ {
+ .names = { "MidOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MIDOS,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MIDOS_OLD
+ // MidOSOld
+ {
+ .names = { "MidOS_old" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MIDOS_OLD,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MINIMAL
+ // Minimal System
+ {
+ .names = { "Minimal_System" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MINIMAL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MINIX
+ // Minix
+ {
+ .names = { "Minix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MINIX,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MIRACLE_LINUX
+ // MiracleLinux
+ {
+ .names = { "miraclelinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MIRACLE_LINUX,
+ .colors = {
+ FF_COLOR_FG_256 "29",
+ },
+ .colorKeys = FF_COLOR_FG_256 "29",
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MOS
+ // MOS
+ {
+ .names = { "MOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MSYS2
+ // Msys2
+ {
+ .names = { "Msys2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MSYS2,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MX
+ // MX
+ {
+ .names = { "MX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MX,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MX_SMALL
+ // MXSmall
+ {
+ .names = { "MX_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MX_SMALL,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MX2
+ // MX2
+ {
+ .names = { "MX2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MX2,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/m/macaronios.txt b/src/logo/ascii/m/macaronios.txt
new file mode 100644
index 0000000..930a360
--- /dev/null
+++ b/src/logo/ascii/m/macaronios.txt
@@ -0,0 +1,11 @@
+ .::-::::. :======---:.
+ .-=++++++++==-:. .:-++===--=**+=:
+.=. ...:::::--=****+++=-:. --
+-: $2.-==-.$1 .::. ::
+. $2:*%@@@@@#. .:::.
+ :#%%%%%@%#+. :*##%%%%#+.
+ *%%%%%%*. =. +*#%%%%%%%#:
+ *%%%%%%- +%%%%%%#@=
+ :%%%%%%#-. .:+%%%%%%%%+
+ :*%%%%%%+. .-+*###*=:
+ :=+=-. \ No newline at end of file
diff --git a/src/logo/ascii/m/macos.txt b/src/logo/ascii/m/macos.txt
new file mode 100644
index 0000000..53afa49
--- /dev/null
+++ b/src/logo/ascii/m/macos.txt
@@ -0,0 +1,17 @@
+ ..'
+ ,xNMM.
+ .OMMMMo
+ lMM"
+ .;loddo:. .olloddol;.
+ cKMMMMMMMMMMNWMMMMMMMMMM0:
+ $2.KMMMMMMMMMMMMMMMMMMMMMMMWd.
+ XMMMMMMMMMMMMMMMMMMMMMMMX.
+$3;MMMMMMMMMMMMMMMMMMMMMMMM:
+:MMMMMMMMMMMMMMMMMMMMMMMM:
+$4.MMMMMMMMMMMMMMMMMMMMMMMMX.
+ kMMMMMMMMMMMMMMMMMMMMMMMMWd.
+ $5'XMMMMMMMMMMMMMMMMMMMMMMMMMMk
+ 'XMMMMMMMMMMMMMMMMMMMMMMMMK.
+ $6kMMMMMMMMMMMMMMMMMMMMMMd
+ ;KMMMMMMMWXXWMMMMMMMk.
+ "cooc*" "*coo'" \ No newline at end of file
diff --git a/src/logo/ascii/m/macos2.txt b/src/logo/ascii/m/macos2.txt
new file mode 100644
index 0000000..ea7c963
--- /dev/null
+++ b/src/logo/ascii/m/macos2.txt
@@ -0,0 +1,17 @@
+ ..'
+ ,xN .
+ .O o
+ l "
+ .;loddo:. .olloddol;.
+ cK NW 0:
+ $2.K Wd.
+ X X.
+$3; :
+: :
+$4. X.
+ k Wd.
+ $5'X k
+ 'X K.
+ $6k d
+ ;K WXXW k.
+ "cooc*" "*coo'" \ No newline at end of file
diff --git a/src/logo/ascii/m/macos2_small.txt b/src/logo/ascii/m/macos2_small.txt
new file mode 100644
index 0000000..bb108fd
--- /dev/null
+++ b/src/logo/ascii/m/macos2_small.txt
@@ -0,0 +1,7 @@
+$1 .:'
+ __ :'__
+$2 .'` `-' ``.
+$3: .-'
+$4: :
+ : `-;
+$5 `.__.-.__.' \ No newline at end of file
diff --git a/src/logo/ascii/m/macos3.txt b/src/logo/ascii/m/macos3.txt
new file mode 100644
index 0000000..73d26c7
--- /dev/null
+++ b/src/logo/ascii/m/macos3.txt
@@ -0,0 +1,16 @@
+ -:+:.
+ :++++.
+ /+++/.
+ .:-::- .+/:-\`\`.::-
+ .:/++++++/::::/++++++/::`
+ $2.:///////////////////////::`
+ /////////////////////////`
+$3+++++++++++++++++++++++++`
+++++++++++++++++++++++++
+$4ssssssssssssssssssssssss.
+:ssssssssssssssssssssssss-
+ $5osssssssssssssssssssssssss`
+ `syyyyyyyyyyyyyyyyyyyyyyyyys`
+ $6`ossssssssssssssssssssssss
+ :ooooooooooooooooooo+.
+ `:++oo+/:- -:/+o+/- \ No newline at end of file
diff --git a/src/logo/ascii/m/macos_small.txt b/src/logo/ascii/m/macos_small.txt
new file mode 100644
index 0000000..2d90ee3
--- /dev/null
+++ b/src/logo/ascii/m/macos_small.txt
@@ -0,0 +1,7 @@
+$1 .:'
+ __ :'__
+$2 .'`__`-'__``.
+$3:__________.-'
+$4:_________:
+ :_________`-;
+$5 `.__.-.__.' \ No newline at end of file
diff --git a/src/logo/ascii/m/mageia.txt b/src/logo/ascii/m/mageia.txt
new file mode 100644
index 0000000..cf4050c
--- /dev/null
+++ b/src/logo/ascii/m/mageia.txt
@@ -0,0 +1,19 @@
+ .°°.
+ °° .°°.
+ .°°°. °°
+ . .
+ °°° .°°°.
+ .°°°. '___'
+$2 .$1'___' $2 .
+ :dkxc;'. ..,cxkd;
+ .dkk. kkkkkkkkkk .kkd.
+.dkk. ';cloolc;. .kkd
+ckk. .kk;
+xO: cOd
+xO: lOd
+lOO. .OO:
+.k00. .00x
+ .k00; ;00O.
+ .lO0Kc;,,,,,,;c0KOc.
+ ;d00KKKKKK00d;
+ .,KKKK,. \ No newline at end of file
diff --git a/src/logo/ascii/m/mageia_small.txt b/src/logo/ascii/m/mageia_small.txt
new file mode 100644
index 0000000..5bfffbb
--- /dev/null
+++ b/src/logo/ascii/m/mageia_small.txt
@@ -0,0 +1,7 @@
+ *
+ *
+ **
+$2 /\__/\
+/ \
+\ /
+ \____/ \ No newline at end of file
diff --git a/src/logo/ascii/m/magix.txt b/src/logo/ascii/m/magix.txt
new file mode 100644
index 0000000..3f19aa1
--- /dev/null
+++ b/src/logo/ascii/m/magix.txt
@@ -0,0 +1,19 @@
+ $2@
+ @@--=====@@
+ @@--==@@ @@====+@
+ @-@@ @==@
+ @=@
+ @=@$1 @=@ @-==== @=@$2
+ @=@$1 @-===@==++@===+@$2
+ @=@$1 @--====@@=====+@$2
+-=@$1 @--==========++@$2
+==$1 @--==========++@$2 @=@
+@==$1 @--=======@==++@$2 @=+@
+ @==$1 @-==========++$2 @=@
+ @==$1 @-=======@=%$2 @=@
+ @==$1 @@@@@@$2 @=@
+ @====@@@ @@===+%
+ @@=====@@==++++@@
+ =#@=@
+ @==@++@
+ @@@
diff --git a/src/logo/ascii/m/magpieos.txt b/src/logo/ascii/m/magpieos.txt
new file mode 100644
index 0000000..018597d
--- /dev/null
+++ b/src/logo/ascii/m/magpieos.txt
@@ -0,0 +1,20 @@
+ ;00000 :000Ol
+ .x00kk00: O0kk00k;
+ l00: :00. o0k :O0k.
+ .k0k. x$2d$dddd$1k' .d00;
+ k0k. $2.dddddl $1o00,
+ o00. $2':cc:. $1d0O
+.00l ,00.
+l00. d0x
+k0O .:k0o
+O0k ;dO0000d.
+k0O .O0O$2xxxxk$100:
+o00. k0O$2dddddd$1occ
+'00l x0O$2dddddo$3;..$1
+ x00. .x00$2kxxd$3:..$1
+ .O0x .:oxxx$4Okl.$1
+ .x0d $4,xx,$1
+ .:o. $4.xd ckd$1
+ .. $4dxl .xx;
+ :xxolldxd'
+ ;oxdl. \ No newline at end of file
diff --git a/src/logo/ascii/m/mainsailos.txt b/src/logo/ascii/m/mainsailos.txt
new file mode 100644
index 0000000..7ca9c28
--- /dev/null
+++ b/src/logo/ascii/m/mainsailos.txt
@@ -0,0 +1,18 @@
+ -
+ *%:
+ :%%%#
+ =%%%%%-
+ *%%%%%%#
+ :#%%%%%%%#.
+ -%%%%%%%%+
+ *%%%%%%%%- :
+ .#%%%%%%%#. *%=
+ -%%%%%%%%+ :#%%%*
+ +%%%%%%%%- =%%%%%%#.
+ .#%%%%%%%#. *%%%%%%%%:
+ -%%%%%%%%* :#%%%%%%%#.
+ +%%%%%%%%- =%%%%%%%%+ :%*.
+ .#%%%%%%%#: *%%%%%%%%- +%%%%*:
+ :%%%%%%%%* :#%%%%%%%#. .*%%%%%%%*
+ +%%%%%%%%= -%%%%%%%%+ :%%%%%%%%*
+ .#%%%%%%%%: *%%%%%%%%- =%%%%%%%%= \ No newline at end of file
diff --git a/src/logo/ascii/m/mainsailos_small.txt b/src/logo/ascii/m/mainsailos_small.txt
new file mode 100644
index 0000000..c68fbbb
--- /dev/null
+++ b/src/logo/ascii/m/mainsailos_small.txt
@@ -0,0 +1,7 @@
+ -:
+ +%*
+ .#%%+
+ -%%%: +=
+ +%%#..#%%-
+ .#%%+ -%%%- +=
+ -%%%- +%%#..#%%+ \ No newline at end of file
diff --git a/src/logo/ascii/m/mandriva.txt b/src/logo/ascii/m/mandriva.txt
new file mode 100644
index 0000000..635d1b1
--- /dev/null
+++ b/src/logo/ascii/m/mandriva.txt
@@ -0,0 +1,15 @@
+$2 ``
+ `-.
+$1 ` $2.---
+$1 -/ $2-::--`
+$1 `++ $2`----...```-:::::.
+$1 `os. $2.::::::::::::::-``` ` `
+$1 +s+ $2.::::::::::::::::---...--`
+$1-ss: $2`-::::::::::::::::-.``.``
+$1/ss- $2.::::::::::::-.`` `
+$1+ss: $2.::::::::::::-
+$1/sso $2.::::::-::::::-
+$1.sss/ $2-:::-.` .:::::
+$1 /sss+. $2..`$1 `--` $2.:::
+$1 -ossso+/:://+/-` $2.:`
+$1 -/+ooo+/-. $2` \ No newline at end of file
diff --git a/src/logo/ascii/m/manjaro.txt b/src/logo/ascii/m/manjaro.txt
new file mode 100644
index 0000000..7f35123
--- /dev/null
+++ b/src/logo/ascii/m/manjaro.txt
@@ -0,0 +1,14 @@
+██████████████████ ████████
+██████████████████ ████████
+██████████████████ ████████
+██████████████████ ████████
+████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████ \ No newline at end of file
diff --git a/src/logo/ascii/m/manjaro_small.txt b/src/logo/ascii/m/manjaro_small.txt
new file mode 100644
index 0000000..e6aceac
--- /dev/null
+++ b/src/logo/ascii/m/manjaro_small.txt
@@ -0,0 +1,7 @@
+||||||||| ||||
+||||||||| ||||
+|||| ||||
+|||| |||| ||||
+|||| |||| ||||
+|||| |||| ||||
+|||| |||| |||| \ No newline at end of file
diff --git a/src/logo/ascii/m/massos.txt b/src/logo/ascii/m/massos.txt
new file mode 100644
index 0000000..1a06b69
--- /dev/null
+++ b/src/logo/ascii/m/massos.txt
@@ -0,0 +1,18 @@
+-+++/+++osyyhdmNNMMMMNdy/
+/MMMMMMMMMMMMMMMMMMMMMMMMm.
+/MMMMMMMMMMMMMMMMMMMMMMMMMm
+/MMMMMMMMMMMMMMMMMMMMMMMMMM:
+:ddddddddhddddddddhdddddddd/
+/NNNNNNNm:NNNNNNNN-NNNNNNNNo
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+/MMMMMMMN:MMMMMMMM-MMMMMMMMs
+:MMMMMMMN:MMMMMMMM-MMMMMMMMs
+ dMMMMMMN:MMMMMMMM-MMMMMMMMs
+ `yNMMMMN:MMMMMMMM-MMMMMMMMs
+ `:+oss.ssssssss.ssssssss/ \ No newline at end of file
diff --git a/src/logo/ascii/m/matuusos.txt b/src/logo/ascii/m/matuusos.txt
new file mode 100644
index 0000000..ea7a363
--- /dev/null
+++ b/src/logo/ascii/m/matuusos.txt
@@ -0,0 +1,20 @@
+░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
+░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
+░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
+░░░░░░░░░░░░░░░░▒▓▓████▓▒▒░░░░░░░░░░░░░░░░
+░░░░░░░░░░░░░▒▓████████████▓░░░░░░░░░░░░░░
+░░░░░░░░░░░░▓████████████████▒░░░░░░░░░░░░
+░░░░░░░░░░░▓██████████████████▒░░░░░░░░░░░
+░░░░░░░░░░▓████▒▓███████▓▓█████░░░░░░░░░░░
+░░░░░░░░░░██████▓░▓████▒░██████▓░░░░░░░░░░
+░░░░░░░░░▒███████▓░▒▓▒░░████████░░░░░░░░░░
+░░░░░░░░░▒█████████▒░░░█████████░░░░░░░░░░
+░░░░░░░░░░██████████▓▒██████████░░░░░░░░░░
+░░░░░░░░░░▓████████████████████▒░░░░░░░░░░
+░░░░░░░░░░░███████████████████▓░░░░░░░░░░░
+░░░░░░░░░░░░█████████████████▓░░░░░░░░░░░░
+░░░░░░░░░░░░░▓██████████████▒░░░░░░░░░░░░░
+░░░░░░░░░░░░░░░▒▓████████▓░░░░░░░░░░░░░░░░
+░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
+░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
+░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ \ No newline at end of file
diff --git a/src/logo/ascii/m/maui.txt b/src/logo/ascii/m/maui.txt
new file mode 100644
index 0000000..8b7f9bb
--- /dev/null
+++ b/src/logo/ascii/m/maui.txt
@@ -0,0 +1,20 @@
+ `.-://////:--`
+ .:/oooooooooooooooo+:.
+ `:+ooooooooooooooooooooooo:`
+ `:oooooooooooooooooooooooooooo/`
+ ..```-oooooo/-`` `:oooooo+:.` `--
+ :. +oo+-` /ooo/` -/
+ -o. `o+- +o/` -o:
+`oo` ::` :o/ `+. .+o` /oo.
+/o+ . -+oo- ` /oo/ `ooo/
++o- /ooo+` .+ooo. :ooo+
+++ .+oooo: -oooo+ `oooo+
+:. .oooooo` :ooooo- :oooo:
+` .oooooo: :ooooo+ `ooo+-`
+ .+oooooo` -oooooo: `o/-
+ +oooooo: .ooooooo.
+ /ooooooo` /ooooooo/ ..
+ `:oooooooo/:::/ooooooooo+:--:/:`
+ `:+oooooooooooooooooooooo+:`
+ .:+oooooooooooooooo+:.
+ `.-://////:-.` \ No newline at end of file
diff --git a/src/logo/ascii/m/mauna.txt b/src/logo/ascii/m/mauna.txt
new file mode 100644
index 0000000..f5741e1
--- /dev/null
+++ b/src/logo/ascii/m/mauna.txt
@@ -0,0 +1,15 @@
+ .. :-=++++=-:
+ .-+*+ -********* **=
+ =***= +******+ =---=+*.
+ +**** +****+ :-=++*++=--
+ =****= **** :+***********+:
+ +****+ *** $2.-- $1+******-
+ =*****: *- $2:+=: $1=*****:
+$2. $1+*****: : $2-+++ $1:****=
+$2-+ $1:*****+ $2- ++++ $1:***-
+$2-++=: $1=+****: $2:++ +++++ $1**+
+$2 +++++= $1-====-$2++++: +++++ $1*+
+$2 .=++++++++++++++: $2+++++= $1.
+$2 .=+++++++++= :=+++++=
+ .:::--- -+++++++-
+ :-==++==-. \ No newline at end of file
diff --git a/src/logo/ascii/m/meowix.txt b/src/logo/ascii/m/meowix.txt
new file mode 100644
index 0000000..80022da
--- /dev/null
+++ b/src/logo/ascii/m/meowix.txt
@@ -0,0 +1,10 @@
+$1 #$2% $3&$4*
+$1 ##$2%% $3&&$4**
+$1 ## $2%% $3&& $4**
+$1 ## $2%% $3&& $4**
+$1 ## $2%% $3&& $4**
+$1 ## $2%% $3&& $4**
+$1 ## $2%%$3&& $4**
+$1 ## $2%% $4**
+$1 ## $4**
+$1## $4** \ No newline at end of file
diff --git a/src/logo/ascii/m/mer.txt b/src/logo/ascii/m/mer.txt
new file mode 100644
index 0000000..e8aa0d9
--- /dev/null
+++ b/src/logo/ascii/m/mer.txt
@@ -0,0 +1,27 @@
+ dMs
+ .-`
+ `y`-o+`
+ ``NMMy
+ .--`:++.
+ .hNNNNs
+ /MMMMMN
+ `ommmd/ +/
+ ```` +/
+ `:+sssso/-`
+ .-::. `-::-` `smNMNmdmNMNd/ .://-`
+.ymNMNNdmNMMNm+` -dMMh:.....+dMMs `sNNMMNo
+dMN+::NMMy::hMM+ mMMo `ohhy/ `dMM+ yMMy::-
+MMm yMM- :MMs NMN` `:::::--sMMh dMM`
+MMm yMM- -MMs mMM+ `ymmdsymMMMs dMM`
+NNd sNN- -NNs -mMNs-.--..:dMMh` dNN
+--- .--` `--. .smMMmdddmMNdo` .--
+ ./ohddds+:`
+ +h- `.:-.
+ ./`.dMMMN+
+ +MMMMMd
+ `+dmmy-
+ ``` .+`
+ .dMNo-y.
+ `hmm/
+ .:`
+ dMs \ No newline at end of file
diff --git a/src/logo/ascii/m/midnightbsd.txt b/src/logo/ascii/m/midnightbsd.txt
new file mode 100644
index 0000000..39b3384
--- /dev/null
+++ b/src/logo/ascii/m/midnightbsd.txt
@@ -0,0 +1,16 @@
+ ..:::'''':::..
+ .:'''` `''':.
+ .:'` .::` `'::
+ :' .::' ':.
+ .:` .:::' `:.
+ :` :::: `:
+:: ::::: ::
+: ::::: :: :
+: :::::: .:::' :
+:: ::::::. : .:::::: ::
+ :. :::::::. : :::::::' .:
+ `:. `':::::::.'.:::::': .:'
+ `:. '':::::::::::::.: .:`
+ ':. `''::::::::''' .:'
+ '':.. ``'`` ..:''
+ ''''::::::'''' \ No newline at end of file
diff --git a/src/logo/ascii/m/midos.txt b/src/logo/ascii/m/midos.txt
new file mode 100644
index 0000000..9c9b80e
--- /dev/null
+++ b/src/logo/ascii/m/midos.txt
@@ -0,0 +1,20 @@
+ ▁▂▃▄▅▆▇▇████▇▇▆▅▄▃▂▁
+ ▃▅▇████████████████████▇▅▃
+ ▂▅████████████████████████████▅▁
+ ▗▟██████████████▛▀▀▜██████████████▙▖
+ ▗▟████████████████▌ ▐████████████████▙▖
+ ▗██████████████████▌ ▐██████████████████▖
+ ▗███████████████████▌ ▐███████████████████▖
+▕███████████████▀▘ ██▌ ▐██ ▝▀███████████████▏
+▐██████████▛▀▀ ▂██▌ ▐██▂ ▀▀▜██████████▌
+███████▀▀ ▁▄▆████▌ ▐████▆▄▁ ▀▀███████
+█████ ▂▄▂ ▔▀▜████▌ ▐████▛▀▔ ▂▄▂ █████
+▐████▄▄▆█████▄▂ ▔▀██▌ ▐██▀▔ ▂▄█████▆▄▄████▌
+▕██████████████▇▄▂ ██▌ ▐██ ▂▄▇██████████████▏
+ ▝███████████████████▌ ▐███████████████████▘
+ ▝██████████████████▌ ▐██████████████████▘
+ ▝▜████████████████▌ ▐████████████████▛▘
+ ▝▜██████████████▙▄▄▟██████████████▛▘
+ ▔▀▜██████████████████████████▛▀▔
+ ▔▀▜████████████████████▛▀▔
+ ▔▔▀▀▀▜██████▛▀▀▀▔▔ \ No newline at end of file
diff --git a/src/logo/ascii/m/midos_old.txt b/src/logo/ascii/m/midos_old.txt
new file mode 100644
index 0000000..4790708
--- /dev/null
+++ b/src/logo/ascii/m/midos_old.txt
@@ -0,0 +1,20 @@
+ .:=+*#%%@@@@@@%%#*+=:.
+ .=*%@@@@@@@@@@@@@@@@@@@@@@%*=:
+ .=%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+.
+ :*@@@@@@@@@@@@@@@@@$2++$1%@@@@@@@@@@@@@@@@#-
+ .*@@@@@@@@@@@@@@@@@@%$2..$1#@@@@@@@@@@@@@@@@@@#.
+ -%@@@@@@@@@@@@@@@@@@@%$2..$1#@@@@@@@@@@@@@@@@@@@@-
+ -@@@@@@@@@@@@@@@@@@@@@%$2..$1#@@@@@@@@@@@@@@@@@@@@@=
+:@@@@@@@@@@@@@@@@@%%@@@%$2..$1#@@@@#@@@@@@@@@@@@@@@@@:
+*@@@@@@@@@@@@#$2*=:..$1*@@@%$2..$1#@@@#$2..:=+$1#@@@@@@@@@@@@*
+%@@@@@@@#+$2=:...-+$1#@@@@@%$2..$1#@@@@@#$2+=:..:-$1+#@@@@@@@%
+%@@@@@$2:..:=+-..-+$1#@@@@@%$2..$1#@@@@@%$2+-..-+=:..:$1@@@@@@
+*@@@@@$2*%$1@@@@@@%$2+-..$1#@@@%$2..$1#@@@%$2..-+$1#@@@@@@$2%*$1@@@@@*
+:@@@@@@@@@@@@@@@@@$2#%$1@@@%$2..$1#@@@$2%#$1@@@@@@@@@@@@@@@@@:
+ =@@@@@@@@@@@@@@@@@@@@@%$2..$1#@@@@@@@@@@@@@@@@@@@@@=
+ -@@@@@@@@@@@@@@@@@@@@%$2..$1#@@@@@@@@@@@@@@@@@@@@=
+ .*@@@@@@@@@@@@@@@@@@%$2..$1#@@@@@@@@@@@@@@@@@@#:
+ :*@@@@@@@@@@@@@@@@@$2==$1%@@@@@@@@@@@@@@@@#-.
+ .+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+:
+ :=*%@@@@@@@@@@@@@@@@@@@@@@%*=:.
+ .-=+*#%%@@@@@@%%#*+=-. \ No newline at end of file
diff --git a/src/logo/ascii/m/minimal.txt b/src/logo/ascii/m/minimal.txt
new file mode 100644
index 0000000..7d74c99
--- /dev/null
+++ b/src/logo/ascii/m/minimal.txt
@@ -0,0 +1,18 @@
+ #####
+ #####
+ #####
+ ######
+ ######
+#####
+##### #####
+ ###### #####
+ ###### #####
+ ###### ######
+ ##### ######
+ ##### #####
+ #####
+ ######
+ ######
+ ######
+ #####
+ #####
diff --git a/src/logo/ascii/m/minix.txt b/src/logo/ascii/m/minix.txt
new file mode 100644
index 0000000..da32a8e
--- /dev/null
+++ b/src/logo/ascii/m/minix.txt
@@ -0,0 +1,17 @@
+$2 -sdhyo+:-` -/syymm:
+ sdyooymmNNy. `` .smNmmdysNd
+ odyoso+syNNmysoyhhdhsoomNmm+/osdm/
+ :hhy+-/syNNmddhddddddmNMNo:sdNd:
+ `smNNdNmmNmddddddddddmmmmmmmy`
+ `ohhhhdddddmmNNdmddNmNNmdddddmdh-
+ odNNNmdyo/:/-/hNddNy-`..-+ydNNNmd:
+ `+mNho:` smmd/ sNNh :dmms` -+ymmo.
+-od/ -m$1mm$2mo -NN+ +m$1mm$2m- yms:
++sms -.` :so: .NN+ :os/ .-`mNh:
+.-hyh+:////- -sNNd:` .--://ohNs-
+ `:hNNNNNNNMMd/sNMmhsdMMh/ymmNNNmmNNy/
+ -+sNNNNMMNNNsmNMo: :NNmymNNNNMMMms:
+ //oydNMMMMydMMNysNMMmsMMMMMNyo/`
+ ../-yNMMy--/::/-.sMMmos+.`
+ -+oyhNsooo+omy/```
+ `::ohdmds-` \ No newline at end of file
diff --git a/src/logo/ascii/m/miracle_linux.txt b/src/logo/ascii/m/miracle_linux.txt
new file mode 100644
index 0000000..e7dce8a
--- /dev/null
+++ b/src/logo/ascii/m/miracle_linux.txt
@@ -0,0 +1,16 @@
+ ,A
+ .###
+ .#' .#### .#.
+ r##: :#### ####.
+ +###; :#### ######C
+ :####: #### ,######".#.
+.# :####. :### #####'.#####.
+##: `####. ### ###'.########+.
+#### `####::## ##'.#######+'
+ ####+.`###i## #',####:'
+ `+###MI`##### 'l###:'
+ `+####+`### ;#E'
+ `+###:## #'
+ `:### '
+ '##
+ '; \ No newline at end of file
diff --git a/src/logo/ascii/m/mos.txt b/src/logo/ascii/m/mos.txt
new file mode 100644
index 0000000..cb1df1f
--- /dev/null
+++ b/src/logo/ascii/m/mos.txt
@@ -0,0 +1,18 @@
+ :--==========================--:
+.-=================================.
+-==================================-
+====================================
+=======-....:==========:....:=======
+=======: -======-. .=======
+=======: :====- .=======
+=======: :==: .=======
+=======: .. .=======
+=======: .: .: .=======
+=======: .=- :=: .=======
+=======: .===. .-==: .=======
+=======: .==========: .=======
+=======: :==========: :=======
+====================================
+-===================================
+.==================================:
+ :--===========================-:. \ No newline at end of file
diff --git a/src/logo/ascii/m/msys2.txt b/src/logo/ascii/m/msys2.txt
new file mode 100644
index 0000000..32a7ed3
--- /dev/null
+++ b/src/logo/ascii/m/msys2.txt
@@ -0,0 +1,25 @@
+$2 ...
+ 5GB###GJ. !YPGGGG
+ 7@@@@@@@B. :G@@@@@@@
+ 7@@@@@@@@Y ~&@@@@@@@@$3YJYY5YY?L
+ $2!@@@@@@@@@@^ ^&@@@@@@@$3#PP555555PBY
+ $2~&@@@@@@@@@@? ^&@@@@@@$3#5YY5YYYYYYYY#7
+ $2^&@@@@@@@@@@@B :#@@@@@@@$3G5BBYGPYYYYYY#J
+ $2^#@@@&J#@@@@@@@~ .B@@@@@@@@@@@P $3?#YYYYYPB.
+ $2:#@@@@7 G@@@@@@@J P@@@#!&@@@@@@G$3.GGYYYYGB^
+ $2:#@@@@J Y@@@@@@@B 5@@@&:.&@@@@@@&$3BBYYY5B5.
+ $2:#@@@@Y !@@@@@@@@!Y@@@&~ .#@@@@@@$3GYYYYYBP JP~
+ $2:#@@@@P :&@@@@@@@@@@@&~ B@@@@@$3#5YYYYYPGPGPGG
+ $2^#@@@@G. P@@@@@@@@@@@! P@@@@$3GYYYYYYYYYYYYBY
+ $2^#@@@@B: ^@@@@@@@@@@7 !@@@$3#GGGGGGGPPPP5GB:
+ $2!&@@@@B: Y@@@@@@@@? P@@@@@@@@@&? $3^PY:
+ $27&@@@@5. P@@@@@@? P@@@@@@@@@B
+ Y@@@&P! 5@@@@7 7G@@@@@&P~
+.JJ?~: ^JY~ ^!5J!^:
+ $1:@P5#B. #G 7&^ :@P5#B.
+ !&P^. ?@~ #P !&P^.
+ .?BG! #G5@~ .?BG!
+ :.B@. 7@@5 :.B@.
+ !PYY5Y :&@^ !PYY5Y
+ ~@Y
+ !5: \ No newline at end of file
diff --git a/src/logo/ascii/m/mx.txt b/src/logo/ascii/m/mx.txt
new file mode 100644
index 0000000..4e8f570
--- /dev/null
+++ b/src/logo/ascii/m/mx.txt
@@ -0,0 +1,17 @@
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMM
+MMMMMMMMMMNs..yMMMMMMMMMMMMMm: +NMMMMMMM
+MMMMMMMMMN+ :mMMMMMMMMMNo` -dMMMMMMMM
+MMMMMMMMMMMs. `oNMMMMMMh- `sNMMMMMMMMM
+MMMMMMMMMMMMN/ -hMMMN+ :dMMMMMMMMMMM
+MMMMMMMMMMMMMMh- +ms. .sMMMMMMMMMMMMM
+MMMMMMMMMMMMMMMN+` ` +NMMMMMMMMMMMMMM
+MMMMMMMMMMMMMMNMMd: .dMMMMMMMMMMMMMMM
+MMMMMMMMMMMMm/-hMd- `sNMMMMMMMMMMMMM
+MMMMMMMMMMNo` -` :h/ -dMMMMMMMMMMMM
+MMMMMMMMMd: /NMMh- `+NMMMMMMMMMM
+MMMMMMMNo` :mMMN+` `-hMMMMMMMM
+MMMMMMh. `oNMMd: `/mMMMMMM
+MMMMm/ -hMd- `sNMMMM
+MMNs` - :dMMM
+Mm: `oMM
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM \ No newline at end of file
diff --git a/src/logo/ascii/m/mx2.txt b/src/logo/ascii/m/mx2.txt
new file mode 100644
index 0000000..ea1fafa
--- /dev/null
+++ b/src/logo/ascii/m/mx2.txt
@@ -0,0 +1,18 @@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@%*+--:------=+*%@@@@@@@@@@@@
+@@@@@@@@@#=. .-+#%@@@@@%#*+--=#@@@@@@@@@
+@@@@@@@+. .=%@@@@@@@@@@@@@@@@*-:+@@@@@@@
+@@@@@*. *@@@@@@@@@@@@@@@@@@@@@%-.*@@@@@
+@@@@- -@@@@@@@@@@@@@@@@@@@@@@@#: -@@@@
+@@@: -@@@@@@@=.*@@@@@@@@@@@@%- = :@@@
+@@= .@@@@@@@@%- :%@@@@@@@@@+ -%@# =@@
+@% +@@@@@@@@@@#. =@@@@@@*. .*@@@@. %@
+@+ *@@@@@@*..*@@+ *@@%- =@@@@@@- +@
+@= *@@@@%- -%@@- := -%@@@@@@@: +@
+@+ :@@@= +@@= .#@@@@@@@@% *@
+@% +*. .: *@@#: +@@: @@
+@@+ :%@- :- :: +@@
+@@@- .=@@= -@@@
+@@+. . +@@
+%=..:.................::...........:..-%
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file
diff --git a/src/logo/ascii/m/mx_small.txt b/src/logo/ascii/m/mx_small.txt
new file mode 100644
index 0000000..bbe3e75
--- /dev/null
+++ b/src/logo/ascii/m/mx_small.txt
@@ -0,0 +1,7 @@
+ \\ /
+ \\/
+ \\
+ /\/ \\
+ / \ /\
+ / \/ \
+/__________\ \ No newline at end of file
diff --git a/src/logo/ascii/n.inc b/src/logo/ascii/n.inc
new file mode 100644
index 0000000..e45d33e
--- /dev/null
+++ b/src/logo/ascii/n.inc
@@ -0,0 +1,266 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo N[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_NAMIB
+ // Namib
+ {
+ .names = { "Namib" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NAMIB,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NEBIOS
+ // NebiOS
+ {
+ .names = { "NebiOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NEBIOS,
+ .colors = {
+ FF_COLOR_FG_RGB "255;95;95",
+ FF_COLOR_FG_RGB "252;146;84",
+ FF_COLOR_FG_RGB "248;196;72",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NEKOS
+ // Nekos
+ {
+ .names = { "Nekos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NEKOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NEPTUNE
+ // Neptune
+ {
+ .names = { "Neptune" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NEPTUNE,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NETRUNNER
+ // NetRunner
+ {
+ .names = { "NetRunner" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NETRUNNER,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NEXALINUX
+ // NexaLinux
+ {
+ .names = { "nexalinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NEXALINUX,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLUE,
+ FF_COLOR_FG_LIGHT_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NITRUX
+ // Nitrux
+ {
+ .names = { "Nitrux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NITRUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NIXOS
+ // NixOS
+ {
+ .names = { "NixOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NIXOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NIXOS_SMALL
+ // NixOSSmall
+ {
+ .names = { "NixOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_NIXOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NIXOS_OLD
+ // NixOSOld
+ {
+ .names = { "nixos_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_NIXOS_OLD,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NIXOS_OLD_SMALL
+ // NixOsOldSmall
+ {
+ .names = { "nixos_old_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_NIXOS_OLD_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NIXOS_OLD_SMALL
+ // NixOS2
+ {
+ .names = { "NixOS2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NIXOS2,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NETBSD
+ // NetBSD
+ {
+ .names = { "NetBSD" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NETBSD,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NETBSD2
+ // NetBSD2
+ {
+ .names = { "NetBSD2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NETBSD2,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NETBSD_SMALL
+ // NetBSD Small
+ {
+ .names = { "NetBSD_small" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NETBSD_SMALL,
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NOBARA
+ // Nobara
+ {
+ .names = { "nobara" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NOBARA,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NOMADBSD
+ // NomadBSD
+ {
+ .names = { "nomadbsd" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NOMADBSD,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NUROS
+ // NurOS
+ {
+ .names = { "NurOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NUROS,
+ .colors = {
+ FF_COLOR_FG_RGB "41;19;182",
+ FF_COLOR_FG_RGB "31;59;205",
+ FF_COLOR_FG_RGB "18;95;225",
+ FF_COLOR_FG_RGB "13;125;250",
+ },
+ .colorKeys = FF_COLOR_FG_RGB "13;125;250",
+ .colorTitle = FF_COLOR_FG_RGB "41;19;182",
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NURUNNER
+ // Nurunner
+ {
+ .names = { "Nurunner" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NURUNNER,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NUTYX
+ // NuTyX
+ {
+ .names = { "NuTyX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NUTYX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_NETHYDRA
+ // NetHydra
+ {
+ .names = { "NetHydra" },
+ .lines = FASTFETCH_DATATEXT_LOGO_NETHYDRA,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/n/namib.txt b/src/logo/ascii/n/namib.txt
new file mode 100644
index 0000000..105d66e
--- /dev/null
+++ b/src/logo/ascii/n/namib.txt
@@ -0,0 +1,20 @@
+ .:+shysyhhhhysyhs+:.
+ -/yyys syyy/-
+ -shy yhs-
+ -yhs shy-
+ +hy yh+
+ +ds sd+
+/ys so sy/
+sh smMMNdyo hs
+yo ymMMMMNNMMNho oy
+N ydMMMNNMMMMMMMMMmy N
+N shmMMMMNNMMMMMMMMMMMMMNy N
+yo ooshmNMMMNNNNMMMMMMMMMMMMMMMMMms oy
+sd yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy ds
+/ys sy/
+ +ds sd+
+ +hy yh+
+ -yhs shy-
+ -shy yhs-
+ -/yyys syyy/-
+ .:+shysyhyhhysyhs+:. \ No newline at end of file
diff --git a/src/logo/ascii/n/nebios.txt b/src/logo/ascii/n/nebios.txt
new file mode 100644
index 0000000..eace0c1
--- /dev/null
+++ b/src/logo/ascii/n/nebios.txt
@@ -0,0 +1,19 @@
+ $2:ddl. $3:O0x'
+ $2.dddddd: $3x00000c
+ $2:dddddddl $3.O000000k
+ $2cdddddddo $3.00000000c
+ $2,dddddddd. $3:000000000.
+ $1.: $2.dddddddd' $3l0000000000
+ $1:oo. $2dddddddd; $3.00000000000
+ $1oooo. $2ddddddddc $3.000000000k
+ $1ooooo, $2ldddddddl $300000000c
+ $1.oooooo; $2:dddddddo $3k000000.
+ $1'oooooooc $2'dddddddd. $3c00000
+ $1:ooooooool $2.dddddddd' $3'0000
+ $1ooooooooooo $2dddddddd; $3.00k
+ $1oooooooooo. $2ddddddddc $3.0:
+ $1ooooooooo. $2cdddddddl
+$1.oooooooo. $2,dddddddo
+$1:ooooooo. $2.dddddddd.
+$1loooooo. $2.ddddddd:
+ $1coooo $2ldddd,
diff --git a/src/logo/ascii/n/nekos.txt b/src/logo/ascii/n/nekos.txt
new file mode 100644
index 0000000..4ddaf1c
--- /dev/null
+++ b/src/logo/ascii/n/nekos.txt
@@ -0,0 +1,23 @@
+ @@@@@
+ @@@@@@@@@.
+ @@@@@@@@ @@@
+ @@@@@@@@@@@ @@.
+ @@@@@@@@@@@@@ .
+ @@@@@@@@@@@@@@@@@ ,
+ @@@@@@@@@@@@@@@@@@@
+ @@@@@$2///$1@@@@@@@$2///$1@@@
+ @@@@$2/***$1@@@@@@@$2**//$1@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@
+ @@@/ /@@@@@@@@@/ /@@@
+ @@@@@@ @@@$3██$1@@@@ @@@@@@
+ @@@@@@/ /@$2██$3██$2██$1@@/ /@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ ##########%%%%
+ ##########%% %%
+ @ @@@#######@@%%%
+ @@@ @@@@####@@@@ %
+ @@@ @@@@@@@#@@@@@@@
+ @@@ @@@@@@@@@@@@@@@
+ @@@@ @@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file
diff --git a/src/logo/ascii/n/neptune.txt b/src/logo/ascii/n/neptune.txt
new file mode 100644
index 0000000..28ca7a2
--- /dev/null
+++ b/src/logo/ascii/n/neptune.txt
@@ -0,0 +1,17 @@
+ ./+sydddddddys/-.
+ .+ymNNdyooo/:+oooymNNmy/`
+ `/hNNh/.` `-+dNNy:`
+ /mMd/. .++.:oy/ .+mMd-
+ `sMN/ oMMmdy+. `oNNo
+ `hMd. `/ymy/. :NMo
+ oMN- `/dMd: /MM-
+`mMy -dMN+` mMs
+.MMo -NMM/ yMs
+ dMh mMMMo:` `NMo
+ /MM/ /ymMMMm- sMN.
+ +Mm: .hMMd` oMN/
+ +mNs. `yNd/` -dMm-
+ .yMNs: `/.` `/yNNo`
+ .odNNy+-` .:ohNNd/.
+ -+ymNNmdyyyyyyydmNNmy+.
+ `-//sssssss//. \ No newline at end of file
diff --git a/src/logo/ascii/n/netbsd.txt b/src/logo/ascii/n/netbsd.txt
new file mode 100644
index 0000000..6308771
--- /dev/null
+++ b/src/logo/ascii/n/netbsd.txt
@@ -0,0 +1,17 @@
+$1 `-/oshdmNMNdhyo+:-`
+$2y$1/s+:-`` `.-:+oydNMMMMNhs/-``
+$2-m+$1NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-`
+ $2-m+$1NMMMMMMMMMMMMMMMMMMMMmy+:`
+ $2-N/$1dMMMMMMMMMMMMMMMds:`
+ $2-N/$1hMMMMMMMMMmho:`
+ $2-N/$1-:/++/:.`
+$2 :M+
+ :Mo
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms \ No newline at end of file
diff --git a/src/logo/ascii/n/netbsd2.txt b/src/logo/ascii/n/netbsd2.txt
new file mode 100644
index 0000000..81777a4
--- /dev/null
+++ b/src/logo/ascii/n/netbsd2.txt
@@ -0,0 +1,20 @@
+ __,gnnnOCCCCCOObaau,_
+$2 _._ $1__,gnnCCCCCCCCOPF"''
+$2 (N\\$1XCbngg,._____.,gnnndCCCCCCCCCCCCF"___,,,,___
+$2 \N\\$1XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOOOOPYvv.
+$2 \N\\$1XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPF"''
+$2 \N\\$1XCCCCCCCCCCCCCCCCCCCCCCCCCOF"'
+$2 \N\\$1XCCCCCCCCCCCCCCCCCCCCOF"'
+$2 \N\\$1XCCCCCCCCCCCCCCCPF"'
+$2 \N\\$1\"PCOCCCOCCFP""
+$2 \N\\
+ \N\\
+ \N\\
+ \NN\
+ \NN\
+ \NNA.
+ \NNA,
+ \NNN,
+ \NNN\
+ \NNN\
+ \NNNA \ No newline at end of file
diff --git a/src/logo/ascii/n/netbsd_small.txt b/src/logo/ascii/n/netbsd_small.txt
new file mode 100644
index 0000000..b37056c
--- /dev/null
+++ b/src/logo/ascii/n/netbsd_small.txt
@@ -0,0 +1,8 @@
+$2 \\$1`-______,----__
+$2 \\ $1 __,---`_
+$2 \\ $1 `.____
+$2 \\$1-______,----`-
+$2 \\
+$2 \\
+$2 \\
+$2 \\ \ No newline at end of file
diff --git a/src/logo/ascii/n/nethydra.txt b/src/logo/ascii/n/nethydra.txt
new file mode 100644
index 0000000..d4b67c9
--- /dev/null
+++ b/src/logo/ascii/n/nethydra.txt
@@ -0,0 +1,11 @@
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⣶⣶⣦⣤⣄⡀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣦⣤⣌⣙⠻⢶⣄⠀
+⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠊⣤⣶⣶⣶⣦⣤⣼⡧⢤⡈⠙⠳⣦⡙⢷⣄⠀
+⠀⠀⣠⣴⣶⣿⣿⣿⣿⣿⣿⣶⣦⣀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⢾⡷⣢⢄⣠⣬⣭⣝⣿⣿⣄⠈⠓⢄⠈⠳⡄⠙⢷
+⢀⣾⣿⡿⠛⠉⠀⠀⠀⠀⠉⠛⠿⣿⣷⣦⡀⠀⠀⠀⡖⠉⣠⠶⢛⣼⣡⡍⢉⠍⠉⠙⠻⣿⣿⣧⠀⠀⠁⠀⠀⠀⠀⠳⡀
+⢸⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣦⣄⠀⠀⠈⠁⡠⠟⣫⣵⡇⠀⠀⠀⠀⠀⢈⣿⣿
+⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣷⣄⠀⠚⠀⠞⠋⠀⠀⠀⠀⠀⠀⢀⣼⣿⡟
+⠸⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠙⢿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⢀⣠⣿⣿⠏
+⠀⠹⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⣀⣴⡞⠁⠀⠀⠀⠀⠈⠛⠿⣿⣿⣶⣶⣶⣶⣾⡿⠟⠋
+⠀⠀⠙⠿⣿⣷⣶⣦⣴⣶⣾⣿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠁
+⠀⠀⠀⠀⠈⠉⠛⠛⠛⠛⠉
diff --git a/src/logo/ascii/n/netrunner.txt b/src/logo/ascii/n/netrunner.txt
new file mode 100644
index 0000000..26e8ea1
--- /dev/null
+++ b/src/logo/ascii/n/netrunner.txt
@@ -0,0 +1,20 @@
+ .:oydmMMMMMMmdyo:`
+ -smMMMMMMMMMMMMMMMMMMds-
+ +mMMMMMMMMMMMMMMMMMMMMMMMMd+
+ /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/
+ `hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy`
+ .mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd`
+ dMMMMMMMMMMMMMMMMMMMMMMNdhmMMMMMMMMMMh
++MMMMMMMMMMMMMNmhyo+/-. -MMMMMMMMMMMM/
+mMMMMMMMMd+:.` `mMMMMMMMMMMMMd
+MMMMMMMMMMMdy/. yMMMMMMMMMMMMMM
+MMMMMMMMMMMMMMMNh+` +MMMMMMMMMMMMMMM
+mMMMMMMMMMMMMMMMMMs -NMMMMMMMMMMMMMMd
++MMMMMMMMMMMMMMMMMN. `mMMMMMMMMMMMMMMM/
+ dMMMMMMMMMMMMMMMMMy hMMMMMMMMMMMMMMMh
+ `dMMMMMMMMMMMMMMMMM-+MMMMMMMMMMMMMMMd`
+ `hMMMMMMMMMMMMMMMMmMMMMMMMMMMMMMMMy
+ /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm:
+ +dMMMMMMMMMMMMMMMMMMMMMMMMd/
+ -odMMMMMMMMMMMMMMMMMMdo-
+ `:+ydmNMMMMNmhy+-` \ No newline at end of file
diff --git a/src/logo/ascii/n/nexalinux.txt b/src/logo/ascii/n/nexalinux.txt
new file mode 100644
index 0000000..c1ff9cf
--- /dev/null
+++ b/src/logo/ascii/n/nexalinux.txt
@@ -0,0 +1,19 @@
+
+ ****
+ **********
+ ******************
+ ************************
+ ******************************
+ *************** ***************
+ ************ **** #***********
+ ********* ********** *********
+ ****** #****************# #*****
+ * ************************ *#
+ ******************************
+ #************** **************#
+ ************ **** ************
+ ********* ********** *********
+ *** **************** ***
+ **********************
+ ********************
+ ***** ***** \ No newline at end of file
diff --git a/src/logo/ascii/n/nitrux.txt b/src/logo/ascii/n/nitrux.txt
new file mode 100644
index 0000000..571fa74
--- /dev/null
+++ b/src/logo/ascii/n/nitrux.txt
@@ -0,0 +1,18 @@
+`:/.
+`/yo
+`/yo
+`/yo .+:.
+`/yo .sys+:.`
+`/yo `-/sys+:.`
+`/yo ./sss+:.`
+`/yo .:oss+:-`
+`/yo ./o///:-`
+`/yo `.-:///////:`
+`/yo `.://///++//-``
+`/yo `.-:////++++/-`
+`/yo `-://///++o+/-`
+`/yo `-/+o+++ooo+/-`
+`/s+:+oooossso/.`
+`//+sssssso:.
+`+syyyy+:`
+:+s+- \ No newline at end of file
diff --git a/src/logo/ascii/n/nixos.txt b/src/logo/ascii/n/nixos.txt
new file mode 100644
index 0000000..b420805
--- /dev/null
+++ b/src/logo/ascii/n/nixos.txt
@@ -0,0 +1,20 @@
+ $1▗▄▄▄ $2▗▄▄▄▄ ▄▄▄▖
+ $1▜███▙ $2▜███▙ ▟███▛
+ $1▜███▙ $2▜███▙▟███▛
+ $1▜███▙ $2▜██████▛
+ $1▟█████████████████▙ $2▜████▛ $3▟▙
+ $1▟███████████████████▙ $2▜███▙ $3▟██▙
+ $6▄▄▄▄▖ $2▜███▙ $3▟███▛
+ $6▟███▛ $2▜██▛ $3▟███▛
+ $6▟███▛ $2▜▛ $3▟███▛
+$6▟███████████▛ $3▟██████████▙
+$6▜██████████▛ $3▟███████████▛
+ $6▟███▛ $5▟▙ $3▟███▛
+ $6▟███▛ $5▟██▙ $3▟███▛
+ $6▟███▛ $5▜███▙ $3▝▀▀▀▀
+ $6▜██▛ $5▜███▙ $4▜██████████████████▛
+ $6▜▛ $5▟████▙ $4▜████████████████▛
+ $5▟██████▙ $4▜███▙
+ $5▟███▛▜███▙ $4▜███▙
+ $5▟███▛ ▜███▙ $4▜███▙
+ $5▝▀▀▀ ▀▀▀▀▘ $4▀▀▀▘
diff --git a/src/logo/ascii/n/nixos2.txt b/src/logo/ascii/n/nixos2.txt
new file mode 100644
index 0000000..0e875b3
--- /dev/null
+++ b/src/logo/ascii/n/nixos2.txt
@@ -0,0 +1,17 @@
+$1 __ $2____ __
+$1 / \ $2\ \ / \
+$1 \ \ $2\ \/ /
+$1 ___\ \___$2\ /
+$1 / $2\ / $1/\
+$1 /______________$2\ \ $1/ \
+$2 / / $2\ \$1/ /
+$2 ______/ / $2\ $1/ /___
+$2/ / $2\$1/ \
+$2\____ /$1\ $1/ ______/
+$2 / /$1 \ $1/ /
+$2 / /$1\ \$2______$1/$2___$1/$2_____
+$2 \ /$1 \ \$2 /
+$2 \/$1 / \$2____ ____/
+ $1 / \$2 \ \
+ $1/ /\ \$2 \ \
+ $1\__/ \___\$2 \__/ \ No newline at end of file
diff --git a/src/logo/ascii/n/nixos_old.txt b/src/logo/ascii/n/nixos_old.txt
new file mode 100644
index 0000000..3b26708
--- /dev/null
+++ b/src/logo/ascii/n/nixos_old.txt
@@ -0,0 +1,28 @@
+$1 ____ $2_______ ____
+$1 /####\ $2\######\ /####\
+$1 ######\ $2\######\ /#####/
+$1 \######\ $2\######\ /#####/
+$1 \######\ $2\######\/#####/ $1/\
+$1 \######\ $2\###########/ $1/##\
+$1 ________\######\______$2\#########/ $1/####\
+$1 /#######################$2\#######/ $1/######
+$1 /#########################$2\######\ $1/######/
+$1 /###########################$2\######\ $1/######/
+$1 ¯¯¯¯¯¯¯¯¯¯¯¯$2/######/$1¯¯¯¯¯¯¯¯¯$2\######$1/######/
+$2 /######/ $2\####$1/######/________
+$2 _____________/######/ $2\##$1/################\
+$2 /###################/ $2\$1/##################\
+$2 \##################/$1\ /###################/
+$2 \################/$1##\ /######/¯¯¯¯¯¯¯¯¯¯¯¯¯
+$2 ¯¯¯¯¯¯¯¯/######/$1####\ /######/
+$2 /######/$1######\$2_________$1/######/$2____________
+$2 /######/ $1\######\$2###########################/
+$2 /######/ $1\######\$2#########################/
+$2 ######/ $1/#######\$2#######################/
+$2 \####/ $1/#########\$2¯¯¯¯¯¯\######\¯¯¯¯¯¯¯¯
+$2 \##/ $1/###########\$2 \######\
+$2 \/ $1/#####/\######\$2 \######\
+$1 $1/#####/ \######\$2 \######\
+$1 $1/#####/ \######\$2 \######
+$1 $1\####/ \######\$2 \####/
+$1 $1¯¯¯¯ ¯¯¯¯¯¯¯$2 ¯¯¯¯ \ No newline at end of file
diff --git a/src/logo/ascii/n/nixos_old_small.txt b/src/logo/ascii/n/nixos_old_small.txt
new file mode 100644
index 0000000..f6af0a6
--- /dev/null
+++ b/src/logo/ascii/n/nixos_old_small.txt
@@ -0,0 +1,7 @@
+$1 \\ $2\\ //
+$1 ==\\__$2\\/ $1//
+$2 // $2\\$1//
+$2==// $1//==
+$2 //$1\\$2___$1//
+$2// $1/\\ $2\\==
+ $1// \\ $2\\ \ No newline at end of file
diff --git a/src/logo/ascii/n/nixos_small.txt b/src/logo/ascii/n/nixos_small.txt
new file mode 100644
index 0000000..8c3b2a7
--- /dev/null
+++ b/src/logo/ascii/n/nixos_small.txt
@@ -0,0 +1,7 @@
+$1 ▗▄ $2▗▄ ▄▖
+$1 ▄▄🬸█▄▄▄$2🬸█▛ $3▃
+$6 ▟▛ $2▜$3▃▟🬕
+$6🬋🬋🬫█ $3█🬛🬋🬋
+$6 🬷▛🮃$5▙ $3▟▛
+$6 🮃 $5▟█🬴$4▀▀▀█🬴▀▀
+ $5▝▀ ▀▘ $4▀▘ \ No newline at end of file
diff --git a/src/logo/ascii/n/nobara.txt b/src/logo/ascii/n/nobara.txt
new file mode 100644
index 0000000..a0fadc2
--- /dev/null
+++ b/src/logo/ascii/n/nobara.txt
@@ -0,0 +1,17 @@
+⢀⣤⣴⣶⣶⣶⣦⣤⡀⠀⣀⣠⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣤⣤⣀⡀
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡀
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠉⠁⠀⠀⠉⠉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⢀⣀⣀⡀⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⢠⣾⣿⣿⣿⣿⣷⡄⠀⠀⠀⠻⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⣀⣀⣬⣽⣿⣿⣿⣿⣿⣿
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠈⠻⢿⣿⣿⡿⠟⠁⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠉⠛⠛⢿⣿⣿⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿
+⠘⢿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⠟⠁
+ ⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠉⠁ \ No newline at end of file
diff --git a/src/logo/ascii/n/nomadbsd.txt b/src/logo/ascii/n/nomadbsd.txt
new file mode 100644
index 0000000..a687e3f
--- /dev/null
+++ b/src/logo/ascii/n/nomadbsd.txt
@@ -0,0 +1,13 @@
+ _======__
+ (===============\
+ (===================\
+ _ _---__
+ (= ====-
+ (= ======
+ (== ======
+ (== ======
+ (==\ \=-_ _=/ /====/
+ (==\ \========/ /====/ /====-_
+ (==\ \=====/ /==/ /===--
+/================/ /===-
+\===========/ \ No newline at end of file
diff --git a/src/logo/ascii/n/nuros.txt b/src/logo/ascii/n/nuros.txt
new file mode 100644
index 0000000..28b2fac
--- /dev/null
+++ b/src/logo/ascii/n/nuros.txt
@@ -0,0 +1,8 @@
+ ⢀⣤⣶⠿⠿⠿⠿⢷⣶⣄⡀
+ ⣰⡿⠋⠁⢀⣠⣤⣀⡀⠈⠙⢿⣄
+$2⣸⡿⠁⢀⣾⣿⣿⣿⣿⣿⣷⡀⠈⢿⡆
+⣿⠃ ⣾⣿⣿⣿⡿⣟⣾⡽⣷ ⠸⣿
+$3⣿⡄ ⢿⣿⣿⣟⣿⣻⣽⣻⡽ ⢰⣟
+⠸⣷⡀⠈⠿⣷⣻⢷⣻⣞⠷⠁⢀⣾⠇
+$4 ⠙⣷⣄⡀⠈⠉⠉⠁ ⢀⣤⡿⠋
+ ⠙⠿⢷⣶⣶⣶⠾⠟⠋
diff --git a/src/logo/ascii/n/nurunner.txt b/src/logo/ascii/n/nurunner.txt
new file mode 100644
index 0000000..0546233
--- /dev/null
+++ b/src/logo/ascii/n/nurunner.txt
@@ -0,0 +1,19 @@
+ ,xc
+ ;00cxXl
+ ;K0, .xNo.
+ :KO' .lXx.
+ cXk. ;xl cXk.
+ cXk. ;k:.,xo. cXk.
+ .lXx. :x::0MNl,dd. :KO,
+ .xNx. cx;:KMMMMMNo'dx. ;KK;
+ .dNl. cd,cXMMMMMMMMMWd,ox' 'OK:
+;WK. 'K,.KMMMMMMMMMMMMMWc.Kx lMO
+ 'OK: 'dl'xWMMMMMMMMMM0::x: 'OK:
+ .kNo .xo'xWMMMMMM0;:O: ;KK;
+ .dXd. .do,oNMMO;ck: ;00,
+ oNd. .dx,;'cO; ;K0,
+ oNx. okk; ;K0,
+ lXx. :KO'
+ cKk' cXk.
+ ;00:lXx.
+ ,kd. \ No newline at end of file
diff --git a/src/logo/ascii/n/nutyx.txt b/src/logo/ascii/n/nutyx.txt
new file mode 100644
index 0000000..d0ca44d
--- /dev/null
+++ b/src/logo/ascii/n/nutyx.txt
@@ -0,0 +1,23 @@
+ .
+ .
+ ...
+ ...
+ .... .........--.
+ ..-++-----....--++++++---.
+ .-++++++-. .-++++++++++++-----..
+ .--... .++..-+++--.....-++++++++++--..
+ . .-+-. .**- .... ..-+----..
+ .+++. .*+. + -++-----.
+ .+++++- ++. .*+. .....-+++-----.
+ -+++-++. .+. .-+***++***++--++++. .
+ -+-. -- -. -*- ...... ..--.
+.-. .+- . -+.
+. .+- +.
+ -- --
+ -+----. .-
+ -++-.+. .
+ .++. --
+ +. ----.
+ . .+. ..
+ - .
+ . \ No newline at end of file
diff --git a/src/logo/ascii/o.inc b/src/logo/ascii/o.inc
new file mode 100644
index 0000000..b1840dc
--- /dev/null
+++ b/src/logo/ascii/o.inc
@@ -0,0 +1,488 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo O[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_OBARUN
+ // Obarun
+ {
+ .names = { "Obarun" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OBARUN,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OBREVENGE
+ // OBRevenge
+ {
+ .names = { "OBRevenge" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OBREVENGE,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OBSIDIANOS
+ // ObsidianOS
+ {
+ .names = { "ObsidianOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OBSIDIANOS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_LIGHT_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OMNIOS
+ // OmniOS
+ {
+ .names = { "OmniOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OMNIOS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENKYLIN
+ // OpenKylin
+ {
+ .names = { "openkylin", "open-kylin" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENKYLIN,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENBSD
+ // OpenBSD
+ {
+ .names = { "openbsd" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENBSD,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENBSD_SMALL
+ // OpenBSDSmall
+ {
+ .names = { "openbsd_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENBSD_SMALL,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENEULER
+ // OpenEuler
+ {
+ .names = { "OpenEuler" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENEULER,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENINDIANA
+ // OpenIndiana
+ {
+ .names = { "OpenIndiana" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENINDIANA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENMAMBA
+ // OpenMamba
+ {
+ .names = { "OpenMamba" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENMAMBA,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENRUYI
+ // openRuyi
+ {
+ .names = { "openRuyi" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENRUYI,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSTAGE
+ // OpenStage
+ {
+ .names = { "OpenStage" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSTAGE,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE
+ // OpenSuse
+ {
+ .names = { "opensuse" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_SMALL
+ // OpenSuseSmall
+ {
+ .names = { "opensuse_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_MICROOS
+ // openSuseMicroOS
+ {
+ .names = { "opensuse-microos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_MICROOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_LEAP
+ // OpenSuseLeap
+ {
+ .names = { "opensuse-leap" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_LEAP,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_LEAP_OLD
+ // OpenSuseLeapOld
+ {
+ .names = { "opensuse-leap_old" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_LEAP_OLD,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED
+ // OpenSuseTumbleweed
+ {
+ .names = { "opensuse-tumbleweed" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED_SMALL
+ // OpenSuseTumbleweedSmall
+ {
+ .names = { "opensuse-tumbleweed_small" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED_SMALL,
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED_OLD
+ // OpenSuseTumbleweedOld
+ {
+ .names = { "opensuse-tumbleweed_old" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED_OLD,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED2
+ // OpenSuseTumbleweed2
+ {
+ .names = { "opensuse-tumbleweed2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_TUMBLEWEED2,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_SLOWROLL
+ // openSUSESlowroll
+ {
+ .names = { "opensuse-slowroll", "opensuse-tumbleweed-slowroll" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_SLOWROLL,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENMANDRIVA
+ // OpenMandriva
+ {
+ .names = { "openmandriva", "open-mandriva", "open_mandriva", "openmandriva lx" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENMANDRIVA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENWRT
+ // OpenWrt
+ {
+ .names = { "openwrt" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENWRT,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENWRT_SMALL
+ // OpenWrtSmall
+ {
+ .names = { "openwrt_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENWRT_SMALL,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENWRT_OLD
+ // OpenWrtOld
+ {
+ .names = { "openwrt_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENWRT_OLD,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPNSENSE
+ // OPNsense
+ {
+ .names = { "OPNsense" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OPNSENSE,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_256 "202",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ORACLE
+ // Oracle
+ {
+ .names = { "oracle", "oracle linux", "oracle linux server" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ORACLE,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ORCHID
+ // Orchid
+ {
+ .names = { "orchid" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ORCHID,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ORCHID_SMALL
+ // OrchidSmall
+ {
+ .names = { "orchid_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ORCHID_SMALL,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OREON
+ // Oreon
+ {
+ .names = { "Oreon" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OREON,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ORIGAMI
+ // Origami
+ {
+ .names = { "Origami" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ORIGAMI,
+ .colors = {
+ FF_COLOR_FG_RGB "185;210;235", // $1 sail — light sky blue
+ FF_COLOR_FG_RGB "40;90;160", // $2 hull — deeper navy
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ORIGAMI_SMALL
+ // OrigamiSmall
+ {
+ .names = { "Origami_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ORIGAMI_SMALL,
+ .colors = {
+ FF_COLOR_FG_RGB "185;210;235", // $1 sail — light sky blue
+ FF_COLOR_FG_RGB "40;90;160", // $2 hull — deeper navy
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OS2WARP
+ // OS/2 Warp
+ {
+ .names = { "OS2Warp" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OS2WARP,
+ .colors = {
+ FF_COLOR_FG_LIGHT_WHITE,
+ FF_COLOR_FG_LIGHT_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OS_ELBRUS
+ // OS_Elbrus
+ {
+ .names = { "OS Elbrus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OS_ELBRUS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OSMC
+ // OSMC
+ {
+ .names = { "OSMC", "Open Source Media Center" },
+ .lines = FASTFETCH_DATATEXT_LOGO_OSMC,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS
+ // OSX
+ {
+ .names = { "OSX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_LIGHT_RED,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_MACOS_SMALL
+ // OSXSmall
+ {
+ .names = { "OSX_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_MACOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/o/obarun.txt b/src/logo/ascii/o/obarun.txt
new file mode 100644
index 0000000..e2428c4
--- /dev/null
+++ b/src/logo/ascii/o/obarun.txt
@@ -0,0 +1,19 @@
+ ,;::::;
+ ;cooolc;,
+ ,coool;
+ ,loool,
+ loooo;
+ :ooool
+ cooooc ,:ccc;
+ looooc :oooooool
+ cooooo ;oooooooooo,
+ :ooooo; :ooooooooooo
+ oooooo oooooooooooc
+:oooooo :ooooooooool
+loooooo ;oooooooool
+looooooc .coooooooc
+cooooooo: ,;co;
+,ooooooool; ,:loc
+ cooooooooooooloooooc
+ ;ooooooooooooool;
+ ;looooooolc; \ No newline at end of file
diff --git a/src/logo/ascii/o/obrevenge.txt b/src/logo/ascii/o/obrevenge.txt
new file mode 100644
index 0000000..84f833c
--- /dev/null
+++ b/src/logo/ascii/o/obrevenge.txt
@@ -0,0 +1,18 @@
+ __ __
+ _@@@@ @@@g_
+ _@@@@@@ @@@@@@
+ _@@@@@@M W@@@@@@_
+ j@@@@P ^W@@@@
+ @@@@L____ _____Q@@@@
+Q@@@@@@@@@@j@@@@@@@@@@
+@@@@@ T@j@ T@@@@@
+@@@@@ ___Q@J@ _@@@@@
+@@@@@fMMM@@j@jggg@@@@@@
+@@@@@ j@j@^MW@P @@@@
+Q@@@@@ggg@@f@ @@@@@@L
+^@@@@WWMMP ^ Q@@@@
+ @@@@@_ _@@@@l
+ W@@@@@g_____g@@@@@P
+ @@@@@@@@@@@@@@@@l
+ ^W@@@@@@@@@@@P
+ ^TMMMMTll \ No newline at end of file
diff --git a/src/logo/ascii/o/obsidianos.txt b/src/logo/ascii/o/obsidianos.txt
new file mode 100644
index 0000000..b195a1f
--- /dev/null
+++ b/src/logo/ascii/o/obsidianos.txt
@@ -0,0 +1,16 @@
+$2 *+++++++#
+$2#*******###$3 @
+$2#*******###$3 @
+$2#*******###$3 @ @
+$2#*******##%$3 @
+$3@@@@@@@@@ @ @ @
+ @ @ @ @ @
+ @ @ @ @ @
+ @ @ @ @
+ @ @ @ @ @
+ @ @ @@@@@@@@@
+ @$1#*******##%$3
+ @$1 ##########%$3
+ @$1 ##########%$3
+ @$1 ##########%
+ ########%
diff --git a/src/logo/ascii/o/omnios.txt b/src/logo/ascii/o/omnios.txt
new file mode 100644
index 0000000..a1512dc
--- /dev/null
+++ b/src/logo/ascii/o/omnios.txt
@@ -0,0 +1,8 @@
+ ____ __ __ _ _ _
+ / __ \ | \/ || \ | || |
+| | | || || \| || |
+| |__| || |\/| || , `$2_$1||$2_$1| $2____$1
+ \____/ |_| |_||_|\$2/ __ \ / ___|
+ | | | ||(__
+ $3community$2 | |__| | ___)|
+ $3edition$2 \____/ |____/ \ No newline at end of file
diff --git a/src/logo/ascii/o/openbsd.txt b/src/logo/ascii/o/openbsd.txt
new file mode 100644
index 0000000..f65db67
--- /dev/null
+++ b/src/logo/ascii/o/openbsd.txt
@@ -0,0 +1,23 @@
+$3 _
+ (_)
+$1 | .
+$1 . |L /| . $3 _
+$1 _ . |\ _| \--+._/| . $3(_)
+$1 / ||\| Y J ) / |/| ./
+ J |)'( | ` F`.'/ $3 _
+$1 -<| F __ .-< $3(_)
+$1 | / .-'$3. $1`. /$3-. $1L___
+ J \ < $3\ $1 | | $5O$3\$1|.-' $3 _
+$1 _J \ .- \$3/ $5O $3| $1| \ |$1F $3(_)
+$1 '-F -<_. \ .-' `-' L__
+__J _ _. >-' $1)$4._. $1|-'
+$1 `-|.' /_. $4\_| $1 F
+ /.- . _.<
+ /' /.' .' `\
+ /L /' |/ _.-'-\
+ /'J ___.---'\|
+ |\ .--' V | `. `
+ |/`. `-. `._)
+ / .-.\
+ \ ( `\
+ `.\ \ No newline at end of file
diff --git a/src/logo/ascii/o/openbsd_small.txt b/src/logo/ascii/o/openbsd_small.txt
new file mode 100644
index 0000000..b20b4c6
--- /dev/null
+++ b/src/logo/ascii/o/openbsd_small.txt
@@ -0,0 +1,7 @@
+ _____
+ \- -/
+ \_/ \
+ | $2O O$1 |
+ |_ < ) 3 )
+ / \ /
+ /-_____-\ \ No newline at end of file
diff --git a/src/logo/ascii/o/openeuler.txt b/src/logo/ascii/o/openeuler.txt
new file mode 100644
index 0000000..344d432
--- /dev/null
+++ b/src/logo/ascii/o/openeuler.txt
@@ -0,0 +1,23 @@
+ `.cc.`
+ ``.cccccccc..`
+ `.cccccccccccccccc.`
+ ``.cccccccccccccccccccccc.``
+ `..cccccccccccccccccccccccccccc..`
+`.ccccccccccccccc$2/++/$1ccccccccccccccccc.`
+.ccccccccccccccc$2mNMMNdo+oso+$1ccccccccccc.
+.cccccccccc$2/++odms+//+mMMMMm/:+syso/$1cccc
+.ccccccccc$2yNNMMMs:::/::+o+/:$1c$2dMMMMMm$1cccc
+.ccccccc$2:+NmdyyhNNmNNNd:$1ccccc$1$2:oyyyo:$1cccc
+.ccc$2:ohdmMs:$1cccc$2+mNMNmy$1ccccccccccccccccc
+.cc$2/NMMMMMo////:$1c$2:///:$1cccccccccccccccccc
+.cc$2:syysyNMNNNMNy$1ccccccccccccccccccccccc
+.cccccccc$2+MMMMMNy$1c$2:/+++/$1cccccccccccccccc
+.ccccccccc$2ohhhs/$1c$2omMMMMNh$1ccccccccccccccc
+.ccccccccccccccc$2:MMMMMMMM/$1cccccccccccccc
+.cccccccccccccccc$2sNNNNNd+$1cccccccccccccc.
+`..cccccccccccccccc$2/+/:$1cccccccccccccc..`
+ ``.cccccccccccccccccccccccccccc.``
+ `.cccccccccccccccccccccc.`
+ ``.cccccccccccccc.``
+ `.cccccccc.`
+ `....` \ No newline at end of file
diff --git a/src/logo/ascii/o/openindiana.txt b/src/logo/ascii/o/openindiana.txt
new file mode 100644
index 0000000..d9b7e56
--- /dev/null
+++ b/src/logo/ascii/o/openindiana.txt
@@ -0,0 +1,16 @@
+$2 .sy/
+ .yh+
+
+ $1-+syyyo+- $2 /+.
+ $1+ddo/---/sdh/ $2 ym-
+ $1`hm+ `sms$2 ym-```````.-.
+ $1sm+ sm/ $2 ym- +s
+ $1hm. /mo $2 ym- /h
+ $1omo ym: $2 ym- `os`
+ $1smo` .ym+ $2 ym- .os-
+ `` $1:ymy+///oyms- $2 ym- .+s+.
+ ..` $1`:+oo+/-` $2 -//oyo-
+ -:` .:oys/.
++- `./oyys/.
+h+` `.-:+oyyyo/-`
+`/ossssysso+/-.` \ No newline at end of file
diff --git a/src/logo/ascii/o/openkylin.txt b/src/logo/ascii/o/openkylin.txt
new file mode 100644
index 0000000..288e2b5
--- /dev/null
+++ b/src/logo/ascii/o/openkylin.txt
@@ -0,0 +1,18 @@
+
+ /KKK]
+ KKKKKKK` ]KKKK\
+ KKKKK/ /KKKKKKKKK\
+ KKKK/ ,KKKKKKKKKKKK^
+ ,]KKK =KKK` /KKKKKKOOOOOO`
+,KKKKKK =KK /` [\OOOOOOO\
+ \KKKKK =K ,OOOOOOO`
+ ,KKKKK =^ \OOOOOO
+ ,KKKK ^ OOOOOO^
+ *KKK^ =OOOOO^
+ OOKK^ OOOOOO^
+ \OOOK\ /OOOOOO`
+ OOOOOO] ,OOOOOOO^
+ ,OOOOOOOO\] ,[OOOOOOOOO/
+ \OOOOOOOOOOOOOOOOOOOOO`
+ [OOOOOOOOOOOOOOOO/`
+ ,[OOOOOOOOO] \ No newline at end of file
diff --git a/src/logo/ascii/o/openmamba.txt b/src/logo/ascii/o/openmamba.txt
new file mode 100644
index 0000000..8730bbe
--- /dev/null
+++ b/src/logo/ascii/o/openmamba.txt
@@ -0,0 +1,21 @@
+ `````
+ .-/+ooooooooo+/:-`
+ ./ooooooooooooooooooo+:.
+ -+oooooooooooooooooooooooo+-
+ .+ooooooooo+/:---::/+ooooooooo+.
+ :oooooooo/-` `-/oo$2s´$1oooo.$2s´$1
+ :ooooooo/` `$2sNds$1ooo$2sNds$1
+ -ooooooo- $2:dmy$1ooo$2:dmy$1
+ +oooooo: :oooooo-
+.ooooooo .://:`
+:oooooo+ ./+o+:`
+-ooooooo` `oooooo+
+`ooooooo: /oooooo+
+ -ooooooo: :ooooooo.
+ :ooooooo+. .+ooooooo:
+ :oooooooo+-` `-+oooooooo:
+ .+ooooooooo+/::::://oooooooooo+.
+ -+oooooooooooooooooooooooo+-
+ .:ooooooooooooooooooo+:.
+ `-:/ooooooooo+/:.`
+ `````` \ No newline at end of file
diff --git a/src/logo/ascii/o/openmandriva.txt b/src/logo/ascii/o/openmandriva.txt
new file mode 100644
index 0000000..7a036bb
--- /dev/null
+++ b/src/logo/ascii/o/openmandriva.txt
@@ -0,0 +1,22 @@
+ ``````
+ `-:/+++++++//:-.`
+ .:+++oooo+/:.`` ``
+ `:+ooooooo+:. `-:/++++++/:.`
+ -+oooooooo:` `-++o+/::::://+o+/-
+ `/ooooooooo- -+oo/.` `-/oo+.
+ `+ooooooooo. :os/` .+so:
+ +sssssssss/ :ss/ `+ss-
+ :ssssssssss` sss` .sso
+ ossssssssss `yyo sys
+`sssssssssss` `yys `yys
+`sssssssssss: +yy/ +yy:
+ oyyyyyyyyyys. `oyy/` `+yy+
+ :yyyyyyyyyyyo. `+yhs:. `./shy/
+ oyyyyyyyyyyys:` .oyhys+:----/+syhy+. `
+ `syyyyyyyyyyyyo-` .:osyhhhhhyys+:``.:`
+ `oyyyyyyyyyyyyys+-`` `.----.```./oo.
+ /yhhhhhhhhhhhhhhyso+//://+osyhy/`
+ `/yhhhhhhhhhhhhhhhhhhhhhhhhy/`
+ `:oyhhhhhhhhhhhhhhhhhhyo:`
+ .:+syhhhhhhhhys+:-`
+ ``....`` \ No newline at end of file
diff --git a/src/logo/ascii/o/openruyi.txt b/src/logo/ascii/o/openruyi.txt
new file mode 100644
index 0000000..525bb66
--- /dev/null
+++ b/src/logo/ascii/o/openruyi.txt
@@ -0,0 +1,12 @@
+ ⣠⣴⣶⣾⣿⣿⣷⣶⣦⣄
+ ⣠⣾⣿⡿⠟⠛⠉⠉⠛⠻⢿⣿⣷⣄
+ ⣼⣿⡿⠋ ⠙⢿⣿⣧
+ ⣀⣠⣿⣿⠁ ⠈⣿⣿⣄⣀
+ ⢀⣴⣾⣿⣿⡿⠟$2 ⢀⣀⣀⣄⣀⣀ $1⠻⢿⣿⣿⣷⣦⡀
+$1 ⣰⣿⣿⠟⠉ $2 ⣠⣾⣿⡿⠿⠿⠿⢿⣿⣦⡀ $1 ⠉⠻⣿⣿⣆
+$1⢰⣿⡿⠁ $2⢰⣿⡿⠁$3⢀⣠⣄⡀$2 ⠙⣿⣷$1 ⠘⣿⣿⡆
+$1⣿⣿⡇ $2⠙⣿⠁$3⣴⣿⡿⠿⠟$2 ⢀⣿⣿$1 ⢸⣿⣿
+$1⣿⣿⡇ $3 ⣿⡟$2⢀⣀⣀⣴⣾⣿⠋ $1 ⢸⣿⣿
+$1⠸⣿⣷⡀ $3 ⣿⡇$2⠘⢿⣿⣿⡋ $1 ⢠⣾⣿⠇
+$1 ⠙⣿⣿⣶⣤⣀⣀⣀$3⣀⣀⣰⣿⡇$2 ⠙⢿⣿⣦⣀⣀$1⣀⣀⣤⣶⣿⣿⠋
+$1 ⠙⠿⢿⣿⣿⣿$3⣿⣿⣿⠟ $2 ⠉⠻⣿⣿$1⣿⣿⡿⠟⠋
diff --git a/src/logo/ascii/o/openstage.txt b/src/logo/ascii/o/openstage.txt
new file mode 100644
index 0000000..5ab943a
--- /dev/null
+++ b/src/logo/ascii/o/openstage.txt
@@ -0,0 +1,17 @@
+ /(/
+ .(((((((,
+ /(((((((((/
+ .(((((/,/(((((,
+ *(((((* ,(((((/
+ (((((* .*/((
+ *((((/ (//(/*
+ /((((* ((((((((((,
+ . /((((* (((((((((((((.
+ ((. *((((/ ,((((((((
+ ,(((/ (((((/ ** ,((((((*
+ /(((((. .(((((/ //(((* *(((((/
+ .(((((, ((/ .(((((/. .(((((,
+ /((((* ,(((((((/ ,(((((
+ /(((((((((((((((((((/. /(((((((((/
+ /(((((((((((((((((, /(((((((((((/
+ */(((((//*. */((/(/(/* \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse.txt b/src/logo/ascii/o/opensuse.txt
new file mode 100644
index 0000000..a407c4b
--- /dev/null
+++ b/src/logo/ascii/o/opensuse.txt
@@ -0,0 +1,18 @@
+ $2.;ldkO0000Okdl;.
+ .;d00xl:^''''''^:ok00d;.
+ .d00l' 'o00d.
+ .d0Kd'$1 Okxol:;,. $2:O0d
+ .OK$1KKK0kOKKKKKKKKKKOxo:, $2lKO.
+ ,0K$1KKKKKKKKKKKKKKK0P^$2,,,$1^dx:$2 ;00,
+.OK$1KKKKKKKKKKKKKKKk'$2.oOPPb.$1'0k.$2 cKO.
+:KK$1KKKKKKKKKKKKKKK: $2kKx..dd $1lKd$2 'OK:
+dKK$1KKKKKKKKKOx0KKKd $2^0KKKO' $1kKKc$2 dKd
+dKK$1KKKKKKKKKK;.;oOKx,..$2^$1..;kKKK0.$2 dKd
+:KK$1KKKKKKKKKK0o;...^cdxxOK0O/^^' $2.0K:
+ kKK$1KKKKKKKKKKKKK0x;,,......,;od $2lKk
+ '0K$1KKKKKKKKKKKKKKKKKKKK00KKOo^ $2c00'
+ 'kK$1KKOxddxkOO00000Okxoc;'' $2.dKk'
+ l0Ko. .c00l'
+ 'l0Kk:. .;xK0l'
+ 'lkK0xl:;,,,,;:ldO0kl'
+ '^:ldxkkkkxdl:^' \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_leap.txt b/src/logo/ascii/o/opensuse_leap.txt
new file mode 100644
index 0000000..fa96b3f
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_leap.txt
@@ -0,0 +1,18 @@
+ ====
+ ======
+ ==== ====+
+ +==== +====
+ +===+ ====
+ ==== ====
++=== +====
+==== +====
+ ===== ====
+ +===+ =====
+==+ ===== +===+ ===
+==== ==== ===== =====
+ ==== ======= ====
+ ==== === ====
+ ====+ ====
+ ==== =====
+ ======
+ == \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_leap_old.txt b/src/logo/ascii/o/opensuse_leap_old.txt
new file mode 100644
index 0000000..e0d8cdd
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_leap_old.txt
@@ -0,0 +1,16 @@
+ .-++:.
+ ./oooooo/-
+ `:oooooooooooo:.
+ -+oooooooooooooooo+-`
+ ./oooooooooooooooooooooo/-
+ :oooooooooooooooooooooooooo:
+ ` `-+oooooooooooooooooooo/- `
+ `:oo/- .:ooooooooooooooo+:` `-+oo/.
+`/oooooo:. -/oooooooooo/. ./oooooo/.
+ `:+ooooo+-` `:+oooo+- `:oooooo+:`
+ .:oooooo/. .::` -+oooooo/.
+ -/oooooo:. ./oooooo+-
+ `:+ooooo+-:+oooooo:`
+ ./oooooooooo/.
+ -/oooo+:`
+ `:/. \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_microos.txt b/src/logo/ascii/o/opensuse_microos.txt
new file mode 100644
index 0000000..544087d
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_microos.txt
@@ -0,0 +1,10 @@
+ ⣀⣠⣴⣶⣶⣿⣿⣿⣿⣶⣶⣦⣄⣀
+ ⢀⣴⣾⣿⠿⠛⠉⠉ ⠉⠉⠛⠿⣿⣷⣦⡀
+ ⣴⣿⡿⠋ ⠙⢿⣿⣦
+ ⣾⣿⡟ ⣠⣴⣶⣿⣿⣶⣦⣄ ⢻⣿⣷
+⣠⣤⣤⣤⣤⣤⣤⣼⣿⣿ ⣼⣿⡟⠉ ⠉⢻⣿⣧ ⣿⣿⣧⣤⣤⣤⣤⣤⣤⣄
+⠙⠛⠛⠛⠛⠛⠛⢻⣿⣿ ⢻⣿⣧⡀ ⢀⣼⣿⡟ ⣿⣿⡟⠛⠛⠛⠛⠛⠛⠋
+ ⢿⣿⣇ ⠙⠿⣿⣿⣿⣿⠿⠋ ⣸⣿⡿
+ ⠈⢻⣿⣧⣀ ⣀⣾⣿⡟⠁
+ ⠙⠻⣿⣷⣦⣄⣀ ⣀⣠⣴⣾⣿⠟⠋
+ ⠉⠛⠿⢿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠉ \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_slowroll.txt b/src/logo/ascii/o/opensuse_slowroll.txt
new file mode 100644
index 0000000..e63697f
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_slowroll.txt
@@ -0,0 +1,20 @@
+ _,......,_
+ _aaQQQQQQWQQQQQQQaa.
+ ajQQQ??^' '^??QQQw.
+ ,aQQP^ ?4QQa
+ wQQP ^4QQa
+ ,QQP' ,aaaaa. ^$Q6,
+ ,QQP ajQQQWWWWQQQw. 4QQ
+ QQP aQQP? ?$QQ. 4Q6
+jQQ jQQ' ?WQr 'QQb
+QQf ]QQ' ]QQ QQ6
+QQf ]QQ ]QQ) QQQ
+QQ6 'QQ6 ]QQ QQf
+]QQ. ^4QQaa .QQP ,QQ'
+ $QQ. ^?QQQQf _yQP ,QQP
+ ^WQQ6. aQQ? _QQP
+ ^4QQQ6a. ajQQP' aQQP
+ ?QQQQQWQaaaaaaajQWQP? aQQP'
+ ?QQQQP????????^' saWQP?
+ ^?QQQgaaa._ __aaaQQQP?'
+ '^?QWQQQQQQQQ@??^' \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_small.txt b/src/logo/ascii/o/opensuse_small.txt
new file mode 100644
index 0000000..0099a02
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_small.txt
@@ -0,0 +1,7 @@
+ _______
+__| __ \
+ / .\ \
+ \__/ |
+ _______|
+ \_______
+__________/ \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_tumbleweed.txt b/src/logo/ascii/o/opensuse_tumbleweed.txt
new file mode 100644
index 0000000..111a61f
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_tumbleweed.txt
@@ -0,0 +1,22 @@
+ ,...,
+ .,:lloooooc;.
+ ,ool' oo,;oo:
+ .lo' oo. oo:
+.oo. oo. oo:
+:ol oo. 'oo
+:oo .oo. .oo.
+.oooooooooooooo. .oo.
+ ;oo. .oo.
+ 'oo, .oo.
+ "ooc,',,,,,,,,,,:ooc,,,,,,,,,,,
+ ':cooooooooooooooooooooooooool;.
+ .oo. .oo;
+ .oo. .oo.
+ .oo. 'oooooooooo:ooo.
+ .oo. 'oo. col
+ .oo' 'oo col
+ coo 'oo oo'
+ coc 'oo .lo,
+ `oo, 'oo .:oo
+ 'ooooc,, ,:lol
+ `''"clc"' \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_tumbleweed2.txt b/src/logo/ascii/o/opensuse_tumbleweed2.txt
new file mode 100644
index 0000000..953bd12
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_tumbleweed2.txt
@@ -0,0 +1,19 @@
+ ⣀⣤⣤⣶⣶⣶⣶⣶⣤⣄⡀
+ ⣠⣾⣿⣿⡿⠿⠛⠛⣿⣿⣿⣿⣿⣶⣄
+ ⢠⣾⣿⣿⠛⠁ ⣿⣿⣿⠉⠻⣿⣿⣦
+⢀⣿⣿⡿⠁ ⣿⣿⣿ ⠙⣿⣿⣧
+⢸⣿⣿⠃ ⣿⣿⣿ ⢹⣿⣿⡀
+⢸⣿⣿⣤⣤⣤⣤⣤⣤⣤⣤⣿⣿⣿ ⢸⣿⣿⡇
+⠘⣿⣿⣿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿ ⢸⣿⣿⡇
+ ⠹⣿⣿⣷⡀ ⢸⣿⣿⡇
+ ⠙⢿⣿⣿⣷⣤⣄⣀⣀⣀⣀⣀⣀⣀⣀⣸⣿⣿⣇⣀⣀⣀⣀⣀⣀⣀⣀
+ ⠉⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡀
+ ⠈⠉⠉⠉⠉⠉⠉⠉⠉⢹⣿⣿⡏⠉⠉⠉⠉⠉⠉⠉⠉⠙⠛⢿⣿⣿⣷⡀
+ ⢸⣿⣿⡇ ⠈⢻⣿⣿⣆
+ ⢸⣿⣿⡇ ⢰⣶⣶⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⡄
+ ⢸⣿⣿⡇ ⢸⣿⣿⠛⠛⠛⠛⠛⠛⠛⠛⣿⣿⡇
+ ⠘⣿⣿⡇ ⢸⣿⣿ ⢰⣿⣿⡇
+ ⢻⣿⣿⡄ ⢸⣿⣿ ⢀⣾⣿⡿⠁
+ ⢻⣿⣿⣦⣀⢸⣿⣿ ⢀⣴⣿⣿⡿⠁
+ ⠙⢿⣿⣿⣿⣿⣿⣤⣴⣶⣾⣿⣿⡿⠋
+ ⠈⠙⠻⠿⠿⠿⠿⠿⠛⠋⠁ \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_tumbleweed_old.txt b/src/logo/ascii/o/opensuse_tumbleweed_old.txt
new file mode 100644
index 0000000..fefdeee
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_tumbleweed_old.txt
@@ -0,0 +1,13 @@
+ ......
+ .,cdxxxoc,. .:kKMMMNWMMMNk:.
+ cKMMN0OOOKWMMXo. A ;0MWk:' ':OMMk.
+ ;WMK;' 'lKMMNM, :NMK' 'OMW;
+ cMW; WMMMN ,XMK' oMM.
+.MMc ''^*~l. xMN: KM0
+'MM. .NMO oMM
+.MM, .kMMl xMN
+ KM0 .kMM0' .dl>~,. .WMd
+ 'XM0. ,OMMK' OMMM7' .XMK
+ *WMO:. .;xNMMk' NNNMKl. .xWMx
+ ^ONMMNXMMMKx; V 'xNMWKkxllox0NMWk'
+ ''''' ':dOOXXKOxl' \ No newline at end of file
diff --git a/src/logo/ascii/o/opensuse_tumbleweed_small.txt b/src/logo/ascii/o/opensuse_tumbleweed_small.txt
new file mode 100644
index 0000000..d7c50d7
--- /dev/null
+++ b/src/logo/ascii/o/opensuse_tumbleweed_small.txt
@@ -0,0 +1,9 @@
+ .oooo.
+o o o
+ooooo oo
+o oo
+ 'oooooooooooo.
+ oo o
+ oo ooooo
+ o o o
+ 'oooo' \ No newline at end of file
diff --git a/src/logo/ascii/o/openwrt.txt b/src/logo/ascii/o/openwrt.txt
new file mode 100644
index 0000000..cbb4c0b
--- /dev/null
+++ b/src/logo/ascii/o/openwrt.txt
@@ -0,0 +1,18 @@
+ ..,,..
+ ,;odOMMMMMMMMObo:.
+ ,odOMMMMMO""''""OMMMMMObo.
+.dMMMM" .,,. "OMMMb,
+ '0" ,;ddMMMMMMMMbb:. "0'
+ oOMMMMO""''""OMMMMOo
+ $2;. $1'0" .,,. "0' $2.:
+ .OMM* $1.odMMMMMMbo. $2*MMO.
+ MMMO $1"0"````"0" $2OMMM
+iOMM $1.oo. $2MMMi
+OMMl $1:MMMM: $2lMMO
+iMMM $1'oo' $2MMMi
+ OMMb $2dMMO
+ 'OMMO. ,OMMO'
+ "MMMb. ,dMMM"
+ "MMMMbgo-,,-ogdMMMM"
+ "*MMMMMMMMMM*"
+ `'""'` \ No newline at end of file
diff --git a/src/logo/ascii/o/openwrt_old.txt b/src/logo/ascii/o/openwrt_old.txt
new file mode 100644
index 0000000..47e4e19
--- /dev/null
+++ b/src/logo/ascii/o/openwrt_old.txt
@@ -0,0 +1,9 @@
+ _______
+| |.-----.-----.-----.
+| - || _ | -__| |
+|_______|| __|_____|__|__|
+ |__|
+ ________ __
+| | | |.----.| |_
+| | | || _|| _|
+|________||__| |____| \ No newline at end of file
diff --git a/src/logo/ascii/o/openwrt_small.txt b/src/logo/ascii/o/openwrt_small.txt
new file mode 100644
index 0000000..328cbeb
--- /dev/null
+++ b/src/logo/ascii/o/openwrt_small.txt
@@ -0,0 +1,9 @@
+ ..,..
+ ,odM"""""Mbo,
+ `.odMMMMMbo.`
+ $2d,$1" ,mmm, "$2,b
+iM $1" . " $2Mi
+Ml $1dMb $2lM
+'M, $1' $2.M'
+ "0b. ,d0"
+ `"WWWWW"` \ No newline at end of file
diff --git a/src/logo/ascii/o/opnsense.txt b/src/logo/ascii/o/opnsense.txt
new file mode 100644
index 0000000..618d717
--- /dev/null
+++ b/src/logo/ascii/o/opnsense.txt
@@ -0,0 +1,20 @@
+ .'''''''''''''''''''''''''''''''''''
+ oocc:::::::::::::::::::::::::::::::cox
+ ;00; o0O
+ .,:' .;;;;;;;;;;;;;;;;;;;;;;;;;; ;:,
+ .',;;cxOOOOOOOOOOOOOOOOOOOOOOOkd:;;,..
+ .,cll:' ':llc,.
+ ,;;:okxdxd: :dxdxko:;;,
+ .xxxx0XNNK0O. .O0KNNX0xxxx.
+ ,$2cc:$1,. .,$2:cc$1,
+ ........;$2ccc:$1;. .;$2:ccc$1;........
+ $2ccccccccccccccc ccccccccccccccc$1
+ ........;$2ccc:$1;. .;$2:ccc$1;........
+ ,$2cc:$1,. .,$2:cc$1,
+ .xxxx0XNNK0O. .O0KNNX0xxxx.
+ ,;;:okxdxd: :dxdxko:;;,
+ .,cll:' ':llc,.
+ .,,;,ckOOOOOOOOOOOOOOOOOOOOOOOOx;,;,'.
+ .:l' ........................... ;:;
+ lOk' cdd
+ ;lccccccccccccccccccccccccccccccccccc:. \ No newline at end of file
diff --git a/src/logo/ascii/o/oracle.txt b/src/logo/ascii/o/oracle.txt
new file mode 100644
index 0000000..988ebea
--- /dev/null
+++ b/src/logo/ascii/o/oracle.txt
@@ -0,0 +1,11 @@
+ `-/+++++++++++++++++/-.`
+ `/syyyyyyyyyyyyyyyyyyyyyyys/.
+ :yyyyo/-...............-/oyyyy/
+ /yyys- .oyyy+
+.yyyy` `syyy-
+:yyyo /yyy/
+.yyyy` `syyy-
+ /yyys. .oyyyo
+ /yyyyo:-...............-:oyyyy/`
+ `/syyyyyyyyyyyyyyyyyyyyyyys+.
+ `.:/+ooooooooooooooo+/:.` \ No newline at end of file
diff --git a/src/logo/ascii/o/orchid.txt b/src/logo/ascii/o/orchid.txt
new file mode 100644
index 0000000..bf084f8
--- /dev/null
+++ b/src/logo/ascii/o/orchid.txt
@@ -0,0 +1,20 @@
+$2 .==.
+ .-$3#$1@@$3#$2-.
+ .-$3##$1@@@@$3##$2-.
+ .-$3##$1@@@@@@@@$3##$2-.
+ :*$1@@@@@$3####$1@@@@@$2*:
+ ..:*$1@@@@$2==--==$1@@@@$2*:..
+ .-*$1%%$3#$2==$3#$1@@$3#$2====$3#$1@@$3#$2==$3#$1%%$2*-.
+ .-$3#$1@@@@@$3##$2==$3#$1@@$2++$1@@$3##$2==$3#$1@@@@@$3#$2-.
+ .-$3#$1@@@@@$2#$1@@@$3#$2++#====$3#$2++#$1@@@$2#$1@@@@@$3#$2-.
+.-$3#$1@@@@@$3#$2-==**$3###$2+:--:+$3###$2**==-$3#$1@@@@@$3#$2-.
+.-$3#$1@@@@@$3#$2-==**$3###$2+:--:+$3###$2**==-$3#$1@@@@@$3#$2-.
+ .-$3#$1@@@@@$2#$1@@@$3#$2++#====$3#$2++#$1@@@$2#$1@@@@@$3#$2-.
+ .-$3#$1@@@@@$3##$2==$3#$1@@$2++$1@@$3##$2==$3#$1@@@@@$3#$2-.
+ .-*$1%%$3#$2==$3#$1@@$3#$2====$3#$1@@$3#$2==$3#$1%%$2*-.
+ ..:*$1@@@@$2==--==$1@@@@$2*:..
+ :*$1@@@@@$3####$1@@@@@$2*:
+ .-$3##$1@@@@@@@@$3##$2-.
+ .-$3##$1@@@@$3##$2-.
+ .-$3#$1@@$3#$2-.
+ .==. \ No newline at end of file
diff --git a/src/logo/ascii/o/orchid_small.txt b/src/logo/ascii/o/orchid_small.txt
new file mode 100644
index 0000000..6af179f
--- /dev/null
+++ b/src/logo/ascii/o/orchid_small.txt
@@ -0,0 +1,13 @@
+ $2:##:
+ -#$1@@@@$2#-
+ #$1@@$2=..=$1@@$2#
+ +$1@@$2- -$1@@$2+
+ -#$1@@$2*..*$1@$2..$1@$2*..*$1@@$2#-
+ :#$1@@$2*+%$1@$2= . . =$1@$2%+*$1@@$2#:
++$1@@@$2: :-. .-: :$1@@@$2+
+ :#$1@@$2*+%$1@$2= . . =$1@$2%+*$1@@$2#:
+ -#$1@@$2*..*$1@$2..$1@$2*..*$1@@$2#-
+ +$1@@$2- -$1@@$2+
+ #$1@@$2=..=$1@@$2#
+ -#$1@@@@$2#-
+ :##: \ No newline at end of file
diff --git a/src/logo/ascii/o/oreon.txt b/src/logo/ascii/o/oreon.txt
new file mode 100644
index 0000000..73fce33
--- /dev/null
+++ b/src/logo/ascii/o/oreon.txt
@@ -0,0 +1,22 @@
+ @@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@ @@@@@@@@@@@
+ @@@@@@@@ @@@@@@@@@
+ @@@@@@@@ @@@@@@@@
+ @@@@@@@ @@@@@@@
+ @@@@@@@@ @@@@@@@
+ @@@@@@@@ @@@@@@
+ @@@@@@@@@ @@@@@@
+@@@@@@@@@@ @@@@@@
+@@@@@@@@@@ @@@@@@
+ @@@@@@@@@ @@@@@@
+ @@@@@@@@ @@@@@@
+ @@@@@@@@ @@@@@@@
+ @@@@@@@ @@@@@@@
+ @@@@@@@@ @@@@@@@@
+ @@@@@@@@ @@@@@@@@
+ @@@@@@@@@@ @@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@ \ No newline at end of file
diff --git a/src/logo/ascii/o/origami.txt b/src/logo/ascii/o/origami.txt
new file mode 100644
index 0000000..207f322
--- /dev/null
+++ b/src/logo/ascii/o/origami.txt
@@ -0,0 +1,12 @@
+ -+:
+ =+++-
+ .=+++++=
+ :+++++++++.
+$2.8....... $1-++++*++++++:$2 ...88
+ .8888888..$1-+++++*+++++*+:$2..8888888
+ .8888888=8===$1=++++==$2==8888888888
+ .88888==========88888888888888
+ .888========888=888888888888.
+ 8=======888888====88888888.
+ 8====88888888======88888.
+ 888888888888=========8. \ No newline at end of file
diff --git a/src/logo/ascii/o/origami_small.txt b/src/logo/ascii/o/origami_small.txt
new file mode 100644
index 0000000..6cd4130
--- /dev/null
+++ b/src/logo/ascii/o/origami_small.txt
@@ -0,0 +1,8 @@
+ 00
+ 01 00
+ 0000 0000
+ 000001 00000
+$211010011110 $100 $201111001011
+ 01111100 $100000000 $200111110
+ 0110 00010000001000 0110
+ 000000000000000000 \ No newline at end of file
diff --git a/src/logo/ascii/o/os2warp.txt b/src/logo/ascii/o/os2warp.txt
new file mode 100644
index 0000000..0774979
--- /dev/null
+++ b/src/logo/ascii/o/os2warp.txt
@@ -0,0 +1,17 @@
+ .-==: . .
+ -+:::+= * *- = -. -%*
+ ** *# :%- . :.*=: -%%
+ %@: -@% =%@%%*: - :. -%=
+-@@: :@@- -+#%%+ .: :*.
+-@@: :@@-- -% = .*
+.%@- -%% ++ # . -: .
+ #* ** =.:*: +- = #%%%%#+-*:
+ -=====- .:- ..
+
+$2 =*+ -+*:
+ .*+ :*+= -+*++**-
+ +*-++++ -++-:. .:-=++.=*+. =*-
+ -***:-+:*++=*++*: +*+=:-**+=**++-
+ :- :***==*+.=++ +*+=++*=.=*+.
+ .=-=*+***+*= +*+ :**+=++
+ . -*+ +*+ .=:
diff --git a/src/logo/ascii/o/os_elbrus.txt b/src/logo/ascii/o/os_elbrus.txt
new file mode 100644
index 0000000..9e30e83
--- /dev/null
+++ b/src/logo/ascii/o/os_elbrus.txt
@@ -0,0 +1,14 @@
+▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
+██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
+██ ██
+██ ███████ ███████ ██
+██ ██ ██ ██ ██ ██
+██ ██ ██ ██ ██ ██
+██ ██ ██ ██ ██ ██
+██ ██ ██ ██ ██ ██
+██ ██ ███████ ███████
+██ ██ ██
+██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██
+██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
+██ ██
+███████████████████████████ \ No newline at end of file
diff --git a/src/logo/ascii/o/osmc.txt b/src/logo/ascii/o/osmc.txt
new file mode 100644
index 0000000..8bc1f94
--- /dev/null
+++ b/src/logo/ascii/o/osmc.txt
@@ -0,0 +1,20 @@
+ -+shdmNNNNmdhs+-
+ .+hMNho/:..``..:/ohNMh+.
+ :hMdo. .odMh:
+ -dMy- -yMd-
+ sMd- -dMs
+ hMy +. .+ yMh
+ yMy dMs. .sMd yMy
+:Mm dMNMs` `sMNMd `mM:
+yM+ dM//mNs``sNm//Md +My
+mM- dM: +NNNN+ :Md -Mm
+mM- dM: `oNN+ :Md -Mm
+yM+ dM/+NNo` :Md +My
+:Mm` dMMNs` :Md `mM:
+ yMy dMs` -ms yMy
+ hMy +. yMh
+ sMd- -dMs
+ -dMy- -yMd-
+ :hMdo. .odMh:
+ .+hMNho/:..``..:/ohNMh+.
+ -+shdmNNNNmdhs+- \ No newline at end of file
diff --git a/src/logo/ascii/p.inc b/src/logo/ascii/p.inc
new file mode 100644
index 0000000..be00006
--- /dev/null
+++ b/src/logo/ascii/p.inc
@@ -0,0 +1,369 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo P[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_PACBSD
+ // PacBSD
+ {
+ .names = { "PacBSD" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PACBSD,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PANWAH
+ // Panwah
+ {
+ .names = { "Panwah" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PANWAH,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_BLACK,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PARABOLA
+ // Parabola
+ {
+ .names = { "parabola", "parabola-gnulinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PARABOLA,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PARABOLA_SMALL
+ // ParabolaSmall
+ {
+ .names = { "parabola_small", "parabola-gnulinux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_PARABOLA_SMALL,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PARCH
+ // Parch
+ {
+ .names = { "Parch" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PARCH,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PARDUS
+ // Pardus
+ {
+ .names = { "Pardus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PARDUS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PARROT
+ // Parrot
+ {
+ .names = { "Parrot" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PARROT,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PARSIX
+ // Parsix
+ {
+ .names = { "Parsix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PARSIX,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PCBSD
+ // PCBSD
+ {
+ .names = { "PCBSD", "TrueOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PCBSD,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PCLINUXOS
+ // PCLinuxOS
+ {
+ .names = { "PCLinuxOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PCLINUXOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PEAROS
+ // PearOS
+ {
+ .names = { "PearOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PEAROS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PENGWIN
+ // Pengwin
+ {
+ .names = { "Pengwin" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PENGWIN,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_LIGHT_MAGENTA,
+ FF_COLOR_FG_MAGENTA,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PENTOO
+ // Pentoo
+ {
+ .names = { "Pentoo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PENTOO,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PEPPERMINT
+ // Peppermint
+ {
+ .names = { "Peppermint" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PEPPERMINT,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PEROPESIS
+ // Peropesis
+ {
+ .names = { "Peropesis", "Peropesis Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PEROPESIS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PHYOS
+ // PhyOS
+ {
+ .names = { "PhyOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PHYOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PIKAOS
+ // PikaOS
+ {
+ .names = { "PikaOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PIKAOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PISI
+ // PisiLinux
+ {
+ .names = { "PisiLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PISI,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PNM_LINUX
+ // PNMLinux
+ {
+ .names = { "PNM Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PNM_LINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_256 "202",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_POP
+ // Pop
+ {
+ .names = { "pop", "popos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_POP,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_POP_SMALL
+ // PopSmall
+ {
+ .names = { "pop_small", "popos_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_POP_SMALL,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PORTEUS
+ // Porteus
+ {
+ .names = { "Porteus" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PORTEUS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_POSTMARKETOS
+ // PostMarketOS
+ {
+ .names = { "PostMarketOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_POSTMARKETOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_POSTMARKETOS_SMALL
+ // PostMarketOSSmall
+ {
+ .names = { "PostMarketOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_POSTMARKETOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PROXMOX
+ // Proxmox
+ {
+ .names = { "Proxmox", "pve" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PROXMOX,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_256 "202",
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_256 "202",
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PUFFOS
+ // PuffOS
+ {
+ .names = { "PuffOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PUFFOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PUPPY
+ // Puppy
+ {
+ .names = { "Puppy" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PUPPY,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PUREOS
+ // PureOS
+ {
+ .names = { "PureOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PUREOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PUREOS_SMALL
+ // PureOSSmall
+ {
+ .names = { "PureOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_PUREOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PRISMLINUX
+ // PrismLinux
+ {
+ .names = { "PrismLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_PRISMLINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_PRISMLINUX_SMALL
+ // PrismLinuxSmall
+ {
+ .names = { "PrismLinux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_PRISMLINUX_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/p/pacbsd.txt b/src/logo/ascii/p/pacbsd.txt
new file mode 100644
index 0000000..f4f9e37
--- /dev/null
+++ b/src/logo/ascii/p/pacbsd.txt
@@ -0,0 +1,24 @@
+ :+sMs.
+ `:ddNMd- -o--`
+ -sMMMMh: `+N+``
+ yMMMMMs` .....-/-... `mNh/
+ yMMMMMmh+-`:sdmmmmmmMmmmmddy+-``./ddNMMm
+ yNMMNMMMMNdyyNNMMMMMMMMMMMMMMMhyshNmMMMm
+ :yMMMMMMMMMNdooNMMMMMMMMMMMMMMMMNmy:mMMd
+ +MMMMMMMMMmy:sNMMMMMMMMMMMMMMMMMMMmshs-
+ :hNMMMMMMN+-+MMMMMMMMMMMMMMMMMMMMMMMs.
+ .omysmNNhy/+yNMMMMMMMMMMNMMMMMMMMMNdNNy-
+ /hMM:::::/hNMMMMMMMMMMMm/-yNMMMMMMN.mMNh`
+.hMMMMdhdMMMMMMMMMMMMMMmo `sMMMMMMN mMMm-
+:dMMMMMMMMMMMMMMMMMMMMMdo+ oMMMMMMN`smMNo`
+/dMMMMMMMMMMMMMMMMMMMMMNd/` :yMMMMMN:-hMMM.
+:dMMMMMMMMMMMMMMMMMMMMMNh` oMMMMMMNo/dMNN`
+:hMMMMMMMMMMMMMMMMMMMMMMNs--sMMMMMMMNNmy++`
+ sNMMMMMMMMMMMMMMMMMMMMMMMmmNMMMMMMNho::o.
+ :yMMMMMMMMMMMMMNho+sydNNNNNNNmysso/` -//
+ /dMMMMMMMMMMMMMs- ````````..``
+ .oMMMMMMMMMMMMNs` ./y:`
+ +dNMMNMMMMMMMmy` ``./ys.
+ `/hMMMMMMMMMMMNo-`` `.+yy+-`
+ `-/hmNMNMMMMMMmmddddhhy/-`
+ `-+oooyMMMdsoo+/:. \ No newline at end of file
diff --git a/src/logo/ascii/p/panwah.txt b/src/logo/ascii/p/panwah.txt
new file mode 100644
index 0000000..8d3dd89
--- /dev/null
+++ b/src/logo/ascii/p/panwah.txt
@@ -0,0 +1,21 @@
+ HHH
+ HAAAH HHH
+ HAAAAH HAAAH
+ HAAAAAAH HAAAAH
+ HAAAAAAH HAAAAAH
+ HAAAAAAAAH$2WWWWWWWWWWWWWWWW $1HAAAAAH
+ HAAAAAAAAH$2WWWWWWWWWWWWWWWWWWWW$1 HAAAAAH
+ HAA$2WWWWWWWWWWWWWWWWWWWWWWWWWWWWW$1AAAAAH$2
+ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW$1WAH$2
+ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
+ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
+ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
+WWWWWWW$1AAA$2WWWW WWWWWWWWWWWWWWWWWWWWWWWWWWW
+ WWWW$1AAA$2WWWWW WWWWWWW WWWWWWWWWWWWWWW
+ WW$1AAA$2WWWWWWWWWWWWWWWWW WWWWW$1AAA$2WWWWWWWW
+ $1AAA$2WWWWW$1OOOOOOOOOOO$2WWWWWWWWWWW$1AAA$2WWWWWW
+ $1OOOO$3GGGGGGG$1OOOO$2WWWWWWWWWW$1AAA$2WWWW
+ $1OOO$3GGGGGGG$1OOO$2WWWWWWWWWWWW$1AAA$2W
+ $1OOOOOOOOO \ No newline at end of file
diff --git a/src/logo/ascii/p/parabola.txt b/src/logo/ascii/p/parabola.txt
new file mode 100644
index 0000000..3fd0776
--- /dev/null
+++ b/src/logo/ascii/p/parabola.txt
@@ -0,0 +1,16 @@
+ `.-. `.
+ `.` `:++. `-+o+.
+ `` `:+/. `:+/. `-+oooo+
+ ``-::-.:+/. `:+/. `-+oooooo+
+ `.-:///- ..` .-. `-+oooooooo-
+ `..-..` `+ooooooooo:
+`` :oooooooo/
+ `ooooooo:
+ `oooooo:
+ -oooo+.
+ +ooo/`
+ -ooo-
+ `+o/.
+ /+-
+ //`
+ -. \ No newline at end of file
diff --git a/src/logo/ascii/p/parabola_small.txt b/src/logo/ascii/p/parabola_small.txt
new file mode 100644
index 0000000..da9f704
--- /dev/null
+++ b/src/logo/ascii/p/parabola_small.txt
@@ -0,0 +1,6 @@
+ __ __ __ _
+.`_//_//_/ / `.
+ / .`
+ / .`
+ /.`
+ /` \ No newline at end of file
diff --git a/src/logo/ascii/p/parch.txt b/src/logo/ascii/p/parch.txt
new file mode 100644
index 0000000..97609a5
--- /dev/null
+++ b/src/logo/ascii/p/parch.txt
@@ -0,0 +1,25 @@
+ ,:lodddd.
+ .:clooood.
+ ;clllooooc
+ ;cclllllloo
+ .cccccllllll
+ . ,cccclllll
+ ':::;; ccccclll;
+ .:::cccccccccccll;
+ ;::::ccccllllllcll:
+.;::::cccclllloool::;
+;;;::::cccclllolc::::;.
+;;;::::cccclllccc:::::;.
+;;;::::cccclccccc::::::;.
+;;;;::::::llcccccc:::::'
+;;;;:; ,clllccccccc::
+.;; .cllllllcccccc::;::::'
+ .'''''''''',:lddoooolll
+ '.....'''',cdddooooollll
+ ........':oddddoooolllllc
+ ....';ldddddooooolllllc:
+ ,cdddddddooooollllccc
+ :ddddddoooolllllccc
+ ;ddooooolllllcc.
+ :ooollllc.
+ c' \ No newline at end of file
diff --git a/src/logo/ascii/p/pardus.txt b/src/logo/ascii/p/pardus.txt
new file mode 100644
index 0000000..53a370b
--- /dev/null
+++ b/src/logo/ascii/p/pardus.txt
@@ -0,0 +1,18 @@
+ .smNdy+- `.:/osyyso+:.` -+ydmNs.
+/Md- -/ymMdmNNdhso/::/oshdNNmdMmy/. :dM/
+mN. oMdyy- -y `-dMo .Nm
+.mN+` sMy hN+ -: yMs `+Nm.
+ `yMMddMs.dy `+` sMddMMy`
+ +MMMo .` . oMMM+
+ `NM/ `````.` `.````` +MN`
+ yM+ `.-:yhomy ymohy:-.` +My
+ yM: yo oy :My
+ +Ms .N` `N. +h sM+
+ `MN - -::::::- : :o:+`NM`
+ yM/ sh -dMMMMd- ho +y+My
+ .dNhsohMh-//: /mm/ ://-yMyoshNd`
+ `-ommNMm+:/. oo ./:+mMNmmo:`
+ `/o+.-somNh- :yy: -hNmos-.+o/`
+ ./` .s/`s+sMdd+``+ddMs+s`/s. `/.
+ : -y. -hNmddmNy. .y- :
+ -+ `..` +- \ No newline at end of file
diff --git a/src/logo/ascii/p/parrot.txt b/src/logo/ascii/p/parrot.txt
new file mode 100644
index 0000000..9e9b270
--- /dev/null
+++ b/src/logo/ascii/p/parrot.txt
@@ -0,0 +1,24 @@
+ `:oho/-`
+`mMMMMMMMMMMMNmmdhy-
+ dMMMMMMMMMMMMMMMMMMs`
+ +MMsohNMMMMMMMMMMMMMm/
+ .My .+dMMMMMMMMMMMMMh.
+ + :NMMMMMMMMMMMMNo
+ `yMMMMMMMMMMMMMm:
+ /NMMMMMMMMMMMMMy`
+ .hMMMMMMMMMMMMMN+
+ ``-NMMMMMMMMMd-
+ /MMMMMMMMMMMs`
+ mMMMMMMMsyNMN/
+ +MMMMMMMo :sNh.
+ `NMMMMMMm -o/
+ oMMMMMMM.
+ `NMMMMMM+
+ +MMd/NMh
+ mMm -mN`
+ /MM `h:
+ dM` .
+ :M-
+ d:
+ -+
+ - \ No newline at end of file
diff --git a/src/logo/ascii/p/parsix.txt b/src/logo/ascii/p/parsix.txt
new file mode 100644
index 0000000..ddbf912
--- /dev/null
+++ b/src/logo/ascii/p/parsix.txt
@@ -0,0 +1,21 @@
+ $2-/+/:.
+ $2.syssssys.
+ $1.--. $2ssssssssso$1 ..--.
+ :++++++: $2+ssssssss+$1 ./++/+++:
+ /+++++++++.$2.yssooooy`$1-+///////o-
+ /++++++++++.$2+soooos:$1:+////////+-
+ :+++++////o-$2oooooo-$1+/////////-
+ `-/++//++-$4.-----.-$1:+/////:-
+ $3-://::--$1-:/:$4.--.````.--.$1:::-$3--::::::.
+$3-/:::::::://:$4.:-` `-:$3`:/:::::::--/-
+$3/::::::::::/-$4--. .-.$3-/://///::::/
+$3-/:::::::::/:$4`:-. .-:$3`:///////////-
+ `$3-::::--$1.-://.$4---....---$1`:+/:-$3--::::-`
+ $1-/+///+o/-$4.----.$1.:oo+++o+.
+ $1-+/////+++o:$2syyyyy.$1o+++++++++:
+ $1.+////+++++-$2+sssssy+$1.++++++++++\
+ $1.+:/++++++.$2.yssssssy-$1`+++++++++:
+ $1:/+++++- $2+sssssssss $1-++++++-
+ $1`--` $2+sssssssso $1`--`
+ $2+sssssy+`
+ $2`.::-` \ No newline at end of file
diff --git a/src/logo/ascii/p/pcbsd.txt b/src/logo/ascii/p/pcbsd.txt
new file mode 100644
index 0000000..1519d24
--- /dev/null
+++ b/src/logo/ascii/p/pcbsd.txt
@@ -0,0 +1,27 @@
+ ..
+ s.
+ +y
+ yN
+ -MN `.
+ :NMs `m
+ .yMMm` `No
+ `-/+++sdMMMNs+-`+Ms
+ `:oo+-` .yMMMMy` `-+oNMh
+ -oo- +NMMMM/ oMMh-
+ .s+` ` oMMMMM/ - oMMMhy.
+ +s`- :: :MMMMMd -o `mMMMy`s+
+ y+ h .Ny+oNMMMMMN/ sh+NMMMMo +y
+ s+ .ds -NMMMMMMMMMMNdhdNMMMMMMh` +s
+-h .NM` `hMMMMMMMMMMMMMMNMMNy: h-
+y- hMN` hMMmMMMMMMMMMNsdMNs. -y
+m` mMMy` oMMNoNMMMMMMo` sMMMo `m
+m` :NMMMdyydMMMMo+MdMMMs sMMMd` `m
+h- `+ymMMMMMMMM--M+hMMN/ +MMMMy -h
+:y `.sMMMMM/ oMM+.yMMNddNMMMMMm y:
+ y: `s dMMN- .MMMM/ :MMMMMMMMMMh :y
+ `h: `mdmMMM/ yMMMMs sMMMMMMMMN- :h`
+ so -NMMMN /mmd+ `dMMMMMMMm- os
+ :y: `yMMM` `+NMMMMMMNo`:y:
+ /s+`.omy /NMMMMMNh/.+s:
+ .+oo:-. /mdhs+::oo+.
+ -/o+++++++++++/- \ No newline at end of file
diff --git a/src/logo/ascii/p/pclinuxos.txt b/src/logo/ascii/p/pclinuxos.txt
new file mode 100644
index 0000000..9e1cfa7
--- /dev/null
+++ b/src/logo/ascii/p/pclinuxos.txt
@@ -0,0 +1,19 @@
+ mhhhyyyyhhhdN
+ dyssyhhhhhhhhhhhssyhN
+ Nysyhhyo/:-.....-/oyhhhssd
+ Nsshhy+. `/shhysm
+ dohhy/ -shhsy
+ dohhs` /hhys
+N+hho $2+ssssss+- .+syhys+ $1/hhsy
+ohhh` $2ymmo++hmm+`smmy/::+y` $1shh+
++hho $2ymm- /mmy+mms $1:hhod
+/hh+ $2ymmhhdmmh.smm/ $1.hhsh
++hhs $2ymm+::-` /mmy` ` $1/hh+m
+yyhh- $2ymm- /dmdyosyd` $1`yhh+
+ ohhy` $2://` -/+++/- $1ohhom
+ N+hhy- `shhoh
+ sshho. `+hhyom
+ dsyhhs/. `:ohhhoy
+ dysyhhhso///://+syhhhssh
+ dhyssyhhhhhhyssyyhN
+ mddhdhdmN \ No newline at end of file
diff --git a/src/logo/ascii/p/pearos.txt b/src/logo/ascii/p/pearos.txt
new file mode 100644
index 0000000..80f4b41
--- /dev/null
+++ b/src/logo/ascii/p/pearos.txt
@@ -0,0 +1,21 @@
+ .+yh
+ sMMMo
+ sMMN+
+ +o:
+$2 ./oyyys+.
+ :dMMMMMMMMMm/
+ :MMMMMMMMMMMMMy
+ yMMMMMMMMMMMMMN
+$3 mMMMMMMMMMMMMs`
+ yMMMMMMMMMMMMo
+ -mMMMMMMMMMMMMM`
+ oMMMMMMMMMMMMMMM`
+$4 oMMMMMMMMMMMMMMMMy
+ .MMMMMMMMMMMMMMMMMMy`
+ +MMMMMMMMMMMMMMMMMMMMy/`
+ /MMMMMMMMMMMMMMMMMMMMMMMNds
+$5 `mMMMMMMMMMMMMMMMMMMMMMMMM/
+ .mMMMMMMMMMMMMMMMMMMMMMM+
+ `oNMMMMMMMMMMMMMMMMMMd-
+ `+hMMMMMMMMMMMMMms-
+ -/osyhhyso:. \ No newline at end of file
diff --git a/src/logo/ascii/p/pengwin.txt b/src/logo/ascii/p/pengwin.txt
new file mode 100644
index 0000000..7bec188
--- /dev/null
+++ b/src/logo/ascii/p/pengwin.txt
@@ -0,0 +1,15 @@
+$3 ...`
+$3 `-///:-`
+$3 .+$2ssys$3/
+$3 +$2yyyyy$3o $2
+$2 -yyyyyy:
+$2 `.:/+ooo+/:` -yyyyyy+
+$2 `:oyyyyyys+:-.`syyyyyy:
+$2 .syyyyyyo-` .oyyyyyyo
+$2`syyyyyy `-+yyyyyyy/`
+$2/yyyyyy+ -/osyyyyyyo/.
+$2+yyyyyy- `.-:::-.`
+$2.yyyyyy-
+$3 :$2yyyyy$3o
+$3 .+$2ooo$3+
+$3 `.::/:. \ No newline at end of file
diff --git a/src/logo/ascii/p/pentoo.txt b/src/logo/ascii/p/pentoo.txt
new file mode 100644
index 0000000..4d8a2bd
--- /dev/null
+++ b/src/logo/ascii/p/pentoo.txt
@@ -0,0 +1,20 @@
+$2 `:oydNNMMMMNNdyo:`
+ :yNMMMMMMMMMMMMMMMMNy:
+ :dMMMMMMMMMMMMMMMMMMMMMMd:
+ oMMMMMMMho/-....-/ohMMMMMMMo
+ oMMMMMMy. .yMMMMMMo
+ .MMMMMMo oMMMMMM.
+ +MMMMMm mMMMMM+
+ oMMMMMh hMMMMMo
+ //hMMMMMm//$1`$2 $1`$2////mMMMMMh//
+MMMMMMMMMMM$1/$2 $1/o/`$2 $1.$2smMMMMMMMMMMM
+MMMMMMMMMMm $1`NMN:$2 $1.$2yMMMMMMMMMM
+MMMMMMMMMMMh$1:.$2 dMMMMMMMMM
+MMMMMMMMMMMMMy$1.$2 $1-$2NMMMMMMMMM
+MMMMMMMMMMMd:$1`$2 $1-$2yNMMMMMMMMMM
+MMMMMMMMMMh$1`$2 $1./$2hNMMMMMMMMMMMM
+MMMMMMMMMM$1s$2 $1.:$2ymMMMMMMMMMMMMMMM
+MMMMMMMMMMN$1s:..-/$2ohNMMMMMMMMMMMMMMMMMM
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM \ No newline at end of file
diff --git a/src/logo/ascii/p/peppermint.txt b/src/logo/ascii/p/peppermint.txt
new file mode 100644
index 0000000..a579575
--- /dev/null
+++ b/src/logo/ascii/p/peppermint.txt
@@ -0,0 +1,21 @@
+$1 PPPPPPPPPPPPPP
+$1 PPPP$2MMMMMMM$1PPPPPPPPPPP
+$1 PPPP$2MMMMMMMMMM$1PPPPPPPP$2MM$1PP
+$1 PPPPPPPP$2MMMMMMM$1PPPPPPPP$2MMMMM$1PP
+$1 PPPPPPPPPPPP$2MMMMMM$1PPPPPPP$2MMMMMMM$1PP
+$1 PPPPPPPPPPPP$2MMMMMMM$1PPPP$2M$1P$2MMMMMMMMM$1PP
+$1 PP$2MMMM$1PPPPPPPPPP$2MMM$1PPPPP$2MMMMMMM$1P$2MM$1PPPP
+$1 P$2MMMMMMMMMM$1PPPPPP$2MM$1PPPPP$2MMMMMM$1PPPPPPPP
+$1P$2MMMMMMMMMMMM$1PPPPP$2MM$1PP$2M$1P$2MM$1P$2MM$1PPPPPPPPPPP
+$1P$2MMMMMMMMMMMMMMMM$1PP$2M$1P$2MMM$1PPPPPPPPPPPPPPPP
+$1P$2MMM$1PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP$2MMMMM$1P
+$1PPPPPPPPPPPPPPPP$2MMM$1P$2M$1P$2MMMMMMMMMMMMMMMM$1PP
+$1PPPPPPPPPPP$2MM$1P$2MM$1PPPP$2MM$1PPPPP$2MMMMMMMMMMM$1PP
+$1 PPPPPPPP$2MMMMMM$1PPPPP$2MM$1PPPPPP$2MMMMMMMMM$1PP
+$1 PPPP$2MM$1P$2MMMMMMM$1PPPPPP$2MM$1PPPPPPPPPP$2MMMM$1PP
+$1 PP$2MMMMMMMMM$1P$2M$1PPPP$2MMMMMM$1PPPPPPPPPPPPP
+$1 PP$2MMMMMMM$1PPPPPPP$2MMMMMM$1PPPPPPPPPPPP
+$1 PP$2MMMM$1PPPPPPPPP$2MMMMMMM$1PPPPPPPP
+$1 PP$2MM$1PPPPPPPP$2MMMMMMMMMM$1PPPP
+$1 PPPPPPPPPP$2MMMMMMMM$1PPPP
+$1 PPPPPPPPPPPPPP \ No newline at end of file
diff --git a/src/logo/ascii/p/peropesis.txt b/src/logo/ascii/p/peropesis.txt
new file mode 100644
index 0000000..32d1cf2
--- /dev/null
+++ b/src/logo/ascii/p/peropesis.txt
@@ -0,0 +1,5 @@
+#### #### #### ### #### #### #### # ####
+# # # # # # # # # # # # #
+#### ### #### # # #### ### # # #
+# # # # # # # # # # #
+# #### # # ### # #### #### # #### \ No newline at end of file
diff --git a/src/logo/ascii/p/phyos.txt b/src/logo/ascii/p/phyos.txt
new file mode 100644
index 0000000..ebc148a
--- /dev/null
+++ b/src/logo/ascii/p/phyos.txt
@@ -0,0 +1,17 @@
+.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.^^^^^.
+ :777777777777777777777777777777^~7777:
+ .~~~~~~~~~~~~~~~~~~~~~^~7777!:!777!.
+ ~7!!!!!!!!!!!!!!!!!^:!777~^!777~
+ ^77777!!!!!!!!!7!^^7777^^7777^
+ ^7777~.~~~~^. .~7777^~7777:
+ :!777~^!777~. !777!:~777!:
+ .!777!:~777!:~77~:!777!.
+ ~777!^~7777:^~^!777~
+ ^7777^^7777^^7777^
+ :7777~^!7777777:
+ .!777!:!7777!.
+ .~777!:~77~.
+ ~7777^~~
+ ^7777.
+ :77:
+ .. \ No newline at end of file
diff --git a/src/logo/ascii/p/pikaos.txt b/src/logo/ascii/p/pikaos.txt
new file mode 100644
index 0000000..ae19ee4
--- /dev/null
+++ b/src/logo/ascii/p/pikaos.txt
@@ -0,0 +1,18 @@
+ -
+ ----------------
+ ------------------
+ -------------------
+ -- -----------=*-=----#####
+ -----------------------------####--=######
+ ------------------------------++---+####
+ =============----------------=+=-----
+ =================-----------####+----
+ ==================----------*###=----
+ ===================-----------------
+ ==================-----------------
+ =================----------------
+ ===============------------::::
+ ============-:::::::::::::::
+ =======--:::::::::::::::
+ .::::::::::::::::.
+ ::::::: \ No newline at end of file
diff --git a/src/logo/ascii/p/pisi.txt b/src/logo/ascii/p/pisi.txt
new file mode 100644
index 0000000..16958be
--- /dev/null
+++ b/src/logo/ascii/p/pisi.txt
@@ -0,0 +1,19 @@
+ \Fv/!- `:?lzC
+$1 Q!::=zFx! $2`;v6WBCicl;` $1,vCC\!::#.
+$1 ,%:::,'` $2+#%@@FQ@@. ,cF%i$1``-',::a?
+$1 +m:,'```$2}3,/@@Q\@@ "af-$1 `-'"7f
+ =o'.` $2/m' :Q@:Qg ,kl$1 `.|o
+ :k` '$2$+ 'Narm >d,$1 ii
+ #`$2!p. `C , 'd+$1 %'
+$2 !0m `6Kv
+ =a m+
+ !A !\L|: :|L\! $:
+ .8` Q''%Q#' '#Q%''Q `0-
+ :6 E|.6QQu uQQ6.|E p:
+ i{ \jts9? ?9stj\ u\
+ |a` -''. `e>
+ ,m+ $1'^ !`$2s@@@@a$1'"`+`$2 >e'
+ !3|$1`|=>>r- $2'U%:$1 '>>>=:`\3!
+ 'xopE| $2`'$1 `ledoz-
+ `;=>>+`$2`^llci/|==|/iclc;`$1'>>>>:
+ `^`+~ $2````$1 !!-^ \ No newline at end of file
diff --git a/src/logo/ascii/p/pnm_linux.txt b/src/logo/ascii/p/pnm_linux.txt
new file mode 100644
index 0000000..5152320
--- /dev/null
+++ b/src/logo/ascii/p/pnm_linux.txt
@@ -0,0 +1,19 @@
+ ``.---..` `--`
+ ``.---........-:.$2-::`$1
+ $2./::-$1........$2--::.````$1
+ $2.:://:::$1----$2::::-..$1
+ ..$2--:::::--::::++-$1.`
+ $2`-:-`$1 .-ohy+::$2-:::$1/sdmdd:.$2 `-:-
+ .-:::$1...$3sNNmds$y$1o/+$3sy+NN$m$1d+.`$2-:::-.
+ `.-:-$1./$3dN$1()$3yyooosd$1()$3$m$1dy$2-.::-.`$1
+ $2`.$1-...-$3+hNdyyyyyydmy$1:......$2`$1
+ ``..--.....-$3yNNm$4hssssh$3mmdo$1.........```
+`-:://:.....$3hNNNNN$4mddm$3NNNmds$1.....//::--`
+ ```.:-...$3oNNNNNNNNNNNNNNmd/$1...:-.```
+ .....$3hNNNNNNNNNNNNNNmds$1....`
+ --...$3hNNNNNNNNNNNNNNmdo$1.....
+ .:...$3/NNNNNNNNNNNNNNdd$1:....`
+ `-...$3+mNNNNNNNNNNNmh$1:...-.
+ $4.:+o+/:-$1:+oo+///++o+/:-$4:/+ooo/:.
+ $4+oo/:o- +oooooso.`
+ $4.` ` `/ .-//- \ No newline at end of file
diff --git a/src/logo/ascii/p/pop.txt b/src/logo/ascii/p/pop.txt
new file mode 100644
index 0000000..b562610
--- /dev/null
+++ b/src/logo/ascii/p/pop.txt
@@ -0,0 +1,20 @@
+ /////////////
+ /////////////////////
+ ///////$2*767$1////////////////
+ //////$27676767676*$1//////////////
+ /////$276767$1//$27676767$1//////////////
+ /////$2767676$1///$2*76767$1///////////////
+ ///////$2767676$1///$276767$1.///$27676*$1///////
+/////////$2767676$1//$276767$1///$2767676$1////////
+//////////$276767676767$1////$276767$1/////////
+///////////$276767676$1//////$27676$1//////////
+////////////,$27676$1,///////$2767$1///////////
+/////////////*$27676$1///////$276$1////////////
+///////////////$27676$1////////////////////
+ ///////////////$27676$1///$2767$1////////////
+ //////////////////////$2'$1////////////
+ //////$2.7676767676767676767,$1//////
+ /////$2767676767676767676767$1/////
+ ///////////////////////////
+ /////////////////////
+ ///////////// \ No newline at end of file
diff --git a/src/logo/ascii/p/pop_small.txt b/src/logo/ascii/p/pop_small.txt
new file mode 100644
index 0000000..4865dd9
--- /dev/null
+++ b/src/logo/ascii/p/pop_small.txt
@@ -0,0 +1,8 @@
+______
+\ _ \ __
+ \ \ \ \ / /
+ \ \_\ \ / /
+ \ ___\ /_/
+ \ \ _
+ __\_\__(_)_
+ (___________)` \ No newline at end of file
diff --git a/src/logo/ascii/p/porteus.txt b/src/logo/ascii/p/porteus.txt
new file mode 100644
index 0000000..778210a
--- /dev/null
+++ b/src/logo/ascii/p/porteus.txt
@@ -0,0 +1,23 @@
+ `.-:::-.`
+ -+ydmNNNNNNNmdy+-
+ .+dNmdhs+//////+shdmdo.
+ .smmy+-` ./sdy:
+ `omdo. `.-/+osssso+/-` `+dy.
+ `yms. `:shmNmdhsoo++osyyo-``oh.
+ hm/ .odNmds/.` ``.....:::-+s
+/m: `+dNmy:` `./oyhhhhyyooo++so
+ys `yNmy- .+hmmho:-.` ```
+s: yNm+` .smNd+.
+`` /Nm: +dNd+`
+ yN+ `smNy.
+ dm oNNy`
+ hy -mNm.
+ +y oNNo
+ `y` sNN:
+ `: +NN:
+ ` .mNo
+ /mm`
+ /my`
+ .sy`
+ .+:
+ ` \ No newline at end of file
diff --git a/src/logo/ascii/p/postmarketos.txt b/src/logo/ascii/p/postmarketos.txt
new file mode 100644
index 0000000..be7bc1e
--- /dev/null
+++ b/src/logo/ascii/p/postmarketos.txt
@@ -0,0 +1,18 @@
+ /\
+ / \
+ / \
+ / \
+ / \
+ / \
+ \ \
+ /\ \____ \
+ / \____ \ \
+ / / \ \
+ / / \ ___\
+ / / \ / ____
+ / / \/ / \
+ / / __________/ \
+ / \ \ \
+ / \ \ \
+ / / / \
+/___________/ /____________________\ \ No newline at end of file
diff --git a/src/logo/ascii/p/postmarketos_small.txt b/src/logo/ascii/p/postmarketos_small.txt
new file mode 100644
index 0000000..3d05527
--- /dev/null
+++ b/src/logo/ascii/p/postmarketos_small.txt
@@ -0,0 +1,9 @@
+ /\
+ / \
+ / \
+ \__ \
+ /\__ \ _\
+ / / \/ __
+ / / ____/ \
+ / \ \ \
+/_____/ /________\ \ No newline at end of file
diff --git a/src/logo/ascii/p/prismlinux.txt b/src/logo/ascii/p/prismlinux.txt
new file mode 100644
index 0000000..237ac39
--- /dev/null
+++ b/src/logo/ascii/p/prismlinux.txt
@@ -0,0 +1,21 @@
+ ⣤⣤ ⢀⡄
+ ⢀⣾⣦ ⠙⠛ ⢀⣴⣿⣷ ⢠⣤
+ ⣤⡄ ⣸⣿⣿⣷⣄ ⣠⣶⣿⣿⣿⣿ ⠈⠉ ⢀⣤⡀
+ ⠉⠁ ⢠⣿⣿⣿⣿⣿⣦⡈⢿⣿⣿⣿⣿⣿⡇⢀⣀⣤⣤⣤⣤⣴⣶⠆⠘⠿⠃ ⠉ ⡀
+ ⢤⣄⡀ ⣾⣿⣿⣿⣿⣿⣿⣷⡄⠻⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⡏ ⡇
+ ⠘⣿⣿⣿⣿⣶⣤⣈⣉⠛⠿⢿⣿⣿⣿⣿⣦⠘⢿⣿⣿⣷⠈⣿⣿⣿⣿⣿⠏ ⠐⠁
+ ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦⣤⣉⡛⠻⢿⣷⣄⠻⣿⣿ ⣿⣿⣿⣿⠟⢠⣀ ⡐⠁
+ ⢰⣶ ⠘⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠛⠉⠉ ⠈⠉ ⠘⣿ ⣿⣿⣿⡏⢠⣿⣿⣿⣶⣦⣄⡀ ⠂
+ ⠈⠁ ⠙⠋⣉⣉⣤⣤⣶⣶⠾⠉ ⠈ ⢹⣿⠏⢠⣿⣿⣿⣿⣿⣿⣿⣿⠟
+ ⢀⣠⣤⣴⣶⣿⣿⣿⣿⣿⣿⣿⠟⠁ ⢸⠟⣰⣿⣿⣿⣿⣿⡿⠟⠉
+ ⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⠟⢁⣴⡏ ⠈⣰⣿⣿⣿⠿⠛⣁⡀ ⢀⡒
+ ⢤⡀ ⠙⢿⣿⣿⣿⠟⢁⣴⣿⣿ ⣰⡿⠟⢉⣠⣴⣾⣿⣿⣆
+ ⠛⠁ ⠔ ⠈⠛⢁⣴⣿⣿⣿⡇⢰⡆ ⠊⣁⣤⣾⣿⣿⣿⣿⣿⣿⣿⣷⡀
+ ⡠⠂ ⢀⣴⣿⣿⣿⣿⣿⠃⣾⣿⡄⢢⡀ ⠤⠶⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄
+ ⢀⠈ ⢀⣴⣿⣿⣿⣿⣿⣿⡿⢠⣿⣿⣷ ⢿⣷⣄⠑⢶⣶⣶⣶⣶⣶⣤⣤⣤⣤⣤⣤
+⠠⠁ ⠚⠛⠿⠿⢿⣿⣿⣿⡇⢸⣿⣿⣿⣧⠈⢿⣿⣿⣦⣌⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⡄ ⢰⣶
+⡆ ⣼⣿⣿⣿⣿⣇⠘⣿⣿⣿⣿⣿⣦⣈⠛⢿⣿⣿⣿⣿⣿⡇
+⢁ ⣀ ⠄⠂⠁⢀⣿⣿⣿⣿⣿⣿⡆⠹⣿⣿⣿⣿⣿⣿⠗ ⠈⠛⢿⣿⣿⡇
+ ⠁⠂ ⠒⠒⠈⠁ ⢸⣿⣿⣿⠿⠛⠉ ⢻⣿⣿⣿⣿⠟ ⠈⠙⠃
+ ⠼⠛⠉⠁ ⢻⣿⣿⠏ ⢀⣄
+ ⠿⠇ ⠈⠿⠁ ⠘⠋
diff --git a/src/logo/ascii/p/prismlinux_small.txt b/src/logo/ascii/p/prismlinux_small.txt
new file mode 100644
index 0000000..35e43d4
--- /dev/null
+++ b/src/logo/ascii/p/prismlinux_small.txt
@@ -0,0 +1,13 @@
+ ⢠⣦⡀⠘⠁⢀⣴⣾ ⢀⡄
+ ⠛ ⣸⣿⣿⣄⢰⣿⣿⣿⡄⢀⣀⣀⣀⡀⢾⠆⠐⠂⢄
+ ⠰⣤⣄⡀ ⢿⣿⣿⣿⣧⡹⣿⣿⡇⣿⣿⣿⡿⠁
+ ⢻⣿⣿⣿⣶⣶⣭⣝⡻⠷⣌⢿⡇⢸⣿⡿⢁⣀
+ ⠘⠛ ⠸⠿⠟⣛⣋⡭⠅ ⠻⢸⡿⢡⣿⣿⣿⣶⣤⠁
+ ⠠⣤⣶⣶⣿⣿⡿⢋ ⠸⣡⣿⣿⡿⠟⠉
+ ⢠ ⠈⠻⣿⡿⢋⣴⡟ ⢰⠟⣋⣥⣾⣦⡀ ⠁
+ ⠈⠠⠊ ⢈⣴⣿⣿⣇⣧⢀ ⢀⣠⣴⣿⣿⣿⣿⣿⣷⡄
+ ⣰⣿⣿⣿⣿⢹⣿⣆⢳⣦⣐⠶⣶⣦⣤⣬⣭⣭⠉⢉⠉⠉
+⡀ ⠈⠉⠉⢉⢸⣿⣿⣆⢻⣿⣷⣮⡙⢿⣿⣿⣿ ⠉
+ ⣀⣀ ⠄⠐⠈ ⣾⣿⣿⠿ ⣿⣿⣿⡿ ⠉⠻⢿
+ ⠛⠉ ⢀⡀⠘⣿⠟ ⢠⡀
+ ⠈⠁ ⠁
diff --git a/src/logo/ascii/p/proxmox.txt b/src/logo/ascii/p/proxmox.txt
new file mode 100644
index 0000000..fda7bf1
--- /dev/null
+++ b/src/logo/ascii/p/proxmox.txt
@@ -0,0 +1,20 @@
+$1 .://:` `://:.
+ `hMMMMMMd/ /dMMMMMMh`
+ `sMMMMMMMd: :mMMMMMMMs`
+$2`-/+oo+/:$1`.yMMMMMMMh- -hMMMMMMMy.`$2:/+oo+/-`
+`:oooooooo/$1`-hMMMMMMMyyMMMMMMMh-`$2/oooooooo:`
+ `/oooooooo:$1`:mMMMMMMMMMMMMm:`$2:oooooooo/`
+ ./ooooooo+-$1 +NMMMMMMMMN+ $2-+ooooooo/.
+ .+ooooooo+-$1`oNMMMMNo`$2-+ooooooo+.
+ -+ooooooo/.$1`sMMs`$2./ooooooo+-
+ :oooooooo/$1`..`$2/oooooooo:
+ :oooooooo/`$1..$2`/oooooooo:
+ -+ooooooo/.`$1sMMs$2`./ooooooo+-
+ .+ooooooo+-`$1oNMMMMNo$2`-+ooooooo+.
+ ./ooooooo+-$1 +NMMMMMMMMN+ $2-+ooooooo/.
+ `/oooooooo:`$1:mMMMMMMMMMMMMm:$2`:oooooooo/`
+`:oooooooo/`$1-hMMMMMMMyyMMMMMMMh-$2`/oooooooo:`
+`-/+oo+/:`$1.yMMMMMMMh- -hMMMMMMMy.$2`:/+oo+/-`
+$1 `sMMMMMMMm: :dMMMMMMMs`
+ `hMMMMMMd/ /dMMMMMMh`
+ `://:` `://:` \ No newline at end of file
diff --git a/src/logo/ascii/p/puffos.txt b/src/logo/ascii/p/puffos.txt
new file mode 100644
index 0000000..a8e306c
--- /dev/null
+++ b/src/logo/ascii/p/puffos.txt
@@ -0,0 +1,12 @@
+ _,..._,m,
+ ,/' '"";
+ / ".
+ ,'mmmMMMMmm. \
+ _/-"^^^^^"""%#%mm, ;
+ ,m,_,' "###) ;,
+(###% \#/ ;##mm.
+ ^#/ __ ___ ; (######)
+ ; //.\\ //.\\ ; \####/
+ _; (#\"// \\"/#) ; ,/
+@##\ \##/ = `"=" ,;mm/
+`\##>.____,...,____,<####@ \ No newline at end of file
diff --git a/src/logo/ascii/p/puppy.txt b/src/logo/ascii/p/puppy.txt
new file mode 100644
index 0000000..1d66992
--- /dev/null
+++ b/src/logo/ascii/p/puppy.txt
@@ -0,0 +1,18 @@
+ `-/osyyyysosyhhhhhyys+-
+ -ohmNNmh+/hMMMMMMMMNNNNd+dMMMMNM+
+ yMMMMNNmmddo/NMMMNNNNNNNNNo+NNNNNy
+.NNNNNNmmmddds:MMNNNNNNNNNNNh:mNNN/
+-NNNdyyyhdmmmd`dNNNNNmmmmNNmdd/os/
+.Nm+shddyooo+/smNNNNmmmmNh. :mmd.
+ NNNNy:` ./hmmmmmmmNNNN: hNMh
+ NMN- -++- +NNNNNNNNNNm+..-sMMMM-
+.MMo oNNNNo hNNNNNNNNmhdNNNMMMMM+
+.MMs /NNNN/ dNmhs+:-` yMMMMMMMM+
+ mMM+ .. `sNN+. hMMMMhhMMM-
+ +MMMmo:...:sNMMMMMms:` hMMMMm.hMMy
+ yMMMMMMMMMMMNdMMMMMM::/+o+//dMMd`
+ sMMMMMMMMMMN+:oyyo:sMMMNNMMMNy`
+ :mMMMMMMMMMMMmddNMMMMMMMMmh/
+ /dMMMMMMMMMMMMMMMMMMNdy/`
+ .+hNMMMMMMMMMNmdhs/.
+ .:/+ooo+/:-. \ No newline at end of file
diff --git a/src/logo/ascii/p/pureos.txt b/src/logo/ascii/p/pureos.txt
new file mode 100644
index 0000000..4d47de1
--- /dev/null
+++ b/src/logo/ascii/p/pureos.txt
@@ -0,0 +1,12 @@
+dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd
+dNm//////////////////////////////////mNd
+dNd dNd
+dNd dNd
+dNd dNd
+dNd dNd
+dNd dNd
+dNd dNd
+dNd dNd
+dNd dNd
+dNm//////////////////////////////////mNd
+dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd \ No newline at end of file
diff --git a/src/logo/ascii/p/pureos_small.txt b/src/logo/ascii/p/pureos_small.txt
new file mode 100644
index 0000000..27f5204
--- /dev/null
+++ b/src/logo/ascii/p/pureos_small.txt
@@ -0,0 +1,6 @@
+ _____________
+| _________ |
+| | | |
+| | | |
+| |_________| |
+|_____________| \ No newline at end of file
diff --git a/src/logo/ascii/q.inc b/src/logo/ascii/q.inc
new file mode 100644
index 0000000..732261e
--- /dev/null
+++ b/src/logo/ascii/q.inc
@@ -0,0 +1,89 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo Q[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_QTS
+ // QTS
+ {
+ .names = { "qts" },
+ .lines = FASTFETCH_DATATEXT_LOGO_QTS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_QUASAR
+ // Quasar
+ {
+ .names = { "Quasar" },
+ .lines = FASTFETCH_DATATEXT_LOGO_QUASAR,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_Q4OS
+ // Q4OS
+ {
+ .names = { "Q4OS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_Q4OS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_QUBES
+ // Qubes
+ {
+ .names = { "Qubes" },
+ .lines = FASTFETCH_DATATEXT_LOGO_QUBES,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_QUBYT
+ // Qubyt
+ {
+ .names = { "Qubyt" },
+ .lines = FASTFETCH_DATATEXT_LOGO_QUBYT,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLACK,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_QUIBIAN
+ // Quibian
+ {
+ .names = { "Quibian" },
+ .lines = FASTFETCH_DATATEXT_LOGO_QUIBIAN,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_QUIRINUX
+ // Quirinux
+ {
+ .names = { "Quirinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_QUIRINUX,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_MAGENTA,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/q/q4os.txt b/src/logo/ascii/q/q4os.txt
new file mode 100644
index 0000000..01e178c
--- /dev/null
+++ b/src/logo/ascii/q/q4os.txt
@@ -0,0 +1,19 @@
+ .:***** :=====.
+ .:******** :========.
+ .*********** :===========.
+ .:************ :============-
+ .************** :==============
+ :*************** :===============
+ :**************. :===============
+.*************: .=============.
+*************. .============:
+
+$1:############. $2:==:
+$1:##############. $2:======:
+ $1:################ $2.==========:
+ $1:############### $2.===========:
+ $1:############## $2.===========:
+ $1:############# $2.=========:
+ $1:########### $2.=====:
+ $1.######### $2.=:
+ $1.##### \ No newline at end of file
diff --git a/src/logo/ascii/q/qts.txt b/src/logo/ascii/q/qts.txt
new file mode 100644
index 0000000..3fe32a8
--- /dev/null
+++ b/src/logo/ascii/q/qts.txt
@@ -0,0 +1,14 @@
+ $1###########################-
+ $1###############################
+$1=#########**************#########
+$1########## ########
+$1########## ########
+$1########## ########
+$1########## ########
+$1########## ########
+$1########## $2. $1########
+$1########## $2+=. $1:#####
+$1+#########+=========- $2%%%* $1=#
+ $1#####################* $2%%%%#
+ $1-#####################* $2%%%%%.
+ $2``````` \ No newline at end of file
diff --git a/src/logo/ascii/q/quasar.txt b/src/logo/ascii/q/quasar.txt
new file mode 100644
index 0000000..c26ba5c
--- /dev/null
+++ b/src/logo/ascii/q/quasar.txt
@@ -0,0 +1,25 @@
+###
+ #####
+ ## ####
+ ## #####
+ ## #####
+ ## ###
+ ## ####
+ ## #### ####
+ ## ### ### ####
+ ##### ##
+ ### ## ### ##
+ ## ## ## ##
+ # ## ## ##
+ ## ## ## ##
+ ## #### ## ###
+ ### #####
+ #### ### #### ###
+ ##### #### ##
+ ### ##
+ ### ##
+ ##### ##
+ ##### ##
+ #### ##
+ ######
+ ### \ No newline at end of file
diff --git a/src/logo/ascii/q/qubes.txt b/src/logo/ascii/q/qubes.txt
new file mode 100644
index 0000000..a938d3d
--- /dev/null
+++ b/src/logo/ascii/q/qubes.txt
@@ -0,0 +1,21 @@
+ `..--..`
+ `.----------.`
+ `..----------------..`
+ `.------------------------.``
+ `..-------------....-------------..`
+.::----------..`` ``..----------:+:
+:////:----..` `..---:/ossso
+:///////:` `/osssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:////////-` .:sssssssso
+:///////////-.` `-/osssssssssso
+`//////////////:-```.:+ssssssssssssso-
+ .-://////////////sssssssssssssso/-`
+ `.:///////////sssssssssssssso:.
+ .-:///////ssssssssssssssssss/`
+ `.:////ssss+/+ssssssssssss.
+ `--//- `-/osssso/. \ No newline at end of file
diff --git a/src/logo/ascii/q/qubyt.txt b/src/logo/ascii/q/qubyt.txt
new file mode 100644
index 0000000..f310106
--- /dev/null
+++ b/src/logo/ascii/q/qubyt.txt
@@ -0,0 +1,15 @@
+$1 ########################$2($3ooo
+$1 ########################$2($3ooo
+$1###$2($3ooo $1###$2($3ooo
+$1###$2($3ooo $1###$2($3ooo
+$1###$2($3ooo $1###$2($3ooo
+$1###$2($3ooo $1###$2($3ooo
+$1###$2($3ooo $1###$2($3ooo
+$1###$2($3ooo $1###$2($3ooo
+$1###$2($3ooo $1##$3o $2(((($3ooo
+$1###$2($3ooo o$2(($1### $3oooooo
+$1###$2($3ooo oo$2(($1###$3o
+$1###$2($3ooo ooo$2(($1###
+$1################$2($3oo oo$2(((($3o
+$2((((((((((((((((($3ooo ooooo
+ oooooooooooooooooo o \ No newline at end of file
diff --git a/src/logo/ascii/q/quibian.txt b/src/logo/ascii/q/quibian.txt
new file mode 100644
index 0000000..647fb8f
--- /dev/null
+++ b/src/logo/ascii/q/quibian.txt
@@ -0,0 +1,18 @@
+ `.--::::::::--.`
+ `.-:::-..`` ``..-::-.`
+ .::::-` .$2+$1:`` `.-::.`
+ .::::.` -::::::-` `.::.
+ `-:::-` -:::::::::--..`` .::`
+ `::::- .$2oy$1:::::::---.```.: `::`
+ -:::: `.-:::::::::::-.``` `::
+.::::.`-:::::::::::::. `:.
+-::::.::::::::::::::: -:
+::::::::::::::::::::` `:
+:::::::::::::::::::- `:
+::::::::::::::::::: --
+.:::::::::::::::::` `:`
+`::::::::::::::::: -`
+ .:::::::::::::::- -`
+ `::::::::::::::- `.`
+ .::::::::::::- ``
+ `.--:::::-. \ No newline at end of file
diff --git a/src/logo/ascii/q/quirinux.txt b/src/logo/ascii/q/quirinux.txt
new file mode 100644
index 0000000..4047225
--- /dev/null
+++ b/src/logo/ascii/q/quirinux.txt
@@ -0,0 +1,17 @@
+$2 @=++++++++++=@
+$2 =++++++++++++++++++=
+$2 *++++++++++++++++++++++*
+$2 =++++++++++++++++++++++++++=
+$2 *++++++++$1-..........-$2++++++++*
+$2 =++++++++$1..............$2++++++++=
+$2@++++++++$1:.....$2:++$1:.....:$2++++++++@
+$2=++++++++$1:.....$2++++$1.....:$2++++++++=
+$2=++++++++$1:.....$2++++$1.....:$2++++++++=
+$2#++++++++$1:.....$2++++$1.....:$2++++++++#
+$2 +++++++++$1......$2--$1......$2+++++++++
+$2 @++++++++$1:............:$2++++++++@
+$2 @+++++++++++$1-....-$2+++++++++++@
+$2 *++++++++++$1::::$2++++++++++*
+$2 *++++++++++++++++++++*
+$2 @*++++++++++++++*@
+$2 @#====#@ \ No newline at end of file
diff --git a/src/logo/ascii/r.inc b/src/logo/ascii/r.inc
new file mode 100644
index 0000000..1052d2a
--- /dev/null
+++ b/src/logo/ascii/r.inc
@@ -0,0 +1,297 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo R[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_RADIX
+ // Radix
+ {
+ .names = { "Radix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_RADIX,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RASPBIAN
+ // Raspbian
+ {
+ .names = { "raspbian" },
+ .lines = FASTFETCH_DATATEXT_LOGO_RASPBIAN,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RASPBIAN_SMALL
+ // RaspbianSmall
+ {
+ .names = { "raspbian_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_RASPBIAN_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RAVYNOS
+ // RavynOS
+ {
+ .names = { "RavynOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_RAVYNOS,
+ .colors = {
+ FF_COLOR_FG_256 "15",
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REBORNOS
+ // RebornOS
+ {
+ .names = { "RebornOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REBORNOS,
+ .colors = {
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REBORNOS_SMALL
+ // RebornSmall
+ {
+ .names = { "RebornOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_REBORNOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REDCORE
+ // RedCore
+ {
+ .names = { "RedCore" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REDCORE,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RHEL
+ // RedHatEnterpriseLinux
+ {
+ .names = { "rhel", "redhat" },
+ .lines = FASTFETCH_DATATEXT_LOGO_RHEL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RHEL_SMALL
+ // RedHatEnterpriseLinux
+ {
+ .names = { "rhel_small", "redhat_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_RHEL_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RHEL_OLD
+ // RedHatEnterpriseLinux_old
+ {
+ .names = { "rhel_old", "redhat_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_RHEL_OLD,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REDOS
+ // RedOS
+ {
+ .names = { "RedOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REDOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorTitle = FF_COLOR_FG_RED,
+ .colorKeys = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REDOS_SMALL
+ // RedOS small
+ {
+ .names = { "RedOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_REDOS_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorTitle = FF_COLOR_FG_RED,
+ .colorKeys = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REDSTAR
+ // RedstarOS
+ {
+ .names = { "redstar", "redstar-os", "redstaros" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REDSTAR,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REDROSE
+ // Redrose
+ {
+ .names = { "Redrose" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REDROSE,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REFRACTA
+ // Refracta
+ {
+ .names = { "Refracta" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REFRACTA,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_LIGHT_BLACK,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REGATA
+ // Regata
+ {
+ .names = { "Regata" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REGATA,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_REGOLITH
+ // Regolith
+ {
+ .names = { "Regolith" },
+ .lines = FASTFETCH_DATATEXT_LOGO_REGOLITH,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RHAYMOS
+ // RhaymOS
+ {
+ .names = { "RhaymOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_RHAYMOS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ROCKY
+ // RockyLinux
+ {
+ .names = { "rocky" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ROCKY,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ROCKY_SMALL
+ // RockyLinuxSmall
+ {
+ .names = { "rocky_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_ROCKY_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ROSA
+ // RosaLinux
+ {
+ .names = { "rosa", "rosa-linux", "rosalinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ROSA,
+ .colors = {
+ FF_COLOR_FG_RGB "250;250;250",
+ FF_COLOR_FG_RGB "100;165;225",
+ },
+ .colorKeys = FF_COLOR_FG_RGB "100;165;225",
+ .colorTitle = FF_COLOR_FG_RGB "100;165;225",
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RHINO
+ // RhinoLinux
+ {
+ .names = { "Rhino Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_RHINO,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_LIGHT_BLUE,
+ FF_COLOR_FG_LIGHT_MAGENTA,
+ FF_COLOR_FG_MAGENTA,
+ },
+ .colorKeys = FF_COLOR_FG_MAGENTA,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_RENGEOS
+ {
+ .names = { "RengeOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_RENGEOS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_MAGENTA,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/r/radix.txt b/src/logo/ascii/r/radix.txt
new file mode 100644
index 0000000..4a3aa6f
--- /dev/null
+++ b/src/logo/ascii/r/radix.txt
@@ -0,0 +1,18 @@
+ .:oyhdmNo
+ `/yhyoosdms`
+ -o+/ohmmho-
+ ..`.:/:-`
+ `.--:::-.``$2
+ .+ydNMMMMMMNmhs:`
+`omMMMMMMMMMMMMMMNh-
+oNMMMNmddhhyyhhhddmy.
+mMMMMNmmddhhysoo+/:-`
+yMMMMMMMMMMMMMMMMNNh.
+-dmmmmmNNMMMMMMMMMMs`
+ -+oossyhmMMMMMMMMd-
+ `sNMMMMMMMMMMMMMm:
+ `yMMMMMMNmdhhhh:
+ `sNMMMMMNmmho.
+ `+mMMMMMMMy.
+ .yNMMMm+`
+ `:yd+. \ No newline at end of file
diff --git a/src/logo/ascii/r/raspbian.txt b/src/logo/ascii/r/raspbian.txt
new file mode 100644
index 0000000..ec8020c
--- /dev/null
+++ b/src/logo/ascii/r/raspbian.txt
@@ -0,0 +1,23 @@
+ $2`.::///+:/-. --///+//-:`
+ `+oooooooooooo: `+oooooooooooo:
+ /oooo++//ooooo: ooooo+//+ooooo.
+ `+ooooooo:-:oo- +o+::/ooooooo:
+ `:oooooooo+`` `.oooooooo+-
+ `:++ooo/. :+ooo+/.`$1
+ ...` `.----.` ``..
+ .::::-``:::::::::.`-:::-`
+ -:::-` .:::::::-` `-:::-
+ `::. `.--.` `` `.---.``.::`
+ .::::::::` -::::::::` `
+ .::` .:::::::::- `::::::::::``::.
+-:::` ::::::::::. ::::::::::.`:::-
+:::: -::::::::. `-:::::::: ::::
+-::- .-:::-.``....``.-::-. -::-
+ .. `` .::::::::. `..`..
+ -:::-` -::::::::::` .:::::`
+ :::::::` -::::::::::` :::::::.
+ .::::::: -::::::::. ::::::::
+ `-:::::` ..--.` ::::::.
+ `...` `...--..` `...`
+ .::::::::::
+ `.-::::-` \ No newline at end of file
diff --git a/src/logo/ascii/r/raspbian_small.txt b/src/logo/ascii/r/raspbian_small.txt
new file mode 100644
index 0000000..eceb8c3
--- /dev/null
+++ b/src/logo/ascii/r/raspbian_small.txt
@@ -0,0 +1,10 @@
+ $2.~~. .~~.
+ '. \ ' ' / .'$1
+ .~ .~~~..~.
+ : .~.'~'.~. :
+ ~ ( ) ( ) ~
+( : '~'.~.'~' : )
+ ~ .~ ( ) ~. ~
+ ( : '~' : )
+ '~ .~~~. ~'
+ '~' \ No newline at end of file
diff --git a/src/logo/ascii/r/ravynos.txt b/src/logo/ascii/r/ravynos.txt
new file mode 100644
index 0000000..490b5d0
--- /dev/null
+++ b/src/logo/ascii/r/ravynos.txt
@@ -0,0 +1,20 @@
+ ..oooo..
+ .o$$$$$$$$$$$$$$$$$$$$$$$$$$$$o.
+ od$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o
+ o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o
+ .$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.
+ d$$$$$$$$$$$$$$$$$********$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b
+ d$$$$$$$$$$$$$* °****?$$$$$$$$$$$$$$$$b
+ $$$$$$$$$$$$* °$$$$$$$$$$$$$
+ d$$$$** .oo$$$$$$$$$$$$$$$$b
+ *° o$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+ o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+ o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P
+ *$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+ ?$$$$$$$$$$$$$$$$$$$$$$$$$$$$P
+ $$$$$$$$$$$$$$$$$$$$$$$$$P
+ $$$$$$$$$$$$$$$$$$$$$$$$P
+ ?$$$$$$$$$$$$$$$$$$$$*
+ $$$$$$$$$$$$$*°
+ d$$$$$$$$*°
+ ° \ No newline at end of file
diff --git a/src/logo/ascii/r/rebornos.txt b/src/logo/ascii/r/rebornos.txt
new file mode 100644
index 0000000..520c80f
--- /dev/null
+++ b/src/logo/ascii/r/rebornos.txt
@@ -0,0 +1,20 @@
+ $1.======================.
+ $1.#$2#*********$1%%$2*********#$1%:
+ $1:%$2#**********$1%%$2**********#$1%-
+ $1-%$2************$1%%$2************$1%=
+ $1+%$2******$1%%#####$1%%#####%%$2******$1%+
+ $1*%%#$2****$1%#$3+=====$1%%$3=====+$1#%$2****$1#%%*
+ $1*%$2*#$1#%%#%#$3====+++$1%%$3+++====$1#%#%%#$2#*$1##.
+ $1.##$2*****$1#%%%#$3*++$1%######%$3*+*$1#%%%#$2*****$1#%.
+ $1:%#$2*****$1#%$3*=+*$1#%%$3*++++++*$1%%#$3*+=*$1%#$2*****$1#%:
+$1-%#$2*****$1#%$3+====*$1%$3*++++++++*$1%#$3====+$1%#$2******$1%-
+$1-%#$2*****$1#%$3+====*$1%$3*++++++++*$1%#$3====+$1%#$2******$1%=
+ $1:%#$2*****$1#%$3*=+*$1#%%$3*++++++*$1%%#$3*+=*$1%#$2*****$1#%-
+ $1.##$2*****$1#%%%#$3*+*$1%######%$3*+*$1#%%%#$2*****$1#%:
+ $1.##$2**$1#%%#%#$3====+++$1%%$3+++====$1#%#%%#$2#*$1##.
+ $1*%%#$2****$1%#$3+=====$1%%$3=====+$1#%$2****$1#%%*
+ $1+%$2******$1%%#####%%#####%%$2******$1%*
+ $1-%$2************$1%%$2************$1%=
+ $1:%$2#**********$1%%$2**********#$1%-
+ $1:%$2#*********$1%%$2*********#$1%:
+ $1.======================. \ No newline at end of file
diff --git a/src/logo/ascii/r/rebornos_small.txt b/src/logo/ascii/r/rebornos_small.txt
new file mode 100644
index 0000000..d0bfbdf
--- /dev/null
+++ b/src/logo/ascii/r/rebornos_small.txt
@@ -0,0 +1,7 @@
+ _______
+ /\_____/\
+ / /\___/\ \
+/_/_/ \_\_\
+\ \ \___/ / /
+ \ \/___\/ /
+ \/_____\/ \ No newline at end of file
diff --git a/src/logo/ascii/r/redcore.txt b/src/logo/ascii/r/redcore.txt
new file mode 100644
index 0000000..bc19f58
--- /dev/null
+++ b/src/logo/ascii/r/redcore.txt
@@ -0,0 +1,16 @@
+ RRRRRRRRR
+ RRRRRRRRRRRRR
+ RRRRRRRRRR RRRRR
+ RRRRRRRRRRRRRRRRRRRRRRRRRRR
+ RRRRRRR RRR RRR RRRRRRRR
+RRRRR RR RRRRRRRRR
+RRRR RR RRRRRRRR RR RRRRRR
+RRRR R RRRRRRRRRRRRRR RR RRRRR
+RRRR R RRRRRRRRRRRRRRRRRR R RRRRR
+RRRR RRRRRRRRRRRRRRRRRRR R RRRR
+ RRR RRRRRRRRRRRRRRRRRRRR R RRRR
+ RRR RRRRRRRRRRRRRRRRRRRR RRRR
+ RR RRRRRRRRRRRRRRRRRRR RRR
+ RR RRRRRRRRRRRRRRRRR RRR
+ RR RRRRRRRRRRRRRR RR
+ R RRRR RR \ No newline at end of file
diff --git a/src/logo/ascii/r/redos.txt b/src/logo/ascii/r/redos.txt
new file mode 100644
index 0000000..5ad2a1a
--- /dev/null
+++ b/src/logo/ascii/r/redos.txt
@@ -0,0 +1,18 @@
+╭───────────────╮ ╭───────────────╮
+│###############│ │###############│
+│#+++++++++++++#│ │#+++++++++++++#│
+│#+++++++++++++#│ │#+++++++++++++#│
+│#+++++++++++++#│ │#+++++++++++++#│
+│#+++++++++++++#│ │#+++++++++++++#│
+│#+++++++++++++#│ │#+++++++++++++#│
+│###############│ │###############│
+╰───────────────╯ ╰───────────────╯
+╭───────────────╮
+│###############│
+│#+++++++++++++#│
+│#+++++++++++++#│
+│#+++++++++++++#│
+│#+++++++++++++#│
+│#+++++++++++++#│
+│###############│
+╰───────────────╯ \ No newline at end of file
diff --git a/src/logo/ascii/r/redos_small.txt b/src/logo/ascii/r/redos_small.txt
new file mode 100644
index 0000000..e23e1d0
--- /dev/null
+++ b/src/logo/ascii/r/redos_small.txt
@@ -0,0 +1,8 @@
+╭─────╮ ╭─────╮
+│ │ │ │
+│ │ │ │
+╰─────╯ ╰─────╯
+╭─────╮
+│ │
+│ │
+╰─────╯ \ No newline at end of file
diff --git a/src/logo/ascii/r/redrose.txt b/src/logo/ascii/r/redrose.txt
new file mode 100755
index 0000000..316c695
--- /dev/null
+++ b/src/logo/ascii/r/redrose.txt
@@ -0,0 +1,17 @@
+ xxrjr ftttt
+ xxxxxjjfffft
+ xxxxxxxjjjjj
+ xxxxxxxjjjjj
+ xxxxxxxxxnxx
+ xxxxxxxn
+ $2[[
+//// [[
+//// [[
+///////[[
+ /////]]
+ [[
+ [[
+ [[
+ [[
+ [[
+ []
diff --git a/src/logo/ascii/r/redstar.txt b/src/logo/ascii/r/redstar.txt
new file mode 100644
index 0000000..b498663
--- /dev/null
+++ b/src/logo/ascii/r/redstar.txt
@@ -0,0 +1,18 @@
+ ..
+ .oK0l
+ :0KKKKd.
+ .xKO0KKKKd
+ ,Od' .d0000l
+ .c;. .'''... ..'.
+.,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx:
+;kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,.
+ .okkkkd,.lko .......',;:cllc:;,,'''''.
+ .cdo. :xd' cd:. ..';'',,,'',,;;;,'.
+ . .ddl.;doooc'..;oc;'..';::;,'.
+ coo;.oooolllllllcccc:'. .
+ .ool''lllllccccccc:::::;.
+ ;lll. .':cccc:::::::;;;;'
+ :lcc:'',..';::::;;;;;;;,,.
+ :cccc::::;...';;;;;,,,,,,.
+ ,::::::;;;,'. ..',,,,'''.
+ ........ ...... \ No newline at end of file
diff --git a/src/logo/ascii/r/refracta.txt b/src/logo/ascii/r/refracta.txt
new file mode 100644
index 0000000..6e8f484
--- /dev/null
+++ b/src/logo/ascii/r/refracta.txt
@@ -0,0 +1,18 @@
+ A
+ VW
+ VVW\
+ .yWWW\
+,;,,u,;yy;;v;uyyyyyyy ,WWWWW^
+ *WWWWWWWWWWWWWWWW/ $VWWWWw ,
+ ^*%WWWWWWVWWX $WWWW** ,yy
+ , "**WWW/' **' ,yy/WWW*`
+ &WWWWwy `*` <,ywWW%VWWW*
+ yWWWWWWWWWW* ., "**WW%W
+ ,&WWWWWM*"` ,y/ &WWWww ^*
+ XWWX*^ ,yWWWW09 .WWWWWWWWwy,
+*` &WWWWWM WWWWWWWWWWWWWww,
+ (WWWWW` /#####WWW***********
+ ^WWWW
+ VWW
+ Wh.
+ V/ \ No newline at end of file
diff --git a/src/logo/ascii/r/regata.txt b/src/logo/ascii/r/regata.txt
new file mode 100644
index 0000000..4f30382
--- /dev/null
+++ b/src/logo/ascii/r/regata.txt
@@ -0,0 +1,20 @@
+ ddhso+++++osydd
+ dho/.`hh$2.:/+/:.$1hhh`:+yd
+ do-hhhhhh$2/sssssss+`$1hhhhh./yd
+ h/`hhhhhhh$2-sssssssss:$1hhhhhhhh-yd
+ do`hhhhhhhhh$2`ossssssso.$1hhhhhhhhhh/d
+ d/hhhhhhhhhhhh$2`/ossso/.$1hhhhhhhhhhhh.h
+ /hhhhhhhhhhhh$3`-/osyso/-`$1hhhhhhhhhhhh.h
+shh$4-/ooo+-$1hhh$3:syyso+osyys/`$1hhh$5`+oo`$1hhh/
+h$4`ohhhhhhho`$3+yyo.$1hhhhh$3.+yyo`$5.sssssss.$1h`h
+s$4:hhhhhhhhho$3yys`$1hhhhhhh$3.oyy/$5ossssssso-$1hs
+s$4.yhhhhhhhy/$3yys`$1hhhhhhh$3.oyy/$5ossssssso-$1hs
+hh$4./syyys+.$1 $3+yy+.$1hhhhh$3.+yyo`$5.ossssso/$1h`h
+shhh$4``.`$1hhh$3`/syyso++oyys/`$1hhh$5`+++-`$1hh:h
+d/hhhhhhhhhhhh$3`-/osyso+-`$1hhhhhhhhhhhh.h
+ d/hhhhhhhhhhhh$6`/ossso/.$1hhhhhhhhhhhh.h
+ do`hhhhhhhhh$6`ossssssso.$1hhhhhhhhhh:h
+ h/`hhhhhhh$6-sssssssss:$1hhhhhhhh-yd
+ h+.hhhhhh$6+sssssss+$1hhhhhh`/yd
+ dho:.hhh$6.:+++/.$1hhh`-+yd
+ ddhso+++++osyhd \ No newline at end of file
diff --git a/src/logo/ascii/r/regolith.txt b/src/logo/ascii/r/regolith.txt
new file mode 100644
index 0000000..938fe61
--- /dev/null
+++ b/src/logo/ascii/r/regolith.txt
@@ -0,0 +1,18 @@
+ ``....```
+ `.:/++++++/::-.`
+ -/+++++++:.`
+ -++++++++:`
+ `/++++++++-
+ `/++++++++. -/+/
+ /++++++++/ `` .:+++:.
+ -+++++++++/ ./++++:+++/-`
+ :+++++++++/ `+++++++/-`
+ :++++++++++` .-/+++++++`
+ `:++++++++++/``.-/++++:-:::-` `
+ `:+++++++++++++++++/:.` ./`
+:++/-:+++++++++/:-.. -/+.
++++++++++/::-...:/+++/-..````..-/+++.
+`......``.::/+++++++++++++++++++++/.
+ -/+++++++++++++++++++++/.
+ .:/+++++++++++++++/-`
+ `.-:://////:-. \ No newline at end of file
diff --git a/src/logo/ascii/r/rengeos.txt b/src/logo/ascii/r/rengeos.txt
new file mode 100644
index 0000000..995af0b
--- /dev/null
+++ b/src/logo/ascii/r/rengeos.txt
@@ -0,0 +1,16 @@
+ ..
+ .:~!.
+ ...::^~!!7?J?:
+ ..::^^~~!!!7?JYYYYYYY?.
+ .::::..::^!7?JJYYYJYY!
+:~~~:.. .:~!?JJYYYYYYYJ!?J^
+ :!?JJ?7!!7?JYYYYYYYYYYYJ~.~?:
+ :~?YYYYYYYYYYYYYYY?~. ^7.
+ .~?YYYYYYYYYY?^ .~
+ ..:~!7?JYYYYYYYY?^
+.^~!7777777JYYYYY7:
+ ^YYYJ7:
+ :YYJ!:
+ :JJ!.
+ .7~.
+ .. \ No newline at end of file
diff --git a/src/logo/ascii/r/rhaymos.txt b/src/logo/ascii/r/rhaymos.txt
new file mode 100644
index 0000000..859e0cb
--- /dev/null
+++ b/src/logo/ascii/r/rhaymos.txt
@@ -0,0 +1,14 @@
+ ###
+ #####
+
+ ####### /########
+ ############# ###########
+ ,########### #### ####(..
+ #### #### ####* ##########
+ #### ##### ##### (####
+ #### ########### ###########
+ #### ######### ##########
+
+ ###################################
+ #####################################
+####################################### \ No newline at end of file
diff --git a/src/logo/ascii/r/rhel.txt b/src/logo/ascii/r/rhel.txt
new file mode 100644
index 0000000..d2fa4ef
--- /dev/null
+++ b/src/logo/ascii/r/rhel.txt
@@ -0,0 +1,18 @@
+ .MMM..:MMMMMMM
+ MMMMMMMMMMMMMMMMMM
+ MMMMMMMMMMMMMMMMMMMM.
+ MMMMMMMMMMMMMMMMMMMMMM
+ ,MMMMMMMMMMMMMMMMMMMMMM:
+ MMMMMMMMMMMMMMMMMMMMMMMM
+ .MMMM' MMMMMMMMMMMMMMMMMMMMMM
+ MMMMMM `MMMMMMMMMMMMMMMMMMMM.
+MMMMMMMM MMMMMMMMMMMMMMMMMM .
+MMMMMMMMM. `MMMMMMMMMMMMM' MM.
+MMMMMMMMMMM. MMMM
+`MMMMMMMMMMMMM. ,MMMMM.
+ `MMMMMMMMMMMMMMMMM. ,MMMMMMMM.
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+ `MMMMMMMMMMMMMMMMMMMMMMMM:
+ ``MMMMMMMMMMMMMMMMM' \ No newline at end of file
diff --git a/src/logo/ascii/r/rhel_old.txt b/src/logo/ascii/r/rhel_old.txt
new file mode 100644
index 0000000..99b8651
--- /dev/null
+++ b/src/logo/ascii/r/rhel_old.txt
@@ -0,0 +1,16 @@
+ `.-..........`
+ `////////::.`-/.
+ -: ....-////////.
+ //:-::///////////`
+ `--::: `-://////////////:
+ //////- ``.-:///////// .`
+ `://////:-.` :///////::///:`
+ .-/////////:---/////////////:
+ .-://////////////////////.
+$2 yMN+`.-$1::///////////////-`
+$2 .-`:NMMNMs` `..-------..`
+ MN+/mMMMMMhoooyysshsss
+MMM MMMMMMMMMMMMMMyyddMMM+
+ MMMM MMMMMMMMMMMMMNdyNMMh` hyhMMM
+ MMMMMMMMMMMMMMMMyoNNNMMM+. MMMMMMMM
+ MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM \ No newline at end of file
diff --git a/src/logo/ascii/r/rhel_small.txt b/src/logo/ascii/r/rhel_small.txt
new file mode 100644
index 0000000..f0841b7
--- /dev/null
+++ b/src/logo/ascii/r/rhel_small.txt
@@ -0,0 +1,9 @@
+ .M.:MMM
+ MMMMMMMMMM.
+ ,MMMMMMMMMMM
+ .MM MMMMMMMMMMM
+MMMM MMMMMMMMM
+MMMMMM MM
+ MMMMMMMMM ,MMMM
+ MMMMMMMMMMMMMMMM:
+ `MMMMMMMMMMMM \ No newline at end of file
diff --git a/src/logo/ascii/r/rhino.txt b/src/logo/ascii/r/rhino.txt
new file mode 100644
index 0000000..7bab3c3
--- /dev/null
+++ b/src/logo/ascii/r/rhino.txt
@@ -0,0 +1,12 @@
+$1 .;:;,. .:
+$1 'coooooooo:oo.';.
+$1 ,oooooooooooooooo ;
+$1 clllcccllloooooooo;c:'o
+$1.$4;$3';:::::::::$1cclooooooo'
+$4''',$3::::::::::::::$1ccclc.
+$4.'''$3;::::::::::$2l$3:::::::
+$4 ''''$3,:::::::::$2kd$3.
+$4 .'''''$3,;::$2ck:$2oW$3;
+$4 ''''''''$2kXOM.
+$4 .,,:$2dXMK
+$4 $2:k
diff --git a/src/logo/ascii/r/rocky.txt b/src/logo/ascii/r/rocky.txt
new file mode 100644
index 0000000..0843131
--- /dev/null
+++ b/src/logo/ascii/r/rocky.txt
@@ -0,0 +1,19 @@
+ __wgliliiligw_,
+ _williiiiiiliilililw,
+ _%iiiiiilililiiiiiiiiiii_
+ .Qliiiililiiiiiiililililiilm.
+ _iiiiiliiiiiililiiiiiiiiiiliil,
+ .lililiiilililiiiilililililiiiii,
+_liiiiiiliiiiiiiliiiiiF{iiiiiilili,
+jliililiiilililiiili@` ~ililiiiiiL
+iiiliiiiliiiiiiili>` ~liililii
+liliiiliiilililii` -9liiiil
+iiiiiliiliiiiii~ "4lili
+4ililiiiiilil~| -w, )4lf
+-liiiiililiF' _liig, )'
+ )iiiliii@` _QIililig,
+ )iiii>` .Qliliiiililw
+ )<>~ .mliiiiiliiiiiil,
+ _gllilililiililii~
+ giliiiiiiiiiiiiT`
+ -^~$ililili@~~' \ No newline at end of file
diff --git a/src/logo/ascii/r/rocky_small.txt b/src/logo/ascii/r/rocky_small.txt
new file mode 100644
index 0000000..e9e9f09
--- /dev/null
+++ b/src/logo/ascii/r/rocky_small.txt
@@ -0,0 +1,12 @@
+ `-/+++++++++/-.`
+ `-+++++++++++++++++-`
+.+++++++++++++++++++++.
+-+++++++++++++++++++++++.
++++++++++++++++/-/+++++++
++++++++++++++/. ./+++++
++++++++++++:. ./+++
++++++++++:` `:/:` .:/
+-++++++:` .:+++++:`
+ .+++-` ./+++++++++:`
+ `-` ./+++++++++++-
+ -+++++++++:-.` \ No newline at end of file
diff --git a/src/logo/ascii/r/rosa.txt b/src/logo/ascii/r/rosa.txt
new file mode 100644
index 0000000..e6caa5f
--- /dev/null
+++ b/src/logo/ascii/r/rosa.txt
@@ -0,0 +1,18 @@
+$2 ⢀⣀⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣄
+$2 ⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
+$1 ⢀⣤⣄ $2⣿⣿⣿⡇
+$1 ⢀⣴⣿⣿⣿⠗ $2⣿⣿⣿⡇
+$1 ⢠⣾⣿⣿⡿⠁ $2⣿⣿⣿⡇
+$1 ⢠⣿⣿⣿⡟ $2⣿⣿⣿⡇
+$1⢀⣿⣿⣿⡿ $2⣿⣿⣿⡇
+$1⢸⣿⣿⣿⠃ $2⣿⣿⣿⡇
+$1⢸⣿⣿⣿ $2⣿⣿⣿⡇
+$1⢸⣿⣿⣿ $2⣿⣿⣿⡇
+$1⢸⣿⣿⣿⡄ $2⠙⢿⡿
+$1⠘⣿⣿⣿⣷
+ ⠘⣿⣿⣿⣦
+ ⠙⣿⣿⣿⣷⡀ ⢀⡀
+ ⠘⢿⣿⣿⣿⣦⣄ ⣠⣴⣿⣿⡦
+ ⠙⢿⣿⣿⣿⣷⣦⣀⣀⡀ ⢀⣀⣠⣴⣾⣿⣿⣿⠟⠁
+ ⠈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠁
+ ⠈⠙⠛⠿⠿⠿⠿⠿⠿⠟⠛⠋⠁
diff --git a/src/logo/ascii/s.inc b/src/logo/ascii/s.inc
new file mode 100644
index 0000000..78f64f2
--- /dev/null
+++ b/src/logo/ascii/s.inc
@@ -0,0 +1,530 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo S[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_SABAYON
+ // Sabayon
+ {
+ .names = { "Sabayon" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SABAYON,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SABOTAGE
+ // Sabotage
+ {
+ .names = { "Sabotage" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SABOTAGE,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SAILFISH
+ // Sailfish
+ {
+ .names = { "Sailfish" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SAILFISH,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SALENTOS
+ // SalentOS
+ {
+ .names = { "SalentOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SALENTOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SALIENTOS
+ // SalientOS
+ {
+ .names = { "Salient OS", "SalientOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SALIENTOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SALIX
+ // Salix
+ {
+ .names = { "Salix" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SALIX,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SAMBABOX
+ // SambaBOX
+ {
+ .names = { "SambaBOX", "Profelis SambaBOX" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SAMBABOX,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SASANQUA
+ // Sasanqua
+ {
+ .names = { "Sasanqua" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SASANQUA,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SCIENTIFIC
+ // Scientific
+ {
+ .names = { "Scientific" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SCIENTIFIC,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SECUREBLUE
+ // Secureblue
+ {
+ .names = { "secureblue" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SECUREBLUE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SERPENT_OS
+ // Serpent OS
+ {
+ .names = { "Serpent OS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SERPENT_OS,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SEMC
+ // Semc
+ {
+ .names = { "semc" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SEMC,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SEPTOR
+ // Septor
+ {
+ .names = { "Septor" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SEPTOR,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SERENE
+ // Serene
+ {
+ .names = { "Serene" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SERENE,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SHARKLINUX
+ // SharkLinux
+ {
+ .names = { "SharkLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SHARKLINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SHASTRAOS
+ // ShastraOS
+ {
+ .names = { "ShastraOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SHASTRAOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SHEBANG
+ // Shebang
+ {
+ .names = { "Shebang" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SHEBANG,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SIDUCTION
+ // Siduction
+ {
+ .names = { "Siduction" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SIDUCTION,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SKIFFOS
+ // SkiffOS
+ {
+ .names = { "SkiffOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SKIFFOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SLEEPEROS
+ // SleeperOS
+ {
+ .names = { "SleeperOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SLEEPEROS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SLEEPEROS_SMALL
+ // SleeperOSSmall
+ {
+ .names = { "SleeperOS_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_SLEEPEROS_SMALL,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SLITAZ
+ // Slitaz
+ {
+ .names = { "Slitaz" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SLITAZ,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SPOINKOS
+ // SpoinkOS
+ {
+ .names = { "SpoinkOS", "spoink-os" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SPOINKOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SLACKEL
+ // Slackel
+ {
+ .names = { "Slackel" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SLACKEL,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SLACKWARE
+ // Slackware
+ {
+ .names = { "Slackware" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SLACKWARE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SLACKWARE_SMALL
+ // SlackwareSmall
+ {
+ .names = { "Slackware_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_SLACKWARE_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SMARTOS
+ // SmartOS
+ {
+ .names = { "SmartOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SMARTOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SNIGDHAOS
+ // SnigdhaOS
+ {
+ .names = { "SnigdhaOS", "Snigdha" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SNIGDHAOS,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SODA
+ // Soda
+ {
+ .names = { "Soda" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SODA,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SOURCE_MAGE
+ // Source Mage
+ {
+ .names = { "Source Mage", "Source Mage GNU/Linux", "source_mage", "sourcemage" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SOURCE_MAGE,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SOLARIS
+ // Solaris
+ {
+ .names = { "solaris", "sunos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SOLARIS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SOLARIS_SMALL
+ // SolarisSmall
+ {
+ .names = { "solaris_small", "sunos_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_SOLARIS_SMALL,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SOLUS
+ // Solus
+ {
+ .names = { "Solus", "solus-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SOLUS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SPARKY
+ // Sparky
+ {
+ .names = { "Sparky" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SPARKY,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_STAR
+ // Star
+ {
+ .names = { "Star" },
+ .lines = FASTFETCH_DATATEXT_LOGO_STAR,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_STOCK_LINUX
+ // StockLinux
+ {
+ .names = { "Stock Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_STOCK_LINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_STEAMOS
+ // SteamOS
+ {
+ .names = { "SteamOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_STEAMOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_STEAMDECK
+ // Steam Deck
+ {
+ .names = { "SteamDeck" },
+ .lines = FASTFETCH_DATATEXT_LOGO_STEAMDECK,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_STEAMDECK_SMALL
+ // Steam Deck Small
+ {
+ .names = { "SteamDeck_small" },
+ .lines = FASTFETCH_DATATEXT_LOGO_STEAMDECK_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_STEAMDECK
+ // Steam Deck OLED
+ {
+ .names = { "SteamDeckOled" },
+ .lines = FASTFETCH_DATATEXT_LOGO_STEAMDECK,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SULIN
+ // Sulin
+ {
+ .names = { "Sulin" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SULIN,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SUMMITOS
+ // SummitOS
+ {
+ .names = { "SummitOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SUMMITOS,
+ .colors = {
+ FF_COLOR_FG_RGB "143;191;80",
+ FF_COLOR_FG_RGB "160;205;102",
+ FF_COLOR_FG_RGB "181;225;102",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SUSE
+ // Suse
+ {
+ .names = { "suse", "suse-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SUSE,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_OPENSUSE_SMALL
+ // SuseSmall
+ {
+ .names = { "suse_small", "suse-linux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_OPENSUSE_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_SWAGARCH
+ // Swagarch
+ {
+ .names = { "Swagarch" },
+ .lines = FASTFETCH_DATATEXT_LOGO_SWAGARCH,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/s/sabayon.txt b/src/logo/ascii/s/sabayon.txt
new file mode 100644
index 0000000..355610e
--- /dev/null
+++ b/src/logo/ascii/s/sabayon.txt
@@ -0,0 +1,18 @@
+ ...........
+ .. ..
+ .. ..
+ .. $2o $1..
+ .. $2:W' $1..
+ .. $2.d. $1..
+:. $2.KNO $1.:
+:. $2cNNN. $1.:
+: $2dXXX, $1:
+: $2. dXXX, .cd, $1:
+: $2'kc .. dKKK. ,ll;:' $1:
+: $2.xkkxc;..dkkkc',cxkkl $1:
+:. $2.,cdddddddddddddo:. $1.:
+ .. $2:lllllll: $1..
+ .. $2',,,,, $1..
+ .. ..
+ .. ..
+ ............... \ No newline at end of file
diff --git a/src/logo/ascii/s/sabotage.txt b/src/logo/ascii/s/sabotage.txt
new file mode 100644
index 0000000..eb0fd68
--- /dev/null
+++ b/src/logo/ascii/s/sabotage.txt
@@ -0,0 +1,11 @@
+ .|'''.| | '||''|. ..|''||
+ ||.. ' ||| || || .|' ||
+ ''|||. | || ||'''|. || ||
+. '|| .''''|. || || '|. ||
+|'....|' .|. .||. .||...|' ''|...|'
+
+|''||''| | ..|'''.| '||''''|
+ || ||| .|' ' || .
+ || | || || .... ||''|
+ || .''''|. '|. || ||
+ .||. .|. .||. ''|...'| .||.....| \ No newline at end of file
diff --git a/src/logo/ascii/s/sailfish.txt b/src/logo/ascii/s/sailfish.txt
new file mode 100644
index 0000000..dc731ac
--- /dev/null
+++ b/src/logo/ascii/s/sailfish.txt
@@ -0,0 +1,13 @@
+ _a@b
+ _#b (b
+ _@@ @_ _,
+ _#^@ _#*^^*gg,aa@^^
+ #- @@^ _a@^^
+ @_ *g#b
+ ^@_ ^@_
+ ^@_ @
+ @(b (b
+ #b(b#^
+ _@_#@^
+ _a@a*^
+,a@*^ \ No newline at end of file
diff --git a/src/logo/ascii/s/salentos.txt b/src/logo/ascii/s/salentos.txt
new file mode 100644
index 0000000..08d3eb2
--- /dev/null
+++ b/src/logo/ascii/s/salentos.txt
@@ -0,0 +1,20 @@
+ ``..``
+ .-:+oshdNMMMMMMNdhyo+:-.`
+ -oydmMMMMMMMMMMMMMMMMMMMMMMMMMMNdhs/
+$4 +hdddm$1NMMMMMMMMMMMMMMMMMMMMMMMMN$4mdddh+`
+$2`MMMMMN$4mdddddm$1MMMMMMMMMMMM$4mdddddm$3NMMMMM-
+$2 mMMMMMMMMMMMN$4ddddhyyhhddd$3NMMMMMMMMMMMM`
+$2 dMMMMMMMMMMMMMMMMM$4oo$3MMMMMMMMMMMMMMMMMN`
+$2 yMMMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMMd
+$2 +MMMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMMy
+$2 :MMMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMMo
+$2 .MMMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMM/
+$2 `NMMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMM-
+$2 mMMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMN`
+$2 hMMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMm
+$2 /MMMMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMMMMy
+$2 .+hMMMMMMMMMMMMM$4hh$3MMMMMMMMMMMMMms:
+$2 `:smMMMMMMMMM$4hh$3MMMMMMMMMNh+.
+$2 .+hMMMMMM$4hh$3MMMMMMdo:
+$2 `:smMM$4yy$3MMNy/`
+ $2.- $4`$3:. \ No newline at end of file
diff --git a/src/logo/ascii/s/salientos.txt b/src/logo/ascii/s/salientos.txt
new file mode 100644
index 0000000..0c78b54
--- /dev/null
+++ b/src/logo/ascii/s/salientos.txt
@@ -0,0 +1,20 @@
+ 00xxxx0
+ 00xxxxxx0
+ 0xxxxxxxxx 000000
+ 0xxxxxxxxxx xxxxxxxxxx0
+ 0xxxxxxxxxxx0 xxxxxxxxxxxxx0
+ 0xxxxxxxxxxxx0 0xxxxxxxxxxxxxx0
+ 0xxxxxxxxxxxxx0 0xxxxxxxxxxxxxxx0
+0xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx0
+xxxxxxxxxxxxxxxx0 0xxxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxx 0xxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx
+xxxxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxx
+0xxxxxxxxxxxxxxxxxx0 0xxxxxxxxxxxx0
+ 0xxxxxxxxxxxxxxxxxx xxxxxxxxxxx0
+ 0xxxxxxxxxxxxxxxxx xxxxxxxxxx0
+ 0xxxxxxxxxxxxxxxx xxxxxxxxx0
+ 0xxxxxxxxxxxx0 0xxxxxxx0
+ 0xxxxxxx0 xxxxxx0
+ 0xxx00
+ x00 \ No newline at end of file
diff --git a/src/logo/ascii/s/salix.txt b/src/logo/ascii/s/salix.txt
new file mode 100644
index 0000000..7d3956d
--- /dev/null
+++ b/src/logo/ascii/s/salix.txt
@@ -0,0 +1,18 @@
+ __s_aaaaaaaaauuoXSSSSSSSS:
+ ._xSSSSSSSSSSSSSSSSSSSSSSSSSS:
+ _aSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
+ _xSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
+ <XSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
+ -"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'
+ .ssssssssssssssssssssssssssssssssssss
+ {SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSl
+ oSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS;
+ :XSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS;
+ {SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
+ -"""""""""""""""""""""""""""""""""""'
+ <assssssssssssssssssssssssssssssss>
+ nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}
+ nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}`
+ XSSSSSSSSSSSSSSSSSSSSSSSSSSSS"`
+ SSSSSSSSSSSSSSSSSSSSSSSSS!"`
+-""""""""""""""""""""""` \ No newline at end of file
diff --git a/src/logo/ascii/s/sambabox.txt b/src/logo/ascii/s/sambabox.txt
new file mode 100644
index 0000000..522e1a7
--- /dev/null
+++ b/src/logo/ascii/s/sambabox.txt
@@ -0,0 +1,19 @@
+ #
+ *////#####
+ /////////#########(
+ .((((((///// ,####(#(((((
+ /#######(((* (#(((((((((.
+//((#(#(#, ((##( ,((((((//
+////// #(##########( //////
+////// ((#(#(#(#(##########(/////////
+/////( (((((((#########(##((((((/////
+/(((#( ((((/
+####(# ((###
+#########(((/////////(((((((((, (#(#(
+########( /////////(((((((* #####
+####///, *////((( (((((((
+./////////// .//(((((((((
+ ///////////, *(/////((((*
+ ,/(((((((((##########/.
+ .((((((#######
+ ((##* \ No newline at end of file
diff --git a/src/logo/ascii/s/sasanqua.txt b/src/logo/ascii/s/sasanqua.txt
new file mode 100644
index 0000000..0d5e1dc
--- /dev/null
+++ b/src/logo/ascii/s/sasanqua.txt
@@ -0,0 +1,18 @@
+ __,_
+ _╕⌐≡µ,√* º≡,
+ ñ "' ░
+ ╞) _, ▒ __
+ _,,,_ _Ñ╜^≡µ ≡' 1µ╕º^el "%µ
+ ∩' K Yµ& 1l ╞)
+ ▒ √" ^Ü 1" `1µ
+ Γ ║h _¿▒∞√;, ^≡,
+ K ^u_ ⌐* ╙¥ ╓Ñ
+ ⌠ º≡u,, ║I Å
+ Ü _∩" ║µ_¿╝"
+ Yu_ ▒ ╙º≡_ ║l1µ
+ ║l , Y∞µ___≡ª Γl
+ ╓hⁿ╖I 1l Ñ ╓Ñ
+ Ñ ¥,___≡1l ╓Ñ ¿╕ª
+ Ü ╙L ¿¿∩ª ╓P
+ ª≡,__ *ⁿ┤ⁿÑⁿ^µ √ª
+ ⁿ≡,,__√╝* "ⁿⁿ*" \ No newline at end of file
diff --git a/src/logo/ascii/s/scientific.txt b/src/logo/ascii/s/scientific.txt
new file mode 100644
index 0000000..eab2e45
--- /dev/null
+++ b/src/logo/ascii/s/scientific.txt
@@ -0,0 +1,20 @@
+ =/;;/-
+ +: //
+ /; /;
+ -X H.
+.//;;;:;;-, X= :+ .-;:=;:;#;.
+M- ,=;;;#:, ,:#;;:=, ,@
+:# :#.=/++++/=.$= #=
+ ,#; #/:+/;,,/++:+/ ;+.
+ ,+/. ,;@+, ,#H;, ,/+,
+ ;+;;/= @. $3.H$2#$3#X $1-X :///+;
+ ;+=;;;.@, $2.X$3M$2@$. $1=X.//;=#/.
+ ,;: :@#= =$H: .+#-
+ ,#= #;-///==///-// =#,
+;+ :#-;;;:;;;;-X- +:
+@- .-;;;;M- =M/;;;-. -X
+ :;;::;;-. #- :+ ,-;;-;:==
+ ,X H.
+ ;/ #=
+ // +;
+ '////' \ No newline at end of file
diff --git a/src/logo/ascii/s/secureblue.txt b/src/logo/ascii/s/secureblue.txt
new file mode 100644
index 0000000..859cdf1
--- /dev/null
+++ b/src/logo/ascii/s/secureblue.txt
@@ -0,0 +1,20 @@
+ ==++++++++++
+ :========++++++++++++:
+ ===============+++++++++++
+ ====================++++++++++
+ :=============$3#%@@@%$1=====++++++++-
+ -============$3%@%$1====$3%@@$1========+++++
+ -============$3%@#$1======$3@@$1==========+++-
+.=============$3%@+$1======$3@@$1==============.
+$2--$1=========$3+@@@@@@@@@@@@@@@%+$1==========-
+$2------$1=====$3%@@@@@@@@@@@@@@@@*$1===========
+$2---------$1==$3%@@@@@@@%%@@@@@@@*$1===========
+$2:----------$3%@@@@@#$1===$3+%@@@@@*$1==========-
+ $2----------$3%@@@@@%$1===$3*@@@@@@*$1==========.
+ $2:---------$3%@@@@@@@@@@@@@@@@*$1=========-
+ $2:--------$3%@@@@@@@@@@@@@@@@*$1========-
+ $2:--------$3+##############+$1========:
+ $2-------------------------$1====-
+ $2--------------------------
+ .--------------------.
+ ------------
diff --git a/src/logo/ascii/s/semc.txt b/src/logo/ascii/s/semc.txt
new file mode 100644
index 0000000..8c5a7d1
--- /dev/null
+++ b/src/logo/ascii/s/semc.txt
@@ -0,0 +1,9 @@
+ /\
+ ______/ \
+ / |()| $2E M C
+$1 | (-- | |
+ \ \ | |
+.----) | |__|
+|_______/ / $3"$1 \
+ $3"
+ " \ No newline at end of file
diff --git a/src/logo/ascii/s/septor.txt b/src/logo/ascii/s/septor.txt
new file mode 100644
index 0000000..1a1a513
--- /dev/null
+++ b/src/logo/ascii/s/septor.txt
@@ -0,0 +1,20 @@
+ssssssssssssssssssssssssssssssssssssssss
+ssssssssssssssssssssssssssssssssssssssss
+ssssssssssssssssssssssssssssssssssssssss
+ssssssssssssssssssssssssssssssssssssssss
+ssssssssss$2;okOOOOOOOOOOOOOOko;$1ssssssssss
+sssssssss$2oNWWWWWWWWWWWWWWWWWWNo$1sssssssss
+ssssssss$2:WWWWWWWWWWWWWWWWWWWWWW:$1ssssssss
+ssssssss$2lWWWWWk$1ssssssssss$2lddddd:$1ssssssss
+ssssssss$2cWWWWWNKKKKKKKKKKKKOx:$1ssssssssss
+$3yy$1sssssss$2OWWWWWWWWWWWWWWWWWWWWx$1sssssss$3yy
+yyyyyyyyyy$2:kKNNNNNNNNNNNNWWWWWW:$3yyyyyyyy
+yyyyyyyy$2sccccc;$3yyyyyyyyyy$2kWWWWW:$3yyyyyyyy
+yyyyyyyy$2:WWWWWWNNNNNNNNNNWWWWWW;$3yyyyyyyy
+yyyyyyyy$2.dWWWWWWWWWWWWWWWWWWWNd$3yyyyyyyyy
+yyyyyyyyyy$2sdO0KKKKKKKKKKKK0Od;$3yyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy \ No newline at end of file
diff --git a/src/logo/ascii/s/serene.txt b/src/logo/ascii/s/serene.txt
new file mode 100644
index 0000000..f53fad0
--- /dev/null
+++ b/src/logo/ascii/s/serene.txt
@@ -0,0 +1,20 @@
+ __---''''''---__
+ . .
+ : :
+ - _______----_-
+ s __----''' __----
+ __h_ _-' _-' h
+ '-._''--.._ ; _-' y
+ : ''-._ '-._/ _-' :
+ y ':_ _--'' y
+ m .--'' '-._.;' m
+ m : : m
+ y '.._ '-__ y
+ : '--._ '''----___ :
+ y '--._ ''-- _ y
+ h '--._ : h
+ s __'; vs
+ - __..--'' -
+ :_..--'' :
+ . _ .
+ `''---______---''-`` \ No newline at end of file
diff --git a/src/logo/ascii/s/serpent_os.txt b/src/logo/ascii/s/serpent_os.txt
new file mode 100644
index 0000000..e09d617
--- /dev/null
+++ b/src/logo/ascii/s/serpent_os.txt
@@ -0,0 +1,18 @@
+ ,dKNWWNKOxo;.
+ ;xKXOdoloOWMWX0d:.
+ .dNNd' cNMMMMNKOx;.
+ .dWNo .:oxO000KXKl.
+ .OMNl .....
+ oNMXd,.
+ .lKWMNKkdollccc:::;;;,'..
+ .;ox0KNWWMMMMMMMMWWWWNK0xl,.
+ ..,;:ccloodxO0KNWMMMMNOc.
+ .';lxKWMMWk'
+ ..,:ccc:,. .oXMMMO
+ .:d0NWWWWWMWXOo,. .,cc:;,,'..oWMMW
+ .c0WW0xl:;,;cd0NMNO:'..ldl;. .'.:XMMM
+ xWMKc. .;OWMWX0xl. .dWMMK
+ WMWd. .oKWMMXx, .dNMMXc
+ NMMK:. ..:oxo:oOXMMNOdc:;;cxKWMWO;
+ ;kXWN0xooodkOOko;. .lONMMMMWWMMWKx;.
+ ,okKXXXKOxc'. .:kKWMMWXOl'
diff --git a/src/logo/ascii/s/sharklinux.txt b/src/logo/ascii/s/sharklinux.txt
new file mode 100644
index 0000000..b504e19
--- /dev/null
+++ b/src/logo/ascii/s/sharklinux.txt
@@ -0,0 +1,15 @@
+ `:shd/
+ `:yNMMMMs
+ `-smMMMMMMN.
+ .+dNMMMMMMMMs
+ .smNNMMMMMMMMm`
+ .sNNNNNNNMMMMMM/
+ `omNNNNNNNMMMMMMm
+ /dNNNNNNNNMMMMMMM+
+ .yNNNNNNNNNMMMMMMMN`
+ +mNNNNNNNNNMMMMMMMMh
+ .hNNNNNNNNNNMMMMMMMMMs
+ +mMNNNNNNNNMMMMMMMMMMMs
+ .hNMMNNNNMMMMMMMMMMMMMMMd
+ .oNNNNNNNNNNMMMMMMMMMMMMMMMo
+`:+syyssoo++++ooooossssssssssso: \ No newline at end of file
diff --git a/src/logo/ascii/s/shastraos.txt b/src/logo/ascii/s/shastraos.txt
new file mode 100644
index 0000000..5e705ab
--- /dev/null
+++ b/src/logo/ascii/s/shastraos.txt
@@ -0,0 +1,19 @@
+ ..,;;,'.
+ ':oo. ;o:
+ :o, ol
+ .oo ..';co:
+ ooo',;:looo;
+ .;lddl
+ cx .xl .c:'
+ dd xx xx ,d;
+.xd cx. xx dd.
+ cx: .xo xx ,x:
+ 'xl xx cx' .xl
+ xd, xx .xd dx.
+ .xo:xx xx .xx
+ 'c xx:.'lx:
+ ..,;cxxxo
+ .';:codxxl lxo
+cd. 'xo
+:o, 'ld
+ .oc'...';lo \ No newline at end of file
diff --git a/src/logo/ascii/s/shebang.txt b/src/logo/ascii/s/shebang.txt
new file mode 100644
index 0000000..22b98e3
--- /dev/null
+++ b/src/logo/ascii/s/shebang.txt
@@ -0,0 +1,20 @@
+ '
+ '#'
+ '#!#'
+ '#!#!#'
+ '#!#!#!#'
+ '#!#!#!#!#'
+ '#!#!#!#!#!#'
+ '#!#!#!#!#!#!#'
+ #!#!#!#!#!#!'
+ '#! #!#!#!#!#'
+ '#!#!#!#! #!#!#!'
+ '#!#!#!#!#!#!#! #!#!'
+ '#!#!#!#!#!#!#!#!#!#! #'
+ '#!#!#!#!#!#!#!#!#!#!#!#!
+ '#!#!#!#!#!#!#!#!#!#! #!'
+ '#!#!#!#!#!#!#!#! #!#!#!'
+ '#!#!#!#!#!#! #!#!#!#!#!'
+ '#!#!#!#! #!#!#!#!#'
+ '#!#! #!#!#'
+'# #!'
diff --git a/src/logo/ascii/s/siduction.txt b/src/logo/ascii/s/siduction.txt
new file mode 100644
index 0000000..55b628b
--- /dev/null
+++ b/src/logo/ascii/s/siduction.txt
@@ -0,0 +1,20 @@
+ _aass,
+ jQh: =$w
+ QWmwawQW
+ )$QQQQ@( ..
+ _a_a. ~??^ syDY?Sa,
+ _mW>-<$c jWmi imm.
+ ]QQwayQE 4QQmgwmQQ`
+ ?WWQWP' -9QQQQQ@'._aas,
+ _a%is. .adYYs,. -"?!` aQB*~^3$c
+_Qh;.nm .QWc. {QL ]QQp;..vmQ/
+"QQmmQ@ -QQQggmQP ]QQWmggmQQ(
+ -???" "$WQQQY` __, ?QQQQQQW!
+ _yZ!?q, - .yWY!!Sw, "???^
+ .QQa_=qQ mQm>..vmm
+ $QQWQQP $QQQgmQQ@
+ "???" _aa, -9WWQQWY`
+ _mB>~)$a -~~
+ mQms_vmQ.
+ ]WQQQQQP
+ -?T??" \ No newline at end of file
diff --git a/src/logo/ascii/s/skiffos.txt b/src/logo/ascii/s/skiffos.txt
new file mode 100644
index 0000000..e98a647
--- /dev/null
+++ b/src/logo/ascii/s/skiffos.txt
@@ -0,0 +1,9 @@
+$2 ,@@@@@@@@@@@w,_
+ $2====~~~,,.$2A@@@@@@@@@@@@@@@@@W,_
+ $1`||||||||||||||L{$2"@$@@@@@@@@B"
+ $1`|||||||||||||||||||||L{$2"$D
+ $2@@@@@@@@@@@@@@@@@@@@@$1_||||}==,
+ $2*@@@@@@@@@@@@@@@@@@@@@@@@@p$1||||==,
+ $1`'||LLL{{""$2@$B@@@@@@@@@@@@@@@p$1||
+ $1`~=|||||||||||L"$2$@@@@@@@@@@@
+ $1````'"""""""$2'"""""""" \ No newline at end of file
diff --git a/src/logo/ascii/s/slackel.txt b/src/logo/ascii/s/slackel.txt
new file mode 100644
index 0000000..2c85dd7
--- /dev/null
+++ b/src/logo/ascii/s/slackel.txt
@@ -0,0 +1,22 @@
+ _aawmmmmmwwaaaaas,,,_.
+ .ammmmm###mmmmmmm###BQmm##mws
+ .am###mmBmBmBmBmBmBmmmmm#mmmm#2
+ <q###mmBmBmBmBmBmBmBmBmBmBmmBmZ`
+ um#mmmBmBm##U##mmBmBmBmWmmBmWm#(
+ .wm#mmBBmm#Y~ ~XmBmBmWmmmmmBm#e
+ .dm#mmWmm#Z' ]#mBmBmmBZ!""""`
+ .dm#mmBmm#2` ]mmmBmBm#2
+ jm#mmWmm#2` dmmBmBmB#(
+ )m##mBmmWZ` )##mBmBmmZ
+ :dmmmBmBm#' .d#mBmBmWZ(
+ j#mmBmBmme jmmmBmBm#2
+_m#mBmWmmm' )mmmBmBmmZ`
+]##mBmmm#2 <m#mBmBmB#^
+dmmmBmWm#C <m#mBmBmB#(
+ZmmBmBmmmh. _jm#mmBmBm#(
+XBmBmBmBmm6s_aum##mmBmBm&^
+3$mBmBmBmmm#mmmmmmBmBm#2'
++ZmBmBmWmBmBmWmmBmBm##!
+ )ZmBmBmmmBmBmmBmB##!`
+ -4U#mBmWmBmBm##2"
+ -!!XU##US*?"- \ No newline at end of file
diff --git a/src/logo/ascii/s/slackware.txt b/src/logo/ascii/s/slackware.txt
new file mode 100644
index 0000000..df15ecd
--- /dev/null
+++ b/src/logo/ascii/s/slackware.txt
@@ -0,0 +1,21 @@
+ :::::::::
+ :::::::::::::::::::
+ :::::::::::::::::::::::::
+ ::::::::$2cllcccccllllllll$1::::::
+ :::::::::$2lc dc$1:::::::
+ ::::::::$2cl clllccllll oc$1:::::::::
+ :::::::::$2o lc$1::::::::$2co oc$1::::::::::
+ ::::::::::$2o cccclc$1:::::$2clcc$1::::::::::::
+ :::::::::::$2lc cclccclc$1:::::::::::::
+::::::::::::::$2lcclcc lc$1::::::::::::
+::::::::::$2cclcc$1:::::$2lccclc oc$1:::::::::::
+::::::::::$2o l$1::::::::::$2l lc$1:::::::::::
+ :::::$2cll$1:$2o clcllcccll o$1:::::::::::
+ :::::$2occ$1:$2o clc$1:::::::::::
+ ::::$2ocl$1:$2ccslclccclclccclclc$1:::::::::::::
+ :::$2oclcccccccccccccllllllllllllll$1:::::
+ ::$2lcc1lcccccccccccccccccccccccco$1::::
+ ::::::::::::::::::::::::::::::::
+ ::::::::::::::::::::::::::::
+ ::::::::::::::::::::::
+ :::::::::::: \ No newline at end of file
diff --git a/src/logo/ascii/s/slackware_small.txt b/src/logo/ascii/s/slackware_small.txt
new file mode 100644
index 0000000..c04b083
--- /dev/null
+++ b/src/logo/ascii/s/slackware_small.txt
@@ -0,0 +1,7 @@
+ ________
+ / ______|
+ | |______
+ \______ \
+ ______| |
+| |________/
+|____________ \ No newline at end of file
diff --git a/src/logo/ascii/s/sleeperos.txt b/src/logo/ascii/s/sleeperos.txt
new file mode 100644
index 0000000..4fdf579
--- /dev/null
+++ b/src/logo/ascii/s/sleeperos.txt
@@ -0,0 +1,16 @@
+ ______________
+/P$2aooooooooooooa$19\
+H$2EEEEEEEEEEEEEEEE$1H
+H$2EEEEEEEEEEEEEEEE$1H
+\baaaaaaap;$2ZZZZ$1,/*
+ x%"$2ZZZZ$1,%^
+ >7'$2ZZZZ$1,%"
+ /7'$2ZZZZ$1/>'
+ ,//$2ZZZZ$1,//
+ ,%<$2ZZZZ$1,%<
+ >%^$2ZZZZ$1x%^_____
+4>'$2ZZZZ$1---------9b
+H$2EEEEEEEEEEEEEEEE$1H
+H$2EEEEEEEEEEEEEEEE$1H
+Yq$2^************^$1pY
+ ``````````````
diff --git a/src/logo/ascii/s/sleeperos_small.txt b/src/logo/ascii/s/sleeperos_small.txt
new file mode 100644
index 0000000..13c18f3
--- /dev/null
+++ b/src/logo/ascii/s/sleeperos_small.txt
@@ -0,0 +1,7 @@
+ _____
+[$2BBBBB$1]
+`^^7$2&$1/`
+ ,/$2&$1/`
+,/$2&$1Z__
+[$2BBBBB$1]
+`^^^^^`
diff --git a/src/logo/ascii/s/slitaz.txt b/src/logo/ascii/s/slitaz.txt
new file mode 100644
index 0000000..020e4a9
--- /dev/null
+++ b/src/logo/ascii/s/slitaz.txt
@@ -0,0 +1,17 @@
+ @ @( @
+ @@ @@ @ @/
+ @@ @@ @@ @@
+ @@ %@@ @@ @@
+ @@ %@@@ @@@@@. @@@@ @@
+ @@@ @@@@ @@@@@@@ &@@@ @@@
+ @@@@@@@ %@@@@@@@@@@@@ &@@@% @@@@@@@/
+ ,@@@@@@@@@@@@@@@@@@@@@@@@@
+ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/
+@@@@@@. @@@@@@@@@@@@@@@@@@@@@ /@@@@@@
+@@ @@@@@ @@@@@@@@@@@@, @@@@@ @@@
+@@ @@@@. @@@@@@@@@@@@@% #@@@@ @@.
+@@ ,@@ @@@@@@@@@@@@@ @@@ @@
+@ @@. @@@@@@@@@@@@@ @@@ *@
+@ @@ @@@@@@@@@@@@ @@ @
+ @ @@@@@@@@@. #@
+ @ ,@@@@@ @ \ No newline at end of file
diff --git a/src/logo/ascii/s/smartos.txt b/src/logo/ascii/s/smartos.txt
new file mode 100644
index 0000000..e385245
--- /dev/null
+++ b/src/logo/ascii/s/smartos.txt
@@ -0,0 +1,17 @@
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyys oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyy syyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy yyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy \ No newline at end of file
diff --git a/src/logo/ascii/s/snigdhaos.txt b/src/logo/ascii/s/snigdhaos.txt
new file mode 100644
index 0000000..94f2201
--- /dev/null
+++ b/src/logo/ascii/s/snigdhaos.txt
@@ -0,0 +1,20 @@
+ WK0OO0X
+ WKOxk0XWNXkxN
+ WXOxk0N kk
+ WKkxOXW NxO
+ NX0ddk00OOOOkkkkkkkkk0
+ WKkxO0dOXXNNNNWWW WXKK
+NxkN kxW XOxxdN
+KoX WkxX WkxK Xd0
+WxkW XkkX kkW NkxX
+ W0dK XxOWkkW XxkN
+ NkxX XoKWkxK Kd0
+ XkkN WOdN NkxX NxO
+ OxNKxOW XdO kk
+ kdk0W XoK WXkxN
+ WNNXKXXXXKKKK000OOdxkk0X
+ KdOO000KKKKXXXXX0xx0W
+ XoK N0kx0N
+ Nd0 NKOxOKW
+ Nkk0K0kxOKN
+ WXXXN
diff --git a/src/logo/ascii/s/soda.txt b/src/logo/ascii/s/soda.txt
new file mode 100644
index 0000000..c947682
--- /dev/null
+++ b/src/logo/ascii/s/soda.txt
@@ -0,0 +1,15 @@
+ $2@&&&&$1 *'*,
+ $2@@@@@@@&&&$1 ** '*,
+ $2@@@@@@@@@@@&&&&
+ @&@@@@@@@@@@@@@@@&&&
+ $1******$2@@@@@@@@@@@@@@@&&&&
+ $1************$2@@@@@@@@@@@@@@
+ $1*****************$2@@@@@@@@@
+ $1**********************$2@@@
+ @@@@@$1********************
+ $2@@@@@@@@@$1***************
+$2@@@@@@@@@@@@@@@$1*********
+$2@@@@@@@@@@@@@@@@@@$1****
+ $2@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@
+ @@@@@@@ \ No newline at end of file
diff --git a/src/logo/ascii/s/solaris.txt b/src/logo/ascii/s/solaris.txt
new file mode 100644
index 0000000..1af1483
--- /dev/null
+++ b/src/logo/ascii/s/solaris.txt
@@ -0,0 +1,8 @@
+ `- `
+ `-- `+- .:
+ .+: `++: -/+- .
+ `.::` -++/``:::`./+/ `.-/.
+ `++/-`.` ` /++:`
+ `` ./:` .: `..`.-
+``./+/:- -+++:-
+ -/+` :. \ No newline at end of file
diff --git a/src/logo/ascii/s/solaris_small.txt b/src/logo/ascii/s/solaris_small.txt
new file mode 100644
index 0000000..8769217
--- /dev/null
+++ b/src/logo/ascii/s/solaris_small.txt
@@ -0,0 +1,5 @@
+ . .; .
+ . :; :: ;: .
+ .;. .. .. .;.
+.. .. .. ..
+ .;, ,;. \ No newline at end of file
diff --git a/src/logo/ascii/s/solus.txt b/src/logo/ascii/s/solus.txt
new file mode 100644
index 0000000..e18b5e0
--- /dev/null
+++ b/src/logo/ascii/s/solus.txt
@@ -0,0 +1,20 @@
+$2 -```````````
+ `-+/------------.`
+ .---:mNo---------------.
+ .-----yMMMy:---------------.
+ `------oMMMMMm/----------------`
+ .------/MMMMMMMN+----------------.
+ .------/NMMMMMMMMm-+/--------------.
+`------/NMMMMMMMMMN-:mh/-------------`
+.-----/NMMMMMMMMMMM:-+MMd//oso/:-----.
+-----/NMMMMMMMMMMMM+--mMMMh::smMmyo:--
+----+NMMMMMMMMMMMMMo--yMMMMNo-:yMMMMd/.
+.--oMMMMMMMMMMMMMMMy--yMMMMMMh:-yMMMy-`
+`-sMMMMMMMMMMMMMMMMh--dMMMMMMMd:/Ny+y.
+`-/+osyhhdmmNNMMMMMm-/MMMMMMMmh+/ohm+
+ .------------:://+-/++++++$1oshddys:
+ -hhhhyyyyyyyyyyyhhhhddddhysssso-
+ `:ossssssyysssssssssssssssso:`
+ `:+ssssssssssssssssssss+-
+ `-/+ssssssssssso+/-`
+ `.-----..` \ No newline at end of file
diff --git a/src/logo/ascii/s/source_mage.txt b/src/logo/ascii/s/source_mage.txt
new file mode 100644
index 0000000..7816936
--- /dev/null
+++ b/src/logo/ascii/s/source_mage.txt
@@ -0,0 +1,21 @@
+ :ymNMNho.
+.+sdmNMMMMMMMMMMy`
+.-::/yMMMMMMMMMMMm-
+ sMMMMMMMMMMMm/
+ /NMMMMMMMMMMMMMm:
+ .MMMMMMMMMMMMMMMMM:
+ `MMMMMMMMMMMMMMMMMN.
+ NMMMMMMMMMMMMMMMMMd
+ mMMMMMMMMMMMMMMMMMMo
+ hhMMMMMMMMMMMMMMMMMM.
+ .`/MMMMMMMMMMMMMMMMMs
+ :mMMMMMMMMMMMMMMMN`
+ `sMMMMMMMMMMMMMMM+
+ /NMMMMMMMMMMMMMN`
+ oMMMMMMMMMMMMM+
+ ./sd.-hMMMMMMMMmmN`
+ ./+oyyyh- `MMMMMMMMMmNh
+ sMMMMMMMMMmmo
+ `NMMMMMMMMMd:
+ -dMMMMMMMMMo
+ -shmNMMms. \ No newline at end of file
diff --git a/src/logo/ascii/s/sparky.txt b/src/logo/ascii/s/sparky.txt
new file mode 100644
index 0000000..6ee3cbf
--- /dev/null
+++ b/src/logo/ascii/s/sparky.txt
@@ -0,0 +1,20 @@
+ . `-:-`
+ .o` .-///-`
+ `oo` .:/++:.
+ os+` -/+++:` ``.........```
+ /ys+`./+++/-.-::::::----......``
+ `syyo`++o+--::::-::/+++/-``
+ -yyy+.+o+`:/:-:sdmmmmmmmmdy+-`
+::-` :yyy/-oo.-+/`ymho++++++oyhdmdy/`
+`/yy+-`.syyo`+o..o--h..osyhhddhs+//osyy/`
+ -ydhs+-oyy/.+o.-: ` ` :/::+ydhy+```-os-
+ .sdddy::syo--/:. `.:dy+-ohhho ./:
+ :yddds/:+oo+//:-`- /+ +hy+.shhy: ``
+ `:ydmmdysooooooo-.ss`/yss--oyyo
+ `./ossyyyyo+:-/oo:.osso- .oys
+ ``..-------::////.-oooo/ :so
+ `...----::::::::--.`/oooo: .o:
+ ``````` ++o+:` `:`
+ ./+/-` `
+ `-:-.
+ `` \ No newline at end of file
diff --git a/src/logo/ascii/s/spoinkos.txt b/src/logo/ascii/s/spoinkos.txt
new file mode 100644
index 0000000..1d27800
--- /dev/null
+++ b/src/logo/ascii/s/spoinkos.txt
@@ -0,0 +1,5 @@
+ @..@
+ (----)
+ ( >__< )
+ ^^ ~~ ^^
+| Spoink! | \ No newline at end of file
diff --git a/src/logo/ascii/s/star.txt b/src/logo/ascii/s/star.txt
new file mode 100644
index 0000000..10ba883
--- /dev/null
+++ b/src/logo/ascii/s/star.txt
@@ -0,0 +1,19 @@
+ ./
+ `yy-
+ `y.`y`
+ `` s- .y `
+ +h//:..` +/ /o ``..:/so
+ /o``.-::/:/+ o/://::-.`+o`
+ :s` `. .` `s/
+ .y. .s-
+ `y- :s`
+ .-//. /+:.
+ .:/:. .:/:.
+-+o:. .:+:.
+-///++///:::` .-::::///+so-
+ ``..o/ d-....```
+ s. `/. d
+ h .+o-+o- h.
+ h -o/` `/o: s:
+ -s/o:` `:o/+/
+ /s- -yo \ No newline at end of file
diff --git a/src/logo/ascii/s/steamdeck.txt b/src/logo/ascii/s/steamdeck.txt
new file mode 100644
index 0000000..9f4b066
--- /dev/null
+++ b/src/logo/ascii/s/steamdeck.txt
@@ -0,0 +1,24 @@
+$2 .xXK0kdc'..
+ .OMMMMWNK0Odc'.
+ .OMMMMMMMMMMWNOl'.
+ .OMMMMMMMMMMMMMWXx;.
+ .:ddk0XWMMMMMMMMMMNx'
+ ..;oxONMMMMMMMWKc.
+$1 ..,;::::;,'.$2 .;xXMMMMMMMNo.
+$1 .':looooooooool:,..$2 .;OWMMMMMMNl.
+$1 .:oooooooooooooooooc'$2 .xWMMMMMMK:
+$1 'coooooooooooooooooool,$2 'OMMMMMMWx.
+$1.coooooooooooooooooooool.$2 cNMMMMMM0,
+$1'loooooooooooooooooooooo,$2 ,KMMMMMMX:
+$1'loooooooooooooooooooooo,$2 ,KMMMMMMX:
+$1.:oooooooooooooooooooooc.$2 lNMMMMMM0,
+$1 .coooooooooooooooooool'$2 ,0MMMMMMWd.
+$1 .:looooooooooooooolc.$2 'OWMMMMMMK;
+$1 ..;cloooooooooc;'..$2 .c0WMMMMMMXc.
+$1 ..',;;;;,'..$2 ..cONMMMMMMMXc.
+ ..,cxOKWMMMMMMMW0;.
+ .cxk0KNWMMMMMMMMMWXo.
+ .OMMMMMMMMMMMMMWKo'
+ .OMMMMMMMMMMWKx:.
+ .OMMMWNX0Oxl;.
+ .o0Oxoc,..
diff --git a/src/logo/ascii/s/steamdeck_small.txt b/src/logo/ascii/s/steamdeck_small.txt
new file mode 100644
index 0000000..287b637
--- /dev/null
+++ b/src/logo/ascii/s/steamdeck_small.txt
@@ -0,0 +1,5 @@
+ $2__
+ \
+$1## $2\
+$1## $2/
+ __/ \ No newline at end of file
diff --git a/src/logo/ascii/s/steamos.txt b/src/logo/ascii/s/steamos.txt
new file mode 100644
index 0000000..c8eaa46
--- /dev/null
+++ b/src/logo/ascii/s/steamos.txt
@@ -0,0 +1,18 @@
+$1 .,,,,.
+ .,'onNMMMMMNNnn',.
+ .'oNMANKMMMMMMMMMMMNNn'.
+ .'ANMMMMMMMXKNNWWWPFFWNNMNn.
+ ;NNMMMMMMMMMMNWW'' ,.., 'WMMM,
+ ;NMMMMV+##+VNWWW' .+;'':+, 'WMW,
+,VNNWP+$2######$1+WW, $2+: $1:+, +MMM,
+'$2+#############, +. ,+' $1+NMMM
+$2 '*#########*' '*,,*' $1.+NMMMM.
+$2 `'*###*' ,.,;###$1+WNM,
+$2 .,;;, .;##########$1+W
+$2,',. '; ,+##############'
+ '###+. :,. .,; ,###############'
+ '####.. `'' .,###############'
+ '#####+++################'
+ '*##################*'
+ ''*##########*''
+ '''''' \ No newline at end of file
diff --git a/src/logo/ascii/s/stock_linux.txt b/src/logo/ascii/s/stock_linux.txt
new file mode 100644
index 0000000..7fc4ca1
--- /dev/null
+++ b/src/logo/ascii/s/stock_linux.txt
@@ -0,0 +1,19 @@
+ #G5J5G#
+ &BPYJJJJJJJYPB&
+ &#G5JJJJJJY5YJJJJJJ5G#&
+ #G5YJJJJJY5G#& &#G5YJJJJJY5G#
+BPYJJJJJJJ5B& &BPYJJJJJJYPB
+JJJJJJJJJJY5G#& &BPYJJJJJ
+JJJJJJJJJJJJJJY5G# &JJJJJ
+PYJJJJJJJJJJJJJJJJYPB& GYJJJ
+ &BPYJJJJJJJJJJJJJJJJ5PB& &BP
+ #G5YJJJJJJJJJJJJJJJY5G#
+PB& &BP5JJJJJJJJJJJJJJJJYPB&
+JJJYG &BPYJJJJJJJJJJJJJJJJYP
+JJJJJ& #G5YJJJJJJJJJJJJJJ
+JJJJJYPB& &#G5YJJJJJJJJJJ
+BPYJJJJJJYPB& &B5JJJJJJJYPB
+ #G5YJJJJJY5G#& &#G5YJJJJJY5G#
+ &#G5JJJJJJY5YJJJJJJ5G#&
+ &BPYJJJJJJJYPB&
+ #G5J5G# \ No newline at end of file
diff --git a/src/logo/ascii/s/sulin.txt b/src/logo/ascii/s/sulin.txt
new file mode 100644
index 0000000..484ea55
--- /dev/null
+++ b/src/logo/ascii/s/sulin.txt
@@ -0,0 +1,20 @@
+ /\ /\
+ ( \\ // )
+ \ \\ // /
+ \_\\||||//_/
+ \/ _ _ \
+ \/|(O)(O)|
+ \/ | |
+ ___________________\/ \ /
+ // // |____|
+ // || / \
+ //| \| \ 0 0 /
+ // \ ) V / \____/
+// \ / ( /
+ \ /_________| |_/
+ / /\ / | ||
+ / / / / \ ||
+ | | | | | ||
+ | | | | | ||
+ |_| |_| |_||
+ \_\ \_\ \_\ \ No newline at end of file
diff --git a/src/logo/ascii/s/summitos.txt b/src/logo/ascii/s/summitos.txt
new file mode 100644
index 0000000..ff875cb
--- /dev/null
+++ b/src/logo/ascii/s/summitos.txt
@@ -0,0 +1,22 @@
+ :~^
+ ~5PPJ
+ :5555P7
+ .Y55555P~
+ ?P5555555^
+ 7P55555555Y.
+ ~5555555555PJ$2 7YJ^
+ $1^555555555555P7$2 7GGGP^
+ $1.Y5555555555555P!$2 ~PPPPP5.
+ $1JP555555555555555^$2 ^PPPPPPGY
+ $17P5555555555555555Y$2^5PPPPPPPG?
+ $1~P55555555555555555$2^PPPPPPPPPPP!
+ $1^555555555555555555$2^PPPPPPPPPPPPP^
+ $1.Y555555555555P$3G$1P55$2^PPPPPPPPPPPPPP5:
+ $1JP55555555555P$3GGG$1P$2^PPPPPPPPPPPPPPPGY
+ $17P555555555555$3GGGGG$2PPPPPPPPPPPPPPPPPG?
+ $1!P555555555555$3GGGGGGG$2PPPPPPPPPPPPPPPPPG!
+ $1^5555555555555$3PGGGGGGGG$2PPPPPPPPPPPPPPPPPP^
+ $1:Y555555555555$3PGGGGGGGGGG$2PPPPPPPPPPPPPPPPP5:
+$1.JP55555555555$3PGGGGGGGGGGGG$2PPPPPPPPPPPPPPPPGY.
+$1?PPPPPPPPPPPP$3GGBBBBBBBBBBBBB$2GGGGGGGGGGGGGGGGGJ
+$1^~~~~~~~~~~~$3!!!!!!!!!!!!!!!!!$2!!!!!!!!!!!!!!!!~
diff --git a/src/logo/ascii/s/suse.txt b/src/logo/ascii/s/suse.txt
new file mode 100644
index 0000000..c45aa67
--- /dev/null
+++ b/src/logo/ascii/s/suse.txt
@@ -0,0 +1,11 @@
+ kKKKKKd' Okxol:;,.
+kKKKKKKK0kOKKKKKKKKKKOxo:,
+KKKKKKKKKKKKKKKKKKK0P^,,,^dx:
+KKKKKKKKKKKKKKKKKKk'.oOPPb.'0k.
+KKKKKKKKKKKKKKKKKK: kKx..dd lKd
+KKKKKKKKKKKKOx0KKKd ^0KKKO' kKKc
+KKKKKKKKKKKKK;.;oOKx,..^..;kKKK0.
+KKKKKKKKKKKKK0o;...^cdxxOK0O/^^'
+KKKKKKKKKKKKKKKKK0x;,,......,;od
+kKKKKKKKKKKKKKKKKKKKKKKK00KKOo^
+ kKKKKKOxddxkOO00000Okxoc;'' \ No newline at end of file
diff --git a/src/logo/ascii/s/swagarch.txt b/src/logo/ascii/s/swagarch.txt
new file mode 100644
index 0000000..ad8d209
--- /dev/null
+++ b/src/logo/ascii/s/swagarch.txt
@@ -0,0 +1,15 @@
+$2 .;ldkOKXXNNNNXXK0Oxoc,.
+ ,lkXMMNK0OkkxkkOKWMMMMMMMMMM;
+ 'K0xo ..,;:c:. `'lKMMMMM0
+ .lONMMMMMM' `lNMk'
+$2 ;WMMMMMMMMMO. $1....::...
+$2 OMMMMMMMMMMMMKl. $1.,;;;;;ccccccc,
+$2 `0MMMMMMMMMMMMMM0: $1.. .ccccccc.
+$2 'kWMMMMMMMMMMMMMNo. $1.,:' .ccccccc.
+$2 `c0MMMMMMMMMMMMMN,$1,:c; :cccccc:
+$2 ckl. `lXMMMMMMMMMX$1occcc:.. ;ccccccc.
+$2dMMMMXd, `OMMMMMMWk$1ccc;:''` ,ccccccc:
+$2XMMMMMMMWKkxxOWMMMMMNo$1ccc; .cccccccc.
+$2 `':ldxO0KXXXXXK0Okdo$1cccc. :cccccccc.
+ :ccc:' `cccccccc:,
+ '' \ No newline at end of file
diff --git a/src/logo/ascii/t.inc b/src/logo/ascii/t.inc
new file mode 100644
index 0000000..53947ea
--- /dev/null
+++ b/src/logo/ascii/t.inc
@@ -0,0 +1,152 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo T[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_T2
+ // T2
+ {
+ .names = { "T2", "T2 SDE", "T2/Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_T2,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_T2_SMALL
+ // T2Small
+ {
+ .names = { "T2_small", "T2 SDE_small", "T2/Linux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_T2_SMALL,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TAILS
+ // Tails
+ {
+ .names = { "Tails" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TAILS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TATRA
+ // Tatra
+ {
+ .names = { "Tatra" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TATRA,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TEARCH
+ // TeArch
+ {
+ .names = { "TeArch" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TEARCH,
+ .colors = {
+ FF_COLOR_FG_256 "39",
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TEMPLEOS
+ // TempleOS
+ {
+ .names = { "TempleOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TEMPLEOS,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TILEOS
+ // TileOS
+ {
+ .names = { "TileOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TILEOS,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TORIZONCORE
+ // Torizon OS
+ {
+ .names = { "Torizon OS", "TorizonCore" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TORIZONCORE,
+ .colors = {
+ FF_COLOR_FG_LIGHT_WHITE,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TRISQUEL
+ // Trisquel
+ {
+ .names = { "Trisquel" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TRISQUEL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TRUENAS_SCALE
+ // TrueNAS Scale
+ {
+ .names = { "TrueNAS-Scale" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TRUENAS_SCALE,
+ .colors = {
+ FF_COLOR_FG_256 "39",
+ FF_COLOR_FG_256 "32",
+ FF_COLOR_FG_256 "248",
+ },
+ .colorKeys = FF_COLOR_FG_256 "248",
+ .colorTitle = FF_COLOR_FG_256 "32",
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TUXEDO_OS
+ // TuxedoOS
+ {
+ .names = { "Tuxedo OS", "tuxedo" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TUXEDO_OS,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_TWISTER
+ // Twister
+ {
+ .names = { "Twister" },
+ .lines = FASTFETCH_DATATEXT_LOGO_TWISTER,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/t/t2.txt b/src/logo/ascii/t/t2.txt
new file mode 100644
index 0000000..c174d0e
--- /dev/null
+++ b/src/logo/ascii/t/t2.txt
@@ -0,0 +1,14 @@
+ $3//$2
+$1TTTTTTTTTTTTTTT$2 $3//$2
+$1TTTTTTTTTTTTTTT$2 $3//$2 $1..::$2 $4:-:.$2
+ $4ttt$2 $3//$2 $1.::.$2 $4.:-:$2
+ $4ttt$2 $3//$2 $1.:.$2 $4--$2
+ $4ttt$2 $3//$2 $4:-:$2
+ $4ttt$2 $3//$2 $4.:-:$2
+ $4ttt$2 $3//$2 $4:-:.$2
+ $4ttt$2 $3//$2 $4.--.$2
+ $4ttt$2 $3//$2 $4.:-:$2
+ $4ttt$2 $3//$2 $4...$2
+ $4ttt$2 $3//$2
+ $3//$2 $3.:::::::::::.$2
+ $3//$2
diff --git a/src/logo/ascii/t/t2_small.txt b/src/logo/ascii/t/t2_small.txt
new file mode 100644
index 0000000..83981dc
--- /dev/null
+++ b/src/logo/ascii/t/t2_small.txt
@@ -0,0 +1,6 @@
+$2TTTTTTTTTT
+ tt $1222$2
+ tt $12 2$2
+ tt $12$2
+ tt $12$2
+ tt $122222$2 \ No newline at end of file
diff --git a/src/logo/ascii/t/tails.txt b/src/logo/ascii/t/tails.txt
new file mode 100644
index 0000000..85c6d42
--- /dev/null
+++ b/src/logo/ascii/t/tails.txt
@@ -0,0 +1,19 @@
+ ``
+ ./yhNh
+syy/Nshh `:o/
+N:dsNshh █ `ohNMMd
+N-/+Nshh `yMMMMd
+N-yhMshh yMMMMd
+N-s:hshh █ yMMMMd so//.
+N-oyNsyh yMMMMd d Mms.
+N:hohhhd:. yMMMMd syMMM+
+Nsyh+-..+y+- yMMMMd :mMM+
++hy- -ss/`yMMMM `+d+
+ :sy/. ./yNMMMMm ``
+ .+ys- `:+hNMMMMMMy/`
+ `hNmmMMMMMMMMMMMMdo.
+ dMMMMMMMMMMMMMMMMMNh:
+ +hMMMMMMMMMMMMMMMMMmy.
+ -oNMMMMMMMMMMmy+.`
+ `:yNMMMds/.`
+ .//` \ No newline at end of file
diff --git a/src/logo/ascii/t/tatra.txt b/src/logo/ascii/t/tatra.txt
new file mode 100644
index 0000000..d0b617e
--- /dev/null
+++ b/src/logo/ascii/t/tatra.txt
@@ -0,0 +1,15 @@
+ . .:. . .:.
+ .^^.!.:::. .^!?J?^
+ .:^.^!!!~:~^. .7??77!~~^.
+ .~^.!??77?!.^~: ..:^^7JJJ7~~^.
+ .^~.^7???7~.~~. .7??????????!
+ .:^:^^~^^:!^ ^: .......^!:...
+ .!7~.::.!.::. ~BG~ :^ ^~:
+ :!!~ ~. ?BBBB! ^?J!. .!~.
+ :!. .JBY. .Y#BBBY?~!???J7. :^^.
+ .. :5#B#P~P#BBP?7?55J?J7:
+ ^P#BBBBBBBB5?7J5555J!.....
+ !BBBBBBGBBGJ77::Y555J?77777^
+ ?BBBBG5JJ5PJ?!: .?Y??????77?~.
+ .YBGPYJ??????Y?^^^^~7?????????7?!.
+ .^^:..::::::::.....:::::::::::..:. \ No newline at end of file
diff --git a/src/logo/ascii/t/tearch.txt b/src/logo/ascii/t/tearch.txt
new file mode 100644
index 0000000..76c2861
--- /dev/null
+++ b/src/logo/ascii/t/tearch.txt
@@ -0,0 +1,21 @@
+ @@@@@@@@@@@@@@
+ @@@@@@@@@ @@@@@@
+ @@@@@ @@@@@
+ @@ @@
+ @% @@
+ @ @
+ @@@@@@@@@@@@@@@@@@@@@@@@ @@
+ .@@@@@@@@@@@@/@@@@@@@@@@@@
+ @@@@@@@@@@@@///@@@@@@@@@@@@
+ @@@@@@@@@@@@@((((@@@@@@@@@@@@
+ @@@@@@@@@@@#(((((((#@@@@@@@@@@@
+ @@@@@@@@@@@#//////////@@@@@@@@@@&
+ @@@@@@@@@@////@@@@@////@@@@@@@@@@
+ @@@@@@@@//////@@@@@/////@@@@@@@@@
+ @@@@@@@//@@@@@@@@@@@@@@@//@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@ .@@@@@@@@@@@@@@@@@@@@@@@@@ @
+ @@@@@@ @@@. @@@@@@@
+ @@@@@@@&@@@@@@@# #@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file
diff --git a/src/logo/ascii/t/templeos.txt b/src/logo/ascii/t/templeos.txt
new file mode 100644
index 0000000..a9caa95
--- /dev/null
+++ b/src/logo/ascii/t/templeos.txt
@@ -0,0 +1,20 @@
+ $1aooooo$2,
+ $1aooooo$2``
+ $1aooooo$2``
+ $3(((((( $1aooooo$2``$3((((((
+ $1oooo$3@@ @C@*;,./k@@ @@ @$1oooo$2
+ $1oooooo$3@@ @@@@@@@@ @@k$1oooooo$2``
+ $1oooooooo$3\@ @/@@ @@$1ooooooooo$2``
+ `````````$3'*@*/'$2````````````
+ $3@@@( $1aooooo$2`` $3@@@@
+ @@ @ $1aooooo$2`` $3@ @@
+ @@@ $1aooooo$2`` $3@@@,
+ @@ $1aooooo$2`` $3 @@
+ @ $1aooooo$2`` $3 (@
+ $1aooooo$2``
+ $1aooooo$2``
+ $1aooooo$2``
+ $1aooooo$2``
+ $1aooooo$2``
+ ```````
+ ````` \ No newline at end of file
diff --git a/src/logo/ascii/t/tileos.txt b/src/logo/ascii/t/tileos.txt
new file mode 100644
index 0000000..42f3d59
--- /dev/null
+++ b/src/logo/ascii/t/tileos.txt
@@ -0,0 +1,20 @@
+$2 ,.
+$2 ##########
+$2 ###################.
+$2 ############################
+$2 ####################################
+$2 ######################################
+$1,(/$2 *############################( $3.%$1
+$1((((((($2 (#################### $3%%####$1
+$1(((((((((((/$2 ############ $3%#########$1
+$1(((((((((((((((($2 ##/ $3(##############$1
+$1(((((((((((((((((((($2 $3###################$1
+$1((((((((((((((((((((($2 $3####################$1
+$1((((((((((((((((((((($2 $3####################$1
+$1((((((((((((((((((((($2 $3####################$1
+$1((((((((((((((((((((($2 $3####################$1
+$1 (((((((((((((((((((($2 $3###################%$1
+$1 (((((((((((((((($2 $3################/$1
+$1 (((((((((((($2 $3###########%$1
+$1 ((((((($2 $3#######*$1
+$1 ((($2 $3##%*$1 \ No newline at end of file
diff --git a/src/logo/ascii/t/torizoncore.txt b/src/logo/ascii/t/torizoncore.txt
new file mode 100644
index 0000000..541705a
--- /dev/null
+++ b/src/logo/ascii/t/torizoncore.txt
@@ -0,0 +1,29 @@
+$2 `.::-.
+ `-://////:-.
+ `:////////////:.
+ `.-.` `-:///////-. `
+ `.://///:.` `-::-. `-://:.`
+ .:///////////:. `-:////////:.`
+ `.://///////:-` .:////////////:`
+ `.-/:-` `.:///:-` $3`-+o/.$2 `.://////-. `.`
+ `.:///////:-` `.` $3`-+sssssso/.$2 `.--. `-:///:-`
+-/////////////: $3`+sssssssssssso-$2 `-://///////:-`
+ .-///////:.` `` $3-/sssssssso/.$2 ` .:///////////-.
+ .-::.` `-://:-. $3-/sso/.$2 `.:/:-. `.://///-.
+ `-:////////:-. $3`$2 `.:////////-. `.-.
+$1o-$2 -:///////////:` .:////////////:` $1-o$2
+$1hdho-$2 `-://///:.` `..` `-://////:.` $1-ohdh$2
+$1/ydddho-$2 `--.` `.:////:.` `-::.` $1-ohdddy/$2
+ $1./ydddho:`$2 `.://////////:. $1`:ohdddy/.$2
+` $1`/shddho:`$2 `.://////////:. $1`:ohddds/`$2 `
+::-` $1`/shddhs:`$2 `.:////:.` $1`:shddhs/`$2 `-::
+:///:-` $1`:shddhs/`$2 `..` $1`/shddhs:`$2 `-:///-
+ `.:///:-` $1`:ohddhs/`$2 $1`/shddho:`$2 `-:///:.`
+ `.:///:-. $1-ohdddy/.$2 $1./ydddho-$2 .-:///-.`
+ `.:///:-. $1-+hdddy+//+ydddh+-$2 .-://:-.
+ `.-///:-. $1-+yddddddy+-$2 .-://:-.
+ .-://:-. $1./++/.$2 .-///:-.
+ .-:///:.` `.:///:-`
+ `-:///:.````.:///:-`
+ `-:////////:-`
+ `-::::-` \ No newline at end of file
diff --git a/src/logo/ascii/t/trisquel.txt b/src/logo/ascii/t/trisquel.txt
new file mode 100644
index 0000000..203345e
--- /dev/null
+++ b/src/logo/ascii/t/trisquel.txt
@@ -0,0 +1,17 @@
+ ,o$$$$$$o.
+ ,o$$$$Y"""Y$$$$b
+ ,o$$$$$$$$$$$$o. ,$$$$' , Y$$$$b
+ ,o$$$$$$$$$$$$$$$$$$$$$$$$o. :$$ b Y$$$$.
+,$$$$"' "Y$$$$$$$$o. 'b. ,b d$$$$$$
+$$$$' .d$$$$$$$$b '$$$$$$$$o 'Y$$$$$$Y d$$$$$$'
+$$$$' q' 'b '$$$$$$$$$$o._ _.o$$$$$$$$'
+.$$$$,_ _,d$$ ,$$$$$$$$$$$$$$$$$$$$$$$$$2$$$$$$$$Y'
+$1 '$$$$$$$$aaa$$$$$$' .$$$$$$$$$$$$$2$$$$$$$$$$$$$$$$'
+$1 """" $2d$$$$$$$$"'
+ d$$$$$$' .d$$$$b.
+ $$$$$$$$ .$$" 'a$$.
+ $$$$$$$$ $$b $$$$.
+ '$$$$$$. '$$b,,. $$$$$$
+ '$$$$$$. .$$$$'
+ 'a$$$$$$o._.o$$$$a'
+ 'a$$$$$$$$a' \ No newline at end of file
diff --git a/src/logo/ascii/t/truenas_scale.txt b/src/logo/ascii/t/truenas_scale.txt
new file mode 100644
index 0000000..364a6dd
--- /dev/null
+++ b/src/logo/ascii/t/truenas_scale.txt
@@ -0,0 +1,18 @@
+ ++ $2++
+ $1++++++ $2++++++
+ $1+++++++++ $2+++++++++
+ $1+++++++ $2+++++++
+ $1+++ $2+++ $1+ $3--------$1 $2+ $1+++ $2+++
+ $1++++++ $2++++++ $3------$1 ++++++ $2++++++
+ $1++++++++ $2++++++++++ $1++++++++++ $2++++++++
+ $1+++++++ $3--$1 $2+++++++ $1+++++++ $3--$1 $2+++++++
+$2+++ $1+ $3--------$1 $2+ $1+++ $2+++ $1+ $3--------$1 $2+ $1+++
+$2++++++ $3--------$1 ++++++ $2++++++ $3--------$1 ++++++
+$2++++++++++ $1+++++++++ $2+++++++++ $1++++++++++
+ $2+++++++++ $1+++++++ $3--$1 $2+++++++ $1+++++++++
+ $2+++++ +++ $3--------$1 +++ +++++
+ $2++ +++++++ $3------$1 +++++++ ++
+ $2++++++++++ $1++++++++++
+ $2++++++++ $1++++++++
+ $2+++++ $1+++++
+ $2++ $1++ \ No newline at end of file
diff --git a/src/logo/ascii/t/tuxedo_os.txt b/src/logo/ascii/t/tuxedo_os.txt
new file mode 100644
index 0000000..08b108e
--- /dev/null
+++ b/src/logo/ascii/t/tuxedo_os.txt
@@ -0,0 +1,16 @@
+ #############################+
+.%#######################%@@@+
+ . :#@%-
+ .#@%%%- =@@#.
+ *@%@@= +@@+
+ =@@%@+.#@%-
+ -@@%@@@#:
+ .#@%%@-
+ :#@@%@@=
+ =@@+=@@%@+
+ .#@@= -@@%@#
+ -%@#: :%@%@%:
+ *@@+ .#%%%%-
+ :%@%- .
+ +@@@%#%%%%%%%%%%%%%%%%%%%%%%%.
+ +######################******* \ No newline at end of file
diff --git a/src/logo/ascii/t/twister.txt b/src/logo/ascii/t/twister.txt
new file mode 100644
index 0000000..30ec36d
--- /dev/null
+++ b/src/logo/ascii/t/twister.txt
@@ -0,0 +1,23 @@
+$3.......................$4.......$5.,:ccllllcc:.$4...
+$3.......................$5.,;cldxkO0KXNNNWNNNX0x:
+$3.................$5.,:ldkOOKK0OkkkkkOKWMMMMMMMNo
+$3.............$5,;coxO0Oxo::'$4.........$5,oXMMMMMM0'
+$3.........$5,:ldkOOkc;'$3...$4.............$5;OMMMMW0:$4.
+$3.......$5;ldkOxol:'$3......$4............$5,dNMMX0''$4..
+$3....$5;:oxkxl:'$3..........$4..........$5,lOWWXx:.,'$4..
+$3..$5,ldxkkd:'$3............$5.:c$4....$5':lkNMNOc,cdl'$4..
+$3.$5;oxxkkkc'$3.........$5.:clc;'.';lkKNNKk;;ck00l$4...
+$5.lxxxkkkxoooooddxkOOko'..cok0KOd':::o0NXd;'$4...
+$3.$5:odxxkkOOOOOOOkdoi'..:ddxdoc:::od0NWW0c'$4.....
+$3...$5':;gggggg;::''.......::::x0XWMMMNO.::'$4.....
+$3..............$5;......,;od0KNWMWNK0O:::do'$4.....
+$3...............$5'cclgggggggxdll":::'XKoo,$4......
+$3.................$5',,,,,,,::::;ooNWMWOc'$4.......
+$3..................$5,:loxxxO0KXNNXK0ko:'$4........
+$3..................$5';::;oTcoggcoF":::'$4.........
+$3..................$5':o,.:::::::::,p'$4...........
+$3..................$5;'ccdxkOOOdxlf'$4.............
+$3.................$5,l;;XgggggXP:'$4...............
+$3................$5;lco;::::::'$4..................
+$3..............$5.';ggggol'`$4.....................
+$3.............$5':oo:''$3...$4....................... \ No newline at end of file
diff --git a/src/logo/ascii/u.inc b/src/logo/ascii/u.inc
new file mode 100644
index 0000000..79bad1a
--- /dev/null
+++ b/src/logo/ascii/u.inc
@@ -0,0 +1,316 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo U[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBLINUX
+ // UBLinux
+ {
+ .names = { "UBLinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBLINUX,
+ .colors = {
+ FF_COLOR_FG_256 "38",
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_256 "38",
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBLINUX_SMALL
+ // UBLinuxSmall
+ {
+ .names = { "UBLinux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_UBLINUX_SMALL,
+ .colors = {
+ FF_COLOR_FG_256 "38",
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_256 "38",
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU
+ // Ubuntu
+ {
+ .names = { "ubuntu", "ubuntu-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_SMALL
+ // UbuntuSmall
+ {
+ .names = { "ubuntu_small", "ubuntu-linux_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_OLD
+ // UbuntuOld
+ {
+ .names = { "ubuntu_old", "ubuntu-linux_old" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_OLD,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_OLD2
+ // UbuntuOld2
+ {
+ .names = { "ubuntu_old2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_OLD2,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_OLD2_SMALL
+ // UbuntuOld2Small
+ {
+ .names = { "ubuntu_old2_small", "ubuntu_old2_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_OLD2_SMALL,
+ .colors = {
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_BUDGIE
+ // UbuntuBudgie
+ {
+ .names = { "ubuntu budgie", "ubuntu-budgie" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_BUDGIE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_RED,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_CINNAMON
+ // UbuntuCinnamon
+ {
+ .names = { "ubuntu cinnamon", "ubuntu-cinnamon" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_CINNAMON,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_GNOME
+ // UbuntuGNOME
+ {
+ .names = { "ubuntu gnome", "ubuntu-gnome" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_GNOME,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_MAGENTA,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_KYLIN
+ // UbuntuKylin
+ {
+ .names = { "ubuntu kylin", "ubuntu-kylin" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_KYLIN,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_RED,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_MATE
+ // UbuntuMate
+ {
+ .names = { "ubuntu mate", "ubuntu-mate" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_MATE,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_WHITE,
+ },
+ .colorKeys = FF_COLOR_FG_GREEN,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_STUDIO
+ // UbuntuStudio
+ {
+ .names = { "ubuntu studio", "ubuntu-studio" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_STUDIO,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_SWAY
+ // UbuntuSway
+ {
+ .names = { "ubuntu sway", "ubuntu-sway" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_SWAY,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_TOUCH
+ // UbuntuTouch
+ {
+ .names = { "ubuntu touch", "ubuntu-touch" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_TOUCH,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UBUNTU_UNITY
+ // UbuntuUnity
+ {
+ .names = { "ubuntu unity", "ubuntu-unity" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UBUNTU_UNITY,
+ .colors = {
+ FF_COLOR_FG_MAGENTA,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ULTRAMARINE
+ // Ultramarine
+ {
+ .names = { "Ultramarine", "Ultramarine Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ULTRAMARINE,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ULTRAMARINE_SMALL
+ // Ultramarine Small
+ {
+ .names = { "Ultramarine_small" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ULTRAMARINE_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UNIFI
+ // Unifi
+ {
+ .names = { "Unifi" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UNIFI,
+ .colors = {
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UNIVALENT
+ // Univalent
+ {
+ .names = { "Univalent" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UNIVALENT,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UNIVENTION
+ // Univention
+ {
+ .names = { "Univention" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UNIVENTION,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UOS
+ // UOS
+ {
+ .names = { "UOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_URUKOS
+ // UrukOS
+ {
+ .names = { "UrukOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_URUKOS,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLUE,
+ FF_COLOR_FG_LIGHT_BLUE,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_LIGHT_BLUE,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UWUNTU
+ // Uwuntu
+ {
+ .names = { "uwuntu" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UWUNTU,
+ .colors = {
+ FF_COLOR_FG_256 "225",
+ FF_COLOR_FG_256 "206",
+ FF_COLOR_FG_256 "52",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_UZBEK
+ // Uzbek
+ {
+ .names = { "Uzbek" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UZBEK,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/u/ublinux.txt b/src/logo/ascii/u/ublinux.txt
new file mode 100644
index 0000000..7e9a9e3
--- /dev/null
+++ b/src/logo/ascii/u/ublinux.txt
@@ -0,0 +1,19 @@
+$1 UUU
+$1 UUUUUUUUUUU
+$1 UUUUUUUUUUUUUUUUU
+$1 UUUUUUUUUUUUUUUUUUUUUUUUU
+$1UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU$3#.
+$1UU$2BBBBB$1UUUUUU$2BBBBBBBBBBB.$1UUUUUU$3##
+$1UU$2BBBBB$1UUUUUU$2BBBBBBBBBBBBB:$1UUUU$3##
+$1UU$2BBBBB$1UUUUUU$2BBBBB$1UUUU$2BBBBB$1UUUU$3##
+$1UU$2BBBBB$1UUUUUU$2BBBBB$1UUUU$2BBBBB$1UUUU$3##
+$1UU$2BBBBB$1UUUUUU$2BBBBBBBBBBBB$1UUUUUU$3##
+$1UU$2BBBBB$1UUUUUU$2BBBBB$1UUUU,$2BBBB.$1UUU$3##
+$1UUU$2BBBBB$1UUUUU$2BBBBB$1UUUUU$2BBBBB$1UUU$3##
+$1UUU$2BBBBB$1UUUUU$2BBBBB$1UUUUU$2BBBBB$1UUU$3##
+$1UUU#$2BBBBBBBBBBBBBBBBBBBBBBB$1UUUU$3##
+$1UUUUUU$2'BBBBBBBBBBBBBBBB'$1UUUUUUU$3##
+$1 UUUUUUUUUUUUUUUUUUUUUUUUU$3##'
+$1 UUUUUUUUUUUUUUUUU$3###'
+$1 UUUUUUUUUUU$3###'
+$1 UUU$3###'
diff --git a/src/logo/ascii/u/ublinux_small.txt b/src/logo/ascii/u/ublinux_small.txt
new file mode 100644
index 0000000..4b94249
--- /dev/null
+++ b/src/logo/ascii/u/ublinux_small.txt
@@ -0,0 +1,11 @@
+$1 UUUU
+$1 UUUUUUUUUU
+$1 $2BBB$1UUUU$2BBBBBB$1UU$3#
+$1U$2BBB$1UUUU$2BBB$1UUU$2B$1UU$3#
+$1U$2BBB$1UUUU$2BBB$1UUU$2B$1UU$3#
+$1U$2BBB$1UUUU$2BBBBBB$1UUU$3#
+$1U$2BBB$1UUUU$2BBB$1UUU$2BB$1U$3#
+$1UU$2BBB$1UUU$2BBB$1UUU$2BB$1U$3#
+$1 UU$2BBBBBBBBBBB$1UU$3#
+$1 UUUUUUUUU$3#
+$1 UUU$3#
diff --git a/src/logo/ascii/u/ubuntu.txt b/src/logo/ascii/u/ubuntu.txt
new file mode 100644
index 0000000..51515e7
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu.txt
@@ -0,0 +1,20 @@
+ ....
+ $2.',:clooo: $1.:looooo:.
+ $2.;looooooooc $1.oooooooooo'
+ $2.;looooool:,''. $1:ooooooooooc
+ $2;looool;. $1'oooooooooo,
+ $2;clool' $1.cooooooc. $2,,
+ $2... $1...... $2.:oo,
+ $1.;clol:,. $2.loooo'
+ $1:ooooooooo, $2'ooool
+$1'ooooooooooo. $2loooo.
+$1'ooooooooool $2coooo.
+ $1,loooooooc. $2.loooo.
+ $1.,;;;'. $2;ooooc
+ $2... $2,ooool.
+ $2.cooooc. $1..',,'. $2.cooo.
+ $2;ooooo:. $1;oooooooc. $2:l.
+ $2.coooooc,.. $1coooooooooo.
+ $2.:ooooooolc:. $1.ooooooooooo'
+ $2.':loooooo; $1,oooooooooc
+ $2..';::c' $1.;loooo:' \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_budgie.txt b/src/logo/ascii/u/ubuntu_budgie.txt
new file mode 100644
index 0000000..dca8359
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_budgie.txt
@@ -0,0 +1,20 @@
+ ./oydmMMMMMMmdyo/.
+ :smMMMMMMMMMMMhs+:++yhs:
+ `omMMMMMMMMMMMN+` `odo`
+ /NMMMMMMMMMMMMN- `sN/
+ `hMMMMmhhmMMMMMMh sMh`
+ .mMmo- /yMMMMm` `MMm.
+ mN/ yMMMMMMMd- MMMm
+oN- oMMMMMMMMMms+//+o+: :MMMMo
+m/ +NMMMMMMMMMMMMMMMMm. :NMMMMm
+M` .NMMMMMMMMMMMMMMMNodMMMMMMM
+M- sMMMMMMMMMMMMMMMMMMMMMMMMM
+mm` mMMMMMMMMMNdhhdNMMMMMMMMMm
+oMm/ .dMMMMMMMMh: :dMMMMMMMo
+ mMMNyo/:/sdMMMMMMMMM+ sMMMMMm
+ .mMMMMMMMMMMMMMMMMMs `NMMMm.
+ `hMMMMMMMMMMM.oo+. `MMMh`
+ /NMMMMMMMMMo sMN/
+ `omMMMMMMMMy. :dmo`
+ :smMMMMMMMh+-` `.:ohs:
+ ./oydmMMMMMMdhyo/. \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_cinnamon.txt b/src/logo/ascii/u/ubuntu_cinnamon.txt
new file mode 100644
index 0000000..5ed6690
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_cinnamon.txt
@@ -0,0 +1,20 @@
+ .-/+oooooooo+/-.
+ `:+oooooooooooooooooo+:`
+ -+oooooooooooooooooooooooo+-
+ .ooooooooooooooooooo$2:ohNd$1oooooo.
+ /oooooooooooo$2:/+oo++:/ohNd$1ooooooo/
+ +oooooooooo$2:osNdhyyhdNNh+:+$1oooooooo+
+ /ooooooooo$2/dN/$1ooooooooo$2/sNNo$1ooooooooo/
+.ooooooooo$2oMd:$1oooooooooooo$2:yMy$1ooooooooo.
++ooooo$2:+o/Md$1oooooo$2:sm/$1oo/ooo$2yMo$1oooooooo+
+ooo$2:sdMdosMo$1ooooo$2oNMd$1//$2dMd+$1o$2:so$1ooooooooo
+oooo$2+ymdosMo$1ooo$2+mMm$1+/$2hMMMMMh+hs$1ooooooooo
++oooooo$2:$1:$2/Nm:$1/$2hMNo$1:y$2MMMMMMMMMM+$1oooooooo+
+.ooooooooo$2/NNMNy$1:o$2NMMMMMMMMMMo$1ooooooooo.
+/oooooooooo$2:yh:$1+m$2MMMMMMMMMMd/$1ooooooooo/
+ +oooooooooo$2+$1/h$2mMMMMMMNds//o$1oooooooo+
+ /oooooooooooo$2+:////:o/ymMd$1ooooooo/
+ .oooooooooooooooooooo$2/sdh$1oooooo.
+ -+oooooooooooooooooooooooo+-
+ `:+oooooooooooooooooo+:`
+ .-/+oooooooo+/-. \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_gnome.txt b/src/logo/ascii/u/ubuntu_gnome.txt
new file mode 100644
index 0000000..41c2633
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_gnome.txt
@@ -0,0 +1,16 @@
+$3 ./o.
+ .oooooooo
+ .oooo```soooo
+ .oooo` `soooo
+ .ooo` $4.o.$3 `\/ooo.
+ :ooo $4:oooo.$3 `\/ooo.
+ sooo $4`ooooo$3 \/oooo
+ \/ooo $4`soooo$3 `ooooo
+ `soooo $4`\/ooo$3 `soooo
+$4./oo $3`\/ooo $4`/oooo.$3 `/ooo
+$4`\/ooo. $3`/oooo. $4`/oooo.$3 ``
+$4 `\/ooo. $3/oooo $4/ooo`
+$4 `ooooo $3`` $4.oooo
+$4 `soooo. .oooo`
+ `\/oooooooooo`
+ ``\/oo`` \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_kylin.txt b/src/logo/ascii/u/ubuntu_kylin.txt
new file mode 100644
index 0000000..d03aa91
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_kylin.txt
@@ -0,0 +1,20 @@
+$1 .__=liiiiiii=__,
+ ._=liiliii|i|i|iiilii=_.
+ _=iiiii|ii|i|ii|i|inwwwzii=,
+ .=liiii|ii|ii|wwww|i$23QWWWW$1ziii=,
+ =lii|i|ii|i|$2QQQWWWWWm]QWWQD$1||iiii=
+ =lii|iiivw$2Qm$1>3$2WWWWWQWQQwwQw$1cii|i|ii=
+ =lii|ii|n$2QWWWQ$1|)i$2|i$1%i|]$2TQWWWWm$1|ii|i|i=
+.li|i|i|m$2WWWQV$1|ii$2wmD$1|iiii|$2TWWWWm$1|i|iiii,
+=iii$2www|$WQWk$1|i$2aWWWD$1|i|i|ii]$2QQWQk$1|ii|i|=
+iii$2QWWWQz$WW$1|i$2jQQWQm$1w|ii$2wW$1k|$2TTTTY$1i|i|iii
+iiI$2QWQWWtyQQ$1|i|$2$WWWWWQWk$1||i|i|ii||i|ii|i
+<|i|$2TTT|mQQWz$1|i$23D$1]C|$2nD$W$1|ii$2vWWWWk$1||ii|i>
+-|ii|i|i$2WWWQw$1|$2Tt$1|i3$2T$1|$2T$1|i|$2nQWQWDk$1|ii|ii`
+ <|i|iii|$2VWQWWQ$1|i|i|||ii$2wmWWQWD$1||ii|ii+
+ <|ii|i|i]$2$W@$1tv$2QQQWQQQWWTTHT$11|iii|i|>
+ <|i|ii|ii||v$2QWWWQWWW@vmWWWm$1|i|i|i>
+ -<|i|ii|ii|i|$2TTTTTT$1|]$2QQWWWC$1|ii>`
+ -<|i|ii|i|ii|i|i|ii3$2TTT$1t|i>`
+ ~<|ii|ii|iiiii|i|||i>~
+ -~~<|ii|i||i>~~` \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_mate.txt b/src/logo/ascii/u/ubuntu_mate.txt
new file mode 100644
index 0000000..71bddca
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_mate.txt
@@ -0,0 +1,20 @@
+$1 .:/+oossssoo+/:.`
+ `:+ssssssssssssssssss+:`
+ -+sssssssssssssss$2y$1ssssssss+-
+ .osssssssssssss$2yy$1ss$2mMmh$1ssssssso.
+ /sssssssss$2ydmNNNmmd$1s$2mMMMMNdy$1sssss/
+ `+ssssssss$2hNNdy$1sssssss$2mMMMMNdy$1ssssss+`
+ +sssssss$2yNNh$1ss$2hmNNNNm$1s$2mMmh$1s$2ydy$1sssssss+
+-sssss$2y$1ss$2Nm$1ss$2hNNh$1ssssss$2y$1s$2hh$1ss$2mMy$1sssssss-
++ssss$2yMNdy$1ss$2hMd$1ssssssssss$2hMd$1ss$2NN$1sssssss+
+sssss$2yMMMMMmh$1sssssssssssss$2NM$1ss$2dMy$1sssssss
+sssss$2yMMMMMmhy$1ssssssssssss$2NM$1ss$2dMy$1sssssss
++ssss$2yMNdy$1ss$2hMd$1ssssssssss$2hMd$1ss$2NN$1sssssss+
+-sssss$2y$1ss$2Nm$1ss$2hNNh$1ssssssss$2dh$1ss$2mMy$1sssssss-
+ +sssssss$2yNNh$1ss$2hmNNNNm$1s$2mNmh$1s$2ymy$1sssssss+
+ +ssssssss$2hNNdy$1sssssss$2mMMMMmhy$1ssssss+
+ /sssssssss$2ydmNNNNmd$1s$2mMMMMNdh$1sssss/
+ .osssssssssssss$2yy$1ss$2mMmdy$1sssssso.
+ -+sssssssssssssss$2y$1ssssssss+-
+ `:+ssssssssssssssssss+:`
+ .:/+oossssoo+/:. \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_old.txt b/src/logo/ascii/u/ubuntu_old.txt
new file mode 100644
index 0000000..9193c8f
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_old.txt
@@ -0,0 +1,20 @@
+ --+oossssssoo+--
+ .:+ssssssssssssssssss+:.
+ -+ssssssssssssssssssyyssss+-
+ .ossssssssssssssssssd$2MMMNy$1sssso.
+ /sssssssssss$2hdmmNNmmyNMMMMh$1ssssss/
+ +sssssssss$2hm$1yd$2MMMMMMMNddddy$1ssssssss+
+ /ssssssss$2hNMMM$1yh$2hyyyyhmNMMMNh$1ssssssss/
+.ssssssss$2dMMMNh$1ssssssssss$2hNMMMd$1ssssssss.
++ssss$2hhhyNMMNy$1ssssssssssss$2yNMMMy$1sssssss+
+oss$2yNMMMNyMMh$1ssssssssssssss$2hmmmh$1ssssssso
+oss$2yNMMMNyMMh$1sssssssssssssshmmmhssssssso
++ssss$2hhhyNMMNy$1ssssssssssss$2yNMMMy$1sssssss+
+.ssssssss$2dMMMNh$1ssssssssss$2hNMMMd$1ssssssss.
+ /ssssssss$2hNMMM$1yh$2hyyyyhdNMMMNh$1ssssssss/
+ +sssssssss$2dm$1yd$2MMMMMMMMddddy$1ssssssss+
+ /sssssssssss$2hdmNNNNmyNMMMMh$1ssssss/
+ .ossssssssssssssssss$2dMMMNy$1sssso.
+ -+sssssssssssssssss$2yyy$1ssss+-
+ `:+ssssssssssssssssss+:´
+ --+oossssssoo+-- \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_old2.txt b/src/logo/ascii/u/ubuntu_old2.txt
new file mode 100644
index 0000000..b78f810
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_old2.txt
@@ -0,0 +1,18 @@
+ ./+o+-
+$2 yyyyy- $1-yyyyyy+
+$2 $2://+//////$1-yyyyyyo
+$3 .++ $2.:/++++++/-$1.+sss/`
+$3 .:++o: $2/++++++++/:--:/-
+$3 o:+o+:++.$2`..```.-/oo+++++/
+$3 .:+o:+o/.$2 `+sssoo+/
+$2 .++/+:$3+oo+o:`$2 /sssooo.
+$2/+++//+:$3`oo+o$2 /::--:.
+$2+/+o+++$3`o++o$1 ++////.
+$2 .++.o+$3++oo+:`$1 /dddhhh.
+$3 .+.o+oo:.$1 `oddhhhh+
+$3 +.++o+o`$1`-````.:ohdhhhhh+
+$3 `:o+++ $1`ohhhhhhhhyo++os:
+$3 .o:$1`.syhhhhhhh/$3.oo++o`
+$1 /osyyyyyyo$3++ooo+++/
+$1 ````` $3+oo+++o:
+$3 `oo++. \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_old2_small.txt b/src/logo/ascii/u/ubuntu_old2_small.txt
new file mode 100644
index 0000000..491b534
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_old2_small.txt
@@ -0,0 +1,6 @@
+ _
+ ---(_)
+ _/ --- \
+(_) | |
+ \ --- _/
+ ---(_) \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_small.txt b/src/logo/ascii/u/ubuntu_small.txt
new file mode 100644
index 0000000..62c4223
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_small.txt
@@ -0,0 +1,11 @@
+ $2..;,; $1.,;,.
+ $2.,lool: $1.ooooo,
+ $2;oo;: $1.coool.
+ $1.... $1''' $2,l;
+$1:oooo, $2'oo.
+$1looooc $2:oo'
+ $1'::' $2,oo:
+ $2,., $1.... $2co,
+ $2lo:;. $1:oooo; $2.
+ $2':ooo; $1cooooc
+ $2''' $1'''' \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_studio.txt b/src/logo/ascii/u/ubuntu_studio.txt
new file mode 100644
index 0000000..129869b
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_studio.txt
@@ -0,0 +1,20 @@
+ ..-::::::-.`
+ `.:+++++++++++$2ooo$1++:.`
+ ./+++++++++++++$2sMMMNdyo$1+/.
+ .++++++++++++++++$2oyhmMMMMms$1++.
+ `/+++++++++$2osyhddddhys$1+$2osdMMMh$1++/`
+ `+++++++++$2ydMMMMNNNMMMMNds$1+$2oyyo$1++++`
+ +++++++++$2dMMNhso$1++++$2oydNMMmo$1++++++++`
+ :+$2odmy$1+++$2ooysoohmNMMNmyoohMMNs$1+++++++:
+ ++$2dMMm$1+$2oNMd$1++$2yMMMmhhmMMNs+yMMNo$1+++++++
+`++$2NMMy$1+$2hMMd$1+$2oMMMs$1++++$2sMMN$1++$2NMMs$1+++++++.
+`++$2NMMy$1+$2hMMd$1+$2oMMMo$1++++$2sMMN$1++$2mMMs$1+++++++.
+ ++$2dMMd$1+$2oNMm$1++$2yMMNdhhdMMMs$1+y$2MMNo$1+++++++
+ :+$2odmy$1++$2oo$1+$2ss$1+$2ohNMMMMmho$1+$2yMMMs$1+++++++:
+ +++++++++$2hMMmhs+ooo+oshNMMms$1++++++++
+ `++++++++$2oymMMMMNmmNMMMMmy+oys$1+++++`
+ `/+++++++++$2oyhdmmmmdhso+sdMMMs$1++/
+ ./+++++++++++++++$2oyhdNMMMms$1++.
+ ./+++++++++++++$2hMMMNdyo$1+/.
+ `.:+++++++++++$2sso$1++:.
+ ..-::::::-.. \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_sway.txt b/src/logo/ascii/u/ubuntu_sway.txt
new file mode 100644
index 0000000..deb53ad
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_sway.txt
@@ -0,0 +1,20 @@
+ .-/+oossssoo+\-.
+ ´:+ssssssssssssssssss+:`
+ -+ssssssssssssssssss$2yy$1ssss+-
+ .ossssssssssssssssss$2dMMMNyy$1ssso.
+ /sssssssssss$2hdmmNNmmyNMMMMh$1ssssss\
+ +sssssssss$2hm$1ydMMMMMMMNdd$2ddy$1ssssssss+
+ /ssssssss$2hN$1MM$2M$1yh$2hyyyyhmNM$1MM$2Nh$1ssssssss\
+.ssssssss$2dM$1MM$2Nh$1ssssssssss$2hN$1MM$2Md$1ssssssss.
++sss$2yyyyyN$1MM$2Ny$1ssssssssssss$2yN$1MM$2My$1sssssss+
+ossy$2NMMMNy$1MM$2h$1ssssssssssssss$2hm$1mm$2h$1ssssssso
+ossy$2NMMMNy$1MM$2h$1sssssssssssssshmmmh$1ssssssso
++sss$2yyyyyN$1MM$2Ny$1ssssssssssss$2yN$1MM$2My$1sssssss+
+.ssssssss$2dM$1MM$2Nh$1ssssssssss$2hN$1MM$2Md$1ssssssss.
+ \ssssssss$2hN$1MM$2M$1yh$2hyyyyhdNM$1M$2MNh$1ssssssss/
+ +sssssssss$2dm$1ydMMMMMMMMdd$2ddy$1ssssssss+
+ \sssssssssss$2hdmNNNNmyNMMMMh$1ssssss/
+ .ossssssssssssssssss$2dMMMNyy$1ssso.
+ -+sssssssssssssssss$2yy$1sss+-
+ `:+ssssssssssssssssss+:`
+ .-\+oossssoo+/-. \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_touch.txt b/src/logo/ascii/u/ubuntu_touch.txt
new file mode 100644
index 0000000..50d5808
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_touch.txt
@@ -0,0 +1,7 @@
+ ###############
+ ## ##
+## $2##$1 $2##$1 ##
+## $2##$1 $2#$1 $2#$1 $2##$1 ##
+## $2###$1 ##
+ ## ##
+ ############### \ No newline at end of file
diff --git a/src/logo/ascii/u/ubuntu_unity.txt b/src/logo/ascii/u/ubuntu_unity.txt
new file mode 100644
index 0000000..b288ef8
--- /dev/null
+++ b/src/logo/ascii/u/ubuntu_unity.txt
@@ -0,0 +1,25 @@
+ .-/+ooosssssssooo+\-.
+ ,:+sssssssssssssssssssss+:.
+ -+ssssssssssssssssssss$2.....$1ssss+-
+ .ssssss$2,$1ss$2:cloooooo:$1ss$2.:loooo.$1ssssss.
+ .ssssssss$2loo$1ss$2oooooooc$1ss$2.ooooooooo$1ssssss.
+ .ssssss$2.;looooool:,''.$1ss$2:ooooooooooc$1ssssss.
+ +ssssss$2;loooool;.$1ssssssssss$2ooooooooo$1ssssssss+
+ /ssssss$2;clool'$1sssssssssssssss$2ooooooc$1ssss$2,,$1sssss.
+.sssssssssssssssssssssssssssssssssssss$2.:oo,$1sssss.
+.sssss$2.;clol:,.$1ssssssssssssssssssssss$2.loooo'$1ssss.
++ssss$2:ooooooooo,$1ssssssssssssssssssssss$2'ooool$1ssss+
+osss$2'ooooooooooo.$1ssssssssssssssssssssss$2loooo.$1ssso
+osss$2'ooooooooool$1sssssssssssssssssssssss$2co$1ssssssso
+ossss$2,looooooc.$1sssssssssssssssssssssss$2.loooo.$1ssso
++ssssss$2.,;;;'.$1ssssssssssssssssssssssss$2;ooooc$1ssss+
+.ssssssssssssssssssssssssssssssssssss$2,ooool.$1ssss.
+.sssssss$2.cooooc.$1sssssssssssss$2.,,,,.$1ss$2.cooo.$1sssss.
+ `sssssss$2ooooo:.$1ssssssssssss$2oooooooc.$1ss$2:l.$1sssss'
+ +ssssss$2.coooooc,..$1sssssss$2cooooooooo.$1ssssssss+
+ `sssssss$2.:oo$1s$2ooooolc:.$1s$2.ooooooooooo'$1ssssss'
+ .sssssss$2.o$1ss$2`:loooo;$1sss$2,ooooooooc$1sssssss.
+ `sssssssss$2;oooo';:c'$1ssss$2`:ooo:'$1sssssss'
+ -+sssssssssssssssssssssssssssssss+-
+ `:+sssssssssssssssssssssss+:'
+ `-\+ooosssssssooo+/-' \ No newline at end of file
diff --git a/src/logo/ascii/u/ultramarine.txt b/src/logo/ascii/u/ultramarine.txt
new file mode 100644
index 0000000..4021d05
--- /dev/null
+++ b/src/logo/ascii/u/ultramarine.txt
@@ -0,0 +1,20 @@
+ .cd0NNNNNNNXOdc.
+ .:xKNNNNNNNNNNNNNNNNKd;.
+ ,dXNNNNNNNNNNNNNNNNNNNNNNNd,
+ 'ONNNNNNNNNNNNNNNNNNNNNNNNNNNNO'
+ .xNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNk.
+ .0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0.
+.0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0.
+dNNNNNNNNNNNNWWWWWWWWNNNNNNNNNNNNNNNNNNd
+NNNNNNNNNNNNNW$2MMMMMMMM$1WWNNNNNNNNNNNNNNNN
+NNNNNNNNNNNNNNW$2MMMMMMMMM$1WWNNNNNNNNNNNNNN
+NNNNNNNNNNNNNNW$2MMMMMMMMMMMM$1WNNNNNNNNNNNN
+NNNNNNNNNNWWW$2MMMMMMMMMMMMMMMM$1WWWNNNNNNNX
+oNWWWW$2MMMMMMMMMMMMMMMMMMMMMMMMMMMM$1WWWNNo
+ OW$2MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$1WO
+ .OW$2MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$1WO.
+ lNW$2MMMMMMMMMMMMMMMMMMMMMMMMMMMM$1WNl
+ .dNW$2MMMMMMMMMMMMMMMMMMMMMMMM$1WNd.
+ .cKW$2MMMMMMMMMMMMMMMMMMMM$1WKc.
+ 'oOXWWW$2MMMMMMMM$1WWWXOl.
+ ;lkXNNNNNNXkl' \ No newline at end of file
diff --git a/src/logo/ascii/u/ultramarine_small.txt b/src/logo/ascii/u/ultramarine_small.txt
new file mode 100644
index 0000000..a9d93c6
--- /dev/null
+++ b/src/logo/ascii/u/ultramarine_small.txt
@@ -0,0 +1,14 @@
+ @@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@*=+*%@@@@@@@@@@@@
+@@@@@@@@@@: :#@@@@@@@@@@
+@@@@@@@@@# -#@@@@@@@@
+@@%###*=. :=*#@@@@
+@@= =@@
+ @@= -@@
+ @@*: :*@@
+ @%*=: :=*@@
+ @@@%%##%%@@@
diff --git a/src/logo/ascii/u/unifi.txt b/src/logo/ascii/u/unifi.txt
new file mode 100644
index 0000000..dff4632
--- /dev/null
+++ b/src/logo/ascii/u/unifi.txt
@@ -0,0 +1,6 @@
+ ___ ___ .__________.__
+ | | |____ |__\_ ____/__|
+ | | / \| || __) | |
+ | | | | \ || \ | |
+ |______|___| /__||__/ |__|
+ |_/ \ No newline at end of file
diff --git a/src/logo/ascii/u/univalent.txt b/src/logo/ascii/u/univalent.txt
new file mode 100644
index 0000000..b8aab22
--- /dev/null
+++ b/src/logo/ascii/u/univalent.txt
@@ -0,0 +1,18 @@
+UUUUUUU UUUUUUU
+UUUUUUU UUUUUUU
+UUUUUUU A UUUUUUU
+UUUUUUU A|A UUUUUUU
+UUUUUUU A | A UUUUUUU
+UUUUUUU A | A UUUUUUU
+UUUUUUU A| | |A UUUUUUU
+UUUUUUU A | | | A UUUUUUU
+UUUUUUU A | | | A UUUUUUU
+UUUUUUU A | | | A UUUUUUU
+UUUUUUU A | | | A UUUUUUU
+UUUUUUU A | | | A UUUUUUU
+UUUUUUU A | | | A UUUUUUU
+ UUUUUUU A | | | A UUUUUUU
+ UUUUUUU A | | | A UUUUUUU
+ UUUUUUUAAAAAAAAAAAUUUUUUU
+ UUUUUUUUUUUUUUUUUUU
+ UUUUUUUUUUUUU \ No newline at end of file
diff --git a/src/logo/ascii/u/univention.txt b/src/logo/ascii/u/univention.txt
new file mode 100644
index 0000000..ceafbae
--- /dev/null
+++ b/src/logo/ascii/u/univention.txt
@@ -0,0 +1,20 @@
+ ./osssssssssssssssssssssso+-
+ `ohhhhhhhhhhhhhhhhhhhhhhhhhhhhy:
+ shhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh-
+ `-//$2sssss$1/hhhhhhhhhhhhhh+$2s$1.hhhhhhhhh+
+ .ohhhy$2sssss$1.hhhhhhhhhhhhhh.$2sss$1+hhhhhhh+
+.yhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2ssss$1:hhhhhh+
++hhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2sssss$1yhhhhh+
++hhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2sssss$1yhhhhh+
++hhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2sssss$1yhhhhh+
++hhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2sssss$1yhhhhh+
++hhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2sssss$1yhhhhh+
++hhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2sssss$1yhhhhh+
++hhhhhy$2sssss$1.hhhhhhhhhhhhhh.$2sssss$1yhhhhh+
++hhhhhy$2ssssss$1+yhhhhhhhhhhy/$2ssssss$1yhhhhh+
++hhhhhh:$2sssssss$1:hhhhhhh+$2.ssssssss$1yhhhhy.
++hhhhhhh+`$2ssssssssssssssss$1hh$2sssss$1yhhho`
++hhhhhhhhhs+$2ssssssssssss$1+hh+$2sssss$1/:-`
+-hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhho
+ :yhhhhhhhhhhhhhhhhhhhhhhhhhhhh+`
+ -+ossssssssssssssssssssss+:` \ No newline at end of file
diff --git a/src/logo/ascii/u/uos.txt b/src/logo/ascii/u/uos.txt
new file mode 100644
index 0000000..82d9688
--- /dev/null
+++ b/src/logo/ascii/u/uos.txt
@@ -0,0 +1,20 @@
+ .......
+ ..............
+ ......................
+ .............................
+uuuuuu uuuuuu ooooooooooo ssssssssss
+u::::u u::::u oo:::::::::::oo ss::::::::::s
+u::::u u::::u o:::::::::::::::oss:::::::::::::s
+u::::u u::::u o:::::ooooo:::::os::::::ssss:::::s
+u::::u u::::u o::::o o::::o s:::::s ssssss
+u::::u u::::u o::::o o::::o s::::::s
+u::::u u::::u o::::o o::::o s::::::s
+u:::::uuuu:::::u o::::o o::::ossssss s:::::s
+u:::::::::::::::uuo:::::ooooo:::::os:::::ssss::::::s
+u:::::::::::::::uo:::::::::::::::os::::::::::::::s
+uu::::::::uu:::u oo:::::::::::oo s:::::::::::ss
+ uuuuuuuu uuuu ooooooooooo sssssssssss
+ .............................
+ .....................
+ .............
+ ...... \ No newline at end of file
diff --git a/src/logo/ascii/u/urukos.txt b/src/logo/ascii/u/urukos.txt
new file mode 100644
index 0000000..004df17
--- /dev/null
+++ b/src/logo/ascii/u/urukos.txt
@@ -0,0 +1,20 @@
+ $3:$4:::::::::::::: $5.
+ $3=#$4*============. $5:#:
+ $3=##%$4+----------. $5.###:
+ $3=####. $5.####:
+ $3=####. $5.####:
+ $3=###*. .=$4--------. $5####:
+ $3=####. .*#+$4======- $5####:
+ $3=###*. .*###+$4====- $5####:
+ $3=###*. .*#####+$4==- $5####:
+$3=###*. .*#######+$4: $5####:
+$3=###*. .*#######+$4: $5####:
+ $3=###*. .*#####+$4==- $5####:
+ $3=###*. .*###+$4====- $5####:
+ $3=####. .*#+$4======- $5####:
+ $3=###*. .=$4--------. $5.####:
+ $3=####. $5.####:
+ $3=####. $5.####:
+ $3=###+$4--------------$5####:
+ $3=#+$4=================-$5:
+ $3:$4::::::::::::::::::. \ No newline at end of file
diff --git a/src/logo/ascii/u/uwuntu.txt b/src/logo/ascii/u/uwuntu.txt
new file mode 100644
index 0000000..e77f14d
--- /dev/null
+++ b/src/logo/ascii/u/uwuntu.txt
@@ -0,0 +1,20 @@
+ &&
+ &&&&&&&&
+ , *&&&&&& &&&&&&&&(
+ &%%%%&&&& &&&&&&&&&&&& ,&&&&&
+ %%$2%%%%&&$1&&& ,&&&&&&&&&&&&&, %&&&$&&&%%$%%%.
+ &%%%$2%&&&&&$1&&# &, &&&&&&$2&&&&&&&%%%$1%%
+ &%%&&$2&&&&$1&&&( &&&$2&&&&&&%$1%%%
+ &&&&&$2&&&$1&% *&&$2&&&&&$1&&%
+ &&&/ &&&&$3\$1& ,$3/$1*.**
+ %&&&&&&&& &&&$3⟩$1., *.$3⟨$1
+ %&&&&&&&& &&$3/$1.. $3/ \$1 ..$3\$1(&&&&&&
+ #&&&#%%%%.%%%( $3\_/\_/$1 (%%%.%%%%/
+ /%%%%%%%&&* ,&&&%%%%%%&
+ &&&&&&&& &&&&&&&&&&&
+ (&&&&& &&&&&&&&&&&
+ $2%%$1 & &&&&&&&&&&&& &&&&&&&
+ $2%%%$1 #&&&&&&# &&&&&&&&&
+ $2%%%%% %%$1 #&&&&&(
+$2&%. %%%$1
+ $2%%%%%%% \ No newline at end of file
diff --git a/src/logo/ascii/u/uzbek.txt b/src/logo/ascii/u/uzbek.txt
new file mode 100644
index 0000000..3a9ab6e
--- /dev/null
+++ b/src/logo/ascii/u/uzbek.txt
@@ -0,0 +1,11 @@
+ *++++++++++++++*
+*=:-::-::-::-::-::=*
++============. ===+
++===========. ====+
++++++++++++ +++++*
+*+++ =+++ ++++++*
+*++++ .+ +++++++*
+*+++++ ++++++++*
+*++++++ =+++++++++*
+*++++++++++++++++++*
+ *++++++++++++++* \ No newline at end of file
diff --git a/src/logo/ascii/v.inc b/src/logo/ascii/v.inc
new file mode 100644
index 0000000..0ad5969
--- /dev/null
+++ b/src/logo/ascii/v.inc
@@ -0,0 +1,170 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo V[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_VALHALLA
+ // Valhalla
+ {
+ .names = { "Valhalla", "valhallaos", "valhalla-linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VALHALLA,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VANILLA
+ // Vanilla
+ {
+ .names = { "vanilla" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VANILLA,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VANILLA2
+ // Vanilla2
+ {
+ .names = { "vanilla2" },
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_VANILLA2,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_YELLOW,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VANILLA_SMALL
+ // VanillaSmall
+ {
+ .names = { "vanilla_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_VANILLA_SMALL,
+ .colors = {
+ FF_COLOR_FG_LIGHT_YELLOW,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VENOM
+ // Venom
+ {
+ .names = { "Venom" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VENOM,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VENOM_SMALL
+ // VenomSmall
+ {
+ .names = { "Venom_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_VENOM_SMALL,
+ .colors = {
+ FF_COLOR_FG_LIGHT_BLACK,
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VINCENTOS
+ // VincentOS
+ {
+ .names = { "VincentOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VINCENTOS,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VNUX
+ // Vnux
+ {
+ .names = { "Vnux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VNUX,
+ .colors = {
+ FF_COLOR_FG_256 "11",
+ FF_COLOR_FG_256 "8",
+ FF_COLOR_FG_256 "15",
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VZLINUX
+ // Vzlinux
+ {
+ .names = { "Vzlinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VZLINUX,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_WHITE,
+ FF_COLOR_FG_YELLOW,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VOID
+ // Void
+ {
+ .names = { "void" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VOID,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VOID_SMALL
+ // VoidSmall
+ {
+ .names = { "void_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_VOID_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VOID2
+ // Void2
+ {
+ .names = { "void2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_VOID2,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_DEFAULT,
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_VOID2_SMALL
+ // Void2Small
+ {
+ .names = { "void2_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT | FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_VOID2_SMALL,
+ .colors = {
+ FF_COLOR_FG_GREEN,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/v/valhalla.txt b/src/logo/ascii/v/valhalla.txt
new file mode 100644
index 0000000..e961179
--- /dev/null
+++ b/src/logo/ascii/v/valhalla.txt
@@ -0,0 +1,10 @@
+ .:~:
+ !55P&#:
+ ^@G?G!&Y
+ !GYYGP55P: Y5J777!^:.
+.GY?J#G!Y?5. ....P#7Y!##Y??57
+.5JY5PPY5GBBBPYYPBBGBYYP5PJP5:
+^#J?Y@5?J5@@&!GG!&@@YJ?5@PJ7B?
+5PY55G5YY5P!55YY5P7P5JJY5YYJ5Y
+#G?J5@PJJP@~&55Y5@7@5JJG@5J?GB
+ .:.^:^^:!.!:!!:!:!:^^:^.:. \ No newline at end of file
diff --git a/src/logo/ascii/v/vanilla.txt b/src/logo/ascii/v/vanilla.txt
new file mode 100644
index 0000000..ab5631c
--- /dev/null
+++ b/src/logo/ascii/v/vanilla.txt
@@ -0,0 +1,18 @@
+ .----:
+ .-------.
+ :---::----:
+ .----::-----.
+ ......... :----::-----: ..:::-::::..
+.-----------------::------------------:
+ ----::-----------::----------::::---:
+ -----:::--------::-------:::-------
+ :------::::--::...:::::---------:
+ .---------::.. ..:---------.
+ .::-----::.. .::----::.
+ .:------:.......:-------:
+ .--------::::::::-:::-------.
+ .-------::-----.:-----::------.
+ -----::------: :------::-----
+ :--::--------: .-------::---:
+ :----------:: .:----------
+ :--------: :--------: \ No newline at end of file
diff --git a/src/logo/ascii/v/vanilla2.txt b/src/logo/ascii/v/vanilla2.txt
new file mode 100644
index 0000000..343ad8b
--- /dev/null
+++ b/src/logo/ascii/v/vanilla2.txt
@@ -0,0 +1,16 @@
+ .
+ x/A\x
+ Z#@#?P`.
+ /@$R/.:.',
+ _ ($@`.:::.) _
+_-=t'''`-.g$(.::::.!-aZ#$#Kko,
+V$#6..::::.~l.::.<&#p***q##$p'
+'9#$b,:::::::::.%P~'.:::.`~v'
+ "<#$&b,.':::'./'.:::::::.>'
+ `~*q@#&b+=- -=+x.,''_.'
+ z+'.:::',).:.`~q@6x,
+ /.:::::',Z!.:::.`*q&x
+ i'.:::',<J?`.':::.\#$&,
+ lo._,xd$#%' \'::::.@$#)
+ V@#$##@%P' ~+,''/#$#!
+ `~***~^' `'"**** \ No newline at end of file
diff --git a/src/logo/ascii/v/vanilla_small.txt b/src/logo/ascii/v/vanilla_small.txt
new file mode 100644
index 0000000..22438f2
--- /dev/null
+++ b/src/logo/ascii/v/vanilla_small.txt
@@ -0,0 +1,7 @@
+ ,x.
+ ;&?^$2.$1
+.-e~^+7' $2)$1adbx,
+ \#\$2. $1`,*~ ~*/
+ `~*+-'-<ay,$2^$1
+ $2,/ $1,%$2\ $1`\&,
+ !&UP* $2+.$1/%? \ No newline at end of file
diff --git a/src/logo/ascii/v/venom.txt b/src/logo/ascii/v/venom.txt
new file mode 100644
index 0000000..1f24313
--- /dev/null
+++ b/src/logo/ascii/v/venom.txt
@@ -0,0 +1,19 @@
+`-`
+ -yys+/-`
+ `oyyyyy: /osyyyyso+:.
+ /yyyyy+`+yyyyyyyyyys/.
+ .-yyyyys.:+//+oyyyyyyyo.
+ `oy/`oyyyyy/ ./syyyyy:
+ syyys`:yyyyyo` :yyyyy:
+ /yyyyo .syyyyy- .yyyyy.
+ yyyyy. +yyyyy/ /yyyy/
+`yyyyy :yyyyys` -yyyyo
+ yyyyy. `syyyyy- /yyyy/
+ /yyyyo /yyyyy+ .yyyyy.
+ syyyys. -yyyyys.:yyyy:
+ `oyyyyyo-` `oyyyyy:.sy:
+ :syyyyyyso+/++`/yyyyyo``
+ -oyyyyyyyyyyy-.syyyys.
+ -/+osyyyyso.`+yyyyy/
+ .-/+syo`
+ `. \ No newline at end of file
diff --git a/src/logo/ascii/v/venom_small.txt b/src/logo/ascii/v/venom_small.txt
new file mode 100644
index 0000000..aaef9bd
--- /dev/null
+++ b/src/logo/ascii/v/venom_small.txt
@@ -0,0 +1,11 @@
+ ++**
+ *===**====+*
+ *====* +===+
+ *==*+===* *===*
+*===* *===+ *===*
+*===* +===+ *===*
+*===* +===* *===*
+ *===* *===+*==*
+ +===+ *===+=*
+ *+====**===*
+ **++ \ No newline at end of file
diff --git a/src/logo/ascii/v/vincentos.txt b/src/logo/ascii/v/vincentos.txt
new file mode 100644
index 0000000..9672efd
--- /dev/null
+++ b/src/logo/ascii/v/vincentos.txt
@@ -0,0 +1,16 @@
+ __agggg
+ _g@@@@@@@P
+ a@@@@@@@@F
+ _@@@@@@@@F
+ $2a@@@@@@_ _@@@@@@_$1`
+ $2_a@@@~@@@@, @@@@~M@@&_
+_@@@~ `@@@@ @@@@~ `@@@_
+@@@" ~@@@@ @@@@~ "@@@
+@@@ ~@@@@ @@@@F @@@
+@@@ 4@@@@ @@@@F @@@
+@@@_ 4@@@b @@@@F _@@@
+"@@@_ 4@@@yy@@@F _@@@"
+ "R@@g_ 5@@@@@@@ _g@@@"
+ ~@@@gy_ @@@@@@ _yg@@@~
+ `T@@@@gyyy@@@@yyag@@@@F~
+ ~~FRR@@@@@@RPF~~ \ No newline at end of file
diff --git a/src/logo/ascii/v/vnux.txt b/src/logo/ascii/v/vnux.txt
new file mode 100644
index 0000000..a9641a0
--- /dev/null
+++ b/src/logo/ascii/v/vnux.txt
@@ -0,0 +1,20 @@
+ `
+ ^[XOx~.
+ ^_nwdbbkp0ti'
+ <vJCZw0LQ0Uj>
+$2 _j>!vC1,,
+ $4,$2 ,CY$3O$2t$3O$21(l;"
+`$4~-{r(1I$2 ^$1/zmwJuc:$2I^
+'$4?)|$1U$4/}-$2 ^$3f$1OCLLOw$3_$2,;
+ ,$4i,``. $2",$3k%ooW@$d"$2I,'
+ ' ;^$3u$$$$$$$$$$$$$$$$^<$2:^
+ ` .>>$3($$$$$5$@@@@$$$$$3$nl$2[::
+ `!}?$3B$$$5%&WMMW&%$$$3$1}-$2}":
+ ^?j$3Z$$$5WMMWWWWMMW$$$3ofc$2;;`
+ <~x&$3$$$5&MWWWWWWWWp$3-$5l>[<
+$1 'ljmwn$2~tk8$5MWWWWM8O$2X$1r$2+]nC$1[
+!JZqwwdX$2:^C8$5#MMMM@$2X$1Odpdpq0<
+<wwwwmmpO$21$30@%%%%8$2d$1nqmwmqqqJl
+?QOZmqqqpb$2t[run/?!$10pwqqQj-,
+ ^:l<{nUUv> ^x00J("
+ ^" \ No newline at end of file
diff --git a/src/logo/ascii/v/void.txt b/src/logo/ascii/v/void.txt
new file mode 100644
index 0000000..4b1ad9a
--- /dev/null
+++ b/src/logo/ascii/v/void.txt
@@ -0,0 +1,18 @@
+ __.;=====;.__
+ _.=+==++=++=+=+===;.
+ -=+++=+===+=+=+++++=_
+ . -=:`` `--==+=++==.
+ _vi, ` --+=++++:
+ .uvnvi. _._ -==+==+.
+ .vvnvnI` .;==|==;. :|=||=|.
+$2+QmQQm$1pvvnv;$2 _yYsyQQWUUQQQm #QmQ#$1:$2QQQWUV$QQm.
+ $2-QQWQW$1pvvo$2wZ?.wQQQE$1==<$2QWWQ/QWQW.QQWW$1(:$2 jQWQE
+ $2-$QQQQmmU' jQQQ$1@+=<$2QWQQ)mQQQ.mQQQC$1+;$2jWQQ@'
+ $2-$WQ8Y$1nI:$2 QWQQwgQQWV$1`$2mWQQ.jQWQQgyyWW@!
+ $1-1vvnvv. `~+++` ++|+++
+ +vnvnnv, `-|===
+ +vnvnvns. . :=-
+ -Invnvvnsi..___..=sv=. `
+ +Invnvnvnnnnnnnnvvnn;.
+ ~|Invnvnvvnvvvnnv}+`
+ -~|{*l}*|~ \ No newline at end of file
diff --git a/src/logo/ascii/v/void2.txt b/src/logo/ascii/v/void2.txt
new file mode 100644
index 0000000..f00a568
--- /dev/null
+++ b/src/logo/ascii/v/void2.txt
@@ -0,0 +1,25 @@
+ ..........
+ .::::::::::::::::::..
+ ..:::::::::::::::::::::::::.
+ '::::::::::::::::::::::::::::.
+ ':::::'' '':::::::::::::.
+$3 .. $1' '':::::::::.
+$3 .||. $1':::::::::
+$3 .|||||. $1'::::::::
+$3 .|||||||: $1::::::::
+$3 |||||||: $1.::::::::. ::::::::
+$2 ######$3||||||' $2##^ v##########v$1::. $2##### #############v
+$2 ######$3||||| $2##^ v####$1::::::$2####v$1::$2##### #####$1:::::$2#####
+$2 ######$3||$2##^ #####$1::::::$2#####$1::$2##### #####$1:::::$2######
+$2 ######^$3|| $2#####$1:::::$2####^$1::$2##### #####$1:::::$2#####^
+$2 ##^$3||||| $2^###########^$1:::$2##### ##############^
+$3 |||||||: $1'::::::::' .::::::::
+$3 '|||||||: $1.::::::::'
+$3 '|||||||:. $1'::::::
+$3 '||||||||:. $1':::
+$3 ':|||||||||. . $1'
+$3 '|||||||||||:... ...:||||.
+ ':||||||||||||||||||||||||||.
+ ':|||||||||||||||||||||||''
+ '':||||||||||||||:''
+ ''''''
diff --git a/src/logo/ascii/v/void2_small.txt b/src/logo/ascii/v/void2_small.txt
new file mode 100644
index 0000000..e9602b0
--- /dev/null
+++ b/src/logo/ascii/v/void2_small.txt
@@ -0,0 +1,7 @@
+ _______
+ _ \______ -
+| \ ___ \ |
+| | / \ | |
+| | \___/ | |
+| \______ \_|
+ -_______\ \ No newline at end of file
diff --git a/src/logo/ascii/v/void_small.txt b/src/logo/ascii/v/void_small.txt
new file mode 100644
index 0000000..344be7d
--- /dev/null
+++ b/src/logo/ascii/v/void_small.txt
@@ -0,0 +1,7 @@
+ ____
+ 'pfPfp.%
+// _._ \\
+UU |===| UU
+\\ ^~^ //
+ `0PpppP'
+ ````` \ No newline at end of file
diff --git a/src/logo/ascii/v/vzlinux.txt b/src/logo/ascii/v/vzlinux.txt
new file mode 100644
index 0000000..36ecd2c
--- /dev/null
+++ b/src/logo/ascii/v/vzlinux.txt
@@ -0,0 +1,20 @@
+ $1.::::::::.$2
+`/////` $1:zzzzzzzz$2 ://///-
+ VVVVVu` $1-zzz`$2 /VVVVV.
+ `dVVVVV $1.zzz`$2 :VVVVV:
+ `VVVVVo $1zzz$2 -VVVVV/
+ .VVVVV\ $1zzz/$2 .VVVVV+
+ -VVVVV: $1zzzzzzzzz$2 .dVVVVs
+ \VVVVV- $1`````````$2 VVVVVV
+ +VVVVV. sVVVVu`
+ oVVVVd` +VVVVd`
+ VVVVVV /VVVVV.
+ `uVVVVs -VVVVV-
+ `dVVVV+ .VVVVV/
+ .VVVVV\ `dVVVV+
+ -VVVVV-`uVVVVo
+ :VVVVVVVVVVV
+ \VVVVVVVVu
+ oVVVVVVd`
+ sVVVVV.
+ ----. \ No newline at end of file
diff --git a/src/logo/ascii/w.inc b/src/logo/ascii/w.inc
new file mode 100644
index 0000000..dea8eaf
--- /dev/null
+++ b/src/logo/ascii/w.inc
@@ -0,0 +1,123 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo W[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_WII_LINUX
+ // WiiLinux
+ {
+ .names = { "WiiLinuxNgx", "WiiLinux", "Wii-Linux", "Wii Linux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_WII_LINUX,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_WHITE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_WINDOWS_2025
+ // Windows2025
+ {
+ .names = { "Windows Server 2025" },
+ .lines = FASTFETCH_DATATEXT_LOGO_WINDOWS_2025,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_WINDOWS_11
+ // Windows11
+ {
+ .names = { "Windows 11", "Windows Server 2022" },
+ .lines = FASTFETCH_DATATEXT_LOGO_WINDOWS_11,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_WINDOWS_11_SMALL
+ // Windows11Small
+ {
+ .names = { "Windows 11_small" },
+ .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+ .lines = FASTFETCH_DATATEXT_LOGO_WINDOWS_11_SMALL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_CYAN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_WINDOWS_8
+ // Windows8
+ {
+ .names = { "Windows 8", "Windows 8.1", "Windows 10", "Windows Server 2012", "Windows Server 2012 R2", "Windows Server 2016", "Windows Server 2019" },
+ .lines = FASTFETCH_DATATEXT_LOGO_WINDOWS_8,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ .colorKeys = FF_COLOR_FG_YELLOW,
+ .colorTitle = FF_COLOR_FG_DEFAULT,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_WINDOWS
+ // Windows
+ {
+ .names = { "Windows", "Windows 7", "Windows Server 2008", "Windows Server 2008 R2" },
+ .lines = FASTFETCH_DATATEXT_LOGO_WINDOWS,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_GREEN,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_WINDOWS_95
+ // Windows95
+ {
+ .names = { "Windows 95", "Windows 9x" },
+ .lines = FASTFETCH_DATATEXT_LOGO_WINDOWS_95,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_CYAN,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_WOLFOS
+ // WolfOS
+ {
+ .names = { "WolfOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_WOLFOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_GREEN,
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/w/wii_linux.txt b/src/logo/ascii/w/wii_linux.txt
new file mode 100644
index 0000000..66d3270
--- /dev/null
+++ b/src/logo/ascii/w/wii_linux.txt
@@ -0,0 +1,16 @@
+''''''' `~;:` -'''''' ~kQ@@g\ ,EQ@@g/
+h@@@@@@' o@@@@@9` `@@@@@@D `@@@@@@@= @@@@@@@?
+'@@@@@@X o@@@@@@@D v@@@@@@: R@@@@@@, D@@@@@@_
+ t@@@@@@' _@@@@@@@@@; `Q@@@@@U ;fmo/- ;fmo/-
+ `Q@@@@@m d@@@@@@@@@N 7@@@@@@'
+ L@@@@@@' :@@@@@&@@@@@| `Q@@@@@Z :]]]]]v :]]]]]v
+ Q@@@@@X R@@@@Q`g@@@@Q f@@@@@Q- z@@@@@Q v@@@@@Q
+ r@@@@@@~ ;@@@@@/ ;@@@@@L `@@@@@@/ z@@@@@Q v@@@@@Q
+ d@@@@@q M@@@@# H@@@@Q ]@@@@@Q z@@@@@Q v@@@@@Q
+ ,@@@@@@, >@@@@@; _@@@@@c `@@@@@@> z@@@@@Q v@@@@@Q
+ X@@@@@U Q@@@@R Z@@@@Q`{@@@@@N z@@@@@Q v@@@@@Q
+ .@@@@@@S@@@@@: -@@@@@e@@@@@@: z@@@@@Q v@@@@@Q
+ {@@@@@@@@@@U t@@@@@@@@@@e z@@@@@Q v@@@@@Q
+ `Q@@@@@@@@@' `Q@@@@@@@@@- z@@@@@Q v@@@@@Q
+ :@@@@@@@@| ;@@@@@@@@= z@@@@@Q v@@@@@Q
+ '2#@@Q6: ,eQ@@QZ~ /QQQQQg \QQQQQN \ No newline at end of file
diff --git a/src/logo/ascii/w/windows.txt b/src/logo/ascii/w/windows.txt
new file mode 100644
index 0000000..ffe0410
--- /dev/null
+++ b/src/logo/ascii/w/windows.txt
@@ -0,0 +1,16 @@
+$1 ,.=:!!t3Z3z.,
+ :tt:::tt333EE3
+$1 Et:::ztt33EEEL$2 @Ee., ..,
+$1 ;tt:::tt333EE7$2 ;EEEEEEttttt33#
+$1 :Et:::zt333EEQ.$2 $EEEEEttttt33QL
+$1 it::::tt333EEF$2 @EEEEEEttttt33F
+$1 ;3=*^```"*4EEV$2 :EEEEEEttttt33@.
+$3 ,.=::::!t=., $1`$2 @EEEEEEtttz33QF
+$3 ;::::::::zt33)$2 "4EEEtttji3P*
+$3 :t::::::::tt33.$4:Z3z..$2 ``$4 ,..g.
+$3 i::::::::zt33F$4 AEEEtttt::::ztF
+$3 ;:::::::::t33V$4 ;EEEttttt::::t3
+$3 E::::::::zt33L$4 @EEEtttt::::z3F
+$3{3=*^```"*4E3)$4 ;EEEtttt:::::tZ`
+$3 `$4 :EEEEtttt::::z7
+ "VEzjt:;;z>*` \ No newline at end of file
diff --git a/src/logo/ascii/w/windows_11.txt b/src/logo/ascii/w/windows_11.txt
new file mode 100644
index 0000000..1fd9667
--- /dev/null
+++ b/src/logo/ascii/w/windows_11.txt
@@ -0,0 +1,17 @@
+$1///////////////// $2/////////////////
+$1///////////////// $2/////////////////
+$1///////////////// $2/////////////////
+$1///////////////// $2/////////////////
+$1///////////////// $2/////////////////
+$1///////////////// $2/////////////////
+$1///////////////// $2/////////////////
+$1///////////////// $2/////////////////
+
+$3///////////////// $4/////////////////
+$3///////////////// $4/////////////////
+$3///////////////// $4/////////////////
+$3///////////////// $4/////////////////
+$3///////////////// $4/////////////////
+$3///////////////// $4/////////////////
+$3///////////////// $4/////////////////
+$3///////////////// $4///////////////// \ No newline at end of file
diff --git a/src/logo/ascii/w/windows_11_small.txt b/src/logo/ascii/w/windows_11_small.txt
new file mode 100644
index 0000000..45cde6f
--- /dev/null
+++ b/src/logo/ascii/w/windows_11_small.txt
@@ -0,0 +1,7 @@
+$1lllllll $2lllllll
+$1lllllll $2lllllll
+$1lllllll $2lllllll
+
+$3lllllll $4lllllll
+$3lllllll $4lllllll
+$3lllllll $4lllllll \ No newline at end of file
diff --git a/src/logo/ascii/w/windows_2025.txt b/src/logo/ascii/w/windows_2025.txt
new file mode 100644
index 0000000..1c02084
--- /dev/null
+++ b/src/logo/ascii/w/windows_2025.txt
@@ -0,0 +1,17 @@
+$1 ##%%%%%%%%% $2%%%%%%%%%##
+$1 ###%%%%%%%%%% $2%%%%%%%%%%###
+$1 ####%%%%%%%%%%% $2%%%%%%%%%%%####
+$1 ##%%%%%%%%%%%%%% $2%%%%%%%%%%%%%%##
+$1#%%%%%%%%%%%%%%%% $2%%%%%%%%%%%%%%%%#
+$1%%%%%%%%%%%%%%%%% $2%%%%%%%%%%%%%%%%%
+$1%%%%%%%%%%%%%%%%% $2%%%%%%%%%%%%%%%%%
+$1%%%%%%%%%%%%%%%%% $2#%%%%%%%%%%%%%%%%
+
+$3%%%%%%%%%%%%%%%%% $4#%%%%%%%%%%%%%%%%
+$3%%%%%%%%%%%%%%%%% $4%%%%%%%%%%%%%%%%%
+$3%%%%%%%%%%%%%%%%% $4%%%%%%%%%%%%%%%%%
+$3%%%%%%%%%%%%%%%%% $4%%%%%%%%%%%%%%%%#
+$3 ###%%%%%%%%%%%%% $4%%%%%%%%%%%%%%%##
+$3 ####%%%%%%%%%%% $4%%%%%%%%%%%#%####
+$3 ##%#%%%%%%%%% $4%%%%%%%%%%%######
+$3 ##%%%%%%%%% $4%%%%%%%%%######## \ No newline at end of file
diff --git a/src/logo/ascii/w/windows_8.txt b/src/logo/ascii/w/windows_8.txt
new file mode 100644
index 0000000..a357dda
--- /dev/null
+++ b/src/logo/ascii/w/windows_8.txt
@@ -0,0 +1,19 @@
+ $2..,
+ ....,,:;+ccllll
+$1 ...,,+:; $2cllllllllllllllllll
+$1,cclllllllllll $2lllllllllllllllllll
+$1llllllllllllll $2lllllllllllllllllll
+$1llllllllllllll $2lllllllllllllllllll
+$1llllllllllllll $2lllllllllllllllllll
+$1llllllllllllll $2lllllllllllllllllll
+$1llllllllllllll $2lllllllllllllllllll
+
+$3llllllllllllll $4lllllllllllllllllll
+$3llllllllllllll $4lllllllllllllllllll
+$3llllllllllllll $4lllllllllllllllllll
+$3llllllllllllll $4lllllllllllllllllll
+$3llllllllllllll $4lllllllllllllllllll
+$3`'ccllllllllll $4lllllllllllllllllll
+$3 `' \*:: $4:ccllllllllllllllll
+ ````''*::cll
+ `` \ No newline at end of file
diff --git a/src/logo/ascii/w/windows_95.txt b/src/logo/ascii/w/windows_95.txt
new file mode 100644
index 0000000..7cb886c
--- /dev/null
+++ b/src/logo/ascii/w/windows_95.txt
@@ -0,0 +1,18 @@
+$6 ___
+ .--=+++++=-:.
+. _ *%@@@@@@@@@@@@@@*
+ *:+:.__ :+* @@@ @"$5_*&%$6@@$4%&&&*$6"@@@
+ "+.-#+ +%* " _ $5++&&&%$6@@$4%&&&&&#$6@@
+$5" , $6%@@ $5&&&&&%$6@@$4%&&&&&#$6@@
+$5 * oo *# $6" _ $5&&&&&%$6@@$4%&&&&&#$6@@
+$5" , $6%@@ $5&&&&"$6@@@@#*$4"&&&$6@@
+.$5 * oo *# $6" _ %@@@@@@@@@@@@@@@@
+ *:+:.__ :=* %@@ @"$1**&%$6@@$3%&&&*$6"@@@
+ "+.-#+ +%* " _ $1&&&&&%$6@@$3%&&&&&#$6@@
+$1" , $6%@@ $1&&&&&%$6@@$3%&&&&&#$6@@
+$1 * oo *# $6" _ $1&&&&&%$6@@$3%&&&&&#$6@@
+$1" , $6%@@ $1&&*"$6%@@@@@@$3"*%&$6@@
+.$1 * oo *# $6" _ @@@@@@@@@@@@@@@@@
+ *:+:.__ :+# @@@ @%#=+""""""+==%#@
+ "+.-#+ +%* %+" " ":@
+ " " \ No newline at end of file
diff --git a/src/logo/ascii/w/wolfos.txt b/src/logo/ascii/w/wolfos.txt
new file mode 100644
index 0000000..f0a7fed
--- /dev/null
+++ b/src/logo/ascii/w/wolfos.txt
@@ -0,0 +1,5 @@
+__ __ _ __ ___ ____
+\ \ / /__ | |/ _|/ _ \/ ___|
+ \ \ /\ / / _ \| | |_| | | \___ \
+ \ V V / (_) | | _| |_| |___) |
+ \_/\_/ \___/|_|_| \___/|____/
diff --git a/src/logo/ascii/x.inc b/src/logo/ascii/x.inc
new file mode 100644
index 0000000..8c2341e
--- /dev/null
+++ b/src/logo/ascii/x.inc
@@ -0,0 +1,132 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo X[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_XCP_NG
+ // XCP-ng
+ {
+ .names = { "XCP-ng", "xenenterprise" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XCP_NG,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_BLACK,
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_YELLOW,
+ } },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XENIA
+ // Xenia
+ {
+ .names = { "Xenia" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XENIA,
+ .colors = {
+ FF_COLOR_FG_RED,
+ FF_COLOR_FG_LIGHT_BLACK,
+ },
+ .colorKeys = FF_COLOR_FG_DEFAULT,
+ .colorTitle = FF_COLOR_FG_RED,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XENIA_OLD
+ // Xenia_old
+ {
+ .names = { "Xenia_old" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XENIA_OLD,
+ .type = FF_LOGO_LINE_TYPE_ALTER_BIT,
+ .colors = {
+ FF_COLOR_FG_YELLOW,
+ FF_COLOR_FG_GREEN,
+ FF_COLOR_FG_RED,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XEROARCH
+ // XeroArch
+ {
+ .names = { "XeroArch" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XEROARCH,
+ .colors = {
+ FF_COLOR_FG_256 "50",
+ FF_COLOR_FG_256 "14",
+ FF_COLOR_FG_256 "50",
+ FF_COLOR_FG_256 "93",
+ FF_COLOR_FG_256 "16",
+ FF_COLOR_FG_256 "15",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XFERIENCE
+ // Xferience
+ {
+ .names = { "Xferience" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XFERIENCE,
+ .colors = {
+ FF_COLOR_FG_CYAN,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XUBUNTU
+ // Xubuntu
+ {
+ .names = { "Xubuntu" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XUBUNTU,
+ .colors = {
+ FF_COLOR_FG_256 "25",
+ FF_COLOR_FG_DEFAULT,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XRAY_OS
+ // Xray_OS
+ {
+ .names = { "Xray_OS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XRAY_OS,
+ .colors = {
+ FF_COLOR_FG_256 "15",
+ FF_COLOR_FG_256 "14",
+ FF_COLOR_FG_256 "16",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XINUX
+ // Xinux
+ {
+ .names = { "Xinux" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XINUX,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ FF_COLOR_FG_CYAN,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XJ380
+ // XJ380
+ {
+ .names = { "XJ380" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XJ380,
+ .colors = {
+ FF_COLOR_FG_RGB "0;162;232",
+ FF_COLOR_FG_RGB "255;242;0",
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_XIMPER
+ // Ximper
+ {
+ .names = { "Ximper" },
+ .lines = FASTFETCH_DATATEXT_LOGO_XIMPER,
+ .colors = {
+ FF_COLOR_FG_256 "21",
+ FF_COLOR_FG_256 "57",
+ FF_COLOR_FG_256 "92",
+ FF_COLOR_FG_256 "128",
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/x/xcp_ng.txt b/src/logo/ascii/x/xcp_ng.txt
new file mode 100644
index 0000000..a957e44
--- /dev/null
+++ b/src/logo/ascii/x/xcp_ng.txt
@@ -0,0 +1,15 @@
+ $3%$4#
+ $1(((($3%%%%%$4&&
+ $1#(((((((((($4&&&&
+ $1((((((((((($2#####$4&&
+ $1((((($5%.....$2%#######
+ $1(((( (((((($5%.......$2%####,
+ $1%((((((& (((((((($5%.....$2%####
+ $1(((((((((((((($2###########
+ $1(((( ((((((($2###########
+ $1( /(((($2###########
+ $6,,*..$2##########
+ $6,,,******$2## ######
+ $6,,,*,,,, $2## ######
+$6. .,,,, $2### ##
+ $6... \ No newline at end of file
diff --git a/src/logo/ascii/x/xenia.txt b/src/logo/ascii/x/xenia.txt
new file mode 100644
index 0000000..e1aa543
--- /dev/null
+++ b/src/logo/ascii/x/xenia.txt
@@ -0,0 +1,15 @@
+ **
+ * ** */
+ $2@$1///// / *** *** **** ***/
+ //////////////**** ** * ** *** **/
+ ,, ,,//////////* ****** ** ** ** /
+ , , ,,, /////******* ********* /
+ , ,,,,, ** ** ***********
+ ., ,,,**** ******* *** ///
+ ,, *********** ** ////
+ ,,,,, ******* //// //
+ ,,,,,,. ///// //
+ ,,, , ///////
+ ,,,, /////
+ ,, / /
+ /
diff --git a/src/logo/ascii/x/xenia_old.txt b/src/logo/ascii/x/xenia_old.txt
new file mode 100644
index 0000000..6ddf64b
--- /dev/null
+++ b/src/logo/ascii/x/xenia_old.txt
@@ -0,0 +1,21 @@
+$2 ,c. .c;
+$2 .$1KMMMk$2.... ....$1kMMMK$2.
+$2 .$1WMMMMMX$2..... .....$1KMMMMMW.
+$1 XMMMMMMM0$2..... ....$1OMMMMMMMN
+$1 dMMMMMMMMM;$2.... ..... ....,$1MMMMMMMMMd
+$1 WMMMMMMMMMl;$3okKKKKKKKKKOo$1;cMMMMMMMMMM
+$1 'MMMMMMMNX$2K0$3KKKKKKKKKKKKKKK$20K$1XNMMMMMMM;
+$1 oMMMMMMM$2Oxo$3KKKKKKKKKKKKKKKKK$2oxO$1MMMMMMMd
+$1 dMMMMMMM$2dxxx$3KKKKKKKKKKKKKKK$2xxxd$1NMMMMMMk
+$1 :MMMMX0$2xxxxxx$30KKKKKKKK0KK0$2xxxxxx0$1XMMMMc
+$1 MMMO$2xxxxxxxxdx$3kdd$20x0$3ddk$2xdxxxxxxxx$1OMMM
+$1 ;$2xxkxddxxxxdodxxxxdxdxxxxdodxxxxddxkxx$1;
+$1dxd$2KMMMWXo$1'.....'$2cdxxxdc$1'.....'$2lXWMMMX$1dxd
+$1cxd$2XMMMN$1,..........$2dxd$1'.........'$2XMMMN$1dxl
+$1 .xx$2WMMl$1...''....'.;k:.'....''...$2lMMW$1xx.
+$1..:kXMMx..'....''..kMk..''....'..xMMXkc..
+$1 dMMMMMMd.....'...xMMMx...''....dMMMMMMx
+$1 kMMMMWOoc:coOkolllokOoc:coOWMMMMO
+$1 .MMMMMMMMl$2...$1lNMMMMMMM.
+$1 KMMMMMMX$2l$1KMMMMMMX
+$1 .MMMMMMMMM. \ No newline at end of file
diff --git a/src/logo/ascii/x/xeroarch.txt b/src/logo/ascii/x/xeroarch.txt
new file mode 100644
index 0000000..c30a2a2
--- /dev/null
+++ b/src/logo/ascii/x/xeroarch.txt
@@ -0,0 +1,19 @@
+$5 ████
+$5 ███$2▓▓$5███
+$5 ███$2▓▓▓▓$5███
+$5 ███$2▓▓▓▓▓▓$5███
+$5 ███$2▓▓▓▓▓▓▓▓$5███
+$5 ███$2▓▓▓▓▓▓▓▓▓▓$5███
+$5 ███$2▓▓▓▓▓▓▓▓▓▓▓▓$5███
+$5 ███$2▓▓▓▓▓▓$5██$2▓▓▓▓▓▓$5▓██
+$5 ███$2▓▓▓▓▓▓$5████$2▓▓▓▓▓▓$5▓██
+$5 ██▓$2▓▓▓▓▓▓$5█▓$3▓▓$5▓█$2▓▓▓▓▓▓$5▓██
+$5 █████▓▒▒▒██$3▓$4▒▒$3▓$5██▒▒▒▓█████
+$5 ███$6▓▓▓▓▓$5████$3▓$4▒▒▒▒$3▓$5▓███$6▓▓▓▓▓$5███
+$5 ███$6▓▓▓▓▓▓▓▓▓$5███▓▓███$6▓▓▓▓▓▓▓▓▓$5███
+$5 ███$6▓▓▓▓▓▓▓$2▓▓$6▓▓▓▓▓$5█$6▓▓▓▓▓▓▓▓▓▓▓▓▓$5███
+$5 ███$6▓▓▓▓▓▓$2▓▓$5▒▒$6$2▓▓$6▓▓▓$5▓$6▓▓▓▓$4()$6▓▓▓▓▓▓▓▓$5███
+$5 ███$6▓▓▓▓▓$2▓▓$5▒▒▒▒▒▒$6$2▓▓$6▓$5▓$6▓▓$3()$6▓▓$3()$6▓▓▓▓▓▓▓$5███
+$5███$6▓▓▓▓▓▓▓▓$2▓▓$5▒▒$6$2▓▓$6▓▓▓$5▓$6▓▓▓▓$4()$6▓▓▓▓▓▓▓▓▓▓$5███
+$5██$6▓▓▓▓▓▓▓▓▓▓▓$2▓▓$6▓▓▓▓▓$5▓$6▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓$5██
+$5████████████████████████████████████████ \ No newline at end of file
diff --git a/src/logo/ascii/x/xferience.txt b/src/logo/ascii/x/xferience.txt
new file mode 100644
index 0000000..dd61400
--- /dev/null
+++ b/src/logo/ascii/x/xferience.txt
@@ -0,0 +1,19 @@
+ ``--:::::::-.`
+ .-/+++ooooooooo+++:-`
+ `-/+oooooooooooooooooo++:.
+ -/+oooooo/+ooooooooo+/ooo++:`
+ `/+oo++oo. .+oooooo+.-: +:-o+-
+ `/+o/. -o. :oooooo+ ```:.+oo+-
+`:+oo- -/` :oooooo+ .`-`+oooo/.
+.+ooo+. .` `://///+-+..oooooo+:`
+-+ooo:` ``.-+oooooo+/`
+-+oo/` :+oooo/.
+.+oo: ..-/. . -+oo+/`
+`/++- -:::++::/. -+oo+-
+ ./o: `:///+- `./ooo+:`
+ .++- `` /-` -:/+oooo+:`
+ .:+/:`` `-:ooooooo++-
+ ./+o+//:...../+oooooooo++:`
+ `:/++ooooooooooooo++/-`
+ `.-//++++++//:-.`
+ `````` \ No newline at end of file
diff --git a/src/logo/ascii/x/ximper.txt b/src/logo/ascii/x/ximper.txt
new file mode 100644
index 0000000..a803975
--- /dev/null
+++ b/src/logo/ascii/x/ximper.txt
@@ -0,0 +1,13 @@
+$1 ⡹⣶⣄⡀ $2 $3 $4 ⣠⣶⠏⡀
+$1 ⣷⡘⣿⣿⣶⣤⣀ $2 $3 $4⢀⣠⣶⣿⣿⢋⣼⠁
+$1 ⣿⣷⡌⢿⣿⣿⣿⣷⣦⣄$2 $3 ⣠⣴⣾$4⣿⣿⣿⡿⢃⣾⣿
+$1 ⣿⣿⣿⣎⢻⣿⣿⣿⣿⣿$2⣿⣶⡄ ⢠⣶$3⣿⣿⣿⣿$4⣿⣿⡟⢡⣿⣿⣿
+$1 ⢸⣿⣿⣿⣦⠻⣿⣿⣿⣿$2⠟⣩⣾⡇⣷⣍$3⠻⣿⣿⣿$4⣿⠟⣰⣿⣿⣿⡏
+$1 ⠸⠟⣛⣋⣭⣦⡙⣿⢟⣵$2⣿⣿⣿⠇⣿⣿$3⣷⣬⡛⢿$4⢏⣴⣬⣝⣛⡻⠇
+$1 ⣠⣍⠻⠟⠛⠉⠁ ⠻⣿$2⣿⣿⣿⠤⣿⣿$3⣿⣿⠟ $4⠈⠉⠛⠻⠟⣫⣤
+$1 ⢀⣼⡿⡋⣠⠠⡀ ⠈$2⢛⣫⡇⣤⠨⣝$3⡛⠁ $4 ⣀⡄⣤⠙⠿⣧⡀
+$1 ⢀⠞⣡⠞⣼⣿⣧⢹⣶⡄⣤⣶⣾$2⣿⠋⣼⣿⣧⠙$3⣿⣷⣶⣄$4⢠⣾⡟⣼⣿⣧⠳⣌⠳⡀
+$1⢀⣡⠾⢋⣾⣿⠿⣋⣤⢻⡇⢿⣿⡟$2⣱⠑⠟⠛⠻⠂$3⣎⢻⣿⣿$4⢸⡟⣠⣙⠿⣿⣷⡙⠷⣌
+$1 ⢠⡾⢟⣡⣾⣿⣿⣆⠇⢸⢋⣾$2⣿⣷⣄ ⣠⣴$3⣿⣷⡹⣿$4⠸⣰⣿⣿⣷⣌⡛⢷⡄
+$1 ⠐⣫⣴⣿⠿⠿⠿⠿⠛⠂⠰⢿⣿$2⣿⠟⠁ ⠈⠛$3⢿⣿⣿⠆$4⠐⠛⠻⠿⠿⠿⣿⣦⣍
+$1 ⠉$2 $3 ⠉ $4 \ No newline at end of file
diff --git a/src/logo/ascii/x/xinux.txt b/src/logo/ascii/x/xinux.txt
new file mode 100644
index 0000000..be34e68
--- /dev/null
+++ b/src/logo/ascii/x/xinux.txt
@@ -0,0 +1,14 @@
+$1 * $2======= ===== ======= $1*
+$1 **** $2======= ======= ======= $1***
+$1 ****** $2======= ======= ======= $1******
+$1 ******* $2======== ======= ======= $1*******
+$1 ******* $2======== ============= $1*******
+$1 ******* $2======== ========== $1*******
+$1 ******* $2======== ======== $1*******
+$1 ******** $2======= ======= $1*********
+$1 *********** $2==== ======= $1***********
+$1 ************* $2== ======= $1*************
+$1 ******* ******* $2======== $1******* *******
+$1 ******* ******* $2====== $1******* *******
+$1******* ******* $2==== $1******* *******
+$1 ***** ******* $2== $1******* *****
diff --git a/src/logo/ascii/x/xj380.txt b/src/logo/ascii/x/xj380.txt
new file mode 100644
index 0000000..fd86e45
--- /dev/null
+++ b/src/logo/ascii/x/xj380.txt
@@ -0,0 +1,19 @@
+ %
+ *++++++%
+ *+++++++++++++%
+ *++++++++++++++++++++%
+ *++++++++++++++++++++++++++%
+ *++++++*++++++++++$2%%$1+++++++++++++%
+ *+++++++++++$2*%%*$1+++++++++++$2%$1+++++++++++%
+ *++++++++++++++++$2%%%%$1+++++++++++++$2%$1+++++++++%
+*++++++++++++++++++$2*%*$1+$2%%%%%%%%%$1++++++$2%$1++++++++%
+*++++++++++++++$2**$2%%%%%**$2%*$1++$2%%$1++++++++$2%%$1+++++++%
+*+++++++++++$2%%%*$1++$2*%$1++++$2%%%%*$1++++++++$2%%%%$1++++++%
+*+++++$2%%%*$1++++$2%%%$1+$2%%$1++++$2%%%$1++++++++++$2*%%*$1++++++%
+*+++++$2%%%%$1+++++++$2%%*$1++$2*%%*%*$1+++++++++++++++++++%
+*++++++$2%$1+++++++++$2%%%%%%$1+++$2%%$1+++++++++++++++++++%
+*++++++$2%*$1+++++++$2*%+%%*%%*$1++$2%%$1++++++++++++++++++%
+*+++++++$2%$1+++++++$2%%%*$1++++$2*%%*%*$1+++++++++++++++++%
+*++++++++$2*%*$1+++$2%%*$1+++++++++$2%%%$1+++++++++++++++++%
+*++++++++++++$2%%$1++++++++++++++$2%$1+++++++++++++++++%
+*++++++++++++++++++++++++++++++++++++++++++++++% \ No newline at end of file
diff --git a/src/logo/ascii/x/xray_os.txt b/src/logo/ascii/x/xray_os.txt
new file mode 100644
index 0000000..8b2d66d
--- /dev/null
+++ b/src/logo/ascii/x/xray_os.txt
@@ -0,0 +1,21 @@
+ $1rrrrrraaaaaaaaaaaayyyy
+ $1xxrrrrrrrraaaaaaaaaaaayyyyyyyyy
+ $1xxxxxrrrrrrrraaaaaaaaaaaayyyyyyy$3yyyyy$2yyyyyyyyyy
+ $1xxxxxxxrrrrrrrraaaaa $2aaaaayyyyyyyyyyyyyyyyyyy
+ $1xxxxxx$3xxx$1rrrrrrrraaaa $2aaaaaaayyyyyyyyyyyyyyyyy
+ $1xxxxxx$3xxxxxr$1rrrrrrraa $2aaaaaaaaay$3yyyyyyyyy$2yyyy $1yy
+ $1xxxxxxx$3xxx$1xxrrrrrrrra $2aaaaaaaaa$3ayyyyyyyyyyyy$1yyyyyy
+ $1xxxxxxxxxxxxrrrrrrrr $2aaaaaaaaaaa$3yyyyyyyyyyyy$1yyyyyyy
+$1xxxxxxxxxxxxxrrrrrr $2raaaaaaaaaaaayyy$3yyyyyyyy$1yyyyyy$1yyy
+$1xxxxxxxxxxxxxrrrrr $2rraaaaaaaaaaaayyyyy$3yy$2yyyyyy $1yyyyyy
+$1xxxxxxxx$3xxxx$1xrrrrr$2rr$3raaaaaaa$2aaaaayyyyyyyyyy $1yyyyyyyyy
+$1xxxxxxx$3xxxx$1xxrrrrrrr$3raaaaaa$2aaaaaayyyyyyy $1yyyyyyyyyyyy
+$1xxxxxxx$3xxx$1xxxrrrrrrrr$3aaaaaa$2aaaaaayyyy $1yyyyyyyyyyyyyy
+ $1xxxxxxxxxxxxrrrrrrrra $2aaaaaaaaaay $1yyyyyyyyyyyyyyyy
+ $1xxxxxxxxxxxrrrrrrr $2aaaaaaaaaaaayyyy$1yyyyyyyyyyyyy
+ $1xxxxxxx$3xxxrr$1rrrr $2raaaaaaaaaaaa $1yyyyyyyyyyyyyyy
+ $1xxxxxxxxrrrr $2rrraaaaaaaaa $1aayyyyyyyyyyyyyy
+ $1xxxxxxrrrrrrr $2aaaaaa $1aaaayyyyyyyyyyyy
+ $1xxxrrrrrr $2raaa $1aaaaaaayyyyyyyyy
+ $1rrrr $2rr $1aaaaaaaaaayyyyyy
+ $2r $1aaaaaaaaaa \ No newline at end of file
diff --git a/src/logo/ascii/x/xubuntu.txt b/src/logo/ascii/x/xubuntu.txt
new file mode 100644
index 0000000..5b52ed4
--- /dev/null
+++ b/src/logo/ascii/x/xubuntu.txt
@@ -0,0 +1,19 @@
+ __ygg@@@@@@@@@ggy__
+ _yg@@@@@@@@@@@@@@@@@@@@@gy_
+ _a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@y_
+ _a@@@@@@@@@@@@@@@@@@@@@@@$2#$1@@@@@@@@@g_
+ a@@@@@@@@@@@@@$2###$1@@@@@@@@$2##$1@@@@$2##$1@@@@@k
+ g@@@@@@@$2###$1@@@$2#####$1@@@@@@@$2##$1@@$2###$1@@@@@@@k
+ a@@@@@@@@$2#####$1@$2#####$1@@@@@@$2##$1@@$2###$1@@@@@@@@@k
+j@@@@@@@@@$2############$1@@@@@$2##$1@$2###$1@@@@@@@@@@@k
+g@@@@@@@@@$2#####################$1@@@@@@@@@@@@@@
+@@@@@@@@@$2##########################$1@@@@@@@@@@
+0@@@@@@@@$2###########################$1@@@@@@@@@
+~@@@@@@@$2############################$1@@@@@@@@F
+ 9@@@@@@$2##########################$1@@@@@@@@@P
+ 4@@@@@@$2######################$1@@@@@@@@@@@P
+ ~@@@@@@$2################$1@@@@@@@@@@@@@@@F
+ `4@@@@@@$2#######$1@@@@@@@@@@@@@@@@@@@@P`
+ `~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`
+ ~~4@@@@@@@@@@@@@@@@@@@@@P~~
+ `~~=R@@@@@@@@@P=~~~ \ No newline at end of file
diff --git a/src/logo/ascii/y.inc b/src/logo/ascii/y.inc
new file mode 100644
index 0000000..27caa86
--- /dev/null
+++ b/src/logo/ascii/y.inc
@@ -0,0 +1,31 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo Y[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_YIFFOS
+ // YiffOS
+ {
+ .names = { "YiffOS" },
+ .lines = FASTFETCH_DATATEXT_LOGO_YIFFOS,
+ .colors = {
+ FF_COLOR_FG_256 "93",
+ FF_COLOR_FG_256 "92",
+ },
+ },
+ #endif
+
+ #ifdef FASTFETCH_DATATEXT_LOGO_YAKUBOS
+ // YiffOS
+ {
+ .names = { "YakubOS", "yakubos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_YAKUBOS,
+ .colors = {
+ FF_COLOR_FG_256 "130",
+ FF_COLOR_FG_256 "255",
+ },
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/y/yakubos.txt b/src/logo/ascii/y/yakubos.txt
new file mode 100644
index 0000000..f123cda
--- /dev/null
+++ b/src/logo/ascii/y/yakubos.txt
@@ -0,0 +1,20 @@
+$1 ...;;;;;;;;....
+$1 ...;;;;;;;;;;;;;;;;;..
+$1 ..;;;;;;;;;;;;;;;;;;;;;;;;..
+$1 .;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
+$1 .;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;
+$1 .;;;;;;:$2YYY$1:::::::::::::::$2YY$1:;;;;;;;
+$1 .;;;;;;;:$2Y@@Y$1:::::::::::::$2Y@@Y$1;;;;;;;;
+$1.;;;;;;;;;:$2Y@@Y$1:::::::::::$2Y@@Y$1:;;;;;;;;.
+$1.;;;;;;;;;;:$2@@Y$1::::::::::$2Y@@Y$1:;;;;;;;;;;
+$1;;$2YYYYYY$1::;:$2Y@@Y$1:::::::::$2Y@Y$1::;;::$2YYYY$1;;
+$1.;:$2YYY@@@@YYYY@@Y$1:::::::$2Y@@YYYYY@@@YYY$1:;
+$1 ;;;;;::$2YYYY@@@@@Y$1:::::$2Y@@@@@YYYY$1::;;;;.
+$1 .;;;;;;;;;::$2YYY@@@YYY@@@YYY$1::;;;;;;;;;
+$1 ;;;;;;;;;:::::$2YY@@@@@Y$1::::::;;;;;;;;
+$1 .;;;;;;;;;;;;;;$2YY@Y$1:;;;;;;;;;;;;;;
+$1 ;;;;;;;;;;;;;;::;;;;;;;;;;;;;;.
+$1 .;;;;;;;;;;;;;;;;;;;;;;;;;
+$1 ;;;;;;;;;;;;;;;;;;;;.
+$1 ;;;;;;;;;;.
+
diff --git a/src/logo/ascii/y/yiffos.txt b/src/logo/ascii/y/yiffos.txt
new file mode 100644
index 0000000..0943284
--- /dev/null
+++ b/src/logo/ascii/y/yiffos.txt
@@ -0,0 +1,19 @@
+ NK
+ NxKXW
+ WOlcoXW
+ 0olccloxNW
+ XxllllllloxOKNW
+ Nklllllllllllodk0XWW
+ N0dllllllllllllllodxOKNW
+ WKxlllllllllllllllllllooxOKN
+ WKdllllllllllllllooooooooooooo
+ Nxllllllllllllllloooooooooo$2oooo
+$1 XXNOolllllllllllloooooooooo$2oooooo
+$1 WX0xolllllllllllooooooooooo$2oooooooo
+$1XWN0xolllllllllloooooooo$2ooooooooooooo
+$1 Kkdolllllllooooddddd$2doooooooooooddo
+$1 K00XNW$2 WX0xdooooooddddddd
+ WXOxdoooooodddd
+ WXOxdddddddd
+ NX0ddd
+ WN0d \ No newline at end of file
diff --git a/src/logo/ascii/z.inc b/src/logo/ascii/z.inc
new file mode 100644
index 0000000..393c906
--- /dev/null
+++ b/src/logo/ascii/z.inc
@@ -0,0 +1,42 @@
+#include "../logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+static const FFlogo Z[] = {
+ #ifdef FASTFETCH_DATATEXT_LOGO_ZORIN
+ // Zorin
+ {
+ .names = { "Zorin" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ZORIN,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ZOS
+ // Z/OS
+ {
+ .names = { "z/OS", "zos" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ZOS,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ },
+ #endif
+ #ifdef FASTFETCH_DATATEXT_LOGO_ZRAXYL
+ // Zraxyl
+ {
+ .names = { "Zraxyl" },
+ .lines = FASTFETCH_DATATEXT_LOGO_ZRAXYL,
+ .colors = {
+ FF_COLOR_FG_BLUE,
+ },
+ .colorKeys = FF_COLOR_FG_BLUE,
+ .colorTitle = FF_COLOR_FG_BLUE,
+ },
+ #endif
+ // LAST
+ {},
+};
diff --git a/src/logo/ascii/z/zorin.txt b/src/logo/ascii/z/zorin.txt
new file mode 100644
index 0000000..886f74b
--- /dev/null
+++ b/src/logo/ascii/z/zorin.txt
@@ -0,0 +1,17 @@
+ `osssssssssssssssssssso`
+ .osssssssssssssssssssssso.
+ .+oooooooooooooooooooooooo+.
+
+
+ `::::::::::::::::::::::. .:`
+ `+ssssssssssssssssss+:.` `.:+ssso`
+.ossssssssssssssso/. `-+ossssssso.
+ssssssssssssso/-` `-/osssssssssssss
+.ossssssso/-` .-/ossssssssssssssso.
+ `+sss+:. `.:+ssssssssssssssssss+`
+ `:. .::::::::::::::::::::::`
+
+
+ .+oooooooooooooooooooooooo+.
+ -osssssssssssssssssssssso-
+ `osssssssssssssssssssso` \ No newline at end of file
diff --git a/src/logo/ascii/z/zos.txt b/src/logo/ascii/z/zos.txt
new file mode 100644
index 0000000..15884dd
--- /dev/null
+++ b/src/logo/ascii/z/zos.txt
@@ -0,0 +1,7 @@
+ // OOOOOOO SSSSSSS
+ // OO OO SS
+ zzzzzz // OO OO SS
+ zz // OO OO SSSS
+ zz // OO OO SS
+ zz // OO OO SS
+zzzzzz // OOOOOOO SSSSSSS \ No newline at end of file
diff --git a/src/logo/ascii/z/zraxyl.txt b/src/logo/ascii/z/zraxyl.txt
new file mode 100644
index 0000000..ee30979
--- /dev/null
+++ b/src/logo/ascii/z/zraxyl.txt
@@ -0,0 +1,10 @@
+ __________
+ / __________ \
+ / / \ \
+ / / .-"````"-. \ \
+| | |/ \| | |
+| | Z R A X Y L | |
+| | \ ¯¯¯¯¯¯¯¯¯¯¯¯ / | |
+ \ \ `-.___..___.-' / /
+ '.'._ _.' .'
+ '-.| M - C | .-' \ No newline at end of file
diff --git a/src/logo/builtin.c b/src/logo/builtin.c
new file mode 100644
index 0000000..d056315
--- /dev/null
+++ b/src/logo/builtin.c
@@ -0,0 +1,67 @@
+#include "logo.h"
+#include "logo_builtin.h"
+#include "common/color.h"
+
+const FFlogo ffLogoUnknown = {
+ .names = { "unknown" },
+ .lines = FASTFETCH_DATATEXT_LOGO_UNKNOWN,
+ .colors = {
+ FF_COLOR_FG_DEFAULT,
+ },
+};
+
+#include "./ascii/a.inc"
+#include "./ascii/b.inc"
+#include "./ascii/c.inc"
+#include "./ascii/d.inc"
+#include "./ascii/e.inc"
+#include "./ascii/f.inc"
+#include "./ascii/g.inc"
+#include "./ascii/h.inc"
+#include "./ascii/i.inc"
+#include "./ascii/j.inc"
+#include "./ascii/k.inc"
+#include "./ascii/l.inc"
+#include "./ascii/m.inc"
+#include "./ascii/n.inc"
+#include "./ascii/o.inc"
+#include "./ascii/p.inc"
+#include "./ascii/q.inc"
+#include "./ascii/r.inc"
+#include "./ascii/s.inc"
+#include "./ascii/t.inc"
+#include "./ascii/u.inc"
+#include "./ascii/v.inc"
+#include "./ascii/w.inc"
+#include "./ascii/x.inc"
+#include "./ascii/y.inc"
+#include "./ascii/z.inc"
+
+const FFlogo* ffLogoBuiltins[] = {
+ A,
+ B,
+ C,
+ D,
+ E,
+ F,
+ G,
+ H,
+ I,
+ J,
+ K,
+ L,
+ M,
+ N,
+ O,
+ P,
+ Q,
+ R,
+ S,
+ T,
+ U,
+ V,
+ W,
+ X,
+ Y,
+ Z,
+};
diff --git a/src/logo/image/im6.c b/src/logo/image/im6.c
new file mode 100644
index 0000000..3e9d722
--- /dev/null
+++ b/src/logo/image/im6.c
@@ -0,0 +1,27 @@
+#ifdef FF_HAVE_IMAGEMAGICK6
+
+ #include "image.h"
+ #include "common/library.h"
+
+ #include <magick/MagickCore.h>
+
+static FF_LIBRARY_SYMBOL(ResizeImage)
+
+ static void* logoResize(const void* image, size_t width, size_t height, void* exceptionInfo) {
+ return ffResizeImage(image, width, height, UndefinedFilter, 1.0, exceptionInfo);
+}
+
+FFLogoImageResult ffLogoPrintImageIM6(FFLogoRequestData* requestData) {
+ FF_LIBRARY_LOAD(imageMagick, FF_LOGO_IMAGE_RESULT_INIT_ERROR, "libMagickCore-6.Q16HDRI" FF_LIBRARY_EXTENSION, 8, "libMagickCore-6.Q16" FF_LIBRARY_EXTENSION, 8)
+ FF_LIBRARY_LOAD_SYMBOL_ADDRESS(imageMagick, ffResizeImage, ResizeImage, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+
+ FFLogoImageResult result = ffLogoPrintImageImpl(requestData, &(FFIMData) {
+ .resizeFunc = logoResize,
+ .library = imageMagick,
+ });
+
+ imageMagick = NULL; // leak imageMagick to prevent fastfetch from crashing #552
+ return result;
+}
+
+#endif
diff --git a/src/logo/image/im7.c b/src/logo/image/im7.c
new file mode 100644
index 0000000..636a5fa
--- /dev/null
+++ b/src/logo/image/im7.c
@@ -0,0 +1,28 @@
+#ifdef FF_HAVE_IMAGEMAGICK7
+
+ #include "image.h"
+ #include "common/library.h"
+
+ #include <MagickCore/MagickCore.h>
+
+static FF_LIBRARY_SYMBOL(ResizeImage)
+
+ static void* logoResize(const void* image, size_t width, size_t height, void* exceptionInfo) {
+ return ffResizeImage(image, width, height, UndefinedFilter, exceptionInfo);
+}
+
+FFLogoImageResult ffLogoPrintImageIM7(FFLogoRequestData* requestData) {
+ FF_LIBRARY_LOAD(imageMagick, FF_LOGO_IMAGE_RESULT_INIT_ERROR, "libMagickCore-7.Q16HDRI" FF_LIBRARY_EXTENSION, 11, "libMagickCore-7.Q16" FF_LIBRARY_EXTENSION, 11, "libMagickCore-7.Q16HDRI-10" FF_LIBRARY_EXTENSION, -1 // Required for Windows
+ )
+ FF_LIBRARY_LOAD_SYMBOL_ADDRESS(imageMagick, ffResizeImage, ResizeImage, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+
+ FFLogoImageResult result = ffLogoPrintImageImpl(requestData, &(FFIMData) {
+ .resizeFunc = logoResize,
+ .library = imageMagick,
+ });
+
+ imageMagick = NULL; // leak imageMagick to prevent fastfetch from crashing #552
+ return result;
+}
+
+#endif
diff --git a/src/logo/image/image.c b/src/logo/image/image.c
new file mode 100644
index 0000000..6dd3212
--- /dev/null
+++ b/src/logo/image/image.c
@@ -0,0 +1,1032 @@
+#include "image.h"
+#include "common/io.h"
+#include "common/printing.h"
+#include "common/processing.h"
+#include "common/strutil.h"
+#include "common/base64.h"
+#include "detection/terminalsize/terminalsize.h"
+
+#include <limits.h>
+#include <math.h>
+
+#ifdef __APPLE__
+ #include <sys/syslimits.h>
+#elif _WIN32
+ #include <windows.h>
+#elif __linux__
+ #include <sys/sendfile.h>
+#elif __sun
+ #include <sys/termios.h>
+#endif
+
+static bool printImageIterm(bool printError) {
+ const FFOptionsLogo* options = &instance.config.logo;
+ FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate();
+ if (!ffAppendFileBuffer(options->source.chars, &buf)) {
+ if (printError) {
+ fputs("Logo (iterm): Failed to load image file\n", stderr);
+ }
+ return false;
+ }
+
+ fflush(stdout);
+
+ bool inTmux = false;
+ {
+ const char* term = getenv("TERM");
+ inTmux = term && (ffStrStartsWith(term, "screen") || ffStrStartsWith(term, "tmux"));
+ }
+
+ FF_STRBUF_AUTO_DESTROY base64 = ffBase64EncodeStrbuf(&buf);
+ ffStrbufClear(&buf);
+
+ if (!options->width || !options->height) {
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;%uH", (unsigned) options->paddingTop + 1, (unsigned) options->paddingLeft + 1);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ ffStrbufAppendNC(&buf, options->paddingTop, '\n');
+ ffStrbufAppendNC(&buf, options->paddingLeft, ' ');
+ } else if (options->position == FF_LOGO_POSITION_RIGHT) {
+ if (!options->width) {
+ if (printError) {
+ fputs("Logo (iterm): Must set logo width when using position right\n", stderr);
+ }
+ return false;
+ }
+ ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;9999999H\e[%uD", (unsigned) options->paddingTop + 1, (unsigned) options->paddingRight + options->width);
+ }
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\ePtmux;\e");
+ }
+
+ if (options->width) {
+ ffStrbufAppendF(&buf, "\e]1337;File=inline=1;width=%u:%s\a", (unsigned) options->width, base64.chars);
+ } else {
+ ffStrbufAppendF(&buf, "\e]1337;File=inline=1:%s\a", base64.chars);
+ }
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\e\\");
+ }
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+
+ if (options->position == FF_LOGO_POSITION_LEFT || options->position == FF_LOGO_POSITION_RIGHT) {
+ uint16_t X = 0, Y = 0;
+ const char* error = ffGetTerminalResponse("\e[6n", 2, "%*[^0-9]%hu;%huR", &Y, &X);
+ if (error) {
+ fprintf(stderr, "\nLogo (iterm): fail to query cursor position: %s\n", error);
+ return true; // We already printed image logo, don't print ascii logo then
+ }
+ if (X < options->paddingLeft + options->width) {
+ X = (uint16_t) (options->paddingLeft + options->width);
+ }
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = X + options->paddingRight - 1;
+ }
+ instance.state.logoHeight = Y;
+ fputs("\e[H", stdout);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffPrintCharTimes('\n', options->paddingRight);
+ }
+ } else {
+ ffStrbufAppendNC(&buf, options->paddingTop, '\n');
+ if (options->position == FF_LOGO_POSITION_RIGHT) {
+ ffStrbufAppendF(&buf, "\e[9999999C\e[%uD", (unsigned) options->paddingRight + options->width);
+ } else if (options->paddingLeft) {
+ ffStrbufAppendF(&buf, "\e[%uC", (unsigned) options->paddingLeft);
+ }
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\ePtmux;\e");
+ }
+ ffStrbufAppendF(&buf, "\e]1337;File=inline=1;width=%u;height=%u;preserveAspectRatio=%u:%s\a", (unsigned) options->width, (unsigned) options->height, (unsigned) options->preserveAspectRatio, base64.chars);
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\e\\");
+ }
+ ffStrbufAppendC(&buf, '\n');
+
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = options->width + options->paddingLeft + options->paddingRight;
+ instance.state.logoHeight = options->paddingTop + options->height;
+ ffStrbufAppendF(&buf, "\e[%uA", (unsigned) instance.state.logoHeight);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffStrbufAppendNC(&buf, options->paddingRight, '\n');
+ } else if (options->position == FF_LOGO_POSITION_RIGHT) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffStrbufAppendF(&buf, "\e[1G\e[%uA", (unsigned) options->height);
+ }
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+ }
+
+ return true;
+}
+
+static bool printImageKittyIcat(bool printError) {
+ const FFOptionsLogo* options = &instance.config.logo;
+
+ if (!ffPathExists(options->source.chars, FF_PATHTYPE_FILE)) {
+ if (printError) {
+ fputs("Logo (kitty-icat): Failed to load image file\n", stderr);
+ }
+ return false;
+ }
+
+ fflush(stdout);
+
+ FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate();
+
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;%uH", (unsigned) options->paddingTop + 1, (unsigned) options->paddingLeft + 1);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ if (!options->width) {
+ ffStrbufAppendNC(&buf, options->paddingTop, '\n');
+ ffStrbufAppendNC(&buf, options->paddingLeft, ' ');
+ } else {
+ if (printError) {
+ fputs("Logo (kitty-icat): position top is not supported when logo width is set\n", stderr);
+ }
+ return false;
+ }
+ } else if (options->position == FF_LOGO_POSITION_RIGHT) {
+ if (printError) {
+ fputs("Logo (kitty-icat): position right is not supported\n", stderr);
+ }
+ return false;
+ }
+
+ uint32_t prevLength = buf.length;
+
+ const char* error = NULL;
+
+ if (options->width) {
+ char place[64];
+ snprintf(place,
+ ARRAY_SIZE(place),
+ "--place=%ux%u@%ux%u",
+ options->width,
+ options->height == 0 ? 9999 : options->height,
+ options->paddingLeft + 1,
+ options->paddingTop + 1);
+
+ error = ffProcessAppendStdOut(&buf, (char*[]) {
+ "kitten",
+ "icat",
+ "-n",
+ "--align=center",
+ place,
+ "--scale-up",
+ options->source.chars,
+ NULL,
+ });
+ } else {
+ error = ffProcessAppendStdOut(&buf, (char*[]) {
+ "kitten",
+ "icat",
+ "-n",
+ "--align=left",
+ options->source.chars,
+ NULL,
+ });
+ }
+ if (error) {
+ if (printError) {
+ fprintf(stderr, "Logo (kitty-icat): running `kitten icat` failed %s\n", error);
+ }
+ return false;
+ }
+
+ if (buf.length == prevLength) {
+ if (printError) {
+ fputs("Logo (kitty-icat): `kitten icat` returned empty output\n", stderr);
+ }
+ return false;
+ }
+
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+
+ if (options->position == FF_LOGO_POSITION_LEFT || options->position == FF_LOGO_POSITION_RIGHT) {
+ uint16_t X = 0, Y = 0;
+ const char* error = ffGetTerminalResponse("\e[6n", 2, "%*[^0-9]%hu;%huR", &Y, &X);
+ if (error) {
+ fprintf(stderr, "\nLogo (kitty-icat): fail to query cursor position: %s\n", error);
+ return true; // We already printed image logo, don't print ascii logo then
+ }
+ if (X < options->paddingLeft + options->width) {
+ X = (uint16_t) (options->paddingLeft + options->width);
+ }
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = X + options->paddingRight - 1;
+ }
+ instance.state.logoHeight = Y;
+ fputs("\e[H", stdout);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffPrintCharTimes('\n', options->paddingRight);
+ }
+
+ return true;
+}
+
+static bool printImageKittyDirect(bool printError) {
+ const FFOptionsLogo* options = &instance.config.logo;
+
+ if (!ffPathExists(options->source.chars, FF_PATHTYPE_FILE)) {
+ if (printError) {
+ fputs("Logo (kitty-direct): Failed to load image file\n", stderr);
+ }
+ return false;
+ }
+
+ fflush(stdout);
+
+ bool inTmux = false;
+ {
+ const char* term = getenv("TERM");
+ inTmux = term && (ffStrStartsWith(term, "screen") || ffStrStartsWith(term, "tmux"));
+ }
+
+ FF_STRBUF_AUTO_DESTROY base64 = ffBase64EncodeStrbuf(&options->source);
+ FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate();
+
+ if (!options->width || !options->height) {
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ // We must clear the entre screen to make sure that terminal buffer won't scroll up
+ ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;%uH", (unsigned) options->paddingTop + 1, (unsigned) options->paddingLeft + 1);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ ffStrbufAppendNC(&buf, options->paddingTop, '\n');
+ ffStrbufAppendNC(&buf, options->paddingLeft, ' ');
+ } else if (options->position == FF_LOGO_POSITION_RIGHT) {
+ if (!options->width) {
+ if (printError) {
+ fputs("Logo (iterm): Must set logo width when using position right\n", stderr);
+ }
+ return false;
+ }
+ ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;9999999H\e[%uD", (unsigned) options->paddingTop + 1, (unsigned) options->paddingRight + options->width);
+ }
+
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\ePtmux;\e");
+ }
+ if (options->width) {
+ ffStrbufAppendF(&buf, "\e_Ga=T,f=100,t=f,c=%u;%s", (unsigned) options->width, base64.chars);
+ } else {
+ ffStrbufAppendF(&buf, "\e_Ga=T,f=100,t=f;%s", base64.chars);
+ }
+ if (inTmux) {
+ ffStrbufAppendC(&buf, '\e');
+ }
+ ffStrbufAppendS(&buf, "\e\\");
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\e\\");
+ }
+
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+
+ if (options->position == FF_LOGO_POSITION_LEFT || options->position == FF_LOGO_POSITION_RIGHT) {
+ uint16_t X = 0, Y = 0;
+ const char* error = ffGetTerminalResponse("\e[6n", 2, "%*[^0-9]%hu;%huR", &Y, &X);
+ if (error) {
+ if (printError) {
+ fprintf(stderr, "\nLogo (kitty-direct): fail to query cursor position: %s\n", error);
+ }
+ return true; // We already printed image logo, don't print ascii logo then
+ }
+ if (X < options->paddingLeft + options->width) {
+ X = (uint16_t) (options->paddingLeft + options->width);
+ }
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = X + options->paddingRight - 1;
+ }
+ instance.state.logoHeight = Y;
+ fputs("\e[H", stdout);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffPrintCharTimes('\n', options->paddingRight);
+ }
+ } else {
+ ffStrbufAppendNC(&buf, options->paddingTop, '\n');
+
+ if (options->position == FF_LOGO_POSITION_RIGHT) {
+ ffStrbufAppendF(&buf, "\e[9999999C\e[%uD", (unsigned) options->paddingRight + options->width);
+ } else if (options->paddingLeft) {
+ ffStrbufAppendF(&buf, "\e[%uC", (unsigned) options->paddingLeft);
+ }
+
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\ePtmux;\e");
+ }
+
+ ffStrbufAppendF(&buf, "\e_Ga=T,f=100,t=f,c=%u,r=%u;%s\e\\", (unsigned) options->width, (unsigned) options->height, base64.chars);
+ if (inTmux) {
+ ffStrbufAppendS(&buf, "\e\\");
+ }
+ ffStrbufAppendC(&buf, '\n');
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = options->width + options->paddingLeft + options->paddingRight;
+ instance.state.logoHeight = options->paddingTop + options->height;
+ ffStrbufAppendF(&buf, "\e[%uA", (unsigned) instance.state.logoHeight);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffStrbufAppendNC(&buf, options->paddingRight, '\n');
+ } else if (options->position == FF_LOGO_POSITION_RIGHT) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffStrbufAppendF(&buf, "\e[1G\e[%uA", (unsigned) options->height);
+ }
+
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+ }
+
+ return true;
+}
+
+#if defined(FF_HAVE_IMAGEMAGICK7) || defined(FF_HAVE_IMAGEMAGICK6)
+
+ #define FF_KITTY_MAX_CHUNK_SIZE 4096
+
+ #define FF_CACHE_FILE_HEIGHT "height"
+ #define FF_CACHE_FILE_WIDTH "width"
+ #define FF_CACHE_FILE_SIXEL "sixel"
+ #define FF_CACHE_FILE_KITTY_COMPRESSED "kittyc"
+ #define FF_CACHE_FILE_KITTY_UNCOMPRESSED "kittyu"
+ #define FF_CACHE_FILE_CHAFA "chafa"
+
+ #include <string.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+
+ #ifndef _WIN32
+ #include <sys/ioctl.h>
+ #else
+ #include <wincon.h>
+ #include "common/path.h"
+ #endif
+
+ #ifdef FF_HAVE_ZLIB
+ #include "common/library.h"
+ #include <stdlib.h>
+ #include <zlib.h>
+
+static bool compressBlob(void** blob, size_t* length) {
+ FF_LIBRARY_LOAD(zlib, false, "libz" FF_LIBRARY_EXTENSION, 2)
+ FF_LIBRARY_LOAD_SYMBOL(zlib, compressBound, false)
+ FF_LIBRARY_LOAD_SYMBOL(zlib, compress2, false)
+
+ uLong compressedLength = ffcompressBound(*length);
+ void* compressed = malloc(compressedLength);
+ if (compressed == NULL) {
+ return false;
+ }
+
+ if (ffcompress2(compressed, &compressedLength, *blob, *length, Z_BEST_COMPRESSION) != Z_OK) {
+ free(compressed);
+ return false;
+ }
+
+ free(*blob);
+
+ *length = (size_t) compressedLength;
+ *blob = compressed;
+ return true;
+}
+
+ #endif // FF_HAVE_ZLIB
+
+ // We use only the defines from here, that are exactly the same in both versions
+ #ifdef FF_HAVE_IMAGEMAGICK7
+ #include <MagickCore/MagickCore.h>
+ #else
+ #include <magick/MagickCore.h>
+ #endif
+
+typedef struct ImageData {
+ FF_LIBRARY_SYMBOL(CopyMagickString)
+ FF_LIBRARY_SYMBOL(ImageToBlob)
+ FF_LIBRARY_SYMBOL(Base64Encode)
+
+ ImageInfo* imageInfo;
+ Image* image;
+ ExceptionInfo* exceptionInfo;
+} ImageData;
+
+static inline bool checkAllocationResult(void* data, size_t length) {
+ if (data == NULL) {
+ return false;
+ }
+
+ if (length == 0) {
+ free(data);
+ return false;
+ }
+
+ return true;
+}
+
+static void writeCacheStrbuf(FFLogoRequestData* requestData, const FFstrbuf* value, const char* cacheFileName) {
+ uint32_t cacheDirLength = requestData->cacheDir.length;
+ ffStrbufAppendS(&requestData->cacheDir, cacheFileName);
+ ffWriteFileBuffer(requestData->cacheDir.chars, value);
+ ffStrbufSubstrBefore(&requestData->cacheDir, cacheDirLength);
+}
+
+static void writeCacheUint32(FFLogoRequestData* requestData, uint32_t value, const char* cacheFileName) {
+ FFstrbuf content;
+ content.chars = (char*) &value;
+ content.length = sizeof(value);
+ writeCacheStrbuf(requestData, &content, cacheFileName);
+}
+
+static void printImagePixels(FFLogoRequestData* requestData, const FFstrbuf* result, const char* cacheFileName) {
+ const FFOptionsLogo* options = &instance.config.logo;
+ // Calculate character dimensions
+ instance.state.logoWidth = requestData->logoCharacterWidth + options->paddingLeft + options->paddingRight;
+ instance.state.logoHeight = requestData->logoCharacterHeight + options->paddingTop - 1;
+
+ // Write cache files
+ writeCacheStrbuf(requestData, result, cacheFileName);
+
+ if (options->width == 0) {
+ writeCacheUint32(requestData, requestData->logoCharacterWidth, FF_CACHE_FILE_WIDTH);
+ }
+
+ if (options->height == 0) {
+ writeCacheUint32(requestData, requestData->logoCharacterHeight, FF_CACHE_FILE_HEIGHT);
+ }
+
+ // Write result to stdout
+ ffPrintCharTimes('\n', options->paddingTop);
+ if (options->position == FF_LOGO_POSITION_RIGHT) {
+ printf("\e[9999999C\e[%uD", (unsigned) options->paddingRight + requestData->logoCharacterWidth);
+ } else if (options->paddingLeft) {
+ printf("\e[%uC", (unsigned) options->paddingLeft);
+ }
+ fflush(stdout);
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), result);
+
+ if (options->position != FF_LOGO_POSITION_TOP) {
+ // Go to upper left corner
+ printf("\e[1G\e[%uA", instance.state.logoHeight);
+ }
+
+ if (options->position != FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ }
+}
+
+static bool printImageSixel(FFLogoRequestData* requestData, const ImageData* imageData) {
+ imageData->ffCopyMagickString(imageData->imageInfo->magick, "SIXEL", 6);
+
+ size_t length;
+ void* blob = imageData->ffImageToBlob(imageData->imageInfo, imageData->image, &length, imageData->exceptionInfo);
+ if (!checkAllocationResult(blob, length)) {
+ return false;
+ }
+
+ FFstrbuf result;
+ result.chars = (char*) blob;
+ result.length = (uint32_t) length;
+
+ printImagePixels(requestData, &result, FF_CACHE_FILE_SIXEL);
+
+ free(blob);
+ return true;
+}
+
+static void appendKittyChunk(FFstrbuf* result, const char** blob, size_t* length, bool printEscapeCode) {
+ uint32_t chunkSize = *length > FF_KITTY_MAX_CHUNK_SIZE ? FF_KITTY_MAX_CHUNK_SIZE : (uint32_t) *length;
+
+ if (printEscapeCode) {
+ ffStrbufAppendS(result, "\033_G");
+ } else {
+ ffStrbufAppendC(result, ',');
+ }
+
+ ffStrbufAppendS(result, chunkSize != *length ? "m=1" : "m=0");
+ ffStrbufAppendC(result, ';');
+ ffStrbufAppendNS(result, chunkSize, *blob);
+ ffStrbufAppendS(result, "\033\\");
+ *length -= chunkSize;
+ *blob += chunkSize;
+}
+
+static bool printImageKitty(FFLogoRequestData* requestData, const ImageData* imageData) {
+ imageData->ffCopyMagickString(imageData->imageInfo->magick, "RGBA", 5);
+
+ size_t length;
+ void* blob = imageData->ffImageToBlob(imageData->imageInfo, imageData->image, &length, imageData->exceptionInfo);
+ if (!checkAllocationResult(blob, length)) {
+ return false;
+ }
+
+ #ifdef FF_HAVE_ZLIB
+ bool isCompressed = compressBlob(&blob, &length);
+ #else
+ bool isCompressed = false;
+ #endif
+
+ char* chars = imageData->ffBase64Encode(blob, length, &length);
+ free(blob);
+ if (!checkAllocationResult(chars, length)) {
+ return false;
+ }
+
+ FF_STRBUF_AUTO_DESTROY result = ffStrbufCreateA((uint32_t) (length + 1024));
+
+ const char* currentPos = chars;
+ size_t remainingLength = length;
+
+ ffStrbufAppendF(&result, "\033_Ga=T,f=32,s=%u,v=%u", requestData->logoPixelWidth, requestData->logoPixelHeight);
+ if (isCompressed) {
+ ffStrbufAppendS(&result, ",o=z");
+ }
+ appendKittyChunk(&result, &currentPos, &remainingLength, false);
+ while (remainingLength > 0) {
+ appendKittyChunk(&result, &currentPos, &remainingLength, true);
+ }
+
+ printImagePixels(requestData, &result, isCompressed ? FF_CACHE_FILE_KITTY_COMPRESSED : FF_CACHE_FILE_KITTY_UNCOMPRESSED);
+
+ free(chars);
+ return true;
+}
+
+ #ifdef FF_HAVE_CHAFA
+ #include <chafa.h>
+static bool printImageChafa(FFLogoRequestData* requestData, const ImageData* imageData) {
+ FF_LIBRARY_LOAD(chafa, false, "libchafa" FF_LIBRARY_EXTENSION, 1, "libchafa-0" FF_LIBRARY_EXTENSION, -1 // Required for Windows
+ )
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_symbol_map_new, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_symbol_map_apply_selectors, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_config_new, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_config_set_geometry, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_config_set_symbol_map, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_new, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_draw_all_pixels, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_print, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_unref, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_canvas_config_unref, false)
+ FF_LIBRARY_LOAD_SYMBOL(chafa, chafa_symbol_map_unref, false)
+
+ imageData->ffCopyMagickString(imageData->imageInfo->magick, "RGBA", 5);
+ size_t length;
+ void* blob = imageData->ffImageToBlob(imageData->imageInfo, imageData->image, &length, imageData->exceptionInfo);
+ if (!checkAllocationResult(blob, length)) {
+ return false;
+ }
+
+ ChafaSymbolMap* symbolMap = ffchafa_symbol_map_new();
+ GError* error = NULL;
+ if (!ffchafa_symbol_map_apply_selectors(symbolMap, instance.config.logo.chafaSymbols.chars, &error)) {
+ fputs(error->message, stderr);
+ }
+
+ ChafaCanvasConfig* canvasConfig = ffchafa_canvas_config_new();
+ ffchafa_canvas_config_set_geometry(canvasConfig, (gint) requestData->logoCharacterWidth, (gint) requestData->logoCharacterHeight);
+ ffchafa_canvas_config_set_symbol_map(canvasConfig, symbolMap);
+
+ if (instance.config.logo.chafaFgOnly) {
+ FF_LIBRARY_LOAD_SYMBOL_LAZY(chafa, chafa_canvas_config_set_fg_only_enabled);
+ if (ffchafa_canvas_config_set_fg_only_enabled) {
+ ffchafa_canvas_config_set_fg_only_enabled(canvasConfig, true);
+ }
+ }
+ if (instance.config.logo.chafaCanvasMode < CHAFA_CANVAS_MODE_MAX) {
+ FF_LIBRARY_LOAD_SYMBOL_LAZY(chafa, chafa_canvas_config_set_canvas_mode);
+ if (ffchafa_canvas_config_set_canvas_mode) {
+ ffchafa_canvas_config_set_canvas_mode(canvasConfig, (ChafaCanvasMode) instance.config.logo.chafaCanvasMode);
+ }
+ }
+ if (instance.config.logo.chafaColorSpace < CHAFA_COLOR_SPACE_MAX) {
+ FF_LIBRARY_LOAD_SYMBOL_LAZY(chafa, chafa_canvas_config_set_color_space)
+ if (ffchafa_canvas_config_set_color_space) {
+ ffchafa_canvas_config_set_color_space(canvasConfig, (ChafaColorSpace) instance.config.logo.chafaColorSpace);
+ }
+ }
+ if (instance.config.logo.chafaDitherMode < CHAFA_DITHER_MODE_MAX) {
+ FF_LIBRARY_LOAD_SYMBOL_LAZY(chafa, chafa_canvas_config_set_dither_mode)
+ if (ffchafa_canvas_config_set_dither_mode) {
+ ffchafa_canvas_config_set_dither_mode(canvasConfig, (ChafaDitherMode) instance.config.logo.chafaDitherMode);
+ }
+ }
+
+ ChafaCanvas* canvas = ffchafa_canvas_new(canvasConfig);
+ ffchafa_canvas_draw_all_pixels(
+ canvas,
+ CHAFA_PIXEL_RGBA8_UNASSOCIATED,
+ blob,
+ (gint) imageData->image->columns,
+ (gint) imageData->image->rows,
+ (gint) imageData->image->columns * 4);
+
+ GString* str = ffchafa_canvas_print(canvas, NULL);
+ FFstrbuf result;
+ result.allocated = (uint32_t) str->allocated_len;
+ result.length = (uint32_t) str->len;
+ result.chars = str->str;
+
+ ffLogoPrintChars(result.chars, false);
+ writeCacheStrbuf(requestData, &result, FF_CACHE_FILE_CHAFA);
+
+ // FIXME: These functions must be imported from `libglib` dlls on Windows
+ FF_LIBRARY_LOAD_SYMBOL_LAZY(chafa, g_string_free);
+ if (ffg_string_free) {
+ ffg_string_free(str, TRUE);
+ }
+ if (error) {
+ FF_LIBRARY_LOAD_SYMBOL_LAZY(chafa, g_error_free)
+ if (ffg_error_free) {
+ ffg_error_free(error);
+ }
+ }
+
+ ffchafa_canvas_unref(canvas);
+ ffchafa_canvas_config_unref(canvasConfig);
+ ffchafa_symbol_map_unref(symbolMap);
+
+ return true;
+}
+ #endif
+
+FFLogoImageResult ffLogoPrintImageImpl(FFLogoRequestData* requestData, const FFIMData* imData) {
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, MagickCoreGenesis, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, MagickCoreTerminus, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, AcquireExceptionInfo, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, DestroyExceptionInfo, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, AcquireImageInfo, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, DestroyImageInfo, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, ReadImage, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL(imData->library, DestroyImage, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+
+ ImageData imageData;
+
+ FF_LIBRARY_LOAD_SYMBOL_VAR(imData->library, imageData, CopyMagickString, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL_VAR(imData->library, imageData, ImageToBlob, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+ FF_LIBRARY_LOAD_SYMBOL_VAR(imData->library, imageData, Base64Encode, FF_LOGO_IMAGE_RESULT_INIT_ERROR)
+
+ ffMagickCoreGenesis(NULL, MagickFalse);
+
+ imageData.exceptionInfo = ffAcquireExceptionInfo();
+ if (imageData.exceptionInfo == NULL) {
+ ffMagickCoreTerminus();
+ return FF_LOGO_IMAGE_RESULT_RUN_ERROR;
+ }
+
+ ImageInfo* imageInfoIn = ffAcquireImageInfo();
+ if (imageInfoIn == NULL) {
+ ffDestroyExceptionInfo(imageData.exceptionInfo);
+ ffMagickCoreTerminus();
+ return FF_LOGO_IMAGE_RESULT_RUN_ERROR;
+ }
+
+ //+1, because we need to copy the null byte too
+ imageData.ffCopyMagickString(imageInfoIn->filename, instance.config.logo.source.chars, instance.config.logo.source.length + 1);
+
+ imageData.image = ffReadImage(imageInfoIn, imageData.exceptionInfo);
+ ffDestroyImageInfo(imageInfoIn);
+ if (imageData.image == NULL) {
+ ffDestroyExceptionInfo(imageData.exceptionInfo);
+ ffMagickCoreTerminus();
+ return FF_LOGO_IMAGE_RESULT_RUN_ERROR;
+ }
+
+ if (requestData->logoPixelWidth == 0 && requestData->logoPixelHeight == 0) {
+ requestData->logoPixelWidth = (uint32_t) imageData.image->columns;
+ requestData->logoPixelHeight = (uint32_t) imageData.image->rows;
+ } else if (requestData->logoPixelWidth == 0) {
+ requestData->logoPixelWidth = (uint32_t) ((double) imageData.image->columns / (double) imageData.image->rows * requestData->logoPixelHeight);
+ } else if (requestData->logoPixelHeight == 0) {
+ requestData->logoPixelHeight = (uint32_t) ((double) imageData.image->rows / (double) imageData.image->columns * requestData->logoPixelWidth);
+ }
+
+ requestData->logoCharacterWidth = (uint32_t) ceil((double) requestData->logoPixelWidth / requestData->characterPixelWidth);
+ requestData->logoCharacterHeight = (uint32_t) ceil((double) requestData->logoPixelHeight / requestData->characterPixelHeight);
+
+ if (requestData->logoPixelWidth == 0 || requestData->logoPixelHeight == 0 || requestData->logoCharacterWidth == 0 || requestData->logoCharacterHeight == 0) {
+ ffDestroyImage(imageData.image);
+ ffDestroyExceptionInfo(imageData.exceptionInfo);
+ ffMagickCoreTerminus();
+ return FF_LOGO_IMAGE_RESULT_RUN_ERROR;
+ }
+
+ Image* resized = imData->resizeFunc(imageData.image, requestData->logoPixelWidth, requestData->logoPixelHeight, imageData.exceptionInfo);
+ ffDestroyImage(imageData.image);
+ if (resized == NULL) {
+ ffDestroyExceptionInfo(imageData.exceptionInfo);
+ ffMagickCoreTerminus();
+ return FF_LOGO_IMAGE_RESULT_RUN_ERROR;
+ }
+ imageData.image = resized;
+
+ imageData.imageInfo = ffAcquireImageInfo();
+ if (imageData.imageInfo == NULL) {
+ ffDestroyImage(imageData.image);
+ ffDestroyExceptionInfo(imageData.exceptionInfo);
+ ffMagickCoreTerminus();
+ return FF_LOGO_IMAGE_RESULT_RUN_ERROR;
+ }
+
+ bool printSuccessful = false;
+ if (requestData->type == FF_LOGO_TYPE_IMAGE_CHAFA) {
+ #if FF_HAVE_CHAFA
+ printSuccessful = printImageChafa(requestData, &imageData);
+ #endif
+ } else if (requestData->type == FF_LOGO_TYPE_IMAGE_KITTY) {
+ printSuccessful = printImageKitty(requestData, &imageData);
+ } else if (requestData->type == FF_LOGO_TYPE_IMAGE_SIXEL) {
+ printSuccessful = printImageSixel(requestData, &imageData);
+ }
+
+ ffDestroyImageInfo(imageData.imageInfo);
+ ffDestroyImage(imageData.image);
+ ffDestroyExceptionInfo(imageData.exceptionInfo);
+ ffMagickCoreTerminus();
+
+ return printSuccessful ? FF_LOGO_IMAGE_RESULT_SUCCESS : FF_LOGO_IMAGE_RESULT_RUN_ERROR;
+}
+
+static FFNativeFD getCacheFD(FFLogoRequestData* requestData, const char* fileName) {
+ uint32_t cacheDirLength = requestData->cacheDir.length;
+ ffStrbufAppendS(&requestData->cacheDir, fileName);
+ #ifndef _WIN32
+ int fd = open(requestData->cacheDir.chars, O_RDONLY
+ #ifdef O_CLOEXEC
+ | O_CLOEXEC
+ #endif
+ );
+ #else
+ HANDLE fd = CreateFileA(requestData->cacheDir.chars, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ #endif
+ ffStrbufSubstrBefore(&requestData->cacheDir, cacheDirLength);
+ return fd;
+}
+
+static void readCachedStrbuf(FFLogoRequestData* requestData, FFstrbuf* result, const char* cacheFileName) {
+ uint32_t cacheDirLength = requestData->cacheDir.length;
+ ffStrbufAppendS(&requestData->cacheDir, cacheFileName);
+ ffAppendFileBuffer(requestData->cacheDir.chars, result);
+ ffStrbufSubstrBefore(&requestData->cacheDir, cacheDirLength);
+}
+
+static uint32_t readCachedUint32(FFLogoRequestData* requestData, const char* cacheFileName) {
+ FF_STRBUF_AUTO_DESTROY content = ffStrbufCreate();
+ readCachedStrbuf(requestData, &content, cacheFileName);
+
+ uint32_t result = 0;
+
+ if (content.length != sizeof(result)) {
+ return 0;
+ }
+
+ memcpy(&result, content.chars, sizeof(result));
+
+ return result;
+}
+
+static bool printCachedChars(FFLogoRequestData* requestData, const char* cacheFileName) {
+ FF_STRBUF_AUTO_DESTROY content = ffStrbufCreate();
+ readCachedStrbuf(requestData, &content, cacheFileName);
+
+ if (content.length == 0) {
+ return false;
+ }
+
+ ffLogoPrintChars(content.chars, false);
+ return true;
+}
+
+static bool printCachedPixel(FFLogoRequestData* requestData) {
+ FFOptionsLogo* options = &instance.config.logo;
+
+ requestData->logoCharacterWidth = options->width;
+ if (requestData->logoCharacterWidth == 0) {
+ requestData->logoCharacterWidth = readCachedUint32(requestData, FF_CACHE_FILE_WIDTH);
+ if (requestData->logoCharacterWidth == 0) {
+ return false;
+ }
+ }
+
+ requestData->logoCharacterHeight = options->height;
+ if (requestData->logoCharacterHeight == 0) {
+ requestData->logoCharacterHeight = readCachedUint32(requestData, FF_CACHE_FILE_HEIGHT);
+ if (requestData->logoCharacterHeight == 0) {
+ return false;
+ }
+ }
+
+ FF_AUTO_CLOSE_FD FFNativeFD fd = FF_INVALID_FD;
+ if (requestData->type == FF_LOGO_TYPE_IMAGE_KITTY) {
+ fd = getCacheFD(requestData, FF_CACHE_FILE_KITTY_COMPRESSED);
+ if (!ffIsValidNativeFD(fd)) {
+ fd = getCacheFD(requestData, FF_CACHE_FILE_KITTY_UNCOMPRESSED);
+ }
+ } else if (requestData->type == FF_LOGO_TYPE_IMAGE_SIXEL) {
+ fd = getCacheFD(requestData, FF_CACHE_FILE_SIXEL);
+ }
+
+ if (!ffIsValidNativeFD(fd)) {
+ return false;
+ }
+
+ ffPrintCharTimes('\n', options->paddingTop);
+ if (options->position == FF_LOGO_POSITION_RIGHT) {
+ printf("\e[9999999C\e[%uD", (unsigned) options->paddingRight + requestData->logoCharacterWidth);
+ } else if (options->paddingLeft) {
+ printf("\e[%uC", (unsigned) options->paddingLeft);
+ }
+ fflush(stdout);
+
+ bool sent = false;
+ #ifdef __linux__
+ struct stat st;
+ if (fstat(fd, &st) >= 0) {
+ while (st.st_size > 0) {
+ ssize_t bytes = sendfile(STDOUT_FILENO, fd, NULL, (size_t) st.st_size);
+ if (bytes > 0) {
+ sent = true;
+ st.st_size -= bytes;
+ } else {
+ break;
+ }
+ }
+ }
+ #endif
+
+ if (!sent) {
+ char buffer[32768];
+ ssize_t readBytes;
+ while ((readBytes = ffReadFDData(fd, sizeof(buffer), buffer)) > 0) {
+ ffWriteFDData(FFUnixFD2NativeFD(STDOUT_FILENO), (size_t) readBytes, buffer);
+ }
+ }
+
+ instance.state.logoWidth = requestData->logoCharacterWidth + options->paddingLeft + options->paddingRight;
+ instance.state.logoHeight = requestData->logoCharacterHeight + options->paddingTop;
+
+ if (options->position != FF_LOGO_POSITION_TOP) {
+ // Go to upper left corner
+ printf("\e[1G\e[%uA", instance.state.logoHeight);
+ }
+
+ if (options->position != FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ }
+ return true;
+}
+
+static bool getCharacterPixelDimensions(FFLogoRequestData* requestData) {
+ #ifdef _WIN32
+
+ CONSOLE_FONT_INFOEX cfi = { .cbSize = sizeof(cfi) };
+ if (GetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi)) // Only works for ConHost
+ {
+ requestData->characterPixelWidth = cfi.dwFontSize.X;
+ requestData->characterPixelHeight = cfi.dwFontSize.Y;
+ }
+ if (requestData->characterPixelWidth > 1.0 && requestData->characterPixelHeight > 1.0) {
+ return true;
+ }
+ #endif
+
+ FFTerminalSizeResult termSize = {};
+ if (ffDetectTerminalSize(&termSize)) {
+ requestData->characterPixelWidth = termSize.width / (double) termSize.columns;
+ requestData->characterPixelHeight = termSize.height / (double) termSize.rows;
+ }
+
+ return requestData->characterPixelWidth > 1.0 && requestData->characterPixelHeight > 1.0;
+}
+
+static bool printImageIfExistsSlowPath(FFLogoType type, bool printError) {
+ FFLogoRequestData requestData;
+ requestData.type = type;
+ requestData.characterPixelWidth = 1;
+ requestData.characterPixelHeight = 1;
+
+ if (!getCharacterPixelDimensions(&requestData)) {
+ if (printError) {
+ fputs("Logo: getCharacterPixelDimensions() failed\n", stderr);
+ }
+ return false;
+ }
+
+ requestData.logoPixelWidth = (uint32_t) ceil((double) instance.config.logo.width * requestData.characterPixelWidth);
+ requestData.logoPixelHeight = (uint32_t) ceil((double) instance.config.logo.height * requestData.characterPixelHeight);
+
+ ffStrbufInit(&requestData.cacheDir);
+ ffStrbufAppend(&requestData.cacheDir, &instance.state.platform.cacheDir);
+ ffStrbufAppendS(&requestData.cacheDir, "fastfetch/images");
+
+ ffStrbufEnsureFree(&requestData.cacheDir, PATH_MAX);
+ char* filePath = requestData.cacheDir.chars + requestData.cacheDir.length;
+ if (realpath(instance.config.logo.source.chars, filePath) == NULL) {
+ // We can safely return here, because if realpath failed, we surely won't be able to read the file
+ ffStrbufDestroy(&requestData.cacheDir);
+ if (printError) {
+ fputs("Logo: Querying realpath of the image source failed\n", stderr);
+ }
+ return false;
+ }
+
+ #ifdef _WIN32
+ filePath[1] = filePath[0]; // Drive Name
+ filePath[0] = '/';
+ #endif
+
+ ffStrbufRecalculateLength(&requestData.cacheDir);
+ ffStrbufEnsureEndsWithC(&requestData.cacheDir, '/');
+ ffStrbufAppendF(&requestData.cacheDir, "%u*%u/", requestData.logoPixelWidth, requestData.logoPixelHeight);
+
+ if (!instance.config.logo.recache) {
+ bool cacheValid = requestData.type == FF_LOGO_TYPE_IMAGE_CHAFA
+ ? printCachedChars(&requestData, FF_CACHE_FILE_CHAFA)
+ : printCachedPixel(&requestData);
+ if (cacheValid) {
+ ffStrbufDestroy(&requestData.cacheDir);
+ return true;
+ }
+ }
+
+ FFLogoImageResult result = FF_LOGO_IMAGE_RESULT_INIT_ERROR;
+
+ #ifdef FF_HAVE_IMAGEMAGICK7
+ result = ffLogoPrintImageIM7(&requestData);
+ #endif
+
+ #ifdef FF_HAVE_IMAGEMAGICK6
+ if (result == FF_LOGO_IMAGE_RESULT_INIT_ERROR) {
+ result = ffLogoPrintImageIM6(&requestData);
+ }
+ #endif
+
+ ffStrbufDestroy(&requestData.cacheDir);
+
+ if (result == FF_LOGO_IMAGE_RESULT_SUCCESS) {
+ return true;
+ }
+
+ if (printError) {
+ if (result == FF_LOGO_IMAGE_RESULT_INIT_ERROR) {
+ fputs("Logo: Image Magick library not found\n", stderr);
+ } else {
+ fputs("Logo: Failed to load / convert the image source\n", stderr);
+ }
+ }
+
+ return false;
+}
+
+#endif // FF_HAVE_IMAGEMAGICK{6, 7}
+
+bool ffLogoPrintImageIfExists(FFLogoType type, bool printError) {
+ if (instance.config.display.pipe) {
+ if (printError) {
+ fputs("Logo: Image logo is not supported in pipe mode\n", stderr);
+ }
+ return false;
+ }
+
+ if (!ffPathExists(instance.config.logo.source.chars, FF_PATHTYPE_FILE)) {
+ if (printError) {
+ fprintf(stderr, "Logo: Image source \"%s\" does not exist\n", instance.config.logo.source.chars);
+ }
+ return false;
+ }
+
+ const char* term = getenv("TERM");
+ if ((term && ffStrEquals(term, "screen")) || getenv("ZELLIJ")) {
+ if (printError) {
+ fputs("Logo: Image logo is not supported in terminal multiplexers\n", stderr);
+ }
+ return false;
+ }
+
+ if (type == FF_LOGO_TYPE_IMAGE_ITERM) {
+ return printImageIterm(printError);
+ }
+
+ if (type == FF_LOGO_TYPE_IMAGE_KITTY_DIRECT) {
+ return printImageKittyDirect(printError);
+ }
+
+ if (type == FF_LOGO_TYPE_IMAGE_KITTY_ICAT) {
+ return printImageKittyIcat(printError);
+ }
+
+#if !FF_HAVE_CHAFA
+ if (type == FF_LOGO_TYPE_IMAGE_CHAFA) {
+ if (printError) {
+ fputs("Logo: Chafa support is not compiled in\n", stderr);
+ }
+ return false;
+ }
+#endif
+
+#if !defined(FF_HAVE_IMAGEMAGICK7) && !defined(FF_HAVE_IMAGEMAGICK6)
+ if (printError) {
+ fputs("Logo: Image Magick support is not compiled in\n", stderr);
+ }
+ return false;
+#else
+ return printImageIfExistsSlowPath(type, printError);
+#endif
+}
diff --git a/src/logo/image/image.h b/src/logo/image/image.h
new file mode 100644
index 0000000..da3b2d2
--- /dev/null
+++ b/src/logo/image/image.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "../logo.h"
+
+#if defined(FF_HAVE_IMAGEMAGICK7) || defined(FF_HAVE_IMAGEMAGICK6)
+
+typedef enum FF_A_PACKED FFLogoImageResult {
+ FF_LOGO_IMAGE_RESULT_SUCCESS, // Logo printed
+ FF_LOGO_IMAGE_RESULT_INIT_ERROR, // Failed to load library, try again with next IM version
+ FF_LOGO_IMAGE_RESULT_RUN_ERROR // Failed to load / convert image, cancel whole sixel code
+} FFLogoImageResult;
+
+typedef struct FFLogoRequestData {
+ FFLogoType type;
+ FFstrbuf cacheDir;
+
+ double characterPixelWidth;
+ double characterPixelHeight;
+
+ uint32_t logoPixelWidth;
+ uint32_t logoPixelHeight;
+
+ uint32_t logoCharacterHeight;
+ uint32_t logoCharacterWidth;
+} FFLogoRequestData;
+
+typedef struct FFIMData {
+ void* library;
+ void* (*resizeFunc)(const void* image, size_t width, size_t height, void* exceptionInfo);
+} FFIMData;
+
+FFLogoImageResult ffLogoPrintImageImpl(FFLogoRequestData* requestData, const FFIMData* imData);
+
+#endif
+
+#ifdef FF_HAVE_IMAGEMAGICK7
+FFLogoImageResult ffLogoPrintImageIM7(FFLogoRequestData* requestData);
+#endif
+
+#ifdef FF_HAVE_IMAGEMAGICK6
+ #include <math.h>
+FFLogoImageResult ffLogoPrintImageIM6(FFLogoRequestData* requestData);
+#endif
diff --git a/src/logo/logo.c b/src/logo/logo.c
new file mode 100644
index 0000000..571f1aa
--- /dev/null
+++ b/src/logo/logo.c
@@ -0,0 +1,813 @@
+#include "logo/logo.h"
+#include "common/io.h"
+#include "common/printing.h"
+#include "common/processing.h"
+#include "common/textModifier.h"
+#include "common/strutil.h"
+#include "detection/media/media.h"
+#include "detection/os/os.h"
+#include "detection/terminalshell/terminalshell.h"
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct FFLogoCachedLine {
+ FFstrbuf chars;
+ uint32_t width;
+} FFLogoCachedLine;
+
+static void logoLineCacheClear(FFLogoLineCacheState* cache) {
+ FF_LIST_FOR_EACH (FFLogoCachedLine, line, cache->lines) {
+ ffStrbufDestroy(&line->chars);
+ }
+ ffListDestroy(&cache->lines);
+ cache->nextLine = 0;
+ cache->rightOffset = 0;
+}
+
+static void logoLineCachePush(const FFstrbuf* chars, uint32_t width, FFLogoLineCacheState* cache) {
+ FFLogoCachedLine* line = FF_LIST_ADD(FFLogoCachedLine, cache->lines);
+ if (width > 0) {
+ ffStrbufInitCopy(&line->chars, chars);
+ if (!instance.config.display.pipe) {
+ ffStrbufAppendS(&line->chars, FASTFETCH_TEXT_MODIFIER_RESET);
+ }
+ } else {
+ ffStrbufInit(&line->chars);
+ }
+ line->width = width;
+}
+
+static void logoLineCacheBuild(FFLogoLineCacheState* cache, const char* data, bool doColorReplacement) {
+ FFOptionsLogo* options = &instance.config.logo;
+ bool keepCarryColor = options->type != FF_LOGO_TYPE_IMAGE_CHAFA;
+
+ logoLineCacheClear(cache);
+
+ // Overrides the auto detected max-width with the configured width, if set.
+ // In case we fail to get the actual width of the logo, as we don't use `wcwidth`
+ uint32_t maxLineWidth = options->width;
+ uint32_t parsedHeight = 0;
+
+ FF_STRBUF_AUTO_DESTROY carryColor = ffStrbufCreate();
+ if (keepCarryColor && doColorReplacement && !instance.config.display.pipe) {
+ ffStrbufSetF(&carryColor, "\e[%sm", options->colors[0].chars);
+ }
+
+ for (uint32_t i = 0; i < options->paddingTop; ++i) {
+ logoLineCachePush(NULL, 0, cache);
+ }
+
+ if (*data != '\0') {
+ while (true) {
+ FF_STRBUF_AUTO_DESTROY line = ffStrbufCreateA(256);
+ uint32_t lineWidth = 0;
+
+ if (!instance.config.display.pipe && instance.config.display.brightColor) {
+ ffStrbufAppendS(&line, FASTFETCH_TEXT_MODIFIER_BOLT);
+ }
+
+ if (keepCarryColor && carryColor.length > 0) {
+ ffStrbufAppend(&line, &carryColor);
+ }
+
+ if ((options->position != FF_LOGO_POSITION_RIGHT) && options->paddingLeft > 0) {
+ ffStrbufAppendNC(&line, options->paddingLeft, ' ');
+ lineWidth += options->paddingLeft;
+ }
+
+ while (*data != '\0' && *data != '\n' && !(*data == '\r' && *(data + 1) == '\n')) {
+ if (*data == '\t') {
+ ffStrbufAppendNC(&line, 4, ' ');
+ lineWidth += 4;
+ ++data;
+ continue;
+ }
+
+ if (*data == '\e' && *(data + 1) == '[') {
+ const char* start = data;
+ data += 2;
+
+ while (ffCharIsDigit(*data) || *data == ';') {
+ ++data;
+ }
+
+ if (isascii(*data)) {
+ ++data;
+
+ uint32_t escLen = (uint32_t) (data - start);
+ ffStrbufAppendNS(&line, escLen, start);
+
+ if (keepCarryColor && start[escLen - 1] == 'm') {
+ ffStrbufSetNS(&carryColor, escLen, start);
+ }
+ continue;
+ }
+
+ lineWidth += (uint32_t) (data - start - 1);
+ }
+
+ if (doColorReplacement && *data == '$') {
+ ++data;
+
+ if (*data == '$' || *data == '\0') {
+ ffStrbufAppendC(&line, '$');
+ ++lineWidth;
+ ++data;
+ continue;
+ }
+
+ if (!instance.config.display.pipe) {
+ int index = *data - '1';
+ if (index >= 0 && index < FASTFETCH_LOGO_MAX_COLORS) {
+ if (keepCarryColor) {
+ ffStrbufSetF(&carryColor, "\e[%sm", options->colors[index].chars);
+ ffStrbufAppend(&line, &carryColor);
+ } else {
+ ffStrbufAppendF(&line, "\e[%sm", options->colors[index].chars);
+ }
+ ++data;
+ continue;
+ }
+
+ ffStrbufAppendC(&line, '$');
+ ++lineWidth;
+ } else {
+ ++data;
+ continue;
+ }
+ }
+
+ uint8_t charWidth;
+ uint8_t bytes = ffUtf8CharLenWidth(data, UINT32_MAX, &charWidth);
+ lineWidth += charWidth;
+
+ for (uint8_t i = 0; i < bytes; ++i) {
+ if (*data == '\0') {
+ break;
+ }
+
+ ffStrbufAppendC(&line, *data);
+ ++data;
+ }
+ }
+
+ logoLineCachePush(&line, lineWidth, cache);
+ if (lineWidth > maxLineWidth) {
+ maxLineWidth = lineWidth;
+ }
+
+ if (*data == '\n' || (*data == '\r' && *(data + 1) == '\n')) {
+ if (*data == '\r') {
+ ++data;
+ }
+ ++data;
+ ++parsedHeight;
+ continue;
+ }
+
+ break;
+ }
+ }
+
+ if (options->type != FF_LOGO_TYPE_IMAGE_CHAFA && options->height > parsedHeight) {
+ parsedHeight = options->height;
+ }
+
+ instance.state.logoHeight = options->paddingTop + parsedHeight;
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = maxLineWidth + options->paddingRight;
+ } else {
+ instance.state.logoWidth = 0;
+ }
+
+ uint32_t totalLines = instance.state.logoHeight + 1;
+ while (cache->lines.length < totalLines) {
+ logoLineCachePush(NULL, 0, cache);
+ }
+
+ cache->nextLine = 0;
+ cache->rightOffset = maxLineWidth + options->paddingRight - 1;
+}
+
+static bool ffLogoPrintCharsRaw(const char* data, size_t length, bool printError) {
+ FFOptionsLogo* options = &instance.config.logo;
+ FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate();
+
+ if (!options->width || !options->height) {
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;%uH", (unsigned) options->paddingTop + 1, (unsigned) options->paddingLeft + 1);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ ffStrbufAppendNC(&buf, options->paddingTop, '\n');
+ ffStrbufAppendNC(&buf, options->paddingLeft, ' ');
+ } else if (options->position == FF_LOGO_POSITION_RIGHT) {
+ if (!options->width) {
+ if (printError) {
+ fputs("Logo (image-raw): Must set logo width when using position right\n", stderr);
+ }
+ return false;
+ }
+ ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;9999999H\e[%uD", (unsigned) options->paddingTop + 1, (unsigned) options->paddingRight + options->width);
+ }
+ ffStrbufAppendNS(&buf, (uint32_t) length, data);
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+
+ if (options->position == FF_LOGO_POSITION_LEFT || options->position == FF_LOGO_POSITION_RIGHT) {
+ uint16_t X = 0, Y = 0;
+ // Windows Terminal doesn't report `\e` for some reason
+ const char* error = ffGetTerminalResponse("\e[6n", 2, "%*[^0-9]%hu;%huR", &Y, &X); // %*[^0-9]: ignore optional \e[
+ if (error) {
+ if (printError) {
+ fprintf(stderr, "\nLogo (image-raw): fail to query cursor position: %s\n", error);
+ }
+ return true;
+ }
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ if (options->width + options->paddingLeft > X) {
+ X = (uint16_t) (options->width + options->paddingLeft);
+ }
+ instance.state.logoWidth = X + instance.config.logo.paddingRight - 1;
+ }
+ instance.state.logoHeight = Y;
+ fputs("\e[H", stdout);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffPrintCharTimes('\n', options->paddingRight);
+ }
+ } else {
+ ffStrbufAppendNC(&buf, options->paddingTop, '\n');
+
+ if (options->position == FF_LOGO_POSITION_RIGHT) {
+ ffStrbufAppendF(&buf, "\e[9999999C\e[%uD", (unsigned) options->paddingRight + options->width);
+ } else if (options->paddingLeft) {
+ ffStrbufAppendF(&buf, "\e[%uC", (unsigned) options->paddingLeft);
+ }
+
+ ffStrbufAppendNS(&buf, (uint32_t) length, data);
+ ffStrbufAppendC(&buf, '\n');
+
+ if (options->position == FF_LOGO_POSITION_LEFT) {
+ instance.state.logoWidth = options->width + options->paddingLeft + options->paddingRight;
+ instance.state.logoHeight = options->paddingTop + options->height;
+ ffStrbufAppendF(&buf, "\e[%uA", (unsigned) instance.state.logoHeight);
+ } else if (options->position == FF_LOGO_POSITION_TOP) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffStrbufAppendNC(&buf, options->paddingRight, '\n');
+ } else if (options->position == FF_LOGO_POSITION_RIGHT) {
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ ffStrbufAppendF(&buf, "\e[%uA", (unsigned) options->height);
+ }
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+ }
+
+ return true;
+}
+
+void ffLogoPrintChars(const char* data, bool doColorReplacement) {
+ FFOptionsLogo* options = &instance.config.logo;
+ FFLogoLineCacheState* cache = &instance.state.logoLineCache;
+
+ logoLineCacheBuild(cache, data, doColorReplacement);
+
+ if (options->position != FF_LOGO_POSITION_TOP) {
+ return;
+ }
+
+ FF_STRBUF_AUTO_DESTROY result = ffStrbufCreateA(4096);
+ FF_LIST_FOR_EACH (FFLogoCachedLine, line, cache->lines) {
+ ffStrbufAppend(&result, &line->chars);
+ ffStrbufAppendC(&result, '\n');
+ }
+ ffStrbufAppendNC(&result, options->paddingBottom, '\n');
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &result);
+ instance.state.logoWidth = instance.state.logoHeight = 0;
+ logoLineCacheClear(cache);
+}
+
+static void logoApplyColors(const FFlogo* logo, bool replacement) {
+ if (instance.config.display.colorTitle.length == 0) {
+ ffStrbufAppendS(&instance.config.display.colorTitle, logo->colorTitle ?: logo->colors[0]);
+ }
+
+ if (instance.config.display.colorKeys.length == 0) {
+ ffStrbufAppendS(&instance.config.display.colorKeys, logo->colorKeys ?: logo->colors[1]);
+ }
+
+ if (replacement) {
+ FFOptionsLogo* options = &instance.config.logo;
+
+ const char* const* colors = logo->colors;
+ for (int i = 0; *colors != NULL && i < FASTFETCH_LOGO_MAX_COLORS; i++, colors++) {
+ if (options->colors[i].length == 0) {
+ ffStrbufAppendS(&options->colors[i], *colors);
+ }
+ }
+ }
+}
+
+static bool logoHasName(const FFlogo* logo, const FFstrbuf* name, bool small) {
+ for (
+ const char* const* logoName = logo->names;
+ *logoName != NULL && logoName <= &logo->names[FASTFETCH_LOGO_MAX_NAMES];
+ ++logoName) {
+ if (small) {
+ uint32_t logoNameLength = (uint32_t) (strlen(*logoName) - strlen("_small"));
+ if (name->length == logoNameLength && strncasecmp(*logoName, name->chars, logoNameLength) == 0) {
+ return true;
+ }
+ }
+ if (ffStrbufIgnCaseEqualS(name, *logoName)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+static const FFlogo* logoGetBuiltin(const FFstrbuf* name, FFLogoSize size) {
+ if (name->length == 0 || !isalpha(name->chars[0])) {
+ return NULL;
+ }
+
+ for (const FFlogo* logo = ffLogoBuiltins[toupper(name->chars[0]) - 'A']; *logo->names; ++logo) {
+ switch (size) {
+ // Never use alternate logos
+ case FF_LOGO_SIZE_NORMAL:
+ if (logo->type != FF_LOGO_LINE_TYPE_NORMAL) {
+ continue;
+ }
+ break;
+ case FF_LOGO_SIZE_SMALL:
+ if (logo->type != FF_LOGO_LINE_TYPE_SMALL_BIT) {
+ continue;
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (logoHasName(logo, name, size == FF_LOGO_SIZE_SMALL)) {
+ return logo;
+ }
+ }
+
+ return NULL;
+}
+
+static const FFlogo* logoGetBuiltinDetected(FFLogoSize size) {
+ const FFOSResult* os = ffDetectOS();
+
+ const FFlogo* logo = logoGetBuiltin(&os->id, size);
+ if (logo != NULL) {
+ return logo;
+ }
+
+ logo = logoGetBuiltin(&os->name, size);
+ if (logo != NULL) {
+ return logo;
+ }
+
+ if (ffStrbufContainC(&os->idLike, ' ')) {
+ FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate();
+ for (
+ uint32_t start = 0, end = ffStrbufFirstIndexC(&os->idLike, ' ');
+ true;
+ start = end + 1, end = ffStrbufNextIndexC(&os->idLike, start, ' ')) {
+ ffStrbufSetNS(&buf, end - start, os->idLike.chars + start);
+ logo = logoGetBuiltin(&buf, size);
+ if (logo != NULL) {
+ return logo;
+ }
+
+ if (end >= os->idLike.length) {
+ break;
+ }
+ }
+ } else {
+ logo = logoGetBuiltin(&os->idLike, size);
+ if (logo != NULL) {
+ return logo;
+ }
+ }
+
+ logo = logoGetBuiltin(&instance.state.platform.sysinfo.name, size);
+ if (logo != NULL) {
+ return logo;
+ }
+
+ return &ffLogoUnknown;
+}
+
+static void logoPrintStruct(const FFlogo* logo) {
+ logoApplyColors(logo, true);
+
+ ffLogoPrintChars(logo->lines, true);
+}
+
+static void logoPrintNone(void) {
+ if (!instance.config.display.pipe) {
+ logoApplyColors(logoGetBuiltinDetected(FF_LOGO_SIZE_NORMAL), false);
+ }
+ instance.state.logoHeight = 0;
+ instance.state.logoWidth = 0;
+}
+
+static bool logoPrintBuiltinIfExists(const FFstrbuf* name, FFLogoSize size) {
+ if (name->chars[0] == '~' || name->chars[0] == '.' || name->chars[0] == '/'
+#if _WIN32
+ || (ffCharIsEnglishAlphabet(name->chars[0]) && name->chars[1] == ':') // Windows drive letter
+#endif
+ )
+ return false; // Paths
+
+ if (ffStrbufIgnCaseEqualS(name, "none")) {
+ logoPrintNone();
+ return true;
+ }
+
+ const FFlogo* logo = ffLogoGetBuiltinForName(name, size);
+ if (logo == NULL) {
+ return false;
+ }
+
+ logoPrintStruct(logo);
+
+ return true;
+}
+
+void ffLogoPrintDetected(FFLogoSize size) {
+ logoPrintStruct(logoGetBuiltinDetected(size));
+}
+
+static bool logoPrintData(bool doColorReplacement, FFstrbuf* source) {
+ if (source->length == 0) {
+ return false;
+ }
+
+ logoApplyColors(logoGetBuiltinDetected(FF_LOGO_SIZE_NORMAL), doColorReplacement);
+ ffLogoPrintChars(source->chars, doColorReplacement);
+ return true;
+}
+
+static bool updateLogoPath(void) {
+ FFOptionsLogo* options = &instance.config.logo;
+
+ if (ffPathExists(options->source.chars, FF_PATHTYPE_FILE)) {
+ return true;
+ }
+
+ if (ffStrbufEqualS(&options->source, "-")) { // stdin
+ return true;
+ }
+
+#if !FF_MODULE_DISABLE_MEDIA
+ if (ffStrbufIgnCaseEqualS(&options->source, "media-cover")) {
+ const FFMediaResult* media = ffDetectMedia(true);
+ if (media->cover.length == 0) {
+ return false;
+ }
+ ffStrbufSet(&options->source, &media->cover);
+ return true;
+ }
+#endif
+
+ FF_STRBUF_AUTO_DESTROY fullPath = ffStrbufCreateA(128);
+ if (ffPathExpandEnv(options->source.chars, &fullPath) && ffPathExists(fullPath.chars, FF_PATHTYPE_FILE)) {
+ ffStrbufDestroy(&options->source);
+ ffStrbufInitMove(&options->source, &fullPath);
+ return true;
+ }
+
+ FF_LIST_FOR_EACH (FFstrbuf, dataDir, instance.state.platform.dataDirs) {
+ // We need to copy it, because multiple threads might be using dataDirs at the same time
+ ffStrbufSet(&fullPath, dataDir);
+ ffStrbufAppendS(&fullPath, "fastfetch/logos/");
+ ffStrbufAppend(&fullPath, &options->source);
+
+ if (ffPathExists(fullPath.chars, FF_PATHTYPE_FILE)) {
+ ffStrbufDestroy(&options->source);
+ ffStrbufInitMove(&options->source, &fullPath);
+ return true;
+ }
+ }
+
+ return false;
+}
+
+static bool logoPrintFileIfExists(bool doColorReplacement, bool raw) {
+ FFOptionsLogo* options = &instance.config.logo;
+
+ FF_STRBUF_AUTO_DESTROY content = ffStrbufCreate();
+
+ if (ffStrbufEqualS(&options->source, "-")
+ ? !ffAppendFDBuffer(FFUnixFD2NativeFD(STDIN_FILENO), &content)
+ : !ffAppendFileBuffer(options->source.chars, &content)) {
+ if (instance.config.display.showErrors) {
+ fprintf(stderr, "Logo: Failed to load file content from logo source: %s\n", options->source.chars);
+ }
+ return false;
+ }
+
+ logoApplyColors(logoGetBuiltinDetected(FF_LOGO_SIZE_NORMAL), doColorReplacement);
+ if (raw) {
+ return ffLogoPrintCharsRaw(content.chars, content.length, instance.config.display.showErrors);
+ }
+
+ ffLogoPrintChars(content.chars, doColorReplacement);
+ return true;
+}
+
+static bool logoPrintImageIfExists(FFLogoType logo, bool printError) {
+ if (!ffLogoPrintImageIfExists(logo, printError)) {
+ return false;
+ }
+
+ logoApplyColors(logoGetBuiltinDetected(FF_LOGO_SIZE_NORMAL), false);
+ return true;
+}
+
+static bool logoTryKnownType(void) {
+ FFOptionsLogo* options = &instance.config.logo;
+
+ if (options->type == FF_LOGO_TYPE_NONE) {
+ logoPrintNone();
+ return true;
+ }
+
+ if (options->type == FF_LOGO_TYPE_BUILTIN) {
+ return logoPrintBuiltinIfExists(&options->source, FF_LOGO_SIZE_UNKNOWN);
+ }
+
+ if (options->type == FF_LOGO_TYPE_SMALL) {
+ return logoPrintBuiltinIfExists(&options->source, FF_LOGO_SIZE_SMALL);
+ }
+
+ if (options->type == FF_LOGO_TYPE_DATA) {
+ return logoPrintData(true, &options->source);
+ }
+
+ if (options->type == FF_LOGO_TYPE_DATA_RAW) {
+ return logoPrintData(false, &options->source);
+ }
+
+ if (options->type == FF_LOGO_TYPE_COMMAND_RAW) {
+ FF_STRBUF_AUTO_DESTROY source = ffStrbufCreate();
+
+ const char* error = ffProcessAppendStdOut(&source, (char* const[]){
+#ifdef _WIN32
+ "cmd.exe", "/c",
+#else
+ "/bin/sh", "-c",
+#endif
+ options->source.chars,
+ NULL });
+
+ if (error) {
+ if (instance.config.display.showErrors) {
+ fprintf(stderr, "Logo: failed to execute command `%s`: %s\n", options->source.chars, error);
+ }
+ return false;
+ }
+
+ return logoPrintData(false, &source);
+ }
+
+ // We sure have a file, resolve relative paths
+ if (!updateLogoPath()) {
+ if (instance.config.display.showErrors) {
+ fprintf(stderr, "Logo: Failed to resolve logo source: %s\n", options->source.chars);
+ }
+ return false;
+ }
+
+ if (options->type == FF_LOGO_TYPE_FILE) {
+ return logoPrintFileIfExists(true, false);
+ }
+
+ if (options->type == FF_LOGO_TYPE_FILE_RAW) {
+ return logoPrintFileIfExists(false, false);
+ }
+
+ if (options->type == FF_LOGO_TYPE_IMAGE_RAW) {
+ return logoPrintFileIfExists(false, true);
+ }
+
+ return logoPrintImageIfExists(options->type, instance.config.display.showErrors);
+}
+
+void ffLogoPrint(void) {
+ const FFOptionsLogo* options = &instance.config.logo;
+
+ if (options->type == FF_LOGO_TYPE_NONE) {
+ logoPrintNone();
+ return;
+ }
+
+ // If the source is not set, we can directly print the detected logo.
+ if (options->source.length == 0) {
+ ffLogoPrintDetected(options->type == FF_LOGO_TYPE_SMALL ? FF_LOGO_SIZE_SMALL : FF_LOGO_SIZE_NORMAL);
+ return;
+ }
+
+ // If the source and source type is set to something else than auto, always print with the set type.
+ if (options->source.length > 0 && options->type != FF_LOGO_TYPE_AUTO) {
+ if (!logoTryKnownType()) {
+ if (instance.config.display.showErrors) {
+ // Image logo should have been handled
+ if (options->type == FF_LOGO_TYPE_BUILTIN || options->type == FF_LOGO_TYPE_SMALL) {
+ fprintf(stderr, "Logo: Failed to load %s logo: %s\n", options->type == FF_LOGO_TYPE_BUILTIN ? "builtin" : "builtin small", options->source.chars);
+ }
+ }
+
+ ffLogoPrintDetected(FF_LOGO_SIZE_UNKNOWN);
+ }
+ return;
+ }
+
+ // If source matches the name of a builtin logo, print it and return.
+ if (logoPrintBuiltinIfExists(&options->source, FF_LOGO_SIZE_UNKNOWN)) {
+ return;
+ }
+
+ // Make sure the logo path is set correctly.
+ if (updateLogoPath()) {
+ if (ffStrbufEndsWithIgnCaseS(&options->source, ".raw")) {
+ if (logoPrintFileIfExists(false, true)) {
+ return;
+ }
+ }
+
+ if (!ffStrbufEndsWithIgnCaseS(&options->source, ".txt")) {
+#if !FF_MODULE_DISABLE_TERMINAL
+ const FFTerminalResult* terminal = ffDetectTerminal();
+
+ bool supportsIterm2 = ffStrbufEqualS(&terminal->prettyName, "iTerm");
+
+ if (supportsIterm2 && logoPrintImageIfExists(FF_LOGO_TYPE_IMAGE_ITERM, false)) {
+ return;
+ }
+
+ // Terminal emulators that support kitty graphics protocol.
+ bool supportsKitty =
+ ffStrbufIgnCaseEqualS(&terminal->processName, "kitty") ||
+ ffStrbufIgnCaseEqualS(&terminal->processName, "konsole") ||
+ ffStrbufIgnCaseEqualS(&terminal->processName, "wezterm") ||
+ ffStrbufIgnCaseEqualS(&terminal->processName, "wayst") ||
+ ffStrbufIgnCaseEqualS(&terminal->processName, "ghostty") ||
+ #ifdef __APPLE__
+ ffStrbufIgnCaseEqualS(&terminal->processName, "WarpTerminal") ||
+ #else
+ ffStrbufIgnCaseEqualS(&terminal->processName, "warp") ||
+ #endif
+ false;
+#else
+ bool supportsKitty = false;
+#endif
+
+ // Try to load the logo as an image. If it succeeds, print it and return.
+ if (logoPrintImageIfExists(supportsKitty ? FF_LOGO_TYPE_IMAGE_KITTY : FF_LOGO_TYPE_IMAGE_CHAFA, false)) {
+ return;
+ }
+ }
+
+ // Try to load the logo as a file. If it succeeds, print it and return.
+ if (logoPrintFileIfExists(true, false)) {
+ return;
+ }
+ } else {
+ if (instance.config.display.showErrors) {
+ fprintf(stderr, "Logo: Failed to resolve logo source: %s\n", options->source.chars);
+ }
+ }
+
+ ffLogoPrintDetected(FF_LOGO_SIZE_UNKNOWN);
+}
+
+void ffLogoPrintLine(void) {
+ FFLogoLineCacheState* cache = &instance.state.logoLineCache;
+ FFOptionsLogo* logo = &instance.config.logo;
+
+ if (cache->lines.length > 0) {
+ // Line cache is enabled. Always move cursor with whitespaces to make lolcat happy
+ if (cache->nextLine < cache->lines.length) {
+ // Print logo line and move cursor
+ FFLogoCachedLine* line = FF_LIST_GET(FFLogoCachedLine, cache->lines, cache->nextLine);
+
+ if (logo->position == FF_LOGO_POSITION_RIGHT) {
+ printf("\033[9999999C\033[%uD", cache->rightOffset);
+ ffStrbufWriteTo(&line->chars, stdout);
+
+ fputs("\033[G", stdout);
+ } else {
+ ffStrbufWriteTo(&line->chars, stdout);
+
+ uint32_t remaining = instance.state.logoWidth;
+ remaining = line->width < remaining ? remaining - line->width : 0;
+ ffPrintCharTimes(' ', remaining);
+ }
+ ++cache->nextLine;
+ } else if (logo->position == FF_LOGO_POSITION_LEFT) {
+ // Move cursor to the start position
+ ffPrintCharTimes(' ', instance.state.logoWidth);
+ }
+ } else if (instance.state.logoWidth > 0) {
+ printf("\033[%uC", instance.state.logoWidth);
+ }
+
+ if (instance.state.dynamicInterval > 0 && logo->position == FF_LOGO_POSITION_LEFT) {
+ fputs("\033[K", stdout); // Clear to the end of the line
+ // Note that we don't clear the line when the logo is on the right, as it will also clear the logo itself
+ }
+
+ ++instance.state.keysHeight;
+}
+
+void ffLogoPrintRemaining(void) {
+ FFLogoLineCacheState* cache = &instance.state.logoLineCache;
+ FFOptionsLogo* logo = &instance.config.logo;
+
+ if (cache->lines.length > 0 && (logo->position == FF_LOGO_POSITION_LEFT || logo->position == FF_LOGO_POSITION_RIGHT)) {
+ while (cache->nextLine < cache->lines.length) {
+ FFLogoCachedLine* line = FF_LIST_GET(FFLogoCachedLine, cache->lines, cache->nextLine);
+
+ if (logo->position == FF_LOGO_POSITION_RIGHT) {
+ printf("\033[9999999C\033[%uD", cache->rightOffset);
+ }
+ ffStrbufPutTo(&line->chars, stdout);
+
+ ++cache->nextLine;
+ }
+
+ if (!instance.config.display.pipe) {
+ fputs(FASTFETCH_TEXT_MODIFIER_RESET, stdout);
+ }
+
+ instance.state.keysHeight = instance.state.logoHeight + 1;
+ logoLineCacheClear(cache);
+ return;
+ }
+
+ if (instance.state.keysHeight <= instance.state.logoHeight) {
+ ffPrintCharTimes('\n', instance.state.logoHeight - instance.state.keysHeight + 1);
+ }
+ instance.state.keysHeight = instance.state.logoHeight + 1;
+}
+
+void ffLogoBuiltinPrint(void) {
+ FFOptionsLogo* options = &instance.config.logo;
+ options->position = FF_LOGO_POSITION_TOP;
+ options->paddingRight = 2; // empty line after logo printing
+ FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate();
+
+ for (uint8_t ch = 0; ch < 26; ++ch) {
+ for (const FFlogo* logo = ffLogoBuiltins[ch]; *logo->names; ++logo) {
+ if (instance.config.display.pipe) {
+ ffStrbufSetF(&buf, "%s:\n", logo->names[0]);
+ } else {
+ ffStrbufSetF(&buf, "\e[%sm%s:\e[0m\n", logo->colors[0], logo->names[0]);
+ }
+ ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf);
+ logoPrintStruct(logo);
+
+ for (uint8_t i = 0; i < FASTFETCH_LOGO_MAX_COLORS; i++) {
+ ffStrbufClear(&options->colors[i]);
+ }
+ }
+ }
+}
+
+void ffLogoBuiltinList(void) {
+ uint32_t counter = 0;
+ for (uint8_t ch = 0; ch < 26; ++ch) {
+ for (const FFlogo* logo = ffLogoBuiltins[ch]; *logo->names; ++logo) {
+ ++counter;
+ printf("%u)%s ", counter, counter < 10 ? " " : "");
+
+ for (
+ const char* const* names = logo->names;
+ *names != NULL && names <= &logo->names[FASTFETCH_LOGO_MAX_NAMES];
+ ++names) {
+ printf("\"%s\" ", *names);
+ }
+
+ putchar('\n');
+ }
+ }
+}
+
+void ffLogoBuiltinListAutocompletion(void) {
+ for (uint8_t ch = 0; ch < 26; ++ch) {
+ for (const FFlogo* logo = ffLogoBuiltins[ch]; *logo->names; ++logo) {
+ printf("%s\n", logo->names[0]);
+ }
+ }
+}
+
+const FFlogo* ffLogoGetBuiltinForName(const FFstrbuf* name, FFLogoSize size) {
+ return ffStrbufEqualS(name, "?") ? &ffLogoUnknown : logoGetBuiltin(name, size);
+}
+
+const FFlogo* ffLogoGetBuiltinDetected(FFLogoSize size) {
+ return logoGetBuiltinDetected(size);
+}
diff --git a/src/logo/logo.h b/src/logo/logo.h
new file mode 100644
index 0000000..105b964
--- /dev/null
+++ b/src/logo/logo.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#include "fastfetch.h"
+
+typedef enum FF_A_PACKED FFLogoLineType {
+ FF_LOGO_LINE_TYPE_NORMAL = 0,
+ FF_LOGO_LINE_TYPE_SMALL_BIT = 1 << 0, // The names of small logo must end with `_small` or `-small`
+ FF_LOGO_LINE_TYPE_ALTER_BIT = 1 << 1,
+ FF_LOGO_LINE_TYPE_FORCE_UNSIGNED = UINT8_MAX,
+} FFLogoLineType;
+
+typedef enum FF_A_PACKED FFLogoSize {
+ FF_LOGO_SIZE_UNKNOWN,
+ FF_LOGO_SIZE_NORMAL,
+ FF_LOGO_SIZE_SMALL,
+} FFLogoSize;
+
+typedef struct FFlogo {
+ const char* lines;
+ const char* names[FASTFETCH_LOGO_MAX_NAMES];
+ const char* colors[FASTFETCH_LOGO_MAX_COLORS];
+ const char* colorKeys;
+ const char* colorTitle;
+ FFLogoLineType type;
+} FFlogo;
+
+// logo.c
+void ffLogoPrint(void);
+void ffLogoPrintChars(const char* data, bool doColorReplacement);
+void ffLogoPrintLine(void);
+void ffLogoPrintRemaining(void);
+void ffLogoBuiltinPrint(void);
+void ffLogoBuiltinList(void);
+void ffLogoBuiltinListAutocompletion(void);
+void ffLogoPrintDetected(FFLogoSize size);
+const FFlogo* ffLogoGetBuiltinForName(const FFstrbuf* name, FFLogoSize size);
+const FFlogo* ffLogoGetBuiltinDetected(FFLogoSize size);
+
+// builtin.c
+extern const FFlogo* ffLogoBuiltins[];
+extern const FFlogo ffLogoUnknown;
+
+// image/image.c
+bool ffLogoPrintImageIfExists(FFLogoType type, bool printError);
diff --git a/src/logo/logo.svg b/src/logo/logo.svg
new file mode 100644
index 0000000..474cd6a
--- /dev/null
+++ b/src/logo/logo.svg
@@ -0,0 +1,39 @@
+<!-- Fastfetch Logo -->
+<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">
+ <!-- Terminal border -->
+ <rect x="0" y="0" width="400" height="400" rx="15" ry="15" fill="#282c34" stroke="#3498db"
+ stroke-width="3" />
+
+ <!-- Title bar of terminal -->
+ <g>
+ <!-- Background -->
+ <path d="M15,0 h370 a15,15 0 0 1 15,15 v25 h-400 v-25 a15,15 0 0 1 15,-15 z" fill="#3498db" opacity="0.2" />
+ <text x="190" y="28" font-family="Arial, sans-serif" font-size="20" font-weight="bold" fill="#ecf0f1">FASTFETCH</text>
+ <!-- Close btn -->
+ <circle cx="25" cy="20" r="7" fill="#e74c3c" />
+ <!-- Minimize btn -->
+ <circle cx="45" cy="20" r="7" fill="#f1c40f" />
+ <!-- Maximize btn -->
+ <circle cx="65" cy="20" r="7" fill="#2ecc71" />
+ <!-- Bottom border of title bar -->
+ <line x1="0" y1="40" x2="400" y2="40" stroke="#3498db" stroke-width="2" />
+ </g>
+ <!-- Rocket icon -->
+ <g>
+ <path d="M94.25,73.59 L139.99,142.20 L48.52,142.20 Z" fill="#e74c3c" />
+ <rect x="48.52" y="142.20" width="91.48" height="141.75" fill="#ecf0f1" />
+ <rect x="57.66" y="172.50" width="73.19" height="45.74" fill="#95a5a6" />
+ <path d="M57.66,328.89 L71.39,374.63 L89.68,328.89 Z" fill="#e67e22" />
+ <path d="M98.83,328.89 L117.12,374.63 L130.85,328.89 Z" fill="#e67e22" />
+ <rect x="48.52" y="283.15" width="91.48" height="45.74" fill="#7f8c8d" />
+ </g>
+ <!-- System info -->
+ <g font-family="monospace" font-size="42" fill="#2980b9" transform="translate(190, 102)">
+ <text y="0">►►►►►►►</text>
+ <text y="45">►►►►►►</text>
+ <text y="90">►►►►►</text>
+ <text y="135">►►►►</text>
+ <text y="180">►►►</text>
+ <text y="225">►►</text>
+ </g>
+</svg>