Guest User

bunsenlabs screenfetch

a guest
Oct 31st, 2015
278
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env bash
  2.  
  3. # screenFetch - a CLI Bash script to show system/theme info in screenshots
  4.  
  5. # Copyright (c) 2010-2015 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.6.5"
  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 icewm pekwm fvwm dwm awesome wmaker stumpwm musca xmonad.* i3 ratpoison scrotwm spectrwm wmfs wmii beryl subtle e16 enlightenment sawfish emerald monsterwm dminiwm compiz Finder herbstluftwm notion bspwm cinnamon 2bwm echinus swm budgie-wm dtwm 9wm )
  60. denames=( gnome-session xfce-mcs-manage xfce4-session xfconfd ksmserver lxsession gnome-settings-daemon mate-session mate-settings-daemon Finder )
  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 lest the script know where you would like to upload the file to. Valid hosts are: teknik, mediacrush, pomf, 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="Antergos, Arch Linux (Old and Current Logos), BLAG, CentOS, Chakra, Chapeau, CrunchBang, CRUX, Debian, Deepin, Dragora, elementary OS, Evolve OS, Fedora, Frugalware, Fuduntu, Funtoo, Gentoo, gNewSense, Jiyuu Linux, Kali Linux, KaOS, Korora, LinuxDeepin, Linux Mint, LMDE, Logos, Mageia, Mandriva/Mandrake, Manjaro, NixOS, openSUSE, Parabola GNU/Linux-libre, PeppermintOS, Raspbian, Red Hat Enterprise Linux, Sabayon, Scientific Linux, Slackware, SolusOS, TinyCore, Trisquel, Ubuntu, Viperr and Void."
  193. supported_other="Dragonfly/Free/Open/Net BSD, Haiku, Mac OS X and Windows+Cygwin."
  194. supported_dms="KDE, Gnome, Unity, Xfce, LXDE, Cinnamon, MATE, CDE and RazorQt."
  195. supported_wms="2bwm, 9wm, Awesome, Beryl, Blackbox, Cinnamon, Compiz, dminiwm, dwm, dtwm, E16, E17, echinus, Emerald, FluxBox, FVWM, herbstluftwm, IceWM, KWin, Metacity, monsterwm, Musca, Gala, Mutter, Muffin, Notion, OpenBox, PekWM, Ratpoison, Sawfish, ScrotWM, SpectrWM, StumpWM, subtle, 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)${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, pomf, 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${c0}                 Display current script version.\n"
  252.     printf "   ${bold}-h${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.  
  352.             case "${distro_detect}" in
  353.                 "archlinux"|"Arch Linux"|"arch"|"Arch"|"archarm")
  354.                     distro="Arch Linux"
  355.                     distro_release="n/a"
  356.                     if grep -q 'antergos' /etc/os-release; then
  357.                         distro="Antergos"
  358.                         distro_release="n/a"
  359.                     fi
  360.                     if grep -q -i 'logos' /etc/os-release; then
  361.                         distro="Logos"
  362.                         distro_release="n/a"
  363.                     fi
  364.                     ;;
  365.                 "BLAG")
  366.                     distro="BLAG"
  367.                     distro_more="$(head -n1 /etc/fedora-release)"
  368.                     ;;
  369.                 "Chakra")
  370.                     distro="Chakra"
  371.                     distro_release=""
  372.                     ;;
  373.                 "CentOS") distro="CentOS"
  374.                     ;;
  375.                 "Chapeau") distro="Chapeau"
  376.                     ;;
  377.                 "BunsenLabs")
  378.                     source /etc/lsb-release
  379.                     distro=$DISTRIB_ID
  380.                     distro_release=$DISTRIB_RELEASE
  381.                     distro_codename=$DISTRIB_CODENAME
  382.                     ;;
  383.                 "Debian")
  384.                     if [[ -f /etc/crunchbang-lsb-release || -f /etc/lsb-release-crunchbang ]]; then
  385.                         distro="CrunchBang"
  386.                         distro_release=$(awk -F'=' '/^DISTRIB_RELEASE=/ {print $2}' /etc/lsb-release-crunchbang)
  387.                         distro_codename=$(awk -F'=' '/^DISTRIB_DESCRIPTION=/ {print $2}' /etc/lsb-release-crunchbang)
  388.                     elif [[ -f /etc/os-release ]]; then
  389.                         if [[ "$(cat /etc/os-release)" =~ "Raspbian" ]]; then
  390.                             distro="Raspbian"
  391.                             distro_release=$(awk -F'=' '/^PRETTY_NAME=/ {print $2}' /etc/os-release)
  392.                         else
  393.                             distro="Debian"
  394.                         fi
  395.                     else
  396.                         distro="Debian"
  397.                     fi
  398.                     ;;
  399.                 "Raspbian")
  400.                     distro="Raspbian"
  401.                     ;;
  402.                 "elementary"|"elementary OS")
  403.                     distro="elementary OS"
  404.                     ;;
  405.                 "EvolveOS")
  406.                     distro="Evolve OS"
  407.                     ;;
  408.                 "KaOS"|"kaos")
  409.                     distro="KaOS"
  410.                     ;;
  411.                 "Fedora")
  412.                     distro="Fedora"
  413.                     ;;
  414.                 "frugalware")
  415.                     distro="Frugalware"
  416.                     distro_codename=null
  417.                     distro_release=null
  418.                     ;;
  419.                 "Fuduntu")
  420.                     distro="Fuduntu"
  421.                     distro_codename=null
  422.                     ;;
  423.                 "Gentoo")
  424.                     if [[ "$(lsb_release -sd)" =~ "Funtoo" ]]; then
  425.                         distro="Funtoo"
  426.                     else
  427.                         distro="Gentoo"
  428.                     fi
  429.                     ;;
  430.                 "gNewSense")
  431.                     distro="gNewSense"
  432.                     ;;
  433.                 "Jiyuu Linux")
  434.                     distro="Jiyuu Linux"
  435.                     ;;
  436.                 "LinuxDeepin")
  437.                     distro="LinuxDeepin"
  438.                     distro_codename=null
  439.                     ;;
  440.                 "Deepin")
  441.                     distro="Deepin"
  442.                     ;;
  443.                 "Debian Kali Linux")
  444.                     distro="Kali Linux"
  445.                     ;;
  446.                 "Korora")
  447.                     distro="Korora"
  448.                     ;;
  449.                 "Lunar Linux"|"lunar")
  450.                     distro="Lunar Linux"
  451.                     ;;
  452.                 "Mageia")
  453.                     distro="Mageia"
  454.                     ;;
  455.                 "MandrivaLinux")
  456.                     distro="Mandriva"
  457.                     case "${distro_codename}" in
  458.                         "turtle"|"Henry_Farman"|"Farman"|"Adelie"|"pauillac")
  459.                             distro="Mandriva-${distro_release}"
  460.                             distro_codename=null
  461.                             ;;
  462.                     esac
  463.                     ;;
  464.                 "ManjaroLinux")
  465.                     distro="Manjaro"
  466.                     ;;
  467.                 "NixOS")
  468.                     distro="NixOS"
  469.                     ;;
  470.                 "LinuxMint")
  471.                     distro="Mint"
  472.                     if [[ "${distro_codename}" == "debian" ]]; then
  473.                         distro="LMDE"
  474.                         distro_codename="n/a"
  475.                         distro_release="n/a"
  476.                     fi
  477.                     ;;
  478.                 "SUSE LINUX"|"openSUSE project")
  479.                     distro="openSUSE"
  480.                     ;;
  481.                 "Parabola GNU/Linux-libre"|"Parabola")
  482.                     distro="Parabola GNU/Linux-libre"
  483.                     distro_codename="n/a"
  484.                     distro_release="n/a"
  485.                     ;;
  486.                 "Peppermint")
  487.                     distro="Peppermint"
  488.                     distro_codename=null
  489.                     ;;
  490.                 "CentOS")
  491.                     distro="Red Hat Enterprise Linux"
  492.                     ;;
  493.                 "Sabayon")
  494.                     distro="Sabayon"
  495.                     ;;
  496.                 "SolusOS")
  497.                     distro="SolusOS"
  498.                     ;;
  499.                 "Trisquel")
  500.                     distro="Trisquel"
  501.                     ;;
  502.                 "Ubuntu")
  503.                     distro="Ubuntu"
  504.                     ;;
  505.                 "Viperr")
  506.                     distro="Viperr"
  507.                     distro_codename=null
  508.                     ;;
  509.                 *)
  510.                     ;;
  511.             esac
  512.             if [[ "${distro_detect}" =~ "RedHatEnterprise" ]]; then distro="Red Hat Enterprise Linux"; fi
  513.             if [[ -n ${distro_release} && ${distro_release} != "n/a" ]]; then distro_more="$distro_release"; fi
  514.             if [[ -n ${distro_codename} && ${distro_codename} != "n/a" ]]; then distro_more="$distro_more $distro_codename"; fi
  515.             if [[ -n ${distro_more} ]]; then
  516.                 distro_more="${distro} ${distro_more}"
  517.             fi
  518.         fi
  519.  
  520.         # Existing File Check
  521.         if [ "$distro" == "Unknown" ]; then
  522.             if [ $(uname -o 2>/dev/null) ]; then
  523.                 case "$(uname -o)" in
  524.                     "Cygwin")
  525.                         distro="Cygwin"
  526.                         fake_distro="${distro}"
  527.                     ;;
  528.                     "Haiku")
  529.                         distro="Haiku"
  530.                         fake_distro="${distro}"
  531.                     ;;
  532.                     "GNU/Linux")
  533.                         if type -p crux >/dev/null 2>&1; then
  534.                             distro="CRUX"
  535.                             distro_more="${distro} $(crux | awk '{print $3}')"
  536.                         fi
  537.                         if type -p nixos-version >/dev/null 2>&1; then
  538.                             distro="NixOS"
  539.                             distro_more="NixOS $(nixos-version)"
  540.                         fi
  541.                     ;;
  542.                 esac
  543.             fi
  544.             if [[ "${distro}" == "Unknown" ]]; then
  545.                 if [ -f /etc/os-release ]; then
  546.                     distrib_id=$(</etc/os-release);
  547.                     for l in $(echo $distrib_id); do
  548.                         if [[ ${l} =~ ^ID= ]]; then
  549.                             distrib_id=${l//*=}
  550.                             distrib_id=${distrib_id//\"/}
  551.                             break 1
  552.                         fi
  553.                     done
  554.                     if [[ -n ${distrib_id} ]]; then
  555.                         if [[ -n ${BASH_VERSINFO} && ${BASH_VERSINFO} -ge 4 ]]; then
  556.                             distrib_id=$(for i in ${distrib_id}; do echo -n "${i^} "; done)
  557.                             distro=${distrib_id% }
  558.                             unset distrib_id
  559.                         else
  560.                             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)
  561.                             distro=${distrib_id% }
  562.                             unset distrib_id
  563.                         fi
  564.                     fi
  565.  
  566.                     # Hotfixes
  567.                     [[ "${distro}" == "Void" || "${distro}" == "void" ]] && distro="Void"
  568.                     [[ "${distro}" == "evolveos" ]] && distro="Evolve OS"
  569.                     [[ "${distro}" == "antergos" || "${distro}" == "Antergos" ]] && distro="Antergos"
  570.                     [[ "${distro}" == "logos" || "${distro}" == "Logos" ]] && distro="Logos"
  571.                     [[ "${distro}" == "Arch" ]] && distro="Arch Linux"
  572.                     [[ "${distro}" == "Archarm" || "${distro}" == "archarm" ]] && distro="Arch Linux"
  573.                     [[ "${distro}" == "elementary" ]] && distro="elementary OS"
  574.                 fi
  575.             fi
  576.  
  577.             if [[ "${distro}" == "Unknown" ]]; then
  578.                 if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  579.                     if [ -f /etc/lsb-release ]; then
  580.                         LSB_RELEASE=$(</etc/lsb-release)
  581.                         distro=$(echo ${LSB_RELEASE} | awk 'BEGIN {
  582.                             distro = "Unknown"
  583.                         }
  584.                         {
  585.                             if ($0 ~ /[Uu][Bb][Uu][Nn][Tt][Uu]/) {
  586.                                 distro = "Ubuntu"
  587.                                 exit
  588.                             }
  589.                             else if ($0 ~ /[Mm][Ii][Nn][Tt]/ && $0 ~ /[Dd][Ee][Bb][Ii][Aa][Nn]/) {
  590.                                 distro = "LMDE"
  591.                                 exit
  592.                             }
  593.                             else if ($0 ~ /[Mm][Ii][Nn][Tt]/) {
  594.                                 distro = "Mint"
  595.                                 exit
  596.                             }
  597.                         } END {
  598.                             print distro
  599.                         }')
  600.                     fi
  601.                 fi
  602.             fi
  603.  
  604.             if [[ "${distro}" == "Unknown" ]]; then
  605.                 if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" || "${OSTYPE}" == "gnu" ]]; then
  606.                     if [ -f /etc/arch-release ]; then distro="Arch Linux"
  607.                     elif [ -f /etc/chakra-release ]; then distro="Chakra"
  608.                     elif [ -f /etc/crunchbang-lsb-release ]; then distro="CrunchBang"
  609.                     elif [ -f /etc/debian_version ]; then
  610.                         if [ -f /etc/issue ] && grep -q "gNewSense" /etc/issue ; then
  611.                             distro="gNewSense"
  612.                         else
  613.                             distro="Debian"
  614.                         fi
  615.                     elif [ -f /etc/dragora-version ]; then distro="Dragora" && distro_more="$(cut -d, -f1 /etc/dragora-version)"
  616.                     elif [ -f /etc/evolveos-release ]; then distro="Evolve OS"
  617.                     elif [ -f /etc/fedora-release ]; then
  618.                         if grep -q "Korora" /etc/fedora-release; then
  619.                             distro="Korora"
  620.                         elif grep -q "BLAG" /etc/fedora-release; then
  621.                             distro="BLAG"
  622.                             distro_more="$(head -n1 /etc/fedora-release)"
  623.                         else
  624.                             distro="Fedora"
  625.                         fi
  626.                     elif [ -f /etc/frugalware-release ]; then distro="Frugalware"
  627.                     elif [ -f /etc/gentoo-release ]; then
  628.                         if grep -q "Funtoo" /etc/gentoo-release ; then
  629.                             distro="Funtoo"
  630.                         else
  631.                             distro="Gentoo"
  632.                         fi
  633.                     elif [ -f /etc/mageia-release ]; then distro="Mageia"
  634.                     elif [ -f /etc/mandrake-release ]; then distro="Mandrake"
  635.                     elif [ -f /etc/mandriva-release ]; then distro="Mandriva"
  636.                     elif [ -f /etc/NIXOS ]; then distro="NixOS"
  637.                     elif [ -f /etc/SuSE-release ]; then distro="openSUSE"
  638.                     elif [ -f /etc/redhat-release ] && grep -q "Red Hat" /etc/redhat-release; then distro="Red Hat Enterprise Linux"
  639.                     elif [ -f /etc/redhat-release ] && grep -q "CentOS" /etc/redhat-release; then distro="CentOS"
  640.                     elif [ -f /etc/slackware-version ]; then distro="Slackware"
  641.                     elif [ -f /usr/share/doc/tc/release.txt ]; then distro="TinyCore"
  642.                     elif [ -f /etc/sabayon-edition ]; then distro="Sabayon"; fi
  643.                 else
  644.                     if [[ -x /usr/bin/sw_vers ]] && /usr/bin/sw_vers | grep -i "Mac OS X" >/dev/null; then
  645.                         distro="Mac OS X"
  646.                     elif [[ -f /var/run/dmesg.boot ]]; then
  647.                         distro=$(awk 'BEGIN {
  648.                             distro = "Unknown"
  649.                         }
  650.                         {
  651.                             if ($0 ~ /DragonFly/) {
  652.                                 distro = "DragonFlyBSD"
  653.                                 exit
  654.                             }
  655.                             else if ($0 ~ /FreeBSD/) {
  656.                                 distro = "FreeBSD"
  657.                                 exit
  658.                             }
  659.                             else if ($0 ~ /NetBSD/) {
  660.                                 distro = "NetBSD"
  661.                                 exit
  662.                             }
  663.                             else if ($0 ~ /OpenBSD/) {
  664.                                 distro = "OpenBSD"
  665.                                 exit
  666.                             }
  667.                         } END {
  668.                             print distro
  669.                         }' /var/run/dmesg.boot)
  670.                     fi
  671.                 fi
  672.             fi
  673.  
  674.             if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" || "${OSTYPE}" == "gnu" ]]; then
  675.                 if [[ -f /etc/issue ]]; then
  676.                     distro=$(awk 'BEGIN {
  677.                         distro = "Unknown"
  678.                     }
  679.                     {
  680.                         if ($0 ~ /"LinuxDeepin"/) {
  681.                             distro = "LinuxDeepin"
  682.                             exit
  683.                         }
  684.                         else if ($0 ~ /"Parabola GNU\/Linux-libre"/) {
  685.                             distro = "Parabola GNU/Linux-libre"
  686.                             exit
  687.                         }
  688.                         else if ($0 ~ /"SolusOS"/) {
  689.                             distro = "SolusOS"
  690.                             exit
  691.                         }
  692.                     } END {
  693.                         print distro
  694.                     }' /etc/issue)
  695.                 fi
  696.             fi
  697.  
  698.             if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" || "${OSTYPE}" == "gnu" ]]; then
  699.                 if [[ -f /etc/system-release ]]; then
  700.                     if grep -q "Scientific Linux" /etc/system-release; then
  701.                         distro="Scientific Linux"
  702.                     fi
  703.                 fi
  704.             fi
  705.         fi
  706.     fi
  707.  
  708.     if [[ "${distro}" != "Haiku" ]]; then
  709.         if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  710.             if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  711.                 distro=${distro,,}
  712.             else
  713.                 distro="$(tr '[:upper:]' '[:lower:]' <<< ${distro})"
  714.             fi
  715.         else
  716.             distro="$(tr '[:upper:]' '[:lower:]' <<< ${distro})"
  717.         fi
  718.     fi
  719.  
  720.     case $distro in
  721.         antergos) distro="Antergos" ;;
  722.         arch*linux*old) distro="Arch Linux - Old" ;;
  723.         arch|arch*linux) distro="Arch Linux" ;;
  724.         bunsenlabs) distro="BunsenLabs" ;;
  725.         dragora) distro="Dragora" ;;
  726.         elementary|'elementary os') distro="elementary OS";;
  727.         evolveos) distro="Evolve OS" ;;
  728.         fedora) distro="Fedora" ;;
  729.         gnewsense) distro="gNewSense" ;;
  730.         korora) distro="Korora" ;;
  731.         blag) distro="BLAG" ;;
  732.         chapeau) distro="Chapeau" ;;
  733.         crux) distro="CRUX" ;;
  734.         mageia) distro="Mageia" ;;
  735.         mandriva) distro="Mandriva" ;;
  736.         mandrake) distro="Mandrake" ;;
  737.         mint) distro="Mint" ;;
  738.         nix|nix*os) distro="NixOS" ;;
  739.         kali*linux) distro="Kali Linux" ;;
  740.         lmde) distro="LMDE" ;;
  741.         lunar|lunar*linux) distro="Lunar Linux";;
  742.         opensuse) distro="openSUSE" ;;
  743.         ubuntu) distro="Ubuntu" ;;
  744.         debian) distro="Debian" ;;
  745.         raspbian) distro="Raspbian" ;;
  746.         freebsd) distro="FreeBSD" ;;
  747.         freebsd*old) distro="FreeBSD - Old" ;;
  748.         logos) distro="Logos" ;;
  749.         openbsd) distro="OpenBSD" ;;
  750.         dragonflybsd) distro="DragonFlyBSD" ;;
  751.         netbsd) distro="NetBSD" ;;
  752.         red*hat*) distro="Red Hat Enterprise Linux" ;;
  753.         crunchbang) distro="CrunchBang" ;;
  754.         gentoo) distro="Gentoo" ;;
  755.         funtoo) distro="Funtoo" ;;
  756.         sabayon) distro="Sabayon" ;;
  757.         slackware) distro="Slackware" ;;
  758.         frugalware) distro="Frugalware" ;;
  759.         peppermint) distro="Peppermint" ;;
  760.         solusos) distro="SolusOS" ;;
  761.         trisquel) distro="Trisquel";;
  762.         parabolagnu|parabolagnu/linux-libre|'parabola gnu/linux-libre'|parabola) distro="Parabola GNU/Linux-libre" ;;
  763.         viperr) distro="Viperr" ;;
  764.         void) distro="Void" ;;
  765.         kaos) distro="KaOS";;
  766.         linuxdeepin) distro="LinuxDeepin" ;;
  767.         deepin) distro="Deepin" ;;
  768.         chakra) distro="Chakra" ;;
  769.         centos) distro="CentOS" ;;
  770.         mac*os*x) distro="Mac OS X" ;;
  771.         fuduntu) distro="Fuduntu" ;;
  772.         manjaro) distro="Manjaro" ;;
  773.         cygwin) distro="Cygwin" ;;
  774.         haiku) distro="Haiku" ;;
  775.     esac
  776.     verboseOut "Finding distro...found as '${distro} ${distro_release}'"
  777. }
  778. # Distro Detection - End
  779.  
  780. # Host and User detection - Begin
  781. detecthost () {
  782.     myUser=${USER}
  783.     myHost=${HOSTNAME}
  784.     if [[ "${distro}" == "Mac OS X" ]]; then myHost=${myHost/.local}; fi
  785.     verboseOut "Finding hostname and user...found as '${myUser}@${myHost}'"
  786. }
  787.  
  788. # Find Number of Running Processes
  789. # processnum="$(( $( ps aux | wc -l ) - 1 ))"
  790.  
  791. # Kernel Version Detection - Begin
  792. detectkernel () {
  793.     kernel=( $(uname -srm) )
  794.     kernel="${kernel[${#kernel[@]}-1]} ${kernel[@]:0:${#kernel[@]}-1}"
  795.     verboseOut "Finding kernel version...found as '${kernel}'"
  796. }
  797. # Kernel Version Detection - End
  798.  
  799.  
  800. # Uptime Detection - Begin
  801. detectuptime () {
  802.     unset uptime
  803.     if [[ "${distro}" == "Mac OS X" || "${distro}" == "FreeBSD" ]]; then
  804.         boot=$(sysctl -n kern.boottime | cut -d "=" -f 2 | cut -d "," -f 1)
  805.         now=$(date +%s)
  806.         uptime=$(($now-$boot))
  807.     elif [[ "${distro}" == "OpenBSD" ]]; then
  808.         boot=$(sysctl -n kern.boottime)
  809.         now=$(date +%s)
  810.         uptime=$((${now} - ${boot}))
  811.     elif [[ "${distro}" == "Haiku" ]]; then
  812.         uptime=$(uptime | cut -d ',' -f2,3 | sed 's/ up //; s/ hour,/h/; s/ minutes/m/;')
  813.     else
  814.         if [[ -f /proc/uptime ]]; then
  815.             uptime=$(</proc/uptime)
  816.             uptime=${uptime//.*}
  817.         fi
  818.     fi
  819.  
  820.     if [[ -n ${uptime} ]] && [[ "${distro}" != "Haiku" ]]; then
  821.         secs=$((${uptime}%60))
  822.         mins=$((${uptime}/60%60))
  823.         hours=$((${uptime}/3600%24))
  824.         days=$((${uptime}/86400))
  825.         uptime="${mins}m"
  826.         if [ "${hours}" -ne "0" ]; then
  827.             uptime="${hours}h ${uptime}"
  828.         fi
  829.         if [ "${days}" -ne "0" ]; then
  830.             uptime="${days}d ${uptime}"
  831.         fi
  832.     else
  833.         if [[ "$distro" =~ "NetBSD" ]]; then uptime=$(awk -F. '{print $1}' /proc/uptime); fi
  834.         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
  835.     fi
  836.     verboseOut "Finding current uptime...found as '${uptime}'"
  837. }
  838. # Uptime Detection - End
  839.  
  840.  
  841. # Package Count - Begin
  842. detectpkgs () {
  843.     pkgs="Unknown"
  844.     case "${distro}" in
  845.         'Arch Linux'|'Parabola GNU/Linux-libre'|'Chakra'|'Manjaro'|'Antergos'|'KaOS') pkgs=$(pacman -Qq | wc -l) ;;
  846.         'Dragora') pkgs=$(ls -1 /var/db/pkg | wc -l) ;;
  847.         'Frugalware') pkgs=$(pacman-g2 -Q | wc -l) ;;
  848.         'Fuduntu'|'Ubuntu'|'Mint'|'SolusOS'|'Debian'|'Raspbian'|'LMDE'|'CrunchBang'|'Peppermint'|'LinuxDeepin'|'Deepin'|'Kali Linux'|'Trisquel'|'elementary OS'|'gNewSense'|'BunsenLabs') pkgs=$(dpkg --get-selections | grep -v deinstall$ | wc -l) ;;
  849.         'Slackware') pkgs=$(ls -1 /var/log/packages | wc -l) ;;
  850.         'Gentoo'|'Sabayon'|'Funtoo') pkgs=$(ls -d /var/db/pkg/*/* | wc -l) ;;
  851.         'NixOS') pkgs=$(ls -d -1 /nix/store/*/ | wc -l) ;;
  852.         'Fedora'|'Korora'|'BLAG'|'Chapeau'|'openSUSE'|'Red Hat Enterprise Linux'|'CentOS'|'Mandriva'|'Mandrake'|'Mageia'|'Viperr') pkgs=$(rpm -qa | wc -l) ;;
  853.         'Void') pkgs=$(xbps-query -l | wc -l) ;;
  854.         'Evolve OS') pkgs=$(pisi list-installed | wc -l) ;;
  855.         'CRUX') pkgs=$(pkginfo -i | wc -l) ;;
  856.         'Lunar Linux') pkgs=$(lvu installed | wc -l) ;;
  857.         'Mac OS X')
  858.             if [ -d "/usr/local/bin" ]; then
  859.                 loc_pkgs=$(ls -l /usr/local/bin/ | grep -v "\(../Cellar/\|brew\)" | wc -l)
  860.                 pkgs=$((${loc_pkgs} -1));
  861.             fi
  862.  
  863.             if type -p port >/dev/null 2>&1; then
  864.                 port_pkgs=$(port installed 2>/dev/null | wc -l)
  865.                 pkgs=$((${pkgs} + (${port_pkgs} -1)))
  866.             fi
  867.  
  868.             if type -p brew >/dev/null 2>&1; then
  869.                 brew_pkgs=$(brew list -1 2>/dev/null | wc -l)
  870.                 pkgs=$((${pkgs} + ${brew_pkgs}))
  871.             fi
  872.         ;;
  873.         'OpenBSD')
  874.             pkgs=$(pkg_info | wc -l | awk '{sub(" ", "");print $1}')
  875.             if type -p portmaster >/dev/null 2>&1; then
  876.                 ports=$(portmaster -l | grep -Eo '[0-9]+ total installed' | sed 's/ total installed//')
  877.                 pkgs=$((${pkgs} + ${ports}))
  878.             fi
  879.         ;;
  880.         'FreeBSD')
  881.             pkgs=$(if TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 PACKAGESITE=file:///nonexistent pkg info pkg >/dev/null 2>&1; then
  882.                 pkg info | wc -l | awk '{print $1}'; else pkg_info | wc -l | awk '{sub(" ", "");print $1}'; fi)
  883.         ;;
  884.         'Cygwin') cygfix=2; pkgs=$(($(cygcheck -cd | wc -l)-$cygfix)) ;;
  885.     esac
  886.     verboseOut "Finding current package count...found as '$pkgs'"
  887. }
  888.  
  889.  
  890.  
  891.  
  892. # CPU Detection - Begin
  893. detectcpu () {
  894.     REGEXP="-r"
  895.     if [ "$distro" == "Mac OS X" ]; then
  896.         cpu=$(machine)
  897.         if [[ $cpu == "ppc750" ]]; then
  898.             cpu="IBM PowerPC G3"
  899.         elif [[ $cpu == "ppc7400" || $cpu == "ppc7450" ]]; then
  900.             cpu="IBM PowerPC G4"
  901.         elif [[ $cpu == "ppc970" ]]; then
  902.             cpu="IBM PowerPC G5"
  903.         else
  904.             cpu=$(sysctl -n machdep.cpu.brand_string)
  905.         fi
  906.         REGEXP="-E"
  907.     elif [ "$OSTYPE" == "gnu" ]; then
  908.         # no /proc/cpuinfo on GNU/Hurd
  909.         if [ "$(uname -m | grep 'i*86')" ]; then
  910.             cpu="Unknown x86"
  911.         else
  912.             cpu="Unknown"
  913.         fi
  914.     elif [[ "$distro" == "FreeBSD" || "$distro" == "DragonflyBSD" ]]; then
  915.         cpu=$(sysctl -n hw.model)
  916.     elif [ "$distro" == "OpenBSD" ]; then
  917.         cpu=$(sysctl -n hw.model | sed 's/@.*//')
  918.     elif [ "$distro" == "Haiku" ]; then
  919.         cpu=$(sysinfo -cpu | grep 'CPU #0' | cut -d'"' -f2 | sed 's/(tm)//; s/Processor//;')
  920.         cpu_mhz=$(sysinfo -cpu | grep 'running at' | awk 'BEGIN{FS="running at "} { print $2; exit }' | cut -d'M' -f1)
  921.         if [ $(echo $cpu_mhz) -gt 999 ];then
  922.             cpu_ghz=$(awk '{print $1/1000}' <<< "${cpu_mhz}")
  923.             cpu="$cpu @ ${cpu_ghz}GHz"
  924.         else
  925.             cpu="$cpu @ ${cpu_mhz}MHz"
  926.         fi
  927.     else
  928.         cpu=$(awk 'BEGIN{FS=":"} /model name/ { print $2; exit }' /proc/cpuinfo | sed 's/ @/\n/' | head -1)
  929.         cpun=$(grep "physical id" /proc/cpuinfo | sort | uniq | wc -l)
  930.         if [ -z "$cpu" ]; then
  931.             cpu=$(awk 'BEGIN{FS=":"} /Hardware/ { print $2; exit }' /proc/cpuinfo)
  932.         fi
  933.         if [ -z "$cpu" ]; then
  934.             cpu=$(awk 'BEGIN{FS=":"} /^cpu/ { gsub(/  +/," ",$2); print $2; exit}' /proc/cpuinfo | sed 's/, altivec supported//;s/^ //')
  935.             if [[ $cpu =~ ^(PPC)*9.+ ]]; then
  936.                 model="IBM PowerPC G5 "
  937.             elif [[ $cpu =~ 740/750 ]]; then
  938.                 model="IBM PowerPC G3 "
  939.             elif [[ $cpu =~ ^74.+ ]]; then
  940.                 model="Motorola PowerPC G4 "
  941.             elif [[ "$(cat /proc/cpuinfo)" =~ "BCM2708" ]]; then
  942.                 model="Broadcom BCM2835 ARM1176JZF-S"
  943.             else
  944.                 model="IBM PowerPC G3 "
  945.             fi
  946.             cpu="${model}${cpu}"
  947.         fi
  948.         loc="/sys/devices/system/cpu/cpu0/cpufreq"
  949.         if [ -f ${loc}/bios_limit ];then
  950.             cpu_mhz=$(awk '{print $1/1000}' "${loc}/bios_limit")
  951.         elif [ -f $loc/scaling_max_freq ];then
  952.             cpu_mhz=$(awk '{print $1/1000}' "${loc}/scaling_max_freq")
  953.         else
  954.             cpu_mhz=$(awk -F':' '/cpu MHz/{ print int($2+.5) }' /proc/cpuinfo | head -n 1)
  955.         fi
  956.         if [ -n "$cpu_mhz" ];then
  957.             if [ $(echo $cpu_mhz | cut -d. -f1) -gt 999 ];then
  958.                 cpu_ghz=$(awk '{print $1/1000}' <<< "${cpu_mhz}")
  959.                 cpu="$cpu @ ${cpu_ghz}GHz"
  960.             else
  961.                 cpu="$cpu @ ${cpu_mhz}MHz"
  962.             fi
  963.         fi
  964.     fi
  965.         if [[ "${cpun}" -gt "1" ]]; then
  966.                 cpu=$(sed $REGEXP 's/\([tT][mM]\)|\([Rr]\)|[pP]rocessor//g' <<< "${cpun}x ${cpu}" | xargs)
  967.         else
  968.                 cpu=$(sed $REGEXP 's/\([tT][mM]\)|\([Rr]\)|[pP]rocessor//g' <<< "${cpu}" | xargs)
  969.         fi
  970.     verboseOut "Finding current CPU...found as '$cpu'"
  971. }
  972. # CPU Detection - End
  973.  
  974.  
  975. # GPU Detection - Begin (EXPERIMENTAL!)
  976. detectgpu () {
  977.     if [[ "${distro}" == "FreeBSD" ]]; then
  978.         gpu_info=$(pciconf -lv 2> /dev/null | grep -B 4 VGA)
  979.         gpu_info=$(grep -E 'device.*=.*' <<< "${gpu_info}")
  980.         gpu="${gpu_info##*device*= }"
  981.         gpu="${gpu//\'}"
  982.         # gpu=$(sed 's/.*device.*= //' <<< "${gpu_info}" | sed "s/'//g")
  983.     elif [[ "$distro" != "Mac OS X" ]]; then
  984.         if [[ -n "$(PATH="/opt/bin:$PATH" type -p nvidia-smi)" ]]; then
  985.             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')
  986.         elif [[ -n "$(PATH="/usr/sbin:$PATH" type -p glxinfo)" && -z "${gpu}" ]]; then
  987.             gpu_info=$($(PATH="/usr/sbin:$PATH" type -p glxinfo | cut -f1) 2>/dev/null)
  988.             gpu=$(grep "OpenGL renderer string" <<< "${gpu_info}" | cut -d ':' -f2  | sed -n '1h;2,$H;${g;s/\n/,/g;p}')
  989.             gpu="${gpu:1}"
  990.             gpu_info=$(grep "OpenGL vendor string" <<< "${gpu_info}")
  991.         elif [[ -n "$(PATH="/usr/sbin:$PATH" type -p lspci)" && -z "$gpu" ]]; then
  992.             gpu_info=$($(PATH="/usr/bin:$PATH" type -p lspci | cut -f1) 2> /dev/null | grep VGA)
  993.             gpu=$(grep -oE '\[.*\]' <<< "${gpu_info}" | sed 's/\[//;s/\]//' | sed -n '1h;2,$H;${g;s/\n/, /g;p}')
  994.         fi
  995.     elif [[ "${distro}" == "Mac OS X" ]]; then
  996.         gpu=$(system_profiler SPDisplaysDataType | awk -F': ' '/^\ *Chipset Model:/ {print $2}' | awk '{ printf "%s / ", $0 }' | sed -e 's/\/ $//g')
  997.     elif [[ "${distro}" == "Cygwin" ]]; then
  998.         gpu=$(wmic path Win32_VideoController get caption)
  999.         gpu=$(tail -1 <<< ${gpu})
  1000.     fi
  1001.  
  1002.     if [ -n "$gpu" ];then
  1003.         if [ $(grep -i nvidia <<< "${gpu_info}" | wc -l) -gt 0 ];then
  1004.             gpu_info="NVidia "
  1005.         elif [ $(grep -i intel <<< "${gpu_info}" | wc -l) -gt 0 ];then
  1006.             gpu_info="Intel "
  1007.         elif [ $(grep -i amd <<< "${gpu_info}" | wc -l) -gt 0 ];then
  1008.             gpu_info="AMD "
  1009.         elif [[ $(grep -i ati <<< "${gpu_info}" | wc -l) -gt 0  || $(grep -i radeon <<< "${gpu_info}" | wc -l) -gt 0 ]]; then
  1010.             gpu_info="ATI "
  1011.         else
  1012.             gpu_info=$(cut -d ':' -f2 <<< "${gpu_info}")
  1013.             gpu_info="${gpu_info:1} "
  1014.         fi
  1015.         gpu="${gpu}"
  1016.     else
  1017.         gpu="Not Found"
  1018.     fi
  1019.  
  1020.     verboseOut "Finding current GPU...found as '$gpu'"
  1021. }
  1022. # GPU Detection - End
  1023.  
  1024.  
  1025. # Disk Usage Detection - Begin
  1026. detectdisk () {
  1027.     diskusage="Unknown"
  1028.     if type -p df >/dev/null 2>&1; then
  1029.         if [[ "${distro}" =~ (Free|Net|Open|DragonFly)BSD ]]; then
  1030.             totaldisk=$(df -h -c 2>/dev/null | tail -1)
  1031.         elif [[ "${distro}" == "Mac OS X" ]]; then
  1032.             totaldisk=$(df -H / 2>/dev/null | tail -1)
  1033.         else
  1034.             totaldisk=$(df -h --total 2>/dev/null | tail -1)
  1035.         fi
  1036.         disktotal=$(awk '{print $2}' <<< "${totaldisk}")
  1037.         diskused=$(awk '{print $3}' <<< "${totaldisk}")
  1038.         diskusedper=$(awk '{print $5}' <<< "${totaldisk}")
  1039.         diskusage="${diskused} / ${disktotal} (${diskusedper})"
  1040.         diskusage_verbose=$(sed 's/%/%%/' <<< $diskusage)
  1041.     fi
  1042.     verboseOut "Finding current disk usage...found as '$diskusage_verbose'"
  1043. }  
  1044. # Disk Usage Detection - End
  1045.  
  1046.  
  1047. # Memory Detection - Begin
  1048. detectmem () {
  1049.     hw_mem=0
  1050.     free_mem=0
  1051.     human=1024
  1052.     if [ "$distro" == "Mac OS X" ]; then
  1053.         totalmem=$(echo "$(sysctl -n hw.memsize)"/${human}^2|bc)
  1054.         wiredmem=$(vm_stat | grep wired | awk '{ print $4 }' | sed 's/\.//')
  1055.         activemem=$(vm_stat | grep ' active' | awk '{ print $3 }' | sed 's/\.//')
  1056.         compressedmem=$(vm_stat | grep occupied | awk '{ print $5 }' | sed 's/\.//')
  1057.         usedmem=$(((${wiredmem} + ${activemem} + ${compressedmem}) * 4096 / 1024 / 1024))              
  1058.     elif [ "$distro" == "Cygwin" ]; then
  1059.         total_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  1060.         totalmem=$((${total_mem}/1024))
  1061.         free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  1062.         used_mem=$((${total_mem} - ${free_mem}))
  1063.         usedmem=$((${used_mem}/1024))
  1064.     elif [ "$distro" == "FreeBSD" ]; then
  1065.         phys_mem=$(sysctl -n hw.physmem)
  1066.         size_mem=$phys_mem
  1067.         size_chip=1
  1068.         guess_chip=`echo "$size_mem / 8 - 1" | bc`
  1069.         while [ $guess_chip != 0 ]; do
  1070.             guess_chip=`echo "$guess_chip / 2" | bc`
  1071.             size_chip=`echo "$size_chip * 2" | bc`
  1072.         done
  1073.         round_mem=`echo "( $size_mem / $size_chip + 1 ) * $size_chip " | bc`
  1074.         totalmem=$(($round_mem / ($human * $human) ))
  1075.         pagesize=$(sysctl -n hw.pagesize)
  1076.         inactive_count=$(sysctl -n vm.stats.vm.v_inactive_count)
  1077.         inactive_mem=$(($inactive_count * $pagesize))
  1078.         cache_count=$(sysctl -n vm.stats.vm.v_cache_count)
  1079.         cache_mem=$(($cache_count * $pagesize))
  1080.         free_count=$(sysctl -n vm.stats.vm.v_free_count)
  1081.         free_mem=$(($free_count * $pagesize))
  1082.         avail_mem=$(($inactive_mem + $cache_mem + $free_mem))
  1083.         used_mem=$(($round_mem - $avail_mem))
  1084.         usedmem=$(($used_mem / ($human * $human) ))
  1085.     elif [ "$distro" == "OpenBSD" ]; then
  1086.         totalmem=$(dmesg | grep 'real mem' | cut -d' ' -f5 | tr -d '()MB')
  1087.         usedmem=$(top -1 1 | awk '/Real:/ {print $3}' | sed 's/M.*//')
  1088.     elif [ "$distro" == "NetBSD" ]; then
  1089.         phys_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  1090.         totalmem=$((${phys_mem} / $human))
  1091.         if grep -q 'Cached' /proc/meminfo; then
  1092.             cache=$(awk '/Cached/ {print $2}' /proc/meminfo)
  1093.             usedmem=$((${cache} / $human))
  1094.         else
  1095.             free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  1096.             used_mem=$((${phys_mem} - ${free_mem}))
  1097.             usedmem=$((${used_mem} / $human))
  1098.         fi
  1099.     elif [ "$distro" == "Haiku" ]; then
  1100.         totalmem=$(( $(sysinfo -mem | head -n1 | cut -d'/' -f3 | tr -d ' ' | tr -d ')') / 1024 / 1024 ))
  1101.         usedmem=$(( $(sysinfo -mem | head -n1 | cut -d'/' -f2 | sed 's/max//; s/ //g') / 1024 / 1024 ))
  1102.     else
  1103.         mem_info=$(</proc/meminfo)
  1104.         mem_info=$(echo $(echo $(mem_info=${mem_info// /}; echo ${mem_info//kB/})))
  1105.         for m in $mem_info; do
  1106.             if [[ ${m//:*} = MemTotal ]]; then
  1107.                 memtotal=${m//*:}
  1108.             fi
  1109.  
  1110.             if [[ ${m//:*} = MemFree ]]; then
  1111.                 memfree=${m//*:}
  1112.             fi
  1113.  
  1114.             if [[ ${m//:*} = Buffers ]]; then
  1115.                 membuffer=${m//*:}
  1116.             fi
  1117.  
  1118.             if [[ ${m//:*} = Cached ]]; then
  1119.                 memcached=${m//*:}
  1120.             fi
  1121.         done
  1122.  
  1123.         usedmem="$(((($memtotal - $memfree) - $membuffer - $memcached) / $human))"
  1124.         totalmem="$(($memtotal / $human))"
  1125.     fi
  1126.     mem="${usedmem}MB / ${totalmem}MB"
  1127.     verboseOut "Finding current RAM usage...found as '$mem'"
  1128. }
  1129. # Memory Detection - End
  1130.  
  1131.  
  1132. # Shell Detection - Begin
  1133. detectshell_ver () {
  1134.     local version_data='' version='' get_version='--version'
  1135.  
  1136.     case $1 in
  1137.         # ksh sends version to stderr. Weeeeeeird.
  1138.         ksh)
  1139.             version_data="$( $1 $get_version 2>&1 )"
  1140.             ;;
  1141.         *)
  1142.             version_data="$( $1 $get_version 2>/dev/null )"
  1143.             ;;
  1144.     esac
  1145.  
  1146.     if [[ -n $version_data ]];then
  1147.         version=$(awk '
  1148.         BEGIN {
  1149.             IGNORECASE=1
  1150.         }
  1151.         /'$2'/ {
  1152.             gsub(/(,|v|V)/, "",$'$3')
  1153.             if ($2 ~ /[Bb][Aa][Ss][Hh]/) {
  1154.                 gsub(/\(.*|-release|-version\)/,"",$4)
  1155.             }
  1156.             print $'$3'
  1157.             exit # quit after first match prints
  1158.         }' <<< "$version_data")
  1159.     fi
  1160.     echo "$version"
  1161. }
  1162. detectshell () {
  1163.     if [[ ! "${shell_type}" ]]; then
  1164.         if [[ "${distro}" == "Cygwin" || "${distro}" == "Haiku" || "${OSTYPE}" == "gnu" ]]; then
  1165.             shell_type=$(echo "$SHELL" | awk -F'/' '{print $NF}')
  1166.         else
  1167.             if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  1168.                 shell_type=$(ps -p $PPID -o cmd --no-heading)
  1169.             elif [[ "${distro}" == "Mac OS X" || "${distro}" == "FreeBSD" || "${distro}" == "OpenBSD" ]]; then
  1170.                 shell_type=$(ps -p $PPID -o args | tail -1)
  1171.             else
  1172.                 shell_type=$(ps -p $(ps -p $PPID | awk '$1 !~ /PID/ {print $1}') | awk 'FNR>1 {print $1}')
  1173.             fi
  1174.             shell_type=${shell_type/-}
  1175.             shell_type=${shell_type//*\/}
  1176.         fi
  1177.     fi
  1178.  
  1179.     case $shell_type in
  1180.         bash)
  1181.             shell_version_data=$( detectshell_ver "$shell_type" "^GNU.bash,.version" "4" )
  1182.             ;;
  1183.         csh)
  1184.             shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  1185.             ;;
  1186.         dash)
  1187.             shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  1188.             ;;
  1189.         ksh)
  1190.             shell_version_data=$( detectshell_ver "$shell_type" "version" "5" )
  1191.             ;;
  1192.         tcsh)
  1193.             shell_version_data=$( detectshell_ver "$shell_type" "^tcsh" "2" )
  1194.             ;;
  1195.         zsh)
  1196.             shell_version_data=$( detectshell_ver "$shell_type" "^zsh" "2" )
  1197.             ;;
  1198.     esac
  1199.  
  1200.     if [[ -n $shell_version_data ]];then
  1201.         shell_type="$shell_type $shell_version_data"
  1202.     fi
  1203.  
  1204.     myShell=${shell_type}
  1205.     verboseOut "Finding current shell...found as '$myShell'"
  1206. }
  1207. # Shell Detection - End
  1208.  
  1209.  
  1210. # Resolution Detection - Begin
  1211. detectres () {
  1212.     if [[ ${distro} != "Mac OS X" && ${distro} != "Cygwin" ]]; then
  1213.         if [[ -n ${DISPLAY} ]]; then
  1214.             if type -p xdpyinfo >/dev/null 2>&1; then
  1215.                 if [[ "$distro" =~ "BSD" ]]; then
  1216.                     xResolution=$(xdpyinfo | sed -n 's/.*dim.* \([0-9]*x[0-9]*\) .*/\1/pg' | tr '\n' ' ')
  1217.                 else
  1218.                     xResolution=$(xdpyinfo | sed -n 's/.*dim.* \([0-9]*x[0-9]*\) .*/\1/pg' | sed ':a;N;$!ba;s/\n/ /g')
  1219.                 fi
  1220.             fi
  1221.         fi
  1222.     elif [[ ${distro} == "Mac OS X" ]]; then
  1223.         xResolution=$(system_profiler SPDisplaysDataType | awk '/Resolution:/ {print $2"x"$4" "}')
  1224.         if [[ "$(echo $xResolution | wc -l)" -ge 1 ]]; then
  1225.             xResolution=$(echo $xResolution | tr "\\n" "," | sed 's/\(.*\),/\1/')
  1226.         fi
  1227.     elif [[ "${distro}" == "Cygwin" ]]; then
  1228.         width=($(wmic desktopmonitor get screenwidth | grep -vE '[a-z]+' | tr '\r\n' ' '))
  1229.         height=($(wmic desktopmonitor get screenheight | grep -vE '[a-z]+' | tr '\r\n' ' '))
  1230.  
  1231.         xResolution=""
  1232.         len=${#width[@]}
  1233.        
  1234.         delim=" "
  1235.         for ((i=0;i<len;i++)); do
  1236.             xResolution="${xResolution}${delim}${width[i]}x${height[i]}"
  1237.         done
  1238.         xResolution=$(echo $xResolution | sed "s/^$delim//")
  1239.     else
  1240.         xResolution="No X Server"
  1241.     fi
  1242.     verboseOut "Finding current resolution(s)...found as '$xResolution'"
  1243. }
  1244. # Resolution Detection - End
  1245.  
  1246.  
  1247. # DE Detection - Begin
  1248. detectde () {
  1249.     DE="Not Present"
  1250.     if [[ ${distro} != "Mac OS X" && ${distro} != "Cygwin" ]]; then
  1251.         if [[ -n ${DISPLAY} ]]; then
  1252.             if type -p xprop >/dev/null 2>&1;then
  1253.                 xprop_root="$(xprop -root 2>/dev/null)"
  1254.                 if [[ -n ${xprop_root} ]]; then
  1255.                     DE=$(echo "${xprop_root}" | awk 'BEGIN {
  1256.                         de = "Not Present"
  1257.                     }
  1258.                     {
  1259.                         if ($1 ~ /^_DT_SAVE_MODE/) {
  1260.                             de = $NF
  1261.                             gsub(/\"/,"",de)
  1262.                             de = toupper(de)
  1263.                             exit
  1264.                         }
  1265.                         else if ($1 ~/^KDE_SESSION_VERSION/) {
  1266.                             de = "KDE"$NF
  1267.                             exit
  1268.                         }
  1269.                         else if ($1 ~ /^_MARCO/) {
  1270.                             de = "MATE"
  1271.                             exit
  1272.                         }
  1273.                         else if ($1 ~ /^_MUFFIN/) {
  1274.                             de = "Cinnamon"
  1275.                             exit
  1276.                         }
  1277.                         else if ($0 ~ /"xfce4"/) {
  1278.                             de = "XFCE4"
  1279.                             exit
  1280.                         }
  1281.                         else if ($0 ~ /"xfce5"/) {
  1282.                             de = "XFCE5"
  1283.                             exit
  1284.                         }
  1285.                     } END {
  1286.                         print de
  1287.                     }')
  1288.                 fi
  1289.             fi
  1290.  
  1291.             if [[ ${DE} == "Not Present" ]]; then
  1292.                 # Lets use xdg-open code for Gnome/Enlightment/KDe/Lxde/Mate/XFCE detection
  1293.                 # http://bazaar.launchpad.net/~vcs-imports/xdg-utils/master/view/head:/scripts/xdg-utils-common.in#L251
  1294.                 if [ -n "${XDG_CURRENT_DESKTOP}" ]; then
  1295.                     case "${XDG_CURRENT_DESKTOP}" in
  1296.                         ENLIGHTENMENT)
  1297.                             DE=Enlightenment;
  1298.                             ;;
  1299.                         GNOME)
  1300.                             DE=Gnome;
  1301.                             ;;
  1302.                         KDE)
  1303.                             DE=KDE;
  1304.                             ;;
  1305.                         LUMINA)
  1306.                             DE=Lumina;
  1307.                             ;;
  1308.                         LXDE)
  1309.                             DE=LXDE;
  1310.                             ;;
  1311.                         MATE)
  1312.                             DE=Mate;
  1313.                             ;;
  1314.                         XFCE)
  1315.                             DE=XFCE
  1316.                             ;;
  1317.                         'X-Cinnamon')
  1318.                             DE=Cinnamon
  1319.                             ;;
  1320.                         Unity)
  1321.                             DE=Unity
  1322.                             ;;
  1323.                     esac
  1324.                 fi
  1325.  
  1326.                 if [ x"$DE" = x"" ]; then
  1327.                     # classic fallbacks
  1328.                     if [ x"$KDE_FULL_SESSION" != x"" ]; then DE=KDE;
  1329.                     elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=Gnome;
  1330.                     elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=MATE;
  1331.                     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;
  1332.                     elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=XFCE;
  1333.                     elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=XFCE
  1334.                     elif echo $DESKTOP | grep -q '^Enlightenment'; then DE=Enlightenment;
  1335.                     fi
  1336.                 fi
  1337.  
  1338.                 if [ x"$DE" = x"" ]; then
  1339.                     # fallback to checking $DESKTOP_SESSION
  1340.                     case "$DESKTOP_SESSION" in
  1341.                         gnome)
  1342.                             DE=Gnome;
  1343.                             ;;
  1344.                         LUMINA)
  1345.                             DE=Lumina;
  1346.                             ;;
  1347.                         LXDE|Lubuntu)
  1348.                             DE=LXDE;
  1349.                             ;;
  1350.                         MATE)
  1351.                             DE=MATE;
  1352.                             ;;
  1353.                         xfce|xfce4|'Xfce Session')
  1354.                             DE=XFCE;
  1355.                             ;;
  1356.                         'budgie-desktop')
  1357.                             DE=Budgie
  1358.                             ;;
  1359.                         Cinnamon)
  1360.                             DE=Cinnamon
  1361.                             ;;
  1362.                     esac
  1363.                 fi
  1364.  
  1365.                 if [ x"$GDMSESSION" = x"" ]; then
  1366.                     # fallback to checking $GDMSESSION
  1367.                     case "$GDMSESSION" in
  1368.                         Lumina*|LUMINA*|lumina*)
  1369.                             DE=Lumina
  1370.                             ;;
  1371.                         MATE|mate)
  1372.                             DE=MATE
  1373.                             ;;
  1374.                     esac
  1375.                 fi
  1376.  
  1377.                 if [[ ${DE} == "Gnome" ]]; then
  1378.                     if type -p xprop >/dev/null 2>&1; then
  1379.                         if xprop -name "unity-launcher" >/dev/null 2>&1; then
  1380.                             DE="Unity"
  1381.                         elif xprop -name "launcher" >/dev/null 2>&1 &&
  1382.                             xprop -name "panel" >/dev/null 2>&1; then
  1383.  
  1384.                             DE="Unity"
  1385.                         fi
  1386.                     fi
  1387.                 fi
  1388.  
  1389.                 if [[ ${DE} == "KDE" ]]; then
  1390.                     if [[ -n ${KDE_SESSION_VERSION} ]]; then
  1391.                         if [[ ${KDE_SESSION_VERSION} == '5' ]]; then
  1392.                             DE="KDE5"
  1393.                         elif [[ ${KDE_SESSION_VERSION} == '4' ]]; then
  1394.                             DE="KDE4"
  1395.                         fi
  1396.                     elif [[ -n ${KDE_FULL_SESSION} ]]; then
  1397.                         if [[ ${KDE_FULL_SESSION} == 'true' ]]; then
  1398.                             DE="KDE"
  1399.                             DEver_data=$( kded --version 2>/dev/null )
  1400.                             DEver=$( grep -si '^KDE:' <<< "$DEver_data" | awk '{print $2}' )
  1401.                         fi
  1402.                     fi
  1403.                 fi
  1404.             fi
  1405.  
  1406.  
  1407.             if [[ ${DE} != "Not Present" ]]; then
  1408.                 if [[ ${DE} == "Cinnamon" ]]; then
  1409.                     if type -p >/dev/null 2>&1; then
  1410.                         DEver=$(cinnamon --version)
  1411.                         DE="${DE} ${DEver//* }"
  1412.                     fi
  1413.                 elif [[ ${DE} == "Gnome" || ${DE} == "GNOME" ]]; then
  1414.                     if type -p gnome-session >/dev/null 2>&1; then
  1415.                         DEver=$(gnome-session --version 2> /dev/null)
  1416.                         DE="${DE} ${DEver//* }"
  1417.                     elif type -p gnome-session-properties >/dev/null 2>&1; then
  1418.                         DEver=$(gnome-session-properties --version 2> /dev/null)
  1419.                         DE="${DE} ${DEver//* }"
  1420.                     fi
  1421.                 elif [[ ${DE} == "KDE4" || ${DE} == "KDE5" ]]; then
  1422.                     if type -p kded${DE#KDE} >/dev/null 2>&1; then
  1423.                         DEver=$(kded${DE#KDE} --version)
  1424.                         for l in $(echo "${DEver// /_}"); do
  1425.                             if [[ ${l//:*} == "KDE_Development_Platform" ]]; then
  1426.                                 DEver=${l//*:_}
  1427.                                 DE="KDE ${DEver//_*}"
  1428.                             fi;
  1429.                         done
  1430.                     fi
  1431.                 elif [[ ${DE} == "Lumina" ]]; then
  1432.                     if type -p Lumina-DE.real >/dev/null 2>&1; then
  1433.                         lumina="$(type -p Lumina-DE.real)"
  1434.                     elif type -p Lumina-DE >/dev/null 2>&1; then
  1435.                         lumina="$(type -p Lumina-DE)"
  1436.                     fi
  1437.                     if [[ x"$lumina" != x ]]; then
  1438.                         if grep -e '--version' "$lumina" >/dev/null; then
  1439.                             DEver=$("$lumina" --version 2>&1 | tr -d \")
  1440.                             DE="${DE} ${DEver}"
  1441.                         fi
  1442.                     fi
  1443.                 elif [[ ${DE} == "MATE" ]]; then
  1444.                     if type -p mate-session >/dev/null 2>&1; then
  1445.                         DEver=$(mate-session --version)
  1446.                         DE="${DE} ${DEver//* }"
  1447.                     fi
  1448.                 elif [[ ${DE} == "Unity" ]]; then
  1449.                     if type -p unity >/dev/null 2>&1; then
  1450.                         DEver=$(unity --version)
  1451.                         DE="${DE} ${DEver//* }"
  1452.                     fi
  1453.                 fi
  1454.             fi
  1455.  
  1456.             if [[ "${DE}" == "Not Present" ]]; then
  1457.                 if pgrep -U ${UID} lxsession >/dev/null 2>&1; then
  1458.                     DE="LXDE"
  1459.                     if type -p lxpanel >/dev/null 2>&1; then
  1460.                         DEver=$(lxpanel -v)
  1461.                         DE="${DE} $DEver"
  1462.                     fi
  1463.                 elif pgrep -U ${UID} razor-session >/dev/null 2>&1; then
  1464.                     DE="RazorQt"
  1465.                 elif pgrep -U ${UID} dtsession >/dev/null 2>&1; then
  1466.                     DE="CDE"
  1467.                 fi
  1468.             fi
  1469.         fi
  1470.     elif [[ "${distro}" == "Mac OS X" ]]; then
  1471.         if ps -U ${USER} | grep [F]inder >/dev/null 2>&1; then
  1472.             DE="Aqua"
  1473.         fi
  1474.     elif [[ "${distro}" == "Cygwin" ]]; then
  1475.         winver=`wmic os get version | grep -o '^[0-9]'`
  1476.         if [ "$winver" == "7" ]; then DE='Aero'
  1477.         elif [ "$winver" == "6" ]; then DE='Aero'
  1478.         else DE='Luna'; fi
  1479.     fi
  1480.     verboseOut "Finding desktop environment...found as '$DE'"
  1481. }
  1482. ### DE Detection - End
  1483.  
  1484.  
  1485. # WM Detection - Begin
  1486. detectwm () {
  1487.     WM="Not Found"
  1488.     if [[ ${distro} != "Mac OS X" && ${distro} != "Cygwin" ]]; then
  1489.         if [[ -n ${DISPLAY} ]]; then
  1490.             for each in "${wmnames[@]}"; do
  1491.                 PID="$(pgrep -U ${UID} "^$each$")"
  1492.                 if [ "$PID" ]; then
  1493.                     case $each in
  1494.                         '2bwm') WM="2bwm";;
  1495.                         '9wm') WM="9wm";;
  1496.                         'awesome') WM="Awesome";;
  1497.                         'beryl') WM="Beryl";;
  1498.                         'bspwm') WM="bspwm";;
  1499.                         'blackbox') WM="BlackBox";;
  1500.                         'budgie-wm') WM="BudgieWM";;
  1501.                         'cinnamon') WM="Muffin";;
  1502.                         'compiz') WM="Compiz";;
  1503.                         'dminiwm') WM="dminiwm";;
  1504.                         'dwm') WM="dwm";;
  1505.                         'dtwm') WM="dtwm";;
  1506.                         'e16') WM="E16";;
  1507.                         'emerald') WM="Emerald";;
  1508.                         'enlightenment') WM="E17";;
  1509.                         'fluxbox') WM="FluxBox";;
  1510.                         'fvwm') WM="FVWM";;
  1511.                         'herbstluftwm') WM="herbstluftwm";;
  1512.                         'icewm') WM="IceWM";;
  1513.                         'kwin') WM="KWin";;
  1514.                         'metacity') WM="Metacity";;
  1515.                         'monsterwm') WM="monsterwm";;
  1516.                         'musca') WM="Musca";;
  1517.                         'notion') WM="Notion";;
  1518.                         'openbox') WM="OpenBox";;
  1519.                         'pekwm') WM="PekWM";;
  1520.                         'ratpoison') WM="Ratpoison";;
  1521.                         'sawfish') WM="Sawfish";;
  1522.                         'scrotwm') WM="ScrotWM";;
  1523.                         'spectrwm') WM="SpectrWM";;
  1524.                         'stumpwm') WM="StumpWM";;
  1525.                         'subtle') WM="subtle";;
  1526.                         'swm') WM="swm";;
  1527.                         'wmaker') WM="WindowMaker";;
  1528.                         'wmfs') WM="WMFS";;
  1529.                         'wmii') WM="wmii";;
  1530.                         'xfwm4') WM="Xfwm4";;
  1531.                         'i3') WM="i3";;
  1532.                         'xmonad.*') WM="XMonad";;
  1533.                     esac
  1534.                 fi
  1535.  
  1536.                 if [[ ${WM} != "Not Found" ]]; then
  1537.                     break 1
  1538.                 fi
  1539.             done
  1540.  
  1541.             if [[ ${WM} == "Not Found" ]]; then
  1542.                 if type -p xprop >/dev/null 2>&1; then
  1543.                     WM=$(xprop -root _NET_SUPPORTING_WM_CHECK)
  1544.                     if [[ "$WM" =~ 'not found' ]]; then
  1545.                         WM="Not Found"
  1546.                     elif [[ "$WM" =~ 'Not found' ]]; then
  1547.                         WM="Not Found"
  1548.                     elif [[ "$WM" =~ '[Ii]nvalid window id format' ]]; then
  1549.                         WM="Not Found"
  1550.                     elif [[ "$WM" =~ "no such" ]]; then
  1551.                         WM="Not Found"
  1552.                     else
  1553.                         WM=${WM//* }
  1554.                         WM=$(xprop -id ${WM} 8s _NET_WM_NAME)
  1555.                         WM=$(echo $(WM=${WM//*= }; echo ${WM//\"}))
  1556.                     fi
  1557.                 fi
  1558.             else
  1559.                 if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  1560.                     if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  1561.                         WM=${WM,,}
  1562.                     else
  1563.                         WM="$(tr '[:upper:]' '[:lower:]' <<< ${WM})"
  1564.                     fi
  1565.                 else
  1566.                     WM="$(tr '[:upper:]' '[:lower:]' <<< ${WM})"
  1567.                 fi
  1568.                 case ${WM} in
  1569.                     '2bwm') WM="2bwm";;
  1570.                     'awesome') WM="Awesome";;
  1571.                     'beryl') WM="Beryl";;
  1572.                     'blackbox') WM="BlackBox";;
  1573.                     'budgiewm') WM="BudgieWM";;
  1574.                     'cinnamon') WM="Cinnamon";;
  1575.                     'compiz') WM="Compiz";;
  1576.                     'dminiwm') WM="dminiwm";;
  1577.                     'dwm') WM="dwm";;
  1578.                     'e16') WM="E16";;
  1579.                     'echinus') WM="echinus";;
  1580.                     'emerald') WM="Emerald";;
  1581.                     'enlightenment') WM="E17";;
  1582.                     'fluxbox') WM="FluxBox";;
  1583.                     'fvwm') WM="FVWM";;
  1584.                     'herbstluftwm') WM="herbstluftwm";;
  1585.                     'icewm') WM="IceWM";;
  1586.                     'kwin') WM="KWin";;
  1587.                     'metacity') WM="Metacity";;
  1588.                     'monsterwm') WM="monsterwm";;
  1589.                     'musca') WM="Musca";;
  1590.                     *'gala'*) WM="Gala";;
  1591.                     'mutter'*) WM="Mutter";;
  1592.                     'gnome shell'*) WM="Mutter";;
  1593.                     'muffin') WM="Muffin";;
  1594.                     'notion') WM="Notion";;
  1595.                     'openbox') WM="OpenBox";;
  1596.                     'pekwm') WM="PekWM";;
  1597.                     'ratpoison') WM="Ratpoison";;
  1598.                     'sawfish') WM="Sawfish";;
  1599.                     'scrotwm') WM="ScrotWM";;
  1600.                     'spectrwm') WM="SpectrWM";;
  1601.                     'stumpwm') WM="StumpWM";;
  1602.                     'subtle') WM="subtle";;
  1603.                     'swm') WM="swm";;
  1604.                     'wmaker') WM="WindowMaker";;
  1605.                     'wmfs') WM="WMFS";;
  1606.                     'wmii') WM="wmii";;
  1607.                     'xfwm4') WM="Xfwm4";;
  1608.                     'xmonad') WM="XMonad";;
  1609.                     'i3') WM="i3";;
  1610.                 esac
  1611.             fi
  1612.         fi
  1613.     elif [[ ${distro} == "Mac OS X" && "${WM}" == "Not Found" ]]; then
  1614.         if ps -U ${USER} | grep Finder >/dev/null 2>&1; then
  1615.             WM="Quartz Compositor"
  1616.         fi
  1617.     elif [[ "${distro}" == "Cygwin" ]]; then
  1618.         bugn=$(tasklist | grep -o 'bugn' | tr -d '\r \n')
  1619.         wind=$(tasklist | grep -o 'Windawesome' | tr -d '\r \n')
  1620.         if [ "$bugn" = "bugn" ]; then WM="bug.n"
  1621.         elif [ "$wind" = "Windawesome" ]; then WM="Windawesome"
  1622.         else WM="DWM"; fi
  1623.     fi
  1624.     verboseOut "Finding window manager...found as '$WM'"
  1625. }
  1626. # WM Detection - End
  1627.  
  1628.  
  1629. # WM Theme Detection - BEGIN
  1630. detectwmtheme () {
  1631.     Win_theme="Not Found"
  1632.     case $WM in
  1633.         '2bwm') Win_theme="Not Applicable";;
  1634.         '9wm') Win_theme="Not Applicable";;
  1635.         '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;;
  1636.         'BlackBox') if [ -f $HOME/.blackboxrc ]; then Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' $HOME/.blackboxrc)"; fi;;
  1637.         'Beryl') Win_theme="Not Applicable";;
  1638.         'bspwm') Win_theme="Not Applicable";;
  1639.         'BudgieWM')
  1640.             Win_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
  1641.             Win_theme="${Win_theme//\'}"
  1642.         ;;
  1643.         'Cinnamon'|'Muffin')
  1644.             de_theme="$(gsettings get org.cinnamon.theme name)"
  1645.             de_theme=${de_theme//"'"}
  1646.             win_theme="$(gsettings get org.cinnamon.desktop.wm.preferences theme)"
  1647.             win_theme=${win_theme//"'"}
  1648.             Win_theme="${de_theme} (${win_theme})"
  1649.         ;;
  1650.         'Compiz'|'Mutter'*|'GNOME Shell'|'Gala')
  1651.             if type -p gsettings >/dev/null 2>&1; then
  1652.                 Win_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
  1653.                 Win_theme=${Win_theme//"'"}
  1654.             elif type -p gconftool-2 >/dev/null 2>&1; then
  1655.                 Win_theme=$(gconftool-2 -g /apps/metacity/general/theme)
  1656.             fi
  1657.         ;;
  1658.         'dminiwm') Win_theme="Not Applicable";;
  1659.         'dwm') Win_theme="Not Applicable";;
  1660.         'E16') Win_theme="$(awk -F"= " '/theme.name/ {print $2}' $HOME/.e16/e_config--0.0.cfg)";;
  1661.         'E17'|'Enlightenment')
  1662.             if [ "$(which eet 2>/dev/null)" ]; then
  1663.                 econfig="$(eet -d $HOME/.e/e/config/standard/e.cfg config | awk '/value \"file\" string.*.edj/{ print $4 }')"
  1664.                 econfigend="${econfig##*/}"
  1665.                 Win_theme=${econfigend%.*}
  1666.             fi
  1667.         ;;
  1668.         #E17 doesn't store cfg files in text format so for now get the profile as opposed to theme. atyoung
  1669.         #TODO: Find a way to extract and read E17 .cfg files ( google seems to have nothing ). atyoung
  1670.         'E17') Win_theme=${E_CONF_PROFILE};;
  1671.         'echinus') Win_theme="Not Applicable";;
  1672.         '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;;
  1673.         'Finder') Win_theme="Not Applicable";;
  1674.         'FluxBox'|'Fluxbox') if [ -f $HOME/.fluxbox/init ]; then Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' $HOME/.fluxbox/init)"; fi;;
  1675.         'FVWM') Win_theme="Not Applicable";;
  1676.         'i3') Win_theme="Not Applicable";;
  1677.         'IceWM') if [ -f $HOME/.icewm/theme ]; then Win_theme="$(awk -F"[\",/]" '!/#/ {print $2}' $HOME/.icewm/theme)"; fi;;
  1678.         'KWin'*)
  1679.             if [[ -z $KDE_CONFIG_DIR ]]; then
  1680.                 if type -p kde5-config >/dev/null 2>&1; then
  1681.                     KDE_CONFIG_DIR=$(kde5-config --localprefix)
  1682.                 elif type -p kde4-config >/dev/null 2>&1; then
  1683.                     KDE_CONFIG_DIR=$(kde4-config --localprefix)
  1684.                 elif type -p kde-config >/dev/null 2>&1; then
  1685.                     KDE_CONFIG_DIR=$(kde-config --localprefix)
  1686.                 fi
  1687.             fi
  1688.  
  1689.             if [[ -n $KDE_CONFIG_DIR ]]; then
  1690.                 Win_theme=$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0); print $0; exit}' $KDE_CONFIG_DIR/share/config/kwinrc)
  1691.                 if [[ -z $Win_theme ]]; then
  1692.                     if [[ -f $KDE_CONFIG_DIR/share/config/kdebugrc ]]; then
  1693.                         Win_theme=$(awk '/(decoration)/ {gsub(/\[/,"",$1); print $1; exit}' $KDE_CONFIG_DIR/share/config/kdebugrc)
  1694.                         if [[ -z $Win_theme ]]; then
  1695.                             Win_theme="Not Applicable"
  1696.                         fi
  1697.                     else
  1698.                         Win_theme="Not Applicable"
  1699.                     fi
  1700.                 fi
  1701.  
  1702.                 if [[ $Win_theme != 'Not Applicable' ]]; then
  1703.                     if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  1704.                         if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  1705.                             Win_theme=${Win_theme^}
  1706.                         else
  1707.                             Win_theme="$(tr '[:lower:]' '[:upper:]' <<< ${Win_theme:0:1})${Win_theme:1}"
  1708.                         fi
  1709.                     else
  1710.                         Win_theme="$(tr '[:lower:]' '[:upper:]' <<< ${Win_theme:0:1})${Win_theme:1}"
  1711.                     fi
  1712.                 fi
  1713.             fi
  1714.         ;;
  1715.         'Marco')
  1716.             Win_theme="$(gsettings get org.mate.Marco.general theme)"
  1717.             Win_theme=${Win_theme//"'"}
  1718.         ;;
  1719.         'Metacity') if [ "`gconftool-2 -g /apps/metacity/general/theme`" ]; then Win_theme="$(gconftool-2 -g /apps/metacity/general/theme)"; fi ;;
  1720.         'monsterwm') Win_theme="Not Applicable";;
  1721.         'Musca') Win_theme="Not Applicable";;
  1722.         'Notion') Win_theme="Not Applicable";;
  1723.         'OpenBox'|'Openbox')
  1724.             if [ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml ]; then
  1725.                 Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml)";
  1726.             elif [[ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml && $DE == "LXDE" ]]; then
  1727.                 Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml)";
  1728.             fi
  1729.         ;;
  1730.         'PekWM') if [ -f $HOME/.pekwm/config ]; then Win_theme="$(awk -F"/" '/Theme/ {gsub(/\"/,""); print $NF}' $HOME/.pekwm/config)"; fi;;
  1731.         'Ratpoison') Win_theme="Not Applicable";;
  1732.         'Sawfish') Win_theme="$(awk -F")" '/\(quote default-frame-style/{print $2}' $HOME/.sawfish/custom | sed 's/ (quote //')";;
  1733.         'ScrotWM') Win_theme="Not Applicable";;
  1734.         'SpectrWM') Win_theme="Not Applicable";;
  1735.         'swm') Win_theme="Not Applicable";;
  1736.         'subtle') Win_theme="Not Applicable";;
  1737.         'WindowMaker') Win_theme="Not Applicable";;
  1738.         'WMFS') Win_theme="Not Applicable";;
  1739.         'wmii') Win_theme="Not Applicable";;
  1740.         '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;;
  1741.         'XMonad') Win_theme="Not Applicable";;
  1742.     esac
  1743.     if [[ "${distro}" == "Mac OS X" ]]; then
  1744.         themeNumber="$(defaults read NSGlobalDomain AppleAquaColorVariant 2>/dev/null)"
  1745.         if [ "${themeNumber}" == "1" ] || [ "${themeNumber}x" == "x" ]; then
  1746.             Win_theme="Blue"
  1747.         else
  1748.             Win_theme="Graphite"
  1749.         fi
  1750.     elif [[ "${distro}" == "Cygwin" ]]; then
  1751.         themeFile="$(reg query 'HKCU\Software\Microsoft\Windows\CurrentVersion\Themes' /v 'CurrentTheme' | grep -o '[A-Z]:\\.*')"
  1752.         Win_theme=$(echo $themeFile | awk -F"\\" '{print $NF}' | grep -o '[0-9A-z. ]*$' | grep -o '^[0-9A-z ]*')
  1753.     fi
  1754.  
  1755.     verboseOut "Finding window manager theme...found as '$Win_theme'"
  1756. }
  1757. # WM Theme Detection - END
  1758.  
  1759. # GTK Theme\Icon\Font Detection - BEGIN
  1760. detectgtk () {
  1761.     gtk2Theme="Not Found"
  1762.     gtk3Theme="Not Found"
  1763.     gtkIcons="Not Found"
  1764.     gtkFont="Not Found"
  1765.     # Font detection (OS X)
  1766.     if [[ ${distro} == "Mac OS X" ]]; then
  1767.         gtk2Theme="Not Applicable"
  1768.         gtk3Theme="Not Applicable"
  1769.         gtkIcons="Not Applicable"
  1770.         if ps -U ${USER} | grep [F]inder >/dev/null 2>&1; then
  1771.             if [ -f ~/Library/Preferences/com.googlecode.iterm2.plist ]; then
  1772.                 gtkFont=$(str1=$(defaults read com.googlecode.iTerm2|grep -m 1 "Normal Font");echo ${str1:29:${#str1}-29-2})
  1773.             fi
  1774.         fi
  1775.     else
  1776.         case $DE in
  1777.             'KDE'*) # Desktop Environment found as "KDE"
  1778.                 if type - p kde4-config >/dev/null 2>&1; then
  1779.                     KDE_CONFIG_DIR=$(kde4-config --localprefix)
  1780.                     if [[ -d ${KDE_CONFIG_DIR} ]]; then
  1781.                         if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  1782.                             KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  1783.                         fi
  1784.                     fi
  1785.                 elif type -p kde5-config >/dev/null 2>&1; then
  1786.                     KDE_CONFIG_DIR=$(kde5-config --localprefix)
  1787.                     if [[ -d ${KDE_CONFIG_DIR} ]]; then
  1788.                         if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  1789.                             KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  1790.                         fi
  1791.                     fi
  1792.                 elif type -p kde-config >/dev/null 2>&1; then
  1793.                     KDE_CONFIG_DIR=$(kde-config --localprefix)
  1794.                     if [[ -d ${KDE_CONFIG_DIR} ]]; then
  1795.                         if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  1796.                             KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  1797.                         fi
  1798.                     fi
  1799.                 fi
  1800.  
  1801.                 if [[ -n ${KDE_CONFIG_FILE} ]]; then
  1802.                     if grep -q "widgetStyle=" "${KDE_CONFIG_FILE}"; then
  1803.                         gtk2Theme=$(awk -F"=" '/widgetStyle=/ {print $2}' "${KDE_CONFIG_FILE}")
  1804.                     elif grep -q "colorScheme=" "${KDE_CONFIG_FILE}"; then
  1805.                         gtk2Theme=$(awk -F"=" '/colorScheme=/ {print $2}' "${KDE_CONFIG_FILE}")
  1806.                     fi
  1807.  
  1808.                     if grep -q "Theme=" "${KDE_CONFIG_FILE}"; then
  1809.                         gtkIcons=$(awk -F"=" '/Theme=/ {print $2}' "${KDE_CONFIG_FILE}")
  1810.                     fi
  1811.  
  1812.                     if grep -q "Font=" "${KDE_CONFIG_FILE}"; then
  1813.                         gtkFont=$(awk -F"=" '/font=/ {print $2}' "${KDE_CONFIG_FILE}")
  1814.                     fi
  1815.                 fi
  1816.  
  1817.                 if [[ -f $HOME/.gtkrc-2.0 ]]; then
  1818.                     gtk2Theme=$(grep '^gtk-theme-name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  1819.                     gtk2Theme=${gtk2Theme//\"/}
  1820.                     gtkIcons=$(grep '^gtk-icon-theme-name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  1821.                     gtkIcons=${gtkIcons//\"/}
  1822.                     gtkFont=$(grep 'font_name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  1823.                     gtkFont=${gtkFont//\"/}
  1824.                 fi
  1825.  
  1826.                 if [[ -f $HOME/.config/gtk-3.0/settings.ini ]]; then
  1827.                     gtk3Theme=$(grep '^gtk-theme-name=' $HOME/.config/gtk-3.0/settings.ini | awk -F'=' '{print $2}')
  1828.                 fi
  1829.             ;;
  1830.             'Cinnamon'*) # Desktop Environment found as "Cinnamon"
  1831.                 if type -p gsettings >/dev/null 2>&1; then
  1832.                     gtk3Theme=$(gsettings get org.cinnamon.desktop.interface gtk-theme)
  1833.                     gtk3Theme=${gtk3Theme//"'"}
  1834.                     gtk2Theme=${gtk3Theme}
  1835.  
  1836.                     gtkIcons=$(gsettings get org.cinnamon.desktop.interface icon-theme)
  1837.                     gtkIcons=${gtkIcons//"'"}
  1838.                     gtkFont=$(gsettings get org.cinnamon.desktop.interface font-name)
  1839.                     gtkFont=${gtkFont//"'"}
  1840.                     if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  1841.                 fi
  1842.             ;;
  1843.             'GNOME'*|'Gnome'*|'Unity'*|'Budgie') # Desktop Environment found as "GNOME"
  1844.                 if type -p gsettings >/dev/null 2>&1; then
  1845.                     gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme)
  1846.                     gtk3Theme=${gtk3Theme//"'"}
  1847.                     gtk2Theme=${gtk3Theme}
  1848.                     gtkIcons=$(gsettings get org.gnome.desktop.interface icon-theme)
  1849.                     gtkIcons=${gtkIcons//"'"}
  1850.                     gtkFont=$(gsettings get org.gnome.desktop.interface font-name)
  1851.                     gtkFont=${gtkFont//"'"}
  1852.                     if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  1853.                 elif type -p gconftool-2 >/dev/null 2>&1; then
  1854.                     gtk2Theme=$(gconftool-2 -g /desktop/gnome/interface/gtk_theme)
  1855.                     gtkIcons=$(gconftool-2 -g /desktop/gnome/interface/icon_theme)
  1856.                     gtkFont=$(gconftool-2 -g /desktop/gnome/interface/font_name)
  1857.                     if [ "$background_detect" == "1" ]; then
  1858.                         gtkBackgroundFull=$(gconftool-2 -g /desktop/gnome/background/picture_filename)
  1859.                         gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  1860.                     fi
  1861.                 fi
  1862.             ;;
  1863.             'MATE'*) # MATE desktop environment
  1864.                 #if type -p gsettings >/dev/null 2&>1; then
  1865.                 gtk3Theme=$(gsettings get org.mate.interface gtk-theme)
  1866.                 # gtk3Theme=${gtk3Theme//"'"}
  1867.                 gtk2Theme=${gtk3Theme}
  1868.                 gtkIcons=$(gsettings get org.mate.interface icon-theme)
  1869.                 gtkIcons=${gtkIcons//"'"}
  1870.                 gtkFont=$(gsettings get org.mate.interface font-name)
  1871.                 gtkFont=${gtkFont//"'"}
  1872.                 #fi
  1873.             ;;
  1874.             'XFCE'*) # Desktop Environment found as "XFCE"
  1875.                 if type -p xfconf-query >/dev/null 2>&1; then
  1876.                     gtk2Theme=$(xfconf-query -c xsettings -p /Net/ThemeName)
  1877.                 fi
  1878.  
  1879.                 if type -p xfconf-query >/dev/null 2>&1; then
  1880.                     gtkIcons=$(xfconf-query -c xsettings -p /Net/IconThemeName)
  1881.                 fi
  1882.  
  1883.                 if type -p xfconf-query >/dev/null 2>&1; then
  1884.                     gtkFont=$(xfconf-query -c xsettings -p /Gtk/FontName)
  1885.                 fi
  1886.             ;;
  1887.             'LXDE'*)
  1888.                 if [ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/lxde/config ]; then
  1889.                     lxdeconf="/lxde/config"
  1890.                 elif [ "$distro" == "Trisquel" ]; then
  1891.                     lxdeconf=""
  1892.                 elif [ "$distro" == "FreeBSD" ]; then
  1893.                     lxdeconf=""
  1894.                 else
  1895.                     lxdeconf="/lxsession/LXDE/desktop.conf"
  1896.                 fi
  1897.                 # TODO: Clean me.
  1898.                 if grep -q "sNet\/ThemeName" ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf 2>/dev/null; then
  1899.                     gtk2Theme=$(awk -F'=' '/sNet\/ThemeName/ {print $2}' ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf)
  1900.                 fi
  1901.  
  1902.                 if grep -q IconThemeName ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf 2>/dev/null; then
  1903.                     gtkIcons=$(awk -F'=' '/sNet\/IconThemeName/ {print $2}' ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf)
  1904.                 fi
  1905.  
  1906.                 if grep -q FontName ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf 2>/dev/null; then
  1907.                     gtkFont=$(awk -F'=' '/sGtk\/FontName/ {print $2}' ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf)
  1908.                 fi
  1909.             ;;
  1910.  
  1911.             # /home/me/.config/rox.sourceforge.net/ROX-Session/Settings.xml
  1912.  
  1913.             *)  # Lightweight or No DE Found
  1914.                 if [ -f "$HOME/.gtkrc-2.0" ]; then
  1915.                     if grep -q gtk-theme $HOME/.gtkrc-2.0; then
  1916.                         gtk2Theme=$(awk -F'"' '/^gtk-theme/ {print $2}' $HOME/.gtkrc-2.0)
  1917.                     fi
  1918.  
  1919.                     if grep -q icon-theme $HOME/.gtkrc-2.0; then
  1920.                         gtkIcons=$(awk -F'"' '/^gtk-icon-theme/ {print $2}' $HOME/.gtkrc-2.0)
  1921.                     fi
  1922.  
  1923.                     if grep -q font $HOME/.gtkrc-2.0; then
  1924.                         gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' $HOME/.gtkrc-2.0)
  1925.                     fi
  1926.                 fi
  1927.                 # $HOME/.gtkrc.mine theme detect only
  1928.                 if [ -f "$HOME/.gtkrc.mine" ]; then
  1929.                     if grep -q "^include" $HOME/.gtkrc.mine; then
  1930.                         gtk2Theme=$(grep '^include.*gtkrc' $HOME/.gtkrc.mine | awk -F "/" '{ print $5 }')
  1931.                     fi
  1932.                     if grep -q "^gtk-icon-theme-name" $HOME/.gtkrc.mine; then
  1933.                         gtkIcons=$(grep '^gtk-icon-theme-name' $HOME/.gtkrc.mine | awk -F '"' '{print $2}')
  1934.                     fi
  1935.                 fi
  1936.                 # /etc/gtk-2.0/gtkrc compatability
  1937.                 if [[ -f /etc/gtk-2.0/gtkrc && ! -f $HOME/.gtkrc-2.0 && ! -f $HOME/.gtkrc.mine ]]; then
  1938.                     if grep -q gtk-theme-name /etc/gtk-2.0/gtkrc; then
  1939.                         gtk2Theme=$(awk -F'"' '/^gtk-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  1940.                     fi
  1941.                     if grep -q gtk-fallback-theme-name /etc/gtk-2.0/gtkrc  && ! [ "x$gtk2Theme" = "x" ]; then
  1942.                         gtk2Theme=$(awk -F'"' '/^gtk-fallback-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  1943.                     fi
  1944.  
  1945.                     if grep -q icon-theme /etc/gtk-2.0/gtkrc; then
  1946.                         gtkIcons=$(awk -F'"' '/^icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  1947.                     fi
  1948.                     if  grep -q gtk-fallback-icon-theme /etc/gtk-2.0/gtkrc  && ! [ "x$gtkIcons" = "x" ]; then
  1949.                         gtkIcons=$(awk -F'"' '/^gtk-fallback-icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  1950.                     fi
  1951.  
  1952.                     if grep -q font /etc/gtk-2.0/gtkrc; then
  1953.                         gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  1954.                     fi
  1955.                 fi
  1956.  
  1957.                 # EXPERIMENTAL gtk3 Theme detection
  1958.                 if [ -f "$HOME/.config/gtk-3.0/settings.ini" ]; then
  1959.                     if grep -q gtk-theme-name $HOME/.config/gtk-3.0/settings.ini; then
  1960.                         gtk3Theme=$(awk -F'=' '/^gtk-theme-name/ {print $2}' $HOME/.config/gtk-3.0/settings.ini)
  1961.                     fi
  1962.                 fi
  1963.  
  1964.                 # Proper gtk3 Theme detection
  1965.                 #if type -p gsettings >/dev/null 2>&1; then
  1966.                 #   gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme 2>/dev/null)
  1967.                 #   gtk3Theme=${gtk3Theme//"'"}
  1968.                 #fi
  1969.  
  1970.                 # ROX-Filer icon detect only
  1971.                 if [ -a "${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options" ]; then
  1972.                     gtkIcons=$(awk -F'[>,<]' '/^icon_theme/ {print $3}' ${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options)
  1973.                 fi
  1974.  
  1975.                 # E17 detection
  1976.                 if [ $E_ICON_THEME ]; then
  1977.                     gtkIcons=${E_ICON_THEME}
  1978.                     gtk2Theme="Not available."
  1979.                     gtkFont="Not available."
  1980.                 fi
  1981.  
  1982.                 # Background Detection (feh, nitrogen)
  1983.                 if [ "$background_detect" == "1" ]; then
  1984.                     if [ -a $HOME/.fehbg ]; then
  1985.                         gtkBackgroundFull=$(awk -F"'" '/feh --bg/{print $2}' $HOME/.fehbg 2>/dev/null)
  1986.                         gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  1987.                     elif [ -a ${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg ]; then
  1988.                         gtkBackground=$(awk -F"/" '/file=/ {print $NF}' ${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg)
  1989.                     fi
  1990.                 fi
  1991.  
  1992.                 if [ "$distro" == "Cygwin" -a "$gtkFont" == "Not Found" ]; then
  1993.                     if [ -f "$HOME/.minttyrc" ]; then
  1994.                         gtkFont="$(grep '^Font=.*' "$HOME/.minttyrc" | grep -o '[0-9A-z ]*$')"
  1995.                     fi
  1996.                 fi
  1997.             ;;
  1998.         esac
  1999.     fi
  2000.     verboseOut "Finding GTK2 theme...found as '$gtk2Theme'"
  2001.     verboseOut "Finding GTK3 theme...found as '$gtk3Theme'"
  2002.     verboseOut "Finding icon theme...found as '$gtkIcons'"
  2003.     verboseOut "Finding user font...found as '$gtkFont'"
  2004.     [[ $gtkBackground ]] && verboseOut "Finding background...found as '$gtkBackground'"
  2005. }
  2006. # GTK Theme\Icon\Font Detection - END
  2007.  
  2008. # Android-specific detections
  2009. detectdroid () {
  2010.     distro_ver=$(getprop ro.build.version.release)
  2011.  
  2012.     hostname=$(getprop net.hostname)
  2013.  
  2014.     _device=$(getprop ro.product.device)
  2015.     _model=$(getprop ro.product.model)
  2016.     device="${_model} (${_device})"
  2017.  
  2018.     if [[ $(getprop ro.build.host) == "cyanogenmod" ]]; then
  2019.         rom=$(getprop ro.cm.version)
  2020.     else
  2021.         rom=$(getprop ro.build.display.id)
  2022.     fi
  2023.  
  2024.     baseband=$(getprop ro.baseband)
  2025.  
  2026.     cpu=$(grep '^Processor' /proc/cpuinfo)
  2027.     cpu=$(echo "$cpu" | sed 's/Processor.*: //')
  2028. }
  2029.  
  2030.  
  2031. #######################
  2032. # End Detection Phase
  2033. #######################
  2034.  
  2035. takeShot () {
  2036.     if [[ -z $screenCommand ]]; then
  2037.         if [[ "${upload}" == "1" ]]; then
  2038.             shotfiles[1]=${shotfile}
  2039.             if [ "$distro" == "Mac OS X" ]; then
  2040.                 displays="$(system_profiler SPDisplaysDataType | grep 'Resolution:' | wc -l | tr -d ' ')"
  2041.                 for (( i=2; i<=$displays; i++))
  2042.                 do
  2043.                     shotfiles[$i]="$(echo ${shotfile} | sed "s/\(.*\)\./\1_${i}./")"
  2044.                 done
  2045.                 printf "Taking shot in 3.. "; sleep 1; printf "2.. "; sleep 1; printf "1.. "; sleep 1; printf "0.\n"; screencapture -x ${shotfiles[@]} &> /dev/null
  2046.             else scrot -cd3 "${shotfile}"; fi
  2047.             if [ -f "${shotfile}" ]; then
  2048.                 verboseOut "Screenshot saved at '${shotfiles[@]}'"
  2049.                 printf "${bold}==>${c0}  Uploading your screenshot now..."
  2050.                 case "${uploadLoc}" in
  2051.                     'teknik')
  2052.                         baseurl='https://u.teknik.io'
  2053.                         uploadurl='https://api.teknik.io/upload/post'
  2054.                         ret=$(curl -sf -F file="@${shotfiles[@]}" ${uploadurl})
  2055.                         desturl="${ret##*url\":\"}"
  2056.                         desturl="${desturl%%\"*}"
  2057.                         desturl="${desturl//\\}"
  2058.                     ;;
  2059.                     'mediacrush')
  2060.                         baseurl='https://mediacru.sh'
  2061.                         uploadurl='https://mediacru.sh/api/upload/file'
  2062.                         ret=$(curl -sf -F file="@${shotfiles[@]};type=image/png" ${uploadurl})
  2063.                         filehash=$(echo "${ret}" | grep "hash" | cut -d '"' -f4)
  2064.                         desturl="${baseurl}/${filehash}"
  2065.                     ;;
  2066.                     'imgur')
  2067.                         baseurl='http://imgur.com'
  2068.                         uploadurl='http://imgur.com/upload'
  2069.                         ret=$(curl -sf -F file="@${shotfiles[@]}" ${uploadurl})
  2070.                         filehash="${ret##*hash\":\"}"
  2071.                         filehash="${filehash%%\"*}"
  2072.                         desturl="${baseurl}/${filehash}"
  2073.                     ;;
  2074.                     'pomf')
  2075.                         baseurl='http://a.pomf.se'
  2076.                         uploadurl='http://pomf.se/upload.php'
  2077.                         ret=$(curl --silent -sf -F files[]="@${shotfiles[@]}" ${uploadurl})
  2078.                         filehash="${ret##*url\":\"}"
  2079.                         filehash="${filehash%%\"*}"
  2080.                         desturl="${baseurl}/${filehash}"
  2081.                     ;;
  2082.                     'hmp')
  2083.                         baseurl='http://i.hmp.me/m'
  2084.                         uploadurl='http://hmp.me/ap/?uf=1'
  2085.                         ret=$(curl -sf -F a="@${shotfiles[@]};type=image/png" ${uploadurl})
  2086.                         desturl="${ret##*img_path\":\"}"
  2087.                         desturl="${desturl%%\"*}"
  2088.                         desturl="${desturl//\\}"
  2089.                     ;;
  2090.                     'local-example')
  2091.                         baseurl="http://www.example.com"
  2092.                         serveraddr="www.example.com"
  2093.                         scptimeout="20"
  2094.                         serverdir="/path/to/directory"
  2095.                         scp -qo ConnectTimeout="${scptimeout}" "${shotfiles[@]}" "${serveraddr}:${serverdir}"
  2096.                         desturl="${baseurl}/${shotfile}"
  2097.                     ;;
  2098.                 esac       
  2099.                 printf "your screenshot can be viewed at ${desturl}\n"
  2100.             else
  2101.                 errorOut "ERROR: Problem saving screenshot to ${shotfiles[@]}"
  2102.             fi
  2103.         else
  2104.             shotfiles[1]=${shotfile}
  2105.             if [ "$distro" == "Mac OS X" ]; then
  2106.                 displays="$(system_profiler SPDisplaysDataType | grep 'Resolution:' | wc -l | tr -d ' ')"
  2107.                 for (( i=2; i<=$displays; i++))
  2108.                 do
  2109.                     shotfiles[$i]="$(echo ${shotfile} | sed "s/\(.*\)\./\1_${i}./")"
  2110.                 done
  2111.                 printf "Taking shot in 3.. "; sleep 1; printf "2.. "; sleep 1; printf "1.. "; sleep 1; printf "0.\n"; screencapture -x ${shotfiles[@]} &> /dev/null
  2112.             else scrot -cd3 "${shotfile}"; fi
  2113.             if [ -f "${shotfile}" ]; then
  2114.                 verboseOut "Screenshot saved at '${shotfiles[@]}'"
  2115.             else
  2116.                 errorOut "ERROR: Problem saving screenshot to ${shotfiles[@]}"
  2117.             fi
  2118.         fi
  2119.     else
  2120.         $screenCommand
  2121.     fi
  2122. }
  2123.  
  2124.  
  2125.  
  2126. asciiText () {
  2127. # Distro logos and ASCII outputs
  2128.     if [[ "$fake_distro" ]]; then distro="${fake_distro}"; fi
  2129.     if [[ "$asc_distro" ]]; then myascii="${asc_distro}"
  2130.     elif [[ "$art" ]]; then myascii="custom"
  2131.     else myascii="${distro}"; fi
  2132.     case ${myascii} in
  2133.         "custom") source "$art" ;;
  2134.         "Arch Linux - Old")
  2135.             if [[ "$no_color" != "1" ]]; then
  2136.                 c1=$(getColor 'white') # White
  2137.                 c2=$(getColor 'light blue') # Light Blue
  2138.             fi
  2139.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2140.             startline="0"
  2141.             fulloutput=("$c1              __                      %s"
  2142. "$c1          _=(SDGJT=_                 %s"
  2143. "$c1        _GTDJHGGFCVS)                %s"
  2144. "$c1       ,GTDJGGDTDFBGX0               %s"
  2145. "$c1      JDJDIJHRORVFSBSVL$c2-=+=,_        %s"
  2146. "$c1     IJFDUFHJNXIXCDXDSV,$c2  \"DEBL      %s"
  2147. "$c1    [LKDSDJTDU=OUSCSBFLD.$c2   '?ZWX,   %s"
  2148. "$c1   ,LMDSDSWH'     \`DCBOSI$c2     DRDS], %s"
  2149. "$c1   SDDFDFH'         !YEWD,$c2   )HDROD  %s"
  2150. "$c1  !KMDOCG            &GSU|$c2\_GFHRGO\'  %s"
  2151. "$c1  HKLSGP'$c2           __$c1\TKM0$c2\GHRBV)'  %s"
  2152. "$c1 JSNRVW'$c2       __+MNAEC$c1\IOI,$c2\BN'     %s"
  2153. "$c1 HELK['$c2    __,=OFFXCBGHC$c1\FD)         %s"
  2154. "$c1 ?KGHE $c2\_-#DASDFLSV='$c1    'EF         %s"
  2155. "$c1 'EHTI                    !H         %s"
  2156. "$c1  \`0F'                    '!         %s"
  2157. "                                     %s"
  2158. "                                     %s")
  2159.         ;;
  2160.  
  2161.         "Arch Linux")
  2162.             if [[ "$no_color" != "1" ]]; then
  2163.                 c1=$(getColor 'light cyan') # Light
  2164.                 c2=$(getColor 'cyan') # Dark
  2165.             fi
  2166.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2167.             startline="1"
  2168.             fulloutput=("${c1}                   -\`"
  2169. "${c1}                  .o+\`                 %s"
  2170. "${c1}                 \`ooo/                %s"
  2171. "${c1}                \`+oooo:               %s"
  2172. "${c1}               \`+oooooo:              %s"
  2173. "${c1}               -+oooooo+:             %s"
  2174. "${c1}             \`/:-:++oooo+:            %s"
  2175. "${c1}            \`/++++/+++++++:           %s"
  2176. "${c1}           \`/++++++++++++++:          %s"
  2177. "${c1}          \`/+++o"${c2}"oooooooo"${c1}"oooo/\`        %s"
  2178. "${c2}         "${c1}"./"${c2}"ooosssso++osssssso"${c1}"+\`       %s"
  2179. "${c2}        .oossssso-\`\`\`\`/ossssss+\`      %s"
  2180. "${c2}       -osssssso.      :ssssssso.     %s"
  2181. "${c2}      :osssssss/        osssso+++.    %s"
  2182. "${c2}     /ossssssss/        +ssssooo/-    %s"
  2183. "${c2}   \`/ossssso+/:-        -:/+osssso+-  %s"
  2184. "${c2}  \`+sso+:-\`                 \`.-/+oso: %s"
  2185. "${c2} \`++:.                           \`-/+/%s"
  2186. "${c2} .\`                                 \`/%s")
  2187.         ;;
  2188.  
  2189.         "Mint")
  2190.             if [[ "$no_color" != "1" ]]; then
  2191.                 c1=$(getColor 'white') # White
  2192.                 c2=$(getColor 'light green') # Bold Green
  2193.             fi
  2194.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2195.             startline="0"
  2196.             fulloutput=("                                       %s"
  2197. "$c2 MMMMMMMMMMMMMMMMMMMMMMMMMmds+.       %s"
  2198. "$c2 MMm----::-://////////////oymNMd+\`    %s"
  2199. "$c2 MMd      "$c1"/++                "$c2"-sNMd:   %s"
  2200. "$c2 MMNso/\`  "$c1"dMM    \`.::-. .-::.\` "$c2".hMN:  %s"
  2201. "$c2 ddddMMh  "$c1"dMM   :hNMNMNhNMNMNh: "$c2"\`NMm  %s"
  2202. "$c2     NMm  "$c1"dMM  .NMN/-+MMM+-/NMN\` "$c2"dMM  %s"
  2203. "$c2     NMm  "$c1"dMM  -MMm  \`MMM   dMM. "$c2"dMM  %s"
  2204. "$c2     NMm  "$c1"dMM  -MMm  \`MMM   dMM. "$c2"dMM  %s"
  2205. "$c2     NMm  "$c1"dMM  .mmd  \`mmm   yMM. "$c2"dMM  %s"
  2206. "$c2     NMm  "$c1"dMM\`  ..\`   ...   ydm. "$c2"dMM  %s"
  2207. "$c2     hMM- "$c1"+MMd/-------...-:sdds  "$c2"dMM  %s"
  2208. "$c2     -NMm- "$c1":hNMNNNmdddddddddy/\`  "$c2"dMM  %s"
  2209. "$c2      -dMNs-"$c1"\`\`-::::-------.\`\`    "$c2"dMM  %s"
  2210. "$c2       \`/dMNmy+/:-------------:/yMMM  %s"
  2211. "$c2          ./ydNMMMMMMMMMMMMMMMMMMMMM  %s"
  2212. "$c2             \.MMMMMMMMMMMMMMMMMMM    %s"
  2213. "                                      %s")
  2214.         ;;
  2215.  
  2216.  
  2217.         "LMDE")
  2218.             if [[ "$no_color" != "1" ]]; then
  2219.                 c1=$(getColor 'white') # White
  2220.                 c2=$(getColor 'light green') # Bold Green
  2221.             fi
  2222.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2223.             startline="0"
  2224.             fulloutput=("          "${c1}"\`.-::---..            %s"
  2225. "${c2}       .:++++ooooosssoo:.      %s"
  2226. "${c2}     .+o++::.      \`.:oos+.    %s"
  2227. "${c2}    :oo:.\`             -+oo"${c1}":   %s"
  2228. "${c2}  "${c1}"\`"${c2}"+o/\`    ."${c1}"::::::"${c2}"-.    .++-"${c1}"\`  %s"
  2229. "${c2} "${c1}"\`"${c2}"/s/    .yyyyyyyyyyo:   +o-"${c1}"\`  %s"
  2230. "${c2} "${c1}"\`"${c2}"so     .ss       ohyo\` :s-"${c1}":  %s"
  2231. "${c2} "${c1}"\`"${c2}"s/     .ss  h  m  myy/ /s\`"${c1}"\`  %s"
  2232. "${c2} \`s:     \`oo  s  m  Myy+-o:\`   %s"
  2233. "${c2} \`oo      :+sdoohyoydyso/.     %s"
  2234. "${c2}  :o.      .:////////++:       %s"
  2235. "${c2}  \`/++        "${c1}"-:::::-          %s"
  2236. "${c2}   "${c1}"\`"${c2}"++-                        %s"
  2237. "${c2}    "${c1}"\`"${c2}"/+-                       %s"
  2238. "${c2}      "${c1}"."${c2}"+/.                     %s"
  2239. "${c2}        "${c1}"."${c2}":+-.                  %s"
  2240. "${c2}           \`--.\`\`              %s"
  2241. "                               %s")
  2242.         ;;
  2243.  
  2244.         "Ubuntu")
  2245.             if [[ "$no_color" != "1" ]]; then
  2246.                 c1=$(getColor 'white') # White
  2247.                 c2=$(getColor 'light red') # Light Red
  2248.                 c3=$(getColor 'yellow') # Bold Yellow
  2249.             fi
  2250.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  2251.             startline="0"
  2252.             fulloutput=("$c2                          ./+o+-       %s"
  2253. "$c1                  yyyyy- $c2-yyyyyy+     %s"
  2254. "$c1               $c1://+//////$c2-yyyyyyo     %s"
  2255. "$c3           .++ $c1.:/++++++/-$c2.+sss/\`     %s"
  2256. "$c3         .:++o:  $c1/++++++++/:--:/-     %s"
  2257. "$c3        o:+o+:++.$c1\`..\`\`\`.-/oo+++++/    %s"
  2258. "$c3       .:+o:+o/.$c1          \`+sssoo+/   %s"
  2259. "$c1  .++/+:$c3+oo+o:\`$c1             /sssooo.  %s"
  2260. "$c1 /+++//+:$c3\`oo+o$c1               /::--:.  %s"
  2261. "$c1 \+/+o+++$c3\`o++o$c2               ++////.  %s"
  2262. "$c1  .++.o+$c3++oo+:\`$c2             /dddhhh.  %s"
  2263. "$c3       .+.o+oo:.$c2          \`oddhhhh+   %s"
  2264. "$c3        \+.++o+o\`$c2\`-\`\`\`\`.:ohdhhhhh+    %s"
  2265. "$c3         \`:o+++ $c2\`ohhhhhhhhyo++os:     %s"
  2266. "$c3           .o:$c2\`.syhhhhhhh/$c3.oo++o\`     %s"
  2267. "$c2               /osyyyyyyo$c3++ooo+++/    %s"
  2268. "$c2                   \`\`\`\`\` $c3+oo+++o\:    %s"
  2269. "$c3                          \`oo++.      %s")
  2270.         ;;
  2271.  
  2272.         "Debian")
  2273.             if [[ "$no_color" != "1" ]]; then
  2274.                 c1=$(getColor 'white') # White
  2275.                 c2=$(getColor 'light red') # Light Red
  2276.             fi
  2277.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2278.             startline="0"
  2279.                        fulloutput=("  $c1       _,met\$\$\$\$\$gg.           %s"
  2280. "  $c1    ,g\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$P.       %s"
  2281. "  $c1  ,g\$\$P\"\"       \"\"\"Y\$\$.\".     %s"
  2282. "  $c1 ,\$\$P'              \`\$\$\$.     %s"
  2283. "  $c1',\$\$P       ,ggs.     \`\$\$b:   %s"
  2284. "  $c1\`d\$\$'     ,\$P\"\'   $c2.$c1    \$\$\$    %s"
  2285. "  $c1 \$\$P      d\$\'     $c2,$c1    \$\$P    %s"
  2286. "  $c1 \$\$:      \$\$.   $c2-$c1    ,d\$\$'    %s"
  2287. "  $c1 \$\$\;      Y\$b._   _,d\$P'     %s"
  2288. "  $c1 Y\$\$.    $c2\`.$c1\`\"Y\$\$\$\$P\"'         %s"
  2289. "  $c1 \`\$\$b      $c2\"-.__              %s"
  2290. "  $c1  \`Y\$\$                        %s"
  2291. "  $c1   \`Y\$\$.                      %s"
  2292. "  $c1     \`\$\$b.                    %s"
  2293. "  $c1       \`Y\$\$b.                 %s"
  2294. "  $c1          \`\"Y\$b._             %s"
  2295. "  $c1              \`\"\"\"\"           %s"
  2296. "                                %s")
  2297.         ;;
  2298.  
  2299.  
  2300.         "BunsenLabs")
  2301.             if [[ "$no_color" != "1" ]]; then
  2302.                 c1=$(getColor 'blue')
  2303.             fi
  2304.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2305.             startline="5"
  2306.      fulloutput=("            ${c1}HC]${c0}         "
  2307. "          ${c1}H]]]]${c0}         "
  2308. "        ${c1}H]]]]]]4${c0}        "
  2309. "      ${c1}@C]]]]]]]]*${c0}       "
  2310. "     ${c1}@]]]]]]]]]]xd${c0}      "
  2311. "    ${c1}@]]]]]]]]]]]]]d       %s"
  2312. "   ${c1}0]]]]]]]]]]]]]]]]     %s"
  2313. "   ${c1}kx]]]]]]x]]x]]]]]%%    %s"
  2314. "  ${c1}#x]]]]]]]]]]]]]x]]]d   %s"
  2315. "  ${c1}#]]]]]]qW${c0}  ${c1}x]]x]]]]]4  %s"
  2316. "  ${c1}k]x]]xg${c0}     ${c1}%%x]]]]]]%%  %s"
  2317. "  ${c1}Wx]]]W${c0}       ${c1}x]]]]]]]  %s"
  2318. "  ${c1}#]]]4${c0}         ${c1}xx]fog]  %s"
  2319. "   ${c1}px]${c0}           ${c1}]]]]]x  %s"
  2320. "   ${c1}Wx]${c0}           ${c1}x]]x]]  %s"
  2321. "    ${c1}&x${c0}           ${c1}x]]]]   %s"
  2322. "     ${c1}m${c0}           ${c1}x]]]]   %s"
  2323. "                 ${c1}x]x]    %s"
  2324. "                 ${c1}x]]]    %s"
  2325. "                ${c1}]]]]    "
  2326. "                ${c1}x]x     "
  2327. "               ${c1}x]q      "
  2328. "               ${c1}]g       "
  2329. "              ${c1}q         ")
  2330.    ;;
  2331.  
  2332.  
  2333.         "Raspbian")
  2334.             if [[ "$no_color" != "1" ]]; then
  2335.                 c1=$(getColor 'light green') # Light Green
  2336.                 c2=$(getColor 'light red') # Light Red
  2337.             fi
  2338.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2339.             startline="0"
  2340.                        fulloutput=(" $c1   .',;:cc;,'.    .,;::c:,,.    %s"
  2341. "   $c1,ooolcloooo:  'oooooccloo:   %s"
  2342. "   $c1.looooc;;:ol  :oc;;:ooooo'   %s"
  2343. "     $c1;oooooo:      ,ooooooc.    %s"
  2344. "       $c1.,:;'.       .;:;'.      %s"
  2345. "       $c2.... ..'''''. ....       %s"
  2346. "     $c2.''.   ..'''''.  ..''.     %s"
  2347. "     $c2..  .....    .....  ..     %s"
  2348. "    $c2.  .'''''''  .''''''.  .    %s"
  2349. "  $c2.'' .''''''''  .'''''''. ''.  %s"
  2350. "  $c2'''  '''''''    .''''''  '''  %s"
  2351. "  $c2.'    ........... ...    .'.  %s"
  2352. "    $c2....    ''''''''.   .''.    %s"
  2353. "    $c2'''''.  ''''''''. .'''''    %s"
  2354. "     $c2'''''.  .'''''. .'''''.    %s"
  2355. "      $c2..''.     .    .''..      %s"
  2356. "            $c2.'''''''            %s"
  2357. "             $c2......       %s")
  2358.         ;;
  2359.  
  2360.  
  2361.         "CrunchBang")
  2362.             if [[ "$no_color" != "1" ]]; then
  2363.                 c1=$(getColor 'white') # White
  2364.             fi
  2365.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2366.             startline="0"
  2367.            fulloutput=("                                       %s"
  2368. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2369. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2370. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2371. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2372. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  2373. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  2374. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2375. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2376. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2377. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2378. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  2379. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  2380. "$c2         "$c1"███"$c2"        "$c1"███"$c2"               %s"
  2381. "$c2         "$c1"███"$c2"        "$c1"███"$c2"               %s"
  2382. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2383. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  2384. "$c2                                      %s")
  2385.         ;;
  2386.  
  2387.         "CRUX")
  2388.             if [[ "$no_color" != "1" ]]; then
  2389.                 c1=$(getColor 'light cyan')
  2390.                 c2=$(getColor 'yellow')
  2391.                 c3=$(getColor 'white')
  2392.             fi
  2393.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2394.             startline="1"
  2395.             fulloutput=(""
  2396. "${c1}          odddd             %s"
  2397. "${c1}       oddxkkkxxdoo        %s"
  2398. "${c1}      ddcoddxxxdoool       %s"
  2399. "${c1}      xdclodod  olol       %s"
  2400. "${c1}      xoc  xdd  olol       %s"
  2401. "${c1}      xdc  ${c2}k00${c1}Okdlol       %s"
  2402. "${c1}      xxd${c2}kOKKKOkd${c1}ldd       %s"
  2403. "${c1}      xdco${c2}xOkdlo${c1}dldd       %s"
  2404. "${c1}      ddc:cl${c2}lll${c1}oooodo      %s"
  2405. "${c1}    odxxdd${c3}xkO000kx${c1}ooxdo    %s"
  2406. "${c1}   oxdd${c3}x0NMMMMMMWW0od${c1}kkxo  %s"
  2407. "${c1}  oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx  %s"
  2408. "${c1} docldkXW${c3}MMMMMMMWWN${c1}Odolco  %s"
  2409. "${c1} xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c  %s"
  2410. "${c2} xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l  %s"
  2411. "${c2} dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd  %s"
  2412. "${c2}  odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo  %s"
  2413. "${c2}    lodd${c1}dolccc${c2}ccox${c1}xoloo"
  2414. "")
  2415.         ;;
  2416.  
  2417.         "ChromeOS")
  2418.             if [[ "$no_color" != "1" ]]; then
  2419.                 c1=$(getColor 'green') # Green
  2420.                 c2=$(getColor 'light red') # Light Red
  2421.                 c3=$(getColor 'yellow') # Bold Yellow
  2422.                 c4=$(getColor 'light blue') # Light Blue
  2423.                 c5=$(getColor 'white') # White
  2424.             fi
  2425.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; c5="${my_lcolor}"; fi
  2426.             startline="0"
  2427.             fulloutput=("$c2             .,:loool:,.               %s"
  2428. "$c2         .,coooooooooooooc,.          %s"
  2429. "$c2      .,lllllllllllllllllllll,.       %s"
  2430. "$c2     ;ccccccccccccccccccccccccc;      %s"
  2431. "$c1   '${c2}ccccccccccccccccccccccccccccc.    %s"
  2432. "$c1  ,oo${c2}c::::::::okO${c5}000${c3}0OOkkkkkkkkkkk:   %s"
  2433. "$c1 .ooool${c2};;;;:x${c5}K0${c4}kxxxxxk${c5}0X${c3}K0000000000.  %s"
  2434. "$c1 :oooool${c2};,;O${c5}K${c4}ddddddddddd${c5}KX${c3}000000000d  %s"
  2435. "$c1 lllllool${c2};l${c5}N${c4}dllllllllllld${c5}N${c3}K000000000  %s"
  2436. "$c1 lllllllll${c2}o${c5}M${c4}dccccccccccco${c5}W${c3}K000000000  %s"
  2437. "$c1 ;cllllllllX${c5}X${c4}c:::::::::c${c5}0X${c3}000000000d  %s"
  2438. "$c1 .ccccllllllO${c5}Nk${c4}c;,,,;cx${c5}KK${c3}0000000000.  %s"
  2439. "$c1  .cccccclllllxOO${c5}OOO${c1}Okx${c3}O0000000000;   %s"
  2440. "$c1   .:ccccccccllllllllo${c3}O0000000OOO,    %s"
  2441. "$c1     ,:ccccccccclllcd${c3}0000OOOOOOl.     %s"
  2442. "$c1       '::ccccccccc${c3}dOOOOOOOkx:.       %s"
  2443. "$c1         ..,::cccc${c3}xOOOkkko;.          %s"
  2444. "$c1             ..,:${c3}dOkxl:.              %s")
  2445.  
  2446.         ;;
  2447.  
  2448.         "Gentoo")
  2449.             if [[ "$no_color" != "1" ]]; then
  2450.                 c1=$(getColor 'white') # White
  2451.                 c2=$(getColor 'light purple') # Light Purple
  2452.             fi
  2453.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2454.             startline="0"
  2455.             fulloutput=("$c2         -/oyddmdhs+:.                %s"
  2456. "$c2     -o"$c1"dNMMMMMMMMNNmhy+"$c2"-\`            %s"
  2457. "$c2   -y"$c1"NMMMMMMMMMMMNNNmmdhy"$c2"+-          %s"
  2458. "$c2 \`o"$c1"mMMMMMMMMMMMMNmdmmmmddhhy"$c2"/\`       %s"
  2459. "$c2 om"$c1"MMMMMMMMMMMN"$c2"hhyyyo"$c1"hmdddhhhd"$c2"o\`     %s"
  2460. "$c2.y"$c1"dMMMMMMMMMMd"$c2"hs++so/s"$c1"mdddhhhhdm"$c2"+\`   %s"
  2461. "$c2 oy"$c1"hdmNMMMMMMMN"$c2"dyooy"$c1"dmddddhhhhyhN"$c2"d.  %s"
  2462. "$c2  :o"$c1"yhhdNNMMMMMMMNNNmmdddhhhhhyym"$c2"Mh  %s"
  2463. "$c2    .:"$c1"+sydNMMMMMNNNmmmdddhhhhhhmM"$c2"my  %s"
  2464. "$c2       /m"$c1"MMMMMMNNNmmmdddhhhhhmMNh"$c2"s:  %s"
  2465. "$c2    \`o"$c1"NMMMMMMMNNNmmmddddhhdmMNhs"$c2"+\`   %s"
  2466. "$c2  \`s"$c1"NMMMMMMMMNNNmmmdddddmNMmhs"$c2"/.     %s"
  2467. "$c2 /N"$c1"MMMMMMMMNNNNmmmdddmNMNdso"$c2":\`       %s"
  2468. "$c2+M"$c1"MMMMMMNNNNNmmmmdmNMNdso"$c2"/-          %s"
  2469. "$c2yM"$c1"MNNNNNNNmmmmmNNMmhs+/"$c2"-\`              %s"
  2470. "$c2/h"$c1"MMNNNNNNNNMNdhs++/"$c2"-\`               %s"
  2471. "$c2\`/"$c1"ohdmmddhys+++/:"$c2".\`                  %s"
  2472. "$c2  \`-//////:--.                       %s")
  2473.         ;;
  2474.  
  2475.  
  2476.         "Funtoo")
  2477.             if [[ "$no_color" != "1" ]]; then
  2478.                 c1=$(getColor 'white') # White
  2479.                 c2=$(getColor 'light purple') # Light Purple
  2480.             fi
  2481.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2482.             startline="0"
  2483.             fulloutput=("                                                     %s"
  2484. "                                                    %s"
  2485. "                                                    %s"
  2486. "                                                    %s"
  2487. "${c1}     _______               ____                     %s"
  2488. "${c1}    /MMMMMMM/             /MMMM| _____  _____       %s"
  2489. "${c1} __/M${c2}.MMM.${c1}M/_____________|M${c2}.M${c1}MM|/MMMMM\/MMMMM\      %s"
  2490. "${c1}|MMMM${c2}MM'${c1}MMMMMMMMMMMMMMMMMMM${c2}MM${c1}MMMM${c2}.MMMM..MMMM.${c1}MM\    %s"
  2491. "${c1}|MM${c2}MMMMMMM${c1}/m${c2}MMMMMMMMMMMMMMMMMMMMMM${c1}MMMM${c2}MM${c1}MMMM${c2}MM${c1}MM|   %s"
  2492. "${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"
  2493. "${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"
  2494. "${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"
  2495. "${c1}  |MM${c2}MM${c1}MMM${c2}MM${c1}MMMMMM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MMMMM'${c1}M|                  %s"
  2496. "${c1}  |MM${c2}MM${c1}MMM${c2}MMMMMMMMMMMMMMMMM MM'${c1}M/                   %s"
  2497. "${c1}  |MMMMMMMMMMMMMMMMMMMMMMMMMMMM/                    %s"
  2498. "                                                    %s"
  2499. "                                                    %s"
  2500. "                                                    %s")
  2501.         ;;
  2502.  
  2503.         "Fedora")
  2504.             if [[ "$no_color" != "1" ]]; then
  2505.                 c1=$(getColor 'white') # White
  2506.                 c2=$(getColor 'light blue') # Light Blue
  2507.             fi
  2508.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2509.             startline="0"
  2510.             fulloutput=("$c2           /:-------------:\          %s"
  2511. "$c2        :-------------------::       %s"
  2512. "$c2      :-----------"$c1"/shhOHbmp"$c2"---:\\     %s"
  2513. "$c2    /-----------"$c1"omMMMNNNMMD  "$c2"---:    %s"
  2514. "$c2   :-----------"$c1"sMMMMNMNMP"$c2".    ---:   %s"
  2515. "$c2  :-----------"$c1":MMMdP"$c2"-------    ---\  %s"
  2516. "$c2 ,------------"$c1":MMMd"$c2"--------    ---:  %s"
  2517. "$c2 :------------"$c1":MMMd"$c2"-------    .---:  %s"
  2518. "$c2 :----    "$c1"oNMMMMMMMMMNho"$c2"     .----:  %s"
  2519. "$c2 :--     ."$c1"+shhhMMMmhhy++"$c2"   .------/  %s"
  2520. "$c2 :-    -------"$c1":MMMd"$c2"--------------:   %s"
  2521. "$c2 :-   --------"$c1"/MMMd"$c2"-------------;    %s"
  2522. "$c2 :-    ------"$c1"/hMMMy"$c2"------------:     %s"
  2523. "$c2 :--"$c1" :dMNdhhdNMMNo"$c2"------------;      %s"
  2524. "$c2 :---"$c1":sdNMMMMNds:"$c2"------------:       %s"
  2525. "$c2 :------"$c1":://:"$c2"-------------::         %s"
  2526. "$c2 :---------------------://           %s"
  2527. "                                     %s")
  2528.         ;;
  2529.  
  2530.         "Chapeau")
  2531.             if [[ "$no_color" != "1" ]]; then
  2532.                 c1=$(getColor 'white') # White
  2533.                 c2=$(getColor 'light green') # Light Green
  2534.             fi
  2535.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2536.             startline="0"
  2537.             fulloutput=("$c2               .-/-.                %s"
  2538. "$c2             ////////.             %s"
  2539. "$c2           ////////"$c1"y+"$c2"//.           %s"
  2540. "$c2         ////////"$c1"mMN"$c2"/////.         %s"
  2541. "$c2       ////////"$c1"mMN+"$c2"////////.       %s"
  2542. "$c2     ////////////////////////.     %s"
  2543. "$c2   /////////+"$c1"shhddhyo"$c2"+////////.    %s"
  2544. "$c2  ////////"$c1"ymMNmdhhdmNNdo"$c2"///////.   %s"
  2545. "$c2 ///////+"$c1"mMms"$c2"////////"$c1"hNMh"$c2"///////.  %s"
  2546. "$c2 ///////"$c1"NMm+"$c2"//////////"$c1"sMMh"$c2"///////  %s"
  2547. "$c2 //////"$c1"oMMNmmmmmmmmmmmmMMm"$c2"///////  %s"
  2548. "$c2 //////"$c1"+MMmssssssssssssss+"$c2"///////  %s"
  2549. "$c2 \`//////"$c1"yMMy"$c2"////////////////////   %s"
  2550. "$c2  \`//////"$c1"smMNhso++oydNm"$c2"////////    %s"
  2551. "$c2   \`///////"$c1"ohmNMMMNNdy+"$c2"///////     %s"
  2552. "$c2     \`//////////"$c1"++"$c2"//////////       %s"
  2553. "$c2        \`////////////////.         %s"
  2554. "$c2            -////////-            %s"
  2555. "                                  %s")
  2556.  
  2557.         ;;
  2558.  
  2559.         "Korora")
  2560.             if [[ "$no_color" != "1" ]]; then
  2561.                 c1=$(getColor 'white')
  2562.                 c2=$(getColor 'light blue')
  2563.             fi
  2564.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2565.             startline="0"
  2566.             fulloutput=("$c1                 ____________    %s"
  2567. "$c1              _add55555555554"$c2":  %s"
  2568. "$c1            _w?'"$c2"\`\`\`\`\`\`\`\`\`\`'"$c1")k"$c2":  %s"
  2569. "$c1           _Z'"$c2"\`"$c1"            ]k"$c2":  %s"
  2570. "$c1           m("$c2"\`"$c1"             )k"$c2":  %s"
  2571. "$c1      _.ss"$c2"\`"$c1"m["$c2"\`"$c1",            ]e"$c2":  %s"
  2572. "$c1    .uY\"^\`"$c2"\`"$c1"Xc"$c2"\`"$c1"?Ss.         d("$c2"\`  %s"
  2573. "$c1   jF'"$c2"\`"$c1"    \`@.  "$c2"\`"$c1"Sc      .jr"$c2"\`   %s"
  2574. "$c1  jr"$c2"\`"$c1"       \`?n_ "$c2"\`"$c1"$;   _a2\""$c2"\`    %s"
  2575. "$c1 .m"$c2":"$c1"          \`~M"$c2"\`"$c1"1k"$c2"\`"$c1"5?!\`"$c2"\`      %s"
  2576. "$c1 :#"$c2":"$c1"             "$c2"\`"$c1")e"$c2"\`\`\`         %s"
  2577. "$c1 :m"$c2":"$c1"             ,#'"$c2"\`           %s"
  2578. "$c1 :#"$c2":"$c1"           .s2'"$c2"\`            %s"
  2579. "$c1 :m,________.aa7^"$c2"\`              %s"
  2580. "$c1 :#baaaaaaas!J'"$c2"\`                %s"
  2581. "$c2  \`\`\`\`\`\`\`\`\`\`\`                   %s")
  2582.         ;;
  2583.  
  2584.         "gNewSense")
  2585.             if [[ "$no_color" != "1" ]]; then
  2586.                 c1=$(getColor 'light blue') # Light Blue
  2587.             fi
  2588.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2589.             startline="0"
  2590.                        fulloutput=("$c1                      ..,,,,..                       %s"
  2591. "$c1                .oocchhhhhhhhhhccoo.                %s"
  2592. "$c1         .ochhlllllllc hhhhhh ollllllhhco.          %s"
  2593. "$c1     ochlllllllllll hhhllllllhhh lllllllllllhco     %s"
  2594. "$c1  .cllllllllllllll hlllllo  +hllh llllllllllllllc.  %s"
  2595. "$c1 ollllllllllhco\'\'  hlllllo  +hllh  \`\`ochllllllllllo %s"
  2596. "$c1 hllllllllc\'       hllllllllllllh       \`cllllllllh %s"
  2597. "$c1 ollllllh          +llllllllllll+          hllllllo %s"
  2598. "$c1  \`cllllh.           ohllllllho           .hllllc\'  %s"
  2599. "$c1     ochllc.            ++++            .cllhco     %s"
  2600. "$c1        \`+occooo+.                .+ooocco+\'        %s"
  2601. "$c1               \`+oo++++      ++++oo+\'               %s"
  2602. "$c1                                                    %s")
  2603.         ;;
  2604.  
  2605.         "BLAG")
  2606.             if [[ "$no_color" != "1" ]]; then
  2607.                 c1=$(getColor 'light purple')
  2608.             fi
  2609.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2610.             startline="0"
  2611.             fulloutput=("$c1              d                      %s"
  2612. "$c1             ,MK:                   %s"
  2613. "$c1             xMMMX:                 %s"
  2614. "$c1            .NMMMMMX;               %s"
  2615. "$c1            lMMMMMMMM0clodkO0KXWW:  %s"
  2616. "$c1            KMMMMMMMMMMMMMMMMMMX'   %s"
  2617. "$c1       .;d0NMMMMMMMMMMMMMMMMMMK.    %s"
  2618. "$c1  .;dONMMMMMMMMMMMMMMMMMMMMMMx      %s"
  2619. "$c1 'dKMMMMMMMMMMMMMMMMMMMMMMMMl       %s"
  2620. "$c1    .:xKWMMMMMMMMMMMMMMMMMMM0.      %s"
  2621. "$c1        .:xNMMMMMMMMMMMMMMMMMK.     %s"
  2622. "$c1           lMMMMMMMMMMMMMMMMMMK.    %s"
  2623. "$c1           ,MMMMMMMMWkOXWMMMMMM0    %s"
  2624. "$c1           .NMMMMMNd.     \`':ldko   %s"
  2625. "$c1            OMMMK:                  %s"
  2626. "$c1            oWk,                    %s"
  2627. "$c1            ;:                      %s")
  2628.         ;;
  2629.  
  2630.         "FreeBSD")
  2631.             if [[ "$no_color" != "1" ]]; then
  2632.                 c1=$(getColor 'white') # white
  2633.                 c2=$(getColor 'light red') # Light Red
  2634.             fi
  2635.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2636.             startline="0"
  2637.             fulloutput=("                                      %s"   # user@host
  2638. "   "$c1"\`\`\`                        "$c2"\`      %s"      # OS
  2639. "  "$c1"\` \`.....---..."$c2"....--.\`\`\`   -/      %s"     # Kernel
  2640. "  "$c1"+o   .--\`         "$c2"/y:\`      +.     %s"        # Uptime
  2641. "  "$c1" yo\`:.            "$c2":o      \`+-      %s"        # Packages
  2642. "    "$c1"y/               "$c2"-/\`   -o/       %s"         # Shell
  2643. "   "$c1".-                  "$c2"::/sy+:.      %s"          # Resolution
  2644. "   "$c1"/                     "$c2"\`--  /      %s"         # DE
  2645. "  "$c1"\`:                          "$c2":\`     %s"        # WM
  2646. "  "$c1"\`:                          "$c2":\`     %s"        # WM Theme
  2647. "   "$c1"/                          "$c2"/      %s"          # GTK2 Theme
  2648. "   "$c1".-                        "$c2"-.      %s"          # GTK3 Theme
  2649. "    "$c1"--                      "$c2"-.       %s"          # Icon Theme
  2650. "     "$c1"\`:\`                  "$c2"\`:\`        %s"      # Font
  2651. "       "$c2".--             \`--.          %s"              # Disk
  2652. "         "$c2" .---.....----.             %s"               # CPU
  2653. "                                     %s"                    # GPU
  2654. "                                     %s"                    # RAM
  2655. )
  2656.         ;;
  2657.  
  2658.         "FreeBSD - Old")
  2659.             if [[ "$no_color" != "1" ]]; then
  2660.                 c1=$(getColor 'white') # white
  2661.                 c2=$(getColor 'light red') # Light Red
  2662.             fi
  2663.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2664.             startline="0"
  2665.             fulloutput=("$c2              ,        ,           %s"   # user@host
  2666. "$c2             /(        )\`         %s"                 # OS
  2667. "$c2             \ \___   / |         %s"                  # Kernel
  2668. "$c2             /- "$c1"_$c2  \`-/  '         %s"         # Uptime
  2669. "$c2            ($c1/\/ \ $c2\   /\\         %s"           # Packages
  2670. "$c1            / /   |$c2 \`    \\        %s"             # Shell
  2671. "$c1            O O   )$c2 /    |        %s"               # Resolution
  2672. "$c1            \`-^--'\`$c2<     '        %s"             # DE
  2673. "$c2           (_.)  _  )   /         %s"                  # WM
  2674. "$c2            \`.___/\`    /          %s"                # WM Theme
  2675. "$c2              \`-----' /           %s"                 # GTK2 Theme
  2676. "$c1 <----.     "$c2"__/ __   \\            %s"            # GTK3 Theme
  2677. "$c1 <----|===="$c2"O}}}$c1==$c2} \} \/$c1====      %s"    # Icon Theme
  2678. "$c1 <----'    $c2\`--' \`.__,' \\          %s"            # Font
  2679. "$c2              |        |          %s"                  # Disk
  2680. "$c2               \       /       /\\ %s"                 # CPU
  2681. "$c2          ______( (_  / \______/  %s"                  # GPU
  2682. "$c2        ,'  ,-----'   |           %s"                  # RAM
  2683. "$c2        \`--{__________)"
  2684. "")
  2685.         ;;
  2686.  
  2687.         "OpenBSD")
  2688.             if [[ "$no_color" != "1" ]]; then
  2689.                 c1=$(getColor 'yellow') # Light Yellow
  2690.                 c2=$(getColor 'brown') # Bold Yellow
  2691.                 c3=$(getColor 'light cyan') # Light Cyan
  2692.                 c4=$(getColor 'light red') # Light Red
  2693.                 c5=$(getColor 'dark grey')
  2694.             fi
  2695.             if [ -n "${my_lcolor}" ]; then c1="$my_lcolor"; c2="${my_color}"; fi
  2696.             startline="3"
  2697.             fulloutput=(
  2698. "                                       "$c3" _      "
  2699. "                                       "$c3"(_)      "
  2700. ""$c1"              |    .                            "
  2701. ""$c1"          .   |L  /|   .         "$c3" _      %s"
  2702. ""$c1"      _ . |\ _| \--+._/| .       "$c3"(_)    %s"
  2703. ""$c1"     / ||\| Y J  )   / |/| ./           %s"
  2704. ""$c1"    J  |)'( |        \` F\`.'/       "$c3" _   %s"
  2705. ""$c1"  -<|  F         __     .-<        "$c3"(_)  %s"
  2706. ""$c1"    | /       .-'"$c3". "$c1"\`.  /"$c3"-. "$c1"L___         %s"
  2707. ""$c1"    J \      <    "$c3"\ "$c1" | | "$c5"O"$c3"\\\\"$c1"|.-' "$c3" _      %s"
  2708. ""$c1"  _J \  .-    \\\\"$c3"/ "$c5"O "$c3"| "$c1"| \  |"$c1"F    "$c3"(_)     %s"
  2709. ""$c1" '-F  -<_.     \   .-'  \`-' L__         %s"
  2710. ""$c1"__J  _   _.     >-'  "$c2")"$c4"._.   "$c1"|-'         %s         "
  2711. ""$c1" \`-|.'   /_.          "$c4"\_|  "$c1" F           %s     "
  2712. ""$c1"  /.-   .                _.<            %s"
  2713. ""$c1" /'    /.'             .'  \`\           %s"
  2714. ""$c1"  /L  /'   |/      _.-'-\               %s "
  2715. ""$c1" /'J       ___.---'\|                   %s"
  2716. ""$c1"   |\  .--' V  | \`. \`                   %s "
  2717. ""$c1"   |/\`. \`-.     \`._)                    %s"
  2718. ""$c1"      / .-.\                            %s"
  2719. ""$c1"      \ (  \`\                           "
  2720. ""$c1"       \`.\                                  "
  2721. )
  2722.         ;;
  2723.  
  2724.         "DragonFlyBSD")
  2725.             if [[ "$no_color" != "1" ]]; then
  2726.                 c1=$(getColor 'light red') # Red
  2727.                 c2=$(getColor 'white') # White
  2728.                 c3=$(getColor 'yellow') #
  2729.                 c4=$(getColor 'light red')
  2730.             fi
  2731.             startline="0"
  2732.             fulloutput=("                     "$c1" |                     %s"
  2733. "                    "$c1" .-.                   %s"
  2734. "                   "$c3" ()"$c1"I"$c3"()                  %s"
  2735. "              "$c1" \"==.__:-:__.==\"             %s"
  2736. "              "$c1"\"==.__/~|~\__.==\"            %s"
  2737. "              "$c1"\"==._(  Y  )_.==\"            %s"
  2738. "   "$c2".-'~~\"\"~=--...,__"$c1"\/|\/"$c2"__,...--=~\"\"~~'-. %s"
  2739. "  "$c2"(               ..="$c1"\\\\="$c1"/"$c2"=..               )%s"
  2740. "   "$c2"\`'-.        ,.-\"\`;"$c1"/=\\\\"$c2" ;\"-.,_        .-'\`%s"
  2741. "      "$c2" \`~\"-=-~\` .-~\` "$c1"|=|"$c2" \`~-. \`~-=-\"~\`     %s"
  2742. "       "$c2"     .-~\`    /"$c1"|=|"$c2"\    \`~-.          %s"
  2743. "       "$c2"  .~\`       / "$c1"|=|"$c2" \       \`~.       %s"
  2744. " "$c2"    .-~\`        .'  "$c1"|=|"$c2"  \\\\\`.        \`~-.  %s"
  2745. " "$c2"  (\`     _,.-=\"\`  "$c1"  |=|"$c2"    \`\"=-.,_     \`) %s"
  2746. " "$c2"   \`~\"~\"\`        "$c1"   |=|"$c2"           \`\"~\"~\`  %s"
  2747. "                   "$c1"  /=\                   %s"
  2748. "                   "$c1"  \=/                   %s"
  2749. "                   "$c1"   ^                    %s"
  2750. )
  2751.         ;;
  2752.  
  2753.         "NetBSD")
  2754.             if [[ "$no_color" != "1" ]]; then
  2755.                 c1=$(getColor 'light red') # Light Red
  2756.                 c2=$(getColor 'white') # White
  2757.             fi
  2758.             startline="0"
  2759.             fulloutput=(
  2760. "                                  "$c1"__,gnnnOCCCCCOObaau,_      %s"
  2761. "   "$c2"_._                    "$c1"__,gnnCCCCCCCCOPF\"''              %s"
  2762. "  "$c2"(N\\\\\\\\"$c1"XCbngg,._____.,gnnndCCCCCCCCCCCCF\"___,,,,___          %s"
  2763. "   "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOOOOPYvv.     %s"
  2764. "    "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPF\"''               %s"
  2765. "     "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCCCCCCOF\"'                     %s"
  2766. "      "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCOF\"'                         %s"
  2767. "       "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCPF\"'                             %s"
  2768. "        "$c2"\\\\N\\\\\\\\"$c1"\"PCOCCCOCCFP\"\"                                  %s"
  2769. "         "$c2"\\\\N\                                                %s"
  2770. "          "$c2"\\\\N\                                               %s"
  2771. "           "$c2"\\\\N\                                              %s"
  2772. "            "$c2"\\\\NN\                                            %s"
  2773. "             "$c2"\\\\NN\                                           %s"
  2774. "              "$c2"\\\\NNA.                                         %s"
  2775. "               "$c2"\\\\NNA,                                        %s"
  2776. "                "$c2"\\\\NNN,                                       %s"
  2777. "                 "$c2"\\\\NNN\                                      %s"
  2778. "                  "$c2"\\\\NNN\ "
  2779. "                   "$c2"\\\\NNNA")
  2780.         ;;
  2781.  
  2782.         "Mandriva"|"Mandrake")
  2783.             if [[ "$no_color" != "1" ]]; then
  2784.                 c1=$(getColor 'light blue') # Light Blue
  2785.                 c2=$(getColor 'yellow') # Bold Yellow
  2786.             fi
  2787.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2788.             startline="0"
  2789.             fulloutput=("                                          %s"
  2790. "$c2                         \`\`              %s"
  2791. "$c2                        \`-.              %s"
  2792. "$c1       \`               $c2.---              %s"
  2793. "$c1     -/               $c2-::--\`             %s"
  2794. "$c1   \`++    $c2\`----...\`\`\`-:::::.             %s"
  2795. "$c1  \`os.      $c2.::::::::::::::-\`\`\`     \`  \` %s"
  2796. "$c1  +s+         $c2.::::::::::::::::---...--\` %s"
  2797. "$c1 -ss:          $c2\`-::::::::::::::::-.\`\`.\`\` %s"
  2798. "$c1 /ss-           $c2.::::::::::::-.\`\`   \`    %s"
  2799. "$c1 +ss:          $c2.::::::::::::-            %s"
  2800. "$c1 /sso         $c2.::::::-::::::-            %s"
  2801. "$c1 .sss/       $c2-:::-.\`   .:::::            %s"
  2802. "$c1  /sss+.    $c2..\`$c1  \`--\`    $c2.:::            %s"
  2803. "$c1   -ossso+/:://+/-\`        $c2.:\`           %s"
  2804. "$c1     -/+ooo+/-.              $c2\`           %s"
  2805. "                                         %s"
  2806. "                                         %s")
  2807.         ;;
  2808.  
  2809.         "openSUSE")
  2810.             if [[ "$no_color" != "1" ]]; then
  2811.                 c1=$(getColor 'light green') # Bold Green
  2812.                 c2=$(getColor 'white') # Bold White
  2813.             fi
  2814.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2815.             startline="0"
  2816.             fulloutput=("$c2             .;ldkO0000Okdl;.                %s"
  2817. "$c2         .;d00xl:,'....';:ok00d;.           %s"
  2818. "$c2       .d00l'                ,o00d.         %s"
  2819. "$c2     .d0Kd."$c1" :Okxol:;'.          "$c2":O0d.       %s"
  2820. "$c2    'OK"$c1"KKK0kOKKKKKKKKKKOxo:'      "$c2"lKO'      %s"
  2821. "$c2   ,0K"$c1"KKKKKKKKKKKKKKK0d:"$c2",,,"$c1":dx:"$c2"    ;00,     %s"
  2822. "$c2  .OK"$c1"KKKKKKKKKKKKKKKk."$c2".oOkdl."$c1"'0k."$c2"   cKO.    %s"
  2823. "$c2  :KK"$c1"KKKKKKKKKKKKKKK: "$c2"kKx..od "$c1"lKd"$c2"   .OK:    %s"
  2824. "$c2  dKK"$c1"KKKKKKKKKOx0KKKd "$c2";0KKKO, "$c1"kKKc"$c2"   dKd    %s"
  2825. "$c2  dKK"$c1"KKKKKKKKKK;.;oOKx,.."$c2"'"$c1"..;kKKK0."$c2"  dKd    %s"
  2826. "$c2  :KK"$c1"KKKKKKKKKK0o;...;cdxxOK0Oxc,.  "$c2".0K:    %s"
  2827. "$c2   kKK"$c1"KKKKKKKKKKKKK0xl;'......,cdo  "$c2"lKk     %s"
  2828. "$c2   '0K"$c1"KKKKKKKKKKKKKKKKKKKK00KKOo;  "$c2"c00'     %s"
  2829. "$c2    .kK"$c1"KKOxddxkOO00000Okxoc;'.   "$c2".dKk.      %s"
  2830. "$c2      l0Ko.                    .c00l.       %s"
  2831. "$c2       .l0Kk:.              .;xK0l.         %s"
  2832. "$c2          ,lkK0xl:;,,,,;:ldO0kl,            %s"
  2833. "$c2              .':ldxkkkkxdl:'.              %s")
  2834.         ;;
  2835.  
  2836.         "Slackware")
  2837.             if [[ "$no_color" != "1" ]]; then
  2838.                 c1=$(getColor 'light blue') # Light Blue
  2839.                 c2=$(getColor 'white') # Bold White
  2840.             fi
  2841.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2842.             startline="1"
  2843.             fulloutput=("$c1                   :::::::"
  2844. "$c1             :::::::::::::::::::               %s"
  2845. "$c1          :::::::::::::::::::::::::           %s"
  2846. "$c1        ::::::::"${c2}"cllcccccllllllll"${c1}"::::::        %s"
  2847. "$c1     :::::::::"${c2}"lc               dc"${c1}":::::::      %s"
  2848. "$c1    ::::::::"${c2}"cl   clllccllll    oc"${c1}":::::::::    %s"
  2849. "$c1   :::::::::"${c2}"o   lc"${c1}"::::::::"${c2}"co   oc"${c1}"::::::::::   %s"
  2850. "$c1  ::::::::::"${c2}"o    cccclc"${c1}":::::"${c2}"clcc"${c1}"::::::::::::  %s"
  2851. "$c1  :::::::::::"${c2}"lc        cclccclc"${c1}":::::::::::::  %s"
  2852. "$c1 ::::::::::::::"${c2}"lcclcc          lc"${c1}":::::::::::: %s"
  2853. "$c1 ::::::::::"${c2}"cclcc"${c1}":::::"${c2}"lccclc     oc"${c1}"::::::::::: %s"
  2854. "$c1 ::::::::::"${c2}"o    l"${c1}"::::::::::"${c2}"l    lc"${c1}"::::::::::: %s"
  2855. "$c1  :::::"${c2}"cll"${c1}":"${c2}"o     clcllcccll     o"${c1}":::::::::::  %s"
  2856. "$c1  :::::"${c2}"occ"${c1}":"${c2}"o                  clc"${c1}":::::::::::  %s"
  2857. "$c1   ::::"${c2}"ocl"${c1}":"${c2}"ccslclccclclccclclc"${c1}":::::::::::::   %s"
  2858. "$c1    :::"${c2}"oclcccccccccccccllllllllllllll"${c1}":::::    %s"
  2859. "$c1     ::"${c2}"lcc1lcccccccccccccccccccccccco"${c1}"::::     %s"
  2860. "$c1       ::::::::::::::::::::::::::::::::       %s"
  2861. "$c1         ::::::::::::::::::::::::::::         %s"
  2862. "$c1            ::::::::::::::::::::::"
  2863. "$c1                 ::::::::::::")
  2864.         ;;
  2865.  
  2866.         "Red Hat Enterprise Linux")
  2867.             if [[ "$no_color" != "1" ]]; then
  2868.                 c1=$(getColor 'white') # White
  2869.                 c2=$(getColor 'light red') # Light Red
  2870.             fi
  2871.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2872.             startline="0"
  2873.             fulloutput=("                                           %s"
  2874. "$c2              \`.-..........\`              %s"
  2875. "$c2             \`////////::.\`-/.             %s"
  2876. "$c2             -: ....-////////.            %s"
  2877. "$c2             //:-::///////////\`           %s"
  2878. "$c2      \`--::: \`-://////////////:           %s"
  2879. "$c2      //////-    \`\`.-:///////// .\`        %s"
  2880. "$c2      \`://////:-.\`    :///////::///:\`     %s"
  2881. "$c2        .-/////////:---/////////////:     %s"
  2882. "$c2           .-://////////////////////.     %s"
  2883. "$c1          yMN+\`.-$c2::///////////////-\`      %s"
  2884. "$c1       .-\`:NMMNMs\`  \`..-------..\`         %s"
  2885. "$c1        MN+/mMMMMMhoooyysshsss            %s"
  2886. "$c1 MMM    MMMMMMMMMMMMMMyyddMMM+            %s"
  2887. "$c1  MMMM   MMMMMMMMMMMMMNdyNMMh\`     hyhMMM %s"
  2888. "$c1   MMMMMMMMMMMMMMMMyoNNNMMM+.   MMMMMMMM  %s"
  2889. "$c1    MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM   %s"
  2890. "                                          %s")
  2891.         ;;
  2892.  
  2893.         "Frugalware")
  2894.             if [[ "$no_color" != "1" ]]; then
  2895.                 c1=$(getColor 'white') # White
  2896.                 c2=$(getColor 'light blue') # Light Blue
  2897.             fi
  2898.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2899.             startline="3"
  2900.             fulloutput=("${c2}          \`++/::-.\`"
  2901. "${c2}         /o+++++++++/::-.\`"
  2902. "${c2}        \`o+++++++++++++++o++/::-.\`"
  2903. "${c2}        /+++++++++++++++++++++++oo++/:-.\`\`         %s"
  2904. "${c2}       .o+ooooooooooooooooooosssssssso++oo++/:-\`  %s"
  2905. "${c2}       ++osoooooooooooosssssssssssssyyo+++++++o:  %s"
  2906. "${c2}      -o+ssoooooooooooosssssssssssssyyo+++++++s\`  %s"
  2907. "${c2}      o++ssoooooo++++++++++++++sssyyyyo++++++o:   %s"
  2908. "${c2}     :o++ssoooooo"${c1}"/-------------"${c2}"+syyyyyo+++++oo    %s"
  2909. "${c2}    \`o+++ssoooooo"${c1}"/-----"${c2}"+++++ooosyyyyyyo++++os:    %s"
  2910. "${c2}    /o+++ssoooooo"${c1}"/-----"${c2}"ooooooosyyyyyyyo+oooss     %s"
  2911. "${c2}   .o++++ssooooos"${c1}"/------------"${c2}"syyyyyyhsosssy-     %s"
  2912. "${c2}   ++++++ssooooss"${c1}"/-----"${c2}"+++++ooyyhhhhhdssssso      %s"
  2913. "${c2}  -s+++++syssssss"${c1}"/-----"${c2}"yyhhhhhhhhhhhddssssy.      %s"
  2914. "${c2}  sooooooyhyyyyyh"${c1}"/-----"${c2}"hhhhhhhhhhhddddyssy+       %s"
  2915. "${c2} :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy\`       %s"
  2916. "${c2} yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/        %s"
  2917. "${c2}-ysooooooydhhhhhhhhhhhddddddddddddddddssy         %s"
  2918. "${c2} .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:         %s"
  2919. "${c2}       \`\`.-/+oosysssssssssssssssssssssss          %s"
  2920. "${c2}               \`\`.:/+osyysssssssssssssh.          %s"
  2921. "${c2}                        \`-:/+osyyssssyo"
  2922. "${c2}                                .-:+++\`")
  2923.         ;;
  2924.  
  2925.  
  2926.         "Peppermint")
  2927.             if [[ "$no_color" != "1" ]]; then
  2928.                 c1=$(getColor 'white') # White
  2929.                 c2=$(getColor 'light red') # Light Red
  2930.             fi
  2931.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2932.             startline="0"
  2933.             fulloutput=("${c2}             8ZZZZZZ"${c1}"MMMMM               %s"
  2934. "${c2}          .ZZZZZZZZZ"${c1}"MMMMMMM.           %s"
  2935. "${c1}        MM"${c2}"ZZZZZZZZZ"${c1}"MMMMMMM"${c2}"ZZZZ         %s"
  2936. "${c1}      MMMMM"${c2}"ZZZZZZZZ"${c1}"MMMMM"${c2}"ZZZZZZZM       %s"
  2937. "${c1}     MMMMMMM"${c2}"ZZZZZZZ"${c1}"MMMM"${c2}"ZZZZZZZZZ.      %s"
  2938. "${c1}    MMMMMMMMM"${c2}"ZZZZZZ"${c1}"MMM"${c2}"ZZZZZZZZZZZI     %s"
  2939. "${c1}   MMMMMMMMMMM"${c2}"ZZZZZZ"${c1}"MM"${c2}"ZZZZZZZZZZ"${c1}"MMM    %s"
  2940. "${c2}   .ZZZ"${c1}"MMMMMMMMMM"${c2}"IZZ"${c1}"MM"${c2}"ZZZZZ"${c1}"MMMMMMMMM   %s"
  2941. "${c2}   ZZZZZZZ"${c1}"MMMMMMMM"${c2}"ZZ"${c1}"M"${c2}"ZZZZ"${c1}"MMMMMMMMMMM   %s"
  2942. "${c2}   ZZZZZZZZZZZZZZZZ"${c1}"M"${c2}"Z"${c1}"MMMMMMMMMMMMMMM   %s"
  2943. "${c2}   .ZZZZZZZZZZZZZ"${c1}"MMM"${c2}"Z"${c1}"M"${c2}"ZZZZZZZZZZ"${c1}"MMMM   %s"
  2944. "${c2}   .ZZZZZZZZZZZ"${c1}"MMM"${c2}"7ZZ"${c1}"MM"${c2}"ZZZZZZZZZZ7"${c1}"M    %s"
  2945. "${c2}    ZZZZZZZZZ"${c1}"MMMM"${c2}"ZZZZ"${c1}"MMMM"${c2}"ZZZZZZZ77     %s"
  2946. "${c1}     MMMMMMMMMMMM"${c2}"ZZZZZ"${c1}"MMMM"${c2}"ZZZZZ77      %s"
  2947. "${c1}      MMMMMMMMMM"${c2}"7ZZZZZZ"${c1}"MMMMM"${c2}"ZZ77       %s"
  2948. "${c1}       .MMMMMMM"${c2}"ZZZZZZZZ"${c1}"MMMMM"${c2}"Z7Z        %s"
  2949. "${c1}         MMMMM"${c2}"ZZZZZZZZZ"${c1}"MMMMMMM         %s"
  2950. "${c2}           NZZZZZZZZZZZ"${c1}"MMMMM           %s"
  2951. "${c2}              ZZZZZZZZZ"${c1}"MM")
  2952.         ;;
  2953.  
  2954.         "SolusOS")
  2955.             if [[ "$no_color" != "1" ]]; then
  2956.                 c1=$(getColor 'white') # White
  2957.                 c2=$(getColor 'dark grey') # Light Gray
  2958.             fi
  2959.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2960.             startline="0"
  2961.             fulloutput=("${c1}               e         e      %s"
  2962. "${c1}             eee       ee      %s"
  2963. "${c1}            eeee     eee       %s"
  2964. "${c2}        wwwwwwwww"${c1}"eeeeee        %s"
  2965. "${c2}     wwwwwwwwwwwwwww"${c1}"eee        %s"
  2966. "${c2}   wwwwwwwwwwwwwwwwwww"${c1}"eeeeeeee %s"
  2967. "${c2}  wwwww     "${c1}"eeeee"${c2}"wwwwww"${c1}"eeee    %s"
  2968. "${c2} www          "${c1}"eeee"${c2}"wwwwww"${c1}"e      %s"
  2969. "${c2} ww             "${c1}"ee"${c2}"wwwwww       %s"
  2970. "${c2} w                 wwwww       %s"
  2971. "${c2}                   wwwww       %s"
  2972. "${c2}                  wwwww        %s"
  2973. "${c2}                 wwwww         %s"
  2974. "${c2}                wwww           %s"
  2975. "${c2}               wwww            %s"
  2976. "${c2}             wwww              %s"
  2977. "${c2}           www                 %s"
  2978. "${c2}         ww                    %s")
  2979.         ;;
  2980.  
  2981.         "Mageia")
  2982.             if [[ "$no_color" != "1" ]]; then
  2983.                 c1=$(getColor 'white') # White
  2984.                 c2=$(getColor 'light cyan') # Light Cyan
  2985.             fi
  2986.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2987.             startline="0"
  2988.             fulloutput=("$c2               .°°.               %s"
  2989. "$c2                °°   .°°.        %s"
  2990. "$c2                .°°°. °°         %s"
  2991. "$c2                .   .            %s"
  2992. "$c2                 °°° .°°°.       %s"
  2993. "$c2             .°°°.   '___'       %s"
  2994. "$c1            .${c2}'___'     $c1   .      %s"
  2995. "$c1          :dkxc;'.  ..,cxkd;     %s"
  2996. "$c1        .dkk. kkkkkkkkkk .kkd.   %s"
  2997. "$c1       .dkk.  ';cloolc;.  .kkd   %s"
  2998. "$c1       ckk.                .kk;  %s"
  2999. "$c1       xO:                  cOd  %s"
  3000. "$c1       xO:                  lOd  %s"
  3001. "$c1       lOO.                .OO:  %s"
  3002. "$c1       .k00.              .00x   %s"
  3003. "$c1        .k00;            ;00O.   %s"
  3004. "$c1         .lO0Kc;,,,,,,;c0KOc.    %s"
  3005. "$c1            ;d00KKKKKK00d;       %s"
  3006. "$c1               .,KKKK,.            ")
  3007.         ;;
  3008.  
  3009.  
  3010.         "Parabola GNU/Linux-libre")
  3011.             if [[ "$no_color" != "1" ]]; then
  3012.                 c1=$(getColor 'light purple') # Light Purple
  3013.                 c2=$(getColor 'white') # White
  3014.             fi
  3015.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3016.             startline="0"
  3017.             fulloutput=("                                  %s"
  3018. "${c1}              eeeeeeeee          %s"
  3019. "${c1}          eeeeeeeeeeeeeee        %s"
  3020. "${c1}       eeeeee"${c2}"//////////"${c1}"eeeee     %s"
  3021. "${c1}     eeeee"${c2}"///////////////"${c1}"eeeee   %s"
  3022. "${c1}   eeeee"${c2}"///           ////"${c1}"eeee   %s"
  3023. "${c1}  eeee"${c2}"//              ///"${c1}"eeeee   %s"
  3024. "${c1} eee                 "${c2}"///"${c1}"eeeee    %s"
  3025. "${c1}ee                  "${c2}"//"${c1}"eeeeee     %s"
  3026. "${c1}e                  "${c2}"/"${c1}"eeeeeee      %s"
  3027. "${c1}                  eeeeeee        %s"
  3028. "${c1}                 eeeeee          %s"
  3029. "${c1}                eeeeee           %s"
  3030. "${c1}               eeeee             %s"
  3031. "${c1}              eeee               %s"
  3032. "${c1}            eee                  %s"
  3033. "${c1}           ee                    %s"
  3034. "${c1}          e                      %s")
  3035.         ;;
  3036.  
  3037.  
  3038.         "Viperr")
  3039.             if [[ "$no_color" != "1" ]]; then
  3040.                 c1=$(getColor 'white') # White
  3041.                 c2=$(getColor 'dark grey') # Dark Gray
  3042.             fi
  3043.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3044.             startline="0"
  3045.             fulloutput=("${c1}    wwzapd         dlzazw       %s"
  3046. "${c1}   an"${c2}"#"${c1}"zncmqzepweeirzpas"${c2}"#"${c1}"xz     %s"
  3047. "${c1} apez"${c2}"##"${c1}"qzdkawweemvmzdm"${c2}"##"${c1}"dcmv   %s"
  3048. "${c1}zwepd"${c2}"####"${c1}"qzdweewksza"${c2}"####"${c1}"ezqpa  %s"
  3049. "${c1}ezqpdkapeifjeeazezqpdkazdkwqz  %s"
  3050. "${c1} ezqpdksz"${c2}"##"${c1}"wepuizp"${c2}"##"${c1}"wzeiapdk   %s"
  3051. "${c1}  zqpakdpa"${c2}"#"${c1}"azwewep"${c2}"#"${c1}"zqpdkqze    %s"
  3052. "${c1}    apqxalqpewenwazqmzazq      %s"
  3053. "${c1}     mn"${c2}"##"${c1}"=="${c2}"#######"${c1}"=="${c2}"##"${c1}"qp       %s"
  3054. "${c1}      qw"${c2}"##"${c1}"="${c2}"#######"${c1}"="${c2}"##"${c1}"zl        %s"
  3055. "${c1}      z0"${c2}"######"${c1}"="${c2}"######"${c1}"0a        %s"
  3056. "${c1}       qp"${c2}"#####"${c1}"="${c2}"#####"${c1}"mq         %s"
  3057. "${c1}       az"${c2}"####"${c1}"==="${c2}"####"${c1}"mn         %s"
  3058. "${c1}        ap"${c2}"#########"${c1}"qz          %s"
  3059. "${c1}         9qlzskwdewz           %s"
  3060. "${c1}          zqwpakaiw            %s"
  3061. "${c1}            qoqpe              %s"
  3062. "                               %s")
  3063.         ;;
  3064.  
  3065.  
  3066.         "LinuxDeepin")
  3067.             if [[ "$no_color" != "1" ]]; then
  3068.                 c1=$(getColor 'light green') # Bold Green
  3069.             fi
  3070.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3071.             startline="0"
  3072.             fulloutput=("${c1}  eeeeeeeeeeeeeeeeeeeeeeeeeeee    %s"
  3073. "${c1} eee  eeeeeee          eeeeeeee  %s"
  3074. "${c1}ee   eeeeeeeee      eeeeeeeee ee %s"
  3075. "${c1}e   eeeeeeeee     eeeeeeeee    e %s"
  3076. "${c1}e   eeeeeee    eeeeeeeeee      e %s"
  3077. "${c1}e   eeeeee    eeeee            e %s"
  3078. "${c1}e    eeeee    eee  eee         e %s"
  3079. "${c1}e     eeeee   ee eeeeee        e %s"
  3080. "${c1}e      eeeee   eee   eee       e %s"
  3081. "${c1}e       eeeeeeeeee  eeee       e %s"
  3082. "${c1}e         eeeee    eeee        e %s"
  3083. "${c1}e               eeeeee         e %s"
  3084. "${c1}e            eeeeeee           e %s"
  3085. "${c1}e eee     eeeeeeee             e %s"
  3086. "${c1}eeeeeeeeeeeeeeee               e %s"
  3087. "${c1}eeeeeeeeeeeee                 ee %s"
  3088. "${c1} eeeeeeeeeee                eee  %s"
  3089. "${c1}  eeeeeeeeeeeeeeeeeeeeeeeeeeee   %s"
  3090. "                                 %s")
  3091.         ;;
  3092.  
  3093.         "Deepin")
  3094.             if [[ "$no_color" != "1" ]]; then
  3095.                 c1=$(getColor 'cyan') # Bold Green
  3096.             fi
  3097.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3098.             startline="0"
  3099.                        fulloutput=("${c1}              ............                %s"
  3100. "${c1}          .';;;;;.       .,;,.           %s"
  3101. "${c1}       .,;;;;;;;.       ';;;;;;;.        %s"
  3102. "${c1}     .;::::::::'     .,::;;,''''',.      %s"
  3103. "${c1}    ,'.::::::::    .;;'.          ';     %s"
  3104. "${c1}   ;'  'cccccc,   ,' :: '..        .:    %s"
  3105. "${c1}  ,,    :ccccc.  ;: .c, '' :.       ,;   %s"
  3106. "${c1} .l.     cllll' ., .lc  :; .l'       l.  %s"
  3107. "${c1} .c       :lllc  ;cl:  .l' .ll.      :'  %s"
  3108. "${c1} .l        'looc. .   ,o:  'oo'      c,  %s"
  3109. "${c1} .o.         .:ool::coc'  .ooo'      o.  %s"
  3110. "${c1}  ::            .....   .;dddo      ;c   %s"
  3111. "${c1}   l:...            .';lddddo.     ,o    %s"
  3112. "${c1}    lxxxxxdoolllodxxxxxxxxxc      :l     %s"
  3113. "${c1}     ,dxxxxxxxxxxxxxxxxxxl.     'o,      %s"
  3114. "${c1}       ,dkkkkkkkkkkkkko;.    .;o;        %s"
  3115. "${c1}         .;okkkkkdl;.    .,cl:.          %s"
  3116. "${c1}             .,:cccccccc:,.  %s")
  3117.                ;;
  3118.  
  3119.         "Chakra")
  3120.             if [[ "$no_color" != "1" ]]; then
  3121.                 c1=$(getColor 'light blue') # Light Blue
  3122.             fi
  3123.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3124.             startline="0"
  3125.             fulloutput=("${c1}      _ _ _        \"kkkkkkkk.          %s"
  3126. "${c1}    ,kkkkkkkk.,    \'kkkkkkkkk,        %s"
  3127. "${c1}    ,kkkkkkkkkkkk., \'kkkkkkkkk.       %s"
  3128. "${c1}   ,kkkkkkkkkkkkkkkk,\'kkkkkkkk,       %s"
  3129. "${c1}  ,kkkkkkkkkkkkkkkkkkk\'kkkkkkk.       %s"
  3130. "${c1}   \"\'\'\"\'\'\',;::,,\"\'\'kkk\'\'kkkkk;   __   %s"
  3131. "${c1}       ,kkkkkkkkkk, \"k\'\'kkkkk\' ,kkkk  %s"
  3132. "${c1}     ,kkkkkkk\' ., \' .: \'kkkk\',kkkkkk  %s"
  3133. "${c1}   ,kkkkkkkk\'.k\'   ,  ,kkkk;kkkkkkkkk %s"
  3134. "${c1}  ,kkkkkkkk\';kk \'k  \"\'k\',kkkkkkkkkkkk %s"
  3135. "${c1} .kkkkkkkkk.kkkk.\'kkkkkkkkkkkkkkkkkk\' %s"
  3136. "${c1} ;kkkkkkkk\'\'kkkkkk;\'kkkkkkkkkkkkk\'\'   %s"
  3137. "${c1} \'kkkkkkk; \'kkkkkkkk.,\"\"\'\'\"\'\'\"\"       %s"
  3138. "${c1}   \'\'kkkk;  \'kkkkkkkkkk.,             %s"
  3139. "${c1}      \';\'    \'kkkkkkkkkkkk.,          %s"
  3140. "${c1}              ';kkkkkkkkkk\'           %s"
  3141. "${c1}                ';kkkkkk\'             %s"
  3142. "${c1}                   \"\'\'\"               %s")
  3143.         ;;
  3144.  
  3145.  
  3146.         "Fuduntu")
  3147.             if [[ "$no_color" != "1" ]]; then
  3148.                 c1=$(getColor 'dark grey') # Dark Gray
  3149.                 c2=$(getColor 'yellow') # Bold Yellow
  3150.                 c3=$(getColor 'light red') # Light Red
  3151.                 c4=$(getColor 'white') # White
  3152.             fi
  3153.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3154.             startline="1"
  3155.             fulloutput=("${c1}       \`dwoapfjsod\`"${c2}"           \`dwoapfjsod\`"
  3156. "${c1}    \`xdwdsfasdfjaapz\`"${c2}"       \`dwdsfasdfjaapzx\`     %s"
  3157. "${c1}  \`wadladfladlafsozmm\`"${c2}"     \`wadladfladlafsozmm\`  %s"
  3158. "${c1} \`aodowpwafjwodisosoaas\`"${c2}" \`odowpwafjwodisosoaaso\` %s"
  3159. "${c1} \`adowofaowiefawodpmmxs\`"${c2}" \`dowofaowiefawodpmmxso\` %s"
  3160. "${c1} \`asdjafoweiafdoafojffw\`"${c2}" \`sdjafoweiafdoafojffwq\` %s"
  3161. "${c1}  \`dasdfjalsdfjasdlfjdd\`"${c2}" \`asdfjalsdfjasdlfjdda\`  %s"
  3162. "${c1}   \`dddwdsfasdfjaapzxaw\`"${c2}" \`ddwdsfasdfjaapzxawo\`   %s"
  3163. "${c1}     \`dddwoapfjsowzocmw\`"${c2}" \`ddwoapfjsowzocmwp\`     %s"
  3164. "${c1}       \`ddasowjfowiejao\`"${c2}" \`dasowjfowiejaow\`       %s"
  3165. "                                                 %s"
  3166. "${c3}       \`ddasowjfowiejao\`"${c4}" \`dasowjfowiejaow\`       %s"
  3167. "${c3}     \`dddwoapfjsowzocmw\`"${c4}" \`ddwoapfjsowzocmwp\`     %s"
  3168. "${c3}   \`dddwdsfasdfjaapzxaw\`"${c4}" \`ddwdsfasdfjaapzxawo\`   %s"
  3169. "${c3}  \`dasdfjalsdfjasdlfjdd\`"${c4}" \`asdfjalsdfjasdlfjdda\`  %s"
  3170. "${c3} \`asdjafoweiafdoafojffw\`"${c4}" \`sdjafoweiafdoafojffwq\` %s"
  3171. "${c3} \`adowofaowiefawodpmmxs\`"${c4}" \`dowofaowiefawodpmmxso\` %s"
  3172. "${c3} \`aodowpwafjwodisosoaas\`"${c4}" \`odowpwafjwodisosoaaso\` %s"
  3173. "${c3}   \`wadladfladlafsozmm\`"${c4}"     \`wadladfladlafsozmm\` %s"
  3174. "${c3}     \`dwdsfasdfjaapzx\`"${c4}"       \`dwdsfasdfjaapzx\`"
  3175. "${c3}        \`woapfjsod\`"${c4}"             \`woapfjsod\`")
  3176.         ;;
  3177.  
  3178.         "Mac OS X")
  3179.             if [[ "$no_color" != "1" ]]; then
  3180.                 c1=$(getColor 'green') # Green
  3181.                 c2=$(getColor 'brown') # Yellow
  3182.                 c3=$(getColor 'light red') # Orange
  3183.                 c4=$(getColor 'red') # Red
  3184.                 c5=$(getColor 'purple') # Purple
  3185.                 c6=$(getColor 'blue') # Blue
  3186.             fi
  3187.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; c5="${my_lcolor}"; c6="${my_lcolor}"; fi
  3188.             startline="0"
  3189.             fulloutput=("\n${c1}                 -/+:.          %s"
  3190. "${c1}                :++++.         %s"
  3191. "${c1}               /+++/.          %s"
  3192. "${c1}       .:-::- .+/:-\`\`.::-      %s"
  3193. "${c1}    .:/++++++/::::/++++++/:\`   %s"
  3194. "${c2}  .:///////////////////////:\`  %s"
  3195. "${c2}  ////////////////////////\`    %s"
  3196. "${c3} -+++++++++++++++++++++++\`     %s"
  3197. "${c3} /++++++++++++++++++++++/      %s"
  3198. "${c4} /sssssssssssssssssssssss.     %s"
  3199. "${c4} :ssssssssssssssssssssssss-    %s"
  3200. "${c5}  osssssssssssssssssssssssso/\` %s"
  3201. "${c5}  \`syyyyyyyyyyyyyyyyyyyyyyyy+\` %s"
  3202. "${c6}   \`ossssssssssssssssssssss/   %s"
  3203. "${c6}     :ooooooooooooooooooo+.    %s"
  3204. "${c6}      \`:+oo+/:-..-:/+o+/-      %s\n")
  3205.         ;;
  3206.  
  3207.         "Windows"|"Cygwin")
  3208.             if [[ "$no_color" != "1" ]]; then
  3209.                 c1=$(getColor 'light red') # Red
  3210.                 c2=$(getColor 'light green') # Green
  3211.                 c3=$(getColor 'light blue') # Blue
  3212.                 c4=$(getColor 'yellow') # Yellow
  3213.             fi
  3214.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  3215.             startline="0"
  3216.             fulloutput=("${c1}        ,.=:!!t3Z3z.,                 %s"
  3217. "${c1}       :tt:::tt333EE3                %s"
  3218. "${c1}       Et:::ztt33EEEL${c2} @Ee.,      .., %s"
  3219. "${c1}      ;tt:::tt333EE7${c2} ;EEEEEEttttt33# %s"
  3220. "${c1}     :Et:::zt333EEQ.${c2} \$EEEEEttttt33QL %s"
  3221. "${c1}     it::::tt333EEF${c2} @EEEEEEttttt33F  %s"
  3222. "${c1}    ;3=*^\`\`\`\"*4EEV${c2} :EEEEEEttttt33@.  %s"
  3223. "${c3}    ,.=::::!t=., ${c1}\`${c2} @EEEEEEtttz33QF   %s"
  3224. "${c3}   ;::::::::zt33)${c2}   \"4EEEtttji3P*    %s"
  3225. "${c3}  :t::::::::tt33.${c4}:Z3z..${c2}  \`\`${c4} ,..g.    %s"
  3226. "${c3}  i::::::::zt33F${c4} AEEEtttt::::ztF     %s"
  3227. "${c3} ;:::::::::t33V${c4} ;EEEttttt::::t3      %s"
  3228. "${c3} E::::::::zt33L${c4} @EEEtttt::::z3F      %s"
  3229. "${c3}{3=*^\`\`\`\"*4E3)${c4} ;EEEtttt:::::tZ\`      %s"
  3230. "${c3}             \`${c4} :EEEEtttt::::z7       %s"
  3231. "${c4}                 \"VEzjt:;;z>*\`       %s")
  3232.         ;;
  3233.  
  3234.         "Haiku")
  3235.             if [[ "$no_color" != "1" ]]; then
  3236.                 c1=$(getColor 'black_haiku') # Black
  3237.                 c2=$(getColor 'light grey') # Light Gray
  3238.                 c3=$(getColor 'green') # Green
  3239.             fi
  3240.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  3241.             startline="0"
  3242.             fulloutput=(
  3243. "${c1}          :dc'                      %s"
  3244. "${c1}       'l:;'${c2},${c1}'ck.    .;dc:.         %s"
  3245. "${c1}       co    ${c2}..${c1}k.  .;;   ':o.       %s"
  3246. "${c1}       co    ${c2}..${c1}k. ol      ${c2}.${c1}0.       %s"
  3247. "${c1}       co    ${c2}..${c1}k. oc     ${c2}..${c1}0.       %s"
  3248. "${c1}       co    ${c2}..${c1}k. oc     ${c2}..${c1}0.       %s"
  3249. "${c1}.Ol,.  co ${c2}...''${c1}Oc;kkodxOdddOoc,.    %s"
  3250. "${c1} ';lxxlxOdxkxk0kd${c3}oooll${c1}dl${c3}ccc:${c1}clxd;   %s"
  3251. "${c1}     ..${c3}oOolllllccccccc:::::${c1}od;      %s"
  3252. "${c1}       cx:ooc${c3}:::::::;${c1}cooolcX.       %s"
  3253. "${c1}       cd${c2}.${c1}''cloxdoollc' ${c2}...${c1}0.       %s"
  3254. "${c1}       cd${c2}......${c1}k;${c2}.${c1}xl${c2}....  .${c1}0.       %s"
  3255. "${c1}       .::c${c2};..${c1}cx;${c2}.${c1}xo${c2}..... .${c1}0.       %s"
  3256. "${c1}          '::c'${c2}...${c1}do${c2}..... .${c1}K,       %s"
  3257. "${c1}                  cd,.${c2}....:${c1}O,${c2}...... %s"
  3258. "${c1}                    ':clod:'${c2}......  %s"
  3259. "${c1}                        ${c2}.           %s")
  3260.         ;;
  3261.  
  3262.         "Trisquel")
  3263.             if [[ "$no_color" != "1" ]]; then
  3264.                 c1=$(getColor 'light blue') # Light Blue
  3265.                 c2=$(getColor 'light cyan') # Blue
  3266.             fi
  3267.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3268.             startline="0"
  3269.             fulloutput=(
  3270. "${c1}                          ▄▄▄▄▄▄       %s"
  3271. "${c1}                       ▄█████████▄    %s"
  3272. "${c1}       ▄▄▄▄▄▄         ████▀   ▀████   %s"
  3273. "${c1}    ▄██████████▄     ████▀   ▄▄ ▀███  %s"
  3274. "${c1}  ▄███▀▀   ▀▀████     ███▄   ▄█   ███ %s"
  3275. "${c1} ▄███   ▄▄▄   ████▄    ▀██████   ▄███ %s"
  3276. "${c1} ███   █▀▀██▄  █████▄     ▀▀   ▄████  %s"
  3277. "${c1} ▀███      ███  ███████▄▄  ▄▄██████   %s"
  3278. "${c1}  ▀███▄   ▄███  █████████████${c2}████▀    %s"
  3279. "${c1}   ▀█████████    ███████${c2}███▀▀▀        %s"
  3280. "${c1}     ▀▀███▀▀     ██${c2}████▀▀             %s"
  3281. "${c2}                ██████▀   ▄▄▄▄        %s"
  3282. "${c2}               █████▀   ████████      %s"
  3283. "${c2}               █████   ███▀  ▀███     %s"
  3284. "${c2}                ████▄   ██▄▄▄  ███    %s"
  3285. "${c2}                 █████▄   ▀▀  ▄██     %s"
  3286. "${c2}                   ██████▄▄▄████      %s"
  3287. "${c2}                      ▀▀█████▀▀       %s")
  3288.         ;;
  3289.  
  3290.         "Manjaro")
  3291.             if [[ "$no_color" != "1" ]]; then
  3292.                 c1=$(getColor 'light green') # Green
  3293.             fi
  3294.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3295.             startline="0"
  3296.             fulloutput=(
  3297. "${c1} ██████████████████  ████████     %s"
  3298. "${c1} ██████████████████  ████████    %s"
  3299. "${c1} ██████████████████  ████████    %s"
  3300. "${c1} ██████████████████  ████████    %s"
  3301. "${c1} ████████            ████████    %s"
  3302. "${c1} ████████  ████████  ████████    %s"
  3303. "${c1} ████████  ████████  ████████    %s"
  3304. "${c1}           ████████  ████████    %s"
  3305. "${c1} ████████  ████████  ████████    %s"
  3306. "${c1} ████████  ████████  ████████    %s"
  3307. "${c1} ████████  ████████  ████████    %s"
  3308. "${c1} ████████  ████████  ████████    %s"
  3309. "${c1} ████████  ████████  ████████    %s"
  3310. "${c1} ████████  ████████  ████████    %s"
  3311. "${c1} ████████  ████████  ████████    %s"
  3312. "${c1} ████████  ████████  ████████    %s"
  3313. "${c1} ████████  ████████  ████████    %s"
  3314. "                                 %s")
  3315.         ;;
  3316.  
  3317.             "Logos")
  3318.             if [[ "$no_color" != "1" ]]; then
  3319.                 c1=$(getColor 'green') # Green
  3320.                 c2=$(getColor 'white') # White
  3321.             fi
  3322.             startline="0"
  3323.             fulloutput=(
  3324. "$c1    ..:.:.               $c2%s"
  3325. "$c1   ..:.:.:.:.            $c2%s"
  3326. "$c1  ..:.:.:.:.:.:.         $c2%s"
  3327. "$c1 ..:.:.:.:.:.:.:.:.      $c2%s"
  3328. "$c1   .:.::;.::::..:.:.:.   $c2%s"
  3329. "$c1      .:.:.::.::.::.;;/  $c2%s"
  3330. "$c1         .:.::.::://///  $c2%s"
  3331. "$c1            ..;;///////  $c2%s"
  3332. "$c1            ///////////  $c2%s"
  3333. "$c1         //////////////  $c2%s"
  3334. "$c1      /////////////////  $c2%s"
  3335. "$c1   ///////////////////   $c2%s"
  3336. "$c1 //////////////////      $c2%s"
  3337. "$c1  //////////////         $c2%s"
  3338. "$c1   //////////            $c2%s"
  3339. "$c1    //////               $c2%s"
  3340. "$c1     //                  $c2%s")
  3341.         ;;
  3342.         "Manjaro-tree")
  3343.             if [[ "$no_color" != "1" ]]; then
  3344.                 c1="\e[1;32m" # Green
  3345.                 c2="\e[1;33m" # Yellow
  3346.             fi
  3347.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3348.             startline="0"
  3349.             fulloutput=(
  3350. "${c1}                         ###      %s"
  3351. "${c1}     ###             ####        %s"
  3352. "${c1}        ###       ####           %s"
  3353. "${c1}         ##### #####             %s"
  3354. "${c1}      #################          %s"
  3355. "${c1}    ###     #####    ####        %s"
  3356. "${c1}   ##        ${c2}OOO       ${c1}###       %s"
  3357. "${c1}  #          ${c2}WW         ${c1}##       %s"
  3358. "${c1}            ${c2}WW            ${c1}#      %s"
  3359. "${c2}            WW                   %s"
  3360. "${c2}            WW                   %s"
  3361. "${c2}           WW                    %s"
  3362. "${c2}           WW                    %s"
  3363. "${c2}           WW                    %s"
  3364. "${c2}          WW                     %s"
  3365. "${c2}          WW                     %s"
  3366. "${c2}          WW                     %s"
  3367. "                                 %s")
  3368.         ;;
  3369.  
  3370.  
  3371.  
  3372.         "elementary OS"|"elementary os")
  3373.             if [[ "$no_color" != "1" ]]; then
  3374.                 c1=$(getColor 'white') # White
  3375.             fi
  3376.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3377.             startline="0"
  3378.             fulloutput=(
  3379. "                                     %s"
  3380. "${c1}         eeeeeeeeeeeeeeeee          %s"
  3381. "${c1}      eeeeeeeeeeeeeeeeeeeeeee       %s"
  3382. "${c1}    eeeee  eeeeeeeeeeee   eeeee     %s"
  3383. "${c1}  eeee   eeeee       eee     eeee   %s"
  3384. "${c1} eeee   eeee          eee     eeee  %s"
  3385. "${c1}eee    eee            eee       eee %s"
  3386. "${c1}eee   eee            eee        eee %s"
  3387. "${c1}ee    eee           eeee       eeee %s"
  3388. "${c1}ee    eee         eeeee      eeeeee %s"
  3389. "${c1}ee    eee       eeeee      eeeee ee %s"
  3390. "${c1}eee   eeee   eeeeee      eeeee  eee %s"
  3391. "${c1}eee    eeeeeeeeee     eeeeee    eee %s"
  3392. "${c1} eeeeeeeeeeeeeeeeeeeeeeee    eeeee  %s"
  3393. "${c1}  eeeeeeee eeeeeeeeeeee      eeee   %s"
  3394. "${c1}    eeeee                 eeeee     %s"
  3395. "${c1}      eeeeeee         eeeeeee       %s"
  3396. "${c1}         eeeeeeeeeeeeeeeee          %s")
  3397.     ;;
  3398.  
  3399.  
  3400.         "Android")
  3401.             if [[ "$no_color" != "1" ]]; then
  3402.                 c1=$(getColor 'white') # White
  3403.                 c2=$(getColor 'light green') # Bold Green
  3404.             fi
  3405.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3406.             startline="2"
  3407.                     fulloutput=(
  3408. "${c2}       ╲ ▁▂▂▂▁ ╱"
  3409. "${c2}       ▄███████▄ "
  3410. "${c2}      ▄██${c1} ${c2}███${c1} ${c2}██▄        %s"
  3411. "${c2}     ▄███████████▄      %s"
  3412. "${c2}  ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄   %s"
  3413. "${c2}  ██ █████████████ ██   %s"
  3414. "${c2}  ██ █████████████ ██   %s"
  3415. "${c2}  ██ █████████████ ██   %s"
  3416. "${c2}  ██ █████████████ ██   %s"
  3417. "${c2}     █████████████      %s"
  3418. "${c2}      ███████████       %s"
  3419. "${c2}       ██     ██"
  3420. "${c2}       ██     ██")
  3421.         ;;
  3422.  
  3423.         "Scientific Linux")
  3424.             if [[ "$no_color" != "1" ]]; then
  3425.                 c1=$(getColor 'light blue')
  3426.                 c2=$(getColor 'light red')
  3427.                 c3=$(getColor 'white')
  3428.             fi
  3429.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3430.             startline="1"
  3431.             fulloutput=("${c1}                  =/;;/-"
  3432. "${c1}                 +:    //                    %s"
  3433. "${c1}                /;      /;                  %s"
  3434. "${c1}               -X        H.                 %s"
  3435. "${c1} .//;;;:;;-,   X=        :+   .-;:=;:;#;.   %s"
  3436. "${c1} M-       ,=;;;#:,      ,:#;;:=,       ,@   %s"
  3437. "${c1} :#           :#.=/++++/=.$=           #=   %s"
  3438. "${c1}  ,#;         #/:+/;,,/++:+/         ;+.    %s"
  3439. "${c1}    ,+/.    ,;@+,        ,#H;,    ,/+,      %s"
  3440. "${c1}       ;+;;/= @.  ${c2}.H${c3}#${c2}#X   ${c1}-X :///+;         %s"
  3441. "${c1}       ;+=;;;.@,  ${c3}.X${c2}M${c3}@$.  ${c1}=X.//;=#/.        %s"
  3442. "${c1}    ,;:      :@#=        =\$H:     .+#-      %s"
  3443. "${c1}  ,#=         #;-///==///-//         =#,    %s"
  3444. "${c1} ;+           :#-;;;:;;;;-X-           +:   %s"
  3445. "${c1} @-      .-;;;;M-        =M/;;;-.      -X   %s"
  3446. "${c1}  :;;::;;-.    #-        :+    ,-;;-;:==    %s"
  3447. "${c1}               ,X        H.                 %s"
  3448. "${c1}                ;/      #=                  %s"
  3449. "${c1}                 //    +;                   %s"
  3450. "${c1}                  '////'")
  3451.         ;;
  3452.  
  3453.         "BackTrack Linux")
  3454.             if [[ "$no_color" != "1" ]]; then
  3455.                 c1=$(getColor 'white') # White
  3456.                 c2=$(getColor 'light red') # Light Red
  3457.             fi
  3458.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3459.             startline="1"
  3460.             fulloutput=("${c1}.............."
  3461. "${c1}            ..,;:ccc,.                           %s"
  3462. "${c1}          ......''';lxO.                        %s"
  3463. "${c1}.....''''..........,:ld;                        %s"
  3464. "${c1}           .';;;:::;,,.x,                       %s"
  3465. "${c1}      ..'''.            0Xxoc:,.  ...           %s"
  3466. "${c1}  ....                ,ONkc;,;cokOdc',.         %s"
  3467. "${c1} .                   OMo           ':"${c2}"dd"${c1}"o.       %s"
  3468. "${c1}                    dMc               :OO;      %s"
  3469. "${c1}                    0M.                 .:o.    %s"
  3470. "${c1}                    ;Wd                         %s"
  3471. "${c1}                     ;XO,                       %s"
  3472. "${c1}                       ,d0Odlc;,..              %s"
  3473. "${c1}                           ..',;:cdOOd::,.      %s"
  3474. "${c1}                                    .:d;.':;.   %s"
  3475. "${c1}                                       'd,  .'  %s"
  3476. "${c1}                                         ;l   ..%s"
  3477. "${c1}                                          .o    %s"
  3478. "${c1}                                            c   %s"
  3479. "${c1}                                            .'"
  3480. "${c1}                                             .")
  3481.         ;;
  3482.        
  3483.         "Kali Linux")
  3484.             if [[ "$no_color" != "1" ]]; then
  3485.                 c1=$(getColor 'light blue') # White
  3486.                 c2=$(getColor 'black') # Light Red
  3487.             fi
  3488.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3489.             startline="1"
  3490.             fulloutput=("${c1}.............."
  3491. "${c1}            ..,;:ccc,.                           %s"
  3492. "${c1}          ......''';lxO.                        %s"
  3493. "${c1}.....''''..........,:ld;                        %s"
  3494. "${c1}           .';;;:::;,,.x,                       %s"
  3495. "${c1}      ..'''.            0Xxoc:,.  ...           %s"
  3496. "${c1}  ....                ,ONkc;,;cokOdc',.         %s"
  3497. "${c1} .                   OMo           ':"${c2}"dd"${c1}"o.       %s"
  3498. "${c1}                    dMc               :OO;      %s"
  3499. "${c1}                    0M.                 .:o.    %s"
  3500. "${c1}                    ;Wd                         %s"
  3501. "${c1}                     ;XO,                       %s"
  3502. "${c1}                       ,d0Odlc;,..              %s"
  3503. "${c1}                           ..',;:cdOOd::,.      %s"
  3504. "${c1}                                    .:d;.':;.   %s"
  3505. "${c1}                                       'd,  .'  %s"
  3506. "${c1}                                         ;l   ..%s"
  3507. "${c1}                                          .o    %s"
  3508. "${c1}                                            c   %s"
  3509. "${c1}                                            .'"
  3510. "${c1}                                             .")
  3511.         ;;
  3512.  
  3513.                 "Sabayon")
  3514.                         if [[ "$no_color" != "1" ]]; then
  3515.                                 c1=$(getColor 'white') # White
  3516.                 c2=$(getColor 'light blue') # Blue
  3517.                         fi
  3518.                         if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3519.                         startline="0"
  3520.                         fulloutput=("${c2}            ...........                %s"
  3521. "${c2}         ..             ..            %s"
  3522. "${c2}      ..                   ..         %s"
  3523. "${c2}    ..           ${c1}o           ${c2}..       %s"
  3524. "${c2}  ..            ${c1}:W'            ${c2}..     %s"
  3525. "${c2} ..             ${c1}.d.             ${c2}..    %s"
  3526. "${c2}:.             ${c1}.KNO              ${c2}.:   %s"
  3527. "${c2}:.             ${c1}cNNN.             ${c2}.:   %s"
  3528. "${c2}:              ${c1}dXXX,              ${c2}:   %s"
  3529. "${c2}:   ${c1}.          dXXX,       .cd,   ${c2}:   %s"
  3530. "${c2}:   ${c1}'kc ..     dKKK.    ,ll;:'    ${c2}:   %s"
  3531. "${c2}:     ${c1}.xkkxc;..dkkkc',cxkkl       ${c2}:   %s"
  3532. "${c2}:.     ${c1}.,cdddddddddddddo:.       ${c2}.:   %s"
  3533. "${c2} ..         ${c1}:lllllll:           ${c2}..    %s"
  3534. "${c2}   ..         ${c1}',,,,,          ${c2}..      %s"
  3535. "${c2}     ..                     ..        %s"
  3536. "${c2}        ..               ..           %s"
  3537. "${c2}          ...............             %s")
  3538.                 ;;
  3539.  
  3540.  
  3541.                 "KaOS")
  3542.     if [[ "$no_color" != "1" ]]; then
  3543.                 c1=$(getColor 'light blue')
  3544.                 c2=$(getColor 'light grey')
  3545.                 c3=$(getColor 'red')
  3546.             fi
  3547.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3548.             startline="0"
  3549.             fulloutput=(
  3550. "${c1} ████████ ████████             %s"
  3551. "${c1}   ██████ ██████              %s"
  3552. "${c1}     ████ ████                %s"
  3553. "${c1}        █ █                   %s"
  3554. "${c1}         █                    %s"
  3555. "${c1}         █ ${c2}  ████████ ████████%s"
  3556. "${c1}         █ ${c2}    ██████ ██████  %s"
  3557. "${c1}         █ ${c2}      ████ ████    %s"
  3558. "${c1}         █ ${c2}         █ █       %s"
  3559. "${c1}         █ ${c2}          █        %s"
  3560. "${c1}       ${c3}███████ ███████        %s"
  3561. "${c1}       ${c3}  █████ █████${c2} █        %s"
  3562. "${c1}         █${c3} ███ ███  ${c2} █        %s"
  3563. "${c1}         █  ${c3}  █     ${c2} █        %s"
  3564. "${c1}         █    ${c3}█     ${c2} █        %s"
  3565. "${c1}         █    ${c3}█     ${c2} █        %s")
  3566.         ;;
  3567.  
  3568.  
  3569.                 "CentOS")
  3570.                         if [[ "$no_color" != "1" ]]; then
  3571.                                 c1=$(getColor 'yellow') # White
  3572.                                 c2=$(getColor 'light green') # White
  3573.                                 c3=$(getColor 'light blue') # White
  3574.                                 c4=$(getColor 'light purple') # White
  3575.                                 c5=$(getColor 'white') # White
  3576.                         fi
  3577.                         if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3578.                         startline="0"
  3579.                         fulloutput=("${c1}                   ..                    %s"
  3580. "${c1}                 .PLTJ.                 %s"
  3581. "${c1}                <><><><>                %s"
  3582. "       ${c2}KKSSV' 4KKK ${c1}LJ${c4} KKKL.'VSSKK       %s"
  3583. "       ${c2}KKV' 4KKKKK ${c1}LJ${c4} KKKKAL 'VKK       %s"
  3584. "       ${c2}V' ' 'VKKKK ${c1}LJ${c4} KKKKV' ' 'V       %s"
  3585. "       ${c2}.4MA.' 'VKK ${c1}LJ${c4} KKV' '.4Mb.       %s"
  3586. "${c4}     . ${c2}KKKKKA.' 'V ${c1}LJ${c4} V' '.4KKKKK ${c3}.     %s"
  3587. "${c4}   .4D ${c2}KKKKKKKA.'' ${c1}LJ${c4} ''.4KKKKKKK ${c3}FA.   %s"
  3588. "${c4}  <QDD ++++++++++++  ${c3}++++++++++++ GFD>  %s"
  3589. "${c4}   'VD ${c3}KKKKKKKK'.. ${c2}LJ ${c1}..'KKKKKKKK ${c3}FV    %s"
  3590. "${c4}     ' ${c3}VKKKKK'. .4 ${c2}LJ ${c1}K. .'KKKKKV ${c3}'     %s"
  3591. "       ${c3} 'VK'. .4KK ${c2}LJ ${c1}KKA. .'KV'        %s"
  3592. "       ${c3}A. . .4KKKK ${c2}LJ ${c1}KKKKA. . .4       %s"
  3593. "       ${c3}KKA. 'KKKKK ${c2}LJ ${c1}KKKKK' .4KK       %s"
  3594. "       ${c3}KKSSA. VKKK ${c2}LJ ${c1}KKKV .4SSKK       %s"
  3595. "${c2}                <><><><>                 %s"
  3596. "${c2}                 'MKKM'                  %s"
  3597. "${c2}                   ''")
  3598.         ;;
  3599.  
  3600.  
  3601.         "Jiyuu Linux")
  3602.             if [[ "$no_color" != "1" ]]; then
  3603.                 c1=$(getColor 'light blue') # Light Blue
  3604.             fi
  3605.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3606.             startline="0"
  3607.             fulloutput=("${c1}+++++++++++++++++++++++.        %s"
  3608. "${c1}ss:-......-+so/:----.os-       %s"
  3609. "${c1}ss        +s/        os-       %s"
  3610. "${c1}ss       :s+         os-       %s"
  3611. "${c1}ss       os.         os-       %s"
  3612. "${c1}ss      .so          os-       %s"
  3613. "${c1}ss      :s+          os-       %s"
  3614. "${c1}ss      /s/          os-       %s"
  3615. "${c1}ss      /s:          os-       %s"
  3616. "${c1}ss      +s-          os-       %s"
  3617. "${c1}ss-.....os:..........os-       %s"
  3618. "${c1}++++++++os+++++++++oooo.       %s"
  3619. "${c1}        os.     ./oo/.         %s"
  3620. "${c1}        os.   ./oo:            %s"
  3621. "${c1}        os. ./oo:              %s"
  3622. "${c1}        os oo+-                %s"
  3623. "${c1}        os+-                   %s"
  3624. "${c1}        /.                     %s")
  3625.         ;;
  3626.  
  3627.         "Antergos")
  3628.             if [[ "$no_color" != "1" ]]; then
  3629.                 c1=$(getColor 'blue') # Light Blue
  3630.                 c2=$(getColor 'light blue') # Light Blue
  3631.             fi
  3632.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3633.             startline="1"
  3634.             fulloutput=("${c1}               \`.-/::/-\`\`"
  3635. "${c1}            .-/osssssssso/.               %s"
  3636. "${c1}           :osyysssssssyyys+-            %s"
  3637. "${c1}        \`.+yyyysssssssssyyyyy+.          %s"
  3638. "${c1}       \`/syyyyyssssssssssyyyyys-\`        %s"
  3639. "${c1}      \`/yhyyyyysss${c2}++${c1}ssosyyyyhhy/\`        %s"
  3640. "${c1}     .ohhhyyyys${c2}o++/+o${c1}so${c2}+${c1}syy${c2}+${c1}shhhho.      %s"
  3641. "${c1}    .shhhhys${c2}oo++//+${c1}sss${c2}+++${c1}yyy${c2}+s${c1}hhhhs.     %s"
  3642. "${c1}   -yhhhhs${c2}+++++++o${c1}ssso${c2}+++${c1}yyy${c2}s+o${c1}hhddy:    %s"
  3643. "${c1}  -yddhhy${c2}o+++++o${c1}syyss${c2}++++${c1}yyy${c2}yooy${c1}hdddy-   %s"
  3644. "${c1} .yddddhs${c2}o++o${c1}syyyyys${c2}+++++${c1}yyhh${c2}sos${c1}hddddy\`  %s"
  3645. "${c1}\`odddddhyosyhyyyyyy${c2}++++++${c1}yhhhyosddddddo  %s"
  3646. "${c1}.dmdddddhhhhhhhyyyo${c2}+++++${c1}shhhhhohddddmmh. %s"
  3647. "${c1}ddmmdddddhhhhhhhso${c2}++++++${c1}yhhhhhhdddddmmdy %s"
  3648. "${c1}dmmmdddddddhhhyso${c2}++++++${c1}shhhhhddddddmmmmh %s"
  3649. "${c1}-dmmmdddddddhhys${c2}o++++o${c1}shhhhdddddddmmmmd- %s"
  3650. "${c1} .smmmmddddddddhhhhhhhhhdddddddddmmmms. %s"
  3651. "${c1}   \`+ydmmmdddddddddddddddddddmmmmdy/.     %s"
  3652. "${c1}      \`.:+ooyyddddddddddddyyso+:.\`")
  3653.         ;;
  3654.  
  3655.         "Void")
  3656.             if [[ "$no_color" != "1" ]]; then
  3657.                 c1=$(getColor 'green')       # Dark Green
  3658.                 c2=$(getColor 'light green') # Light Green
  3659.                 c3=$(getColor 'dark grey')   # Black
  3660.             fi
  3661.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  3662.             startline="0"
  3663.             fulloutput=("${c2}                 __.;=====;.__                  %s"
  3664. "${c2}             _.=+==++=++=+=+===;.              %s"
  3665. "${c2}              -=+++=+===+=+=+++++=_            %s"
  3666. "${c1}         .     "${c2}"-=:\`\`     \`--==+=++==.          %s"
  3667. "${c1}        _vi,    "${c2}"\`            --+=++++:         %s"
  3668. "${c1}       .uvnvi.       "${c2}"_._       -==+==+.        %s"
  3669. "${c1}      .vvnvnI\`    "${c2}".;==|==;.     :|=||=|.       %s"
  3670. "${c3} +QmQQm"${c1}"pvvnv; "${c3}"_yYsyQQWUUQQQm #QmQ#"${c2}":"${c3}"QQQWUV\$QQmL %s"
  3671. "${c3}  -QQWQW"${c1}"pvvo"${c3}"wZ?.wQQQE"${c2}"==<"${c3}"QWWQ/QWQW.QQWW"${c2}"(: "${c3}"jQWQE %s"
  3672. "${c3}   -\$QQQQmmU'  jQQQ@"${c2}"+=<"${c3}"QWQQ)mQQQ.mQQQC"${c2}"+;${c3}jWQQ@' %s"
  3673. "${c3}    -\$WQ8Y"${c1}"nI:   ${c3}QWQQwgQQWV"${c2}"\`"${c3}"mWQQ.jQWQQgyyWW@!   %s"
  3674. "${c1}      -1vvnvv.     "${c2}"\`~+++\`        ++|+++        %s"
  3675. "${c1}       +vnvnnv,                 "${c2}"\`-|===         %s"
  3676. "${c1}        +vnvnvns.           .      "${c2}":=-         %s"
  3677. "${c1}         -Invnvvnsi..___..=sv=.     "${c2}"\`          %s"
  3678. "${c1}           +Invnvnvnnnnnnnnvvnn;.              %s"
  3679. "${c1}             ~|Invnvnvvnvvvnnv}+\`              %s"
  3680. "${c1}                -~\"|{*l}*|\"\"~                  %s")
  3681.         ;;
  3682.  
  3683.         "NixOS")
  3684.             if [[ "$no_color" != "1" ]]; then
  3685.                 c1=$(getColor 'purple')
  3686.                 c2=$(getColor 'light blue')
  3687.             fi
  3688.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3689.             startline="0"
  3690.             fulloutput=("${c2}                  .:.                   %s"
  3691. "${c2}                  :::                  %s"
  3692. "${c2}          ...     :::      ${c1}.:.         %s"
  3693. "${c2}          ':::::. :::      ${c1}:::         %s"
  3694. "${c1}  ...         ${c2}'::::::      ${c1}:::     ..  %s"
  3695. "${c1}   ::::.       ..${c2}':::::.   ${c1}:::  .::::' %s"
  3696. "${c1}     ''::::..::::''  ${c2}'':::.${c1}::::::''    %s"
  3697. "${c1}       .::::${c2}.${c1}''          ${c2}':${c1}:::'        %s"
  3698. "${c1}    .:::::${c2}:::              ${c1}:::         %s"
  3699. "${c1}  .:::'   ${c2}:::              ${c1}:::  ${c2}..:::  %s"
  3700. "${c1}  ''      ${c2}:::              ${c1}:${c2}.:::::''   %s"
  3701. "${c2}         .:::${c1}:.          ${c2}.:::::'       %s"
  3702. "${c2}     ..::::::${c1}'::::.  ${c2}.:::::''::::..    %s"
  3703. "${c2}   ::::'  :::   ${c1}'::::${c2}':'        ${c2}'::::. %s"
  3704. "${c2}  '''     :::     ${c1}:::::::.         ${c2}''' %s"
  3705. "${c2}          :::     ${c1}:::  ':::::.         %s"
  3706. "${c2}          :::     ${c1}:::      '''         %s"
  3707. "${c2}           '      ${c1}:::                  %s"
  3708. "${c1}                  :::                  %s"
  3709. "${c1}                   '                   %s")
  3710.         ;;
  3711.  
  3712.         *)
  3713.             if [ "$(echo "${kernel}" | grep 'Linux' )" ]; then
  3714.                 if [[ "$no_color" != "1" ]]; then
  3715.                     c1=$(getColor 'white') # White
  3716.                     c2=$(getColor 'dark grey') # Light Gray
  3717.                     c3=$(getColor 'yellow') # Light Yellow
  3718.                 fi
  3719.                 if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  3720.                 startline="0"
  3721.                 fulloutput=("                             %s"
  3722. "                            %s"
  3723. "                            %s"
  3724. "$c2         #####$c0              %s"
  3725. "$c2        #######             %s"
  3726. "$c2        ##"$c1"O$c2#"$c1"O$c2##             %s"
  3727. "$c2        #$c3#####$c2#             %s"
  3728. "$c2      ##$c1##$c3###$c1##$c2##           %s"
  3729. "$c2     #$c1##########$c2##          %s"
  3730. "$c2    #$c1############$c2##         %s"
  3731. "$c2    #$c1############$c2###        %s"
  3732. "$c3   ##$c2#$c1###########$c2##$c3#        %s"
  3733. "$c3 ######$c2#$c1#######$c2#$c3######      %s"
  3734. "$c3 #######$c2#$c1#####$c2#$c3#######      %s"
  3735. "$c3   #####$c2#######$c3#####        %s"
  3736. "                            %s"
  3737. "                            %s"
  3738. "                            %s")
  3739.  
  3740.             elif [[ "$(echo "${kernel}" | grep 'GNU' )" || "$(echo "${kernel}" | grep 'Hurd' )" || "${OSTYPE}" == "gnu" ]]; then
  3741.                 startline="0"
  3742.                 fulloutput=(
  3743. "    _-\`\`\`\`\`-,           ,- '- .       %s"
  3744. "   .'   .- - |          | - -.  \`.   %s"
  3745. "  /.'  /                     \`.   \\  %s"
  3746. " :/   :      _...   ..._      \`\`   : %s"
  3747. " ::   :     /._ .\`:'_.._\\.    ||   : %s"
  3748. " ::    \`._ ./  ,\`  :    \\ . _.''   . %s"
  3749. " \`:.      /   |  -.  \\-. \\\\\_      /  %s"
  3750. "   \\:._ _/  .'   .@)  \\@) \` \`\\ ,.'   %s"
  3751. "      _/,--'       .- .\\,-.\`--\`.     %s"
  3752. "        ,'/''     (( \\ \`  )          %s"
  3753. "         /'/'  \\    \`-'  (           %s"
  3754. "          '/''  \`._,-----'           %s"
  3755. "           ''/'    .,---'            %s"
  3756. "            ''/'      ;:             %s"
  3757. "              ''/''  ''/             %s"
  3758. "                ''/''/''             %s"
  3759. "                  '/'/'              %s"
  3760. "                   \`;                %s")
  3761. # Source: https://www.gnu.org/graphics/alternative-ascii.en.html
  3762. # Copyright (C) 2003, Vijay Kumar
  3763. # Permission is granted to copy, distribute and/or modify this image under the
  3764. # terms of the GNU General Public License as published by the Free Software
  3765. # Foundation; either version 2 of the License, or (at your option) any later
  3766. # version.
  3767.  
  3768.             else
  3769.                 if [[ "$no_color" != "1" ]]; then
  3770.                     c1=$(getColor 'light green') # Light Green
  3771.                 fi
  3772.                 if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3773.                 startline="0"
  3774.                 fulloutput=("                                             %s"
  3775.   "                                            %s"
  3776. "$c1 UUU     UUU NNN      NNN IIIII XXX     XXXX%s"
  3777. "$c1 UUU     UUU NNNN     NNN  III    XX   xXX  %s"
  3778. "$c1 UUU     UUU NNNNN    NNN  III     XX xXX   %s"
  3779. "$c1 UUU     UUU NNN NN   NNN  III      XXXX    %s"
  3780. "$c1 UUU     UUU NNN  NN  NNN  III      xXX     %s"
  3781. "$c1 UUU     UUU NNN   NN NNN  III     xXXXX    %s"
  3782. "$c1 UUU     UUU NNN    NNNNN  III    xXX  XX   %s"
  3783. "$c1  UUUuuuUUU  NNN     NNNN  III   xXX    XX  %s"
  3784. "$c1    UUUUU    NNN      NNN IIIII xXXx    xXXx%s"
  3785.   "                                            %s"
  3786.   "                                            %s"
  3787.   "                                            %s"
  3788.   "                                            %s")
  3789.             fi
  3790.         ;;
  3791.     esac
  3792.  
  3793.  
  3794.     # Truncate lines based on terminal width.
  3795.     if [ "$truncateSet" == "Yes" ]; then
  3796.         for ((i=0; i<${#fulloutput[@]}; i++)); do
  3797.             my_out=$(printf "${fulloutput[i]}$c0\n" "${out_array}")
  3798.             my_out_full=$(echo "$my_out" | cat -v)
  3799.             termWidth=$(tput cols)
  3800.             SHOPT_EXTGLOB_STATE=$(shopt -p extglob)
  3801.             read SHOPT_CMD SHOPT_STATE SHOPT_OPT <<< ${SHOPT_EXTGLOB_STATE}
  3802.             if [[ ${SHOPT_STATE} == "-u" ]]; then
  3803.                 shopt -s extglob
  3804.             fi
  3805.  
  3806.             stringReal="${my_out_full//\^\[\[@([0-9]|[0-9];[0-9][0-9])m}"
  3807.  
  3808.             if [[ ${SHOPT_STATE} == "-u" ]]; then
  3809.                 shopt -u extglob
  3810.             fi
  3811.  
  3812.             if [[ "${#stringReal}" -le "${termWidth}" ]]; then
  3813.                 echo -e "${my_out}"$c0
  3814.             elif [[ "${#stringReal}" -gt "${termWidth}" ]]; then
  3815.                 ((NORMAL_CHAR_COUNT=0))
  3816.                 for ((j=0; j<=${#my_out_full}; j++)); do
  3817.                     if [[ "${my_out_full:${j}:3}" == '^[[' ]]; then
  3818.                         if [[ "${my_out_full:${j}:5}" =~ ^\^\[\[[[:digit:]]m$ ]]; then
  3819.                             if [[ ${j} -eq 0 ]]; then
  3820.                                 j=$((${j} + 5))
  3821.                             else
  3822.                                 j=$((${j} + 4))
  3823.                             fi
  3824.                         elif [[ "${my_out_full:${j}:8}" =~ ^\^\[\[[[:digit:]]\;[[:digit:]][[:digit:]]m ]]; then
  3825.                             if [[ ${j} -eq 0 ]]; then
  3826.                                 j=$((${j} + 8))
  3827.                             else
  3828.                                 j=$((${j} + 7))
  3829.                             fi
  3830.                         fi
  3831.                     else
  3832.                         ((NORMAL_CHAR_COUNT++))
  3833.                         if [[ ${NORMAL_CHAR_COUNT} -ge ${termWidth} ]]; then
  3834.                             echo -e "${my_out:0:$((${j} - 5))}"$c0
  3835.                             break 1
  3836.                         fi
  3837.                     fi
  3838.                 done
  3839.             fi
  3840.  
  3841.             if [[ "$i" -ge "$startline" ]]; then
  3842.                 unset out_array[0]
  3843.                 out_array=( "${out_array[@]}" )
  3844.             fi
  3845.         done
  3846.  
  3847.     elif [[ "$portraitSet" = "Yes" ]]; then
  3848.         for ((i=0; $i<${#fulloutput[*]}; i++)); do
  3849.             printf "${fulloutput[$i]}$c0\n"
  3850.         done
  3851.  
  3852.             printf "\n"
  3853.  
  3854.         for ((i=0; $i<${#fulloutput[*]}; i++)); do
  3855.             [[ -z "$out_array" ]] && continue
  3856.             printf "%s\n" "${out_array}"
  3857.                     unset out_array[0]
  3858.             out_array=( "${out_array[@]}" )
  3859.         done
  3860.  
  3861.     elif [[ "$display_logo" == "Yes" ]]; then
  3862.         for ((i=0; i<${#fulloutput[*]}; i++)); do
  3863.             printf "${fulloutput[i]}\n"
  3864.         done
  3865.  
  3866.     else
  3867.         #n=${#fulloutput[*]}
  3868.         for ((i=0; i<${#fulloutput[*]}; i++)); do
  3869.             # echo "${out_array[@]}"
  3870.             febreeze=$(awk 'BEGIN{srand();print int(rand()*(1000-1))+1 }')
  3871.             if [[ "${febreeze}" == "411" || "${febreeze}" == "188" || "${febreeze}" == "15" || "${febreeze}" == "166" || "${febreeze}" == "609" ]]; then
  3872.                 f_size=${#fulloutput[*]}
  3873.                 o_size=${#out_array[*]}
  3874.                 f_max=$(( 32768 / f_size * f_size ))
  3875.                 #o_max=$(( 32768 / o_size * o_size ))
  3876.                 for ((a=f_size-1; a>0; a--)); do
  3877.                     while (( (rand=$RANDOM) >= f_max )); do :; done
  3878.                     rand=$(( rand % (a+1) ))
  3879.                     tmp=${fulloutput[a]} fulloutput[a]=${fulloutput[rand]} fulloutput[rand]=$tmp
  3880.                 done
  3881.                 for ((b=o_size-1; b>0; b--)); do
  3882.                     rand=$(( rand % (b+1) ))
  3883.                     tmp=${out_array[b]} out_array[b]=${out_array[rand]} out_array[rand]=$tmp
  3884.                 done
  3885.             fi
  3886.             printf "${fulloutput[i]}$c0\n" "${out_array}"
  3887.             if [[ "$i" -ge "$startline" ]]; then
  3888.                 unset out_array[0]
  3889.                 out_array=( "${out_array[@]}" )
  3890.             fi
  3891.         done
  3892.     fi
  3893.     # Done with ASCII output
  3894. }
  3895.  
  3896. infoDisplay () {
  3897.     textcolor="\033[0m"
  3898.     [[ "$my_hcolor" ]] && textcolor="${my_hcolor}"
  3899.     #TODO: Centralize colors and use them across the board so we only change them one place.
  3900.     myascii="${distro}"
  3901.     [[ "${asc_distro}" ]] && myascii="${asc_distro}"
  3902.     case ${myascii} in
  3903.         "Arch Linux - Old"|"Fedora"|"Korora"|"Chapeau"|"Mandriva"|"Mandrake"|"Chakra"|"ChromeOS"|"Sabayon"|"Slackware"|"Mac OS X"|"Trisquel"|"Kali Linux"|"Jiyuu Linux"|"Antergos"|"KaOS"|"Logos"|"gNewSense"|"NixOS") labelcolor=$(getColor 'light blue');;
  3904.         "Arch Linux"|"Frugalware"|"Mageia"|"Deepin"|"CRUX") labelcolor=$(getColor 'light cyan');;
  3905.         "Mint"|"LMDE"|"openSUSE"|"LinuxDeepin"|"DragonflyBSD"|"Manjaro"|"Manjaro-tree"|"Android"|"Void") labelcolor=$(getColor 'light green');;
  3906.         "Ubuntu"|"FreeBSD"|"FreeBSD - Old"|"Debian"|"Raspbian"|"BSD"|"Red Hat Enterprise Linux"|"Peppermint"|"Cygwin"|"Fuduntu"|"NetBSD"|"Scientific Linux"|"DragonFlyBSD"|"BackTrack Linux") labelcolor=$(getColor 'light red');;
  3907.         "CrunchBang"|"SolusOS"|"Viperr"|"elementary"*) labelcolor=$(getColor 'dark grey');;
  3908.         "Gentoo"|"Parabola GNU/Linux-libre"|"Funtoo"|"Funtoo-text"|"BLAG") labelcolor=$(getColor 'light purple');;
  3909.         "Haiku") labelcolor=$(getColor 'green');;
  3910.         "CentOS"|*) labelcolor=$(getColor 'yellow');;
  3911.     esac
  3912.     [[ "$my_lcolor" ]] && labelcolor="${my_lcolor}"
  3913.     if [[ "$art" ]]; then source "$art"; fi
  3914.     if [[ "$no_color" == "1" ]]; then labelcolor=""; bold=""; c0=""; textcolor=""; fi
  3915.     # Some verbosity stuff
  3916.     [[ "$screenshot" == "1" ]] && verboseOut "Screenshot will be taken after info is displayed."
  3917.     [[ "$upload" == "1" ]] && verboseOut "Screenshot will be transferred/uploaded to specified location."
  3918.     #########################
  3919.     # Info Variable Setting #
  3920.     #########################
  3921.     if [[ "${distro}" == "Android" ]]; then
  3922.         myhostname=$(echo -e "${labelcolor}${hostname}"); out_array=( "${out_array[@]}" "$myhostname" )
  3923.         mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $distro_ver"); out_array=( "${out_array[@]}" "$mydistro" )
  3924.         mydevice=$(echo -e "$labelcolor Device:$textcolor $device"); out_array=( "${out_array[@]}" "$mydevice" )
  3925.         myrom=$(echo -e "$labelcolor ROM:$textcolor $rom"); out_array=( "${out_array[@]}" "$myrom" )
  3926.         mybaseband=$(echo -e "$labelcolor Baseband:$textcolor $baseband"); out_array=( "${out_array[@]}" "$mybaseband" )
  3927.         mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel"); out_array=( "${out_array[@]}" "$mykernel" )
  3928.         myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime"); out_array=( "${out_array[@]}" "$myuptime" )
  3929.         mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mycpu" )
  3930.         mygpu=$(echo -e "$labelcolor GPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mygpu" )
  3931.         mymem=$(echo -e "$labelcolor RAM:$textcolor $mem"); out_array=( "${out_array[@]}" "$mymem" )
  3932.     else
  3933.         if [[ "${display[@]}" =~ "host" ]]; then myinfo=$(echo -e "${labelcolor}${myUser}$textcolor${bold}@${c0}${labelcolor}${myHost}"); out_array=( "${out_array[@]}" "$myinfo" ); ((display_index++)); fi
  3934.         if [[ "${display[@]}" =~ "distro" ]]; then
  3935.             if [ "$distro" == "Mac OS X" ]; then
  3936.                 sysArch=`str1=$(ioreg -l -p IODeviceTree | grep firmware-abi);echo ${str1: -4: 2}bit`
  3937.                 prodVers=`prodVers=$(sw_vers|grep ProductVersion);echo ${prodVers:15}`
  3938.                 buildVers=`buildVers=$(sw_vers|grep BuildVersion);echo ${buildVers:14}`
  3939.                 if [ -n "$distro_more" ]; then mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more $sysArch")
  3940.                 else mydistro=$(echo -e "$labelcolor OS:$textcolor $sysArch $distro $prodVers $buildVers"); fi
  3941.             elif [[ "$distro" == "Cygwin" ]]; then
  3942.                 distro=$(wmic os get name | head -2 | tail -1)
  3943.                 distro=$(expr match "$distro" '\(Microsoft Windows [A-Za-z0-9.]\+\)')
  3944.                 sysArch=$(wmic os get OSArchitecture | head -2 | tail -1 | tr -d '\r ')
  3945.                 mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch")
  3946.             else
  3947.                 if [ -n "$distro_more" ]; then mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more")
  3948.                 else mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch"); fi
  3949.             fi
  3950.             out_array=( "${out_array[@]}" "$mydistro" )
  3951.             ((display_index++))
  3952.         fi
  3953.         if [[ "${display[@]}" =~ "kernel" ]]; then mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel"); out_array=( "${out_array[@]}" "$mykernel" ); ((display_index++)); fi
  3954.         if [[ "${display[@]}" =~ "uptime" ]]; then myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime"); out_array=( "${out_array[@]}" "$myuptime" ); ((display_index++)); fi
  3955.         if [[ "${display[@]}" =~ "pkgs" ]]; then mypkgs=$(echo -e "$labelcolor Packages:$textcolor $pkgs"); out_array=( "${out_array[@]}" "$mypkgs" ); ((display_index++)); fi
  3956.         if [[ "${display[@]}" =~ "shell" ]]; then myshell=$(echo -e "$labelcolor Shell:$textcolor $myShell"); out_array=( "${out_array[@]}" "$myshell" ); ((display_index++)); fi
  3957.         if [[ -n "$DISPLAY" || "$distro" == "Mac OS X" ]]; then
  3958.             if [ -n "${xResolution}" ]; then
  3959.                 if [[ "${display[@]}" =~ "res" ]]; then myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution"); out_array=( "${out_array[@]}" "$myres" ); ((display_index++)); fi
  3960.             fi
  3961.             if [[ "${display[@]}" =~ "de" ]]; then
  3962.                 if [[ "${DE}" != "Not Present" ]]; then
  3963.                     myde=$(echo -e "$labelcolor DE:$textcolor $DE"); out_array=( "${out_array[@]}" "$myde" ); ((display_index++))
  3964.                 fi
  3965.             fi
  3966.             if [[ "${display[@]}" =~ "wm" ]]; then mywm=$(echo -e "$labelcolor WM:$textcolor $WM"); out_array=( "${out_array[@]}" "$mywm" ); ((display_index++)); fi
  3967.             if [[ "${display[@]}" =~ "wmtheme" ]]; then
  3968.                     if [[ "${Win_theme}" == "Not Applicable" || "${Win_theme}" == "Not Found" ]]; then
  3969.                         :
  3970.                     else
  3971.                         mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme"); out_array=( "${out_array[@]}" "$mywmtheme" ); ((display_index++)); fi
  3972.                     fi
  3973.             if [[ "${display[@]}" =~ "gtk" ]]; then
  3974.                 if [ "$distro" == "Mac OS X" ]; then
  3975.                     if [[ "$gtkFont" != "Not Applicable" && "$gtkFont" != "Not Found" ]]; then
  3976.                         if [ -n "$gtkFont" ]; then
  3977.                             myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont"); out_array=( "${out_array[@]}" "$myfont" ); ((display_index++))
  3978.                         fi
  3979.                     fi
  3980.                 else
  3981.                     if [[ "$gtk2Theme" != "Not Applicable" && "$gtk2Theme" != "Not Found" ]]; then
  3982.                         if [ -n "$gtk2Theme" ]; then
  3983.                             mygtk2="${gtk2Theme} [GTK2]"
  3984.                         fi
  3985.                     fi
  3986.                     if [[ "$gtk3Theme" != "Not Applicable" && "$gtk3Theme" != "Not Found" ]]; then
  3987.                         if [ -n "$mygtk2" ]; then
  3988.                             mygtk3=", ${gtk3Theme} [GTK3]"
  3989.                         else
  3990.                             mygtk3="${gtk3Theme} [GTK3]"
  3991.                         fi
  3992.                     fi
  3993.                     if [[ "$gtk_2line" == "yes" ]]; then
  3994.                         mygtk2=$(echo -e "$labelcolor GTK2 Theme:$textcolor $gtk2Theme"); out_array=( "${out_array[@]}" "$mygtk2" ); ((display_index++))
  3995.                         mygtk3=$(echo -e "$labelcolor GTK3 Theme:$textcolor $gtk3Theme"); out_array=( "${out_array[@]}" "$mygtk3" ); ((display_index++))
  3996.                     else
  3997.                         if [[ "$gtk2Theme" == "$gtk3Theme" ]]; then
  3998.                             if [[ "$gtk2Theme" != "Not Applicable" && "$gtk2Theme" != "Not Found" ]]; then
  3999.                                 mygtk=$(echo -e "$labelcolor GTK Theme:$textcolor ${gtk2Theme} [GTK2/3]"); out_array=( "${out_array[@]}" "$mygtk" ); ((display_index++))
  4000.                             fi
  4001.                         else
  4002.                             mygtk=$(echo -e "$labelcolor GTK Theme:$textcolor ${mygtk2}${mygtk3}"); out_array=( "${out_array[@]}" "$mygtk" ); ((display_index++))
  4003.                         fi
  4004.                     fi
  4005.                     if [[ "$gtkIcons" != "Not Applicable" && "$gtkIcons" != "Not Found" ]]; then
  4006.                         if [ -n "$gtkIcons" ]; then
  4007.                             myicons=$(echo -e "$labelcolor Icon Theme:$textcolor $gtkIcons"); out_array=( "${out_array[@]}" "$myicons" ); ((display_index++))
  4008.                         fi
  4009.                     fi
  4010.                     if [[ "$gtkFont" != "Not Applicable" && "$gtkFont" != "Not Found" ]]; then
  4011.                         if [ -n "$gtkFont" ]; then
  4012.                             myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont"); out_array=( "${out_array[@]}" "$myfont" ); ((display_index++))
  4013.                         fi
  4014.                     fi
  4015.                     # [ "$gtkBackground" ] && mybg=$(echo -e "$labelcolor BG:$textcolor $gtkBackground"); out_array=( "${out_array[@]}" "$mybg" ); ((display_index++))
  4016.                 fi
  4017.             fi
  4018.         elif [[ "$fake_distro" == "Cygwin" ]]; then
  4019.             if [[ "${display[@]}" =~ "res" && -n "$xResolution" ]]; then myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution"); out_array=( "${out_array[@]}" "$myres" ); ((display_index++)); fi
  4020.             if [[ "${display[@]}" =~ "de" ]]; then
  4021.                 if [[ "${DE}" != "Not Present" ]]; then
  4022.                     myde=$(echo -e "$labelcolor DE:$textcolor $DE"); out_array=( "${out_array[@]}" "$myde" ); ((display_index++))
  4023.                 fi
  4024.             fi
  4025.             if [[ "${display[@]}" =~ "wm" ]]; then mywm=$(echo -e "$labelcolor WM:$textcolor $WM"); out_array=( "${out_array[@]}" "$mywm" ); ((display_index++)); fi
  4026.             if [[ "${display[@]}" =~ "wmtheme" ]]; then
  4027.                 if [[ "${Win_theme}" == "Not Applicable" || "${Win_theme}" == "Not Found" ]]; then
  4028.                     :
  4029.                 else
  4030.                     mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme"); out_array=( "${out_array[@]}" "$mywmtheme" ); ((display_index++))
  4031.                 fi
  4032.             fi
  4033.         fi
  4034.         [[ "${fake_distro}" != "Cygwin" ]] && if [[ "${display[@]}" =~ "disk" ]]; then mydisk=$(echo -e "$labelcolor Disk:$textcolor $diskusage"); out_array=( "${out_array[@]}" "$mydisk" ); ((display_index++)); fi
  4035.         if [[ "${display[@]}" =~ "cpu" ]]; then mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mycpu" ); ((display_index++)); fi
  4036.         if [[ "${display[@]}" =~ "gpu" ]] && [[ "$gpu" != "Not Found" ]]; then mygpu=$(echo -e "$labelcolor GPU:$textcolor $gpu"); out_array=( "${out_array[@]}" "$mygpu" ); ((display_index++)); fi
  4037.         if [[ "${display[@]}" =~ "mem" ]]; then mymem=$(echo -e "$labelcolor RAM:$textcolor $mem"); out_array=( "${out_array[@]}" "$mymem" ); ((display_index++)); fi
  4038.     fi
  4039.     if [[ "$display_type" == "ASCII" ]]; then
  4040.         asciiText
  4041.     else
  4042.         if [[ "${display[@]}" =~ "host" ]]; then echo -e " $myinfo"; fi
  4043.         if [[ "${display[@]}" =~ "distro" ]]; then echo -e "$mydistro"; fi
  4044.         if [[ "${display[@]}" =~ "kernel" ]]; then echo -e "$mykernel"; fi
  4045.         if [[ "${distro}" == "Android" ]]; then
  4046.             echo -e "$mydevice"
  4047.             echo -e "$myrom"
  4048.             echo -e "$mybaseband"
  4049.             echo -e "$mykernel"
  4050.             echo -e "$myuptime"
  4051.             echo -e "$mycpu"
  4052.             echo -e "$mymem"
  4053.         else
  4054.             if [[ "${display[@]}" =~ "uptime" ]]; then echo -e "$myuptime"; fi
  4055.             if [[ "${display[@]}" =~ "pkgs" ]]; then echo -e "$mypkgs"; fi
  4056.             if [[ "${display[@]}" =~ "shell" ]]; then echo -e "$myshell"; fi
  4057.             if [[ "${display[@]}" =~ "res" ]]; then echo -e "$myres"; fi
  4058.             if [[ "${display[@]}" =~ "de" ]]; then
  4059.                 if [[ "${DE}" != "Not Present" ]]; then echo -e "$myde"; fi
  4060.             fi
  4061.             if [[ "${display[@]}" =~ "wm" ]]; then
  4062.                 echo -e "$mywm"
  4063.                 if [[ "${Win_theme}" != "Not Applicable" && "${Win_theme}" != "Not Found" ]]; then
  4064.                     echo -e "$mywmtheme"
  4065.                 fi
  4066.             fi
  4067.             if [[ "${display[@]}" =~ "gtk" ]]; then
  4068.                 echo -e "$mygtk2"
  4069.                 echo -e "$mygtk3"
  4070.                 echo -e "$myicons"
  4071.                 echo -e "$myfont"
  4072.             fi
  4073.             if [[ "${display[@]}" =~ "disk" ]]; then echo -e "$mydisk"; fi
  4074.             if [[ "${display[@]}" =~ "cpu" ]]; then echo -e "$mycpu"; fi
  4075.             if [[ "${display[@]}" =~ "gpu" ]]; then echo -e "$mygpu"; fi
  4076.             if [[ "${display[@]}" =~ "mem" ]]; then echo -e "$mymem"; fi
  4077.         fi
  4078.     fi
  4079. }
  4080.  
  4081. ##################
  4082. # Let's Do This!
  4083. ##################
  4084.  
  4085. if [[ -f "$HOME/.screenfetchOR" ]]; then
  4086.    source $HOME/.screenfetchOR
  4087. fi
  4088.  
  4089.  
  4090. if [[ "$overrideDisplay" ]]; then
  4091.     verboseOut "Found 'd' flag in syntax. Overriding display..."
  4092.     OLDIFS=$IFS
  4093.     IFS=';'
  4094.     for i in ${overrideDisplay}; do
  4095.         modchar="${i:0:1}"
  4096.         if [[ "${modchar}" == "-" ]]; then
  4097.             i=${i/${modchar}}
  4098.             _OLDIFS=IFS
  4099.             IFS=,
  4100.             for n in $i; do
  4101.                 if [[ ! "${display[@]}" =~ "$n" ]]; then
  4102.                     echo "The var $n is not currently being displayed."
  4103.                 else
  4104.                     display=( "${display[@]/${n}}" )
  4105.                 fi
  4106.             done
  4107.             IFS=$_OLDIFS
  4108.         elif [[ "${modchar}" == "+" ]]; then
  4109.             i=${i/${modchar}}
  4110.                 _OLDIFS=IFS
  4111.                 IFS=,
  4112.                 for n in $i; do
  4113.                 if [[ "${valid_display[@]}" =~ "$n" ]]; then
  4114.                     if [[ "${display[@]}" =~ "$n" ]]; then
  4115.                         echo "The $n var is already being displayed."
  4116.                     else
  4117.                                 display+=($n)
  4118.                     fi
  4119.                 else
  4120.                     echo "The var $n is not a valid display var."
  4121.                 fi
  4122.                 done
  4123.                 IFS=$_OLDIFS
  4124.         else
  4125.             IFS=$OLDIFS
  4126.             i="${i//,/ }"
  4127.             display=( $i )
  4128.         fi
  4129.     done
  4130.     IFS=$OLDIFS
  4131. fi
  4132.  
  4133. # Check for android
  4134. #if type -p getprop >/dev/null 2>&1; then
  4135. #   distro="Android"
  4136. #   detectmem
  4137. #   detectuptime
  4138. #   detectkernel
  4139. #   detectdroid
  4140. #   infoDisplay
  4141. #   exit 0
  4142. #fi
  4143.  
  4144. for i in "${display[@]}"; do
  4145.     if [[ ! "$i" == "" ]]; then
  4146.         if [[ $i =~ wm ]]; then
  4147.              ! [[ $WM  ]] && detectwm;
  4148.              ! [[ $Win_theme ]] && detectwmtheme;
  4149.         else
  4150.             if [[ "${display[*]}" =~ "$i" ]]; then
  4151.                 if [[ "$errorSuppress" == "1" ]]; then detect${i} 2>/dev/null
  4152.                 else
  4153.                     exec 3> >(stderrOut)
  4154.                     detect${i} 2>&3
  4155.                     exec 3>&-
  4156.                 fi
  4157.             fi
  4158.         fi
  4159.     fi
  4160. done
  4161.  
  4162. infoDisplay
  4163. [ "$screenshot" == "1" ] && takeShot
  4164. [ "$exportTheme" == "1" ] && themeExport
  4165.  
  4166. exit 0
RAW Paste Data