ohmu
·
2026-09-26
1#!/bin/sh
2
3# This fetch never lies, so you should always trust it.
4# No need to edit this file unless yuore STUPID and want it to break.
5
6version="version 1.6"
7
8bold=$(printf '\033[1m')
9reset=$(printf '\033[0m')
10
11black=$(printf '\033[0;30m')
12white=$(printf '\033[37m')
13
14purple=$(printf '\033[35m')
15blue=$(printf '\033[34m')
16cyan=$(printf '\033[36m')
17green=$(printf '\033[32m')
18yellow=$(printf '\033[33m')
19red=$(printf '\033[31m')
20
21orange=$(printf '\033[38;5;208m')
22
23foreground=$(printf '\033[0m' printf '\033[1m')
24
25brightred=$(printf '\033[0;91m')
26
27# decides what modules are in the output. possible options are:
28 # title wm kernel shell cpu gpu ram packages terminal uptime distro
29# the order changes depending on this aswell just so yk
30enabled="
31title
32distro
33wm
34shell
35kernel
36packages
37uptime
38terminal
39ram
40cpu
41"
42
43# remove a module from $enabled and put it into $disabled to disable it
44disabled="
45gpu
46"
47
48# these are for the 2 different thinigies colours
49# keep as auto for automatic colouring according to your distro
50keycolour="auto"
51accentcolour="auto"
52
53# gets your distro. Needed before logooption
54. /etc/os-release
55distro=$PRETTY_NAME
56distroShort=$NAME
57
58# this is for changing the logo
59# for a list of logos, use "confetch -h logo"
60# i dont plan on making logos for forks unless i decide otherwise.
61# this includes distros like mint, artix, pop, cachy, zorin, endeavor, etc.
62logooption="$distro"
63
64# past here is where the ugly ugly magic happens. Do NOT go further unless youre me.
65# when writing this, only me and god knew what i was writing. Now only i know.
66
67hostname=$(cat /etc/hostname)
68lineCount=0
69asciiLineCount=0
70
71addLine() {
72 lineCount=$((lineCount + 1))
73 eval "line_$lineCount=\$1"
74}
75
76asciiAddLine() {
77 asciiLineCount=$((asciiLineCount + 1))
78 eval "ascii_$asciiLineCount=\$1"
79}
80
81colouroption() {
82 case "$2" in
83 red) eval "$1=\$red" ;;
84 blue) eval "$1=\$blue" ;;
85 green) eval "$1=\$green" ;;
86 yellow) eval "$1=\$yellow" ;;
87 cyan) eval "$1=\$cyan" ;;
88 purple) eval "$1=\$purple" ;;
89 white) eval "$1=\$white" ;;
90 black) eval "$1=\$black" ;;
91 orange) eval "$1=\$orange" ;;
92 foreground) eval "$1=\$foreground" ;;
93 *)
94 echo "whats that colour: '$2'?"
95 exit 1
96 ;;
97 esac
98}
99
100setAutoColour() {
101 [ "$keycolour" = "auto" ] && keycolour=$1
102 [ "$accentcolour" = "auto" ] && accentcolour=$2
103}
104
105randomlogo() {
106 read -r up _ < /proc/uptime
107 num=$(( ${up%%.*} % 25 ))
108
109 case "$num" in
110 0) logooption="tux" ;;
111 1) logooption="debian" ;;
112 2) logooption="void" ;;
113 3) logooption="arch" ;;
114 4) logooption="gentoo" ;;
115 5) logooption="fedora" ;;
116 6) logooption="nix" ;;
117 7) logooption="alpine" ;;
118 8) logooption="dragonfly" ;;
119 9) logooption="suse" ;;
120 10) logooption="netbsd" ;;
121 11) logooption="freebsd" ;;
122 12) logooption="openbsd" ;;
123 13) logooption="plan9" ;;
124 14) logooption="gnu" ;;
125 15) logooption="guix" ;;
126 16) logooption="crux" ;;
127 17) logooption="exherbo" ;;
128 18) logooption="nerv" ;;
129 19) logooption="seele" ;;
130 20) logooption="navi" ;;
131 21) logooption="aperture" ;;
132 22) logooption="lambda" ;;
133 23) logooption="blackmesa" ;;
134 *) logooption="trash" ;;
135 esac
136}
137
138helpoptions() {
139 case "$1" in
140 logo)
141 echo " logo options:"
142 echo " tux, debian, nix, void, arch, fedora, freebsd,"
143 echo " alpine, slackware, dragonfly, suse, netbsd,"
144 echo " openbsd, plan9, gentoo, gnu, guix, crux, exherbo,"
145 echo " nerv, seele, navi, blackmesa, lambda, aperture,"
146 echo " and trash (fallback)"
147 ;;
148 accent)
149 echo " accent options:"
150 echo " white, purple, blue, cyan, green, yellow, red,"
151 echo " orange, black, and foreground"
152 ;;
153 key)
154 echo " key options:"
155 echo " white, purple, blue, cyan, green, yellow, red,"
156 echo " orange, black, and foreground" ;;
157 version)
158 echo " nothing to help with... what??"
159 echo " are you stupid?"
160 ;;
161 larp)
162 echo " larp options:"
163 echo " with logos: everything that --logo has"
164 echo " ^^ except for the non distros like seele or lamda"
165 echo " without correct logos: anything lol"
166 ;;
167 confused)
168 echo " i get that youre a lil confused"
169 echo " but this doesnt have options"
170 ;;
171 shorter)
172 echo " no options buddy.."
173 echo " will make a separate module flag in the future"
174 ;;
175 *)
176 echo " what? Wtf do you need help with??"
177 ;;
178 esac
179}
180
181while [ $# -gt 0 ]; do
182 case "$1" in
183 --version|-v)
184 echo "$version"
185 exit 0
186 ;;
187 --logo|-l)
188 logooption="$2"
189 shift 2
190 ;;
191 --key|-k)
192 colouroption keycolour "$2"
193 shift 2
194 ;;
195 --accent|-a)
196 colouroption accentcolour "$2"
197 shift 2
198 ;;
199 --larp|-L)
200 logooption="$2"
201 distroShort="$2"
202 distro="$2"
203 shift 2
204 ;;
205 --confused|-C)
206 randomlogo
207 shift
208 ;;
209 --shorter|-s)
210 # how i usually run this (yes, i use this instead of fastfetch)
211 disabled="cpu gpu ram terminal"
212 shift
213 ;;
214 --help|-h)
215 cat <<EOF
216
217 Usage: confetch [options]
218
219 -h, --help FLAG | helps you out
220 -v, --version | prints the version
221 -l, --logo NAME | well wtf do you THINK it does, huh??
222 -a, --accent COLOUR | changes your accent irl
223 -k, --key COLOUR | changes your house keys
224 -C, --confused | confuses you
225 -s, --shorter | gets rid of a few modules
226 -L. --larp NAME | sudo W opsec. Larpity larp
227
228EOF
229 helpoptions "$2"
230 echo
231 exit 0
232 ;;
233 *)
234 echo "that isnt a command buddy: $1"
235 exit 1
236 ;;
237 esac
238done
239
240case "$distro" in
241 *[Vv]oid*)
242 distroecho="$USER died to the void"
243 setAutoColour "$green" "$red"
244 ;;
245 *[Aa]rch*)
246 distroecho="too minimal for the average, not minimal enough for the experienced"
247 setAutoColour "$blue" "$red"
248 ;;
249 *[Dd]ebian*)
250 distroecho="packages from the jurassic period lol"
251 setAutoColour "$red" "$purple"
252 ;;
253 *[Gg]entoo*)
254 distroecho="have a lot of freetime, yeah?"
255 setAutoColour "$purple" "$cyan"
256 ;;
257 *[Ff]edora*)
258 distroecho="test rabbit for RHEL"
259 setAutoColour "$blue" "$green"
260 ;;
261 *[Nn]ix*)
262 distroecho="soystemd land"
263 setAutoColour "$cyan" "$blue"
264 ;;
265 *[Aa]lpine*)
266 distroecho="im musling it"
267 setAutoColour "$blue" "$yellow"
268 ;;
269 *[Ss]use*)
270 distroecho="fedora EU edition"
271 setAutoColour "$green" "$yellow"
272 ;;
273 *[Ss]lack*)
274 distroecho="okay grandpa"
275 setAutoColour "$blue" "$foreground"
276 ;;
277 *[Nn]et[Bb][Ss][Dd]*)
278 distroecho="using it just to be niche icel"
279 setAutoColour "$red" "$foreground"
280 ;;
281 *[Dd]ragonfly*)
282 distroecho="dont go flying little"
283 setAutoColour "$red" "$green"
284 ;;
285 *[Ff]ree[Bb][Ss][Dd]*)
286 distroecho="$USER met the devil"
287 setAutoColour "$red" "$red"
288 ;;
289 *[Oo]pen[Bb][Ss][Dd]*)
290 distroecho="paranoid, are we?"
291 setAutoColour "$yellow" "$blue"
292 ;;
293 *[Pp]lan9*)
294 distroecho="tru unix.."
295 setAutoColour "$foreground" "$purple"
296 ;;
297 *[Gg]uix*)
298 distroecho="nix, but better i suppose"
299 setAutoColour "$yellow" "$blue"
300 ;;
301 *[Cc]rux*)
302 distroecho="funny little penguin.."
303 setAutoColour "$blue" "$yellow"
304 ;;
305 *[Ee]xherbo*)
306 distroecho="ANYTHING to be niche ig"
307 setAutoColour "$blue" "$brightred"
308 ;;
309 *KISS*)
310 distroecho="this kiss was painful"
311 setAutoColour "$purple" "$purple"
312 ;;
313 *)
314 distroecho="ay this isnt supported! Stop using confetch!!"
315 setAutoColour "$red" "$red"
316 ;;
317esac
318
319for module in $enabled; do
320 case " $disabled " in
321 *" $module "*) continue ;;
322 esac
323
324 case "$module" in
325
326 title)
327 titlekey="sudo apt ddos"
328 title="${bold}${accentcolour}$USER${reset}@${bold}${accentcolour}${hostname}${reset}"
329 title=" ${reset}${titlekey}${reset} ${title}"
330 addLine "$title"
331 ;;
332
333 distro)
334 distrokey="${distroecho}"
335 distromod="${distroShort} user BTW"
336 distromod="${bold}${keycolour}${distrokey}${reset} = ${distromod}"
337 addLine "$distromod"
338 ;;
339
340 wm)
341 id=$(xprop -root -notype _NET_SUPPORTING_WM_CHECK)
342 id=${id##* }
343 wm=$(xprop -id "$id" -notype -len 100 -f _NET_WM_NAME 8t)
344 wm=${wm/*WM_NAME = }
345 wm=${wm/\"}
346 wm=${wm/\"*}
347 case "$WAYLAND_DISPLAY" in
348 "")
349 server="I hope Xlibre"
350 wmkey="window manager"
351 ;;
352 *)
353 server=Wayland
354 wmkey="compositor"
355 ;;
356 esac
357 wm="${bold}${keycolour}${wmkey}${reset} = ${wm} (${server})"
358 addLine "$wm"
359 ;;
360
361 shell)
362 shell="${SHELL##*/}"
363 shellkey="like.. a seashell?"
364 shell="${bold}${keycolour}${shellkey}${reset} = ${shell}"
365 addLine "$shell"
366 ;;
367
368 kernel)
369 kernel=$(uname -r )
370 kernelkey="highest ranking non-General grade officer"
371 kernel="${bold}${keycolour}${kernelkey}${reset} = ${kernel}"
372 addLine "$kernel"
373 ;;
374
375 uptime)
376 read -r uptime _ < /proc/uptime
377 uptime_seconds=${uptime%%.*}
378 uptime_minutes=$(( $uptime_seconds / 60 ))
379 uptime_hours=$(( $uptime_minutes / 60 ))
380 if [ "$uptime_hours" -ge 10 ]; then
381 uptimekey="ew get off your computer wtf. Youve been on for"
382 uptime="${uptime_hours} hours"
383 elif [ "$uptime_hours" -ge 5 ]; then
384 uptimekey="go touch some grass, ok?"
385 uptime="${uptime_hours} hours"
386 elif [ "$uptime_hours" -ge 2 ]; then
387 uptimekey="get off soon, alr?"
388 uptime="${uptime_hours} hours"
389 elif [ "$uptime_hours" -ge 1 ]; then
390 uptimekey="keep on using that computer, computer boy."
391 uptime="${uptime_minutes} minutes"
392 elif [ "$uptime_minutes" -ge 30 ]; then
393 uptimekey="wow, not too much, huh? "
394 uptime="${uptime_minutes} minutes"
395 else
396 uptimekey="computah, slime this guy out. "
397 uptime="${uptime_minutes} minutes"
398 fi
399 uptime="${bold}${keycolour}${uptimekey}${reset} ${uptime}"
400 addLine "$uptime"
401 ;;
402
403 packages)
404 packages=$(
405 if command -v apt-get > /dev/null 2>&1; then
406 dpkg-query -f '.\n' -W | wc -l
407 elif command -v pacman > /dev/null 2>&1; then
408 pacman -Qq | wc -l
409 elif command -v dnf > /dev/null 2>&1; then
410 rpm -qa --queryformat '.\n' | wc -l
411 elif command -v zypper > /dev/null 2>&1; then
412 rpm -qa --queryformat '.\n' | wc -l
413 elif command -v xbps-query > /dev/null 2>&1; then
414 xbps-query -l | wc -l
415 elif command -v emerge > /dev/null 2>&1; then
416 ls /var/db/pkg/*/* -d | wc -l
417 elif command -v apk > /dev/null 2>&1; then
418 apk info | wc -l
419 elif command -v nix-env > /dev/null 2>&1; then
420 nix-env --query | wc -l
421 elif command -v kiss > /dev/null 2>&1; then
422 kiss l | wc -l
423 else
424 echo "no"
425 fi
426 )
427
428 if [ "$packages" != "no" ]; then
429 packages_low=$(( $packages * 10 / 12 ))
430 packages_high=$(( $packages * 16 / 10 ))
431 packages="prolly like ${packages_low} to ${packages_high}"
432 else
433 packages="stop using a niche distro ya bum"
434 fi
435 packageskey="aliexpress packages"
436 packages="${bold}${keycolour}${packageskey}${reset} = ${packages}"
437 addLine "$packages"
438 ;;
439
440 terminal)
441 case "$TERM" in
442 *foot*)
443 terminalkey="mghh.. feet :drooling_face: term"
444 terminal="yummy in my tummy"
445 ;;
446 *kitty*)
447 terminalkey="kitty? i like them. term"
448 terminal="cat"
449 ;;
450 *rxvt-unicode*)
451 terminalkey="the best x11 term btw. term"
452 terminal="urxvt"
453 ;;
454 *xterm*)
455 terminalkey="why are you using this..? term"
456 terminal="$TERM"
457 ;;
458 *)
459 terminalkey="prolly a bad term"
460 terminal="$TERM"
461 ;;
462 esac
463 terminal="${bold}${keycolour}${terminalkey}${reset} = ${terminal}"
464 addLine "$terminal"
465 ;;
466
467 cpu)
468 cpu=$( awk -F ': ' '/model name*:*/{print $2; exit}' /proc/cpuinfo )
469 cpukey="cpu"
470 cpu="${space}${bold}${keycolour}${cpukey}${reset} = ${cpu}"
471 addLine "$cpu"
472 ;;
473
474 gpu)
475 if command -v lspci >/dev/null; then
476 gpuNumber=$(lspci -k | grep -E "(VGA|3D|DISPLAY)" | awk '{print $1; exit}')
477
478 gpu=$(lspci -v -s "${gpuNumber}" | awk -F': ' '/Subsystem:/{print $2}')
479 [ -z "$gpu" ] && gpu=$(lspci -mm -s "${gpuNumber}" | awk -F'"' '{print $6}' | cut -d'[' -f1)
480 else
481 gpu="you dont have one, you poor bastard"
482 fi
483 gpukey="gpu"
484 gpu="${bold}${keycolour}${gpukey}${reset} = ${gpu}"
485 addLine "$gpu"
486 ;;
487
488 ram)
489 while read -r key value unit; do
490 [ "$key" = "MemTotal:" ] && { ramTotal=$value; break; }
491 done < /proc/meminfo
492 while read -r key value unit; do
493 [ "$key" = "MemAvailable:" ] && { ramAvail=$value; break; }
494 done < /proc/meminfo
495
496 ramTotal_GB_full=$(( ramTotal / 1000000 ))
497 ramTotal_clean=$(( ramTotal / 1000000 * 1000000 ))
498
499 ramUsed=$(( ramTotal_clean - ramAvail ))
500
501 ramUsed_hundreth=$(( ramUsed / 10000 ))
502 ramUsed_GB="$(( ramUsed_hundreth / 100 )).$(( ramUsed_hundreth % 100 ))"
503
504 ram=$(
505 if [ "$ramTotal_GB_full" -ge 63 ]; then
506 echo "${ramUsed_GB}GB/${ramTotal_GB_full}GB?? sharing is caring btw"
507 elif [ "$ramTotal_GB_full" -ge 31 ]; then
508 echo "${ramUsed_GB}GB/${ramTotal_GB_full}GB, a couple browser tabs worth"
509 elif [ "$ramTotal_GB_full" -ge 15 ]; then
510 echo "${ramUsed_GB}GB/${ramTotal_GB_full}GB, pretty average tbh"
511 elif [ "$ramTotal_GB_full" -ge 7 ]; then
512 echo "${ramUsed_GB}GB/${ramTotal_GB_full}GB, you better hope GTA 6 never releases"
513 else
514 echo "only ${ramUsed_GB}GB/${ramTotal_GB_full}GB..? treat yourself, please"
515 fi
516 )
517 ramkey="ai food"
518 ram="${bold}${keycolour}${ramkey}${reset} = ${ram}"
519 addLine "$ram"
520 ;;
521
522 esac
523done
524
525case "$logooption" in
526 [Tt]ux)
527 asciiAddLine "${bold} .--. "
528 asciiAddLine "${bold} |@${yellow}_${foreground}@ | "
529 asciiAddLine "${bold} |${yellow}:_/${foreground} | "
530 asciiAddLine "${bold} // \ \ "
531 asciiAddLine "${bold} (J l ) "
532 asciiAddLine "${bold} /'\_ _/'\ "
533 asciiAddLine "${bold} \___)=(___/ ${reset}"
534 space=" "
535 ;;
536 *[Vv]oid*)
537 asciiAddLine "${bold}${green} _*###*_ "
538 asciiAddLine "${bold}${green} \\ "
539 asciiAddLine "${bold}${green} $ ${foreground}/\`\ ${green} $ "
540 asciiAddLine "${bold}${green} | ${foreground}| @ |${green} | "
541 asciiAddLine "${bold}${green} $ ${foreground}\_/${green} $ "
542 asciiAddLine "${bold}${green} \_ "
543 asciiAddLine "${bold}${green} *###*\` ${reset}"
544 space=" "
545 ;;
546 *[Dd]ebian*)
547 asciiAddLine "${bold}${red} ______ "
548 asciiAddLine "${bold}${red} / __ \ "
549 asciiAddLine "${bold}${red} / / \ | "
550 asciiAddLine "${bold}${red} | | / "
551 asciiAddLine "${bold}${red} \ '-_-' "
552 asciiAddLine "${bold}${red} \ "
553 asciiAddLine "${bold}${red} '-__ ${reset}"
554 space=" "
555 ;;
556 *[Aa]rch*)
557 asciiAddLine "${bold}${blue} /\ "
558 asciiAddLine "${bold}${blue} / \ "
559 asciiAddLine "${bold}${blue} / \ "
560 asciiAddLine "${bold}${blue} / __ \ "
561 asciiAddLine "${bold}${blue} / | | \ "
562 asciiAddLine "${bold}${blue} / _/ \_ \ "
563 asciiAddLine "${bold}${blue} /.' '.\ ${reset}"
564 space=" "
565 ;;
566 *[Gg]entoo*)
567 asciiAddLine "${bold}${purple} _-'''-_ "
568 asciiAddLine "${bold}${purple} / * "
569 asciiAddLine "${bold}${purple} |_ O \ "
570 asciiAddLine "${bold}${purple} _-> |> "
571 asciiAddLine "${bold}${purple} | / "
572 asciiAddLine "${bold}${purple} \_ _* "
573 asciiAddLine "${bold}${purple} -...- ${reset}"
574 space=" "
575 ;;
576 *[Ff]edora*)
577 asciiAddLine "${bold}${blue} _*#####*_ "
578 asciiAddLine "${bold}${blue} /${foreground} __${blue} \ "
579 asciiAddLine "${bold}${blue} $ ${foreground} | |${blue} $ "
580 asciiAddLine "${bold}${blue} | ${foreground} __|__|${blue} | "
581 asciiAddLine "${bold}${blue} | ${foreground}| |${blue} $ "
582 asciiAddLine "${bold}${blue} | ${foreground}|__|${blue} _/ "
583 asciiAddLine "${bold}${blue} \_________* ${reset}"
584 space=" "
585 ;;
586 *[Nn]ix*)
587 asciiAddLine "${bold}${blue} _**___${cyan}/\/\ "
588 asciiAddLine "${bold}${blue} I______${cyan}\ /${blue}__ "
589 asciiAddLine "${bold}${cyan} _/ / \ ${blue}/ / "
590 asciiAddLine "${bold}${cyan} / < ${blue} > _/ "
591 asciiAddLine "${bold}${cyan} /_/ ${blue}\\${cyan}___${blue}/${cyan}_${blue}/${cyan}_ "
592 asciiAddLine "${bold}${blue} / \\${cyan}___ _I "
593 asciiAddLine "${bold}${blue} \/\/ ${cyan} ** ${reset}"
594 space=" "
595 ;;
596 *[Aa]lpine*)
597 asciiAddLine "${bold}${blue} __ "
598 asciiAddLine "${bold}${blue} / \ __ "
599 asciiAddLine "${bold}${blue} / /\ \/ \ "
600 asciiAddLine "${bold}${blue} / / \ \/\ \ "
601 asciiAddLine "${bold}${blue} / / \ \ \ \ "
602 asciiAddLine "${bold}${blue} / /| \ \ \ \ "
603 asciiAddLine "${bold}${blue} /_/_| \_\ \_\ ${reset}"
604 space=" "
605 ;;
606 *[Ss]use*)
607 asciiAddLine "${bold}${green} |̈́'**--.__ "
608 asciiAddLine "${bold}${green} ,_\`*--. "
609 asciiAddLine "${bold}${green} /__\ \ "
610 asciiAddLine "${bold}${green} ____,\_./ ,__\ "
611 asciiAddLine "${bold}${green} \*._ \`'-*'\`___, "
612 asciiAddLine "${bold}${green} \`'*--*' _./ "
613 asciiAddLine "${bold}${green} --.,,,.----*' ${reset}"
614 space=" "
615 ;;
616 *[Ss]lack*)
617 asciiAddLine "${bold}${blue} ,-*##\$##*-, "
618 asciiAddLine "${bold}${blue} / ${foreground},'\`\`'*I${blue} \ "
619 asciiAddLine "${bold}${blue} $ ${foreground}\`~--._${blue} $ "
620 asciiAddLine "${bold}${blue} |[ ${foreground}\`)${blue} ]| "
621 asciiAddLine "${bold}${blue} $ ${foreground},I*.__.*\`${blue} $ "
622 asciiAddLine "${bold}${blue} \ ${foreground}|--------${blue} / "
623 asciiAddLine "${bold}${blue} '-*##\$##*-' ${reset}"
624 space=" "
625 ;;
626 *[Ee]xherbo*)
627 asciiAddLine "${bold}${black} (\.-~-.o "
628 asciiAddLine "${bold}${black} / ${blue}o O${foreground} \ "
629 asciiAddLine "${bold}${black} |${brightred}(${foreground}+${brightred}¨\`¨${foreground}*${brightred})${foreground}| "
630 asciiAddLine "${bold}${black} \-_:_-/ "
631 asciiAddLine "${bold}${black} (=/---=== \) "
632 asciiAddLine "${bold}${black} _/ -'-´¨¨´ )_ "
633 asciiAddLine "${bold}${black} | )¨-,_.,-=/´¨/ "
634 asciiAddLine "${bold}${black} ´'/_/'---'|__| "
635 space=" "
636 ;;
637 *[Cc]rux*)
638 asciiAddLine "${bold}${blue} ,-\"\"-, "
639 asciiAddLine "${bold}${blue} |${foreground}+ ^${blue} | "
640 asciiAddLine "${bold}${blue} |${yellow}/_\ ${blue}|_ "
641 asciiAddLine "${bold}${blue} ,' ${foreground}__${blue} ,\ "
642 asciiAddLine "${bold}${blue} | -${foreground}| \ ${blue}//| "
643 asciiAddLine "${bold}${yellow} /¨|${blue}¨-' ${yellow}|${blue}^${yellow}|${blue}¨| "
644 asciiAddLine "${bold}${yellow} \_\\${blue}¸${foreground}\__${yellow}\/${blue}_/ ${reset}"
645 space=" "
646 ;;
647 *[Gg]uix*)
648 asciiAddLine "${bold}${yellow}\`,'-_._ _._-',\`"
649 asciiAddLine "${bold}${yellow} '-__ \_ _/ __-' "
650 asciiAddLine "${bold}${yellow} \ \ / / "
651 asciiAddLine "${bold}${yellow} \ \ / / "
652 asciiAddLine "${bold}${yellow} \ \/ / "
653 asciiAddLine "${bold}${yellow} \ / / "
654 asciiAddLine "${bold}${yellow} V__/ ${reset}"
655 space=" "
656 ;;
657 [Gg]nu)
658 asciiAddLine "${bold} _-;;==- -==;;-_ "
659 asciiAddLine "${bold} |\/ _-;*\\\//*;+-.\/|"
660 asciiAddLine "${bold} \\\\\\\\\\^¨''¨V¨''¨^//// "
661 asciiAddLine "${bold} \\\/ @) \@) \- "
662 asciiAddLine "${bold} / . ¸_ \|-_\ "
663 asciiAddLine "${bold} /_/; /* _,/ ¨- "
664 asciiAddLine "${bold} ¨ | ´, ´\_-=_=\ "
665 asciiAddLine "${bold} | ', ¨´´´/ "
666 asciiAddLine "${bold} \ ', > "
667 asciiAddLine "${bold} \#\\\ ${reset}"
668 space=" "
669 ;;
670 [Dd]ragonfly)
671 asciiAddLine "${bold} [ ¨', o${red}^${foreground}o ,'¨ ] "
672 asciiAddLine "${bold} ´-¸ '.,${red}#${foreground},.' ¸-´ "
673 asciiAddLine "${bold} ¸___:=${red}|#|${foreground}=:___¸ "
674 asciiAddLine "${bold} ( ¸~${red}\#/${foreground}~¸ ) "
675 asciiAddLine "${bold} ´'´ ${red}#${foreground} ´'´ "
676 asciiAddLine "${bold}${red} # "
677 asciiAddLine "${bold}${red} | ${reset}"
678 space=" "
679 ;;
680 *[Ff]ree[Bb][Ss][Dd]*)
681 asciiAddLine "${bold}${red} (^-_-*###*-_-^) "
682 asciiAddLine "${bold}${red} \/ \/ "
683 asciiAddLine "${bold}${red} $ ¤ ¤ $ "
684 asciiAddLine "${bold}${red} | _______ | "
685 asciiAddLine "${bold}${red} $ \ |T| / $ "
686 asciiAddLine "${bold}${red} \_ '-_-' _/ "
687 asciiAddLine "${bold}${red} '-*###*-' ${reset}"
688 space=" "
689 ;;
690 *[Oo]pen[Bb][Ss][Dd]*)
691 asciiAddLine "${bold}${yellow} \,.-|--./ "
692 asciiAddLine "${bold}${yellow} /', . \__ "
693 asciiAddLine "${bold}${yellow} \ . ${foreground}^ ^${yellow} / "
694 asciiAddLine "${bold}${yellow} _| . c ${red}U${yellow} ɔ | "
695 asciiAddLine "${bold}${yellow} \ . ,/ "
696 asciiAddLine "${bold}${yellow} / , ,_.\ "
697 asciiAddLine "${bold}${yellow} '|/\/ ' ${reset}"
698 space=" "
699 ;;
700 *[Nn]et[Bb][Ss][Dd]*)
701 asciiAddLine "${bold} |_\\${red}¨¨-__-¨¨--.__,.--,__ "
702 asciiAddLine "${bold} |_\\${red} _-¨-=='¨¨ "
703 asciiAddLine "${bold} |_\\${red} ´´¨-,___ "
704 asciiAddLine "${bold} |_\\${red} _¨¨--__--''¨¨¨ "
705 asciiAddLine "${bold} |_\\${red}--_-¨ "
706 asciiAddLine "${bold} |_\ "
707 asciiAddLine "${bold} |_\ "
708 asciiAddLine "${bold} |_\ ${reset}"
709 space=" "
710 ;;
711 [Pp]lan9)
712 asciiAddLine "${bold} |#\|#\.---., "
713 asciiAddLine "${bold} \#\^¨ 1 "
714 asciiAddLine "${bold} ], o o} "
715 asciiAddLine "${bold} | (*)[ "
716 asciiAddLine "${bold} } ¨ | "
717 asciiAddLine "${bold} ,.[ / "
718 asciiAddLine "${bold} <_\____,\_\-\ ${reset}"
719 space=" "
720 ;;
721 [Ss]eele)
722 asciiAddLine "${bold} ____________ "
723 asciiAddLine "${bold} -#@#- | -#@#- "
724 asciiAddLine "${bold} \ | / "
725 asciiAddLine "${bold} -#@#- | -#@#- "
726 asciiAddLine "${bold} \ | / "
727 asciiAddLine "${bold} -#@#-\ |/-#@#- "
728 asciiAddLine "${bold} \/ "
729 asciiAddLine "${bold} -#@#- "
730 space=" "
731 ;;
732 [Nn]erv)
733 asciiAddLine "${bold}${red} ^, ,_-';, "
734 asciiAddLine "${bold}${red} ´\\¸| , ,' "
735 asciiAddLine "${bold}${black} |\ | L${red}\\¸ ´;, "
736 asciiAddLine "${bold}${black} | \| |_${red}´\\¸ ´; "
737 asciiAddLine "${bold}${black} |) \ ${red}´\\¸ } "
738 asciiAddLine "${bold}${black} |\ \/ ${red}´\/ ${reset}"
739 space=" "
740 ;;
741 [Nn]avi)
742 asciiAddLine "${bold}${cyan} . "
743 asciiAddLine "${bold}${cyan} . ${blue}_+##\$##+_ ${cyan}. "
744 asciiAddLine "${bold}${cyan} / ${blue}/^ ${cyan}+#\$#+ ${blue}^\ ${cyan}\ "
745 asciiAddLine "${bold}${cyan} | ${blue}() ${cyan}#|${blue}(${cyan}@${blue})${cyan}|# ${blue}() ${cyan}| "
746 asciiAddLine "${bold}${cyan} \ ${blue}\, ${cyan}\' '/ ${blue},/ ${cyan}/ "
747 asciiAddLine "${bold}${cyan} . ' ${blue}¨+${cyan}|${blue}#\$#${cyan}|${blue}+¨ ${cyan}' . "
748 asciiAddLine "${bold}${cyan} ,| |, "
749 asciiAddLine "${bold}${cyan} ${reset}"
750 space=" "
751 ;;
752 [Aa]perture)
753 asciiAddLine "${bold}${blue} _-----,_ "
754 asciiAddLine "${bold}${blue} _¨´¨- _ \ ¨_ "
755 asciiAddLine "${bold}${blue} / _--¨-,\ \ "
756 asciiAddLine "${bold}${blue} /--¨;/ | / \ "
757 asciiAddLine "${bold}${blue} | ,/ /´ | "
758 asciiAddLine "${bold}${blue} \ / | /;_--/ "
759 asciiAddLine "${bold}${blue} \ \'-_--¨ / "
760 asciiAddLine "${bold}${blue} ¨_ \ ¨ -_¸_¨ "
761 asciiAddLine "${bold}${blue} ¨^-----¨ "
762 space=" "
763 ;;
764 [bB]lack[Mm]esa)
765 asciiAddLine "${bold} _*###*_ "
766 asciiAddLine "${bold} / \ "
767 asciiAddLine "${bold} $ $ "
768 asciiAddLine "${bold} |[ .---. ]| "
769 asciiAddLine "${bold} \$___| \\$ "
770 asciiAddLine "${bold} \_ _/ "
771 asciiAddLine "${bold} *###* "
772 space=" "
773 ;;
774 [Ll]ambda)
775 asciiAddLine "${bold}${orange} _*###*_ "
776 asciiAddLine "${bold}${orange} / _ \ "
777 asciiAddLine "${bold}${orange} $ \ $ "
778 asciiAddLine "${bold}${orange} |[ / \ ]| "
779 asciiAddLine "${bold}${orange} $ / \_ $ "
780 asciiAddLine "${bold}${orange} \_ _/ "
781 asciiAddLine "${bold}${orange} *###* "
782 space=" "
783 ;;
784 *[Kk]iss*|*KISS*)
785 asciiAddLine "${bold}${purple} ___ "
786 asciiAddLine "${bold}${purple} (${white}..${purple} | "
787 asciiAddLine "${bold}${purple} (${white}<>${purple} | "
788 asciiAddLine "${bold}${purple} / ${white}__${purple} \ "
789 asciiAddLine "${bold}${purple} ( ${white}/ \\${purple} /| "
790 asciiAddLine "${bold}${purple}_/\\ ${white}__${purple})/_) "
791 asciiAddLine "${bold}${purple}\\/-____\\/ "
792 space=" "
793 ;;
794 *)
795 # this is a trash can btw
796 asciiAddLine "${bold} ___________ "
797 asciiAddLine "${bold} \X#X#X#X#X/ "
798 asciiAddLine "${bold} \#X#X#X#X#/ "
799 asciiAddLine "${bold} \X#X#X#X#X/ "
800 asciiAddLine "${bold} \#X#X#X#X#/ "
801 asciiAddLine "${bold} \X#X#X#X#X/ "
802 asciiAddLine "${bold} |#X#X#X#X#| ${reset}"
803 space=" "
804 ;;
805esac
806
807i=2
808
809printf "%s\n" "$(eval "echo \"\$line_1\"")"
810
811while [ "$i" -le "$lineCount" ] || [ "$((i - 1))" -le "$asciiLineCount" ]; do
812 logo_line=$((i - 1))
813
814 eval "line=\${line_$i}"
815
816 if [ "$logo_line" -le "$asciiLineCount" ]; then
817 eval "logo=\${ascii_$logo_line}"
818 else
819 logo="$space"
820 fi
821
822 printf "%s %s\n" "$logo" "$line"
823 i=$((i + 1))
824done
825
826# Ik its badly made btw
827
828# to do list:
829 # more logos:
830 # derive
831 # bedrock
832 # kiss
833 # make more configurable
834 # make logos be 1 instead of 7
835 # more compatibility for distros
836 # bsd support
837 # config file instead of this file
838 # logo file instead of this file