Advertisement
Dj_Dexter

screenfetch-dev

Oct 16th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 125.19 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. # screenFetch
  4.  
  5. # Script to fetch system and theme settings for screenshots in most mainstream
  6. # Linux distributions.
  7.  
  8. # Copyright (c) 2010-2012 Brett Bohnenkamper < kittykatt AT archlinux DOT us >
  9.  
  10. # Permission is hereby granted, free of charge, to any person obtaining a copy of this software
  11. # and associated documentation files (the "Software"), to deal in the Software without restriction,
  12. # including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
  13. # and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
  14. # subject to the following conditions:
  15.  
  16. # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
  17.  
  18. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  19. # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  20. # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  21. # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  22.  
  23. # Yes, I do realize some of this is horribly ugly coding. Any ideas/suggestions would be
  24. # appreciated by emailing me or by stopping by http://github.com/KittyKatt/screenFetch . You
  25. # could also drop in on my IRC network, SilverIRC, at irc://kittykatt.silverirc.com:6667/screenFetch
  26. # to put forth suggestions/ideas. Thank you.
  27. # Little edited by Dj_Dexter
  28. # Small "hack" to display another rare wms includes twm, vtwm, lwm, ctwm, 9wm/w9wm :)
  29.  
  30. scriptVersion="3.1.0"
  31.  
  32. ######################
  33. # Settings for fetcher
  34. ######################
  35.  
  36. # This setting controls what ASCII logo is displayed. Available: Arch Linux (Old and Current Logos), Linux Mint, Ubuntu, Crunchbang, Debian, Gentoo, Mandrake/Mandriva, Slackware, SUSE, Fedora, BSD, OS X and None
  37. # distro="Linux"
  38.  
  39. # 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.
  40. #display="distro host kernel uptime pkgs shell res de wm wmtheme gtk disk cpu gpu mem"
  41. display=( distro host kernel pkgs shell res de wm wmtheme gtk cpu gpu mem )
  42. # Display Type: ASCII or Text
  43. display_type="ASCII"
  44.  
  45. # 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.
  46. # textcolor="\e[0m"
  47. # labelcolor="\e[1;34m"
  48.  
  49. # WM & DE process names
  50. # Removed WM's: compiz
  51. 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 ctwm 9wm w9wm vtwm twm lwm )
  52. denames=( gnome-session xfce-mcs-manage xfce4-session xfconfd ksmserver lxsession gnome-settings-daemon mate-session mate-settings-daemon Finder )
  53.  
  54. # Screenshot Settings
  55. # This setting lets the script know if you want to take a screenshot or not. 1=Yes 0=No
  56. screenshot=
  57. # You can specify a custom screenshot command here. Just uncomment and edit. Otherwise, we'll be using the default command: scrot -cd3.
  58. # screenCommand="scrot -cd5"
  59. hostshot=
  60. baseurl="http://www.example.com"
  61. serveraddr="www.example.com"
  62. scptimeout="20"
  63. serverdir="/path/to/directory"
  64. shotfile=$(printf "screenFetch-`date +'%Y-%m-%d_%H-%M-%S'`.png")
  65.  
  66. # Verbose Setting - Set to 1 for verbose output.
  67. verbosity=
  68.  
  69. #############################################
  70. #### CODE No need to edit past here CODE ####
  71. #############################################
  72.  
  73. #########################################
  74. # Static Variables and Common Functions #
  75. #########################################
  76. c0="\033[0m" # Reset Text
  77. bold="\033[1m" # Bold Text
  78. underline="\033[4m" # Underline Text
  79. display_index=0
  80.  
  81. # Static Color Definitions
  82. getColor() {
  83.     if [[ -n "$1" ]]; then
  84.         if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  85.             if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  86.                 tmp_color=${1,,}
  87.             else
  88.                 tmp_color="$(tr '[:upper:]' '[:lower:]' <<< ${1})"
  89.             fi
  90.         else
  91.             tmp_color="$(tr '[:upper:]' '[:lower:]' <<< ${1})"
  92.         fi
  93.         case "${tmp_color}" in
  94.             'black') color_ret='\033[30m';;
  95.             'red') color_ret='\033[31m';;
  96.             'green') color_ret='\033[32m';;
  97.             'brown') color_ret='\033[33m';;
  98.             'blue') color_ret='\033[34m';;
  99.             'purple') color_ret='\033[35m';;
  100.             'cyan') color_ret='\033[36m';;
  101.             'light grey') color_ret='\033[37m';;
  102.             'dark grey') color_ret='\033[1;30m';;
  103.             'light red') color_ret='\033[1;31m';;
  104.             'light green') color_ret='\033[1;32m';;
  105.             'yellow') color_ret='\033[1;33m';;
  106.             'light blue') color_ret='\033[1;34m';;
  107.             'light purple') color_ret='\033[1;35m';;
  108.             'light cyan') color_ret='\033[1;36m';;
  109.             'white') color_ret='\033[1;37m';;
  110.         esac
  111.         [[ -n "${color_ret}" ]] && echo "${color_ret}"
  112.     else
  113.         :
  114.     fi
  115. }
  116.  
  117. function verboseOut {
  118.     printf "\033[1;31m:: \033[0m$1\n"
  119. }
  120.  
  121. function errorOut {
  122.     printf "\033[1;37m[[ \033[1;31m! \033[1;37m]] \033[0m$1\n"
  123. }
  124.  
  125.  
  126. ####################
  127. #  Color Defines
  128. ####################
  129.  
  130. detectColors() {
  131.     my_colors=$(printf "$OPTARG" | sed 's/^,/na,/;s/,$/,na/;s/,/ /')
  132.     my_lcolor=$(printf "$my_colors" | awk -F' ' '{print $1}')
  133.     if [[ "$my_lcolor" != "na" ]]; then
  134.         if [[ $(tput colors) -eq "256" ]]; then my_lcolor="\033[38;5;${my_lcolor}m"
  135.         else
  136.             case $my_lcolor in
  137.                 0|00)  export my_lcolor=$(getColor 'black');;
  138.                 1|01)  export my_lcolor=$(getColor 'red');;
  139.                 2|02)  export my_lcolor=$(getColor 'green');;
  140.                 3|03)  export my_lcolor=$(getColor 'brown');;
  141.                 4|04)  export my_lcolor=$(getColor 'blue');;
  142.                 5|05)  export my_lcolor=$(getColor 'purple');;
  143.                 6|06)  export my_lcolor=$(getColor 'cyan');;
  144.                 7|07)  export my_lcolor=$(getColor 'light grey');;
  145.                 8|08)  export my_lcolor=$(getColor 'dark grey');;
  146.                 9|09)  export my_lcolor=$(getColor 'light red');;
  147.                 10) export my_lcolor=$(getColor 'light green');;
  148.                 11) export my_lcolor=$(getColor 'yellow');;
  149.                 12) export my_lcolor=$(getColor 'light blue');;
  150.                 13) export my_lcolor=$(getColor 'light purple');;
  151.                 14) export my_lcolor=$(getColor 'light cyan');;
  152.                 15) export my_lcolor=$(getColor 'white');;
  153.                 *) unset my_lcolor; continue ;;
  154.             esac
  155.         fi
  156.     else
  157.         unset my_lcolor
  158.     fi
  159.     my_hcolor=$(printf "$my_colors" | awk -F' ' '{print $2}')
  160.     if [[ "$my_hcolor" != "na" ]]; then
  161.         if [[ $(tput colors) -eq "256" ]]; then my_hcolor="\033[38;5;${my_hcolor}m"
  162.         else
  163.             case $my_hcolor in
  164.                 0|00)  export my_hcolor=$(getColor 'black');;
  165.                 1|01)  export my_hcolor=$(getColor 'red');;
  166.                 2|02)  export my_hcolor=$(getColor 'green');;
  167.                 3|03)  export my_hcolor=$(getColor 'brown');;
  168.                 4|04)  export my_hcolor=$(getColor 'blue');;
  169.                 5|05)  export my_hcolor=$(getColor 'purple');;
  170.                 6|06)  export my_hcolor=$(getColor 'cyan');;
  171.                 7|07)  export my_hcolor=$(getColor 'light grey');;
  172.                 8|08)  export my_hcolor=$(getColor 'dark grey');;
  173.                 9|09)  export my_hcolor=$(getColor 'light red');;
  174.                 10) export my_hcolor=$(getColor 'light green');;
  175.                 11) export my_hcolor=$(getColor 'yellow');;
  176.                 12) export my_hcolor=$(getColor 'light blue');;
  177.                 13) export my_hcolor=$(getColor 'light purple');;
  178.                 14) export my_hcolor=$(getColor 'light cyan');;
  179.                 15) export my_hcolor=$(getColor 'white');;
  180.                 *) unset my_hcolor; continue ;;
  181.             esac
  182.         fi
  183.     else
  184.         unset my_hcolor
  185.     fi
  186. }
  187.  
  188.  
  189. displayHelp() {
  190.     printf "${underline}Usage${c0}:\n"
  191.     printf "  screenFetch [OPTIONAL FLAGS]\n\n"
  192.     printf "screenFetch - a CLI Bash script to show system/theme info in screenshots.\n\n"
  193.     printf "${underline}Supported Distributions${c0}:      Arch Linux (Old and Current Logos), Linux Mint,\n"
  194.     printf "                  LMDE, Ubuntu, Crunchbang, Debian, Gentoo, Fedora, SolusOS,\n"
  195.     printf "                  Mandrake/Mandriva, Slackware, Frugalware, openSUSE, Mageia,\n"
  196.     printf "                  Peppermint, ParabolaGNU, Viperr, LinuxDeepin, Chakra, and FreeBSD, OpenBSD\n"
  197.     printf "${underline}Supported Desktop Managers${c0}:   KDE, GNOME, XFCE, and LXDE, and Not Present\n"
  198.     printf "${underline}Supported Window Managers${c0}:    PekWM, OpenBox, FluxBox, BlackBox, Xfwm4,\n"
  199.     printf "                  Metacity, StumpWM, KWin, IceWM, FVWM,\n"
  200.     printf "                  DWM, Awesome, XMonad, Musca, i3, WindowMaker,\n"
  201.     printf "                  Ratpoison, wmii, WMFS, ScrotWM, SpectrWM,\n"
  202.     printf "                  subtle, Emerald, E17 and Beryl.\n\n"
  203.     printf "${underline}Options${c0}:\n"
  204.     printf "   ${bold}-v${c0}                 Verbose output.\n"
  205.     printf "   ${bold}-o 'OPTIONS'${c0}       Allows for setting script variables on the\n"
  206.     printf "              command line. Must be in the following format...\n"
  207.     printf "              'OPTION1=\"OPTIONARG1\";OPTION2=\"OPTIONARG2\"'\n"
  208.     #echo -e "   ${bold}-d 'ARGUMENTS'${c0}     Allows for setting what information is displayed"
  209.     #echo -e "            on the command line. Format must be as follows:"
  210.     #echo -e "            OPTION,OPTION,OPTION,OPTION. Valid options are"
  211.     #echo -e "            host, distro, kernel, uptime, pkgs, shell, res, de, wm,"
  212.     #echo -e "            wmtheme, gtk, cpu, gpu, mem."
  213.     printf "   ${bold}-n${c0}                 Do not display ASCII distribution logo.\n"
  214.     printf "   ${bold}-N${c0}                 Strip all color from output.\n"
  215.     printf "   ${bold}-t${c0}                 Truncate output based on terminal width (Experimental!).\n"
  216.     printf "   ${bold}-s(m)${c0}              Using this flag tells the script that you want it\n"
  217.     printf "              to take a screenshot. Use the -m flag if you would like\n"
  218.     printf "              to move it to a new location afterwards.\n"
  219.     printf "   ${bold}-c string${c0}          You may change the outputted colors with -c. The format is\n"
  220.     printf "                      as follows: [0-9][0-9],[0-9][0-9]. The first argument controls the\n"
  221.     printf "                      ASCII logo colors and the label colors. The second argument\n"
  222.     printf "                      controls the colors of the information found. One argument may be\n"
  223.     printf "                      used without the other.\n"
  224.     printf "   ${bold}-S 'COMMAND'${c0}       Here you can specify a custom screenshot command for\n"
  225.     printf "              the script to execute. Surrounding quotes are required.\n"
  226.     printf "   ${bold}-D 'DISTRO'${c0}        Here you can specify your distribution for the script\n"
  227.     printf "              to use. Surrounding quotes are required.\n"
  228.     printf "   ${bold}-A 'DISTRO'${c0}        Here you can specify the distribution art that you want\n"
  229.     printf "              displayed. This is for when you want your distro\n"
  230.     printf "                      detected but want to display a different logo.\n"
  231.     printf "   ${bold}-E${c0}                 Suppress output of errors.\n"
  232.     printf "   ${bold}-V${c0}                 Display current script version.\n"
  233.     printf "   ${bold}-h${c0}                 Display this help.\n"
  234. }
  235.  
  236. #####################
  237. # Begin Flags Phase
  238. #####################
  239.  
  240. case $1 in
  241.     --help) displayHelp; exit 0;;
  242. esac
  243.        
  244.  
  245. while getopts ":hsmevVEnNtlS:A:D:o:Bc:d:" flags; do
  246.     case $flags in
  247.         h) displayHelp; exit 0;;
  248.         s) screenshot=1; continue;;
  249.         S) screenCommand=$OPTARG; continue;;
  250.         m) hostshot=1; continue;;
  251.         v) verbosity=1; continue;;
  252.         V)
  253.             printf $underline"screenFetch"$c0" - Version $scriptVersion\n"
  254.             printf "Created by and licensed to Brett Bohnenkamper ([email protected])\n"
  255.             printf "OS X porting done almost solely by shrx (http://shrx.github.com/) and Hu6.\n\n"
  256.             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"
  257.             exit 0
  258.         ;;
  259.         E) errorSuppress="1";;
  260.         D) distro=$OPTARG; continue;;
  261.         A) asc_distro=$OPTARG; continue;;
  262.         t) truncateSet="Yes";;
  263.         n) display_type="Text";;
  264.         o) overrideOpts=$OPTARG; continue;;
  265.         c) detectColors "$OPTARGS"; continue;;
  266.         # d) overrideDisplay=$OPTARG; continue;;
  267.         d) overrideDisplay=$OPTARG; continue;;
  268.         N) no_color='1';;
  269.         :) errorOut "Error: You're missing an argument somewhere. Exiting."; exit 1;;
  270.         ?) errorOut "Error: Invalid flag somewhere. Exiting."; exit 1;;
  271.         *) errorOut "Error"; exit 1;;
  272.     esac
  273. done
  274.  
  275. ###################
  276. # End Flags Phase
  277. ###################
  278.  
  279.  
  280. ####################
  281. # Override Options
  282. ####################
  283.  
  284. if [[ "$overrideOpts" ]]; then
  285.     [[ "$verbosity" -eq "1" ]] && verboseOut "Found 'o' flag in syntax. Overriding some script variables..."
  286.     OLD_IFS="$IFS"
  287.     IFS=";"
  288.     for overopt in "$overrideOpts"; do
  289.         eval "$overrideOpts"
  290.     done
  291.     IFS="$OLD_IFS"
  292. fi
  293.  
  294.  
  295. #########################
  296. # Begin Detection Phase
  297. #########################
  298.  
  299. # Distro Detection - Begin
  300. detectdistro () {
  301.     if [[ -z $distro ]]; then
  302.         distro="Unknown"
  303.  
  304.         # LSB Release Check
  305.         if type -p lsb_release >/dev/null 2>&1; then
  306.             # read distro_detect distro_release distro_codename <<< $(lsb_release -sirc)
  307.             distro_detect=( $(lsb_release -sirc) )
  308.             if [[ ${#distro_detect[@]} -eq 3 ]]; then
  309.                 distro_codename=${distro_detect[2]}
  310.                 distro_release=${distro_detect[1]}
  311.                 distro_detect=${distro_detect[0]}
  312.             else
  313.                 for ((i=0; i<${#distro_detect[@]}; i++)); do
  314.                     if [[ ${distro_detect[$i]} =~ ^[[:digit:]]+((.[[:digit:]]+|[[:digit:]]+|)+)$ ]]; then
  315.                         distro_release=${distro_detect[$i]}
  316.                         distro_codename=${distro_detect[@]:$(($i+1)):${#distro_detect[@]}+1}
  317.                         distro_detect=${distro_detect[@]:0:${i}}
  318.                         break 1
  319.                     elif [[ ${distro_detect[$i]} =~ [Nn]/[Aa] || ${distro_detect[$i]} == "rolling" ]]; then
  320.                         distro_release=${distro_detect[$i]}
  321.                         distro_codename=${distro_detect[@]:$(($i+1)):${#distro_detect[@]}+1}
  322.                         distro_detect=${distro_detect[@]:0:${i}}
  323.                         break 1
  324.                     fi
  325.                 done
  326.             fi
  327.  
  328.             if [[ "${distro_detect}" == "archlinux" || "${distro_detect}" == "Arch Linux" || "${distro_detect}" == "arch" || "${distro_detect}" == "archarm" ]]; then
  329.                 distro="Arch Linux"
  330.                 distro_release="n/a"
  331.             elif [[ "${distro_detect}" == "Chakra" ]]; then
  332.                 distro="Chakra"
  333.                 distro_release=null
  334.             elif [[ "${distro_detect}" == "Debian" ]]; then
  335.                 if [[ -f /etc/crunchbang-lsb-release || -f /etc/lsb-release-crunchbang ]]; then
  336.                     distro="CrunchBang"
  337.                     distro_release=$(awk -F'=' '/^DISTRIB_RELEASE=/ {print $2}' /etc/lsb-release-crunchbang)
  338.                     distro_codename=$(awk -F'=' '/^DISTRIB_DESCRIPTION=/ {print $2}' /etc/lsb-release-crunchbang)
  339.                 else
  340.                     distro="Debian"
  341.                 fi
  342.             elif [[ "${distro_detect}" == "elementary" || "${distro_detect}" == "elementary OS" ]]; then
  343.                 distro="elementary OS"
  344.             elif [[ "${distro_detect}" == "Fedora" ]]; then
  345.                 distro="Fedora"
  346.             elif [[ "${distro_detect}" == "frugalware" ]]; then
  347.                 distro="Frugalware"
  348.                 distro_codename=null
  349.                 distro_release=null
  350.             elif [[ "${distro_detect}" == "Fuduntu" ]]; then
  351.                 distro="Fuduntu"
  352.                 distro_codename=null
  353.             elif [[ "${distro_detect}" == "Gentoo" ]]; then
  354.                 if [[ "$(lsb_release -sd)" =~ "Funtoo" ]]; then
  355.                     distro="Funtoo"
  356.                 else
  357.                     distro="Gentoo"
  358.                 fi
  359.             elif [[ "${distro_detect}" == "LinuxDeepin" ]]; then
  360.                 distro="LinuxDeepin"
  361.                 distro_codename=null
  362.             elif [[ "${distro_detect}" == "Mageia" ]]; then
  363.                 distro="Mageia"
  364.             elif [[ "$distro_detect" == "MandrivaLinux" ]]; then
  365.                 distro="Mandriva"
  366.                 if [[ "${distro_codename}" == "turtle" ]]; then
  367.                     distro="Mandriva-${distro_release}"
  368.                     distro_codename=null
  369.                 elif [[ "${distro_codename}" == "Henry_Farman" ]]; then
  370.                     distro="Mandriva-${distro_release}"
  371.                     distro_codename=null
  372.                 elif [[ "${distro_codename}" == "Farman" ]]; then
  373.                     distro="Mandriva-${distro_release}"
  374.                     distro_codename=null
  375.                 elif [[ "${distro_codename}" == "Adelie" ]]; then
  376.                     distro="Mandriva-${distro_release}"
  377.                     distro_codename=null
  378.                 elif [[ "${distro_codename}" == "pauillac" ]]; then
  379.                     distro="Mandriva-${distro_release}"
  380.                     distro_codename=null
  381.                 fi
  382.             elif [[ "${distro_detect}" == "ManjaroLinux" ]]; then
  383.                 distro="Manjaro"
  384.             elif [[ "${distro_detect}" == "LinuxMint" ]]; then
  385.                 distro="Mint"
  386.                 if [[ "${distro_codename}" == "debian" ]]; then
  387.                     distro="LMDE"
  388.                     distro_codename=null
  389.                     distro_release=null
  390.                 fi
  391.             elif [[ "${distro_detect}" == "SUSE LINUX" || "${distro_detect}" == "openSUSE project" ]]; then
  392.                 distro="openSUSE"
  393.             elif [[ "${distro_detect}" == "ParabolaGNU/Linux-libre" ]]; then
  394.                 distro="ParabolaGNU/Linux-libre"
  395.             elif [[ "${distro_detect}" == "Peppermint" ]]; then
  396.                 distro="Peppermint"
  397.                 distro_codename=null
  398.             elif [[ "${distro_detect}" == "CentOS" || "${distro_detect}" =~ "RedHatEnterprise" ]]; then
  399.                 distro="Red Hat Linux"
  400.             elif [[ "${distro_detect}" == "Sabayon" ]]; then
  401.                 distro="Sabayon"
  402.             elif [[ "${distro_detect}" == "SolusOS" ]]; then
  403.                 distro="SolusOS"
  404.             elif [[ "${distro_detect}" == "Trisquel" ]]; then
  405.                 distro="Trisquel"
  406.             elif [[ "${distro_detect}" == "Ubuntu" ]]; then
  407.                 distro="Ubuntu"
  408.             elif [[ "${distro_detect}" == "Viperr" ]]; then
  409.                 distro="Viperr"
  410.                 distro_codename=null
  411.             fi
  412.             if [[ -n ${distro_release} && ${distro_release} != "n/a" ]]; then distro_more="$distro_release"; fi
  413.             if [[ -n ${distro_codename} && ${distro_codename} != "n/a" ]]; then distro_more="$distro_more $distro_codename"; fi
  414.             if [[ -n ${distro_more} ]]; then
  415.                 distro_more="${distro} ${distro_more}"
  416.             fi
  417.         fi
  418.  
  419.         # Existing File Check
  420.         if [ "$distro" == "Unknown" ]; then
  421.             if [ $(uname -o 2>/dev/null) ]; then
  422.                 if [ `uname -o` == "Cygwin" ]; then distro="Cygwin"; fake_distro="${distro}"; fi
  423.             fi
  424.             if [ -f /etc/os-release ]; then
  425.                 distrib_id=$(</etc/os-release);
  426.                 for l in $(echo $distrib_id); do
  427.                     if [[ ${l} =~ ^ID= ]]; then
  428.                         distrib_id=${l//*=}
  429.                         break 1
  430.                     fi
  431.                 done
  432.                 if [[ -n ${distrib_id} ]]; then
  433.                     if [[ -n ${BASH_VERSINFO} && ${BASH_VERSINFO} -ge 4 ]]; then
  434.                         distrib_id=$(for i in ${distrib_id}; do echo -n "${i^} "; done)
  435.                         distro=${distrib_id% }
  436.                         unset distrib_id
  437.                     else
  438.                         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)
  439.                         distro=${distrib_id% }
  440.                         unset distrib_id
  441.                     fi
  442.                 fi
  443.  
  444.                 # Hotfixes
  445.                 [[ "${distro}" == "Arch" ]] && distro="Arch Linux"
  446.                 [[ "${distro}" == "Archarm" || "${distro}" == "archarm" ]] && distro="Arch Linux"
  447.             fi
  448.  
  449.             if [[ "${distro}" == "Unknown" ]]; then
  450.                 if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  451.                     if [ -f /etc/lsb-release ]; then
  452.                         LSB_RELEASE=$(</etc/lsb-release)
  453.                         distro=$(echo ${LSB_RELEASE} | awk 'BEGIN {
  454.                             distro = "Unknown"
  455.                         }
  456.                         {
  457.                             if ($0 ~ /[Uu][Bb][Uu][Nn][Tt][Uu]/) {
  458.                                 distro = "Ubuntu"
  459.                                 exit
  460.                             }
  461.                             else if ($0 ~ /[Mm][Ii][Nn][Tt]/ && $0 ~ /[Dd][Ee][Bb][Ii][Aa][Nn]/) {
  462.                                 distro = "LMDE"
  463.                                 exit
  464.                             }
  465.                             else if ($0 ~ /[Mm][Ii][Nn][Tt]/) {
  466.                                 distro = "Mint"
  467.                                 exit
  468.                             }
  469.                         } END {
  470.                             print distro
  471.                         }')
  472.                     fi
  473.                 fi
  474.             fi
  475.  
  476.             if [[ "${distro}" == "Unknown" ]]; then
  477.                 if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  478.                     if [ -f /etc/arch-release ]; then distro="Arch Linux"
  479.                     elif [ -f /etc/chakra-release ]; then distro="Chakra"
  480.                     elif [ -f /etc/crunchbang-lsb-release ]; then distro="CrunchBang"
  481.                     elif [ -f /etc/debian_version ]; then distro="Debian"
  482.                     elif [ -f /etc/fedora-release ] && grep -q "Fedora" /etc/fedora-release; then distro="Fedora"
  483.                     elif [ -f /etc/frugalware-release ]; then distro="Frugalware"
  484.                     elif [ -f /etc/gentoo-release ]; then distro="Gentoo"
  485.                     elif [ -f /etc/mageia-release ]; then distro="Mageia"
  486.                     elif [ -f /etc/mandrake-release ]; then distro="Mandrake"
  487.                     elif [ -f /etc/mandriva-release ]; then distro="Mandriva"
  488.                     elif [ -f /etc/SuSE-release ]; then distro="openSUSE"
  489.                     elif [ -f /etc/redhat-release ] && grep -q "Red Hat" /etc/redhat-release; then distro="Red Hat Linux"
  490.                     elif [ -f /etc/slackware-version ]; then distro="Slackware"
  491.                     elif [ -f /usr/share/doc/tc/release.txt ]; then distro="TinyCore"
  492.                     elif [ -f /etc/sabayon-edition ]; then distro="Sabayon"; fi
  493.                 else
  494.                     if [[ -x /usr/bin/sw_vers ]] && /usr/bin/sw_vers | grep -i "Mac OS X" >/dev/null; then
  495.                         distro="Mac OS X"
  496.                     elif [[ -f /var/run/dmesg.boot ]]; then
  497.                         distro=$(awk 'BEGIN {
  498.                             distro = "Unknown"
  499.                         }
  500.                         {
  501.                             if ($0 ~ /DragonFly/) {
  502.                                 distro = "DragonFlyBSD"
  503.                                 exit
  504.                             }
  505.                             else if ($0 ~ /FreeBSD/) {
  506.                                 distro = "FreeBSD"
  507.                                 exit
  508.                             }
  509.                             else if ($0 ~ /NetBSD/) {
  510.                                 distro = "NetBSD"
  511.                                 exit
  512.                             }
  513.                             else if ($0 ~ /OpenBSD/) {
  514.                                 distro = "OpenBSD"
  515.                                 exit
  516.                             }
  517.                         } END {
  518.                             print distro
  519.                         }' /var/run/dmesg.boot)
  520.                     fi
  521.                 fi
  522.             fi
  523.             if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  524.                 if [[ -f /etc/issue ]]; then
  525.                     distro=$(awk 'BEGIN {
  526.                         distro = "Unknown"
  527.                     }
  528.                     {
  529.                         if ($0 ~ /"LinuxDeepin"/) {
  530.                             distro = "LinuxDeepin"
  531.                             exit
  532.                         }
  533.                         else if ($0 ~ /"Parabola GNU\/Linux-libre"/) {
  534.                             distro = "ParabolaGNU/Linux-libre"
  535.                             exit
  536.                         }
  537.                         else if ($0 ~ /"SolusOS"/) {
  538.                             distro = "SolusOS"
  539.                             exit
  540.                         }
  541.                     } END {
  542.                         print distro
  543.                     }' /etc/issue)
  544.                 fi
  545.             fi
  546.             if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  547.                 if [[ -f /etc/system-release ]]; then
  548.                     distro=$(awk 'BEGIN {
  549.                         distro = "Unknown"
  550.                     }
  551.                     {
  552.                         if ($0 ~ /"Scientific\ Linux"/) {
  553.                             distro = "Scientific Linux"
  554.                             exit
  555.                         }
  556.                     } END {
  557.                         print distro
  558.                     }' /etc/system-release)
  559.                 fi
  560.             fi
  561.  
  562.  
  563.  
  564.         fi
  565.     else
  566.         declare -l lcase
  567.         lcase=$distro
  568.         case $lcase in
  569.             arch*linux*old) distro="Arch Linux - Old" ;;
  570.             arch*linux) distro="Arch Linux" ;;
  571.             arch) distro="Arch Linux";;
  572.             elementary) distro="elementary OS";;
  573.             fedora) distro="Fedora" ;;
  574.             mageia) distro="Mageia" ;;
  575.             mandriva) distro="Mandriva" ;;
  576.             mandrake) distro="Mandrake" ;;
  577.             mint) distro="Mint" ;;
  578.             lmde) distro="LMDE" ;;
  579.             opensuse) distro="openSUSE" ;;
  580.             ubuntu) distro="Ubuntu" ;;
  581.             debian) distro="Debian" ;;
  582.             freebsd) distro="FreeBSD" ;;
  583.             openbsd) distro="OpenBSD" ;;
  584.             dragonflybsd) distro="DragonFlyBSD" ;;
  585.             netbsd) distro="NetBSD" ;;
  586.             red*hat*) distro="Red Hat Linux" ;;
  587.             crunchbang) distro="CrunchBang" ;;
  588.             gentoo) distro="Gentoo" ;;
  589.             funtoo) distro="Funtoo" ;;
  590.             slackware) distro="Slackware" ;;
  591.             frugalware) distro="Frugalware" ;;
  592.             peppermint) distro="Peppermint" ;;
  593.             solusos) distro="SolusOS" ;;
  594.             parabolagnu|parabolagnu/linux-libre) distro="ParabolaGNU/Linux-libre" ;;
  595.             viperr) distro="Viperr" ;;
  596.             linuxdeepin) distro="LinuxDeepin" ;;
  597.             chakra) distro="Chakra" ;;
  598.             mac*os*x) distro="Mac OS X" ;;
  599.             fuduntu) distro="Fuduntu" ;;
  600.             manjaro) distro="Manjaro" ;;
  601.             cygwin) distro="Cygwin" ;;
  602.         esac
  603.     fi
  604.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding distro...found as '$distro $distro_release'"
  605. }
  606. # Distro Detection - End
  607.  
  608. # Host and User detection - Begin
  609. detecthost () {
  610.     myUser=${USER}
  611.     myHost=${HOSTNAME}
  612.     if [[ "${distro}" == "Mac OS X" ]]; then myHost=${myHost/.local/}; fi
  613.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding hostname and user...found as '$myUser@$myHost'"
  614. }
  615.  
  616. # Find Number of Running Processes
  617. # processnum="$(( $( ps aux | wc -l ) - 1 ))"
  618.  
  619. # Kernel Version Detection - Begin
  620. detectkernel () {
  621.     kernel=( $(uname -srm) )
  622.     kernel="${kernel[${#kernel[@]}-1]} ${kernel[@]:0:${#kernel[@]}-1}"
  623.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding kernel version...found as '$kernel'"
  624. }
  625. # Kernel Version Detection - End
  626.  
  627.  
  628. # Uptime Detection - Begin
  629. detectuptime () {
  630.     unset uptime
  631.     if [ "$distro" == "Mac OS X" ]; then
  632.         boot=`sysctl -n kern.boottime | cut -d "=" -f 2 | cut -d "," -f 1`
  633.         now=`date +%s`
  634.         uptime=$(($now-$boot))
  635.     elif [[ "${distro}" == "FreeBSD" || "${distro}" == "OpenBSD" ]]; then
  636.         if [[ "${distro}" == "FreeBSD" ]]; then boot=`sysctl -n kern.boottime | cut -d "=" -f 2 | cut -d "," -f 1`
  637.         else boot=$(sysctl -n kern.boottime); fi
  638.         now=$(date +%s)
  639.         uptime=$((${now} - ${boot}))
  640.     else
  641.         if [[ -f /proc/uptime ]]; then
  642.             uptime=$(</proc/uptime)
  643.             uptime=${uptime//.*}
  644.         fi
  645.     fi
  646.  
  647.     if [[ -n ${uptime} ]]; then
  648.         secs=$((${uptime}%60))
  649.         mins=$((${uptime}/60%60))
  650.         hours=$((${uptime}/3600%24))
  651.         days=$((${uptime}/86400))
  652.         uptime="${mins}m"
  653.         if [ "${hours}" -ne "0" ]; then
  654.             uptime="${hours}h ${uptime}"
  655.         fi
  656.         if [ "${days}" -ne "0" ]; then
  657.             uptime="${days}d ${uptime}"
  658.         fi
  659.     else
  660.         if [[ "$distro" =~ "NetBSD" ]]; then uptime=$(awk -F. '{print $1}' /proc/uptime); fi
  661.         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
  662.     fi
  663.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current uptime...found as '$uptime'"
  664. }
  665. # Uptime Detection - End
  666.  
  667.  
  668. # Package Count - Begin
  669. detectpkgs () {
  670.     pkgs="Unknown"
  671.     case $distro in
  672.         'Arch Linux'|'ParabolaGNU/Linux-libre'|'Chakra'|'Manjaro') pkgs=$(pacman -Qq | wc -l) ;;
  673.         'Frugalware') pkgs=$(pacman-g2 -Q | wc -l) ;;
  674.         'Fuduntu'|'Ubuntu'|'Mint'|'SolusOS'|'Debian'|'LMDE'|'CrunchBang'|'Peppermint'|'LinuxDeepin'|'Trisquel'|'elementary OS') pkgs=$(dpkg --get-selections | wc -l) ;;
  675.         'Slackware') pkgs=$(ls -1 /var/log/packages | wc -l) ;;
  676.         'Gentoo'|'Sabayon'|'Funtoo') pkgs=$(ls -d /var/db/pkg/*/* | wc -l) ;;
  677.         'Fedora'|'openSUSE'|'Red Hat Linux'|'Mandriva'|'Mandrake'|'Mageia'|'Viperr') pkgs=$(rpm -qa | wc -l) ;;
  678.         'Mac OS X')
  679.             if [ -d "/usr/local/bin" ]; then loc_pkgs=$(echo $(ls /usr/local/bin | wc -w)); pkgs="$loc_pkgs"; fi
  680.  
  681.             if type -p port >/dev/null 2>&1; then
  682.                 port_pkgs=$(port installed 2>/dev/null | wc -l)
  683.                 pkgs=$((${pkgs} + (${port_pkgs} -1)))
  684.             fi
  685.  
  686.             if type -p port >/dev/null 2>&1; then
  687.                 brew_pkgs=$(brew list -1 2>/dev/null | wc -l)
  688.                 pkgs=$((${pkgs} + ${brew_pkgs}))
  689.             fi
  690.         ;;
  691.         'OpenBSD')
  692.             pkgs=$(pkg_info | wc -l | awk '{sub(" ", "");print $1}')
  693.             if type -p portmaster >/dev/null 2>&1; then
  694.                 ports=$(portmaster -l | grep -Eo '[0-9]+ total installed' | sed 's/ total installed//')
  695.                 pkgs=$((${pkgs} + ${ports}))
  696.             fi
  697.         ;;
  698.         'FreeBSD')
  699.             pkgs=$(if TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 PACKAGESITE=file:///nonexistent pkg info pkg >/dev/null 2>&1; then
  700.                 pkg info | wc -l | awk '{print $1}'; else pkg_info | wc -l | awk '{sub(" ", "");print $1}'; fi)
  701.         ;;
  702.         'Cygwin') cygfix=2; pkgs=$(($(cygcheck -cd | wc -l)-$cygfix)) ;;
  703.     esac
  704.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current package count...found as '$pkgs'"
  705. }
  706.  
  707.  
  708.  
  709.  
  710. # CPU Detection - Begin
  711. detectcpu () {
  712.     if [ "$distro" == "Mac OS X" ]; then cpu=$(echo $(sysctl -n machdep.cpu.brand_string))
  713.     elif [ "$distro" == "FreeBSD" ]; then cpu=$(sysctl -n hw.model)
  714.     elif [ "$distro" == "DragonflyBSD" ]; then cpu=$(sysctl -n hw.model)
  715.     elif [ "$distro" == "OpenBSD" ]; then cpu=$(sysctl -n hw.model | sed 's/@.*//')
  716.     else
  717.         cpu=$(awk 'BEGIN{FS=":"} /model name/ { print $2; exit }' /proc/cpuinfo | sed 's/ @/\n/' | head -1)
  718.         if [ -z "$cpu" ]; then
  719.             cpu=$(awk 'BEGIN{FS=":"} /^cpu/ { gsub(/  +/," ",$2); print $2; exit}' /proc/cpuinfo | sed 's/, altivec supported//;s/^ //')
  720.             if [[ $cpu =~ ^(PPC)*9.+ ]]; then
  721.                 model="IBM PowerPC G5 "
  722.             elif [[ $cpu =~ ^74.+ ]]; then
  723.                 model="Motorola PowerPC G4 "
  724.             else
  725.                 model="IBM PowerPC G3 "
  726.             fi
  727.             cpu="${model}${cpu}"
  728.         fi
  729.         loc="/sys/devices/system/cpu/cpu0/cpufreq"
  730.         if [ -f $loc/bios_limit ];then
  731.             cpu_mhz=$(cat $loc/bios_limit | awk '{print $1/1000}')
  732.         elif [ -f $loc/scaling_max_freq ];then
  733.             cpu_mhz=$(cat $loc/scaling_max_freq | awk '{print $1/1000}')
  734.         else
  735.             cpu_mhz=$(awk -F':' '/cpu MHz/{ print int($2+.5) }' /proc/cpuinfo | head -n 1)
  736.         fi
  737.         if [ -n "$cpu_mhz" ];then
  738.             if [ $cpu_mhz -gt 999 ];then
  739.                 cpu_ghz=$(echo $cpu_mhz | awk '{print $1/1000}')
  740.                 cpu="$cpu @ ${cpu_ghz}GHz"
  741.             else
  742.                 cpu="$cpu @ ${cpu_mhz}MHz"
  743.             fi
  744.         fi
  745.     fi
  746.     cpu=$(echo "${cpu}" | sed -r 's/\([tT][mM]\)|\([Rr]\)|[pP]rocessor//g' | xargs)
  747.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current CPU...found as '$cpu'"
  748. }
  749. # CPU Detection - End
  750.  
  751.  
  752. # GPU Detection - Begin (EXPERIMENTAL!)
  753. detectgpu () {
  754.     if [[ "${distro}" == "FreeBSD" ]]; then
  755.         gpu_info=$(pciconf -lv | grep -B 4 VGA)
  756.         gpu_info=$(echo "${gpu_info}" | grep -E 'device.*=.*')
  757.         gpu=$(echo "${gpu_info}" | sed 's/.*device.*= //' | sed "s/'//g")
  758.     else
  759.         if [ -n "$(type -p lspci)" ]; then
  760.             gpu_info=$(lspci | grep VGA)
  761.             gpu=$(echo "$gpu_info" | grep -oE '\[.*\]' | sed 's/\[//;s/\]//')
  762.             gpu=$(echo "${gpu}" | sed -n '1h;2,$H;${g;s/\n/, /g;p}')
  763.         elif [[ -n "$(type -p glxinfo)" && -z "$gpu" ]]; then
  764.             gpu_info=$(glxinfo 2>/dev/null)
  765.             gpu=$(echo "$gpu_info" | grep "OpenGL renderer string")
  766.             gpu=$(echo "$gpu" | cut -d ':' -f2)
  767.             gpu="${gpu:1}"
  768.             gpu_info=$(echo "$gpu_info" | grep "OpenGL vendor string")
  769.         elif [[ "${distro}" == "Mac OS X" ]]; then
  770.             gpu=$(system_profiler SPDisplaysDataType | awk -F': ' '/^\ *Chipset Model:/ {print $2}')
  771.         elif [[ "${distro}" == "Cygwin" ]]; then
  772.             gpu=$(wmic path Win32_VideoController get caption)
  773.             gpu=$(tail -1 <<< ${gpu})
  774.         fi
  775.     fi
  776.  
  777.     if [ -n "$gpu" ];then
  778.         if [ $(echo "$gpu_info" | grep -i nvidia | wc -l) -gt 0 ];then
  779.             gpu_info="NVidia "
  780.         elif [ $(echo "$gpu_info" | grep -i intel | wc -l) -gt 0 ];then
  781.             gpu_info="Intel "
  782.         elif [ $(echo "$gpu_info" | grep -i amd | wc -l) -gt 0 ];then
  783.             gpu_info="AMD "
  784.         elif [[ $(echo "$gpu_info" | grep -i ati | wc -l) -gt 0  || $(echo "$gpu_info" | grep -i radeon | wc -l) -gt 0 ]]; then
  785.             gpu_info="ATI "
  786.         else
  787.             gpu_info=$(echo "$gpu_info" | cut -d ':' -f2)
  788.             gpu_info="${gpu_info:1} "
  789.         fi
  790.         gpu="${gpu_info}${gpu}"
  791.     else
  792.         gpu="Not Found"
  793.     fi
  794.  
  795.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current GPU...found as '$gpu'"
  796. }
  797. # GPU Detection - End
  798.  
  799.  
  800. # Disk Usage Detection - Begin
  801. detectdisk () {
  802.     diskusage="Unknown"
  803.     if type -p df >/dev/null 2>&1; then
  804.         if [[ "${distro}" =~ (Free|Net|Open|DragonFly)BSD ]]; then
  805.             totaldisk=$(df -h -c 2>/dev/null | tail -1)
  806.         elif [[ "${distro}" == "Mac OS X" ]]; then
  807.             totaldisk=$(df -H / 2>/dev/null | tail -1)
  808.         else
  809.             totaldisk=$(df -h --total 2>/dev/null | tail -1)
  810.         fi
  811.         disktotal=$(awk '{print $2}' <<< "${totaldisk}")
  812.         diskused=$(awk '{print $3}' <<< "${totaldisk}")
  813.         diskusedper=$(awk '{print $5}' <<< "${totaldisk}")
  814.         diskusage="${diskused} / ${disktotal} (${diskusedper})"
  815.         diskusage_verbose=$(sed 's/%/%%/' <<< $diskusage)
  816.     fi
  817.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current disk usage...found as '$diskusage_verbose'"
  818. }  
  819. # Disk Usage Detection - End
  820.  
  821.  
  822. # Memory Detection - Begin
  823. detectmem () {
  824.     hw_mem=0
  825.     free_mem=0
  826.     human=1024
  827.     if [ "$distro" == "Mac OS X" ]; then
  828.         totalmem=$(echo "$(sysctl -n hw.memsize)"/${human}^2|bc)
  829.         usedmem=$(top -l 1 | awk '{
  830.             if ($0 ~ /PhysMem/) {
  831.                 for (x=1; x<=NF; x++) {
  832.                     if ($x ~ /wired/) {
  833.                         wired = $(x-1)
  834.                         gsub(/[^0-9]/,"",wired)
  835.                     }
  836.  
  837.                     if ($x ~ /^active/) {
  838.                         active = $(x-1)
  839.                         gsub(/[^0-9]/,"",active)
  840.                     }
  841.  
  842.                     if ($x ~ /inactive/) {
  843.                         inactive = $(x-1)
  844.                         gsub(/[^0-9]/,"",inactive)
  845.                     }
  846.                 }
  847.                 usedmem = wired + active + inactive
  848.                 print usedmem
  849.                 exit
  850.             }
  851.         }')
  852.     elif [ "$distro" == "Cygwin" ]; then
  853.         total_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  854.         totalmem=$((${total_mem}/1024))
  855.         free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  856.         used_mem=$((${total_mem} - ${free_mem}))
  857.         usedmem=$((${used_mem}/1024))
  858.     elif [ "$distro" == "FreeBSD" ]; then
  859.         phys_mem=$(sysctl -n hw.physmem)
  860.         size_mem=$phys_mem
  861.         size_chip=1
  862.         guess_chip=`echo "$size_mem / 8 - 1" | bc`
  863.         while [ $guess_chip != 0 ]; do
  864.             guess_chip=`echo "$guess_chip / 2" | bc`
  865.             size_chip=`echo "$size_chip * 2" | bc`
  866.         done
  867.         round_mem=`echo "( $size_mem / $size_chip + 1 ) * $size_chip " | bc`
  868.         totalmem=$(($round_mem / ($human * $human) ))
  869.         pagesize=$(sysctl -n hw.pagesize)
  870.         inactive_count=$(sysctl -n vm.stats.vm.v_inactive_count)
  871.         inactive_mem=$(($inactive_count * $pagesize))
  872.         cache_count=$(sysctl -n vm.stats.vm.v_cache_count)
  873.         cache_mem=$(($cache_count * $pagesize))
  874.         free_count=$(sysctl -n vm.stats.vm.v_free_count)
  875.         free_mem=$(($free_count * $pagesize))
  876.         avail_mem=$(($inactive_mem + $cache_mem + $free_mem))
  877.         used_mem=$(($round_mem - $avail_mem))
  878.         usedmem=$(($used_mem / ($human * $human) ))
  879.     elif [ "$distro" == "OpenBSD" ]; then
  880.         totalmem=$(top -1 1 | awk '/Real:/ {k=split($3,a,"/");print a[k] }' | tr -d 'M')
  881.         usedmem=$(top -1 1 | awk '/Real:/ {print $3}' | sed 's/M.*//')
  882.     elif [ "$distro" == "NetBSD" ]; then
  883.         phys_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  884.         totalmem=$((${phys_mem} / $human))
  885.         if grep -q 'Cached' /proc/meminfo; then
  886.             cache=$(awk '/Cached/ {print $2}' /proc/meminfo)
  887.             usedmem=$((${cache} / $human))
  888.         else
  889.             free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  890.             used_mem=$((${phys_mem} - ${free_mem}))
  891.             usedmem=$((${used_mem} / $human))
  892.         fi
  893.     else
  894.         mem_info=$(</proc/meminfo)
  895.         mem_info=$(echo $(echo $(mem_info=${mem_info// /}; echo ${mem_info//kB/})))
  896.         for m in $mem_info; do
  897.             if [[ ${m//:*} = MemTotal ]]; then
  898.                 memtotal=${m//*:}
  899.             fi
  900.  
  901.             if [[ ${m//:*} = MemFree ]]; then
  902.                 memfree=${m//*:}
  903.             fi
  904.  
  905.             if [[ ${m//:*} = Buffers ]]; then
  906.                 membuffer=${m//*:}
  907.             fi
  908.  
  909.             if [[ ${m//:*} = Cached ]]; then
  910.                 memcached=${m//*:}
  911.             fi
  912.         done
  913.  
  914.         usedmem="$(((($memtotal - $memfree) - $membuffer - $memcached) / $human))"
  915.         totalmem="$(($memtotal / $human))"
  916.     fi
  917.     mem="${usedmem}MB / ${totalmem}MB"
  918.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current RAM usage...found as '$mem'"
  919. }
  920. # Memory Detection - End
  921.  
  922.  
  923. # Shell Detection - Begin
  924. detectshell_ver () {
  925.     local version_data='' version='' get_version='--version'
  926.  
  927.     case $1 in
  928.         # ksh sends version to sdterr. Weeeeeeird.
  929.         ksh)
  930.             version_data="$( $1 $get_version 2>&1 )"
  931.             ;;
  932.         *)
  933.             version_data="$( $1 $get_version 2>/dev/null )"
  934.             ;;
  935.     esac
  936.  
  937.     if [[ -n $version_data ]];then
  938.         version=$(awk '
  939.         BEGIN {
  940.             IGNORECASE=1
  941.         }
  942.         /'$2'/ {
  943.             gsub(/(,|v|V)/, "",$'$3')
  944.             if ($2 ~ /[Bb][Aa][Ss][Hh]/) {
  945.                 gsub(/\(.*|-release|-version\)/,"",$4)
  946.             }
  947.             print $'$3'
  948.             exit # quit after first match prints
  949.         }' <<< "$version_data")
  950.     fi
  951.     echo "$version"
  952. }
  953. detectshell () {
  954.     if [[ ! "${shell_type}" ]]; then
  955.         if [[ "${OSTYPE}" == "linux-gnu" || "${OSTYPE}" == "linux" ]]; then
  956.             shell_type=$(ps -p $(ps -p $PPID -o pid --no-heading) -o cmd --no-heading)
  957.             shell_type=${shell_type/-}
  958.             shell_type=${shell_type//*\/}
  959.         elif [[ "${distro}" == "Mac OS X" ]]; then
  960.             shell_type=$(ps -p $(ps -p $PPID -o pid | tail -1) -o args| tail -1)
  961.             shell_type=${shell_type/-}
  962.             shell_type=${shell_type//*\/}
  963.         elif [[ "${distro}" == "FreeBSD" || "${distro}" == "OpenBSD" ]]; then
  964.             shell_type=$(ps -p $(ps -p $PPID -o pid | tail -1) -o args| tail -1)
  965.             shell_type=${shell_type/-}
  966.             shell_type=${shell_type//*\/}
  967.         elif [[ "${distro}" == "Cygwin" ]]; then
  968.             shell_type=$(echo "$SHELL" | awk -F'/' '{print $NF}')
  969.         else
  970.             shell_type=$(ps -p $(ps -p $PPID | awk '$1 !~ /PID/ {print $1}') | awk 'FNR>1 {print $1}')
  971.             shell_type=${shell_type/-}
  972.             shell_type=${shell_type//*\/}
  973.         fi
  974.     fi
  975.  
  976.     case $shell_type in
  977.         bash)
  978.             shell_version_data=$( detectshell_ver "$shell_type" "^GNU.bash,.version" "4" )
  979.             ;;
  980.         csh)
  981.             shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  982.             ;;
  983.         dash)
  984.             shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  985.             ;;
  986.         ksh)
  987.             shell_version_data=$( detectshell_ver "$shell_type" "version" "5" )
  988.             ;;
  989.         tcsh)
  990.             shell_version_data=$( detectshell_ver "$shell_type" "^tcsh" "2" )
  991.             ;;
  992.         zsh)
  993.             shell_version_data=$( detectshell_ver "$shell_type" "^zsh" "2" )
  994.             ;;
  995.     esac
  996.  
  997.     if [[ -n $shell_version_data ]];then
  998.         shell_type="$shell_type $shell_version_data"
  999.     fi
  1000.  
  1001.     myShell=${shell_type}
  1002.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current shell...found as '$myShell'"
  1003. }
  1004. # Shell Detection - End
  1005.  
  1006.  
  1007. # Resolution Detection - Begin
  1008. detectres () {
  1009.     if [[ -n ${DISPLAY} && ${distro} != "Mac OS X" && ${distro} != "Cygwin" ]]; then
  1010.         if [[ "$distro" =~ "BSD" ]]; then
  1011.             xResolution=$(xdpyinfo | sed -n 's/.*dim.* \([0-9]*x[0-9]*\) .*/\1/pg' | tr '\n' ' ')
  1012.         else
  1013.             xResolution=$(xdpyinfo | sed -n 's/.*dim.* \([0-9]*x[0-9]*\) .*/\1/pg' | sed ':a;N;$!ba;s/\n/ /g')
  1014.         fi
  1015.     elif [[ ${distro} == "Mac OS X" ]]; then
  1016.         xResolution=$(system_profiler SPDisplaysDataType | awk '/Resolution:/ {print $2"x"$4" "}')
  1017.     elif [[ "${distro}" == "Cygwin" ]]; then
  1018.         width=$(wmic desktopmonitor get screenwidth | grep -vE '[a-z]+' | tr -d '\r\n ')
  1019.         height=$(wmic desktopmonitor get screenheight | grep -vE '[a-z]+' | tr -d '\r\n ')
  1020.         xResolution="${width}x${height}"
  1021.     else
  1022.         xResolution="No X Server"
  1023.     fi
  1024.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding current resolution(s)...found as '$xResolution'"
  1025. }
  1026. # Resolution Detection - End
  1027.  
  1028.  
  1029. # DE Detection - Begin
  1030. detectde () {
  1031.     DE="Not Present"
  1032.     if [[ -n ${DISPLAY} && ${distro} != "Mac OS X" && ${distro} != "Cygwin" ]]; then
  1033.         if type -p xprop >/dev/null 2>&1;then
  1034.             xprop_root="$(xprop -root 2>/dev/null)"
  1035.             if [[ -n ${xprop_root} ]]; then
  1036.                 DE=$(echo "${xprop_root}" | awk 'BEGIN {
  1037.                     de = "Not Present"
  1038.                 }
  1039.                 {
  1040.                     if ($1 ~ /^_DT_SAVE_MODE/) {
  1041.                         de = $NF
  1042.                         gsub(/\"/,"",de)
  1043.                         de = toupper(de)
  1044.                         exit
  1045.                     }
  1046.                     else if ($1 ~/^KDE_SESSION_VERSION/) {
  1047.                         de = "KDE"$NF
  1048.                         exit
  1049.                     }
  1050.                     else if ($1 ~ /^_MARCO/) {
  1051.                         de = "MATE"
  1052.                         exit
  1053.                     }
  1054.                     else if ($1 ~ /^_MUFFIN/) {
  1055.                         de = "Cinnamon"
  1056.                         exit
  1057.                     }
  1058.                     else if ($0 ~ /"xfce4"/) {
  1059.                         de = "XFCE4"
  1060.                         exit
  1061.                     }
  1062.                     else if ($0 ~ /"xfce5"/) {
  1063.                         de = "XFCE5"
  1064.                         exit
  1065.                     }
  1066.                 } END {
  1067.                     print de
  1068.                 }')
  1069.             fi
  1070.         fi
  1071.  
  1072.         if [[ ${DE} == "Not Present" ]]; then
  1073.             if [[ -n ${GNOME_DESKTOP_SESSION_ID} ]]; then
  1074.                 DE="Gnome"
  1075.                 if type -p xprop >/dev/null 2>&1; then
  1076.                     if xprop -name "unity-launcher" >/dev/null 2>&1; then
  1077.                         DE="Unity"
  1078.                     elif xprop -name "launcher" >/dev/null 2>&1 &&
  1079.                         xprop -name "panel" >/dev/null 2>&1; then
  1080.  
  1081.                         DE="Unity"
  1082.                     fi
  1083.                 fi
  1084.             elif [[ -n ${MATE_DESKTOP_SESSION_ID} ]]; then
  1085.                 DE="MATE"
  1086.             elif [[ -n ${KDE_SESSION_VERSION} ]]; then
  1087.                 if [[ ${KDE_SESSION_VERSION} == '5' ]]; then
  1088.                     DE="KDE5"
  1089.                 elif [[ ${KDE_SESSION_VERSION} == '4' ]]; then
  1090.                     DE="KDE4"
  1091.                 fi
  1092.             elif [[ -n ${KDE_FULL_SESSION} ]]; then
  1093.                 if [[ ${KDE_FULL_SESSION} == 'true' ]]; then
  1094.                     DE="KDE"
  1095.                     DEver_data=$( kded --version 2>/dev/null )
  1096.                     DEver=$( grep -si '^KDE:' <<< "$DEver_data" | awk '{print $2}' )
  1097.                 fi
  1098.             fi
  1099.         fi
  1100.  
  1101.         if [[ ${DE} != "Not Present" ]]; then
  1102.             if [[ ${DE} == "Cinnamon" ]]; then
  1103.                 if type -p >/dev/null 2>&1; then
  1104.                     DEver=$(cinnamon --version)
  1105.                     DE="${DE} ${DEver//* }"
  1106.                 fi
  1107.             elif [[ ${DE} == "Gnome" || ${DE} == "GNOME" ]]; then
  1108.                 if type -p gnome-session-properties >/dev/null 2>&1; then
  1109.                     DEver=$(gnome-session-properties --version)
  1110.                     DE="${DE} ${DEver//* }"
  1111.                 elif type -p gnome-session >/dev/null 2>&1; then
  1112.                     DEver=$(gnome-session --version)
  1113.                     DE="${DE} ${DEver//* }"
  1114.                 fi
  1115.             elif [[ ${DE} == "KDE4" || ${DE} == "KDE5" ]]; then
  1116.                 if type -p kded${DE#KDE} >/dev/null 2>&1; then
  1117.                     DEver=$(kded${DE#KDE} --version)
  1118.                     for l in $(echo "${DEver// /_}"); do
  1119.                         if [[ ${l//:*} == "KDE_Development_Platform" ]]; then
  1120.                             DEver=${l//*:_}
  1121.                             DE="KDE ${DEver//_*}"
  1122.                         fi;
  1123.                     done
  1124.                 fi
  1125.             elif [[ ${DE} == "MATE" ]]; then
  1126.                 if type -p mate-session >/dev/null 2>&1; then
  1127.                     DEver=$(mate-session --version)
  1128.                     DE="${DE} ${DEver//* }"
  1129.                 fi
  1130.  
  1131.             elif [[ ${DE} == "Unity" ]]; then
  1132.                 if type -p unity >/dev/null 2>&1; then
  1133.                     DEver=$(unity --version)
  1134.                     DE="${DE} ${DEver//* }"
  1135.                 fi
  1136.             fi
  1137.         fi
  1138.  
  1139.         if [[ "${DE}" == "Not Present" ]]; then
  1140.             if pgrep -U ${UID} lxsession >/dev/null 2>&1; then
  1141.                 DE="LXDE"
  1142.                 if type -p lxpanel >/dev/null 2>&1; then
  1143.                     DEver=$(lxpanel -v)
  1144.                     DE="${DE} $DEver"
  1145.                 fi
  1146.             elif pgrep -U ${UID} razor-session >/dev/null 2>&1; then
  1147.                 DE="RazorQt"
  1148.             fi
  1149.         fi
  1150.     elif [[ "${distro}" == "Mac OS X" ]]; then
  1151.         if ps -U ${USER} | grep [F]inder >/dev/null 2>&1; then
  1152.             DE="Aqua"
  1153.         fi
  1154.     elif [[ "${distro}" == "Cygwin" ]]; then
  1155.         winver=`wmic os get version | grep -o '^[0-9]'`
  1156.         if [ "$winver" == "7" ]; then DE='Aero'
  1157.         elif [ "$winver" == "6" ]; then DE='Aero'
  1158.         else DE='Luna'; fi
  1159.     fi
  1160.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding desktop environment...found as '$DE'"
  1161. }
  1162. ### DE Detection - End
  1163.  
  1164.  
  1165. # WM Detection - Begin
  1166. detectwm () {
  1167.     WM="Not Found"
  1168.     if [[ -n ${DISPLAY} && ${distro} != "Cygwin" ]]; then
  1169.         if type -p xprop >/dev/null 2>&1; then
  1170.             WM=$(xprop -root _NET_SUPPORTING_WM_CHECK)
  1171.             if [[ "$WM" =~ 'not found' ]]; then
  1172.                 WM="Not Found"
  1173.             elif [[ "$WM" =~ 'Not found' ]]; then
  1174.                 WM="Not Found"
  1175.             elif [[ "$WM" =~ '[Ii]nvalid window id format' ]]; then
  1176.                 WM="Not Found"
  1177.             elif [[ "$WM" =~ "no such" ]]; then
  1178.                 WM="Not Found"
  1179.             else
  1180.                 WM=${WM//* }
  1181.                 WM=$(xprop -id ${WM} 8s _NET_WM_NAME)
  1182.                 WM=$(echo $(WM=${WM//*= }; echo ${WM//\"}))
  1183.             fi
  1184.         fi
  1185.  
  1186.         if [[ ${WM} == "Not Found" ]]; then
  1187.             for each in "${wmnames[@]}"; do
  1188.                 PID="$(pgrep -U ${UID} $each)"
  1189.                 if [ "$PID" ]; then
  1190.                     case $each in
  1191.                         'awesome') WM="Awesome";;
  1192.                         'beryl') WM="Beryl";;
  1193.                         'blackbox') WM="Blackbox";;
  1194.                         'cinnamon') WM="Cinnamon";;
  1195.                         'compiz') WM="Compiz";;
  1196.                         'dminiwm') WM="dminiwm";;
  1197.                         'ctwm') WM="ctwm";;
  1198.                                                 '9wm') WM="9wm";;
  1199.                                                 'w9wm') WM="w9wm";;
  1200.                                                 'twm') WM="twm";;
  1201.                                                 'vtwm') WM="vtwm";;
  1202.                                                 'lwm') WM="lwm";;
  1203.                                                 'dwm') WM="dwm";;
  1204.                         'e16') WM="E16";;
  1205.                         'emerald') WM="Emerald";;
  1206.                         'enlightenment') WM="E17";;
  1207.                         'fluxbox') WM="FluxBox";;
  1208.                         'fvwm') WM="FVWM";;
  1209.                         'herbstluftwm') WM="herbstluftwm";;
  1210.                         'icewm') WM="IceWM";;
  1211.                         'kwin') WM="KWin";;
  1212.                         'metacity') WM="Metacity";;
  1213.                         'monsterwm') WM="monsterwm";;
  1214.                         'musca') WM="Musca";;
  1215.                         'notion') WM="Notion";;
  1216.                         'openbox') WM="OpenBox";;
  1217.                         'pekwm') WM="PekWM";;
  1218.                         'ratpoison') WM="Ratpoison";;
  1219.                         'sawfish') WM="Sawfish";;
  1220.                         'scrotwm') WM="ScrotWM";;
  1221.                         'spectrwm') WM="SpectrWM";;
  1222.                         'stumpwm') WM="StumpWM";;
  1223.                         'subtle') WM="subtle";;
  1224.                         'wmaker') WM="WindowMaker";;
  1225.                         'wmfs') WM="WMFS";;
  1226.                         'wmii') WM="wmii";;
  1227.                         'xfwm4') WM="Xfwm4";;
  1228.                         'i3') WM="i3";;
  1229.                         'xmonad') WM="XMonad";;
  1230.                     esac
  1231.                 fi
  1232.  
  1233.                 if [[ ${WM} != "Not Found" ]]; then
  1234.                     break 1
  1235.                 fi
  1236.             done
  1237.         else
  1238.             if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  1239.                 if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  1240.                     WM=${WM,,}
  1241.                 else
  1242.                     WM="$(tr '[:upper:]' '[:lower:]' <<< ${WM})"
  1243.                 fi
  1244.             else
  1245.                 WM="$(tr '[:upper:]' '[:lower:]' <<< ${WM})"
  1246.             fi
  1247.             case ${WM} in
  1248.                 'awesome') WM="Awesome";;
  1249.                 'beryl') WM="Beryl";;
  1250.                 'blackbox') WM="Blackbox";;
  1251.                 'cinnamon') WM="Cinnamon";;
  1252.                 'compiz') WM="Compiz";;
  1253.                 'dminiwm') WM="dminiwm";;
  1254.                 'dwm') WM="dwm";;
  1255.                 'e16') WM="E16";;
  1256.                 'emerald') WM="Emerald";;
  1257.                 'enlightenment') WM="E17";;
  1258.                 'fluxbox') WM="FluxBox";;
  1259.                 'fvwm') WM="FVWM";;
  1260.                 'herbstluftwm') WM="herbstluftwm";;
  1261.                 'icewm') WM="IceWM";;
  1262.                 'kwin') WM="KWin";;
  1263.                 'metacity') WM="Metacity";;
  1264.                 'monsterwm') WM="monsterwm";;
  1265.                 'musca') WM="Musca";;
  1266.                 *'gala'*) WM="Gala";;
  1267.                 'mutter'*) WM="Mutter";;
  1268.                 'gnome shell'*) WM="Mutter";;
  1269.                 'notion') WM="Notion";;
  1270.                 'openbox') WM="OpenBox";;
  1271.                 'pekwm') WM="PekWM";;
  1272.                 'ratpoison') WM="Ratpoison";;
  1273.                 'sawfish') WM="Sawfish";;
  1274.                 'scrotwm') WM="ScrotWM";;
  1275.                 'spectrwm') WM="SpectrWM";;
  1276.                 'stumpwm') WM="StumpWM";;
  1277.                 'subtle') WM="subtle";;
  1278.                 'wmaker') WM="WindowMaker";;
  1279.                 'wmfs') WM="WMFS";;
  1280.                 'wmii') WM="wmii";;
  1281.                 'xfwm4') WM="Xfwm4";;
  1282.                 'xmonad') WM="XMonad";;
  1283.                 'i3') WM="i3";;
  1284.             esac
  1285.         fi
  1286.     elif [[ ${distro} == "Mac OS X" && "${WM}" == "Not Found" ]]; then
  1287.         if ps -U ${USER} | grep [F]inder >/dev/null 2>&1; then
  1288.             WM="Quartz Compositor"
  1289.         fi
  1290.     elif [[ "${distro}" == "Cygwin" ]]; then
  1291.         bugn=$(tasklist | grep -o 'bugn' | tr -d '\r \n')
  1292.         wind=$(tasklist | grep -o 'Windawesome' | tr -d '\r \n')
  1293.         if [ "$bugn" = "bugn" ]; then WM="bug.n"
  1294.         elif [ "$wind" = "Windawesome" ]; then WM="Windawesome"
  1295.         else WM="DWM"; fi
  1296.     fi
  1297.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding window manager...found as '$WM'"
  1298. }
  1299. # WM Detection - End
  1300.  
  1301.  
  1302. # WM Theme Detection - BEGIN
  1303. detectwmtheme () {
  1304.     Win_theme="Not Found"
  1305.     case $WM in
  1306.         '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;;
  1307.         'BlackBox') if [ -f $HOME/.blackboxrc ]; then Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' $HOME/.blackboxrc)"; fi;;
  1308.         'Beryl') Win_theme="Not Present";;
  1309.         'Cinnamon') Win_theme="$(gsettings get org.cinnamon.theme name)";;
  1310.         'Compiz'|'Mutter'*|'GNOME Shell'|'Gala')
  1311.             if type -p gsettings >/dev/null 2>&1; then
  1312.                 Win_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
  1313.                 Win_theme=${Win_theme//"'"}
  1314.             elif type -p gconftool-2 >/dev/null 2>&1; then
  1315.                 Win_theme=$(gconftool-2 -g /apps/metacity/general/theme)
  1316.             fi
  1317.         ;;
  1318.         'dminiwm') Win_theme="Not Present";;
  1319.         'dwm') Win_theme="Not Present";;
  1320.         'E16') Win_theme="$(awk -F"= " '/theme.name/ {print $2}' $HOME/.e16/e_config--0.0.cfg)";;
  1321.         'E17'|'Enlightenment')
  1322.             if [ "$(which eet 2>/dev/null)" ]; then
  1323.                 econfig="$(eet -d $HOME/.e/e/config/standard/e.cfg config | awk '/value \"file\" string.*.edj/{ print $4 }')"
  1324.                 econfigend="${econfig##*/}"
  1325.                 Win_theme=${econfigend%.*}
  1326.             fi
  1327.         ;;
  1328.         #E17 doesn't store cfg files in text format so for now get the profile as opposed to theme. atyoung
  1329.         #TODO: Find a way to extract and read E17 .cfg files ( google seems to have nothing ). atyoung
  1330.         'E17') Win_theme=${E_CONF_PROFILE};;
  1331.         '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;;
  1332.         'Finder') Win_theme="Not Present";;
  1333.         'FluxBox'|'Fluxbox') if [ -f $HOME/.fluxbox/init ]; then Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' $HOME/.fluxbox/init)"; fi;;
  1334.         'FVWM') Win_theme="Not Present";;
  1335.         'i3') Win_theme="Not Present";;
  1336.         'IceWM') if [ -f $HOME/.icewm/theme ]; then Win_theme="$(awk -F"[\",/]" '!/#/ {print $2}' $HOME/.icewm/theme)"; fi;;
  1337.         'KWin'*)
  1338.             if [[ -z $KDE_CONFIG_DIR ]]; then
  1339.                 if type -p kde5-config >/dev/null 2>&1; then
  1340.                     KDE_CONFIG_DIR=$(kde5-config --localprefix)
  1341.                 elif type -p kde4-config >/dev/null 2>&1; then
  1342.                     KDE_CONFIG_DIR=$(kde4-config --localprefix)
  1343.                 elif type -p kde-config >/dev/null 2>&1; then
  1344.                     KDE_CONFIG_DIR=$(kde-config --localprefix)
  1345.                 fi
  1346.             fi
  1347.  
  1348.             if [[ -n $KDE_CONFIG_DIR ]]; then
  1349.                 Win_theme=$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0); print $0; exit}' $KDE_CONFIG_DIR/share/config/kwinrc)
  1350.                 if [[ -z $Win_theme ]]; then
  1351.                     if [[ -f $KDE_CONFIG_DIR/share/config/kdebugrc ]]; then
  1352.                         Win_theme=$(awk '/(decoration)/ {gsub(/\[/,"",$1); print $1; exit}' $KDE_CONFIG_DIR/share/config/kdebugrc)
  1353.                         if [[ -z $Win_theme ]]; then
  1354.                             Win_theme="Not Found"
  1355.                         fi
  1356.                     else
  1357.                         Win_theme="Not Found"
  1358.                     fi
  1359.                 fi
  1360.  
  1361.                 if [[ $Win_theme != 'Not Found' ]]; then
  1362.                     if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  1363.                         if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  1364.                             Win_theme=${Win_theme^}
  1365.                         else
  1366.                             Win_theme="$(tr '[:lower:]' '[:upper:]' <<< ${Win_theme:0:1})${Win_theme:1}"
  1367.                         fi
  1368.                     else
  1369.                         Win_theme="$(tr '[:lower:]' '[:upper:]' <<< ${Win_theme:0:1})${Win_theme:1}"
  1370.                     fi
  1371.                 fi
  1372.             fi
  1373.         ;;
  1374.         'Marco')
  1375.             Win_theme="$(gsettings get org.mate.Marco.general theme)"
  1376.             Win_theme=${Win_theme//"'"}
  1377.         ;;
  1378.         'Metacity') if [ "`gconftool-2 -g /apps/metacity/general/theme`" ]; then Win_theme="$(gconftool-2 -g /apps/metacity/general/theme)"; fi ;;
  1379.         'monsterwm') Win_theme="Not Present";;
  1380.         'Musca') Win_theme="Not Present";;\
  1381.         'Notion') Win_theme="Not Present";;
  1382.         'OpenBox'|'Openbox')
  1383.             if [ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml ]; then
  1384.                 Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml)";
  1385.             elif [[ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml && $DE == "LXDE" ]]; then
  1386.                 Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml)";
  1387.             fi
  1388.         ;;
  1389.         'PekWM') if [ -f $HOME/.pekwm/config ]; then Win_theme="$(awk -F"/" '/Theme/ {gsub(/\"/,""); print $NF}' $HOME/.pekwm/config)"; fi;;
  1390.         'Ratpoison') Win_theme="Not Present";;
  1391.         'Sawfish') Win_theme="$(awk -F")" '/\(quote default-frame-style/{print $2}' $HOME/.sawfish/custom | sed 's/ (quote //')";;
  1392.         'ScrotWM') Win_theme="Not Present";;
  1393.         'SpectrWM') Win_theme="Not Present";;
  1394.         'subtle') Win_theme="Not Present";;
  1395.         'WindowMaker') Win_theme="Not Present";;
  1396.         'WMFS') Win_theme="Not Present";;
  1397.         'wmii') Win_theme="Not Present";;
  1398.         '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;;
  1399.         'XMonad') Win_theme="Not Present";;
  1400.     esac
  1401.  
  1402.     if [[ "${distro}" == "Cygwin" ]]; then
  1403.         themeFile="$(reg query 'HKCU\Software\Microsoft\Windows\CurrentVersion\Themes' /v 'CurrentTheme' | grep -o '[A-Z]:\\.*')"
  1404.         Win_theme=$(echo $themeFile | awk -F"\\" '{print $NF}' | grep -o '[0-9A-z. ]*$' | grep -o '^[0-9A-z ]*')
  1405.     fi
  1406.  
  1407.     [[ "$verbosity" -eq "1" ]] && verboseOut "Finding window manager theme...found as '$Win_theme'"
  1408. }
  1409. # WM Theme Detection - END
  1410.  
  1411. # GTK Theme\Icon\Font Detection - BEGIN
  1412. detectgtk () {
  1413.     gtk2Theme="Not Found"
  1414.     gtk3Theme="Not Found"
  1415.     gtkIcons="Not Found"
  1416.     gtkFont="Not Found"
  1417.     case $DE in
  1418.         'KDE'*) # Desktop Environment found as "KDE"
  1419.             if type - p kde4-config >/dev/null 2>&1; then
  1420.                 KDE_CONFIG_DIR=$(kde4-config --localprefix)
  1421.                 if [[ -d ${KDE_CONFIG_DIR} ]]; then
  1422.                     if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  1423.                         KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  1424.                     fi
  1425.                 fi
  1426.             elif type -p kde5-config >/dev/null 2>&1; then
  1427.                 KDE_CONFIG_DIR=$(kde5-config --localprefix)
  1428.                 if [[ -d ${KDE_CONFIG_DIR} ]]; then
  1429.                     if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  1430.                         KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  1431.                     fi
  1432.                 fi
  1433.             elif type -p kde-config >/dev/null 2>&1; then
  1434.                 KDE_CONFIG_DIR=$(kde-config --localprefix)
  1435.                 if [[ -d ${KDE_CONFIG_DIR} ]]; then
  1436.                     if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  1437.                         KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  1438.                     fi
  1439.                 fi
  1440.             fi
  1441.  
  1442.             if [[ -n ${KDE_CONFIG_FILE} ]]; then
  1443.                 if grep -q "widgetStyle=" "${KDE_CONFIG_FILE}"; then
  1444.                     gtk2Theme=$(awk -F"=" '/widgetStyle=/ {print $2}' "${KDE_CONFIG_FILE}")
  1445.                 elif grep -q "colorScheme=" "${KDE_CONFIG_FILE}"; then
  1446.                     gtk2Theme=$(awk -F"=" '/colorScheme=/ {print $2}' "${KDE_CONFIG_FILE}")
  1447.                 fi
  1448.  
  1449.                 if grep -q "Theme=" "${KDE_CONFIG_FILE}"; then
  1450.                     gtkIcons=$(awk -F"=" '/Theme=/ {print $2}' "${KDE_CONFIG_FILE}")
  1451.                 fi
  1452.  
  1453.                 if grep -q "Font=" "${KDE_CONFIG_FILE}"; then
  1454.                     gtkFont=$(awk -F"=" '/font=/ {print $2}' "${KDE_CONFIG_FILE}")
  1455.                 fi
  1456.             fi
  1457.  
  1458.             if [[ -f $HOME/.gtkrc-2.0 ]]; then
  1459.                 gtk2Theme=$(grep '^gtk-theme-name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  1460.                 gtk2Theme=${gtk2Theme//\"/}
  1461.                 gtkIcons=$(grep '^gtk-icon-theme-name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  1462.                 gtkIcons=${gtkIcons//\"/}
  1463.                 gtkFont=$(grep 'font_name' $HOME/.gtkrc-2.0 | awk -F'=' '{print $2}')
  1464.                 gtkFont=${gtkFont//\"/}
  1465.             fi
  1466.  
  1467.             if [[ -f $HOME/.config/gtk-3.0/settings.ini ]]; then
  1468.                 gtk3Theme=$(grep '^gtk-theme-name=' $HOME/.config/gtk-3.0/settings.ini | awk -F'=' '{print $2}')
  1469.             fi
  1470.         ;;
  1471.         'Cinnamon'*) # Desktop Environment found as "Cinnamon"
  1472.             if type -p gsettings >/dev/null 2>&1; then
  1473.                 gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme)
  1474.                 gtk3Theme=${gtk3Theme//"'"}
  1475.                 gtk2Theme=${gtk3Theme}
  1476.  
  1477.                 gtkIcons=$(gsettings get org.gnome.desktop.interface icon-theme)
  1478.                 gtkIcons=${gtkIcons//"'"}
  1479.                 gtkFont=$(gsettings get org.gnome.desktop.interface font-name)
  1480.                 gtkFont=${gtkFont//"'"}
  1481.                 if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  1482.             fi
  1483.         ;;
  1484.         'GNOME'*|'Gnome'*|'Unity'*) # Desktop Environment found as "GNOME"
  1485.             if type -p gsettings >/dev/null 2>&1; then
  1486.                 gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme)
  1487.                 gtk3Theme=${gtk3Theme//"'"}
  1488.                 gtk2Theme=${gtk3Theme}
  1489.                 gtkIcons=$(gsettings get org.gnome.desktop.interface icon-theme)
  1490.                 gtkIcons=${gtkIcons//"'"}
  1491.                 gtkFont=$(gsettings get org.gnome.desktop.interface font-name)
  1492.                 gtkFont=${gtkFont//"'"}
  1493.                 if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  1494.             elif type -p gconftool-2 >/dev/null 2>&1; then
  1495.                 gtk2Theme=$(gconftool-2 -g /desktop/gnome/interface/gtk_theme)
  1496.                 gtkIcons=$(gconftool-2 -g /desktop/gnome/interface/icon_theme)
  1497.                 gtkFont=$(gconftool-2 -g /desktop/gnome/interface/font_name)
  1498.                 if [ "$background_detect" == "1" ]; then
  1499.                     gtkBackgroundFull=$(gconftool-2 -g /desktop/gnome/background/picture_filename)
  1500.                     gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  1501.                 fi
  1502.             fi
  1503.         ;;
  1504.         'MATE'*) # MATE desktop environment
  1505.             #if type -p gsettings >/dev/null 2&>1; then
  1506.             gtk3Theme=$(gsettings get org.mate.interface gtk-theme)
  1507.             # gtk3Theme=${gtk3Theme//"'"}
  1508.             gtk2Theme=${gtk3Theme}
  1509.             gtkIcons=$(gsettings get org.mate.interface icon-theme)
  1510.             gtkIcons=${gtkIcons//"'"}
  1511.             gtkFont=$(gsettings get org.mate.interface font-name)
  1512.             gtkFont=${gtkFont//"'"}
  1513.             #fi
  1514.         ;;
  1515.         'XFCE'*) # Desktop Environment found as "XFCE"
  1516.             if type -p xfconf-query >/dev/null 2>&1; then
  1517.                 gtk2Theme=$(xfconf-query -c xsettings -p /Net/ThemeName)
  1518.             fi
  1519.  
  1520.             if type -p xfconf-query >/dev/null 2>&1; then
  1521.                 gtkIcons=$(xfconf-query -c xsettings -p /Net/IconThemeName)
  1522.             fi
  1523.  
  1524.             if type -p xfconf-query >/dev/null 2>&1; then
  1525.                 gtkFont=$(xfconf-query -c xsettings -p /Gtk/FontName)
  1526.             fi
  1527.         ;;
  1528.         'LXDE'*)
  1529.             if [ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/lxde/config ]; then
  1530.                 lxdeconf="/lxde/config"
  1531.             elif [ $distro == "Trisquel" ]; then
  1532.                 lxdeconf=""
  1533.             elif [ "$distro" == "FreeBSD" ]; then
  1534.                 lxdeconf=""
  1535.             else
  1536.                 lxdeconf="/lxsession/LXDE/desktop.conf"
  1537.             fi
  1538.             # TODO: Clean me.
  1539.             if grep -q "sNet\/ThemeName" ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf 2>/dev/null; then
  1540.                 gtk2Theme=$(awk -F'=' '/sNet\/ThemeName/ {print $2}' ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf)
  1541.             fi
  1542.  
  1543.             if grep -q IconThemeName ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf 2>/dev/null; then
  1544.                 gtkIcons=$(awk -F'=' '/sNet\/IconThemeName/ {print $2}' ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf)
  1545.             fi
  1546.  
  1547.             if grep -q FontName ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf 2>/dev/null; then
  1548.                 gtkFont=$(awk -F'=' '/sGtk\/FontName/ {print $2}' ${XDG_CONFIG_HOME:-${HOME}/.config}$lxdeconf)
  1549.             fi
  1550.         ;;
  1551.  
  1552.         # /home/me/.config/rox.sourceforge.net/ROX-Session/Settings.xml
  1553.  
  1554.         *)  # Lightweight or No DE Found
  1555.             if [ -f $HOME/.gtkrc-2.0 ]; then
  1556.                 if grep -q gtk-theme $HOME/.gtkrc-2.0; then
  1557.                     gtk2Theme=$(awk -F'"' '/^gtk-theme/ {print $2}' $HOME/.gtkrc-2.0)
  1558.                 fi
  1559.  
  1560.                 if grep -q icon-theme $HOME/.gtkrc-2.0; then
  1561.                     gtkIcons=$(awk -F'"' '/^gtk-icon-theme/ {print $2}' $HOME/.gtkrc-2.0)
  1562.                 fi
  1563.  
  1564.                 if grep -q font $HOME/.gtkrc-2.0; then
  1565.                     gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' $HOME/.gtkrc-2.0)
  1566.                 fi
  1567.             fi
  1568.             # $HOME/.gtkrc.mine theme detect only
  1569.             if [ -f $HOME/.gtkrc.mine ]; then
  1570.                 if grep -q "^include" $HOME/.gtkrc.mine; then
  1571.                     gtk2Theme=$(grep '^include.*gtkrc' $HOME/.gtkrc.mine | awk -F "/" '{ print $5 }')
  1572.                 fi
  1573.                 if grep -q "^gtk-icon-theme-name" $HOME/.gtkrc.mine; then
  1574.                     gtkIcons=$(grep '^gtk-icon-theme-name' $HOME/.gtkrc.mine | awk -F '"' '{print $2}')
  1575.                 fi
  1576.             fi
  1577.             # /etc/gtk-2.0/gtkrc compatability
  1578.             if [[ -f /etc/gtk-2.0/gtkrc && ! -f $HOME/.gtkrc-2.0 && ! -f $HOME/.gtkrc.mine ]]; then
  1579.                 if grep -q gtk-theme-name /etc/gtk-2.0/gtkrc; then
  1580.                     gtk2Theme=$(awk -F'"' '/^gtk-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  1581.                 fi
  1582.                 if grep -q gtk-fallback-theme-name /etc/gtk-2.0/gtkrc  && ! [ "x$gtk2Theme" = "x" ]; then
  1583.                     gtk2Theme=$(awk -F'"' '/^gtk-fallback-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  1584.                 fi
  1585.  
  1586.                 if grep -q icon-theme /etc/gtk-2.0/gtkrc; then
  1587.                     gtkIcons=$(awk -F'"' '/^icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  1588.                 fi
  1589.                 if  grep -q gtk-fallback-icon-theme /etc/gtk-2.0/gtkrc  && ! [ "x$gtkIcons" = "x" ]; then
  1590.                     gtkIcons=$(awk -F'"' '/^gtk-fallback-icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  1591.                 fi
  1592.  
  1593.                 if grep -q font /etc/gtk-2.0/gtkrc; then
  1594.                     gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  1595.                 fi
  1596.             fi
  1597.  
  1598.             # EXPERIMENTAL gtk3 Theme detection
  1599.             if [ -f $HOME/.config/gtk-3.0/settings.ini ]; then
  1600.                 if grep -q gtk-theme-name $HOME/.config/gtk-3.0/settings.ini; then
  1601.                     gtk3Theme=$(awk -F'=' '/^gtk-theme-name/ {print $2}' $HOME/.config/gtk-3.0/settings.ini)
  1602.                 fi
  1603.             fi
  1604.  
  1605.             # Proper gtk3 Theme detection
  1606.             #if [ $(which gsettings) ] && [ "$distro" != "Mac OS X" ]; then
  1607.             #   gtk3Theme="$(gsettings get org.gnome.desktop.interface gtk-theme | tr -d \"\'\")"
  1608.             #fi
  1609.             if type -p gsettings >/dev/null 2>&1; then
  1610.                 gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme 2>/dev/null)
  1611.                 gtk3Theme=${gtk3Theme//"'"}
  1612.             fi
  1613.  
  1614.             # ROX-Filer icon detect only
  1615.             if [ -a ${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options ]; then
  1616.                 gtkIcons=$(awk -F'[>,<]' '/^icon_theme/ {print $3}' ${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options)
  1617.             fi
  1618.  
  1619.             # E17 detection
  1620.             if [ $E_ICON_THEME ]; then
  1621.                 gtkIcons=${E_ICON_THEME}
  1622.                 gtk2Theme="Not available."
  1623.                 gtkFont="Not available."
  1624.             fi
  1625.  
  1626.             # Background Detection (feh, nitrogen)
  1627.             if [ "$background_detect" == "1" ]; then
  1628.                 if [ -a $HOME/.fehbg ]; then
  1629.                     gtkBackgroundFull=$(awk -F"'" '/feh --bg/{print $2}' $HOME/.fehbg 2>/dev/null)
  1630.                     gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  1631.                 elif [ -a ${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg ]; then
  1632.                     gtkBackground=$(awk -F"/" '/file=/ {print $NF}' ${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg)
  1633.                 fi
  1634.             fi
  1635.  
  1636.             # Font detection (OS X)
  1637.             if [[ ${distro} == "Mac OS X" ]]; then
  1638.                 if ps -U ${USER} | grep [F]inder >/dev/null 2>&1; then
  1639.                     gtkFont="Not Found"
  1640.                     if [ -f ~/Library/Preferences/com.googlecode.iterm2.plist ]; then
  1641.                         gtkFont=$(str1=$(defaults read com.googlecode.iTerm2|grep -m 1 "Normal Font");echo ${str1:29:${#str1}-29-2})
  1642.                     fi
  1643.                 fi
  1644.             fi
  1645.  
  1646.             if [ "$distro" == "Cygwin" -a "$gtkFont" == "Not Found" ]; then
  1647.                 if [ -f $HOME/.minttyrc ]; then
  1648.                     gtkFont="$(cat $HOME/.minttyrc | grep '^Font=.*' | grep -o '[0-9A-z ]*$')"
  1649.                 fi
  1650.             fi
  1651.         ;;
  1652.     esac
  1653.     if [[ "$verbosity" -eq "1" ]]; then
  1654.         verboseOut "Finding GTK2 theme...found as '$gtk2Theme'"
  1655.         verboseOut "Finding GTK3 theme...found as '$gtk3Theme'"
  1656.         verboseOut "Finding icon theme...found as '$gtkIcons'"
  1657.         verboseOut "Finding user font...found as '$gtkFont'"
  1658.         [[ $gtkBackground ]] && verboseOut "Finding background...found as '$gtkBackground'"
  1659.     fi
  1660. }
  1661. # GTK Theme\Icon\Font Detection - END
  1662.  
  1663. # Android-specific detections
  1664. detectdroid () {
  1665.     distro_ver=$(getprop ro.build.version.release)
  1666.  
  1667.     hostname=$(getprop net.hostname)
  1668.  
  1669.     _device=$(getprop ro.product.device)
  1670.     _model=$(getprop ro.product.model)
  1671.     device="${_model} (${_device})"
  1672.  
  1673.     if [[ $(getprop ro.build.host) == "cyanogenmod" ]]; then
  1674.         rom=$(getprop ro.cm.version)
  1675.     else
  1676.         rom=$(getprop ro.build.display.id)
  1677.     fi
  1678.  
  1679.     baseband=$(getprop ro.baseband)
  1680.  
  1681.     cpu=$(grep '^Processor' /proc/cpuinfo)
  1682.     cpu=$(echo "$cpu" | sed 's/Processor.*: //')
  1683. }
  1684.  
  1685.  
  1686. #######################
  1687. # End Detection Phase
  1688. #######################
  1689.  
  1690. takeShot () {
  1691.     if [[ -z $screenCommand ]]; then
  1692.         if [[ "$hostshot" == "1" ]]; then
  1693.             if [ "$distro" == "Mac OS X" ]; then printf "Taking shot in 3.. "; sleep 1; printf "2.. "; sleep 1; printf "1.. "; sleep 1; printf "0.\n"; screencapture -x "${shotfile}" &> /dev/null
  1694.             else scrot -cd3 "${shotfile}"; fi
  1695.             if [ -f "${shotfile}" ]; then
  1696.                 [[ "$verbosity" -eq "1" ]] && verboseOut "Screenshot saved at '${shotfile}'"
  1697.                 scp -qo ConnectTimeout="${scptimeout}" "${shotfile}" "${serveraddr}:${serverdir}"
  1698.                 echo -e "${bold}==>${c0} Your screenshot can be viewed at ${baseurl}/$shotfile"
  1699.             else
  1700.                 verboseOut "ERROR: Problem saving screenshot to ${shotfile}"
  1701.             fi
  1702.         else
  1703.             if [ "$distro" == "Mac OS X" ]; then printf "Taking shot in 3.. "; sleep 1; printf "2.. "; sleep 1; printf "1.. "; sleep 1; printf "0.\n"; screencapture -x "${shotfile}" &> /dev/null
  1704.             else scrot -cd3 "${shotfile}"; fi
  1705.             if [ -f "${shotfile}" ]; then
  1706.                 [[ "$verbosity" -eq "1" ]] && verboseOut "Screenshot saved at '${shotfile}'"
  1707.             else
  1708.                 verboseOut "ERROR: Problem saving screenshot to ${shotfile}"
  1709.             fi
  1710.         fi
  1711.     else
  1712.         $screenCommand
  1713.     fi
  1714. }
  1715.  
  1716.  
  1717.  
  1718. asciiText () {
  1719. # Distro logos and ASCII outputs
  1720.     if [[ "$fake_distro" ]]; then distro="${fake_distro}"; fi
  1721.     if [[ "$asc_distro" ]]; then myascii="${asc_distro}"
  1722.     else myascii="${distro}"; fi
  1723.     case ${myascii} in
  1724.         "Arch Linux - Old")
  1725.             if [[ "$no_color" != "1" ]]; then
  1726.                 c1=$(getColor 'white') # White
  1727.                 c2=$(getColor 'light blue') # Light Blue
  1728.             fi
  1729.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1730.             startline="0"
  1731.             fulloutput=("$c1              __                      %s"
  1732. "$c1          _=(SDGJT=_                 %s"
  1733. "$c1        _GTDJHGGFCVS)                %s"
  1734. "$c1       ,GTDJGGDTDFBGX0               %s"
  1735. "$c1      JDJDIJHRORVFSBSVL$c2-=+=,_        %s"
  1736. "$c1     IJFDUFHJNXIXCDXDSV,$c2  \"DEBL      %s"
  1737. "$c1    [LKDSDJTDU=OUSCSBFLD.$c2   '?ZWX,   %s"
  1738. "$c1   ,LMDSDSWH'     \`DCBOSI$c2     DRDS], %s"
  1739. "$c1   SDDFDFH'         !YEWD,$c2   )HDROD  %s"
  1740. "$c1  !KMDOCG            &GSU|$c2\_GFHRGO\'  %s"
  1741. "$c1  HKLSGP'$c2           __$c1\TKM0$c2\GHRBV)'  %s"
  1742. "$c1 JSNRVW'$c2       __+MNAEC$c1\IOI,$c2\BN'     %s"
  1743. "$c1 HELK['$c2    __,=OFFXCBGHC$c1\FD)         %s"
  1744. "$c1 ?KGHE $c2\_-#DASDFLSV='$c1    'EF         %s"
  1745. "$c1 'EHTI                    !H         %s"
  1746. "$c1  \`0F'                    '!         %s"
  1747. "                                     %s"
  1748. "                                     %s")
  1749.         ;;
  1750.  
  1751.         "Arch Linux")
  1752.             if [[ "$no_color" != "1" ]]; then
  1753.                 c1=$(getColor 'light cyan') # Light
  1754.                 c2=$(getColor 'cyan') # Dark
  1755.             fi
  1756.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1757.             startline="1"
  1758.             fulloutput=("${c1}                   -\`"
  1759. "${c1}                  .o+\`                 %s"
  1760. "${c1}                 \`ooo/                %s"
  1761. "${c1}                \`+oooo:               %s"
  1762. "${c1}               \`+oooooo:              %s"
  1763. "${c1}               -+oooooo+:             %s"
  1764. "${c1}             \`/:-:++oooo+:            %s"
  1765. "${c1}            \`/++++/+++++++:           %s"
  1766. "${c1}           \`/++++++++++++++:          %s"
  1767. "${c1}          \`/+++o"${c2}"oooooooo"${c1}"oooo/\`        %s"
  1768. "${c2}         "${c1}"./"${c2}"ooosssso++osssssso"${c1}"+\`       %s"
  1769. "${c2}        .oossssso-\`\`\`\`/ossssss+\`      %s"
  1770. "${c2}       -osssssso.      :ssssssso.     %s"
  1771. "${c2}      :osssssss/        osssso+++.    %s"
  1772. "${c2}     /ossssssss/        +ssssooo/-    %s"
  1773. "${c2}   \`/ossssso+/:-        -:/+osssso+-  %s"
  1774. "${c2}  \`+sso+:-\`                 \`.-/+oso: %s"
  1775. "${c2} \`++:.                           \`-/+/%s"
  1776. "${c2} .\`                                 \`/%s")
  1777.         ;;
  1778.  
  1779.         "Mint")
  1780.             if [[ "$no_color" != "1" ]]; then
  1781.                 c1=$(getColor 'white') # White
  1782.                 c2=$(getColor 'light green') # Bold Green
  1783.             fi
  1784.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1785.             startline="0"
  1786.             fulloutput=("                                       %s"
  1787. "$c2 MMMMMMMMMMMMMMMMMMMMMMMMMmds+.       %s"
  1788. "$c2 MMm----::-://////////////oymNMd+\`    %s"
  1789. "$c2 MMd      "$c1"/++                "$c2"-sNMd:   %s"
  1790. "$c2 MMNso/\`  "$c1"dMM    \`.::-. .-::.\` "$c2".hMN:  %s"
  1791. "$c2 ddddMMh  "$c1"dMM   :hNMNMNhNMNMNh: "$c2"\`NMm  %s"
  1792. "$c2     NMm  "$c1"dMM  .NMN/-+MMM+-/NMN\` "$c2"dMM  %s"
  1793. "$c2     NMm  "$c1"dMM  -MMm  \`MMM   dMM. "$c2"dMM  %s"
  1794. "$c2     NMm  "$c1"dMM  -MMm  \`MMM   dMM. "$c2"dMM  %s"
  1795. "$c2     NMm  "$c1"dMM  .mmd  \`mmm   yMM. "$c2"dMM  %s"
  1796. "$c2     NMm  "$c1"dMM\`  ..\`   ...   ydm. "$c2"dMM  %s"
  1797. "$c2     hMM- "$c1"+MMd/-------...-:sdds  "$c2"dMM  %s"
  1798. "$c2     -NMm- "$c1":hNMNNNmdddddddddy/\`  "$c2"dMM  %s"
  1799. "$c2      -dMNs-"$c1"\`\`-::::-------.\`\`    "$c2"dMM  %s"
  1800. "$c2       \`/dMNmy+/:-------------:/yMMM  %s"
  1801. "$c2          ./ydNMMMMMMMMMMMMMMMMMMMMM  %s"
  1802. "$c2             \.MMMMMMMMMMMMMMMMMMM    %s"
  1803. "                                      %s")
  1804.         ;;
  1805.  
  1806.  
  1807.         "LMDE")
  1808.             if [[ "$no_color" != "1" ]]; then
  1809.                 c1=$(getColor 'white') # White
  1810.                 c2=$(getColor 'light green') # Bold Green
  1811.             fi
  1812.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1813.             startline="0"
  1814.             fulloutput=("          "${c1}"\`.-::---..            %s"
  1815. "${c2}       .:++++ooooosssoo:.      %s"
  1816. "${c2}     .+o++::.      \`.:oos+.    %s"
  1817. "${c2}    :oo:.\`             -+oo"${c1}":   %s"
  1818. "${c2}  "${c1}"\`"${c2}"+o/\`    ."${c1}"::::::"${c2}"-.    .++-"${c1}"\`  %s"
  1819. "${c2} "${c1}"\`"${c2}"/s/    .yyyyyyyyyyo:   +o-"${c1}"\`  %s"
  1820. "${c2} "${c1}"\`"${c2}"so     .ss       ohyo\` :s-"${c1}":  %s"
  1821. "${c2} "${c1}"\`"${c2}"s/     .ss  h  m  myy/ /s\`"${c1}"\`  %s"
  1822. "${c2} \`s:     \`oo  s  m  Myy+-o:\`   %s"
  1823. "${c2} \`oo      :+sdoohyoydyso/.     %s"
  1824. "${c2}  :o.      .:////////++:       %s"
  1825. "${c2}  \`/++        "${c1}"-:::::-          %s"
  1826. "${c2}   "${c1}"\`"${c2}"++-                        %s"
  1827. "${c2}    "${c1}"\`"${c2}"/+-                       %s"
  1828. "${c2}      "${c1}"."${c2}"+/.                     %s"
  1829. "${c2}        "${c1}"."${c2}":+-.                  %s"
  1830. "${c2}           \`--.\`\`              %s"
  1831. "                               %s")
  1832.         ;;
  1833.  
  1834.         "Ubuntu")
  1835.             if [[ "$no_color" != "1" ]]; then
  1836.                 c1=$(getColor 'white') # White
  1837.                 c2=$(getColor 'light red') # Light Red
  1838.                 c3=$(getColor 'yellow') # Bold Yellow
  1839.             fi
  1840.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  1841.             startline="0"
  1842.             fulloutput=("$c2                          ./+o+-       %s"
  1843. "$c1                  yyyyy- $c2-yyyyyy+     %s"
  1844. "$c1               $c1://+//////$c2-yyyyyyo     %s"
  1845. "$c3           .++ $c1.:/++++++/-$c2.+sss/\`     %s"
  1846. "$c3         .:++o:  $c1/++++++++/:--:/-     %s"
  1847. "$c3        o:+o+:++.$c1\`..\`\`\`.-/oo+++++/    %s"
  1848. "$c3       .:+o:+o/.$c1          \`+sssoo+/   %s"
  1849. "$c1  .++/+:$c3+oo+o:\`$c1             /sssooo.  %s"
  1850. "$c1 /+++//+:$c3\`oo+o$c1               /::--:.  %s"
  1851. "$c1 \+/+o+++$c3\`o++o$c2               ++////.  %s"
  1852. "$c1  .++.o+$c3++oo+:\`$c2             /dddhhh.  %s"
  1853. "$c3       .+.o+oo:.$c2          \`oddhhhh+   %s"
  1854. "$c3        \+.++o+o\`\`-\`\`$c2\`\`.:ohdhhhhh+    %s"
  1855. "$c3         \`:o+++ $c2\`ohhhhhhhhyo++os:     %s"
  1856. "$c3           .o:$c2\`.syhhhhhhh/$c3.oo++o\`     %s"
  1857. "$c2               /osyyyyyyo$c3++ooo+++/    %s"
  1858. "$c2                   \`\`\`\`\` $c3+oo+++o\:    %s"
  1859. "$c3                          \`oo++.      %s")
  1860.         ;;
  1861.  
  1862.         "Debian")
  1863.             if [[ "$no_color" != "1" ]]; then
  1864.                 c1=$(getColor 'white') # White
  1865.                 c2=$(getColor 'light red') # Light Red
  1866.             fi
  1867.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1868.             startline="0"
  1869.                        fulloutput=("  $c1       _,met\$\$\$\$\$gg.           %s"
  1870. "  $c1    ,g\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$P.       %s"
  1871. "  $c1  ,g\$\$P\"\"       \"\"\"Y\$\$.\".     %s"
  1872. "  $c1 ,\$\$P'              \`\$\$\$.     %s"
  1873. "  $c1',\$\$P       ,ggs.     \`\$\$b:   %s"
  1874. "  $c1\`d\$\$'     ,\$P\"\'   $c2.$c1    \$\$\$    %s"
  1875. "  $c1 \$\$P      d\$\'     $c2,$c1    \$\$P    %s"
  1876. "  $c1 \$\$:      \$\$.   $c2-$c1    ,d\$\$'    %s"
  1877. "  $c1 \$\$\;      Y\$b._   _,d\$P'     %s"
  1878. "  $c1 Y\$\$.    $c2\`.$c1\`\"Y\$\$\$\$P\"'         %s"
  1879. "  $c1 \`\$\$b      $c2\"-.__              %s"
  1880. "  $c1  \`Y\$\$                        %s"
  1881. "  $c1   \`Y\$\$.                      %s"
  1882. "  $c1     \`\$\$b.                    %s"
  1883. "  $c1       \`Y\$\$b.                 %s"
  1884. "  $c1          \`\"Y\$b._             %s"
  1885. "  $c1              \`\"\"\"\"           %s"
  1886. "                                %s")
  1887.         ;;
  1888.  
  1889.  
  1890.         "CrunchBang")
  1891.             if [[ "$no_color" != "1" ]]; then
  1892.                 c1=$(getColor 'white') # White
  1893.             fi
  1894.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1895.             startline="0"
  1896.            fulloutput=("                                       %s"
  1897. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1898. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1899. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1900. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1901. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  1902. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  1903. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1904. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1905. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1906. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1907. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  1908. "$c2  "$c1"████████████████████████████"$c2"   "$c1"███"$c2"  %s"
  1909. "$c2         "$c1"███"$c2"        "$c1"███"$c2"               %s"
  1910. "$c2         "$c1"███"$c2"        "$c1"███"$c2"               %s"
  1911. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1912. "$c2         "$c1"███"$c2"        "$c1"███"$c2"          "$c1"███"$c2"  %s"
  1913. "$c2                                      %s")
  1914.         ;;
  1915.  
  1916.         "Gentoo"|"Funtoo")
  1917.             if [[ "$no_color" != "1" ]]; then
  1918.                 c1=$(getColor 'white') # White
  1919.                 c2=$(getColor 'light purple') # Light Purple
  1920.             fi
  1921.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1922.             startline="0"
  1923.             fulloutput=("$c2         -/oyddmdhs+:.                %s"
  1924. "$c2     -o"$c1"dNMMMMMMMMNNmhy+"$c2"-\`            %s"
  1925. "$c2   -y"$c1"NMMMMMMMMMMMNNNmmdhy"$c2"+-          %s"
  1926. "$c2 \`o"$c1"mMMMMMMMMMMMMNmdmmmmddhhy"$c2"/\`       %s"
  1927. "$c2 om"$c1"MMMMMMMMMMMN"$c2"hhyyyo"$c1"hmdddhhhd"$c2"o\`     %s"
  1928. "$c2.y"$c1"dMMMMMMMMMMd"$c2"hs++so/s"$c1"mdddhhhhdm"$c2"+\`   %s"
  1929. "$c2 oy"$c1"hdmNMMMMMMMN"$c2"dyooy"$c1"dmddddhhhhyhN"$c2"d.  %s"
  1930. "$c2  :o"$c1"yhhdNNMMMMMMMNNNmmdddhhhhhyym"$c2"Mh  %s"
  1931. "$c2    .:"$c1"+sydNMMMMMNNNmmmdddhhhhhhmM"$c2"my  %s"
  1932. "$c2       /m"$c1"MMMMMMNNNmmmdddhhhhhmMNh"$c2"s:  %s"
  1933. "$c2    \`o"$c1"NMMMMMMMNNNmmmddddhhdmMNhs"$c2"+\`   %s"
  1934. "$c2  \`s"$c1"NMMMMMMMMNNNmmmdddddmNMmhs"$c2"/.     %s"
  1935. "$c2 /N"$c1"MMMMMMMMNNNNmmmdddmNMNdso"$c2":\`       %s"
  1936. "$c2+M"$c1"MMMMMMNNNNNmmmmdmNMNdso"$c2"/-          %s"
  1937. "$c2yM"$c1"MNNNNNNNmmmmmNNMmhs+/"$c2"-\`              %s"
  1938. "$c2/h"$c1"MMNNNNNNNNMNdhs++/"$c2"-\`               %s"
  1939. "$c2\`/"$c1"ohdmmddhys+++/:"$c2".\`                  %s"
  1940. "$c2  \`-//////:--.                       %s")
  1941.         ;;
  1942.  
  1943.  
  1944.         "Funtoo-text")
  1945.             if [[ "$no_color" != "1" ]]; then
  1946.                 c1=$(getColor 'white') # White
  1947.                 c2=$(getColor 'light purple') # Light Purple
  1948.             fi
  1949.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1950.             startline="0"
  1951.             fulloutput=("                                                     %s"
  1952. "                                                    %s"
  1953. "                                                    %s"
  1954. "                                                    %s"
  1955. "${c1}     _______               ____                     %s"
  1956. "${c1}    /MMMMMMM/             /MMMM| _____  _____       %s"
  1957. "${c1} __/M${c2}.MMM.${c1}M/_____________|M${c2}.M${c1}MM|/MMMMM\/MMMMM\      %s"
  1958. "${c1}|MMMM${c2}MM'${c1}MMMMMMMMMMMMMMMMMMM${c2}MM${c1}MMMM${c2}.MMMM..MMMM.${c1}MM\    %s"
  1959. "${c1}|MM${c2}MMMMMMM${c1}/m${c2}MMMMMMMMMMMMMMMMMMMMMM${c1}MMMM${c2}MM${c1}MMMM${c2}MM${c1}MM|   %s"
  1960. "${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"
  1961. "${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"
  1962. "${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"
  1963. "${c1}  |MM${c2}MM${c1}MMM${c2}MM${c1}MMMMMM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MMMMM'${c1}M|                  %s"
  1964. "${c1}  |MM${c2}MM${c1}MMM${c2}MMMMMMMMMMMMMMMMM MM'${c1}M/                   %s"
  1965. "${c1}  |MMMMMMMMMMMMMMMMMMMMMMMMMMMM/                    %s"
  1966. "                                                    %s"
  1967. "                                                    %s"
  1968. "                                                    %s")
  1969.         ;;
  1970.  
  1971.         "Fedora")
  1972.             if [[ "$no_color" != "1" ]]; then
  1973.                 c1=$(getColor 'white') # White
  1974.                 c2=$(getColor 'light blue') # Light Blue
  1975.             fi
  1976.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  1977.             startline="0"
  1978.             fulloutput=("$c2           /:-------------:\          %s"
  1979. "$c2        :-------------------::       %s"
  1980. "$c2      :-----------"$c1"/shhOHbmp"$c2"---:\\     %s"
  1981. "$c2    /-----------"$c1"omMMMNNNMMD  "$c2"---:    %s"
  1982. "$c2   :-----------"$c1"sMMMMNMNMP"$c2"     ---:   %s"
  1983. "$c2  :-----------"$c1":MMMdP"$c2"-----      ---   %s"
  1984. "$c2 ,------------"$c1":MMMd"$c2"------      ---:  %s"
  1985. "$c2 :------------"$c1":MMMd"$c2"-----      .---:  %s"
  1986. "$c2 :----    "$c1"oNMMMMMMMMMNho"$c2"     .----:  %s"
  1987. "$c2 :--      "$c1"+shhhMMMmhhy++"$c2"   .------   %s"
  1988. "$c2 :-      -----"$c1":MMMd"$c2"--------------:   %s"
  1989. "$c2 :-     ------"$c1"/MMMd"$c2"-------------;    %s"
  1990. "$c2 :-    ${c1}..${c2}----"$c1"/hMMMy"$c2"------------:     %s"
  1991. "$c2 :--"$c1" :dMNdhhdNMMNo"$c2"------------;      %s"
  1992. "$c2 :---"$c1":sdNMMMMNds:"$c2"------------:       %s"
  1993. "$c2 :------"$c1":://:"$c2"-------------::         %s"
  1994. "$c2 :---------------------://           %s"
  1995. "                                     %s")
  1996.         ;;
  1997.  
  1998.         "FreeBSD")
  1999.             if [[ "$no_color" != "1" ]]; then
  2000.                 c1=$(getColor 'white') # white
  2001.                 c2=$(getColor 'light red') # Light Red
  2002.             fi
  2003.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2004.             startline="0"
  2005.             fulloutput=("                                      %s"   # user@host
  2006. "   "$c1"\`\`\`                        "$c2"\`      %s"      # OS
  2007. "  "$c1"\` \`.....---..."$c2"....--.\`\`\`   -/      %s"     # Kernel
  2008. "  "$c1"+o   .--\`         "$c2"/y:\`      +.     %s"        # Uptime
  2009. "  "$c1" yo\`:.            "$c2":o      \`+-      %s"        # Packages
  2010. "    "$c1"y/               "$c2"-/\`   -o/       %s"         # Shell
  2011. "   "$c1".-                  "$c2"::/sy+:.      %s"          # Resolution
  2012. "   "$c1"/                     "$c2"\`--  /      %s"         # DE
  2013. "  "$c1"\`:                          "$c2":\`     %s"        # WM
  2014. "  "$c1"\`:                          "$c2":\`     %s"        # WM Theme
  2015. "   "$c1"/                          "$c2"/      %s"          # GTK2 Theme
  2016. "   "$c1".-                        "$c2"-.      %s"          # GTK3 Theme
  2017. "    "$c1"--                      "$c2"-.       %s"          # Icon Theme
  2018. "     "$c1"\`:\`                  "$c2"\`:\`        %s"      # Font
  2019. "       "$c2".--             \`--.          %s"              # Disk
  2020. "         "$c2" .---.....----.             %s"               # CPU
  2021. "                                     %s"                    # GPU
  2022. "                                     %s"                    # RAM
  2023. )
  2024.                ;;
  2025.  
  2026.  
  2027.         "OpenBSD")
  2028.             if [[ "$no_color" != "1" ]]; then
  2029.                 c1=$(getColor 'yellow') # Light Yellow
  2030.                 c2=$(getColor 'brown') # Bold Yellow
  2031.                 c3=$(getColor 'light cyan') # Light Cyan
  2032.                 c4=$(getColor 'light red') # Light Red
  2033.                 c5=$(getColor 'dark grey')
  2034.             fi
  2035.             if [ -n "${my_lcolor}" ]; then c1="$my_lcolor"; c2="${my_color}"; fi
  2036.             startline="3"
  2037.             fulloutput=(
  2038. "                                       "$c3" _      "
  2039. "                                       "$c3"(_)      "
  2040. ""$c1"              |    .                            "
  2041. ""$c1"          .   |L  /|   .         "$c3" _      %s"
  2042. ""$c1"      _ . |\ _| \--+._/| .       "$c3"(_)    %s"
  2043. ""$c1"     / ||\| Y J  )   / |/| ./           %s"
  2044. ""$c1"    J  |)'( |        \` F\`.'/       "$c3" _   %s"
  2045. ""$c1"  -<|  F         __     .-<        "$c3"(_)  %s"
  2046. ""$c1"    | /       .-'"$c3". "$c1"\`.  /"$c3"-. "$c1"L___         %s"
  2047. ""$c1"    J \      <    "$c3"\ "$c1" | | "$c5"O"$c3"\\\\"$c1"|.-' "$c3" _      %s"
  2048. ""$c1"  _J \  .-    \\\\"$c3"/ "$c5"O "$c3"| "$c1"| \  |"$c1"F    "$c3"(_)     %s"
  2049. ""$c1" '-F  -<_.     \   .-'  \`-' L__         %s"
  2050. ""$c1"__J  _   _.     >-'  "$c2")"$c4"._.   "$c1"|-'         %s         "
  2051. ""$c1" \`-|.'   /_.          "$c4"\_|  "$c1" F           %s     "
  2052. ""$c1"  /.-   .                _.<            %s"
  2053. ""$c1" /'    /.'             .'  \`\           %s"
  2054. ""$c1"  /L  /'   |/      _.-'-\               %s "
  2055. ""$c1" /'J       ___.---'\|                   %s"
  2056. ""$c1"   |\  .--' V  | \`. \`                   %s "
  2057. ""$c1"   |/\`. \`-.     \`._)                    %s"
  2058. ""$c1"      / .-.\                            %s"
  2059. ""$c1"      \ (  \`\                           "
  2060. ""$c1"       \`.\                                  "
  2061. )
  2062.         ;;
  2063.  
  2064.         "DragonFlyBSD")
  2065.             if [[ "$no_color" != "1" ]]; then
  2066.                 c1=$(getColor 'light red') # Red
  2067.                 c2=$(getColor 'white') # White
  2068.                 c3=$(getColor 'yellow') #
  2069.                 c4=$(getColor 'light red')
  2070.             fi
  2071.             startline="0"
  2072.             fulloutput=("                     "$c1" |                     %s"
  2073. "                    "$c1" .-.                   %s"
  2074. "                   "$c3" ()"$c1"I"$c3"()                  %s"
  2075. "              "$c1" \"==.__:-:__.==\"             %s"
  2076. "              "$c1"\"==.__/~|~\__.==\"            %s"
  2077. "              "$c1"\"==._(  Y  )_.==\"            %s"
  2078. "   "$c2".-'~~\"\"~=--...,__"$c1"\/|\/"$c2"__,...--=~\"\"~~'-. %s"
  2079. "  "$c2"(               ..="$c1"\\\\="$c1"/"$c2"=..               )%s"
  2080. "   "$c2"\`'-.        ,.-\"\`;"$c1"/=\\\\"$c2" ;\"-.,_        .-'\`%s"
  2081. "      "$c2" \`~\"-=-~\` .-~\` "$c1"|=|"$c2" \`~-. \`~-=-\"~\`     %s"
  2082. "       "$c2"     .-~\`    /"$c1"|=|"$c2"\    \`~-.          %s"
  2083. "       "$c2"  .~\`       / "$c1"|=|"$c2" \       \`~.       %s"
  2084. " "$c2"    .-~\`        .'  "$c1"|=|"$c2"  \\\\\`.        \`~-.  %s"
  2085. " "$c2"  (\`     _,.-=\"\`  "$c1"  |=|"$c2"    \`\"=-.,_     \`) %s"
  2086. " "$c2"   \`~\"~\"\`        "$c1"   |=|"$c2"           \`\"~\"~\`  %s"
  2087. "                   "$c1"  /=\                   %s"
  2088. "                   "$c1"  \=/                   %s"
  2089. "                   "$c1"   ^                    %s"
  2090. )
  2091.         ;;
  2092.  
  2093.         "NetBSD")
  2094.             if [[ "$no_color" != "1" ]]; then
  2095.                 c1=$(getColor 'light red') # Light Red
  2096.                 c2=$(getColor 'white') # White
  2097.             fi
  2098.             startline="0"
  2099.             fulloutput=(
  2100. "                                  "$c1"__,gnnnOCCCCCOObaau,_      %s"
  2101. "   "$c2"_._                    "$c1"__,gnnCCCCCCCCOPF\"''              %s"
  2102. "  "$c2"(N\\\\\\\\"$c1"XCbngg,._____.,gnnndCCCCCCCCCCCCF\"___,,,,___          %s"
  2103. "   "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOOOOPYvv.     %s"
  2104. "    "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPF\"''               %s"
  2105. "     "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCCCCCCOF\"'                     %s"
  2106. "      "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCCCCCCOF\"'                         %s"
  2107. "       "$c2"\\\\N\\\\\\\\"$c1"XCCCCCCCCCCCCCCCPF\"'                             %s"
  2108. "        "$c2"\\\\N\\\\\\\\"$c1"\"PCOCCCOCCFP\"\"                                  %s"
  2109. "         "$c2"\\\\N\                                                %s"
  2110. "          "$c2"\\\\N\                                               %s"
  2111. "           "$c2"\\\\N\                                              %s"
  2112. "            "$c2"\\\\NN\                                            %s"
  2113. "             "$c2"\\\\NN\                                           %s"
  2114. "              "$c2"\\\\NNA.                                         %s"
  2115. "               "$c2"\\\\NNA,                                        %s"
  2116. "                "$c2"\\\\NNN,                                       %s"
  2117. "                 "$c2"\\\\NNN\                                      %s"
  2118. "                  "$c2"\\\\NNN\ "
  2119. "                   "$c2"\\\\NNNA")
  2120.         ;;
  2121.  
  2122.         "Mandriva"|"Mandrake")
  2123.             if [[ "$no_color" != "1" ]]; then
  2124.                 c1=$(getColor 'light blue') # Light Blue
  2125.                 c2=$(getColor 'yellow') # Bold Yellow
  2126.             fi
  2127.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2128.             startline="0"
  2129.             fulloutput=("                                          %s"
  2130. "$c2                         \`\`              %s"
  2131. "$c2                        \`-.              %s"
  2132. "$c1       \`               $c2.---              %s"
  2133. "$c1     -/               $c2-::--\`             %s"
  2134. "$c1   \`++    $c2\`----...\`\`\`-:::::.             %s"
  2135. "$c1  \`os.      $c2.::::::::::::::-\`\`\`     \`  \` %s"
  2136. "$c1  +s+         $c2.::::::::::::::::---...--\` %s"
  2137. "$c1 -ss:          $c2\`-::::::::::::::::-.\`\`.\`\` %s"
  2138. "$c1 /ss-           $c2.::::::::::::-.\`\`   \`    %s"
  2139. "$c1 +ss:          $c2.::::::::::::-            %s"
  2140. "$c1 /sso         $c2.::::::-::::::-            %s"
  2141. "$c1 .sss/       $c2-:::-.\`   .:::::            %s"
  2142. "$c1  /sss+.    $c2..\`$c1  \`--\`    $c2.:::            %s"
  2143. "$c1   -ossso+/:://+/-\`        $c2.:\`           %s"
  2144. "$c1     -/+ooo+/-.              $c2\`           %s"
  2145. "                                         %s"
  2146. "                                         %s")
  2147.         ;;
  2148.  
  2149.         "openSUSE")
  2150.             if [[ "$no_color" != "1" ]]; then
  2151.                 c1=$(getColor 'light green') # Bold Green
  2152.                 c2=$(getColor 'white') # Bold White
  2153.             fi
  2154.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2155.             startline="0"
  2156.             fulloutput=("$c2             .;ldkO0000Okdl;.                %s"
  2157. "$c2         .;d00xl:,'....';:ok00d;.           %s"
  2158. "$c2       .d00l'                ,o00d.         %s"
  2159. "$c2     .d0Kd."$c1" :Okxol:;'.          "$c2":O0d.       %s"
  2160. "$c2    'OK"$c1"KKK0kOKKKKKKKKKKOxo:'      "$c2"lKO'      %s"
  2161. "$c2   ,0K"$c1"KKKKKKKKKKKKKKK0d:"$c2",,,"$c1":dx:"$c2"    ;00,     %s"
  2162. "$c2  .OK"$c1"KKKKKKKKKKKKKKKk."$c2".oOkdl."$c1"'0k."$c2"   cKO.    %s"
  2163. "$c2  :KK"$c1"KKKKKKKKKKKKKKK: "$c2"kKx..od "$c1"lKd"$c2"   .OK:    %s"
  2164. "$c2  dKK"$c1"KKKKKKKKKOx0KKKd "$c2";0KKKO, "$c1"kKKc"$c2"   dKd    %s"
  2165. "$c2  dKK"$c1"KKKKKKKKKK;.;oOKx,.."$c2"'"$c1"..;kKKK0."$c2"  dKd    %s"
  2166. "$c2  :KK"$c1"KKKKKKKKKK0o;...;cdxxOK0Oxc,.  "$c2".0K:    %s"
  2167. "$c2   kKK"$c1"KKKKKKKKKKKKK0xl;'......,cdo  "$c2"lKk     %s"
  2168. "$c2   '0K"$c1"KKKKKKKKKKKKKKKKKKKK00KKOo;  "$c2"c00'     %s"
  2169. "$c2    .kK"$c1"KKOxddxkOO00000Okxoc;'.   "$c2".dKk.      %s"
  2170. "$c2      l0Ko.                    .c00l.       %s"
  2171. "$c2       .l0Kk:.              .;xK0l.         %s"
  2172. "$c2          ,lkK0xl:;,,,,;:ldO0kl,            %s"
  2173. "$c2              .':ldxkkkkxdl:'.              %s")
  2174.         ;;
  2175.  
  2176.         "Slackware")
  2177.             if [[ "$no_color" != "1" ]]; then
  2178.                 c1=$(getColor 'light blue') # Light Blue
  2179.                 c2=$(getColor 'white') # Bold White
  2180.             fi
  2181.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2182.             startline="1"
  2183.             fulloutput=("$c1                   :::::::"
  2184. "$c1             :::::::::::::::::::               %s"
  2185. "$c1          :::::::::::::::::::::::::           %s"
  2186. "$c1        ::::::::"${c2}"cllcccccllllllll"${c1}"::::::        %s"
  2187. "$c1     :::::::::"${c2}"lc               dc"${c1}":::::::      %s"
  2188. "$c1    ::::::::"${c2}"cl   clllccllll    oc"${c1}":::::::::    %s"
  2189. "$c1   :::::::::"${c2}"o   lc"${c1}"::::::::"${c2}"co   oc"${c1}"::::::::::   %s"
  2190. "$c1  ::::::::::"${c2}"o    cccclc"${c1}":::::"${c2}"clcc"${c1}"::::::::::::  %s"
  2191. "$c1  :::::::::::"${c2}"lc        cclccclc"${c1}":::::::::::::  %s"
  2192. "$c1 ::::::::::::::"${c2}"lcclcc          lc"${c1}":::::::::::: %s"
  2193. "$c1 ::::::::::"${c2}"cclcc"${c1}":::::"${c2}"lccclc     oc"${c1}"::::::::::: %s"
  2194. "$c1 ::::::::::"${c2}"o    l"${c1}"::::::::::"${c2}"l    lc"${c1}"::::::::::: %s"
  2195. "$c1  :::::"${c2}"cll"${c1}":"${c2}"o     clcllcccll     o"${c1}":::::::::::  %s"
  2196. "$c1  :::::"${c2}"occ"${c1}":"${c2}"o                  clc"${c1}":::::::::::  %s"
  2197. "$c1   ::::"${c2}"ocl"${c1}":"${c2}"ccslclccclclccclclc"${c1}":::::::::::::   %s"
  2198. "$c1    :::"${c2}"oclcccccccccccccllllllllllllll"${c1}":::::    %s"
  2199. "$c1     ::"${c2}"lcc1lcccccccccccccccccccccccco"${c1}"::::     %s"
  2200. "$c1       ::::::::::::::::::::::::::::::::       %s"
  2201. "$c1         ::::::::::::::::::::::::::::         %s"
  2202. "$c1            ::::::::::::::::::::::"
  2203. "$c1                 ::::::::::::")
  2204.         ;;
  2205.  
  2206.         "Red Hat Linux")
  2207.             if [[ "$no_color" != "1" ]]; then
  2208.                 c1=$(getColor 'white') # White
  2209.                 c2=$(getColor 'light red') # Light Red
  2210.             fi
  2211.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2212.             startline="0"
  2213.             fulloutput=("                                           %s"
  2214. "$c2              \`.-..........\`              %s"
  2215. "$c2             \`////////::.\`-/.             %s"
  2216. "$c2             -: ....-////////.            %s"
  2217. "$c2             //:-::///////////\`           %s"
  2218. "$c2      \`--::: \`-://////////////:           %s"
  2219. "$c2      //////-    \`\`.-:///////// .\`        %s"
  2220. "$c2      \`://////:-.\`    :///////::///:\`     %s"
  2221. "$c2        .-/////////:---/////////////:     %s"
  2222. "$c2           .-://////////////////////.     %s"
  2223. "$c1          yMN+\`.-$c2::///////////////-\`      %s"
  2224. "$c1       .-\`:NMMNMs\`  \`..-------..\`         %s"
  2225. "$c1        MN+/mMMMMMhoooyysshsss            %s"
  2226. "$c1 MMM    MMMMMMMMMMMMMMyyddMMM+            %s"
  2227. "$c1  MMMM   MMMMMMMMMMMMMNdyNMMh\`     hyhMMM %s"
  2228. "$c1   MMMMMMMMMMMMMMMMyoNNNMMM+.   MMMMMMMM  %s"
  2229. "$c1    MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM   %s"
  2230. "                                          %s")
  2231.         ;;
  2232.  
  2233.         "Frugalware")
  2234.             if [[ "$no_color" != "1" ]]; then
  2235.                 c1=$(getColor 'white') # White
  2236.                 c2=$(getColor 'light blue') # Light Blue
  2237.             fi
  2238.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2239.             startline="3"
  2240.             fulloutput=("${c2}          \`++/::-.\`"
  2241. "${c2}         /o+++++++++/::-.\`"
  2242. "${c2}        \`o+++++++++++++++o++/::-.\`"
  2243. "${c2}        /+++++++++++++++++++++++oo++/:-.\`\`         %s"
  2244. "${c2}       .o+ooooooooooooooooooosssssssso++oo++/:-\`  %s"
  2245. "${c2}       ++osoooooooooooosssssssssssssyyo+++++++o:  %s"
  2246. "${c2}      -o+ssoooooooooooosssssssssssssyyo+++++++s\`  %s"
  2247. "${c2}      o++ssoooooo++++++++++++++sssyyyyo++++++o:   %s"
  2248. "${c2}     :o++ssoooooo"${c1}"/-------------"${c2}"+syyyyyo+++++oo    %s"
  2249. "${c2}    \`o+++ssoooooo"${c1}"/-----"${c2}"+++++ooosyyyyyyo++++os:    %s"
  2250. "${c2}    /o+++ssoooooo"${c1}"/-----"${c2}"ooooooosyyyyyyyo+oooss     %s"
  2251. "${c2}   .o++++ssooooos"${c1}"/------------"${c2}"syyyyyyhsosssy-     %s"
  2252. "${c2}   ++++++ssooooss"${c1}"/-----"${c2}"+++++ooyyhhhhhdssssso      %s"
  2253. "${c2}  -s+++++syssssss"${c1}"/-----"${c2}"yyhhhhhhhhhhhddssssy.      %s"
  2254. "${c2}  sooooooyhyyyyyh"${c1}"/-----"${c2}"hhhhhhhhhhhddddyssy+       %s"
  2255. "${c2} :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy\`       %s"
  2256. "${c2} yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/        %s"
  2257. "${c2}-ysooooooydhhhhhhhhhhhddddddddddddddddssy         %s"
  2258. "${c2} .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:         %s"
  2259. "${c2}       \`\`.-/+oosysssssssssssssssssssssss          %s"
  2260. "${c2}               \`\`.:/+osyysssssssssssssh.          %s"
  2261. "${c2}                        \`-:/+osyyssssyo"
  2262. "${c2}                                .-:+++\`")
  2263.         ;;
  2264.  
  2265.  
  2266.         "Peppermint")
  2267.             if [[ "$no_color" != "1" ]]; then
  2268.                 c1=$(getColor 'white') # White
  2269.                 c2=$(getColor 'light red') # Light Red
  2270.             fi
  2271.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2272.             startline="0"
  2273.             fulloutput=("${c2}             8ZZZZZZ"${c1}"MMMMM               %s"
  2274. "${c2}          .ZZZZZZZZZ"${c1}"MMMMMMM.           %s"
  2275. "${c1}        MM"${c2}"ZZZZZZZZZ"${c1}"MMMMMMM"${c2}"ZZZZ         %s"
  2276. "${c1}      MMMMM"${c2}"ZZZZZZZZ"${c1}"MMMMM"${c2}"ZZZZZZZM       %s"
  2277. "${c1}     MMMMMMM"${c2}"ZZZZZZZ"${c1}"MMMM"${c2}"ZZZZZZZZZ.      %s"
  2278. "${c1}    MMMMMMMMM"${c2}"ZZZZZZ"${c1}"MMM"${c2}"ZZZZZZZZZZZI     %s"
  2279. "${c1}   MMMMMMMMMMM"${c2}"ZZZZZZ"${c1}"MM"${c2}"ZZZZZZZZZZ"${c1}"MMM    %s"
  2280. "${c2}   .ZZZ"${c1}"MMMMMMMMMM"${c2}"IZZ"${c1}"MM"${c2}"ZZZZZ"${c1}"MMMMMMMMM   %s"
  2281. "${c2}   ZZZZZZZ"${c1}"MMMMMMMM"${c2}"ZZ"${c1}"M"${c2}"ZZZZ"${c1}"MMMMMMMMMMM   %s"
  2282. "${c2}   ZZZZZZZZZZZZZZZZ"${c1}"M"${c2}"Z"${c1}"MMMMMMMMMMMMMMM   %s"
  2283. "${c2}   .ZZZZZZZZZZZZZ"${c1}"MMM"${c2}"Z"${c1}"M"${c2}"ZZZZZZZZZZ"${c1}"MMMM   %s"
  2284. "${c2}   .ZZZZZZZZZZZ"${c1}"MMM"${c2}"7ZZ"${c1}"MM"${c2}"ZZZZZZZZZZ7"${c1}"M    %s"
  2285. "${c2}    ZZZZZZZZZ"${c1}"MMMM"${c2}"ZZZZ"${c1}"MMMM"${c2}"ZZZZZZZ77     %s"
  2286. "${c1}     MMMMMMMMMMMM"${c2}"ZZZZZ"${c1}"MMMM"${c2}"ZZZZZ77      %s"
  2287. "${c1}      MMMMMMMMMM"${c2}"7ZZZZZZ"${c1}"MMMMM"${c2}"ZZ77       %s"
  2288. "${c1}       .MMMMMMM"${c2}"ZZZZZZZZ"${c1}"MMMMM"${c2}"Z7Z        %s"
  2289. "${c1}         MMMMM"${c2}"ZZZZZZZZZ"${c1}"MMMMMMM         %s"
  2290. "${c2}           NZZZZZZZZZZZ"${c1}"MMMMM           %s"
  2291. "${c2}              ZZZZZZZZZ"${c1}"MM")
  2292.         ;;
  2293.  
  2294.         "SolusOS")
  2295.             if [[ "$no_color" != "1" ]]; then
  2296.                 c1=$(getColor 'white') # White
  2297.                 c2=$(getColor 'dark grey') # Light Gray
  2298.             fi
  2299.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2300.             startline="0"
  2301.             fulloutput=("${c1}               e         e      %s"
  2302. "${c1}             eee       ee      %s"
  2303. "${c1}            eeee     eee       %s"
  2304. "${c2}        wwwwwwwww"${c1}"eeeeee        %s"
  2305. "${c2}     wwwwwwwwwwwwwww"${c1}"eee        %s"
  2306. "${c2}   wwwwwwwwwwwwwwwwwww"${c1}"eeeeeeee %s"
  2307. "${c2}  wwwww     "${c1}"eeeee"${c2}"wwwwww"${c1}"eeee    %s"
  2308. "${c2} www          "${c1}"eeee"${c2}"wwwwww"${c1}"e      %s"
  2309. "${c2} ww             "${c1}"ee"${c2}"wwwwww       %s"
  2310. "${c2} w                 wwwww       %s"
  2311. "${c2}                   wwwww       %s"
  2312. "${c2}                  wwwww        %s"
  2313. "${c2}                 wwwww         %s"
  2314. "${c2}                wwww           %s"
  2315. "${c2}               wwww            %s"
  2316. "${c2}             wwww              %s"
  2317. "${c2}           www                 %s"
  2318. "${c2}         ww                    %s")
  2319.         ;;
  2320.  
  2321.         "Mageia")
  2322.             if [[ "$no_color" != "1" ]]; then
  2323.                 c1=$(getColor 'white') # White
  2324.                 c2=$(getColor 'light cyan') # Light Cyan
  2325.             fi
  2326.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2327.             startline="0"
  2328.             fulloutput=("$c2               .°°.               %s"
  2329. "$c2                °°   .°°.        %s"
  2330. "$c2                .°°°. °°         %s"
  2331. "$c2                .   .            %s"
  2332. "$c2                 °°° .°°°.       %s"
  2333. "$c2             .°°°.   '___'       %s"
  2334. "$c1            .${c2}'___'     $c1   .      %s"
  2335. "$c1          :dkxc;'.  ..,cxkd;     %s"
  2336. "$c1        .dkk. kkkkkkkkkk .kkd.   %s"
  2337. "$c1       .dkk.  ';cloolc;.  .kkd   %s"
  2338. "$c1       ckk.                .kk;  %s"
  2339. "$c1       xO:                  cOd  %s"
  2340. "$c1       xO:                  lOd  %s"
  2341. "$c1       lOO.                .OO:  %s"
  2342. "$c1       .k00.              .00x   %s"
  2343. "$c1        .k00;            ;00O.   %s"
  2344. "$c1         .lO0Kc;,,,,,,;c0KOc.    %s"
  2345. "$c1            ;d00KKKKKK00d;       %s"
  2346. "$c1               .,KKKK,.            ")
  2347.         ;;
  2348.  
  2349.  
  2350.         "ParabolaGNU/Linux-libre")
  2351.             if [[ "$no_color" != "1" ]]; then
  2352.                 c1=$(getColor 'light purple') # Light Purple
  2353.                 c2=$(getColor 'white') # White
  2354.             fi
  2355.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2356.             startline="0"
  2357.             fulloutput=("                                  %s"
  2358. "${c1}              eeeeeeeee          %s"
  2359. "${c1}          eeeeeeeeeeeeeee        %s"
  2360. "${c1}       eeeeee"${c2}"//////////"${c1}"eeeee     %s"
  2361. "${c1}     eeeee"${c2}"///////////////"${c1}"eeeee   %s"
  2362. "${c1}   eeeee"${c2}"///           ////"${c1}"eeee   %s"
  2363. "${c1}  eeee"${c2}"//              ///"${c1}"eeeee   %s"
  2364. "${c1} eee                 "${c2}"///"${c1}"eeeee    %s"
  2365. "${c1}ee                  "${c2}"//"${c1}"eeeeee     %s"
  2366. "${c1}e                  "${c2}"/"${c1}"eeeeeee      %s"
  2367. "${c1}                  eeeeeee        %s"
  2368. "${c1}                 eeeeee          %s"
  2369. "${c1}                eeeeee           %s"
  2370. "${c1}               eeeee             %s"
  2371. "${c1}              eeee               %s"
  2372. "${c1}            eee                  %s"
  2373. "${c1}           ee                    %s"
  2374. "${c1}          e                      %s")
  2375.         ;;
  2376.  
  2377.  
  2378.         "Viperr")
  2379.             if [[ "$no_color" != "1" ]]; then
  2380.                 c1=$(getColor 'white') # White
  2381.                 c2=$(getColor 'dark grey') # Dark Gray
  2382.             fi
  2383.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2384.             startline="0"
  2385.             fulloutput=("${c1}    wwzapd         dlzazw       %s"
  2386. "${c1}   an"${c2}"#"${c1}"zncmqzepweeirzpas"${c2}"#"${c1}"xz     %s"
  2387. "${c1} apez"${c2}"##"${c1}"qzdkawweemvmzdm"${c2}"##"${c1}"dcmv   %s"
  2388. "${c1}zwepd"${c2}"####"${c1}"qzdweewksza"${c2}"####"${c1}"ezqpa  %s"
  2389. "${c1}ezqpdkapeifjeeazezqpdkazdkwqz  %s"
  2390. "${c1} ezqpdksz"${c2}"##"${c1}"wepuizp"${c2}"##"${c1}"wzeiapdk   %s"
  2391. "${c1}  zqpakdpa"${c2}"#"${c1}"azwewep"${c2}"#"${c1}"zqpdkqze    %s"
  2392. "${c1}    apqxalqpewenwazqmzazq      %s"
  2393. "${c1}     mn"${c2}"##"${c1}"=="${c2}"#######"${c1}"=="${c2}"##"${c1}"qp       %s"
  2394. "${c1}      qw"${c2}"##"${c1}"="${c2}"#######"${c1}"="${c2}"##"${c1}"zl        %s"
  2395. "${c1}      z0"${c2}"######"${c1}"="${c2}"######"${c1}"0a        %s"
  2396. "${c1}       qp"${c2}"#####"${c1}"="${c2}"#####"${c1}"mq         %s"
  2397. "${c1}       az"${c2}"####"${c1}"==="${c2}"####"${c1}"mn         %s"
  2398. "${c1}        ap"${c2}"#########"${c1}"qz          %s"
  2399. "${c1}         9qlzskwdewz           %s"
  2400. "${c1}          zqwpakaiw            %s"
  2401. "${c1}            qoqpe              %s"
  2402. "                               %s")
  2403.         ;;
  2404.  
  2405.  
  2406.         "LinuxDeepin")
  2407.             if [[ "$no_color" != "1" ]]; then
  2408.                 c1=$(getColor 'light green') # Bold Green
  2409.             fi
  2410.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2411.             startline="0"
  2412.             fulloutput=("${c1}  eeeeeeeeeeeeeeeeeeeeeeeeeeee    %s"
  2413. "${c1} eee  eeeeeee          eeeeeeee  %s"
  2414. "${c1}ee   eeeeeeeee      eeeeeeeee ee %s"
  2415. "${c1}e   eeeeeeeee     eeeeeeeee    e %s"
  2416. "${c1}e   eeeeeee    eeeeeeeeee      e %s"
  2417. "${c1}e   eeeeee    eeeee            e %s"
  2418. "${c1}e    eeeee    eee  eee         e %s"
  2419. "${c1}e     eeeee   ee eeeeee        e %s"
  2420. "${c1}e      eeeee   eee   eee       e %s"
  2421. "${c1}e       eeeeeeeeee  eeee       e %s"
  2422. "${c1}e         eeeee    eeee        e %s"
  2423. "${c1}e               eeeeee         e %s"
  2424. "${c1}e            eeeeeee           e %s"
  2425. "${c1}e eee     eeeeeeee             e %s"
  2426. "${c1}eeeeeeeeeeeeeeee               e %s"
  2427. "${c1}eeeeeeeeeeeee                 ee %s"
  2428. "${c1} eeeeeeeeeee                eee  %s"
  2429. "${c1}  eeeeeeeeeeeeeeeeeeeeeeeeeeee   %s"
  2430. "                                 %s")
  2431.         ;;
  2432.  
  2433.  
  2434.         "Chakra")
  2435.             if [[ "$no_color" != "1" ]]; then
  2436.                 c1=$(getColor 'light blue') # Light Blue
  2437.             fi
  2438.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2439.             startline="0"
  2440.             fulloutput=("${c1}      _ _ _        \"kkkkkkkk.          %s"
  2441. "${c1}    ,kkkkkkkk.,    \'kkkkkkkkk,        %s"
  2442. "${c1}    ,kkkkkkkkkkkk., \'kkkkkkkkk.       %s"
  2443. "${c1}   ,kkkkkkkkkkkkkkkk,\'kkkkkkkk,       %s"
  2444. "${c1}  ,kkkkkkkkkkkkkkkkkkk\'kkkkkkk.       %s"
  2445. "${c1}   \"\'\'\"\'\'\',;::,,\"\'\'kkk\'\'kkkkk;   __   %s"
  2446. "${c1}       ,kkkkkkkkkk, \"k\'\'kkkkk\' ,kkkk  %s"
  2447. "${c1}     ,kkkkkkk\' ., \' .: \'kkkk\',kkkkkk  %s"
  2448. "${c1}   ,kkkkkkkk\'.k\'   ,  ,kkkk;kkkkkkkkk %s"
  2449. "${c1}  ,kkkkkkkk\';kk \'k  \"\'k\',kkkkkkkkkkkk %s"
  2450. "${c1} .kkkkkkkkk.kkkk.\'kkkkkkkkkkkkkkkkkk\' %s"
  2451. "${c1} ;kkkkkkkk\'\'kkkkkk;\'kkkkkkkkkkkkk\'\'   %s"
  2452. "${c1} \'kkkkkkk; \'kkkkkkkk.,\"\"\'\'\"\'\'\"\"       %s"
  2453. "${c1}   \'\'kkkk;  \'kkkkkkkkkk.,             %s"
  2454. "${c1}      \';\'    \'kkkkkkkkkkkk.,          %s"
  2455. "${c1}              ';kkkkkkkkkk\'           %s"
  2456. "${c1}                ';kkkkkk\'             %s"
  2457. "${c1}                   \"\'\'\"               %s")
  2458.         ;;
  2459.  
  2460.  
  2461.         "Fuduntu")
  2462.             if [[ "$no_color" != "1" ]]; then
  2463.                 c1=$(getColor 'dark grey') # Dark Gray
  2464.                 c2=$(getColor 'yellow') # Bold Yellow
  2465.                 c3=$(getColor 'light red') # Light Red
  2466.                 c4=$(getColor 'white') # White
  2467.             fi
  2468.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2469.             startline="1"
  2470.             fulloutput=("${c1}       \`dwoapfjsod\`"${c2}"           \`dwoapfjsod\`"
  2471. "${c1}    \`xdwdsfasdfjaapz\`"${c2}"       \`dwdsfasdfjaapzx\`     %s"
  2472. "${c1}  \`wadladfladlafsozmm\`"${c2}"     \`wadladfladlafsozmm\`  %s"
  2473. "${c1} \`aodowpwafjwodisosoaas\`"${c2}" \`odowpwafjwodisosoaaso\` %s"
  2474. "${c1} \`adowofaowiefawodpmmxs\`"${c2}" \`dowofaowiefawodpmmxso\` %s"
  2475. "${c1} \`asdjafoweiafdoafojffw\`"${c2}" \`sdjafoweiafdoafojffwq\` %s"
  2476. "${c1}  \`dasdfjalsdfjasdlfjdd\`"${c2}" \`asdfjalsdfjasdlfjdda\`  %s"
  2477. "${c1}   \`dddwdsfasdfjaapzxaw\`"${c2}" \`ddwdsfasdfjaapzxawo\`   %s"
  2478. "${c1}     \`dddwoapfjsowzocmw\`"${c2}" \`ddwoapfjsowzocmwp\`     %s"
  2479. "${c1}       \`ddasowjfowiejao\`"${c2}" \`dasowjfowiejaow\`       %s"
  2480. "                                                 %s"
  2481. "${c3}       \`ddasowjfowiejao\`"${c4}" \`dasowjfowiejaow\`       %s"
  2482. "${c3}     \`dddwoapfjsowzocmw\`"${c4}" \`ddwoapfjsowzocmwp\`     %s"
  2483. "${c3}   \`dddwdsfasdfjaapzxaw\`"${c4}" \`ddwdsfasdfjaapzxawo\`   %s"
  2484. "${c3}  \`dasdfjalsdfjasdlfjdd\`"${c4}" \`asdfjalsdfjasdlfjdda\`  %s"
  2485. "${c3} \`asdjafoweiafdoafojffw\`"${c4}" \`sdjafoweiafdoafojffwq\` %s"
  2486. "${c3} \`adowofaowiefawodpmmxs\`"${c4}" \`dowofaowiefawodpmmxso\` %s"
  2487. "${c3} \`aodowpwafjwodisosoaas\`"${c4}" \`odowpwafjwodisosoaaso\` %s"
  2488. "${c3}   \`wadladfladlafsozmm\`"${c4}"     \`wadladfladlafsozmm\` %s"
  2489. "${c3}     \`dwdsfasdfjaapzx\`"${c4}"       \`dwdsfasdfjaapzx\`"
  2490. "${c3}        \`woapfjsod\`"${c4}"             \`woapfjsod\`")
  2491.         ;;
  2492.  
  2493.         "Mac OS X")
  2494.             if [[ "$no_color" != "1" ]]; then
  2495.                 c1=$(getColor 'green') # Green
  2496.                 c2=$(getColor 'brown') # Yellow
  2497.                 c3=$(getColor 'light red') # Orange
  2498.                 c4=$(getColor 'red') # Red
  2499.                 c5=$(getColor 'purple') # Purple
  2500.                 c6=$(getColor 'blue') # Blue
  2501.             fi
  2502.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; c5="${my_lcolor}"; c6="${my_lcolor}"; fi
  2503.             startline="0"
  2504.             fulloutput=("\n${c1}                 -/+:.          %s"
  2505. "${c1}                :++++.         %s"
  2506. "${c1}               /+++/.          %s"
  2507. "${c1}       .:-::- .+/:-\`\`.::-      %s"
  2508. "${c1}    .:/++++++/::::/++++++/:\`   %s"
  2509. "${c2}  .:///////////////////////:\`  %s"
  2510. "${c2}  ////////////////////////\`    %s"
  2511. "${c3} -+++++++++++++++++++++++\`     %s"
  2512. "${c3} /++++++++++++++++++++++/      %s"
  2513. "${c4} /sssssssssssssssssssssss.     %s"
  2514. "${c4} :ssssssssssssssssssssssss-    %s"
  2515. "${c5}  osssssssssssssssssssssssso/\` %s"
  2516. "${c5}  \`syyyyyyyyyyyyyyyyyyyyyyyy+\` %s"
  2517. "${c6}   \`ossssssssssssssssssssss/   %s"
  2518. "${c6}     :ooooooooooooooooooo+.    %s"
  2519. "${c6}      \`:+oo+/:-..-:/+o+/-      %s\n")
  2520.         ;;
  2521.  
  2522.         "Windows"|"Cygwin")
  2523.             if [[ "$no_color" != "1" ]]; then
  2524.                 c1=$(getColor 'light red') # Red
  2525.                 c2=$(getColor 'light green') # Green
  2526.                 c3=$(getColor 'light blue') # Blue
  2527.                 c4=$(getColor 'yellow') # Yellow
  2528.             fi
  2529.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  2530.             startline="0"
  2531.             fulloutput=("${c1}        ,.=:!!t3Z3z.,                 %s"
  2532. "${c1}       :tt:::tt333EE3                %s"
  2533. "${c1}       Et:::ztt33EEEL${c2} @Ee.,      .., %s"
  2534. "${c1}      ;tt:::tt333EE7${c2} ;EEEEEEttttt33# %s"
  2535. "${c1}     :Et:::zt333EEQ.${c2} \$EEEEEttttt33QL %s"
  2536. "${c1}     it::::tt333EEF${c2} @EEEEEEttttt33F  %s"
  2537. "${c1}    ;3=*^\`\`\`\"*4EEV${c2} :EEEEEEttttt33@.  %s"
  2538. "${c3}    ,.=::::!t=., ${c1}\`${c2} @EEEEEEtttz33QF   %s"
  2539. "${c3}   ;::::::::zt33)${c2}   \"4EEEtttji3P*    %s"
  2540. "${c3}  :t::::::::tt33.${c4}:Z3z..${c2}  \`\`${c4} ,..g.    %s"
  2541. "${c3}  i::::::::zt33F${c4} AEEEtttt::::ztF     %s"
  2542. "${c3} ;:::::::::t33V${c4} ;EEEttttt::::t3      %s"
  2543. "${c3} E::::::::zt33L${c4} @EEEtttt::::z3F      %s"
  2544. "${c3}{3=*^\`\`\`\"*4E3)${c4} ;EEEtttt:::::tZ\`      %s"
  2545. "${c3}             \`${c4} :EEEEtttt::::z7       %s"
  2546. "${c4}                 \"VEzjt:;;z>*\`       %s")
  2547.         ;;
  2548.  
  2549.         "Trisquel")
  2550.             if [[ "$no_color" != "1" ]]; then
  2551.                 c1=$(getColor 'light blue') # Light Blue
  2552.                 c2=$(getColor 'light cyan') # Blue
  2553.             fi
  2554.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2555.             startline="0"
  2556.             fulloutput=(
  2557. "${c1}                          ▄▄▄▄▄▄       %s"
  2558. "${c1}                       ▄█████████▄    %s"
  2559. "${c1}       ▄▄▄▄▄▄         ████▀   ▀████   %s"
  2560. "${c1}    ▄██████████▄     ████▀   ▄▄ ▀███  %s"
  2561. "${c1}  ▄███▀▀   ▀▀████     ███▄   ▄█   ███ %s"
  2562. "${c1} ▄███   ▄▄▄   ████▄    ▀██████   ▄███ %s"
  2563. "${c1} ███   █▀▀██▄  █████▄     ▀▀   ▄████  %s"
  2564. "${c1} ▀███      ███  ███████▄▄  ▄▄██████   %s"
  2565. "${c1}  ▀███▄   ▄███  █████████████${c2}████▀    %s"
  2566. "${c1}   ▀█████████    ███████${c2}███▀▀▀        %s"
  2567. "${c1}     ▀▀███▀▀     ██${c2}████▀▀             %s"
  2568. "${c2}                ██████▀   ▄▄▄▄        %s"
  2569. "${c2}               █████▀   ████████      %s"
  2570. "${c2}               █████   ███▀  ▀███     %s"
  2571. "${c2}                ████▄   ██▄▄▄  ███    %s"
  2572. "${c2}                 █████▄   ▀▀  ▄██     %s"
  2573. "${c2}                   ██████▄▄▄████      %s"
  2574. "${c2}                      ▀▀█████▀▀       %s")
  2575.         ;;
  2576.  
  2577.         "Manjaro")
  2578.             if [[ "$no_color" != "1" ]]; then
  2579.                 c1=$(getColor 'light green') # Green
  2580.             fi
  2581.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2582.             startline="0"
  2583.             fulloutput=(
  2584. "${c1} ██████████████████  ████████     %s"
  2585. "${c1} ██████████████████  ████████    %s"
  2586. "${c1} ██████████████████  ████████    %s"
  2587. "${c1} ██████████████████  ████████    %s"
  2588. "${c1} ████████            ████████    %s"
  2589. "${c1} ████████  ████████  ████████    %s"
  2590. "${c1} ████████  ████████  ████████    %s"
  2591. "${c1}           ████████  ████████    %s"
  2592. "${c1} ████████  ████████  ████████    %s"
  2593. "${c1} ████████  ████████  ████████    %s"
  2594. "${c1} ████████  ████████  ████████    %s"
  2595. "${c1} ████████  ████████  ████████    %s"
  2596. "${c1} ████████  ████████  ████████    %s"
  2597. "${c1} ████████  ████████  ████████    %s"
  2598. "${c1} ████████  ████████  ████████    %s"
  2599. "${c1} ████████  ████████  ████████    %s"
  2600. "${c1} ████████  ████████  ████████    %s"
  2601. "                                 %s")
  2602.         ;;
  2603.  
  2604.  
  2605.         "Manjaro-tree")
  2606.             if [[ "$no_color" != "1" ]]; then
  2607.                 c1="\e[1;32m" # Green
  2608.                 c2="\e[1;33m" # Yellow
  2609.             fi
  2610.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2611.             startline="0"
  2612.             fulloutput=(
  2613. "${c1}                         ###      %s"
  2614. "${c1}     ###             ####        %s"
  2615. "${c1}        ###       ####           %s"
  2616. "${c1}         ##### #####             %s"
  2617. "${c1}      #################          %s"
  2618. "${c1}    ###     #####    ####        %s"
  2619. "${c1}   ##        ${c2}OOO       ${c1}###       %s"
  2620. "${c1}  #          ${c2}WW         ${c1}##       %s"
  2621. "${c1}            ${c2}WW            ${c1}#      %s"
  2622. "${c2}            WW                   %s"
  2623. "${c2}            WW                   %s"
  2624. "${c2}           WW                    %s"
  2625. "${c2}           WW                    %s"
  2626. "${c2}           WW                    %s"
  2627. "${c2}          WW                     %s"
  2628. "${c2}          WW                     %s"
  2629. "${c2}          WW                     %s"
  2630. "                                 %s")
  2631.         ;;
  2632.  
  2633.  
  2634.  
  2635.         "elementary OS")
  2636.             if [[ "$no_color" != "1" ]]; then
  2637.                 c1=$(getColor 'white') # White
  2638.             fi
  2639.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2640.             startline="0"
  2641.             fulloutput=(
  2642. "                                     %s"
  2643. "${c1}         eeeeeeeeeeeeeeeee          %s"
  2644. "${c1}      eeeeeeeeeeeeeeeeeeeeeee       %s"
  2645. "${c1}    eeeee  eeeeeeeeeeee   eeeee     %s"
  2646. "${c1}  eeee   eeeee       eee     eeee   %s"
  2647. "${c1} eeee   eeee          eee     eeee  %s"
  2648. "${c1}eee    eee            eee       eee %s"
  2649. "${c1}eee   eee            eee        eee %s"
  2650. "${c1}ee    eee           eeee       eeee %s"
  2651. "${c1}ee    eee         eeeee      eeeeee %s"
  2652. "${c1}ee    eee       eeeee      eeeee ee %s"
  2653. "${c1}eee   eeee   eeeeee      eeeee  eee %s"
  2654. "${c1}eee    eeeeeeeeee     eeeeee    eee %s"
  2655. "${c1} eeeeeeeeeeeeeeeeeeeeeeee    eeeee  %s"
  2656. "${c1}  eeeeeeee eeeeeeeeeeee      eeee   %s"
  2657. "${c1}    eeeee                 eeeee     %s"
  2658. "${c1}      eeeeeee         eeeeeee       %s"
  2659. "${c1}         eeeeeeeeeeeeeeeee          %s")
  2660.     ;;
  2661.  
  2662.  
  2663.         "Android")
  2664.             if [[ "$no_color" != "1" ]]; then
  2665.                 c1=$(getColor 'white') # White
  2666.                 c2=$(getColor 'light green') # Bold Green
  2667.             fi
  2668.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2669.             startline="2"
  2670.                     fulloutput=(
  2671. "${c2}       ╲ ▁▂▂▂▁ ╱"
  2672. "${c2}       ▄███████▄ "
  2673. "${c2}      ▄██${c1} ${c2}███${c1} ${c2}██▄        %s"
  2674. "${c2}     ▄███████████▄      %s"
  2675. "${c2}  ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄   %s"
  2676. "${c2}  ██ █████████████ ██   %s"
  2677. "${c2}  ██ █████████████ ██   %s"
  2678. "${c2}  ██ █████████████ ██   %s"
  2679. "${c2}  ██ █████████████ ██   %s"
  2680. "${c2}     █████████████      %s"
  2681. "${c2}      ███████████       %s"
  2682. "${c2}       ██     ██"
  2683. "${c2}       ██     ██")
  2684.         ;;
  2685.  
  2686.         "Scientific Linux")
  2687.             if [[ "$no_color" != "1" ]]; then
  2688.                 c1=$(getColor 'light blue')
  2689.                 c2=$(getColor 'light red')
  2690.                 c3=$(getColor 'white')
  2691.             fi
  2692.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2693.             startline="1"
  2694.             fulloutput=("${c1}                  =/;;/-"
  2695. "${c1}                 +:    //                    %s"
  2696. "${c1}                /;      /;                  %s"
  2697. "${c1}               -X        H.                 %s"
  2698. "${c1} .//;;;:;;-,   X=        :+   .-;:=;:;#;.   %s"
  2699. "${c1} M-       ,=;;;#:,      ,:#;;:=,       ,@   %s"
  2700. "${c1} :#           :#.=/++++/=.$=           #=   %s"
  2701. "${c1}  ,#;         #/:+/;,,/++:+/         ;+.    %s"
  2702. "${c1}    ,+/.    ,;@+,        ,#H;,    ,/+,      %s"
  2703. "${c1}       ;+;;/= @.  ${c2}.H${c3}#${c2}#X   ${c1}-X :///+;         %s"
  2704. "${c1}       ;+=;;;.@,  ${c3}.X${c2}M${c3}@$.  ${c1}=X.//;=#/.        %s"
  2705. "${c1}    ,;:      :@#=        =\$H:     .+#-      %s"
  2706. "${c1}  ,#=         #;-///==///-//         =#,    %s"
  2707. "${c1} ;+           :#-;;;:;;;;-X-           +:   %s"
  2708. "${c1} @-      .-;;;;M-        =M/;;;-.      -X   %s"
  2709. "${c1}  :;;::;;-.    #-        :+    ,-;;-;:==    %s"
  2710. "${c1}               ,X        H.                 %s"
  2711. "${c1}                ;/      #=                  %s"
  2712. "${c1}                 //    +;                   %s"
  2713. "${c1}                  '////'")
  2714.         ;;
  2715.  
  2716.         "BackTrack Linux")
  2717.             if [[ "$no_color" != "1" ]]; then
  2718.                 c1=$(getColor 'white') # White
  2719.                 c2=$(getColor 'light red') # Light Red
  2720.             fi
  2721.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2722.             startline="1"
  2723.             fulloutput=("${c1}.............."
  2724. "${c1}            ..,;:ccc,.                           %s"
  2725. "${c1}          ......''';lxO.                        %s"
  2726. "${c1}.....''''..........,:ld;                        %s"
  2727. "${c1}           .';;;:::;,,.x,                       %s"
  2728. "${c1}      ..'''.            0Xxoc:,.  ...           %s"
  2729. "${c1}  ....                ,ONkc;,;cokOdc',.         %s"
  2730. "${c1} .                   OMo           ':"${c2}"dd"${c1}"o.       %s"
  2731. "${c1}                    dMc               :OO;      %s"
  2732. "${c1}                    0M.                 .:o.    %s"
  2733. "${c1}                    ;Wd                         %s"
  2734. "${c1}                     ;XO,                       %s"
  2735. "${c1}                       ,d0Odlc;,..              %s"
  2736. "${c1}                           ..',;:cdOOd::,.      %s"
  2737. "${c1}                                    .:d;.':;.   %s"
  2738. "${c1}                                       'd,  .'  %s"
  2739. "${c1}                                         ;l   ..%s"
  2740. "${c1}                                          .o    %s"
  2741. "${c1}                                            c   %s"
  2742. "${c1}                                            .'"
  2743. "${c1}                                             .")
  2744.         ;;
  2745.  
  2746.                 "Sabayon")
  2747.                         if [[ "$no_color" != "1" ]]; then
  2748.                                 c1=$(getColor 'white') # White
  2749.                 c2=$(getColor 'light blue') # Blue
  2750.                         fi
  2751.                         if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  2752.                         startline="0"
  2753.                         fulloutput=("${c2}            ...........                %s"
  2754. "${c2}         ..             ..            %s"
  2755. "${c2}      ..                   ..         %s"
  2756. "${c2}    ..           ${c1}o           ${c2}..       %s"
  2757. "${c2}  ..            ${c1}:W'            ${c2}..     %s"
  2758. "${c2} ..             ${c1}.d.             ${c2}..    %s"
  2759. "${c2}:.             ${c1}.KNO              ${c2}.:   %s"
  2760. "${c2}:.             ${c1}cNNN.             ${c2}.:   %s"
  2761. "${c2}:              ${c1}dXXX,              ${c2}:   %s"
  2762. "${c2}:   ${c1}.          dXXX,       .cd,   ${c2}:   %s"
  2763. "${c2}:   ${c1}'kc ..     dKKK.    ,ll;:'    ${c2}:   %s"
  2764. "${c2}:     ${c1}.xkkxc;..dkkkc',cxkkl       ${c2}:   %s"
  2765. "${c2}:.     ${c1}.,cdddddddddddddo:.       ${c2}.:   %s"
  2766. "${c2} ..         ${c1}:lllllll:           ${c2}..    %s"
  2767. "${c2}   ..         ${c1}',,,,,          ${c2}..      %s"
  2768. "${c2}     ..                     ..        %s"
  2769. "${c2}        ..               ..           %s"
  2770. "${c2}          ...............             %s")
  2771.                 ;;
  2772.  
  2773.         *)
  2774.             if [[ "$no_color" != "1" ]]; then
  2775.                 c1=$(getColor 'white') # White
  2776.                 c2=$(getColor 'dark grey') # Light Gray
  2777.                 c3=$(getColor 'yellow') # Light Yellow
  2778.             fi
  2779.             if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  2780.             startline="0"
  2781.             fulloutput=("                             %s"
  2782. "                            %s"
  2783. "                            %s"
  2784. "$c2         #####$c0              %s"
  2785. "$c2        #######             %s"
  2786. "$c2        ##"$c1"O$c2#"$c1"O$c2##             %s"
  2787. "$c2        #$c3#####$c2#             %s"
  2788. "$c2      ##$c1##$c3###$c1##$c2##           %s"
  2789. "$c2     #$c1##########$c2##          %s"
  2790. "$c2    #$c1############$c2##         %s"
  2791. "$c2    #$c1############$c2###        %s"
  2792. "$c3   ##$c2#$c1###########$c2##$c3#        %s"
  2793. "$c3 ######$c2#$c1#######$c2#$c3######      %s"
  2794. "$c3 #######$c2#$c1#####$c2#$c3#######      %s"
  2795. "$c3   #####$c2#######$c3#####        %s"
  2796. "                            %s"
  2797. "                            %s"
  2798. "                            %s")
  2799.         ;;
  2800.     esac
  2801.  
  2802.  
  2803.     # Truncate lines based on terminal width.
  2804.     if [ "$truncateSet" == "Yes" ]; then
  2805.         for ((i=0; i<${#fulloutput[@]}; i++)); do
  2806.             my_out=$(printf "${fulloutput[i]}$c0\n" "${out_array}")
  2807.             my_out_full=$(echo "$my_out" | cat -v)
  2808.             termWidth=$(tput cols)
  2809.             SHOPT_EXTGLOB_STATE=$(shopt -p extglob)
  2810.             read SHOPT_CMD SHOPT_STATE SHOPT_OPT <<< ${SHOPT_EXTGLOB_STATE}
  2811.             if [[ ${SHOPT_STATE} == "-u" ]]; then
  2812.                 shopt -s extglob
  2813.             fi
  2814.  
  2815.             stringReal="${my_out_full//\^\[\[@([0-9]|[0-9];[0-9][0-9])m}"
  2816.  
  2817.             if [[ ${SHOPT_STATE} == "-u" ]]; then
  2818.                 shopt -u extglob
  2819.             fi
  2820.  
  2821.             if [[ "${#stringReal}" -le "${termWidth}" ]]; then
  2822.                 echo -e "${my_out}"$c0
  2823.             elif [[ "${#stringReal}" -gt "${termWidth}" ]]; then
  2824.                 ((NORMAL_CHAR_COUNT=0))
  2825.                 for ((j=0; j<=${#my_out_full}; j++)); do
  2826.                     if [[ "${my_out_full:${j}:3}" == '^[[' ]]; then
  2827.                         if [[ "${my_out_full:${j}:5}" =~ ^\^\[\[[[:digit:]]m$ ]]; then
  2828.                             if [[ ${j} -eq 0 ]]; then
  2829.                                 j=$((${j} + 5))
  2830.                             else
  2831.                                 j=$((${j} + 4))
  2832.                             fi
  2833.                         elif [[ "${my_out_full:${j}:8}" =~ ^\^\[\[[[:digit:]]\;[[:digit:]][[:digit:]]m ]]; then
  2834.                             if [[ ${j} -eq 0 ]]; then
  2835.                                 j=$((${j} + 8))
  2836.                             else
  2837.                                 j=$((${j} + 7))
  2838.                             fi
  2839.                         fi
  2840.                     else
  2841.                         ((NORMAL_CHAR_COUNT++))
  2842.                         if [[ ${NORMAL_CHAR_COUNT} -ge ${termWidth} ]]; then
  2843.                             echo -e "${my_out:0:$((${j} - 5))}"$c0
  2844.                             break 1
  2845.                         fi
  2846.                     fi
  2847.                 done
  2848.             fi
  2849.  
  2850.             if [[ "$i" -ge "$startline" ]]; then
  2851.                 unset out_array[0]
  2852.                 out_array=( "${out_array[@]}" )
  2853.             fi
  2854.         done
  2855.     else
  2856.         #n=${#fulloutput[*]}
  2857.         for ((i=0; i<${#fulloutput[*]}; i++)); do
  2858.             # echo "${out_array[@]}"
  2859.             printf "${fulloutput[i]}$c0\n" "${out_array}"
  2860.             if [[ "$i" -ge "$startline" ]]; then
  2861.                 unset out_array[0]
  2862.                 out_array=( "${out_array[@]}" )
  2863.             fi
  2864.         done
  2865.     fi
  2866.     # Done with ASCII output
  2867. }
  2868.  
  2869. infoDisplay () {
  2870.     textcolor="\033[0m"
  2871.     [[ "$my_hcolor" ]] && textcolor="${my_hcolor}"
  2872.     #TODO: Centralize colors and use them across the board so we only change them one place.
  2873.     myascii="${distro}"
  2874.     [[ "${asc_distro}" ]] && myascii="${asc_distro}"
  2875.     case ${myascii} in
  2876.         "Arch Linux - Old"|"Fedora"|"Mandriva"|"Mandrake"|"Chakra"|"Sabayon"|"Slackware"|"Mac OS X"|"Trisquel") labelcolor=$(getColor 'light blue');;
  2877.         "Arch Linux"|"Frugalware"|"Mageia") labelcolor=$(getColor 'light cyan');;
  2878.         "Mint"|"LMDE"|"openSUSE"|"LinuxDeepin"|"DragonflyBSD"|"Manjaro"|"Manjaro-tree"|"Android") labelcolor=$(getColor 'light green');;
  2879.         "Ubuntu"|"FreeBSD"|"Debian"|"BSD"|"Red Hat Linux"|"Peppermint"|"Cygwin"|"Fuduntu"|"NetBSD"|"Scientific Linux"|"DragonFlyBSD"|"BackTrack Linux") labelcolor=$(getColor 'light red');;
  2880.         "CrunchBang"|"SolusOS"|"Viperr"|"elementary OS") labelcolor=$(getColor 'dark grey');;
  2881.         "Gentoo"|"ParabolaGNU/Linux-libre"|"Funtoo"|"Funtoo-text") labelcolor=$(getColor 'light purple');;
  2882.         *) labelcolor=$(getColor 'yellow');;
  2883.     esac
  2884.     [[ "$my_lcolor" ]] && labelcolor="${my_lcolor}"
  2885.     if [[ "$no_color" == "1" ]]; then labelcolor=""; bold=""; c0=""; textcolor=""; fi
  2886.     # Some verbosity stuff
  2887.     [[ "$verbosity" == "1" ]] && [[ "$screenshot" == "1" ]] && verboseOut "Screenshot will be taken after info is displayed."
  2888.     [[ "$verbosity" == "1" ]] && [[ "$hostshot" == "1" ]] && verboseOut "Screenshot will be transferred/uploaded to specified location."
  2889.     #########################
  2890.     # Info Variable Setting #
  2891.     #########################
  2892.     if [[ "${distro}" == "Android" ]]; then
  2893.         myhostname=$(echo -e "${labelcolor}${hostname}"); out_array=( "${out_array[@]}" "$myhostname" )
  2894.         mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $distro_ver"); out_array=( "${out_array[@]}" "$mydistro" )
  2895.         mydevice=$(echo -e "$labelcolor Device:$textcolor $device"); out_array=( "${out_array[@]}" "$mydevice" )
  2896.         myrom=$(echo -e "$labelcolor ROM:$textcolor $rom"); out_array=( "${out_array[@]}" "$myrom" )
  2897.         mybaseband=$(echo -e "$labelcolor Baseband:$textcolor $baseband"); out_array=( "${out_array[@]}" "$mybaseband" )
  2898.         mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel"); out_array=( "${out_array[@]}" "$mykernel" )
  2899.         myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime"); out_array=( "${out_array[@]}" "$myuptime" )
  2900.         mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mycpu" )
  2901.         mygpu=$(echo -e "$labelcolor GPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mygpu" )
  2902.         mymem=$(echo -e "$labelcolor RAM:$textcolor $mem"); out_array=( "${out_array[@]}" "$mymem" )
  2903.     else
  2904.         if [[ "${display[@]}" =~ "host" ]]; then myinfo=$(echo -e "${labelcolor}${myUser}$textcolor${bold}@${c0}${labelcolor}${myHost}"); out_array=( "${out_array[@]}" "$myinfo" ); ((display_index++)); fi
  2905.         if [[ "${display[@]}" =~ "distro" ]]; then
  2906.             if [ "$distro" == "Mac OS X" ]; then
  2907.                 sysArch=`str1=$(ioreg -l -p IODeviceTree | grep firmware-abi);echo ${str1: -4: 2}bit`
  2908.                 prodVers=`prodVers=$(sw_vers|grep ProductVersion);echo ${prodVers:15}`
  2909.                 buildVers=`buildVers=$(sw_vers|grep BuildVersion);echo ${buildVers:14}`
  2910.                 if [ -n "$distro_more" ]; then mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more $sysArch")
  2911.                 else mydistro=$(echo -e "$labelcolor OS:$textcolor $sysArch $distro $prodVers $buildVers"); fi
  2912.             elif [[ "$distro" == "Cygwin" ]]; then
  2913.                 distro=$(wmic os get name | head -2 | tail -1)
  2914.                 distro=$(expr match "$distro" '\(Microsoft Windows [A-Za-z0-9]\+\)')
  2915.                 sysArch=$(wmic os get OSArchitecture | head -2 | tail -1 | tr -d '\r ')
  2916.                 mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch")
  2917.             else
  2918.                 if [ -n "$distro_more" ]; then mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more")
  2919.                 else mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch"); fi
  2920.             fi
  2921.             out_array=( "${out_array[@]}" "$mydistro" )
  2922.             ((display_index++))
  2923.         fi
  2924.         if [[ "${display[@]}" =~ "kernel" ]]; then mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel"); out_array=( "${out_array[@]}" "$mykernel" ); ((display_index++)); fi
  2925.         if [[ "${display[@]}" =~ "uptime" ]]; then myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime"); out_array=( "${out_array[@]}" "$myuptime" ); ((display_index++)); fi
  2926.         if [[ "${display[@]}" =~ "pkgs" ]]; then mypkgs=$(echo -e "$labelcolor Packages:$textcolor $pkgs"); out_array=( "${out_array[@]}" "$mypkgs" ); ((display_index++)); fi
  2927.         if [[ "${display[@]}" =~ "shell" ]]; then myshell=$(echo -e "$labelcolor Shell:$textcolor $myShell"); out_array=( "${out_array[@]}" "$myshell" ); ((display_index++)); fi
  2928.         if [[ -n "$DISPLAY" ]]; then
  2929.             if [[ "${display[@]}" =~ "res" ]]; then myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution"); out_array=( "${out_array[@]}" "$myres" ); ((display_index++)); fi
  2930.             if [[ "${display[@]}" =~ "de" ]]; then
  2931.                 if [[ "${DE}" != "Not Present" ]]; then
  2932.                     myde=$(echo -e "$labelcolor DE:$textcolor $DE"); out_array=( "${out_array[@]}" "$myde" ); ((display_index++))
  2933.                 fi
  2934.             fi
  2935.             if [[ "${display[@]}" =~ "wm" ]]; then mywm=$(echo -e "$labelcolor WM:$textcolor $WM"); out_array=( "${out_array[@]}" "$mywm" ); ((display_index++)); fi
  2936.             if [[ "${display[@]}" =~ "wmtheme" ]]; then
  2937.                     if [[ "${Win_theme}" == "Not Present" ]]; then
  2938.                         :
  2939.                     else
  2940.                         mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme"); out_array=( "${out_array[@]}" "$mywmtheme" ); ((display_index++)); fi
  2941.                     fi
  2942.             if [[ "${display[@]}" =~ "gtk" ]]; then
  2943.                 if [ "$distro" == "Mac OS X" ]; then
  2944.                     if [ "$gtkIcons" != "Not Found" ]; then
  2945.                         if [ -n "$gtkIcons" ]; then
  2946.                             myicons=$(echo -e "$labelcolor Icon Theme:$textcolor $gtkIcons"); out_array=( "${out_array[@]}" "$myicons" ); ((display_index++))
  2947.                         fi
  2948.                     fi
  2949.                     if [ "$gtkFont" != "Not Found" ]; then
  2950.                         if [ -n "$gtkFont" ]; then
  2951.                             myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont"); out_array=( "${out_array[@]}" "$myfont" ); ((display_index++))
  2952.                         fi
  2953.                     fi
  2954.                 else
  2955.                     if [ "$gtk2Theme" != "Not Found" ]; then
  2956.                         if [ -n "$gtk2Theme" ]; then
  2957.                             mygtk2=$(echo -e "$labelcolor GTK2 Theme:$textcolor $gtk2Theme"); out_array=( "${out_array[@]}" "$mygtk2" ); ((display_index++))
  2958.                         fi
  2959.                     fi
  2960.                     if [ "$gtk3Theme" != "Not Found" ]; then
  2961.                         if [ -n "$gtk3Theme" ]; then
  2962.                             mygtk3=$(echo -e "$labelcolor GTK3 Theme:$textcolor $gtk3Theme"); out_array=( "${out_array[@]}" "$mygtk3" ); ((display_index++))
  2963.                         fi
  2964.                     fi
  2965.                     if [ "$gtkIcons" != "Not Found" ]; then
  2966.                         if [ -n "$gtkIcons" ]; then
  2967.                             myicons=$(echo -e "$labelcolor Icon Theme:$textcolor $gtkIcons"); out_array=( "${out_array[@]}" "$myicons" ); ((display_index++))
  2968.                         fi
  2969.                     fi
  2970.                     if [ "$gtkFont" != "Not Found" ]; then
  2971.                         if [ -n "$gtkFont" ]; then
  2972.                             myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont"); out_array=( "${out_array[@]}" "$myfont" ); ((display_index++))
  2973.                         fi
  2974.                     fi
  2975.                     # [ "$gtkBackground" ] && mybg=$(echo -e "$labelcolor BG:$textcolor $gtkBackground"); out_array=( "${out_array[@]}" "$mybg" ); ((display_index++))
  2976.                 fi
  2977.             fi
  2978.         elif [[ "$fake_distro" == "Cygwin" ]]; then
  2979.             if [[ "${display[@]}" =~ "res" ]]; then myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution"); out_array=( "${out_array[@]}" "$myres" ); ((display_index++)); fi
  2980.             if [[ "${display[@]}" =~ "de" ]]; then
  2981.                 if [[ "${DE}" != "Not Present" ]]; then
  2982.                     myde=$(echo -e "$labelcolor DE:$textcolor $DE"); out_array=( "${out_array[@]}" "$myde" ); ((display_index++))
  2983.                 fi
  2984.             fi
  2985.             if [[ "${display[@]}" =~ "wm" ]]; then mywm=$(echo -e "$labelcolor WM:$textcolor $WM"); out_array=( "${out_array[@]}" "$mywm" ); ((display_index++)); fi
  2986.             if [[ "${display[@]}" =~ "wmtheme" ]]; then
  2987.                 if [[ "${Win_theme}" == "Not Present" ]]; then
  2988.                     :
  2989.                 else
  2990.                     mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme"); out_array=( "${out_array[@]}" "$mywmtheme" ); ((display_index++))
  2991.                 fi
  2992.             fi
  2993.         fi
  2994.         [[ "${fake_distro}" != "Cygwin" ]] && if [[ "${display[@]}" =~ "disk" ]]; then mydisk=$(echo -e "$labelcolor Disk:$textcolor $diskusage"); out_array=( "${out_array[@]}" "$mydisk" ); ((display_index++)); fi
  2995.         if [[ "${display[@]}" =~ "cpu" ]]; then mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mycpu" ); ((display_index++)); fi
  2996.         if [[ "${display[@]}" =~ "gpu" ]] && [[ "$gpu" != "Not Found" ]]; then mygpu=$(echo -e "$labelcolor GPU:$textcolor $gpu"); out_array=( "${out_array[@]}" "$mygpu" ); ((display_index++)); fi
  2997.         if [[ "${display[@]}" =~ "mem" ]]; then mymem=$(echo -e "$labelcolor RAM:$textcolor $mem"); out_array=( "${out_array[@]}" "$mymem" ); ((display_index++)); fi
  2998.     fi
  2999.     if [[ "$display_type" == "ASCII" ]]; then
  3000.         asciiText
  3001.     else
  3002.         if [[ "${display[@]}" =~ "host" ]]; then echo -e " $myinfo"; fi
  3003.         if [[ "${display[@]}" =~ "distro" ]]; then echo -e "$mydistro"; fi
  3004.         if [[ "${display[@]}" =~ "kernel" ]]; then echo -e "$mykernel"; fi
  3005.         if [[ "${distro}" == "Android" ]]; then
  3006.             echo -e "$mydevice"
  3007.             echo -e "$myrom"
  3008.             echo -e "$mybaseband"
  3009.             echo -e "$mykernel"
  3010.             echo -e "$myuptime"
  3011.             echo -e "$mycpu"
  3012.             echo -e "$mymem"
  3013.         else
  3014.             if [[ "${display[@]}" =~ "uptime" ]]; then echo -e "$myuptime"; fi
  3015.             if [[ "${display[@]}" =~ "pkgs" ]]; then echo -e "$mypkgs"; fi
  3016.             if [[ "${display[@]}" =~ "shell" ]]; then echo -e "$myshell"; fi
  3017.             if [[ "${display[@]}" =~ "res" ]]; then echo -e "$myres"; fi
  3018.             if [[ "${display[@]}" =~ "de" ]]; then
  3019.                 if [[ "${DE}" != "Not Present" ]]; then echo -e "$myde"; fi
  3020.             fi
  3021.             if [[ "${display[@]}" =~ "wm" ]]; then
  3022.                 echo -e "$mywm"
  3023.                 if [[ "${Win_theme}" != "Not Present" ]]; then
  3024.                     echo -e "$mywmtheme"
  3025.                 fi
  3026.             fi
  3027.             if [[ "${display[@]}" =~ "gtk" ]]; then
  3028.                 echo -e "$mygtk2"
  3029.                 echo -e "$mygtk3"
  3030.                 echo -e "$myicons"
  3031.                 echo -e "$myfont"
  3032.             fi
  3033.             if [[ "${display[@]}" =~ "disk" ]]; then echo -e "$mydisk"; fi
  3034.             if [[ "${display[@]}" =~ "cpu" ]]; then echo -e "$mycpu"; fi
  3035.             if [[ "${display[@]}" =~ "gpu" ]]; then echo -e "$mygpu"; fi
  3036.             if [[ "${display[@]}" =~ "mem" ]]; then echo -e "$mymem"; fi
  3037.         fi
  3038.     fi
  3039. }
  3040.  
  3041. ##################
  3042. # Let's Do This!
  3043. ##################
  3044.  
  3045. if [[ -f "$HOME/.screenfetchOR" ]]; then
  3046.     source $HOME/.screenfetchOR
  3047. fi
  3048.  
  3049.  
  3050. if [[ "$overrideDisplay" ]]; then
  3051.     [[ "$verbosity" -eq "1" ]] && verboseOut "Found 'd' flag in syntax. Overriding some display options..."
  3052.     overrideDisplay=${overrideDisplay//,/ }
  3053.     display=( $overrideDisplay )
  3054. fi
  3055.  
  3056. # Check for android
  3057. if type -p getprop >/dev/null 2>&1; then
  3058.     distro="Android"
  3059.     detectmem
  3060.     detectuptime
  3061.     detectkernel
  3062.     detectdroid
  3063.     infoDisplay
  3064.     exit 0
  3065. fi
  3066.  
  3067. for i in "${display[@]}"; do
  3068.     if [[ $i =~ wm ]]; then
  3069.          ! [[ $WM  ]] && detectwm;
  3070.          ! [[ $Win_theme ]] && detectwmtheme;
  3071.     else
  3072.         if [[ "${display[*]}" =~ "$i" ]]; then
  3073.             if [[ "$errorSuppress" == "1" ]]; then detect${i} 2>/dev/null
  3074.             else detect${i}; fi
  3075.         fi
  3076.     fi
  3077. done
  3078.  
  3079. infoDisplay
  3080. [ "$screenshot" == "1" ] && takeShot
  3081. [ "$exportTheme" == "1" ] && themeExport
  3082.  
  3083. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement