Advertisement
MorpheusArch

Screenfetch source code

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