Advertisement
jempogi

Debian

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