Arctis

screenfetch modified

Apr 30th, 2017
930
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 214.89 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. # screenFetch - a CLI Bash script to show system/theme info in screenshots
  4.  
  5. # Copyright (c) 2010-2017 Brett Bohnenkamper <[email protected]>
  6. #  This program is free software: you can redistribute it and/or modify
  7. #  it under the terms of the GNU General Public License as published by
  8. #  the Free Software Foundation, either version 3 of the License, or
  9. #  (at your option) any later version.
  10. #
  11. #  This program is distributed in the hope that it will be useful,
  12. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. #  GNU General Public License for more details.
  15. #
  16. #  You should have received a copy of the GNU General Public License
  17. #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  
  19. # Any ideas/suggestions would be appreciated by emailing me or by stopping by http://github.com/KittyKatt/screenFetch.
  20. #You could also drop in on the IRC channel at irc://irc.rizon.net/screenFetch. to put forth suggestions/ideas. Thank you.
  21.  
  22. #LANG=C
  23. #LANGUAGE=C
  24. #LC_ALL=C
  25.  
  26.  
  27. scriptVersion="3.8.0"
  28.  
  29. ######################
  30. # Settings for fetcher
  31. ######################
  32.  
  33. # This setting controls what ASCII logo is displayed.
  34. # distro="Linux"
  35.  
  36. # This sets the information to be displayed. Available: distro, Kernel, DE, WM, Win_theme, Theme, Icons, Font, Background, ASCII. To get just the information, and not a text-art logo, you would take "ASCII" out of the below variable.
  37. #display="distro host kernel uptime pkgs shell res de wm wmtheme gtk disk cpu mem"
  38. valid_display=( distro host kernel uptime pkgs shell res de wm wmtheme gtk disk cpu mem )
  39. #display=(distro uptime pkgs shell disk de gtk cpu mem )
  40. display=(distro host cpu mem disk pkgs uptime )
  41. # Display Type: ASCII or Text
  42. display_type="ASCII"
  43. # Plain logo
  44. display_logo="no"
  45.  
  46. # Colors to use for the information found. These are set below according to distribution. If you would like to set your OWN color scheme for these, uncomment the lines below and edit them to your heart's content.
  47. # textcolor="\e[0m"
  48. # labelcolor="\e[1;34m"
  49.  
  50. # WM & DE process names
  51. # Removed WM's: compiz
  52. wmnames=( fluxbox openbox blackbox xfwm4 metacity kwin twin icewm pekwm flwm flwm_topside fvwm dwm awesome wmaker stumpwm musca xmonad.* i3 ratpoison scrotwm spectrwm wmfs wmii beryl subtle e16 enlightenment sawfish emerald monsterwm dminiwm compiz Finder herbstluftwm howm notion bspwm cinnamon 2bwm echinus swm budgie-wm dtwm 9wm chromeos-wm deepin-wm sway )
  53. denames=( gnome-session xfce-mcs-manage xfce4-session xfconfd ksmserver lxsession lxqt-session gnome-settings-daemon mate-session mate-settings-daemon Finder deepin )
  54.  
  55. # Screenshot Settings
  56. # This setting lets the script know if you want to take a screenshot or not. 1=Yes 0=No
  57. screenshot=
  58. # This setting lets the script know if you want to upload the screenshot to a filehost. 1=Yes 0=No
  59. upload=
  60. # This setting lets the script know where you would like to upload the file to. Valid hosts are: teknik, mediacrush, imgur, hmp, and a configurable local.
  61. uploadLoc=
  62. # You can specify a custom screenshot command here. Just uncomment and edit. Otherwise, we'll be using the default command: scrot -cd3.
  63. # screenCommand="scrot -cd5"
  64. shotfile=$(printf "screenFetch-`date +'%Y-%m-%d_%H-%M-%S'`.png")
  65.  
  66. # Verbose Setting - Set to 1 for verbose output.
  67. verbosity=
  68.  
  69.  
  70. # The below function will allow you to add custom lines of text to the screenfetch output.
  71. # It will automatically be executed at the right moment if use_customlines is set to 1.
  72. use_customlines=
  73. customlines () {
  74.     # The following line can serve as an example.
  75.     # feel free to let the computer generate the output: e. g. using $(cat /etc/motd) or $(upower -d | grep THISORTHAT)
  76.     # In the example cutom0 line replace <YOUR LABEL> and <your text> with options specified by you.
  77.     # Also make sure the $custom0 variable in out_array=... matches the one at the beginning of the line
  78.     #
  79.     custom0=$(echo -e "$labelcolor YOUR LABEL:$textcolor your text"); out_array=( "${out_array[@]}" "$custom0" ); ((display_index++));
  80.  
  81.     # Battery percentage and time to full/empty:
  82.     # (uncomment lines below to use)
  83.     #
  84.     #custom1=$(echo -e "$labelcolor Battery:$textcolor $(upower -d | grep percentage | head -n1 | cut -d ' ' -f 15-)"); out_array=( "${out_array[@]}" "$custom1" ); ((display_index++));
  85.     #if [ "$(upower -d | grep time)" ]; then
  86.     #   battery_time="$(upower -d | grep time | head -n1 | cut -d ' ' -f 14-) $(upower -d | grep time | head -n1 | cut -d ' ' -f 6-7 | cut -d ':' -f1)"
  87.     #else
  88.     #   battery_time="power supply plugged in"
  89.     #fi
  90.     #custom2=$(echo -e "$labelcolor $(echo '  `->')$textcolor $battery_time"); out_array=( "${out_array[@]}" "$custom2" ); ((display_index++));
  91.  
  92.     # Display public IP:
  93.     #custom3=$(echo -e "$labelcolor Public IP:$textcolor $(curl -s ipinfo.io/ip)"); out_array=( "${out_array[@]}" "$custom3" ); ((display_index++));
  94.  
  95.     ###########################################
  96.     ##  MY CUSTOM LINES
  97.     ###########################################
  98.  
  99.     #custom4=...
  100. }
  101.  
  102.  
  103. #############################################
  104. #### CODE No need to edit past here CODE ####
  105. #############################################
  106.  
  107. #########################################
  108. # Static Variables and Common Functions #
  109. #########################################
  110. c0="\033[0m" # Reset Text
  111. bold="\033[1m" # Bold Text
  112. underline="\033[4m" # Underline Text
  113. display_index=0
  114.  
  115. # User options
  116. gtk_2line="no"
  117.  
  118. # Static Color Definitions
  119. colorize () {
  120.     printf "\033[38;5;$1m"
  121. }
  122. getColor () {
  123.     if [[ -n "$1" ]]; then
  124.         if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  125.             if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  126.                 tmp_color=${1,,}
  127.             else
  128.                 tmp_color="$(tr '[:upper:]' '[:lower:]' <<< ${1})"
  129.             fi
  130.         else
  131.             tmp_color="$(tr '[:upper:]' '[:lower:]' <<< ${1})"
  132.         fi
  133.         case "${tmp_color}" in
  134.             'black')    color_ret='\033[0m\033[30m';;
  135.             'red')      color_ret='\033[0m\033[31m';;
  136.             'green')    color_ret='\033[0m\033[32m';;
  137.             'brown')    color_ret='\033[0m\033[33m';;
  138.             'blue')     color_ret='\033[0m\033[34m';;
  139.             'purple')   color_ret='\033[0m\033[35m';;
  140.             'cyan')     color_ret='\033[0m\033[36m';;
  141.             'yellow')   color_ret='\033[0m\033[1;33m';;
  142.             'white')    color_ret='\033[0m\033[1;37m';;
  143.  
  144.             'dark grey')    color_ret='\033[0m\033[1;30m';;
  145.             'light red')    color_ret='\033[0m\033[1;31m';;
  146.             'light green')  color_ret='\033[0m\033[1;32m';;
  147.             'light blue')   color_ret='\033[0m\033[1;34m';;
  148.             'light purple') color_ret='\033[0m\033[1;35m';;
  149.             'light cyan')   color_ret='\033[0m\033[1;36m';;
  150.             'light grey')   color_ret='\033[0m\033[37m';;
  151.             # Some 256 colors
  152.             'orange') color_ret="$(colorize '202')";;       #DarkOrange
  153.             'light orange') color_ret="$(colorize '214')";; #Orange1
  154.             # HaikuOS
  155.             'black_haiku') color_ret="$(colorize '7')";;
  156.             #ROSA color
  157.             'rosa_blue') color_ret='\033[01;38;05;25m';;
  158.         esac
  159.         [[ -n "${color_ret}" ]] && echo "${color_ret}"
  160.     else
  161.         :
  162.     fi
  163. }
  164.  
  165. verboseOut () {
  166.     if [[ "$verbosity" -eq "1" ]]; then
  167.         printf "\033[1;31m:: \033[0m$1\n"
  168.     fi
  169. }
  170.  
  171. errorOut () {
  172.     printf "\033[1;37m[[ \033[1;31m! \033[1;37m]] \033[0m$1\n"
  173. }
  174. stderrOut () {
  175.     while IFS='' read -r line; do printf "\033[1;37m[[ \033[1;31m! \033[1;37m]] \033[0m${line}\n"; done
  176. }
  177.  
  178.  
  179. ####################
  180. #  Color Defines
  181. ####################
  182.  
  183. colorNumberToCode () {
  184.     number="$1"
  185.     if [[ "${number}" == "na" ]]; then
  186.         unset code
  187.     elif [[ $(tput colors) -eq "256" ]]; then
  188.         code=$(colorize "${number}")
  189.     else
  190.         case "$number" in
  191.             0|00) code=$(getColor 'black');;
  192.             1|01) code=$(getColor 'red');;
  193.             2|02) code=$(getColor 'green');;
  194.             3|03) code=$(getColor 'brown');;
  195.             4|04) code=$(getColor 'blue');;
  196.             5|05) code=$(getColor 'purple');;
  197.             6|06) code=$(getColor 'cyan');;
  198.             7|07) code=$(getColor 'light grey');;
  199.             8|08) code=$(getColor 'dark grey');;
  200.             9|09) code=$(getColor 'light red');;
  201.               10) code=$(getColor 'light green');;
  202.               11) code=$(getColor 'yellow');;
  203.               12) code=$(getColor 'light blue');;
  204.               13) code=$(getColor 'light purple');;
  205.               14) code=$(getColor 'light cyan');;
  206.               15) code=$(getColor 'white');;
  207.             *) unset code;;
  208.         esac
  209.     fi
  210.     echo -n "${code}"
  211. }
  212.  
  213.  
  214. detectColors () {
  215.     my_colors=$(sed 's/^,/na,/;s/,$/,na/;s/,/ /' <<< "${OPTARG}")
  216.     my_lcolor=$(awk -F' ' '{print $1}' <<< "${my_colors}")
  217.     my_lcolor=$(colorNumberToCode "${my_lcolor}")
  218.  
  219.     my_hcolor=$(awk -F' ' '{print $2}' <<< "${my_colors}")
  220.     my_hcolor=$(colorNumberToCode "${my_hcolor}")
  221. }
  222.  
  223. supported_distros="Alpine Linux, Antergos, Arch Linux (Old and Current Logos), blackPanther OS, BLAG, BunsenLabs, CentOS, Chakra, Chapeau, Chrome OS, Chromium OS, CrunchBang, CRUX, Debian, Deepin, DesaOS,Devuan, Dragora, elementary OS, Evolve OS, Exherbo, Fedora, Frugalware, Fuduntu, Funtoo, Fux, Gentoo, gNewSense, GuixSD, Jiyuu Linux, Kali Linux, KaOS, KDE neon, Kogaion, Korora, LinuxDeepin, Linux Mint, LMDE, Logos, Mageia, Mandriva/Mandrake, Manjaro, Mer, Netrunner, NixOS, openSUSE, Oracle Linux, Parabola GNU/Linux-libre, Pardus, Parrot Security, PCLinuxOS, PeppermintOS, Qubes OS, Raspbian, Red Hat Enterprise Linux, ROSA, Sabayon, SailfishOS, Scientific Linux, Slackware, Solus, SparkyLinux, SteamOS, SUSE Linux Enterprise, SwagArch, TinyCore, Trisquel, Ubuntu, Viperr and Void."
  224. supported_other="Dragonfly/Free/Open/Net BSD, Haiku, Mac OS X, Windows+Cygwin and Windows+MSYS2."
  225. supported_dms="KDE, GNOME, Unity, Xfce, LXDE, Cinnamon, MATE, Deepin, CDE, RazorQt and Trinity."
  226. supported_wms="2bwm, 9wm, Awesome, Beryl, Blackbox, Cinnamon, chromeos-wm, Compiz, deepin-wm, dminiwm, dwm, dtwm, E16, E17, echinus, Emerald, FluxBox, FLWM, FVWM, herbstluftwm, howm, IceWM, KWin, Metacity, monsterwm, Musca, Gala, Mutter, Muffin, Notion, OpenBox, PekWM, Ratpoison, Sawfish, ScrotWM, SpectrWM, StumpWM, subtle, sway, TWin, WindowMaker, WMFS, wmii, Xfwm4, XMonad and i3."
  227.  
  228. displayHelp () {
  229.     printf "${underline}Usage${c0}:\n"
  230.     printf "  ${0} [OPTIONAL FLAGS]\n\n"
  231.     printf "screenFetch - a CLI Bash script to show system/theme info in screenshots.\n\n"
  232.     printf "${underline}Supported GNU/Linux Distributions${c0}:\n"
  233.     printf "${supported_distros}" | fold -s | sed 's/^/\t/g'
  234.     printf "\n\n"
  235.     printf "${underline}Other Supported Systems${c0}:\n"
  236.     printf "${supported_other}" | fold -s | sed 's/^/\t/g'
  237.     printf "\n\n"
  238.     printf "${underline}Supported Desktop Managers${c0}:\n"
  239.     printf "${supported_dms}" | fold -s | sed 's/^/\t/g'
  240.     printf "\n\n"
  241.     printf "${underline}Supported Window Managers${c0}:\n"
  242.     printf "${supported_wms}" | fold -s | sed 's/^/\t/g'
  243.     printf "\n\n"
  244.     printf "${underline}Options${c0}:\n"
  245.     printf "   ${bold}-v${c0}                 Verbose output.\n"
  246.     printf "   ${bold}-o 'OPTIONS'${c0}       Allows for setting script variables on the\n"
  247.     printf "                      command line. Must be in the following format...\n"
  248.     printf "                      'OPTION1=\"OPTIONARG1\";OPTION2=\"OPTIONARG2\"'\n"
  249.     printf "   ${bold}-d '+var;-var;var'${c0} Allows for setting what information is displayed\n"
  250.     printf "                      on the command line. You can add displays with +var,var. You\n"
  251.     printf "                      can delete displays with -var,var. Setting without + or - will\n"
  252.     printf "                      set display to that explicit combination. Add and delete statements\n"
  253.     printf "                      may be used in conjunction by placing a ; between them as so:\n"
  254.     printf "                      +var,var,var;-var,var.\n"
  255.     printf "   ${bold}-n${c0}                 Do not display ASCII distribution logo.\n"
  256.     printf "   ${bold}-L${c0}                 Display ASCII distribution logo only.\n"
  257.     printf "   ${bold}-N${c0}                 Strip all color from output.\n"
  258.     printf "   ${bold}-w${c0}                 Wrap long lines.\n"
  259.     printf "   ${bold}-t${c0}                 Truncate output based on terminal width (Experimental!).\n"
  260.     printf "   ${bold}-p${c0}                 Portrait output.\n"
  261.     printf "   ${bold}-s [-u IMGHOST]${c0}    Using this flag tells the script that you want it\n"
  262.     printf "                      to take a screenshot. Use the -u flag if you would like\n"
  263.     printf "                      to upload the screenshots to one of the pre-configured\n"
  264.     printf "                      locations. These include: teknik, imgur, mediacrush and hmp.\n"
  265.     printf "   ${bold}-c string${c0}          You may change the outputted colors with -c. The format is\n"
  266.     printf "                      as follows: [0-9][0-9],[0-9][0-9]. The first argument controls the\n"
  267.     printf "                      ASCII logo colors and the label colors. The second argument\n"
  268.     printf "                      controls the colors of the information found. One argument may be\n"
  269.     printf "                      used without the other.\n"
  270.     printf "   ${bold}-a 'PATH'${c0}          You can specify a custom ASCII art by passing the path\n"
  271.     printf "                      to a Bash script, defining \`startline\` and \`fulloutput\`\n"
  272.     printf "                      variables, and optionally \`labelcolor\` and \`textcolor\`.\n"
  273.     printf "                      See the \`asciiText\` function in the source code for more\n"
  274.     printf "                      informations on the variables format.\n"
  275.     printf "   ${bold}-S 'COMMAND'${c0}       Here you can specify a custom screenshot command for\n"
  276.     printf "                      the script to execute. Surrounding quotes are required.\n"
  277.     printf "   ${bold}-D 'DISTRO'${c0}        Here you can specify your distribution for the script\n"
  278.     printf "                      to use. Surrounding quotes are required.\n"
  279.     printf "   ${bold}-A 'DISTRO'${c0}        Here you can specify the distribution art that you want\n"
  280.     printf "                      displayed. This is for when you want your distro\n"
  281.     printf "                      detected but want to display a different logo.\n"
  282.     printf "   ${bold}-E${c0}                 Suppress output of errors.\n"
  283.     printf "   ${bold}-V, --version${c0}      Display current script version.\n"
  284.     printf "   ${bold}-h, --help${c0}         Display this help.\n"
  285. }
  286.  
  287.  
  288. displayVersion () {
  289.     printf ${underline}"screenFetch"${c0}" - Version ${scriptVersion}\n"
  290.     printf "Created by and licensed to Brett Bohnenkamper <[email protected]>\n"
  291.     printf "OS X porting done almost solely by shrx (https://github.com/shrx) and John D. Duncan, III (https://github.com/JohnDDuncanIII).\n\n"
  292.     printf "This is free software; see the source for copying conditions.  There is NO warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
  293. }
  294.  
  295.  
  296. #####################
  297. # Begin Flags Phase
  298. #####################
  299.  
  300. case $1 in
  301.     --help) displayHelp; exit 0;;
  302.     --version) displayVersion; exit 0;;
  303. esac
  304.  
  305.  
  306. while getopts ":hsu:evVEnLNtlS:A:D:o:c:d:pa:w" flags; do
  307.     case $flags in
  308.         h) displayHelp; exit 0 ;;
  309.         s) screenshot='1' ;;
  310.         S) screenCommand="${OPTARG}" ;;
  311.         u) upload='1'; uploadLoc="${OPTARG}" ;;
  312.         v) verbosity=1 ;;
  313.         V) displayVersion; exit 0 ;;
  314.         E) errorSuppress='1' ;;
  315.         D) distro="${OPTARG}" ;;
  316.         A) asc_distro="${OPTARG}" ;;
  317.         t) truncateSet='Yes' ;;
  318.         n) display_type='Text' ;;
  319.         L) display_type='ASCII'; display_logo='Yes' ;;
  320.         o) overrideOpts="${OPTARG}" ;;
  321.         c) detectColors "${OPTARGS}" ;;
  322.         d) overrideDisplay="${OPTARG}" ;;
  323.         N) no_color='1' ;;
  324.         p) portraitSet='Yes' ;;
  325.         a) art="${OPTARG}" ;;
  326.         w) lineWrap='Yes' ;;
  327.         :) errorOut "Error: You're missing an argument somewhere. Exiting."; exit 1 ;;
  328.         ?) errorOut "Error: Invalid flag somewhere. Exiting."; exit 1 ;;
  329.         *) errorOut "Error"; exit 1 ;;
  330.     esac
  331. done
  332.  
  333. ###################
  334. # End Flags Phase
  335. ###################
  336.  
  337.  
  338. ############################
  339. # Override Options/Display
  340. ############################
  341.  
  342. if [[ "$overrideOpts" ]]; then
  343.     verboseOut "Found 'o' flag in syntax. Overriding some script variables..."
  344.     OLD_IFS="$IFS"
  345.     IFS=";"
  346.     for overopt in "${overrideOpts}"; do
  347.         eval "${overrideOpts}"
  348.     done
  349.     IFS="$OLD_IFS"
  350. fi
  351.  
  352.  
  353. #########################
  354. # Begin Detection Phase
  355. #########################
  356.  
  357. # Distro Detection - Begin
  358. detectdistro () {
  359.     if [[ -z "${distro}" ]]; then
  360.         distro="Unknown"
  361.         # LSB Release Check
  362.         if type -p lsb_release >/dev/null 2>&1; then
  363.             # read distro_detect distro_release distro_codename <<< $(lsb_release -sirc)
  364.             distro_detect=( $(lsb_release -sirc) )
  365.             if [[ ${#distro_detect[@]} -eq 3 ]]; then
  366.                 distro_codename=${distro_detect[2]}
  367.                 distro_release=${distro_detect[1]}
  368.                 distro_detect=${distro_detect[0]}
  369.             else
  370.                 for ((i=0; i<${#distro_detect[@]}; i++)); do
  371.                     if [[ ${distro_detect[$i]} =~ ^[[:digit:]]+((.[[:digit:]]+|[[:digit:]]+|)+)$ ]]; then
  372.                         distro_release=${distro_detect[$i]}
  373.                         distro_codename=${distro_detect[@]:$(($i+1)):${#distro_detect[@]}+1}
  374.                         distro_detect=${distro_detect[@]:0:${i}}
  375.                         break 1
  376.                     elif [[ ${distro_detect[$i]} =~ [Nn]/[Aa] || ${distro_detect[$i]} == "rolling" ]]; then
  377.                         distro_release=${distro_detect[$i]}
  378.                         distro_codename=${distro_detect[@]:$(($i+1)):${#distro_detect[@]}+1}
  379.                         distro_detect=${distro_detect[@]:0:${i}}
  380.                         break 1
  381.                     fi
  382.                 done
  383.             fi
  384.             case "${distro_detect}" in
  385.                 "CentOS"|"Chapeau"|"Deepin"|"Devuan"|"DesaOS"|"Fedora"|"gNewSense"|"Jiyuu Linux"|"Kogaion"|"Korora"|"Mageia"|"Netrunner"|"NixOS"|"Pardus"|"Raspbian"|"Sabayon"|"Solus"|"SteamOS"|"Trisquel"|"Ubuntu"|"GrombyangOS"|"Scientific Linux")
  386.                     # no need to fix $distro/$distro_codename/$distro_release
  387.                     distro="${distro_detect}"
  388.                     ;;
  389.                 "archlinux"|"Arch Linux"|"arch"|"Arch"|"archarm")
  390.                     distro="Arch Linux"
  391.                     distro_release="n/a"
  392.                     if grep -q 'antergos' /etc/os-release; then
  393.                         distro="Antergos"
  394.                         distro_release="n/a"
  395.                     fi
  396.                     if grep -q -i 'logos' /etc/os-release; then
  397.                         distro="Logos"
  398.                         distro_release="n/a"
  399.                     fi
  400.                     if grep -q -i 'swagarch' /etc/os-release; then
  401.                         distro="SwagArch"
  402.                         distro_release="n/a"
  403.                     fi
  404.                     ;;
  405.                 "blackPantherOS"|"blackPanther"|"blackpanther"|"blackpantheros")
  406.                     distro=$(source /etc/lsb-release; echo "$DISTRIB_ID")
  407.                     distro_release=$(source /etc/lsb-release; echo "$DISTRIB_RELEASE")
  408.                     distro_codename=$(source /etc/lsb-release; echo "$DISTRIB_CODENAME")
  409.                     ;;
  410.                 "BLAG")
  411.                     distro="BLAG"
  412.                     distro_more="$(head -n1 /etc/fedora-release)"
  413.                     ;;
  414.                 "Chakra")
  415.                     distro="Chakra"
  416.                     distro_release=""
  417.                     ;;
  418.                 "BunsenLabs")
  419.                     distro=$(source /etc/lsb-release; echo "$DISTRIB_ID")
  420.                     distro_release=$(source /etc/lsb-release; echo "$DISTRIB_RELEASE")
  421.                     distro_codename=$(source /etc/lsb-release; echo "$DISTRIB_CODENAME")
  422.                     ;;
  423.                 "Debian")
  424.                     if [[ -f /etc/crunchbang-lsb-release || -f /etc/lsb-release-crunchbang ]]; then
  425.                         distro="CrunchBang"
  426.                         distro_release=$(awk -F'=' '/^DISTRIB_RELEASE=/ {print $2}' /etc/lsb-release-crunchbang)
  427.                         distro_codename=$(awk -F'=' '/^DISTRIB_DESCRIPTION=/ {print $2}' /etc/lsb-release-crunchbang)
  428.                     elif [[ -f /etc/os-release ]]; then
  429.                         if [[ "$(cat /etc/os-release)" =~ "Raspbian" ]]; then
  430.                             distro="Raspbian"
  431.                             distro_release=$(awk -F'=' '/^PRETTY_NAME=/ {print $2}' /etc/os-release)
  432.                                 fi
  433.                         if [[ "$(cat /etc/os-release)" =~ "BlankOn" ]]; then
  434.                             distro="BlankOn"
  435.                             distro_release=$(awk -F'=' '/^PRETTY_NAME=/ {print $2}' /etc/os-release)
  436.                         else
  437.                             distro="Debian"
  438.                         fi
  439.                     else
  440.                         distro="Debian"
  441.                     fi
  442.                     ;;
  443.                 "elementary"|"elementary OS")
  444.                     distro="elementary OS"
  445.                     ;;
  446.                 "EvolveOS")
  447.                     distro="Evolve OS"
  448.                     ;;
  449.                 "KaOS"|"kaos")
  450.                     distro="KaOS"
  451.                     ;;
  452.                 "frugalware")
  453.                     distro="Frugalware"
  454.                     distro_codename=null
  455.                     distro_release=null
  456.                     ;;
  457.                 "Fuduntu")
  458.                     distro="Fuduntu"
  459.                     distro_codename=null
  460.                     ;;
  461.                 "Fux")
  462.                     distro="Fux"
  463.                     distro_codename=null
  464.                     ;;
  465.                 "Gentoo")
  466.                     if [[ "$(lsb_release -sd)" =~ "Funtoo" ]]; then
  467.                         distro="Funtoo"
  468.                     else
  469.                         distro="Gentoo"
  470.                     fi
  471.                     . /etc/portage/make.conf #detecting release stable/testing/experimental
  472.                     case $ACCEPT_KEYWORDS in
  473.                         [a-z]*) distro_release=stable       ;;
  474.                         ~*)     distro_release=testing      ;;
  475.                         '**')   distro_release=experimental ;; #experimental usually includes git-versions.
  476.                     esac
  477.                     ;;
  478.                 "LinuxDeepin")
  479.                     distro="LinuxDeepin"
  480.                     distro_codename=null
  481.                     ;;
  482.                 "Kali"|"Debian Kali Linux")
  483.                     distro="Kali Linux"
  484.                     if [[ "${distro_codename}" =~ "kali-rolling" ]]; then
  485.                         distro_codename="n/a"
  486.                         distro_release="n/a"
  487.                     fi
  488.                     ;;
  489.                 "Lunar Linux"|"lunar")
  490.                     distro="Lunar Linux"
  491.                     ;;
  492.                 "MandrivaLinux")
  493.                     distro="Mandriva"
  494.                     case "${distro_codename}" in
  495.                         "turtle"|"Henry_Farman"|"Farman"|"Adelie"|"pauillac")
  496.                             distro="Mandriva-${distro_release}"
  497.                             distro_codename=null
  498.                             ;;
  499.                     esac
  500.                     ;;
  501.                 "ManjaroLinux")
  502.                     distro="Manjaro"
  503.                     ;;
  504.                 "Mer")
  505.                     distro="Mer"
  506.                     if [[ -f /etc/os-release ]]; then
  507.                         if grep -q 'SailfishOS' /etc/os-release; then
  508.                             distro="SailfishOS"
  509.                             distro_codename="$(grep 'VERSION=' /etc/os-release | cut -d '(' -f2 | cut -d ')' -f1)"
  510.                             distro_release="$(awk -F'=' '/^VERSION=/ {print $2}' /etc/os-release)"
  511.                         fi
  512.                     fi
  513.                     ;;
  514.                 "neon"|"KDE neon")
  515.                     distro="KDE neon"
  516.                     distro_codename="n/a"
  517.                     distro_release="n/a"
  518.                     if [[ -f /etc/issue ]]; then
  519.                         if grep -q "^KDE neon" /etc/issue ; then
  520.                             distro_release="$(grep '^KDE neon' /etc/issue | cut -d ' ' -f3)"
  521.                         fi
  522.                     fi
  523.                     ;;
  524.                 "Ol"|"ol"|"Oracle Linux")
  525.                     distro="Oracle Linux"
  526.                     [ -f /etc/oracle-release ] && distro_release="$(sed 's/Oracle Linux //' /etc/oracle-release)"
  527.                     ;;
  528.                 "LinuxMint")
  529.                     distro="Mint"
  530.                     if [[ "${distro_codename}" == "debian" ]]; then
  531.                         distro="LMDE"
  532.                         distro_codename="n/a"
  533.                         distro_release="n/a"
  534.                     fi
  535.                     ;;
  536.                 "openSUSE"|"openSUSE project"|"SUSE LINUX")
  537.                     distro="openSUSE"
  538.                     if [ -f /etc/os-release ]; then
  539.                         if [[ "$(cat /etc/os-release)" =~ "SUSE Linux Enterprise" ]]; then
  540.                             distro="SUSE Linux Enterprise"
  541.                             distro_codename="n/a"
  542.                             distro_release=$(awk -F'=' '/^VERSION_ID=/ {print $2}' /etc/os-release | tr -d '"')
  543.                         fi
  544.                     fi
  545.                     if [[ "${distro_codename}" == "Tumbleweed" ]]; then
  546.                         distro_release="n/a"
  547.                     fi
  548.                     ;;
  549.                 "Parabola GNU/Linux-libre"|"Parabola")
  550.                     distro="Parabola GNU/Linux-libre"
  551.                     distro_codename="n/a"
  552.                     distro_release="n/a"
  553.                     ;;
  554.                 "Parrot"|"Parrot Security")
  555.                     distro="Parrot Security"
  556.                     ;;
  557.                 "PCLinuxOS")
  558.                     distro="PCLinuxOS"
  559.                     distro_codename="n/a"
  560.                     distro_release="n/a"
  561.                     ;;
  562.                 "Peppermint")
  563.                     distro="Peppermint"
  564.                     distro_codename=null
  565.                     ;;
  566.                 "rhel")
  567.                     distro="Red Hat Enterprise Linux"
  568.                     ;;
  569.                 "RosaDesktopFresh")
  570.                     distro="ROSA"
  571.                     distro_release=$(grep 'VERSION=' /etc/os-release | cut -d ' ' -f3 | cut -d "\"" -f1)
  572.                     distro_codename=$(grep 'PRETTY_NAME=' /etc/os-release | cut -d ' ' -f4,4)
  573.                     ;;
  574.                 "SailfishOS")
  575.                     distro="SailfishOS"
  576.                     if [[ -f /etc/os-release ]]; then
  577.                         distro_codename="$(grep 'VERSION=' /etc/os-release | cut -d '(' -f2 | cut -d ')' -f1)"
  578.                         distro_release="$(awk -F'=' '/^VERSION=/ {print $2}' /etc/os-release)"
  579.                     fi
  580.                     ;;
  581.                 "Sparky"|"SparkyLinux")
  582.                     distro="SparkyLinux"
  583.                     ;;
  584.                 "Viperr")
  585.                     distro="Viperr"
  586.                     distro_codename=null
  587.                     ;;
  588.                 *)
  589.                     if [ "x$(printf "${distro_detect}" | od -t x1 | sed -e 's/^\w*\ *//' | tr '\n' ' ' | grep 'eb b6 89 ec 9d 80 eb b3 84 ')" != "x" ]; then
  590.                         distro="Red Star OS"
  591.                         distro_codename="n/a"
  592.                         distro_release=$(printf "${distro_release}" | grep -o '[0-9.]' | tr -d '\n')
  593.                     fi
  594.                     ;;
  595.             esac
  596.             if [[ "${distro_detect}" =~ "RedHatEnterprise" ]]; then distro="Red Hat Enterprise Linux"; fi
  597.             if [[ "${distro_detect}" =~ "SUSELinuxEnterprise" ]]; then distro="SUSE Linux Enterprise"; fi
  598.             if [[ -n ${distro_release} && ${distro_release} != "n/a" ]]; then distro_more="$distro_release"; fi
  599.             if [[ -n ${distro_codename} && ${distro_codename} != "n/a" ]]; then distro_more="$distro_more $distro_codename"; fi
  600.         fi
  601.  
  602.         # Existing File Check
  603.         if [ "$distro" == "Unknown" ]; then
  604.             if [ $(uname -o 2>/dev/null) ]; then
  605.                 os="$(uname -o)"
  606.                 case "$os" in
  607.                     "Cygwin"|"FreeBSD"|"OpenBSD"|"NetBSD")
  608.                         distro="$os"
  609.                         fake_distro="${distro}"
  610.                     ;;
  611.                     "DragonFly")
  612.                         distro="DragonFlyBSD"
  613.                         fake_distro="${distro}"
  614.                     ;;
  615.                     "Msys")
  616.                         distro="Msys"
  617.                         fake_distro="${distro}"
  618.                         distro_more="${distro} $(uname -r | head -c 1)"
  619.                     ;;
  620.                     "Haiku")
  621.                         distro="Haiku"
  622.                         distro_more="$(uname -v | tr ' ' '\n' | grep 'hrev')"
  623.                     ;;
  624.                     "GNU/Linux")
  625.                         if type -p crux >/dev/null 2>&1; then
  626.                             distro="CRUX"
  627.                             distro_more="$(crux | awk '{print $3}')"
  628.                         fi
  629.                         if type -p nixos-version >/dev/null 2>&1; then
  630.                             distro="NixOS"
  631.                             distro_more="$(nixos-version)"
  632.                         fi
  633.                         if (type -p guix && type -p herd) >/dev/null 2>&1; then
  634.                             distro="GuixSD"
  635.                         fi
  636.                     ;;
  637.                 esac
  638.             fi
  639.             if [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  640.                 # https://msdn.microsoft.com/en-us/library/ms724832%28VS.85%29.aspx
  641.                 if [ "$(wmic os get version | grep -o '^\(6\.[23]\|10\)')" ]; then
  642.                     fake_distro="Windows - Modern"
  643.                 fi
  644.             fi
  645.             if [[ "${distro}" == "Unknown" ]]; then
  646.                 if [ -f /etc/os-release ]; then
  647.                     distrib_id=$(</etc/os-release);
  648.                     for l in $(echo $distrib_id); do
  649.                         if [[ ${l} =~ ^ID= ]]; then
  650.                             distrib_id=${l//*=}
  651.                             distrib_id=${distrib_id//\"/}
  652.                             break 1
  653.                         fi
  654.                     done
  655.                     if [[ -n ${distrib_id} ]]; then
  656.                         if [[ -n ${BASH_VERSINFO} && ${BASH_VERSINFO} -ge 4 ]]; then
  657.                             distrib_id=$(for i in ${distrib_id}; do echo -n "${i^} "; done)
  658.                             distro=${distrib_id% }
  659.                             unset distrib_id
  660.                         else
  661.                             distrib_id=$(for i in ${distrib_id}; do FIRST_LETTER=$(echo -n "${i:0:1}" | tr "[:lower:]" "[:upper:]"); echo -n "${FIRST_LETTER}${i:1} "; done)
  662.                             distro=${distrib_id% }
  663.                             unset distrib_id
  664.                         fi
  665.                     fi
  666.  
  667.                     # Hotfixes
  668.                     [[ "${distro}" == "void" ]] && distro="Void"
  669.                     [[ "${distro}" == "evolveos" ]] && distro="Evolve OS"
  670.                     [[ "${distro}" == "antergos" ]] && distro="Antergos"
  671.                     [[ "${distro}" == "logos" ]] && distro="Logos"
  672.                     [[ "${distro}" == "Arch" || "${distro}" == "Archarm" || "${distro}" == "archarm" ]] && distro="Arch Linux"
  673.                     [[ "${distro}" == "elementary" ]] && distro="elementary OS"
  674.                     [[ "${distro}" == "Fedora" && -d /etc/qubes-rpc ]] && distro="qubes" # Inner VM
  675.                     [[ "${distro}" == "Ol" || "${distro}" == "ol" ]] && distro="Oracle Linux"
  676.                     if [[ "${distro}" == "Oracle Linux" ]] && [ -f /etc/oracle-release ]; then
  677.                         distro_more="$(sed 's/Oracle Linux //' /etc/oracle-release)"
  678.                     fi
  679.                     [[ "${distro}" == "rhel" ]] && distro="Red Hat Enterprise Linux"
  680.                     [[ "${distro}" == "Neon" ]] && distro="KDE neon"
  681.                     [[ "${distro}" == "SLED" || "${distro}" == "sled" || "${distro}" == "SLES" || "${distro}" == "sles" ]] && distro="SUSE Linux Enterprise"
  682.                     if [[ "${distro}" == "SUSE Linux Enterprise" ]] && [ -f /etc/os-release ]; then
  683.                         distro_more="$(awk -F'=' '/^VERSION_ID=/ {print $2}' /etc/os-release | tr -d '"')"
  684.                     fi
  685.                 fi
  686.             fi
  687.  
  688.             if [[ "${distro}" == "Unknown" ]]; then
  689.                 if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  690.                     if [ -f /etc/lsb-release ]; then
  691.                         LSB_RELEASE=$(</etc/lsb-release)
  692.                         distro=$(echo ${LSB_RELEASE} | awk 'BEGIN {
  693.                             distro = "Unknown"
  694.                         }
  695.                         {
  696.                             if ($0 ~ /[Uu][Bb][Uu][Nn][Tt][Uu]/) {
  697.                                 distro = "Ubuntu"
  698.                                 exit
  699.                             }
  700.                             else if ($0 ~ /[Mm][Ii][Nn][Tt]/ && $0 ~ /[Dd][Ee][Bb][Ii][Aa][Nn]/) {
  701.                                 distro = "LMDE"
  702.                                 exit
  703.                             }
  704.                             else if ($0 ~ /[Mm][Ii][Nn][Tt]/) {
  705.                                 distro = "Mint"
  706.                                 exit
  707.                             }
  708.                         } END {
  709.                             print distro
  710.                         }')
  711.                     fi
  712.                 fi
  713.             fi
  714.  
  715.             if [[ "${distro}" == "Unknown" ]]; then
  716.                 if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" || "${OSTYPE}" == "gnu" ]]; then
  717.                     if [ -f /etc/arch-release ]; then distro="Arch Linux"
  718.                     elif [ -f /etc/blackPanther-release ]; then distro="blackPanther OS"
  719.                     elif [ -f /etc/chakra-release ]; then distro="Chakra"
  720.                     elif [ -f /etc/crunchbang-lsb-release ]; then distro="CrunchBang"
  721.                     elif [ -f /etc/debian_version ]; then
  722.                         if [ -f /etc/issue ]; then
  723.                             if grep -q "gNewSense" /etc/issue ; then
  724.                                 distro="gNewSense"
  725.                             elif grep -q "^KDE neon" /etc/issue ; then
  726.                                 distro="KDE neon"
  727.                                 distro_more="$(cut -d ' ' -f3 /etc/issue)"
  728.                             else
  729.                                 distro="Debian"
  730.                             fi
  731.                         fi
  732.                         if grep -q "Kali" /etc/debian_version ; then
  733.                             distro="Kali Linux"
  734.                         fi
  735.                     elif [ -f /etc/dragora-version ]; then distro="Dragora" && distro_more="$(cut -d, -f1 /etc/dragora-version)"
  736.                     elif [ -f /etc/evolveos-release ]; then distro="Evolve OS"
  737.                     elif [ -f /etc/exherbo-release ]; then distro="Exherbo"
  738.                     elif [ -f /etc/fedora-release ]; then
  739.                         if grep -q "Korora" /etc/fedora-release; then
  740.                             distro="Korora"
  741.                         elif grep -q "BLAG" /etc/fedora-release; then
  742.                             distro="BLAG"
  743.                             distro_more="$(head -n1 /etc/fedora-release)"
  744.                         else
  745.                             distro="Fedora"
  746.                         fi
  747.                     elif [ -f /etc/frugalware-release ]; then distro="Frugalware"
  748.                     elif [ -f /etc/fux-release ]; then distro="Fux"
  749.                     elif [ -f /etc/gentoo-release ]; then
  750.                         if grep -q "Funtoo" /etc/gentoo-release ; then
  751.                             distro="Funtoo"
  752.                         else
  753.                             distro="Gentoo"
  754.                         fi
  755.                     elif [ -f /etc/kogaion-release ]; then distro="Kogaion"
  756.                     elif [ -f /etc/mageia-release ]; then distro="Mageia"
  757.                     elif [ -f /etc/mandrake-release ]; then
  758.                         if grep -q "PCLinuxOS" /etc/mandrake-release ; then
  759.                             distro="PCLinuxOS"
  760.                         else
  761.                             distro="Mandrake"
  762.                         fi
  763.                     elif [ -f /etc/mandriva-release ]; then
  764.                         if grep -q "PCLinuxOS" /etc/mandriva-release ; then
  765.                             distro="PCLinuxOS"
  766.                         else
  767.                             distro="Mandriva"
  768.                         fi
  769.                     elif [ -f /etc/NIXOS ]; then distro="NixOS"
  770.                     elif [ -f /etc/obarun-release ]; then distro="Obarun"
  771.                     elif [ -f /etc/oracle-release ]; then
  772.                         distro="Oracle Linux"
  773.                         distro_more="$(sed 's/Oracle Linux //' /etc/oracle-release)"
  774.                     elif [ -f /etc/SuSE-release ]; then
  775.                         distro="openSUSE"
  776.                         if [ -f /etc/os-release ]; then
  777.                             if [[ "$(cat /etc/os-release)" =~ "SUSE Linux Enterprise" ]]; then
  778.                                 distro="SUSE Linux Enterprise"
  779.                                 distro_more=$(awk -F'=' '/^VERSION_ID=/ {print $2}' /etc/os-release | tr -d '"')
  780.                             fi
  781.                         fi
  782.                         if [[ "${distro_more}" =~ "Tumbleweed" ]]; then distro_more="Tumbleweed"; fi
  783.                     elif [ -f /etc/pardus-release ]; then distro="Pardus"
  784.                     elif [ -f /etc/pclinuxos-release ]; then distro="PCLinuxOS"
  785.                     elif [ -f /etc/redstar-release ]; then
  786.                         distro="Red Star OS"
  787.                         distro_more=$(grep -o '[0-9.]' /etc/redstar-release | tr -d '\n')
  788.                     elif [ -f /etc/redhat-release ]; then
  789.                         if grep -q "CentOS" /etc/redhat-release; then
  790.                             distro="CentOS"
  791.                         elif grep -q "PCLinuxOS" /etc/redhat-release; then
  792.                             distro="PCLinuxOS"
  793.                         elif [ "x$(od -t x1 /etc/redhat-release | sed -e 's/^\w*\ *//' | tr '\n' ' ' | grep 'eb b6 89 ec 9d 80 eb b3 84 ')" != "x" ]; then
  794.                             distro="Red Star OS"
  795.                             distro_more=$(grep -o '[0-9.]' /etc/redhat-release | tr -d '\n')
  796.                         else
  797.                             distro="Red Hat Enterprise Linux"
  798.                         fi
  799.                     elif [ -f /etc/rosa-release ]; then distro="ROSA"
  800.                     elif [ -f /etc/slackware-version ]; then distro="Slackware"
  801.                     elif [ -f /usr/share/doc/tc/release.txt ]; then
  802.                         distro="TinyCore"
  803.                         distro_more="$(cat /usr/share/doc/tc/release.txt)"
  804.                     elif [ -f /etc/sabayon-edition ]; then distro="Sabayon"; fi
  805.                 else
  806.                     if [[ -x /usr/bin/sw_vers ]] && /usr/bin/sw_vers | grep -i "Mac OS X" >/dev/null; then
  807.                         distro="Mac OS X"
  808.                     elif [[ -f /var/run/dmesg.boot ]]; then
  809.                         distro=$(awk 'BEGIN {
  810.                             distro = "Unknown"
  811.                         }
  812.                         {
  813.                             if ($0 ~ /DragonFly/) {
  814.                                 distro = "DragonFlyBSD"
  815.                                 exit
  816.                             }
  817.                             else if ($0 ~ /FreeBSD/) {
  818.                                 distro = "FreeBSD"
  819.                                 exit
  820.                             }
  821.                             else if ($0 ~ /NetBSD/) {
  822.                                 distro = "NetBSD"
  823.                                 exit
  824.                             }
  825.                             else if ($0 ~ /OpenBSD/) {
  826.                                 distro = "OpenBSD"
  827.                                 exit
  828.                             }
  829.                         } END {
  830.                             print distro
  831.                         }' /var/run/dmesg.boot)
  832.                     fi
  833.                 fi
  834.             fi
  835.  
  836.             if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" || "${OSTYPE}" == "gnu" ]]; then
  837.                 if [[ -f /etc/issue ]]; then
  838.                     distro=$(awk 'BEGIN {
  839.                         distro = "Unknown"
  840.                     }
  841.                     {
  842.                         if ($0 ~ /"LinuxDeepin"/) {
  843.                             distro = "LinuxDeepin"
  844.                             exit
  845.                         }
  846.                         else if ($0 ~ /"Obarun"/) {
  847.                             distro = "Obarun"
  848.                             exit
  849.                         }
  850.                         else if ($0 ~ /"Parabola GNU\/Linux-libre"/) {
  851.                             distro = "Parabola GNU/Linux-libre"
  852.                             exit
  853.                         }
  854.                         else if ($0 ~ /"Solus"/) {
  855.                             distro = "Solus"
  856.                             exit
  857.                         }
  858.                     } END {
  859.                         print distro
  860.                     }' /etc/issue)
  861.                 fi
  862.             fi
  863.  
  864.             if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" || "${OSTYPE}" == "gnu" ]]; then
  865.                 if [[ -f /etc/system-release ]]; then
  866.                     if grep -q "Scientific Linux" /etc/system-release; then
  867.                         distro="Scientific Linux"
  868.                     elif grep -q "Oracle Linux" /etc/system-release; then
  869.                         distro="Oracle Linux"
  870.                     fi
  871.                 elif [[ -f /etc/lsb-release ]]; then
  872.                     if grep -q "CHROMEOS_RELEASE_NAME" /etc/lsb-release; then
  873.                         distro="$(awk -F'=' '/^CHROMEOS_RELEASE_NAME=/ {print $2}' /etc/lsb-release)"
  874.                         distro_more="$(awk -F'=' '/^CHROMEOS_RELEASE_VERSION=/ {print $2}' /etc/lsb-release)"
  875.                     fi
  876.                 fi
  877.             fi
  878.         fi
  879.     fi
  880.  
  881.     if [[ -n ${distro_more} ]]; then
  882.         distro_more="${distro} ${distro_more}"
  883.     fi
  884.  
  885.     if [[ "${distro}" != "Haiku" ]]; then
  886.         if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  887.             if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  888.                 distro=${distro,,}
  889.             else
  890.                 distro="$(tr '[:upper:]' '[:lower:]' <<< ${distro})"
  891.             fi
  892.         else
  893.             distro="$(tr '[:upper:]' '[:lower:]' <<< ${distro})"
  894.         fi
  895.     fi
  896.  
  897.     case $distro in
  898.         alpine) distro="Alpine Linux" ;;
  899.         antergos) distro="Antergos" ;;
  900.         arch*linux*old) distro="Arch Linux - Old" ;;
  901.         arch|arch*linux) distro="Arch Linux" ;;
  902.         blackpantheros|black*panther*) distro="blackPanther OS" ;;
  903.         blag) distro="BLAG" ;;
  904.         bunsenlabs) distro="BunsenLabs" ;;
  905.         centos) distro="CentOS" ;;
  906.         chakra) distro="Chakra" ;;
  907.         chapeau) distro="Chapeau" ;;
  908.         chrome*|chromium*) distro="Chrome OS" ;;
  909.         crunchbang) distro="CrunchBang" ;;
  910.         crux) distro="CRUX" ;;
  911.         cygwin) distro="Cygwin" ;;
  912.         debian) distro="Debian" ;;
  913.         devuan) distro="Devuan" ;;
  914.         deepin) distro="Deepin" ;;
  915.         desaos) distro="DesaOS" ;;
  916.         dragonflybsd) distro="DragonFlyBSD" ;;
  917.         dragora) distro="Dragora" ;;
  918.         elementary|'elementary os') distro="elementary OS";;
  919.         evolveos) distro="Evolve OS" ;;
  920.         exherbo|exherbo*linux) distro="Exherbo" ;;
  921.         fedora) distro="Fedora" ;;
  922.         freebsd) distro="FreeBSD" ;;
  923.         freebsd*old) distro="FreeBSD - Old" ;;
  924.         frugalware) distro="Frugalware" ;;
  925.         fuduntu) distro="Fuduntu" ;;
  926.         funtoo) distro="Funtoo" ;;
  927.         fux) distro="Fux" ;;
  928.         gentoo) distro="Gentoo" ;;
  929.         gnewsense) distro="gNewSense" ;;
  930.         guixsd) distro="GuixSD" ;;
  931.         haiku) distro="Haiku" ;;
  932.         kali*linux) distro="Kali Linux" ;;
  933.         kaos) distro="KaOS";;
  934.         kde*neon|neon) distro="KDE neon" ;;
  935.         kogaion) distro="Kogaion" ;;
  936.         korora) distro="Korora" ;;
  937.         linuxdeepin) distro="LinuxDeepin" ;;
  938.         lmde) distro="LMDE" ;;
  939.         logos) distro="Logos" ;;
  940.         lunar|lunar*linux) distro="Lunar Linux";;
  941.         mac*os*x|os*x) distro="Mac OS X" ;;
  942.         manjaro) distro="Manjaro" ;;
  943.         mageia) distro="Mageia" ;;
  944.         mandrake) distro="Mandrake" ;;
  945.         mandriva) distro="Mandriva" ;;
  946.         mer) distro="Mer" ;;
  947.         mint|linux*mint) distro="Mint" ;;
  948.         msys|msys2) distro="Msys" ;;
  949.         netbsd) distro="NetBSD" ;;
  950.         netrunner) distro="Netrunner" ;;
  951.         nix|nix*os) distro="NixOS" ;;
  952.         obarun) distro="Obarun" ;;
  953.         ol|oracle*linux) distro="Oracle Linux" ;;
  954.         openbsd) distro="OpenBSD" ;;
  955.         opensuse) distro="openSUSE" ;;
  956.         parabolagnu|parabolagnu/linux-libre|'parabola gnu/linux-libre'|parabola) distro="Parabola GNU/Linux-libre" ;;
  957.         pardus) distro="Pardus" ;;
  958.         parrot|parrot*security) distro="Parrot Security" ;;
  959.         pclinuxos|pclos) distro="PCLinuxOS" ;;
  960.         peppermint) distro="Peppermint" ;;
  961.         qubes) distro="Qubes OS" ;;
  962.         raspbian) distro="Raspbian" ;;
  963.         red*hat*|rhel) distro="Red Hat Enterprise Linux" ;;
  964.         rosa) distro="ROSA" ;;
  965.         red*star|red*star*os) distro="Red Star OS" ;;
  966.         sabayon) distro="Sabayon" ;;
  967.         sailfish|sailfish*os) distro="SailfishOS" ;;
  968.         slackware) distro="Slackware" ;;
  969.         solus) distro="Solus" ;;
  970.         sparky|sparky*linux) distro="SparkyLinux" ;;
  971.         steam|steam*os) distro="SteamOS" ;;
  972.         suse*linux*enterprise) distro="SUSE Linux Enterprise" ;;
  973.         swagarch) distro="SwagArch" ;;
  974.         tinycore|tinycore*linux) distro="TinyCore" ;;
  975.         trisquel) distro="Trisquel";;
  976.         grombyangos) distro="GrombyangOS" ;;
  977.         ubuntu)
  978.             distro="Ubuntu"
  979.             if grep -q 'Microsoft' /proc/version 2>/dev/null || \
  980.                grep -q 'Microsoft' /proc/sys/kernel/osrelease 2>/dev/null
  981.             then
  982.                 uow=$(echo -e "$(getColor 'yellow') [Ubuntu on Windows 10]")
  983.             fi
  984.             ;;
  985.         viperr) distro="Viperr" ;;
  986.         void) distro="Void" ;;
  987.     esac
  988.     verboseOut "Finding distro...found as '${distro} ${distro_release}'"
  989. }
  990. # Distro Detection - End
  991.  
  992. # Host and User detection - Begin
  993. detecthost () {
  994.     myUser=${USER}
  995.     myHost=${HOSTNAME}
  996.     if [[ -z "$USER" ]]; then myUser=$(whoami); fi
  997.     if [[ "${distro}" == "Mac OS X" ]]; then myHost=${myHost/.local}; fi
  998.     verboseOut "Finding hostname and user...found as '${myUser}@${myHost}'"
  999. }
  1000.  
  1001. # Find Number of Running Processes
  1002. # processnum="$(( $( ps aux | wc -l ) - 1 ))"
  1003.  
  1004. # Kernel Version Detection - Begin
  1005. detectkernel () {
  1006.     if [[ "$distro" == "OpenBSD" ]]; then
  1007.         kernel=$(sysctl kern.version|awk -F'[ =:]' 'NR==1{print $3" "$4" "$5}')
  1008.     else
  1009.         # compatibility for older versions of OS X:
  1010.         kernel=$(uname -m && uname -sr)
  1011.         kernel=${kernel//$'\n'/ }
  1012.         #kernel=( $(uname -srm) )
  1013.         #kernel="${kernel[${#kernel[@]}-1]} ${kernel[@]:0:${#kernel[@]}-1}"
  1014.         verboseOut "Finding kernel version...found as '${kernel}'"
  1015.     fi
  1016. }
  1017. # Kernel Version Detection - End
  1018.  
  1019.  
  1020. # Uptime Detection - Begin
  1021. detectuptime () {
  1022.     unset uptime
  1023.     if [[ "${distro}" == "Mac OS X" || "${distro}" == "FreeBSD" || "${distro}" == "DragonFlyBSD" ]]; then
  1024.         boot=$(sysctl -n kern.boottime | cut -d "=" -f 2 | cut -d "," -f 1)
  1025.         now=$(date +%s)
  1026.         uptime=$(($now-$boot))
  1027.     elif [[ "${distro}" == "OpenBSD" ]]; then
  1028.         boot=$(sysctl -n kern.boottime)
  1029.         now=$(date +%s)
  1030.         uptime=$((${now} - ${boot}))
  1031.     elif [[ "${distro}" == "Haiku" ]]; then
  1032.         uptime=$(uptime | cut -d ',' -f2,3 | sed 's/ up //; s/ hour,/h/; s/ minutes/m/;')
  1033.     else
  1034.         if [[ -f /proc/uptime ]]; then
  1035.             uptime=$(</proc/uptime)
  1036.             uptime=${uptime//.*}
  1037.         fi
  1038.     fi
  1039.  
  1040.     if [[ -n ${uptime} ]] && [[ "${distro}" != "Haiku" ]]; then
  1041.         secs=$((${uptime}%60))
  1042.         mins=$((${uptime}/60%60))
  1043.         hours=$((${uptime}/3600%24))
  1044.         days=$((${uptime}/86400))
  1045.         uptime="${mins}m"
  1046.         if [ "${hours}" -ne "0" ]; then
  1047.             uptime="${hours}h ${uptime}"
  1048.         fi
  1049.         if [ "${days}" -ne "0" ]; then
  1050.             uptime="${days}d ${uptime}"
  1051.         fi
  1052.     else
  1053.         if [[ "$distro" =~ "NetBSD" ]]; then uptime=$(awk -F. '{print $1}' /proc/uptime); fi
  1054.         if [[ "$distro" =~ "BSD" ]]; then uptime=$(uptime | awk '{$1=$2=$(NF-6)=$(NF-5)=$(NF-4)=$(NF-3)=$(NF-2)=$(NF-1)=$NF=""; sub(" days","d");sub(",","");sub(":","h ");sub(",","m"); print}'); fi
  1055.     fi
  1056.     verboseOut "Finding current uptime...found as '${uptime}'"
  1057. }
  1058. # Uptime Detection - End
  1059.  
  1060.  
  1061. # Package Count - Begin
  1062. detectpkgs () {
  1063.     pkgs="Unknown"
  1064.     case "${distro}" in
  1065.         'Alpine Linux') pkgs=$(apk info | wc -l) ;;
  1066.         'Arch Linux'|'Parabola GNU/Linux-libre'|'Chakra'|'Manjaro'|'Antergos'|'Netrunner'|'KaOS'|'Obarun'|'SwagArch') pkgs=$(pacman -Qq | wc -l) ;;
  1067.         'Chrome OS')
  1068.             if [ -d "/usr/local/lib/crew/packages" ]; then
  1069.                 pkgs=$(ls -l /usr/local/etc/crew/meta/*.filelist | wc -l)
  1070.             else
  1071.                 pkgs=$(ls -d /var/db/pkg/*/* | wc -l)
  1072.             fi
  1073.         ;;
  1074.         'Dragora') pkgs=$(ls -1 /var/db/pkg | wc -l) ;;
  1075.         'Frugalware') pkgs=$(pacman-g2 -Q | wc -l) ;;
  1076.         'Debian'|'Ubuntu'|'Mint'|'Fuduntu'|'KDE neon'|'Devuan'|'Raspbian'|'LMDE'|'CrunchBang'|'Peppermint'|'LinuxDeepin'|'Deepin'|'Kali Linux'|'Trisquel'|'elementary OS'|'gNewSense'|'BunsenLabs'|'SteamOS'|'Parrot Security'|'GrombyangOS'| 'DesaOS') pkgs=$(dpkg -l | grep -c ^i) ;;
  1077.         'Slackware') pkgs=$(ls -1 /var/log/packages | wc -l) ;;
  1078.         'Gentoo'|'Sabayon'|'Funtoo'|'Kogaion') pkgs=$(ls -d /var/db/pkg/*/* | wc -l) ;;
  1079.         'NixOS') pkgs=$(ls -d -1 /nix/store/*/ | wc -l) ;;
  1080.         'GuixSD') pkgs=$(ls -d -1 /guix/store/*/ | wc -l) ;;
  1081.         'Fedora'|'Fux'|'Korora'|'BLAG'|'Chapeau'|'openSUSE'|'SUSE Linux Enterprise'|'Red Hat Enterprise Linux'|'ROSA'|'Oracle Linux'|'CentOS'|'Mandriva'|'Mandrake'|'Mageia'|'Mer'|'SailfishOS'|'PCLinuxOS'|'Viperr'|'Qubes OS'|'Red Star OS'|'blackPanther OS') pkgs=$(rpm -qa | wc -l) ;;
  1082.         'Void') pkgs=$(xbps-query -l | wc -l) ;;
  1083.         'Evolve OS'|'Solus') pkgs=$(pisi list-installed | wc -l) ;;
  1084.         'CRUX') pkgs=$(pkginfo -i | wc -l) ;;
  1085.         'Lunar Linux') pkgs=$(lvu installed | wc -l) ;;
  1086.         'TinyCore') pkgs=$(tce-status -i | wc -l) ;;
  1087.         'Exherbo')
  1088.             xpkgs=$(ls -d -1 /var/db/paludis/repositories/cross-installed/*/data/* | wc -l)
  1089.             pkgs=$(ls -d -1 /var/db/paludis/repositories/installed/data/* | wc -l)
  1090.             pkgs=$((${pkgs} + ${xpkgs}))
  1091.         ;;
  1092.         'Mac OS X')
  1093.             if [ -d "/usr/local/bin" ]; then
  1094.                 loc_pkgs=$(ls -l /usr/local/bin/ | grep -v "\(../Cellar/\|brew\)" | wc -l)
  1095.                 pkgs=$((${loc_pkgs} -1));
  1096.             fi
  1097.  
  1098.             if type -p port >/dev/null 2>&1; then
  1099.                 port_pkgs=$(port installed 2>/dev/null | wc -l)
  1100.                 pkgs=$((${pkgs} + (${port_pkgs} -1)))
  1101.             fi
  1102.  
  1103.             if type -p brew >/dev/null 2>&1; then
  1104.                 brew_pkgs=$(brew list -1 2>/dev/null | wc -l)
  1105.                 pkgs=$((${pkgs} + ${brew_pkgs}))
  1106.             fi
  1107.             if type -p pkgin >/dev/null 2>&1; then
  1108.                 pkgsrc_pkgs=$(pkgin list 2>/dev/null | wc -l)
  1109.                 pkgs=$((${pkgs} + ${pkgsrc_pkgs}))
  1110.             fi
  1111.         ;;
  1112.         'DragonFlyBSD')
  1113.             pkgs=$(if TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 PACKAGESITE=file:///nonexistent pkg info pkg >/dev/null 2>&1; then
  1114.                 pkg info | wc -l | awk '{print $1}'; else pkg_info | wc -l | tr -d ' '; fi)
  1115.         ;;
  1116.         'OpenBSD')
  1117.             pkgs=$(pkg_info | grep -c .)
  1118.         ;;
  1119.         'FreeBSD')
  1120.             pkgs=$(if TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 PACKAGESITE=file:///nonexistent pkg info pkg >/dev/null 2>&1; then
  1121.                 pkg info | wc -l | awk '{print $1}'; else pkg_info | wc -l | awk '{sub(" ", "");print $1}'; fi)
  1122.         ;;
  1123.         'NetBSD')
  1124.             pkgs=$(pkg_info | wc -l | tr -d ' ')
  1125.         ;;
  1126.         'Cygwin')
  1127.             cygfix=2
  1128.             pkgs=$(($(cygcheck -cd | wc -l) - ${cygfix}))
  1129.             if [ -d "/cygdrive/c/ProgramData/chocolatey/lib" ]; then
  1130.                 chocopkgs=$(( $(ls -1 /cygdrive/c/ProgramData/chocolatey/lib | wc -l) ))
  1131.                 pkgs=$((${pkgs} + ${chocopkgs}))
  1132.             fi
  1133.         ;;
  1134.         'Msys')
  1135.             pkgs=$(pacman -Qq | wc -l)
  1136.             if [ -d "/c/ProgramData/chocolatey/lib" ]; then
  1137.                 chocopkgs=$(( $(ls -1 /c/ProgramData/chocolatey/lib | wc -l) ))
  1138.                 pkgs=$((${pkgs} + ${chocopkgs}))
  1139.             fi
  1140.         ;;
  1141.         'Haiku')
  1142.             haikualpharelease="no"
  1143.             if [ -d /boot/system/package-links ]; then
  1144.                 pkgs=$(ls /boot/system/package-links | wc -l)
  1145.             elif type -p installoptionalpackage >/dev/null 2>&1; then
  1146.                 haikualpharelease="yes"
  1147.                 pkgs=$(installoptionalpackage -l | sed -n '3p' | wc -w)
  1148.             fi
  1149.         ;;
  1150.     esac
  1151.     verboseOut "Finding current package count...found as '$pkgs'"
  1152. }
  1153.  
  1154.  
  1155.  
  1156.  
  1157. # CPU Detection - Begin
  1158. detectcpu () {
  1159.     REGEXP="-r"
  1160.     if [ "$distro" == "Mac OS X" ]; then
  1161.         cpu=$(machine)
  1162.         if [[ $cpu == "ppc750" ]]; then
  1163.             cpu="IBM PowerPC G3"
  1164.         elif [[ $cpu == "ppc7400" || $cpu == "ppc7450" ]]; then
  1165.             cpu="IBM PowerPC G4"
  1166.         elif [[ $cpu == "ppc970" ]]; then
  1167.             cpu="IBM PowerPC G5"
  1168.         else
  1169.             cpu=$(sysctl -n machdep.cpu.brand_string)
  1170.         fi
  1171.         REGEXP="-E"
  1172.     elif [ "$OSTYPE" == "gnu" ]; then
  1173.         # no /proc/cpuinfo on GNU/Hurd
  1174.         if [ "$(uname -m | grep 'i.86')" ]; then
  1175.             cpu="Unknown x86"
  1176.         else
  1177.             cpu="Unknown"
  1178.         fi
  1179.     elif [ "$distro" == "FreeBSD" ]; then
  1180.         cpu=$(dmesg | grep 'CPU:' | head -n 1 | sed -r 's/CPU: //' | sed -e 's/([^()]*)//g')
  1181.     elif [ "$distro" == "DragonFlyBSD" ]; then
  1182.         cpu=$(sysctl -n hw.model)
  1183.     elif [ "$distro" == "OpenBSD" ]; then
  1184.         cpu=$(sysctl -n hw.model | sed 's/@.*//')
  1185.     elif [ "$distro" == "Haiku" ]; then
  1186.         cpu=$(sysinfo -cpu | grep 'CPU #0' | cut -d'"' -f2 | awk 'BEGIN{FS=" @"; OFS="\n"} { print $1; exit }')
  1187.         cpu_mhz=$(sysinfo -cpu | grep 'running at' | awk 'BEGIN{FS="running at "} { print $2; exit }' | cut -d'M' -f1)
  1188.         if [ $(echo $cpu_mhz) -gt 999 ]; then
  1189.             cpu_ghz=$(awk '{print $1/1000}' <<< "${cpu_mhz}")
  1190.             cpufreq="${cpu_ghz}GHz"
  1191.         else
  1192.             cpufreq="${cpu_mhz}MHz"
  1193.         fi
  1194.     else
  1195.         cpu=$(awk 'BEGIN{FS=":"} /model name/ { print $2; exit }' /proc/cpuinfo | awk 'BEGIN{FS=" @"; OFS="\n"} { print $1; exit }')
  1196.         cpun=$(grep -c '^processor' /proc/cpuinfo)
  1197.         if [ -z "$cpu" ]; then
  1198.             cpu=$(awk 'BEGIN{FS=":"} /Hardware/ { print $2; exit }' /proc/cpuinfo)
  1199.         fi
  1200.         if [ -z "$cpu" ]; then
  1201.             cpu=$(awk 'BEGIN{FS=":"} /^cpu/ { gsub(/  +/," ",$2); print $2; exit}' /proc/cpuinfo | sed 's/, altivec supported//;s/^ //')
  1202.             if [[ $cpu =~ ^(PPC)*9.+ ]]; then
  1203.                 model="IBM PowerPC G5 "
  1204.             elif [[ $cpu =~ 740/750 ]]; then
  1205.                 model="IBM PowerPC G3 "
  1206.             elif [[ $cpu =~ ^74.+ ]]; then
  1207.                 model="Motorola PowerPC G4 "
  1208.             elif [[ "$(cat /proc/cpuinfo)" =~ "BCM2708" ]]; then
  1209.                 model="Broadcom BCM2835 ARM1176JZF-S"
  1210.             else
  1211.                 arch=$(uname -m)
  1212.                 if [ "$arch" = "s390x" ] || [ "$arch" = "s390" ]; then
  1213.                     cpu=""
  1214.                     args=$(grep 'machine' /proc/cpuinfo | sed 's/^.*://g; s/ //g; s/,/\n/g' | grep '^machine=.*')
  1215.                     eval $args
  1216.                     case "$machine" in
  1217.                         # information taken from https://github.com/SUSE/s390-tools/blob/master/cputype
  1218.                         2064) model="IBM eServer zSeries 900" ;;
  1219.                         2066) model="IBM eServer zSeries 800" ;;
  1220.                         2084) model="IBM eServer zSeries 990" ;;
  1221.                         2086) model="IBM eServer zSeries 890" ;;
  1222.                         2094) model="IBM System z9 Enterprise Class" ;;
  1223.                         2096) model="IBM System z9 Business Class" ;;
  1224.                         2097) model="IBM System z10 Enterprise Class" ;;
  1225.                         2098) model="IBM System z10 Business Class" ;;
  1226.                         2817) model="IBM zEnterprise 196" ;;
  1227.                         2818) model="IBM zEnterprise 114" ;;
  1228.                         2827) model="IBM zEnterprise EC12" ;;
  1229.                         2828) model="IBM zEnterprise BC12" ;;
  1230.                         2964) model="IBM z13" ;;
  1231.                         *) model="IBM S/390 machine type $machine" ;;
  1232.                     esac
  1233.                 else
  1234.                     model="Unkown"
  1235.                 fi
  1236.             fi
  1237.             cpu="${model}${cpu}"
  1238.         fi
  1239.         loc="/sys/devices/system/cpu/cpu0/cpufreq"
  1240.         bl="${loc}/bios_limit"
  1241.         smf="${loc}/scaling_max_freq"
  1242.         if [ -f "$bl" ] && [ -r "$bl" ]; then
  1243.             cpu_mhz=$(awk '{print $1/1000}' "$bl")
  1244.         elif [ -f "$smf" ] && [ -r "$smf" ]; then
  1245.             cpu_mhz=$(awk '{print $1/1000}' "$smf")
  1246.         else
  1247.             cpu_mhz=$(awk -F':' '/cpu MHz/{ print int($2+.5) }' /proc/cpuinfo | head -n 1)
  1248.         fi
  1249.         if [ -n "$cpu_mhz" ]; then
  1250.             if [ $(echo $cpu_mhz | cut -d. -f1) -gt 999 ]; then
  1251.                 cpu_ghz=$(awk '{print $1/1000}' <<< "${cpu_mhz}")
  1252.                 cpufreq="${cpu_ghz}GHz"
  1253.             else
  1254.                 cpufreq="${cpu_mhz}MHz"
  1255.             fi
  1256.         fi
  1257.     fi
  1258.     if [[ "${cpun}" -gt "1" ]]; then
  1259.         cpun="${cpun}x "
  1260.     else
  1261.         cpun=""
  1262.     fi
  1263.     if [ -z "$cpufreq" ]; then
  1264.         cpu="${cpun}${cpu}"
  1265.     else
  1266.         cpu="$cpu @ ${cpun}${cpufreq}"
  1267.     fi
  1268.     thermal="/sys/class/hwmon/hwmon0/temp1_input"
  1269.     if [ -e $thermal ]; then
  1270.         temp=$(bc <<< "scale=1; $(cat $thermal)/1000")
  1271.     fi
  1272. #   if [ -n "$temp" ]; then
  1273. #       cpu="$cpu [${temp}°C]"
  1274. #   fi
  1275.     cpu=$(sed $REGEXP 's/\([tT][mM]\)|\([Rr]\)|[pP]rocessor|CPU//g' <<< "${cpu}" | xargs)
  1276.     verboseOut "Finding current CPU...found as '$cpu'"
  1277. }
  1278. # CPU Detection - End
  1279.  
  1280.  
  1281.  
  1282. # Disk Usage Detection - Begin
  1283. detectdisk () {
  1284.     diskusage="Unknown"
  1285.     if type -p df >/dev/null 2>&1; then
  1286.         if [[ "${distro}" =~ (Free|Net|Open|DragonFly)BSD ]]; then
  1287.             totaldisk=$(df -h -c 2>/dev/null | tail -1)
  1288.         elif [[ "${distro}" == "Mac OS X" ]]; then
  1289.             totaldisk=$(df -H / 2>/dev/null | tail -1)
  1290.         else
  1291.             totaldisk=$(df -h -x aufs -x tmpfs --total 2>/dev/null | tail -1)
  1292.         fi
  1293.         disktotal=$(awk '{print $2}' <<< "${totaldisk}")
  1294.         diskused=$(awk '{print $3}' <<< "${totaldisk}")
  1295.         diskusedper=$(awk '{print $5}' <<< "${totaldisk}")
  1296.         diskusage="${diskused} / ${disktotal} (${diskusedper})"
  1297.         diskusage_verbose=$(sed 's/%/%%/' <<< $diskusage)
  1298.     fi
  1299.     verboseOut "Finding current disk usage...found as '$diskusage_verbose'"
  1300. }
  1301. # Disk Usage Detection - End
  1302.  
  1303.  
  1304. # Memory Detection - Begin
  1305. detectmem () {
  1306.     if [ "$distro" == "Mac OS X" ]; then
  1307.         totalmem=$(echo "$(sysctl -n hw.memsize)" / 1024^2 | bc)
  1308.         wiredmem=$(vm_stat | grep wired | awk '{ print $4 }' | sed 's/\.//')
  1309.         activemem=$(vm_stat | grep ' active' | awk '{ print $3 }' | sed 's/\.//')
  1310.         compressedmem=$(vm_stat | grep occupied | awk '{ print $5 }' | sed 's/\.//')
  1311.         if [[ ! -z "$compressedmem | tr -d" ]]; then
  1312.             compressedmem=0
  1313.         fi
  1314.         usedmem=$(((${wiredmem} + ${activemem} + ${compressedmem}) * 4 / 1024))
  1315.     elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1316.         total_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  1317.         totalmem=$((${total_mem} / 1024))
  1318.         free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  1319.         used_mem=$((${total_mem} - ${free_mem}))
  1320.         usedmem=$((${used_mem} / 1024))
  1321.     elif [[ "$distro" == "FreeBSD"  || "$distro" == "DragonFlyBSD" ]]; then
  1322.         phys_mem=$(sysctl -n hw.physmem)
  1323.         size_mem=$phys_mem
  1324.         size_chip=1
  1325.         guess_chip=`echo "$size_mem / 8 - 1" | bc`
  1326.         while [ $guess_chip != 0 ]; do
  1327.             guess_chip=`echo "$guess_chip / 2" | bc`
  1328.             size_chip=`echo "$size_chip * 2" | bc`
  1329.         done
  1330.         round_mem=`echo "( $size_mem / $size_chip + 1 ) * $size_chip " | bc`
  1331.         totalmem=$(($round_mem / 1024^2 ))
  1332.         pagesize=$(sysctl -n hw.pagesize)
  1333.         inactive_count=$(sysctl -n vm.stats.vm.v_inactive_count)
  1334.         inactive_mem=$(($inactive_count * $pagesize))
  1335.         cache_count=$(sysctl -n vm.stats.vm.v_cache_count)
  1336.         cache_mem=$(($cache_count * $pagesize))
  1337.         free_count=$(sysctl -n vm.stats.vm.v_free_count)
  1338.         free_mem=$(($free_count * $pagesize))
  1339.         avail_mem=$(($inactive_mem + $cache_mem + $free_mem))
  1340.         used_mem=$(($round_mem - $avail_mem))
  1341.         usedmem=$(($used_mem / 1024^2 ))
  1342.     elif [ "$distro" == "OpenBSD" ]; then
  1343.         totalmem=$(($(sysctl -n hw.physmem) / 1024 / 1024))
  1344.         usedmem=$(($(vmstat | awk '!/[a-z]/{print $4}') / 1024))
  1345.     elif [ "$distro" == "NetBSD" ]; then
  1346.         phys_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  1347.         totalmem=$((${phys_mem} / 1024))
  1348.         if grep -q 'Cached' /proc/meminfo; then
  1349.             cache=$(awk '/Cached/ {print $2}' /proc/meminfo)
  1350.             usedmem=$((${cache} / 1024))
  1351.         else
  1352.             free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  1353.             used_mem=$((${phys_mem} - ${free_mem}))
  1354.             usedmem=$((${used_mem} / 1024))
  1355.         fi
  1356.     elif [ "$distro" == "Haiku" ]; then
  1357.         totalmem=$(( $(sysinfo -mem | head -n1 | cut -d'/' -f3 | tr -d ' ' | tr -d ')') / 1024^2 ))
  1358.         usedmem=$(( $(sysinfo -mem | head -n1 | cut -d'/' -f2 | sed 's/max//; s/ //g') / 1024^2 ))
  1359.     else
  1360.         # MemUsed = Memtotal + Shmem - MemFree - Buffers - Cached - SReclaimable
  1361.         # Source: https://github.com/dylanaraps/neofetch/pull/391/files#diff-e863270127ca6116fd30e708cdc582fc
  1362.         mem_info=$(</proc/meminfo)
  1363.         mem_info=$(echo $(echo $(mem_info=${mem_info// /}; echo ${mem_info//kB/})))
  1364.         for m in $mem_info; do
  1365.             case ${m//:*} in
  1366.                 "MemTotal") usedmem=$((usedmem+=${m//*:})); totalmem=${m//*:} ;;
  1367.                 "ShMem") usedmem=$((usedmem+=${m//*:})) ;;
  1368.                 "MemFree"|"Buffers"|"Cached"|"SReclaimable") usedmem=$((usedmem-=${m//*:})) ;;
  1369.             esac
  1370.         done
  1371.         usedmem=$((usedmem / 1024))
  1372.         totalmem=$((totalmem / 1024))
  1373.     fi
  1374.     mem="${usedmem}MiB / ${totalmem}MiB"
  1375.     verboseOut "Finding current RAM usage...found as '$mem'"
  1376. }
  1377. # Memory Detection - End
  1378.  
  1379.  
  1380. # Shell Detection - Begin
  1381. detectshell_ver () {
  1382.     local version_data='' version='' get_version='--version'
  1383.  
  1384.     case $1 in
  1385.         # ksh sends version to stderr. Weeeeeeird.
  1386.         ksh)
  1387.             version_data="$( $1 $get_version 2>&1 )"
  1388.             ;;
  1389.         *)
  1390.             version_data="$( $1 $get_version 2>/dev/null )"
  1391.             ;;
  1392.     esac
  1393.  
  1394.     if [[ -n $version_data ]];then
  1395.         version=$(awk '
  1396.         BEGIN {
  1397.             IGNORECASE=1
  1398.         }
  1399.         /'$2'/ {
  1400.             gsub(/(,|v|V)/, "",$'$3')
  1401.             if ($2 ~ /[Bb][Aa][Ss][Hh]/) {
  1402.                 gsub(/\(.*|-release|-version\)/,"",$4)
  1403.             }
  1404.             print $'$3'
  1405.             exit # quit after first match prints
  1406.         }' <<< "$version_data")
  1407.     fi
  1408.     echo "$version"
  1409. }
  1410. detectshell () {
  1411.     if [[ ! "${shell_type}" ]]; then
  1412.         if [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" || "${distro}" == "Haiku" || "${distro}" == "Alpine Linux" || "${OSTYPE}" == "gnu" || "${distro}" == "TinyCore" || "${distro}" == "Raspbian" ]]; then
  1413.             shell_type=$(echo "$SHELL" | awk -F'/' '{print $NF}')
  1414.         elif readlink -f "$SHELL" | grep -q "busybox"; then
  1415.             shell_type="BusyBox"
  1416.         else
  1417.             if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" || "${OSTYPE}" == "linux-musl" ]]; then
  1418.                 shell_type=$(cat /proc/$PPID/cmdline|tr '\0' '\n'|head -n 1)
  1419.             elif [[ "${distro}" == "Mac OS X" || "${distro}" == "DragonFlyBSD" || "${distro}" == "FreeBSD" || "${distro}" == "OpenBSD" || "${distro}" == "NetBSD" ]]; then
  1420.                 shell_type=$(ps -p $PPID -o command | tail -1)
  1421.             else
  1422.                 shell_type=$(ps -p $(ps -p $PPID | awk '$1 !~ /PID/ {print $1}') | awk 'FNR>1 {print $1}')
  1423.             fi
  1424.             shell_type=${shell_type/-}
  1425.             shell_type=${shell_type//*\/}
  1426.         fi
  1427.     fi
  1428.  
  1429.     case $shell_type in
  1430.         bash)
  1431.             shell_version_data=$( detectshell_ver "$shell_type" "^GNU.bash,.version" "4" )
  1432.             ;;
  1433.         BusyBox)
  1434.             shell_version_data=$( busybox | head -n1 | cut -d ' ' -f2 )
  1435.             ;;
  1436.         csh)
  1437.             shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  1438.             ;;
  1439.         dash)
  1440.             shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  1441.             ;;
  1442.         ksh)
  1443.             shell_version_data=$( detectshell_ver "$shell_type" "version" "5" )
  1444.             ;;
  1445.         tcsh)
  1446.             shell_version_data=$( detectshell_ver "$shell_type" "^tcsh" "2" )
  1447.             ;;
  1448.         zsh)
  1449.             shell_version_data=$( detectshell_ver "$shell_type" "^zsh" "2" )
  1450.             ;;
  1451.         fish)
  1452.             shell_version_data=$( fish --version | awk '{print $3}' )
  1453.             ;;
  1454.     esac
  1455.  
  1456.     if [[ -n $shell_version_data ]];then
  1457.         shell_type="$shell_type $shell_version_data"
  1458.     fi
  1459.  
  1460.     myShell=${shell_type}
  1461.     verboseOut "Finding current shell...found as '$myShell'"
  1462. }
  1463. # Shell Detection - End
  1464.  
  1465.  
  1466. # Resolution Detection - Begin
  1467. detectres () {
  1468.     if [[ ${distro} != "Mac OS X" && ${distro} != "Cygwin" && "${distro}" != "Msys" && ${distro} != "Haiku" ]]; then
  1469.         if [[ -n ${DISPLAY} ]]; then
  1470.             if type -p xdpyinfo >/dev/null 2>&1; then
  1471.                 if [[ "$distro" =~ "BSD" ]]; then
  1472.                     xResolution=$(xdpyinfo | sed -n 's/.*dim.* \([0-9]*x[0-9]*\) .*/\1/pg' | tr '\n' ' ')
  1473.                 else
  1474.                     xResolution=$(xdpyinfo | sed -n 's/.*dim.* \([0-9]*x[0-9]*\) .*/\1/pg' | sed ':a;N;$!ba;s/\n/ /g')
  1475.                 fi
  1476.             fi
  1477.         fi
  1478.     elif [[ ${distro} == "Mac OS X" ]]; then
  1479.         xResolution=$(system_profiler SPDisplaysDataType | awk '/Resolution:/ {print $2"x"$4" "}')
  1480.         if [[ "$(echo $xResolution | wc -l)" -ge 1 ]]; then
  1481.             xResolution=$(echo $xResolution | tr "\\n" "," | sed 's/\(.*\),/\1/')
  1482.         fi
  1483.     elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1484.         xResolution=$(wmic path Win32_VideoController get CurrentHorizontalResolution,CurrentVerticalResolution | awk 'NR==2 {print $1"x"$2}')
  1485.     elif [[ "${distro}" == "Haiku" ]]; then
  1486.         width=$(screenmode | cut -d ' ' -f2)
  1487.         height=$(screenmode | cut -d ' ' -f3 | tr -d ',')
  1488.         xResolution="$(echo ${width}x${height})"
  1489.     else
  1490.         xResolution="No X Server"
  1491.     fi
  1492.     verboseOut "Finding current resolution(s)...found as '$xResolution'"
  1493. }
  1494. # Resolution Detection - End
  1495.  
  1496.  
  1497. # DE Detection - Begin
  1498. detectde () {
  1499.     DE="Not Present"
  1500.     if [[ ${distro} != "Mac OS X" && ${distro} != "Cygwin" && "${distro}" != "Msys" ]]; then
  1501.         if [[ -n ${DISPLAY} ]]; then
  1502.             if type -p xprop >/dev/null 2>&1;then
  1503.                 xprop_root="$(xprop -root 2>/dev/null)"
  1504.                 if [[ -n ${xprop_root} ]]; then
  1505.                     DE=$(echo "${xprop_root}" | awk 'BEGIN {
  1506.                         de = "Not Present"
  1507.                     }
  1508.                     {
  1509.                         if ($1 ~ /^_DT_SAVE_MODE/) {
  1510.                             de = $NF
  1511.                             gsub(/\"/,"",de)
  1512.                             de = toupper(de)
  1513.                             exit
  1514.                         }
  1515.                         else if ($1 ~/^KDE_SESSION_VERSION/) {
  1516.                             de = "KDE"$NF
  1517.                             exit
  1518.                         }
  1519.                         else if ($1 ~ /^_MUFFIN/) {
  1520.                             de = "Cinnamon"
  1521.                             exit
  1522.                         }
  1523.                         else if ($1 ~ /^TDE_FULL_SESSION/) {
  1524.                             de = "Trinity"
  1525.                             exit
  1526.                         }
  1527.                         else if ($0 ~ /"xfce4"/) {
  1528.                             de = "Xfce4"
  1529.                             exit
  1530.                         }
  1531.                         else if ($0 ~ /"xfce5"/) {
  1532.                             de = "Xfce5"
  1533.                             exit
  1534.                         }
  1535.                     } END {
  1536.                         print de
  1537.                     }')
  1538.                 fi
  1539.             fi
  1540.  
  1541.             if [[ ${DE} == "Not Present" ]]; then
  1542.                 # Let's use xdg-open code for GNOME/Enlightment/KDE/LXDE/MATE/Xfce detection
  1543.                 # http://bazaar.launchpad.net/~vcs-imports/xdg-utils/master/view/head:/scripts/xdg-utils-common.in#L251
  1544.                 if [ -n "${XDG_CURRENT_DESKTOP}" ]; then
  1545.                     case "${XDG_CURRENT_DESKTOP}" in
  1546.                         ENLIGHTENMENT)
  1547.                             DE=Enlightenment;
  1548.                             ;;
  1549.                         GNOME)
  1550.                             DE=GNOME;
  1551.                             ;;
  1552.                         KDE)
  1553.                             DE=KDE;
  1554.                             ;;
  1555.                         LUMINA|Lumina)
  1556.                             DE=Lumina;
  1557.                             ;;
  1558.                         LXDE)
  1559.                             DE=LXDE;
  1560.                             ;;
  1561.                         MATE)
  1562.                             DE=MATE;
  1563.                             ;;
  1564.                         XFCE)
  1565.                             DE=Xfce
  1566.                             ;;
  1567.                         'X-Cinnamon')
  1568.                             DE=Cinnamon
  1569.                             ;;
  1570.                         Unity)
  1571.                             DE=Unity
  1572.                             ;;
  1573.                         LXQt)
  1574.                             DE=LXQt
  1575.                             ;;
  1576.                     esac
  1577.                 fi
  1578.  
  1579.                 if [ -n "$DE" ]; then
  1580.                     # classic fallbacks
  1581.                     if [ -n "$KDE_FULL_SESSION" ]; then DE=KDE;
  1582.                     elif [ -n "$TDE_FULL_SESSION" ]; then DE=Trinity;
  1583.                     elif [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then DE=GNOME;
  1584.                     elif [ -n "$MATE_DESKTOP_SESSION_ID" ]; then DE=MATE;
  1585.                     elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=GNOME;
  1586.                     elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=Xfce;
  1587.                     elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=Xfce
  1588.                     elif echo $DESKTOP | grep -q '^Enlightenment'; then DE=Enlightenment;
  1589.                     fi
  1590.                 fi
  1591.  
  1592.                 case "$DESKTOP_SESSION" in
  1593.                     gnome|gnome-fallback|gnome-fallback-compiz )
  1594.                         DE=GNOME
  1595.                         ;;
  1596.                     deepin)
  1597.                         DE=Deepin
  1598.                         ;;
  1599.                 esac
  1600.  
  1601.                 if [ -n "$DE" ]; then
  1602.                     # fallback to checking $DESKTOP_SESSION
  1603.                     case "$DESKTOP_SESSION" in
  1604.                         gnome)
  1605.                             DE=GNOME;
  1606.                             ;;
  1607.                         LUMINA|Lumina)
  1608.                             DE=Lumina;
  1609.                             ;;
  1610.                         LXDE|Lubuntu)
  1611.                             DE=LXDE;
  1612.                             ;;
  1613.                         MATE)
  1614.                             DE=MATE;
  1615.                             ;;
  1616.                         xfce|xfce4|'Xfce Session')
  1617.                             DE=Xfce;
  1618.                             ;;
  1619.                         'budgie-desktop')
  1620.                             DE=Budgie
  1621.                             ;;
  1622.                         Cinnamon)
  1623.                             DE=Cinnamon
  1624.                             ;;
  1625.                         trinity)
  1626.                             DE=Trinity
  1627.                             ;;
  1628.                     esac
  1629.                 fi
  1630.  
  1631.                 if [ -n "$DE" ]; then
  1632.                     # fallback to checking $GDMSESSION
  1633.                     case "$GDMSESSION" in
  1634.                         Lumina*|LUMINA*|lumina*)
  1635.                             DE=Lumina
  1636.                             ;;
  1637.                         MATE|mate)
  1638.                             DE=MATE
  1639.                             ;;
  1640.                     esac
  1641.                 fi
  1642.  
  1643.                 if [[ ${DE} == "GNOME" ]]; then
  1644.                     if type -p xprop >/dev/null 2>&1; then
  1645.                         if xprop -name "unity-launcher" >/dev/null 2>&1; then
  1646.                             DE="Unity"
  1647.                         elif xprop -name "launcher" >/dev/null 2>&1 &&
  1648.                             xprop -name "panel" >/dev/null 2>&1; then
  1649.  
  1650.                             DE="Unity"
  1651.                         fi
  1652.                     fi
  1653.                 fi
  1654.  
  1655.                 if [[ ${DE} == "KDE" ]]; then
  1656.                     if [[ -n ${KDE_SESSION_VERSION} ]]; then
  1657.                         if [[ ${KDE_SESSION_VERSION} == '5' ]]; then
  1658.                             DE="KDE5"
  1659.                         elif [[ ${KDE_SESSION_VERSION} == '4' ]]; then
  1660.                             DE="KDE4"
  1661.                         fi
  1662.                     elif [[ "x${KDE_FULL_SESSION}" == "xtrue" ]]; then
  1663.                         DE="KDE"
  1664.                         DEver_data=$(kded --version 2>/dev/null)
  1665.                         DEver=$(grep -si '^KDE:' <<< "$DEver_data" | awk '{print $2}')
  1666.                     fi
  1667.                 fi
  1668.             fi
  1669.  
  1670.             if [[ ${DE} != "Not Present" ]]; then
  1671.                 if [[ ${DE} == "Cinnamon" ]]; then
  1672.                     if type -p >/dev/null 2>&1; then
  1673.                         DEver=$(cinnamon --version)
  1674.                         DE="${DE} ${DEver//* }"
  1675.                     fi
  1676.                 elif [[ ${DE} == "GNOME" ]]; then
  1677.                     if type -p gnome-session >/dev/null 2>&1; then
  1678.                         DEver=$(gnome-session --version 2> /dev/null)
  1679.                         DE="${DE} ${DEver//* }"
  1680.                     elif type -p gnome-session-properties >/dev/null 2>&1; then
  1681.                         DEver=$(gnome-session-properties --version 2> /dev/null)
  1682.                         DE="${DE} ${DEver//* }"
  1683.                     fi
  1684.                 elif [[ ${DE} == "KDE4" || ${DE} == "KDE5" ]]; then
  1685.                     if type -p kded${DE#KDE} >/dev/null 2>&1; then
  1686.                         DEver=$(kded${DE#KDE} --version)
  1687.                         if [[ $(( $(echo "$DEver" | wc -w) )) -eq 2 ]] && [[ "$(echo "$DEver" | cut -d ' ' -f1)" == "kded${DE#KDE}" ]]; then
  1688.                             DEver=$(echo "$DEver" | cut -d ' ' -f2)
  1689.                             DE="KDE ${DEver}"
  1690.                         else
  1691.                             for l in $(echo "${DEver// /_}"); do
  1692.                                 if [[ ${l//:*} == "KDE_Development_Platform" ]]; then
  1693.                                     DEver=${l//*:_}
  1694.                                     DE="KDE ${DEver//_*}"
  1695.                                 fi
  1696.                             done
  1697.                         fi
  1698.                         if pgrep plasmashell >/dev/null 2>&1; then
  1699.                             DEver=$(plasmashell --version | cut -d ' ' -f2)
  1700.                             DE="$DE / Plasma $DEver"
  1701.                         fi
  1702.                     fi
  1703.                 elif [[ ${DE} == "Lumina" ]]; then
  1704.                     if type -p Lumina-DE.real >/dev/null 2>&1; then
  1705.                         lumina="$(type -p Lumina-DE.real)"
  1706.                     elif type -p Lumina-DE >/dev/null 2>&1; then
  1707.                         lumina="$(type -p Lumina-DE)"
  1708.                     fi
  1709.                     if [ -n "$lumina" ]; then
  1710.                         if grep -e '--version' "$lumina" >/dev/null; then
  1711.                             DEver=$("$lumina" --version 2>&1 | tr -d \")
  1712.                             DE="${DE} ${DEver}"
  1713.                         fi
  1714.                     fi
  1715.                 elif [[ ${DE} == "MATE" ]]; then
  1716.                     if type -p mate-session >/dev/null 2>&1; then
  1717.                         DEver=$(mate-session --version)
  1718.                         DE="${DE} ${DEver//* }"
  1719.                     fi
  1720.                 elif [[ ${DE} == "Unity" ]]; then
  1721.                     if type -p unity >/dev/null 2>&1; then
  1722.                         DEver=$(unity --version)
  1723.                         DE="${DE} ${DEver//* }"
  1724.                     fi
  1725.                 elif [[ ${DE} == "Deepin" ]]; then
  1726.                     if [[ -f /etc/deepin-version ]]; then
  1727.                         DEver="$(awk -F '=' '/Version/ {print $2}' /etc/deepin-version)"
  1728.                         DE="${DE} ${DEver//* }"
  1729.                     fi
  1730.                 elif [[ ${DE} == "Trinity" ]]; then
  1731.                     if type -p tde-config >/dev/null 2>&1; then
  1732.                         DEver="$(tde-config --version | awk -F ' ' '/TDE:/ {print $2}')"
  1733.                         DE="${DE} ${DEver//* }"
  1734.                     fi
  1735.                 fi
  1736.             fi
  1737.  
  1738.             if [[ "${DE}" == "Not Present" ]]; then
  1739.                 if pgrep -U ${UID} lxsession >/dev/null 2>&1; then
  1740.                     DE="LXDE"
  1741.                     if type -p lxpanel >/dev/null 2>&1; then
  1742.                         DEver=$(lxpanel -v)
  1743.                         DE="${DE} $DEver"
  1744.                     fi
  1745.                 elif pgrep -U ${UID} lxqt-session >/dev/null 2>&1; then
  1746.                     DE="LXQt"
  1747.                 elif pgrep -U ${UID} razor-session >/dev/null 2>&1; then
  1748.                     DE="RazorQt"
  1749.                 elif pgrep -U ${UID} dtsession >/dev/null 2>&1; then
  1750.                     DE="CDE"
  1751.                 fi
  1752.             fi
  1753.         fi
  1754.     elif [[ "${distro}" == "Mac OS X" ]]; then
  1755.         if ps -U ${USER} | grep [F]inder >/dev/null 2>&1; then
  1756.             DE="Aqua"
  1757.         fi
  1758.     elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1759.         # https://msdn.microsoft.com/en-us/library/ms724832%28VS.85%29.aspx
  1760.         if [ "$(wmic os get version | grep -o '^\(6\.[01]\)')" ]; then
  1761.             DE='Aero'
  1762.         elif [ "$(wmic os get version | grep -o '^\(6\.[23]\|10\)')" ]; then
  1763.             DE='Modern UI/Metro'
  1764.         else
  1765.             DE='Luna'
  1766.         fi
  1767.     fi
  1768.     verboseOut "Finding desktop environment...found as '$DE'"
  1769. }
  1770. ### DE Detection - End
  1771.  
  1772.  
  1773. # WM Detection - Begin
  1774. detectwm () {
  1775.     WM="Not Found"
  1776.     if [[ ${distro} != "Mac OS X" && ${distro} != "Cygwin" && "${distro}" != "Msys" ]]; then
  1777.         if [[ -n ${DISPLAY} ]]; then
  1778.             for each in "${wmnames[@]}"; do
  1779.                 PID="$(pgrep -U ${UID} "^$each$")"
  1780.                 if [ "$PID" ]; then
  1781.                     case $each in
  1782.                         '2bwm') WM="2bwm";;
  1783.                         '9wm') WM="9wm";;
  1784.                         'awesome') WM="Awesome";;
  1785.                         'beryl') WM="Beryl";;
  1786.                         'blackbox') WM="BlackBox";;
  1787.                         'bspwm') WM="bspwm";;
  1788.                         'budgie-wm') WM="BudgieWM";;
  1789.                         'chromeos-wm') WM="chromeos-wm";;
  1790.                         'cinnamon') WM="Muffin";;
  1791.                         'compiz') WM="Compiz";;
  1792.                         'deepin-wm') WM="deepin-wm";;
  1793.                         'dminiwm') WM="dminiwm";;
  1794.                         'dtwm') WM="dtwm";;
  1795.                         'dwm') WM="dwm";;
  1796.                         'e16') WM="E16";;
  1797.                         'emerald') WM="Emerald";;
  1798.                         'enlightenment') WM="E17";;
  1799.                         'fluxbox') WM="FluxBox";;
  1800.                         'flwm'|'flwm_topside') WM="FLWM";;
  1801.                         'fvwm') WM="FVWM";;
  1802.                         'herbstluftwm') WM="herbstluftwm";;
  1803.                         'howm') WM="howm";;
  1804.                         'i3') WM="i3";;
  1805.                         'icewm') WM="IceWM";;
  1806.                         'kwin') WM="KWin";;
  1807.                         'metacity') WM="Metacity";;
  1808.                         'monsterwm') WM="monsterwm";;
  1809.                         'musca') WM="Musca";;
  1810.                         'notion') WM="Notion";;
  1811.                         'openbox') WM="OpenBox";;
  1812.                         'pekwm') WM="PekWM";;
  1813.                         'ratpoison') WM="Ratpoison";;
  1814.                         'sawfish') WM="Sawfish";;
  1815.                         'scrotwm') WM="ScrotWM";;
  1816.                         'spectrwm') WM="SpectrWM";;
  1817.                         'stumpwm') WM="StumpWM";;
  1818.                         'subtle') WM="subtle";;
  1819.                         'sway') WM="sway";;
  1820.                         'swm') WM="swm";;
  1821.                         'twin') WM="TWin";;
  1822.                         'wmaker') WM="WindowMaker";;
  1823.                         'wmfs') WM="WMFS";;
  1824.                         'wmii') WM="wmii";;
  1825.                         'xfwm4') WM="Xfwm4";;
  1826.                         'xmonad.*') WM="XMonad";;
  1827.                     esac
  1828.                 fi
  1829.  
  1830.                 if [[ ${WM} != "Not Found" ]]; then
  1831.                     break 1
  1832.                 fi
  1833.             done
  1834.  
  1835.             if [[ ${WM} == "Not Found" ]]; then
  1836.                 if type -p xprop >/dev/null 2>&1; then
  1837.                     WM=$(xprop -root _NET_SUPPORTING_WM_CHECK)
  1838.                     if [[ "$WM" =~ 'not found' ]]; then
  1839.                         WM="Not Found"
  1840.                     elif [[ "$WM" =~ 'Not found' ]]; then
  1841.                         WM="Not Found"
  1842.                     elif [[ "$WM" =~ '[Ii]nvalid window id format' ]]; then
  1843.                         WM="Not Found"
  1844.                     elif [[ "$WM" =~ "no such" ]]; then
  1845.                         WM="Not Found"
  1846.                     else
  1847.                         WM=${WM//* }
  1848.                         WM=$(xprop -id ${WM} 8s _NET_WM_NAME)
  1849.                         WM=$(echo $(WM=${WM//*= }; echo ${WM//\"}))
  1850.                     fi
  1851.                 fi
  1852.             else
  1853.                 if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  1854.                     if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  1855.                         WM=${WM,,}
  1856.                     else
  1857.                         WM="$(tr '[:upper:]' '[:lower:]' <<< ${WM})"
  1858.                     fi
  1859.                 else
  1860.                     WM="$(tr '[:upper:]' '[:lower:]' <<< ${WM})"
  1861.                 fi
  1862.                 case ${WM} in
  1863.                     *'gala'*) WM="Gala";;
  1864.                     '2bwm') WM="2bwm";;
  1865.                     'awesome') WM="Awesome";;
  1866.                     'beryl') WM="Beryl";;
  1867.                     'blackbox') WM="BlackBox";;
  1868.                     'budgiewm') WM="BudgieWM";;
  1869.                     'chromeos-wm') WM="chromeos-wm";;
  1870.                     'cinnamon') WM="Cinnamon";;
  1871.                     'compiz') WM="Compiz";;
  1872.                     'deepin-wm') WM="Deepin WM";;
  1873.                     'dminiwm') WM="dminiwm";;
  1874.                     'dwm') WM="dwm";;
  1875.                     'e16') WM="E16";;
  1876.                     'echinus') WM="echinus";;
  1877.                     'emerald') WM="Emerald";;
  1878.                     'enlightenment') WM="E17";;
  1879.                     'fluxbox') WM="FluxBox";;
  1880.                     'flwm'|'flwm_topside') WM="FLWM";;
  1881.                     'fvwm') WM="FVWM";;
  1882.                     'gnome shell'*) WM="Mutter";;
  1883.                     'herbstluftwm') WM="herbstluftwm";;
  1884.                     'howm') WM="howm";;
  1885.                     'i3') WM="i3";;
  1886.                     'icewm') WM="IceWM";;
  1887.                     'kwin') WM="KWin";;
  1888.                     'metacity') WM="Metacity";;
  1889.                     'monsterwm') WM="monsterwm";;
  1890.                     'muffin') WM="Muffin";;
  1891.                     'musca') WM="Musca";;
  1892.                     'mutter'*) WM="Mutter";;
  1893.                     'notion') WM="Notion";;
  1894.                     'openbox') WM="OpenBox";;
  1895.                     'pekwm') WM="PekWM";;
  1896.                     'ratpoison') WM="Ratpoison";;
  1897.                     'sawfish') WM="Sawfish";;
  1898.                     'scrotwm') WM="ScrotWM";;
  1899.                     'spectrwm') WM="SpectrWM";;
  1900.                     'stumpwm') WM="StumpWM";;
  1901.                     'subtle') WM="subtle";;
  1902.                     'sway') WM="sway";;
  1903.                     'swm') WM="swm";;
  1904.                     'twin') WM="TWin";;
  1905.                     'wmaker') WM="WindowMaker";;
  1906.                     'wmfs') WM="WMFS";;
  1907.                     'wmii') WM="wmii";;
  1908.                     'xfwm4') WM="Xfwm4";;
  1909.                     'xmonad') WM="XMonad";;
  1910.                 esac
  1911.             fi
  1912.         fi
  1913.     elif [[ ${distro} == "Mac OS X" && "${WM}" == "Not Found" ]]; then
  1914.         if ps -U ${USER} | grep Finder >/dev/null 2>&1; then
  1915.             WM="Quartz Compositor"
  1916.         fi
  1917.     elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1918.         bugn=$(tasklist | grep -o 'bugn' | tr -d '\r \n')
  1919.         wind=$(tasklist | grep -o 'Windawesome' | tr -d '\r \n')
  1920.         blackbox=$(tasklist | grep -o 'blackbox' | tr -d '\r \n')
  1921.         if [ "$bugn" = "bugn" ]; then WM="bug.n"
  1922.         elif [ "$wind" = "Windawesome" ]; then WM="Windawesome"
  1923.         elif [ "$blackbox" = "blackbox" ]; then WM="Blackbox"
  1924.         else WM="DWM/Explorer"; fi
  1925.     fi
  1926.     verboseOut "Finding window manager...found as '$WM'"
  1927. }
  1928. # WM Detection - End
  1929.  
  1930.  
  1931. # WM Theme Detection - BEGIN
  1932. detectwmtheme () {
  1933.     Win_theme="Not Found"
  1934.     case $WM in
  1935.         '2bwm') Win_theme="Not Applicable";;
  1936.         '9wm') Win_theme="Not Applicable";;
  1937.         'Awesome') if [ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/awesome/rc.lua ]; then Win_theme="$(grep -e '^[^-].*\(theme\|beautiful\).*lua' ${XDG_CONFIG_HOME:-${HOME}/.config}/awesome/rc.lua | grep '[a-zA-Z0-9]\+/[a-zA-Z0-9]\+.lua' -o | cut -d'/' -f1 | head -n1)"; fi;;
  1938.         'BlackBox') if [ -f $HOME/.blackboxrc ]; then Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' $HOME/.blackboxrc)"; fi;;
  1939.         'Beryl') Win_theme="Not Applicable";;
  1940.         'bspwm') Win_theme="Not Applicable";;
  1941.         'BudgieWM')
  1942.             Win_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
  1943.             Win_theme="${Win_theme//\'}"
  1944.         ;;
  1945.         'Cinnamon'|'Muffin')
  1946.             de_theme="$(gsettings get org.cinnamon.theme name)"
  1947.             de_theme=${de_theme//"'"}
  1948.             win_theme="$(gsettings get org.cinnamon.desktop.wm.preferences theme)"
  1949.             win_theme=${win_theme//"'"}
  1950.             Win_theme="${de_theme} (${win_theme})"
  1951.         ;;
  1952.         'Compiz'|'Mutter'*|'GNOME Shell'|'Gala')
  1953.             if type -p gsettings >/dev/null 2>&1; then
  1954.                 Win_theme="$(gsettings get org.gnome.shell.extensions.user-theme name 2>/dev/null)"
  1955.                 if [[ -z "$Win_theme" ]]; then
  1956.                     Win_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
  1957.                 fi
  1958.                 Win_theme=${Win_theme//"'"}
  1959.             elif type -p gconftool-2 >/dev/null 2>&1; then
  1960.                 Win_theme=$(gconftool-2 -g /apps/metacity/general/theme)
  1961.             fi
  1962.         ;;
  1963.         'Deepin WM')
  1964.             if type -p gsettings >/dev/null 2>&1; then
  1965.                 Win_theme="$(gsettings get com.deepin.wrap.gnome.desktop.wm.preferences theme)"
  1966.                 Win_theme=${Win_theme//"'"}
  1967.             fi
  1968.         ;;
  1969.         'dminiwm') Win_theme="Not Applicable";;
  1970.         'dwm') Win_theme="Not Applicable";;
  1971.         'E16') Win_theme="$(awk -F"= " '/theme.name/ {print $2}' $HOME/.e16/e_config--0.0.cfg)";;
  1972.         'E17'|'Enlightenment')
  1973.             if [ "$(which eet 2>/dev/null)" ]; then
  1974.                 econfig="$(eet -d $HOME/.e/e/config/standard/e.cfg config | awk '/value \"file\" string.*.edj/{ print $4 }')"
  1975.                 econfigend="${econfig##*/}"
  1976.                 Win_theme=${econfigend%.*}
  1977.             fi
  1978.         ;;
  1979.         #E17 doesn't store cfg files in text format so for now get the profile as opposed to theme. atyoung
  1980.         #TODO: Find a way to extract and read E17 .cfg files ( google seems to have nothing ). atyoung
  1981.         'E17') Win_theme=${E_CONF_PROFILE};;
  1982.         'echinus') Win_theme="Not Applicable";;
  1983.         'Emerald') if [ -f $HOME/.emerald/theme/theme.ini ]; then Win_theme="$(for a in /usr/share/emerald/themes/* $HOME/.emerald/themes/*; do cmp "$HOME/.emerald/theme/theme.ini" "$a/theme.ini" &>/dev/null && basename "$a"; done)"; fi;;
  1984.         'Finder') Win_theme="Not Applicable";;
  1985.         'FluxBox'|'Fluxbox') if [ -f $HOME/.fluxbox/init ]; then Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' $HOME/.fluxbox/init)"; fi;;
  1986.         'FVWM') Win_theme="Not Applicable";;
  1987.         'howm') Win_theme="Not Applicable";;
  1988.         'i3') Win_theme="Not Applicable";;
  1989.         'IceWM') if [ -f $HOME/.icewm/theme ]; then Win_theme="$(awk -F"[\",/]" '!/#/ {print $2}' $HOME/.icewm/theme)"; fi;;
  1990.         'KWin'*)
  1991.             if [[ -z $KDE_CONFIG_DIR ]]; then
  1992.                 if type -p kde5-config >/dev/null 2>&1; then
  1993.                     KDE_CONFIG_DIR=$(kde5-config --localprefix)
  1994.                 elif type -p kde4-config >/dev/null 2>&1; then
  1995.                     KDE_CONFIG_DIR=$(kde4-config --localprefix)
  1996.                 elif type -p kde-config >/dev/null 2>&1; then
  1997.                     KDE_CONFIG_DIR=$(kde-config --localprefix)
  1998.                 fi
  1999.             fi
  2000.  
  2001.             if [[ -n $KDE_CONFIG_DIR ]]; then
  2002.                 Win_theme="Not Applicable"
  2003.                 KDE_CONFIG_DIR=${KDE_CONFIG_DIR%/}
  2004.                 if [[ -f $KDE_CONFIG_DIR/share/config/kwinrc ]]; then
  2005.                     Win_theme="$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0); print $0; exit}' $KDE_CONFIG_DIR/share/config/kwinrc)"
  2006.                     if [[ -z "$Win_theme" ]]; then Win_theme="Not Applicable"; fi
  2007.                 fi
  2008.                 if [[ "$Win_theme" == "Not Applicable" ]]; then
  2009.                     if [[ -f $KDE_CONFIG_DIR/share/config/kdebugrc ]]; then
  2010.                         Win_theme="$(awk '/(decoration)/ {gsub(/\[/,"",$1); print $1; exit}' $KDE_CONFIG_DIR/share/config/kdebugrc)"
  2011.                         if [[ -z "$Win_theme" ]]; then Win_theme="Not Applicable"; fi
  2012.                     fi
  2013.                 fi
  2014.                 if [[ "$Win_theme" == "Not Applicable" ]]; then
  2015.                     if [[ -f $KDE_CONFIG_DIR/share/config/kdeglobals ]]; then
  2016.                         Win_theme="$(awk '/\[General\]/ {flag=1;next} /^$/{flag=0} flag {print}' $KDE_CONFIG_DIR/share/config/kdeglobals | grep -oP 'Name=\K.*')"
  2017.                         if [[ -z "$Win_theme" ]]; then Win_theme="Not Applicable"; fi
  2018.                     fi
  2019.                 fi
  2020.  
  2021.                 if [[ "$Win_theme" != "Not Applicable" ]]; then
  2022.                     if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  2023.                         if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  2024.                             Win_theme="${Win_theme^}"
  2025.                         else
  2026.                             Win_theme="$(tr '[:lower:]' '[:upper:]' <<< ${Win_theme:0:1})${Win_theme:1}"
  2027.                         fi
  2028.                     else
  2029.                         Win_theme="$(tr '[:lower:]' '[:upper:]' <<< ${Win_theme:0:1})${Win_theme:1}"
  2030.                     fi
  2031.                 fi
  2032.             fi
  2033.         ;;
  2034.         'Marco')
  2035.             Win_theme="$(gsettings get org.mate.Marco.general theme)"
  2036.             Win_theme=${Win_theme//"'"}
  2037.         ;;
  2038.         'Metacity') if [ "`gconftool-2 -g /apps/metacity/general/theme`" ]; then Win_theme="$(gconftool-2 -g /apps/metacity/general/theme)"; fi ;;
  2039.         'monsterwm') Win_theme="Not Applicable";;
  2040.         'Musca') Win_theme="Not Applicable";;
  2041.         'Notion') Win_theme="Not Applicable";;
  2042.         'OpenBox'|'Openbox')
  2043.             if [ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml ]; then
  2044.                 Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml)";
  2045.             elif [[ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml && $DE == "LXDE" ]]; then
  2046.                 Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml)";
  2047.             fi
  2048.         ;;
  2049.         'PekWM') if [ -f $HOME/.pekwm/config ]; then Win_theme="$(awk -F"/" '/Theme/ {gsub(/\"/,""); print $NF}' $HOME/.pekwm/config)"; fi;;
  2050.         'Ratpoison') Win_theme="Not Applicable";;
  2051.         'Sawfish') Win_theme="$(awk -F")" '/\(quote default-frame-style/{print $2}' $HOME/.sawfish/custom | sed 's/ (quote //')";;
  2052.         'ScrotWM') Win_theme="Not Applicable";;
  2053.         'SpectrWM') Win_theme="Not Applicable";;
  2054.         'swm') Win_theme="Not Applicable";;
  2055.         'subtle') Win_theme="Not Applicable";;
  2056.         'TWin')
  2057.             if [[ -z $TDE_CONFIG_DIR ]]; then
  2058.                 if type -p tde-config >/dev/null 2>&1; then
  2059.                     TDE_CONFIG_DIR=$(tde-config --localprefix)
  2060.                 fi
  2061.             fi
  2062.             if [[ -n $TDE_CONFIG_DIR ]]; then
  2063.                 TDE_CONFIG_DIR=${TDE_CONFIG_DIR%/}
  2064.                 if [[ -f $TDE_CONFIG_DIR/share/config/kcmthememanagerrc ]]; then
  2065.                     Win_theme=$(awk '/CurrentTheme=/ {gsub(/CurrentTheme=/,"",$0); print $0; exit}' $TDE_CONFIG_DIR/share/config/kcmthememanagerrc)
  2066.                 fi
  2067.                 if [[ -z $Win_theme ]]; then
  2068.                     Win_theme="Not Applicable"
  2069.                 fi
  2070.             fi
  2071.         ;;
  2072.         'WindowMaker') Win_theme="Not Applicable";;
  2073.         'WMFS') Win_theme="Not Applicable";;
  2074.         'wmii') Win_theme="Not Applicable";;
  2075.         'Xfwm4') if [ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml ]; then Win_theme="$(xfconf-query -c xfwm4 -p /general/theme)"; fi;;
  2076.         'XMonad') Win_theme="Not Applicable";;
  2077.     esac
  2078.     if [[ "${distro}" == "Mac OS X" ]]; then
  2079.         themeNumber="$(defaults read NSGlobalDomain AppleAquaColorVariant 2>/dev/null)"
  2080.         if [ "${themeNumber}" == "1" ] || [ "${themeNumber}x" == "x" ]; then
  2081.             Win_theme="Blue"
  2082.         else
  2083.             Win_theme="Graphite"
  2084.         fi
  2085.     elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  2086.         if [ "${WM}" == "Blackbox" ]; then
  2087.             if [ "${distro}" == "Msys" ]; then
  2088.                 Blackbox_loc=$(reg query 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' //v 'Shell')
  2089.             else
  2090.                 Blackbox_loc=$(reg query 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' /v 'Shell')
  2091.             fi
  2092.             Blackbox_loc="$(echo ${Blackbox_loc} | sed 's/.*REG_SZ//' | sed -e 's/^[ \t]*//' | sed 's/.\{4\}$//')"
  2093.             Win_theme=$(cat "${Blackbox_loc}.rc" | grep "session.styleFile" | sed 's/ //g' | sed 's/session\.styleFile://g' | sed 's/.*\\//g')
  2094.         else
  2095.             if [[ "${distro}" == "Msys" ]]; then
  2096.                 themeFile="$(reg query 'HKCU\Software\Microsoft\Windows\CurrentVersion\Themes' //v 'CurrentTheme')"
  2097.             else
  2098.                 themeFile="$(reg query 'HKCU\Software\Microsoft\Windows\CurrentVersion\Themes' /v 'CurrentTheme')"
  2099.             fi
  2100.             Win_theme=$(echo $themeFile| awk -F"\\" '{print $NF}' | sed 's|\.theme$||')
  2101.         fi
  2102.     fi
  2103.  
  2104.     verboseOut "Finding window manager theme...found as '$Win_theme'"
  2105. }
  2106. # WM Theme Detection - END
  2107.  
  2108. # GTK Theme\Icon\Font Detection - BEGIN
  2109. detectgtk () {
  2110.     gtk2Theme="Not Found"
  2111.     gtk3Theme="Not Found"
  2112.     gtkIcons="Not Found"
  2113.     gtkFont="Not Found"
  2114.     # Font detection (OS X)
  2115.     if [[ ${distro} == "Mac OS X" ]]; then
  2116.         gtk2Theme="Not Applicable"
  2117.         gtk3Theme="Not Applicable"
  2118.         gtkIcons="Not Applicable"
  2119.         if ps -U ${USER} | grep [F]inder >/dev/null 2>&1; then
  2120.             if [[ ${TERM_PROGRAM} == "iTerm.app" ]] && [ -f ~/Library/Preferences/com.googlecode.iterm2.plist ]; then
  2121.                 # iTerm2
  2122.  
  2123.                 iterm2_theme_uuid=$(defaults read com.googlecode.iTerm2 "Default Bookmark Guid")
  2124.  
  2125.                 OLD_IFS=$IFS
  2126.                 IFS=$'\n'
  2127.                 iterm2_theme_info=($(defaults read com.googlecode.iTerm2 "New Bookmarks" | grep -e Guid -e "Normal Font"))
  2128.                 IFS=$OLD_IFS
  2129.  
  2130.                 for i in $(seq 0 $((${#iterm2_theme_info[*]}/2-1))); do
  2131.                     found_uuid=$(str1=${iterm2_theme_info[$i*2]};echo ${str1:16:${#str1}-16-2})
  2132.                     if [[ $found_uuid == $iterm2_theme_uuid ]]; then
  2133.                         gtkFont=$(str2=${iterm2_theme_info[$i*2+1]};echo ${str2:25:${#str2}-25-2})
  2134.                         break
  2135.                     fi
  2136.                 done
  2137.             else
  2138.                 # Terminal.app
  2139.  
  2140.                 termapp_theme_name=$(defaults read com.apple.Terminal "Default Window Settings")
  2141.  
  2142.                 OLD_IFS=$IFS
  2143.                 IFS=$'\n'
  2144.                 termapp_theme_info=($(defaults read com.apple.Terminal "Window Settings" | grep -e "name = " -e "Font = "))
  2145.                 IFS=$OLD_IFS
  2146.  
  2147.                 for i in $(seq 0 $((${#termapp_theme_info[*]}/2-1))); do
  2148.                     found_name=$(str1=${termapp_theme_info[$i*2+1]};echo ${str1:15:${#str1}-15-1})
  2149.                     if [[ $found_name == $termapp_theme_name ]]; then
  2150.                         gtkFont=$(str2=${termapp_theme_info[$i*2]};echo ${str2:288:${#str2}-288})
  2151.                         gtkFont=$(echo ${gtkFont%%[dD]2*;} | xxd -r -p)
  2152.                         break
  2153.                     fi
  2154.                 done
  2155.             fi
  2156.         fi
  2157.     else
  2158.         case $DE in
  2159.             'KDE'*) # Desktop Environment found as "KDE"
  2160.                 if type - p kde4-config >/dev/null 2>&1; then
  2161.                     KDE_CONFIG_DIR=$(kde4-config --localprefix)
  2162.                     if [[ -d ${KDE_CONFIG_DIR} ]]; then
  2163.                         if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  2164.                             KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  2165.                         fi
  2166.                     fi
  2167.                 elif type -p kde5-config >/dev/null 2>&1; then
  2168.                     KDE_CONFIG_DIR=$(kde5-config --localprefix)
  2169.                     if [[ -d ${KDE_CONFIG_DIR} ]]; then
  2170.                         if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  2171.                             KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  2172.                         fi
  2173.                     fi
  2174.                 elif type -p kde-config >/dev/null 2>&1; then
  2175.                     KDE_CONFIG_DIR=$(kde-config --localprefix)
  2176.                     if [[ -d ${KDE_CONFIG_DIR} ]]; then
  2177.                         if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  2178.                             KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  2179.                         fi
  2180.                     fi
  2181.                 fi
  2182.  
  2183.                 if [[ -n ${KDE_CONFIG_FILE} ]]; then
  2184.                     if grep -q "widgetStyle=" "${KDE_CONFIG_FILE}"; then
  2185.                         gtk2Theme=$(awk -F"=" '/widgetStyle=/ {print $2}' "${KDE_CONFIG_FILE}")
  2186.                     elif grep -q "colorScheme=" "${KDE_CONFIG_FILE}"; then
  2187.                         gtk2Theme=$(awk -F"=" '/colorScheme=/ {print $2}' "${KDE_CONFIG_FILE}")
  2188.                     fi
  2189.  
  2190.                     if grep -q "Theme=" "${KDE_CONFIG_FILE}"; then
  2191.                         gtkIcons=$(awk -F"=" '/Theme=/ {print $2}' "${KDE_CONFIG_FILE}")
  2192.                     fi
  2193.  
  2194.                     if grep -q "Font=" "${KDE_CONFIG_FILE}"; then
  2195.                         gtkFont=$(awk -F"=" '/font=/ {print $2}' "${KDE_CONFIG_FILE}")
  2196.                     fi
  2197.                 fi
  2198.  
  2199.                 if [[ -f $HOME/.gtkrc-2.0 ]]; then
  2200.                     gtk2Theme=$(grep '^gtk-theme-name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  2201.                     gtk2Theme=${gtk2Theme//\"/}
  2202.                     gtkIcons=$(grep '^gtk-icon-theme-name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  2203.                     gtkIcons=${gtkIcons//\"/}
  2204.                     gtkFont=$(grep 'font_name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  2205.                     gtkFont=${gtkFont//\"/}
  2206.                 fi
  2207.  
  2208.                 if [[ -f $HOME/.config/gtk-3.0/settings.ini ]]; then
  2209.                     gtk3Theme=$(grep '^gtk-theme-name=' $HOME/.config/gtk-3.0/settings.ini | awk -F'=' '{print $2}')
  2210.                 fi
  2211.             ;;
  2212.             'Cinnamon'*) # Desktop Environment found as "Cinnamon"
  2213.                 if type -p gsettings >/dev/null 2>&1; then
  2214.                     gtk3Theme=$(gsettings get org.cinnamon.desktop.interface gtk-theme)
  2215.                     gtk3Theme=${gtk3Theme//"'"}
  2216.                     gtk2Theme=${gtk3Theme}
  2217.  
  2218.                     gtkIcons=$(gsettings get org.cinnamon.desktop.interface icon-theme)
  2219.                     gtkIcons=${gtkIcons//"'"}
  2220.                     gtkFont=$(gsettings get org.cinnamon.desktop.interface font-name)
  2221.                     gtkFont=${gtkFont//"'"}
  2222.                     if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  2223.                 fi
  2224.             ;;
  2225.             'GNOME'*|'Unity'*|'Budgie') # Desktop Environment found as "GNOME"
  2226.                 if type -p gsettings >/dev/null 2>&1; then
  2227.                     gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme)
  2228.                     gtk3Theme=${gtk3Theme//"'"}
  2229.                     gtk2Theme=${gtk3Theme}
  2230.                     gtkIcons=$(gsettings get org.gnome.desktop.interface icon-theme)
  2231.                     gtkIcons=${gtkIcons//"'"}
  2232.                     gtkFont=$(gsettings get org.gnome.desktop.interface font-name)
  2233.                     gtkFont=${gtkFont//"'"}
  2234.                     if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  2235.                 elif type -p gconftool-2 >/dev/null 2>&1; then
  2236.                     gtk2Theme=$(gconftool-2 -g /desktop/gnome/interface/gtk_theme)
  2237.                     gtkIcons=$(gconftool-2 -g /desktop/gnome/interface/icon_theme)
  2238.                     gtkFont=$(gconftool-2 -g /desktop/gnome/interface/font_name)
  2239.                     if [ "$background_detect" == "1" ]; then
  2240.                         gtkBackgroundFull=$(gconftool-2 -g /desktop/gnome/background/picture_filename)
  2241.                         gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  2242.                     fi
  2243.                 fi
  2244.             ;;
  2245.             'MATE'*) # MATE desktop environment
  2246.                 #if type -p gsettings >/dev/null 2&>1; then
  2247.                 gtk3Theme=$(gsettings get org.mate.interface gtk-theme)
  2248.                 # gtk3Theme=${gtk3Theme//"'"}
  2249.                 gtk2Theme=${gtk3Theme}
  2250.                 gtkIcons=$(gsettings get org.mate.interface icon-theme)
  2251.                 gtkIcons=${gtkIcons//"'"}
  2252.                 gtkFont=$(gsettings get org.mate.interface font-name)
  2253.                 gtkFont=${gtkFont//"'"}
  2254.                 #fi
  2255.             ;;
  2256.             'Xfce'*) # Desktop Environment found as "Xfce"
  2257.                 if [ "$distro" == "BunsenLabs" ] ; then
  2258.                     gtk2Theme=$(awk -F'"' '/^gtk-theme/ {print $2}' $HOME/.gtkrc-2.0)
  2259.                     gtk3Theme=$(awk -F'=' '/^gtk-theme-name/ {print $2}' $HOME/.config/gtk-3.0/settings.ini)
  2260.                     gtkIcons=$(awk -F'"' '/^gtk-icon-theme/ {print $2}' $HOME/.gtkrc-2.0)
  2261.                     gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' $HOME/.gtkrc-2.0)
  2262.                 else
  2263.                     if type -p xfconf-query >/dev/null 2>&1; then
  2264.                         gtk2Theme=$(xfconf-query -c xsettings -p /Net/ThemeName)
  2265.                     fi
  2266.  
  2267.                     if type -p xfconf-query >/dev/null 2>&1; then
  2268.                         gtkIcons=$(xfconf-query -c xsettings -p /Net/IconThemeName)
  2269.                     fi
  2270.  
  2271.                     if type -p xfconf-query >/dev/null 2>&1; then
  2272.                         gtkFont=$(xfconf-query -c xsettings -p /Gtk/FontName)
  2273.                     fi
  2274.                 fi
  2275.             ;;
  2276.             'LXDE'*)
  2277.                 config_home="${XDG_CONFIG_HOME:-${HOME}/.config}"
  2278.                 if [ -f "$config_home/lxde/config" ]; then
  2279.                     lxdeconf="/lxde/config"
  2280.                 elif [ "$distro" == "Trisquel" ] || [ "$distro" == "FreeBSD" ]; then
  2281.                     lxdeconf=""
  2282.                 elif [ -f "$config_home/lxsession/Lubuntu/desktop.conf" ]; then
  2283.                     lxdeconf="/lxsession/Lubuntu/desktop.conf"
  2284.                 else
  2285.                     lxdeconf="/lxsession/LXDE/desktop.conf"
  2286.                 fi
  2287.  
  2288.                 if grep -q "sNet\/ThemeName" "${config_home}${lxdeconf}" 2>/dev/null; then
  2289.                     gtk2Theme=$(awk -F'=' '/sNet\/ThemeName/ {print $2}' ${config_home}${lxdeconf})
  2290.                 fi
  2291.  
  2292.                 if grep -q IconThemeName "${config_home}${lxdeconf}" 2>/dev/null; then
  2293.                     gtkIcons=$(awk -F'=' '/sNet\/IconThemeName/ {print $2}' ${config_home}${lxdeconf})
  2294.                 fi
  2295.  
  2296.                 if grep -q FontName "${config_home}${lxdeconf}" 2>/dev/null; then
  2297.                     gtkFont=$(awk -F'=' '/sGtk\/FontName/ {print $2}' ${config_home}${lxdeconf})
  2298.                 fi
  2299.             ;;
  2300.  
  2301.             # /home/me/.config/rox.sourceforge.net/ROX-Session/Settings.xml
  2302.  
  2303.             *)  # Lightweight or No DE Found
  2304.                 if [ -f "$HOME/.gtkrc-2.0" ]; then
  2305.                     if grep -q gtk-theme $HOME/.gtkrc-2.0; then
  2306.                         gtk2Theme=$(awk -F'"' '/^gtk-theme/ {print $2}' $HOME/.gtkrc-2.0)
  2307.                     fi
  2308.  
  2309.                     if grep -q icon-theme $HOME/.gtkrc-2.0; then
  2310.                         gtkIcons=$(awk -F'"' '/^gtk-icon-theme/ {print $2}' $HOME/.gtkrc-2.0)
  2311.                     fi
  2312.  
  2313.                     if grep -q font $HOME/.gtkrc-2.0; then
  2314.                         gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' $HOME/.gtkrc-2.0)
  2315.                     fi
  2316.                 fi
  2317.                 # $HOME/.gtkrc.mine theme detect only
  2318.                 if [[ -f "$HOME/.gtkrc.mine" ]]; then
  2319.                     minegtkrc="$HOME/.gtkrc.mine"
  2320.                 elif [[ -f "$HOME/.gtkrc-2.0.mine" ]]; then
  2321.                     minegtkrc="$HOME/.gtkrc-2.0.mine"
  2322.                 fi
  2323.                 if [ -f "$minegtkrc" ]; then
  2324.                     if grep -q "^include" "$minegtkrc"; then
  2325.                         gtk2Theme=$(grep '^include.*gtkrc' "$minegtkrc" | awk -F "/" '{ print $5 }')
  2326.                     fi
  2327.                     if grep -q "^gtk-icon-theme-name" "$minegtkrc"; then
  2328.                         gtkIcons=$(grep '^gtk-icon-theme-name' "$minegtkrc" | awk -F '"' '{print $2}')
  2329.                     fi
  2330.                 fi
  2331.                 # /etc/gtk-2.0/gtkrc compatability
  2332.                 if [[ -f /etc/gtk-2.0/gtkrc && ! -f "$HOME/.gtkrc-2.0" && ! -f "$HOME/.gtkrc.mine" && ! -f "$HOME/.gtkrc-2.0.mine" ]]; then
  2333.                     if grep -q gtk-theme-name /etc/gtk-2.0/gtkrc; then
  2334.                         gtk2Theme=$(awk -F'"' '/^gtk-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  2335.                     fi
  2336.                     if grep -q gtk-fallback-theme-name /etc/gtk-2.0/gtkrc  && ! [ "x$gtk2Theme" = "x" ]; then
  2337.                         gtk2Theme=$(awk -F'"' '/^gtk-fallback-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  2338.                     fi
  2339.  
  2340.                     if grep -q icon-theme /etc/gtk-2.0/gtkrc; then
  2341.                         gtkIcons=$(awk -F'"' '/^icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  2342.                     fi
  2343.                     if  grep -q gtk-fallback-icon-theme /etc/gtk-2.0/gtkrc  && ! [ "x$gtkIcons" = "x" ]; then
  2344.                         gtkIcons=$(awk -F'"' '/^gtk-fallback-icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  2345.                     fi
  2346.  
  2347.                     if grep -q font /etc/gtk-2.0/gtkrc; then
  2348.                         gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  2349.                     fi
  2350.                 fi
  2351.  
  2352.                 # EXPERIMENTAL gtk3 Theme detection
  2353.                 if [ -f "$HOME/.config/gtk-3.0/settings.ini" ]; then
  2354.                     if grep -q gtk-theme-name $HOME/.config/gtk-3.0/settings.ini; then
  2355.                         gtk3Theme=$(awk -F'=' '/^gtk-theme-name/ {print $2}' $HOME/.config/gtk-3.0/settings.ini)
  2356.                     fi
  2357.                 fi
  2358.  
  2359.                 # Proper gtk3 Theme detection
  2360.                 #if type -p gsettings >/dev/null 2>&1; then
  2361.                 #   gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme 2>/dev/null)
  2362.                 #   gtk3Theme=${gtk3Theme//"'"}
  2363.                 #fi
  2364.  
  2365.                 # ROX-Filer icon detect only
  2366.                 if [ -a "${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options" ]; then
  2367.                     gtkIcons=$(awk -F'[>,<]' '/icon_theme/ {print $3}' ${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options)
  2368.                 fi
  2369.  
  2370.                 # E17 detection
  2371.                 if [ $E_ICON_THEME ]; then
  2372.                     gtkIcons=${E_ICON_THEME}
  2373.                     gtk2Theme="Not available."
  2374.                     gtkFont="Not available."
  2375.                 fi
  2376.  
  2377.                 # Background Detection (feh, nitrogen)
  2378.                 if [ "$background_detect" == "1" ]; then
  2379.                     if [ -a $HOME/.fehbg ]; then
  2380.                         gtkBackgroundFull=$(awk -F"'" '/feh --bg/{print $2}' $HOME/.fehbg 2>/dev/null)
  2381.                         gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  2382.                     elif [ -a ${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg ]; then
  2383.                         gtkBackground=$(awk -F"/" '/file=/ {print $NF}' ${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg)
  2384.                     fi
  2385.                 fi
  2386.  
  2387.                 if [[ "$distro" == "Cygwin" || "$distro" == "Msys" ]]; then
  2388.                     if [ "$gtkFont" == "Not Found" ]; then
  2389.                         if [ -f "$HOME/.minttyrc" ]; then
  2390.                             gtkFont="$(grep '^Font=.*' "$HOME/.minttyrc" | grep -o '[0-9A-z ]*$')"
  2391.                         fi
  2392.                     fi
  2393.                 fi
  2394.             ;;
  2395.         esac
  2396.     fi
  2397.     verboseOut "Finding GTK2 theme...found as '$gtk2Theme'"
  2398.     verboseOut "Finding GTK3 theme...found as '$gtk3Theme'"
  2399.     verboseOut "Finding icon theme...found as '$gtkIcons'"
  2400.     verboseOut "Finding user font...found as '$gtkFont'"
  2401.     [[ $gtkBackground ]] && verboseOut "Finding background...found as '$gtkBackground'"
  2402. }
  2403. # GTK Theme\Icon\Font Detection - END
  2404.  
  2405. # Android-specific detections
  2406. detectdroid () {
  2407.     distro_ver=$(getprop ro.build.version.release)
  2408.  
  2409.     hostname=$(getprop net.hostname)
  2410.  
  2411.     _device=$(getprop ro.product.device)
  2412.     _model=$(getprop ro.product.model)
  2413.     device="${_model} (${_device})"
  2414.  
  2415.     if [[ $(getprop ro.build.host) == "cyanogenmod" ]]; then
  2416.         rom=$(getprop ro.cm.version)
  2417.     else
  2418.         rom=$(getprop ro.build.display.id)
  2419.     fi
  2420.  
  2421.     baseband=$(getprop ro.baseband)
  2422.  
  2423.     cpu=$(grep '^Processor' /proc/cpuinfo)
  2424.     cpu=$(echo "$cpu" | sed 's/Processor.*: //')
  2425. }
  2426.  
  2427.  
  2428. #######################
  2429. # End Detection Phase
  2430. #######################
  2431.  
  2432. takeShot () {
  2433.     if [[ -z $screenCommand ]]; then
  2434.         shotfiles[1]=${shotfile}
  2435.         if [ "$distro" == "Mac OS X" ]; then
  2436.             displays="$(system_profiler SPDisplaysDataType | grep 'Resolution:' | wc -l | tr -d ' ')"
  2437.             for (( i=2; i<=$displays; i++))
  2438.             do
  2439.                 shotfiles[$i]="$(echo ${shotfile} | sed "s/\(.*\)\./\1_${i}./")"
  2440.             done
  2441.             printf "Taking shot in 3.. "; sleep 1; printf "2.. "; sleep 1; printf "1.. "; sleep 1; printf "0.\n"; screencapture -x ${shotfiles[@]} &> /dev/null
  2442.         else
  2443.             if type -p scrot >/dev/null 2>&1; then
  2444.                 scrot -cd3 "${shotfile}"
  2445.             else
  2446.                 errorOut "Cannot take screenshot! \`scrot' not in \$PATH"
  2447.             fi
  2448.         fi
  2449.         if [ -f "${shotfile}" ]; then
  2450.             verboseOut "Screenshot saved at '${shotfiles[@]}'"
  2451.             if [[ "${upload}" == "1" ]]; then
  2452.                 if type -p curl >/dev/null 2>&1; then
  2453.                     printf "${bold}==>${c0}  Uploading your screenshot now..."
  2454.                     case "${uploadLoc}" in
  2455.                         'teknik')
  2456.                             baseurl='https://u.teknik.io'
  2457.                             uploadurl='https://api.teknik.io/upload/post'
  2458.                             ret=$(curl -sf -F file="@${shotfiles[@]}" ${uploadurl})
  2459.                             desturl="${ret##*url\":\"}"
  2460.                             desturl="${desturl%%\"*}"
  2461.                             desturl="${desturl//\\}"
  2462.                         ;;
  2463.                         'mediacrush')
  2464.                             baseurl='https://mediacru.sh'
  2465.                             uploadurl='https://mediacru.sh/api/upload/file'
  2466.                             ret=$(curl -sf -F file="@${shotfiles[@]};type=image/png" ${uploadurl})
  2467.                             filehash=$(echo "${ret}" | grep "hash" | cut -d '"' -f4)
  2468.                             desturl="${baseurl}/${filehash}"
  2469.                         ;;
  2470.                         'imgur')
  2471.                             baseurl='http://imgur.com'
  2472.                             uploadurl='http://imgur.com/upload'
  2473.                             ret=$(curl -sf -F file="@${shotfiles[@]}" ${uploadurl})
  2474.                             filehash="${ret##*hash\":\"}"
  2475.                             filehash="${filehash%%\"*}"
  2476.                             desturl="${baseurl}/${filehash}"
  2477.                         ;;
  2478.                         'hmp')
  2479.                             baseurl='http://i.hmp.me/m'
  2480.                             uploadurl='http://hmp.me/ap/?uf=1'
  2481.                             ret=$(curl -sf -F a="@${shotfiles[@]};type=image/png" ${uploadurl})
  2482.                             desturl="${ret##*img_path\":\"}"
  2483.                             desturl="${desturl%%\"*}"
  2484.                             desturl="${desturl//\\}"
  2485.                         ;;
  2486.                         'local-example')
  2487.                             baseurl="http://www.example.com"
  2488.                             serveraddr="www.example.com"
  2489.                             scptimeout="20"
  2490.                             serverdir="/path/to/directory"
  2491.                             scp -qo ConnectTimeout="${scptimeout}" "${shotfiles[@]}" "${serveraddr}:${serverdir}"
  2492.                             desturl="${baseurl}/${shotfile}"
  2493.                         ;;
  2494.                     esac
  2495.                     printf "your screenshot can be viewed at ${desturl}\n"
  2496.                 else
  2497.                     errorOut "Cannot upload screenshot! \`curl' not in \$PATH"
  2498.                 fi
  2499.             fi
  2500.         else
  2501.             if type -p scrot >/dev/null 2>&1; then
  2502.                 errorOut "ERROR: Problem saving screenshot to ${shotfiles[@]}"
  2503.             fi
  2504.         fi
  2505.     else
  2506.         $screenCommand
  2507.     fi
  2508. }
  2509.  
  2510.  
  2511.  
  2512. asciiText () {
  2513. # Distro logos and ASCII outputs
  2514.     if [[ "$asc_distro" ]]; then myascii="${asc_distro}"
  2515.     elif [[ "$art" ]]; then myascii="custom"
  2516.     elif [[ "$fake_distro" ]]; then myascii="${fake_distro}"
  2517.     else myascii="${distro}"; fi
  2518.     case ${myascii} in
  2519.         "custom") source "$art" ;;
  2520.  
  2521.         "Alpine Linux")
  2522.             if [[ "$no_color" != "1" ]]; then
  2523.                 c1=$(getColor 'light blue') # Light
  2524.                 c2=$(getColor 'blue') # Dark
  2525.             fi
  2526.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2527.             startline="0"
  2528.             logowidth="34"
  2529.             fulloutput=(
  2530. "${c1}        ................          %s"
  2531. "${c1}       ∴::::::::::::::::∴         %s"
  2532. "${c1}      ∴::::::::::::::::::∴        %s"
  2533. "${c1}     ∴::::::::::::::::::::∴       %s"
  2534. "${c1}    ∴:::::::. :::::':::::::∴      %s"
  2535. "${c1}   ∴:::::::.   ;::; ::::::::∴     %s"
  2536. "${c1}  ∴::::::;      ∵     :::::::∴    %s"
  2537. "${c1} ∴:::::.     .         .::::::∴   %s"
  2538. "${c1} ::::::     :::.    .    ::::::   %s"
  2539. "${c1} ∵::::     ::::::.  ::.   ::::∵   %s"
  2540. "${c1}  ∵:..   .:;::::::: :::.  :::∵    %s"
  2541. "${c1}   ∵::::::::::::::::::::::::∵     %s"
  2542. "${c1}    ∵::::::::::::::::::::::∵      %s"
  2543. "${c1}     ∵::::::::::::::::::::∵       %s"
  2544. "${c1}      ::::::::::::::::::::        %s"
  2545. "${c1}       ∵::::::::::::::::∵         %s")
  2546.         ;;
  2547.  
  2548.         "Arch Linux - Old")
  2549.             if [[ "$no_color" != "1" ]]; then
  2550.                 c1=$(getColor 'white') # White
  2551.                 c2=$(getColor 'light blue') # Light Blue
  2552.             fi
  2553.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2554.             startline="0"
  2555.             logowidth="37"
  2556.             fulloutput=(
  2557. "${c1}              __                     %s"
  2558. "${c1}          _=(SDGJT=_                 %s"
  2559. "${c1}        _GTDJHGGFCVS)                %s"
  2560. "${c1}       ,GTDJGGDTDFBGX0               %s"
  2561. "${c1}      JDJDIJHRORVFSBSVL${c2}-=+=,_        %s"
  2562. "${c1}     IJFDUFHJNXIXCDXDSV,${c2}  \"DEBL      %s"
  2563. "${c1}    [LKDSDJTDU=OUSCSBFLD.${c2}   '?ZWX,   %s"
  2564. "${c1}   ,LMDSDSWH'     \`DCBOSI${c2}     DRDS], %s"
  2565. "${c1}   SDDFDFH'         !YEWD,${c2}   )HDROD  %s"
  2566. "${c1}  !KMDOCG            &GSU|${c2}\_GFHRGO\'  %s"
  2567. "${c1}  HKLSGP'${c2}           __${c1}\TKM0${c2}\GHRBV)'  %s"
  2568. "${c1} JSNRVW'${c2}       __+MNAEC${c1}\IOI,${c2}\BN'     %s"
  2569. "${c1} HELK['${c2}    __,=OFFXCBGHC${c1}\FD)         %s"
  2570. "${c1} ?KGHE ${c2}\_-#DASDFLSV='${c1}    'EF         %s"
  2571. "${c1} 'EHTI                    !H         %s"
  2572. "${c1}  \`0F'                    '!         %s"
  2573. "${c1}                                     %s"
  2574. "${c1}                                     %s")
  2575.         ;;
  2576.  
  2577.         "Arch Linux")
  2578.             if [[ "$no_color" != "1" ]]; then
  2579.                 c1=$(getColor 'green') # Light
  2580.                 c3=$(getColor 'red') # Light
  2581.                 c4=$(getColor 'yellow') # Light
  2582.                 c5=$(getColor 'blue') # Light  
  2583.                 c2=$(getColor 'purple') # Dark
  2584.             fi
  2585.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2586.             startline="1"
  2587.             logowidth="38"
  2588.             fulloutput=(
  2589. "${c1}                     "
  2590. "${c1}        %s"
  2591. "${c2}   .d88b.d88b.    %s"
  2592. "${c5}   88888888888    %s"
  2593. "${c3}   'Y8888888Y'    %s"
  2594. "${c4}     'Y888Y'      %s"
  2595. "${c1}       'Y'        %s"
  2596. "${c1}                  %s"
  2597. "${c1}                  %s")
  2598.         ;;
  2599.  
  2600.         "blackPanther OS")
  2601.             if [[ "$no_color" != "1" ]]; then
  2602.                 c1=$(getColor 'yellow') # Light Yellow
  2603.                 c2=$(getColor 'white') # Bold Red
  2604.                 c3=$(getColor 'light red') # Light Red
  2605.                 c4=$(getColor 'dark grey')
  2606.             fi
  2607.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  2608.             startline="0"
  2609.             logowidth="38"
  2610.             fulloutput=(
  2611. "${c4}                oxoo              %s"
  2612. "${c4}           ooooooxxxxxxxx         %s"
  2613. "${c4}      oooooxxxxxxxxxx${c3}O${c1}o.${c4}xx        %s"
  2614. "${c4}    oo# ###xxxxxxxxxxx###xxx      %s"
  2615. "${c4}  oo .oooooxxxxxxxxx##   #oxx     %s"
  2616. "${c4} o  ##xxxxxxxxx###x##   .o###     %s"
  2617. "${c4}  .oxxxxxxxx###   ox  .           %s"
  2618. "${c4} ooxxxx#xxxxxx     o##            %s"
  2619. "${c4}.oxx# #oxxxxx#                    %s"
  2620. "${c4}ox#  ooxxxxxx#                  o %s"
  2621. "${c4}x#  ooxxxxxxxx           ox     ox%s"
  2622. "${c4}x# .oxxxxxxxxxxx        o#     oox%s"
  2623. "${c4}#  oxxxxx##xxxxxxooooooo#      o# %s"
  2624. "${c4}  .oxxxxxooxxxxxx######       ox# %s"
  2625. "${c4}  oxxxxxo oxxxxxxxx         oox## %s"
  2626. "${c4}  oxxxxxx  oxxxxxxxxxo   oooox##  %s"
  2627. "${c4}   o#xxxxx  oxxxxxxxxxxxxxxxx##   %s"
  2628. "${c4}    ##xxxxx  o#xxxxxxxxxxxxx##    %s"
  2629. "${c4}      ##xxxx   o#xxxxxxxxx##      %s"
  2630. "${c4}         ###xo.  o##xxx###        %s"
  2631. "${c4}                                  %s")
  2632.                 ;;
  2633.  
  2634.         "Mint")
  2635.             if [[ "$no_color" != "1" ]]; then
  2636.                 c1=$(getColor 'white') # White
  2637.                 c2=$(getColor 'light green') # Bold Green
  2638.             fi
  2639.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2640.             startline="0"
  2641.             logowidth="38"
  2642.             fulloutput=(
  2643. "${c2}                                      %s"
  2644. "${c2} MMMMMMMMMMMMMMMMMMMMMMMMMmds+.       %s"
  2645. "${c2} MMm----::-://////////////oymNMd+\`    %s"
  2646. "${c2} MMd      ${c1}/++                ${c2}-sNMd:   %s"
  2647. "${c2} MMNso/\`  ${c1}dMM    \`.::-. .-::.\` ${c2}.hMN:  %s"
  2648. "${c2} ddddMMh  ${c1}dMM   :hNMNMNhNMNMNh: ${c2}\`NMm  %s"
  2649. "${c2}     NMm  ${c1}dMM  .NMN/-+MMM+-/NMN\` ${c2}dMM  %s"
  2650. "${c2}     NMm  ${c1}dMM  -MMm  \`MMM   dMM. ${c2}dMM  %s"
  2651. "${c2}     NMm  ${c1}dMM  -MMm  \`MMM   dMM. ${c2}dMM  %s"
  2652. "${c2}     NMm  ${c1}dMM  .mmd  \`mmm   yMM. ${c2}dMM  %s"
  2653. "${c2}     NMm  ${c1}dMM\`  ..\`   ...   ydm. ${c2}dMM  %s"
  2654. "${c2}     hMM- ${c1}+MMd/-------...-:sdds  ${c2}dMM  %s"
  2655. "${c2}     -NMm- ${c1}:hNMNNNmdddddddddy/\`  ${c2}dMM  %s"
  2656. "${c2}      -dMNs-${c1}\`\`-::::-------.\`\`    ${c2}dMM  %s"
  2657. "${c2}       \`/dMNmy+/:-------------:/yMMM  %s"
  2658. "${c2}          ./ydNMMMMMMMMMMMMMMMMMMMMM  %s"
  2659. "${c2}             \.MMMMMMMMMMMMMMMMMMM    %s"
  2660. "${c2}                                      %s")
  2661.         ;;
  2662.  
  2663.         "LMDE")
  2664.             if [[ "$no_color" != "1" ]]; then
  2665.                 c1=$(getColor 'white') # White
  2666.                 c2=$(getColor 'light green') # Bold Green
  2667.             fi
  2668.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2669.             startline="0"
  2670.             logowidth="31"
  2671.             fulloutput=(
  2672. "${c1}          \`.-::---..           %s"
  2673. "${c2}       .:++++ooooosssoo:.      %s"
  2674. "${c2}     .+o++::.      \`.:oos+.    %s"
  2675. "${c2}    :oo:.\`             -+oo${c1}:   %s"
  2676. "${c2}  ${c1}\`${c2}+o/\`    .${c1}::::::${c2}-.    .++-${c1}\`  %s"
  2677. "${c2} ${c1}\`${c2}/s/    .yyyyyyyyyyo:   +o-${c1}\`  %s"
  2678. "${c2} ${c1}\`${c2}so     .ss       ohyo\` :s-${c1}:  %s"
  2679. "${c2} ${c1}\`${c2}s/     .ss  h  m  myy/ /s\`${c1}\`  %s"
  2680. "${c2} \`s:     \`oo  s  m  Myy+-o:\`   %s"
  2681. "${c2} \`oo      :+sdoohyoydyso/.     %s"
  2682. "${c2}  :o.      .:////////++:       %s"
  2683. "${c2}  \`/++        ${c1}-:::::-          %s"
  2684. "${c2}   ${c1}\`${c2}++-                        %s"
  2685. "${c2}    ${c1}\`${c2}/+-                       %s"
  2686. "${c2}      ${c1}.${c2}+/.                     %s"
  2687. "${c2}        ${c1}.${c2}:+-.                  %s"
  2688. "${c2}           \`--.\`\`              %s"
  2689. "${c2}                               %s")
  2690.         ;;
  2691.  
  2692.         "Ubuntu")
  2693.             if [[ "$no_color" != "1" ]]; then
  2694.                 c1=$(getColor 'white') # White
  2695.                 c2=$(getColor 'light red') # Light Red
  2696.                 c3=$(getColor 'yellow') # Bold Yellow
  2697.             fi
  2698.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  2699.             startline="0"
  2700.             logowidth="38"
  2701.             fulloutput=(
  2702. "${c2}                          ./+o+-      %s"
  2703. "${c1}                  yyyyy- ${c2}-yyyyyy+     %s"
  2704. "${c1}               ${c1}://+//////${c2}-yyyyyyo     %s"
  2705. "${c3}           .++ ${c1}.:/++++++/-${c2}.+sss/\`     %s"
  2706. "${c3}         .:++o:  ${c1}/++++++++/:--:/-     %s"
  2707. "${c3}        o:+o+:++.${c1}\`..\`\`\`.-/oo+++++/    %s"
  2708. "${c3}       .:+o:+o/.${c1}          \`+sssoo+/   %s"
  2709. "${c1}  .++/+:${c3}+oo+o:\`${c1}             /sssooo.  %s"
  2710. "${c1} /+++//+:${c3}\`oo+o${c1}               /::--:.  %s"
  2711. "${c1} \+/+o+++${c3}\`o++o${c2}               ++////.  %s"
  2712. "${c1}  .++.o+${c3}++oo+:\`${c2}             /dddhhh.  %s"
  2713. "${c3}       .+.o+oo:.${c2}          \`oddhhhh+   %s"
  2714. "${c3}        \+.++o+o\`${c2}\`-\`\`\`\`.:ohdhhhhh+    %s"
  2715. "${c3}         \`:o+++ ${c2}\`ohhhhhhhhyo++os:     %s"
  2716. "${c3}           .o:${c2}\`.syhhhhhhh/${c3}.oo++o\`     %s"
  2717. "${c2}               /osyyyyyyo${c3}++ooo+++/    %s"
  2718. "${c2}                   \`\`\`\`\` ${c3}+oo+++o\:    %s"
  2719. "${c3}                          \`oo++.      %s")
  2720.         ;;
  2721.  
  2722.         "KDE neon")
  2723.             if [[ "$no_color" != "1" ]]; then
  2724.                 c1=$(getColor 'light green') # Bold Green
  2725.             fi
  2726.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2727.             startline="0"
  2728.             logowidth="43"
  2729.             fulloutput=(
  2730. "${c1}              \`..---+/---..\`               %s"
  2731. "${c1}          \`---.\`\`   \`\`   \`.---.\`           %s"
  2732. "${c1}       .--.\`        \`\`        \`-:-.        %s"
  2733. "${c1}     \`:/:     \`.----//----.\`     :/-       %s"
  2734. "${c1}    .:.    \`---\`          \`--.\`    .:\`     %s"
  2735. "${c1}   .:\`   \`--\`                .:-    \`:.    %s"
  2736. "${c1}  \`/    \`:.      \`.-::-.\`      -:\`   \`/\`   %s"
  2737. "${c1}  /.    /.     \`:++++++++:\`     .:    .:   %s"
  2738. "${c1} \`/    .:     \`+++++++++++/      /\`   \`+\`  %s"
  2739. "${c1} /+\`   --     .++++++++++++\`     :.   .+:  %s"
  2740. "${c1} \`/    .:     \`+++++++++++/      /\`   \`+\`  %s"
  2741. "${c1}  /\`    /.     \`:++++++++:\`     .:    .:   %s"
  2742. "${c1}  ./    \`:.      \`.:::-.\`      -:\`   \`/\`   %s"
  2743. "${c1}   .:\`   \`--\`                .:-    \`:.    %s"
  2744. "${c1}    .:.    \`---\`          \`--.\`    .:\`     %s"
  2745. "${c1}     \`:/:     \`.----//----.\`     :/-       %s"
  2746. "${c1}       .-:.\`        \`\`        \`-:-.        %s"
  2747. "${c1}          \`---.\`\`   \`\`   \`.---.\`           %s"
  2748. "${c1}              \`..---+/---..\`               %s")
  2749.         ;;
  2750.  
  2751.         "Debian")
  2752.             if [[ "$no_color" != "1" ]]; then
  2753.                 c1=$(getColor 'white') # White
  2754.                 c2=$(getColor 'light red') # Light Red
  2755.             fi
  2756.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2757.             startline="0"
  2758.             logowidth="32"
  2759.             fulloutput=(
  2760. "${c1}         _,met\$\$\$\$\$gg.          %s"
  2761. "${c1}      ,g\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$P.       %s"
  2762. "${c1}    ,g\$\$P\"\"       \"\"\"Y\$\$.\".     %s"
  2763. "${c1}   ,\$\$P'              \`\$\$\$.     %s"
  2764. "${c1}  ',\$\$P       ,ggs.     \`\$\$b:   %s"
  2765. "${c1}  \`d\$\$'     ,\$P\"\'   ${c2}.${c1}    \$\$\$    %s"
  2766. "${c1}   \$\$P      d\$\'     ${c2},${c1}    \$\$P    %s"
  2767. "${c1}   \$\$:      \$\$.   ${c2}-${c1}    ,d\$\$'    %s"
  2768. "${c1}   \$\$\;      Y\$b._   _,d\$P'     %s"
  2769. "${c1}   Y\$\$.    ${c2}\`.${c1}\`\"Y\$\$\$\$P\"'         %s"
  2770. "${c1}   \`\$\$b      ${c2}\"-.__              %s"
  2771. "${c1}    \`Y\$\$                        %s"
  2772. "${c1}     \`Y\$\$.                      %s"
  2773. "${c1}       \`\$\$b.                    %s"
  2774. "${c1}         \`Y\$\$b.                 %s"
  2775. "${c1}            \`\"Y\$b._             %s"
  2776. "${c1}                \`\"\"\"\"           %s"
  2777. "${c1}                                %s")
  2778.         ;;
  2779.  
  2780.         "Devuan")
  2781.             if [[ "$no_color" != "1" ]]; then
  2782.                 c1=$(getColor 'light purple') # Light purple
  2783.             fi
  2784.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2785.             startline="0"
  2786.             logowidth="36"
  2787.             fulloutput=(
  2788. "${c1}                                    %s"
  2789. "${c1}     ..,,;;;::;,..                  %s"
  2790. "${c1}             \`':ddd;:,.             %s"
  2791. "${c1}                   \`'dPPd:,.        %s"
  2792. "${c1}                       \`:b\$\$b\`.     %s"
  2793. "${c1}                          'P\$\$\$d\`   %s"
  2794. "${c1}                           .\$\$\$\$\$\`  %s"
  2795. "${c1}                           ;\$\$\$\$\$P  %s"
  2796. "${c1}                        .:P\$\$\$\$\$\$\`  %s"
  2797. "${c1}                    .,:b\$\$\$\$\$\$\$;'   %s"
  2798. "${c1}               .,:dP\$\$\$\$\$\$\$\$b:'     %s"
  2799. "${c1}        .,:;db\$\$\$\$\$\$\$\$\$\$Pd'\`        %s"
  2800. "${c1}   ,db\$\$\$\$\$\$\$\$\$\$\$\$\$\$b:'\`            %s"
  2801. "${c1}  :\$\$\$\$\$\$\$\$\$\$\$\$b:'\`                 %s"
  2802. "${c1}   \`\$\$\$\$\$bd:''\`                     %s"
  2803. "${c1}     \`'''\`                          %s"
  2804. "${c1}                                    %s")
  2805.         ;;
  2806.  
  2807.         "Raspbian")
  2808.             if [[ "$no_color" != "1" ]]; then
  2809.                 c1=$(getColor 'light green') # Light Green
  2810.                 c2=$(getColor 'light red') # Light Red
  2811.             fi
  2812.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2813.             startline="0"
  2814.             logowidth="32"
  2815.             fulloutput=(
  2816. "${c1}    .',;:cc;,'.    .,;::c:,,.   %s"
  2817. "${c1}   ,ooolcloooo:  'oooooccloo:   %s"
  2818. "${c1}   .looooc;;:ol  :oc;;:ooooo'   %s"
  2819. "${c1}     ;oooooo:      ,ooooooc.    %s"
  2820. "${c1}       .,:;'.       .;:;'.      %s"
  2821. "${c2}       .... ..'''''. ....       %s"
  2822. "${c2}     .''.   ..'''''.  ..''.     %s"
  2823. "${c2}     ..  .....    .....  ..     %s"
  2824. "${c2}    .  .'''''''  .''''''.  .    %s"
  2825. "${c2}  .'' .''''''''  .'''''''. ''.  %s"
  2826. "${c2}  '''  '''''''    .''''''  '''  %s"
  2827. "${c2}  .'    ........... ...    .'.  %s"
  2828. "${c2}    ....    ''''''''.   .''.    %s"
  2829. "${c2}    '''''.  ''''''''. .'''''    %s"
  2830. "${c2}     '''''.  .'''''. .'''''.    %s"
  2831. "${c2}      ..''.     .    .''..      %s"
  2832. "${c2}            .'''''''            %s"
  2833. "${c2}             ......             %s")
  2834.         ;;
  2835.  
  2836.         "CrunchBang")
  2837.             if [[ "$no_color" != "1" ]]; then
  2838.                 c1=$(getColor 'white') # White
  2839.             fi
  2840.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2841.             startline="0"
  2842.             logowidth="38"
  2843.             fulloutput=(
  2844. "${c1}                                      %s"
  2845. "${c1}         ███        ███          ███  %s"
  2846. "${c1}         ███        ███          ███  %s"
  2847. "${c1}         ███        ███          ███  %s"
  2848. "${c1}         ███        ███          ███  %s"
  2849. "${c1}  ████████████████████████████   ███  %s"
  2850. "${c1}  ████████████████████████████   ███  %s"
  2851. "${c1}         ███        ███          ███  %s"
  2852. "${c1}         ███        ███          ███  %s"
  2853. "${c1}         ███        ███          ███  %s"
  2854. "${c1}         ███        ███          ███  %s"
  2855. "${c1}  ████████████████████████████   ███  %s"
  2856. "${c1}  ████████████████████████████   ███  %s"
  2857. "${c1}         ███        ███               %s"
  2858. "${c1}         ███        ███               %s"
  2859. "${c1}         ███        ███          ███  %s"
  2860. "${c1}         ███        ███          ███  %s"
  2861. "${c1}                                      %s")
  2862.         ;;
  2863.  
  2864.         "CRUX")
  2865.             if [[ "$no_color" != "1" ]]; then
  2866.                 c1=$(getColor 'light cyan')
  2867.                 c2=$(getColor 'yellow')
  2868.                 c3=$(getColor 'white')
  2869.             fi
  2870.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  2871.             startline="1"
  2872.             logowidth="27"
  2873.             fulloutput=(""
  2874. "${c1}          odddd            "
  2875. "${c1}       oddxkkkxxdoo        %s"
  2876. "${c1}      ddcoddxxxdoool       %s"
  2877. "${c1}      xdclodod  olol       %s"
  2878. "${c1}      xoc  xdd  olol       %s"
  2879. "${c1}      xdc  ${c2}k00${c1}Okdlol       %s"
  2880. "${c1}      xxd${c2}kOKKKOkd${c1}ldd       %s"
  2881. "${c1}      xdco${c2}xOkdlo${c1}dldd       %s"
  2882. "${c1}      ddc:cl${c2}lll${c1}oooodo      %s"
  2883. "${c1}    odxxdd${c3}xkO000kx${c1}ooxdo    %s"
  2884. "${c1}   oxdd${c3}x0NMMMMMMWW0od${c1}kkxo  %s"
  2885. "${c1}  oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx  %s"
  2886. "${c1} docldkXW${c3}MMMMMMMWWN${c1}Odolco  %s"
  2887. "${c1} xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c  %s"
  2888. "${c2} xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l  %s"
  2889. "${c2} dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd  %s"
  2890. "${c2}  odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo  %s"
  2891. "${c2}    lodd${c1}dolccc${c2}ccox${c1}xoloo    %s"
  2892. "${c1}                           %s")
  2893.         ;;
  2894.  
  2895.         "Chrome OS")
  2896.             if [[ "$no_color" != "1" ]]; then
  2897.                 c1=$(getColor 'green') # Green
  2898.                 c2=$(getColor 'light red') # Light Red
  2899.                 c3=$(getColor 'yellow') # Bold Yellow
  2900.                 c4=$(getColor 'light blue') # Light Blue
  2901.                 c5=$(getColor 'white') # White
  2902.             fi
  2903.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; c5="${my_lcolor}"; fi
  2904.             startline="0"
  2905.             logowidth="38"
  2906.             fulloutput=(
  2907. "${c2}             .,:loool:,.              %s"
  2908. "${c2}         .,coooooooooooooc,.          %s"
  2909. "${c2}      .,lllllllllllllllllllll,.       %s"
  2910. "${c2}     ;ccccccccccccccccccccccccc;      %s"
  2911. "${c1}   '${c2}ccccccccccccccccccccccccccccc.    %s"
  2912. "${c1}  ,oo${c2}c::::::::okO${c5}000${c3}0OOkkkkkkkkkkk:   %s"
  2913. "${c1} .ooool${c2};;;;:x${c5}K0${c4}kxxxxxk${c5}0X${c3}K0000000000.  %s"
  2914. "${c1} :oooool${c2};,;O${c5}K${c4}ddddddddddd${c5}KX${c3}000000000d  %s"
  2915. "${c1} lllllool${c2};l${c5}N${c4}dllllllllllld${c5}N${c3}K000000000  %s"
  2916. "${c1} lllllllll${c2}o${c5}M${c4}dccccccccccco${c5}W${c3}K000000000  %s"
  2917. "${c1} ;cllllllllX${c5}X${c4}c:::::::::c${c5}0X${c3}000000000d  %s"
  2918. "${c1} .ccccllllllO${c5}Nk${c4}c;,,,;cx${c5}KK${c3}0000000000.  %s"
  2919. "${c1}  .cccccclllllxOO${c5}OOO${c1}Okx${c3}O0000000000;   %s"
  2920. "${c1}   .:ccccccccllllllllo${c3}O0000000OOO,    %s"
  2921. "${c1}     ,:ccccccccclllcd${c3}0000OOOOOOl.     %s"
  2922. "${c1}       '::ccccccccc${c3}dOOOOOOOkx:.       %s"
  2923. "${c1}         ..,::cccc${c3}xOOOkkko;.          %s"
  2924. "${c1}             ..,:${c3}dOkxl:.              %s")
  2925.         ;;
  2926.  
  2927.         "DesaOS")
  2928.             if [[ "$no_color" != "1" ]]; then
  2929.                 c1=$(getColor 'light green') #Hijau
  2930.             fi
  2931.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2932.             startline="0"
  2933.             logowidth="33"
  2934.             fulloutput=(
  2935. "${c1} ███████████████████████         %s"
  2936. "${c1} ███████████████████████         %s"
  2937. "${c1} ███████████████████████         %s"
  2938. "${c1} ███████████████████████         %s"
  2939. "${c1} ████████               ███████  %s"
  2940. "${c1} ████████               ███████  %s"
  2941. "${c1} ████████               ███████  %s"
  2942. "${c1} ████████               ███████  %s"
  2943. "${c1} ████████               ███████  %s"
  2944. "${c1} ████████               ███████  %s"
  2945. "${c1} ████████               ███████  %s"
  2946. "${c1} ██████████████████████████████  %s"
  2947. "${c1} ██████████████████████████████  %s"
  2948. "${c1} ████████████████████████        %s"
  2949. "${c1} ████████████████████████        %s"
  2950. "${c1} ████████████████████████        %s"
  2951. "                                      %s")
  2952.         ;;
  2953.  
  2954.         "Gentoo")
  2955.             if [[ "$no_color" != "1" ]]; then
  2956.                 c1=$(getColor 'white') # White
  2957.                 c2=$(getColor 'light purple') # Light Purple
  2958.             fi
  2959.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2960.             startline="0"
  2961.             logowidth="37"
  2962.             fulloutput=(
  2963. "${c2}         -/oyddmdhs+:.               %s"
  2964. "${c2}     -o${c1}dNMMMMMMMMNNmhy+${c2}-\`            %s"
  2965. "${c2}   -y${c1}NMMMMMMMMMMMNNNmmdhy${c2}+-          %s"
  2966. "${c2} \`o${c1}mMMMMMMMMMMMMNmdmmmmddhhy${c2}/\`       %s"
  2967. "${c2} om${c1}MMMMMMMMMMMN${c2}hhyyyo${c1}hmdddhhhd${c2}o\`     %s"
  2968. "${c2}.y${c1}dMMMMMMMMMMd${c2}hs++so/s${c1}mdddhhhhdm${c2}+\`   %s"
  2969. "${c2} oy${c1}hdmNMMMMMMMN${c2}dyooy${c1}dmddddhhhhyhN${c2}d.  %s"
  2970. "${c2}  :o${c1}yhhdNNMMMMMMMNNNmmdddhhhhhyym${c2}Mh  %s"
  2971. "${c2}    .:${c1}+sydNMMMMMNNNmmmdddhhhhhhmM${c2}my  %s"
  2972. "${c2}       /m${c1}MMMMMMNNNmmmdddhhhhhmMNh${c2}s:  %s"
  2973. "${c2}    \`o${c1}NMMMMMMMNNNmmmddddhhdmMNhs${c2}+\`   %s"
  2974. "${c2}  \`s${c1}NMMMMMMMMNNNmmmdddddmNMmhs${c2}/.     %s"
  2975. "${c2} /N${c1}MMMMMMMMNNNNmmmdddmNMNdso${c2}:\`       %s"
  2976. "${c2}+M${c1}MMMMMMNNNNNmmmmdmNMNdso${c2}/-          %s"
  2977. "${c2}yM${c1}MNNNNNNNmmmmmNNMmhs+/${c2}-\`            %s"
  2978. "${c2}/h${c1}MMNNNNNNNNMNdhs++/${c2}-\`               %s"
  2979. "${c2}\`/${c1}ohdmmddhys+++/:${c2}.\`                  %s"
  2980. "${c2}  \`-//////:--.                       %s")
  2981.         ;;
  2982.  
  2983.         "Funtoo")
  2984.             if [[ "$no_color" != "1" ]]; then
  2985.                 c1=$(getColor 'white') # White
  2986.                 c2=$(getColor 'light purple') # Light Purple
  2987.             fi
  2988.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2989.             startline="0"
  2990.             logowidth="52"
  2991.             fulloutput=(
  2992. "${c1}                                                    %s"
  2993. "${c1}                                                    %s"
  2994. "${c1}                                                    %s"
  2995. "${c1}                                                    %s"
  2996. "${c1}     _______               ____                     %s"
  2997. "${c1}    /MMMMMMM/             /MMMM| _____  _____       %s"
  2998. "${c1} __/M${c2}.MMM.${c1}M/_____________|M${c2}.M${c1}MM|/MMMMM\/MMMMM\      %s"
  2999. "${c1}|MMMM${c2}MM'${c1}MMMMMMMMMMMMMMMMMMM${c2}MM${c1}MMMM${c2}.MMMM..MMMM.${c1}MM\    %s"
  3000. "${c1}|MM${c2}MMMMMMM${c1}/m${c2}MMMMMMMMMMMMMMMMMMMMMM${c1}MMMM${c2}MM${c1}MMMM${c2}MM${c1}MM|   %s"
  3001. "${c1}|MMMM${c2}MM${c1}MMM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MMMMM${c2}\MMM${c1}MMM${c2}MM${c1}MMMM${c2}MM${c1}MMMM${c2}MM${c1}MM|   %s"
  3002. "${c1}  |MM${c2}MM${c1}MMM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MMM${c1}MMMM${c2}'MMMM''MMMM'${c1}MM/    %s"
  3003. "${c1}  |MM${c2}MM${c1}MMM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MMM${c1}MMM\MMMMM/\MMMMM/      %s"
  3004. "${c1}  |MM${c2}MM${c1}MMM${c2}MM${c1}MMMMMM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MMMMM'${c1}M|                  %s"
  3005. "${c1}  |MM${c2}MM${c1}MMM${c2}MMMMMMMMMMMMMMMMM MM'${c1}M/                   %s"
  3006. "${c1}  |MMMMMMMMMMMMMMMMMMMMMMMMMMMM/                    %s"
  3007. "${c1}                                                    %s"
  3008. "${c1}                                                    %s"
  3009. "${c1}                                                    %s")
  3010.         ;;
  3011.  
  3012.         "Kogaion")
  3013.             if [[ "$no_color" != "1" ]]; then
  3014.                 c1=$(getColor 'light blue') # Light Blue
  3015.             fi
  3016.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3017.             startline="0"
  3018.             logowidth="41"
  3019.             fulloutput=(
  3020. "${c1}                  ;;      ,;             %s"
  3021. "${c1}                 ;;;     ,;;             %s"
  3022. "${c1}               ,;;;;     ;;;;            %s"
  3023. "${c1}            ,;;;;;;;;    ;;;;            %s"
  3024. "${c1}           ;;;;;;;;;;;   ;;;;;           %s"
  3025. "${c1}          ,;;;;;;;;;;;;  ';;;;;,         %s"
  3026. "${c1}          ;;;;;;;;;;;;;;, ';;;;;;;       %s"
  3027. "${c1}          ;;;;;;;;;;;;;;;;;, ';;;;;      %s"
  3028. "${c1}      ;    ';;;;;;;;;;;;;;;;;;, ;;;      %s"
  3029. "${c1}      ;;;,  ';;;;;;;;;;;;;;;;;;;,;;      %s"
  3030. "${c1}      ;;;;;,  ';;;;;;;;;;;;;;;;;;,       %s"
  3031. "${c1}      ;;;;;;;;,  ';;;;;;;;;;;;;;;;,      %s"
  3032. "${c1}      ;;;;;;;;;;;;, ';;;;;;;;;;;;;;      %s"
  3033. "${c1}      ';;;;;;;;;;;;; ';;;;;;;;;;;;;      %s"
  3034. "${c1}       ';;;;;;;;;;;;;, ';;;;;;;;;;;      %s"
  3035. "${c1}        ';;;;;;;;;;;;;  ;;;;;;;;;;       %s"
  3036. "${c1}          ';;;;;;;;;;;; ;;;;;;;;         %s"
  3037. "${c1}              ';;;;;;;; ;;;;;;           %s"
  3038. "${c1}                 ';;;;; ;;;;             %s"
  3039. "${c1}                   ';;; ;;               %s")
  3040.         ;;
  3041.  
  3042.         "Fedora")
  3043.             if [[ "$no_color" != "1" ]]; then
  3044.                 c1=$(getColor 'white') # White
  3045.                 c2=$(getColor 'light blue') # Light Blue
  3046.             fi
  3047.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3048.             startline="0"
  3049.             logowidth="37"
  3050.             fulloutput=(
  3051. "${c2}           /:-------------:\         %s"
  3052. "${c2}        :-------------------::       %s"
  3053. "${c2}      :-----------${c1}/shhOHbmp${c2}---:\\     %s"
  3054. "${c2}    /-----------${c1}omMMMNNNMMD  ${c2}---:    %s"
  3055. "${c2}   :-----------${c1}sMMMMNMNMP${c2}.    ---:   %s"
  3056. "${c2}  :-----------${c1}:MMMdP${c2}-------    ---\  %s"
  3057. "${c2} ,------------${c1}:MMMd${c2}--------    ---:  %s"
  3058. "${c2} :------------${c1}:MMMd${c2}-------    .---:  %s"
  3059. "${c2} :----    ${c1}oNMMMMMMMMMNho${c2}     .----:  %s"
  3060. "${c2} :--     .${c1}+shhhMMMmhhy++${c2}   .------/  %s"
  3061. "${c2} :-    -------${c1}:MMMd${c2}--------------:   %s"
  3062. "${c2} :-   --------${c1}/MMMd${c2}-------------;    %s"
  3063. "${c2} :-    ------${c1}/hMMMy${c2}------------:     %s"
  3064. "${c2} :--${c1} :dMNdhhdNMMNo${c2}------------;      %s"
  3065. "${c2} :---${c1}:sdNMMMMNds:${c2}------------:       %s"
  3066. "${c2} :------${c1}:://:${c2}-------------::         %s"
  3067. "${c2} :---------------------://           %s"
  3068. "${c2}                                     %s")
  3069.         ;;
  3070.  
  3071.         "Fux")
  3072.             if [[ "$no_color" != "1" ]]; then
  3073.                 c1=$(getColor 'white') # White
  3074.                 c2=$(getColor 'light blue') # Light Blue
  3075.             fi
  3076.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3077.             startline="0"
  3078.             fulloutput=(
  3079. "${c2}           --/+osssso+/--           %s"
  3080. "${c2}        -/oshhhhhhhhhhhhso/-        %s"
  3081. "${c2}      :oyhhhhhso+//+oshhhhhso:      %s"
  3082. "${c2}    -+yhhhh+.   ss+/   .+hhhhs+-    %s"
  3083. "${c2}   :/hhhh/     shhhy/     /hhhh/:   %s"
  3084. "${c2}  ./hhhh- .++:..dhhb..:++. -hhhh/.  %s"
  3085. "${c2}  +ohhh: -hoyhohhoohhohyoh- :hhho+  %s"
  3086. "${c2}  /hhhh   shhy-ohyyho-yhhs   hhhh/  %s"
  3087. "${c2}  /hhhh    shy\+hhhh+/yhs    hhhh/  %s"
  3088. "${c2}  +ohhh:  .:d. +:ys:+ .b:.  :hhho+  %s"
  3089. "${c2}  ./hhhh- do  /  oo  \  ob -hhhh/.  %s"
  3090. "${c2}   :/hhhh/   -   ss   -   /hhhh/:   %s"
  3091. "${c2}    -+shhhh+.    //    .+hhhhs+-    %s"
  3092. "${c2}      :oshhhhhso+//+oshhhhhso:      %s"
  3093. "${c2}        -/oshhhhhhhhhhhhso/-        %s"
  3094. "${c2}           --/+osssso+/--           %s")
  3095.         ;;
  3096.  
  3097.         "Chapeau")
  3098.             if [[ "$no_color" != "1" ]]; then
  3099.                 c1=$(getColor 'white') # White
  3100.                 c2=$(getColor 'light green') # Light Green
  3101.             fi
  3102.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3103.             startline="0"
  3104.             logowidth="35"
  3105.             fulloutput=(
  3106. "${c2}               .-/-.               %s"
  3107. "${c2}             ////////.             %s"
  3108. "${c2}           ////////${c1}y+${c2}//.           %s"
  3109. "${c2}         ////////${c1}mMN${c2}/////.         %s"
  3110. "${c2}       ////////${c1}mMN+${c2}////////.       %s"
  3111. "${c2}     ////////////////////////.     %s"
  3112. "${c2}   /////////+${c1}shhddhyo${c2}+////////.    %s"
  3113. "${c2}  ////////${c1}ymMNmdhhdmNNdo${c2}///////.   %s"
  3114. "${c2} ///////+${c1}mMms${c2}////////${c1}hNMh${c2}///////.  %s"
  3115. "${c2} ///////${c1}NMm+${c2}//////////${c1}sMMh${c2}///////  %s"
  3116. "${c2} //////${c1}oMMNmmmmmmmmmmmmMMm${c2}///////  %s"
  3117. "${c2} //////${c1}+MMmssssssssssssss+${c2}///////  %s"
  3118. "${c2} \`//////${c1}yMMy${c2}////////////////////   %s"
  3119. "${c2}  \`//////${c1}smMNhso++oydNm${c2}////////    %s"
  3120. "${c2}   \`///////${c1}ohmNMMMNNdy+${c2}///////     %s"
  3121. "${c2}     \`//////////${c1}++${c2}//////////       %s"
  3122. "${c2}        \`////////////////.         %s"
  3123. "${c2}            -////////-             %s"
  3124. "${c2}                                   %s")
  3125.         ;;
  3126.  
  3127.         "Korora")
  3128.             if [[ "$no_color" != "1" ]]; then
  3129.                 c1=$(getColor 'white')
  3130.                 c2=$(getColor 'light blue')
  3131.             fi
  3132.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3133.             startline="0"
  3134.             logowidth="32"
  3135.             fulloutput=(
  3136. "${c1}                 ____________   %s"
  3137. "${c1}              _add55555555554${c2}:  %s"
  3138. "${c1}            _w?'${c2}\`\`\`\`\`\`\`\`\`\`'${c1})k${c2}:  %s"
  3139. "${c1}           _Z'${c2}\`${c1}            ]k${c2}:  %s"
  3140. "${c1}           m(${c2}\`${c1}             )k${c2}:  %s"
  3141. "${c1}      _.ss${c2}\`${c1}m[${c2}\`${c1},            ]e${c2}:  %s"
  3142. "${c1}    .uY\"^\`${c2}\`${c1}Xc${c2}\`${c1}?Ss.         d(${c2}\`  %s"
  3143. "${c1}   jF'${c2}\`${c1}    \`@.  ${c2}\`${c1}Sc      .jr${c2}\`   %s"
  3144. "${c1}  jr${c2}\`${c1}       \`?n_ ${c2}\`${c1}$;   _a2\"${c2}\`    %s"
  3145. "${c1} .m${c2}:${c1}          \`~M${c2}\`${c1}1k${c2}\`${c1}5?!\`${c2}\`      %s"
  3146. "${c1} :#${c2}:${c1}             ${c2}\`${c1})e${c2}\`\`\`         %s"
  3147. "${c1} :m${c2}:${c1}             ,#'${c2}\`           %s"
  3148. "${c1} :#${c2}:${c1}           .s2'${c2}\`            %s"
  3149. "${c1} :m,________.aa7^${c2}\`              %s"
  3150. "${c1} :#baaaaaaas!J'${c2}\`                %s"
  3151. "${c2}  \`\`\`\`\`\`\`\`\`\`\`                   %s")
  3152.         ;;
  3153.  
  3154.         "gNewSense")
  3155.             if [[ "$no_color" != "1" ]]; then
  3156.                 c1=$(getColor 'light blue') # Light Blue
  3157.             fi
  3158.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3159.             startline="0"
  3160.             logowidth="52"
  3161.             fulloutput=(
  3162. "${c1}                      ..,,,,..                      %s"
  3163. "${c1}                .oocchhhhhhhhhhccoo.                %s"
  3164. "${c1}         .ochhlllllllc hhhhhh ollllllhhco.          %s"
  3165. "${c1}     ochlllllllllll hhhllllllhhh lllllllllllhco     %s"
  3166. "${c1}  .cllllllllllllll hlllllo  +hllh llllllllllllllc.  %s"
  3167. "${c1} ollllllllllhco\'\'  hlllllo  +hllh  \`\`ochllllllllllo %s"
  3168. "${c1} hllllllllc\'       hllllllllllllh       \`cllllllllh %s"
  3169. "${c1} ollllllh          +llllllllllll+          hllllllo %s"
  3170. "${c1}  \`cllllh.           ohllllllho           .hllllc\'  %s"
  3171. "${c1}     ochllc.            ++++            .cllhco     %s"
  3172. "${c1}        \`+occooo+.                .+ooocco+\'        %s"
  3173. "${c1}               \`+oo++++      ++++oo+\'               %s"
  3174. "${c1}                                                    %s")
  3175.         ;;
  3176.  
  3177.         "BLAG")
  3178.             if [[ "$no_color" != "1" ]]; then
  3179.                 c1=$(getColor 'light purple')
  3180.             fi
  3181.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3182.             startline="0"
  3183.             logowidth="36"
  3184.             fulloutput=(
  3185. "${c1}              d                     %s"
  3186. "${c1}             ,MK:                   %s"
  3187. "${c1}             xMMMX:                 %s"
  3188. "${c1}            .NMMMMMX;               %s"
  3189. "${c1}            lMMMMMMMM0clodkO0KXWW:  %s"
  3190. "${c1}            KMMMMMMMMMMMMMMMMMMX'   %s"
  3191. "${c1}       .;d0NMMMMMMMMMMMMMMMMMMK.    %s"
  3192. "${c1}  .;dONMMMMMMMMMMMMMMMMMMMMMMx      %s"
  3193. "${c1} 'dKMMMMMMMMMMMMMMMMMMMMMMMMl       %s"
  3194. "${c1}    .:xKWMMMMMMMMMMMMMMMMMMM0.      %s"
  3195. "${c1}        .:xNMMMMMMMMMMMMMMMMMK.     %s"
  3196. "${c1}           lMMMMMMMMMMMMMMMMMMK.    %s"
  3197. "${c1}           ,MMMMMMMMWkOXWMMMMMM0    %s"
  3198. "${c1}           .NMMMMMNd.     \`':ldko   %s"
  3199. "${c1}            OMMMK:                  %s"
  3200. "${c1}            oWk,                    %s"
  3201. "${c1}            ;:                      %s")
  3202.         ;;
  3203.  
  3204.         "FreeBSD")
  3205.             if [[ "$no_color" != "1" ]]; then
  3206.                 c1=$(getColor 'white') # white
  3207.                 c2=$(getColor 'light red') # Light Red
  3208.             fi
  3209.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3210.             startline="0"
  3211.             logowidth="37"
  3212.             fulloutput=(
  3213. "${c1}                                     %s"
  3214. "${c1}   \`\`\`                        ${c2}\`      %s"
  3215. "${c1}  \` \`.....---...${c2}....--.\`\`\`   -/      %s"
  3216. "${c1}  +o   .--\`         ${c2}/y:\`      +.     %s"
  3217. "${c1}   yo\`:.            ${c2}:o      \`+-      %s"
  3218. "${c1}    y/               ${c2}-/\`   -o/       %s"
  3219. "${c1}   .-                  ${c2}::/sy+:.      %s"
  3220. "${c1}   /                     ${c2}\`--  /      %s"
  3221. "${c1}  \`:                          ${c2}:\`     %s"
  3222. "${c1}  \`:                          ${c2}:\`     %s"
  3223. "${c1}   /                          ${c2}/      %s"
  3224. "${c1}   .-                        ${c2}-.      %s"
  3225. "${c1}    --                      ${c2}-.       %s"
  3226. "${c1}     \`:\`                  ${c2}\`:\`        %s"
  3227. "${c2}       .--             \`--.          %s"
  3228. "${c2}          .---.....----.             %s"
  3229. "${c2}                                     %s"
  3230. "${c2}                                     %s")
  3231.         ;;
  3232.  
  3233.         "FreeBSD - Old")
  3234.             if [[ "$no_color" != "1" ]]; then
  3235.                 c1=$(getColor 'white') # white
  3236.                 c2=$(getColor 'light red') # Light Red
  3237.             fi
  3238.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3239.             startline="0"
  3240.             logowidth="34"
  3241.             fulloutput=(
  3242. "${c2}              ,        ,          %s"
  3243. "${c2}             /(        )\`         %s"
  3244. "${c2}             \ \___   / |         %s"
  3245. "${c2}             /- ${c1}_${c2}  \`-/  '         %s"
  3246. "${c2}            (${c1}/\/ \ ${c2}\   /\\         %s"
  3247. "${c1}            / /   |${c2} \`    \\        %s"
  3248. "${c1}            O O   )${c2} /    |        %s"
  3249. "${c1}            \`-^--'\`${c2}<     '        %s"
  3250. "${c2}           (_.)  _  )   /         %s"
  3251. "${c2}            \`.___/\`    /          %s"
  3252. "${c2}              \`-----' /           %s"
  3253. "${c1} <----.     ${c2}__/ __   \\            %s"
  3254. "${c1} <----|====${c2}O}}}${c1}==${c2}} \} \/${c1}====      %s"
  3255. "${c1} <----'    ${c2}\`--' \`.__,' \\          %s"
  3256. "${c2}              |        |          %s"
  3257. "${c2}               \       /       /\\ %s"
  3258. "${c2}          ______( (_  / \______/  %s"
  3259. "${c2}        ,'  ,-----'   |           %s"
  3260. "${c2}        \`--{__________)           %s"
  3261. "${c2}                                  %s")
  3262.         ;;
  3263.  
  3264.         "OpenBSD")
  3265.             if [[ "$no_color" != "1" ]]; then
  3266.                 c1=$(getColor 'yellow') # Light Yellow
  3267.                 c2=$(getColor 'brown') # Bold Yellow
  3268.                 c3=$(getColor 'light cyan') # Light Cyan
  3269.                 c4=$(getColor 'light red') # Light Red
  3270.                 c5=$(getColor 'dark grey')
  3271.             fi
  3272.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; c5="${my_lcolor}"; fi
  3273.             startline="3"
  3274.             logowidth="44"
  3275.             fulloutput=(
  3276. "${c3}                                        _   "
  3277. "${c3}                                       (_)  "
  3278. "${c1}              |    .                        "
  3279. "${c1}          .   |L  /|   .         ${c3} _         %s"
  3280. "${c1}      _ . |\ _| \--+._/| .       ${c3}(_)        %s"
  3281. "${c1}     / ||\| Y J  )   / |/| ./               %s"
  3282. "${c1}    J  |)'( |        \` F\`.'/       ${c3} _       %s"
  3283. "${c1}  -<|  F         __     .-<        ${c3}(_)      %s"
  3284. "${c1}    | /       .-'${c3}. ${c1}\`.  /${c3}-. ${c1}L___             %s"
  3285. "${c1}    J \      <    ${c3}\ ${c1} | | ${c5}O${c3}\\\\${c1}|.-' ${c3} _          %s"
  3286. "${c1}  _J \  .-    \\\\${c3}/ ${c5}O ${c3}| ${c1}| \  |${c1}F    ${c3}(_)         %s"
  3287. "${c1} '-F  -<_.     \   .-'  \`-' L__             %s"
  3288. "${c1}__J  _   _.     >-'  ${c2})${c4}._.   ${c1}|-'             %s"
  3289. "${c1} \`-|.'   /_.          ${c4}\_|  ${c1} F               %s"
  3290. "${c1}  /.-   .                _.<                %s"
  3291. "${c1} /'    /.'             .'  \`\               %s"
  3292. "${c1}  /L  /'   |/      _.-'-\                   %s"
  3293. "${c1} /'J       ___.---'\|                       %s"
  3294. "${c1}   |\  .--' V  | \`. \`                       %s"
  3295. "${c1}   |/\`. \`-.     \`._)                        %s"
  3296. "${c1}      / .-.\                                %s"
  3297. "${c1}      \ (  \`\                               %s"
  3298. "${c1}       \`.\                                  %s")
  3299.         ;;
  3300.  
  3301.         "DragonFlyBSD")
  3302.             if [[ "$no_color" != "1" ]]; then
  3303.                 c1=$(getColor 'light red') # Red
  3304.                 c2=$(getColor 'white') # White
  3305.                 c3=$(getColor 'yellow')
  3306.                 c4=$(getColor 'light red')
  3307.             fi
  3308.            if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  3309.             startline="0"
  3310.             logowidth="43"
  3311.             fulloutput=(
  3312. "${c1}                      |                    %s"
  3313. "${c1}                     .-.                   %s"
  3314. "${c3}                    ()${c1}I${c3}()                  %s"
  3315. "${c1}               \"==.__:-:__.==\"             %s"
  3316. "${c1}              \"==.__/~|~\__.==\"            %s"
  3317. "${c1}              \"==._(  Y  )_.==\"            %s"
  3318. "${c2}   .-'~~\"\"~=--...,__${c1}\/|\/${c2}__,...--=~\"\"~~'-. %s"
  3319. "${c2}  (               ..=${c1}\\\\=${c1}/${c2}=..               )%s"
  3320. "${c2}   \`'-.        ,.-\"\`;${c1}/=\\\\${c2} ;\"-.,_        .-'\`%s"
  3321. "${c2}       \`~\"-=-~\` .-~\` ${c1}|=|${c2} \`~-. \`~-=-\"~\`     %s"
  3322. "${c2}            .-~\`    /${c1}|=|${c2}\    \`~-.          %s"
  3323. "${c2}         .~\`       / ${c1}|=|${c2} \       \`~.       %s"
  3324. "${c2}     .-~\`        .'  ${c1}|=|${c2}  \\\\\`.        \`~-.  %s"
  3325. "${c2}   (\`     _,.-=\"\`    ${c1}|=|${c2}    \`\"=-.,_     \`) %s"
  3326. "${c2}    \`~\"~\"\`           ${c1}|=|${c2}           \`\"~\"~\`  %s"
  3327. "${c1}                     /=\                   %s"
  3328. "${c1}                     \=/                   %s"
  3329. "${c1}                      ^                    %s")
  3330.         ;;
  3331.  
  3332.         "NetBSD")
  3333.             if [[ "$no_color" != "1" ]]; then
  3334.                 c1=$(getColor 'orange') # Orange
  3335.                 c2=$(getColor 'white') # White
  3336.             fi
  3337.            if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3338.             startline="0"
  3339.             logowidth="60"
  3340.             fulloutput=(
  3341. "${c1}                                  __,gnnnOCCCCCOObaau,_     %s"
  3342. "${c2}   _._                    ${c1}__,gnnCCCCCCCCOPF\"''              %s"
  3343. "${c2}  (N\\\\\\\\${c1}XCbngg,._____.,gnnndCCCCCCCCCCCCF\"___,,,,___          %s"
  3344. "${c2}   \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOOOOPYvv.     %s"
  3345. "${c2}    \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPF\"''               %s"
  3346. "${c2}     \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCCCCCCOF\"'                     %s"
  3347. "${c2}      \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCOF\"'                         %s"
  3348. "${c2}       \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCPF\"'                             %s"
  3349. "${c2}        \\\\N\\\\\\\\${c1}\"PCOCCCOCCFP\"\"                                  %s"
  3350. "${c2}         \\\\N\                                                %s"
  3351. "${c2}          \\\\N\                                               %s"
  3352. "${c2}           \\\\N\                                              %s"
  3353. "${c2}            \\\\NN\                                            %s"
  3354. "${c2}             \\\\NN\                                           %s"
  3355. "${c2}              \\\\NNA.                                         %s"
  3356. "${c2}               \\\\NNA,                                        %s"
  3357. "${c2}                \\\\NNN,                                       %s"
  3358. "${c2}                 \\\\NNN\                                      %s"
  3359. "${c2}                  \\\\NNN\                                     %s"
  3360. "${c2}                   \\\\NNNA                                    %s")
  3361.         ;;
  3362.  
  3363.         "Mandriva"|"Mandrake")
  3364.             if [[ "$no_color" != "1" ]]; then
  3365.                 c1=$(getColor 'light blue') # Light Blue
  3366.                 c2=$(getColor 'yellow') # Bold Yellow
  3367.             fi
  3368.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3369.             startline="0"
  3370.             logowidth="41"
  3371.             fulloutput=(
  3372. "${c2}                                         %s"
  3373. "${c2}                         \`\`              %s"
  3374. "${c2}                        \`-.              %s"
  3375. "${c1}       \`               ${c2}.---              %s"
  3376. "${c1}     -/               ${c2}-::--\`             %s"
  3377. "${c1}   \`++    ${c2}\`----...\`\`\`-:::::.             %s"
  3378. "${c1}  \`os.      ${c2}.::::::::::::::-\`\`\`     \`  \` %s"
  3379. "${c1}  +s+         ${c2}.::::::::::::::::---...--\` %s"
  3380. "${c1} -ss:          ${c2}\`-::::::::::::::::-.\`\`.\`\` %s"
  3381. "${c1} /ss-           ${c2}.::::::::::::-.\`\`   \`    %s"
  3382. "${c1} +ss:          ${c2}.::::::::::::-            %s"
  3383. "${c1} /sso         ${c2}.::::::-::::::-            %s"
  3384. "${c1} .sss/       ${c2}-:::-.\`   .:::::            %s"
  3385. "${c1}  /sss+.    ${c2}..\`${c1}  \`--\`    ${c2}.:::            %s"
  3386. "${c1}   -ossso+/:://+/-\`        ${c2}.:\`           %s"
  3387. "${c1}     -/+ooo+/-.              ${c2}\`           %s"
  3388. "${c1}                                         %s"
  3389. "${c1}                                         %s")
  3390.         ;;
  3391.  
  3392.         "openSUSE"|"SUSE Linux Enterprise")
  3393.             if [[ "$no_color" != "1" ]]; then
  3394.                 c1=$(getColor 'light green') # Bold Green
  3395.                 c2=$c0$bold
  3396.             fi
  3397.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3398.             startline="0"
  3399.             logowidth="44"
  3400.             fulloutput=(
  3401. "${c2}             .;ldkO0000Okdl;.               %s"
  3402. "${c2}         .;d00xl:^''''''^:ok00d;.           %s"
  3403. "${c2}       .d00l'                'o00d.         %s"
  3404. "${c2}     .d0Kd'${c1}  Okxol:;,.          ${c2}:O0d.       %s"
  3405. "${c2}    .OK${c1}KKK0kOKKKKKKKKKKOxo:,      ${c2}lKO.      %s"
  3406. "${c2}   ,0K${c1}KKKKKKKKKKKKKKK0P^${c2},,,${c1}^dx:${c2}    ;00,     %s"
  3407. "${c2}  .OK${c1}KKKKKKKKKKKKKKKk'${c2}.oOPPb.${c1}'0k.${c2}   cKO.    %s"
  3408. "${c2}  :KK${c1}KKKKKKKKKKKKKKK: ${c2}kKx..dd ${c1}lKd${c2}   'OK:    %s"
  3409. "${c2}  dKK${c1}KKKKKKKKKOx0KKKd ${c2}^0KKKO' ${c1}kKKc${c2}   dKd    %s"
  3410. "${c2}  dKK${c1}KKKKKKKKKK;.;oOKx,..${c2}^${c1}..;kKKK0.${c2}  dKd    %s"
  3411. "${c2}  :KK${c1}KKKKKKKKKK0o;...^cdxxOK0O/^^'  ${c2}.0K:    %s"
  3412. "${c2}   kKK${c1}KKKKKKKKKKKKK0x;,,......,;od  ${c2}lKk     %s"
  3413. "${c2}   '0K${c1}KKKKKKKKKKKKKKKKKKKK00KKOo^  ${c2}c00'     %s"
  3414. "${c2}    'kK${c1}KKOxddxkOO00000Okxoc;''   ${c2}.dKk'      %s"
  3415. "${c2}      l0Ko.                    .c00l'       %s"
  3416. "${c2}       'l0Kk:.              .;xK0l'         %s"
  3417. "${c2}          'lkK0xl:;,,,,;:ldO0kl'            %s"
  3418. "${c2}              '^:ldxkkkkxdl:^'              %s")
  3419.         ;;
  3420.  
  3421.         "Slackware")
  3422.             if [[ "$no_color" != "1" ]]; then
  3423.                 c1=$(getColor 'light blue') # Light Blue
  3424.                 c2=$(getColor 'white') # Bold White
  3425.             fi
  3426.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3427.             startline="1"
  3428.             logowidth="46"
  3429.             fulloutput=(
  3430. "${c1}                   :::::::                    "
  3431. "${c1}             :::::::::::::::::::              %s"
  3432. "${c1}          :::::::::::::::::::::::::           %s"
  3433. "${c1}        ::::::::${c2}cllcccccllllllll${c1}::::::        %s"
  3434. "${c1}     :::::::::${c2}lc               dc${c1}:::::::      %s"
  3435. "${c1}    ::::::::${c2}cl   clllccllll    oc${c1}:::::::::    %s"
  3436. "${c1}   :::::::::${c2}o   lc${c1}::::::::${c2}co   oc${c1}::::::::::   %s"
  3437. "${c1}  ::::::::::${c2}o    cccclc${c1}:::::${c2}clcc${c1}::::::::::::  %s"
  3438. "${c1}  :::::::::::${c2}lc        cclccclc${c1}:::::::::::::  %s"
  3439. "${c1} ::::::::::::::${c2}lcclcc          lc${c1}:::::::::::: %s"
  3440. "${c1} ::::::::::${c2}cclcc${c1}:::::${c2}lccclc     oc${c1}::::::::::: %s"
  3441. "${c1} ::::::::::${c2}o    l${c1}::::::::::${c2}l    lc${c1}::::::::::: %s"
  3442. "${c1}  :::::${c2}cll${c1}:${c2}o     clcllcccll     o${c1}:::::::::::  %s"
  3443. "${c1}  :::::${c2}occ${c1}:${c2}o                  clc${c1}:::::::::::  %s"
  3444. "${c1}   ::::${c2}ocl${c1}:${c2}ccslclccclclccclclc${c1}:::::::::::::   %s"
  3445. "${c1}    :::${c2}oclcccccccccccccllllllllllllll${c1}:::::    %s"
  3446. "${c1}     ::${c2}lcc1lcccccccccccccccccccccccco${c1}::::     %s"
  3447. "${c1}       ::::::::::::::::::::::::::::::::       %s"
  3448. "${c1}         ::::::::::::::::::::::::::::         %s"
  3449. "${c1}            ::::::::::::::::::::::            %s"
  3450. "${c1}                 ::::::::::::                 %s")
  3451.         ;;
  3452.  
  3453.         "ROSA")
  3454.             if [[ "$no_color" != "1" ]]; then
  3455.                 c1=$(getColor 'rosa_blue') # special blue color from ROSA
  3456.             fi
  3457.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3458.             startline="3"
  3459.             logowidth="41"
  3460.             fulloutput=(
  3461. "${c1}            ROSAROSAROSAROSAR            "
  3462. "${c1}         ROSA               AROS         "
  3463. "${c1}       ROS   SAROSAROSAROSAR   AROS      "
  3464. "${c1}     RO   ROSAROSAROSAROSAROSAR   RO     %s"
  3465. "${c1}   ARO  AROSAROSAROSARO      AROS  ROS   %s"
  3466. "${c1}  ARO  ROSAROS         OSAR   ROSA  ROS  %s"
  3467. "${c1}  RO  AROSA   ROSAROSAROSA    ROSAR  RO  %s"
  3468. "${c1} RO  ROSAR  ROSAROSAROSAR  R  ROSARO  RO %s"
  3469. "${c1} RO  ROSA  AROSAROSAROSA  AR  ROSARO  AR %s"
  3470. "${c1} RO AROS  ROSAROSAROSA   ROS  AROSARO AR %s"
  3471. "${c1} RO AROS  ROSAROSARO   ROSARO  ROSARO AR %s"
  3472. "${c1} RO  ROS  AROSAROS   ROSAROSA AROSAR  AR %s"
  3473. "${c1} RO  ROSA  ROS     ROSAROSAR  ROSARO  RO %s"
  3474. "${c1}  RO  ROS     AROSAROSAROSA  ROSARO  AR  %s"
  3475. "${c1}  ARO  ROSA   ROSAROSAROS   AROSAR  ARO  %s"
  3476. "${c1}   ARO  OROSA      R      ROSAROS  ROS   %s"
  3477. "${c1}     RO   AROSAROS   AROSAROSAR   RO     %s"
  3478. "${c1}      AROS   AROSAROSAROSARO   AROS      %s"
  3479. "${c1}         ROSA               SARO         %s"
  3480. "${c1}            ROSAROSAROSAROSAR            %s")
  3481.         ;;
  3482.    
  3483.         "Red Hat Enterprise Linux")
  3484.             if [[ "$no_color" != "1" ]]; then
  3485.                 c1=$(getColor 'white') # White
  3486.                 c2=$(getColor 'light red') # Light Red
  3487.             fi
  3488.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3489.             startline="0"
  3490.             logowidth="42"
  3491.             fulloutput=(
  3492. "${c2}                                          %s"
  3493. "${c2}              \`.-..........\`              %s"
  3494. "${c2}             \`////////::.\`-/.             %s"
  3495. "${c2}             -: ....-////////.            %s"
  3496. "${c2}             //:-::///////////\`           %s"
  3497. "${c2}      \`--::: \`-://////////////:           %s"
  3498. "${c2}      //////-    \`\`.-:///////// .\`        %s"
  3499. "${c2}      \`://////:-.\`    :///////::///:\`     %s"
  3500. "${c2}        .-/////////:---/////////////:     %s"
  3501. "${c2}           .-://////////////////////.     %s"
  3502. "${c1}          yMN+\`.-${c2}::///////////////-\`      %s"
  3503. "${c1}       .-\`:NMMNMs\`  \`..-------..\`         %s"
  3504. "${c1}        MN+/mMMMMMhoooyysshsss            %s"
  3505. "${c1} MMM    MMMMMMMMMMMMMMyyddMMM+            %s"
  3506. "${c1}  MMMM   MMMMMMMMMMMMMNdyNMMh\`     hyhMMM %s"
  3507. "${c1}   MMMMMMMMMMMMMMMMyoNNNMMM+.   MMMMMMMM  %s"
  3508. "${c1}    MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM   %s"
  3509. "${c1}                                          %s")
  3510.         ;;
  3511.  
  3512.         "Frugalware")
  3513.             if [[ "$no_color" != "1" ]]; then
  3514.                 c1=$(getColor 'white') # White
  3515.                 c2=$(getColor 'light blue') # Light Blue
  3516.             fi
  3517.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3518.             startline="3"
  3519.             logowidth="50"
  3520.             fulloutput=(
  3521. "${c2}          \`++/::-.\`                               "
  3522. "${c2}         /o+++++++++/::-.\`                        "
  3523. "${c2}        \`o+++++++++++++++o++/::-.\`                "
  3524. "${c2}        /+++++++++++++++++++++++oo++/:-.\`\`        %s"
  3525. "${c2}       .o+ooooooooooooooooooosssssssso++oo++/:-\`  %s"
  3526. "${c2}       ++osoooooooooooosssssssssssssyyo+++++++o:  %s"
  3527. "${c2}      -o+ssoooooooooooosssssssssssssyyo+++++++s\`  %s"
  3528. "${c2}      o++ssoooooo++++++++++++++sssyyyyo++++++o:   %s"
  3529. "${c2}     :o++ssoooooo${c1}/-------------${c2}+syyyyyo+++++oo    %s"
  3530. "${c2}    \`o+++ssoooooo${c1}/-----${c2}+++++ooosyyyyyyo++++os:    %s"
  3531. "${c2}    /o+++ssoooooo${c1}/-----${c2}ooooooosyyyyyyyo+oooss     %s"
  3532. "${c2}   .o++++ssooooos${c1}/------------${c2}syyyyyyhsosssy-     %s"
  3533. "${c2}   ++++++ssooooss${c1}/-----${c2}+++++ooyyhhhhhdssssso      %s"
  3534. "${c2}  -s+++++syssssss${c1}/-----${c2}yyhhhhhhhhhhhddssssy.      %s"
  3535. "${c2}  sooooooyhyyyyyh${c1}/-----${c2}hhhhhhhhhhhddddyssy+       %s"
  3536. "${c2} :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy\`       %s"
  3537. "${c2} yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/        %s"
  3538. "${c2}-ysooooooydhhhhhhhhhhhddddddddddddddddssy         %s"
  3539. "${c2} .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:         %s"
  3540. "${c2}       \`\`.-/+oosysssssssssssssssssssssss          %s"
  3541. "${c2}               \`\`.:/+osyysssssssssssssh.          %s"
  3542. "${c2}                        \`-:/+osyyssssyo           %s"
  3543. "${c2}                                .-:+++\`           %s")
  3544.         ;;
  3545.  
  3546.         "Peppermint")
  3547.             if [[ "$no_color" != "1" ]]; then
  3548.                 c1=$(getColor 'white') # White
  3549.                 c2=$(getColor 'light red') # Light Red
  3550.             fi
  3551.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3552.             startline="0"
  3553.             logowidth="39"
  3554.             fulloutput=(
  3555. "${c2}             8ZZZZZZ${c1}MMMMM              %s"
  3556. "${c2}          .ZZZZZZZZZ${c1}MMMMMMM.           %s"
  3557. "${c1}        MM${c2}ZZZZZZZZZ${c1}MMMMMMM${c2}ZZZZ         %s"
  3558. "${c1}      MMMMM${c2}ZZZZZZZZ${c1}MMMMM${c2}ZZZZZZZM       %s"
  3559. "${c1}     MMMMMMM${c2}ZZZZZZZ${c1}MMMM${c2}ZZZZZZZZZ.      %s"
  3560. "${c1}    MMMMMMMMM${c2}ZZZZZZ${c1}MMM${c2}ZZZZZZZZZZZI     %s"
  3561. "${c1}   MMMMMMMMMMM${c2}ZZZZZZ${c1}MM${c2}ZZZZZZZZZZ${c1}MMM    %s"
  3562. "${c2}   .ZZZ${c1}MMMMMMMMMM${c2}IZZ${c1}MM${c2}ZZZZZ${c1}MMMMMMMMM   %s"
  3563. "${c2}   ZZZZZZZ${c1}MMMMMMMM${c2}ZZ${c1}M${c2}ZZZZ${c1}MMMMMMMMMMM   %s"
  3564. "${c2}   ZZZZZZZZZZZZZZZZ${c1}M${c2}Z${c1}MMMMMMMMMMMMMMM   %s"
  3565. "${c2}   .ZZZZZZZZZZZZZ${c1}MMM${c2}Z${c1}M${c2}ZZZZZZZZZZ${c1}MMMM   %s"
  3566. "${c2}   .ZZZZZZZZZZZ${c1}MMM${c2}7ZZ${c1}MM${c2}ZZZZZZZZZZ7${c1}M    %s"
  3567. "${c2}    ZZZZZZZZZ${c1}MMMM${c2}ZZZZ${c1}MMMM${c2}ZZZZZZZ77     %s"
  3568. "${c1}     MMMMMMMMMMMM${c2}ZZZZZ${c1}MMMM${c2}ZZZZZ77      %s"
  3569. "${c1}      MMMMMMMMMM${c2}7ZZZZZZ${c1}MMMMM${c2}ZZ77       %s"
  3570. "${c1}       .MMMMMMM${c2}ZZZZZZZZ${c1}MMMMM${c2}Z7Z        %s"
  3571. "${c1}         MMMMM${c2}ZZZZZZZZZ${c1}MMMMMMM         %s"
  3572. "${c2}           NZZZZZZZZZZZ${c1}MMMMM           %s"
  3573. "${c2}              ZZZZZZZZZ${c1}MM              %s")
  3574.         ;;
  3575.  
  3576. "Grombyang"|"GrombyangOS")
  3577.             if [[ "$no_color" != "1" ]]; then
  3578.                 c1=$(getColor 'light blue')
  3579.                 c2=$(getColor 'light green')
  3580.                 c3=$(getColor 'light red')
  3581.             fi
  3582.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3583.             startline="0"
  3584.             fulloutput=(
  3585. "${c1}             eeeeeeeeeeee                           %s"
  3586. "${c1}          eeeeeeeeeeeeeeeee          %s"
  3587. "${c1}       eeeeeeeeeeeeeeeeeeeeeee       %s"
  3588. "${c1}     eeeee       "${c2}".o+       "${c1}"eeee      %s"
  3589. "${c1}   eeee         "${c2}"\`ooo/         "${c1}"eeee   %s"
  3590. "${c1}  eeee         "${c2}"\`+oooo:         "${c1}"eeee  %s"
  3591. "${c1} eee          "${c2}"\`+oooooo:          "${c1}"eee %s"
  3592. "${c1} eee          "${c2}"-+oooooo+:         "${c1}"eee %s"
  3593. "${c1} ee         "${c2}"\`/:oooooooo+:         "${c1}"ee %s"
  3594. "${c1} ee        "${c2}"\`/+   +++    +:        "${c1}"ee %s"
  3595. "${c1} ee              "${c2}"+o+\             "${c1}"ee %s"
  3596. "${c1} eee             "${c2}"+o+\            "${c1}"eee %s"
  3597. "${c1} eee        "${c2}"//  \\ooo/  \\\         "${c1}"eee %s"
  3598. "${c1}  eee      "${c2}"//++++oooo++++\\\      "${c1}"eee  %s"
  3599. "${c1}   eeee    "${c2}"::::++oooo+:::::   "${c1}"eeee   %s"
  3600. "${c1}     eeeee   "${c3}"Grombyang OS "${c1}"  eeee     %s"
  3601. "${c1}       eeeeeeeeeeeeeeeeeeeeeee       %s"
  3602. "${c1}          eeeeeeeeeeeeeeeee          %s"
  3603. "                                     %s"
  3604. "                                     %s")
  3605.     ;;
  3606.  
  3607.         "Solus")
  3608.             if [[ "$no_color" != "1" ]]; then
  3609.                 c1=$(getColor 'white') # White
  3610.                 c2=$(getColor 'blue') # Blue
  3611.                 c3=$(getColor 'black') # Black
  3612.             fi
  3613.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3614.             startline="0"
  3615.             logowidth="36"
  3616.             fulloutput=(
  3617. "${c3}             ......               %s"
  3618. "${c3}         .'${c1}D${c3}lddddddddddd'.          %s"
  3619. "${c3}      .'ddd${c1}XM${c3}xdddddddddddddd.       %s"
  3620. "${c3}    .dddddx${c1}MMM0${c3};dddddddddddddd.     %s"
  3621. "${c3}   'dddddl${c1}MMMMMN${c3}cddddddddddddddd.   %s"
  3622. "${c3}  ddddddc${c1}WMMMMMMW${c3}lddddddddddddddd.  %s"
  3623. "${c3} ddddddc${c1}WMMMMMMMMO${c3}ddoddddddddddddd. %s"
  3624. "${c3}.ddddd:${c1}NMMMMMMMMMK${c3}dd${c1}NX${c3}od;c${c1}lxl${c3}dddddd %s"
  3625. "${c3}dddddc${c1}WMMMMMMMMMMNN${c3}dd${c1}MMXl${c3};d${c1}00xl;${c3}ddd.%s"
  3626. "${c3}ddddl${c1}WMMMMMMMMMMMMM${c3}d;${c1}MMMM0${c3}:dl${c1}XMMXk:${c3}'%s"
  3627. "${c3}dddo${c1}WMMMMMMMMMMMMMM${c3}dd${c1}MMMMMW${c3}od${c3};${c1}XMMMOd%s"
  3628. "${c3}.dd${c1}MMMMMMMMMMMMMMMM${c3}d:${c1}MMMMMMM${c3}kd${c1}lMKll %s"
  3629. "${c3}.;dk0${c1}KXNWWMMMMMMMMM${c3}dx${c1}MMMMMMM${c3}Xl;lxK; %s"
  3630. "${c3}  'dddddddd;:cclodcddxddolloxO0O${c1}d'  %s"
  3631. "${c1}   ckkxxxddddddddxxkOOO000Okdool.   %s"
  3632. "${c2}    .lddddxxxxxxddddooooooooood     %s"
  3633. "${c2}      .:oooooooooooooooooooc'       %s"
  3634. "${c2}         .,:looooooooooc;.  %s")
  3635.         ;;
  3636.  
  3637.         "Mageia")
  3638.             if [[ "$no_color" != "1" ]]; then
  3639.                 c1=$(getColor 'white') # White
  3640.                 c2=$(getColor 'light cyan') # Light Cyan
  3641.             fi
  3642.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3643.             startline="0"
  3644.             logowidth="33"
  3645.             fulloutput=(
  3646. "${c2}               .°°.              %s"
  3647. "${c2}                °°   .°°.        %s"
  3648. "${c2}                .°°°. °°         %s"
  3649. "${c2}                .   .            %s"
  3650. "${c2}                 °°° .°°°.       %s"
  3651. "${c2}             .°°°.   '___'       %s"
  3652. "${c1}            .${c2}'___'     ${c1}   .      %s"
  3653. "${c1}          :dkxc;'.  ..,cxkd;     %s"
  3654. "${c1}        .dkk. kkkkkkkkkk .kkd.   %s"
  3655. "${c1}       .dkk.  ';cloolc;.  .kkd   %s"
  3656. "${c1}       ckk.                .kk;  %s"
  3657. "${c1}       xO:                  cOd  %s"
  3658. "${c1}       xO:                  lOd  %s"
  3659. "${c1}       lOO.                .OO:  %s"
  3660. "${c1}       .k00.              .00x   %s"
  3661. "${c1}        .k00;            ;00O.   %s"
  3662. "${c1}         .lO0Kc;,,,,,,;c0KOc.    %s"
  3663. "${c1}            ;d00KKKKKK00d;       %s"
  3664. "${c1}               .,KKKK,.          %s")
  3665.         ;;
  3666.  
  3667.         "Parabola GNU/Linux-libre")
  3668.             if [[ "$no_color" != "1" ]]; then
  3669.                 c1=$(getColor 'purple') # Purple
  3670.             fi
  3671.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3672.             startline="0"
  3673.             logowidth="33"
  3674.             fulloutput=(
  3675. "${c1}                                       %s"
  3676. "${c1}                          _,,     _    %s"
  3677. "${c1}                   _,   ,##'    ,##;   %s"
  3678. "${c1}             _, ,##'  ,##'    ,#####;  %s"
  3679. "${c1}         _,;#',##'  ,##'    ,#######'  %s"
  3680. "${c1}     _,#**^'         \`    ,#########   %s"
  3681. "${c1} .-^\`                    \`#########    %s"
  3682. "${c1}                          ########     %s"
  3683. "${c1}                          ;######      %s"
  3684. "${c1}                          ;####*       %s"
  3685. "${c1}                          ####'        %s"
  3686. "${c1}                         ;###          %s"
  3687. "${c1}                        ,##'           %s"
  3688. "${c1}                        ##             %s"
  3689. "${c1}                       #'              %s"
  3690. "${c1}                      /                %s"
  3691. "${c1}                     '                 %s"
  3692. "${c1}                                       %s")
  3693.         ;;
  3694.  
  3695.         "Viperr")
  3696.             if [[ "$no_color" != "1" ]]; then
  3697.                 c1=$(getColor 'white') # White
  3698.                 c2=$(getColor 'dark grey') # Dark Gray
  3699.             fi
  3700.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3701.             startline="0"
  3702.             logowidth="31"
  3703.             fulloutput=(
  3704. "${c1}    wwzapd         dlzazw      %s"
  3705. "${c1}   an${c2}#${c1}zncmqzepweeirzpas${c2}#${c1}xz     %s"
  3706. "${c1} apez${c2}##${c1}qzdkawweemvmzdm${c2}##${c1}dcmv   %s"
  3707. "${c1}zwepd${c2}####${c1}qzdweewksza${c2}####${c1}ezqpa  %s"
  3708. "${c1}ezqpdkapeifjeeazezqpdkazdkwqz  %s"
  3709. "${c1} ezqpdksz${c2}##${c1}wepuizp${c2}##${c1}wzeiapdk   %s"
  3710. "${c1}  zqpakdpa${c2}#${c1}azwewep${c2}#${c1}zqpdkqze    %s"
  3711. "${c1}    apqxalqpewenwazqmzazq      %s"
  3712. "${c1}     mn${c2}##${c1}==${c2}#######${c1}==${c2}##${c1}qp       %s"
  3713. "${c1}      qw${c2}##${c1}=${c2}#######${c1}=${c2}##${c1}zl        %s"
  3714. "${c1}      z0${c2}######${c1}=${c2}######${c1}0a        %s"
  3715. "${c1}       qp${c2}#####${c1}=${c2}#####${c1}mq         %s"
  3716. "${c1}       az${c2}####${c1}===${c2}####${c1}mn         %s"
  3717. "${c1}        ap${c2}#########${c1}qz          %s"
  3718. "${c1}         9qlzskwdewz           %s"
  3719. "${c1}          zqwpakaiw            %s"
  3720. "${c1}            qoqpe              %s"
  3721. "${c1}                               %s")
  3722.         ;;
  3723.  
  3724.         "LinuxDeepin")
  3725.             if [[ "$no_color" != "1" ]]; then
  3726.                 c1=$(getColor 'light green') # Bold Green
  3727.             fi
  3728.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3729.             startline="0"
  3730.             logowidth="33"
  3731.             fulloutput=(
  3732. "${c1}  eeeeeeeeeeeeeeeeeeeeeeeeeeee   %s"
  3733. "${c1} eee  eeeeeee          eeeeeeee  %s"
  3734. "${c1}ee   eeeeeeeee      eeeeeeeee ee %s"
  3735. "${c1}e   eeeeeeeee     eeeeeeeee    e %s"
  3736. "${c1}e   eeeeeee    eeeeeeeeee      e %s"
  3737. "${c1}e   eeeeee    eeeee            e %s"
  3738. "${c1}e    eeeee    eee  eee         e %s"
  3739. "${c1}e     eeeee   ee eeeeee        e %s"
  3740. "${c1}e      eeeee   eee   eee       e %s"
  3741. "${c1}e       eeeeeeeeee  eeee       e %s"
  3742. "${c1}e         eeeee    eeee        e %s"
  3743. "${c1}e               eeeeee         e %s"
  3744. "${c1}e            eeeeeee           e %s"
  3745. "${c1}e eee     eeeeeeee             e %s"
  3746. "${c1}eeeeeeeeeeeeeeee               e %s"
  3747. "${c1}eeeeeeeeeeeee                 ee %s"
  3748. "${c1} eeeeeeeeeee                eee  %s"
  3749. "${c1}  eeeeeeeeeeeeeeeeeeeeeeeeeeee   %s"
  3750. "${c1}                                 %s")
  3751.         ;;
  3752.  
  3753.         "Deepin")
  3754.             if [[ "$no_color" != "1" ]]; then
  3755.                 c1=$(getColor 'cyan') # Bold Green
  3756.             fi
  3757.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3758.             startline="0"
  3759.             logowidth="41"
  3760.             fulloutput=(
  3761. "${c1}              ............               %s"
  3762. "${c1}          .';;;;;.       .,;,.           %s"
  3763. "${c1}       .,;;;;;;;.       ';;;;;;;.        %s"
  3764. "${c1}     .;::::::::'     .,::;;,''''',.      %s"
  3765. "${c1}    ,'.::::::::    .;;'.          ';     %s"
  3766. "${c1}   ;'  'cccccc,   ,' :: '..        .:    %s"
  3767. "${c1}  ,,    :ccccc.  ;: .c, '' :.       ,;   %s"
  3768. "${c1} .l.     cllll' ., .lc  :; .l'       l.  %s"
  3769. "${c1} .c       :lllc  ;cl:  .l' .ll.      :'  %s"
  3770. "${c1} .l        'looc. .   ,o:  'oo'      c,  %s"
  3771. "${c1} .o.         .:ool::coc'  .ooo'      o.  %s"
  3772. "${c1}  ::            .....   .;dddo      ;c   %s"
  3773. "${c1}   l:...            .';lddddo.     ,o    %s"
  3774. "${c1}    lxxxxxdoolllodxxxxxxxxxc      :l     %s"
  3775. "${c1}     ,dxxxxxxxxxxxxxxxxxxl.     'o,      %s"
  3776. "${c1}       ,dkkkkkkkkkkkkko;.    .;o;        %s"
  3777. "${c1}         .;okkkkkdl;.    .,cl:.          %s"
  3778. "${c1}             .,:cccccccc:,.              %s")
  3779.         ;;
  3780.  
  3781.         "Chakra")
  3782.             if [[ "$no_color" != "1" ]]; then
  3783.                 c1=$(getColor 'light blue') # Light Blue
  3784.             fi
  3785.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3786.             startline="0"
  3787.             logowidth="38"
  3788.             fulloutput=(
  3789. "${c1}      _ _ _        \"kkkkkkkk.         %s"
  3790. "${c1}    ,kkkkkkkk.,    \'kkkkkkkkk,        %s"
  3791. "${c1}    ,kkkkkkkkkkkk., \'kkkkkkkkk.       %s"
  3792. "${c1}   ,kkkkkkkkkkkkkkkk,\'kkkkkkkk,       %s"
  3793. "${c1}  ,kkkkkkkkkkkkkkkkkkk\'kkkkkkk.       %s"
  3794. "${c1}   \"\'\'\"\'\'\',;::,,\"\'\'kkk\'\'kkkkk;   __   %s"
  3795. "${c1}       ,kkkkkkkkkk, \"k\'\'kkkkk\' ,kkkk  %s"
  3796. "${c1}     ,kkkkkkk\' ., \' .: \'kkkk\',kkkkkk  %s"
  3797. "${c1}   ,kkkkkkkk\'.k\'   ,  ,kkkk;kkkkkkkkk %s"
  3798. "${c1}  ,kkkkkkkk\';kk \'k  \"\'k\',kkkkkkkkkkkk %s"
  3799. "${c1} .kkkkkkkkk.kkkk.\'kkkkkkkkkkkkkkkkkk\' %s"
  3800. "${c1} ;kkkkkkkk\'\'kkkkkk;\'kkkkkkkkkkkkk\'\'   %s"
  3801. "${c1} \'kkkkkkk; \'kkkkkkkk.,\"\"\'\'\"\'\'\"\"       %s"
  3802. "${c1}   \'\'kkkk;  \'kkkkkkkkkk.,             %s"
  3803. "${c1}      \';\'    \'kkkkkkkkkkkk.,          %s"
  3804. "${c1}              ';kkkkkkkkkk\'           %s"
  3805. "${c1}                ';kkkkkk\'             %s"
  3806. "${c1}                   \"\'\'\"               %s")
  3807.         ;;
  3808.  
  3809.         "Fuduntu")
  3810.             if [[ "$no_color" != "1" ]]; then
  3811.                 c1=$(getColor 'dark grey') # Dark Gray
  3812.                 c2=$(getColor 'yellow') # Bold Yellow
  3813.                 c3=$(getColor 'light red') # Light Red
  3814.                 c4=$(getColor 'white') # White
  3815.             fi
  3816.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  3817.             startline="1"
  3818.             logowidth="49"
  3819.             fulloutput=(
  3820. "${c1}       \`dwoapfjsod\`${c2}           \`dwoapfjsod\`       "
  3821. "${c1}    \`xdwdsfasdfjaapz\`${c2}       \`dwdsfasdfjaapzx\`    %s"
  3822. "${c1}  \`wadladfladlafsozmm\`${c2}     \`wadladfladlafsozmm\`  %s"
  3823. "${c1} \`aodowpwafjwodisosoaas\`${c2} \`odowpwafjwodisosoaaso\` %s"
  3824. "${c1} \`adowofaowiefawodpmmxs\`${c2} \`dowofaowiefawodpmmxso\` %s"
  3825. "${c1} \`asdjafoweiafdoafojffw\`${c2} \`sdjafoweiafdoafojffwq\` %s"
  3826. "${c1}  \`dasdfjalsdfjasdlfjdd\`${c2} \`asdfjalsdfjasdlfjdda\`  %s"
  3827. "${c1}   \`dddwdsfasdfjaapzxaw\`${c2} \`ddwdsfasdfjaapzxawo\`   %s"
  3828. "${c1}     \`dddwoapfjsowzocmw\`${c2} \`ddwoapfjsowzocmwp\`     %s"
  3829. "${c1}       \`ddasowjfowiejao\`${c2} \`dasowjfowiejaow\`       %s"
  3830. "${c1}                                                 %s"
  3831. "${c3}       \`ddasowjfowiejao\`${c4} \`dasowjfowiejaow\`       %s"
  3832. "${c3}     \`dddwoapfjsowzocmw\`${c4} \`ddwoapfjsowzocmwp\`     %s"
  3833. "${c3}   \`dddwdsfasdfjaapzxaw\`${c4} \`ddwdsfasdfjaapzxawo\`   %s"
  3834. "${c3}  \`dasdfjalsdfjasdlfjdd\`${c4} \`asdfjalsdfjasdlfjdda\`  %s"
  3835. "${c3} \`asdjafoweiafdoafojffw\`${c4} \`sdjafoweiafdoafojffwq\` %s"
  3836. "${c3} \`adowofaowiefawodpmmxs\`${c4} \`dowofaowiefawodpmmxso\` %s"
  3837. "${c3} \`aodowpwafjwodisosoaas\`${c4} \`odowpwafjwodisosoaaso\` %s"
  3838. "${c3}   \`wadladfladlafsozmm\`${c4}     \`wadladfladlafsozmm\` %s"
  3839. "${c3}     \`dwdsfasdfjaapzx\`${c4}       \`dwdsfasdfjaapzx\`   %s"
  3840. "${c3}        \`woapfjsod\`${c4}             \`woapfjsod\`      %s")
  3841.         ;;
  3842.  
  3843.         "Mac OS X")
  3844.             if [[ "$no_color" != "1" ]]; then
  3845.                 c1=$(getColor 'green') # Green
  3846.                 c2=$(getColor 'brown') # Yellow
  3847.                 c3=$(getColor 'light red') # Orange
  3848.                 c4=$(getColor 'red') # Red
  3849.                 c5=$(getColor 'purple') # Purple
  3850.                 c6=$(getColor 'blue') # Blue
  3851.             fi
  3852.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; c5="${my_lcolor}"; c6="${my_lcolor}"; fi
  3853.             startline="1"
  3854.             logowidth="31"
  3855.             fulloutput=(
  3856. "${c1}                               "
  3857. "${c1}                 -/+:.         %s"
  3858. "${c1}                :++++.         %s"
  3859. "${c1}               /+++/.          %s"
  3860. "${c1}       .:-::- .+/:-\`\`.::-      %s"
  3861. "${c1}    .:/++++++/::::/++++++/:\`   %s"
  3862. "${c2}  .:///////////////////////:\`  %s"
  3863. "${c2}  ////////////////////////\`    %s"
  3864. "${c3} -+++++++++++++++++++++++\`     %s"
  3865. "${c3} /++++++++++++++++++++++/      %s"
  3866. "${c4} /sssssssssssssssssssssss.     %s"
  3867. "${c4} :ssssssssssssssssssssssss-    %s"
  3868. "${c5}  osssssssssssssssssssssssso/\` %s"
  3869. "${c5}  \`syyyyyyyyyyyyyyyyyyyyyyyy+\` %s"
  3870. "${c6}   \`ossssssssssssssssssssss/   %s"
  3871. "${c6}     :ooooooooooooooooooo+.    %s"
  3872. "${c6}      \`:+oo+/:-..-:/+o+/-      %s"
  3873. "${c6}                               %s")
  3874.         ;;
  3875.  
  3876.         "Mac OS X - Classic")
  3877.             if [[ "$no_color" != "1" ]]; then
  3878.                 c1=$(getColor 'blue') # Blue
  3879.                 c2=$(getColor 'light blue') # Light blue
  3880.                 c3=$(getColor 'light grey') # Gray
  3881.                 c4=$(getColor 'dark grey') # Dark Ggray
  3882.             fi
  3883.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  3884.             startline="1"
  3885.             logowidth="39"
  3886.             fulloutput=(
  3887. "${c3}                                       "
  3888. "${c3}                        ..             %s"
  3889. "${c3}                       dWc             %s"
  3890. "${c3}                     ,X0'              %s"
  3891. "${c1}  ;;;;;;;;;;;;;;;;;;${c3}0Mk${c2}::::::::::::::: %s"
  3892. "${c1}  ;;;;;;;;;;;;;;;;;${c3}KWo${c2}:::::::::::::::: %s"
  3893. "${c1}  ;;;;;;;;;${c4}NN${c1};;;;;${c3}KWo${c2}:::::${c3}NN${c2}:::::::::: %s"
  3894. "${c1}  ;;;;;;;;;${c4}NN${c1};;;;${c3}0Md${c2}::::::${c3}NN${c2}:::::::::: %s"
  3895. "${c1}  ;;;;;;;;;${c4}NN${c1};;;${c3}xW0${c2}:::::::${c3}NN${c2}:::::::::: %s"
  3896. "${c1}  ;;;;;;;;;;;;;;${c3}KMc${c2}::::::::::::::::::: %s"
  3897. "${c1}  ;;;;;;;;;;;;;${c3}lWX${c2}:::::::::::::::::::: %s"
  3898. "${c1}  ;;;;;;;;;;;;;${c3}xWWXXXXNN7${c2}::::::::::::: %s"
  3899. "${c1}  ;;;;;;;;;;;;;;;;;;;;${c3}WK${c2}:::::::::::::: %s"
  3900. "${c1}  ;;;;;${c4}TKX0ko.${c1};;;;;;;${c3}kMx${c2}:::${c3}.cOKNF${c2}::::: %s"
  3901. "${c1}  ;;;;;;;;${c4}\`kO0KKKKKKK${c3}NMNXK0OP*${c2}:::::::: %s"
  3902. "${c1}  ;;;;;;;;;;;;;;;;;;;${c3}kMx${c2}:::::::::::::: %s"
  3903. "${c1}  ;;;;;;;;;;;;;;;;;;;;${c3}WX${c2}:::::::::::::: %s"
  3904. "${c3}                      lMc              %s"
  3905. "${c3}                       kN.             %s"
  3906. "${c3}                        o'             %s"
  3907. "${c3}                                       %s")
  3908.         ;;
  3909.  
  3910.         "Windows"|"Cygwin"|"Msys")
  3911.             if [[ "$no_color" != "1" ]]; then
  3912.                 c1=$(getColor 'light red') # Red
  3913.                 c2=$(getColor 'light green') # Green
  3914.                 c3=$(getColor 'light blue') # Blue
  3915.                 c4=$(getColor 'yellow') # Yellow
  3916.             fi
  3917.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  3918.             startline="0"
  3919.             logowidth="37"
  3920.             fulloutput=(
  3921. "${c1}        ,.=:!!t3Z3z.,                %s"
  3922. "${c1}       :tt:::tt333EE3                %s"
  3923. "${c1}       Et:::ztt33EEEL${c2} @Ee.,      .., %s"
  3924. "${c1}      ;tt:::tt333EE7${c2} ;EEEEEEttttt33# %s"
  3925. "${c1}     :Et:::zt333EEQ.${c2} \$EEEEEttttt33QL %s"
  3926. "${c1}     it::::tt333EEF${c2} @EEEEEEttttt33F  %s"
  3927. "${c1}    ;3=*^\`\`\`\"*4EEV${c2} :EEEEEEttttt33@.  %s"
  3928. "${c3}    ,.=::::!t=., ${c1}\`${c2} @EEEEEEtttz33QF   %s"
  3929. "${c3}   ;::::::::zt33)${c2}   \"4EEEtttji3P*    %s"
  3930. "${c3}  :t::::::::tt33.${c4}:Z3z..${c2}  \`\`${c4} ,..g.    %s"
  3931. "${c3}  i::::::::zt33F${c4} AEEEtttt::::ztF     %s"
  3932. "${c3} ;:::::::::t33V${c4} ;EEEttttt::::t3      %s"
  3933. "${c3} E::::::::zt33L${c4} @EEEtttt::::z3F      %s"
  3934. "${c3}{3=*^\`\`\`\"*4E3)${c4} ;EEEtttt:::::tZ\`      %s"
  3935. "${c3}             \`${c4} :EEEEtttt::::z7       %s"
  3936. "${c4}                 \"VEzjt:;;z>*\`       %s")
  3937.         ;;
  3938.  
  3939.         "Windows - Modern")
  3940.             if [[ "$no_color" != "1" ]]; then
  3941.                 c1=$(getColor 'light blue') # Blue
  3942.             fi
  3943.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3944.             startline="0"
  3945.             logowidth="38"
  3946.             fulloutput=(
  3947. "${c1}                                  .., %s"
  3948. "${c1}                      ....,,:;+ccllll %s"
  3949. "${c1}        ...,,+:;  cllllllllllllllllll %s"
  3950. "${c1}  ,cclllllllllll  lllllllllllllllllll %s"
  3951. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3952. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3953. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3954. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3955. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3956. "${c1}                                      %s"
  3957. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3958. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3959. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3960. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3961. "${c1}  llllllllllllll  lllllllllllllllllll %s"
  3962. "${c1}  \`'ccllllllllll  lllllllllllllllllll %s"
  3963. "${c1}         \`'\"\"*::  :ccllllllllllllllll %s"
  3964. "${c1}                        \`\`\`\`''\"*::cll %s"
  3965. "${c1}                                   \`\` %s")
  3966.         ;;
  3967.  
  3968.         "Haiku")
  3969.             if [[ "$no_color" != "1" ]]; then
  3970.                 if [ "$haikualpharelease" == "yes" ]; then
  3971.                     c1=$(getColor 'black_haiku') # Black
  3972.                     c2=$(getColor 'light grey') # Light Gray
  3973.                 else
  3974.                     c1=$(getColor 'black') # Black
  3975.                     c2=${c1}
  3976.                 fi
  3977.                 c3=$(getColor 'green') # Green
  3978.             fi
  3979.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  3980.             startline="0"
  3981.             logowidth="36"
  3982.             fulloutput=(
  3983. "${c1}          :dc'                      %s"
  3984. "${c1}       'l:;'${c2},${c1}'ck.    .;dc:.         %s"
  3985. "${c1}       co    ${c2}..${c1}k.  .;;   ':o.       %s"
  3986. "${c1}       co    ${c2}..${c1}k. ol      ${c2}.${c1}0.       %s"
  3987. "${c1}       co    ${c2}..${c1}k. oc     ${c2}..${c1}0.       %s"
  3988. "${c1}       co    ${c2}..${c1}k. oc     ${c2}..${c1}0.       %s"
  3989. "${c1}.Ol,.  co ${c2}...''${c1}Oc;kkodxOdddOoc,.    %s"
  3990. "${c1} ';lxxlxOdxkxk0kd${c3}oooll${c1}dl${c3}ccc:${c1}clxd;   %s"
  3991. "${c1}     ..${c3}oOolllllccccccc:::::${c1}od;      %s"
  3992. "${c1}       cx:ooc${c3}:::::::;${c1}cooolcX.       %s"
  3993. "${c1}       cd${c2}.${c1}''cloxdoollc' ${c2}...${c1}0.       %s"
  3994. "${c1}       cd${c2}......${c1}k;${c2}.${c1}xl${c2}....  .${c1}0.       %s"
  3995. "${c1}       .::c${c2};..${c1}cx;${c2}.${c1}xo${c2}..... .${c1}0.       %s"
  3996. "${c1}          '::c'${c2}...${c1}do${c2}..... .${c1}K,       %s"
  3997. "${c1}                  cd,.${c2}....:${c1}O,${c2}...... %s"
  3998. "${c1}                    ':clod:'${c2}......  %s"
  3999. "${c1}                        ${c2}.           %s")
  4000.         ;;
  4001.  
  4002.         "Trisquel")
  4003.             if [[ "$no_color" != "1" ]]; then
  4004.                 c1=$(getColor 'light blue') # Light Blue
  4005.                 c2=$(getColor 'light cyan') # Blue
  4006.             fi
  4007.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4008.             startline="0"
  4009.             logowidth="38"
  4010.             fulloutput=(
  4011. "${c1}                          ▄▄▄▄▄▄      %s"
  4012. "${c1}                       ▄█████████▄    %s"
  4013. "${c1}       ▄▄▄▄▄▄         ████▀   ▀████   %s"
  4014. "${c1}    ▄██████████▄     ████▀   ▄▄ ▀███  %s"
  4015. "${c1}  ▄███▀▀   ▀▀████     ███▄   ▄█   ███ %s"
  4016. "${c1} ▄███   ▄▄▄   ████▄    ▀██████   ▄███ %s"
  4017. "${c1} ███   █▀▀██▄  █████▄     ▀▀   ▄████  %s"
  4018. "${c1} ▀███      ███  ███████▄▄  ▄▄██████   %s"
  4019. "${c1}  ▀███▄   ▄███  █████████████${c2}████▀    %s"
  4020. "${c1}   ▀█████████    ███████${c2}███▀▀▀        %s"
  4021. "${c1}     ▀▀███▀▀     ██${c2}████▀▀             %s"
  4022. "${c2}                ██████▀   ▄▄▄▄        %s"
  4023. "${c2}               █████▀   ████████      %s"
  4024. "${c2}               █████   ███▀  ▀███     %s"
  4025. "${c2}                ████▄   ██▄▄▄  ███    %s"
  4026. "${c2}                 █████▄   ▀▀  ▄██     %s"
  4027. "${c2}                   ██████▄▄▄████      %s"
  4028. "${c2}                    █████▀▀       %s")
  4029.         ;;
  4030.  
  4031.         "Manjaro")
  4032.             if [[ "$no_color" != "1" ]]; then
  4033.                 c1=$(getColor 'light green') # Green
  4034.             fi
  4035.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4036.             startline="0"
  4037.             logowidth="33"
  4038.             fulloutput=(
  4039. "${c1} ██████████████████  ████████    %s"
  4040. "${c1} ██████████████████  ████████    %s"
  4041. "${c1} ██████████████████  ████████    %s"
  4042. "${c1} ██████████████████  ████████    %s"
  4043. "${c1} ████████            ████████    %s"
  4044. "${c1} ████████  ████████  ████████    %s"
  4045. "${c1} ████████  ████████  ████████    %s"
  4046. "${c1} ████████  ████████  ████████    %s"
  4047. "${c1} ████████  ████████  ████████    %s"
  4048. "${c1} ████████  ████████  ████████    %s"
  4049. "${c1} ████████  ████████  ████████    %s"
  4050. "${c1} ████████  ████████  ████████    %s"
  4051. "${c1} ████████  ████████  ████████    %s"
  4052. "${c1} ████████  ████████  ████████    %s"
  4053. "                                 %s")
  4054.         ;;
  4055.  
  4056.         "Netrunner")
  4057.             if [[ "$no_color" != "1" ]]; then
  4058.                 c1=$(getColor 'light blue') # Blue
  4059.             fi
  4060.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4061.             startline="0"
  4062.             logowidth="43"
  4063.             fulloutput=(
  4064. "${c1} nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn  %s"
  4065. "${c1} nnnnnnnnnnnnnn            nnnnnnnnnnnnnn  %s"
  4066. "${c1} nnnnnnnnnn     nnnnnnnnnn     nnnnnnnnnn  %s"
  4067. "${c1} nnnnnnn   nnnnnnnnnnnnnnnnnnnn   nnnnnnn  %s"
  4068. "${c1} nnnn   nnnnnnnnnnnnnnnnnnnnnnnnnn   nnnn  %s"
  4069. "${c1} nnn  nnnnnnnnnnnnnnnnnnnnnnnnnnnnnn  nnn  %s"
  4070. "${c1} nn  nnnnnnnnnnnnnnnnnnnnnn  nnnnnnnn  nn  %s"
  4071. "${c1} n  nnnnnnnnnnnnnnnnn       nnnnnnnnnn  n  %s"
  4072. "${c1} n nnnnnnnnnnn              nnnnnnnnnnn n  %s"
  4073. "${c1} n nnnnnn                  nnnnnnnnnnnn n  %s"
  4074. "${c1} n nnnnnnnnnnn             nnnnnnnnnnnn n  %s"
  4075. "${c1} n nnnnnnnnnnnnn           nnnnnnnnnnnn n  %s"
  4076. "${c1} n nnnnnnnnnnnnnnnn       nnnnnnnnnnnnn n  %s"
  4077. "${c1} n nnnnnnnnnnnnnnnnn      nnnnnnnnnnnnn n  %s"
  4078. "${c1} n nnnnnnnnnnnnnnnnnn    nnnnnnnnnnnn   n  %s"
  4079. "${c1} nn  nnnnnnnnnnnnnnnnn   nnnnnnnnnnnn  nn  %s"
  4080. "${c1} nnn   nnnnnnnnnnnnnnn  nnnnnnnnnnn   nnn  %s"
  4081. "${c1} nnnnn   nnnnnnnnnnnnnn nnnnnnnnn   nnnnn  %s"
  4082. "${c1} nnnnnnn   nnnnnnnnnnnnnnnnnnnn   nnnnnnn  %s"
  4083. "${c1} nnnnnnnnnn     nnnnnnnnnn     nnnnnnnnnn  %s"
  4084. "${c1} nnnnnnnnnnnnnn            nnnnnnnnnnnnnn  %s"
  4085. "${c1} nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn  %s"
  4086. "${c1}                                           %s")
  4087.         ;;
  4088.  
  4089.             "Logos")
  4090.             if [[ "$no_color" != "1" ]]; then
  4091.                 c1=$(getColor 'green') # Green
  4092.             fi
  4093.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4094.             startline="0"
  4095.             logowidth="25"
  4096.             fulloutput=(
  4097. "${c1}    ..:.:.               %s"
  4098. "${c1}   ..:.:.:.:.            %s"
  4099. "${c1}  ..:.:.:.:.:.:.         %s"
  4100. "${c1} ..:.:.:.:.:.:.:.:.      %s"
  4101. "${c1}   .:.::;.::::..:.:.:.   %s"
  4102. "${c1}      .:.:.::.::.::.;;/  %s"
  4103. "${c1}         .:.::.::://///  %s"
  4104. "${c1}            ..;;///////  %s"
  4105. "${c1}            ///////////  %s"
  4106. "${c1}         //////////////  %s"
  4107. "${c1}      /////////////////  %s"
  4108. "${c1}   ///////////////////   %s"
  4109. "${c1} //////////////////      %s"
  4110. "${c1}  //////////////         %s"
  4111. "${c1}   //////////            %s"
  4112. "${c1}    //////               %s"
  4113. "${c1}     //                  %s")
  4114.         ;;
  4115.  
  4116.             "Manjaro-tree")
  4117.             if [[ "$no_color" != "1" ]]; then
  4118.                 c1="\e[1;32m" # Green
  4119.                 c2="\e[1;33m" # Yellow
  4120.             fi
  4121.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4122.             startline="0"
  4123.             logowidth="33"
  4124.             fulloutput=(
  4125. "${c1}                         ###     %s"
  4126. "${c1}     ###             ####        %s"
  4127. "${c1}        ###       ####           %s"
  4128. "${c1}         ##### #####             %s"
  4129. "${c1}      #################          %s"
  4130. "${c1}    ###     #####    ####        %s"
  4131. "${c1}   ##        ${c2}OOO       ${c1}###       %s"
  4132. "${c1}  #          ${c2}WW         ${c1}##       %s"
  4133. "${c1}            ${c2}WW            ${c1}#      %s"
  4134. "${c2}            WW                   %s"
  4135. "${c2}            WW                   %s"
  4136. "${c2}           WW                    %s"
  4137. "${c2}           WW                    %s"
  4138. "${c2}           WW                    %s"
  4139. "${c2}          WW                     %s"
  4140. "${c2}          WW                     %s"
  4141. "${c2}          WW                     %s"
  4142. "${c2}                                 %s")
  4143.         ;;
  4144.  
  4145.         "elementary OS"|"elementary os")
  4146.             if [[ "$no_color" != "1" ]]; then
  4147.                 c1=$(getColor 'white') # White
  4148.             fi
  4149.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4150.             startline="0"
  4151.             logowidth="36"
  4152.             fulloutput=(
  4153. "${c1}                                    %s"
  4154. "${c1}         eeeeeeeeeeeeeeeee          %s"
  4155. "${c1}      eeeeeeeeeeeeeeeeeeeeeee       %s"
  4156. "${c1}    eeeee  eeeeeeeeeeee   eeeee     %s"
  4157. "${c1}  eeee   eeeee       eee     eeee   %s"
  4158. "${c1} eeee   eeee          eee     eeee  %s"
  4159. "${c1}eee    eee            eee       eee %s"
  4160. "${c1}eee   eee            eee        eee %s"
  4161. "${c1}ee    eee           eeee       eeee %s"
  4162. "${c1}ee    eee         eeeee      eeeeee %s"
  4163. "${c1}ee    eee       eeeee      eeeee ee %s"
  4164. "${c1}eee   eeee   eeeeee      eeeee  eee %s"
  4165. "${c1}eee    eeeeeeeeee     eeeeee    eee %s"
  4166. "${c1} eeeeeeeeeeeeeeeeeeeeeeee    eeeee  %s"
  4167. "${c1}  eeeeeeee eeeeeeeeeeee      eeee   %s"
  4168. "${c1}    eeeee                 eeeee     %s"
  4169. "${c1}      eeeeeee         eeeeeee       %s"
  4170. "${c1}         eeeeeeeeeeeeeeeee          %s")
  4171.     ;;
  4172.  
  4173.         "Android")
  4174.             if [[ "$no_color" != "1" ]]; then
  4175.                 c1=$(getColor 'light green') # Bold Green
  4176.             fi
  4177.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4178.             startline="2"
  4179.             logowidth="24"
  4180.             fulloutput=(
  4181. "${c1}       ╲ ▁▂▂▂▁ ╱        "
  4182. "${c1}       ▄███████▄        "
  4183. "${c1}      ▄██ ███ ██▄       %s"
  4184. "${c1}     ▄███████████▄      %s"
  4185. "${c1}  ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄   %s"
  4186. "${c1}  ██ █████████████ ██   %s"
  4187. "${c1}  ██ █████████████ ██   %s"
  4188. "${c1}  ██ █████████████ ██   %s"
  4189. "${c1}  ██ █████████████ ██   %s"
  4190. "${c1}     █████████████      %s"
  4191. "${c1}      ███████████       %s"
  4192. "${c1}       ██     ██        %s"
  4193. "${c1}       ██     ██        %s")
  4194.         ;;
  4195.  
  4196.         "Scientific Linux")
  4197.             if [[ "$no_color" != "1" ]]; then
  4198.                 c1=$(getColor 'light blue')
  4199.                 c2=$(getColor 'light red')
  4200.                 c3=$(getColor 'white')
  4201.             fi
  4202.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4203.             startline="1"
  4204.             logowidth="44"
  4205.             fulloutput=(
  4206. "${c1}                  =/;;/-                    "
  4207. "${c1}                 +:    //                   %s"
  4208. "${c1}                /;      /;                  %s"
  4209. "${c1}               -X        H.                 %s"
  4210. "${c1} .//;;;:;;-,   X=        :+   .-;:=;:;#;.   %s"
  4211. "${c1} M-       ,=;;;#:,      ,:#;;:=,       ,@   %s"
  4212. "${c1} :#           :#.=/++++/=.$=           #=   %s"
  4213. "${c1}  ,#;         #/:+/;,,/++:+/         ;+.    %s"
  4214. "${c1}    ,+/.    ,;@+,        ,#H;,    ,/+,      %s"
  4215. "${c1}       ;+;;/= @.  ${c2}.H${c3}#${c2}#X   ${c1}-X :///+;         %s"
  4216. "${c1}       ;+=;;;.@,  ${c3}.X${c2}M${c3}@$.  ${c1}=X.//;=#/.        %s"
  4217. "${c1}    ,;:      :@#=        =\$H:     .+#-      %s"
  4218. "${c1}  ,#=         #;-///==///-//         =#,    %s"
  4219. "${c1} ;+           :#-;;;:;;;;-X-           +:   %s"
  4220. "${c1} @-      .-;;;;M-        =M/;;;-.      -X   %s"
  4221. "${c1}  :;;::;;-.    #-        :+    ,-;;-;:==    %s"
  4222. "${c1}               ,X        H.                 %s"
  4223. "${c1}                ;/      #=                  %s"
  4224. "${c1}                 //    +;                   %s"
  4225. "${c1}                  '////'                    %s")
  4226.         ;;
  4227.  
  4228.         "BackTrack Linux")
  4229.             if [[ "$no_color" != "1" ]]; then
  4230.                 c1=$(getColor 'white') # White
  4231.                 c2=$(getColor 'light red') # Light Red
  4232.             fi
  4233.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4234.             startline="1"
  4235.             logowidth="48"
  4236.             fulloutput=(
  4237. "${c1}..............                                  "
  4238. "${c1}            ..,;:ccc,.                          %s"
  4239. "${c1}          ......''';lxO.                        %s"
  4240. "${c1}.....''''..........,:ld;                        %s"
  4241. "${c1}           .';;;:::;,,.x,                       %s"
  4242. "${c1}      ..'''.            0Xxoc:,.  ...           %s"
  4243. "${c1}  ....                ,ONkc;,;cokOdc',.         %s"
  4244. "${c1} .                   OMo           ':${c2}dd${c1}o.       %s"
  4245. "${c1}                    dMc               :OO;      %s"
  4246. "${c1}                    0M.                 .:o.    %s"
  4247. "${c1}                    ;Wd                         %s"
  4248. "${c1}                     ;XO,                       %s"
  4249. "${c1}                       ,d0Odlc;,..              %s"
  4250. "${c1}                           ..',;:cdOOd::,.      %s"
  4251. "${c1}                                    .:d;.':;.   %s"
  4252. "${c1}                                       'd,  .'  %s"
  4253. "${c1}                                         ;l   ..%s"
  4254. "${c1}                                          .o    %s"
  4255. "${c1}                                            c   %s"
  4256. "${c1}                                            .'  %s"
  4257. "${c1}                                             .  %s")
  4258.         ;;
  4259.  
  4260.         "Kali Linux")
  4261.             if [[ "$no_color" != "1" ]]; then
  4262.                 c1=$(getColor 'light blue') # White
  4263.                 c2=$(getColor 'black') # Light Red
  4264.             fi
  4265.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4266.             startline="1"
  4267.             logowidth="48"
  4268.             fulloutput=(
  4269. "${c1}..............                                  "
  4270. "${c1}            ..,;:ccc,.                          %s"
  4271. "${c1}          ......''';lxO.                        %s"
  4272. "${c1}.....''''..........,:ld;                        %s"
  4273. "${c1}           .';;;:::;,,.x,                       %s"
  4274. "${c1}      ..'''.            0Xxoc:,.  ...           %s"
  4275. "${c1}  ....                ,ONkc;,;cokOdc',.         %s"
  4276. "${c1} .                   OMo           ':${c2}dd${c1}o.       %s"
  4277. "${c1}                    dMc               :OO;      %s"
  4278. "${c1}                    0M.                 .:o.    %s"
  4279. "${c1}                    ;Wd                         %s"
  4280. "${c1}                     ;XO,                       %s"
  4281. "${c1}                       ,d0Odlc;,..              %s"
  4282. "${c1}                           ..',;:cdOOd::,.      %s"
  4283. "${c1}                                    .:d;.':;.   %s"
  4284. "${c1}                                       'd,  .'  %s"
  4285. "${c1}                                         ;l   ..%s"
  4286. "${c1}                                          .o    %s"
  4287. "${c1}                                            c   %s"
  4288. "${c1}                                            .'  %s"
  4289. "${c1}                                             .  %s")
  4290.         ;;
  4291.  
  4292.         "Sabayon")
  4293.             if [[ "$no_color" != "1" ]]; then
  4294.                 c1=$(getColor 'white') # White
  4295.                 c2=$(getColor 'light blue') # Blue
  4296.             fi
  4297.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4298.             startline="0"
  4299.             logowidth="38"
  4300.             fulloutput=(
  4301. "${c2}            ...........               %s"
  4302. "${c2}         ..             ..            %s"
  4303. "${c2}      ..                   ..         %s"
  4304. "${c2}    ..           ${c1}o           ${c2}..       %s"
  4305. "${c2}  ..            ${c1}:W'            ${c2}..     %s"
  4306. "${c2} ..             ${c1}.d.             ${c2}..    %s"
  4307. "${c2}:.             ${c1}.KNO              ${c2}.:   %s"
  4308. "${c2}:.             ${c1}cNNN.             ${c2}.:   %s"
  4309. "${c2}:              ${c1}dXXX,              ${c2}:   %s"
  4310. "${c2}:   ${c1}.          dXXX,       .cd,   ${c2}:   %s"
  4311. "${c2}:   ${c1}'kc ..     dKKK.    ,ll;:'    ${c2}:   %s"
  4312. "${c2}:     ${c1}.xkkxc;..dkkkc',cxkkl       ${c2}:   %s"
  4313. "${c2}:.     ${c1}.,cdddddddddddddo:.       ${c2}.:   %s"
  4314. "${c2} ..         ${c1}:lllllll:           ${c2}..    %s"
  4315. "${c2}   ..         ${c1}',,,,,          ${c2}..      %s"
  4316. "${c2}     ..                     ..        %s"
  4317. "${c2}        ..               ..           %s"
  4318. "${c2}          ...............             %s")
  4319.         ;;
  4320.  
  4321.         "KaOS")
  4322.             if [[ "$no_color" != "1" ]]; then
  4323.                 c1=$(getColor 'light blue')
  4324.             fi
  4325.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4326.             startline="0"
  4327.             logowidth="35"
  4328.             fulloutput=(
  4329. "${c1}                     ..            %s"
  4330. "${c1}  .....         ..OSSAAAAAAA..     %s"
  4331. "${c1} .KKKKSS.     .SSAAAAAAAAAAA.      %s"
  4332. "${c1}.KKKKKSO.    .SAAAAAAAAAA...       %s"
  4333. "${c1}KKKKKKS.   .OAAAAAAAA.             %s"
  4334. "${c1}KKKKKKS.  .OAAAAAA.                %s"
  4335. "${c1}KKKKKKS. .SSAA..                   %s"
  4336. "${c1}.KKKKKS..OAAAAAAAAAAAA........     %s"
  4337. "${c1} DKKKKO.=AA=========A===AASSSO..   %s"
  4338. "${c1}  AKKKS.==========AASSSSAAAAAASS.  %s"
  4339. "${c1}  .=KKO..========ASS.....SSSSASSSS.%s"
  4340. "${c1}    .KK.       .ASS..O.. =SSSSAOSS:%s"
  4341. "${c1}     .OK.      .ASSSSSSSO...=A.SSA.%s"
  4342. "${c1}       .K      ..SSSASSSS.. ..SSA. %s"
  4343. "${c1}                 .SSS.AAKAKSSKA.   %s"
  4344. "${c1}                    .SSS....S..    %s")
  4345.         ;;
  4346.  
  4347.         "CentOS")
  4348.             if [[ "$no_color" != "1" ]]; then
  4349.                 c1=$(getColor 'yellow')
  4350.                 c2=$(getColor 'light green')
  4351.                 c3=$(getColor 'light blue')
  4352.                 c4=$(getColor 'light purple')
  4353.             fi
  4354.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  4355.             startline="0"
  4356.             logowidth="40"
  4357.             fulloutput=(
  4358. "${c1}                   ..                   %s"
  4359. "${c1}                 .PLTJ.                 %s"
  4360. "${c1}                <><><><>                %s"
  4361. "${c2}       KKSSV' 4KKK ${c1}LJ${c4} KKKL.'VSSKK       %s"
  4362. "${c2}       KKV' 4KKKKK ${c1}LJ${c4} KKKKAL 'VKK       %s"
  4363. "${c2}       V' ' 'VKKKK ${c1}LJ${c4} KKKKV' ' 'V       %s"
  4364. "${c2}       .4MA.' 'VKK ${c1}LJ${c4} KKV' '.4Mb.       %s"
  4365. "${c4}     . ${c2}KKKKKA.' 'V ${c1}LJ${c4} V' '.4KKKKK ${c3}.     %s"
  4366. "${c4}   .4D ${c2}KKKKKKKA.'' ${c1}LJ${c4} ''.4KKKKKKK ${c3}FA.   %s"
  4367. "${c4}  <QDD ++++++++++++  ${c3}++++++++++++ GFD>  %s"
  4368. "${c4}   'VD ${c3}KKKKKKKK'.. ${c2}LJ ${c1}..'KKKKKKKK ${c3}FV    %s"
  4369. "${c4}     ' ${c3}VKKKKK'. .4 ${c2}LJ ${c1}K. .'KKKKKV ${c3}'     %s"
  4370. "${c3}        'VK'. .4KK ${c2}LJ ${c1}KKA. .'KV'        %s"
  4371. "${c3}       A. . .4KKKK ${c2}LJ ${c1}KKKKA. . .4       %s"
  4372. "${c3}       KKA. 'KKKKK ${c2}LJ ${c1}KKKKK' .4KK       %s"
  4373. "${c3}       KKSSA. VKKK ${c2}LJ ${c1}KKKV .4SSKK       %s"
  4374. "${c2}                <><><><>                %s"
  4375. "${c2}                 'MKKM'                 %s"
  4376. "${c2}                   ''                   %s")
  4377.         ;;
  4378.  
  4379.         "Jiyuu Linux")
  4380.             if [[ "$no_color" != "1" ]]; then
  4381.                 c1=$(getColor 'light blue') # Light Blue
  4382.             fi
  4383.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4384.             startline="0"
  4385.             logowidth="31"
  4386.             fulloutput=(
  4387. "${c1}+++++++++++++++++++++++.       %s"
  4388. "${c1}ss:-......-+so/:----.os-       %s"
  4389. "${c1}ss        +s/        os-       %s"
  4390. "${c1}ss       :s+         os-       %s"
  4391. "${c1}ss       os.         os-       %s"
  4392. "${c1}ss      .so          os-       %s"
  4393. "${c1}ss      :s+          os-       %s"
  4394. "${c1}ss      /s/          os-       %s"
  4395. "${c1}ss      /s:          os-       %s"
  4396. "${c1}ss      +s-          os-       %s"
  4397. "${c1}ss-.....os:..........os-       %s"
  4398. "${c1}++++++++os+++++++++oooo.       %s"
  4399. "${c1}        os.     ./oo/.         %s"
  4400. "${c1}        os.   ./oo:            %s"
  4401. "${c1}        os. ./oo:              %s"
  4402. "${c1}        os oo+-                %s"
  4403. "${c1}        os+-                   %s"
  4404. "${c1}        /.                     %s")
  4405.         ;;
  4406.  
  4407.         "Antergos")
  4408.             if [[ "$no_color" != "1" ]]; then
  4409.                 c1=$(getColor 'blue') # Light Blue
  4410.                 c2=$(getColor 'light blue') # Light Blue
  4411.             fi
  4412.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4413.             startline="1"
  4414.             logowidth="41"
  4415.             fulloutput=(
  4416. "${c1}               \`.-/::/-\`\`                "
  4417. "${c1}            .-/osssssssso/.              %s"
  4418. "${c1}           :osyysssssssyyys+-            %s"
  4419. "${c1}        \`.+yyyysssssssssyyyyy+.          %s"
  4420. "${c1}       \`/syyyyyssssssssssyyyyys-\`        %s"
  4421. "${c1}      \`/yhyyyyysss${c2}++${c1}ssosyyyyhhy/\`        %s"
  4422. "${c1}     .ohhhyyyys${c2}o++/+o${c1}so${c2}+${c1}syy${c2}+${c1}shhhho.      %s"
  4423. "${c1}    .shhhhys${c2}oo++//+${c1}sss${c2}+++${c1}yyy${c2}+s${c1}hhhhs.     %s"
  4424. "${c1}   -yhhhhs${c2}+++++++o${c1}ssso${c2}+++${c1}yyy${c2}s+o${c1}hhddy:    %s"
  4425. "${c1}  -yddhhy${c2}o+++++o${c1}syyss${c2}++++${c1}yyy${c2}yooy${c1}hdddy-   %s"
  4426. "${c1} .yddddhs${c2}o++o${c1}syyyyys${c2}+++++${c1}yyhh${c2}sos${c1}hddddy\`  %s"
  4427. "${c1}\`odddddhyosyhyyyyyy${c2}++++++${c1}yhhhyosddddddo  %s"
  4428. "${c1}.dmdddddhhhhhhhyyyo${c2}+++++${c1}shhhhhohddddmmh. %s"
  4429. "${c1}ddmmdddddhhhhhhhso${c2}++++++${c1}yhhhhhhdddddmmdy %s"
  4430. "${c1}dmmmdddddddhhhyso${c2}++++++${c1}shhhhhddddddmmmmh %s"
  4431. "${c1}-dmmmdddddddhhys${c2}o++++o${c1}shhhhdddddddmmmmd- %s"
  4432. "${c1} .smmmmddddddddhhhhhhhhhdddddddddmmmms.  %s"
  4433. "${c1}   \`+ydmmmdddddddddddddddddddmmmmdy/.    %s"
  4434. "${c1}      \`.:+ooyyddddddddddddyyso+:.\`       %s")
  4435.         ;;
  4436.  
  4437.         "Void")
  4438.             if [[ "$no_color" != "1" ]]; then
  4439.                 c1=$(getColor 'green')       # Dark Green
  4440.                 c2=$(getColor 'light green') # Light Green
  4441.                 c3=$(getColor 'dark grey')   # Black
  4442.             fi
  4443.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4444.             startline="0"
  4445.             logowidth="47"
  4446.             fulloutput=(
  4447. "${c2}                 __.;=====;.__                 %s"
  4448. "${c2}             _.=+==++=++=+=+===;.              %s"
  4449. "${c2}              -=+++=+===+=+=+++++=_            %s"
  4450. "${c1}         .     ${c2}-=:\`\`     \`--==+=++==.          %s"
  4451. "${c1}        _vi,    ${c2}\`            --+=++++:         %s"
  4452. "${c1}       .uvnvi.       ${c2}_._       -==+==+.        %s"
  4453. "${c1}      .vvnvnI\`    ${c2}.;==|==;.     :|=||=|.       %s"
  4454. "${c3} +QmQQm${c1}pvvnv; ${c3}_yYsyQQWUUQQQm #QmQ#${c2}:${c3}QQQWUV\$QQmL %s"
  4455. "${c3}  -QQWQW${c1}pvvo${c3}wZ?.wQQQE${c2}==<${c3}QWWQ/QWQW.QQWW${c2}(: ${c3}jQWQE %s"
  4456. "${c3}   -\$QQQQmmU'  jQQQ@${c2}+=<${c3}QWQQ)mQQQ.mQQQC${c2}+;${c3}jWQQ@' %s"
  4457. "${c3}    -\$WQ8Y${c1}nI:   ${c3}QWQQwgQQWV${c2}\`${c3}mWQQ.jQWQQgyyWW@!   %s"
  4458. "${c1}      -1vvnvv.     ${c2}\`~+++\`        ++|+++        %s"
  4459. "${c1}       +vnvnnv,                 ${c2}\`-|===         %s"
  4460. "${c1}        +vnvnvns.           .      ${c2}:=-         %s"
  4461. "${c1}         -Invnvvnsi..___..=sv=.     ${c2}\`          %s"
  4462. "${c1}           +Invnvnvnnnnnnnnvvnn;.              %s"
  4463. "${c1}             ~|Invnvnvvnvvvnnv}+\`              %s"
  4464. "${c1}                -~\"|{*l}*|\"\"~                  %s")
  4465.         ;;
  4466.  
  4467.         "NixOS")
  4468.             if [[ "$no_color" != "1" ]]; then
  4469.                 c1=$(getColor 'blue')
  4470.                 c2=$(getColor 'light blue')
  4471.             fi
  4472.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4473.             startline="0"
  4474.             logowidth="45"
  4475.             fulloutput=(
  4476. "${c1}          ::::.    ${c2}':::::     ::::'          %s"
  4477. "${c1}          ':::::    ${c2}':::::.  ::::'           %s"
  4478. "${c1}            :::::     ${c2}'::::.:::::            %s"
  4479. "${c1}      .......:::::..... ${c2}::::::::             %s"
  4480. "${c1}     ::::::::::::::::::. ${c2}::::::    ${c1}::::.     %s"
  4481. "${c1}    ::::::::::::::::::::: ${c2}:::::.  ${c1}.::::'     %s"
  4482. "${c2}           .....           ::::' ${c1}:::::'      %s"
  4483. "${c2}          :::::            '::' ${c1}:::::'       %s"
  4484. "${c2} ........:::::               ' ${c1}:::::::::::.  %s"
  4485. "${c2}:::::::::::::                 ${c1}:::::::::::::  %s"
  4486. "${c2} ::::::::::: ${c1}..              :::::           %s"
  4487. "${c2}     .::::: ${c1}.:::            :::::            %s"
  4488. "${c2}    .:::::  ${c1}:::::          '''''    ${c2}.....    %s"
  4489. "${c2}    :::::   ${c1}':::::.  ${c2}......:::::::::::::'    %s"
  4490. "${c2}     :::     ${c1}::::::. ${c2}':::::::::::::::::'     %s"
  4491. "${c1}            .:::::::: ${c2}'::::::::::            %s"
  4492. "${c1}           .::::''::::.     ${c2}'::::.           %s"
  4493. "${c1}          .::::'   ::::.     ${c2}'::::.          %s"
  4494. "${c1}         .::::      ::::      ${c2}'::::.         %s")
  4495.         ;;
  4496.  
  4497.         "GuixSD")
  4498.             if [[ "$no_color" != "1" ]]; then
  4499.                 c1=$(getColor 'orange')
  4500.                 c2=$(getColor 'light orange')
  4501.             fi
  4502.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4503.             startline="0"
  4504.             logowidth="40"
  4505.             fulloutput=(
  4506. "${c1} +                                    ? %s"
  4507. "${c1} ??                                  ?I %s"
  4508. "${c1}  ??I?   I??N              ${c2}???    ${c1}????  %s"
  4509. "${c1}   ?III7${c2}???????          ??????${c1}7III?Z   %s"
  4510. "${c1}     OI77\$${c2}?????         ?????${c1}$77II      %s"
  4511. "${c1}           ?????        ${c2}????            %s"
  4512. "${c1}            ???ID      ${c2}????             %s"
  4513. "${c1}             IIII     ${c2}+????             %s"
  4514. "${c1}             IIIII    ${c2}????              %s"
  4515. "${c1}              IIII   ${c2}?????              %s"
  4516. "${c1}              IIIII  ${c2}????               %s"
  4517. "${c1}               II77 ${c2}????$               %s"
  4518. "${c1}               7777+${c2}????                %s"
  4519. "${c1}                77++?${c2}??$                %s"
  4520. "${c1}                N?+???${c2}?                 %s")
  4521.             ;;
  4522.         "BunsenLabs")
  4523.             if [[ "$no_color" != "1" ]]; then
  4524.                 c1=$(getColor 'blue')
  4525.             fi
  4526.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4527.             startline="5"
  4528.             logowidth="25"
  4529.             fulloutput=(
  4530. "${c1}            HC]          "
  4531. "${c1}          H]]]]          "
  4532. "${c1}        H]]]]]]4         "
  4533. "${c1}      @C]]]]]]]]*        "
  4534. "${c1}     @]]]]]]]]]]xd       "
  4535. "${c1}    @]]]]]]]]]]]]]d      %s"
  4536. "${c1}   0]]]]]]]]]]]]]]]]     %s"
  4537. "${c1}   kx]]]]]]x]]x]]]]]%%    %s"
  4538. "${c1}  #x]]]]]]]]]]]]]x]]]d   %s"
  4539. "${c1}  #]]]]]]qW  x]]x]]]]]4  %s"
  4540. "${c1}  k]x]]xg     %%x]]]]]]%%  %s"
  4541. "${c1}  Wx]]]W       x]]]]]]]  %s"
  4542. "${c1}  #]]]4         xx]]x]]  %s"
  4543. "${c1}   px]           ]]]]]x  %s"
  4544. "${c1}   Wx]           x]]x]]  %s"
  4545. "${c1}    &x           x]]]]   %s"
  4546. "${c1}     m           x]]]]   %s"
  4547. "${c1}                 x]x]    %s"
  4548. "${c1}                 x]]]    %s"
  4549. "${c1}                ]]]]     %s"
  4550. "${c1}                x]x      %s"
  4551. "${c1}               x]q       %s"
  4552. "${c1}               ]g        %s"
  4553. "${c1}              q          %s")
  4554.         ;;
  4555.  
  4556.         "SteamOS")
  4557.             if [[ "$no_color" != "1" ]]; then
  4558.                 c1=$(getColor 'grey') # Gray
  4559.                 c2=$(getColor 'purple') # Dark Purple
  4560.                 c3=$(getColor 'light purple') # Light Purple
  4561.             fi
  4562.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4563.             startline="0"
  4564.             logowidth="37"
  4565.             fulloutput=(
  4566. "${c2}               .,,,,.                %s"
  4567. "${c2}         .,'onNMMMMMNNnn',.          %s"
  4568. "${c2}      .'oNM${c3}ANK${c2}MMMMMMMMMMMNNn'.       %s"
  4569. "${c3}    .'ANMMMMMMMXK${c2}NNWWWPFFWNNMNn.     %s"
  4570. "${c3}   ;NNMMMMMMMMMMNWW'' ${c2},.., 'WMMM,    %s"
  4571. "${c3}  ;NMMMMV+##+VNWWW' ${c3}.+;'':+, 'WM${c2}W,   %s"
  4572. "${c3} ,VNNWP+${c1}######${c3}+WW,  ${c1}+:    ${c3}:+, +MMM,  %s"
  4573. "${c3} '${c1}+#############,   +.    ,+' ${c3}+NMMM  %s"
  4574. "${c1}   '*#########*'     '*,,*' ${c3}.+NMMMM. %s"
  4575. "${c1}      \`'*###*'          ,.,;###${c3}+WNM, %s"
  4576. "${c1}          .,;;,      .;##########${c3}+W  %s"
  4577. "${c1} ,',.         ';  ,+##############'  %s"
  4578. "${c1}  '###+. :,. .,; ,###############'   %s"
  4579. "${c1}   '####.. \`'' .,###############'    %s"
  4580. "${c1}     '#####+++################'      %s"
  4581. "${c1}       '*##################*'        %s"
  4582. "${c1}          ''*##########*''           %s"
  4583. "${c1}               ''''''                %s")
  4584.         ;;
  4585.  
  4586.         "SailfishOS")
  4587.             if [[ "$no_color" != "1" ]]; then
  4588.                 c1=$(getColor 'blue') # Blue
  4589.             fi
  4590.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4591.             startline="0"
  4592.             logowidth="32"
  4593.             fulloutput=(
  4594. "${c1}              .+eWWW            %s"
  4595. "${c1}          .+ee+++eee      e.    %s"
  4596. "${c1}       .ee++eeeeeeee    +e.     %s"
  4597. "${c1}     .e++ee++eeeeeee+eee+e+     %s"
  4598. "${c1}    ee.e+.ee+eee++eeeeee+       %s"
  4599. "${c1}   W.+e.e+.e++ee+eee            %s"
  4600. "${c1}  W.+e.W.ee.W++ee'              %s"
  4601. "${c1} +e.W W.e+.W.W+                 %s"
  4602. "${c1} W.e.+e.W W W.                  %s"
  4603. "${c1} e e e +e.W.W                   %s"
  4604. "${c1}       .W W W.                  %s"
  4605. "${c1}        W.+e.W.                 %s"
  4606. "${c1}         W++e.ee+.              %s"
  4607. "${c1}          ++ +ee++eeeee++.      %s"
  4608. "${c1}          '     '+++e   'ee.    %s"
  4609. "${c1}                           ee   %s"
  4610. "${c1}                            ee  %s"
  4611. "${c1}                             e  %s")
  4612.         ;;
  4613.  
  4614.         "Qubes OS")
  4615.             if [[ "$no_color" != "1" ]]; then
  4616.                 c1=$(getColor 'cyan')
  4617.                 c2=$(getColor 'blue')
  4618.                 c3=$(getColor 'light blue')
  4619.             fi
  4620.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4621.             startline="0"
  4622.             logowidth="47"
  4623.             fulloutput=(
  4624. "${c3}                      ####                     %s"
  4625. "${c3}                    ########                   %s"
  4626. "${c3}                  ############                 %s"
  4627. "${c3}                #######  #######               %s"
  4628. "${c1}              #${c3}######      ######${c2}#             %s"
  4629. "${c1}            ####${c3}###          ###${c2}####           %s"
  4630. "${c1}          ######        ${c2}        ######         %s"
  4631. "${c1}          ######        ${c2}        ######         %s"
  4632. "${c1}          ######        ${c2}        ######         %s"
  4633. "${c1}          ######        ${c2}        ######         %s"
  4634. "${c1}          ######        ${c2}        ######         %s"
  4635. "${c1}            #######     ${c2}     #######           %s"
  4636. "${c1}              #######   ${c2}   #########           %s"
  4637. "${c1}                ####### ${c2} ##############        %s"
  4638. "${c1}                  ######${c2}######  ######         %s"
  4639. "${c1}                    ####${c2}####     ###           %s"
  4640. "${c1}                      ##${c2}##                     %s"
  4641. "${c1}                                               %s")
  4642.         ;;
  4643.  
  4644.         "PCLinuxOS")
  4645.             if [[ "$no_color" != "1" ]]; then
  4646.                 c1=$(getColor 'blue') # Blue
  4647.                 c2=$(getColor 'light grey') # White
  4648.             fi
  4649.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4650.             startline="0"
  4651.             logowidth="50"
  4652.             fulloutput=(
  4653. "${c1}                                                  %s"
  4654. "${c1}                                             <NNN>%s"
  4655. "${c1}                                           <NNY   %s"
  4656. "${c1}                 <ooooo>--.               ((      %s"
  4657. "${c1}               Aoooooooooooo>--.           \\\\\\     %s"
  4658. "${c1}              AooodNNNNNNNNNNNNNNNN>--.     ))    %s"
  4659. "${c2}          (${c1}  AoodNNNNNNNNNNNNNNNNNNNNNNN>-///'    %s"
  4660. "${c2}          \\\\\\\\${c1}AodNNNNNNNNNNNNNNNNNNNNNNNNNNNY/      %s"
  4661. "${c1}           AodNNNNNNNNNNNNNNNNNNNNNNNNNNNNN       %s"
  4662. "${c1}          AdNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNA       %s"
  4663. "${c1}         (${c2}/)${c1}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNA      %s"
  4664. "${c2}         //${c1}<NNNNNNNNNNNNNNNNNY'   YNNY YNNNN      %s"
  4665. "${c2} ,====#Y//${c1}   \`<NNNNNNNNNNNY       ANY     YNA     %s"
  4666. "${c1}               ANY<NNNNYYN       .NY        YN.   %s"
  4667. "${c1}             (NNY       NN      (NND       (NND   %s"
  4668. "${c1}                      (NNU                        %s"
  4669. "${c1}                                                  %s")
  4670.         ;;
  4671.  
  4672.         "Exherbo")
  4673.             if [[ "$no_color" != "1" ]]; then
  4674.                 c1=$(getColor 'dark grey')  # Black
  4675.                 c2=$(getColor 'light blue') # Blue
  4676.                 c3=$(getColor 'light red')  # Beige
  4677.             fi
  4678.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4679.             startline="0"
  4680.             logowidth="46"
  4681.             fulloutput=(
  4682. "${c1}  ,                                           %s"
  4683. "${c1}  OXo.                                        %s"
  4684. "${c1}  NXdX0:    .cok0KXNNXXK0ko:.                 %s"
  4685. "${c1}  KX  '0XdKMMK;.xMMMk, .0MMMMMXx;  ...        %s"
  4686. "${c1}  'NO..xWkMMx   kMMM    cMMMMMX,NMWOxOXd.     %s"
  4687. "${c1}    cNMk  NK    .oXM.   OMMMMO. 0MMNo  kW.    %s"
  4688. "${c1}    lMc   o:       .,   .oKNk;   ;NMMWlxW'    %s"
  4689. "${c1}   ;Mc    ..   .,,'    .0M${c2}g;${c1}WMN'dWMMMMMMO     %s"
  4690. "${c1}   XX        ,WMMMMW.  cM${c2}cfli${c1}WMKlo.   .kMk    %s"
  4691. "${c1}  .Mo        .WM${c2}GD${c1}MW.   XM${c2}WO0${c1}MMk        oMl   %s"
  4692. "${c1}  ,M:         ,XMMWx::,''oOK0x;          NM.  %s"
  4693. "${c1}  'Ml      ,kNKOxxxxxkkO0XXKOd:.         oMk  %s"
  4694. "${c1}   NK    .0Nxc${c3}:::::::::::::::${c1}fkKNk,      .MW  %s"
  4695. "${c1}   ,Mo  .NXc${c3}::${c1}qXWXb${c3}::::::::::${c1}oo${c3}::${c1}lNK.    .MW  %s"
  4696. "${c1}    ;Wo oMd${c3}:::${c1}oNMNP${c3}::::::::${c1}oWMMMx${c3}:${c1}c0M;   lMO  %s"
  4697. "${c1}     'NO;W0c${c3}:::::::::::::::${c1}dMMMMO${c3}::${c1}lMk  .WM'  %s"
  4698. "${c1}       xWONXdc${c3}::::::::::::::${c1}oOOo${c3}::${c1}lXN. ,WMd   %s"
  4699. "${c1}        'KWWNXXK0Okxxo,${c3}:::::::${c1},lkKNo  xMMO    %s"
  4700. "${c1}          :XMNxl,';:lodxkOO000Oxc. .oWMMo     %s"
  4701. "${c1}            'dXMMXkl;,.        .,o0MMNo'      %s"
  4702. "${c1}               ':d0XWMMMMWNNNNMMMNOl'         %s"
  4703. "${c1}                     ':okKXWNKkl'             %s")
  4704.         ;;
  4705.  
  4706.         "Red Star OS")
  4707.             if [[ "$no_color" != "1" ]]; then
  4708.                 c1=$(getColor 'light red')  # Red
  4709.             fi
  4710.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4711.             startline="0"
  4712.             logowidth="45"
  4713.             fulloutput=(
  4714. "${c1}                      ..                     %s"
  4715. "${c1}                    .oK0l                    %s"
  4716. "${c1}                   :0KKKKd.                  %s"
  4717. "${c1}                 .xKO0KKKKd                  %s"
  4718. "${c1}                ,Od' .d0000l                 %s"
  4719. "${c1}               .c;.   .'''...           ..'. %s"
  4720. "${c1}  .,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx:  %s"
  4721. "${c1}  ;kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,.   %s"
  4722. "${c1}   .okkkkd,.lko  .......',;:cllc:;,,'''''.   %s"
  4723. "${c1}     .cdo. :xd' cd:.  ..';'',,,'',,;;;,'.    %s"
  4724. "${c1}        . .ddl.;doooc'..;oc;'..';::;,'.      %s"
  4725. "${c1}          coo;.oooolllllllcccc:'.  .         %s"
  4726. "${c1}         .ool''lllllccccccc:::::;.           %s"
  4727. "${c1}         ;lll. .':cccc:::::::;;;;'           %s"
  4728. "${c1}         :lcc:'',..';::::;;;;;;;,,.          %s"
  4729. "${c1}         :cccc::::;...';;;;;,,,,,,.          %s"
  4730. "${c1}         ,::::::;;;,'.  ..',,,,'''.          %s"
  4731. "${c1}          ........          ......           %s"
  4732. "${c1}                                             %s")
  4733.         ;;
  4734.  
  4735.         "SparkyLinux")
  4736.             if [[ "$no_color" != "1" ]]; then
  4737.                 c1=$(getColor 'light gray') # Gray
  4738.             fi
  4739.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4740.             startline="0"
  4741.             logowidth="48"
  4742.             fulloutput=(
  4743. "${c1}             .            \`-:-\`                %s"
  4744. "${c1}            .o\`       .-///-\`                  %s"
  4745. "${c1}           \`oo\`    .:/++:.                     %s"
  4746. "${c1}           os+\`  -/+++:\` \`\`.........\`\`\`        %s"
  4747. "${c1}          /ys+\`./+++/-.-::::::----......\`\`     %s"
  4748. "${c1}         \`syyo\`++o+--::::-::/+++/-\`\`           %s"
  4749. "${c1}         -yyy+.+o+\`:/:-:sdmmmmmmmmdy+-\`        %s"
  4750. "${c1}  ::-\`   :yyy/-oo.-+/\`ymho++++++oyhdmdy/\`      %s"
  4751. "${c1}  \`/yy+-\`.syyo\`+o..o--h..osyhhddhs+//osyy/\`    %s"
  4752. "${c1}    -ydhs+-oyy/.+o.-: \` \`  :/::+ydhy+\`\`\`-os-   %s"
  4753. "${c1}     .sdddy::syo--/:.     \`.:dy+-ohhho    ./:  %s"
  4754. "${c1}       :yddds/:+oo+//:-\`- /+ +hy+.shhy:     \`\` %s"
  4755. "${c1}        \`:ydmmdysooooooo-.ss\`/yss--oyyo        %s"
  4756. "${c1}          \`./ossyyyyo+:-/oo:.osso- .oys        %s"
  4757. "${c1}         \`\`..-------::////.-oooo/   :so        %s"
  4758. "${c1}      \`...----::::::::--.\`/oooo:    .o:        %s"
  4759. "${c1}             \`\`\`\`\`\`\`     ++o+:\`     \`:\`        %s"
  4760. "${c1}                       ./+/-\`        \`         %s"
  4761. "${c1}                     \`-:-.                     %s"
  4762. "${c1}                     \`\`                        %s")
  4763.         ;;
  4764.  
  4765.         "Pardus")
  4766.             if [[ "$no_color" != "1" ]]; then
  4767.                 c1=$(getColor 'yellow') # Light Yellow
  4768.                 c2=$(getColor 'dark grey') # Light Gray
  4769.             fi
  4770.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4771.             startline="1"
  4772.             logowidth="45"
  4773.             fulloutput=(
  4774. ""
  4775. "${c1}   .smNdy+-    \`.:/osyyso+:.\`    -+ydmNs.   %s"
  4776. "${c1}  /Md- -/ymMdmNNdhso/::/oshdNNmdMmy/. :dM/  %s"
  4777. "${c1}  mN.     oMdyy- -y          \`-dMo     .Nm  %s"
  4778. "${c1}  .mN+\`  sMy hN+ -:             yMs  \`+Nm.  %s"
  4779. "${c1}   \`yMMddMs.dy \`+\`               sMddMMy\`   %s"
  4780. "${c1}     +MMMo  .\`  .                 oMMM+     %s"
  4781. "${c1}     \`NM/    \`\`\`\`\`.\`    \`.\`\`\`\`\`    +MN\`     %s"
  4782. "${c1}     yM+   \`.-:yhomy    ymohy:-.\`   +My     %s"
  4783. "${c1}     yM:          yo    oy          :My     %s"
  4784. "${c1}     +Ms         .N\`    \`N.      +h sM+     %s"
  4785. "${c1}     \`MN      -   -::::::-   : :o:+\`NM\`     %s"
  4786. "${c1}      yM/    sh   -dMMMMd-   ho  +y+My      %s"
  4787. "${c1}      .dNhsohMh-//: /mm/ ://-yMyoshNd\`      %s"
  4788. "${c1}        \`-ommNMm+:/. oo ./:+mMNmmo:\`        %s"
  4789. "${c1}       \`/o+.-somNh- :yy: -hNmos-.+o/\`       %s"
  4790. "${c1}      ./\` .s/\`s+sMdd+\`\`+ddMs+s\`/s. \`/.      %s"
  4791. "${c1}          : -y.  -hNmddmNy.  .y- :          %s"
  4792. "${c1}           -+       \`..\`       +-           %s"
  4793. "%s")
  4794.         ;;
  4795.  
  4796.         "SwagArch")
  4797.             if [[ "$no_color" != "1" ]]; then
  4798.                 c1=$(getColor 'white') # White
  4799.                 c2=$(getColor 'light blue') # Light Blue
  4800.             fi
  4801.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4802.             startline="0"
  4803.             logowidth="48"
  4804.             fulloutput=(
  4805. "${c1}                                               %s"
  4806. "${c1}          .;ldkOKXXNNNNXXK0Oxoc,.              %s"
  4807. "${c1}     ,lkXMMNK0OkkxkkOKWMMMMMMMMMM;             %s"
  4808. "${c1}   'K0xo  ..,;:c:.     \`'lKMMMMM0              %s"
  4809. "${c1}       .lONMMMMMM'         \`lNMk'              %s"
  4810. "${c1}      ;WMMMMMMMMMO.              ${c2}....::...     %s"
  4811. "${c1}      OMMMMMMMMMMMMKl.       ${c2}.,;;;;;ccccccc,   %s"
  4812. "${c1}      \`0MMMMMMMMMMMMMM0:         ${c2}.. .ccccccc.  %s"
  4813. "${c1}        'kWMMMMMMMMMMMMMNo.   ${c2}.,:'  .ccccccc.  %s"
  4814. "${c1}          \`c0MMMMMMMMMMMMMN,${c2},:c;    :cccccc:   %s"
  4815. "${c1}   ckl.      \`lXMMMMMMMMMX${c2}occcc:.. ;ccccccc.   %s"
  4816. "${c1}  dMMMMXd,     \`OMMMMMMWk${c2}ccc;:''\` ,ccccccc:    %s"
  4817. "${c1}  XMMMMMMMWKkxxOWMMMMMNo${c2}ccc;     .cccccccc.    %s"
  4818. "${c1}   \`':ldxO0KXXXXXK0Okdo${c2}cccc.     :cccccccc.    %s"
  4819. "${c2}                      :ccc:'     \`cccccccc:,   %s"
  4820. "${c2}                                     ''        %s"
  4821. "${c2}                                               %s")
  4822.         ;;
  4823.  
  4824.         "Parrot Security")
  4825.             if [[ "$no_color" != "1" ]]; then
  4826.                 c1=$(getColor 'light blue') # Light Blue
  4827.             fi
  4828.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4829.             startline="0"
  4830.             logowidth="43"
  4831.             fulloutput=(
  4832. "${c1}    ,:oho/-.                              %s"
  4833. "${c1}   mMMMMMMMMMMMNmmdhy-                    %s"
  4834. "${c1}   dMMMMMMMMMMMMMMMMMMs.                  %s"
  4835. "${c1}   +MMsohNMMMMMMMMMMMMMm/                 %s"
  4836. "${c1}   .My   .+dMMMMMMMMMMMMMh.               %s"
  4837. "${c1}    +       :NMMMMMMMMMMMMNo              %s"
  4838. "${c1}             \`yMMMMMMMMMMMMMm:            %s"
  4839. "${c1}               /NMMMMMMMMMMMMMy.          %s"
  4840. "${c1}                .hMMMMMMMMMMMMMN+         %s"
  4841. "${c1}                    \`\`-NMMMMMMMMMd-       %s"
  4842. "${c1}                       /MMMMMMMMMMMs.     %s"
  4843. "${c1}                        mMMMMMMMsyNMN/    %s"
  4844. "${c1}                        +MMMMMMMo  :sNh.  %s"
  4845. "${c1}                        \`NMMMMMMm     -o/ %s"
  4846. "${c1}                         oMMMMMMM.        %s"
  4847. "${c1}                         \`NMMMMMM+        %s"
  4848. "${c1}                          +MMd/NMh        %s"
  4849. "${c1}                           mMm -mN\`       %s"
  4850. "${c1}                           /MM  \`h:       %s"
  4851. "${c1}                            dM\`   .       %s"
  4852. "${c1}                            :M-           %s"
  4853. "${c1}                             d:           %s"
  4854. "${c1}                             -+           %s"
  4855. "${c1}                              -           %s")
  4856.         ;;
  4857.  
  4858.         *)
  4859.             if [ "$(echo "${kernel}" | grep 'Linux' )" ]; then
  4860.                 if [[ "$no_color" != "1" ]]; then
  4861.                     c1=$(getColor 'white') # White
  4862.                     c2=$(getColor 'dark grey') # Light Gray
  4863.                     c3=$(getColor 'yellow') # Light Yellow
  4864.                 fi
  4865.                 if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4866.                 startline="0"
  4867.                 logowidth="28"
  4868.                 fulloutput=(
  4869. "${c2}                            %s"
  4870. "${c2}                            %s"
  4871. "${c2}                            %s"
  4872. "${c2}         #####              %s"
  4873. "${c2}        #######             %s"
  4874. "${c2}        ##"${c1}"O${c2}#"${c1}"O${c2}##             %s"
  4875. "${c2}        #${c3}#####${c2}#             %s"
  4876. "${c2}      ##${c1}##${c3}###${c1}##${c2}##           %s"
  4877. "${c2}     #${c1}##########${c2}##          %s"
  4878. "${c2}    #${c1}############${c2}##         %s"
  4879. "${c2}    #${c1}############${c2}###        %s"
  4880. "${c3}   ##${c2}#${c1}###########${c2}##${c3}#        %s"
  4881. "${c3} ######${c2}#${c1}#######${c2}#${c3}######      %s"
  4882. "${c3} #######${c2}#${c1}#####${c2}#${c3}#######      %s"
  4883. "${c3}   #####${c2}#######${c3}#####        %s"
  4884. "${c2}                            %s"
  4885. "${c2}                            %s"
  4886. "${c2}                            %s")
  4887.  
  4888.             elif [[ "$(echo "${kernel}" | grep 'GNU' )" || "$(echo "${kernel}" | grep 'Hurd' )" || "${OSTYPE}" == "gnu" ]]; then
  4889.                 if [[ "$no_color" != "1" ]]; then
  4890.                     c1=$(getColor 'dark grey') # Light Gray
  4891.                 fi
  4892.                 if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4893.                 startline="0"
  4894.                 logowidth="37"
  4895.                 fulloutput=(
  4896. "${c1}    _-\`\`\`\`\`-,           ,- '- .      %s"
  4897. "${c1}   .'   .- - |          | - -.  \`.   %s"
  4898. "${c1}  /.'  /                     \`.   \\  %s"
  4899. "${c1} :/   :      _...   ..._      \`\`   : %s"
  4900. "${c1} ::   :     /._ .\`:'_.._\\.    ||   : %s"
  4901. "${c1} ::    \`._ ./  ,\`  :    \\ . _.''   . %s"
  4902. "${c1} \`:.      /   |  -.  \\-. \\\\\_      /  %s"
  4903. "${c1}   \\:._ _/  .'   .@)  \\@) \` \`\\ ,.'   %s"
  4904. "${c1}      _/,--'       .- .\\,-.\`--\`.     %s"
  4905. "${c1}        ,'/''     (( \\ \`  )          %s"
  4906. "${c1}         /'/'  \\    \`-'  (           %s"
  4907. "${c1}          '/''  \`._,-----'           %s"
  4908. "${c1}           ''/'    .,---'            %s"
  4909. "${c1}            ''/'      ;:             %s"
  4910. "${c1}              ''/''  ''/             %s"
  4911. "${c1}                ''/''/''             %s"
  4912. "${c1}                  '/'/'              %s"
  4913. "${c1}                   \`;                %s")
  4914. # Source: https://www.gnu.org/graphics/alternative-ascii.en.html
  4915. # Copyright (C) 2003, Vijay Kumar
  4916. # Permission is granted to copy, distribute and/or modify this image under the
  4917. # terms of the GNU General Public License as published by the Free Software
  4918. # Foundation; either version 2 of the License, or (at your option) any later
  4919. # version.
  4920.  
  4921.             else
  4922.                 if [[ "$no_color" != "1" ]]; then
  4923.                     c1=$(getColor 'light green') # Light Green
  4924.                 fi
  4925.                 if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4926.                 startline="0"
  4927.                 logowidth="44"
  4928.                 fulloutput=(
  4929. "${c1}                                            %s"
  4930. "${c1}                                            %s"
  4931. "${c1} UUU     UUU NNN      NNN IIIII XXX     XXXX%s"
  4932. "${c1} UUU     UUU NNNN     NNN  III    XX   xXX  %s"
  4933. "${c1} UUU     UUU NNNNN    NNN  III     XX xXX   %s"
  4934. "${c1} UUU     UUU NNN NN   NNN  III      XXXX    %s"
  4935. "${c1} UUU     UUU NNN  NN  NNN  III      xXX     %s"
  4936. "${c1} UUU     UUU NNN   NN NNN  III     xXXXX    %s"
  4937. "${c1} UUU     UUU NNN    NNNNN  III    xXX  XX   %s"
  4938. "${c1}  UUUuuuUUU  NNN     NNNN  III   xXX    XX  %s"
  4939. "${c1}    UUUUU    NNN      NNN IIIII xXXx    xXXx%s"
  4940. "${c1}                                            %s"
  4941. "${c1}                                            %s"
  4942. "${c1}                                            %s"
  4943. "${c1}                                            %s")
  4944.             fi
  4945.         ;;
  4946.     esac
  4947.  
  4948.  
  4949.     # Truncate lines based on terminal width.
  4950.     if [ "$truncateSet" == "Yes" ]; then
  4951.         missinglines=$((${#out_array[*]} + ${startline} - ${#fulloutput[*]}))
  4952.         for ((i=0; i<${missinglines}; i++)); do
  4953.             fulloutput+=("${c1}$(printf '%*s' "$logowidth")%s")
  4954.         done
  4955.         for ((i=0; i<${#fulloutput[@]}; i++)); do
  4956.             my_out=$(printf "${fulloutput[i]}$c0\n" "${out_array}")
  4957.             my_out_full=$(echo "$my_out" | cat -v)
  4958.             termWidth=$(tput cols)
  4959.             SHOPT_EXTGLOB_STATE=$(shopt -p extglob)
  4960.             read SHOPT_CMD SHOPT_STATE SHOPT_OPT <<< ${SHOPT_EXTGLOB_STATE}
  4961.             if [[ ${SHOPT_STATE} == "-u" ]]; then
  4962.                 shopt -s extglob
  4963.             fi
  4964.  
  4965.             stringReal="${my_out_full//\^\[\[@([0-9]|[0-9];[0-9][0-9])m}"
  4966.  
  4967.             if [[ ${SHOPT_STATE} == "-u" ]]; then
  4968.                 shopt -u extglob
  4969.             fi
  4970.  
  4971.             if [[ "${#stringReal}" -le "${termWidth}" ]]; then
  4972.                 echo -e "${my_out}"$c0
  4973.             elif [[ "${#stringReal}" -gt "${termWidth}" ]]; then
  4974.                 ((NORMAL_CHAR_COUNT=0))
  4975.                 for ((j=0; j<=${#my_out_full}; j++)); do
  4976.                     if [[ "${my_out_full:${j}:3}" == '^[[' ]]; then
  4977.                         if [[ "${my_out_full:${j}:5}" =~ ^\^\[\[[[:digit:]]m$ ]]; then
  4978.                             if [[ ${j} -eq 0 ]]; then
  4979.                                 j=$((${j} + 5))
  4980.                             else
  4981.                                 j=$((${j} + 4))
  4982.                             fi
  4983.                         elif [[ "${my_out_full:${j}:8}" =~ ^\^\[\[[[:digit:]]\;[[:digit:]][[:digit:]]m ]]; then
  4984.                             if [[ ${j} -eq 0 ]]; then
  4985.                                 j=$((${j} + 8))
  4986.                             else
  4987.                                 j=$((${j} + 7))
  4988.                             fi
  4989.                         fi
  4990.                     else
  4991.                         ((NORMAL_CHAR_COUNT++))
  4992.                         if [[ ${NORMAL_CHAR_COUNT} -ge ${termWidth} ]]; then
  4993.                             echo -e "${my_out:0:$((${j} - 5))}"$c0
  4994.                             break 1
  4995.                         fi
  4996.                     fi
  4997.                 done
  4998.             fi
  4999.  
  5000.             if [[ "$i" -ge "$startline" ]]; then
  5001.                 unset out_array[0]
  5002.                 out_array=( "${out_array[@]}" )
  5003.             fi
  5004.         done
  5005.  
  5006.     elif [[ "$portraitSet" = "Yes" ]]; then
  5007.         for ((i=0; $i<${#fulloutput[*]}; i++)); do
  5008.             printf "${fulloutput[$i]}$c0\n"
  5009.         done
  5010.  
  5011.         printf "\n"
  5012.  
  5013.         for ((i=0; $i<${#fulloutput[*]}; i++)); do
  5014.             [[ -z "$out_array" ]] && continue
  5015.             printf "%s\n" "${out_array}"
  5016.             unset out_array[0]
  5017.             out_array=( "${out_array[@]}" )
  5018.         done
  5019.  
  5020.     elif [[ "$display_logo" == "Yes" ]]; then
  5021.         for ((i=0; i<${#fulloutput[*]}; i++)); do
  5022.             printf "${fulloutput[i]}$c0\n"
  5023.         done
  5024.  
  5025.     else
  5026.         if [[ "$lineWrap" = "Yes" ]]; then
  5027.             availablespace=$(($(tput cols) - ${logowidth} + 16)) #I dont know why 16 but it works
  5028.             new_out_array=("${out_array[0]}")
  5029.             for ((i=1; i<${#out_array[@]}; i++)); do
  5030.                 lines=$(echo ${out_array[i]} | fmt -w $availablespace)
  5031.                 IFS=$'\n' read -rd '' -a splitlines <<<"$lines"
  5032.                 new_out_array+=("${splitlines[0]}")
  5033.                 for ((j=1; j<${#splitlines[*]}; j++)); do
  5034.                     line=$(echo -e "$labelcolor $textcolor  ${splitlines[j]}")
  5035.                     new_out_array=( "${new_out_array[@]}" "$line" );
  5036.                 done
  5037.             done
  5038.             out_array=("${new_out_array[@]}")
  5039.         fi
  5040.         missinglines=$((${#out_array[*]} + ${startline} - ${#fulloutput[*]}))
  5041.         for ((i=0; i<${missinglines}; i++)); do
  5042.             fulloutput+=("${c1}$(printf '%*s' "$logowidth")%s")
  5043.         done
  5044.         #n=${#fulloutput[*]}
  5045.         for ((i=0; i<${#fulloutput[*]}; i++)); do
  5046.             # echo "${out_array[@]}"
  5047.             febreeze=$(awk 'BEGIN{srand();print int(rand()*(1000-1))+1 }')
  5048.             if [[ "${febreeze}" == "411" || "${febreeze}" == "188" || "${febreeze}" == "15" || "${febreeze}" == "166" || "${febreeze}" == "609" ]]; then
  5049.                 f_size=${#fulloutput[*]}
  5050.                 o_size=${#out_array[*]}
  5051.                 f_max=$(( 32768 / f_size * f_size ))
  5052.                 #o_max=$(( 32768 / o_size * o_size ))
  5053.                 for ((a=f_size-1; a>0; a--)); do
  5054.                     while (( (rand=$RANDOM) >= f_max )); do :; done
  5055.                     rand=$(( rand % (a+1) ))
  5056.                     tmp=${fulloutput[a]} fulloutput[a]=${fulloutput[rand]} fulloutput[rand]=$tmp
  5057.                 done
  5058.                 for ((b=o_size-1; b>0; b--)); do
  5059.                     rand=$(( rand % (b+1) ))
  5060.                     tmp=${out_array[b]} out_array[b]=${out_array[rand]} out_array[rand]=$tmp
  5061.                 done
  5062.             fi
  5063.             printf "${fulloutput[i]}$c0\n" "${out_array}"
  5064.             if [[ "$i" -ge "$startline" ]]; then
  5065.                 unset out_array[0]
  5066.                 out_array=( "${out_array[@]}" )
  5067.             fi
  5068.         done
  5069.     fi
  5070.     # Done with ASCII output
  5071. }
  5072.  
  5073. infoDisplay () {
  5074.     textcolor="\033[0m"
  5075.     [[ "$my_hcolor" ]] && textcolor="${my_hcolor}"
  5076.     #TODO: Centralize colors and use them across the board so we only change them one place.
  5077.     myascii="${distro}"
  5078.     [[ "${asc_distro}" ]] && myascii="${asc_distro}"
  5079.     case ${myascii} in
  5080.         "Alpine Linux"|"Arch Linux - Old"|"blackPanther OS"|"Fedora"|"Korora"|"Chapeau"|"Mandriva"|"Mandrake"|"Chakra"|"ChromeOS"|"Sabayon"|"Slackware"|"Mac OS X"|"Trisquel"|"Kali Linux"|"Jiyuu Linux"|"Antergos"|"KaOS"|"Logos"|"gNewSense"|"Netrunner"|"NixOS"|"SailfishOS"|"Qubes OS"|"Kogaion"|"PCLinuxOS"|"Obarun"|"Solus"|"SwagArch"|"Parrot Security") labelcolor=$(getColor 'light blue');;
  5081.         "Arch Linux"|"Frugalware"|"Mageia"|"Deepin"|"CRUX") labelcolor=$(getColor 'light cyan');;
  5082.         "Mint"|"LMDE"|"KDE neon"|"openSUSE"|"SUSE Linux Enterprise"|"LinuxDeepin"|"DragonflyBSD"|"Manjaro"|"Manjaro-tree"|"Android"|"Void"|"DesaOS") labelcolor=$(getColor 'light green');;
  5083.         "Ubuntu"|"FreeBSD"|"FreeBSD - Old"|"Debian"|"Raspbian"|"BSD"|"Red Hat Enterprise Linux"|"Oracle Linux"|"Peppermint"|"Cygwin"|"Msys"|"Fuduntu"|"Scientific Linux"|"DragonFlyBSD"|"BackTrack Linux"|"Red Star OS"|"SparkyLinux") labelcolor=$(getColor 'light red');;
  5084.         "ROSA") labelcolor=$(getColor 'white');;
  5085.         "CrunchBang"|"Viperr"|"elementary"*) labelcolor=$(getColor 'dark grey');;
  5086.         "Gentoo"|"Parabola GNU/Linux-libre"|"Funtoo"|"Funtoo-text"|"BLAG"|"SteamOS"|"Devuan") labelcolor=$(getColor 'light purple');;
  5087.         "Haiku") labelcolor=$(getColor 'green');;
  5088.         "NetBSD") labelcolor=$(getColor 'orange');;
  5089.         "CentOS"|*) labelcolor=$(getColor 'yellow');;
  5090.     esac
  5091.     [[ "$my_lcolor" ]] && labelcolor="${my_lcolor}"
  5092.     if [[ "$art" ]]; then source "$art"; fi
  5093.     if [[ "$no_color" == "1" ]]; then labelcolor=""; bold=""; c0=""; textcolor=""; fi
  5094.     # Some verbosity stuff
  5095.     [[ "$screenshot" == "1" ]] && verboseOut "Screenshot will be taken after info is displayed."
  5096.     [[ "$upload" == "1" ]] && verboseOut "Screenshot will be transferred/uploaded to specified location."
  5097.     #########################
  5098.     # Info Variable Setting #
  5099.     #########################
  5100.     if [[ "${distro}" == "Android" ]]; then
  5101.         myhostname=$(echo -e "${labelcolor} ${hostname}"); out_array=( "${out_array[@]}" "$myhostname" )
  5102.         mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $distro_ver"); out_array=( "${out_array[@]}" "$mydistro" )
  5103.         mydevice=$(echo -e "$labelcolor Device:$textcolor $device"); out_array=( "${out_array[@]}" "$mydevice" )
  5104.         myrom=$(echo -e "$labelcolor ROM:$textcolor $rom"); out_array=( "${out_array[@]}" "$myrom" )
  5105.         mybaseband=$(echo -e "$labelcolor Baseband:$textcolor $baseband"); out_array=( "${out_array[@]}" "$mybaseband" )
  5106.         mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel"); out_array=( "${out_array[@]}" "$mykernel" )
  5107.         myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime"); out_array=( "${out_array[@]}" "$myuptime" )
  5108.         mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mycpu" )
  5109.         mygpu=$(echo -e "$labelcolor GPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mygpu" )
  5110.         mymem=$(echo -e "$labelcolor RAM:$textcolor $mem"); out_array=( "${out_array[@]}" "$mymem" )
  5111.     else
  5112.         if [[ "${display[@]}" =~ "host" ]]; then myinfo=$(echo -e "${labelcolor} ${myUser}$textcolor${bold}@${c0}${labelcolor}${myHost}"); out_array=( "${out_array[@]}" "$myinfo" ); ((display_index++)); fi
  5113.         if [[ "${display[@]}" =~ "distro" ]]; then
  5114.             if [ "$distro" == "Mac OS X" ]; then
  5115.                 sysArch=`str1=$(getconf LONG_BIT);echo ${str1}bit`
  5116.                 prodVers=`prodVers=$(sw_vers|grep ProductVersion);echo ${prodVers:15}`
  5117.                 buildVers=`buildVers=$(sw_vers|grep BuildVersion);echo ${buildVers:14}`
  5118.                 if [ -n "$distro_more" ]; then mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more $sysArch")
  5119.                 else mydistro=$(echo -e "$labelcolor OS:$textcolor $sysArch $distro $prodVers $buildVers"); fi
  5120.             elif [[ "$distro" == "Cygwin" || "$distro" == "Msys" ]]; then
  5121.                 distro="$(wmic os get caption | sed 's/\r//g; s/[ \t]*$//g; 2!d')"
  5122.                 if [[ "$(wmic os get version | grep -o '^10\.')" == "10." ]]; then
  5123.                     distro="$distro (v$(wmic os get version | grep '^10\.' | tr -d ' '))"
  5124.                 fi
  5125.                 sysArch=$(wmic os get OSArchitecture | sed 's/\r//g; s/[ \t]*$//g; 2!d')
  5126.                 mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch")
  5127.             else
  5128.                 if [ -n "$distro_more" ]; then mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more")
  5129.                 else mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch"); fi
  5130.             fi
  5131.             out_array=( "${out_array[@]}" "$mydistro$uow" )
  5132.             ((display_index++))
  5133.         fi
  5134.         if [[ "${display[@]}" =~ "kernel" ]]; then mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel"); out_array=( "${out_array[@]}" "$mykernel" ); ((display_index++)); fi
  5135.         if [[ "${display[@]}" =~ "uptime" ]]; then myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime"); out_array=( "${out_array[@]}" "$myuptime" ); ((display_index++)); fi
  5136.         if [[ "${display[@]}" =~ "pkgs" ]]; then mypkgs=$(echo -e "$labelcolor Packages:$textcolor $pkgs"); out_array=( "${out_array[@]}" "$mypkgs" ); ((display_index++)); fi
  5137.         if [[ "${display[@]}" =~ "shell" ]]; then myshell=$(echo -e "$labelcolor Shell:$textcolor $myShell"); out_array=( "${out_array[@]}" "$myshell" ); ((display_index++)); fi
  5138.         if [[ -n "$DISPLAY" || "$distro" == "Mac OS X" ]]; then
  5139.             if [ -n "${xResolution}" ]; then
  5140.                 if [[ "${display[@]}" =~ "res" ]]; then myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution"); out_array=( "${out_array[@]}" "$myres" ); ((display_index++)); fi
  5141.             fi
  5142.             if [[ "${display[@]}" =~ "de" ]]; then
  5143.                 if [[ "${DE}" != "Not Present" ]]; then
  5144.                     myde=$(echo -e "$labelcolor DE:$textcolor $DE"); out_array=( "${out_array[@]}" "$myde" ); ((display_index++))
  5145.                 fi
  5146.             fi
  5147.             if [[ "${display[@]}" =~ "wm" ]]; then mywm=$(echo -e "$labelcolor WM:$textcolor $WM"); out_array=( "${out_array[@]}" "$mywm" ); ((display_index++)); fi
  5148.             if [[ "${display[@]}" =~ "wmtheme" ]]; then
  5149.                     if [[ "${Win_theme}" == "Not Applicable" || "${Win_theme}" == "Not Found" ]]; then
  5150.                         :
  5151.                     else
  5152.                         mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme"); out_array=( "${out_array[@]}" "$mywmtheme" ); ((display_index++)); fi
  5153.                     fi
  5154.             if [[ "${display[@]}" =~ "gtk" ]]; then
  5155.                 if [ "$distro" == "Mac OS X" ]; then
  5156.                     if [[ "$gtkFont" != "Not Applicable" && "$gtkFont" != "Not Found" ]]; then
  5157.                         if [ -n "$gtkFont" ]; then
  5158.                             myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont"); out_array=( "${out_array[@]}" "$myfont" ); ((display_index++))
  5159.                         fi
  5160.                     fi
  5161.                 else
  5162.                     if [[ "$gtk2Theme" != "Not Applicable" && "$gtk2Theme" != "Not Found" ]]; then
  5163.                         if [ -n "$gtk2Theme" ]; then
  5164.                             mygtk2="${gtk2Theme} [GTK2]"
  5165.                         fi
  5166.                     fi
  5167.                     if [[ "$gtk3Theme" != "Not Applicable" && "$gtk3Theme" != "Not Found" ]]; then
  5168.                         if [ -n "$mygtk2" ]; then
  5169.                             mygtk3=", ${gtk3Theme} [GTK3]"
  5170.                         else
  5171.                             mygtk3="${gtk3Theme} [GTK3]"
  5172.                         fi
  5173.                     fi
  5174.                     if [[ "$gtk_2line" == "yes" ]]; then
  5175.                         mygtk2=$(echo -e "$labelcolor GTK2 Theme:$textcolor $gtk2Theme"); out_array=( "${out_array[@]}" "$mygtk2" ); ((display_index++))
  5176.                         mygtk3=$(echo -e "$labelcolor GTK3 Theme:$textcolor $gtk3Theme"); out_array=( "${out_array[@]}" "$mygtk3" ); ((display_index++))
  5177.                     else
  5178.                         if [[ "$gtk2Theme" == "$gtk3Theme" ]]; then
  5179.                             if [[ "$gtk2Theme" != "Not Applicable" && "$gtk2Theme" != "Not Found" ]]; then
  5180.                                 mygtk=$(echo -e "$labelcolor GTK Theme:$textcolor ${gtk2Theme} [GTK2/3]"); out_array=( "${out_array[@]}" "$mygtk" ); ((display_index++))
  5181.                             fi
  5182.                         else
  5183.                             mygtk=$(echo -e "$labelcolor GTK Theme:$textcolor ${mygtk2}${mygtk3}"); out_array=( "${out_array[@]}" "$mygtk" ); ((display_index++))
  5184.                         fi
  5185.                     fi
  5186.                     if [[ "$gtkIcons" != "Not Applicable" && "$gtkIcons" != "Not Found" ]]; then
  5187.                         if [ -n "$gtkIcons" ]; then
  5188.                             myicons=$(echo -e "$labelcolor Icon Theme:$textcolor $gtkIcons"); out_array=( "${out_array[@]}" "$myicons" ); ((display_index++))
  5189.                         fi
  5190.                     fi
  5191.                     if [[ "$gtkFont" != "Not Applicable" && "$gtkFont" != "Not Found" ]]; then
  5192.                         if [ -n "$gtkFont" ]; then
  5193.                             myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont"); out_array=( "${out_array[@]}" "$myfont" ); ((display_index++))
  5194.                         fi
  5195.                     fi
  5196.                     # [ "$gtkBackground" ] && mybg=$(echo -e "$labelcolor BG:$textcolor $gtkBackground"); out_array=( "${out_array[@]}" "$mybg" ); ((display_index++))
  5197.                 fi
  5198.             fi
  5199.         elif [[ "$fake_distro" == "Cygwin" || "$fake_distro" == "Msys" || "$fake_distro" == "Windows - Modern" ]]; then
  5200.             if [[ "${display[@]}" =~ "res" && -n "$xResolution" ]]; then myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution"); out_array=( "${out_array[@]}" "$myres" ); ((display_index++)); fi
  5201.             if [[ "${display[@]}" =~ "de" ]]; then
  5202.                 if [[ "${DE}" != "Not Present" ]]; then
  5203.                     myde=$(echo -e "$labelcolor DE:$textcolor $DE"); out_array=( "${out_array[@]}" "$myde" ); ((display_index++))
  5204.                 fi
  5205.             fi
  5206.             if [[ "${display[@]}" =~ "wm" ]]; then mywm=$(echo -e "$labelcolor WM:$textcolor $WM"); out_array=( "${out_array[@]}" "$mywm" ); ((display_index++)); fi
  5207.             if [[ "${display[@]}" =~ "wmtheme" ]]; then
  5208.                 if [[ "${Win_theme}" == "Not Applicable" || "${Win_theme}" == "Not Found" ]]; then
  5209.                     :
  5210.                 else
  5211.                     mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme"); out_array=( "${out_array[@]}" "$mywmtheme" ); ((display_index++))
  5212.                 fi
  5213.             fi
  5214.         elif [[ "$distro" == "Haiku" ]]; then
  5215.             if [ -n "${xResolution}" ]; then
  5216.                 if [[ "${display[@]}" =~ "res" ]]; then myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution"); out_array=( "${out_array[@]}" "$myres" ); ((display_index++)); fi
  5217.             fi
  5218.         fi
  5219.         [[ "${fake_distro}" != "Cygwin" && "${fake_distro}" != "Msys" && "${fake_distro}" != "Windows - Modern" ]] && if [[ "${display[@]}" =~ "disk" ]]; then mydisk=$(echo -e "$labelcolor Disk:$textcolor $diskusage"); out_array=( "${out_array[@]}" "$mydisk" ); ((display_index++)); fi
  5220.         if [[ "${display[@]}" =~ "cpu" ]]; then mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mycpu" ); ((display_index++)); fi
  5221.         if [[ "${display[@]}" =~ "gpu" ]] && [[ "$gpu" != "Not Found" ]]; then mygpu=$(echo -e "$labelcolor GPU:$textcolor $gpu"); out_array=( "${out_array[@]}" "$mygpu" ); ((display_index++)); fi
  5222.         if [[ "${display[@]}" =~ "mem" ]]; then mymem=$(echo -e "$labelcolor RAM:$textcolor $mem"); out_array=( "${out_array[@]}" "$mymem" ); ((display_index++)); fi
  5223.         if [[ "$use_customlines" = 1 ]]; then customlines; fi
  5224.     fi
  5225.     if [[ "$display_type" == "ASCII" ]]; then
  5226.         asciiText
  5227.     else
  5228.         if [[ "${display[@]}" =~ "host" ]]; then echo -e "$myinfo"; fi
  5229.         if [[ "${display[@]}" =~ "distro" ]]; then echo -e "$mydistro"; fi
  5230.         if [[ "${display[@]}" =~ "kernel" ]]; then echo -e "$mykernel"; fi
  5231.         if [[ "${distro}" == "Android" ]]; then
  5232.             echo -e "$mydevice"
  5233.             echo -e "$myrom"
  5234.             echo -e "$mybaseband"
  5235.             echo -e "$mykernel"
  5236.             echo -e "$myuptime"
  5237.             echo -e "$mycpu"
  5238.             echo -e "$mymem"
  5239.         else
  5240.             if [[ "${display[@]}" =~ "uptime" ]]; then echo -e "$myuptime"; fi
  5241.             if [[ "${display[@]}" =~ "pkgs" && "$mypkgs" != "Unknown" ]]; then echo -e "$mypkgs"; fi
  5242.             if [[ "${display[@]}" =~ "shell" ]]; then echo -e "$myshell"; fi
  5243.             if [[ "${display[@]}" =~ "res" ]]; then
  5244.                 test -z "$myres" || echo -e "$myres"
  5245.             fi
  5246.             if [[ "${display[@]}" =~ "de" ]]; then
  5247.                 if [[ "${DE}" != "Not Present" ]]; then echo -e "$myde"; fi
  5248.             fi
  5249.             if [[ "${display[@]}" =~ "wm" ]]; then
  5250.                 test -z "$mywm" || echo -e "$mywm"
  5251.                 if [[ "${Win_theme}" != "Not Applicable" && "${Win_theme}" != "Not Found" ]]; then
  5252.                     test -z "$mywmtheme" || echo -e "$mywmtheme"
  5253.                 fi
  5254.             fi
  5255.             if [[ "${display[@]}" =~ "gtk" ]]; then
  5256.                 if [[ "$gtk_2line" == "yes" ]]; then
  5257.                     test -z "$mygtk2" || echo -e "$mygtk2"
  5258.                     test -z "$mygtk3" || echo -e "$mygtk3"
  5259.                 else
  5260.                     test -z "$mygtk" || echo -e "$mygtk"
  5261.                 fi
  5262.                 test -z "$myicons" || echo -e "$myicons"
  5263.                 test -z "$myfont" || echo -e "$myfont"
  5264.             fi
  5265.             if [[ "${display[@]}" =~ "disk" ]]; then echo -e "$mydisk"; fi
  5266.             if [[ "${display[@]}" =~ "cpu" ]]; then echo -e "$mycpu"; fi
  5267.             if [[ "${display[@]}" =~ "gpu" ]]; then echo -e "$mygpu"; fi
  5268.             if [[ "${display[@]}" =~ "mem" ]]; then echo -e "$mymem"; fi
  5269.         fi
  5270.     fi
  5271. }
  5272.  
  5273. ##################
  5274. # Let's Do This!
  5275. ##################
  5276.  
  5277. if [[ -f "$HOME/.screenfetchOR" ]]; then
  5278.     source $HOME/.screenfetchOR
  5279. fi
  5280.  
  5281. if [[ "$overrideDisplay" ]]; then
  5282.     verboseOut "Found 'd' flag in syntax. Overriding display..."
  5283.     OLDIFS=$IFS
  5284.     IFS=';'
  5285.     for i in ${overrideDisplay}; do
  5286.         modchar="${i:0:1}"
  5287.         if [[ "${modchar}" == "-" ]]; then
  5288.             i=${i/${modchar}}
  5289.             _OLDIFS=IFS
  5290.             IFS=,
  5291.             for n in $i; do
  5292.                 if [[ ! "${display[@]}" =~ "$n" ]]; then
  5293.                     echo "The var $n is not currently being displayed."
  5294.                 else
  5295.                     display=( "${display[@]/${n}}" )
  5296.                 fi
  5297.             done
  5298.             IFS=$_OLDIFS
  5299.         elif [[ "${modchar}" == "+" ]]; then
  5300.             i=${i/${modchar}}
  5301.             _OLDIFS=IFS
  5302.             IFS=,
  5303.             for n in $i; do
  5304.                 if [[ "${valid_display[@]}" =~ "$n" ]]; then
  5305.                     if [[ "${display[@]}" =~ "$n" ]]; then
  5306.                         echo "The $n var is already being displayed."
  5307.                     else
  5308.                         display+=($n)
  5309.                     fi
  5310.                 else
  5311.                     echo "The var $n is not a valid display var."
  5312.                 fi
  5313.             done
  5314.             IFS=$_OLDIFS
  5315.         else
  5316.             IFS=$OLDIFS
  5317.             i="${i//,/ }"
  5318.             display=( $i )
  5319.         fi
  5320.     done
  5321.     IFS=$OLDIFS
  5322. fi
  5323.  
  5324. # Check for android
  5325. if [ -f /system/build.prop ] && [ "${distro}" != "SailfishOS" ]; then
  5326.     distro="Android"
  5327.     detectmem
  5328.     detectuptime
  5329.     detectkernel
  5330.     detectdroid
  5331.     infoDisplay
  5332.     exit 0
  5333. fi
  5334.  
  5335. for i in "${display[@]}"; do
  5336.     if [[ ! "$i" == "" ]]; then
  5337.         if [[ $i =~ wm ]]; then
  5338.              ! [[ $WM  ]] && detectwm;
  5339.              ! [[ $Win_theme ]] && detectwmtheme;
  5340.         else
  5341.             if [[ "${display[*]}" =~ "$i" ]]; then
  5342.                 if [[ "$errorSuppress" == "1" ]]; then
  5343.                     detect${i} 2>/dev/null
  5344.                 else
  5345.                     detect${i}
  5346.                 fi
  5347.             fi
  5348.         fi
  5349.     fi
  5350. done
  5351.  
  5352. if [ "$gpu" = 'Not Found' ] ; then
  5353.     DetectIntelGPU
  5354. fi
  5355.  
  5356.  
  5357. infoDisplay
  5358. [ "$screenshot" == "1" ] && takeShot
  5359. [ "$exportTheme" == "1" ] && themeExport
  5360.  
  5361. exit 0
Advertisement
Add Comment
Please, Sign In to add comment