screenfetch 129 KB

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