Arctis

screenfetch

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