screenfetch.sh 242 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557
  1. #!/usr/bin/env bash
  2. # screenFetch - a CLI Bash script to show system/theme info in screenshots
  3. # Copyright (c) 2010-2019 Brett Bohnenkamper <kittykatt@kittykatt.us>
  4. # This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation, either version 3 of the License, or
  7. # (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  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 the IRC channel at irc://irc.rizon.net/screenFetch.
  19. # to put forth suggestions/ideas. Thank you.
  20. # Requires: bash 4.0+
  21. # Optional dependencies: xorg-xdpyinfo (resoluton detection)
  22. # scrot (screenshot taking)
  23. # curl (screenshot uploading)
  24. #LANG=C
  25. #LANGUAGE=C
  26. #LC_ALL=C
  27. scriptVersion="3.9.1"
  28. ######################
  29. # Settings for fetcher
  30. ######################
  31. # This setting controls what ASCII logo is displayed.
  32. # distro="Linux"
  33. # This sets the information to be displayed. Available: distro, Kernel, DE, WM, Win_theme, Theme, Icons, Font, Background, ASCII.
  34. # To get just the information, and not a text-art logo, you would take "ASCII" out of the below variable.
  35. valid_display=(
  36. 'distro'
  37. 'host'
  38. 'kernel'
  39. 'uptime'
  40. 'pkgs'
  41. 'shell'
  42. 'res'
  43. 'de'
  44. 'wm'
  45. 'wmtheme'
  46. 'gtk'
  47. 'disk'
  48. 'cpu'
  49. 'gpu'
  50. 'mem'
  51. )
  52. display=(
  53. 'distro'
  54. 'host'
  55. 'kernel'
  56. 'uptime'
  57. 'pkgs'
  58. 'shell'
  59. 'res'
  60. 'de'
  61. 'wm'
  62. 'wmtheme'
  63. 'gtk'
  64. 'cpu'
  65. 'disk'
  66. 'gpu'
  67. 'mem'
  68. )
  69. # Display Type: ASCII or Text
  70. display_type="ASCII"
  71. # Plain logo
  72. display_logo="no"
  73. # Colors to use for the information found. These are set below according to distribution.
  74. # If you would like to set your OWN color scheme for these, uncomment the lines below and edit them to your heart's content.
  75. # textcolor="\e[0m"
  76. # labelcolor="\e[1;34m"
  77. # Array: WM Process Names
  78. # Order matters!
  79. # Removed WM's: compiz
  80. wmnames=(
  81. 'fluxbox'
  82. 'openbox'
  83. 'blackbox'
  84. 'xfwm4'
  85. 'metacity'
  86. 'kwin'
  87. 'twin'
  88. 'icewm'
  89. 'pekwm'
  90. 'flwm'
  91. 'flwm_topside'
  92. 'fvwm'
  93. 'dwm'
  94. 'awesome'
  95. 'wmaker'
  96. 'stumpwm'
  97. 'musca'
  98. 'xmonad.*'
  99. 'i3'
  100. 'ratpoison'
  101. 'scrotwm'
  102. 'spectrwm'
  103. 'wmfs'
  104. 'wmii'
  105. 'beryl'
  106. 'subtle'
  107. 'e16'
  108. 'enlightenment'
  109. 'sawfish'
  110. 'emerald'
  111. 'monsterwm'
  112. 'dminiwm'
  113. 'compiz'
  114. 'Finder'
  115. 'herbstluftwm'
  116. 'howm'
  117. 'notion'
  118. 'bspwm'
  119. 'cinnamon'
  120. '2bwm'
  121. 'echinus'
  122. 'swm'
  123. 'budgie-wm'
  124. 'dtwm'
  125. '9wm'
  126. 'chromeos-wm'
  127. 'deepin-wm'
  128. 'sway'
  129. 'mwm'
  130. )
  131. # Array with full Ubuntu release codenames, used so that the script will display
  132. # i.e. "Ubuntu 18.04 LTS (Bionic Beaver)" instead of "Ubuntu 18.04 bionic"
  133. ubuntu_codenames=(
  134. '(Warty Warthog)' # 4.10
  135. '(Hoary Hedgehog)' # 5.04
  136. '(Breezy Badger)' # 5.10
  137. 'LTS (Dapper Drake)' # 6.06
  138. '(Edgy Eft)' # 6.10
  139. '(Feisty Fawn)' # 7.04
  140. '(Gutsy Gibbon)' # 7.10
  141. 'LTS (Hardy Heron)' # 8.04
  142. '(Intrepid Ibex)' # 8.10
  143. '(Jaunty Jackalope)' # 9.04
  144. '(Karmic Koala)' # 9.10
  145. 'LTS (Lucid Lynx)' # 10.04
  146. '(Maverick Meerkat)' # 10.10
  147. '(Natty Narwhal)' # 11.04
  148. '(Oneiric Ocelot)' # 11.10
  149. 'LTS (Precise Pangolin)' # 12.04
  150. '(Quantal Quetzal)' # 12.10
  151. '(Raring Ringtail)' # 13.04
  152. '(Saucy Salamander)' # 13.10
  153. 'LTS (Trusty Tahr)' # 14.04
  154. '(Utopic Unicorn)' # 14.10
  155. '(Vivid Vervet)' # 15.04
  156. '(Wily Werewolf)' # 15.10
  157. 'LTS (Xenial Xerus)' # 16.04
  158. '(Yakkety Yak)' # 16.10
  159. '(Zesty Zapus)' # 17.04
  160. '(Artful Aardvark)' # 17.10
  161. 'LTS (Bionic Beaver)' # 18.04
  162. '(Cosmic Cuttlefish)' # 18.10
  163. '(Disco Dingo)' # 19.04
  164. '(Eoan Ermine)' # 19.10
  165. 'LTS (Focal Fossa)' # 20.04
  166. '(Groovy Gorilla)' # 20.10
  167. '(Hirsute Hippo)' # 21.04
  168. )
  169. # Screenshot Settings
  170. # This setting lets the script know if you want to take a screenshot or not. 1=Yes 0=No
  171. screenshot=
  172. # This setting lets the script know if you want to upload the screenshot to a filehost. 1=Yes 0=No
  173. upload=
  174. # This setting lets the script know where you would like to upload the file to.
  175. # Valid hosts are: teknik, mediacrush, imgur, hmp, and a configurable local.
  176. uploadLoc=
  177. # You can specify a custom screenshot command here. Just uncomment and edit.
  178. # Otherwise, we'll be using the default command: scrot -cd3.
  179. # screenCommand="scrot -cd5"
  180. shotfile=$(printf "screenFetch-%s.png" "$(date +'%Y-%m-%d_%H-%M-%S')")
  181. # Verbose Setting - Set to 1 for verbose output.
  182. verbosity=
  183. # Custom lines example:
  184. # screenfetch -C "IP 'WAN'=192.168.0.12,IP 'BRIDGED'=10.1.1.10,IP 'HOST-ONLY'=172.16.25.4,,Web terminal interface=http://10.1.1.10"
  185. #
  186. #... will produce:
  187. #
  188. # IP 'WAN': 192.168.0.12
  189. # IP 'BRIDGED': 10.1.1.10
  190. # IP 'HOST-ONLY': 172.16.25.4
  191. #
  192. # Web terminal interface: http://10.1.1.10
  193. customlines () {
  194. OLD_IFS="${IFS}"
  195. IFS=,
  196. for custom_line in ${custom_lines_string} ; do
  197. while read -r key; do
  198. read -r value
  199. if [[ -z "${key}" ]]; then
  200. custom="" # print an empty line
  201. else
  202. custom=$(echo -e " ${labelcolor}${key}: ${textcolor}${value}");
  203. fi
  204. out_array=( "${out_array[@]}" "${custom}" ); ((display_index++));
  205. done <<< "$(echo "${custom_line}" | tr "=" "\n")"
  206. done
  207. IFS="${OLD_IFS}"
  208. }
  209. #############################################
  210. #### CODE No need to edit past here CODE ####
  211. #############################################
  212. # https://github.com/KittyKatt/screenFetch/issues/549
  213. if [[ "${OSTYPE}" =~ "linux" || "${OSTYPE}" == "gnu" ]]; then
  214. # issue seems to affect Ubuntu; add LSB directories if it appears on other distros too
  215. export GIO_EXTRA_MODULES="/usr/lib/x86_64-linux-gnu/gio/modules:/usr/lib/i686-linux-gnu/gio/modules:$GIO_EXTRA_MODULES"
  216. fi
  217. #########################################
  218. # Static Variables and Common Functions #
  219. #########################################
  220. c0=$'\033[0m' # Reset Text
  221. bold=$'\033[1m' # Bold Text
  222. underline=$'\033[4m' # Underline Text
  223. display_index=0
  224. # User options
  225. gtk_2line="no"
  226. # Static Color Definitions
  227. colorize () {
  228. printf $'\033[0m\033[38;5;%sm' "$1"
  229. }
  230. getColor () {
  231. local tmp_color=""
  232. if [[ -n "$1" ]]; then
  233. if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  234. if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  235. tmp_color=${1,,}
  236. else
  237. tmp_color="$(tr '[:upper:]' '[:lower:]' <<< "${1}")"
  238. fi
  239. else
  240. tmp_color="$(tr '[:upper:]' '[:lower:]' <<< "${1}")"
  241. fi
  242. case "${tmp_color}" in
  243. # Standards
  244. 'black') color_ret='\033[0m\033[30m';;
  245. 'red') color_ret='\033[0m\033[31m';;
  246. 'green') color_ret='\033[0m\033[32m';;
  247. 'brown') color_ret='\033[0m\033[33m';;
  248. 'blue') color_ret='\033[0m\033[34m';;
  249. 'purple') color_ret='\033[0m\033[35m';;
  250. 'cyan') color_ret='\033[0m\033[36m';;
  251. 'yellow') color_ret='\033[0m\033[1;33m';;
  252. 'white') color_ret='\033[0m\033[1;37m';;
  253. # Bolds
  254. 'dark grey'|'dark gray') color_ret='\033[0m\033[1;30m';;
  255. 'light red') color_ret='\033[0m\033[1;31m';;
  256. 'light green') color_ret='\033[0m\033[1;32m';;
  257. 'light blue') color_ret='\033[0m\033[1;34m';;
  258. 'light purple') color_ret='\033[0m\033[1;35m';;
  259. 'light cyan') color_ret='\033[0m\033[1;36m';;
  260. 'light grey'|'light gray') color_ret='\033[0m\033[37m';;
  261. # Some 256 colors
  262. 'orange') color_ret="$(colorize '202')";; #DarkOrange
  263. 'light orange') color_ret="$(colorize '214')";; #Orange1
  264. # HaikuOS
  265. 'black_haiku') color_ret="$(colorize '7')";;
  266. #ROSA color
  267. 'rosa_blue') color_ret='\033[01;38;05;25m';;
  268. # ArcoLinux
  269. 'arco_blue') color_ret='\033[1;38;05;111m';;
  270. esac
  271. [[ -n "${color_ret}" ]] && echo "${color_ret}"
  272. fi
  273. }
  274. verboseOut () {
  275. if [[ "$verbosity" -eq "1" ]]; then
  276. printf '\033[1;31m:: \033[0m%s\n' "$1"
  277. fi
  278. }
  279. errorOut () {
  280. printf '\033[1;37m[[ \033[1;31m! \033[1;37m]] \033[0m%s\n' "$1"
  281. }
  282. stderrOut () {
  283. while IFS='' read -r line; do
  284. printf '\033[1;37m[[ \033[1;31m! \033[1;37m]] \033[0m%s\n' "$line"
  285. done
  286. }
  287. ####################
  288. # Color Defines
  289. ####################
  290. colorNumberToCode () {
  291. local number="$1"
  292. if [[ "${number}" == "na" ]]; then
  293. unset code
  294. elif [[ $(tput colors) -eq "256" ]]; then
  295. code=$(colorize "${number}")
  296. else
  297. case "$number" in
  298. 0|00) code=$(getColor 'black');;
  299. 1|01) code=$(getColor 'red');;
  300. 2|02) code=$(getColor 'green');;
  301. 3|03) code=$(getColor 'brown');;
  302. 4|04) code=$(getColor 'blue');;
  303. 5|05) code=$(getColor 'purple');;
  304. 6|06) code=$(getColor 'cyan');;
  305. 7|07) code=$(getColor 'light grey');;
  306. 8|08) code=$(getColor 'dark grey');;
  307. 9|09) code=$(getColor 'light red');;
  308. 10) code=$(getColor 'light green');;
  309. 11) code=$(getColor 'yellow');;
  310. 12) code=$(getColor 'light blue');;
  311. 13) code=$(getColor 'light purple');;
  312. 14) code=$(getColor 'light cyan');;
  313. 15) code=$(getColor 'white');;
  314. *) unset code;;
  315. esac
  316. fi
  317. echo -n "${code}"
  318. }
  319. detectColors () {
  320. my_colors=$(sed 's/^,/na,/;s/,$/,na/;s/,/ /' <<< "${OPTARG}")
  321. my_lcolor=$(awk -F' ' '{print $1}' <<< "${my_colors}")
  322. my_lcolor=$(colorNumberToCode "${my_lcolor}")
  323. my_hcolor=$(awk -F' ' '{print $2}' <<< "${my_colors}")
  324. my_hcolor=$(colorNumberToCode "${my_hcolor}")
  325. }
  326. supported_distros="ALDOS, Alpine Linux, Amazon Linux, Antergos, Arch Linux (Old and Current Logos), Arch Linux 32, ArcoLinux, Artix Linux, \
  327. blackPanther OS, BLAG, BunsenLabs, CentOS, Chakra, Chapeau, Chrome OS, Chromium OS, CrunchBang, CRUX, \
  328. Debian, Deepin, DesaOS,Devuan, Dragora, DraugerOS, elementary OS, EuroLinux, Evolve OS, Sulin, Exherbo, Fedora, Frugalware, Fuduntu, Funtoo, \
  329. Fux, Gentoo, gNewSense, Guix System, Hyperbola GNU/Linux-libre, januslinux, Jiyuu Linux, Kali Linux, KaOS, KDE neon, Kogaion, Korora, \
  330. LinuxDeepin, Linux Mint, LMDE, Logos, Mageia, Mandriva/Mandrake, Manjaro, Mer, Netrunner, NixOS, OBRevenge, openSUSE, \
  331. OS Elbrus, Oracle Linux, Parabola GNU/Linux-libre, Pardus, Parrot Security, PCLinuxOS, PeppermintOS, Proxmox VE, PureOS, Qubes OS, \
  332. Raspbian, Red Hat Enterprise Linux, ROSA, Sabayon, SailfishOS, Scientific Linux, Siduction, Slackware, Solus, Source Mage GNU/Linux, \
  333. SparkyLinux, SteamOS, SUSE Linux Enterprise, SwagArch, TinyCore, Trisquel, Ubuntu, Viperr, Void and Zorin OS and EndeavourOS"
  334. supported_other="Dragonfly/Free/Open/Net BSD, Haiku, macOS, Windows+Cygwin and Windows+MSYS2."
  335. supported_dms="KDE, GNOME, Unity, Xfce, LXDE, Cinnamon, MATE, Deepin, CDE, RazorQt and Trinity."
  336. supported_wms="2bwm, 9wm, Awesome, Beryl, Blackbox, Cinnamon, chromeos-wm, Compiz, deepin-wm, \
  337. dminiwm, dwm, dtwm, E16, E17, echinus, Emerald, FluxBox, FLWM, FVWM, herbstluftwm, howm, IceWM, KWin, \
  338. Metacity, monsterwm, Musca, Gala, Mutter, Muffin, Notion, OpenBox, PekWM, Ratpoison, Sawfish, ScrotWM, SpectrWM, \
  339. StumpWM, subtle, sway, TWin, WindowMaker, WMFS, wmii, Xfwm4, XMonad and i3."
  340. displayHelp () {
  341. echo "${underline}Usage${c0}:"
  342. echo " ${0} [OPTIONAL FLAGS]"
  343. echo
  344. echo "screenFetch - a CLI Bash script to show system/theme info in screenshots."
  345. echo
  346. echo "${underline}Supported GNU/Linux Distributions${c0}:"
  347. echo "${supported_distros}" | fold -s | sed 's/^/\t/g'
  348. echo
  349. echo "${underline}Other Supported Systems${c0}:"
  350. echo "${supported_other}" | fold -s | sed 's/^/\t/g'
  351. echo
  352. echo "${underline}Supported Desktop Managers${c0}:"
  353. echo "${supported_dms}" | fold -s | sed 's/^/\t/g'
  354. echo
  355. echo "${underline}Supported Window Managers${c0}:"
  356. echo "${supported_wms}" | fold -s | sed 's/^/\t/g'
  357. echo
  358. echo "${underline}Supported Information Displays${c0}:"
  359. echo "${valid_display[@]}" | fold -s | sed 's/^/\t/g'
  360. echo
  361. echo "${underline}Options${c0}:"
  362. echo " ${bold}-v${c0} Verbose output."
  363. echo " ${bold}-o 'OPTIONS'${c0} Allows for setting script variables on the"
  364. echo " command line. Must be in the following format..."
  365. echo " 'OPTION1=\"OPTIONARG1\";OPTION2=\"OPTIONARG2\"'"
  366. echo " ${bold}-d '+var;-var;var'${c0} Allows for setting what information is displayed"
  367. echo " on the command line. You can add displays with +var,var. You"
  368. echo " can delete displays with -var,var. Setting without + or - will"
  369. echo " set display to that explicit combination. Add and delete statements"
  370. echo " may be used in conjunction by placing a ; between them as so:"
  371. echo " +var,var,var;-var,var. See above to find supported display names."
  372. echo " ${bold}-n${c0} Do not display ASCII distribution logo."
  373. echo " ${bold}-L${c0} Display ASCII distribution logo only."
  374. echo " ${bold}-N${c0} Strip all color from output."
  375. echo " ${bold}-w${c0} Wrap long lines."
  376. echo " ${bold}-t${c0} Truncate output based on terminal width (Experimental!)."
  377. echo " ${bold}-p${c0} Portrait output."
  378. echo " ${bold}-s [-u IMGHOST]${c0} Using this flag tells the script that you want it"
  379. echo " to take a screenshot. Use the -u flag if you would like"
  380. echo " to upload the screenshots to one of the pre-configured"
  381. echo " locations. These include: teknik, imgur, mediacrush and hmp."
  382. echo " ${bold}-c string${c0} You may change the outputted colors with -c. The format is"
  383. echo " as follows: [0-9][0-9],[0-9][0-9]. The first argument controls the"
  384. echo " ASCII logo colors and the label colors. The second argument"
  385. echo " controls the colors of the information found. One argument may be"
  386. echo " used without the other. For terminals supporting 256 colors argument"
  387. echo " may also contain other terminal control codes for bold, underline etc."
  388. echo " separated by semicolon. For example -c \"4;1,1;2\" will produce bold"
  389. echo " blue and dim red."
  390. echo " ${bold}-a 'PATH'${c0} You can specify a custom ASCII art by passing the path"
  391. echo " to a Bash script, defining \`startline\` and \`fulloutput\`"
  392. echo " variables, and optionally \`labelcolor\` and \`textcolor\`."
  393. echo " See the \`asciiText\` function in the source code for more"
  394. echo " information on the variables format."
  395. echo " ${bold}-S 'COMMAND'${c0} Here you can specify a custom screenshot command for"
  396. echo " the script to execute. Surrounding quotes are required."
  397. echo " ${bold}-D 'DISTRO'${c0} Here you can specify your distribution for the script"
  398. echo " to use. Surrounding quotes are required."
  399. echo " ${bold}-A 'DISTRO'${c0} Here you can specify the distribution art that you want"
  400. echo " displayed. This is for when you want your distro"
  401. echo " detected but want to display a different logo."
  402. echo " ${bold}-E${c0} Suppress output of errors."
  403. echo " ${bold}-C${c0} Add custom (extra) lines."
  404. echo " For example:"
  405. echo " screenfetch -C 'IP WAN=192.168.0.12,IP BRIDGED=10.1.1.10'"
  406. echo " ... will add two extra lines:"
  407. echo " IP WAN: 192.168.0.12"
  408. echo " IP BRIDGED: 10.1.1.10"
  409. echo " ${bold}-V, --version${c0} Display current script version."
  410. echo " ${bold}-h, --help${c0} Display this help."
  411. }
  412. displayVersion () {
  413. echo "${underline}screenFetch${c0} - Version ${scriptVersion}"
  414. echo "Created by and licensed to Brett Bohnenkamper <kittykatt@kittykatt.us>"
  415. echo "OS X porting done almost solely by shrx (https://github.com/shrx) and John D. Duncan, III (https://github.com/JohnDDuncanIII)."
  416. echo
  417. echo "This is free software; see the source for copying conditions. There is NO warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  418. }
  419. #####################
  420. # Begin Flags Phase
  421. #####################
  422. case $1 in
  423. --help) displayHelp; exit 0;;
  424. --version) displayVersion; exit 0;;
  425. esac
  426. while getopts ":hsu:evVEnLNtlS:A:D:o:c:d:pa:w:C:" flags; do
  427. case $flags in
  428. h) displayHelp; exit 0 ;;
  429. s) screenshot='1' ;;
  430. S) screenCommand="${OPTARG}" ;;
  431. u) upload='1'; uploadLoc="${OPTARG}" ;;
  432. v) verbosity=1 ;;
  433. V) displayVersion; exit 0 ;;
  434. E) errorSuppress='1' ;;
  435. D) distro="${OPTARG}" ;;
  436. A) asc_distro="${OPTARG}" ;;
  437. t) truncateSet='Yes' ;;
  438. n) display_type='Text' ;;
  439. L) display_type='ASCII'; display_logo='Yes' ;;
  440. o) overrideOpts="${OPTARG}" ;;
  441. c) detectColors "${OPTARGS}" ;;
  442. d) overrideDisplay="${OPTARG}" ;;
  443. N) no_color='1' ;;
  444. p) portraitSet='Yes' ;;
  445. a) art="${OPTARG}" ;;
  446. w) lineWrap='Yes' ;;
  447. C) custom_lines_string="${OPTARG}" ;;
  448. :) errorOut "Error: You're missing an argument somewhere. Exiting."; exit 1 ;;
  449. ?) errorOut "Error: Invalid flag somewhere. Exiting."; exit 1 ;;
  450. *) errorOut "Error"; exit 1 ;;
  451. esac
  452. done
  453. ###################
  454. # End Flags Phase
  455. ###################
  456. ############################
  457. # Override Options/Display
  458. ############################
  459. if [[ "$overrideOpts" ]]; then
  460. verboseOut "Found 'o' flag in syntax. Overriding some script variables..."
  461. eval "${overrideOpts}"
  462. fi
  463. #########################
  464. # Begin Detection Phase
  465. #########################
  466. # Distro Detection - Begin
  467. detectdistro () {
  468. local distro_detect=""
  469. if [[ -z "${distro}" ]]; then
  470. distro="Unknown"
  471. # LSB Release or MCST Version Check
  472. if [[ -e "/etc/mcst_version" ]]; then
  473. distro="OS Elbrus"
  474. distro_release="$(tail -n 1 /etc/mcst_version)"
  475. if [[ -n ${distro_release} ]]; then
  476. distro_more="$distro_release"
  477. fi
  478. elif type -p lsb_release >/dev/null 2>&1; then
  479. # read distro_detect distro_release distro_codename <<< $(lsb_release -sirc)
  480. #OLD_IFS=$IFS
  481. #IFS=" "
  482. #read -r -a distro_detect <<< "$(lsb_release -sirc)"
  483. #IFS=$OLD_IFS
  484. #if [[ ${#distro_detect[@]} -eq 3 ]]; then
  485. # distro_codename=${distro_detect[2]}
  486. # distro_release=${distro_detect[1]}
  487. # distro_detect=${distro_detect[0]}
  488. #else
  489. # for i in "${!distro_detect[@]}"; do
  490. # if [[ ${distro_detect[$i]} =~ ^[[:digit:]]+((.[[:digit:]]+|[[:digit:]]+|)+)$ ]]; then
  491. # distro_release=${distro_detect[$i]}
  492. # distro_codename=${distro_detect[*]:$((i+1))}
  493. # distro_detect=${distro_detect[*]:0:${i}}
  494. # break 1
  495. # elif [[ ${distro_detect[$i]} =~ [Nn]/[Aa] || ${distro_detect[$i]} == "rolling" ]]; then
  496. # distro_release=${distro_detect[$i]}
  497. # distro_codename=${distro_detect[*]:$((i+1))}
  498. # distro_detect=${distro_detect[*]:0:${i}}
  499. # break 1
  500. # fi
  501. # done
  502. #fi
  503. distro_detect="$(lsb_release -si)"
  504. distro_release="$(lsb_release -sr)"
  505. distro_codename="$(lsb_release -sc)"
  506. case "${distro_detect}" in
  507. "archlinux"|"Arch Linux"|"arch"|"Arch"|"archarm")
  508. distro="Arch Linux"
  509. distro_release="n/a"
  510. if [ -f /etc/os-release ]; then
  511. os_release="/etc/os-release";
  512. elif [ -f /usr/lib/os-release ]; then
  513. os_release="/usr/lib/os-release";
  514. fi
  515. if [[ -n ${os_release} ]]; then
  516. if grep -q 'antergos' /etc/os-release; then
  517. distro="Antergos"
  518. distro_release="n/a"
  519. fi
  520. if grep -q -i 'logos' /etc/os-release; then
  521. distro="Logos"
  522. distro_release="n/a"
  523. fi
  524. if grep -q -i 'swagarch' /etc/os-release; then
  525. distro="SwagArch"
  526. distro_release="n/a"
  527. fi
  528. if grep -q -i 'obrevenge' /etc/os-release; then
  529. distro="OBRevenge"
  530. distro_release="n/a"
  531. fi
  532. fi
  533. ;;
  534. "ALDOS"|"Aldos")
  535. distro="ALDOS"
  536. ;;
  537. "ArcoLinux")
  538. distro="ArcoLinux"
  539. distro_release="n/a"
  540. ;;
  541. "artixlinux"|"Artix Linux"|"artix"|"Artix"|"Artix release")
  542. distro="Artix"
  543. ;;
  544. "blackPantherOS"|"blackPanther"|"blackpanther"|"blackpantheros")
  545. distro=$(source /etc/lsb-release; echo "$DISTRIB_ID")
  546. distro_release=$(source /etc/lsb-release; echo "$DISTRIB_RELEASE")
  547. distro_codename=$(source /etc/lsb-release; echo "$DISTRIB_CODENAME")
  548. ;;
  549. "BLAG")
  550. distro="BLAG"
  551. distro_more="$(head -n1 /etc/fedora-release)"
  552. ;;
  553. "Chakra")
  554. distro="Chakra"
  555. distro_release=""
  556. ;;
  557. "BunsenLabs")
  558. distro=$(source /etc/lsb-release; echo "$DISTRIB_ID")
  559. distro_release=$(source /etc/lsb-release; echo "$DISTRIB_RELEASE")
  560. distro_codename=$(source /etc/lsb-release; echo "$DISTRIB_CODENAME")
  561. ;;
  562. "Debian")
  563. if [[ -f /etc/crunchbang-lsb-release || -f /etc/lsb-release-crunchbang ]]; then
  564. distro="CrunchBang"
  565. distro_release=$(awk -F'=' '/^DISTRIB_RELEASE=/ {print $2}' /etc/lsb-release-crunchbang)
  566. distro_codename=$(awk -F'=' '/^DISTRIB_DESCRIPTION=/ {print $2}' /etc/lsb-release-crunchbang)
  567. elif [[ -f /etc/siduction-version ]]; then
  568. distro="Siduction"
  569. distro_release="(Debian Sid)"
  570. distro_codename=""
  571. elif [[ -f /usr/bin/pveversion ]]; then
  572. distro="Proxmox VE"
  573. distro_codename="n/a"
  574. distro_release="$(/usr/bin/pveversion | grep -oP 'pve-manager\/\K\d+\.\d+')"
  575. elif [[ -f /etc/os-release ]]; then
  576. if grep -q -i 'Raspbian' /etc/os-release ; then
  577. distro="Raspbian"
  578. distro_release=$(awk -F'=' '/^PRETTY_NAME=/ {print $2}' /etc/os-release)
  579. elif grep -q -i 'BlankOn' /etc/os-release ; then
  580. distro='BlankOn'
  581. distro_release=$(awk -F'=' '/^PRETTY_NAME=/ {print $2}' /etc/os-release)
  582. else
  583. distro="Debian"
  584. fi
  585. else
  586. distro="Debian"
  587. fi
  588. ;;
  589. "DraugerOS")
  590. distro = "DraugerOS"
  591. fake_distro="${distro}"
  592. ;;
  593. "elementary"|"elementary OS")
  594. distro="elementary OS"
  595. ;;
  596. "EvolveOS")
  597. distro="Evolve OS"
  598. ;;
  599. "Sulin")
  600. distro="Sulin"
  601. distro_release=$(awk -F'=' '/^ID_LIKE=/ {print $2}' /etc/os-release)
  602. distro_codename="Roolling donkey" # this is not wrong :D
  603. ;;
  604. "KaOS"|"kaos")
  605. distro="KaOS"
  606. ;;
  607. "frugalware")
  608. distro="Frugalware"
  609. distro_codename=null
  610. distro_release=null
  611. ;;
  612. "Fuduntu")
  613. distro="Fuduntu"
  614. distro_codename=null
  615. ;;
  616. "Fux")
  617. distro="Fux"
  618. distro_codename=null
  619. ;;
  620. "Gentoo")
  621. if [[ "$(lsb_release -sd)" =~ "Funtoo" ]]; then
  622. distro="Funtoo"
  623. else
  624. distro="Gentoo"
  625. fi
  626. #detecting release stable/testing/experimental
  627. if [[ -f /etc/portage/make.conf ]]; then
  628. source /etc/portage/make.conf
  629. elif [[ -d /etc/portage/make.conf ]]; then
  630. source /etc/portage/make.conf/*
  631. fi
  632. case $ACCEPT_KEYWORDS in
  633. [a-z]*) distro_release=stable ;;
  634. ~*) distro_release=testing ;;
  635. '**') distro_release=experimental ;; #experimental usually includes git-versions.
  636. esac
  637. ;;
  638. "Hyperbola GNU/Linux-libre"|"Hyperbola")
  639. distro="Hyperbola GNU/Linux-libre"
  640. distro_codename="n/a"
  641. distro_release="n/a"
  642. ;;
  643. "januslinux"|"janus")
  644. distro="januslinux"
  645. ;;
  646. "LinuxDeepin")
  647. distro="LinuxDeepin"
  648. distro_codename=null
  649. ;;
  650. "Uos")
  651. distro="Uos"
  652. distro_codename=null
  653. ;;
  654. "Kali"|"Debian Kali Linux")
  655. distro="Kali Linux"
  656. if [[ "${distro_codename}" =~ "kali-rolling" ]]; then
  657. distro_codename="n/a"
  658. distro_release="n/a"
  659. fi
  660. ;;
  661. "Lunar Linux"|"lunar")
  662. distro="Lunar Linux"
  663. ;;
  664. "MandrivaLinux")
  665. distro="Mandriva"
  666. case "${distro_codename}" in
  667. "turtle"|"Henry_Farman"|"Farman"|"Adelie"|"pauillac")
  668. distro="Mandriva-${distro_release}"
  669. distro_codename=null
  670. ;;
  671. esac
  672. ;;
  673. "ManjaroLinux")
  674. distro="Manjaro"
  675. ;;
  676. "Mer")
  677. distro="Mer"
  678. if [[ -f /etc/os-release ]]; then
  679. if grep -q 'SailfishOS' /etc/os-release; then
  680. distro="SailfishOS"
  681. distro_codename="$(grep 'VERSION=' /etc/os-release | cut -d '(' -f2 | cut -d ')' -f1)"
  682. distro_release="$(awk -F'=' '/^VERSION=/ {print $2}' /etc/os-release)"
  683. fi
  684. fi
  685. ;;
  686. "neon"|"KDE neon")
  687. distro="KDE neon"
  688. distro_codename="n/a"
  689. distro_release="n/a"
  690. if [[ -f /etc/issue ]]; then
  691. if grep -q '^KDE neon' /etc/issue ; then
  692. distro_release="$(grep '^KDE neon' /etc/issue | cut -d ' ' -f3)"
  693. fi
  694. fi
  695. ;;
  696. "Ol"|"ol"|"Oracle Linux")
  697. distro="Oracle Linux"
  698. [ -f /etc/oracle-release ] && distro_release="$(sed 's/Oracle Linux //' /etc/oracle-release)"
  699. ;;
  700. "LinuxMint")
  701. distro="Mint"
  702. if [[ "${distro_codename}" == "debian" ]]; then
  703. distro="LMDE"
  704. distro_codename="n/a"
  705. distro_release="n/a"
  706. #adding support for LMDE 3
  707. elif [[ "$(lsb_release -sd)" =~ "LMDE" ]]; then
  708. distro="LMDE"
  709. fi
  710. ;;
  711. "openSUSE"|"openSUSE project"|"SUSE LINUX" | "SUSE")
  712. distro="openSUSE"
  713. if [ -f /etc/os-release ]; then
  714. if grep -q -i 'SUSE Linux Enterprise' /etc/os-release ; then
  715. distro="SUSE Linux Enterprise"
  716. distro_codename="n/a"
  717. distro_release=$(awk -F'=' '/^VERSION_ID=/ {print $2}' /etc/os-release | tr -d '"')
  718. fi
  719. fi
  720. if [[ "${distro_codename}" == "Tumbleweed" ]]; then
  721. distro_release="n/a"
  722. fi
  723. ;;
  724. "Parabola GNU/Linux-libre"|"Parabola")
  725. distro="Parabola GNU/Linux-libre"
  726. distro_codename="n/a"
  727. distro_release="n/a"
  728. ;;
  729. "Parrot"|"Parrot Security")
  730. distro="Parrot Security"
  731. ;;
  732. "PCLinuxOS")
  733. distro="PCLinuxOS"
  734. distro_codename="n/a"
  735. distro_release="n/a"
  736. ;;
  737. "Peppermint")
  738. distro="Peppermint"
  739. distro_codename=null
  740. ;;
  741. "rhel")
  742. distro="Red Hat Enterprise Linux"
  743. ;;
  744. "RosaDesktopFresh")
  745. distro="ROSA"
  746. distro_release=$(grep 'VERSION=' /etc/os-release | cut -d ' ' -f3 | cut -d "\"" -f1)
  747. distro_codename=$(grep 'PRETTY_NAME=' /etc/os-release | cut -d ' ' -f4,4)
  748. ;;
  749. "SailfishOS")
  750. distro="SailfishOS"
  751. if [[ -f /etc/os-release ]]; then
  752. distro_codename="$(grep 'VERSION=' /etc/os-release | cut -d '(' -f2 | cut -d ')' -f1)"
  753. distro_release="$(awk -F'=' '/^VERSION=/ {print $2}' /etc/os-release)"
  754. fi
  755. ;;
  756. "Sparky"|"SparkyLinux")
  757. distro="SparkyLinux"
  758. ;;
  759. "Ubuntu")
  760. for each in "${ubuntu_codenames[@]}"; do
  761. if [[ "${each,,}" =~ "${distro_codename,,}" ]]; then
  762. distro_codename="$each"
  763. fi
  764. done
  765. ;;
  766. "Viperr")
  767. distro="Viperr"
  768. distro_codename=null
  769. ;;
  770. "Void"|"VoidLinux")
  771. distro="Void Linux"
  772. distro_codename=""
  773. distro_release=""
  774. ;;
  775. "Zorin")
  776. distro="Zorin OS"
  777. distro_codename=""
  778. ;;
  779. *)
  780. if [ "x$(printf "${distro_detect}" | od -t x1 | sed -e 's/^\w*\ *//' | tr '\n' ' ' | grep 'eb b6 89 ec 9d 80 eb b3 84 ')" != "x" ]; then
  781. distro="Red Star OS"
  782. distro_codename="n/a"
  783. distro_release=$(printf "${distro_release}" | grep -o '[0-9.]' | tr -d '\n')
  784. else
  785. distro="${distro_detect}"
  786. fi
  787. ;;
  788. esac
  789. if [[ "${distro_detect}" =~ "CentOSStream" ]]; then
  790. distro="CentOS Stream"
  791. fi
  792. if [[ "${distro_detect}" =~ "RedHatEnterprise" ]]; then
  793. distro="Red Hat Enterprise Linux"
  794. fi
  795. if [[ "${distro_detect}" =~ "SUSELinuxEnterprise" ]]; then
  796. distro="SUSE Linux Enterprise"
  797. fi
  798. if [[ -n ${distro_release} && ${distro_release} != "n/a" ]]; then
  799. distro_more="$distro_release"
  800. fi
  801. if [[ -n ${distro_codename} && ${distro_codename} != "n/a" ]]; then
  802. distro_more="$distro_more $distro_codename"
  803. fi
  804. fi
  805. # Existing File Check
  806. if [ "$distro" == "Unknown" ]; then
  807. if [ "$(uname -o 2>/dev/null)" ]; then
  808. os="$(uname -o)"
  809. case "$os" in
  810. "Cygwin"|"FreeBSD"|"OpenBSD"|"NetBSD")
  811. distro="$os"
  812. fake_distro="${distro}"
  813. ;;
  814. "DragonFly")
  815. distro="DragonFlyBSD"
  816. fake_distro="${distro}"
  817. ;;
  818. "EndeavourOS")
  819. distro="EndeavourOS"
  820. fake_distro="${distro}"
  821. ;;
  822. "Msys")
  823. distro="Msys"
  824. fake_distro="${distro}"
  825. distro_more="${distro} $(uname -r | head -c 1)"
  826. ;;
  827. "Haiku")
  828. distro="Haiku"
  829. distro_more="$(uname -v | awk '/^hrev/ {print $1}')"
  830. ;;
  831. "GNU/Linux")
  832. if type -p crux >/dev/null 2>&1; then
  833. distro="CRUX"
  834. distro_more="$(crux | awk '{print $3}')"
  835. fi
  836. if type -p nixos-version >/dev/null 2>&1; then
  837. distro="NixOS"
  838. distro_more="$(nixos-version)"
  839. fi
  840. if type -p sorcery >/dev/null 2>&1; then
  841. distro="SMGL"
  842. fi
  843. if (type -p guix && type -p herd) >/dev/null 2>&1; then
  844. distro="Guix System"
  845. fi
  846. ;;
  847. esac
  848. fi
  849. if [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  850. # https://msdn.microsoft.com/en-us/library/ms724832%28VS.85%29.aspx
  851. if wmic os get version | grep -q '^\(6\.[23]\|10\)'; then
  852. fake_distro="Windows - Modern"
  853. fi
  854. fi
  855. if [[ "${distro}" == "Unknown" ]]; then
  856. if [ -f /etc/os-release ]; then
  857. os_release="/etc/os-release";
  858. elif [ -f /usr/lib/os-release ]; then
  859. os_release="/usr/lib/os-release";
  860. fi
  861. if [[ -n ${os_release} ]]; then
  862. distrib_id=$(<${os_release});
  863. for l in $distrib_id; do
  864. if [[ ${l} =~ ^ID= ]]; then
  865. distrib_id=${l//*=}
  866. distrib_id=${distrib_id//\"/}
  867. break 1
  868. fi
  869. done
  870. if [[ -n ${distrib_id} ]]; then
  871. if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  872. distrib_id=$(for i in ${distrib_id}; do echo -n "${i^} "; done)
  873. distro=${distrib_id% }
  874. unset distrib_id
  875. else
  876. 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)
  877. distro=${distrib_id% }
  878. unset distrib_id
  879. fi
  880. fi
  881. # Hotfixes
  882. [[ "${distro}" == "Opensuse-tumbleweed" ]] && distro="openSUSE" && distro_more="Tumbleweed"
  883. [[ "${distro}" == "Opensuse-leap" ]] && distro="openSUSE"
  884. [[ "${distro}" == "void" ]] && distro="Void Linux"
  885. [[ "${distro}" == "evolveos" ]] && distro="Evolve OS"
  886. [[ "${distro}" == "Sulin" ]] && distro="Sulin"
  887. [[ "${distro}" == "antergos" ]] && distro="Antergos"
  888. [[ "${distro}" == "logos" ]] && distro="Logos"
  889. [[ "${distro}" == "Arch" || "${distro}" == "Archarm" || "${distro}" == "archarm" ]] && distro="Arch Linux"
  890. [[ "${distro}" == "elementary" ]] && distro="elementary OS"
  891. [[ "${distro}" == "Fedora" && -d /etc/qubes-rpc ]] && distro="qubes" # Inner VM
  892. [[ "${distro}" == "Ol" || "${distro}" == "ol" ]] && distro="Oracle Linux"
  893. if [[ "${distro}" == "Oracle Linux" && -f /etc/oracle-release ]]; then
  894. distro_more="$(sed 's/Oracle Linux //' /etc/oracle-release)"
  895. fi
  896. # Upstream problem, SL and so EL is using rhel ID in os-release
  897. if [[ "${distro}" == "rhel" ]] || [[ "${distro}" == "Rhel" ]]; then
  898. distro="Red Hat Enterprise Linux"
  899. if grep -q 'Scientific' /etc/os-release; then
  900. distro="Scientific Linux"
  901. elif grep -q 'EuroLinux' /etc/os-release; then
  902. distro="EuroLinux"
  903. fi
  904. fi
  905. [[ "${distro}" == "Neon" ]] && distro="KDE neon"
  906. [[ "${distro}" == "SLED" || "${distro}" == "sled" || "${distro}" == "SLES" || "${distro}" == "sles" ]] && distro="SUSE Linux Enterprise"
  907. if [[ "${distro}" == "SUSE Linux Enterprise" && -f /etc/os-release ]]; then
  908. distro_more="$(awk -F'=' '/^VERSION_ID=/ {print $2}' /etc/os-release | tr -d '"')"
  909. fi
  910. if [[ "${distro}" == "Debian" && -f /usr/bin/pveversion ]]; then
  911. distro="Proxmox VE"
  912. distro_codename="n/a"
  913. distro_release="$(/usr/bin/pveversion | grep -oP 'pve-manager\/\K\d+\.\d+')"
  914. fi
  915. fi
  916. fi
  917. if [[ "${distro}" == "Unknown" && "${OSTYPE}" =~ "linux" && -f /etc/lsb-release ]]; then
  918. LSB_RELEASE=$(</etc/lsb-release)
  919. distro=$(echo "${LSB_RELEASE}" | awk 'BEGIN {
  920. distro = "Unknown"
  921. }
  922. {
  923. if ($0 ~ /[Uu][Bb][Uu][Nn][Tt][Uu]/) {
  924. distro = "Ubuntu"
  925. exit
  926. }
  927. else if ($0 ~ /[Mm][Ii][Nn][Tt]/ && $0 ~ /[Dd][Ee][Bb][Ii][Aa][Nn]/) {
  928. distro = "LMDE"
  929. exit
  930. }
  931. else if ($0 ~ /[Mm][Ii][Nn][Tt]/) {
  932. distro = "Mint"
  933. exit
  934. }
  935. } END {
  936. print distro
  937. }')
  938. fi
  939. if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" =~ "linux" || "${OSTYPE}" == "gnu" ]]; then
  940. for di in arch chakra crunchbang-lsb evolveos exherbo fedora \
  941. frugalware fux gentoo kogaion mageia obarun oracle \
  942. pardus pclinuxos redhat redstar rosa SuSe; do
  943. if [ -f /etc/$di-release ]; then
  944. distro=$di
  945. break
  946. fi
  947. done
  948. if [[ "${distro}" == "crunchbang-lsb" ]]; then
  949. distro="Crunchbang"
  950. elif [[ "${distro}" == "gentoo" ]]; then
  951. grep -q -i 'Funtoo' /etc/gentoo-release && distro="Funtoo"
  952. elif [[ "${distro}" == "mandrake" ]] || [[ "${distro}" == "mandriva" ]]; then
  953. grep -q -i 'PCLinuxOS' /etc/${distro}-release && distro="PCLinuxOS"
  954. elif [[ "${distro}" == "fedora" ]]; then
  955. grep -q -i 'Korora' /etc/fedora-release && distro="Korora"
  956. grep -q -i 'BLAG' /etc/fedora-release && distro="BLAG" && distro_more="$(head -n1 /etc/fedora-release)"
  957. elif [[ "${distro}" == "oracle" ]]; then
  958. distro_more="$(sed 's/Oracle Linux //' /etc/oracle-release)"
  959. elif [[ "${distro}" == "SuSe" ]]; then
  960. distro="openSUSE"
  961. if [ -f /etc/os-release ]; then
  962. if grep -q -i 'SUSE Linux Enterprise' /etc/os-release ; then
  963. distro="SUSE Linux Enterprise"
  964. distro_more=$(awk -F'=' '/^VERSION_ID=/ {print $2}' /etc/os-release | tr -d '"')
  965. fi
  966. fi
  967. if [[ "${distro_more}" =~ "Tumbleweed" ]]; then
  968. distro_more="Tumbleweed"
  969. fi
  970. elif [[ "${distro}" == "redstar" ]]; then
  971. distro_more=$(grep -o '[0-9.]' /etc/redstar-release | tr -d '\n')
  972. elif [[ "${distro}" == "redhat" ]]; then
  973. grep -q -i 'CentOS' /etc/redhat-release && distro="CentOS"
  974. grep -q -i 'Scientific' /etc/redhat-release && distro="Scientific Linux"
  975. grep -q -i 'EuroLinux' /etc/redhat-release && distro="EuroLinux"
  976. grep -q -i 'PCLinuxOS' /etc/redhat-release && distro="PCLinuxOS"
  977. if [ "x$(od -t x1 /etc/redhat-release | sed -e 's/^\w*\ *//' | tr '\n' ' ' | grep 'eb b6 89 ec 9d 80 eb b3 84 ')" != "x" ]; then
  978. distro="Red Star OS"
  979. distro_more=$(grep -o '[0-9.]' /etc/redhat-release | tr -d '\n')
  980. fi
  981. fi
  982. fi
  983. if [[ "${distro}" == "Unknown" ]]; then
  984. if [[ "${OSTYPE}" =~ "linux" || "${OSTYPE}" == "gnu" ]]; then
  985. if [ -f /etc/debian_version ]; then
  986. if [ -f /etc/issue ]; then
  987. if grep -q -i 'gNewSense' /etc/issue ; then
  988. distro="gNewSense"
  989. elif grep -q -i 'KDE neon' /etc/issue ; then
  990. distro="KDE neon"
  991. distro_more="$(cut -d ' ' -f3 /etc/issue)"
  992. else
  993. distro="Debian"
  994. fi
  995. fi
  996. if grep -q -i 'Kali' /etc/debian_version ; then
  997. distro="Kali Linux"
  998. fi
  999. elif [ -f /etc/NIXOS ]; then distro="NixOS"
  1000. elif [ -f /etc/dragora-version ]; then
  1001. distro="Dragora"
  1002. distro_more="$(cut -d, -f1 /etc/dragora-version)"
  1003. elif [ -f /etc/slackware-version ]; then distro="Slackware"
  1004. elif [ -f /usr/share/doc/tc/release.txt ]; then
  1005. distro="TinyCore"
  1006. distro_more="$(cat /usr/share/doc/tc/release.txt)"
  1007. elif [ -f /etc/sabayon-edition ]; then distro="Sabayon"
  1008. fi
  1009. else
  1010. if [[ -x /usr/bin/sw_vers ]] && /usr/bin/sw_vers | grep -i 'Mac OS X' >/dev/null; then
  1011. distro="Mac OS X"
  1012. elif [[ -x /usr/bin/sw_vers ]] && /usr/bin/sw_vers | grep -i 'macOS' >/dev/null; then
  1013. distro="macOS"
  1014. elif [[ -f /var/run/dmesg.boot ]]; then
  1015. distro=$(awk 'BEGIN {
  1016. distro = "Unknown"
  1017. }
  1018. {
  1019. if ($0 ~ /DragonFly/) {
  1020. distro = "DragonFlyBSD"
  1021. exit
  1022. }
  1023. else if ($0 ~ /FreeBSD/) {
  1024. distro = "FreeBSD"
  1025. exit
  1026. }
  1027. else if ($0 ~ /NetBSD/) {
  1028. distro = "NetBSD"
  1029. exit
  1030. }
  1031. else if ($0 ~ /OpenBSD/) {
  1032. distro = "OpenBSD"
  1033. exit
  1034. }
  1035. } END {
  1036. print distro
  1037. }' /var/run/dmesg.boot)
  1038. fi
  1039. fi
  1040. fi
  1041. if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" =~ "linux" || "${OSTYPE}" == "gnu" ]]; then
  1042. if [[ -f /etc/issue ]]; then
  1043. distro=$(awk 'BEGIN {
  1044. distro = "Unknown"
  1045. }
  1046. {
  1047. if ($0 ~ /"Hyperbola GNU\/Linux-libre"/) {
  1048. distro = "Hyperbola GNU/Linux-libre"
  1049. exit
  1050. }
  1051. else if ($0 ~ /"LinuxDeepin"/) {
  1052. distro = "LinuxDeepin"
  1053. exit
  1054. }
  1055. else if ($0 ~ /"Obarun"/) {
  1056. distro = "Obarun"
  1057. exit
  1058. }
  1059. else if ($0 ~ /"Parabola GNU\/Linux-libre"/) {
  1060. distro = "Parabola GNU/Linux-libre"
  1061. exit
  1062. }
  1063. else if ($0 ~ /"Solus"/) {
  1064. distro = "Solus"
  1065. exit
  1066. }
  1067. else if ($0 ~ /"ALDOS"/) {
  1068. distro = "ALDOS"
  1069. exit
  1070. }
  1071. } END {
  1072. print distro
  1073. }' /etc/issue)
  1074. fi
  1075. fi
  1076. if [[ "${distro}" == "Unknown" ]] && [[ "${OSTYPE}" =~ "linux" || "${OSTYPE}" == "gnu" ]]; then
  1077. if [[ -f /etc/system-release ]]; then
  1078. if grep -q -i 'Scientific Linux' /etc/system-release; then
  1079. distro="Scientific Linux"
  1080. elif grep -q -i 'Oracle Linux' /etc/system-release; then
  1081. distro="Oracle Linux"
  1082. fi
  1083. elif [[ -f /etc/lsb-release ]]; then
  1084. if grep -q -i 'CHROMEOS_RELEASE_NAME' /etc/lsb-release; then
  1085. distro="$(awk -F'=' '/^CHROMEOS_RELEASE_NAME=/ {print $2}' /etc/lsb-release)"
  1086. distro_more="$(awk -F'=' '/^CHROMEOS_RELEASE_VERSION=/ {print $2}' /etc/lsb-release)"
  1087. fi
  1088. fi
  1089. fi
  1090. fi
  1091. fi
  1092. if [[ -n ${distro_more} ]]; then
  1093. distro_more="${distro} ${distro_more}"
  1094. fi
  1095. if [[ "${distro}" != "Haiku" ]]; then
  1096. if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  1097. if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  1098. distro=${distro,,}
  1099. else
  1100. distro="$(tr '[:upper:]' '[:lower:]' <<< "${distro}")"
  1101. fi
  1102. else
  1103. distro="$(tr '[:upper:]' '[:lower:]' <<< "${distro}")"
  1104. fi
  1105. fi
  1106. case $distro in
  1107. aldos) distro="ALDOS";;
  1108. alpine) distro="Alpine Linux" ;;
  1109. amzn|amazon|amazon*linux) distro="Amazon Linux" ;;
  1110. antergos) distro="Antergos" ;;
  1111. arch*linux*old) distro="Arch Linux - Old" ;;
  1112. arch|arch*linux) distro="Arch Linux" ;;
  1113. arch32) distro="Arch Linux 32" ;;
  1114. arcolinux|arcolinux*) distro="ArcoLinux" ;;
  1115. artix|artix*linux) distro="Artix Linux" ;;
  1116. blackpantheros|black*panther*) distro="blackPanther OS" ;;
  1117. blag) distro="BLAG" ;;
  1118. bunsenlabs) distro="BunsenLabs" ;;
  1119. centos) distro="CentOS" ;;
  1120. centos*stream) distro="CentOS Stream" ;;
  1121. chakra) distro="Chakra" ;;
  1122. chapeau) distro="Chapeau" ;;
  1123. chrome*|chromium*) distro="Chrome OS" ;;
  1124. crunchbang) distro="CrunchBang" ;;
  1125. crux) distro="CRUX" ;;
  1126. cygwin) distro="Cygwin" ;;
  1127. debian) distro="Debian" ;;
  1128. devuan) distro="Devuan" ;;
  1129. deepin) distro="Deepin" ;;
  1130. uos) distro="Uos" ;;
  1131. desaos) distro="DesaOS" ;;
  1132. dragonflybsd) distro="DragonFlyBSD" ;;
  1133. dragora) distro="Dragora" ;;
  1134. drauger*) distro="DraugerOS" ;;
  1135. elementary|'elementary os') distro="elementary OS";;
  1136. eurolinux) distro="EuroLinux" ;;
  1137. evolveos) distro="Evolve OS" ;;
  1138. sulin) distro="Sulin" ;;
  1139. exherbo|exherbo*linux) distro="Exherbo" ;;
  1140. fedora) distro="Fedora" ;;
  1141. freebsd) distro="FreeBSD" ;;
  1142. freebsd*old) distro="FreeBSD - Old" ;;
  1143. frugalware) distro="Frugalware" ;;
  1144. fuduntu) distro="Fuduntu" ;;
  1145. funtoo) distro="Funtoo" ;;
  1146. fux) distro="Fux" ;;
  1147. gentoo) distro="Gentoo" ;;
  1148. gnewsense) distro="gNewSense" ;;
  1149. guix*system) distro="Guix System" ;;
  1150. haiku) distro="Haiku" ;;
  1151. hyperbolagnu|hyperbolagnu/linux-libre|'hyperbola gnu/linux-libre'|hyperbola) distro="Hyperbola GNU/Linux-libre" ;;
  1152. januslinux) distro="januslinux" ;;
  1153. kali*linux) distro="Kali Linux" ;;
  1154. kaos) distro="KaOS";;
  1155. kde*neon|neon) distro="KDE neon" ;;
  1156. kogaion) distro="Kogaion" ;;
  1157. korora) distro="Korora" ;;
  1158. linuxdeepin) distro="LinuxDeepin" ;;
  1159. lmde) distro="LMDE" ;;
  1160. logos) distro="Logos" ;;
  1161. lunar|lunar*linux) distro="Lunar Linux";;
  1162. mac*os*x|os*x) distro="Mac OS X" ;;
  1163. macos) distro="macOS" ;;
  1164. manjaro) distro="Manjaro" ;;
  1165. mageia) distro="Mageia" ;;
  1166. mandrake) distro="Mandrake" ;;
  1167. mandriva) distro="Mandriva" ;;
  1168. mer) distro="Mer" ;;
  1169. mint|linux*mint) distro="Mint" ;;
  1170. msys|msys2) distro="Msys" ;;
  1171. netbsd) distro="NetBSD" ;;
  1172. netrunner) distro="Netrunner" ;;
  1173. nix|nix*os) distro="NixOS" ;;
  1174. obarun) distro="Obarun" ;;
  1175. obrevenge) distro="OBRevenge" ;;
  1176. ol|oracle*linux) distro="Oracle Linux" ;;
  1177. openbsd) distro="OpenBSD" ;;
  1178. opensuse) distro="openSUSE" ;;
  1179. os*elbrus) distro="OS Elbrus" ;;
  1180. parabolagnu|parabolagnu/linux-libre|'parabola gnu/linux-libre'|parabola) distro="Parabola GNU/Linux-libre" ;;
  1181. pardus) distro="Pardus" ;;
  1182. parrot|parrot*security) distro="Parrot Security" ;;
  1183. pclinuxos|pclos) distro="PCLinuxOS" ;;
  1184. peppermint) distro="Peppermint" ;;
  1185. proxmox|proxmox*ve) distro="Proxmox VE" ;;
  1186. pureos) distro="PureOS" ;;
  1187. qubes) distro="Qubes OS" ;;
  1188. raspbian) distro="Raspbian" ;;
  1189. red*hat*|rhel) distro="Red Hat Enterprise Linux" ;;
  1190. rosa) distro="ROSA" ;;
  1191. red*star|red*star*os) distro="Red Star OS" ;;
  1192. sabayon) distro="Sabayon" ;;
  1193. sailfish|sailfish*os) distro="SailfishOS" ;;
  1194. scientific*) distro="Scientific Linux" ;;
  1195. siduction) distro="Siduction" ;;
  1196. slackware) distro="Slackware" ;;
  1197. smgl|source*mage|source*mage*gnu*linux) distro="Source Mage GNU/Linux" ;;
  1198. solus) distro="Solus" ;;
  1199. sparky|sparky*linux) distro="SparkyLinux" ;;
  1200. steam|steam*os) distro="SteamOS" ;;
  1201. suse*linux*enterprise) distro="SUSE Linux Enterprise" ;;
  1202. swagarch) distro="SwagArch" ;;
  1203. tinycore|tinycore*linux) distro="TinyCore" ;;
  1204. trisquel) distro="Trisquel";;
  1205. grombyangos) distro="GrombyangOS" ;;
  1206. ubuntu) distro="Ubuntu";;
  1207. viperr) distro="Viperr" ;;
  1208. void*linux) distro="Void Linux" ;;
  1209. zorin*) distro="Zorin OS" ;;
  1210. endeavour*) distro="EndeavourOS" ;;
  1211. esac
  1212. if grep -q -i 'Microsoft' /proc/version 2>/dev/null || \
  1213. grep -q -i 'Microsoft' /proc/sys/kernel/osrelease 2>/dev/null
  1214. then
  1215. wsl="(on the Windows Subsystem for Linux)"
  1216. fi
  1217. verboseOut "Finding distro...found as '${distro} ${distro_release}'"
  1218. }
  1219. # Distro Detection - End
  1220. # Host and User detection - Begin
  1221. detecthost () {
  1222. myUser=${USER}
  1223. myHost=${HOSTNAME}
  1224. if [[ -z "$USER" ]]; then
  1225. myUser=$(whoami)
  1226. fi
  1227. if [[ "${distro}" == "Mac OS X" || "${distro}" == "macOS" ]]; then
  1228. myHost=${myHost/.local}
  1229. fi
  1230. verboseOut "Finding hostname and user...found as '${myUser}@${myHost}'"
  1231. }
  1232. # Find Number of Running Processes
  1233. # processnum="$(( $( ps aux | wc -l ) - 1 ))"
  1234. # Kernel Version Detection - Begin
  1235. detectkernel () {
  1236. if [[ "$distro" == "OpenBSD" ]]; then
  1237. kernel=$(uname -a | cut -f 3- -d ' ')
  1238. else
  1239. # compatibility for older versions of OS X:
  1240. kernel=$(uname -m && uname -sr)
  1241. kernel=${kernel//$'\n'/ }
  1242. #kernel=( $(uname -srm) )
  1243. #kernel="${kernel[${#kernel[@]}-1]} ${kernel[@]:0:${#kernel[@]}-1}"
  1244. verboseOut "Finding kernel version...found as '${kernel}'"
  1245. fi
  1246. }
  1247. # Kernel Version Detection - End
  1248. # Uptime Detection - Begin
  1249. detectuptime () {
  1250. unset uptime
  1251. if [[ "${distro}" == "Mac OS X" || "${distro}" == "macOS" || "${distro}" == "FreeBSD" || "${distro}" == "DragonFlyBSD" ]]; then
  1252. boot=$(sysctl -n kern.boottime | cut -d "=" -f 2 | cut -d "," -f 1)
  1253. now=$(date +%s)
  1254. uptime=$((now-boot))
  1255. elif [[ "${distro}" == "OpenBSD" ]]; then
  1256. boot=$(sysctl -n kern.boottime)
  1257. now=$(date +%s)
  1258. uptime=$((now - boot))
  1259. elif [[ "${distro}" == "Haiku" ]]; then
  1260. uptime=$(uptime | awk -F', up ' '{gsub(/ *hours?,/, "h"); gsub(/ *minutes?/, "m"); print $2;}')
  1261. else
  1262. if [[ -f /proc/uptime ]]; then
  1263. uptime=$(</proc/uptime)
  1264. uptime=${uptime//.*}
  1265. fi
  1266. fi
  1267. if [[ -n ${uptime} ]] && [[ "${distro}" != "Haiku" ]]; then
  1268. mins=$((uptime/60%60))
  1269. hours=$((uptime/3600%24))
  1270. days=$((uptime/86400))
  1271. uptime="${mins}m"
  1272. if [ "${hours}" -ne "0" ]; then
  1273. uptime="${hours}h ${uptime}"
  1274. fi
  1275. if [ "${days}" -ne "0" ]; then
  1276. uptime="${days}d ${uptime}"
  1277. fi
  1278. else
  1279. if [[ "$distro" =~ "NetBSD" ]]; then
  1280. uptime=$(awk -F. '{print $1}' /proc/uptime)
  1281. elif [[ "$distro" =~ "BSD" ]]; then
  1282. 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}')
  1283. fi
  1284. fi
  1285. verboseOut "Finding current uptime...found as '${uptime}'"
  1286. }
  1287. # Uptime Detection - End
  1288. # Package Count - Begin
  1289. detectpkgs () {
  1290. pkgs="Unknown"
  1291. local offset=0
  1292. case "${distro}" in
  1293. 'Alpine Linux') pkgs=$(apk info | wc -l) ;;
  1294. 'Arch Linux'|'Arch Linux 32'|'ArcoLinux'|'Parabola GNU/Linux-libre'|'Hyperbola GNU/Linux-libre'|'Chakra'|'Manjaro'|'Antergos'| \
  1295. 'Netrunner'|'KaOS'|'Obarun'|'SwagArch'|'OBRevenge'|'Artix Linux'|'EndeavourOS')
  1296. pkgs=$(pacman -Qq | wc -l) ;;
  1297. 'Chrome OS')
  1298. if [ -d "/usr/local/lib/crew/packages" ]; then
  1299. pkgs=$(ls -l /usr/local/etc/crew/meta/*.filelist | wc -l)
  1300. else
  1301. pkgs=$(ls -d /var/db/pkg/*/* | wc -l)
  1302. fi
  1303. ;;
  1304. 'Dragora')
  1305. pkgs=$(ls -1 /var/db/pkg | wc -l) ;;
  1306. 'Frugalware')
  1307. pkgs=$(pacman-g2 -Q | wc -l) ;;
  1308. 'Debian'|'Ubuntu'|'Mint'|'Fuduntu'|'KDE neon'|'Devuan'|'OS Elbrus'|'Raspbian'|'LMDE'|'CrunchBang'|'Peppermint'| \
  1309. 'LinuxDeepin'|'Deepin'|'Kali Linux'|'Trisquel'|'elementary OS'|'gNewSense'|'BunsenLabs'|'SteamOS'|'Parrot Security'| \
  1310. 'GrombyangOS'|'DesaOS'|'Zorin OS'|'Proxmox VE'|'PureOS'|'DraugerOS')
  1311. pkgs=$(dpkg -l | grep -c '^i') ;;
  1312. 'Slackware')
  1313. pkgs=$(ls -1 /var/log/packages | wc -l) ;;
  1314. 'Gentoo'|'Sabayon'|'Funtoo'|'Kogaion')
  1315. pkgs=$(ls -d /var/db/pkg/*/* | wc -l) ;;
  1316. 'NixOS')
  1317. pkgs=$(nix path-info -r /run/current-system | wc -l) ;;
  1318. 'Guix System')
  1319. pkgs=$(guix package --list-installed | wc -l) ;;
  1320. 'ALDOS'|'Fedora'|'Fux'|'Korora'|'BLAG'|'Chapeau'|'openSUSE'|'SUSE Linux Enterprise'|'Red Hat Enterprise Linux'| \
  1321. 'ROSA'|'Oracle Linux'|'Scientific Linux'|'EuroLinux'|'CentOS'|'CentOS Stream'|'Mandriva'|'Mandrake'|'Mageia'|'Mer'|'SailfishOS'|'PCLinuxOS'|'Viperr'|'Qubes OS'| \
  1322. 'Red Star OS'|'blackPanther OS'|'Amazon Linux')
  1323. pkgs=$(rpm -qa | wc -l) ;;
  1324. 'Void Linux')
  1325. pkgs=$(xbps-query -l | wc -l) ;;
  1326. 'Evolve OS')
  1327. pkgs=$(pisi list-installed | wc -l) ;;
  1328. 'Sulin')
  1329. pkgs=$(inary li | wc -l) ;;
  1330. 'Solus')
  1331. pkgs=$(eopkg list-installed | wc -l) ;;
  1332. 'Source Mage GNU/Linux')
  1333. pkgs=$(gaze installed | wc -l) ;;
  1334. 'CRUX'|'januslinux')
  1335. pkgs=$(pkginfo -i | wc -l) ;;
  1336. 'Lunar Linux')
  1337. pkgs=$(lvu installed | wc -l) ;;
  1338. 'TinyCore')
  1339. pkgs=$(tce-status -i | wc -l) ;;
  1340. 'Exherbo')
  1341. xpkgs=$(ls -d -1 /var/db/paludis/repositories/cross-installed/*/data/* | wc -l)
  1342. pkgs=$(ls -d -1 /var/db/paludis/repositories/installed/data/* | wc -l)
  1343. pkgs=$((pkgs + xpkgs))
  1344. ;;
  1345. 'Mac OS X'|'macOS')
  1346. offset=1
  1347. if [ -d "/usr/local/bin" ]; then
  1348. loc_pkgs=$(ls -l /usr/local/bin/ | grep -cv "\(../Cellar/\|brew\)")
  1349. pkgs=$((loc_pkgs - offset));
  1350. fi
  1351. if type -p port >/dev/null 2>&1; then
  1352. port_pkgs=$(port installed 2>/dev/null | wc -l)
  1353. pkgs=$((pkgs + (port_pkgs - offset)))
  1354. fi
  1355. if type -p brew >/dev/null 2>&1; then
  1356. brew_pkgs=$(ls -1 /usr/local/Cellar/ | wc -l)
  1357. pkgs=$((pkgs + brew_pkgs))
  1358. fi
  1359. if type -p pkgin >/dev/null 2>&1; then
  1360. pkgsrc_pkgs=$(pkgin list 2>/dev/null | wc -l)
  1361. pkgs=$((pkgs + pkgsrc_pkgs))
  1362. fi
  1363. ;;
  1364. 'DragonFlyBSD')
  1365. if TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 PACKAGESITE=file:///nonexistent pkg info pkg >/dev/null 2>&1; then
  1366. pkgs=$(pkg info | grep -c .)
  1367. else
  1368. pkgs=$(pkg_info | grep -c .)
  1369. fi
  1370. ;;
  1371. 'OpenBSD'|'NetBSD')
  1372. pkgs=$(pkg_info | grep -c .)
  1373. ;;
  1374. 'FreeBSD')
  1375. pkgs=$(pkg info | grep -c .)
  1376. ;;
  1377. 'Cygwin')
  1378. offset=2
  1379. pkgs=$(($(cygcheck -cd | wc -l) - offset))
  1380. if [ -d "/cygdrive/c/ProgramData/chocolatey/lib" ]; then
  1381. chocopkgs=$(ls -1 /cygdrive/c/ProgramData/chocolatey/lib | wc -l)
  1382. pkgs=$((pkgs + chocopkgs))
  1383. fi
  1384. ;;
  1385. 'Msys')
  1386. pkgs=$(pacman -Qq | wc -l)
  1387. if [ -d "/c/ProgramData/chocolatey/lib" ]; then
  1388. chocopkgs=$(ls -1 /c/ProgramData/chocolatey/lib | wc -l)
  1389. pkgs=$((pkgs + chocopkgs))
  1390. fi
  1391. ;;
  1392. 'Haiku')
  1393. haikualpharelease="no"
  1394. if [ -d /boot/system/package-links ]; then
  1395. pkgs=$(ls /boot/system/package-links | wc -l)
  1396. elif type -p installoptionalpackage >/dev/null 2>&1; then
  1397. haikualpharelease="yes"
  1398. pkgs=$(installoptionalpackage -l | sed -n '3p' | wc -w)
  1399. fi
  1400. ;;
  1401. esac
  1402. if [[ "${OSTYPE}" =~ "linux" && -z "${wsl}" ]] && snap list >/dev/null 2>&1; then
  1403. offset=1
  1404. snappkgs=$(($(snap list 2>/dev/null | wc -l) - offset))
  1405. if [ $snappkgs -lt 0 ]; then
  1406. snappkgs=0
  1407. fi
  1408. pkgs=$((pkgs + snappkgs))
  1409. fi
  1410. verboseOut "Finding current package count...found as '$pkgs'"
  1411. }
  1412. # CPU Detection - Begin
  1413. detectcpu () {
  1414. local REGEXP="-r"
  1415. if [[ "$distro" == "Mac OS X" || "$distro" == "macOS" ]]; then
  1416. cpu=$(machine)
  1417. if [[ $cpu == "ppc750" ]]; then
  1418. cpu="IBM PowerPC G3"
  1419. elif [[ $cpu == "ppc7400" || $cpu == "ppc7450" ]]; then
  1420. cpu="IBM PowerPC G4"
  1421. elif [[ $cpu == "ppc970" ]]; then
  1422. cpu="IBM PowerPC G5"
  1423. else
  1424. cpu=$(sysctl -n machdep.cpu.brand_string)
  1425. fi
  1426. REGEXP="-E"
  1427. elif [ "$OSTYPE" == "gnu" ]; then
  1428. # no /proc/cpuinfo on GNU/Hurd
  1429. if uname -m | grep -q 'i.86'; then
  1430. cpu="Unknown x86"
  1431. else
  1432. cpu="Unknown"
  1433. fi
  1434. elif [ "$distro" == "FreeBSD" ]; then
  1435. cpu=$(dmesg | awk -F': ' '/^CPU/ {gsub(/ +/," "); gsub(/\([^\(\)]*\)|CPU /,"", $2); print $2; exit}')
  1436. elif [ "$distro" == "DragonFlyBSD" ]; then
  1437. cpu=$(sysctl -n hw.model)
  1438. elif [ "$distro" == "OpenBSD" ]; then
  1439. cpu=$(sysctl -n hw.model | sed 's/@.*//')
  1440. elif [ "$distro" == "Haiku" ]; then
  1441. cpu=$(sysinfo -cpu | awk -F': ' '/^CPU #0/ {gsub(/ +/," "); gsub(/\([^\(\)]*\)|CPU /,"", $2); print $2; exit}')
  1442. else
  1443. cpu=$(awk -F':' '/^model name/ {split($2, A, " @"); print A[1]; exit}' /proc/cpuinfo)
  1444. cpun=$(grep -c '^processor' /proc/cpuinfo)
  1445. if [ -z "$cpu" ]; then
  1446. cpu=$(awk 'BEGIN{FS=":"} /Hardware/ { print $2; exit }' /proc/cpuinfo)
  1447. fi
  1448. if [ -z "$cpu" ]; then
  1449. cpu=$(awk 'BEGIN{FS=":"} /^cpu/ { gsub(/ +/," ",$2); print $2; exit}' /proc/cpuinfo | sed 's/, altivec supported//;s/^ //')
  1450. if [[ $cpu =~ ^(PPC)*9.+ ]]; then
  1451. model="IBM PowerPC G5 "
  1452. elif [[ $cpu =~ 740/750 ]]; then
  1453. model="IBM PowerPC G3 "
  1454. elif [[ $cpu =~ ^74.+ ]]; then
  1455. model="Motorola PowerPC G4 "
  1456. elif [[ $cpu =~ ^POWER.* ]]; then
  1457. model="IBM POWER "
  1458. elif grep -q -i 'BCM2708' /proc/cpuinfo ; then
  1459. model="Broadcom BCM2835 ARM1176JZF-S"
  1460. else
  1461. arch=$(uname -m)
  1462. if [[ "$arch" == "s390x" || "$arch" == "s390" ]]; then
  1463. cpu=""
  1464. args=$(grep 'machine' /proc/cpuinfo | sed 's/^.*://g; s/ //g; s/,/\n/g' | grep '^machine=.*')
  1465. eval "$args"
  1466. case "$machine" in
  1467. # information taken from https://github.com/SUSE/s390-tools/blob/master/cputype
  1468. 2064) model="IBM eServer zSeries 900" ;;
  1469. 2066) model="IBM eServer zSeries 800" ;;
  1470. 2084) model="IBM eServer zSeries 990" ;;
  1471. 2086) model="IBM eServer zSeries 890" ;;
  1472. 2094) model="IBM System z9 Enterprise Class" ;;
  1473. 2096) model="IBM System z9 Business Class" ;;
  1474. 2097) model="IBM System z10 Enterprise Class" ;;
  1475. 2098) model="IBM System z10 Business Class" ;;
  1476. 2817) model="IBM zEnterprise 196" ;;
  1477. 2818) model="IBM zEnterprise 114" ;;
  1478. 2827) model="IBM zEnterprise EC12" ;;
  1479. 2828) model="IBM zEnterprise BC12" ;;
  1480. 2964) model="IBM z13" ;;
  1481. *) model="IBM S/390 machine type $machine" ;;
  1482. esac
  1483. elif [[ "$arch" == "aarch64" ]]; then
  1484. cpu_vendor=$(lscpu | grep ^Vendor | sed 's/^.*://g; s/ //g; s/,/\n/g')
  1485. cpu=$(lscpu | grep ^Model\ name: | sed 's/^.*://g; s/ //g; s/,/\n/g')
  1486. cpu="${cpu_vendor} ${cpu}"
  1487. else
  1488. model="Unknown"
  1489. fi
  1490. fi
  1491. cpu="${model}${cpu}"
  1492. fi
  1493. loc="/sys/devices/system/cpu/cpu0/cpufreq"
  1494. bl="${loc}/bios_limit"
  1495. smf="${loc}/scaling_max_freq"
  1496. if [ -f "$bl" ] && [ -r "$bl" ]; then
  1497. cpu_mhz=$(awk '{print $1/1000}' "$bl")
  1498. elif [ -f "$smf" ] && [ -r "$smf" ]; then
  1499. cpu_mhz=$(awk '{print $1/1000}' "$smf")
  1500. else
  1501. cpu_mhz=$(awk -F':' '/cpu MHz/{ print int($2+.5) }' /proc/cpuinfo | head -n 1)
  1502. fi
  1503. if [ -n "$cpu_mhz" ]; then
  1504. if [ "${cpu_mhz%.*}" -ge 1000 ]; then
  1505. cpu_ghz=$(awk '{print $1/1000}' <<< "${cpu_mhz}")
  1506. cpufreq="${cpu_ghz}GHz"
  1507. else
  1508. cpufreq="${cpu_mhz}MHz"
  1509. fi
  1510. fi
  1511. fi
  1512. if [[ "${cpun}" -gt "1" ]]; then
  1513. cpun="${cpun}x "
  1514. else
  1515. cpun=""
  1516. fi
  1517. if [ -z "$cpufreq" ]; then
  1518. cpu="${cpun}${cpu}"
  1519. else
  1520. cpu="$cpu @ ${cpun}${cpufreq}"
  1521. fi
  1522. if [ -d '/sys/class/hwmon/' ]; then
  1523. for dir in /sys/class/hwmon/* ; do
  1524. hwmonfile=""
  1525. [ -e "$dir/name" ] && hwmonfile=$dir/name
  1526. [ -e "$dir/device/name" ] && hwmonfile=$dir/device/name
  1527. [ -n "$hwmonfile" ] && if grep -q 'coretemp' "$hwmonfile"; then
  1528. thermal="$dir/temp1_input"
  1529. break
  1530. fi
  1531. done
  1532. if [ -e "$thermal" ] && [ "${thermal:+isSetToNonNull}" = 'isSetToNonNull' ]; then
  1533. temperature=$(bc <<< "scale=1; $(cat "$thermal")/1000")
  1534. fi
  1535. fi
  1536. if [ -n "$temperature" ]; then
  1537. cpu="$cpu [${temperature}°C]"
  1538. fi
  1539. cpu=$(sed $REGEXP 's/\([tT][mM]\)|\([Rr]\)|[pP]rocessor|CPU//g' <<< "${cpu}" | xargs)
  1540. verboseOut "Finding current CPU...found as '$cpu'"
  1541. }
  1542. # CPU Detection - End
  1543. # GPU Detection - Begin (EXPERIMENTAL!)
  1544. detectgpu () {
  1545. if [[ "${distro}" == "FreeBSD" || "${distro}" == "DragonFlyBSD" ]]; then
  1546. nvisettexist=$(which nvidia-settings)
  1547. if [ -x "$nvisettexist" ]; then
  1548. gpu="$(nvidia-settings -t -q gpus | grep \( | sed 's/.*(\(.*\))/\1/')"
  1549. else
  1550. gpu_info=$(pciconf -lv 2> /dev/null | grep -B 4 VGA)
  1551. gpu_info=$(grep -E 'device.*=.*' <<< "${gpu_info}")
  1552. gpu="${gpu_info##*device*= }"
  1553. gpu="${gpu//\'}"
  1554. # gpu=$(sed 's/.*device.*= //' <<< "${gpu_info}" | sed "s/'//g")
  1555. fi
  1556. elif [[ "${distro}" == "OpenBSD" ]]; then
  1557. gpu=$(glxinfo 2> /dev/null | awk '/OpenGL renderer string/ { sub(/OpenGL renderer string: /,""); print }')
  1558. elif [[ "${distro}" == "Mac OS X" || "${distro}" == "macOS" ]]; then
  1559. gpu=$(system_profiler SPDisplaysDataType | awk -F': ' '/^ *Chipset Model:/ {print $2}' | awk '{ printf "%s / ", $0 }' | sed -e 's/\/ $//g')
  1560. elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1561. gpu=$(wmic path Win32_VideoController get caption | sed -n '2p')
  1562. elif [[ "${distro}" == "Haiku" ]]; then
  1563. gpu="$(listdev | grep -A2 -e 'device Display controller' | awk -F': ' '/^ +device/ {print $2}')"
  1564. else
  1565. if [[ -n "$(PATH="/opt/bin:$PATH" type -p nvidia-smi)" ]]; then
  1566. gpu=$($(PATH="/opt/bin:$PATH" type -p nvidia-smi | cut -f1) -q | awk -F':' '/Product Name/ {gsub(/: /,":"); print $2}' | sed ':a;N;$!ba;s/\n/, /g')
  1567. elif [[ -n "$(PATH="/usr/sbin:$PATH" type -p glxinfo)" && -z "${gpu}" ]]; then
  1568. gpu_info=$($(PATH="/usr/sbin:$PATH" type -p glxinfo | cut -f1) 2>/dev/null)
  1569. gpu=$(grep "OpenGL renderer string" <<< "${gpu_info}" | cut -d ':' -f2 | sed -n -e '1h;2,$H;${g;s/\n/, /g' -e 'p' -e '}')
  1570. gpu="${gpu:1}"
  1571. gpu_info=$(grep "OpenGL vendor string" <<< "${gpu_info}")
  1572. elif [[ -n "$(PATH="/usr/sbin:$PATH" type -p lspci)" && -z "$gpu" ]]; then
  1573. gpu_info=$($(PATH="/usr/bin:$PATH" type -p lspci | cut -f1) 2> /dev/null | grep VGA)
  1574. gpu=$(grep -oE '\[.*\]' <<< "${gpu_info}" | sed 's/\[//;s/\]//' | sed -n -e '1h;2,$H;${g;s/\n/, /g' -e 'p' -e '}')
  1575. fi
  1576. fi
  1577. if [ -n "$gpu" ];then
  1578. if grep -q -i 'nvidia' <<< "${gpu_info}"; then
  1579. gpu_info="NVidia "
  1580. elif grep -q -i 'intel' <<< "${gpu_info}"; then
  1581. gpu_info="Intel "
  1582. elif grep -q -i 'amd' <<< "${gpu_info}"; then
  1583. gpu_info="AMD "
  1584. elif grep -q -i 'ati' <<< "${gpu_info}" || grep -q -i 'radeon' <<< "${gpu_info}"; then
  1585. gpu_info="ATI "
  1586. else
  1587. gpu_info=$(cut -d ':' -f2 <<< "${gpu_info}")
  1588. gpu_info="${gpu_info:1} "
  1589. fi
  1590. gpu="${gpu}"
  1591. else
  1592. gpu="Not Found"
  1593. fi
  1594. verboseOut "Finding current GPU...found as '$gpu'"
  1595. }
  1596. # GPU Detection - End
  1597. # Detect Intel GPU #works in dash
  1598. # Run it only on Intel Processors if GPU is unknown
  1599. DetectIntelGPU() {
  1600. if [ -r /proc/fb ]; then
  1601. gpu=$(awk 'BEGIN {ORS = " &"} {$1="";print}' /proc/fb | sed -r s/'^\s+|\s*&$'//g)
  1602. fi
  1603. case $gpu in
  1604. *mfb)
  1605. gpu=$(lspci | grep -i vga | awk -F ": " '{print $2}')
  1606. ;;
  1607. *intel*)
  1608. gpu="intel"
  1609. ;;
  1610. *)
  1611. gpu="Not Found"
  1612. ;;
  1613. esac
  1614. if [[ "$gpu" = "intel" ]]; then
  1615. #Detect CPU
  1616. local CPU=$(uname -p | awk '{print $3}')
  1617. CPU=${CPU#*'-'}; #Detect CPU number
  1618. #Detect Intel GPU
  1619. case $CPU in
  1620. [3-6][3-9][0-5]|[3-6][3-9][0-5][K-Y])
  1621. gpu='Intel HD Graphics'
  1622. ;; #1st
  1623. 2[1-5][0-3][0-2]*|2390T|2600S)
  1624. gpu='Intel HD Graphics 2000'
  1625. ;; #2nd
  1626. 2[1-5][1-7][0-8]*|2105|2500K)
  1627. gpu='Intel HD Graphics 3000'
  1628. ;; #2nd
  1629. 32[1-5]0*|3[4-5][5-7]0*|33[3-4]0*)
  1630. gpu='Intel HD Graphics 2500'
  1631. ;; #3rd
  1632. 3570K|3427U)
  1633. gpu='Intel HD Graphics 4000'
  1634. ;; #3rd
  1635. 4[3-7][0-9][0-5]*)
  1636. gpu='Intel HD Graphics 4600'
  1637. ;; #4th Haswell
  1638. 5[5-6]75[C-R]|5350H)
  1639. gpu='Intel Iris Pro Graphics 6200'
  1640. ;; #5th Broadwell
  1641. #6th Skylake
  1642. #7th Kabylake
  1643. #8th Cannonlake
  1644. *)
  1645. gpu='Unknown'
  1646. ;; #Unknown GPU model
  1647. esac
  1648. fi
  1649. }
  1650. # Disk Usage Detection - Begin
  1651. detectdisk () {
  1652. diskusage="Unknown"
  1653. if type -p df >/dev/null 2>&1; then
  1654. if [[ "${distro}" =~ (Free|Net|DragonFly)BSD ]]; then
  1655. totaldisk=$(df -h -c 2>/dev/null | tail -1)
  1656. elif [[ "${distro}" == "OpenBSD" ]]; then
  1657. totaldisk=$(df -Pk 2> /dev/null | awk '
  1658. /^\// {total+=$2; used+=$3; avail+=$4}
  1659. END{printf("total %.1fG %.1fG %.1fG %d%%\n", total/1048576, used/1048576, avail/1048576, used*100/total)}')
  1660. elif [[ "${distro}" == "Mac OS X" || "${distro}" == "macOS" ]]; then
  1661. majorVers=$(sw_vers | grep "ProductVersion" | cut -d ':' -f 2 | awk -F "." '{print $1}') # Major version
  1662. minorVers=$(sw_vers | grep "ProductVersion" | cut -d ':' -f 2 | awk -F "." '{print $2}') # Minor version
  1663. if [[ "${minorVers}" -ge "15" || "${majorVers}" -ge "11" ]]; then # Catalina or newer
  1664. totaldisk=$(df -H /System/Volumes/Data 2>/dev/null | tail -1)
  1665. else
  1666. totaldisk=$(df -H / 2>/dev/null | tail -1)
  1667. fi
  1668. else
  1669. totaldisk=$(df -h -x aufs -x tmpfs -x overlay -x drvfs --total 2>/dev/null | tail -1)
  1670. fi
  1671. disktotal=$(awk '{print $2}' <<< "${totaldisk}")
  1672. diskused=$(awk '{print $3}' <<< "${totaldisk}")
  1673. diskusedper=$(awk '{print $5}' <<< "${totaldisk}")
  1674. diskusage="${diskused} / ${disktotal} (${diskusedper})"
  1675. diskusage_verbose=$(sed 's/%/%%/' <<< "$diskusage")
  1676. fi
  1677. verboseOut "Finding current disk usage...found as '$diskusage_verbose'"
  1678. }
  1679. # Disk Usage Detection - End
  1680. # Memory Detection - Begin
  1681. detectmem () {
  1682. if [[ "$distro" == "Mac OS X" || "$distro" == "macOS" ]]; then
  1683. totalmem=$(echo "$(sysctl -n hw.memsize)" / 1024^2 | bc)
  1684. wiredmem=$(vm_stat | grep wired | awk '{ print $4 }' | sed 's/\.//')
  1685. activemem=$(vm_stat | grep ' active' | awk '{ print $3 }' | sed 's/\.//')
  1686. compressedmem=$(vm_stat | grep occupied | awk '{ print $5 }' | sed 's/\.//')
  1687. if [[ ! -z "$compressedmem | tr -d" ]]; then # FIXME: is this line correct?
  1688. compressedmem=0
  1689. fi
  1690. usedmem=$(((wiredmem + activemem + compressedmem) * 4 / 1024))
  1691. elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1692. total_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  1693. totalmem=$((total_mem / 1024))
  1694. free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  1695. used_mem=$((total_mem - free_mem))
  1696. usedmem=$((used_mem / 1024))
  1697. elif [[ "$distro" == "FreeBSD" || "$distro" == "DragonFlyBSD" ]]; then
  1698. phys_mem=$(sysctl -n hw.physmem)
  1699. size_mem=$phys_mem
  1700. size_chip=1
  1701. guess_chip=$(echo "$size_mem / 8 - 1" | bc)
  1702. while [ "$guess_chip" != 0 ]; do
  1703. guess_chip=$(echo "$guess_chip / 2" | bc)
  1704. size_chip=$(echo "$size_chip * 2" | bc)
  1705. done
  1706. round_mem=$(echo "( $size_mem / $size_chip + 1 ) * $size_chip " | bc)
  1707. totalmem=$((round_mem / 1024 / 1024))
  1708. pagesize=$(sysctl -n hw.pagesize)
  1709. inactive_count=$(sysctl -n vm.stats.vm.v_inactive_count)
  1710. inactive_mem=$((inactive_count * pagesize))
  1711. cache_count=$(sysctl -n vm.stats.vm.v_cache_count)
  1712. cache_mem=$((cache_count * pagesize))
  1713. free_count=$(sysctl -n vm.stats.vm.v_free_count)
  1714. free_mem=$((free_count * pagesize))
  1715. avail_mem=$((inactive_mem + cache_mem + free_mem))
  1716. used_mem=$((round_mem - avail_mem))
  1717. usedmem=$((used_mem / 1024 / 1024))
  1718. elif [ "$distro" == "OpenBSD" ]; then
  1719. totalmem=$(($(sysctl -n hw.physmem) / 1024 / 1024))
  1720. usedmem=$(vmstat | awk '!/[a-z]/{gsub("M",""); print $3}')
  1721. elif [ "$distro" == "NetBSD" ]; then
  1722. phys_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
  1723. totalmem=$((phys_mem / 1024))
  1724. if grep -q 'Cached' /proc/meminfo; then
  1725. cache=$(awk '/Cached/ {print $2}' /proc/meminfo)
  1726. usedmem=$((cache / 1024))
  1727. else
  1728. free_mem=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
  1729. used_mem=$((phys_mem - free_mem))
  1730. usedmem=$((used_mem / 1024))
  1731. fi
  1732. elif [ "$distro" == "Haiku" ]; then
  1733. totalmem=$(sysinfo -mem | awk 'NR == 1 {gsub(/[\(\)\/]/, ""); printf("%d", $6/1024**2)}')
  1734. usedmem=$(sysinfo -mem | awk 'NR == 1 {gsub(/[\(\)\/]/, ""); printf("%d", $5/1024**2)}')
  1735. else
  1736. # MemUsed = Memtotal + Shmem - MemFree - Buffers - Cached - SReclaimable
  1737. # Source: https://github.com/dylanaraps/neofetch/pull/391/files#diff-e863270127ca6116fd30e708cdc582fc
  1738. #mem_info=$(</proc/meminfo)
  1739. #mem_info=$(echo $(echo $(mem_info=${mem_info// /}; echo ${mem_info//kB/})))
  1740. #for m in $mem_info; do
  1741. # case ${m//:*} in
  1742. # "MemTotal") usedmem=$((usedmem+=${m//*:})); totalmem=${m//*:} ;;
  1743. # "Shmem") usedmem=$((usedmem+=${m//*:})) ;;
  1744. # "MemFree"|"Buffers"|"Cached"|"SReclaimable") usedmem=$((usedmem-=${m//*:})) ;;
  1745. # esac
  1746. #done
  1747. #usedmem=$((usedmem / 1024))
  1748. #totalmem=$((totalmem / 1024))
  1749. mem=$(free -b | awk 'NR==2{print $2"-"$7}')
  1750. usedmem=$((mem / 1024 / 1024))
  1751. totalmem=$((${mem//-*} / 1024 / 1024))
  1752. fi
  1753. mem="${usedmem}MiB / ${totalmem}MiB"
  1754. verboseOut "Finding current RAM usage...found as '$mem'"
  1755. }
  1756. # Memory Detection - End
  1757. # Shell Detection - Begin
  1758. detectshell_ver () {
  1759. local version_data='' version='' get_version='--version'
  1760. case $1 in
  1761. # ksh sends version to stderr. Weeeeeeird.
  1762. ksh)
  1763. version_data="$( $1 $get_version 2>&1 )"
  1764. ;;
  1765. *)
  1766. version_data="$( $1 $get_version 2>/dev/null )"
  1767. ;;
  1768. esac
  1769. if [[ -n $version_data ]];then
  1770. version=$(awk '
  1771. BEGIN {
  1772. IGNORECASE=1
  1773. }
  1774. /'$2'/ {
  1775. gsub(/(,|v|V)/, "",$'$3')
  1776. if ($2 ~ /[Bb][Aa][Ss][Hh]/) {
  1777. gsub(/\(.*|-release|-version\)/,"",$4)
  1778. }
  1779. print $'$3'
  1780. exit # quit after first match prints
  1781. }' <<< "$version_data")
  1782. fi
  1783. echo "$version"
  1784. }
  1785. detectshell () {
  1786. if [[ ! "${shell_type}" ]]; then
  1787. if [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" || "${distro}" == "Haiku" || "${distro}" == "Alpine Linux" ||
  1788. "${distro}" == "Mac OS X" || "${distro}" == "macOS" || "${distro}" == "TinyCore" || "${distro}" == "Raspbian" || "${OSTYPE}" == "gnu" ]]; then
  1789. shell_type=$(echo "$SHELL" | awk -F'/' '{print $NF}')
  1790. elif readlink -f "$SHELL" 2>&1 | grep -q -i 'busybox'; then
  1791. shell_type="BusyBox"
  1792. else
  1793. if [[ "${OSTYPE}" =~ "linux" ]]; then
  1794. shell_type=$(realpath /proc/$PPID/exe | awk -F'/' '{print $NF}')
  1795. elif [[ "${distro}" =~ "BSD" ]]; then
  1796. shell_type=$(ps -p $PPID -o command | tail -1)
  1797. else
  1798. shell_type=$(ps -p "$(ps -p $PPID | awk '$1 !~ /PID/ {print $1}')" | awk 'FNR>1 {print $1}')
  1799. fi
  1800. shell_type=${shell_type/-}
  1801. shell_type=${shell_type//*\/}
  1802. fi
  1803. fi
  1804. case $shell_type in
  1805. bash)
  1806. shell_version_data=$( detectshell_ver "$shell_type" "^GNU.bash,.version" "4" )
  1807. ;;
  1808. BusyBox)
  1809. shell_version_data=$( busybox | head -n1 | cut -d ' ' -f2 )
  1810. ;;
  1811. csh)
  1812. shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  1813. ;;
  1814. dash)
  1815. shell_version_data=$( detectshell_ver "$shell_type" "$shell_type" "3" )
  1816. ;;
  1817. ksh)
  1818. shell_version_data=$( detectshell_ver "$shell_type" "version" "5" )
  1819. ;;
  1820. tcsh)
  1821. shell_version_data=$( detectshell_ver "$shell_type" "^tcsh" "2" )
  1822. ;;
  1823. zsh)
  1824. shell_version_data=$( detectshell_ver "$shell_type" "^zsh" "2" )
  1825. ;;
  1826. fish)
  1827. shell_version_data=$( fish --version | awk '{print $3}' )
  1828. ;;
  1829. esac
  1830. if [[ -n $shell_version_data ]];then
  1831. shell_type="$shell_type $shell_version_data"
  1832. fi
  1833. myShell=${shell_type}
  1834. verboseOut "Finding current shell...found as '$myShell'"
  1835. }
  1836. # Shell Detection - End
  1837. # Resolution Detection - Begin
  1838. detectres () {
  1839. xResolution="No X Server"
  1840. if [[ ${distro} == "Mac OS X" || $distro == "macOS" ]]; then
  1841. xResolution=$(system_profiler SPDisplaysDataType | awk '/Resolution:/ {print $2"x"$4" "}')
  1842. if [[ "$(echo "$xResolution" | wc -l)" -ge 1 ]]; then
  1843. xResolution=$(echo "$xResolution" | tr " \\n" ", " | sed 's/\(.*\),/\1/')
  1844. fi
  1845. elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1846. xResolution=$(wmic path Win32_VideoController get CurrentHorizontalResolution,CurrentVerticalResolution | awk 'NR==2 {print $1"x"$2}')
  1847. elif [[ "${distro}" == "Haiku" ]]; then
  1848. xResolution="$(screenmode | grep Resolution | awk '{gsub(/,/,""); print $2"x"$3}')"
  1849. elif [[ -n ${DISPLAY} ]]; then
  1850. if type -p xdpyinfo >/dev/null 2>&1; then
  1851. xResolution=$(xdpyinfo | awk '/^ +dimensions/ {print $2}')
  1852. fi
  1853. fi
  1854. verboseOut "Finding current resolution(s)...found as '$xResolution'"
  1855. }
  1856. # Resolution Detection - End
  1857. # DE Detection - Begin
  1858. detectde () {
  1859. DE="Not Present"
  1860. if [[ "${distro}" == "Mac OS X" || "${distro}" == "macOS" ]]; then
  1861. if ps -U "${USER}" | grep -q -i 'finder'; then
  1862. DE="Aqua"
  1863. fi
  1864. elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  1865. # https://msdn.microsoft.com/en-us/library/ms724832%28VS.85%29.aspx
  1866. if wmic os get version | grep -q '^\(6\.[01]\)'; then
  1867. DE="Aero"
  1868. elif wmic os get version | grep -q '^\(6\.[23]\|10\)'; then
  1869. DE="Modern UI/Metro"
  1870. else
  1871. DE="Luna"
  1872. fi
  1873. elif [[ -n ${DISPLAY} ]]; then
  1874. if type -p xprop >/dev/null 2>&1;then
  1875. xprop_root="$(xprop -root 2>/dev/null)"
  1876. if [[ -n ${xprop_root} ]]; then
  1877. DE=$(echo "${xprop_root}" | awk 'BEGIN {
  1878. de = "Not Present"
  1879. }
  1880. {
  1881. if ($1 ~ /^_DT_SAVE_MODE/) {
  1882. de = $NF
  1883. gsub(/"/,"",de)
  1884. de = toupper(de)
  1885. exit
  1886. }
  1887. else if ($1 ~/^KDE_SESSION_VERSION/) {
  1888. de = "KDE"$NF
  1889. exit
  1890. }
  1891. else if ($1 ~ /^_MUFFIN/) {
  1892. de = "Cinnamon"
  1893. exit
  1894. }
  1895. else if ($1 ~ /^TDE_FULL_SESSION/) {
  1896. de = "Trinity"
  1897. exit
  1898. }
  1899. else if ($0 ~ /"xfce4"/) {
  1900. de = "Xfce4"
  1901. exit
  1902. }
  1903. else if ($0 ~ /"xfce5"/) {
  1904. de = "Xfce5"
  1905. exit
  1906. }
  1907. } END {
  1908. print de
  1909. }')
  1910. fi
  1911. fi
  1912. if [[ ${DE} == "Not Present" ]]; then
  1913. # Let's use xdg-open code for GNOME/Enlightment/KDE/LXDE/MATE/Xfce detection
  1914. # http://bazaar.launchpad.net/~vcs-imports/xdg-utils/master/view/head:/scripts/xdg-utils-common.in#L251
  1915. if [ -n "${XDG_CURRENT_DESKTOP}" ]; then
  1916. case "${XDG_CURRENT_DESKTOP,,}" in
  1917. 'enlightenment')
  1918. DE="Enlightenment"
  1919. ;;
  1920. 'gnome')
  1921. DE="GNOME"
  1922. ;;
  1923. 'kde')
  1924. DE="KDE"
  1925. ;;
  1926. 'lumina')
  1927. DE="Lumina"
  1928. ;;
  1929. 'lxde')
  1930. DE="LXDE"
  1931. ;;
  1932. 'mate')
  1933. DE="MATE"
  1934. ;;
  1935. 'xfce')
  1936. DE="Xfce"
  1937. ;;
  1938. 'x-cinnamon')
  1939. DE="Cinnamon"
  1940. ;;
  1941. 'unity')
  1942. DE="Unity"
  1943. ;;
  1944. 'lxqt')
  1945. DE="LXQt"
  1946. ;;
  1947. esac
  1948. fi
  1949. if [ -n "$DE" ]; then
  1950. # classic fallbacks
  1951. if [ -n "$KDE_FULL_SESSION" ]; then
  1952. DE="KDE"
  1953. elif [ -n "$TDE_FULL_SESSION" ]; then
  1954. DE="Trinity"
  1955. elif [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then
  1956. DE="GNOME"
  1957. elif [ -n "$MATE_DESKTOP_SESSION_ID" ]; then
  1958. DE="MATE"
  1959. elif dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus \
  1960. org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager >/dev/null 2>&1 ; then
  1961. DE="GNOME"
  1962. elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep -q -i ' = \"xfce4\"$'; then
  1963. DE="Xfce"
  1964. elif xprop -root 2> /dev/null | grep -q -i '^xfce_desktop_window'; then
  1965. DE="Xfce"
  1966. elif echo "$DESKTOP" | grep -q -i '^Enlightenment'; then
  1967. DE="Enlightenment"
  1968. fi
  1969. fi
  1970. if [[ -z "$DE" || "$DE" = "Not Present" ]]; then
  1971. # fallback to checking $DESKTOP_SESSION
  1972. case "${DESKTOP_SESSION,,}" in
  1973. 'gnome'*)
  1974. DE="GNOME"
  1975. ;;
  1976. 'deepin')
  1977. DE="Deepin"
  1978. ;;
  1979. 'lumina')
  1980. DE="Lumina"
  1981. ;;
  1982. 'lxde'|'lubuntu')
  1983. DE="LXDE"
  1984. ;;
  1985. 'mate')
  1986. DE="MATE"
  1987. ;;
  1988. 'xfce'*)
  1989. DE="Xfce"
  1990. ;;
  1991. 'budgie-desktop')
  1992. DE="Budgie"
  1993. ;;
  1994. 'cinnamon')
  1995. DE="Cinnamon"
  1996. ;;
  1997. 'trinity')
  1998. DE="Trinity"
  1999. ;;
  2000. esac
  2001. fi
  2002. if [ -n "$DE" ]; then
  2003. # fallback to checking $GDMSESSION
  2004. case "${GDMSESSION,,}" in
  2005. 'lumina'*)
  2006. DE="Lumina"
  2007. ;;
  2008. 'mate')
  2009. DE="MATE"
  2010. ;;
  2011. esac
  2012. fi
  2013. if [[ ${DE} == "GNOME" ]]; then
  2014. if type -p xprop >/dev/null 2>&1; then
  2015. if xprop -name "unity-launcher" >/dev/null 2>&1; then
  2016. DE="Unity"
  2017. elif xprop -name "launcher" >/dev/null 2>&1 &&
  2018. xprop -name "panel" >/dev/null 2>&1; then
  2019. DE="Unity"
  2020. fi
  2021. fi
  2022. fi
  2023. if [[ ${DE} == "KDE" ]]; then
  2024. if [[ -n ${KDE_SESSION_VERSION} ]]; then
  2025. if [[ ${KDE_SESSION_VERSION} == '5' ]]; then
  2026. DE="KDE5"
  2027. elif [[ ${KDE_SESSION_VERSION} == '4' ]]; then
  2028. DE="KDE4"
  2029. fi
  2030. elif [[ ${KDE_FULL_SESSION} == 'true' ]]; then
  2031. DE="KDE"
  2032. DEver_data=$(kded --version 2>/dev/null)
  2033. DEver=$(grep -si '^KDE:' <<< "$DEver_data" | awk '{print $2}')
  2034. fi
  2035. fi
  2036. fi
  2037. if [[ ${DE} != "Not Present" ]]; then
  2038. if [[ ${DE} == "Cinnamon" ]]; then
  2039. if type -p >/dev/null 2>&1; then
  2040. DEver=$(cinnamon --version)
  2041. DE="${DE} ${DEver//* }"
  2042. fi
  2043. elif [[ ${DE} == "GNOME" ]]; then
  2044. if type -p gnome-control-center>/dev/null 2>&1; then
  2045. DEver=$(gnome-control-center --version 2> /dev/null)
  2046. DE="${DE} ${DEver//* }"
  2047. elif type -p gnome-session-properties >/dev/null 2>&1; then
  2048. DEver=$(gnome-session-properties --version 2> /dev/null)
  2049. DE="${DE} ${DEver//* }"
  2050. elif type -p gnome-session >/dev/null 2>&1; then
  2051. DEver=$(gnome-session --version 2> /dev/null)
  2052. DE="${DE} ${DEver//* }"
  2053. fi
  2054. elif [[ ${DE} == "KDE4" || ${DE} == "KDE5" ]]; then
  2055. if type -p kded${DE#KDE} >/dev/null 2>&1; then
  2056. DEver=$(kded${DE#KDE} --version)
  2057. if [[ $(( $(echo "$DEver" | wc -w) )) -eq 2 ]] && [[ "$(echo "$DEver" | cut -d ' ' -f1)" == "kded${DE#KDE}" ]]; then
  2058. DEver=$(echo "$DEver" | cut -d ' ' -f2)
  2059. DE="KDE ${DEver}"
  2060. else
  2061. for l in $(echo "${DEver// /_}"); do
  2062. if [[ ${l//:*} == "KDE_Development_Platform" ]]; then
  2063. DEver=${l//*:_}
  2064. DE="KDE ${DEver//_*}"
  2065. fi
  2066. done
  2067. fi
  2068. if pgrep -U ${UID} plasmashell >/dev/null 2>&1; then
  2069. DEver=$(plasmashell --version | cut -d ' ' -f2)
  2070. DE="$DE / Plasma $DEver"
  2071. fi
  2072. fi
  2073. elif [[ ${DE} == "Lumina" ]]; then
  2074. if type -p Lumina-DE.real >/dev/null 2>&1; then
  2075. lumina="$(type -p Lumina-DE.real)"
  2076. elif type -p Lumina-DE >/dev/null 2>&1; then
  2077. lumina="$(type -p Lumina-DE)"
  2078. fi
  2079. if [ -n "$lumina" ]; then
  2080. if grep -q '--version' "$lumina"; then
  2081. DEver=$("$lumina" --version 2>&1 | tr -d \")
  2082. DE="${DE} ${DEver}"
  2083. fi
  2084. fi
  2085. elif [[ ${DE} == "LXQt" ]]; then
  2086. if type -p lxqt-about >/dev/null 2>&1; then
  2087. DEver=$(lxqt-about --version | awk '/^liblxqt/ {print $2}')
  2088. DE="${DE} ${DEver}"
  2089. fi
  2090. elif [[ ${DE} == "MATE" ]]; then
  2091. if type -p mate-session >/dev/null 2>&1; then
  2092. DEver=$(mate-session --version)
  2093. DE="${DE} ${DEver//* }"
  2094. fi
  2095. elif [[ ${DE} == "Unity" ]]; then
  2096. if type -p unity >/dev/null 2>&1; then
  2097. DEver=$(unity --version)
  2098. DE="${DE} ${DEver//* }"
  2099. fi
  2100. elif [[ ${DE} == "Deepin" ]]; then
  2101. if [[ -f /etc/deepin-version ]]; then
  2102. DEver="$(awk -F '=' '/Version/ {print $2}' /etc/deepin-version)"
  2103. DE="${DE} ${DEver//* }"
  2104. fi
  2105. elif [[ ${DE} == "Trinity" ]]; then
  2106. if type -p tde-config >/dev/null 2>&1; then
  2107. DEver="$(tde-config --version | awk -F ' ' '/TDE:/ {print $2}')"
  2108. DE="${DE} ${DEver//* }"
  2109. fi
  2110. fi
  2111. fi
  2112. if [[ "${DE}" == "Not Present" ]]; then
  2113. if pgrep -U ${UID} lxsession >/dev/null 2>&1; then
  2114. DE="LXDE"
  2115. if type -p lxpanel >/dev/null 2>&1; then
  2116. DEver=$(lxpanel -v)
  2117. DE="${DE} $DEver"
  2118. fi
  2119. elif pgrep -U ${UID} lxqt-session >/dev/null 2>&1; then
  2120. DE="LXQt"
  2121. elif pgrep -U ${UID} razor-session >/dev/null 2>&1; then
  2122. DE="RazorQt"
  2123. elif pgrep -U ${UID} dtsession >/dev/null 2>&1; then
  2124. DE="CDE"
  2125. fi
  2126. fi
  2127. fi
  2128. verboseOut "Finding desktop environment...found as '$DE'"
  2129. }
  2130. ### DE Detection - End
  2131. # WM Detection - Begin
  2132. detectwm () {
  2133. WM="Not Found"
  2134. if [[ ${distro} == "Mac OS X" || ${distro} == "macOS" ]]; then
  2135. if ps -U "${USER}" | grep -q -i 'finder'; then
  2136. WM="Quartz Compositor"
  2137. fi
  2138. elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  2139. if [ "$(tasklist | grep -o 'bugn' | tr -d '\r \n')" = "bugn" ]; then
  2140. WM="bug.n"
  2141. elif [ "$(tasklist | grep -o 'Windawesome' | tr -d '\r \n')" = "Windawesome" ]; then
  2142. WM="Windawesome"
  2143. elif [ "$(tasklist | grep -o 'blackbox' | tr -d '\r \n')" = "blackbox" ]; then
  2144. WM="Blackbox"
  2145. else
  2146. WM="DWM/Explorer"
  2147. fi
  2148. elif [[ -n ${DISPLAY} ]]; then
  2149. if [[ "${distro}" == "FreeBSD" ]]; then
  2150. pgrep_flags="-aU"
  2151. else
  2152. pgrep_flags="-U"
  2153. fi
  2154. for each in "${wmnames[@]}"; do
  2155. PID="$(pgrep ${pgrep_flags} ${UID} "^$each$")"
  2156. if [ "$PID" ]; then
  2157. case $each in
  2158. '2bwm') WM="2bwm";;
  2159. '9wm') WM="9wm";;
  2160. 'awesome') WM="Awesome";;
  2161. 'beryl') WM="Beryl";;
  2162. 'blackbox') WM="BlackBox";;
  2163. 'bspwm') WM="bspwm";;
  2164. 'budgie-wm') WM="BudgieWM";;
  2165. 'chromeos-wm') WM="chromeos-wm";;
  2166. 'cinnamon') WM="Muffin";;
  2167. 'compiz') WM="Compiz";;
  2168. 'deepin-wm') WM="deepin-wm";;
  2169. 'dminiwm') WM="dminiwm";;
  2170. 'dtwm') WM="dtwm";;
  2171. 'dwm') WM="dwm";;
  2172. 'e16') WM="E16";;
  2173. 'emerald') WM="Emerald";;
  2174. 'enlightenment') WM="E17";;
  2175. 'fluxbox') WM="FluxBox";;
  2176. 'flwm'|'flwm_topside') WM="FLWM";;
  2177. 'fvwm') WM="FVWM";;
  2178. 'herbstluftwm') WM="herbstluftwm";;
  2179. 'howm') WM="howm";;
  2180. 'i3') WM="i3";;
  2181. 'icewm') WM="IceWM";;
  2182. 'kwin') WM="KWin";;
  2183. 'metacity') WM="Metacity";;
  2184. 'monsterwm') WM="monsterwm";;
  2185. 'musca') WM="Musca";;
  2186. 'mwm') WM="MWM";;
  2187. 'notion') WM="Notion";;
  2188. 'openbox') WM="OpenBox";;
  2189. 'pekwm') WM="PekWM";;
  2190. 'ratpoison') WM="Ratpoison";;
  2191. 'sawfish') WM="Sawfish";;
  2192. 'scrotwm') WM="ScrotWM";;
  2193. 'spectrwm') WM="SpectrWM";;
  2194. 'stumpwm') WM="StumpWM";;
  2195. 'subtle') WM="subtle";;
  2196. 'sway') WM="sway";;
  2197. 'swm') WM="swm";;
  2198. 'twin') WM="TWin";;
  2199. 'wmaker') WM="WindowMaker";;
  2200. 'wmfs') WM="WMFS";;
  2201. 'wmii') WM="wmii";;
  2202. 'xfwm4') WM="Xfwm4";;
  2203. 'xmonad.*') WM="XMonad";;
  2204. esac
  2205. fi
  2206. if [[ ${WM} != "Not Found" ]]; then
  2207. break 1
  2208. fi
  2209. done
  2210. if [[ ${WM} == "Not Found" ]]; then
  2211. if type -p xprop >/dev/null 2>&1; then
  2212. WM=$(xprop -root _NET_SUPPORTING_WM_CHECK)
  2213. if [[ "$WM" =~ 'not found' ]]; then
  2214. WM="Not Found"
  2215. elif [[ "$WM" =~ 'Not found' ]]; then
  2216. WM="Not Found"
  2217. elif [[ "$WM" =~ '[Ii]nvalid window id format' ]]; then
  2218. WM="Not Found"
  2219. elif [[ "$WM" =~ "no such" ]]; then
  2220. WM="Not Found"
  2221. else
  2222. WM=${WM//* }
  2223. WM=$(xprop -id "${WM}" 8s _NET_WM_NAME)
  2224. WM=$(echo "$(WM=${WM//*= }; echo "${WM//\"}")")
  2225. fi
  2226. fi
  2227. fi
  2228. # Proper format WM names that need it.
  2229. if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  2230. if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  2231. WM_lower=${WM,,}
  2232. else
  2233. WM_lower="$(tr '[:upper:]' '[:lower:]' <<< "${WM}")"
  2234. fi
  2235. else
  2236. WM_lower="$(tr '[:upper:]' '[:lower:]' <<< "${WM}")"
  2237. fi
  2238. case ${WM_lower} in
  2239. *'gala'*) WM="Gala";;
  2240. '2bwm') WM="2bwm";;
  2241. 'awesome') WM="Awesome";;
  2242. 'beryl') WM="Beryl";;
  2243. 'blackbox') WM="BlackBox";;
  2244. 'budgiewm') WM="BudgieWM";;
  2245. 'chromeos-wm') WM="chromeos-wm";;
  2246. 'cinnamon') WM="Cinnamon";;
  2247. 'compiz') WM="Compiz";;
  2248. 'deepin-wm') WM="Deepin WM";;
  2249. 'dminiwm') WM="dminiwm";;
  2250. 'dwm') WM="dwm";;
  2251. 'e16') WM="E16";;
  2252. 'echinus') WM="echinus";;
  2253. 'emerald') WM="Emerald";;
  2254. 'enlightenment') WM="E17";;
  2255. 'fluxbox') WM="FluxBox";;
  2256. 'flwm'|'flwm_topside') WM="FLWM";;
  2257. 'fvwm') WM="FVWM";;
  2258. 'gnome shell'*) WM="Mutter";;
  2259. 'herbstluftwm') WM="herbstluftwm";;
  2260. 'howm') WM="howm";;
  2261. 'i3') WM="i3";;
  2262. 'icewm') WM="IceWM";;
  2263. 'kwin') WM="KWin";;
  2264. 'metacity') WM="Metacity";;
  2265. 'monsterwm') WM="monsterwm";;
  2266. 'muffin') WM="Muffin";;
  2267. 'musca') WM="Musca";;
  2268. 'mutter'*) WM="Mutter";;
  2269. 'mwm') WM="MWM";;
  2270. 'notion') WM="Notion";;
  2271. 'openbox') WM="OpenBox";;
  2272. 'pekwm') WM="PekWM";;
  2273. 'ratpoison') WM="Ratpoison";;
  2274. 'sawfish') WM="Sawfish";;
  2275. 'scrotwm') WM="ScrotWM";;
  2276. 'spectrwm') WM="SpectrWM";;
  2277. 'stumpwm') WM="StumpWM";;
  2278. 'subtle') WM="subtle";;
  2279. 'sway') WM="sway";;
  2280. 'swm') WM="swm";;
  2281. 'twin') WM="TWin";;
  2282. 'wmaker') WM="WindowMaker";;
  2283. 'wmfs') WM="WMFS";;
  2284. 'wmii') WM="wmii";;
  2285. 'xfwm4') WM="Xfwm4";;
  2286. 'xmonad') WM="XMonad";;
  2287. esac
  2288. fi
  2289. verboseOut "Finding window manager...found as '$WM'"
  2290. }
  2291. # WM Detection - End
  2292. # WM Theme Detection - BEGIN
  2293. detectwmtheme () {
  2294. Win_theme="Not Found"
  2295. if [[ "${distro}" == "Mac OS X" || "${distro}" == "macOS" ]]; then
  2296. themeNumber="$(defaults read NSGlobalDomain AppleAquaColorVariant 2>/dev/null)"
  2297. accentColorNumber="$(defaults read NSGlobalDomain AppleAccentColor 2>/dev/null)"
  2298. interfaceStyle="$(defaults read NSGlobalDomain AppleInterfaceStyle 2>/dev/null)"
  2299. if [ "${themeNumber}" == "1" ] || [ "${themeNumber}x" == "x" ]; then
  2300. case "${accentColorNumber}" in
  2301. "5")
  2302. Win_theme="Purple"
  2303. ;;
  2304. "6")
  2305. Win_theme="Pink"
  2306. ;;
  2307. "0")
  2308. Win_theme="Red"
  2309. ;;
  2310. "1")
  2311. Win_theme="Orange"
  2312. ;;
  2313. "2")
  2314. Win_theme="Yellow"
  2315. ;;
  2316. "3")
  2317. Win_theme="Green"
  2318. ;;
  2319. *)
  2320. Win_theme="Blue"
  2321. ;;
  2322. esac
  2323. else
  2324. Win_theme="Graphite"
  2325. fi
  2326. if [ "${interfaceStyle}" == "Dark" ]; then
  2327. Win_theme="${Win_theme} (Dark)"
  2328. fi
  2329. elif [[ "${distro}" == "Cygwin" || "${distro}" == "Msys" ]]; then
  2330. if [ "${WM}" == "Blackbox" ]; then
  2331. if [ "${distro}" == "Msys" ]; then
  2332. Blackbox_loc=$(reg query 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' //v 'Shell')
  2333. else
  2334. Blackbox_loc=$(reg query 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' /v 'Shell')
  2335. fi
  2336. Blackbox_loc="$(echo "${Blackbox_loc}" | sed 's/.*REG_SZ//' | sed -e 's/^[ \t]*//' | sed 's/.\{4\}$//')"
  2337. Win_theme=$(grep 'session.styleFile' "${Blackbox_loc}.rc" | sed 's/ //g' | sed 's/session\.styleFile://g' | sed 's/.*\\//g')
  2338. else
  2339. if [[ "${distro}" == "Msys" ]]; then
  2340. themeFile="$(reg query 'HKCU\Software\Microsoft\Windows\CurrentVersion\Themes' //v 'CurrentTheme')"
  2341. else
  2342. themeFile="$(reg query 'HKCU\Software\Microsoft\Windows\CurrentVersion\Themes' /v 'CurrentTheme')"
  2343. fi
  2344. Win_theme=$(echo "$themeFile" | awk -F"\\" '{print $NF}' | sed 's|\.theme$||')
  2345. fi
  2346. else
  2347. case $WM in
  2348. '2bwm'|'9wm'|'Beryl'|'bspwm'|'dminiwm'|'dwm'|'echinus'|'FVWM'|'howm'|'i3'|'monsterwm'|'Musca'|\
  2349. 'Notion'|'Ratpoison'|'ScrotWM'|'SpectrWM'|'swm'|'subtle'|'WindowMaker'|'WMFS'|'wmii'|'XMonad')
  2350. Win_theme="Not Applicable"
  2351. ;;
  2352. 'Awesome')
  2353. if [ -f "${XDG_CONFIG_HOME:-${HOME}/.config}/awesome/rc.lua" ]; then
  2354. Win_theme="$(grep '^[^-].*\(theme\|beautiful\).*lua' "${XDG_CONFIG_HOME:-${HOME}/.config}/awesome/rc.lua" | grep '[^/]\+/[^/]\+.lua' -o | cut -d'/' -f1 | head -1)"
  2355. fi
  2356. ;;
  2357. 'BlackBox')
  2358. if [ -f "$HOME/.blackboxrc" ]; then
  2359. Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' "$HOME/.blackboxrc")"
  2360. fi
  2361. ;;
  2362. 'BudgieWM')
  2363. Win_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
  2364. Win_theme="${Win_theme//\'}"
  2365. ;;
  2366. 'Cinnamon'|'Muffin')
  2367. de_theme="$(gsettings get org.cinnamon.theme name)"
  2368. de_theme=${de_theme//"'"}
  2369. win_theme="$(gsettings get org.cinnamon.desktop.wm.preferences theme)"
  2370. win_theme=${win_theme//"'"}
  2371. Win_theme="${de_theme} (${win_theme})"
  2372. ;;
  2373. 'Compiz'|'Mutter'*|'GNOME Shell'|'Gala')
  2374. if type -p gsettings >/dev/null 2>&1; then
  2375. Win_theme="$(gsettings get org.gnome.shell.extensions.user-theme name 2>/dev/null)"
  2376. if [[ -z "$Win_theme" ]]; then
  2377. Win_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
  2378. fi
  2379. Win_theme=${Win_theme//"'"}
  2380. elif type -p gconftool-2 >/dev/null 2>&1; then
  2381. Win_theme=$(gconftool-2 -g /apps/metacity/general/theme)
  2382. fi
  2383. ;;
  2384. 'Deepin WM')
  2385. if type -p gsettings >/dev/null 2>&1; then
  2386. Win_theme="$(gsettings get com.deepin.wrap.gnome.desktop.wm.preferences theme)"
  2387. Win_theme=${Win_theme//"'"}
  2388. fi
  2389. ;;
  2390. 'E16')
  2391. Win_theme="$(awk -F"= " '/theme.name/ {print $2}' $HOME/.e16/e_config--*.cfg)"
  2392. ;;
  2393. 'E17'|'Enlightenment')
  2394. if [ "$(which eet 2>/dev/null)" ]; then
  2395. econfig="$(eet -d "$HOME/.e/e/config/standard/e.cfg" config | awk '/value \"file\" string.*.edj/{ print $4 }')"
  2396. econfigend="${econfig##*/}"
  2397. Win_theme=${econfigend%.*}
  2398. elif [ -n "${E_CONF_PROFILE}" ]; then
  2399. #E17 doesn't store cfg files in text format so for now get the profile as opposed to theme. atyoung
  2400. #TODO: Find a way to extract and read E17 .cfg files ( google seems to have nothing ). atyoung
  2401. Win_theme="${E_CONF_PROFILE}"
  2402. fi
  2403. ;;
  2404. 'Emerald')
  2405. if [ -f "$HOME/.emerald/theme/theme.ini" ]; then
  2406. 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)"
  2407. fi
  2408. ;;
  2409. 'FluxBox'|'Fluxbox')
  2410. if [ -f "$HOME/.fluxbox/init" ]; then
  2411. Win_theme="$(awk -F"/" '/styleFile/ {print $NF}' "$HOME/.fluxbox/init")"
  2412. fi
  2413. ;;
  2414. 'IceWM')
  2415. if [ -f "$HOME/.icewm/theme" ]; then
  2416. Win_theme="$(awk -F"[\",/]" '!/#/ {print $2}' "$HOME/.icewm/theme")"
  2417. fi
  2418. ;;
  2419. 'KWin'*)
  2420. if [[ -z $KDE_CONFIG_DIR ]]; then
  2421. if type -p kde5-config >/dev/null 2>&1; then
  2422. KDE_CONFIG_DIR=$(kde5-config --localprefix)
  2423. elif type -p kde4-config >/dev/null 2>&1; then
  2424. KDE_CONFIG_DIR=$(kde4-config --localprefix)
  2425. elif type -p kde-config >/dev/null 2>&1; then
  2426. KDE_CONFIG_DIR=$(kde-config --localprefix)
  2427. fi
  2428. fi
  2429. if [[ -n $KDE_CONFIG_DIR ]]; then
  2430. Win_theme="Not Applicable"
  2431. KDE_CONFIG_DIR=${KDE_CONFIG_DIR%/}
  2432. if [[ -f $KDE_CONFIG_DIR/share/config/kwinrc ]]; then
  2433. Win_theme="$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0); print $0; exit}' "$KDE_CONFIG_DIR/share/config/kwinrc")"
  2434. if [[ -z "$Win_theme" ]]; then
  2435. Win_theme="Not Applicable"
  2436. fi
  2437. fi
  2438. if [[ "$Win_theme" == "Not Applicable" ]]; then
  2439. if [[ -f $KDE_CONFIG_DIR/share/config/kdebugrc ]]; then
  2440. Win_theme="$(awk '/(decoration)/ {gsub(/\[/,"",$1); print $1; exit}' "$KDE_CONFIG_DIR/share/config/kdebugrc")"
  2441. if [[ -z "$Win_theme" ]]; then
  2442. Win_theme="Not Applicable"
  2443. fi
  2444. fi
  2445. fi
  2446. if [[ "$Win_theme" == "Not Applicable" ]]; then
  2447. if [[ -f $KDE_CONFIG_DIR/share/config/kdeglobals ]]; then
  2448. Win_theme="$(awk '/\[General\]/ {flag=1;next} /^$/{flag=0} flag {print}' "$KDE_CONFIG_DIR/share/config/kdeglobals" | grep -oP 'Name=\K.*')"
  2449. if [[ -z "$Win_theme" ]]; then
  2450. Win_theme="Not Applicable"
  2451. fi
  2452. fi
  2453. fi
  2454. if [[ "$Win_theme" != "Not Applicable" ]]; then
  2455. if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
  2456. if [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -gt 1 ]] || [[ ${BASH_VERSINFO[0]} -gt 4 ]]; then
  2457. Win_theme="${Win_theme^}"
  2458. else
  2459. Win_theme="$(tr '[:lower:]' '[:upper:]' <<< "${Win_theme:0:1}")${Win_theme:1}"
  2460. fi
  2461. else
  2462. Win_theme="$(tr '[:lower:]' '[:upper:]' <<< "${Win_theme:0:1}")${Win_theme:1}"
  2463. fi
  2464. fi
  2465. fi
  2466. ;;
  2467. 'Marco'|'Metacity (Marco)')
  2468. Win_theme="$(gsettings get org.mate.Marco.general theme)"
  2469. Win_theme=${Win_theme//"'"}
  2470. ;;
  2471. 'Metacity')
  2472. if [ "$(gconftool-2 -g /apps/metacity/general/theme)" ]; then
  2473. Win_theme="$(gconftool-2 -g /apps/metacity/general/theme)"
  2474. fi
  2475. ;;
  2476. 'OpenBox'|'Openbox')
  2477. if [ -f "${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml" ]; then
  2478. Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' "${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/rc.xml")";
  2479. elif [[ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml && "${DE}" == "LXDE" ]]; then
  2480. Win_theme="$(awk -F"[<,>]" '/<theme/ { getline; print $3 }' "${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxde-rc.xml")";
  2481. elif [[ -f ${XDG_CONFIG_HOME:-${HOME}/.config}/openbox/lxqt-rc.xml && "${DE}" =~ "LXQt" ]]; then
  2482. Win_theme="$(awk -F'=' '/^theme/ {print $2}' ${HOME}/.config/lxqt/lxqt.conf)"
  2483. fi
  2484. ;;
  2485. 'PekWM')
  2486. if [ -f "$HOME/.pekwm/config" ]; then
  2487. Win_theme="$(awk -F"/" '/Theme/ {gsub(/\"/,""); print $NF}' "$HOME/.pekwm/config")"
  2488. fi
  2489. ;;
  2490. 'Sawfish')
  2491. Win_theme="$(awk -F")" '/\(quote default-frame-style/{print $2}' "$HOME/.sawfish/custom" | sed 's/ (quote //')"
  2492. ;;
  2493. 'TWin')
  2494. if [[ -z $TDE_CONFIG_DIR ]]; then
  2495. if type -p tde-config >/dev/null 2>&1; then
  2496. TDE_CONFIG_DIR=$(tde-config --localprefix)
  2497. fi
  2498. fi
  2499. if [[ -n $TDE_CONFIG_DIR ]]; then
  2500. TDE_CONFIG_DIR=${TDE_CONFIG_DIR%/}
  2501. if [[ -f $TDE_CONFIG_DIR/share/config/kcmthememanagerrc ]]; then
  2502. Win_theme=$(awk '/CurrentTheme=/ {gsub(/CurrentTheme=/,"",$0); print $0; exit}' "$TDE_CONFIG_DIR/share/config/kcmthememanagerrc")
  2503. fi
  2504. if [[ -z $Win_theme ]]; then
  2505. Win_theme="Not Applicable"
  2506. fi
  2507. fi
  2508. ;;
  2509. 'Xfwm4')
  2510. if [ -f "${XDG_CONFIG_HOME:-${HOME}/.config}/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml" ]; then
  2511. Win_theme="$(xfconf-query -c xfwm4 -p /general/theme)"
  2512. fi
  2513. ;;
  2514. esac
  2515. fi
  2516. verboseOut "Finding window manager theme...found as '$Win_theme'"
  2517. }
  2518. # WM Theme Detection - END
  2519. # GTK Theme\Icon\Font Detection - BEGIN
  2520. detectgtk () {
  2521. gtk2Theme="Not Found"
  2522. gtk3Theme="Not Found"
  2523. gtkIcons="Not Found"
  2524. gtkFont="Not Found"
  2525. # Font detection (OS X)
  2526. if [[ ${distro} == "Mac OS X" || ${distro} == "macOS" ]]; then
  2527. gtk2Theme="Not Applicable"
  2528. gtk3Theme="Not Applicable"
  2529. gtkIcons="Not Applicable"
  2530. if ps -U "${USER}" | grep -q -i 'finder'; then
  2531. if [[ ${TERM_PROGRAM} == "iTerm.app" ]] && [ -f ~/Library/Preferences/com.googlecode.iterm2.plist ]; then
  2532. # iTerm2
  2533. iterm2_theme_uuid=$(defaults read com.googlecode.iTerm2 "Default Bookmark Guid")
  2534. OLD_IFS=$IFS
  2535. IFS=$'\n'
  2536. iterm2_theme_info=($(defaults read com.googlecode.iTerm2 "New Bookmarks" | grep -e 'Guid\s*=\s*\w+' -e 'Normal Font'))
  2537. IFS=$OLD_IFS
  2538. for i in $(seq 0 $((${#iterm2_theme_info[*]}/2-1))); do
  2539. found_uuid=$(str1=${iterm2_theme_info[$i*2]};echo "${str1}")
  2540. if [[ $found_uuid == $iterm2_theme_info ]]; then
  2541. gtkFont=$(str2=${iterm2_theme_info[$i*2+1]};echo ${str2:25:${#str2}-25-2} | sed 's/ [0-9]*$//')
  2542. break
  2543. fi
  2544. done
  2545. else
  2546. # Terminal.app
  2547. termapp_theme_name=$(defaults read com.apple.Terminal "Default Window Settings")
  2548. OLD_IFS=$IFS
  2549. IFS=$'\n'
  2550. termapp_theme_info=$(/usr/libexec/PlistBuddy -c \
  2551. "print ':Window Settings:${termapp_theme_name}:Font'" \
  2552. ~/Library/Preferences/com.apple.Terminal.plist \
  2553. | xxd -p |tr -d '\n\t\s')
  2554. IFS=$OLD_IFS
  2555. gtkFont=$(echo "${termapp_theme_info:288:60}" | xxd -r -p | perl -pe 'binmode(STDIN, ":bytes"); tr/A-Za-z0-9_\!\@\#\$\%\&\^\*\(\)-+=//dc;')
  2556. gtkFont=$(echo "${gtkFont:1}" | sed 's/Z\$.*//')
  2557. fi
  2558. fi
  2559. else
  2560. case $DE in
  2561. 'KDE'*) # Desktop Environment found as "KDE"
  2562. if type - p kde4-config >/dev/null 2>&1; then
  2563. KDE_CONFIG_DIR=$(kde4-config --localprefix)
  2564. if [[ -d ${KDE_CONFIG_DIR} ]]; then
  2565. if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  2566. KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  2567. fi
  2568. fi
  2569. elif type -p kde5-config >/dev/null 2>&1; then
  2570. KDE_CONFIG_DIR=$(kde5-config --localprefix)
  2571. if [[ -d ${KDE_CONFIG_DIR} ]]; then
  2572. if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  2573. KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  2574. fi
  2575. fi
  2576. elif type -p kde-config >/dev/null 2>&1; then
  2577. KDE_CONFIG_DIR=$(kde-config --localprefix)
  2578. if [[ -d ${KDE_CONFIG_DIR} ]]; then
  2579. if [[ -f "${KDE_CONFIG_DIR}/share/config/kdeglobals" ]]; then
  2580. KDE_CONFIG_FILE="${KDE_CONFIG_DIR}/share/config/kdeglobals"
  2581. fi
  2582. fi
  2583. fi
  2584. if [[ -n ${KDE_CONFIG_FILE} ]]; then
  2585. if grep -q 'widgetStyle=' "${KDE_CONFIG_FILE}"; then
  2586. gtk2Theme=$(awk -F"=" '/widgetStyle=/ {print $2}' "${KDE_CONFIG_FILE}")
  2587. elif grep -q 'colorScheme=' "${KDE_CONFIG_FILE}"; then
  2588. gtk2Theme=$(awk -F"=" '/colorScheme=/ {print $2}' "${KDE_CONFIG_FILE}")
  2589. fi
  2590. if grep -q 'Theme=' "${KDE_CONFIG_FILE}"; then
  2591. gtkIcons=$(awk -F"=" '/Theme=/ {print $2}' "${KDE_CONFIG_FILE}")
  2592. fi
  2593. if grep -q 'Font=' "${KDE_CONFIG_FILE}"; then
  2594. gtkFont=$(awk -F"=" '/font=/ {print $2}' "${KDE_CONFIG_FILE}")
  2595. fi
  2596. fi
  2597. if [[ -f $HOME/.gtkrc-2.0 ]]; then
  2598. gtk2Theme=$(grep '^gtk-theme-name' "$HOME"/.gtkrc-2.0 | awk -F'=' '{print $2}')
  2599. gtk2Theme=${gtk2Theme//\"/}
  2600. gtkIcons=$(grep '^gtk-icon-theme-name' "$HOME"/.gtkrc-2.0 | awk -F'=' '{print $2}')
  2601. gtkIcons=${gtkIcons//\"/}
  2602. gtkFont=$(grep 'font_name' "$HOME"/.gtkrc-2.0 | awk -F'=' '{print $2}')
  2603. gtkFont=${gtkFont//\"/}
  2604. fi
  2605. if [[ -f $HOME/.config/gtk-3.0/settings.ini ]]; then
  2606. gtk3Theme=$(grep '^gtk-theme-name=' "$HOME"/.config/gtk-3.0/settings.ini | awk -F'=' '{print $2}')
  2607. fi
  2608. ;;
  2609. 'Cinnamon'*) # Desktop Environment found as "Cinnamon"
  2610. if type -p gsettings >/dev/null 2>&1; then
  2611. gtk3Theme=$(gsettings get org.cinnamon.desktop.interface gtk-theme)
  2612. gtk3Theme=${gtk3Theme//"'"}
  2613. gtk2Theme=${gtk3Theme}
  2614. gtkIcons=$(gsettings get org.cinnamon.desktop.interface icon-theme)
  2615. gtkIcons=${gtkIcons//"'"}
  2616. gtkFont=$(gsettings get org.cinnamon.desktop.interface font-name)
  2617. gtkFont=${gtkFont//"'"}
  2618. if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  2619. fi
  2620. ;;
  2621. 'GNOME'*|'Unity'*|'Budgie') # Desktop Environment found as "GNOME"
  2622. if type -p gsettings >/dev/null 2>&1; then
  2623. gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme)
  2624. gtk3Theme=${gtk3Theme//"'"}
  2625. gtk2Theme=${gtk3Theme}
  2626. gtkIcons=$(gsettings get org.gnome.desktop.interface icon-theme)
  2627. gtkIcons=${gtkIcons//"'"}
  2628. gtkFont=$(gsettings get org.gnome.desktop.interface font-name)
  2629. gtkFont=${gtkFont//"'"}
  2630. if [ "$background_detect" == "1" ]; then gtkBackground=$(gsettings get org.gnome.desktop.background picture-uri); fi
  2631. elif type -p gconftool-2 >/dev/null 2>&1; then
  2632. gtk2Theme=$(gconftool-2 -g /desktop/gnome/interface/gtk_theme)
  2633. gtkIcons=$(gconftool-2 -g /desktop/gnome/interface/icon_theme)
  2634. gtkFont=$(gconftool-2 -g /desktop/gnome/interface/font_name)
  2635. if [ "$background_detect" == "1" ]; then
  2636. gtkBackgroundFull=$(gconftool-2 -g /desktop/gnome/background/picture_filename)
  2637. gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  2638. fi
  2639. fi
  2640. ;;
  2641. 'MATE'*) # MATE desktop environment
  2642. if type -p gsettings >/dev/null 2>&1; then
  2643. gtk3Theme=$(gsettings get org.mate.interface gtk-theme)
  2644. gtk3Theme=${gtk3Theme//"'"}
  2645. gtk2Theme=${gtk3Theme}
  2646. gtkIcons=$(gsettings get org.mate.interface icon-theme)
  2647. gtkIcons=${gtkIcons//"'"}
  2648. gtkFont=$(gsettings get org.mate.interface font-name)
  2649. gtkFont=${gtkFont//"'"}
  2650. fi
  2651. ;;
  2652. 'Xfce'*) # Desktop Environment found as "Xfce"
  2653. if [ "$distro" == "BunsenLabs" ] ; then
  2654. gtk2Theme=$(awk -F'"' '/^gtk-theme/ {print $2}' "$HOME"/.gtkrc-2.0)
  2655. gtk3Theme=$(awk -F'=' '/^gtk-theme-name/ {print $2}' "$HOME"/.config/gtk-3.0/settings.ini)
  2656. gtkIcons=$(awk -F'"' '/^gtk-icon-theme/ {print $2}' "$HOME"/.gtkrc-2.0)
  2657. gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' "$HOME"/.gtkrc-2.0)
  2658. else
  2659. if type -p xfconf-query >/dev/null 2>&1; then
  2660. gtk2Theme=$(xfconf-query -c xsettings -p /Net/ThemeName 2>/dev/null)
  2661. [ -z "$gtk2Theme" ] && gtk2Theme="Not Found"
  2662. fi
  2663. if type -p xfconf-query >/dev/null 2>&1; then
  2664. gtkIcons=$(xfconf-query -c xsettings -p /Net/IconThemeName 2>/dev/null)
  2665. [ -z "$gtkIcons" ] && gtkIcons="Not Found"
  2666. fi
  2667. if type -p xfconf-query >/dev/null 2>&1; then
  2668. gtkFont=$(xfconf-query -c xsettings -p /Gtk/FontName 2>/dev/null)
  2669. [ -z "$gtkFont" ] && gtkFont="Not Identified"
  2670. fi
  2671. fi
  2672. ;;
  2673. 'LXDE'*)
  2674. config_home="${XDG_CONFIG_HOME:-${HOME}/.config}"
  2675. if [ -f "$config_home/lxde/config" ]; then
  2676. lxdeconf="/lxde/config"
  2677. elif [ "$distro" == "Trisquel" ] || [ "$distro" == "FreeBSD" ]; then
  2678. lxdeconf=""
  2679. elif [ -f "$config_home/lxsession/Lubuntu/desktop.conf" ]; then
  2680. lxdeconf="/lxsession/Lubuntu/desktop.conf"
  2681. else
  2682. lxdeconf="/lxsession/LXDE/desktop.conf"
  2683. fi
  2684. if grep -q 'sNet\/ThemeName' "${config_home}${lxdeconf}" 2>/dev/null; then
  2685. gtk2Theme=$(awk -F'=' '/sNet\/ThemeName/ {print $2}' "${config_home}${lxdeconf}")
  2686. fi
  2687. if grep -q 'IconThemeName' "${config_home}${lxdeconf}" 2>/dev/null; then
  2688. gtkIcons=$(awk -F'=' '/sNet\/IconThemeName/ {print $2}' "${config_home}${lxdeconf}")
  2689. fi
  2690. if grep -q 'FontName' "${config_home}${lxdeconf}" 2>/dev/null; then
  2691. gtkFont=$(awk -F'=' '/sGtk\/FontName/ {print $2}' "${config_home}${lxdeconf}")
  2692. fi
  2693. ;;
  2694. # /home/me/.config/rox.sourceforge.net/ROX-Session/Settings.xml
  2695. *) # Lightweight or No DE Found
  2696. if [ -f "$HOME/.gtkrc-2.0" ]; then
  2697. if grep -q 'gtk-theme' "$HOME/.gtkrc-2.0"; then
  2698. gtk2Theme=$(awk -F'"' '/^gtk-theme/ {print $2}' "$HOME/.gtkrc-2.0")
  2699. fi
  2700. if grep -q 'icon-theme' "$HOME/.gtkrc-2.0"; then
  2701. gtkIcons=$(awk -F'"' '/^gtk-icon-theme/ {print $2}' "$HOME/.gtkrc-2.0")
  2702. fi
  2703. if grep -q 'font' "$HOME/.gtkrc-2.0"; then
  2704. gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' "$HOME/.gtkrc-2.0")
  2705. fi
  2706. fi
  2707. # $HOME/.gtkrc.mine theme detect only
  2708. if [[ -f "$HOME/.gtkrc.mine" ]]; then
  2709. minegtkrc="$HOME/.gtkrc.mine"
  2710. elif [[ -f "$HOME/.gtkrc-2.0.mine" ]]; then
  2711. minegtkrc="$HOME/.gtkrc-2.0.mine"
  2712. fi
  2713. if [ -f "$minegtkrc" ]; then
  2714. if grep -q '^include' "$minegtkrc"; then
  2715. gtk2Theme=$(grep '^include.*gtkrc' "$minegtkrc" | awk -F "/" '{ print $5 }')
  2716. fi
  2717. if grep -q '^gtk-icon-theme-name' "$minegtkrc"; then
  2718. gtkIcons=$(grep '^gtk-icon-theme-name' "$minegtkrc" | awk -F '"' '{print $2}')
  2719. fi
  2720. fi
  2721. # /etc/gtk-2.0/gtkrc compatibility
  2722. if [[ -f /etc/gtk-2.0/gtkrc && ! -f "$HOME/.gtkrc-2.0" && ! -f "$HOME/.gtkrc.mine" && ! -f "$HOME/.gtkrc-2.0.mine" ]]; then
  2723. if grep -q 'gtk-theme-name' /etc/gtk-2.0/gtkrc; then
  2724. gtk2Theme=$(awk -F'"' '/^gtk-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  2725. fi
  2726. if grep -q 'gtk-fallback-theme-name' /etc/gtk-2.0/gtkrc && ! [ "x$gtk2Theme" = "x" ]; then
  2727. gtk2Theme=$(awk -F'"' '/^gtk-fallback-theme-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  2728. fi
  2729. if grep -q 'icon-theme' /etc/gtk-2.0/gtkrc; then
  2730. gtkIcons=$(awk -F'"' '/^icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  2731. fi
  2732. if grep -q 'gtk-fallback-icon-theme' /etc/gtk-2.0/gtkrc && ! [ "x$gtkIcons" = "x" ]; then
  2733. gtkIcons=$(awk -F'"' '/^gtk-fallback-icon-theme/ {print $2}' /etc/gtk-2.0/gtkrc)
  2734. fi
  2735. if grep -q 'font' /etc/gtk-2.0/gtkrc; then
  2736. gtkFont=$(awk -F'"' '/^gtk-font-name/ {print $2}' /etc/gtk-2.0/gtkrc)
  2737. fi
  2738. fi
  2739. # EXPERIMENTAL gtk3 Theme detection
  2740. if [[ "$gtk3Theme" = "Not Found" && -f "$HOME/.config/gtk-3.0/settings.ini" ]]; then
  2741. if grep -q 'gtk-theme-name' "$HOME/.config/gtk-3.0/settings.ini"; then
  2742. gtk3Theme=$(awk -F'=' '/^gtk-theme-name/ {print $2}' "$HOME/.config/gtk-3.0/settings.ini")
  2743. fi
  2744. fi
  2745. # Proper gtk3 Theme detection
  2746. if type -p gsettings >/dev/null 2>&1; then
  2747. if [[ -z "$gtk3Theme" || "$gtk3Theme" = "Not Found" ]]; then
  2748. gtk3Theme=$(gsettings get org.gnome.desktop.interface gtk-theme 2>/dev/null)
  2749. gtk3Theme=${gtk3Theme//"'"}
  2750. fi
  2751. fi
  2752. # ROX-Filer icon detect only
  2753. if [ -a "${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options" ]; then
  2754. gtkIcons=$(awk -F'[>,<]' '/icon_theme/ {print $3}' "${XDG_CONFIG_HOME:-${HOME}/.config}/rox.sourceforge.net/ROX-Filer/Options")
  2755. fi
  2756. # E17 detection
  2757. if [ "$E_ICON_THEME" ]; then
  2758. gtkIcons=${E_ICON_THEME}
  2759. gtk2Theme="Not available."
  2760. gtkFont="Not available."
  2761. fi
  2762. # Background Detection (feh, nitrogen)
  2763. if [ "$background_detect" == "1" ]; then
  2764. if [ -a "$HOME/.fehbg" ]; then
  2765. gtkBackgroundFull=$(awk -F"'" '/feh --bg/{print $2}' "$HOME/.fehbg" 2>/dev/null)
  2766. gtkBackground=$(echo "$gtkBackgroundFull" | awk -F"/" '{print $NF}')
  2767. elif [ -a "${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg" ]; then
  2768. gtkBackground=$(awk -F"/" '/file=/ {print $NF}' "${XDG_CONFIG_HOME:-${HOME}/.config}/nitrogen/bg-saved.cfg")
  2769. fi
  2770. fi
  2771. if [[ "$distro" == "Cygwin" || "$distro" == "Msys" ]]; then
  2772. if [ "$gtkFont" == "Not Found" ]; then
  2773. if [ -f "$HOME/.minttyrc" ]; then
  2774. gtkFont="$(grep '^Font=.*' "$HOME/.minttyrc" | grep -o '[0-9A-z ]*$')"
  2775. fi
  2776. fi
  2777. fi
  2778. ;;
  2779. esac
  2780. fi
  2781. verboseOut "Finding GTK2 theme...found as '$gtk2Theme'"
  2782. verboseOut "Finding GTK3 theme...found as '$gtk3Theme'"
  2783. verboseOut "Finding icon theme...found as '$gtkIcons'"
  2784. verboseOut "Finding user font...found as '$gtkFont'"
  2785. if [[ -n "$gtkBackground" ]]; then
  2786. verboseOut "Finding background...found as '$gtkBackground'"
  2787. fi
  2788. }
  2789. # GTK Theme\Icon\Font Detection - END
  2790. # Android-specific detections
  2791. detectdroid () {
  2792. distro_ver=$(getprop ro.build.version.release)
  2793. hostname=$(getprop net.hostname)
  2794. device="$(getprop ro.product.model) ($(getprop ro.product.device))"
  2795. if [[ $(getprop ro.build.host) == "cyanogenmod" ]]; then
  2796. rom=$(getprop ro.cm.version)
  2797. else
  2798. rom=$(getprop ro.build.display.id)
  2799. fi
  2800. baseband=$(getprop ro.baseband)
  2801. cpu=$(awk -F': ' '/^Processor/ {P=$2} /^Hardware/ {H=$2} END {print H != "" ? H : P}' /proc/cpuinfo)
  2802. }
  2803. #######################
  2804. # End Detection Phase
  2805. #######################
  2806. takeShot () {
  2807. if [[ -n "$screenCommand" ]]; then
  2808. $screenCommand
  2809. else
  2810. shotfiles[1]=${shotfile}
  2811. if [ "$distro" == "Mac OS X" || "$distro" == "macOS" ]; then
  2812. displays="$(system_profiler SPDisplaysDataType | grep -c 'Resolution:' | tr -d ' ')"
  2813. for (( i=2; i<=displays; i++))
  2814. do
  2815. shotfiles[$i]="$(echo ${shotfile} | sed "s/\(.*\)\./\1_${i}./")"
  2816. done
  2817. printf "Taking shot in 3.. "; sleep 1
  2818. printf "2.. "; sleep 1
  2819. printf "1.. "; sleep 1
  2820. printf "0.\n"
  2821. screencapture -x ${shotfiles[@]} &> /dev/null
  2822. else
  2823. if type -p scrot >/dev/null 2>&1; then
  2824. scrot -cd3 "${shotfile}"
  2825. else
  2826. errorOut "Cannot take screenshot! \`scrot' not in \$PATH"
  2827. fi
  2828. fi
  2829. if [ -f "${shotfile}" ]; then
  2830. verboseOut "Screenshot saved at '${shotfiles[*]}'"
  2831. if [[ "${upload}" == "1" ]]; then
  2832. if type -p curl >/dev/null 2>&1; then
  2833. printf "${bold}==>${c0} Uploading your screenshot now..."
  2834. case "${uploadLoc}" in
  2835. 'teknik')
  2836. baseurl='https://u.teknik.io'
  2837. uploadurl='https://api.teknik.io/upload/post'
  2838. ret=$(curl -sf -F file="@${shotfiles[*]}" ${uploadurl})
  2839. desturl="${ret##*url\":\"}"
  2840. desturl="${desturl%%\"*}"
  2841. desturl="${desturl//\\}"
  2842. ;;
  2843. 'mediacrush')
  2844. baseurl='https://mediacru.sh'
  2845. uploadurl='https://mediacru.sh/api/upload/file'
  2846. ret=$(curl -sf -F file="@${shotfiles[*]};type=image/png" ${uploadurl})
  2847. filehash=$(echo "${ret}" | grep 'hash' | cut -d '"' -f4)
  2848. desturl="${baseurl}/${filehash}"
  2849. ;;
  2850. 'imgur')
  2851. baseurl='http://imgur.com'
  2852. uploadurl='http://imgur.com/upload'
  2853. ret=$(curl -sf -F file="@${shotfiles[*]}" ${uploadurl})
  2854. filehash="${ret##*hash\":\"}"
  2855. filehash="${filehash%%\"*}"
  2856. desturl="${baseurl}/${filehash}"
  2857. ;;
  2858. 'hmp')
  2859. baseurl='http://i.hmp.me/m'
  2860. uploadurl='http://hmp.me/ap/?uf=1'
  2861. ret=$(curl -sf -F a="@${shotfiles[*]};type=image/png" ${uploadurl})
  2862. desturl="${ret##*img_path\":\"}"
  2863. desturl="${desturl%%\"*}"
  2864. desturl="${desturl//\\}"
  2865. ;;
  2866. 'local-example')
  2867. baseurl="http://www.example.com"
  2868. serveraddr="www.example.com"
  2869. scptimeout="20"
  2870. serverdir="/path/to/directory"
  2871. scp -qo ConnectTimeout="${scptimeout}" "${shotfiles[*]}" "${serveraddr}:${serverdir}"
  2872. desturl="${baseurl}/${shotfile}"
  2873. ;;
  2874. esac
  2875. printf "your screenshot can be viewed at ${desturl}\n"
  2876. else
  2877. errorOut "Cannot upload screenshot! \`curl' not in \$PATH"
  2878. fi
  2879. fi
  2880. else
  2881. if type -p scrot >/dev/null 2>&1; then
  2882. errorOut "ERROR: Problem saving screenshot to ${shotfiles[*]}"
  2883. fi
  2884. fi
  2885. fi
  2886. }
  2887. asciiText () {
  2888. # Distro logos and ASCII outputs
  2889. if [[ "$asc_distro" ]]; then
  2890. myascii="${asc_distro}"
  2891. elif [[ "$art" ]]; then
  2892. myascii="custom"
  2893. elif [[ "$fake_distro" ]]; then
  2894. myascii="${fake_distro}"
  2895. else
  2896. myascii="${distro}"
  2897. fi
  2898. case ${myascii} in
  2899. "custom")
  2900. source "$art"
  2901. ;;
  2902. "ALDOS")
  2903. if [[ "$no_color" != "1" ]]; then
  2904. c1=$(getColor 'light grey') # light grey
  2905. fi
  2906. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2907. startline="0"
  2908. logowidth="27"
  2909. fulloutput=(
  2910. "${c1} %s"
  2911. "${c1} # ## # %s"
  2912. "${c1} # ######## # %s"
  2913. "${c1} # ### ######## # %s"
  2914. "${c1} # #### ######### # %s"
  2915. "${c1} # #### # # # # #### # %s"
  2916. "${c1} # ##### # ##### # %s"
  2917. "${c1} # ###### ##### #### # %s"
  2918. "${c1} # ############### # %s"
  2919. "${c1} %s"
  2920. "${c2} _ ___ ___ ___ %s"
  2921. "${c2} __ _| | \ / _ \/ __| %s"
  2922. "${c2} / _' | | |) | (_) \__ \ %s"
  2923. "${c2} \__,_|_|___/ \___/|___/ %s"
  2924. "${c1} %s"
  2925. "${c1} %s")
  2926. ;;
  2927. "Alpine Linux")
  2928. if [[ "$no_color" != "1" ]]; then
  2929. c1=$(getColor 'light blue') # Light
  2930. c2=$(getColor 'blue') # Dark
  2931. fi
  2932. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2933. startline="0"
  2934. logowidth="34"
  2935. fulloutput=(
  2936. "${c1} ................ %s"
  2937. "${c1} ∴::::::::::::::::∴ %s"
  2938. "${c1} ∴::::::::::::::::::∴ %s"
  2939. "${c1} ∴::::::::::::::::::::∴ %s"
  2940. "${c1} ∴:::::::. :::::':::::::∴ %s"
  2941. "${c1} ∴:::::::. ;::; ::::::::∴ %s"
  2942. "${c1} ∴::::::; ∵ :::::::∴ %s"
  2943. "${c1} ∴:::::. . .::::::∴ %s"
  2944. "${c1} :::::: :::. . :::::: %s"
  2945. "${c1} ∵:::: ::::::. ::. ::::∵ %s"
  2946. "${c1} ∵:.. .:;::::::: :::. :::∵ %s"
  2947. "${c1} ∵::::::::::::::::::::::::∵ %s"
  2948. "${c1} ∵::::::::::::::::::::::∵ %s"
  2949. "${c1} ∵::::::::::::::::::::∵ %s"
  2950. "${c1} :::::::::::::::::::: %s"
  2951. "${c1} ∵::::::::::::::::∵ %s")
  2952. ;;
  2953. "Arch Linux - Old")
  2954. if [[ "$no_color" != "1" ]]; then
  2955. c1=$(getColor 'white') # White
  2956. c2=$(getColor 'light blue') # Light Blue
  2957. fi
  2958. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2959. startline="0"
  2960. logowidth="37"
  2961. fulloutput=(
  2962. "${c1} __ %s"
  2963. "${c1} _=(SDGJT=_ %s"
  2964. "${c1} _GTDJHGGFCVS) %s"
  2965. "${c1} ,GTDJGGDTDFBGX0 %s"
  2966. "${c1} JDJDIJHRORVFSBSVL${c2}-=+=,_ %s"
  2967. "${c1} IJFDUFHJNXIXCDXDSV,${c2} \"DEBL %s"
  2968. "${c1} [LKDSDJTDU=OUSCSBFLD.${c2} '?ZWX, %s"
  2969. "${c1} ,LMDSDSWH' \`DCBOSI${c2} DRDS], %s"
  2970. "${c1} SDDFDFH' !YEWD,${c2} )HDROD %s"
  2971. "${c1} !KMDOCG &GSU|${c2}\_GFHRGO\' %s"
  2972. "${c1} HKLSGP'${c2} __${c1}\TKM0${c2}\GHRBV)' %s"
  2973. "${c1} JSNRVW'${c2} __+MNAEC${c1}\IOI,${c2}\BN' %s"
  2974. "${c1} HELK['${c2} __,=OFFXCBGHC${c1}\FD) %s"
  2975. "${c1} ?KGHE ${c2}\_-#DASDFLSV='${c1} 'EF %s"
  2976. "${c1} 'EHTI !H %s"
  2977. "${c1} \`0F' '! %s"
  2978. "${c1} %s"
  2979. "${c1} %s")
  2980. ;;
  2981. "Arch Linux"|"Arch Linux 32")
  2982. if [[ "$no_color" != "1" ]]; then
  2983. c1=$(getColor 'light cyan') # Light
  2984. c2=$(getColor 'cyan') # Dark
  2985. fi
  2986. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  2987. startline="1"
  2988. logowidth="38"
  2989. fulloutput=(
  2990. "${c1} -\` "
  2991. "${c1} .o+\` %s"
  2992. "${c1} \`ooo/ %s"
  2993. "${c1} \`+oooo: %s"
  2994. "${c1} \`+oooooo: %s"
  2995. "${c1} -+oooooo+: %s"
  2996. "${c1} \`/:-:++oooo+: %s"
  2997. "${c1} \`/++++/+++++++: %s"
  2998. "${c1} \`/++++++++++++++: %s"
  2999. "${c1} \`/+++o${c2}oooooooo${c1}oooo/\` %s"
  3000. "${c2} ${c1}./${c2}ooosssso++osssssso${c1}+\` %s"
  3001. "${c2} .oossssso-\`\`\`\`/ossssss+\` %s"
  3002. "${c2} -osssssso. :ssssssso. %s"
  3003. "${c2} :osssssss/ osssso+++. %s"
  3004. "${c2} /ossssssss/ +ssssooo/- %s"
  3005. "${c2} \`/ossssso+/:- -:/+osssso+- %s"
  3006. "${c2} \`+sso+:-\` \`.-/+oso: %s"
  3007. "${c2} \`++:. \`-/+/%s"
  3008. "${c2} .\` \`/%s")
  3009. ;;
  3010. "Artix Linux")
  3011. if [[ "$no_color" != "1" ]]; then
  3012. c1=$(getColor 'cyan')
  3013. c2=$(getColor 'blue')
  3014. c3=$(getColor 'green')
  3015. c4=$(getColor 'dark gray')
  3016. fi
  3017. if [ -n "${my_lcolor}" ]; then
  3018. c1="${my_lcolor}"
  3019. c2="${my_lcolor}"
  3020. c3="${my_lcolor}"
  3021. c4="${my_lcolor}"
  3022. fi
  3023. startline="1"
  3024. logowidth="38"
  3025. fulloutput=(""
  3026. "${c1} d${c2}c. %s"
  3027. "${c1} x${c2}dc. %s"
  3028. "${c1} '.${c4}.${c1} d${c2}dlc. %s"
  3029. "${c1} c${c2}0d:${c1}o${c2}xllc; %s"
  3030. "${c1} :${c2}0ddlolc,lc, %s"
  3031. "${c1} :${c1}ko${c4}.${c1}:${c2}0ddollc..dlc. %s"
  3032. "${c1} ;${c1}K${c2}kxoOddollc' cllc. %s"
  3033. "${c1} ,${c1}K${c2}kkkxdddllc, ${c4}.${c2}lll: %s"
  3034. "${c1} ,${c1}X${c2}kkkddddlll;${c3}...';${c1}d${c2}llll${c3}dxk: %s"
  3035. "${c1} ,${c1}X${c2}kkkddddllll${c3}oxxxddo${c2}lll${c3}oooo, %s"
  3036. "${c3} xxk${c1}0${c2}kkkdddd${c1}o${c2}lll${c1}o${c3}ooooooolooooc;${c1}. %s"
  3037. "${c3} ddd${c2}kkk${c1}d${c2}ddd${c1}ol${c2}lc:${c3}:;,'.${c3}... .${c2}lll; %s"
  3038. "${c1} .${c3}xd${c1}x${c2}kk${c1}xd${c2}dl${c1}'cl:${c4}. ${c2}.llc, %s"
  3039. "${c1} .${c1}0${c2}kkkxddl${c4}. ${c2};'${c4}. ${c2};llc. %s"
  3040. "${c1} .${c1}K${c2}Okdcddl${c4}. ${c2}cllc${c4}. %s"
  3041. "${c1} 0${c2}Okd''dc. .cll; %s"
  3042. "${c1} k${c2}Okd' .llc, %s"
  3043. "${c1} d${c2}Od, 'lc. %s"
  3044. "${c1} :,${c4}. ${c2}... %s"
  3045. " %s")
  3046. ;;
  3047. "blackPanther OS")
  3048. if [[ "$no_color" != "1" ]]; then
  3049. c1=$(getColor 'yellow') # Light Yellow
  3050. c2=$(getColor 'white') # Bold Red
  3051. c3=$(getColor 'light red') # Light Red
  3052. c4=$(getColor 'dark grey')
  3053. fi
  3054. if [ -n "${my_lcolor}" ]; then
  3055. c1="${my_lcolor}"
  3056. c2="${my_lcolor}"
  3057. c3="${my_lcolor}"
  3058. c4="${my_lcolor}"
  3059. fi
  3060. startline="0"
  3061. logowidth="38"
  3062. fulloutput=(
  3063. "${c4} oxoo %s"
  3064. "${c4} ooooooxxxxxxxx %s"
  3065. "${c4} oooooxxxxxxxxxx${c3}O${c1}o.${c4}xx %s"
  3066. "${c4} oo# ###xxxxxxxxxxx###xxx %s"
  3067. "${c4} oo .oooooxxxxxxxxx## #oxx %s"
  3068. "${c4} o ##xxxxxxxxx###x## .o### %s"
  3069. "${c4} .oxxxxxxxx### ox . %s"
  3070. "${c4} ooxxxx#xxxxxx o## %s"
  3071. "${c4}.oxx# #oxxxxx# %s"
  3072. "${c4}ox# ooxxxxxx# o %s"
  3073. "${c4}x# ooxxxxxxxx ox ox%s"
  3074. "${c4}x# .oxxxxxxxxxxx o# oox%s"
  3075. "${c4}# oxxxxx##xxxxxxooooooo# o# %s"
  3076. "${c4} .oxxxxxooxxxxxx###### ox# %s"
  3077. "${c4} oxxxxxo oxxxxxxxx oox## %s"
  3078. "${c4} oxxxxxx oxxxxxxxxxo oooox## %s"
  3079. "${c4} o#xxxxx oxxxxxxxxxxxxxxxx## %s"
  3080. "${c4} ##xxxxx o#xxxxxxxxxxxxx## %s"
  3081. "${c4} ##xxxx o#xxxxxxxxx## %s"
  3082. "${c4} ###xo. o##xxx### %s"
  3083. "${c4} %s")
  3084. ;;
  3085. "ArcoLinux")
  3086. if [[ "$no_color" != "0" ]]; then
  3087. c1=$(getColor 'arco_blue') # dark
  3088. c2=$(getColor 'white') # light
  3089. fi
  3090. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3091. startline="1"
  3092. logowidth="41"
  3093. fulloutput=(
  3094. "${c1} /- "
  3095. "${c1} ooo: %s"
  3096. "${c1} yoooo/ %s"
  3097. "${c1} yooooooo %s"
  3098. "${c1} yooooooooo %s"
  3099. "${c1} yooooooooooo %s"
  3100. "${c1} .yooooooooooooo %s"
  3101. "${c1} .oooooooooooooooo %s"
  3102. "${c1} .oooooooarcoooooooo %s"
  3103. "${c1} .ooooooooo-oooooooooo %s"
  3104. "${c1} .ooooooooo- oooooooooo %s"
  3105. "${c1} :ooooooooo. :ooooooooo %s"
  3106. "${c1} :ooooooooo. :ooooooooo %s"
  3107. "${c1} :oooarcooo .oooarcooo %s"
  3108. "${c1} :ooooooooy .ooooooooo %s"
  3109. "${c1} :ooooooooo ${c2}/ooooooooooooooooooo${c1} %s"
  3110. "${c1} :ooooooooo ${c2}.-ooooooooooooooooo.${c1} %s"
  3111. "${c1} ooooooooo- ${c2}-ooooooooooooo.${c1} %s"
  3112. "${c1} ooooooooo- ${c2}.-oooooooooo.${c1}%s"
  3113. "${c1}ooooooooo. ${c2}-ooooooooo${c1}%s")
  3114. ;;
  3115. "Mint")
  3116. if [[ "$no_color" != "1" ]]; then
  3117. c1=$(getColor 'white') # White
  3118. c2=$(getColor 'light green') # Bold Green
  3119. fi
  3120. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3121. startline="0"
  3122. logowidth="38"
  3123. fulloutput=(
  3124. "${c2} %s"
  3125. "${c2} MMMMMMMMMMMMMMMMMMMMMMMMMmds+. %s"
  3126. "${c2} MMm----::-://////////////oymNMd+\` %s"
  3127. "${c2} MMd ${c1}/++ ${c2}-sNMd: %s"
  3128. "${c2} MMNso/\` ${c1}dMM \`.::-. .-::.\` ${c2}.hMN: %s"
  3129. "${c2} ddddMMh ${c1}dMM :hNMNMNhNMNMNh: ${c2}\`NMm %s"
  3130. "${c2} NMm ${c1}dMM .NMN/-+MMM+-/NMN\` ${c2}dMM %s"
  3131. "${c2} NMm ${c1}dMM -MMm \`MMM dMM. ${c2}dMM %s"
  3132. "${c2} NMm ${c1}dMM -MMm \`MMM dMM. ${c2}dMM %s"
  3133. "${c2} NMm ${c1}dMM .mmd \`mmm yMM. ${c2}dMM %s"
  3134. "${c2} NMm ${c1}dMM\` ..\` ... ydm. ${c2}dMM %s"
  3135. "${c2} hMM- ${c1}+MMd/-------...-:sdds ${c2}dMM %s"
  3136. "${c2} -NMm- ${c1}:hNMNNNmdddddddddy/\` ${c2}dMM %s"
  3137. "${c2} -dMNs-${c1}\`\`-::::-------.\`\` ${c2}dMM %s"
  3138. "${c2} \`/dMNmy+/:-------------:/yMMM %s"
  3139. "${c2} ./ydNMMMMMMMMMMMMMMMMMMMMM %s"
  3140. "${c2} \.MMMMMMMMMMMMMMMMMMM %s"
  3141. "${c2} %s")
  3142. ;;
  3143. "LMDE")
  3144. if [[ "$no_color" != "1" ]]; then
  3145. c1=$(getColor 'white') # White
  3146. c2=$(getColor 'light green') # Bold Green
  3147. fi
  3148. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3149. startline="0"
  3150. logowidth="31"
  3151. fulloutput=(
  3152. "${c1} \`.-::---.. %s"
  3153. "${c2} .:++++ooooosssoo:. %s"
  3154. "${c2} .+o++::. \`.:oos+. %s"
  3155. "${c2} :oo:.\` -+oo${c1}: %s"
  3156. "${c2} ${c1}\`${c2}+o/\` .${c1}::::::${c2}-. .++-${c1}\` %s"
  3157. "${c2} ${c1}\`${c2}/s/ .yyyyyyyyyyo: +o-${c1}\` %s"
  3158. "${c2} ${c1}\`${c2}so .ss ohyo\` :s-${c1}: %s"
  3159. "${c2} ${c1}\`${c2}s/ .ss h m myy/ /s\`${c1}\` %s"
  3160. "${c2} \`s: \`oo s m Myy+-o:\` %s"
  3161. "${c2} \`oo :+sdoohyoydyso/. %s"
  3162. "${c2} :o. .:////////++: %s"
  3163. "${c2} \`/++ ${c1}-:::::- %s"
  3164. "${c2} ${c1}\`${c2}++- %s"
  3165. "${c2} ${c1}\`${c2}/+- %s"
  3166. "${c2} ${c1}.${c2}+/. %s"
  3167. "${c2} ${c1}.${c2}:+-. %s"
  3168. "${c2} \`--.\`\` %s"
  3169. "${c2} %s")
  3170. ;;
  3171. "Ubuntu")
  3172. if [[ "$no_color" != "1" ]]; then
  3173. c1=$(getColor 'white') # White
  3174. c2=$(getColor 'light red') # Light Red
  3175. c3=$(getColor 'yellow') # Bold Yellow
  3176. fi
  3177. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  3178. startline="0"
  3179. logowidth="38"
  3180. fulloutput=(
  3181. "${c2} ./+o+- %s"
  3182. "${c1} yyyyy- ${c2}-yyyyyy+ %s"
  3183. "${c1} ${c1}://+//////${c2}-yyyyyyo %s"
  3184. "${c3} .++ ${c1}.:/++++++/-${c2}.+sss/\` %s"
  3185. "${c3} .:++o: ${c1}/++++++++/:--:/- %s"
  3186. "${c3} o:+o+:++.${c1}\`..\`\`\`.-/oo+++++/ %s"
  3187. "${c3} .:+o:+o/.${c1} \`+sssoo+/ %s"
  3188. "${c1} .++/+:${c3}+oo+o:\`${c1} /sssooo. %s"
  3189. "${c1} /+++//+:${c3}\`oo+o${c1} /::--:. %s"
  3190. "${c1} \+/+o+++${c3}\`o++o${c2} ++////. %s"
  3191. "${c1} .++.o+${c3}++oo+:\`${c2} /dddhhh. %s"
  3192. "${c3} .+.o+oo:.${c2} \`oddhhhh+ %s"
  3193. "${c3} \+.++o+o\`${c2}\`-\`\`\`\`.:ohdhhhhh+ %s"
  3194. "${c3} \`:o+++ ${c2}\`ohhhhhhhhyo++os: %s"
  3195. "${c3} .o:${c2}\`.syhhhhhhh/${c3}.oo++o\` %s"
  3196. "${c2} /osyyyyyyo${c3}++ooo+++/ %s"
  3197. "${c2} \`\`\`\`\` ${c3}+oo+++o\: %s"
  3198. "${c3} \`oo++. %s")
  3199. ;;
  3200. "KDE neon")
  3201. if [[ "$no_color" != "1" ]]; then
  3202. c1=$(getColor 'light green') # Bold Green
  3203. fi
  3204. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3205. startline="0"
  3206. logowidth="43"
  3207. fulloutput=(
  3208. "${c1} \`..---+/---..\` %s"
  3209. "${c1} \`---.\`\` \`\` \`.---.\` %s"
  3210. "${c1} .--.\` \`\` \`-:-. %s"
  3211. "${c1} \`:/: \`.----//----.\` :/- %s"
  3212. "${c1} .:. \`---\` \`--.\` .:\` %s"
  3213. "${c1} .:\` \`--\` .:- \`:. %s"
  3214. "${c1} \`/ \`:. \`.-::-.\` -:\` \`/\` %s"
  3215. "${c1} /. /. \`:++++++++:\` .: .: %s"
  3216. "${c1} \`/ .: \`+++++++++++/ /\` \`+\` %s"
  3217. "${c1} /+\` -- .++++++++++++\` :. .+: %s"
  3218. "${c1} \`/ .: \`+++++++++++/ /\` \`+\` %s"
  3219. "${c1} /\` /. \`:++++++++:\` .: .: %s"
  3220. "${c1} ./ \`:. \`.:::-.\` -:\` \`/\` %s"
  3221. "${c1} .:\` \`--\` .:- \`:. %s"
  3222. "${c1} .:. \`---\` \`--.\` .:\` %s"
  3223. "${c1} \`:/: \`.----//----.\` :/- %s"
  3224. "${c1} .-:.\` \`\` \`-:-. %s"
  3225. "${c1} \`---.\`\` \`\` \`.---.\` %s"
  3226. "${c1} \`..---+/---..\` %s")
  3227. ;;
  3228. "Debian")
  3229. if [[ "$no_color" != "1" ]]; then
  3230. c1=$(getColor 'white') # White
  3231. c2=$(getColor 'light red') # Light Red
  3232. fi
  3233. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3234. startline="0"
  3235. logowidth="32"
  3236. fulloutput=(
  3237. "${c1} _,met\$\$\$\$\$gg. %s"
  3238. "${c1} ,g\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$P. %s"
  3239. "${c1} ,g\$\$P\"\" \"\"\"Y\$\$.\". %s"
  3240. "${c1} ,\$\$P' \`\$\$\$. %s"
  3241. "${c1} ',\$\$P ,ggs. \`\$\$b: %s"
  3242. "${c1} \`d\$\$' ,\$P\"\' ${c2}.${c1} \$\$\$ %s"
  3243. "${c1} \$\$P d\$\' ${c2},${c1} \$\$P %s"
  3244. "${c1} \$\$: \$\$. ${c2}-${c1} ,d\$\$' %s"
  3245. "${c1} \$\$\; Y\$b._ _,d\$P' %s"
  3246. "${c1} Y\$\$. ${c2}\`.${c1}\`\"Y\$\$\$\$P\"' %s"
  3247. "${c1} \`\$\$b ${c2}\"-.__ %s"
  3248. "${c1} \`Y\$\$ %s"
  3249. "${c1} \`Y\$\$. %s"
  3250. "${c1} \`\$\$b. %s"
  3251. "${c1} \`Y\$\$b. %s"
  3252. "${c1} \`\"Y\$b._ %s"
  3253. "${c1} \`\"\"\"\" %s"
  3254. "${c1} %s")
  3255. ;;
  3256. "Proxmox VE")
  3257. if [[ "$no_color" != "1" ]]; then
  3258. c1=$(getColor 'white')
  3259. c2=$(getColor 'orange')
  3260. fi
  3261. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3262. startline="0"
  3263. logowidth="48"
  3264. fulloutput=(
  3265. "${c1} .://:\` \`://:. %s"
  3266. "${c1} \`hMMMMMMd/ /dMMMMMMh\` %s"
  3267. "${c1} \`sMMMMMMMd: :mMMMMMMMs\` %s"
  3268. "${c2} \`-/+oo+/:${c1}\`.yMMMMMMMh- -hMMMMMMMy.\`${c2}:/+oo+/-\` %s"
  3269. "${c2} \`:oooooooo/${c1}\`-hMMMMMMMyyMMMMMMMh-\`${c2}/oooooooo:\` %s"
  3270. "${c2} \`/oooooooo:${c1}\`:mMMMMMMMMMMMMm:\`${c2}:oooooooo/\` %s"
  3271. "${c2} ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/. %s"
  3272. "${c2} .+ooooooo+-${c1}\`oNMMMMNo\`${c2}-+ooooooo+. %s"
  3273. "${c2} -+ooooooo/.${c1}\`sMMs\`${c2}./ooooooo+- %s"
  3274. "${c2} :oooooooo/${c1}\`..\`${c2}/oooooooo: %s"
  3275. "${c2} :oooooooo/\`${c1}..${c2}\`/oooooooo: %s"
  3276. "${c2} -+ooooooo/.${c1}\`sMMs${c2}\`./ooooooo+- %s"
  3277. "${c2} .+ooooooo+-\`${c1}oNMMMMNo${c2}\`-+ooooooo+. %s"
  3278. "${c2} ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/. %s"
  3279. "${c2} \`/oooooooo:\`${c1}:mMMMMMMMMMMMMm:${c2}\`:oooooooo/\` %s"
  3280. "${c2} \`:oooooooo/\`${c1}-hMMMMMMMyyMMMMMMMh-${c2}\`/oooooooo:\` %s"
  3281. "${c2} \`-/+oo+/:\`${c1}.yMMMMMMMh- -hMMMMMMMy.${c2}\`:/+oo+/-\` %s"
  3282. "${c1} \`sMMMMMMMm: :dMMMMMMMs %s"
  3283. "${c1} \`hMMMMMMd/ /dMMMMMMh %s"
  3284. "${c1} \`://:\` \`://:\` %s")
  3285. ;;
  3286. "Siduction")
  3287. if [[ "$no_color" != "1" ]]; then
  3288. c1=$(getColor 'light blue') # Light Blue
  3289. c2=$(getColor 'light blue') # Light Blue
  3290. fi
  3291. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3292. startline="0"
  3293. logowidth="35"
  3294. fulloutput=(
  3295. "${c1} _ass,, %s"
  3296. "${c1} jmk dm. %s"
  3297. "${c1} 3##qwm#\` %s"
  3298. "${c1} . \"9XZ?\` _aas, %s"
  3299. "${c1} ap!!n, _dW(--\$a %s"
  3300. "${c1} )#hc_m# ]mmwaam#\` %s"
  3301. "${c1} ?##WZ^ -4#####! _as,. %s"
  3302. "${c1} _ais, - _au11a. -\"\"\" <m#\"\"\"Wc %s"
  3303. "${c1} )m6_]m, m#c__m6 :m#m,_<m#> %s"
  3304. "${c1} -Y#m#! 4###m#r -\$##mBm#Z\` %s"
  3305. "${c1} - _as,. \"???~ _aawa,.!S##Z?\` %s"
  3306. "${c1} ym= 3h. <##' -Wo %s"
  3307. "${c1} \$#mm#D\` ]B#qww## %s"
  3308. "${c1} \"?!\"\` _s,.-?#m##T' %s"
  3309. "${c1} _dZ\"\"4a -- %s"
  3310. "${c1} 3Wmaam#; %s"
  3311. "${c1} -9###Z! %s")
  3312. ;;
  3313. "Devuan")
  3314. if [[ "$no_color" != "1" ]]; then
  3315. c1=$(getColor 'light purple') # Light purple
  3316. fi
  3317. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3318. startline="0"
  3319. logowidth="36"
  3320. fulloutput=(
  3321. "${c1} %s"
  3322. "${c1} ..,,;;;::;,.. %s"
  3323. "${c1} \`':ddd;:,. %s"
  3324. "${c1} \`'dPPd:,. %s"
  3325. "${c1} \`:b\$\$b\`. %s"
  3326. "${c1} 'P\$\$\$d\` %s"
  3327. "${c1} .\$\$\$\$\$\` %s"
  3328. "${c1} ;\$\$\$\$\$P %s"
  3329. "${c1} .:P\$\$\$\$\$\$\` %s"
  3330. "${c1} .,:b\$\$\$\$\$\$\$;' %s"
  3331. "${c1} .,:dP\$\$\$\$\$\$\$\$b:' %s"
  3332. "${c1} .,:;db\$\$\$\$\$\$\$\$\$\$Pd'\` %s"
  3333. "${c1} ,db\$\$\$\$\$\$\$\$\$\$\$\$\$\$b:'\` %s"
  3334. "${c1} :\$\$\$\$\$\$\$\$\$\$\$\$b:'\` %s"
  3335. "${c1} \`\$\$\$\$\$bd:''\` %s"
  3336. "${c1} \`'''\` %s"
  3337. "${c1} %s")
  3338. ;;
  3339. "Raspbian")
  3340. if [[ "$no_color" != "1" ]]; then
  3341. c1=$(getColor 'light green') # Light Green
  3342. c2=$(getColor 'light red') # Light Red
  3343. fi
  3344. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3345. startline="0"
  3346. logowidth="32"
  3347. fulloutput=(
  3348. "${c1} .',;:cc;,'. .,;::c:,,. %s"
  3349. "${c1} ,ooolcloooo: 'oooooccloo: %s"
  3350. "${c1} .looooc;;:ol :oc;;:ooooo' %s"
  3351. "${c1} ;oooooo: ,ooooooc. %s"
  3352. "${c1} .,:;'. .;:;'. %s"
  3353. "${c2} .dQ. .d0Q0Q0. '0Q. %s"
  3354. "${c2} .0Q0' 'Q0Q0Q' 'Q0Q. %s"
  3355. "${c2} '' .odo. .odo. '' %s"
  3356. "${c2} . .0Q0Q0Q' .0Q0Q0Q. . %s"
  3357. "${c2} ,0Q .0Q0Q0Q0Q 'Q0Q0Q0b. 0Q. %s"
  3358. "${c2} :Q0 Q0Q0Q0Q 'Q0Q0Q0 Q0' %s"
  3359. "${c2} '0 '0Q0' .0Q0. '0' 'Q' %s"
  3360. "${c2} .oo. .0Q0Q0. .oo. %s"
  3361. "${c2} 'Q0Q0. '0Q0Q0Q0. .Q0Q0b %s"
  3362. "${c2} 'Q0Q0. '0Q0Q0' .d0Q0Q' %s"
  3363. "${c2} 'Q0Q' .. '0Q.' %s"
  3364. "${c2} .0Q0Q0Q. %s"
  3365. "${c2} '0Q0Q' %s")
  3366. ;;
  3367. "CrunchBang")
  3368. if [[ "$no_color" != "1" ]]; then
  3369. c1=$(getColor 'white') # White
  3370. fi
  3371. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3372. startline="0"
  3373. logowidth="38"
  3374. fulloutput=(
  3375. "${c1} %s"
  3376. "${c1} ███ ███ ███ %s"
  3377. "${c1} ███ ███ ███ %s"
  3378. "${c1} ███ ███ ███ %s"
  3379. "${c1} ███ ███ ███ %s"
  3380. "${c1} ████████████████████████████ ███ %s"
  3381. "${c1} ████████████████████████████ ███ %s"
  3382. "${c1} ███ ███ ███ %s"
  3383. "${c1} ███ ███ ███ %s"
  3384. "${c1} ███ ███ ███ %s"
  3385. "${c1} ███ ███ ███ %s"
  3386. "${c1} ████████████████████████████ ███ %s"
  3387. "${c1} ████████████████████████████ ███ %s"
  3388. "${c1} ███ ███ %s"
  3389. "${c1} ███ ███ %s"
  3390. "${c1} ███ ███ ███ %s"
  3391. "${c1} ███ ███ ███ %s"
  3392. "${c1} %s")
  3393. ;;
  3394. "CRUX")
  3395. if [[ "$no_color" != "1" ]]; then
  3396. c1=$(getColor 'light cyan')
  3397. c2=$(getColor 'yellow')
  3398. c3=$(getColor 'white')
  3399. fi
  3400. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  3401. startline="1"
  3402. logowidth="27"
  3403. fulloutput=(""
  3404. "${c1} odddd "
  3405. "${c1} oddxkkkxxdoo %s"
  3406. "${c1} ddcoddxxxdoool %s"
  3407. "${c1} xdclodod olol %s"
  3408. "${c1} xoc xdd olol %s"
  3409. "${c1} xdc ${c2}k00${c1}Okdlol %s"
  3410. "${c1} xxd${c2}kOKKKOkd${c1}ldd %s"
  3411. "${c1} xdco${c2}xOkdlo${c1}dldd %s"
  3412. "${c1} ddc:cl${c2}lll${c1}oooodo %s"
  3413. "${c1} odxxdd${c3}xkO000kx${c1}ooxdo %s"
  3414. "${c1} oxdd${c3}x0NMMMMMMWW0od${c1}kkxo %s"
  3415. "${c1} oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx %s"
  3416. "${c1} docldkXW${c3}MMMMMMMWWN${c1}Odolco %s"
  3417. "${c1} xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c %s"
  3418. "${c2} xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l %s"
  3419. "${c2} dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd %s"
  3420. "${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo %s"
  3421. "${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo %s"
  3422. "${c1} %s")
  3423. ;;
  3424. "Chrome OS")
  3425. if [[ "$no_color" != "1" ]]; then
  3426. c1=$(getColor 'green') # Green
  3427. c2=$(getColor 'light red') # Light Red
  3428. c3=$(getColor 'yellow') # Bold Yellow
  3429. c4=$(getColor 'light blue') # Light Blue
  3430. c5=$(getColor 'white') # White
  3431. fi
  3432. if [ -n "${my_lcolor}" ]; then
  3433. c1="${my_lcolor}"
  3434. c2="${my_lcolor}"
  3435. c3="${my_lcolor}"
  3436. c4="${my_lcolor}"
  3437. c5="${my_lcolor}"
  3438. fi
  3439. startline="0"
  3440. logowidth="38"
  3441. fulloutput=(
  3442. "${c2} .,:loool:,. %s"
  3443. "${c2} .,coooooooooooooc,. %s"
  3444. "${c2} .,lllllllllllllllllllll,. %s"
  3445. "${c2} ;ccccccccccccccccccccccccc; %s"
  3446. "${c1} '${c2}ccccccccccccccccccccccccccccc. %s"
  3447. "${c1} ,oo${c2}c::::::::okO${c5}000${c3}0OOkkkkkkkkkkk: %s"
  3448. "${c1} .ooool${c2};;;;:x${c5}K0${c4}kxxxxxk${c5}0X${c3}K0000000000. %s"
  3449. "${c1} :oooool${c2};,;O${c5}K${c4}ddddddddddd${c5}KX${c3}000000000d %s"
  3450. "${c1} lllllool${c2};l${c5}N${c4}dllllllllllld${c5}N${c3}K000000000 %s"
  3451. "${c1} lllllllll${c2}o${c5}M${c4}dccccccccccco${c5}W${c3}K000000000 %s"
  3452. "${c1} ;cllllllllX${c5}X${c4}c:::::::::c${c5}0X${c3}000000000d %s"
  3453. "${c1} .ccccllllllO${c5}Nk${c4}c;,,,;cx${c5}KK${c3}0000000000. %s"
  3454. "${c1} .cccccclllllxOO${c5}OOO${c1}Okx${c3}O0000000000; %s"
  3455. "${c1} .:ccccccccllllllllo${c3}O0000000OOO, %s"
  3456. "${c1} ,:ccccccccclllcd${c3}0000OOOOOOl. %s"
  3457. "${c1} '::ccccccccc${c3}dOOOOOOOkx:. %s"
  3458. "${c1} ..,::cccc${c3}xOOOkkko;. %s"
  3459. "${c1} ..,:${c3}dOkxl:. %s")
  3460. ;;
  3461. "DesaOS")
  3462. if [[ "$no_color" != "1" ]]; then
  3463. c1=$(getColor 'light green') #Hijau
  3464. fi
  3465. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3466. startline="0"
  3467. logowidth="33"
  3468. fulloutput=(
  3469. "${c1} ███████████████████████ %s"
  3470. "${c1} ███████████████████████ %s"
  3471. "${c1} ███████████████████████ %s"
  3472. "${c1} ███████████████████████ %s"
  3473. "${c1} ████████ ███████ %s"
  3474. "${c1} ████████ ███████ %s"
  3475. "${c1} ████████ ███████ %s"
  3476. "${c1} ████████ ███████ %s"
  3477. "${c1} ████████ ███████ %s"
  3478. "${c1} ████████ ███████ %s"
  3479. "${c1} ████████ ███████ %s"
  3480. "${c1} ██████████████████████████████ %s"
  3481. "${c1} ██████████████████████████████ %s"
  3482. "${c1} ████████████████████████ %s"
  3483. "${c1} ████████████████████████ %s"
  3484. "${c1} ████████████████████████ %s"
  3485. " %s")
  3486. ;;
  3487. "Gentoo")
  3488. if [[ "$no_color" != "1" ]]; then
  3489. c1=$(getColor 'white') # White
  3490. c2=$(getColor 'light purple') # Light Purple
  3491. fi
  3492. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3493. startline="0"
  3494. logowidth="37"
  3495. fulloutput=(
  3496. "${c2} -/oyddmdhs+:. %s"
  3497. "${c2} -o${c1}dNMMMMMMMMNNmhy+${c2}-\` %s"
  3498. "${c2} -y${c1}NMMMMMMMMMMMNNNmmdhy${c2}+- %s"
  3499. "${c2} \`o${c1}mMMMMMMMMMMMMNmdmmmmddhhy${c2}/\` %s"
  3500. "${c2} om${c1}MMMMMMMMMMMN${c2}hhyyyo${c1}hmdddhhhd${c2}o\` %s"
  3501. "${c2}.y${c1}dMMMMMMMMMMd${c2}hs++so/s${c1}mdddhhhhdm${c2}+\` %s"
  3502. "${c2} oy${c1}hdmNMMMMMMMN${c2}dyooy${c1}dmddddhhhhyhN${c2}d. %s"
  3503. "${c2} :o${c1}yhhdNNMMMMMMMNNNmmdddhhhhhyym${c2}Mh %s"
  3504. "${c2} .:${c1}+sydNMMMMMNNNmmmdddhhhhhhmM${c2}my %s"
  3505. "${c2} /m${c1}MMMMMMNNNmmmdddhhhhhmMNh${c2}s: %s"
  3506. "${c2} \`o${c1}NMMMMMMMNNNmmmddddhhdmMNhs${c2}+\` %s"
  3507. "${c2} \`s${c1}NMMMMMMMMNNNmmmdddddmNMmhs${c2}/. %s"
  3508. "${c2} /N${c1}MMMMMMMMNNNNmmmdddmNMNdso${c2}:\` %s"
  3509. "${c2}+M${c1}MMMMMMNNNNNmmmmdmNMNdso${c2}/- %s"
  3510. "${c2}yM${c1}MNNNNNNNmmmmmNNMmhs+/${c2}-\` %s"
  3511. "${c2}/h${c1}MMNNNNNNNNMNdhs++/${c2}-\` %s"
  3512. "${c2}\`/${c1}ohdmmddhys+++/:${c2}.\` %s"
  3513. "${c2} \`-//////:--. %s")
  3514. ;;
  3515. "Funtoo")
  3516. if [[ "$no_color" != "1" ]]; then
  3517. c1=$(getColor 'white') # White
  3518. c2=$(getColor 'light purple') # Light Purple
  3519. fi
  3520. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3521. startline="0"
  3522. logowidth="52"
  3523. fulloutput=(
  3524. "${c1} %s"
  3525. "${c1} %s"
  3526. "${c1} %s"
  3527. "${c1} %s"
  3528. "${c1} _______ ____ %s"
  3529. "${c1} /MMMMMMM/ /MMMM| _____ _____ %s"
  3530. "${c1} __/M${c2}.MMM.${c1}M/_____________|M${c2}.M${c1}MM|/MMMMM\/MMMMM\ %s"
  3531. "${c1}|MMMM${c2}MM'${c1}MMMMMMMMMMMMMMMMMMM${c2}MM${c1}MMMM${c2}.MMMM..MMMM.${c1}MM\ %s"
  3532. "${c1}|MM${c2}MMMMMMM${c1}/m${c2}MMMMMMMMMMMMMMMMMMMMMM${c1}MMMM${c2}MM${c1}MMMM${c2}MM${c1}MM| %s"
  3533. "${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"
  3534. "${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"
  3535. "${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"
  3536. "${c1} |MM${c2}MM${c1}MMM${c2}MM${c1}MMMMMM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MMMMM'${c1}M| %s"
  3537. "${c1} |MM${c2}MM${c1}MMM${c2}MMMMMMMMMMMMMMMMM MM'${c1}M/ %s"
  3538. "${c1} |MMMMMMMMMMMMMMMMMMMMMMMMMMMM/ %s"
  3539. "${c1} %s"
  3540. "${c1} %s"
  3541. "${c1} %s")
  3542. ;;
  3543. "Kogaion")
  3544. if [[ "$no_color" != "1" ]]; then
  3545. c1=$(getColor 'light blue') # Light Blue
  3546. fi
  3547. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3548. startline="0"
  3549. logowidth="41"
  3550. fulloutput=(
  3551. "${c1} ;; ,; %s"
  3552. "${c1} ;;; ,;; %s"
  3553. "${c1} ,;;;; ;;;; %s"
  3554. "${c1} ,;;;;;;;; ;;;; %s"
  3555. "${c1} ;;;;;;;;;;; ;;;;; %s"
  3556. "${c1} ,;;;;;;;;;;;; ';;;;;, %s"
  3557. "${c1} ;;;;;;;;;;;;;;, ';;;;;;; %s"
  3558. "${c1} ;;;;;;;;;;;;;;;;;, ';;;;; %s"
  3559. "${c1} ; ';;;;;;;;;;;;;;;;;;, ;;; %s"
  3560. "${c1} ;;;, ';;;;;;;;;;;;;;;;;;;,;; %s"
  3561. "${c1} ;;;;;, ';;;;;;;;;;;;;;;;;;, %s"
  3562. "${c1} ;;;;;;;;, ';;;;;;;;;;;;;;;;, %s"
  3563. "${c1} ;;;;;;;;;;;;, ';;;;;;;;;;;;;; %s"
  3564. "${c1} ';;;;;;;;;;;;; ';;;;;;;;;;;;; %s"
  3565. "${c1} ';;;;;;;;;;;;;, ';;;;;;;;;;; %s"
  3566. "${c1} ';;;;;;;;;;;;; ;;;;;;;;;; %s"
  3567. "${c1} ';;;;;;;;;;;; ;;;;;;;; %s"
  3568. "${c1} ';;;;;;;; ;;;;;; %s"
  3569. "${c1} ';;;;; ;;;; %s"
  3570. "${c1} ';;; ;; %s")
  3571. ;;
  3572. "Fedora")
  3573. if [[ "$no_color" != "1" ]]; then
  3574. c1=$(getColor 'white') # White
  3575. c2=$(getColor 'light blue') # Light Blue
  3576. fi
  3577. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3578. startline="0"
  3579. logowidth="37"
  3580. fulloutput=(
  3581. "${c2} /:-------------:\ %s"
  3582. "${c2} :-------------------:: %s"
  3583. "${c2} :-----------${c1}/shhOHbmp${c2}---:\\ %s"
  3584. "${c2} /-----------${c1}omMMMNNNMMD ${c2}---: %s"
  3585. "${c2} :-----------${c1}sMMMMNMNMP${c2}. ---: %s"
  3586. "${c2} :-----------${c1}:MMMdP${c2}------- ---\ %s"
  3587. "${c2} ,------------${c1}:MMMd${c2}-------- ---: %s"
  3588. "${c2} :------------${c1}:MMMd${c2}------- .---: %s"
  3589. "${c2} :---- ${c1}oNMMMMMMMMMNho${c2} .----: %s"
  3590. "${c2} :-- .${c1}+shhhMMMmhhy++${c2} .------/ %s"
  3591. "${c2} :- -------${c1}:MMMd${c2}--------------: %s"
  3592. "${c2} :- --------${c1}/MMMd${c2}-------------; %s"
  3593. "${c2} :- ------${c1}/hMMMy${c2}------------: %s"
  3594. "${c2} :--${c1} :dMNdhhdNMMNo${c2}------------; %s"
  3595. "${c2} :---${c1}:sdNMMMMNds:${c2}------------: %s"
  3596. "${c2} :------${c1}:://:${c2}-------------:: %s"
  3597. "${c2} :---------------------:// %s"
  3598. "${c2} %s")
  3599. ;;
  3600. "Fux")
  3601. if [[ "$no_color" != "1" ]]; then
  3602. c1=$(getColor 'white') # White
  3603. c2=$(getColor 'light blue') # Light Blue
  3604. fi
  3605. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3606. startline="0"
  3607. fulloutput=(
  3608. "${c2} --/+osssso+/-- %s"
  3609. "${c2} -/oshhhhhhhhhhhhso/- %s"
  3610. "${c2} :oyhhhhhso+//+oshhhhhso: %s"
  3611. "${c2} -+yhhhh+. ss+/ .+hhhhs+- %s"
  3612. "${c2} :/hhhh/ shhhy/ /hhhh/: %s"
  3613. "${c2} ./hhhh- .++:..dhhb..:++. -hhhh/. %s"
  3614. "${c2} +ohhh: -hoyhohhoohhohyoh- :hhho+ %s"
  3615. "${c2} /hhhh shhy-ohyyho-yhhs hhhh/ %s"
  3616. "${c2} /hhhh shy\+hhhh+/yhs hhhh/ %s"
  3617. "${c2} +ohhh: .:d. +:ys:+ .b:. :hhho+ %s"
  3618. "${c2} ./hhhh- do / oo \ ob -hhhh/. %s"
  3619. "${c2} :/hhhh/ - ss - /hhhh/: %s"
  3620. "${c2} -+shhhh+. // .+hhhhs+- %s"
  3621. "${c2} :oshhhhhso+//+oshhhhhso: %s"
  3622. "${c2} -/oshhhhhhhhhhhhso/- %s"
  3623. "${c2} --/+osssso+/-- %s")
  3624. ;;
  3625. "Chapeau")
  3626. if [[ "$no_color" != "1" ]]; then
  3627. c1=$(getColor 'white') # White
  3628. c2=$(getColor 'light green') # Light Green
  3629. fi
  3630. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3631. startline="0"
  3632. logowidth="35"
  3633. fulloutput=(
  3634. "${c2} .-/-. %s"
  3635. "${c2} ////////. %s"
  3636. "${c2} ////////${c1}y+${c2}//. %s"
  3637. "${c2} ////////${c1}mMN${c2}/////. %s"
  3638. "${c2} ////////${c1}mMN+${c2}////////. %s"
  3639. "${c2} ////////////////////////. %s"
  3640. "${c2} /////////+${c1}shhddhyo${c2}+////////. %s"
  3641. "${c2} ////////${c1}ymMNmdhhdmNNdo${c2}///////. %s"
  3642. "${c2} ///////+${c1}mMms${c2}////////${c1}hNMh${c2}///////. %s"
  3643. "${c2} ///////${c1}NMm+${c2}//////////${c1}sMMh${c2}/////// %s"
  3644. "${c2} //////${c1}oMMNmmmmmmmmmmmmMMm${c2}/////// %s"
  3645. "${c2} //////${c1}+MMmssssssssssssss+${c2}/////// %s"
  3646. "${c2} \`//////${c1}yMMy${c2}//////////////////// %s"
  3647. "${c2} \`//////${c1}smMNhso++oydNm${c2}//////// %s"
  3648. "${c2} \`///////${c1}ohmNMMMNNdy+${c2}/////// %s"
  3649. "${c2} \`//////////${c1}++${c2}////////// %s"
  3650. "${c2} \`////////////////. %s"
  3651. "${c2} -////////- %s"
  3652. "${c2} %s")
  3653. ;;
  3654. "Korora")
  3655. if [[ "$no_color" != "1" ]]; then
  3656. c1=$(getColor 'white')
  3657. c2=$(getColor 'light blue')
  3658. fi
  3659. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3660. startline="0"
  3661. logowidth="32"
  3662. fulloutput=(
  3663. "${c1} ____________ %s"
  3664. "${c1} _add55555555554${c2}: %s"
  3665. "${c1} _w?'${c2}\`\`\`\`\`\`\`\`\`\`'${c1})k${c2}: %s"
  3666. "${c1} _Z'${c2}\`${c1} ]k${c2}: %s"
  3667. "${c1} m(${c2}\`${c1} )k${c2}: %s"
  3668. "${c1} _.ss${c2}\`${c1}m[${c2}\`${c1}, ]e${c2}: %s"
  3669. "${c1} .uY\"^\`${c2}\`${c1}Xc${c2}\`${c1}?Ss. d(${c2}\` %s"
  3670. "${c1} jF'${c2}\`${c1} \`@. ${c2}\`${c1}Sc .jr${c2}\` %s"
  3671. "${c1} jr${c2}\`${c1} \`?n_ ${c2}\`${c1}$; _a2\"${c2}\` %s"
  3672. "${c1} .m${c2}:${c1} \`~M${c2}\`${c1}1k${c2}\`${c1}5?!\`${c2}\` %s"
  3673. "${c1} :#${c2}:${c1} ${c2}\`${c1})e${c2}\`\`\` %s"
  3674. "${c1} :m${c2}:${c1} ,#'${c2}\` %s"
  3675. "${c1} :#${c2}:${c1} .s2'${c2}\` %s"
  3676. "${c1} :m,________.aa7^${c2}\` %s"
  3677. "${c1} :#baaaaaaas!J'${c2}\` %s"
  3678. "${c2} \`\`\`\`\`\`\`\`\`\`\` %s")
  3679. ;;
  3680. "gNewSense")
  3681. if [[ "$no_color" != "1" ]]; then
  3682. c1=$(getColor 'light blue') # Light Blue
  3683. fi
  3684. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3685. startline="0"
  3686. logowidth="52"
  3687. fulloutput=(
  3688. "${c1} ..,,,,.. %s"
  3689. "${c1} .oocchhhhhhhhhhccoo. %s"
  3690. "${c1} .ochhlllllllc hhhhhh ollllllhhco. %s"
  3691. "${c1} ochlllllllllll hhhllllllhhh lllllllllllhco %s"
  3692. "${c1} .cllllllllllllll hlllllo +hllh llllllllllllllc. %s"
  3693. "${c1} ollllllllllhco\'\' hlllllo +hllh \`\`ochllllllllllo %s"
  3694. "${c1} hllllllllc\' hllllllllllllh \`cllllllllh %s"
  3695. "${c1} ollllllh +llllllllllll+ hllllllo %s"
  3696. "${c1} \`cllllh. ohllllllho .hllllc\' %s"
  3697. "${c1} ochllc. ++++ .cllhco %s"
  3698. "${c1} \`+occooo+. .+ooocco+\' %s"
  3699. "${c1} \`+oo++++ ++++oo+\' %s"
  3700. "${c1} %s")
  3701. ;;
  3702. "BLAG")
  3703. if [[ "$no_color" != "1" ]]; then
  3704. c1=$(getColor 'light purple')
  3705. fi
  3706. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3707. startline="0"
  3708. logowidth="36"
  3709. fulloutput=(
  3710. "${c1} d %s"
  3711. "${c1} ,MK: %s"
  3712. "${c1} xMMMX: %s"
  3713. "${c1} .NMMMMMX; %s"
  3714. "${c1} lMMMMMMMM0clodkO0KXWW: %s"
  3715. "${c1} KMMMMMMMMMMMMMMMMMMX' %s"
  3716. "${c1} .;d0NMMMMMMMMMMMMMMMMMMK. %s"
  3717. "${c1} .;dONMMMMMMMMMMMMMMMMMMMMMMx %s"
  3718. "${c1} 'dKMMMMMMMMMMMMMMMMMMMMMMMMl %s"
  3719. "${c1} .:xKWMMMMMMMMMMMMMMMMMMM0. %s"
  3720. "${c1} .:xNMMMMMMMMMMMMMMMMMK. %s"
  3721. "${c1} lMMMMMMMMMMMMMMMMMMK. %s"
  3722. "${c1} ,MMMMMMMMWkOXWMMMMMM0 %s"
  3723. "${c1} .NMMMMMNd. \`':ldko %s"
  3724. "${c1} OMMMK: %s"
  3725. "${c1} oWk, %s"
  3726. "${c1} ;: %s")
  3727. ;;
  3728. "FreeBSD")
  3729. if [[ "$no_color" != "1" ]]; then
  3730. c1=$(getColor 'white') # white
  3731. c2=$(getColor 'light red') # Light Red
  3732. fi
  3733. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3734. startline="0"
  3735. logowidth="37"
  3736. fulloutput=(
  3737. "${c1} %s"
  3738. "${c1} \`\`\` ${c2}\` %s"
  3739. "${c1} \` \`.....---...${c2}....--.\`\`\` -/ %s"
  3740. "${c1} +o .--\` ${c2}/y:\` +. %s"
  3741. "${c1} yo\`:. ${c2}:o \`+- %s"
  3742. "${c1} y/ ${c2}-/\` -o/ %s"
  3743. "${c1} .- ${c2}::/sy+:. %s"
  3744. "${c1} / ${c2}\`-- / %s"
  3745. "${c1} \`: ${c2}:\` %s"
  3746. "${c1} \`: ${c2}:\` %s"
  3747. "${c1} / ${c2}/ %s"
  3748. "${c1} .- ${c2}-. %s"
  3749. "${c1} -- ${c2}-. %s"
  3750. "${c1} \`:\` ${c2}\`:\` %s"
  3751. "${c2} .-- \`--. %s"
  3752. "${c2} .---.....----. %s"
  3753. "${c2} %s"
  3754. "${c2} %s")
  3755. ;;
  3756. "FreeBSD - Old")
  3757. if [[ "$no_color" != "1" ]]; then
  3758. c1=$(getColor 'white') # white
  3759. c2=$(getColor 'light red') # Light Red
  3760. fi
  3761. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3762. startline="0"
  3763. logowidth="34"
  3764. fulloutput=(
  3765. "${c2} , , %s"
  3766. "${c2} /( )\` %s"
  3767. "${c2} \ \___ / | %s"
  3768. "${c2} /- ${c1}_${c2} \`-/ ' %s"
  3769. "${c2} (${c1}/\/ \ ${c2}\ /\\ %s"
  3770. "${c1} / / |${c2} \` \\ %s"
  3771. "${c1} O O )${c2} / | %s"
  3772. "${c1} \`-^--'\`${c2}< ' %s"
  3773. "${c2} (_.) _ ) / %s"
  3774. "${c2} \`.___/\` / %s"
  3775. "${c2} \`-----' / %s"
  3776. "${c1} <----. ${c2}__/ __ \\ %s"
  3777. "${c1} <----|====${c2}O}}}${c1}==${c2}} \} \/${c1}==== %s"
  3778. "${c1} <----' ${c2}\`--' \`.__,' \\ %s"
  3779. "${c2} | | %s"
  3780. "${c2} \ / /\\ %s"
  3781. "${c2} ______( (_ / \______/ %s"
  3782. "${c2} ,' ,-----' | %s"
  3783. "${c2} \`--{__________) %s"
  3784. "${c2} %s")
  3785. ;;
  3786. "OpenBSD")
  3787. if [[ "$no_color" != "1" ]]; then
  3788. c1=$(getColor 'yellow') # Light Yellow
  3789. c2=$(getColor 'brown') # Bold Yellow
  3790. c3=$(getColor 'light cyan') # Light Cyan
  3791. c4=$(getColor 'light red') # Light Red
  3792. c5=$(getColor 'dark grey')
  3793. fi
  3794. if [ -n "${my_lcolor}" ]; then
  3795. c1="${my_lcolor}"
  3796. c2="${my_lcolor}"
  3797. c3="${my_lcolor}"
  3798. c4="${my_lcolor}"
  3799. c5="${my_lcolor}"
  3800. fi
  3801. startline="3"
  3802. logowidth="44"
  3803. fulloutput=(
  3804. "${c3} _ "
  3805. "${c3} (_) "
  3806. "${c1} | . "
  3807. "${c1} . |L /| . ${c3} _ %s"
  3808. "${c1} _ . |\ _| \--+._/| . ${c3}(_) %s"
  3809. "${c1} / ||\| Y J ) / |/| ./ %s"
  3810. "${c1} J |)'( | \` F\`.'/ ${c3} _ %s"
  3811. "${c1} -<| F __ .-< ${c3}(_) %s"
  3812. "${c1} | / .-'${c3}. ${c1}\`. /${c3}-. ${c1}L___ %s"
  3813. "${c1} J \ < ${c3}\ ${c1} | | ${c5}O${c3}\\\\${c1}|.-' ${c3} _ %s"
  3814. "${c1} _J \ .- \\\\${c3}/ ${c5}O ${c3}| ${c1}| \ |${c1}F ${c3}(_) %s"
  3815. "${c1} '-F -<_. \ .-' \`-' L__ %s"
  3816. "${c1}__J _ _. >-' ${c2})${c4}._. ${c1}|-' %s"
  3817. "${c1} \`-|.' /_. ${c4}\_| ${c1} F %s"
  3818. "${c1} /.- . _.< %s"
  3819. "${c1} /' /.' .' \`\ %s"
  3820. "${c1} /L /' |/ _.-'-\ %s"
  3821. "${c1} /'J ___.---'\| %s"
  3822. "${c1} |\ .--' V | \`. \` %s"
  3823. "${c1} |/\`. \`-. \`._) %s"
  3824. "${c1} / .-.\ %s"
  3825. "${c1} \ ( \`\ %s"
  3826. "${c1} \`.\ %s")
  3827. ;;
  3828. "DragonFlyBSD")
  3829. if [[ "$no_color" != "1" ]]; then
  3830. c1=$(getColor 'light red') # Red
  3831. c2=$(getColor 'white') # White
  3832. c3=$(getColor 'yellow')
  3833. c4=$(getColor 'light red')
  3834. fi
  3835. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  3836. startline="0"
  3837. logowidth="43"
  3838. fulloutput=(
  3839. "${c1} | %s"
  3840. "${c1} .-. %s"
  3841. "${c3} ()${c1}I${c3}() %s"
  3842. "${c1} \"==.__:-:__.==\" %s"
  3843. "${c1} \"==.__/~|~\__.==\" %s"
  3844. "${c1} \"==._( Y )_.==\" %s"
  3845. "${c2} .-'~~\"\"~=--...,__${c1}\/|\/${c2}__,...--=~\"\"~~'-. %s"
  3846. "${c2} ( ..=${c1}\\\\=${c1}/${c2}=.. )%s"
  3847. "${c2} \`'-. ,.-\"\`;${c1}/=\\\\${c2} ;\"-.,_ .-'\`%s"
  3848. "${c2} \`~\"-=-~\` .-~\` ${c1}|=|${c2} \`~-. \`~-=-\"~\` %s"
  3849. "${c2} .-~\` /${c1}|=|${c2}\ \`~-. %s"
  3850. "${c2} .~\` / ${c1}|=|${c2} \ \`~. %s"
  3851. "${c2} .-~\` .' ${c1}|=|${c2} \\\\\`. \`~-. %s"
  3852. "${c2} (\` _,.-=\"\` ${c1}|=|${c2} \`\"=-.,_ \`) %s"
  3853. "${c2} \`~\"~\"\` ${c1}|=|${c2} \`\"~\"~\` %s"
  3854. "${c1} /=\ %s"
  3855. "${c1} \=/ %s"
  3856. "${c1} ^ %s")
  3857. ;;
  3858. "NetBSD")
  3859. if [[ "$no_color" != "1" ]]; then
  3860. c1=$(getColor 'orange') # Orange
  3861. c2=$(getColor 'white') # White
  3862. fi
  3863. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3864. startline="0"
  3865. logowidth="60"
  3866. fulloutput=(
  3867. "${c1} __,gnnnOCCCCCOObaau,_ %s"
  3868. "${c2} _._ ${c1}__,gnnCCCCCCCCOPF\"'' %s"
  3869. "${c2} (N\\\\\\\\${c1}XCbngg,._____.,gnnndCCCCCCCCCCCCF\"___,,,,___ %s"
  3870. "${c2} \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCOOOOPYvv. %s"
  3871. "${c2} \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPF\"'' %s"
  3872. "${c2} \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCCCCCCOF\"' %s"
  3873. "${c2} \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCCCCCCOF\"' %s"
  3874. "${c2} \\\\N\\\\\\\\${c1}XCCCCCCCCCCCCCCCPF\"' %s"
  3875. "${c2} \\\\N\\\\\\\\${c1}\"PCOCCCOCCFP\"\" %s"
  3876. "${c2} \\\\N\ %s"
  3877. "${c2} \\\\N\ %s"
  3878. "${c2} \\\\N\ %s"
  3879. "${c2} \\\\NN\ %s"
  3880. "${c2} \\\\NN\ %s"
  3881. "${c2} \\\\NNA. %s"
  3882. "${c2} \\\\NNA, %s"
  3883. "${c2} \\\\NNN, %s"
  3884. "${c2} \\\\NNN\ %s"
  3885. "${c2} \\\\NNN\ %s"
  3886. "${c2} \\\\NNNA %s")
  3887. ;;
  3888. "Mandriva"|"Mandrake")
  3889. if [[ "$no_color" != "1" ]]; then
  3890. c1=$(getColor 'light blue') # Light Blue
  3891. c2=$(getColor 'yellow') # Bold Yellow
  3892. fi
  3893. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3894. startline="0"
  3895. logowidth="41"
  3896. fulloutput=(
  3897. "${c2} %s"
  3898. "${c2} \`\` %s"
  3899. "${c2} \`-. %s"
  3900. "${c1} \` ${c2}.--- %s"
  3901. "${c1} -/ ${c2}-::--\` %s"
  3902. "${c1} \`++ ${c2}\`----...\`\`\`-:::::. %s"
  3903. "${c1} \`os. ${c2}.::::::::::::::-\`\`\` \` \` %s"
  3904. "${c1} +s+ ${c2}.::::::::::::::::---...--\` %s"
  3905. "${c1} -ss: ${c2}\`-::::::::::::::::-.\`\`.\`\` %s"
  3906. "${c1} /ss- ${c2}.::::::::::::-.\`\` \` %s"
  3907. "${c1} +ss: ${c2}.::::::::::::- %s"
  3908. "${c1} /sso ${c2}.::::::-::::::- %s"
  3909. "${c1} .sss/ ${c2}-:::-.\` .::::: %s"
  3910. "${c1} /sss+. ${c2}..\`${c1} \`--\` ${c2}.::: %s"
  3911. "${c1} -ossso+/:://+/-\` ${c2}.:\` %s"
  3912. "${c1} -/+ooo+/-. ${c2}\` %s"
  3913. "${c1} %s"
  3914. "${c1} %s")
  3915. ;;
  3916. "openSUSE"|"SUSE Linux Enterprise")
  3917. if [[ "$no_color" != "1" ]]; then
  3918. c1=$(getColor 'light green') # Bold Green
  3919. c2=$c0$bold
  3920. fi
  3921. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3922. startline="0"
  3923. logowidth="44"
  3924. fulloutput=(
  3925. "${c2} .;ldkO0000Okdl;. %s"
  3926. "${c2} .;d00xl:^''''''^:ok00d;. %s"
  3927. "${c2} .d00l' 'o00d. %s"
  3928. "${c2} .d0K^'${c1} Okxoc;:,. ${c2}^O0d. %s"
  3929. "${c2} .OVV${c1}AK0kOKKKKKKKKKKOxo:, ${c2}lKO. %s"
  3930. "${c2} ,0VV${c1}AKKKKKKKKKKKKK0P^${c2},,,${c1}^dx:${c2} ;00, %s"
  3931. "${c2} .OVV${c1}AKKKKKKKKKKKKKk'${c2}.oOPPb.${c1}'0k.${c2} cKO. %s"
  3932. "${c2} :KV${c1}AKKKKKKKKKKKKKK: ${c2}kKx..dd ${c1}lKd${c2} 'OK: %s"
  3933. "${c2} lKl${c1}KKKKKKKKKOx0KKKd ${c2}^0KKKO' ${c1}kKKc${c2} lKl %s"
  3934. "${c2} lKl${c1}KKKKKKKKKK;.;oOKx,..${c2}^${c1}..;kKKK0.${c2} lKl %s"
  3935. "${c2} :KA${c1}lKKKKKKKKK0o;...^cdxxOK0O/^^' ${c2}.0K: %s"
  3936. "${c2} kKA${c1}VKKKKKKKKKKKK0x;,,......,;od ${c2}lKP %s"
  3937. "${c2} '0KA${c1}VKKKKKKKKKKKKKKKKKK00KKOo^ ${c2}c00' %s"
  3938. "${c2} 'kKA${c1}VOxddxkOO00000Okxoc;'' ${c2}.dKV' %s"
  3939. "${c2} l0Ko. .c00l' %s"
  3940. "${c2} 'l0Kk:. .;xK0l' %s"
  3941. "${c2} 'lkK0xc;:,,,,:;odO0kl' %s"
  3942. "${c2} '^:ldxkkkkxdl:^' %s")
  3943. ;;
  3944. "Slackware")
  3945. if [[ "$no_color" != "1" ]]; then
  3946. c1=$(getColor 'light blue') # Light Blue
  3947. c2=$(getColor 'white') # Bold White
  3948. fi
  3949. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  3950. startline="1"
  3951. logowidth="46"
  3952. fulloutput=(
  3953. "${c1} ::::::: "
  3954. "${c1} ::::::::::::::::::: %s"
  3955. "${c1} ::::::::::::::::::::::::: %s"
  3956. "${c1} ::::::::${c2}cllcccccllllllll${c1}:::::: %s"
  3957. "${c1} :::::::::${c2}lc dc${c1}::::::: %s"
  3958. "${c1} ::::::::${c2}cl clllccllll oc${c1}::::::::: %s"
  3959. "${c1} :::::::::${c2}o lc${c1}::::::::${c2}co oc${c1}:::::::::: %s"
  3960. "${c1} ::::::::::${c2}o cccclc${c1}:::::${c2}clcc${c1}:::::::::::: %s"
  3961. "${c1} :::::::::::${c2}lc cclccclc${c1}::::::::::::: %s"
  3962. "${c1} ::::::::::::::${c2}lcclcc lc${c1}:::::::::::: %s"
  3963. "${c1} ::::::::::${c2}cclcc${c1}:::::${c2}lccclc oc${c1}::::::::::: %s"
  3964. "${c1} ::::::::::${c2}o l${c1}::::::::::${c2}l lc${c1}::::::::::: %s"
  3965. "${c1} :::::${c2}cll${c1}:${c2}o clcllcccll o${c1}::::::::::: %s"
  3966. "${c1} :::::${c2}occ${c1}:${c2}o clc${c1}::::::::::: %s"
  3967. "${c1} ::::${c2}ocl${c1}:${c2}ccslclccclclccclclc${c1}::::::::::::: %s"
  3968. "${c1} :::${c2}oclcccccccccccccllllllllllllll${c1}::::: %s"
  3969. "${c1} ::${c2}lcc1lcccccccccccccccccccccccco${c1}:::: %s"
  3970. "${c1} :::::::::::::::::::::::::::::::: %s"
  3971. "${c1} :::::::::::::::::::::::::::: %s"
  3972. "${c1} :::::::::::::::::::::: %s"
  3973. "${c1} :::::::::::: %s")
  3974. ;;
  3975. "ROSA")
  3976. if [[ "$no_color" != "1" ]]; then
  3977. c1=$(getColor 'rosa_blue') # special blue color from ROSA
  3978. fi
  3979. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  3980. startline="3"
  3981. logowidth="41"
  3982. fulloutput=(
  3983. "${c1} ROSAROSAROSAROSAR "
  3984. "${c1} ROSA AROS "
  3985. "${c1} ROS SAROSAROSAROSAR AROS "
  3986. "${c1} RO ROSAROSAROSAROSAROSAR RO %s"
  3987. "${c1} ARO AROSAROSAROSARO AROS ROS %s"
  3988. "${c1} ARO ROSAROS OSAR ROSA ROS %s"
  3989. "${c1} RO AROSA ROSAROSAROSA ROSAR RO %s"
  3990. "${c1} RO ROSAR ROSAROSAROSAR R ROSARO RO %s"
  3991. "${c1} RO ROSA AROSAROSAROSA AR ROSARO AR %s"
  3992. "${c1} RO AROS ROSAROSAROSA ROS AROSARO AR %s"
  3993. "${c1} RO AROS ROSAROSARO ROSARO ROSARO AR %s"
  3994. "${c1} RO ROS AROSAROS ROSAROSA AROSAR AR %s"
  3995. "${c1} RO ROSA ROS ROSAROSAR ROSARO RO %s"
  3996. "${c1} RO ROS AROSAROSAROSA ROSARO AR %s"
  3997. "${c1} ARO ROSA ROSAROSAROS AROSAR ARO %s"
  3998. "${c1} ARO OROSA R ROSAROS ROS %s"
  3999. "${c1} RO AROSAROS AROSAROSAR RO %s"
  4000. "${c1} AROS AROSAROSAROSARO AROS %s"
  4001. "${c1} ROSA SARO %s"
  4002. "${c1} ROSAROSAROSAROSAR %s")
  4003. ;;
  4004. "Red Hat Enterprise Linux")
  4005. if [[ "$no_color" != "1" ]]; then
  4006. c1=$(getColor 'light red') # Light Red
  4007. fi
  4008. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4009. startline="0"
  4010. logowidth="42"
  4011. fulloutput=(
  4012. "${c1} .MMM..:MMMMMMM %s"
  4013. "${c1} MMMMMMMMMMMMMMMMMM %s"
  4014. "${c1} MMMMMMMMMMMMMMMMMMMM. %s"
  4015. "${c1} MMMMMMMMMMMMMMMMMMMMMM %s"
  4016. "${c1} ,MMMMMMMMMMMMMMMMMMMMMM: %s"
  4017. "${c1} MMMMMMMMMMMMMMMMMMMMMMMM %s"
  4018. "${c1} .MMMM' MMMMMMMMMMMMMMMMMMMMMM %s"
  4019. "${c1} MMMMMM \`MMMMMMMMMMMMMMMMMMMM. %s"
  4020. "${c1} MMMMMMMM MMMMMMMMMMMMMMMMMM . %s"
  4021. "${c1} MMMMMMMMM. \`MMMMMMMMMMMMM' MM. %s"
  4022. "${c1} MMMMMMMMMMM. MMMM %s"
  4023. "${c1} \`MMMMMMMMMMMMM. ,MMMMM. %s"
  4024. "${c1} \`MMMMMMMMMMMMMMMMM. ,MMMMMMMM. %s"
  4025. "${c1} MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM %s"
  4026. "${c1} MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: %s"
  4027. "${c1} MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM %s"
  4028. "${c1} \`MMMMMMMMMMMMMMMMMMMMMMMM: %s"
  4029. "${c1} \`\`MMMMMMMMMMMMMMMMM' %s")
  4030. ;;
  4031. "Frugalware")
  4032. if [[ "$no_color" != "1" ]]; then
  4033. c1=$(getColor 'white') # White
  4034. c2=$(getColor 'light blue') # Light Blue
  4035. fi
  4036. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4037. startline="3"
  4038. logowidth="50"
  4039. fulloutput=(
  4040. "${c2} \`++/::-.\` "
  4041. "${c2} /o+++++++++/::-.\` "
  4042. "${c2} \`o+++++++++++++++o++/::-.\` "
  4043. "${c2} /+++++++++++++++++++++++oo++/:-.\`\` %s"
  4044. "${c2} .o+ooooooooooooooooooosssssssso++oo++/:-\` %s"
  4045. "${c2} ++osoooooooooooosssssssssssssyyo+++++++o: %s"
  4046. "${c2} -o+ssoooooooooooosssssssssssssyyo+++++++s\` %s"
  4047. "${c2} o++ssoooooo++++++++++++++sssyyyyo++++++o: %s"
  4048. "${c2} :o++ssoooooo${c1}/-------------${c2}+syyyyyo+++++oo %s"
  4049. "${c2} \`o+++ssoooooo${c1}/-----${c2}+++++ooosyyyyyyo++++os: %s"
  4050. "${c2} /o+++ssoooooo${c1}/-----${c2}ooooooosyyyyyyyo+oooss %s"
  4051. "${c2} .o++++ssooooos${c1}/------------${c2}syyyyyyhsosssy- %s"
  4052. "${c2} ++++++ssooooss${c1}/-----${c2}+++++ooyyhhhhhdssssso %s"
  4053. "${c2} -s+++++syssssss${c1}/-----${c2}yyhhhhhhhhhhhddssssy. %s"
  4054. "${c2} sooooooyhyyyyyh${c1}/-----${c2}hhhhhhhhhhhddddyssy+ %s"
  4055. "${c2} :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy\` %s"
  4056. "${c2} yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/ %s"
  4057. "${c2}-ysooooooydhhhhhhhhhhhddddddddddddddddssy %s"
  4058. "${c2} .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy: %s"
  4059. "${c2} \`\`.-/+oosysssssssssssssssssssssss %s"
  4060. "${c2} \`\`.:/+osyysssssssssssssh. %s"
  4061. "${c2} \`-:/+osyyssssyo %s"
  4062. "${c2} .-:+++\` %s")
  4063. ;;
  4064. "Peppermint")
  4065. if [[ "$no_color" != "1" ]]; then
  4066. c1=$(getColor 'white') # White
  4067. c2=$(getColor 'light red') # Light Red
  4068. fi
  4069. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4070. startline="3"
  4071. logowidth="40"
  4072. fulloutput=(
  4073. "${c2} PPPPPPPPPPPPPP "
  4074. "${c2} PPPP${c1}MMMMMMM${c2}PPPPPPPPPPP "
  4075. "${c2} PPPP${c1}MMMMMMMMMM${c2}PPPPPPPP${c1}MM${c2}PP "
  4076. "${c2} PPPPPPPP${c1}MMMMMMM${c2}PPPPPPPP${c1}MMMMM${c2}PP %s"
  4077. "${c2} PPPPPPPPPPPP${c1}MMMMMM${c2}PPPPPPP${c1}MMMMMMM${c2}PP %s"
  4078. "${c2} PPPPPPPPPPPP${c1}MMMMMMM${c2}PPPP${c1}M${c2}P${c1}MMMMMMMMM${c2}PP %s"
  4079. "${c2} PP${c1}MMMM${c2}PPPPPPPPPP${c1}MMM${c2}PPPPP${c1}MMMMMMM${c2}P${c1}MM${c2}PPPP %s"
  4080. "${c2} P${c1}MMMMMMMMMM${c2}PPPPPP${c1}MM${c2}PPPPP${c1}MMMMMM${c2}PPPPPPPP %s"
  4081. "${c2}P${c1}MMMMMMMMMMMM${c2}PPPPP${c1}MM${c2}PP${c1}M${c2}P${c1}MM${c2}P${c1}MM${c2}PPPPPPPPPPP%s"
  4082. "${c2}P${c1}MMMMMMMMMMMMMMMM${c2}PP${c1}M${c2}P${c1}MMM${c2}PPPPPPPPPPPPPPPP%s"
  4083. "${c2}P${c1}MMM${c2}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP${c1}MMMMM${c2}P%s"
  4084. "${c2}PPPPPPPPPPPPPPPP${c1}MMM${c2}P${c1}M${c2}P${c1}MMMMMMMMMMMMMMMM${c2}PP%s"
  4085. "${c2}PPPPPPPPPPP${c1}MM${c2}P${c1}MM${c2}PPPP${c1}MM${c2}PPPPP${c1}MMMMMMMMMMM${c2}PP%s"
  4086. "${c2} PPPPPPPP${c1}MMMMMM${c2}PPPPP${c1}MM${c2}PPPPPP${c1}MMMMMMMMM${c2}PP %s"
  4087. "${c2} PPPP${c1}MM${c2}P${c1}MMMMMMM${c2}PPPPPP${c1}MM${c2}PPPPPPPPPP${c1}MMMM${c2}PP %s"
  4088. "${c2} PP${c1}MMMMMMMMM${c2}P${c1}M${c2}PPPP${c1}MMMMMM${c2}PPPPPPPPPPPPP %s"
  4089. "${c2} PP${c1}MMMMMMM${c2}PPPPPPP${c1}MMMMMM${c2}PPPPPPPPPPPP %s"
  4090. "${c2} PP${c1}MMMM${c2}PPPPPPPPP${c1}MMMMMMM${c2}PPPPPPPP %s"
  4091. "${c2} PP${c1}MM${c2}PPPPPPPP${c1}MMMMMMMMMM${c2}PPPP %s"
  4092. "${c2} PPPPPPPPPP${c1}MMMMMMMM${c2}PPPP %s"
  4093. "${c2} PPPPPPPPPPPPPP %s")
  4094. ;;
  4095. "Grombyang"|"GrombyangOS")
  4096. if [[ "$no_color" != "1" ]]; then
  4097. c1=$(getColor 'light blue')
  4098. c2=$(getColor 'light green')
  4099. c3=$(getColor 'light red')
  4100. fi
  4101. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4102. startline="0"
  4103. fulloutput=(
  4104. "${c1} eeeeeeeeeeee %s"
  4105. "${c1} eeeeeeeeeeeeeeeee %s"
  4106. "${c1} eeeeeeeeeeeeeeeeeeeeeee %s"
  4107. "${c1} eeeee ${c2}.o+ ${c1}eeee %s"
  4108. "${c1} eeee ${c2}\`ooo/ ${c1}eeee %s"
  4109. "${c1} eeee ${c2}\`+oooo: ${c1}eeee %s"
  4110. "${c1} eee ${c2}\`+oooooo: ${c1}eee %s"
  4111. "${c1} eee ${c2}-+oooooo+: ${c1}eee %s"
  4112. "${c1} ee ${c2}\`/:oooooooo+: ${c1}ee %s"
  4113. "${c1} ee ${c2}\`/+ +++ +: ${c1}ee %s"
  4114. "${c1} ee ${c2}+o+\ ${c1}ee %s"
  4115. "${c1} eee ${c2}+o+\ ${c1}eee %s"
  4116. "${c1} eee ${c2}// \\ooo/ \\\ ${c1}eee %s"
  4117. "${c1} eee ${c2}//++++oooo++++\\\ ${c1}eee %s"
  4118. "${c1} eeee ${c2}::::++oooo+::::: ${c1}eeee %s"
  4119. "${c1} eeeee ${c3}Grombyang OS ${c1} eeee %s"
  4120. "${c1} eeeeeeeeeeeeeeeeeeeeeee %s"
  4121. "${c1} eeeeeeeeeeeeeeeee %s"
  4122. " %s"
  4123. " %s")
  4124. ;;
  4125. "Solus")
  4126. if [[ "$no_color" != "1" ]]; then
  4127. c1=$(getColor 'white') # White
  4128. c2=$(getColor 'blue') # Blue
  4129. c3=$(getColor 'black') # Black
  4130. fi
  4131. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4132. startline="0"
  4133. logowidth="36"
  4134. fulloutput=(
  4135. "${c3} ...... %s"
  4136. "${c3} .'${c1}D${c3}lddddddddddd'. %s"
  4137. "${c3} .'ddd${c1}XM${c3}xdddddddddddddd. %s"
  4138. "${c3} .dddddx${c1}MMM0${c3};dddddddddddddd. %s"
  4139. "${c3} 'dddddl${c1}MMMMMN${c3}cddddddddddddddd. %s"
  4140. "${c3} ddddddc${c1}WMMMMMMW${c3}lddddddddddddddd. %s"
  4141. "${c3} ddddddc${c1}WMMMMMMMMO${c3}ddoddddddddddddd. %s"
  4142. "${c3}.ddddd:${c1}NMMMMMMMMMK${c3}dd${c1}NX${c3}od;c${c1}lxl${c3}dddddd %s"
  4143. "${c3}dddddc${c1}WMMMMMMMMMMNN${c3}dd${c1}MMXl${c3};d${c1}00xl;${c3}ddd.%s"
  4144. "${c3}ddddl${c1}WMMMMMMMMMMMMM${c3}d;${c1}MMMM0${c3}:dl${c1}XMMXk:${c3}'%s"
  4145. "${c3}dddo${c1}WMMMMMMMMMMMMMM${c3}dd${c1}MMMMMW${c3}od${c3};${c1}XMMMOd%s"
  4146. "${c3}.dd${c1}MMMMMMMMMMMMMMMM${c3}d:${c1}MMMMMMM${c3}kd${c1}lMKll %s"
  4147. "${c3}.;dk0${c1}KXNWWMMMMMMMMM${c3}dx${c1}MMMMMMM${c3}Xl;lxK; %s"
  4148. "${c3} 'dddddddd;:cclodcddxddolloxO0O${c1}d' %s"
  4149. "${c1} ckkxxxddddddddxxkOOO000Okdool. %s"
  4150. "${c2} .lddddxxxxxxddddooooooooood %s"
  4151. "${c2} .:oooooooooooooooooooc' %s"
  4152. "${c2} .,:looooooooooc;. %s")
  4153. ;;
  4154. "Mageia")
  4155. if [[ "$no_color" != "1" ]]; then
  4156. c1=$(getColor 'white') # White
  4157. c2=$(getColor 'light cyan') # Light Cyan
  4158. fi
  4159. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4160. startline="0"
  4161. logowidth="33"
  4162. fulloutput=(
  4163. "${c2} .°°. %s"
  4164. "${c2} °° .°°. %s"
  4165. "${c2} .°°°. °° %s"
  4166. "${c2} . . %s"
  4167. "${c2} °°° .°°°. %s"
  4168. "${c2} .°°°. '___' %s"
  4169. "${c1} .${c2}'___' ${c1} . %s"
  4170. "${c1} :dkxc;'. ..,cxkd; %s"
  4171. "${c1} .dkk. kkkkkkkkkk .kkd. %s"
  4172. "${c1} .dkk. ';cloolc;. .kkd %s"
  4173. "${c1} ckk. .kk; %s"
  4174. "${c1} xO: cOd %s"
  4175. "${c1} xO: lOd %s"
  4176. "${c1} lOO. .OO: %s"
  4177. "${c1} .k00. .00x %s"
  4178. "${c1} .k00; ;00O. %s"
  4179. "${c1} .lO0Kc;,,,,,,;c0KOc. %s"
  4180. "${c1} ;d00KKKKKK00d; %s"
  4181. "${c1} .,KKKK,. %s")
  4182. ;;
  4183. "Hyperbola GNU/Linux-libre")
  4184. if [[ "$no_color" != "1" ]]; then
  4185. c1=$(getColor 'light grey') # light grey
  4186. fi
  4187. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4188. startline="0"
  4189. logowidth="25"
  4190. fulloutput=(
  4191. "${c1} %s"
  4192. "${c1} .. , %s"
  4193. "${c1} a; ._# %s"
  4194. "${c1} )## _au#? %s"
  4195. "${c1} ]##s,.__a_w##e^ %s"
  4196. "${c1} :###########( %s"
  4197. "${c1} ^!#####?!^ %s"
  4198. "${c1} ._ %s"
  4199. "${c1} _au######a, %s"
  4200. "${c1} sa###########, %s"
  4201. "${c1} _a##############o %s"
  4202. "${c1} .a#####?!^^^^^-####_ %s"
  4203. "${c1} j####^ ~##i %s"
  4204. "${c1} _de!^ -#i %s"
  4205. "${c1} _#e^ ]+ %s"
  4206. "${c1} ^ ^ %s"
  4207. "${c1} %s")
  4208. ;;
  4209. "Parabola GNU/Linux-libre")
  4210. if [[ "$no_color" != "1" ]]; then
  4211. c1=$(getColor 'purple') # Purple
  4212. fi
  4213. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4214. startline="0"
  4215. logowidth="33"
  4216. fulloutput=(
  4217. "${c1} %s"
  4218. "${c1} _,, _ %s"
  4219. "${c1} _, ,##' ,##; %s"
  4220. "${c1} _, ,##' ,##' ,#####; %s"
  4221. "${c1} _,;#',##' ,##' ,#######' %s"
  4222. "${c1} _,#**^' \` ,######### %s"
  4223. "${c1} .-^\` \`######### %s"
  4224. "${c1} ######## %s"
  4225. "${c1} ;###### %s"
  4226. "${c1} ;####* %s"
  4227. "${c1} ####' %s"
  4228. "${c1} ;### %s"
  4229. "${c1} ,##' %s"
  4230. "${c1} ## %s"
  4231. "${c1} #' %s"
  4232. "${c1} / %s"
  4233. "${c1} ' %s"
  4234. "${c1} %s")
  4235. ;;
  4236. "Viperr")
  4237. if [[ "$no_color" != "1" ]]; then
  4238. c1=$(getColor 'white') # White
  4239. c2=$(getColor 'dark grey') # Dark Gray
  4240. fi
  4241. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4242. startline="0"
  4243. logowidth="31"
  4244. fulloutput=(
  4245. "${c1} wwzapd dlzazw %s"
  4246. "${c1} an${c2}#${c1}zncmqzepweeirzpas${c2}#${c1}xz %s"
  4247. "${c1} apez${c2}##${c1}qzdkawweemvmzdm${c2}##${c1}dcmv %s"
  4248. "${c1}zwepd${c2}####${c1}qzdweewksza${c2}####${c1}ezqpa %s"
  4249. "${c1}ezqpdkapeifjeeazezqpdkazdkwqz %s"
  4250. "${c1} ezqpdksz${c2}##${c1}wepuizp${c2}##${c1}wzeiapdk %s"
  4251. "${c1} zqpakdpa${c2}#${c1}azwewep${c2}#${c1}zqpdkqze %s"
  4252. "${c1} apqxalqpewenwazqmzazq %s"
  4253. "${c1} mn${c2}##${c1}==${c2}#######${c1}==${c2}##${c1}qp %s"
  4254. "${c1} qw${c2}##${c1}=${c2}#######${c1}=${c2}##${c1}zl %s"
  4255. "${c1} z0${c2}######${c1}=${c2}######${c1}0a %s"
  4256. "${c1} qp${c2}#####${c1}=${c2}#####${c1}mq %s"
  4257. "${c1} az${c2}####${c1}===${c2}####${c1}mn %s"
  4258. "${c1} ap${c2}#########${c1}qz %s"
  4259. "${c1} 9qlzskwdewz %s"
  4260. "${c1} zqwpakaiw %s"
  4261. "${c1} qoqpe %s"
  4262. "${c1} %s")
  4263. ;;
  4264. "LinuxDeepin")
  4265. if [[ "$no_color" != "1" ]]; then
  4266. c1=$(getColor 'light green') # Bold Green
  4267. fi
  4268. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4269. startline="0"
  4270. logowidth="33"
  4271. fulloutput=(
  4272. "${c1} eeeeeeeeeeeeeeeeeeeeeeeeeeee %s"
  4273. "${c1} eee eeeeeee eeeeeeee %s"
  4274. "${c1}ee eeeeeeeee eeeeeeeee ee %s"
  4275. "${c1}e eeeeeeeee eeeeeeeee e %s"
  4276. "${c1}e eeeeeee eeeeeeeeee e %s"
  4277. "${c1}e eeeeee eeeee e %s"
  4278. "${c1}e eeeee eee eee e %s"
  4279. "${c1}e eeeee ee eeeeee e %s"
  4280. "${c1}e eeeee eee eee e %s"
  4281. "${c1}e eeeeeeeeee eeee e %s"
  4282. "${c1}e eeeee eeee e %s"
  4283. "${c1}e eeeeee e %s"
  4284. "${c1}e eeeeeee e %s"
  4285. "${c1}e eee eeeeeeee e %s"
  4286. "${c1}eeeeeeeeeeeeeeee e %s"
  4287. "${c1}eeeeeeeeeeeee ee %s"
  4288. "${c1} eeeeeeeeeee eee %s"
  4289. "${c1} eeeeeeeeeeeeeeeeeeeeeeeeeeee %s"
  4290. "${c1} %s")
  4291. ;;
  4292. "Deepin")
  4293. if [[ "$no_color" != "1" ]]; then
  4294. c1=$(getColor 'cyan') # Bold Green
  4295. fi
  4296. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4297. startline="0"
  4298. logowidth="41"
  4299. fulloutput=(
  4300. "${c1} ............ %s"
  4301. "${c1} .';;;;;. .,;,. %s"
  4302. "${c1} .,;;;;;;;. ';;;;;;;. %s"
  4303. "${c1} .;::::::::' .,::;;,''''',. %s"
  4304. "${c1} ,'.:::::::: .;;'. '; %s"
  4305. "${c1} ;' 'cccccc, ,' :: '.. .: %s"
  4306. "${c1} ,, :ccccc. ;: .c, '' :. ,; %s"
  4307. "${c1} .l. cllll' ., .lc :; .l' l. %s"
  4308. "${c1} .c :lllc ;cl: .l' .ll. :' %s"
  4309. "${c1} .l 'looc. . ,o: 'oo' c, %s"
  4310. "${c1} .o. .:ool::coc' .ooo' o. %s"
  4311. "${c1} :: ..... .;dddo ;c %s"
  4312. "${c1} l:... .';lddddo. ,o %s"
  4313. "${c1} lxxxxxdoolllodxxxxxxxxxc :l %s"
  4314. "${c1} ,dxxxxxxxxxxxxxxxxxxl. 'o, %s"
  4315. "${c1} ,dkkkkkkkkkkkkko;. .;o; %s"
  4316. "${c1} .;okkkkkdl;. .,cl:. %s"
  4317. "${c1} .,:cccccccc:,. %s")
  4318. ;;
  4319. "Uos")
  4320. if [[ "$no_color" != "1" ]]; then
  4321. c1=$(getColor 'blue') # red
  4322. c2=$(getColor 'orange') # red
  4323. fi
  4324. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4325. startline="0"
  4326. logowidth="52"
  4327. fulloutput=(
  4328. "${c1} %s"
  4329. "${c1} %s"
  4330. "${c1} ############ %s"
  4331. "${c1} ############## %s"
  4332. "${c1} ############ ${c2}oo %s"
  4333. "${c1} ######## ${c2}oooooo %s"
  4334. "${c1} ## #### ${c2}oooooooo %s"
  4335. "${c1} #### #### ${c2}oooooo %s"
  4336. "${c1} ###### #### ${c2}oooo %s"
  4337. "${c1} #### #### ${c2}oo %s"
  4338. "${c1} ## ############ %s"
  4339. "${c1} ################ %s"
  4340. "${c1} ################ %s"
  4341. "${c1} ######## %s"
  4342. "${c1} %s"
  4343. "${c1} %s")
  4344. ;;
  4345. "Chakra")
  4346. if [[ "$no_color" != "1" ]]; then
  4347. c1=$(getColor 'light blue') # Light Blue
  4348. fi
  4349. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4350. startline="0"
  4351. logowidth="38"
  4352. fulloutput=(
  4353. "${c1} _ _ _ \"kkkkkkkk. %s"
  4354. "${c1} ,kkkkkkkk., \'kkkkkkkkk, %s"
  4355. "${c1} ,kkkkkkkkkkkk., \'kkkkkkkkk. %s"
  4356. "${c1} ,kkkkkkkkkkkkkkkk,\'kkkkkkkk, %s"
  4357. "${c1} ,kkkkkkkkkkkkkkkkkkk\'kkkkkkk. %s"
  4358. "${c1} \"\'\'\"\'\'\',;::,,\"\'\'kkk\'\'kkkkk; __ %s"
  4359. "${c1} ,kkkkkkkkkk, \"k\'\'kkkkk\' ,kkkk %s"
  4360. "${c1} ,kkkkkkk\' ., \' .: \'kkkk\',kkkkkk %s"
  4361. "${c1} ,kkkkkkkk\'.k\' , ,kkkk;kkkkkkkkk %s"
  4362. "${c1} ,kkkkkkkk\';kk \'k \"\'k\',kkkkkkkkkkkk %s"
  4363. "${c1} .kkkkkkkkk.kkkk.\'kkkkkkkkkkkkkkkkkk\' %s"
  4364. "${c1} ;kkkkkkkk\'\'kkkkkk;\'kkkkkkkkkkkkk\'\' %s"
  4365. "${c1} \'kkkkkkk; \'kkkkkkkk.,\"\"\'\'\"\'\'\"\" %s"
  4366. "${c1} \'\'kkkk; \'kkkkkkkkkk., %s"
  4367. "${c1} \';\' \'kkkkkkkkkkkk., %s"
  4368. "${c1} ';kkkkkkkkkk\' %s"
  4369. "${c1} ';kkkkkk\' %s"
  4370. "${c1} \"\'\'\" %s")
  4371. ;;
  4372. "Fuduntu")
  4373. if [[ "$no_color" != "1" ]]; then
  4374. c1=$(getColor 'dark grey') # Dark Gray
  4375. c2=$(getColor 'yellow') # Bold Yellow
  4376. c3=$(getColor 'light red') # Light Red
  4377. c4=$(getColor 'white') # White
  4378. fi
  4379. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  4380. startline="1"
  4381. logowidth="49"
  4382. fulloutput=(
  4383. "${c1} \`dwoapfjsod\`${c2} \`dwoapfjsod\` "
  4384. "${c1} \`xdwdsfasdfjaapz\`${c2} \`dwdsfasdfjaapzx\` %s"
  4385. "${c1} \`wadladfladlafsozmm\`${c2} \`wadladfladlafsozmm\` %s"
  4386. "${c1} \`aodowpwafjwodisosoaas\`${c2} \`odowpwafjwodisosoaaso\` %s"
  4387. "${c1} \`adowofaowiefawodpmmxs\`${c2} \`dowofaowiefawodpmmxso\` %s"
  4388. "${c1} \`asdjafoweiafdoafojffw\`${c2} \`sdjafoweiafdoafojffwq\` %s"
  4389. "${c1} \`dasdfjalsdfjasdlfjdd\`${c2} \`asdfjalsdfjasdlfjdda\` %s"
  4390. "${c1} \`dddwdsfasdfjaapzxaw\`${c2} \`ddwdsfasdfjaapzxawo\` %s"
  4391. "${c1} \`dddwoapfjsowzocmw\`${c2} \`ddwoapfjsowzocmwp\` %s"
  4392. "${c1} \`ddasowjfowiejao\`${c2} \`dasowjfowiejaow\` %s"
  4393. "${c1} %s"
  4394. "${c3} \`ddasowjfowiejao\`${c4} \`dasowjfowiejaow\` %s"
  4395. "${c3} \`dddwoapfjsowzocmw\`${c4} \`ddwoapfjsowzocmwp\` %s"
  4396. "${c3} \`dddwdsfasdfjaapzxaw\`${c4} \`ddwdsfasdfjaapzxawo\` %s"
  4397. "${c3} \`dasdfjalsdfjasdlfjdd\`${c4} \`asdfjalsdfjasdlfjdda\` %s"
  4398. "${c3} \`asdjafoweiafdoafojffw\`${c4} \`sdjafoweiafdoafojffwq\` %s"
  4399. "${c3} \`adowofaowiefawodpmmxs\`${c4} \`dowofaowiefawodpmmxso\` %s"
  4400. "${c3} \`aodowpwafjwodisosoaas\`${c4} \`odowpwafjwodisosoaaso\` %s"
  4401. "${c3} \`wadladfladlafsozmm\`${c4} \`wadladfladlafsozmm\` %s"
  4402. "${c3} \`dwdsfasdfjaapzx\`${c4} \`dwdsfasdfjaapzx\` %s"
  4403. "${c3} \`woapfjsod\`${c4} \`woapfjsod\` %s")
  4404. ;;
  4405. "Zorin OS")
  4406. if [[ "$no_color" != "1" ]]; then
  4407. c1=$(getColor 'light blue') # Light Blue
  4408. fi
  4409. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4410. startline="0"
  4411. fulloutput=(
  4412. "${c1} ................... %s"
  4413. "${c1} :ooooooooooooooooooo/ %s"
  4414. "${c1} /ooooooooooooooooooooo+ %s"
  4415. "${c1} '''''''''''''''''''''''' %s"
  4416. "${c1} %s"
  4417. "${c1} .++++++++++++++++++/. :++- %s"
  4418. "${c1} -oooooooooooooooo/- :+ooooo: %s"
  4419. "${c1} :oooooooooooooo/- :+ooooooooo: %s"
  4420. "${c1} .oooooooooooo+- :+ooooooooooooo- %s"
  4421. "${c1} -oooooooo/- -+ooooooooooooooo: %s"
  4422. "${c1} .oooo+- -+ooooooooooooooooo- %s"
  4423. "${c1} .-- .-------------------. %s"
  4424. "${c1} %s"
  4425. "${c1} .//////////////////////- %s"
  4426. "${c1} :oooooooooooooooooooo/ %s"
  4427. "${c1} :oooooooooooooooooo: %s"
  4428. "${c1} '''''''''''''''''' %s")
  4429. ;;
  4430. "Mac OS X"|"macOS")
  4431. if [[ "$no_color" != "1" ]]; then
  4432. c1=$(getColor 'green') # Green
  4433. c2=$(getColor 'brown') # Yellow
  4434. c3=$(getColor 'light red') # Orange
  4435. c4=$(getColor 'red') # Red
  4436. c5=$(getColor 'purple') # Purple
  4437. c6=$(getColor 'blue') # Blue
  4438. fi
  4439. if [ -n "${my_lcolor}" ]; then
  4440. c1="${my_lcolor}"
  4441. c2="${my_lcolor}"
  4442. c3="${my_lcolor}"
  4443. c4="${my_lcolor}"
  4444. c5="${my_lcolor}"
  4445. c6="${my_lcolor}"
  4446. fi
  4447. startline="1"
  4448. logowidth="31"
  4449. fulloutput=(
  4450. "${c1} "
  4451. "${c1} -/+:. %s"
  4452. "${c1} :++++. %s"
  4453. "${c1} /+++/. %s"
  4454. "${c1} .:-::- .+/:-\`\`.::- %s"
  4455. "${c1} .:/++++++/::::/++++++/:\` %s"
  4456. "${c2} .:///////////////////////:\` %s"
  4457. "${c2} ////////////////////////\` %s"
  4458. "${c3} -+++++++++++++++++++++++\` %s"
  4459. "${c3} /++++++++++++++++++++++/ %s"
  4460. "${c4} /sssssssssssssssssssssss. %s"
  4461. "${c4} :ssssssssssssssssssssssss- %s"
  4462. "${c5} osssssssssssssssssssssssso/\` %s"
  4463. "${c5} \`syyyyyyyyyyyyyyyyyyyyyyyy+\` %s"
  4464. "${c6} \`ossssssssssssssssssssss/ %s"
  4465. "${c6} :ooooooooooooooooooo+. %s"
  4466. "${c6} \`:+oo+/:-..-:/+o+/- %s"
  4467. "${c6} %s")
  4468. ;;
  4469. "Mac OS X - Classic")
  4470. if [[ "$no_color" != "1" ]]; then
  4471. c1=$(getColor 'blue') # Blue
  4472. c2=$(getColor 'light blue') # Light blue
  4473. c3=$(getColor 'light grey') # Gray
  4474. c4=$(getColor 'dark grey') # Dark Ggray
  4475. fi
  4476. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  4477. startline="1"
  4478. logowidth="39"
  4479. fulloutput=(
  4480. "${c3} "
  4481. "${c3} .. %s"
  4482. "${c3} dWc %s"
  4483. "${c3} ,X0' %s"
  4484. "${c1} ;;;;;;;;;;;;;;;;;;${c3}0Mk${c2}::::::::::::::: %s"
  4485. "${c1} ;;;;;;;;;;;;;;;;;${c3}KWo${c2}:::::::::::::::: %s"
  4486. "${c1} ;;;;;;;;;${c4}NN${c1};;;;;${c3}KWo${c2}:::::${c3}NN${c2}:::::::::: %s"
  4487. "${c1} ;;;;;;;;;${c4}NN${c1};;;;${c3}0Md${c2}::::::${c3}NN${c2}:::::::::: %s"
  4488. "${c1} ;;;;;;;;;${c4}NN${c1};;;${c3}xW0${c2}:::::::${c3}NN${c2}:::::::::: %s"
  4489. "${c1} ;;;;;;;;;;;;;;${c3}KMc${c2}::::::::::::::::::: %s"
  4490. "${c1} ;;;;;;;;;;;;;${c3}lWX${c2}:::::::::::::::::::: %s"
  4491. "${c1} ;;;;;;;;;;;;;${c3}xWWXXXXNN7${c2}::::::::::::: %s"
  4492. "${c1} ;;;;;;;;;;;;;;;;;;;;${c3}WK${c2}:::::::::::::: %s"
  4493. "${c1} ;;;;;${c4}TKX0ko.${c1};;;;;;;${c3}kMx${c2}:::${c3}.cOKNF${c2}::::: %s"
  4494. "${c1} ;;;;;;;;${c4}\`kO0KKKKKKK${c3}NMNXK0OP*${c2}:::::::: %s"
  4495. "${c1} ;;;;;;;;;;;;;;;;;;;${c3}kMx${c2}:::::::::::::: %s"
  4496. "${c1} ;;;;;;;;;;;;;;;;;;;;${c3}WX${c2}:::::::::::::: %s"
  4497. "${c3} lMc %s"
  4498. "${c3} kN. %s"
  4499. "${c3} o' %s"
  4500. "${c3} %s")
  4501. ;;
  4502. "Windows"|"Cygwin"|"Msys")
  4503. if [[ "$no_color" != "1" ]]; then
  4504. c1=$(getColor 'light red') # Red
  4505. c2=$(getColor 'light green') # Green
  4506. c3=$(getColor 'light blue') # Blue
  4507. c4=$(getColor 'yellow') # Yellow
  4508. fi
  4509. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  4510. startline="0"
  4511. logowidth="37"
  4512. fulloutput=(
  4513. "${c1} ,.=:!!t3Z3z., %s"
  4514. "${c1} :tt:::tt333EE3 %s"
  4515. "${c1} Et:::ztt33EEEL${c2} @Ee., .., %s"
  4516. "${c1} ;tt:::tt333EE7${c2} ;EEEEEEttttt33# %s"
  4517. "${c1} :Et:::zt333EEQ.${c2} \$EEEEEttttt33QL %s"
  4518. "${c1} it::::tt333EEF${c2} @EEEEEEttttt33F %s"
  4519. "${c1} ;3=*^\`\`\`\"*4EEV${c2} :EEEEEEttttt33@. %s"
  4520. "${c3} ,.=::::!t=., ${c1}\`${c2} @EEEEEEtttz33QF %s"
  4521. "${c3} ;::::::::zt33)${c2} \"4EEEtttji3P* %s"
  4522. "${c3} :t::::::::tt33.${c4}:Z3z..${c2} \`\`${c4} ,..g. %s"
  4523. "${c3} i::::::::zt33F${c4} AEEEtttt::::ztF %s"
  4524. "${c3} ;:::::::::t33V${c4} ;EEEttttt::::t3 %s"
  4525. "${c3} E::::::::zt33L${c4} @EEEtttt::::z3F %s"
  4526. "${c3}{3=*^\`\`\`\"*4E3)${c4} ;EEEtttt:::::tZ\` %s"
  4527. "${c3} \`${c4} :EEEEtttt::::z7 %s"
  4528. "${c4} \"VEzjt:;;z>*\` %s")
  4529. ;;
  4530. "Windows - Modern")
  4531. if [[ "$no_color" != "1" ]]; then
  4532. c1=$(getColor 'light blue') # Blue
  4533. fi
  4534. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4535. startline="0"
  4536. logowidth="38"
  4537. fulloutput=(
  4538. "${c1} .., %s"
  4539. "${c1} ....,,:;+ccllll %s"
  4540. "${c1} ...,,+:; cllllllllllllllllll %s"
  4541. "${c1} ,cclllllllllll lllllllllllllllllll %s"
  4542. "${c1} llllllllllllll lllllllllllllllllll %s"
  4543. "${c1} llllllllllllll lllllllllllllllllll %s"
  4544. "${c1} llllllllllllll lllllllllllllllllll %s"
  4545. "${c1} llllllllllllll lllllllllllllllllll %s"
  4546. "${c1} llllllllllllll lllllllllllllllllll %s"
  4547. "${c1} %s"
  4548. "${c1} llllllllllllll lllllllllllllllllll %s"
  4549. "${c1} llllllllllllll lllllllllllllllllll %s"
  4550. "${c1} llllllllllllll lllllllllllllllllll %s"
  4551. "${c1} llllllllllllll lllllllllllllllllll %s"
  4552. "${c1} llllllllllllll lllllllllllllllllll %s"
  4553. "${c1} \`'ccllllllllll lllllllllllllllllll %s"
  4554. "${c1} \`'\"\"*:: :ccllllllllllllllll %s"
  4555. "${c1} \`\`\`\`''\"*::cll %s"
  4556. "${c1} \`\` %s")
  4557. ;;
  4558. "Haiku")
  4559. if [[ "$no_color" != "1" ]]; then
  4560. if [ "$haikualpharelease" == "yes" ]; then
  4561. c1=$(getColor 'black_haiku') # Black
  4562. c2=$(getColor 'light grey') # Light Gray
  4563. else
  4564. c1=$(getColor 'black') # Black
  4565. c2=${c1}
  4566. fi
  4567. c3=$(getColor 'green') # Green
  4568. fi
  4569. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4570. startline="0"
  4571. logowidth="36"
  4572. fulloutput=(
  4573. "${c1} :dc' %s"
  4574. "${c1} 'l:;'${c2},${c1}'ck. .;dc:. %s"
  4575. "${c1} co ${c2}..${c1}k. .;; ':o. %s"
  4576. "${c1} co ${c2}..${c1}k. ol ${c2}.${c1}0. %s"
  4577. "${c1} co ${c2}..${c1}k. oc ${c2}..${c1}0. %s"
  4578. "${c1} co ${c2}..${c1}k. oc ${c2}..${c1}0. %s"
  4579. "${c1}.Ol,. co ${c2}...''${c1}Oc;kkodxOdddOoc,. %s"
  4580. "${c1} ';lxxlxOdxkxk0kd${c3}oooll${c1}dl${c3}ccc:${c1}clxd; %s"
  4581. "${c1} ..${c3}oOolllllccccccc:::::${c1}od; %s"
  4582. "${c1} cx:ooc${c3}:::::::;${c1}cooolcX. %s"
  4583. "${c1} cd${c2}.${c1}''cloxdoollc' ${c2}...${c1}0. %s"
  4584. "${c1} cd${c2}......${c1}k;${c2}.${c1}xl${c2}.... .${c1}0. %s"
  4585. "${c1} .::c${c2};..${c1}cx;${c2}.${c1}xo${c2}..... .${c1}0. %s"
  4586. "${c1} '::c'${c2}...${c1}do${c2}..... .${c1}K, %s"
  4587. "${c1} cd,.${c2}....:${c1}O,${c2}...... %s"
  4588. "${c1} ':clod:'${c2}...... %s"
  4589. "${c1} ${c2}. %s")
  4590. ;;
  4591. "Trisquel")
  4592. if [[ "$no_color" != "1" ]]; then
  4593. c1=$(getColor 'light blue') # Light Blue
  4594. c2=$(getColor 'light cyan') # Blue
  4595. fi
  4596. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4597. startline="0"
  4598. logowidth="38"
  4599. fulloutput=(
  4600. "${c1} ▄▄▄▄▄▄ %s"
  4601. "${c1} ▄█████████▄ %s"
  4602. "${c1} ▄▄▄▄▄▄ ████▀ ▀████ %s"
  4603. "${c1} ▄██████████▄ ████▀ ▄▄ ▀███ %s"
  4604. "${c1} ▄███▀▀ ▀▀████ ███▄ ▄█ ███ %s"
  4605. "${c1} ▄███ ▄▄▄ ████▄ ▀██████ ▄███ %s"
  4606. "${c1} ███ █▀▀██▄ █████▄ ▀▀ ▄████ %s"
  4607. "${c1} ▀███ ███ ███████▄▄ ▄▄██████ %s"
  4608. "${c1} ▀███▄ ▄███ █████████████${c2}████▀ %s"
  4609. "${c1} ▀█████████ ███████${c2}███▀▀▀ %s"
  4610. "${c1} ▀▀███▀▀ ██${c2}████▀▀ %s"
  4611. "${c2} ██████▀ ▄▄▄▄ %s"
  4612. "${c2} █████▀ ████████ %s"
  4613. "${c2} █████ ███▀ ▀███ %s"
  4614. "${c2} ████▄ ██▄▄▄ ███ %s"
  4615. "${c2} █████▄ ▀▀ ▄██ %s"
  4616. "${c2} ██████▄▄▄████ %s"
  4617. "${c2} █████▀▀ %s")
  4618. ;;
  4619. "Manjaro")
  4620. if [[ "$no_color" != "1" ]]; then
  4621. c1=$(getColor 'light green') # Green
  4622. fi
  4623. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4624. startline="1"
  4625. logowidth="33"
  4626. fulloutput=(""
  4627. "${c1} ██████████████████ ████████ %s"
  4628. "${c1} ██████████████████ ████████ %s"
  4629. "${c1} ██████████████████ ████████ %s"
  4630. "${c1} ██████████████████ ████████ %s"
  4631. "${c1} ████████ ████████ %s"
  4632. "${c1} ████████ ████████ ████████ %s"
  4633. "${c1} ████████ ████████ ████████ %s"
  4634. "${c1} ████████ ████████ ████████ %s"
  4635. "${c1} ████████ ████████ ████████ %s"
  4636. "${c1} ████████ ████████ ████████ %s"
  4637. "${c1} ████████ ████████ ████████ %s"
  4638. "${c1} ████████ ████████ ████████ %s"
  4639. "${c1} ████████ ████████ ████████ %s"
  4640. "${c1} ████████ ████████ ████████ %s"
  4641. " %s")
  4642. ;;
  4643. "Netrunner")
  4644. if [[ "$no_color" != "1" ]]; then
  4645. c1=$(getColor 'light blue') # Blue
  4646. fi
  4647. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4648. startline="0"
  4649. logowidth="43"
  4650. fulloutput=(
  4651. "${c1} nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn %s"
  4652. "${c1} nnnnnnnnnnnnnn nnnnnnnnnnnnnn %s"
  4653. "${c1} nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn %s"
  4654. "${c1} nnnnnnn nnnnnnnnnnnnnnnnnnnn nnnnnnn %s"
  4655. "${c1} nnnn nnnnnnnnnnnnnnnnnnnnnnnnnn nnnn %s"
  4656. "${c1} nnn nnnnnnnnnnnnnnnnnnnnnnnnnnnnnn nnn %s"
  4657. "${c1} nn nnnnnnnnnnnnnnnnnnnnnn nnnnnnnn nn %s"
  4658. "${c1} n nnnnnnnnnnnnnnnnn nnnnnnnnnn n %s"
  4659. "${c1} n nnnnnnnnnnn nnnnnnnnnnn n %s"
  4660. "${c1} n nnnnnn nnnnnnnnnnnn n %s"
  4661. "${c1} n nnnnnnnnnnn nnnnnnnnnnnn n %s"
  4662. "${c1} n nnnnnnnnnnnnn nnnnnnnnnnnn n %s"
  4663. "${c1} n nnnnnnnnnnnnnnnn nnnnnnnnnnnnn n %s"
  4664. "${c1} n nnnnnnnnnnnnnnnnn nnnnnnnnnnnnn n %s"
  4665. "${c1} n nnnnnnnnnnnnnnnnnn nnnnnnnnnnnn n %s"
  4666. "${c1} nn nnnnnnnnnnnnnnnnn nnnnnnnnnnnn nn %s"
  4667. "${c1} nnn nnnnnnnnnnnnnnn nnnnnnnnnnn nnn %s"
  4668. "${c1} nnnnn nnnnnnnnnnnnnn nnnnnnnnn nnnnn %s"
  4669. "${c1} nnnnnnn nnnnnnnnnnnnnnnnnnnn nnnnnnn %s"
  4670. "${c1} nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn %s"
  4671. "${c1} nnnnnnnnnnnnnn nnnnnnnnnnnnnn %s"
  4672. "${c1} nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn %s"
  4673. "${c1} %s")
  4674. ;;
  4675. "Logos")
  4676. if [[ "$no_color" != "1" ]]; then
  4677. c1=$(getColor 'green') # Green
  4678. fi
  4679. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4680. startline="0"
  4681. logowidth="25"
  4682. fulloutput=(
  4683. "${c1} ..:.:. %s"
  4684. "${c1} ..:.:.:.:. %s"
  4685. "${c1} ..:.:.:.:.:.:. %s"
  4686. "${c1} ..:.:.:.:.:.:.:.:. %s"
  4687. "${c1} .:.::;.::::..:.:.:. %s"
  4688. "${c1} .:.:.::.::.::.;;/ %s"
  4689. "${c1} .:.::.:::///// %s"
  4690. "${c1} ..;;/////// %s"
  4691. "${c1} /////////// %s"
  4692. "${c1} ////////////// %s"
  4693. "${c1} ///////////////// %s"
  4694. "${c1} /////////////////// %s"
  4695. "${c1} ////////////////// %s"
  4696. "${c1} ////////////// %s"
  4697. "${c1} ////////// %s"
  4698. "${c1} ////// %s"
  4699. "${c1} // %s")
  4700. ;;
  4701. "Manjaro-tree")
  4702. if [[ "$no_color" != "1" ]]; then
  4703. c1="\e[1;32m" # Green
  4704. c2="\e[1;33m" # Yellow
  4705. fi
  4706. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4707. startline="0"
  4708. logowidth="33"
  4709. fulloutput=(
  4710. "${c1} ### %s"
  4711. "${c1} ### #### %s"
  4712. "${c1} ### #### %s"
  4713. "${c1} ##### ##### %s"
  4714. "${c1} ################# %s"
  4715. "${c1} ### ##### #### %s"
  4716. "${c1} ## ${c2}OOO ${c1}### %s"
  4717. "${c1} # ${c2}WW ${c1}## %s"
  4718. "${c1} ${c2}WW ${c1}# %s"
  4719. "${c2} WW %s"
  4720. "${c2} WW %s"
  4721. "${c2} WW %s"
  4722. "${c2} WW %s"
  4723. "${c2} WW %s"
  4724. "${c2} WW %s"
  4725. "${c2} WW %s"
  4726. "${c2} WW %s"
  4727. "${c2} %s")
  4728. ;;
  4729. "elementary OS"|"elementary os")
  4730. if [[ "$no_color" != "1" ]]; then
  4731. c1=$(getColor 'white') # White
  4732. fi
  4733. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4734. startline="0"
  4735. logowidth="36"
  4736. fulloutput=(
  4737. "${c1} %s"
  4738. "${c1} eeeeeeeeeeeeeeeee %s"
  4739. "${c1} eeeeeeeeeeeeeeeeeeeeeee %s"
  4740. "${c1} eeeee eeeeeeeeeeee eeeee %s"
  4741. "${c1} eeee eeeee eee eeee %s"
  4742. "${c1} eeee eeee eee eeee %s"
  4743. "${c1}eee eee eee eee %s"
  4744. "${c1}eee eee eee eee %s"
  4745. "${c1}ee eee eeee eeee %s"
  4746. "${c1}ee eee eeeee eeeeee %s"
  4747. "${c1}ee eee eeeee eeeee ee %s"
  4748. "${c1}eee eeee eeeeee eeeee eee %s"
  4749. "${c1}eee eeeeeeeeee eeeeee eee %s"
  4750. "${c1} eeeeeeeeeeeeeeeeeeeeeeee eeeee %s"
  4751. "${c1} eeeeeeee eeeeeeeeeeee eeee %s"
  4752. "${c1} eeeee eeeee %s"
  4753. "${c1} eeeeeee eeeeeee %s"
  4754. "${c1} eeeeeeeeeeeeeeeee %s")
  4755. ;;
  4756. "Android")
  4757. if [[ "$no_color" != "1" ]]; then
  4758. c1=$(getColor 'light green') # Bold Green
  4759. fi
  4760. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4761. startline="2"
  4762. logowidth="24"
  4763. fulloutput=(
  4764. "${c1} ╲ ▁▂▂▂▁ ╱ "
  4765. "${c1} ▄███████▄ "
  4766. "${c1} ▄██ ███ ██▄ %s"
  4767. "${c1} ▄███████████▄ %s"
  4768. "${c1} ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄ %s"
  4769. "${c1} ██ █████████████ ██ %s"
  4770. "${c1} ██ █████████████ ██ %s"
  4771. "${c1} ██ █████████████ ██ %s"
  4772. "${c1} ██ █████████████ ██ %s"
  4773. "${c1} █████████████ %s"
  4774. "${c1} ███████████ %s"
  4775. "${c1} ██ ██ %s"
  4776. "${c1} ██ ██ %s")
  4777. ;;
  4778. "Scientific Linux")
  4779. if [[ "$no_color" != "1" ]]; then
  4780. c1=$(getColor 'light blue')
  4781. c2=$(getColor 'light red')
  4782. c3=$(getColor 'white')
  4783. fi
  4784. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  4785. startline="1"
  4786. logowidth="44"
  4787. fulloutput=(
  4788. "${c1} =/;;/- "
  4789. "${c1} +: // %s"
  4790. "${c1} /; /; %s"
  4791. "${c1} -X H. %s"
  4792. "${c1} .//;;;:;;-, X= :+ .-;:=;:;#;. %s"
  4793. "${c1} M- ,=;;;#:, ,:#;;:=, ,@ %s"
  4794. "${c1} :# :#.=/++++/=.$= #= %s"
  4795. "${c1} ,#; #/:+/;,,/++:+/ ;+. %s"
  4796. "${c1} ,+/. ,;@+, ,#H;, ,/+, %s"
  4797. "${c1} ;+;;/= @. ${c2}.H${c3}#${c2}#X ${c1}-X :///+; %s"
  4798. "${c1} ;+=;;;.@, ${c3}.X${c2}M${c3}@$. ${c1}=X.//;=#/. %s"
  4799. "${c1} ,;: :@#= =\$H: .+#- %s"
  4800. "${c1} ,#= #;-///==///-// =#, %s"
  4801. "${c1} ;+ :#-;;;:;;;;-X- +: %s"
  4802. "${c1} @- .-;;;;M- =M/;;;-. -X %s"
  4803. "${c1} :;;::;;-. #- :+ ,-;;-;:== %s"
  4804. "${c1} ,X H. %s"
  4805. "${c1} ;/ #= %s"
  4806. "${c1} // +; %s"
  4807. "${c1} '////' %s")
  4808. ;;
  4809. "BackTrack Linux")
  4810. if [[ "$no_color" != "1" ]]; then
  4811. c1=$(getColor 'white') # White
  4812. c2=$(getColor 'light red') # Light Red
  4813. fi
  4814. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4815. startline="1"
  4816. logowidth="48"
  4817. fulloutput=(
  4818. "${c1}.............. "
  4819. "${c1} ..,;:ccc,. %s"
  4820. "${c1} ......''';lxO. %s"
  4821. "${c1}.....''''..........,:ld; %s"
  4822. "${c1} .';;;:::;,,.x, %s"
  4823. "${c1} ..'''. 0Xxoc:,. ... %s"
  4824. "${c1} .... ,ONkc;,;cokOdc',. %s"
  4825. "${c1} . OMo ':${c2}dd${c1}o. %s"
  4826. "${c1} dMc :OO; %s"
  4827. "${c1} 0M. .:o. %s"
  4828. "${c1} ;Wd %s"
  4829. "${c1} ;XO, %s"
  4830. "${c1} ,d0Odlc;,.. %s"
  4831. "${c1} ..',;:cdOOd::,. %s"
  4832. "${c1} .:d;.':;. %s"
  4833. "${c1} 'd, .' %s"
  4834. "${c1} ;l ..%s"
  4835. "${c1} .o %s"
  4836. "${c1} c %s"
  4837. "${c1} .' %s"
  4838. "${c1} . %s")
  4839. ;;
  4840. "Kali Linux")
  4841. if [[ "$no_color" != "1" ]]; then
  4842. c1=$(getColor 'light blue') # White
  4843. c2=$(getColor 'black') # Light Red
  4844. fi
  4845. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4846. startline="1"
  4847. logowidth="48"
  4848. fulloutput=(
  4849. "${c1}.............. "
  4850. "${c1} ..,;:ccc,. %s"
  4851. "${c1} ......''';lxO. %s"
  4852. "${c1}.....''''..........,:ld; %s"
  4853. "${c1} .';;;:::;,,.x, %s"
  4854. "${c1} ..'''. 0Xxoc:,. ... %s"
  4855. "${c1} .... ,ONkc;,;cokOdc',. %s"
  4856. "${c1} . OMo ':${c2}dd${c1}o. %s"
  4857. "${c1} dMc :OO; %s"
  4858. "${c1} 0M. .:o. %s"
  4859. "${c1} ;Wd %s"
  4860. "${c1} ;XO, %s"
  4861. "${c1} ,d0Odlc;,.. %s"
  4862. "${c1} ..',;:cdOOd::,. %s"
  4863. "${c1} .:d;.':;. %s"
  4864. "${c1} 'd, .' %s"
  4865. "${c1} ;l ..%s"
  4866. "${c1} .o %s"
  4867. "${c1} c %s"
  4868. "${c1} .' %s"
  4869. "${c1} . %s")
  4870. ;;
  4871. "Sabayon")
  4872. if [[ "$no_color" != "1" ]]; then
  4873. c1=$(getColor 'white') # White
  4874. c2=$(getColor 'light blue') # Blue
  4875. fi
  4876. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4877. startline="0"
  4878. logowidth="38"
  4879. fulloutput=(
  4880. "${c2} ........... %s"
  4881. "${c2} .. .. %s"
  4882. "${c2} .. .. %s"
  4883. "${c2} .. ${c1}o ${c2}.. %s"
  4884. "${c2} .. ${c1}:W' ${c2}.. %s"
  4885. "${c2} .. ${c1}.d. ${c2}.. %s"
  4886. "${c2}:. ${c1}.KNO ${c2}.: %s"
  4887. "${c2}:. ${c1}cNNN. ${c2}.: %s"
  4888. "${c2}: ${c1}dXXX, ${c2}: %s"
  4889. "${c2}: ${c1}. dXXX, .cd, ${c2}: %s"
  4890. "${c2}: ${c1}'kc .. dKKK. ,ll;:' ${c2}: %s"
  4891. "${c2}: ${c1}.xkkxc;..dkkkc',cxkkl ${c2}: %s"
  4892. "${c2}:. ${c1}.,cdddddddddddddo:. ${c2}.: %s"
  4893. "${c2} .. ${c1}:lllllll: ${c2}.. %s"
  4894. "${c2} .. ${c1}',,,,, ${c2}.. %s"
  4895. "${c2} .. .. %s"
  4896. "${c2} .. .. %s"
  4897. "${c2} ............... %s")
  4898. ;;
  4899. "KaOS")
  4900. if [[ "$no_color" != "1" ]]; then
  4901. c1=$(getColor 'light blue')
  4902. fi
  4903. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4904. startline="0"
  4905. logowidth="35"
  4906. fulloutput=(
  4907. "${c1} .. %s"
  4908. "${c1} ..... ..OSSAAAAAAA.. %s"
  4909. "${c1} .KKKKSS. .SSAAAAAAAAAAA. %s"
  4910. "${c1}.KKKKKSO. .SAAAAAAAAAA... %s"
  4911. "${c1}KKKKKKS. .OAAAAAAAA. %s"
  4912. "${c1}KKKKKKS. .OAAAAAA. %s"
  4913. "${c1}KKKKKKS. .SSAA.. %s"
  4914. "${c1}.KKKKKS..OAAAAAAAAAAAA........ %s"
  4915. "${c1} DKKKKO.=AA=========A===AASSSO.. %s"
  4916. "${c1} AKKKS.==========AASSSSAAAAAASS. %s"
  4917. "${c1} .=KKO..========ASS.....SSSSASSSS.%s"
  4918. "${c1} .KK. .ASS..O.. =SSSSAOSS:%s"
  4919. "${c1} .OK. .ASSSSSSSO...=A.SSA.%s"
  4920. "${c1} .K ..SSSASSSS.. ..SSA. %s"
  4921. "${c1} .SSS.AAKAKSSKA. %s"
  4922. "${c1} .SSS....S.. %s")
  4923. ;;
  4924. "CentOS"|"CentOS Stream")
  4925. if [[ "$no_color" != "1" ]]; then
  4926. c1=$(getColor 'yellow')
  4927. c2=$(getColor 'light green')
  4928. c3=$(getColor 'light blue')
  4929. c4=$(getColor 'light purple')
  4930. fi
  4931. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; c4="${my_lcolor}"; fi
  4932. startline="0"
  4933. logowidth="40"
  4934. fulloutput=(
  4935. "${c1} .. %s"
  4936. "${c1} .PLTJ. %s"
  4937. "${c1} <><><><> %s"
  4938. "${c2} KKSSV' 4KKK ${c1}LJ${c4} KKKL.'VSSKK %s"
  4939. "${c2} KKV' 4KKKKK ${c1}LJ${c4} KKKKAL 'VKK %s"
  4940. "${c2} V' ' 'VKKKK ${c1}LJ${c4} KKKKV' ' 'V %s"
  4941. "${c2} .4MA.' 'VKK ${c1}LJ${c4} KKV' '.4Mb. %s"
  4942. "${c4} . ${c2}KKKKKA.' 'V ${c1}LJ${c4} V' '.4KKKKK ${c3}. %s"
  4943. "${c4} .4D ${c2}KKKKKKKA.'' ${c1}LJ${c4} ''.4KKKKKKK ${c3}FA. %s"
  4944. "${c4} <QDD ++++++++++++ ${c3}++++++++++++ GFD> %s"
  4945. "${c4} 'VD ${c3}KKKKKKKK'.. ${c2}LJ ${c1}..'KKKKKKKK ${c3}FV %s"
  4946. "${c4} ' ${c3}VKKKKK'. .4 ${c2}LJ ${c1}K. .'KKKKKV ${c3}' %s"
  4947. "${c3} 'VK'. .4KK ${c2}LJ ${c1}KKA. .'KV' %s"
  4948. "${c3} A. . .4KKKK ${c2}LJ ${c1}KKKKA. . .4 %s"
  4949. "${c3} KKA. 'KKKKK ${c2}LJ ${c1}KKKKK' .4KK %s"
  4950. "${c3} KKSSA. VKKK ${c2}LJ ${c1}KKKV .4SSKK %s"
  4951. "${c2} <><><><> %s"
  4952. "${c2} 'MKKM' %s"
  4953. "${c2} '' %s")
  4954. ;;
  4955. "Jiyuu Linux")
  4956. if [[ "$no_color" != "1" ]]; then
  4957. c1=$(getColor 'light blue') # Light Blue
  4958. fi
  4959. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  4960. startline="0"
  4961. logowidth="31"
  4962. fulloutput=(
  4963. "${c1}+++++++++++++++++++++++. %s"
  4964. "${c1}ss:-......-+so/:----.os- %s"
  4965. "${c1}ss +s/ os- %s"
  4966. "${c1}ss :s+ os- %s"
  4967. "${c1}ss os. os- %s"
  4968. "${c1}ss .so os- %s"
  4969. "${c1}ss :s+ os- %s"
  4970. "${c1}ss /s/ os- %s"
  4971. "${c1}ss /s: os- %s"
  4972. "${c1}ss +s- os- %s"
  4973. "${c1}ss-.....os:..........os- %s"
  4974. "${c1}++++++++os+++++++++oooo. %s"
  4975. "${c1} os. ./oo/. %s"
  4976. "${c1} os. ./oo: %s"
  4977. "${c1} os. ./oo: %s"
  4978. "${c1} os oo+- %s"
  4979. "${c1} os+- %s"
  4980. "${c1} /. %s")
  4981. ;;
  4982. "Antergos")
  4983. if [[ "$no_color" != "1" ]]; then
  4984. c1=$(getColor 'blue') # Light Blue
  4985. c2=$(getColor 'light blue') # Light Blue
  4986. fi
  4987. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  4988. startline="1"
  4989. logowidth="41"
  4990. fulloutput=(
  4991. "${c1} \`.-/::/-\`\` "
  4992. "${c1} .-/osssssssso/. %s"
  4993. "${c1} :osyysssssssyyys+- %s"
  4994. "${c1} \`.+yyyysssssssssyyyyy+. %s"
  4995. "${c1} \`/syyyyyssssssssssyyyyys-\` %s"
  4996. "${c1} \`/yhyyyyysss${c2}++${c1}ssosyyyyhhy/\` %s"
  4997. "${c1} .ohhhyyyys${c2}o++/+o${c1}so${c2}+${c1}syy${c2}+${c1}shhhho. %s"
  4998. "${c1} .shhhhys${c2}oo++//+${c1}sss${c2}+++${c1}yyy${c2}+s${c1}hhhhs. %s"
  4999. "${c1} -yhhhhs${c2}+++++++o${c1}ssso${c2}+++${c1}yyy${c2}s+o${c1}hhddy: %s"
  5000. "${c1} -yddhhy${c2}o+++++o${c1}syyss${c2}++++${c1}yyy${c2}yooy${c1}hdddy- %s"
  5001. "${c1} .yddddhs${c2}o++o${c1}syyyyys${c2}+++++${c1}yyhh${c2}sos${c1}hddddy\` %s"
  5002. "${c1}\`odddddhyosyhyyyyyy${c2}++++++${c1}yhhhyosddddddo %s"
  5003. "${c1}.dmdddddhhhhhhhyyyo${c2}+++++${c1}shhhhhohddddmmh. %s"
  5004. "${c1}ddmmdddddhhhhhhhso${c2}++++++${c1}yhhhhhhdddddmmdy %s"
  5005. "${c1}dmmmdddddddhhhyso${c2}++++++${c1}shhhhhddddddmmmmh %s"
  5006. "${c1}-dmmmdddddddhhys${c2}o++++o${c1}shhhhdddddddmmmmd- %s"
  5007. "${c1} .smmmmddddddddhhhhhhhhhdddddddddmmmms. %s"
  5008. "${c1} \`+ydmmmdddddddddddddddddddmmmmdy/. %s"
  5009. "${c1} \`.:+ooyyddddddddddddyyso+:.\` %s")
  5010. ;;
  5011. "Void Linux")
  5012. if [[ "$no_color" != "1" ]]; then
  5013. c1=$(getColor 'green') # Dark Green
  5014. c2=$(getColor 'light green') # Light Green
  5015. c3=$(getColor 'dark grey') # Black
  5016. fi
  5017. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  5018. startline="0"
  5019. logowidth="47"
  5020. fulloutput=(
  5021. "${c2} __.;=====;.__ %s"
  5022. "${c2} _.=+==++=++=+=+===;. %s"
  5023. "${c2} -=+++=+===+=+=+++++=_ %s"
  5024. "${c1} . ${c2}-=:\`\` \`--==+=++==. %s"
  5025. "${c1} _vi, ${c2}\` --+=++++: %s"
  5026. "${c1} .uvnvi. ${c2}_._ -==+==+. %s"
  5027. "${c1} .vvnvnI\` ${c2}.;==|==;. :|=||=|. %s"
  5028. "${c3} +QmQQm${c1}pvvnv; ${c3}_yYsyQQWUUQQQm #QmQ#${c2}:${c3}QQQWUV\$QQmL %s"
  5029. "${c3} -QQWQW${c1}pvvo${c3}wZ?.wQQQE${c2}==<${c3}QWWQ/QWQW.QQWW${c2}(: ${c3}jQWQE %s"
  5030. "${c3} -\$QQQQmmU' jQQQ@${c2}+=<${c3}QWQQ)mQQQ.mQQQC${c2}+;${c3}jWQQ@' %s"
  5031. "${c3} -\$WQ8Y${c1}nI: ${c3}QWQQwgQQWV${c2}\`${c3}mWQQ.jQWQQgyyWW@! %s"
  5032. "${c1} -1vvnvv. ${c2}\`~+++\` ++|+++ %s"
  5033. "${c1} +vnvnnv, ${c2}\`-|=== %s"
  5034. "${c1} +vnvnvns. . ${c2}:=- %s"
  5035. "${c1} -Invnvvnsi..___..=sv=. ${c2}\` %s"
  5036. "${c1} +Invnvnvnnnnnnnnvvnn;. %s"
  5037. "${c1} ~|Invnvnvvnvvvnnv}+\` %s"
  5038. "${c1} -~\"|{*l}*|\"\"~ %s")
  5039. ;;
  5040. "NixOS")
  5041. if [[ "$no_color" != "1" ]]; then
  5042. c1=$(getColor 'blue')
  5043. c2=$(getColor 'light blue')
  5044. fi
  5045. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  5046. startline="0"
  5047. logowidth="45"
  5048. fulloutput=(
  5049. "${c1} ::::. ${c2}'::::: ::::' %s"
  5050. "${c1} '::::: ${c2}':::::. ::::' %s"
  5051. "${c1} ::::: ${c2}'::::.::::: %s"
  5052. "${c1} .......:::::..... ${c2}:::::::: %s"
  5053. "${c1} ::::::::::::::::::. ${c2}:::::: ${c1}::::. %s"
  5054. "${c1} ::::::::::::::::::::: ${c2}:::::. ${c1}.::::' %s"
  5055. "${c2} ..... ::::' ${c1}:::::' %s"
  5056. "${c2} ::::: '::' ${c1}:::::' %s"
  5057. "${c2} ........::::: ' ${c1}:::::::::::. %s"
  5058. "${c2}::::::::::::: ${c1}::::::::::::: %s"
  5059. "${c2} ::::::::::: ${c1}.. ::::: %s"
  5060. "${c2} .::::: ${c1}.::: ::::: %s"
  5061. "${c2} .::::: ${c1}::::: ''''' ${c2}..... %s"
  5062. "${c2} ::::: ${c1}':::::. ${c2}......:::::::::::::' %s"
  5063. "${c2} ::: ${c1}::::::. ${c2}':::::::::::::::::' %s"
  5064. "${c1} .:::::::: ${c2}':::::::::: %s"
  5065. "${c1} .::::''::::. ${c2}'::::. %s"
  5066. "${c1} .::::' ::::. ${c2}'::::. %s"
  5067. "${c1} .:::: :::: ${c2}'::::. %s")
  5068. ;;
  5069. "Guix System")
  5070. if [[ "$no_color" != "1" ]]; then
  5071. c1=$(getColor 'orange')
  5072. c2=$(getColor 'light orange')
  5073. fi
  5074. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  5075. startline="0"
  5076. logowidth="40"
  5077. fulloutput=(
  5078. "${c1} + ? %s"
  5079. "${c1} ?? ?I %s"
  5080. "${c1} ??I? I??N ${c2}??? ${c1}???? %s"
  5081. "${c1} ?III7${c2}??????? ??????${c1}7III?Z %s"
  5082. "${c1} OI77\$${c2}????? ?????${c1}$77IIII %s"
  5083. "${c1} ????? ${c2}???? %s"
  5084. "${c1} ???ID ${c2}???? %s"
  5085. "${c1} IIII ${c2}+???? %s"
  5086. "${c1} IIIII ${c2}???? %s"
  5087. "${c1} IIII ${c2}????? %s"
  5088. "${c1} IIIII ${c2}???? %s"
  5089. "${c1} II77 ${c2}????$ %s"
  5090. "${c1} 7777+${c2}???? %s"
  5091. "${c1} 77++?${c2}??$ %s"
  5092. "${c1} N?+???${c2}? %s")
  5093. ;;
  5094. "BunsenLabs")
  5095. if [[ "$no_color" != "1" ]]; then
  5096. c1=$(getColor 'blue')
  5097. fi
  5098. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5099. startline="5"
  5100. logowidth="25"
  5101. fulloutput=(
  5102. "${c1} HC] "
  5103. "${c1} H]]]] "
  5104. "${c1} H]]]]]]4 "
  5105. "${c1} @C]]]]]]]]* "
  5106. "${c1} @]]]]]]]]]]xd "
  5107. "${c1} @]]]]]]]]]]]]]d %s"
  5108. "${c1} 0]]]]]]]]]]]]]]]] %s"
  5109. "${c1} kx]]]]]]x]]x]]]]]%% %s"
  5110. "${c1} #x]]]]]]]]]]]]]x]]]d %s"
  5111. "${c1} #]]]]]]qW x]]x]]]]]4 %s"
  5112. "${c1} k]x]]xg %%x]]]]]]%% %s"
  5113. "${c1} Wx]]]W x]]]]]]] %s"
  5114. "${c1} #]]]4 xx]]x]] %s"
  5115. "${c1} px] ]]]]]x %s"
  5116. "${c1} Wx] x]]x]] %s"
  5117. "${c1} &x x]]]] %s"
  5118. "${c1} m x]]]] %s"
  5119. "${c1} x]x] %s"
  5120. "${c1} x]]] %s"
  5121. "${c1} ]]]] %s"
  5122. "${c1} x]x %s"
  5123. "${c1} x]q %s"
  5124. "${c1} ]g %s"
  5125. "${c1} q %s")
  5126. ;;
  5127. "SteamOS")
  5128. if [[ "$no_color" != "1" ]]; then
  5129. c1=$(getColor 'grey') # Gray
  5130. c2=$(getColor 'purple') # Dark Purple
  5131. c3=$(getColor 'light purple') # Light Purple
  5132. fi
  5133. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  5134. startline="0"
  5135. logowidth="37"
  5136. fulloutput=(
  5137. "${c2} .,,,,. %s"
  5138. "${c2} .,'onNMMMMMNNnn',. %s"
  5139. "${c2} .'oNM${c3}ANK${c2}MMMMMMMMMMMNNn'. %s"
  5140. "${c3} .'ANMMMMMMMXK${c2}NNWWWPFFWNNMNn. %s"
  5141. "${c3} ;NNMMMMMMMMMMNWW'' ${c2},.., 'WMMM, %s"
  5142. "${c3} ;NMMMMV+##+VNWWW' ${c3}.+;'':+, 'WM${c2}W, %s"
  5143. "${c3} ,VNNWP+${c1}######${c3}+WW, ${c1}+: ${c3}:+, +MMM, %s"
  5144. "${c3} '${c1}+#############, +. ,+' ${c3}+NMMM %s"
  5145. "${c1} '*#########*' '*,,*' ${c3}.+NMMMM. %s"
  5146. "${c1} \`'*###*' ,.,;###${c3}+WNM, %s"
  5147. "${c1} .,;;, .;##########${c3}+W %s"
  5148. "${c1} ,',. '; ,+##############' %s"
  5149. "${c1} '###+. :,. .,; ,###############' %s"
  5150. "${c1} '####.. \`'' .,###############' %s"
  5151. "${c1} '#####+++################' %s"
  5152. "${c1} '*##################*' %s"
  5153. "${c1} ''*##########*'' %s"
  5154. "${c1} '''''' %s")
  5155. ;;
  5156. "SailfishOS")
  5157. if [[ "$no_color" != "1" ]]; then
  5158. c1=$(getColor 'dark grey') # Grey
  5159. fi
  5160. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5161. startline="0"
  5162. logowidth="32"
  5163. fulloutput=(
  5164. "${c1} _a@b %s"
  5165. "${c1} _#b (b %s"
  5166. "${c1} _@@ @_ _, %s"
  5167. "${c1} _#^@ _#*^^*gg,aa@^^ %s"
  5168. "${c1} #- @@^ _a@^^ %s"
  5169. "${c1} @_ *g#b %s"
  5170. "${c1} ^@_ ^@_ %s"
  5171. "${c1} ^@_ @ %s"
  5172. "${c1} @(b (b %s"
  5173. "${c1} #b(b#^ %s"
  5174. "${c1} _@_#@^ %s"
  5175. "${c1} _a@a*^ %s"
  5176. "${c1} ,a@*^ %s")
  5177. ;;
  5178. "Qubes OS")
  5179. if [[ "$no_color" != "1" ]]; then
  5180. c1=$(getColor 'cyan')
  5181. c2=$(getColor 'blue')
  5182. c3=$(getColor 'light blue')
  5183. fi
  5184. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  5185. startline="0"
  5186. logowidth="47"
  5187. fulloutput=(
  5188. "${c3} #### %s"
  5189. "${c3} ######## %s"
  5190. "${c3} ############ %s"
  5191. "${c3} ####### ####### %s"
  5192. "${c1} #${c3}###### ######${c2}# %s"
  5193. "${c1} ####${c3}### ###${c2}#### %s"
  5194. "${c1} ###### ${c2} ###### %s"
  5195. "${c1} ###### ${c2} ###### %s"
  5196. "${c1} ###### ${c2} ###### %s"
  5197. "${c1} ###### ${c2} ###### %s"
  5198. "${c1} ###### ${c2} ###### %s"
  5199. "${c1} ####### ${c2} ####### %s"
  5200. "${c1} ####### ${c2} ######### %s"
  5201. "${c1} ####### ${c2} ############## %s"
  5202. "${c1} ######${c2}###### ###### %s"
  5203. "${c1} ####${c2}#### ### %s"
  5204. "${c1} ##${c2}## %s"
  5205. "${c1} %s")
  5206. ;;
  5207. "PCLinuxOS")
  5208. if [[ "$no_color" != "1" ]]; then
  5209. c1=$(getColor 'blue') # Blue
  5210. c2=$(getColor 'light grey') # White
  5211. fi
  5212. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; fi
  5213. startline="0"
  5214. logowidth="50"
  5215. fulloutput=(
  5216. "${c1} %s"
  5217. "${c1} <NNN>%s"
  5218. "${c1} <NNY %s"
  5219. "${c1} <ooooo>--. (( %s"
  5220. "${c1} Aoooooooooooo>--. \\\\\\ %s"
  5221. "${c1} AooodNNNNNNNNNNNNNNNN>--. )) %s"
  5222. "${c2} (${c1} AoodNNNNNNNNNNNNNNNNNNNNNNN>-///' %s"
  5223. "${c2} \\\\\\\\${c1}AodNNNNNNNNNNNNNNNNNNNNNNNNNNNY/ %s"
  5224. "${c1} AodNNNNNNNNNNNNNNNNNNNNNNNNNNNNN %s"
  5225. "${c1} AdNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNA %s"
  5226. "${c1} (${c2}/)${c1}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNA %s"
  5227. "${c2} //${c1}<NNNNNNNNNNNNNNNNNY' YNNY YNNNN %s"
  5228. "${c2} ,====#Y//${c1} \`<NNNNNNNNNNNY ANY YNA %s"
  5229. "${c1} ANY<NNNNYYN .NY YN. %s"
  5230. "${c1} (NNY NN (NND (NND %s"
  5231. "${c1} (NNU %s"
  5232. "${c1} %s")
  5233. ;;
  5234. "Exherbo")
  5235. if [[ "$no_color" != "1" ]]; then
  5236. c1=$(getColor 'dark grey') # Black
  5237. c2=$(getColor 'light blue') # Blue
  5238. c3=$(getColor 'light red') # Beige
  5239. fi
  5240. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  5241. startline="0"
  5242. logowidth="46"
  5243. fulloutput=(
  5244. "${c1} , %s"
  5245. "${c1} OXo. %s"
  5246. "${c1} NXdX0: .cok0KXNNXXK0ko:. %s"
  5247. "${c1} KX '0XdKMMK;.xMMMk, .0MMMMMXx; ... %s"
  5248. "${c1} 'NO..xWkMMx kMMM cMMMMMX,NMWOxOXd. %s"
  5249. "${c1} cNMk NK .oXM. OMMMMO. 0MMNo kW. %s"
  5250. "${c1} lMc o: ., .oKNk; ;NMMWlxW' %s"
  5251. "${c1} ;Mc .. .,,' .0M${c2}g;${c1}WMN'dWMMMMMMO %s"
  5252. "${c1} XX ,WMMMMW. cM${c2}cfli${c1}WMKlo. .kMk %s"
  5253. "${c1} .Mo .WM${c2}GD${c1}MW. XM${c2}WO0${c1}MMk oMl %s"
  5254. "${c1} ,M: ,XMMWx::,''oOK0x; NM. %s"
  5255. "${c1} 'Ml ,kNKOxxxxxkkO0XXKOd:. oMk %s"
  5256. "${c1} NK .0Nxc${c3}:::::::::::::::${c1}fkKNk, .MW %s"
  5257. "${c1} ,Mo .NXc${c3}::${c1}qXWXb${c3}::::::::::${c1}oo${c3}::${c1}lNK. .MW %s"
  5258. "${c1} ;Wo oMd${c3}:::${c1}oNMNP${c3}::::::::${c1}oWMMMx${c3}:${c1}c0M; lMO %s"
  5259. "${c1} 'NO;W0c${c3}:::::::::::::::${c1}dMMMMO${c3}::${c1}lMk .WM' %s"
  5260. "${c1} xWONXdc${c3}::::::::::::::${c1}oOOo${c3}::${c1}lXN. ,WMd %s"
  5261. "${c1} 'KWWNXXK0Okxxo,${c3}:::::::${c1},lkKNo xMMO %s"
  5262. "${c1} :XMNxl,';:lodxkOO000Oxc. .oWMMo %s"
  5263. "${c1} 'dXMMXkl;,. .,o0MMNo' %s"
  5264. "${c1} ':d0XWMMMMWNNNNMMMNOl' %s"
  5265. "${c1} ':okKXWNKkl' %s")
  5266. ;;
  5267. "Red Star OS")
  5268. if [[ "$no_color" != "1" ]]; then
  5269. c1=$(getColor 'light red') # Red
  5270. fi
  5271. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5272. startline="0"
  5273. logowidth="45"
  5274. fulloutput=(
  5275. "${c1} .. %s"
  5276. "${c1} .oK0l %s"
  5277. "${c1} :0KKKKd. %s"
  5278. "${c1} .xKO0KKKKd %s"
  5279. "${c1} ,Od' .d0000l %s"
  5280. "${c1} .c;. .'''... ..'. %s"
  5281. "${c1} .,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx: %s"
  5282. "${c1} ;kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,. %s"
  5283. "${c1} .okkkkd,.lko .......',;:cllc:;,,'''''. %s"
  5284. "${c1} .cdo. :xd' cd:. ..';'',,,'',,;;;,'. %s"
  5285. "${c1} . .ddl.;doooc'..;oc;'..';::;,'. %s"
  5286. "${c1} coo;.oooolllllllcccc:'. . %s"
  5287. "${c1} .ool''lllllccccccc:::::;. %s"
  5288. "${c1} ;lll. .':cccc:::::::;;;;' %s"
  5289. "${c1} :lcc:'',..';::::;;;;;;;,,. %s"
  5290. "${c1} :cccc::::;...';;;;;,,,,,,. %s"
  5291. "${c1} ,::::::;;;,'. ..',,,,'''. %s"
  5292. "${c1} ........ ...... %s"
  5293. "${c1} %s")
  5294. ;;
  5295. "SparkyLinux")
  5296. if [[ "$no_color" != "1" ]]; then
  5297. c1=$(getColor 'light gray') # Gray
  5298. fi
  5299. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5300. startline="0"
  5301. logowidth="48"
  5302. fulloutput=(
  5303. "${c1} . \`-:-\` %s"
  5304. "${c1} .o\` .-///-\` %s"
  5305. "${c1} \`oo\` .:/++:. %s"
  5306. "${c1} os+\` -/+++:\` \`\`.........\`\`\` %s"
  5307. "${c1} /ys+\`./+++/-.-::::::----......\`\` %s"
  5308. "${c1} \`syyo\`++o+--::::-::/+++/-\`\` %s"
  5309. "${c1} -yyy+.+o+\`:/:-:sdmmmmmmmmdy+-\` %s"
  5310. "${c1} ::-\` :yyy/-oo.-+/\`ymho++++++oyhdmdy/\` %s"
  5311. "${c1} \`/yy+-\`.syyo\`+o..o--h..osyhhddhs+//osyy/\` %s"
  5312. "${c1} -ydhs+-oyy/.+o.-: \` \` :/::+ydhy+\`\`\`-os- %s"
  5313. "${c1} .sdddy::syo--/:. \`.:dy+-ohhho ./: %s"
  5314. "${c1} :yddds/:+oo+//:-\`- /+ +hy+.shhy: \`\` %s"
  5315. "${c1} \`:ydmmdysooooooo-.ss\`/yss--oyyo %s"
  5316. "${c1} \`./ossyyyyo+:-/oo:.osso- .oys %s"
  5317. "${c1} \`\`..-------::////.-oooo/ :so %s"
  5318. "${c1} \`...----::::::::--.\`/oooo: .o: %s"
  5319. "${c1} \`\`\`\`\`\`\` ++o+:\` \`:\` %s"
  5320. "${c1} ./+/-\` \` %s"
  5321. "${c1} \`-:-. %s"
  5322. "${c1} \`\` %s")
  5323. ;;
  5324. "Pardus")
  5325. if [[ "$no_color" != "1" ]]; then
  5326. c1=$(getColor 'yellow') # Light Yellow
  5327. c2=$(getColor 'light gray') # Light Gray
  5328. fi
  5329. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5330. startline="1"
  5331. logowidth="45"
  5332. fulloutput=(
  5333. ""
  5334. "${c1} .smNdy+- \`.:/osyyso+:.\` -+ydmNs. %s"
  5335. "${c1} /Md- -/ymMdmNNdhso/::/oshdNNmdMmy/. :dM/ %s"
  5336. "${c1} mN. oMdyy- -y \`-dMo .Nm %s"
  5337. "${c1} .mN+\` sMy hN+ -: yMs \`+Nm. %s"
  5338. "${c1} \`yMMddMs.dy \`+\` sMddMMy\` %s"
  5339. "${c1} +MMMo .\` . oMMM+ %s"
  5340. "${c1} \`NM/ \`\`\`\`\`.\` \`.\`\`\`\`\` +MN\` %s"
  5341. "${c1} yM+ \`.-:yhomy ymohy:-.\` +My %s"
  5342. "${c1} yM: yo oy :My %s"
  5343. "${c1} +Ms .N\` \`N. +h sM+ %s"
  5344. "${c1} \`MN - -::::::- : :o:+\`NM\` %s"
  5345. "${c1} yM/ sh -dMMMMd- ho +y+My %s"
  5346. "${c1} .dNhsohMh-//: /mm/ ://-yMyoshNd\` %s"
  5347. "${c1} \`-ommNMm+:/. oo ./:+mMNmmo:\` %s"
  5348. "${c1} \`/o+.-somNh- :yy: -hNmos-.+o/\` %s"
  5349. "${c1} ./\` .s/\`s+sMdd+\`\`+ddMs+s\`/s. \`/. %s"
  5350. "${c1} : -y. -hNmddmNy. .y- : %s"
  5351. "${c1} -+ \`..\` +- %s"
  5352. "%s")
  5353. ;;
  5354. "Sulin")
  5355. if [[ "$no_color" != "1" ]]; then
  5356. c1=$(getColor 'light gray') # Light Yellow
  5357. fi
  5358. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5359. startline="1"
  5360. logowidth="45"
  5361. fulloutput=(
  5362. ""
  5363. "${c1} ++ +++ %s"
  5364. "${c1} ++::+ ++:+: %s"
  5365. "${c1} +:~:~: +:~:~:+ %s"
  5366. "${c1} +:~::~:+ +~::::: %s"
  5367. "${c1} +:~:::~~+:~. ..~::.::+:~+ %s"
  5368. "${c1} +~:::. .::~:+ %s"
  5369. "${c1} +::. . .~:+ %s"
  5370. "${c1} :~:~+~..~ ~: ~++~++~+ %s"
  5371. "${c1} :++++++++:++:+++++++: %s"
  5372. "${c1} ++++ +:+++.+++++++++++.+++: %s"
  5373. "${c1} :. ~ :+++.+++++++++++~+++: %s"
  5374. "${c1} +~ .++++++++++ ++ ++++:+ %s"
  5375. "${c1} +: ~ :~+ +~+ ~+ +~+ %s"
  5376. "${c1} ++:+++++ +++ %s"
  5377. "${c1} +::~:++++++++++++++ %s"
  5378. "${c1} +++++++++++++++: %s"
  5379. "${c1} +:++++++++++++:: %s"
  5380. "${c1} :.~+++:++:++++..+ %s"
  5381. "${c1} +~::++::+~::+:.+ %s"
  5382. "${c1} :~~~~~:+~:~~~:+ %s")
  5383. ;;
  5384. "SwagArch")
  5385. if [[ "$no_color" != "1" ]]; then
  5386. c1=$(getColor 'white') # White
  5387. c2=$(getColor 'light blue') # Light Blue
  5388. fi
  5389. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5390. startline="0"
  5391. logowidth="48"
  5392. fulloutput=(
  5393. "${c1} %s"
  5394. "${c1} .;ldkOKXXNNNNXXK0Oxoc,. %s"
  5395. "${c1} ,lkXMMNK0OkkxkkOKWMMMMMMMMMM; %s"
  5396. "${c1} 'K0xo ..,;:c:. \`'lKMMMMM0 %s"
  5397. "${c1} .lONMMMMMM' \`lNMk' %s"
  5398. "${c1} ;WMMMMMMMMMO. ${c2}....::... %s"
  5399. "${c1} OMMMMMMMMMMMMKl. ${c2}.,;;;;;ccccccc, %s"
  5400. "${c1} \`0MMMMMMMMMMMMMM0: ${c2}.. .ccccccc. %s"
  5401. "${c1} 'kWMMMMMMMMMMMMMNo. ${c2}.,:' .ccccccc. %s"
  5402. "${c1} \`c0MMMMMMMMMMMMMN,${c2},:c; :cccccc: %s"
  5403. "${c1} ckl. \`lXMMMMMMMMMX${c2}occcc:.. ;ccccccc. %s"
  5404. "${c1} dMMMMXd, \`OMMMMMMWk${c2}ccc;:''\` ,ccccccc: %s"
  5405. "${c1} XMMMMMMMWKkxxOWMMMMMNo${c2}ccc; .cccccccc. %s"
  5406. "${c1} \`':ldxO0KXXXXXK0Okdo${c2}cccc. :cccccccc. %s"
  5407. "${c2} :ccc:' \`cccccccc:, %s"
  5408. "${c2} '' %s"
  5409. "${c2} %s")
  5410. ;;
  5411. "EuroLinux")
  5412. if [[ "$no_color" != "1" ]]; then
  5413. c1=$(getColor 'light blue')
  5414. fi
  5415. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}";fi;
  5416. startline="0"
  5417. logowidth="39"
  5418. fulloutput=(
  5419. "${c1} %s"
  5420. "${c1} DZZZZZZZZZZZZZ %s"
  5421. "${c1} ZZZZZZZZZZZZZZZZZZZ %s"
  5422. "${c1} ZZZZZZZZZZZZZZZZZZZZ %s"
  5423. "${c1} OZZZZZZZZZZZZZZZZZZZZ %s"
  5424. "${c1} Z ZZZ 8ZZZZZZZZZZZZ %s"
  5425. "${c1} ZZZ ZZZZZZZZZZ %s"
  5426. "${c1} ZZZZZN ZZZZZZZZZ %s"
  5427. "${c1} ZZZZZZZ ZZZZZZZZ %s"
  5428. "${c1}ZZZZZZZZ OZZZZZZZ %s"
  5429. "${c1}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ %s"
  5430. "${c1}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ %s"
  5431. "${c1}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ %s"
  5432. "${c1}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ %s"
  5433. "${c1}ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ %s"
  5434. "${c1}ZZZZZZZZ %s"
  5435. "${c1} ZZZZZZZZ %s"
  5436. "${c1} OZZZZZZZZO %s"
  5437. "${c1} ZZZZZZZZZZZ %s"
  5438. "${c1} OZZZZZZZZZZZZZZZN %s"
  5439. "${c1} ZZZZZZZZZZZZZZZZ %s"
  5440. "${c1} DZZZZZZZZZZZZZZZ %s"
  5441. "${c1} ZZZZZZZZZZZZZ %s"
  5442. "${c1} NZZZZZZZZ %s"
  5443. "${c1} %s")
  5444. ;;
  5445. "OBRevenge")
  5446. if [[ "$no_color" != "1" ]]; then
  5447. c1=$(getColor 'red') # White
  5448. c2=$(getColor 'light blue') # Light Blue
  5449. fi
  5450. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5451. startline="0"
  5452. logowidth="48"
  5453. fulloutput=(
  5454. "${c1} _@@@@ @@@g_ %s"
  5455. "${c1} _@@@@@@ @@@@@@ %s"
  5456. "${c1} _@@@@@@M W@@@@@@_ %s"
  5457. "${c1} j@@@@P ^W@@@@ %s"
  5458. "${c1} @@@@L____ _____Q@@@@ %s"
  5459. "${c1} Q@@@@@@@@@@j@@@@@@@@@@ %s"
  5460. "${c1} @@@@@ T@j@ T@@@@@ %s"
  5461. "${c1} @@@@@ ___Q@J@ _@@@@@ %s"
  5462. "${c1} @@@@@fMMM@@j@jggg@@@@@@ %s"
  5463. "${c1} @@@@@ j@j@^MW@P @@@@ %s"
  5464. "${c1} Q@@@@@ggg@@f@ @@@@@@L %s"
  5465. "${c1} ^@@@@WWMMP @ Q@@@@ %s"
  5466. "${c1} @@@@@_ _@@@@l %s"
  5467. "${c1} W@@@@@g_____g@@@@@P %s"
  5468. "${c1} @@@@@@@@@@@@@@@@l %s"
  5469. "${c1} ^W@@@@@@@@@@@P %s"
  5470. "${c1} ^TMMMMTll %s"
  5471. "${c1} %s")
  5472. ;;
  5473. "Parrot Security")
  5474. if [[ "$no_color" != "1" ]]; then
  5475. c1=$(getColor 'light blue') # Light Blue
  5476. fi
  5477. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5478. startline="0"
  5479. logowidth="43"
  5480. fulloutput=(
  5481. "${c1} ,:oho/-. %s"
  5482. "${c1} mMMMMMMMMMMMNmmdhy- %s"
  5483. "${c1} dMMMMMMMMMMMMMMMMMMs. %s"
  5484. "${c1} +MMsohNMMMMMMMMMMMMMm/ %s"
  5485. "${c1} .My .+dMMMMMMMMMMMMMh. %s"
  5486. "${c1} + :NMMMMMMMMMMMMNo %s"
  5487. "${c1} \`yMMMMMMMMMMMMMm: %s"
  5488. "${c1} /NMMMMMMMMMMMMMy. %s"
  5489. "${c1} .hMMMMMMMMMMMMMN+ %s"
  5490. "${c1} \`\`-NMMMMMMMMMd- %s"
  5491. "${c1} /MMMMMMMMMMMs. %s"
  5492. "${c1} mMMMMMMMsyNMN/ %s"
  5493. "${c1} +MMMMMMMo :sNh. %s"
  5494. "${c1} \`NMMMMMMm -o/ %s"
  5495. "${c1} oMMMMMMM. %s"
  5496. "${c1} \`NMMMMMM+ %s"
  5497. "${c1} +MMd/NMh %s"
  5498. "${c1} mMm -mN\` %s"
  5499. "${c1} /MM \`h: %s"
  5500. "${c1} dM\` . %s"
  5501. "${c1} :M- %s"
  5502. "${c1} d: %s"
  5503. "${c1} -+ %s"
  5504. "${c1} - %s")
  5505. ;;
  5506. "Amazon Linux")
  5507. if [[ "$no_color" != "1" ]]; then
  5508. c1=$(getColor 'light orange') # Orange
  5509. fi
  5510. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5511. startline="0"
  5512. logowidth="40"
  5513. fulloutput=(
  5514. "${c1} .,:cc:,. %s"
  5515. "${c1} .:okXWMMMMMMWXko:. %s"
  5516. "${c1} .:kNMMMMMMMMMMMMMMMMMMNkc. %s"
  5517. "${c1} cc,. \`':ox0XWWXOxo:'\` .,c; %s"
  5518. "${c1} KMMMMXOdc,. '' .,cdOXWMMMO %s"
  5519. "${c1} KMMMMMMMMMMWXO. .OXWMMMMMMMMMMO %s"
  5520. "${c1} KMMMMMMMMMMMMM, ,MMMMMMMMMMMMMO %s"
  5521. "${c1} KMMMMMMMMMMMMM, ,MMMMMMMMMMMMMO %s"
  5522. "${c1} KMMMMMMMMMMMMM, ,MMMMMMMMMMMMMO %s"
  5523. "${c1} KMMMMMMMMMMMMM, ,MMMMMMMMMMMMMO %s"
  5524. "${c1} KMMMMMMMMMMMMM, ,MMMMMMMMMMMMMO %s"
  5525. "${c1} KMMMMMMMMMMMMM, ,MMMMMMMMMMMMMk %s"
  5526. "${c1} KMMMMMMMMMMMMM, ,MMMMMMMMMMMMMd %s"
  5527. "${c1} \`:lx0WMMMMMMMM, ,MMMMMMMMW0xl:\` %s"
  5528. "${c1} \`'lx0NMM, ,MMN0xc'\` %s"
  5529. "${c1} \`'' ''\` %s")
  5530. ;;
  5531. "Source Mage GNU/Linux")
  5532. if [[ "$no_color" != "1" ]]; then
  5533. c1=$(getColor 'dark gray')
  5534. fi
  5535. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5536. startline="1"
  5537. logowidth="40"
  5538. fulloutput=(
  5539. "${c1} "
  5540. "${c1} -sdNMNds: %s"
  5541. "${c1} .shmNMMMMMMNNNNh. %s"
  5542. "${c1} \` \':sNNNNNNNNNNm- %s"
  5543. "${c1} .NNNNNNmmmmmdo. %s"
  5544. "${c1} -mNmmmmmmmmmmddd: %s"
  5545. "${c1} +mmmmmmmddddddddh- %s"
  5546. "${c1} :mmdddddddddhhhhhy. %s"
  5547. "${c1} -ddddddhhhhhhhhyyyo %s"
  5548. "${c1} .hyhhhhhhhyyyyyyyys: %s"
  5549. "${c1} .\`shyyyyyyyyyssssso %s"
  5550. "${c1} \`/yyyysssssssoooo. %s"
  5551. "${c1} .osssssooooo+++/ %s"
  5552. "${c1} \`:+oooo+++++///. %s"
  5553. "${c1} \`://++//////::- %s"
  5554. "${c1} ..-/// .//::::::--. %s"
  5555. "${c1} \`\`\`\` \`\`\` :::--------\` %s"
  5556. "${c1} \`------....\` %s"
  5557. "${c1} \`.........\` %s"
  5558. "${c1} \`......\` %s")
  5559. ;;
  5560. "OS Elbrus")
  5561. if [[ "$no_color" != "1" ]]; then
  5562. c1=$(getColor 'light blue') # Green
  5563. fi
  5564. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5565. startline="1"
  5566. logowidth="33"
  5567. fulloutput=(""
  5568. "${c1} ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ %s"
  5569. "${c1} ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ %s"
  5570. "${c1} ██ ██ %s"
  5571. "${c1} ██ ███████ ███████ ██ %s"
  5572. "${c1} ██ ██ ██ ██ ██ ██ %s"
  5573. "${c1} ██ ██ ██ ██ ██ ██ %s"
  5574. "${c1} ██ ██ ██ ██ ██ ██ %s"
  5575. "${c1} ██ ██ ██ ██ ██ ██ %s"
  5576. "${c1} ██ ██ ███████ ███████ %s"
  5577. "${c1} ██ ██ ██ %s"
  5578. "${c1} ██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██ %s"
  5579. "${c1} ██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ %s"
  5580. "${c1} ██ ██ %s"
  5581. "${c1} ███████████████████████████ %s"
  5582. " %s")
  5583. ;;
  5584. "PureOS")
  5585. if [[ "$no_color" != "1" ]]; then
  5586. c1=$(getColor 'dark grey') # "Black"
  5587. fi
  5588. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5589. startline="1"
  5590. logowidth="44"
  5591. fulloutput=(""
  5592. " %s"
  5593. "${c1} dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd %s"
  5594. "${c1} dNm//////////////////////////////////mNd %s"
  5595. "${c1} dNd dNd %s"
  5596. "${c1} dNd dNd %s"
  5597. "${c1} dNd dNd %s"
  5598. "${c1} dNd dNd %s"
  5599. "${c1} dNd dNd %s"
  5600. "${c1} dNd dNd %s"
  5601. "${c1} dNd dNd %s"
  5602. "${c1} dNd dNd %s"
  5603. "${c1} dNm//////////////////////////////////mNd %s"
  5604. "${c1} dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd %s"
  5605. " %s")
  5606. ;;
  5607. "DraugerOS")
  5608. if [[ "$no_color" != "1" ]]; then
  5609. c1=$(getColor 'red') # red
  5610. fi
  5611. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5612. startline="0"
  5613. logowidth="52"
  5614. fulloutput=(
  5615. "${c1} %s"
  5616. "${c1} & & %s"
  5617. "${c1} %( (# %s"
  5618. "${c1} ((( ((( %s"
  5619. "${c1} (((( (((( %s"
  5620. "${c1} (((( (((( %s"
  5621. "${c1} (((( (((( %s"
  5622. "${c1} (((( (((( %s"
  5623. "${c1} %(((( ((((% %s"
  5624. "${c1} (((( (((( %s"
  5625. "${c1} (((( (((( %s"
  5626. "${c1} (((( (((( %s"
  5627. "${c1} &(((( ((((& %s"
  5628. "${c1} #(((( ((((# %s"
  5629. "${c1} ((((( ((((( %s"
  5630. "${c1} ((((# #(((( %s"
  5631. "${c1} (# ((((((((((((((((((((((((((((((( #( %s"
  5632. "${c1} ((((((((((((((((((((((((((((((((((( %s"
  5633. " %s")
  5634. ;;
  5635. "januslinux")
  5636. if [[ "$no_color" != "1" ]]; then
  5637. c1=$(getColor 'white') # white
  5638. fi
  5639. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5640. startline="1"
  5641. logowidth="25"
  5642. fulloutput=(""
  5643. " %s"
  5644. "${c1} ________________ %s"
  5645. "${c1} |\ \ %s"
  5646. "${c1} | \ \ %s"
  5647. "${c1} | \ \ %s"
  5648. "${c1} | \ ______________\ %s"
  5649. "${c1} | | | %s"
  5650. "${c1} | | | %s"
  5651. "${c1} | | | %s"
  5652. "${c1} \ | januslinux | %s"
  5653. "${c1} \ | | %s"
  5654. "${c1} \ | | %s"
  5655. "${c1} \|______________| %s"
  5656. " %s")
  5657. ;;
  5658. "EndeavourOS")
  5659. if [[ "$no_color" != "1" ]]; then
  5660. c1=$(getColor 'yellow')
  5661. c3=$(getColor 'purple')
  5662. c5=$(getColor 'cyan')
  5663. fi
  5664. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c3="${my_lcolor}"; c5="${my_lcolor}"; fi
  5665. startline="1"
  5666. logowidth="44"
  5667. fulloutput=(""
  5668. "${c1} +${c3}I${c5}+ %s"
  5669. "${c1} +${c3}777${c5}+ %s"
  5670. "${c1} +${c3}77777${c5}++ %s"
  5671. "${c1} +${c3}7777777${c5}++ %s"
  5672. "${c1} +${c3}7777777777${c5}++ %s"
  5673. "${c1} ++${c3}7777777777777${c5}++ %s"
  5674. "${c1} ++${c3}777777777777777${c5}+++ %s"
  5675. "${c1} ++${c3}77777777777777777${c5}++++ %s"
  5676. "${c1} ++${c3}7777777777777777777${c5}++++ %s"
  5677. "${c1} +++${c3}777777777777777777777${c5}++++ %s"
  5678. "${c1} ++++${c3}7777777777777777777777${c5}+++++ %s"
  5679. "${c1} ++++${c3}77777777777777777777777${c5}+++++ %s"
  5680. "${c1} +++++${c3}777777777777777777777777${c5}+++++ %s"
  5681. "${c5} +++++++${c3}7777777777777777${c5}++++++ %s"
  5682. "${c5} +++++++++++++++++++++++++++++ %s"
  5683. "${c5} +++++++++++++++++++++++++++ %s"
  5684. " %s"
  5685. );;
  5686. *)
  5687. if [[ "${kernel}" =~ "Linux" ]]; then
  5688. if [[ "$no_color" != "1" ]]; then
  5689. c1=$(getColor 'white') # White
  5690. c2=$(getColor 'dark grey') # Light Gray
  5691. c3=$(getColor 'yellow') # Light Yellow
  5692. fi
  5693. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; c2="${my_lcolor}"; c3="${my_lcolor}"; fi
  5694. startline="0"
  5695. logowidth="28"
  5696. fulloutput=(
  5697. "${c2} %s"
  5698. "${c2} %s"
  5699. "${c2} %s"
  5700. "${c2} ##### %s"
  5701. "${c2} ####### %s"
  5702. "${c2} ##${c1}O${c2}#${c1}O${c2}## %s"
  5703. "${c2} #${c3}#####${c2}# %s"
  5704. "${c2} ##${c1}##${c3}###${c1}##${c2}## %s"
  5705. "${c2} #${c1}##########${c2}## %s"
  5706. "${c2} #${c1}############${c2}## %s"
  5707. "${c2} #${c1}############${c2}### %s"
  5708. "${c3} ##${c2}#${c1}###########${c2}##${c3}# %s"
  5709. "${c3} ######${c2}#${c1}#######${c2}#${c3}###### %s"
  5710. "${c3} #######${c2}#${c1}#####${c2}#${c3}####### %s"
  5711. "${c3} #####${c2}#######${c3}##### %s"
  5712. "${c2} %s"
  5713. "${c2} %s"
  5714. "${c2} %s")
  5715. elif [[ "${kernel}" =~ "Hurd" || "${kernel}" =~ "GNU" || "${OSTYPE}" == "gnu" ]]; then
  5716. if [[ "$no_color" != "1" ]]; then
  5717. c1=$(getColor 'dark grey') # Light Gray
  5718. fi
  5719. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5720. startline="0"
  5721. logowidth="37"
  5722. fulloutput=(
  5723. "${c1} _-\`\`\`\`\`-, ,- '- . %s"
  5724. "${c1} .' .- - | | - -. \`. %s"
  5725. "${c1} /.' / \`. \\ %s"
  5726. "${c1} :/ : _... ..._ \`\` : %s"
  5727. "${c1} :: : /._ .\`:'_.._\\. || : %s"
  5728. "${c1} :: \`._ ./ ,\` : \\ . _.'' . %s"
  5729. "${c1} \`:. / | -. \\-. \\\\\_ / %s"
  5730. "${c1} \\:._ _/ .' .@) \\@) \` \`\\ ,.' %s"
  5731. "${c1} _/,--' .- .\\,-.\`--\`. %s"
  5732. "${c1} ,'/'' (( \\ \` ) %s"
  5733. "${c1} /'/' \\ \`-' ( %s"
  5734. "${c1} '/'' \`._,-----' %s"
  5735. "${c1} ''/' .,---' %s"
  5736. "${c1} ''/' ;: %s"
  5737. "${c1} ''/'' ''/ %s"
  5738. "${c1} ''/''/'' %s"
  5739. "${c1} '/'/' %s"
  5740. "${c1} \`; %s")
  5741. # Source: https://www.gnu.org/graphics/alternative-ascii.en.html
  5742. # Copyright (C) 2003, Vijay Kumar
  5743. # Permission is granted to copy, distribute and/or modify this image under the
  5744. # terms of the GNU General Public License as published by the Free Software
  5745. # Foundation; either version 2 of the License, or (at your option) any later
  5746. # version.
  5747. else
  5748. if [[ "$no_color" != "1" ]]; then
  5749. c1=$(getColor 'light green') # Light Green
  5750. fi
  5751. if [ -n "${my_lcolor}" ]; then c1="${my_lcolor}"; fi
  5752. startline="0"
  5753. logowidth="44"
  5754. fulloutput=(
  5755. "${c1} %s"
  5756. "${c1} %s"
  5757. "${c1} UUU UUU NNN NNN IIIII XXX XXXX%s"
  5758. "${c1} UUU UUU NNNN NNN III XX xXX %s"
  5759. "${c1} UUU UUU NNNNN NNN III XX xXX %s"
  5760. "${c1} UUU UUU NNN NN NNN III XXXX %s"
  5761. "${c1} UUU UUU NNN NN NNN III xXX %s"
  5762. "${c1} UUU UUU NNN NN NNN III xXXXX %s"
  5763. "${c1} UUU UUU NNN NNNNN III xXX XX %s"
  5764. "${c1} UUUuuuUUU NNN NNNN III xXX XX %s"
  5765. "${c1} UUUUU NNN NNN IIIII xXXx xXXx%s"
  5766. "${c1} %s"
  5767. "${c1} %s"
  5768. "${c1} %s"
  5769. "${c1} %s")
  5770. fi
  5771. ;;
  5772. esac
  5773. # Truncate lines based on terminal width.
  5774. if [ "$truncateSet" == "Yes" ]; then
  5775. missinglines=$((${#out_array[*]} + startline - ${#fulloutput[*]}))
  5776. for ((i=0; i<missinglines; i++)); do
  5777. fulloutput+=("${c1}$(printf '%*s' "$logowidth")%s")
  5778. done
  5779. for ((i=0; i<${#fulloutput[@]}; i++)); do
  5780. my_out=$(printf "${fulloutput[i]}$c0\n" "${out_array}")
  5781. my_out_full=$(echo "$my_out" | cat -v)
  5782. termWidth=$(tput cols)
  5783. SHOPT_EXTGLOB_STATE=$(shopt -p extglob)
  5784. read SHOPT_CMD SHOPT_STATE SHOPT_OPT <<< "${SHOPT_EXTGLOB_STATE}"
  5785. if [[ ${SHOPT_STATE} == "-u" ]]; then
  5786. shopt -s extglob
  5787. fi
  5788. stringReal="${my_out_full//\^\[\[@([0-9]|[0-9];[0-9][0-9])m}"
  5789. if [[ ${SHOPT_STATE} == "-u" ]]; then
  5790. shopt -u extglob
  5791. fi
  5792. if [[ "${#stringReal}" -le "${termWidth}" ]]; then
  5793. echo -e "${my_out}"$c0
  5794. elif [[ "${#stringReal}" -gt "${termWidth}" ]]; then
  5795. ((NORMAL_CHAR_COUNT=0))
  5796. for ((j=0; j<=${#my_out_full}; j++)); do
  5797. if [[ "${my_out_full:${j}:3}" == '^[[' ]]; then
  5798. if [[ "${my_out_full:${j}:5}" =~ ^\^\[\[[[:digit:]]m$ ]]; then
  5799. if [[ ${j} -eq 0 ]]; then
  5800. j=$((j + 5))
  5801. else
  5802. j=$((j + 4))
  5803. fi
  5804. elif [[ "${my_out_full:${j}:8}" =~ ^\^\[\[[[:digit:]]\;[[:digit:]][[:digit:]]m ]]; then
  5805. if [[ ${j} -eq 0 ]]; then
  5806. j=$((j + 8))
  5807. else
  5808. j=$((j + 7))
  5809. fi
  5810. fi
  5811. else
  5812. ((NORMAL_CHAR_COUNT++))
  5813. if [[ ${NORMAL_CHAR_COUNT} -ge ${termWidth} ]]; then
  5814. echo -e "${my_out:0:$((j - 5))}"$c0
  5815. break 1
  5816. fi
  5817. fi
  5818. done
  5819. fi
  5820. if [[ "$i" -ge "$startline" ]]; then
  5821. unset 'out_array[0]'
  5822. out_array=( "${out_array[@]}" )
  5823. fi
  5824. done
  5825. elif [[ "$portraitSet" = "Yes" ]]; then
  5826. for i in "${!fulloutput[@]}"; do
  5827. printf "${fulloutput[$i]}$c0\n"
  5828. done
  5829. printf "\n"
  5830. for ((i=0; i<${#fulloutput[*]}; i++)); do
  5831. [[ -z "$out_array[0]" ]] && continue
  5832. printf "%s\n" "${out_array[0]}"
  5833. unset 'out_array[0]'
  5834. out_array=( "${out_array[@]}" )
  5835. done
  5836. elif [[ "$display_logo" == "Yes" ]]; then
  5837. for i in "${!fulloutput[@]}"; do
  5838. printf "${fulloutput[i]}$c0\n"
  5839. done
  5840. else
  5841. if [[ "$lineWrap" = "Yes" ]]; then
  5842. availablespace=$(($(tput cols) - logowidth + 16)) #I dont know why 16 but it works
  5843. new_out_array=("${out_array[0]}")
  5844. for ((i=1; i<${#out_array[@]}; i++)); do
  5845. lines=$(echo "${out_array[i]}" | fmt -w $availablespace)
  5846. IFS=$'\n' read -rd '' -a splitlines <<<"$lines"
  5847. new_out_array+=("${splitlines[0]}")
  5848. for ((j=1; j<${#splitlines[*]}; j++)); do
  5849. line=$(echo -e "$labelcolor $textcolor ${splitlines[j]}")
  5850. new_out_array=( "${new_out_array[@]}" "$line" );
  5851. done
  5852. done
  5853. out_array=("${new_out_array[@]}")
  5854. fi
  5855. missinglines=$((${#out_array[*]} + startline - ${#fulloutput[*]}))
  5856. for ((i=0; i<missinglines; i++)); do
  5857. fulloutput+=("${c1}$(printf '%*s' "$logowidth")%s")
  5858. done
  5859. #n=${#fulloutput[*]}
  5860. for ((i=0; i<${#fulloutput[*]}; i++)); do
  5861. # echo "${out_array[@]}"
  5862. case $(awk 'BEGIN{srand();print int(rand()*(1000-1))+1 }') in
  5863. 411|188|15|166|609)
  5864. f_size=${#fulloutput[*]}
  5865. o_size=${#out_array[*]}
  5866. f_max=$(( 32768 / f_size * f_size ))
  5867. #o_max=$(( 32768 / o_size * o_size ))
  5868. for ((a=f_size-1; a>0; a--)); do
  5869. while (( (rand=RANDOM) >= f_max )); do :; done
  5870. rand=$(( rand % (a+1) ))
  5871. tmp=${fulloutput[a]} fulloutput[a]=${fulloutput[rand]} fulloutput[rand]=$tmp
  5872. done
  5873. for ((b=o_size-1; b>0; b--)); do
  5874. rand=$(( rand % (b+1) ))
  5875. tmp=${out_array[b]} out_array[b]=${out_array[rand]} out_array[rand]=$tmp
  5876. done
  5877. ;;
  5878. esac
  5879. printf "${fulloutput[i]}$c0\n" "${out_array[0]}"
  5880. if [[ "$i" -ge "$startline" ]]; then
  5881. unset 'out_array[0]'
  5882. out_array=( "${out_array[@]}" )
  5883. fi
  5884. done
  5885. fi
  5886. # Done with ASCII output
  5887. }
  5888. infoDisplay () {
  5889. textcolor="\033[0m"
  5890. [[ "$my_hcolor" ]] && textcolor="${my_hcolor}"
  5891. #TODO: Centralize colors and use them across the board so we only change them one place.
  5892. myascii="${distro}"
  5893. [[ "${asc_distro}" ]] && myascii="${asc_distro}"
  5894. case ${myascii} in
  5895. "Alpine Linux"|"Arch Linux - Old"|"ArcoLinux"|"blackPanther OS"|"Fedora"|"Korora"|"Chapeau"|"Mandriva"|"Mandrake"| \
  5896. "Chakra"|"ChromeOS"|"Sabayon"|"Slackware"|"Mac OS X"|"macOS"|"Trisquel"|"Kali Linux"|"Jiyuu Linux"|"Antergos"| \
  5897. "KaOS"|"Logos"|"gNewSense"|"Netrunner"|"NixOS"|"SailfishOS"|"Qubes OS"|"Kogaion"|"PCLinuxOS"| \
  5898. "Obarun"|"Siduction"|"Solus"|"SwagArch"|"Parrot Security"|"Zorin OS"|"Uos")
  5899. labelcolor=$(getColor 'light blue')
  5900. ;;
  5901. "Arch Linux"|"Arch Linux 32"|"Artix Linux"|"Frugalware"|"Mageia"|"Deepin"|"CRUX"|"OS Elbrus"|"EndeavourOS")
  5902. labelcolor=$(getColor 'light cyan')
  5903. ;;
  5904. "Mint"|"LMDE"|"KDE neon"|"openSUSE"|"SUSE Linux Enterprise"|"LinuxDeepin"|"DragonflyBSD"|"Manjaro"| \
  5905. "Manjaro-tree"|"Android"|"Void Linux"|"DesaOS")
  5906. labelcolor=$(getColor 'light green')
  5907. ;;
  5908. "Ubuntu"|"FreeBSD"|"FreeBSD - Old"|"Debian"|"Raspbian"|"BSD"|"Red Hat Enterprise Linux"|"Oracle Linux"| \
  5909. "Peppermint"|"Cygwin"|"Msys"|"Fuduntu"|"Scientific Linux"|"DragonFlyBSD"|"BackTrack Linux"|"Red Star OS"| \
  5910. "SparkyLinux"|"OBRevenge"|"Source Mage GNU/Linux")
  5911. labelcolor=$(getColor 'light red')
  5912. ;;
  5913. "ROSA"|"januslinux")
  5914. labelcolor=$(getColor 'white')
  5915. ;;
  5916. "CrunchBang"|"Viperr"|"elementary"*)
  5917. labelcolor=$(getColor 'dark grey')
  5918. ;;
  5919. "Gentoo"|"Parabola GNU/Linux-libre"|"Funtoo"|"Funtoo-text"|"BLAG"|"SteamOS"|"Devuan")
  5920. labelcolor=$(getColor 'light purple')
  5921. ;;
  5922. "Haiku")
  5923. labelcolor=$(getColor 'green')
  5924. ;;
  5925. "NetBSD"|"Amazon Linux"|"Proxmox VE")
  5926. labelcolor=$(getColor 'orange')
  5927. ;;
  5928. "CentOS"|"CentOS Stream")
  5929. labelcolor=$(getColor 'yellow')
  5930. ;;
  5931. "Hyperbola GNU/Linux-libre"|"PureOS"|*)
  5932. labelcolor=$(getColor 'light grey')
  5933. ;;
  5934. esac
  5935. [[ "$my_lcolor" ]] && labelcolor="${my_lcolor}"
  5936. if [[ "$art" ]]; then
  5937. source "$art"
  5938. fi
  5939. if [[ "$no_color" == "1" ]]; then
  5940. labelcolor=""
  5941. bold=""
  5942. c0=""
  5943. textcolor=""
  5944. fi
  5945. # Some verbosity stuff
  5946. [[ "$screenshot" == "1" ]] && verboseOut "Screenshot will be taken after info is displayed."
  5947. [[ "$upload" == "1" ]] && verboseOut "Screenshot will be transferred/uploaded to specified location."
  5948. #########################
  5949. # Info Variable Setting #
  5950. #########################
  5951. if [[ "${distro}" == "Android" ]]; then
  5952. myhostname=$(echo -e "${labelcolor} ${hostname}"); out_array=( "${out_array[@]}" "$myhostname" )
  5953. mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $distro_ver"); out_array=( "${out_array[@]}" "$mydistro" )
  5954. mydevice=$(echo -e "$labelcolor Device:$textcolor $device"); out_array=( "${out_array[@]}" "$mydevice" )
  5955. myrom=$(echo -e "$labelcolor ROM:$textcolor $rom"); out_array=( "${out_array[@]}" "$myrom" )
  5956. mybaseband=$(echo -e "$labelcolor Baseband:$textcolor $baseband"); out_array=( "${out_array[@]}" "$mybaseband" )
  5957. mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel"); out_array=( "${out_array[@]}" "$mykernel" )
  5958. myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime"); out_array=( "${out_array[@]}" "$myuptime" )
  5959. mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mycpu" )
  5960. mygpu=$(echo -e "$labelcolor GPU:$textcolor $cpu"); out_array=( "${out_array[@]}" "$mygpu" )
  5961. mymem=$(echo -e "$labelcolor RAM:$textcolor $mem"); out_array=( "${out_array[@]}" "$mymem" )
  5962. else
  5963. if [[ "${display[@]}" =~ "host" ]]; then
  5964. myinfo=$(echo -e "${labelcolor} ${myUser}$textcolor${bold}@${c0}${labelcolor}${myHost}")
  5965. out_array=( "${out_array[@]}" "$myinfo" )
  5966. ((display_index++))
  5967. fi
  5968. if [[ "${display[@]}" =~ "distro" ]]; then
  5969. if [[ "$distro" == "Mac OS X" || "$distro" == "macOS" ]]; then
  5970. sysArch="$(getconf LONG_BIT)bit"
  5971. prodVers=$(sw_vers | grep 'ProductVersion')
  5972. prodVers=${prodVers:16}
  5973. buildVers=$(sw_vers |grep 'BuildVersion')
  5974. buildVers=${buildVers:14}
  5975. if [ -n "$distro_more" ]; then
  5976. mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more $sysArch")
  5977. else
  5978. mydistro=$(echo -e "$labelcolor OS:$textcolor $sysArch $distro $prodVers $buildVers")
  5979. fi
  5980. elif [[ "$distro" == "Cygwin" || "$distro" == "Msys" ]]; then
  5981. distro="$(wmic os get caption | sed 's/\r//g; s/[ \t]*$//g; 2!d')"
  5982. if [[ "$(wmic os get version | grep -o '^10\.')" == "10." ]]; then
  5983. distro="$distro (v$(wmic os get version | grep '^10\.' | tr -d ' '))"
  5984. fi
  5985. sysArch=$(wmic os get OSArchitecture | sed 's/\r//g; s/[ \t]*$//g; 2!d')
  5986. mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch")
  5987. else
  5988. if [ -n "$distro_more" ]; then
  5989. mydistro=$(echo -e "$labelcolor OS:$textcolor $distro_more")
  5990. else
  5991. mydistro=$(echo -e "$labelcolor OS:$textcolor $distro $sysArch")
  5992. fi
  5993. fi
  5994. out_array=( "${out_array[@]}" "$mydistro$wsl" )
  5995. ((display_index++))
  5996. fi
  5997. if [[ "${display[@]}" =~ "kernel" ]]; then
  5998. mykernel=$(echo -e "$labelcolor Kernel:$textcolor $kernel")
  5999. out_array=( "${out_array[@]}" "$mykernel" )
  6000. ((display_index++))
  6001. fi
  6002. if [[ "${display[@]}" =~ "uptime" ]]; then
  6003. myuptime=$(echo -e "$labelcolor Uptime:$textcolor $uptime")
  6004. out_array=( "${out_array[@]}" "$myuptime" )
  6005. ((display_index++))
  6006. fi
  6007. if [[ "${display[@]}" =~ "pkgs" ]]; then
  6008. mypkgs=$(echo -e "$labelcolor Packages:$textcolor $pkgs")
  6009. out_array=( "${out_array[@]}" "$mypkgs" )
  6010. ((display_index++))
  6011. fi
  6012. if [[ "${display[@]}" =~ "shell" ]]; then
  6013. myshell=$(echo -e "$labelcolor Shell:$textcolor $myShell")
  6014. out_array=( "${out_array[@]}" "$myshell" )
  6015. ((display_index++))
  6016. fi
  6017. if [[ -n "$DISPLAY" || "$distro" == "Mac OS X" || "$distro" == "macOS" ]]; then
  6018. if [ -n "${xResolution}" ]; then
  6019. if [[ "${display[@]}" =~ "res" ]]; then
  6020. myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution")
  6021. out_array=( "${out_array[@]}" "$myres" )
  6022. ((display_index++))
  6023. fi
  6024. fi
  6025. if [[ "${display[@]}" =~ "de" ]]; then
  6026. if [[ "${DE}" != "Not Present" ]]; then
  6027. myde=$(echo -e "$labelcolor DE:$textcolor $DE")
  6028. out_array=( "${out_array[@]}" "$myde" )
  6029. ((display_index++))
  6030. fi
  6031. fi
  6032. if [[ "${display[@]}" =~ "wm" ]]; then
  6033. mywm=$(echo -e "$labelcolor WM:$textcolor $WM")
  6034. out_array=( "${out_array[@]}" "$mywm" )
  6035. ((display_index++))
  6036. fi
  6037. if [[ "${display[@]}" =~ "wmtheme" ]]; then
  6038. if [[ "${Win_theme}" != "Not Applicable" && "${Win_theme}" != "Not Found" ]]; then
  6039. mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme")
  6040. out_array=( "${out_array[@]}" "$mywmtheme" )
  6041. ((display_index++))
  6042. fi
  6043. fi
  6044. if [[ "${display[@]}" =~ "gtk" ]]; then
  6045. if [[ "$distro" == "Mac OS X" || "$distro" == "macOS" ]]; then
  6046. if [[ "$gtkFont" != "Not Applicable" && "$gtkFont" != "Not Found" ]]; then
  6047. if [ -n "$gtkFont" ]; then
  6048. myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont")
  6049. out_array=( "${out_array[@]}" "$myfont" )
  6050. ((display_index++))
  6051. fi
  6052. fi
  6053. else
  6054. if [[ "$gtk2Theme" != "Not Applicable" && "$gtk2Theme" != "Not Found" ]]; then
  6055. if [ -n "$gtk2Theme" ]; then
  6056. mygtk2="${gtk2Theme} [GTK2]"
  6057. fi
  6058. fi
  6059. if [[ "$gtk3Theme" != "Not Applicable" && "$gtk3Theme" != "Not Found" ]]; then
  6060. if [ -n "$mygtk2" ]; then
  6061. mygtk3=", ${gtk3Theme} [GTK3]"
  6062. else
  6063. mygtk3="${gtk3Theme} [GTK3]"
  6064. fi
  6065. fi
  6066. if [[ "$gtk_2line" == "yes" ]]; then
  6067. mygtk2=$(echo -e "$labelcolor GTK2 Theme:$textcolor $gtk2Theme")
  6068. out_array=( "${out_array[@]}" "$mygtk2" )
  6069. ((display_index++))
  6070. mygtk3=$(echo -e "$labelcolor GTK3 Theme:$textcolor $gtk3Theme")
  6071. out_array=( "${out_array[@]}" "$mygtk3" )
  6072. ((display_index++))
  6073. else
  6074. if [[ "$gtk2Theme" == "$gtk3Theme" ]]; then
  6075. if [[ "$gtk2Theme" != "Not Applicable" && "$gtk2Theme" != "Not Found" ]]; then
  6076. mygtk=$(echo -e "$labelcolor GTK Theme:$textcolor ${gtk2Theme} [GTK2/3]")
  6077. out_array=( "${out_array[@]}" "$mygtk" )
  6078. ((display_index++))
  6079. fi
  6080. else
  6081. mygtk=$(echo -e "$labelcolor GTK Theme:$textcolor ${mygtk2}${mygtk3}")
  6082. out_array=( "${out_array[@]}" "$mygtk" )
  6083. ((display_index++))
  6084. fi
  6085. fi
  6086. if [[ "$gtkIcons" != "Not Applicable" && "$gtkIcons" != "Not Found" ]]; then
  6087. if [ -n "$gtkIcons" ]; then
  6088. myicons=$(echo -e "$labelcolor Icon Theme:$textcolor $gtkIcons")
  6089. out_array=( "${out_array[@]}" "$myicons" )
  6090. ((display_index++))
  6091. fi
  6092. fi
  6093. if [[ "$gtkFont" != "Not Applicable" && "$gtkFont" != "Not Found" ]]; then
  6094. if [ -n "$gtkFont" ]; then
  6095. myfont=$(echo -e "$labelcolor Font:$textcolor $gtkFont")
  6096. out_array=( "${out_array[@]}" "$myfont" )
  6097. ((display_index++))
  6098. fi
  6099. fi
  6100. fi
  6101. fi
  6102. elif [[ "$fake_distro" == "Cygwin" || "$fake_distro" == "Msys" || "$fake_distro" == "Windows - Modern" ]]; then
  6103. if [[ "${display[@]}" =~ "res" && -n "$xResolution" ]]; then
  6104. myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution")
  6105. out_array=( "${out_array[@]}" "$myres" )
  6106. ((display_index++))
  6107. fi
  6108. if [[ "${display[@]}" =~ "de" ]]; then
  6109. if [[ "${DE}" != "Not Present" ]]; then
  6110. myde=$(echo -e "$labelcolor DE:$textcolor $DE")
  6111. out_array=( "${out_array[@]}" "$myde" )
  6112. ((display_index++))
  6113. fi
  6114. fi
  6115. if [[ "${display[@]}" =~ "wm" ]]; then
  6116. mywm=$(echo -e "$labelcolor WM:$textcolor $WM")
  6117. out_array=( "${out_array[@]}" "$mywm" )
  6118. ((display_index++))
  6119. fi
  6120. if [[ "${display[@]}" =~ "wmtheme" ]]; then
  6121. if [[ "${Win_theme}" != "Not Applicable" && "${Win_theme}" != "Not Found" ]]; then
  6122. mywmtheme=$(echo -e "$labelcolor WM Theme:$textcolor $Win_theme")
  6123. out_array=( "${out_array[@]}" "$mywmtheme" )
  6124. ((display_index++))
  6125. fi
  6126. fi
  6127. elif [[ "$distro" == "Haiku" && -n "${xResolution}" && "${display[@]}" =~ "res" ]]; then
  6128. myres=$(echo -e "$labelcolor Resolution:${textcolor} $xResolution")
  6129. out_array=( "${out_array[@]}" "$myres" )
  6130. ((display_index++))
  6131. fi
  6132. if [[ "${fake_distro}" != "Cygwin" && "${fake_distro}" != "Msys" && "${fake_distro}" != "Windows - Modern" && "${display[@]}" =~ "disk" ]]; then
  6133. mydisk=$(echo -e "$labelcolor Disk:$textcolor $diskusage")
  6134. out_array=( "${out_array[@]}" "$mydisk" )
  6135. ((display_index++))
  6136. fi
  6137. if [[ "${display[@]}" =~ "cpu" ]]; then
  6138. mycpu=$(echo -e "$labelcolor CPU:$textcolor $cpu")
  6139. out_array=( "${out_array[@]}" "$mycpu" )
  6140. ((display_index++))
  6141. fi
  6142. if [[ "${display[@]}" =~ "gpu" ]] && [[ "$gpu" != "Not Found" ]]; then
  6143. mygpu=$(echo -e "$labelcolor GPU:$textcolor $gpu")
  6144. out_array=( "${out_array[@]}" "$mygpu" )
  6145. ((display_index++))
  6146. fi
  6147. if [[ "${display[@]}" =~ "mem" ]]; then
  6148. mymem=$(echo -e "$labelcolor RAM:$textcolor $mem")
  6149. out_array=( "${out_array[@]}" "$mymem" )
  6150. ((display_index++))
  6151. fi
  6152. if [[ -n "$custom_lines_string" ]]; then
  6153. customlines
  6154. fi
  6155. fi
  6156. if [[ "$display_type" == "ASCII" ]]; then
  6157. asciiText
  6158. else
  6159. if [[ "${display[@]}" =~ "host" ]]; then echo -e "$myinfo"; fi
  6160. if [[ "${display[@]}" =~ "distro" ]]; then echo -e "$mydistro"; fi
  6161. if [[ "${display[@]}" =~ "kernel" ]]; then echo -e "$mykernel"; fi
  6162. if [[ "${distro}" == "Android" ]]; then
  6163. echo -e "$mydevice"
  6164. echo -e "$myrom"
  6165. echo -e "$mybaseband"
  6166. echo -e "$mykernel"
  6167. echo -e "$myuptime"
  6168. echo -e "$mycpu"
  6169. echo -e "$mymem"
  6170. else
  6171. if [[ "${display[@]}" =~ "uptime" ]]; then echo -e "$myuptime"; fi
  6172. if [[ "${display[@]}" =~ "pkgs" && "$mypkgs" != "Unknown" ]]; then echo -e "$mypkgs"; fi
  6173. if [[ "${display[@]}" =~ "shell" ]]; then echo -e "$myshell"; fi
  6174. if [[ "${display[@]}" =~ "res" ]]; then
  6175. test -z "$myres" || echo -e "$myres"
  6176. fi
  6177. if [[ "${display[@]}" =~ "de" ]]; then
  6178. if [[ "${DE}" != "Not Present" ]]; then echo -e "$myde"; fi
  6179. fi
  6180. if [[ "${display[@]}" =~ "wm" ]]; then
  6181. test -z "$mywm" || echo -e "$mywm"
  6182. if [[ "${Win_theme}" != "Not Applicable" && "${Win_theme}" != "Not Found" ]]; then
  6183. test -z "$mywmtheme" || echo -e "$mywmtheme"
  6184. fi
  6185. fi
  6186. if [[ "${display[@]}" =~ "gtk" ]]; then
  6187. if [[ "$gtk_2line" == "yes" ]]; then
  6188. test -z "$mygtk2" || echo -e "$mygtk2"
  6189. test -z "$mygtk3" || echo -e "$mygtk3"
  6190. else
  6191. test -z "$mygtk" || echo -e "$mygtk"
  6192. fi
  6193. test -z "$myicons" || echo -e "$myicons"
  6194. test -z "$myfont" || echo -e "$myfont"
  6195. fi
  6196. if [[ "${display[@]}" =~ "disk" ]]; then echo -e "$mydisk"; fi
  6197. if [[ "${display[@]}" =~ "cpu" ]]; then echo -e "$mycpu"; fi
  6198. if [[ "${display[@]}" =~ "gpu" ]]; then echo -e "$mygpu"; fi
  6199. if [[ "${display[@]}" =~ "mem" ]]; then echo -e "$mymem"; fi
  6200. fi
  6201. fi
  6202. }
  6203. ##################
  6204. # Let's Do This!
  6205. ##################
  6206. if [[ -f "$HOME/.screenfetchOR" ]]; then
  6207. source "$HOME/.screenfetchOR"
  6208. fi
  6209. if [[ "$overrideDisplay" ]]; then
  6210. verboseOut "Found 'd' flag in syntax. Overriding display..."
  6211. OLDIFS=$IFS
  6212. IFS=';'
  6213. for i in ${overrideDisplay}; do
  6214. modchar="${i:0:1}"
  6215. if [[ "${modchar}" == "-" ]]; then
  6216. i=${i/${modchar}}
  6217. _OLDIFS=IFS
  6218. IFS=,
  6219. for n in $i; do
  6220. if [[ ! "${display[@]}" =~ "$n" ]]; then
  6221. echo "The var $n is not currently being displayed."
  6222. else
  6223. for e in "${!display[@]}"; do
  6224. if [[ ${display[e]} = "$n" ]]; then
  6225. unset 'display[e]'
  6226. fi
  6227. done
  6228. fi
  6229. done
  6230. IFS=$_OLDIFS
  6231. elif [[ "${modchar}" == "+" ]]; then
  6232. i=${i/${modchar}}
  6233. _OLDIFS=IFS
  6234. IFS=,
  6235. for n in $i; do
  6236. if [[ "${valid_display[@]}" =~ "$n" ]]; then
  6237. if [[ "${display[@]}" =~ "$n" ]]; then
  6238. echo "The $n var is already being displayed."
  6239. else
  6240. display+=("$n")
  6241. fi
  6242. else
  6243. echo "The var $n is not a valid display var."
  6244. fi
  6245. done
  6246. IFS=$_OLDIFS
  6247. else
  6248. IFS=$OLDIFS
  6249. i="${i//,/ }"
  6250. display=( "$i" )
  6251. fi
  6252. done
  6253. IFS=$OLDIFS
  6254. fi
  6255. for i in "${display[@]}"; do
  6256. if [[ -n "$i" ]]; then
  6257. if [[ $i =~ wm ]]; then
  6258. test -z "$WM" && detectwm
  6259. test -z "$Win_theme" && detectwmtheme
  6260. else
  6261. if [[ "${display[*]}" =~ "$i" ]]; then
  6262. if [[ "$errorSuppress" == "1" ]]; then
  6263. detect"${i}" 2>/dev/null
  6264. else
  6265. detect"${i}"
  6266. fi
  6267. fi
  6268. fi
  6269. fi
  6270. done
  6271. # Check for android
  6272. if [[ -f /system/build.prop && "${distro}" != "SailfishOS" ]]; then
  6273. distro="Android"
  6274. detectmem
  6275. detectuptime
  6276. detectkernel
  6277. detectdroid
  6278. infoDisplay
  6279. exit 0
  6280. fi
  6281. if [ "$gpu" = 'Not Found' ] ; then
  6282. DetectIntelGPU
  6283. fi
  6284. infoDisplay
  6285. [ "$screenshot" == "1" ] && takeShot
  6286. exit 0