Advertisement
SageTheWizard

Mizaki Screenfetch

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