neofetch 334 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572
  1. #!/usr/bin/env bash
  2. # vim: noai:ts=4:sw=4:expandtab
  3. # shellcheck source=/dev/null
  4. # shellcheck disable=2009
  5. #
  6. # Neofetch: A command-line system information tool written in bash 3.2+.
  7. # https://github.com/dylanaraps/neofetch
  8. #
  9. # The MIT License (MIT)
  10. #
  11. # Copyright (c) 2015-2020 Dylan Araps
  12. #
  13. # Permission is hereby granted, free of charge, to any person obtaining a copy
  14. # of this software and associated documentation files (the "Software"), to deal
  15. # in the Software without restriction, including without limitation the rights
  16. # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  17. # copies of the Software, and to permit persons to whom the Software is
  18. # furnished to do so, subject to the following conditions:
  19. #
  20. # The above copyright notice and this permission notice shall be included in all
  21. # copies or substantial portions of the Software.
  22. #
  23. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  24. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  25. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  26. # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  27. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  28. # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  29. # SOFTWARE.
  30. version=7.1.0
  31. # Fallback to a value of '5' for shells which support bash
  32. # but do not set the 'BASH_' shell variables (osh).
  33. bash_version=${BASH_VERSINFO[0]:-5}
  34. shopt -s eval_unsafe_arith &>/dev/null
  35. sys_locale=${LANG:-C}
  36. XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-${HOME}/.config}
  37. PATH=$PATH:/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec
  38. reset='\e[0m'
  39. shopt -s nocasematch
  40. # Speed up script by not using unicode.
  41. LC_ALL=C
  42. LANG=C
  43. # Fix issues with gsettings.
  44. export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/
  45. # Neofetch default config.
  46. read -rd '' config <<'EOF'
  47. # See this wiki page for more info:
  48. # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
  49. print_info() {
  50. info title
  51. info underline
  52. info "OS" distro
  53. info "Host" model
  54. info "Kernel" kernel
  55. info "Uptime" uptime
  56. info "Packages" packages
  57. info "Shell" shell
  58. info "Resolution" resolution
  59. info "DE" de
  60. info "WM" wm
  61. info "WM Theme" wm_theme
  62. info "Theme" theme
  63. info "Icons" icons
  64. info "Terminal" term
  65. info "Terminal Font" term_font
  66. info "CPU" cpu
  67. info "GPU" gpu
  68. info "Memory" memory
  69. # info "GPU Driver" gpu_driver # Linux/macOS only
  70. # info "CPU Usage" cpu_usage
  71. # info "Disk" disk
  72. # info "Battery" battery
  73. # info "Font" font
  74. # info "Song" song
  75. # [[ "$player" ]] && prin "Music Player" "$player"
  76. # info "Local IP" local_ip
  77. # info "Public IP" public_ip
  78. # info "Users" users
  79. # info "Locale" locale # This only works on glibc systems.
  80. info cols
  81. }
  82. # Title
  83. # Hide/Show Fully qualified domain name.
  84. #
  85. # Default: 'off'
  86. # Values: 'on', 'off'
  87. # Flag: --title_fqdn
  88. title_fqdn="off"
  89. # Kernel
  90. # Shorten the output of the kernel function.
  91. #
  92. # Default: 'on'
  93. # Values: 'on', 'off'
  94. # Flag: --kernel_shorthand
  95. # Supports: Everything except *BSDs (except PacBSD and PC-BSD)
  96. #
  97. # Example:
  98. # on: '4.8.9-1-ARCH'
  99. # off: 'Linux 4.8.9-1-ARCH'
  100. kernel_shorthand="on"
  101. # Distro
  102. # Shorten the output of the distro function
  103. #
  104. # Default: 'off'
  105. # Values: 'on', 'tiny', 'off'
  106. # Flag: --distro_shorthand
  107. # Supports: Everything except Windows and Haiku
  108. distro_shorthand="off"
  109. # Show/Hide OS Architecture.
  110. # Show 'x86_64', 'x86' and etc in 'Distro:' output.
  111. #
  112. # Default: 'on'
  113. # Values: 'on', 'off'
  114. # Flag: --os_arch
  115. #
  116. # Example:
  117. # on: 'Arch Linux x86_64'
  118. # off: 'Arch Linux'
  119. os_arch="on"
  120. # Uptime
  121. # Shorten the output of the uptime function
  122. #
  123. # Default: 'on'
  124. # Values: 'on', 'tiny', 'off'
  125. # Flag: --uptime_shorthand
  126. #
  127. # Example:
  128. # on: '2 days, 10 hours, 3 mins'
  129. # tiny: '2d 10h 3m'
  130. # off: '2 days, 10 hours, 3 minutes'
  131. uptime_shorthand="on"
  132. # Memory
  133. # Show memory pecentage in output.
  134. #
  135. # Default: 'off'
  136. # Values: 'on', 'off'
  137. # Flag: --memory_percent
  138. #
  139. # Example:
  140. # on: '1801MiB / 7881MiB (22%)'
  141. # off: '1801MiB / 7881MiB'
  142. memory_percent="off"
  143. # Change memory output unit.
  144. #
  145. # Default: 'mib'
  146. # Values: 'kib', 'mib', 'gib'
  147. # Flag: --memory_unit
  148. #
  149. # Example:
  150. # kib '1020928KiB / 7117824KiB'
  151. # mib '1042MiB / 6951MiB'
  152. # gib: ' 0.98GiB / 6.79GiB'
  153. memory_unit="mib"
  154. # Packages
  155. # Show/Hide Package Manager names.
  156. #
  157. # Default: 'tiny'
  158. # Values: 'on', 'tiny' 'off'
  159. # Flag: --package_managers
  160. #
  161. # Example:
  162. # on: '998 (pacman), 8 (flatpak), 4 (snap)'
  163. # tiny: '908 (pacman, flatpak, snap)'
  164. # off: '908'
  165. package_managers="on"
  166. # Shell
  167. # Show the path to $SHELL
  168. #
  169. # Default: 'off'
  170. # Values: 'on', 'off'
  171. # Flag: --shell_path
  172. #
  173. # Example:
  174. # on: '/bin/bash'
  175. # off: 'bash'
  176. shell_path="off"
  177. # Show $SHELL version
  178. #
  179. # Default: 'on'
  180. # Values: 'on', 'off'
  181. # Flag: --shell_version
  182. #
  183. # Example:
  184. # on: 'bash 4.4.5'
  185. # off: 'bash'
  186. shell_version="on"
  187. # CPU
  188. # CPU speed type
  189. #
  190. # Default: 'bios_limit'
  191. # Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
  192. # Flag: --speed_type
  193. # Supports: Linux with 'cpufreq'
  194. # NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
  195. speed_type="bios_limit"
  196. # CPU speed shorthand
  197. #
  198. # Default: 'off'
  199. # Values: 'on', 'off'.
  200. # Flag: --speed_shorthand
  201. # NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
  202. #
  203. # Example:
  204. # on: 'i7-6500U (4) @ 3.1GHz'
  205. # off: 'i7-6500U (4) @ 3.100GHz'
  206. speed_shorthand="off"
  207. # Enable/Disable CPU brand in output.
  208. #
  209. # Default: 'on'
  210. # Values: 'on', 'off'
  211. # Flag: --cpu_brand
  212. #
  213. # Example:
  214. # on: 'Intel i7-6500U'
  215. # off: 'i7-6500U (4)'
  216. cpu_brand="on"
  217. # CPU Speed
  218. # Hide/Show CPU speed.
  219. #
  220. # Default: 'on'
  221. # Values: 'on', 'off'
  222. # Flag: --cpu_speed
  223. #
  224. # Example:
  225. # on: 'Intel i7-6500U (4) @ 3.1GHz'
  226. # off: 'Intel i7-6500U (4)'
  227. cpu_speed="on"
  228. # CPU Cores
  229. # Display CPU cores in output
  230. #
  231. # Default: 'logical'
  232. # Values: 'logical', 'physical', 'off'
  233. # Flag: --cpu_cores
  234. # Support: 'physical' doesn't work on BSD.
  235. #
  236. # Example:
  237. # logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
  238. # physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
  239. # off: 'Intel i7-6500U @ 3.1GHz'
  240. cpu_cores="logical"
  241. # CPU Temperature
  242. # Hide/Show CPU temperature.
  243. # Note the temperature is added to the regular CPU function.
  244. #
  245. # Default: 'off'
  246. # Values: 'C', 'F', 'off'
  247. # Flag: --cpu_temp
  248. # Supports: Linux, BSD
  249. # NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
  250. # coretemp kernel module. This only supports newer Intel processors.
  251. #
  252. # Example:
  253. # C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
  254. # F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
  255. # off: 'Intel i7-6500U (4) @ 3.1GHz'
  256. cpu_temp="off"
  257. # GPU
  258. # Enable/Disable GPU Brand
  259. #
  260. # Default: 'on'
  261. # Values: 'on', 'off'
  262. # Flag: --gpu_brand
  263. #
  264. # Example:
  265. # on: 'AMD HD 7950'
  266. # off: 'HD 7950'
  267. gpu_brand="on"
  268. # Which GPU to display
  269. #
  270. # Default: 'all'
  271. # Values: 'all', 'dedicated', 'integrated'
  272. # Flag: --gpu_type
  273. # Supports: Linux
  274. #
  275. # Example:
  276. # all:
  277. # GPU1: AMD HD 7950
  278. # GPU2: Intel Integrated Graphics
  279. #
  280. # dedicated:
  281. # GPU1: AMD HD 7950
  282. #
  283. # integrated:
  284. # GPU1: Intel Integrated Graphics
  285. gpu_type="all"
  286. # Resolution
  287. # Display refresh rate next to each monitor
  288. # Default: 'off'
  289. # Values: 'on', 'off'
  290. # Flag: --refresh_rate
  291. # Supports: Doesn't work on Windows.
  292. #
  293. # Example:
  294. # on: '1920x1080 @ 60Hz'
  295. # off: '1920x1080'
  296. refresh_rate="off"
  297. # Gtk Theme / Icons / Font
  298. # Shorten output of GTK Theme / Icons / Font
  299. #
  300. # Default: 'off'
  301. # Values: 'on', 'off'
  302. # Flag: --gtk_shorthand
  303. #
  304. # Example:
  305. # on: 'Numix, Adwaita'
  306. # off: 'Numix [GTK2], Adwaita [GTK3]'
  307. gtk_shorthand="off"
  308. # Enable/Disable gtk2 Theme / Icons / Font
  309. #
  310. # Default: 'on'
  311. # Values: 'on', 'off'
  312. # Flag: --gtk2
  313. #
  314. # Example:
  315. # on: 'Numix [GTK2], Adwaita [GTK3]'
  316. # off: 'Adwaita [GTK3]'
  317. gtk2="on"
  318. # Enable/Disable gtk3 Theme / Icons / Font
  319. #
  320. # Default: 'on'
  321. # Values: 'on', 'off'
  322. # Flag: --gtk3
  323. #
  324. # Example:
  325. # on: 'Numix [GTK2], Adwaita [GTK3]'
  326. # off: 'Numix [GTK2]'
  327. gtk3="on"
  328. # IP Address
  329. # Website to ping for the public IP
  330. #
  331. # Default: 'http://ident.me'
  332. # Values: 'url'
  333. # Flag: --ip_host
  334. public_ip_host="http://ident.me"
  335. # Public IP timeout.
  336. #
  337. # Default: '2'
  338. # Values: 'int'
  339. # Flag: --ip_timeout
  340. public_ip_timeout=2
  341. # Desktop Environment
  342. # Show Desktop Environment version
  343. #
  344. # Default: 'on'
  345. # Values: 'on', 'off'
  346. # Flag: --de_version
  347. de_version="on"
  348. # Disk
  349. # Which disks to display.
  350. # The values can be any /dev/sdXX, mount point or directory.
  351. # NOTE: By default we only show the disk info for '/'.
  352. #
  353. # Default: '/'
  354. # Values: '/', '/dev/sdXX', '/path/to/drive'.
  355. # Flag: --disk_show
  356. #
  357. # Example:
  358. # disk_show=('/' '/dev/sdb1'):
  359. # 'Disk (/): 74G / 118G (66%)'
  360. # 'Disk (/mnt/Videos): 823G / 893G (93%)'
  361. #
  362. # disk_show=('/'):
  363. # 'Disk (/): 74G / 118G (66%)'
  364. #
  365. disk_show=('/')
  366. # Disk subtitle.
  367. # What to append to the Disk subtitle.
  368. #
  369. # Default: 'mount'
  370. # Values: 'mount', 'name', 'dir', 'none'
  371. # Flag: --disk_subtitle
  372. #
  373. # Example:
  374. # name: 'Disk (/dev/sda1): 74G / 118G (66%)'
  375. # 'Disk (/dev/sdb2): 74G / 118G (66%)'
  376. #
  377. # mount: 'Disk (/): 74G / 118G (66%)'
  378. # 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
  379. # 'Disk (/mnt/Videos): 74G / 118G (66%)'
  380. #
  381. # dir: 'Disk (/): 74G / 118G (66%)'
  382. # 'Disk (Local Disk): 74G / 118G (66%)'
  383. # 'Disk (Videos): 74G / 118G (66%)'
  384. #
  385. # none: 'Disk: 74G / 118G (66%)'
  386. # 'Disk: 74G / 118G (66%)'
  387. # 'Disk: 74G / 118G (66%)'
  388. disk_subtitle="mount"
  389. # Disk percent.
  390. # Show/Hide disk percent.
  391. #
  392. # Default: 'on'
  393. # Values: 'on', 'off'
  394. # Flag: --disk_percent
  395. #
  396. # Example:
  397. # on: 'Disk (/): 74G / 118G (66%)'
  398. # off: 'Disk (/): 74G / 118G'
  399. disk_percent="on"
  400. # Song
  401. # Manually specify a music player.
  402. #
  403. # Default: 'auto'
  404. # Values: 'auto', 'player-name'
  405. # Flag: --music_player
  406. #
  407. # Available values for 'player-name':
  408. #
  409. # amarok
  410. # audacious
  411. # banshee
  412. # bluemindo
  413. # clementine
  414. # cmus
  415. # deadbeef
  416. # deepin-music
  417. # dragon
  418. # elisa
  419. # exaile
  420. # gnome-music
  421. # gmusicbrowser
  422. # gogglesmm
  423. # guayadeque
  424. # io.elementary.music
  425. # iTunes
  426. # juk
  427. # lollypop
  428. # mocp
  429. # mopidy
  430. # mpd
  431. # muine
  432. # netease-cloud-music
  433. # olivia
  434. # playerctl
  435. # pogo
  436. # pragha
  437. # qmmp
  438. # quodlibet
  439. # rhythmbox
  440. # sayonara
  441. # smplayer
  442. # spotify
  443. # strawberry
  444. # tauonmb
  445. # tomahawk
  446. # vlc
  447. # xmms2d
  448. # xnoise
  449. # yarock
  450. music_player="auto"
  451. # Format to display song information.
  452. #
  453. # Default: '%artist% - %album% - %title%'
  454. # Values: '%artist%', '%album%', '%title%'
  455. # Flag: --song_format
  456. #
  457. # Example:
  458. # default: 'Song: Jet - Get Born - Sgt Major'
  459. song_format="%artist% - %album% - %title%"
  460. # Print the Artist, Album and Title on separate lines
  461. #
  462. # Default: 'off'
  463. # Values: 'on', 'off'
  464. # Flag: --song_shorthand
  465. #
  466. # Example:
  467. # on: 'Artist: The Fratellis'
  468. # 'Album: Costello Music'
  469. # 'Song: Chelsea Dagger'
  470. #
  471. # off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
  472. song_shorthand="off"
  473. # 'mpc' arguments (specify a host, password etc).
  474. #
  475. # Default: ''
  476. # Example: mpc_args=(-h HOST -P PASSWORD)
  477. mpc_args=()
  478. # Text Colors
  479. # Text Colors
  480. #
  481. # Default: 'distro'
  482. # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
  483. # Flag: --colors
  484. #
  485. # Each number represents a different part of the text in
  486. # this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
  487. #
  488. # Example:
  489. # colors=(distro) - Text is colored based on Distro colors.
  490. # colors=(4 6 1 8 8 6) - Text is colored in the order above.
  491. colors=(distro)
  492. # Text Options
  493. # Toggle bold text
  494. #
  495. # Default: 'on'
  496. # Values: 'on', 'off'
  497. # Flag: --bold
  498. bold="on"
  499. # Enable/Disable Underline
  500. #
  501. # Default: 'on'
  502. # Values: 'on', 'off'
  503. # Flag: --underline
  504. underline_enabled="on"
  505. # Underline character
  506. #
  507. # Default: '-'
  508. # Values: 'string'
  509. # Flag: --underline_char
  510. underline_char="-"
  511. # Info Separator
  512. # Replace the default separator with the specified string.
  513. #
  514. # Default: ':'
  515. # Flag: --separator
  516. #
  517. # Example:
  518. # separator="->": 'Shell-> bash'
  519. # separator=" =": 'WM = dwm'
  520. separator=":"
  521. # Color Blocks
  522. # Color block range
  523. # The range of colors to print.
  524. #
  525. # Default: '0', '15'
  526. # Values: 'num'
  527. # Flag: --block_range
  528. #
  529. # Example:
  530. #
  531. # Display colors 0-7 in the blocks. (8 colors)
  532. # neofetch --block_range 0 7
  533. #
  534. # Display colors 0-15 in the blocks. (16 colors)
  535. # neofetch --block_range 0 15
  536. block_range=(0 15)
  537. # Toggle color blocks
  538. #
  539. # Default: 'on'
  540. # Values: 'on', 'off'
  541. # Flag: --color_blocks
  542. color_blocks="on"
  543. # Color block width in spaces
  544. #
  545. # Default: '3'
  546. # Values: 'num'
  547. # Flag: --block_width
  548. block_width=3
  549. # Color block height in lines
  550. #
  551. # Default: '1'
  552. # Values: 'num'
  553. # Flag: --block_height
  554. block_height=1
  555. # Color Alignment
  556. #
  557. # Default: 'auto'
  558. # Values: 'auto', 'num'
  559. # Flag: --col_offset
  560. #
  561. # Number specifies how far from the left side of the terminal (in spaces) to
  562. # begin printing the columns, in case you want to e.g. center them under your
  563. # text.
  564. # Example:
  565. # col_offset="auto" - Default behavior of neofetch
  566. # col_offset=7 - Leave 7 spaces then print the colors
  567. col_offset="auto"
  568. # Progress Bars
  569. # Bar characters
  570. #
  571. # Default: '-', '='
  572. # Values: 'string', 'string'
  573. # Flag: --bar_char
  574. #
  575. # Example:
  576. # neofetch --bar_char 'elapsed' 'total'
  577. # neofetch --bar_char '-' '='
  578. bar_char_elapsed="-"
  579. bar_char_total="="
  580. # Toggle Bar border
  581. #
  582. # Default: 'on'
  583. # Values: 'on', 'off'
  584. # Flag: --bar_border
  585. bar_border="on"
  586. # Progress bar length in spaces
  587. # Number of chars long to make the progress bars.
  588. #
  589. # Default: '15'
  590. # Values: 'num'
  591. # Flag: --bar_length
  592. bar_length=15
  593. # Progress bar colors
  594. # When set to distro, uses your distro's logo colors.
  595. #
  596. # Default: 'distro', 'distro'
  597. # Values: 'distro', 'num'
  598. # Flag: --bar_colors
  599. #
  600. # Example:
  601. # neofetch --bar_colors 3 4
  602. # neofetch --bar_colors distro 5
  603. bar_color_elapsed="distro"
  604. bar_color_total="distro"
  605. # Info display
  606. # Display a bar with the info.
  607. #
  608. # Default: 'off'
  609. # Values: 'bar', 'infobar', 'barinfo', 'off'
  610. # Flags: --cpu_display
  611. # --memory_display
  612. # --battery_display
  613. # --disk_display
  614. #
  615. # Example:
  616. # bar: '[---=======]'
  617. # infobar: 'info [---=======]'
  618. # barinfo: '[---=======] info'
  619. # off: 'info'
  620. cpu_display="off"
  621. memory_display="off"
  622. battery_display="off"
  623. disk_display="off"
  624. # Backend Settings
  625. # Image backend.
  626. #
  627. # Default: 'ascii'
  628. # Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
  629. # 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
  630. # Flag: --backend
  631. image_backend="ascii"
  632. # Image Source
  633. #
  634. # Which image or ascii file to display.
  635. #
  636. # Default: 'auto'
  637. # Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
  638. # 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
  639. # Flag: --source
  640. #
  641. # NOTE: 'auto' will pick the best image source for whatever image backend is used.
  642. # In ascii mode, distro ascii art will be used and in an image mode, your
  643. # wallpaper will be used.
  644. image_source="auto"
  645. # Ascii Options
  646. # Ascii distro
  647. # Which distro's ascii art to display.
  648. #
  649. # Default: 'auto'
  650. # Values: 'auto', 'distro_name'
  651. # Flag: --ascii_distro
  652. # NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
  653. # "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
  654. # ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
  655. # Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
  656. # BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
  657. # Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
  658. # Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
  659. # DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
  660. # EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
  661. # FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
  662. # gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
  663. # Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
  664. # Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
  665. # LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
  666. # Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
  667. # Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
  668. # NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
  669. # OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
  670. # Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
  671. # popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
  672. # Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
  673. # Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
  674. # Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
  675. # SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
  676. # openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
  677. # Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
  678. # Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
  679. # and IRIX have ascii logos
  680. # NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
  681. # Use '{distro name}_old' to use the old logos.
  682. # NOTE: Ubuntu has flavor variants.
  683. # Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
  684. # Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
  685. # NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
  686. # CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
  687. # Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
  688. # Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
  689. # Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
  690. # postmarketOS, and Void have a smaller logo variant.
  691. # Use '{distro name}_small' to use the small variants.
  692. ascii_distro="auto"
  693. # Ascii Colors
  694. #
  695. # Default: 'distro'
  696. # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
  697. # Flag: --ascii_colors
  698. #
  699. # Example:
  700. # ascii_colors=(distro) - Ascii is colored based on Distro colors.
  701. # ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
  702. ascii_colors=(distro)
  703. # Bold ascii logo
  704. # Whether or not to bold the ascii logo.
  705. #
  706. # Default: 'on'
  707. # Values: 'on', 'off'
  708. # Flag: --ascii_bold
  709. ascii_bold="on"
  710. # Image Options
  711. # Image loop
  712. # Setting this to on will make neofetch redraw the image constantly until
  713. # Ctrl+C is pressed. This fixes display issues in some terminal emulators.
  714. #
  715. # Default: 'off'
  716. # Values: 'on', 'off'
  717. # Flag: --loop
  718. image_loop="off"
  719. # Thumbnail directory
  720. #
  721. # Default: '~/.cache/thumbnails/neofetch'
  722. # Values: 'dir'
  723. thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
  724. # Crop mode
  725. #
  726. # Default: 'normal'
  727. # Values: 'normal', 'fit', 'fill'
  728. # Flag: --crop_mode
  729. #
  730. # See this wiki page to learn about the fit and fill options.
  731. # https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
  732. crop_mode="normal"
  733. # Crop offset
  734. # Note: Only affects 'normal' crop mode.
  735. #
  736. # Default: 'center'
  737. # Values: 'northwest', 'north', 'northeast', 'west', 'center'
  738. # 'east', 'southwest', 'south', 'southeast'
  739. # Flag: --crop_offset
  740. crop_offset="center"
  741. # Image size
  742. # The image is half the terminal width by default.
  743. #
  744. # Default: 'auto'
  745. # Values: 'auto', '00px', '00%', 'none'
  746. # Flags: --image_size
  747. # --size
  748. image_size="auto"
  749. # Gap between image and text
  750. #
  751. # Default: '3'
  752. # Values: 'num', '-num'
  753. # Flag: --gap
  754. gap=3
  755. # Image offsets
  756. # Only works with the w3m backend.
  757. #
  758. # Default: '0'
  759. # Values: 'px'
  760. # Flags: --xoffset
  761. # --yoffset
  762. yoffset=0
  763. xoffset=0
  764. # Image background color
  765. # Only works with the w3m backend.
  766. #
  767. # Default: ''
  768. # Values: 'color', 'blue'
  769. # Flag: --bg_color
  770. background_color=
  771. # Misc Options
  772. # Stdout mode
  773. # Turn off all colors and disables image backend (ASCII/Image).
  774. # Useful for piping into another command.
  775. # Default: 'off'
  776. # Values: 'on', 'off'
  777. stdout="off"
  778. EOF
  779. # DETECT INFORMATION
  780. get_os() {
  781. # $kernel_name is set in a function called cache_uname and is
  782. # just the output of "uname -s".
  783. case $kernel_name in
  784. Darwin) os=$darwin_name ;;
  785. SunOS) os=Solaris ;;
  786. Haiku) os=Haiku ;;
  787. MINIX) os=MINIX ;;
  788. AIX) os=AIX ;;
  789. IRIX*) os=IRIX ;;
  790. FreeMiNT) os=FreeMiNT ;;
  791. Linux|GNU*)
  792. os=Linux
  793. ;;
  794. *BSD|DragonFly|Bitrig)
  795. os=BSD
  796. ;;
  797. CYGWIN*|MSYS*|MINGW*)
  798. os=Windows
  799. ;;
  800. *)
  801. printf '%s\n' "Unknown OS detected: '$kernel_name', aborting..." >&2
  802. printf '%s\n' "Open an issue on GitHub to add support for your OS." >&2
  803. exit 1
  804. ;;
  805. esac
  806. }
  807. get_distro() {
  808. [[ $distro ]] && return
  809. case $os in
  810. Linux|BSD|MINIX)
  811. if [[ -f /bedrock/etc/bedrock-release && $PATH == */bedrock/cross/* ]]; then
  812. case $distro_shorthand in
  813. on|tiny) distro="Bedrock Linux" ;;
  814. *) distro=$(< /bedrock/etc/bedrock-release)
  815. esac
  816. elif [[ -f /etc/redstar-release ]]; then
  817. case $distro_shorthand in
  818. on|tiny) distro="Red Star OS" ;;
  819. *) distro="Red Star OS $(awk -F'[^0-9*]' '$0=$2' /etc/redstar-release)"
  820. esac
  821. elif [[ -f /etc/siduction-version ]]; then
  822. case $distro_shorthand in
  823. on|tiny) distro=Siduction ;;
  824. *) distro="Siduction ($(lsb_release -sic))"
  825. esac
  826. elif [[ -f /etc/mcst_version ]]; then
  827. case $distro_shorthand in
  828. on|tiny) distro="OS Elbrus" ;;
  829. *) distro="OS Elbrus $(< /etc/mcst_version)"
  830. esac
  831. elif type -p pveversion >/dev/null; then
  832. case $distro_shorthand in
  833. on|tiny) distro="Proxmox VE" ;;
  834. *)
  835. distro=$(pveversion)
  836. distro=${distro#pve-manager/}
  837. distro="Proxmox VE ${distro%/*}"
  838. esac
  839. elif type -p lsb_release >/dev/null; then
  840. case $distro_shorthand in
  841. on) lsb_flags=-si ;;
  842. tiny) lsb_flags=-si ;;
  843. *) lsb_flags=-sd ;;
  844. esac
  845. distro=$(lsb_release "$lsb_flags")
  846. elif [[ -f /etc/os-release || \
  847. -f /usr/lib/os-release || \
  848. -f /etc/openwrt_release || \
  849. -f /etc/lsb-release ]]; then
  850. # Source the os-release file
  851. for file in /etc/lsb-release /usr/lib/os-release \
  852. /etc/os-release /etc/openwrt_release; do
  853. source "$file" && break
  854. done
  855. # Format the distro name.
  856. case $distro_shorthand in
  857. on) distro="${NAME:-${DISTRIB_ID}} ${VERSION_ID:-${DISTRIB_RELEASE}}" ;;
  858. tiny) distro="${NAME:-${DISTRIB_ID:-${TAILS_PRODUCT_NAME}}}" ;;
  859. off) distro="${PRETTY_NAME:-${DISTRIB_DESCRIPTION}} ${UBUNTU_CODENAME}" ;;
  860. esac
  861. elif [[ -f /etc/GoboLinuxVersion ]]; then
  862. case $distro_shorthand in
  863. on|tiny) distro=GoboLinux ;;
  864. *) distro="GoboLinux $(< /etc/GoboLinuxVersion)"
  865. esac
  866. elif [[ -f /etc/SDE-VERSION ]]; then
  867. distro="$(< /etc/SDE-VERSION)"
  868. case $distro_shorthand in
  869. on|tiny) distro="${distro% *}" ;;
  870. esac
  871. elif type -p crux >/dev/null; then
  872. distro=$(crux)
  873. case $distro_shorthand in
  874. on) distro=${distro//version} ;;
  875. tiny) distro=${distro//version*}
  876. esac
  877. elif type -p tazpkg >/dev/null; then
  878. distro="SliTaz $(< /etc/slitaz-release)"
  879. elif type -p kpt >/dev/null && \
  880. type -p kpm >/dev/null; then
  881. distro=KSLinux
  882. elif [[ -d /system/app/ && -d /system/priv-app ]]; then
  883. distro="Android $(getprop ro.build.version.release)"
  884. # Chrome OS doesn't conform to the /etc/*-release standard.
  885. # While the file is a series of variables they can't be sourced
  886. # by the shell since the values aren't quoted.
  887. elif [[ -f /etc/lsb-release && $(< /etc/lsb-release) == *CHROMEOS* ]]; then
  888. distro='Chrome OS'
  889. elif type -p guix >/dev/null; then
  890. case $distro_shorthand in
  891. on|tiny) distro="Guix System" ;;
  892. *) distro="Guix System $(guix -V | awk 'NR==1{printf $4}')"
  893. esac
  894. # Display whether using '-current' or '-release' on OpenBSD.
  895. elif [[ $kernel_name = OpenBSD ]] ; then
  896. read -ra kernel_info <<< "$(sysctl -n kern.version)"
  897. distro=${kernel_info[*]:0:2}
  898. else
  899. for release_file in /etc/*-release; do
  900. distro+=$(< "$release_file")
  901. done
  902. if [[ -z $distro ]]; then
  903. case $distro_shorthand in
  904. on|tiny) distro=$kernel_name ;;
  905. *) distro="$kernel_name $kernel_version" ;;
  906. esac
  907. distro=${distro/DragonFly/DragonFlyBSD}
  908. # Workarounds for some BSD based distros.
  909. [[ -f /etc/pcbsd-lang ]] && distro=PCBSD
  910. [[ -f /etc/trueos-lang ]] && distro=TrueOS
  911. [[ -f /etc/pacbsd-release ]] && distro=PacBSD
  912. [[ -f /etc/hbsd-update.conf ]] && distro=HardenedBSD
  913. fi
  914. fi
  915. if [[ $(< /proc/version) == *Microsoft* || $kernel_version == *Microsoft* ]]; then
  916. case $distro_shorthand in
  917. on) distro+=" [Windows 10]" ;;
  918. tiny) distro="Windows 10" ;;
  919. *) distro+=" on Windows 10" ;;
  920. esac
  921. elif [[ $(< /proc/version) == *chrome-bot* || -f /dev/cros_ec ]]; then
  922. [[ $distro != *Chrome* ]] &&
  923. case $distro_shorthand in
  924. on) distro+=" [Chrome OS]" ;;
  925. tiny) distro="Chrome OS" ;;
  926. *) distro+=" on Chrome OS" ;;
  927. esac
  928. fi
  929. distro=$(trim_quotes "$distro")
  930. distro=${distro/NAME=}
  931. # Get Ubuntu flavor.
  932. if [[ $distro == "Ubuntu"* ]]; then
  933. case $XDG_CONFIG_DIRS in
  934. *"plasma"*) distro=${distro/Ubuntu/Kubuntu} ;;
  935. *"mate"*) distro=${distro/Ubuntu/Ubuntu MATE} ;;
  936. *"xubuntu"*) distro=${distro/Ubuntu/Xubuntu} ;;
  937. *"Lubuntu"*) distro=${distro/Ubuntu/Lubuntu} ;;
  938. *"budgie"*) distro=${distro/Ubuntu/Ubuntu Budgie} ;;
  939. *"studio"*) distro=${distro/Ubuntu/Ubuntu Studio} ;;
  940. *"cinnamon"*) distro=${distro/Ubuntu/Ubuntu Cinnamon} ;;
  941. esac
  942. fi
  943. ;;
  944. "Mac OS X"|"macOS")
  945. case $osx_version in
  946. 10.4*) codename="Mac OS X Tiger" ;;
  947. 10.5*) codename="Mac OS X Leopard" ;;
  948. 10.6*) codename="Mac OS X Snow Leopard" ;;
  949. 10.7*) codename="Mac OS X Lion" ;;
  950. 10.8*) codename="OS X Mountain Lion" ;;
  951. 10.9*) codename="OS X Mavericks" ;;
  952. 10.10*) codename="OS X Yosemite" ;;
  953. 10.11*) codename="OS X El Capitan" ;;
  954. 10.12*) codename="macOS Sierra" ;;
  955. 10.13*) codename="macOS High Sierra" ;;
  956. 10.14*) codename="macOS Mojave" ;;
  957. 10.15*) codename="macOS Catalina" ;;
  958. 10.16*) codename="macOS Big Sur" ;;
  959. 11.0*) codename="macOS Big Sur" ;;
  960. *) codename=macOS ;;
  961. esac
  962. distro="$codename $osx_version $osx_build"
  963. case $distro_shorthand in
  964. on) distro=${distro/ ${osx_build}} ;;
  965. tiny)
  966. case $osx_version in
  967. 10.[4-7]*) distro=${distro/${codename}/Mac OS X} ;;
  968. 10.[8-9]*|10.1[0-1]*) distro=${distro/${codename}/OS X} ;;
  969. 10.1[2-6]*|11.0*) distro=${distro/${codename}/macOS} ;;
  970. esac
  971. distro=${distro/ ${osx_build}}
  972. ;;
  973. esac
  974. ;;
  975. "iPhone OS")
  976. distro="iOS $osx_version"
  977. # "uname -m" doesn't print architecture on iOS.
  978. os_arch=off
  979. ;;
  980. Windows)
  981. distro=$(wmic os get Caption)
  982. distro=${distro/Caption}
  983. distro=${distro/Microsoft }
  984. ;;
  985. Solaris)
  986. case $distro_shorthand in
  987. on|tiny) distro=$(awk 'NR==1 {print $1,$3}' /etc/release) ;;
  988. *) distro=$(awk 'NR==1 {print $1,$2,$3}' /etc/release) ;;
  989. esac
  990. distro=${distro/\(*}
  991. ;;
  992. Haiku)
  993. distro=Haiku
  994. ;;
  995. AIX)
  996. distro="AIX $(oslevel)"
  997. ;;
  998. IRIX)
  999. distro="IRIX ${kernel_version}"
  1000. ;;
  1001. FreeMiNT)
  1002. distro=FreeMiNT
  1003. ;;
  1004. esac
  1005. distro=${distro//Enterprise Server}
  1006. [[ $distro ]] || distro="$os (Unknown)"
  1007. # Get OS architecture.
  1008. case $os in
  1009. Solaris|AIX|Haiku|IRIX|FreeMiNT)
  1010. machine_arch=$(uname -p)
  1011. ;;
  1012. *) machine_arch=$kernel_machine ;;
  1013. esac
  1014. [[ $os_arch == on ]] && \
  1015. distro+=" $machine_arch"
  1016. [[ ${ascii_distro:-auto} == auto ]] && \
  1017. ascii_distro=$(trim "$distro")
  1018. }
  1019. get_model() {
  1020. case $os in
  1021. Linux)
  1022. if [[ -d /system/app/ && -d /system/priv-app ]]; then
  1023. model="$(getprop ro.product.brand) $(getprop ro.product.model)"
  1024. elif [[ -f /sys/devices/virtual/dmi/id/product_name ||
  1025. -f /sys/devices/virtual/dmi/id/product_version ]]; then
  1026. model=$(< /sys/devices/virtual/dmi/id/product_name)
  1027. model+=" $(< /sys/devices/virtual/dmi/id/product_version)"
  1028. elif [[ -f /sys/firmware/devicetree/base/model ]]; then
  1029. model=$(< /sys/firmware/devicetree/base/model)
  1030. elif [[ -f /tmp/sysinfo/model ]]; then
  1031. model=$(< /tmp/sysinfo/model)
  1032. fi
  1033. ;;
  1034. "Mac OS X"|"macOS")
  1035. if [[ $(kextstat | grep -F -e "FakeSMC" -e "VirtualSMC") != "" ]]; then
  1036. model="Hackintosh (SMBIOS: $(sysctl -n hw.model))"
  1037. else
  1038. model=$(sysctl -n hw.model)
  1039. fi
  1040. ;;
  1041. "iPhone OS")
  1042. case $kernel_machine in
  1043. iPad1,1): "iPad" ;;
  1044. iPad2,[1-4]): "iPad 2" ;;
  1045. iPad3,[1-3]): "iPad 3" ;;
  1046. iPad3,[4-6]): "iPad 4" ;;
  1047. iPad6,1[12]): "iPad 5" ;;
  1048. iPad7,[5-6]): "iPad 6" ;;
  1049. iPad7,1[12]): "iPad 7" ;;
  1050. iPad4,[1-3]): "iPad Air" ;;
  1051. iPad5,[3-4]): "iPad Air 2" ;;
  1052. iPad11,[3-4]): "iPad Air 3" ;;
  1053. iPad6,[7-8]): "iPad Pro (12.9 Inch)" ;;
  1054. iPad6,[3-4]): "iPad Pro (9.7 Inch)" ;;
  1055. iPad7,[1-2]): "iPad Pro 2 (12.9 Inch)" ;;
  1056. iPad7,[3-4]): "iPad Pro (10.5 Inch)" ;;
  1057. iPad8,[1-4]): "iPad Pro (11 Inch)" ;;
  1058. iPad8,[5-8]): "iPad Pro 3 (12.9 Inch)" ;;
  1059. iPad8,9 | iPad8,10): "iPad Pro 4 (11 Inch)" ;;
  1060. iPad8,1[1-2]): "iPad Pro 4 (12.9 Inch)" ;;
  1061. iPad2,[5-7]): "iPad mini" ;;
  1062. iPad4,[4-6]): "iPad mini 2" ;;
  1063. iPad4,[7-9]): "iPad mini 3" ;;
  1064. iPad5,[1-2]): "iPad mini 4" ;;
  1065. iPad11,[1-2]): "iPad mini 5" ;;
  1066. iPhone1,1): "iPhone" ;;
  1067. iPhone1,2): "iPhone 3G" ;;
  1068. iPhone2,1): "iPhone 3GS" ;;
  1069. iPhone3,[1-3]): "iPhone 4" ;;
  1070. iPhone4,1): "iPhone 4S" ;;
  1071. iPhone5,[1-2]): "iPhone 5" ;;
  1072. iPhone5,[3-4]): "iPhone 5c" ;;
  1073. iPhone6,[1-2]): "iPhone 5s" ;;
  1074. iPhone7,2): "iPhone 6" ;;
  1075. iPhone7,1): "iPhone 6 Plus" ;;
  1076. iPhone8,1): "iPhone 6s" ;;
  1077. iPhone8,2): "iPhone 6s Plus" ;;
  1078. iPhone8,4): "iPhone SE" ;;
  1079. iPhone9,[13]): "iPhone 7" ;;
  1080. iPhone9,[24]): "iPhone 7 Plus" ;;
  1081. iPhone10,[14]): "iPhone 8" ;;
  1082. iPhone10,[25]): "iPhone 8 Plus" ;;
  1083. iPhone10,[36]): "iPhone X" ;;
  1084. iPhone11,2): "iPhone XS" ;;
  1085. iPhone11,[46]): "iPhone XS Max" ;;
  1086. iPhone11,8): "iPhone XR" ;;
  1087. iPhone12,1): "iPhone 11" ;;
  1088. iPhone12,3): "iPhone 11 Pro" ;;
  1089. iPhone12,5): "iPhone 11 Pro Max" ;;
  1090. iPhone12,8): "iPhone SE 2020" ;;
  1091. iPod1,1): "iPod touch" ;;
  1092. ipod2,1): "iPod touch 2G" ;;
  1093. ipod3,1): "iPod touch 3G" ;;
  1094. ipod4,1): "iPod touch 4G" ;;
  1095. ipod5,1): "iPod touch 5G" ;;
  1096. ipod7,1): "iPod touch 6G" ;;
  1097. esac
  1098. model=$_
  1099. ;;
  1100. BSD|MINIX)
  1101. model=$(sysctl -n hw.vendor hw.product)
  1102. ;;
  1103. Windows)
  1104. model=$(wmic computersystem get manufacturer,model)
  1105. model=${model/Manufacturer}
  1106. model=${model/Model}
  1107. ;;
  1108. Solaris)
  1109. model=$(prtconf -b | awk -F':' '/banner-name/ {printf $2}')
  1110. ;;
  1111. AIX)
  1112. model=$(/usr/bin/uname -M)
  1113. ;;
  1114. FreeMiNT)
  1115. model=$(sysctl -n hw.model)
  1116. model=${model/ (_MCH *)}
  1117. ;;
  1118. esac
  1119. # Remove dummy OEM info.
  1120. model=${model//To be filled by O.E.M.}
  1121. model=${model//To Be Filled*}
  1122. model=${model//OEM*}
  1123. model=${model//Not Applicable}
  1124. model=${model//System Product Name}
  1125. model=${model//System Version}
  1126. model=${model//Undefined}
  1127. model=${model//Default string}
  1128. model=${model//Not Specified}
  1129. model=${model//Type1ProductConfigId}
  1130. model=${model//INVALID}
  1131. model=${model//All Series}
  1132. model=${model//�}
  1133. case $model in
  1134. "Standard PC"*) model="KVM/QEMU (${model})" ;;
  1135. OpenBSD*) model="vmm ($model)" ;;
  1136. esac
  1137. }
  1138. get_title() {
  1139. user=${USER:-$(id -un || printf %s "${HOME/*\/}")}
  1140. case $title_fqdn in
  1141. on) hostname=$(hostname -f) ;;
  1142. *) hostname=${HOSTNAME:-$(hostname)} ;;
  1143. esac
  1144. title=${title_color}${bold}${user}${at_color}@${title_color}${bold}${hostname}
  1145. length=$((${#user} + ${#hostname} + 1))
  1146. }
  1147. get_kernel() {
  1148. # Since these OS are integrated systems, it's better to skip this function altogether
  1149. [[ $os =~ (AIX|IRIX) ]] && return
  1150. # Haiku uses 'uname -v' and not - 'uname -r'.
  1151. [[ $os == Haiku ]] && {
  1152. kernel=$(uname -v)
  1153. return
  1154. }
  1155. # In Windows 'uname' may return the info of GNUenv thus use wmic for OS kernel.
  1156. [[ $os == Windows ]] && {
  1157. kernel=$(wmic os get Version)
  1158. kernel=${kernel/Version}
  1159. return
  1160. }
  1161. case $kernel_shorthand in
  1162. on) kernel=$kernel_version ;;
  1163. off) kernel="$kernel_name $kernel_version" ;;
  1164. esac
  1165. # Hide kernel info if it's identical to the distro info.
  1166. [[ $os =~ (BSD|MINIX) && $distro == *"$kernel_name"* ]] &&
  1167. case $distro_shorthand in
  1168. on|tiny) kernel=$kernel_version ;;
  1169. *) unset kernel ;;
  1170. esac
  1171. }
  1172. get_uptime() {
  1173. # Get uptime in seconds.
  1174. case $os in
  1175. Linux|Windows|MINIX)
  1176. if [[ -r /proc/uptime ]]; then
  1177. s=$(< /proc/uptime)
  1178. s=${s/.*}
  1179. else
  1180. boot=$(date -d"$(uptime -s)" +%s)
  1181. now=$(date +%s)
  1182. s=$((now - boot))
  1183. fi
  1184. ;;
  1185. "Mac OS X"|"macOS"|"iPhone OS"|BSD|FreeMiNT)
  1186. boot=$(sysctl -n kern.boottime)
  1187. boot=${boot/\{ sec = }
  1188. boot=${boot/,*}
  1189. # Get current date in seconds.
  1190. now=$(date +%s)
  1191. s=$((now - boot))
  1192. ;;
  1193. Solaris)
  1194. s=$(kstat -p unix:0:system_misc:snaptime | awk '{print $2}')
  1195. s=${s/.*}
  1196. ;;
  1197. AIX|IRIX)
  1198. t=$(LC_ALL=POSIX ps -o etime= -p 1)
  1199. [[ $t == *-* ]] && { d=${t%%-*}; t=${t#*-}; }
  1200. [[ $t == *:*:* ]] && { h=${t%%:*}; t=${t#*:}; }
  1201. h=${h#0}
  1202. t=${t#0}
  1203. s=$((${d:-0}*86400 + ${h:-0}*3600 + ${t%%:*}*60 + ${t#*:}))
  1204. ;;
  1205. Haiku)
  1206. s=$(($(system_time) / 1000000))
  1207. ;;
  1208. esac
  1209. d="$((s / 60 / 60 / 24)) days"
  1210. h="$((s / 60 / 60 % 24)) hours"
  1211. m="$((s / 60 % 60)) mins"
  1212. # Remove plural if < 2.
  1213. ((${d/ *} == 1)) && d=${d/s}
  1214. ((${h/ *} == 1)) && h=${h/s}
  1215. ((${m/ *} == 1)) && m=${m/s}
  1216. # Hide empty fields.
  1217. ((${d/ *} == 0)) && unset d
  1218. ((${h/ *} == 0)) && unset h
  1219. ((${m/ *} == 0)) && unset m
  1220. uptime=${d:+$d, }${h:+$h, }$m
  1221. uptime=${uptime%', '}
  1222. uptime=${uptime:-$s secs}
  1223. # Make the output of uptime smaller.
  1224. case $uptime_shorthand in
  1225. on) ;;
  1226. tiny)
  1227. uptime=${uptime/ days/d}
  1228. uptime=${uptime/ day/d}
  1229. uptime=${uptime/ hours/h}
  1230. uptime=${uptime/ hour/h}
  1231. uptime=${uptime/ mins/m}
  1232. uptime=${uptime/ min/m}
  1233. uptime=${uptime/ secs/s}
  1234. uptime=${uptime//,}
  1235. ;;
  1236. esac
  1237. }
  1238. get_packages() {
  1239. # has: Check if package manager installed.
  1240. # dir: Count files or dirs in a glob.
  1241. # pac: If packages > 0, log package manager name.
  1242. # tot: Count lines in command output.
  1243. has() { type -p "$1" >/dev/null && manager=$1; }
  1244. dir() { ((packages+=$#)); pac "$#"; }
  1245. pac() { (($1 > 0)) && { managers+=("$1 (${manager})"); manager_string+="${manager}, "; }; }
  1246. tot() { IFS=$'\n' read -d "" -ra pkgs <<< "$("$@")";((packages+=${#pkgs[@]}));pac "${#pkgs[@]}";}
  1247. # Redefine tot() for Bedrock Linux.
  1248. [[ -f /bedrock/etc/bedrock-release && $PATH == */bedrock/cross/* ]] && {
  1249. tot() {
  1250. IFS=$'\n' read -d "" -ra pkgs <<< "$(for s in $(brl list); do strat -r "$s" "$@"; done)"
  1251. ((packages+="${#pkgs[@]}"))
  1252. pac "${#pkgs[@]}"
  1253. }
  1254. br_prefix="/bedrock/strata/*"
  1255. }
  1256. case $os in
  1257. Linux|BSD|"iPhone OS"|Solaris)
  1258. # Package Manager Programs.
  1259. has kiss && tot kiss l
  1260. has pacman-key && tot pacman -Qq --color never
  1261. has dpkg && tot dpkg-query -f '.\n' -W
  1262. has rpm && tot rpm -qa
  1263. has xbps-query && tot xbps-query -l
  1264. has apk && tot apk info
  1265. has opkg && tot opkg list-installed
  1266. has pacman-g2 && tot pacman-g2 -Q
  1267. has lvu && tot lvu installed
  1268. has tce-status && tot tce-status -i
  1269. has pkg_info && tot pkg_info
  1270. has tazpkg && tot tazpkg list && ((packages-=6))
  1271. has sorcery && tot gaze installed
  1272. has alps && tot alps showinstalled
  1273. has butch && tot butch list
  1274. has mine && tot mine -q
  1275. # Counting files/dirs.
  1276. # Variables need to be unquoted here. Only Bedrock Linux is affected.
  1277. # $br_prefix is fixed and won't change based on user input so this is safe either way.
  1278. # shellcheck disable=SC2086
  1279. {
  1280. shopt -s nullglob
  1281. has brew && dir "$(brew --cellar)"/*
  1282. has emerge && dir ${br_prefix}/var/db/pkg/*/*/
  1283. has Compile && dir ${br_prefix}/Programs/*/
  1284. has eopkg && dir ${br_prefix}/var/lib/eopkg/package/*
  1285. has crew && dir ${br_prefix}/usr/local/etc/crew/meta/*.filelist
  1286. has pkgtool && dir ${br_prefix}/var/log/packages/*
  1287. has scratch && dir ${br_prefix}/var/lib/scratchpkg/index/*/.pkginfo
  1288. has kagami && dir ${br_prefix}/var/lib/kagami/pkgs/*
  1289. has cave && dir ${br_prefix}/var/db/paludis/repositories/cross-installed/*/data/*/ \
  1290. ${br_prefix}/var/db/paludis/repositories/installed/data/*/
  1291. shopt -u nullglob
  1292. }
  1293. # Other (Needs complex command)
  1294. has kpm-pkg && ((packages+=$(kpm --get-selections | grep -cv deinstall$)))
  1295. has guix && {
  1296. manager=guix-system && tot guix package -p "/run/current-system/profile" -I
  1297. manager=guix-user && tot guix package -I
  1298. }
  1299. has nix-store && {
  1300. manager=nix-system && tot nix-store -q --requisites /run/current-system/sw
  1301. manager=nix-user && tot nix-store -q --requisites ~/.nix-profile
  1302. manager=nix-default && tot nix-store -q --requisites /nix/var/nix/profiles/default
  1303. }
  1304. # pkginfo is also the name of a python package manager which is painfully slow.
  1305. # TODO: Fix this somehow.
  1306. has pkginfo && tot pkginfo -i
  1307. case $kernel_name in
  1308. FreeBSD|DragonFly) has pkg && tot pkg info ;;
  1309. *)
  1310. has pkg && dir /var/db/pkg/*
  1311. ((packages == 0)) && \
  1312. has pkg && tot pkg list
  1313. ;;
  1314. esac
  1315. # List these last as they accompany regular package managers.
  1316. has flatpak && tot flatpak list
  1317. has spm && tot spm list -i
  1318. has puyo && dir ~/.puyo/installed
  1319. # Snap hangs if the command is run without the daemon running.
  1320. # Only run snap if the daemon is also running.
  1321. has snap && ps -e | grep -qFm 1 snapd >/dev/null && tot snap list && ((packages-=1))
  1322. # This is the only standard location for appimages.
  1323. # See: https://github.com/AppImage/AppImageKit/wiki
  1324. manager=appimage && has appimaged && dir ~/.local/bin/*.appimage
  1325. ;;
  1326. "Mac OS X"|"macOS"|MINIX)
  1327. has port && tot port installed && ((packages-=1))
  1328. has brew && dir /usr/local/Cellar/*
  1329. has pkgin && tot pkgin list
  1330. has nix-store && {
  1331. manager=nix-system && tot nix-store -q --requisites "/run/current-system/sw"
  1332. manager=nix-user && tot nix-store -q --requisites "$HOME/.nix-profile"
  1333. }
  1334. ;;
  1335. AIX|FreeMiNT)
  1336. has lslpp && ((packages+=$(lslpp -J -l -q | grep -cv '^#')))
  1337. has rpm && tot rpm -qa
  1338. ;;
  1339. Windows)
  1340. case $kernel_name in
  1341. CYGWIN*) has cygcheck && tot cygcheck -cd ;;
  1342. MSYS*) has pacman && tot pacman -Qq --color never ;;
  1343. esac
  1344. # Scoop environment throws errors if `tot scoop list` is used
  1345. has scoop && dir ~/scoop/apps/* && ((packages-=1))
  1346. # Count chocolatey packages.
  1347. [[ -d /cygdrive/c/ProgramData/chocolatey/lib ]] && \
  1348. dir /cygdrive/c/ProgramData/chocolatey/lib/*
  1349. ;;
  1350. Haiku)
  1351. has pkgman && dir /boot/system/package-links/*
  1352. packages=${packages/pkgman/depot}
  1353. ;;
  1354. IRIX)
  1355. manager=swpkg
  1356. tot versions -b && ((packages-=3))
  1357. ;;
  1358. esac
  1359. if ((packages == 0)); then
  1360. unset packages
  1361. elif [[ $package_managers == on ]]; then
  1362. printf -v packages '%s, ' "${managers[@]}"
  1363. packages=${packages%,*}
  1364. elif [[ $package_managers == tiny ]]; then
  1365. packages+=" (${manager_string%,*})"
  1366. fi
  1367. packages=${packages/pacman-key/pacman}
  1368. }
  1369. get_shell() {
  1370. case $shell_path in
  1371. on) shell="$SHELL " ;;
  1372. off) shell="${SHELL##*/} " ;;
  1373. esac
  1374. [[ $shell_version != on ]] && return
  1375. case ${shell_name:=${SHELL##*/}} in
  1376. bash)
  1377. [[ $BASH_VERSION ]] ||
  1378. BASH_VERSION=$("$SHELL" -c "printf %s \"\$BASH_VERSION\"")
  1379. shell+=${BASH_VERSION/-*}
  1380. ;;
  1381. sh|ash|dash|es) ;;
  1382. *ksh)
  1383. shell+=$("$SHELL" -c "printf %s \"\$KSH_VERSION\"")
  1384. shell=${shell/ * KSH}
  1385. shell=${shell/version}
  1386. ;;
  1387. osh)
  1388. if [[ $OIL_VERSION ]]; then
  1389. shell+=$OIL_VERSION
  1390. else
  1391. shell+=$("$SHELL" -c "printf %s \"\$OIL_VERSION\"")
  1392. fi
  1393. ;;
  1394. tcsh)
  1395. shell+=$("$SHELL" -c "printf %s \$tcsh")
  1396. ;;
  1397. yash)
  1398. shell+=$("$SHELL" --version 2>&1)
  1399. shell=${shell/ $shell_name}
  1400. shell=${shell/ Yet another shell}
  1401. shell=${shell/Copyright*}
  1402. ;;
  1403. *)
  1404. shell+=$("$SHELL" --version 2>&1)
  1405. shell=${shell/ $shell_name}
  1406. ;;
  1407. esac
  1408. # Remove unwanted info.
  1409. shell=${shell/, version}
  1410. shell=${shell/xonsh\//xonsh }
  1411. shell=${shell/options*}
  1412. shell=${shell/\(*\)}
  1413. }
  1414. get_de() {
  1415. # If function was run, stop here.
  1416. ((de_run == 1)) && return
  1417. case $os in
  1418. "Mac OS X"|"macOS") de=Aqua ;;
  1419. Windows)
  1420. case $distro in
  1421. "Windows 8"*|"Windows 10"*) de="Modern UI/Metro" ;;
  1422. *) de=Aero
  1423. esac
  1424. ;;
  1425. FreeMiNT)
  1426. freemint_wm=(/proc/*)
  1427. case ${freemint_wm[*]} in
  1428. *thing*) de=Thing ;;
  1429. *jinnee*) de=Jinnee ;;
  1430. *tera*) de=Teradesk ;;
  1431. *neod*) de=NeoDesk ;;
  1432. *zdesk*) de=zDesk ;;
  1433. *mdesk*) de=mDesk ;;
  1434. esac
  1435. ;;
  1436. *)
  1437. ((wm_run != 1)) && get_wm
  1438. # Temporary support for Regolith Linux
  1439. if [[ $DESKTOP_SESSION == regolith ]]; then
  1440. de=Regolith
  1441. elif [[ $XDG_CURRENT_DESKTOP ]]; then
  1442. de=${XDG_CURRENT_DESKTOP/X\-}
  1443. de=${de/Budgie:GNOME/Budgie}
  1444. de=${de/:Unity7:ubuntu}
  1445. elif [[ $DESKTOP_SESSION ]]; then
  1446. de=${DESKTOP_SESSION##*/}
  1447. elif [[ $GNOME_DESKTOP_SESSION_ID ]]; then
  1448. de=GNOME
  1449. elif [[ $MATE_DESKTOP_SESSION_ID ]]; then
  1450. de=MATE
  1451. elif [[ $TDE_FULL_SESSION ]]; then
  1452. de=Trinity
  1453. fi
  1454. # When a window manager is started from a display manager
  1455. # the desktop variables are sometimes also set to the
  1456. # window manager name. This checks to see if WM == DE
  1457. # and discards the DE value.
  1458. [[ $de == "$wm" ]] && { unset -v de; return; }
  1459. ;;
  1460. esac
  1461. # Fallback to using xprop.
  1462. [[ $DISPLAY && -z $de ]] && type -p xprop &>/dev/null && \
  1463. de=$(xprop -root | awk '/KDE_SESSION_VERSION|^_MUFFIN|xfce4|xfce5/')
  1464. # Format strings.
  1465. case $de in
  1466. KDE_SESSION_VERSION*) de=KDE${de/* = } ;;
  1467. *xfce4*) de=Xfce4 ;;
  1468. *xfce5*) de=Xfce5 ;;
  1469. *xfce*) de=Xfce ;;
  1470. *mate*) de=MATE ;;
  1471. *GNOME*) de=GNOME ;;
  1472. *MUFFIN*) de=Cinnamon ;;
  1473. esac
  1474. ((${KDE_SESSION_VERSION:-0} >= 4)) && de=${de/KDE/Plasma}
  1475. if [[ $de_version == on && $de ]]; then
  1476. case $de in
  1477. Plasma*) de_ver=$(plasmashell --version) ;;
  1478. MATE*) de_ver=$(mate-session --version) ;;
  1479. Xfce*) de_ver=$(xfce4-session --version) ;;
  1480. GNOME*) de_ver=$(gnome-shell --version) ;;
  1481. Cinnamon*) de_ver=$(cinnamon --version) ;;
  1482. Deepin*) de_ver=$(awk -F'=' '/Version/ {print $2}' /etc/deepin-version) ;;
  1483. Budgie*) de_ver=$(budgie-desktop --version) ;;
  1484. LXQt*) de_ver=$(lxqt-session --version) ;;
  1485. Lumina*) de_ver=$(lumina-desktop --version 2>&1) ;;
  1486. Trinity*) de_ver=$(tde-config --version) ;;
  1487. Unity*) de_ver=$(unity --version) ;;
  1488. esac
  1489. de_ver=${de_ver/*TDE:}
  1490. de_ver=${de_ver/tde-config*}
  1491. de_ver=${de_ver/liblxqt*}
  1492. de_ver=${de_ver/Copyright*}
  1493. de_ver=${de_ver/)*}
  1494. de_ver=${de_ver/* }
  1495. de_ver=${de_ver//\"}
  1496. de="$de $de_ver"
  1497. fi
  1498. de_run=1
  1499. }
  1500. get_wm() {
  1501. # If function was run, stop here.
  1502. ((wm_run == 1)) && return
  1503. case $kernel_name in
  1504. *OpenBSD*) ps_flags=(x -c) ;;
  1505. *) ps_flags=(-e) ;;
  1506. esac
  1507. if [[ $WAYLAND_DISPLAY ]]; then
  1508. wm=$(ps "${ps_flags[@]}" | grep -m 1 -o -F \
  1509. -e arcan \
  1510. -e asc \
  1511. -e clayland \
  1512. -e dwc \
  1513. -e fireplace \
  1514. -e gnome-shell \
  1515. -e greenfield \
  1516. -e grefsen \
  1517. -e kwin \
  1518. -e lipstick \
  1519. -e maynard \
  1520. -e mazecompositor \
  1521. -e motorcar \
  1522. -e orbital \
  1523. -e orbment \
  1524. -e perceptia \
  1525. -e rustland \
  1526. -e sway \
  1527. -e ulubis \
  1528. -e velox \
  1529. -e wavy \
  1530. -e way-cooler \
  1531. -e wayfire \
  1532. -e wayhouse \
  1533. -e westeros \
  1534. -e westford \
  1535. -e weston)
  1536. elif [[ $DISPLAY && $os != "Mac OS X" && $os != "macOS" && $os != FreeMiNT ]]; then
  1537. type -p xprop &>/dev/null && {
  1538. id=$(xprop -root -notype _NET_SUPPORTING_WM_CHECK)
  1539. id=${id##* }
  1540. wm=$(xprop -id "$id" -notype -len 100 -f _NET_WM_NAME 8t)
  1541. wm=${wm/*WM_NAME = }
  1542. wm=${wm/\"}
  1543. wm=${wm/\"*}
  1544. }
  1545. # Fallback for non-EWMH WMs.
  1546. [[ $wm ]] ||
  1547. wm=$(ps "${ps_flags[@]}" | grep -m 1 -o \
  1548. -e "[s]owm" \
  1549. -e "[c]atwm" \
  1550. -e "[f]vwm" \
  1551. -e "[d]wm" \
  1552. -e "[2]bwm" \
  1553. -e "[m]onsterwm" \
  1554. -e "[t]inywm" \
  1555. -e "[x]11fs" \
  1556. -e "[x]monad")
  1557. else
  1558. case $os in
  1559. "Mac OS X"|"macOS")
  1560. ps_line=$(ps -e | grep -o \
  1561. -e "[S]pectacle" \
  1562. -e "[A]methyst" \
  1563. -e "[k]wm" \
  1564. -e "[c]hun[k]wm" \
  1565. -e "[y]abai" \
  1566. -e "[R]ectangle")
  1567. case $ps_line in
  1568. *chunkwm*) wm=chunkwm ;;
  1569. *kwm*) wm=Kwm ;;
  1570. *yabai*) wm=yabai ;;
  1571. *Amethyst*) wm=Amethyst ;;
  1572. *Spectacle*) wm=Spectacle ;;
  1573. *Rectangle*) wm=Rectangle ;;
  1574. *) wm="Quartz Compositor" ;;
  1575. esac
  1576. ;;
  1577. Windows)
  1578. wm=$(tasklist | grep -m 1 -o -F \
  1579. -e bugn \
  1580. -e Windawesome \
  1581. -e blackbox \
  1582. -e emerge \
  1583. -e litestep)
  1584. [[ $wm == blackbox ]] && wm="bbLean (Blackbox)"
  1585. wm=${wm:+$wm, }Explorer
  1586. ;;
  1587. FreeMiNT)
  1588. freemint_wm=(/proc/*)
  1589. case ${freemint_wm[*]} in
  1590. *xaaes* | *xaloader*) wm=XaAES ;;
  1591. *myaes*) wm=MyAES ;;
  1592. *naes*) wm=N.AES ;;
  1593. geneva) wm=Geneva ;;
  1594. *) wm="Atari AES" ;;
  1595. esac
  1596. ;;
  1597. esac
  1598. fi
  1599. # Rename window managers to their proper values.
  1600. [[ $wm == *WINDOWMAKER* ]] && wm=wmaker
  1601. [[ $wm == *GNOME*Shell* ]] && wm=Mutter
  1602. wm_run=1
  1603. }
  1604. get_wm_theme() {
  1605. ((wm_run != 1)) && get_wm
  1606. ((de_run != 1)) && get_de
  1607. case $wm in
  1608. E16)
  1609. wm_theme=$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg")
  1610. ;;
  1611. Sawfish)
  1612. wm_theme=$(awk -F '\\(quote|\\)' '/default-frame-style/ {print $(NF-4)}' \
  1613. "$HOME/.sawfish/custom")
  1614. ;;
  1615. Cinnamon|Muffin|"Mutter (Muffin)")
  1616. detheme=$(gsettings get org.cinnamon.theme name)
  1617. wm_theme=$(gsettings get org.cinnamon.desktop.wm.preferences theme)
  1618. wm_theme="$detheme ($wm_theme)"
  1619. ;;
  1620. Compiz|Mutter|Gala)
  1621. if type -p gsettings >/dev/null; then
  1622. wm_theme=$(gsettings get org.gnome.shell.extensions.user-theme name)
  1623. [[ ${wm_theme//\'} ]] || \
  1624. wm_theme=$(gsettings get org.gnome.desktop.wm.preferences theme)
  1625. elif type -p gconftool-2 >/dev/null; then
  1626. wm_theme=$(gconftool-2 -g /apps/metacity/general/theme)
  1627. fi
  1628. ;;
  1629. Metacity*)
  1630. if [[ $de == Deepin ]]; then
  1631. wm_theme=$(gsettings get com.deepin.wrap.gnome.desktop.wm.preferences theme)
  1632. elif [[ $de == MATE ]]; then
  1633. wm_theme=$(gsettings get org.mate.Marco.general theme)
  1634. else
  1635. wm_theme=$(gconftool-2 -g /apps/metacity/general/theme)
  1636. fi
  1637. ;;
  1638. E17|Enlightenment)
  1639. if type -p eet >/dev/null; then
  1640. wm_theme=$(eet -d "$HOME/.e/e/config/standard/e.cfg" config |\
  1641. awk '/value \"file\" string.*.edj/ {print $4}')
  1642. wm_theme=${wm_theme##*/}
  1643. wm_theme=${wm_theme%.*}
  1644. fi
  1645. ;;
  1646. Fluxbox)
  1647. [[ -f $HOME/.fluxbox/init ]] &&
  1648. wm_theme=$(awk -F "/" '/styleFile/ {print $NF}' "$HOME/.fluxbox/init")
  1649. ;;
  1650. IceWM*)
  1651. [[ -f $HOME/.icewm/theme ]] &&
  1652. wm_theme=$(awk -F "[\",/]" '!/#/ {print $2}' "$HOME/.icewm/theme")
  1653. ;;
  1654. Openbox)
  1655. case $de in
  1656. LXDE*) ob_file=lxde-rc ;;
  1657. LXQt*) ob_file=lxqt-rc ;;
  1658. *) ob_file=rc ;;
  1659. esac
  1660. ob_file=$XDG_CONFIG_HOME/openbox/$ob_file.xml
  1661. [[ -f $ob_file ]] &&
  1662. wm_theme=$(awk '/<theme>/ {while (getline n) {if (match(n, /<name>/))
  1663. {l=n; exit}}} END {split(l, a, "[<>]"); print a[3]}' "$ob_file")
  1664. ;;
  1665. PekWM)
  1666. [[ -f $HOME/.pekwm/config ]] &&
  1667. wm_theme=$(awk -F "/" '/Theme/{gsub(/\"/,""); print $NF}' "$HOME/.pekwm/config")
  1668. ;;
  1669. Xfwm4)
  1670. [[ -f $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml ]] &&
  1671. wm_theme=$(xfconf-query -c xfwm4 -p /general/theme)
  1672. ;;
  1673. KWin*)
  1674. kde_config_dir
  1675. kwinrc=$kde_config_dir/kwinrc
  1676. kdebugrc=$kde_config_dir/kdebugrc
  1677. if [[ -f $kwinrc ]]; then
  1678. wm_theme=$(awk '/theme=/ {
  1679. gsub(/theme=.*qml_|theme=.*svg__/,"",$0);
  1680. print $0;
  1681. exit
  1682. }' "$kwinrc")
  1683. [[ "$wm_theme" ]] ||
  1684. wm_theme=$(awk '/library=org.kde/ {
  1685. gsub(/library=org.kde./,"",$0);
  1686. print $0;
  1687. exit
  1688. }' "$kwinrc")
  1689. [[ $wm_theme ]] ||
  1690. wm_theme=$(awk '/PluginLib=kwin3_/ {
  1691. gsub(/PluginLib=kwin3_/,"",$0);
  1692. print $0;
  1693. exit
  1694. }' "$kwinrc")
  1695. elif [[ -f $kdebugrc ]]; then
  1696. wm_theme=$(awk '/(decoration)/ {gsub(/\[/,"",$1); print $1; exit}' "$kdebugrc")
  1697. fi
  1698. wm_theme=${wm_theme/theme=}
  1699. ;;
  1700. "Quartz Compositor")
  1701. global_preferences=$HOME/Library/Preferences/.GlobalPreferences.plist
  1702. wm_theme=$(PlistBuddy -c "Print AppleInterfaceStyle" "$global_preferences")
  1703. wm_theme_color=$(PlistBuddy -c "Print AppleAccentColor" "$global_preferences")
  1704. [[ "$wm_theme" ]] ||
  1705. wm_theme=Light
  1706. case $wm_theme_color in
  1707. -1) wm_theme_color=Graphite ;;
  1708. 0) wm_theme_color=Red ;;
  1709. 1) wm_theme_color=Orange ;;
  1710. 2) wm_theme_color=Yellow ;;
  1711. 3) wm_theme_color=Green ;;
  1712. 5) wm_theme_color=Purple ;;
  1713. 6) wm_theme_color=Pink ;;
  1714. *) wm_theme_color=Blue ;;
  1715. esac
  1716. wm_theme="$wm_theme_color ($wm_theme)"
  1717. ;;
  1718. *Explorer)
  1719. path=/proc/registry/HKEY_CURRENT_USER/Software/Microsoft
  1720. path+=/Windows/CurrentVersion/Themes/CurrentTheme
  1721. wm_theme=$(head -n1 "$path")
  1722. wm_theme=${wm_theme##*\\}
  1723. wm_theme=${wm_theme%.*}
  1724. ;;
  1725. Blackbox|bbLean*)
  1726. path=$(wmic process get ExecutablePath | grep -F "blackbox")
  1727. path=${path//\\/\/}
  1728. wm_theme=$(grep '^session\.styleFile:' "${path/\.exe/.rc}")
  1729. wm_theme=${wm_theme/session\.styleFile: }
  1730. wm_theme=${wm_theme##*\\}
  1731. wm_theme=${wm_theme%.*}
  1732. ;;
  1733. esac
  1734. wm_theme=$(trim_quotes "$wm_theme")
  1735. }
  1736. get_cpu() {
  1737. case $os in
  1738. "Linux" | "MINIX" | "Windows")
  1739. # Get CPU name.
  1740. cpu_file="/proc/cpuinfo"
  1741. case $kernel_machine in
  1742. "frv" | "hppa" | "m68k" | "openrisc" | "or"* | "powerpc" | "ppc"* | "sparc"*)
  1743. cpu="$(awk -F':' '/^cpu\t|^CPU/ {printf $2; exit}' "$cpu_file")"
  1744. ;;
  1745. "s390"*)
  1746. cpu="$(awk -F'=' '/machine/ {print $4; exit}' "$cpu_file")"
  1747. ;;
  1748. "ia64" | "m32r")
  1749. cpu="$(awk -F':' '/model/ {print $2; exit}' "$cpu_file")"
  1750. [[ -z "$cpu" ]] && cpu="$(awk -F':' '/family/ {printf $2; exit}' "$cpu_file")"
  1751. ;;
  1752. *)
  1753. cpu="$(awk -F '\\s*: | @' \
  1754. '/model name|Hardware|Processor|^cpu model|chip type|^cpu type/ {
  1755. cpu=$2; if ($1 == "Hardware") exit } END { print cpu }' "$cpu_file")"
  1756. ;;
  1757. esac
  1758. speed_dir="/sys/devices/system/cpu/cpu0/cpufreq"
  1759. # Select the right temperature file.
  1760. for temp_dir in /sys/class/hwmon/*; do
  1761. [[ "$(< "${temp_dir}/name")" =~ (coretemp|fam15h_power|k10temp) ]] && {
  1762. temp_dirs=("$temp_dir"/temp*_input)
  1763. temp_dir=${temp_dirs[0]}
  1764. break
  1765. }
  1766. done
  1767. # Get CPU speed.
  1768. if [[ -d "$speed_dir" ]]; then
  1769. # Fallback to bios_limit if $speed_type fails.
  1770. speed="$(< "${speed_dir}/${speed_type}")" ||\
  1771. speed="$(< "${speed_dir}/bios_limit")" ||\
  1772. speed="$(< "${speed_dir}/scaling_max_freq")" ||\
  1773. speed="$(< "${speed_dir}/cpuinfo_max_freq")"
  1774. speed="$((speed / 1000))"
  1775. else
  1776. speed="$(awk -F ': |\\.' '/cpu MHz|^clock/ {printf $2; exit}' "$cpu_file")"
  1777. speed="${speed/MHz}"
  1778. fi
  1779. # Get CPU temp.
  1780. [[ -f "$temp_dir" ]] && deg="$(($(< "$temp_dir") * 100 / 10000))"
  1781. # Get CPU cores.
  1782. case $cpu_cores in
  1783. "logical" | "on") cores="$(grep -c "^processor" "$cpu_file")" ;;
  1784. "physical") cores="$(awk '/^core id/&&!a[$0]++{++i} END {print i}' "$cpu_file")" ;;
  1785. esac
  1786. ;;
  1787. "Mac OS X"|"macOS")
  1788. cpu="$(sysctl -n machdep.cpu.brand_string)"
  1789. # Get CPU cores.
  1790. case $cpu_cores in
  1791. "logical" | "on") cores="$(sysctl -n hw.logicalcpu_max)" ;;
  1792. "physical") cores="$(sysctl -n hw.physicalcpu_max)" ;;
  1793. esac
  1794. ;;
  1795. "iPhone OS")
  1796. case $kernel_machine in
  1797. "iPhone1,"[1-2] | "iPod1,1"): "Samsung S5L8900 (1) @ 412MHz" ;;
  1798. "iPhone2,1"): "Samsung S5PC100 (1) @ 600MHz" ;;
  1799. "iPhone3,"[1-3] | "iPod4,1"): "Apple A4 (1) @ 800MHz" ;;
  1800. "iPhone4,1" | "iPod5,1"): "Apple A5 (2) @ 800MHz" ;;
  1801. "iPhone5,"[1-4]): "Apple A6 (2) @ 1.3GHz" ;;
  1802. "iPhone6,"[1-2]): "Apple A7 (2) @ 1.3GHz" ;;
  1803. "iPhone7,"[1-2]): "Apple A8 (2) @ 1.4GHz" ;;
  1804. "iPhone8,"[1-4] | "iPad6,1"[12]): "Apple A9 (2) @ 1.85GHz" ;;
  1805. "iPhone9,"[1-4] | "iPad7,"[5-6] | "iPad7,1"[1-2]):
  1806. "Apple A10 Fusion (4) @ 2.34GHz"
  1807. ;;
  1808. "iPhone10,"[1-6]): "Apple A11 Bionic (6) @ 2.39GHz" ;;
  1809. "iPhone11,"[2468] | "iPad11,"[1-4]): "Apple A12 Bionic (6) @ 2.49GHz" ;;
  1810. "iPhone12,"[1358]): "Apple A13 Bionic (6) @ 2.65GHz" ;;
  1811. "iPod2,1"): "Samsung S5L8720 (1) @ 533MHz" ;;
  1812. "iPod3,1"): "Samsung S5L8922 (1) @ 600MHz" ;;
  1813. "iPod7,1"): "Apple A8 (2) @ 1.1GHz" ;;
  1814. "iPad1,1"): "Apple A4 (1) @ 1GHz" ;;
  1815. "iPad2,"[1-7]): "Apple A5 (2) @ 1GHz" ;;
  1816. "iPad3,"[1-3]): "Apple A5X (2) @ 1GHz" ;;
  1817. "iPad3,"[4-6]): "Apple A6X (2) @ 1.4GHz" ;;
  1818. "iPad4,"[1-3]): "Apple A7 (2) @ 1.4GHz" ;;
  1819. "iPad4,"[4-9]): "Apple A7 (2) @ 1.4GHz" ;;
  1820. "iPad5,"[1-2]): "Apple A8 (2) @ 1.5GHz" ;;
  1821. "iPad5,"[3-4]): "Apple A8X (3) @ 1.5GHz" ;;
  1822. "iPad6,"[3-4]): "Apple A9X (2) @ 2.16GHz" ;;
  1823. "iPad6,"[7-8]): "Apple A9X (2) @ 2.26GHz" ;;
  1824. "iPad7,"[1-4]): "Apple A10X Fusion (6) @ 2.39GHz" ;;
  1825. "iPad8,"[1-8]): "Apple A12X Bionic (8) @ 2.49GHz" ;;
  1826. "iPad8,9" | "iPad8,1"[0-2]): "Apple A12Z Bionic (8) @ 2.49GHz" ;;
  1827. esac
  1828. cpu="$_"
  1829. ;;
  1830. "BSD")
  1831. # Get CPU name.
  1832. cpu="$(sysctl -n hw.model)"
  1833. cpu="${cpu/[0-9]\.*}"
  1834. cpu="${cpu/ @*}"
  1835. # Get CPU speed.
  1836. speed="$(sysctl -n hw.cpuspeed)"
  1837. [[ -z "$speed" ]] && speed="$(sysctl -n hw.clockrate)"
  1838. # Get CPU cores.
  1839. cores="$(sysctl -n hw.ncpu)"
  1840. # Get CPU temp.
  1841. case $kernel_name in
  1842. "FreeBSD"* | "DragonFly"* | "NetBSD"*)
  1843. deg="$(sysctl -n dev.cpu.0.temperature)"
  1844. deg="${deg/C}"
  1845. ;;
  1846. "OpenBSD"* | "Bitrig"*)
  1847. deg="$(sysctl hw.sensors | \
  1848. awk -F '=| degC' '/lm0.temp|cpu0.temp/ {print $2; exit}')"
  1849. deg="${deg/00/0}"
  1850. ;;
  1851. esac
  1852. ;;
  1853. "Solaris")
  1854. # Get CPU name.
  1855. cpu="$(psrinfo -pv)"
  1856. cpu="${cpu//*$'\n'}"
  1857. cpu="${cpu/[0-9]\.*}"
  1858. cpu="${cpu/ @*}"
  1859. cpu="${cpu/\(portid*}"
  1860. # Get CPU speed.
  1861. speed="$(psrinfo -v | awk '/operates at/ {print $6; exit}')"
  1862. # Get CPU cores.
  1863. case $cpu_cores in
  1864. "logical" | "on") cores="$(kstat -m cpu_info | grep -c -F "chip_id")" ;;
  1865. "physical") cores="$(psrinfo -p)" ;;
  1866. esac
  1867. ;;
  1868. "Haiku")
  1869. # Get CPU name.
  1870. cpu="$(sysinfo -cpu | awk -F '\\"' '/CPU #0/ {print $2}')"
  1871. cpu="${cpu/@*}"
  1872. # Get CPU speed.
  1873. speed="$(sysinfo -cpu | awk '/running at/ {print $NF; exit}')"
  1874. speed="${speed/MHz}"
  1875. # Get CPU cores.
  1876. cores="$(sysinfo -cpu | grep -c -F 'CPU #')"
  1877. ;;
  1878. "AIX")
  1879. # Get CPU name.
  1880. cpu="$(lsattr -El proc0 -a type | awk '{printf $2}')"
  1881. # Get CPU speed.
  1882. speed="$(prtconf -s | awk -F':' '{printf $2}')"
  1883. speed="${speed/MHz}"
  1884. # Get CPU cores.
  1885. case $cpu_cores in
  1886. "logical" | "on")
  1887. cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')"
  1888. ;;
  1889. "physical")
  1890. cores="$(lparstat -i | awk -F':' '/Active Physical CPUs/ {printf $2}')"
  1891. ;;
  1892. esac
  1893. ;;
  1894. "IRIX")
  1895. # Get CPU name.
  1896. cpu="$(hinv -c processor | awk -F':' '/CPU:/ {printf $2}')"
  1897. # Get CPU speed.
  1898. speed="$(hinv -c processor | awk '/MHZ/ {printf $2}')"
  1899. # Get CPU cores.
  1900. cores="$(sysconf NPROC_ONLN)"
  1901. ;;
  1902. "FreeMiNT")
  1903. cpu="$(awk -F':' '/CPU:/ {printf $2}' /kern/cpuinfo)"
  1904. speed="$(awk -F '[:.M]' '/Clocking:/ {printf $2}' /kern/cpuinfo)"
  1905. ;;
  1906. esac
  1907. # Remove un-needed patterns from cpu output.
  1908. cpu="${cpu//(TM)}"
  1909. cpu="${cpu//(tm)}"
  1910. cpu="${cpu//(R)}"
  1911. cpu="${cpu//(r)}"
  1912. cpu="${cpu//CPU}"
  1913. cpu="${cpu//Processor}"
  1914. cpu="${cpu//Dual-Core}"
  1915. cpu="${cpu//Quad-Core}"
  1916. cpu="${cpu//Six-Core}"
  1917. cpu="${cpu//Eight-Core}"
  1918. cpu="${cpu//[1-9][0-9]-Core}"
  1919. cpu="${cpu//[0-9]-Core}"
  1920. cpu="${cpu//, * Compute Cores}"
  1921. cpu="${cpu//Core / }"
  1922. cpu="${cpu//(\"AuthenticAMD\"*)}"
  1923. cpu="${cpu//with Radeon * Graphics}"
  1924. cpu="${cpu//, altivec supported}"
  1925. cpu="${cpu//FPU*}"
  1926. cpu="${cpu//Chip Revision*}"
  1927. cpu="${cpu//Technologies, Inc}"
  1928. cpu="${cpu//Core2/Core 2}"
  1929. # Trim spaces from core and speed output
  1930. cores="${cores//[[:space:]]}"
  1931. speed="${speed//[[:space:]]}"
  1932. # Remove CPU brand from the output.
  1933. if [[ "$cpu_brand" == "off" ]]; then
  1934. cpu="${cpu/AMD }"
  1935. cpu="${cpu/Intel }"
  1936. cpu="${cpu/Core? Duo }"
  1937. cpu="${cpu/Qualcomm }"
  1938. fi
  1939. # Add CPU cores to the output.
  1940. [[ "$cpu_cores" != "off" && "$cores" ]] && \
  1941. case $os in
  1942. "Mac OS X"|"macOS") cpu="${cpu/@/(${cores}) @}" ;;
  1943. *) cpu="$cpu ($cores)" ;;
  1944. esac
  1945. # Add CPU speed to the output.
  1946. if [[ "$cpu_speed" != "off" && "$speed" ]]; then
  1947. if (( speed < 1000 )); then
  1948. cpu="$cpu @ ${speed}MHz"
  1949. else
  1950. [[ "$speed_shorthand" == "on" ]] && speed="$((speed / 100))"
  1951. speed="${speed:0:1}.${speed:1}"
  1952. cpu="$cpu @ ${speed}GHz"
  1953. fi
  1954. fi
  1955. # Add CPU temp to the output.
  1956. if [[ "$cpu_temp" != "off" && "$deg" ]]; then
  1957. deg="${deg//.}"
  1958. # Convert to Fahrenheit if enabled
  1959. [[ "$cpu_temp" == "F" ]] && deg="$((deg * 90 / 50 + 320))"
  1960. # Format the output
  1961. deg="[${deg/${deg: -1}}.${deg: -1}°${cpu_temp:-C}]"
  1962. cpu="$cpu $deg"
  1963. fi
  1964. }
  1965. get_cpu_usage() {
  1966. case $os in
  1967. "Windows")
  1968. cpu_usage="$(wmic cpu get loadpercentage)"
  1969. cpu_usage="${cpu_usage/LoadPercentage}"
  1970. cpu_usage="${cpu_usage//[[:space:]]}"
  1971. ;;
  1972. *)
  1973. # Get CPU cores if unset.
  1974. if [[ "$cpu_cores" != "logical" ]]; then
  1975. case $os in
  1976. "Linux" | "MINIX") cores="$(grep -c "^processor" /proc/cpuinfo)" ;;
  1977. "Mac OS X"|"macOS") cores="$(sysctl -n hw.logicalcpu_max)" ;;
  1978. "BSD") cores="$(sysctl -n hw.ncpu)" ;;
  1979. "Solaris") cores="$(kstat -m cpu_info | grep -c -F "chip_id")" ;;
  1980. "Haiku") cores="$(sysinfo -cpu | grep -c -F 'CPU #')" ;;
  1981. "iPhone OS") cores="${cpu/*\(}"; cores="${cores/\)*}" ;;
  1982. "IRIX") cores="$(sysconf NPROC_ONLN)" ;;
  1983. "FreeMiNT") cores="$(sysctl -n hw.ncpu)" ;;
  1984. "AIX")
  1985. cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')"
  1986. ;;
  1987. esac
  1988. fi
  1989. cpu_usage="$(ps aux | awk 'BEGIN {sum=0} {sum+=$3}; END {print sum}')"
  1990. cpu_usage="$((${cpu_usage/\.*} / ${cores:-1}))"
  1991. ;;
  1992. esac
  1993. # Print the bar.
  1994. case $cpu_display in
  1995. "bar") cpu_usage="$(bar "$cpu_usage" 100)" ;;
  1996. "infobar") cpu_usage="${cpu_usage}% $(bar "$cpu_usage" 100)" ;;
  1997. "barinfo") cpu_usage="$(bar "$cpu_usage" 100)${info_color} ${cpu_usage}%" ;;
  1998. *) cpu_usage="${cpu_usage}%" ;;
  1999. esac
  2000. }
  2001. get_gpu() {
  2002. case $os in
  2003. "Linux")
  2004. # Read GPUs into array.
  2005. gpu_cmd="$(lspci -mm | awk -F '\"|\" \"|\\(' \
  2006. '/"Display|"3D|"VGA/ {a[$0] = $1 " " $3 " " $4}
  2007. END {for(i in a) {if(!seen[a[i]]++) print a[i]}}')"
  2008. IFS=$'\n' read -d "" -ra gpus <<< "$gpu_cmd"
  2009. # Remove duplicate Intel Graphics outputs.
  2010. # This fixes cases where the outputs are both
  2011. # Intel but not entirely identical.
  2012. #
  2013. # Checking the first two array elements should
  2014. # be safe since there won't be 2 intel outputs if
  2015. # there's a dedicated GPU in play.
  2016. [[ "${gpus[0]}" == *Intel* && "${gpus[1]}" == *Intel* ]] && unset -v "gpus[0]"
  2017. for gpu in "${gpus[@]}"; do
  2018. # GPU shorthand tests.
  2019. [[ "$gpu_type" == "dedicated" && "$gpu" == *Intel* ]] || \
  2020. [[ "$gpu_type" == "integrated" && ! "$gpu" == *Intel* ]] && \
  2021. { unset -v gpu; continue; }
  2022. case $gpu in
  2023. *"Advanced"*)
  2024. brand="${gpu/*AMD*ATI*/AMD ATI}"
  2025. brand="${brand:-${gpu/*AMD*/AMD}}"
  2026. brand="${brand:-${gpu/*ATI*/ATi}}"
  2027. gpu="${gpu/\[AMD\/ATI\] }"
  2028. gpu="${gpu/\[AMD\] }"
  2029. gpu="${gpu/OEM }"
  2030. gpu="${gpu/Advanced Micro Devices, Inc.}"
  2031. gpu="${gpu/*\[}"
  2032. gpu="${gpu/\]*}"
  2033. gpu="$brand $gpu"
  2034. ;;
  2035. *"NVIDIA"*)
  2036. gpu="${gpu/*\[}"
  2037. gpu="${gpu/\]*}"
  2038. gpu="NVIDIA $gpu"
  2039. ;;
  2040. *"Intel"*)
  2041. gpu="${gpu/*Intel/Intel}"
  2042. gpu="${gpu/\(R\)}"
  2043. gpu="${gpu/Corporation}"
  2044. gpu="${gpu/ \(*}"
  2045. gpu="${gpu/Integrated Graphics Controller}"
  2046. gpu="${gpu/*Xeon*/Intel HD Graphics}"
  2047. [[ -z "$(trim "$gpu")" ]] && gpu="Intel Integrated Graphics"
  2048. ;;
  2049. *"MCST"*)
  2050. gpu="${gpu/*MCST*MGA2*/MCST MGA2}"
  2051. ;;
  2052. *"VirtualBox"*)
  2053. gpu="VirtualBox Graphics Adapter"
  2054. ;;
  2055. *) continue ;;
  2056. esac
  2057. if [[ "$gpu_brand" == "off" ]]; then
  2058. gpu="${gpu/AMD }"
  2059. gpu="${gpu/NVIDIA }"
  2060. gpu="${gpu/Intel }"
  2061. fi
  2062. prin "${subtitle:+${subtitle}${gpu_name}}" "$gpu"
  2063. done
  2064. return
  2065. ;;
  2066. "Mac OS X"|"macOS")
  2067. if [[ -f "${cache_dir}/neofetch/gpu" ]]; then
  2068. source "${cache_dir}/neofetch/gpu"
  2069. else
  2070. gpu="$(system_profiler SPDisplaysDataType |\
  2071. awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')"
  2072. gpu="${gpu//\/ \$}"
  2073. gpu="${gpu%,*}"
  2074. cache "gpu" "$gpu"
  2075. fi
  2076. ;;
  2077. "iPhone OS")
  2078. case $kernel_machine in
  2079. "iPhone1,"[1-2]): "PowerVR MBX Lite 3D" ;;
  2080. "iPhone2,1" | "iPhone3,"[1-3] | "iPod3,1" | "iPod4,1" | "iPad1,1"):
  2081. "PowerVR SGX535"
  2082. ;;
  2083. "iPhone4,1" | "iPad2,"[1-7] | "iPod5,1"): "PowerVR SGX543MP2" ;;
  2084. "iPhone5,"[1-4]): "PowerVR SGX543MP3" ;;
  2085. "iPhone6,"[1-2] | "iPad4,"[1-9]): "PowerVR G6430" ;;
  2086. "iPhone7,"[1-2] | "iPod7,1" | "iPad5,"[1-2]): "PowerVR GX6450" ;;
  2087. "iPhone8,"[1-4] | "iPad6,1"[12]): "PowerVR GT7600" ;;
  2088. "iPhone9,"[1-4] | "iPad7,"[5-6]): "PowerVR GT7600 Plus" ;;
  2089. "iPhone10,"[1-6]): "Apple Designed GPU (A11)" ;;
  2090. "iPhone11,"[2468]): "Apple Designed GPU (A12)" ;;
  2091. "iPhone12,"[1358]): "Apple Designed GPU (A13)" ;;
  2092. "iPad3,"[1-3]): "PowerVR SGX534MP4" ;;
  2093. "iPad3,"[4-6]): "PowerVR SGX554MP4" ;;
  2094. "iPad5,"[3-4]): "PowerVR GXA6850" ;;
  2095. "iPad6,"[3-8]): "PowerVR 7XT" ;;
  2096. "iPod1,1" | "iPod2,1")
  2097. : "PowerVR MBX Lite"
  2098. ;;
  2099. esac
  2100. gpu="$_"
  2101. ;;
  2102. "Windows")
  2103. while read -r line; do
  2104. prin "${subtitle:+${subtitle}${gpu_name}}" "$(trim "$line")"
  2105. done < <(wmic path Win32_VideoController get caption)
  2106. gpu=${gpu//Caption}
  2107. ;;
  2108. "Haiku")
  2109. gpu="$(listdev | grep -A2 -F 'device Display controller' |\
  2110. awk -F':' '/device beef/ {print $2}')"
  2111. ;;
  2112. *)
  2113. case $kernel_name in
  2114. "FreeBSD"* | "DragonFly"*)
  2115. gpu="$(pciconf -lv | grep -B 4 -F "VGA" | grep -F "device")"
  2116. gpu="${gpu/*device*= }"
  2117. gpu="$(trim_quotes "$gpu")"
  2118. ;;
  2119. *)
  2120. gpu="$(glxinfo | grep -F 'OpenGL renderer string')"
  2121. gpu="${gpu/OpenGL renderer string: }"
  2122. ;;
  2123. esac
  2124. ;;
  2125. esac
  2126. if [[ "$gpu_brand" == "off" ]]; then
  2127. gpu="${gpu/AMD}"
  2128. gpu="${gpu/NVIDIA}"
  2129. gpu="${gpu/Intel}"
  2130. fi
  2131. }
  2132. get_memory() {
  2133. case $os in
  2134. "Linux" | "Windows")
  2135. # MemUsed = Memtotal + Shmem - MemFree - Buffers - Cached - SReclaimable
  2136. # Source: https://github.com/KittyKatt/screenFetch/issues/386#issuecomment-249312716
  2137. while IFS=":" read -r a b; do
  2138. case $a in
  2139. "MemTotal") ((mem_used+=${b/kB})); mem_total="${b/kB}" ;;
  2140. "Shmem") ((mem_used+=${b/kB})) ;;
  2141. "MemFree" | "Buffers" | "Cached" | "SReclaimable")
  2142. mem_used="$((mem_used-=${b/kB}))"
  2143. ;;
  2144. esac
  2145. done < /proc/meminfo
  2146. mem_used="$((mem_used / 1024))"
  2147. mem_total="$((mem_total / 1024))"
  2148. ;;
  2149. "Mac OS X" | "macOS" | "iPhone OS")
  2150. mem_total="$(($(sysctl -n hw.memsize) / 1024 / 1024))"
  2151. mem_wired="$(vm_stat | awk '/ wired/ { print $4 }')"
  2152. mem_active="$(vm_stat | awk '/ active/ { printf $3 }')"
  2153. mem_compressed="$(vm_stat | awk '/ occupied/ { printf $5 }')"
  2154. mem_compressed="${mem_compressed:-0}"
  2155. mem_used="$(((${mem_wired//.} + ${mem_active//.} + ${mem_compressed//.}) * 4 / 1024))"
  2156. ;;
  2157. "BSD" | "MINIX")
  2158. # Mem total.
  2159. case $kernel_name in
  2160. "NetBSD"*) mem_total="$(($(sysctl -n hw.physmem64) / 1024 / 1024))" ;;
  2161. *) mem_total="$(($(sysctl -n hw.physmem) / 1024 / 1024))" ;;
  2162. esac
  2163. # Mem free.
  2164. case $kernel_name in
  2165. "NetBSD"*)
  2166. mem_free="$(($(awk -F ':|kB' '/MemFree:/ {printf $2}' /proc/meminfo) / 1024))"
  2167. ;;
  2168. "FreeBSD"* | "DragonFly"*)
  2169. hw_pagesize="$(sysctl -n hw.pagesize)"
  2170. mem_inactive="$(($(sysctl -n vm.stats.vm.v_inactive_count) * hw_pagesize))"
  2171. mem_unused="$(($(sysctl -n vm.stats.vm.v_free_count) * hw_pagesize))"
  2172. mem_cache="$(($(sysctl -n vm.stats.vm.v_cache_count) * hw_pagesize))"
  2173. mem_free="$(((mem_inactive + mem_unused + mem_cache) / 1024 / 1024))"
  2174. ;;
  2175. "MINIX")
  2176. mem_free="$(top -d 1 | awk -F ',' '/^Memory:/ {print $2}')"
  2177. mem_free="${mem_free/M Free}"
  2178. ;;
  2179. "OpenBSD"*) ;;
  2180. *) mem_free="$(($(vmstat | awk 'END {printf $5}') / 1024))" ;;
  2181. esac
  2182. # Mem used.
  2183. case $kernel_name in
  2184. "OpenBSD"*)
  2185. mem_used="$(vmstat | awk 'END {printf $3}')"
  2186. mem_used="${mem_used/M}"
  2187. ;;
  2188. *) mem_used="$((mem_total - mem_free))" ;;
  2189. esac
  2190. ;;
  2191. "Solaris" | "AIX")
  2192. hw_pagesize="$(pagesize)"
  2193. case $os in
  2194. "Solaris")
  2195. pages_total="$(kstat -p unix:0:system_pages:pagestotal | awk '{print $2}')"
  2196. pages_free="$(kstat -p unix:0:system_pages:pagesfree | awk '{print $2}')"
  2197. ;;
  2198. "AIX")
  2199. IFS=$'\n'"| " read -d "" -ra mem_stat <<< "$(svmon -G -O unit=page)"
  2200. pages_total="${mem_stat[11]}"
  2201. pages_free="${mem_stat[16]}"
  2202. ;;
  2203. esac
  2204. mem_total="$((pages_total * hw_pagesize / 1024 / 1024))"
  2205. mem_free="$((pages_free * hw_pagesize / 1024 / 1024))"
  2206. mem_used="$((mem_total - mem_free))"
  2207. ;;
  2208. "Haiku")
  2209. mem_total="$(($(sysinfo -mem | awk -F '\\/ |)' '{print $2; exit}') / 1024 / 1024))"
  2210. mem_used="$(sysinfo -mem | awk -F '\\/|)' '{print $2; exit}')"
  2211. mem_used="$((${mem_used/max} / 1024 / 1024))"
  2212. ;;
  2213. "IRIX")
  2214. IFS=$'\n' read -d "" -ra mem_cmd <<< "$(pmem)"
  2215. IFS=" " read -ra mem_stat <<< "${mem_cmd[0]}"
  2216. mem_total="$((mem_stat[3] / 1024))"
  2217. mem_free="$((mem_stat[5] / 1024))"
  2218. mem_used="$((mem_total - mem_free))"
  2219. ;;
  2220. "FreeMiNT")
  2221. mem="$(awk -F ':|kB' '/MemTotal:|MemFree:/ {printf $2, " "}' /kern/meminfo)"
  2222. mem_free="${mem/* }"
  2223. mem_total="${mem/$mem_free}"
  2224. mem_used="$((mem_total - mem_free))"
  2225. mem_total="$((mem_total / 1024))"
  2226. mem_used="$((mem_used / 1024))"
  2227. ;;
  2228. esac
  2229. [[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total))
  2230. case $memory_unit in
  2231. gib)
  2232. mem_used=$(awk '{printf "%.2f", $1 / $2}' <<< "$mem_used 1024")
  2233. mem_total=$(awk '{printf "%.2f", $1 / $2}' <<< "$mem_total 1024")
  2234. mem_label=GiB
  2235. ;;
  2236. kib)
  2237. mem_used=$((mem_used * 1024))
  2238. mem_total=$((mem_total * 1024))
  2239. mem_label=KiB
  2240. ;;
  2241. esac
  2242. memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB} ${mem_perc:+(${mem_perc}%)}"
  2243. # Bars.
  2244. case $memory_display in
  2245. "bar") memory="$(bar "${mem_used}" "${mem_total}")" ;;
  2246. "infobar") memory="${memory} $(bar "${mem_used}" "${mem_total}")" ;;
  2247. "barinfo") memory="$(bar "${mem_used}" "${mem_total}")${info_color} ${memory}" ;;
  2248. esac
  2249. }
  2250. get_song() {
  2251. players=(
  2252. "amarok"
  2253. "audacious"
  2254. "banshee"
  2255. "bluemindo"
  2256. "clementine"
  2257. "cmus"
  2258. "deadbeef"
  2259. "deepin-music"
  2260. "dragon"
  2261. "elisa"
  2262. "exaile"
  2263. "gnome-music"
  2264. "gmusicbrowser"
  2265. "gogglesmm"
  2266. "guayadeque"
  2267. "io.elementary.music"
  2268. "iTunes"
  2269. "juk"
  2270. "lollypop"
  2271. "mocp"
  2272. "mopidy"
  2273. "mpd"
  2274. "muine"
  2275. "netease-cloud-music"
  2276. "olivia"
  2277. "plasma-browser-integration"
  2278. "playerctl"
  2279. "pogo"
  2280. "pragha"
  2281. "qmmp"
  2282. "quodlibet"
  2283. "rhythmbox"
  2284. "sayonara"
  2285. "smplayer"
  2286. "spotify"
  2287. "Spotify"
  2288. "strawberry"
  2289. "tauonmb"
  2290. "tomahawk"
  2291. "vlc"
  2292. "xmms2d"
  2293. "xnoise"
  2294. "yarock"
  2295. )
  2296. printf -v players "|%s" "${players[@]}"
  2297. player="$(ps aux | awk -v pattern="(${players:1})" \
  2298. '!/ awk / && !/iTunesHelper/ && match($0,pattern){print substr($0,RSTART,RLENGTH); exit}')"
  2299. [[ "$music_player" && "$music_player" != "auto" ]] && player="$music_player"
  2300. get_song_dbus() {
  2301. # Multiple players use an almost identical dbus command to get the information.
  2302. # This function saves us using the same command throughout the function.
  2303. song="$(\
  2304. dbus-send --print-reply --dest=org.mpris.MediaPlayer2."${1}" /org/mpris/MediaPlayer2 \
  2305. org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' \
  2306. string:'Metadata' |\
  2307. awk -F '"' 'BEGIN {RS=" entry"}; /"xesam:artist"/ {a = $4} /"xesam:album"/ {b = $4}
  2308. /"xesam:title"/ {t = $4} END {print a " \n" b " \n" t}'
  2309. )"
  2310. }
  2311. case ${player/*\/} in
  2312. "mocp"*) song="$(mocp -Q '%artist \n%album \n%song')" ;;
  2313. "deadbeef"*) song="$(deadbeef --nowplaying-tf '%artist% \\n%album% \\n%title%')" ;;
  2314. "qmmp"*) song="$(qmmp --nowplaying '%p \n%a \n%t')" ;;
  2315. "gnome-music"*) get_song_dbus "GnomeMusic" ;;
  2316. "lollypop"*) get_song_dbus "Lollypop" ;;
  2317. "clementine"*) get_song_dbus "clementine" ;;
  2318. "juk"*) get_song_dbus "juk" ;;
  2319. "bluemindo"*) get_song_dbus "Bluemindo" ;;
  2320. "guayadeque"*) get_song_dbus "guayadeque" ;;
  2321. "yarock"*) get_song_dbus "yarock" ;;
  2322. "deepin-music"*) get_song_dbus "DeepinMusic" ;;
  2323. "tomahawk"*) get_song_dbus "tomahawk" ;;
  2324. "elisa"*) get_song_dbus "elisa" ;;
  2325. "sayonara"*) get_song_dbus "sayonara" ;;
  2326. "audacious"*) get_song_dbus "audacious" ;;
  2327. "vlc"*) get_song_dbus "vlc" ;;
  2328. "gmusicbrowser"*) get_song_dbus "gmusicbrowser" ;;
  2329. "pragha"*) get_song_dbus "pragha" ;;
  2330. "amarok"*) get_song_dbus "amarok" ;;
  2331. "dragon"*) get_song_dbus "dragonplayer" ;;
  2332. "smplayer"*) get_song_dbus "smplayer" ;;
  2333. "rhythmbox"*) get_song_dbus "rhythmbox" ;;
  2334. "strawberry"*) get_song_dbus "strawberry" ;;
  2335. "gogglesmm"*) get_song_dbus "gogglesmm" ;;
  2336. "xnoise"*) get_song_dbus "xnoise" ;;
  2337. "tauonmb"*) get_song_dbus "tauon" ;;
  2338. "olivia"*) get_song_dbus "olivia" ;;
  2339. "netease-cloud-music"*) get_song_dbus "netease-cloud-music" ;;
  2340. "plasma-browser-integration"*) get_song_dbus "plasma-browser-integration" ;;
  2341. "io.elementary.music"*) get_song_dbus "Music" ;;
  2342. "mpd"* | "mopidy"*)
  2343. song="$(mpc -f '%artist% \n%album% \n%title%' current "${mpc_args[@]}")"
  2344. ;;
  2345. "xmms2d"*)
  2346. song="$(xmms2 current -f "\${artist}"$' \n'"\${album}"$' \n'"\${title}")"
  2347. ;;
  2348. "cmus"*)
  2349. # NOTE: cmus >= 2.8.0 supports mpris2
  2350. song="$(cmus-remote -Q | awk '/tag artist/ {$1=$2=""; a=$0}
  2351. /tag album / {$1=$2=""; b=$0}
  2352. /tag title/ {$1=$2=""; t=$0}
  2353. END {print a " \n" b " \n" t}')"
  2354. ;;
  2355. "spotify"*)
  2356. case $os in
  2357. "Linux") get_song_dbus "spotify" ;;
  2358. "Mac OS X"|"macOS")
  2359. song="$(osascript -e 'tell application "Spotify" to artist of current track as¬
  2360. string & "\n" & album of current track as¬
  2361. string & "\n" & name of current track as string')"
  2362. ;;
  2363. esac
  2364. ;;
  2365. "itunes"*)
  2366. song="$(osascript -e 'tell application "iTunes" to artist of current track as¬
  2367. string & "\n" & album of current track as¬
  2368. string & "\n" & name of current track as string')"
  2369. ;;
  2370. "banshee"*)
  2371. song="$(banshee --query-artist --query-album --query-title |\
  2372. awk -F':' '/^artist/ {a=$2} /^album/ {b=$2} /^title/ {t=$2}
  2373. END {print a " \n" b " \n"t}')"
  2374. ;;
  2375. "exaile"*)
  2376. # NOTE: Exaile >= 4.0.0 will support mpris2.
  2377. song="$(dbus-send --print-reply --dest=org.exaile.Exaile \
  2378. /org/exaile/Exaile org.exaile.Exaile.Query |
  2379. awk -F ':' '{sub(",[^,]*$", "", $3); t=$3;
  2380. sub(",[^,]*$", "", $4); a=$4;
  2381. sub(",[^,]*$", "", $5); b=$5}
  2382. END {print a " \n" b " \n" t}')"
  2383. ;;
  2384. "muine"*)
  2385. song="$(dbus-send --print-reply --dest=org.gnome.Muine /org/gnome/Muine/Player \
  2386. org.gnome.Muine.Player.GetCurrentSong |
  2387. awk -F':' '/^artist/ {a=$2} /^album/ {b=$2} /^title/ {t=$2}
  2388. END {print a " \n" b " \n" t}')"
  2389. ;;
  2390. "quodlibet"*)
  2391. song="$(dbus-send --print-reply --dest=net.sacredchao.QuodLibet \
  2392. /net/sacredchao/QuodLibet net.sacredchao.QuodLibet.CurrentSong |\
  2393. awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4}
  2394. /"title"/ {t=$4} END {print a " \n" b " \n" t}')"
  2395. ;;
  2396. "pogo"*)
  2397. song="$(dbus-send --print-reply --dest=org.mpris.pogo /Player \
  2398. org.freedesktop.MediaPlayer.GetMetadata |
  2399. awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4}
  2400. /"title"/ {t=$4} END {print a " \n" b " \n" t}')"
  2401. ;;
  2402. "playerctl"*)
  2403. song="$(playerctl metadata --format '{{ artist }} \n{{ album }} \n{{ title }}')"
  2404. ;;
  2405. *) mpc &>/dev/null && song="$(mpc -f '%artist% \n%album% \n%title%' current)" || return ;;
  2406. esac
  2407. IFS=$'\n' read -d "" -r artist album title <<< "${song//'\n'/$'\n'}"
  2408. # Make sure empty tags are truly empty.
  2409. artist="$(trim "$artist")"
  2410. album="$(trim "$album")"
  2411. title="$(trim "$title")"
  2412. # Set default values if no tags were found.
  2413. : "${artist:=Unknown Artist}" "${album:=Unknown Album}" "${title:=Unknown Song}"
  2414. # Display Artist, Album and Title on separate lines.
  2415. if [[ "$song_shorthand" == "on" ]]; then
  2416. prin "Artist" "$artist"
  2417. prin "Album" "$album"
  2418. prin "Song" "$title"
  2419. else
  2420. song="${song_format/\%artist\%/$artist}"
  2421. song="${song/\%album\%/$album}"
  2422. song="${song/\%title\%/$title}"
  2423. fi
  2424. }
  2425. get_resolution() {
  2426. case $os in
  2427. "Mac OS X"|"macOS")
  2428. if type -p screenresolution >/dev/null; then
  2429. resolution="$(screenresolution get 2>&1 | awk '/Display/ {printf $6 "Hz, "}')"
  2430. resolution="${resolution//x??@/ @ }"
  2431. else
  2432. resolution="$(system_profiler SPDisplaysDataType |\
  2433. awk '/Resolution:/ {printf $2"x"$4" @ "$6"Hz, "}')"
  2434. fi
  2435. if [[ -e "/Library/Preferences/com.apple.windowserver.plist" ]]; then
  2436. scale_factor="$(PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" \
  2437. /Library/Preferences/com.apple.windowserver.plist)"
  2438. else
  2439. scale_factor=""
  2440. fi
  2441. # If no refresh rate is empty.
  2442. [[ "$resolution" == *"@ Hz"* ]] && \
  2443. resolution="${resolution//@ Hz}"
  2444. [[ "${scale_factor%.*}" == 2 ]] && \
  2445. resolution="${resolution// @/@2x @}"
  2446. if [[ "$refresh_rate" == "off" ]]; then
  2447. resolution="${resolution// @ [0-9][0-9]Hz}"
  2448. resolution="${resolution// @ [0-9][0-9][0-9]Hz}"
  2449. fi
  2450. [[ "$resolution" == *"0Hz"* ]] && \
  2451. resolution="${resolution// @ 0Hz}"
  2452. ;;
  2453. "Windows")
  2454. IFS=$'\n' read -d "" -ra sw \
  2455. <<< "$(wmic path Win32_VideoController get CurrentHorizontalResolution)"
  2456. IFS=$'\n' read -d "" -ra sh \
  2457. <<< "$(wmic path Win32_VideoController get CurrentVerticalResolution)"
  2458. sw=("${sw[@]//CurrentHorizontalResolution}")
  2459. sh=("${sh[@]//CurrentVerticalResolution}")
  2460. for ((mn = 0; mn < ${#sw[@]}; mn++)) {
  2461. [[ ${sw[mn]//[[:space:]]} && ${sh[mn]//[[:space:]]} ]] &&
  2462. resolution+="${sw[mn]//[[:space:]]}x${sh[mn]//[[:space:]]}, "
  2463. }
  2464. resolution=${resolution%,}
  2465. ;;
  2466. "Haiku")
  2467. resolution="$(screenmode | awk -F ' |, ' 'END{printf $2 "x" $3 " @ " $6 $7}')"
  2468. [[ "$refresh_rate" == "off" ]] && resolution="${resolution/ @*}"
  2469. ;;
  2470. "FreeMiNT")
  2471. # Need to block X11 queries
  2472. ;;
  2473. *)
  2474. if type -p xrandr >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
  2475. case $refresh_rate in
  2476. "on")
  2477. resolution="$(xrandr --nograb --current |\
  2478. awk 'match($0,/[0-9]*\.[0-9]*\*/) {
  2479. printf $1 " @ " substr($0,RSTART,RLENGTH) "Hz, "}')"
  2480. ;;
  2481. "off")
  2482. resolution="$(xrandr --nograb --current |\
  2483. awk -F 'connected |\\+|\\(' \
  2484. '/ connected.*[0-9]+x[0-9]+\+/ && $2 {printf $2 ", "}')"
  2485. resolution="${resolution/primary, }"
  2486. resolution="${resolution/primary }"
  2487. ;;
  2488. esac
  2489. resolution="${resolution//\*}"
  2490. elif type -p xwininfo >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
  2491. read -r w h \
  2492. <<< "$(xwininfo -root | awk -F':' '/Width|Height/ {printf $2}')"
  2493. resolution="${w}x${h}"
  2494. elif type -p xdpyinfo >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
  2495. resolution="$(xdpyinfo | awk '/dimensions:/ {printf $2}')"
  2496. elif [[ -d /sys/class/drm ]]; then
  2497. for dev in /sys/class/drm/*/modes; do
  2498. read -r resolution _ < "$dev"
  2499. [[ $resolution ]] && break
  2500. done
  2501. fi
  2502. ;;
  2503. esac
  2504. resolution="${resolution%,*}"
  2505. [[ -z "${resolution/x}" ]] && resolution=
  2506. }
  2507. get_style() {
  2508. # Fix weird output when the function is run multiple times.
  2509. unset gtk2_theme gtk3_theme theme path
  2510. if [[ "$DISPLAY" && $os != "Mac OS X" && $os != "macOS" ]]; then
  2511. # Get DE if user has disabled the function.
  2512. ((de_run != 1)) && get_de
  2513. # Remove version from '$de'.
  2514. [[ $de_version == on ]] && de=${de/ *}
  2515. # Check for DE Theme.
  2516. case $de in
  2517. "KDE"* | "Plasma"*)
  2518. kde_config_dir
  2519. if [[ -f "${kde_config_dir}/kdeglobals" ]]; then
  2520. kde_config_file="${kde_config_dir}/kdeglobals"
  2521. kde_theme="$(grep "^${kde}" "$kde_config_file")"
  2522. kde_theme="${kde_theme/*=}"
  2523. if [[ "$kde" == "font" ]]; then
  2524. kde_font_size="${kde_theme#*,}"
  2525. kde_font_size="${kde_font_size/,*}"
  2526. kde_theme="${kde_theme/,*} ${kde_theme/*,} ${kde_font_size}"
  2527. fi
  2528. kde_theme="$kde_theme [$de], "
  2529. else
  2530. err "Theme: KDE config files not found, skipping."
  2531. fi
  2532. ;;
  2533. *"Cinnamon"*)
  2534. if type -p gsettings >/dev/null; then
  2535. gtk3_theme="$(gsettings get org.cinnamon.desktop.interface "$gsettings")"
  2536. gtk2_theme="$gtk3_theme"
  2537. fi
  2538. ;;
  2539. "Gnome"* | "Unity"* | "Budgie"*)
  2540. if type -p gsettings >/dev/null; then
  2541. gtk3_theme="$(gsettings get org.gnome.desktop.interface "$gsettings")"
  2542. gtk2_theme="$gtk3_theme"
  2543. elif type -p gconftool-2 >/dev/null; then
  2544. gtk2_theme="$(gconftool-2 -g /desktop/gnome/interface/"$gconf")"
  2545. fi
  2546. ;;
  2547. "Mate"*)
  2548. gtk3_theme="$(gsettings get org.mate.interface "$gsettings")"
  2549. gtk2_theme="$gtk3_theme"
  2550. ;;
  2551. "Xfce"*)
  2552. type -p xfconf-query >/dev/null && \
  2553. gtk2_theme="$(xfconf-query -c xsettings -p "$xfconf")"
  2554. ;;
  2555. esac
  2556. # Check for general GTK2 Theme.
  2557. if [[ -z "$gtk2_theme" ]]; then
  2558. if [[ -n "$GTK2_RC_FILES" ]]; then
  2559. IFS=: read -ra rc_files <<< "$GTK2_RC_FILES"
  2560. gtk2_theme="$(grep "^[^#]*${name}" "${rc_files[@]}")"
  2561. elif [[ -f "${HOME}/.gtkrc-2.0" ]]; then
  2562. gtk2_theme="$(grep "^[^#]*${name}" "${HOME}/.gtkrc-2.0")"
  2563. elif [[ -f "/etc/gtk-2.0/gtkrc" ]]; then
  2564. gtk2_theme="$(grep "^[^#]*${name}" /etc/gtk-2.0/gtkrc)"
  2565. elif [[ -f "/usr/share/gtk-2.0/gtkrc" ]]; then
  2566. gtk2_theme="$(grep "^[^#]*${name}" /usr/share/gtk-2.0/gtkrc)"
  2567. fi
  2568. gtk2_theme="${gtk2_theme/*${name}*=}"
  2569. fi
  2570. # Check for general GTK3 Theme.
  2571. if [[ -z "$gtk3_theme" ]]; then
  2572. if [[ -f "${XDG_CONFIG_HOME}/gtk-3.0/settings.ini" ]]; then
  2573. gtk3_theme="$(grep "^[^#]*$name" "${XDG_CONFIG_HOME}/gtk-3.0/settings.ini")"
  2574. elif type -p gsettings >/dev/null; then
  2575. gtk3_theme="$(gsettings get org.gnome.desktop.interface "$gsettings")"
  2576. elif [[ -f "/etc/gtk-3.0/settings.ini" ]]; then
  2577. gtk3_theme="$(grep "^[^#]*$name" /etc/gtk-3.0/settings.ini)"
  2578. elif [[ -f "/usr/share/gtk-3.0/settings.ini" ]]; then
  2579. gtk3_theme="$(grep "^[^#]*$name" /usr/share/gtk-3.0/settings.ini)"
  2580. fi
  2581. gtk3_theme="${gtk3_theme/${name}*=}"
  2582. fi
  2583. # Trim whitespace.
  2584. gtk2_theme="$(trim "$gtk2_theme")"
  2585. gtk3_theme="$(trim "$gtk3_theme")"
  2586. # Remove quotes.
  2587. gtk2_theme="$(trim_quotes "$gtk2_theme")"
  2588. gtk3_theme="$(trim_quotes "$gtk3_theme")"
  2589. # Toggle visibility of GTK themes.
  2590. [[ "$gtk2" == "off" ]] && unset gtk2_theme
  2591. [[ "$gtk3" == "off" ]] && unset gtk3_theme
  2592. # Format the string based on which themes exist.
  2593. if [[ "$gtk2_theme" && "$gtk2_theme" == "$gtk3_theme" ]]; then
  2594. gtk3_theme+=" [GTK2/3]"
  2595. unset gtk2_theme
  2596. elif [[ "$gtk2_theme" && "$gtk3_theme" ]]; then
  2597. gtk2_theme+=" [GTK2], "
  2598. gtk3_theme+=" [GTK3] "
  2599. else
  2600. [[ "$gtk2_theme" ]] && gtk2_theme+=" [GTK2] "
  2601. [[ "$gtk3_theme" ]] && gtk3_theme+=" [GTK3] "
  2602. fi
  2603. # Final string.
  2604. theme="${kde_theme}${gtk2_theme}${gtk3_theme}"
  2605. theme="${theme%, }"
  2606. # Make the output shorter by removing "[GTKX]" from the string.
  2607. if [[ "$gtk_shorthand" == "on" ]]; then
  2608. theme="${theme// '[GTK'[0-9]']'}"
  2609. theme="${theme/ '[GTK2/3]'}"
  2610. theme="${theme/ '[KDE]'}"
  2611. theme="${theme/ '[Plasma]'}"
  2612. fi
  2613. fi
  2614. }
  2615. get_theme() {
  2616. name="gtk-theme-name"
  2617. gsettings="gtk-theme"
  2618. gconf="gtk_theme"
  2619. xfconf="/Net/ThemeName"
  2620. kde="Name"
  2621. get_style
  2622. }
  2623. get_icons() {
  2624. name="gtk-icon-theme-name"
  2625. gsettings="icon-theme"
  2626. gconf="icon_theme"
  2627. xfconf="/Net/IconThemeName"
  2628. kde="Theme"
  2629. get_style
  2630. icons="$theme"
  2631. }
  2632. get_font() {
  2633. name="gtk-font-name"
  2634. gsettings="font-name"
  2635. gconf="font_theme"
  2636. xfconf="/Gtk/FontName"
  2637. kde="font"
  2638. get_style
  2639. font="$theme"
  2640. }
  2641. get_term() {
  2642. # If function was run, stop here.
  2643. ((term_run == 1)) && return
  2644. # Workaround for macOS systems that
  2645. # don't support the block below.
  2646. case $TERM_PROGRAM in
  2647. "iTerm.app") term="iTerm2" ;;
  2648. "Terminal.app") term="Apple Terminal" ;;
  2649. "Hyper") term="HyperTerm" ;;
  2650. *) term="${TERM_PROGRAM/\.app}" ;;
  2651. esac
  2652. # Most likely TosWin2 on FreeMiNT - quick check
  2653. [[ "$TERM" == "tw52" || "$TERM" == "tw100" ]] && term="TosWin2"
  2654. [[ "$SSH_CONNECTION" ]] && term="$SSH_TTY"
  2655. [[ "$WT_SESSION" ]] && term="Windows Terminal"
  2656. # Check $PPID for terminal emulator.
  2657. while [[ -z "$term" ]]; do
  2658. parent="$(get_ppid "$parent")"
  2659. [[ -z "$parent" ]] && break
  2660. name="$(get_process_name "$parent")"
  2661. case ${name// } in
  2662. "${SHELL/*\/}"|*"sh"|"screen"|"su"*) ;;
  2663. "login"*|*"Login"*|"init"|"(init)")
  2664. term="$(tty)"
  2665. ;;
  2666. "ruby"|"1"|"tmux"*|"systemd"|"sshd"*|"python"*|"USER"*"PID"*|"kdeinit"*|"launchd"*)
  2667. break
  2668. ;;
  2669. "gnome-terminal-") term="gnome-terminal" ;;
  2670. "urxvtd") term="urxvt" ;;
  2671. *"nvim") term="Neovim Terminal" ;;
  2672. *"NeoVimServer"*) term="VimR Terminal" ;;
  2673. *)
  2674. # Fix issues with long process names on Linux.
  2675. [[ $os == Linux ]] && term=$(realpath "/proc/$parent/exe")
  2676. term="${name##*/}"
  2677. # Fix wrapper names in Nix.
  2678. [[ $term == .*-wrapped ]] && {
  2679. term="${term#.}"
  2680. term="${term%-wrapped}"
  2681. }
  2682. ;;
  2683. esac
  2684. done
  2685. # Log that the function was run.
  2686. term_run=1
  2687. }
  2688. get_term_font() {
  2689. ((term_run != 1)) && get_term
  2690. case $term in
  2691. "alacritty"*)
  2692. shopt -s nullglob
  2693. confs=({$XDG_CONFIG_HOME,$HOME}/{alacritty,}/{.,}alacritty.ym?)
  2694. shopt -u nullglob
  2695. [[ -f "${confs[0]}" ]] || return
  2696. term_font="$(awk -F ':|#' '/normal:/ {getline; print}' "${confs[0]}")"
  2697. term_font="${term_font/*family:}"
  2698. term_font="${term_font/$'\n'*}"
  2699. term_font="${term_font/\#*}"
  2700. ;;
  2701. "Apple_Terminal")
  2702. term_font="$(osascript <<END
  2703. tell application "Terminal" to font name of window frontmost
  2704. END
  2705. )"
  2706. ;;
  2707. "iTerm2")
  2708. # Unfortunately the profile name is not unique, but it seems to be the only thing
  2709. # that identifies an active profile. There is the "id of current session of current win-
  2710. # dow" though, but that does not match to a guid in the plist.
  2711. # So, be warned, collisions may occur!
  2712. # See: https://groups.google.com/forum/#!topic/iterm2-discuss/0tO3xZ4Zlwg
  2713. local current_profile_name profiles_count profile_name diff_font
  2714. current_profile_name="$(osascript <<END
  2715. tell application "iTerm2" to profile name \
  2716. of current session of current window
  2717. END
  2718. )"
  2719. # Warning: Dynamic profiles are not taken into account here!
  2720. # https://www.iterm2.com/documentation-dynamic-profiles.html
  2721. font_file="${HOME}/Library/Preferences/com.googlecode.iterm2.plist"
  2722. # Count Guids in "New Bookmarks"; they should be unique
  2723. profiles_count="$(PlistBuddy -c "Print ':New Bookmarks:'" "$font_file" | \
  2724. grep -w -c "Guid")"
  2725. for ((i=0; i<profiles_count; i++)); do
  2726. profile_name="$(PlistBuddy -c "Print ':New Bookmarks:${i}:Name:'" "$font_file")"
  2727. if [[ "$profile_name" == "$current_profile_name" ]]; then
  2728. # "Normal Font"
  2729. term_font="$(PlistBuddy -c "Print ':New Bookmarks:${i}:Normal Font:'" \
  2730. "$font_file")"
  2731. # Font for non-ascii characters
  2732. # Only check for a different non-ascii font, if the user checked
  2733. # the "use a different font for non-ascii text" switch.
  2734. diff_font="$(PlistBuddy -c "Print ':New Bookmarks:${i}:Use Non-ASCII Font:'" \
  2735. "$font_file")"
  2736. if [[ "$diff_font" == "true" ]]; then
  2737. non_ascii="$(PlistBuddy -c "Print ':New Bookmarks:${i}:Non Ascii Font:'" \
  2738. "$font_file")"
  2739. [[ "$term_font" != "$non_ascii" ]] && \
  2740. term_font="$term_font (normal) / $non_ascii (non-ascii)"
  2741. fi
  2742. fi
  2743. done
  2744. ;;
  2745. "deepin-terminal"*)
  2746. term_font="$(awk -F '=' '/font=/ {a=$2} /font_size/ {b=$2} END {print a,b}' \
  2747. "${XDG_CONFIG_HOME}/deepin/deepin-terminal/config.conf")"
  2748. ;;
  2749. "GNUstep_Terminal")
  2750. term_font="$(awk -F '>|<' '/>TerminalFont</ {getline; f=$3}
  2751. />TerminalFontSize</ {getline; s=$3} END {print f,s}' \
  2752. "${HOME}/GNUstep/Defaults/Terminal.plist")"
  2753. ;;
  2754. "Hyper"*)
  2755. term_font="$(awk -F':|,' '/fontFamily/ {print $2; exit}' "${HOME}/.hyper.js")"
  2756. term_font="$(trim_quotes "$term_font")"
  2757. ;;
  2758. "kitty"*)
  2759. kitty_config="$(kitty --debug-config)"
  2760. [[ "$kitty_config" != *font_family* ]] && return
  2761. term_font="$(awk '/^font_family|^font_size/ {$1="";gsub("^ *","",$0);print $0}' \
  2762. <<< "$kitty_config")"
  2763. ;;
  2764. "konsole" | "yakuake")
  2765. # Get Process ID of current konsole window / tab
  2766. child="$(get_ppid "$$")"
  2767. QT_BINDIR="$(qtpaths --binaries-dir)" && PATH+=":$QT_BINDIR"
  2768. IFS=$'\n' read -d "" -ra konsole_instances \
  2769. <<< "$(qdbus | awk '/org.kde.konsole/ {print $1}')"
  2770. for i in "${konsole_instances[@]}"; do
  2771. IFS=$'\n' read -d "" -ra konsole_sessions <<< "$(qdbus "$i" | grep -F '/Sessions/')"
  2772. for session in "${konsole_sessions[@]}"; do
  2773. if ((child == "$(qdbus "$i" "$session" processId)")); then
  2774. profile="$(qdbus "$i" "$session" environment |\
  2775. awk -F '=' '/KONSOLE_PROFILE_NAME/ {print $2}')"
  2776. [[ $profile ]] || profile="$(qdbus "$i" "$session" profile)"
  2777. break
  2778. fi
  2779. done
  2780. [[ $profile ]] && break
  2781. done
  2782. [[ $profile ]] || return
  2783. # We could have two profile files for the same profile name, take first match
  2784. profile_filename="$(grep -l "Name=${profile}" "$HOME"/.local/share/konsole/*.profile)"
  2785. profile_filename="${profile_filename/$'\n'*}"
  2786. [[ $profile_filename ]] && \
  2787. term_font="$(awk -F '=|,' '/Font=/ {print $2,$3}' "$profile_filename")"
  2788. ;;
  2789. "lxterminal"*)
  2790. term_font="$(awk -F '=' '/fontname=/ {print $2; exit}' \
  2791. "${XDG_CONFIG_HOME}/lxterminal/lxterminal.conf")"
  2792. ;;
  2793. "mate-terminal")
  2794. # To get the actual config we have to create a temporarily file with the
  2795. # --save-config option.
  2796. mateterm_config="/tmp/mateterm.cfg"
  2797. # Ensure /tmp exists and we do not overwrite anything.
  2798. if [[ -d "/tmp" && ! -f "$mateterm_config" ]]; then
  2799. mate-terminal --save-config="$mateterm_config"
  2800. role="$(xprop -id "${WINDOWID}" WM_WINDOW_ROLE)"
  2801. role="${role##* }"
  2802. role="${role//\"}"
  2803. profile="$(awk -F '=' -v r="$role" \
  2804. '$0~r {
  2805. getline;
  2806. if(/Maximized/) getline;
  2807. if(/Fullscreen/) getline;
  2808. id=$2"]"
  2809. } $0~id {if(id) {getline; print $2; exit}}' \
  2810. "$mateterm_config")"
  2811. rm -f "$mateterm_config"
  2812. mate_get() {
  2813. gsettings get org.mate.terminal.profile:/org/mate/terminal/profiles/"$1"/ "$2"
  2814. }
  2815. if [[ "$(mate_get "$profile" "use-system-font")" == "true" ]]; then
  2816. term_font="$(gsettings get org.mate.interface monospace-font-name)"
  2817. else
  2818. term_font="$(mate_get "$profile" "font")"
  2819. fi
  2820. term_font="$(trim_quotes "$term_font")"
  2821. fi
  2822. ;;
  2823. "mintty")
  2824. term_font="$(awk -F '=' '!/^($|#)/ && /Font/ {printf $2; exit}' "${HOME}/.minttyrc")"
  2825. ;;
  2826. "pantheon"*)
  2827. term_font="$(gsettings get org.pantheon.terminal.settings font)"
  2828. [[ -z "${term_font//\'}" ]] && \
  2829. term_font="$(gsettings get org.gnome.desktop.interface monospace-font-name)"
  2830. term_font="$(trim_quotes "$term_font")"
  2831. ;;
  2832. "qterminal")
  2833. term_font="$(awk -F '=' '/fontFamily=/ {a=$2} /fontSize=/ {b=$2} END {print a,b}' \
  2834. "${XDG_CONFIG_HOME}/qterminal.org/qterminal.ini")"
  2835. ;;
  2836. "sakura"*)
  2837. term_font="$(awk -F '=' '/^font=/ {print $2; exit}' \
  2838. "${XDG_CONFIG_HOME}/sakura/sakura.conf")"
  2839. ;;
  2840. "st")
  2841. term_font="$(ps -o command= -p "$parent" | grep -F -- "-f")"
  2842. if [[ "$term_font" ]]; then
  2843. term_font="${term_font/*-f/}"
  2844. term_font="${term_font/ -*/}"
  2845. else
  2846. # On Linux we can get the exact path to the running binary through the procfs
  2847. # (in case `st` is launched from outside of $PATH) on other systems we just
  2848. # have to guess and assume `st` is invoked from somewhere in the users $PATH
  2849. [[ -L "/proc/$parent/exe" ]] && binary="/proc/$parent/exe" || binary="$(type -p st)"
  2850. # Grep the output of strings on the `st` binary for anything that looks vaguely
  2851. # like a font definition. NOTE: There is a slight limitation in this approach.
  2852. # Technically "Font Name" is a valid font. As it doesn't specify any font options
  2853. # though it is hard to match it correctly amongst the rest of the noise.
  2854. [[ -n "$binary" ]] && \
  2855. term_font="$(strings "$binary" | grep -F -m 1 \
  2856. -e "pixelsize=" \
  2857. -e "size=" \
  2858. -e "antialias=" \
  2859. -e "autohint=")"
  2860. fi
  2861. term_font="${term_font/xft:}"
  2862. term_font="${term_font/:*}"
  2863. ;;
  2864. "terminology")
  2865. term_font="$(strings "${XDG_CONFIG_HOME}/terminology/config/standard/base.cfg" |\
  2866. awk '/^font\.name$/{print a}{a=$0}')"
  2867. term_font="${term_font/.pcf}"
  2868. term_font="${term_font/:*}"
  2869. ;;
  2870. "termite")
  2871. [[ -f "${XDG_CONFIG_HOME}/termite/config" ]] && \
  2872. termite_config="${XDG_CONFIG_HOME}/termite/config"
  2873. term_font="$(awk -F '= ' '/\[options\]/ {
  2874. opt=1
  2875. }
  2876. /^\s*font/ {
  2877. if(opt==1) a=$2;
  2878. opt=0
  2879. } END {print a}' "/etc/xdg/termite/config" \
  2880. "$termite_config")"
  2881. ;;
  2882. urxvt|urxvtd|rxvt-unicode|xterm)
  2883. xrdb=$(xrdb -query)
  2884. term_font=$(grep -im 1 -e "^${term/d}"'\**\.*font:' -e '^\*font:' <<< "$xrdb")
  2885. term_font=${term_font/*"*font:"}
  2886. term_font=${term_font/*".font:"}
  2887. term_font=${term_font/*"*.font:"}
  2888. term_font=$(trim "$term_font")
  2889. [[ -z $term_font && $term == xterm ]] && \
  2890. term_font=$(grep '^XTerm.vt100.faceName' <<< "$xrdb")
  2891. term_font=$(trim "${term_font/*"faceName:"}")
  2892. # xft: isn't required at the beginning so we prepend it if it's missing
  2893. [[ ${term_font:0:1} != '-' && ${term_font:0:4} != xft: ]] && \
  2894. term_font=xft:$term_font
  2895. # Xresources has two different font formats, this checks which
  2896. # one is in use and formats it accordingly.
  2897. case $term_font in
  2898. *xft:*)
  2899. term_font=${term_font/xft:}
  2900. term_font=${term_font/:*}
  2901. ;;
  2902. -*)
  2903. IFS=- read -r _ _ term_font _ <<< "$term_font"
  2904. ;;
  2905. esac
  2906. ;;
  2907. "xfce4-terminal")
  2908. term_font="$(awk -F '=' '/^FontName/{a=$2}/^FontUseSystem=TRUE/{a=$0} END {print a}' \
  2909. "${XDG_CONFIG_HOME}/xfce4/terminal/terminalrc")"
  2910. [[ "$term_font" == "FontUseSystem=TRUE" ]] && \
  2911. term_font="$(gsettings get org.gnome.desktop.interface monospace-font-name)"
  2912. term_font="$(trim_quotes "$term_font")"
  2913. # Default fallback font hardcoded in terminal-preferences.c
  2914. [[ -z "$term_font" ]] && term_font="Monospace 12"
  2915. ;;
  2916. conemu-*)
  2917. # Could have used `eval set -- "$ConEmuArgs"` instead for arg parsing.
  2918. readarray -t ce_arg_list < <(xargs -n1 printf "%s\n" <<< "${ConEmuArgs-}")
  2919. for ce_arg_idx in "${!ce_arg_list[@]}"; do
  2920. # Search for "-LoadCfgFile" arg
  2921. [[ "${ce_arg_list[$ce_arg_idx]}" == -LoadCfgFile ]] && {
  2922. # Conf path is the next arg
  2923. ce_conf=${ce_arg_list[++ce_arg_idx]}
  2924. break
  2925. }
  2926. done
  2927. # https://conemu.github.io/en/ConEmuXml.html#search-sequence
  2928. for ce_conf in "$ce_conf" "${ConEmuDir-}\ConEmu.xml" "${ConEmuDir-}\.ConEmu.xml" \
  2929. "${ConEmuBaseDir-}\ConEmu.xml" "${ConEmuBaseDir-}\.ConEmu.xml" \
  2930. "$APPDATA\ConEmu.xml" "$APPDATA\.ConEmu.xml"; do
  2931. # Search for first conf file available
  2932. [[ -f "$ce_conf" ]] && {
  2933. # Very basic XML parsing
  2934. term_font="$(awk '/name="FontName"/ && match($0, /data="([^"]*)"/) {
  2935. print substr($0, RSTART+6, RLENGTH-7)}' "$ce_conf")"
  2936. break
  2937. }
  2938. done
  2939. # Null-terminated contents in /proc/registry files triggers a Bash warning.
  2940. [[ "$term_font" ]] || read -r term_font < \
  2941. /proc/registry/HKEY_CURRENT_USER/Software/ConEmu/.Vanilla/FontName
  2942. ;;
  2943. esac
  2944. }
  2945. get_disk() {
  2946. type -p df &>/dev/null ||
  2947. { err "Disk requires 'df' to function. Install 'df' to get disk info."; return; }
  2948. df_version=$(df --version 2>&1)
  2949. case $df_version in
  2950. *IMitv*) df_flags=(-P -g) ;; # AIX
  2951. *befhikm*) df_flags=(-P -k) ;; # IRIX
  2952. *hiklnP*) df_flags=(-h) ;; # OpenBSD
  2953. *Tracker*) # Haiku
  2954. err "Your version of df cannot be used due to the non-standard flags"
  2955. return
  2956. ;;
  2957. *) df_flags=(-P -h) ;;
  2958. esac
  2959. # Create an array called 'disks' where each element is a separate line from
  2960. # df's output. We then unset the first element which removes the column titles.
  2961. IFS=$'\n' read -d "" -ra disks <<< "$(df "${df_flags[@]}" "${disk_show[@]:-/}")"
  2962. unset "disks[0]"
  2963. # Stop here if 'df' fails to print disk info.
  2964. [[ ${disks[*]} ]] || {
  2965. err "Disk: df failed to print the disks, make sure the disk_show array is set properly."
  2966. return
  2967. }
  2968. for disk in "${disks[@]}"; do
  2969. # Create a second array and make each element split at whitespace this time.
  2970. IFS=" " read -ra disk_info <<< "$disk"
  2971. disk_perc=${disk_info[-2]/\%}
  2972. case $disk_percent in
  2973. off) disk_perc=
  2974. esac
  2975. case $df_version in
  2976. *befhikm*)
  2977. disk="$((disk_info[-4]/1024/1024))G / $((disk_info[-5]/1024/1024))G"
  2978. disk+="${disk_perc:+ ($disk_perc%)}"
  2979. ;;
  2980. *)
  2981. disk="${disk_info[-4]/i} / ${disk_info[-5]/i}${disk_perc:+ ($disk_perc%)}"
  2982. ;;
  2983. esac
  2984. case $disk_subtitle in
  2985. name)
  2986. disk_sub=${disk_info[*]::${#disk_info[@]}-5}
  2987. ;;
  2988. dir)
  2989. disk_sub=${disk_info[-1]/*\/}
  2990. disk_sub=${disk_sub:-${disk_info[-1]}}
  2991. ;;
  2992. none) ;;
  2993. *)
  2994. disk_sub=${disk_info[-1]}
  2995. ;;
  2996. esac
  2997. case $disk_display in
  2998. bar) disk="$(bar "$disk_perc" "100")" ;;
  2999. infobar) disk+=" $(bar "$disk_perc" "100")" ;;
  3000. barinfo) disk="$(bar "$disk_perc" "100")${info_color} $disk" ;;
  3001. perc) disk="${disk_perc}% $(bar "$disk_perc" "100")" ;;
  3002. esac
  3003. # Append '(disk mount point)' to the subtitle.
  3004. if [[ "$subtitle" ]]; then
  3005. prin "$subtitle${disk_sub:+ ($disk_sub)}" "$disk"
  3006. else
  3007. prin "$disk_sub" "$disk"
  3008. fi
  3009. done
  3010. }
  3011. get_battery() {
  3012. case $os in
  3013. "Linux")
  3014. # We use 'prin' here so that we can do multi battery support
  3015. # with a single battery per line.
  3016. for bat in "/sys/class/power_supply/"{BAT,axp288_fuel_gauge,CMB}*; do
  3017. capacity="$(< "${bat}/capacity")"
  3018. status="$(< "${bat}/status")"
  3019. if [[ "$capacity" ]]; then
  3020. battery="${capacity}% [${status}]"
  3021. case $battery_display in
  3022. "bar") battery="$(bar "$capacity" 100)" ;;
  3023. "infobar") battery+=" $(bar "$capacity" 100)" ;;
  3024. "barinfo") battery="$(bar "$capacity" 100)${info_color} ${battery}" ;;
  3025. esac
  3026. bat="${bat/*axp288_fuel_gauge}"
  3027. prin "${subtitle:+${subtitle}${bat: -1}}" "$battery"
  3028. fi
  3029. done
  3030. return
  3031. ;;
  3032. "BSD")
  3033. case $kernel_name in
  3034. "FreeBSD"* | "DragonFly"*)
  3035. battery="$(acpiconf -i 0 | awk -F ':\t' '/Remaining capacity/ {print $2}')"
  3036. battery_state="$(acpiconf -i 0 | awk -F ':\t\t\t' '/State/ {print $2}')"
  3037. ;;
  3038. "NetBSD"*)
  3039. battery="$(envstat | awk '\\(|\\)' '/charge:/ {print $2}')"
  3040. battery="${battery/\.*/%}"
  3041. ;;
  3042. "OpenBSD"* | "Bitrig"*)
  3043. battery0full="$(sysctl -n hw.sensors.acpibat0.watthour0\
  3044. hw.sensors.acpibat0.amphour0)"
  3045. battery0full="${battery0full%% *}"
  3046. battery0now="$(sysctl -n hw.sensors.acpibat0.watthour3\
  3047. hw.sensors.acpibat0.amphour3)"
  3048. battery0now="${battery0now%% *}"
  3049. state="$(sysctl -n hw.sensors.acpibat0.raw0)"
  3050. state="${state##? (battery }"
  3051. state="${state%)*}"
  3052. [[ "${state}" == "charging" ]] && battery_state="charging"
  3053. [[ "$battery0full" ]] && \
  3054. battery="$((100 * ${battery0now/\.} / ${battery0full/\.}))%"
  3055. ;;
  3056. esac
  3057. ;;
  3058. "Mac OS X"|"macOS")
  3059. battery="$(pmset -g batt | grep -o '[0-9]*%')"
  3060. state="$(pmset -g batt | awk '/;/ {print $4}')"
  3061. [[ "$state" == "charging;" ]] && battery_state="charging"
  3062. ;;
  3063. "Windows")
  3064. battery="$(wmic Path Win32_Battery get EstimatedChargeRemaining)"
  3065. battery="${battery/EstimatedChargeRemaining}"
  3066. battery="$(trim "$battery")%"
  3067. ;;
  3068. "Haiku")
  3069. battery0full="$(awk -F '[^0-9]*' 'NR==2 {print $4}' /dev/power/acpi_battery/0)"
  3070. battery0now="$(awk -F '[^0-9]*' 'NR==5 {print $4}' /dev/power/acpi_battery/0)"
  3071. battery="$((battery0full * 100 / battery0now))%"
  3072. ;;
  3073. esac
  3074. [[ "$battery_state" ]] && battery+=" Charging"
  3075. case $battery_display in
  3076. "bar") battery="$(bar "${battery/\%*}" 100)" ;;
  3077. "infobar") battery="${battery} $(bar "${battery/\%*}" 100)" ;;
  3078. "barinfo") battery="$(bar "${battery/\%*}" 100)${info_color} ${battery}" ;;
  3079. esac
  3080. }
  3081. get_local_ip() {
  3082. case $os in
  3083. "Linux" | "BSD" | "Solaris" | "AIX" | "IRIX")
  3084. local_ip="$(ip route get 1 | awk -F'src' '{print $2; exit}')"
  3085. local_ip="${local_ip/uid*}"
  3086. [[ -z "$local_ip" ]] && local_ip="$(ifconfig -a | awk '/broadcast/ {print $2; exit}')"
  3087. ;;
  3088. "MINIX")
  3089. local_ip="$(ifconfig | awk '{printf $3; exit}')"
  3090. ;;
  3091. "Mac OS X" | "macOS" | "iPhone OS")
  3092. local_ip="$(ipconfig getifaddr en0)"
  3093. [[ -z "$local_ip" ]] && local_ip="$(ipconfig getifaddr en1)"
  3094. ;;
  3095. "Windows")
  3096. local_ip="$(ipconfig | awk -F ': ' '/IPv4 Address/ {printf $2 ", "}')"
  3097. local_ip="${local_ip%\,*}"
  3098. ;;
  3099. "Haiku")
  3100. local_ip="$(ifconfig | awk -F ': ' '/Bcast/ {print $2}')"
  3101. local_ip="${local_ip/, Bcast}"
  3102. ;;
  3103. esac
  3104. }
  3105. get_public_ip() {
  3106. if type -p dig >/dev/null; then
  3107. public_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com)"
  3108. [[ "$public_ip" =~ ^\; ]] && unset public_ip
  3109. fi
  3110. if [[ -z "$public_ip" ]] && type -p drill >/dev/null; then
  3111. public_ip="$(drill myip.opendns.com @resolver1.opendns.com | \
  3112. awk '/^myip\./ && $3 == "IN" {print $5}')"
  3113. fi
  3114. if [[ -z "$public_ip" ]] && type -p curl >/dev/null; then
  3115. public_ip="$(curl --max-time "$public_ip_timeout" -w '\n' "$public_ip_host")"
  3116. fi
  3117. if [[ -z "$public_ip" ]] && type -p wget >/dev/null; then
  3118. public_ip="$(wget -T "$public_ip_timeout" -qO- "$public_ip_host")"
  3119. fi
  3120. }
  3121. get_users() {
  3122. users="$(who | awk '!seen[$1]++ {printf $1 ", "}')"
  3123. users="${users%\,*}"
  3124. }
  3125. get_locale() {
  3126. locale="$sys_locale"
  3127. }
  3128. get_gpu_driver() {
  3129. case $os in
  3130. "Linux")
  3131. gpu_driver="$(lspci -nnk | awk -F ': ' \
  3132. '/Display|3D|VGA/{nr[NR+2]}; NR in nr {printf $2 ", "; exit}')"
  3133. gpu_driver="${gpu_driver%, }"
  3134. if [[ "$gpu_driver" == *"nvidia"* ]]; then
  3135. gpu_driver="$(< /proc/driver/nvidia/version)"
  3136. gpu_driver="${gpu_driver/*Module }"
  3137. gpu_driver="NVIDIA ${gpu_driver/ *}"
  3138. fi
  3139. ;;
  3140. "Mac OS X"|"macOS")
  3141. if [[ "$(kextstat | grep "GeForceWeb")" != "" ]]; then
  3142. gpu_driver="NVIDIA Web Driver"
  3143. else
  3144. gpu_driver="macOS Default Graphics Driver"
  3145. fi
  3146. ;;
  3147. esac
  3148. }
  3149. get_cols() {
  3150. local blocks blocks2 cols
  3151. if [[ "$color_blocks" == "on" ]]; then
  3152. # Convert the width to space chars.
  3153. printf -v block_width "%${block_width}s"
  3154. # Generate the string.
  3155. for ((block_range[0]; block_range[0]<=block_range[1]; block_range[0]++)); do
  3156. case ${block_range[0]} in
  3157. [0-7])
  3158. printf -v blocks '%b\e[3%bm\e[4%bm%b' \
  3159. "$blocks" "${block_range[0]}" "${block_range[0]}" "$block_width"
  3160. ;;
  3161. *)
  3162. printf -v blocks2 '%b\e[38;5;%bm\e[48;5;%bm%b' \
  3163. "$blocks2" "${block_range[0]}" "${block_range[0]}" "$block_width"
  3164. ;;
  3165. esac
  3166. done
  3167. # Convert height into spaces.
  3168. printf -v block_spaces "%${block_height}s"
  3169. # Convert the spaces into rows of blocks.
  3170. [[ "$blocks" ]] && cols+="${block_spaces// /${blocks}nl}"
  3171. [[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}nl}"
  3172. # Add newlines to the string.
  3173. cols=${cols%%nl}
  3174. cols=${cols//nl/
  3175. [${text_padding}C${zws}}
  3176. # Add block height to info height.
  3177. ((info_height+=block_range[1]>7?block_height+3:block_height+2))
  3178. case $col_offset in
  3179. "auto") printf '\n\e[%bC%b\n\n' "$text_padding" "${zws}${cols}" ;;
  3180. *) printf '\n\e[%bC%b\n\n' "$col_offset" "${zws}${cols}" ;;
  3181. esac
  3182. fi
  3183. unset -v blocks blocks2 cols
  3184. # Tell info() that we printed manually.
  3185. prin=1
  3186. }
  3187. # IMAGES
  3188. image_backend() {
  3189. [[ "$image_backend" != "off" ]] && ! type -p convert &>/dev/null && \
  3190. { image_backend="ascii"; err "Image: Imagemagick not found, falling back to ascii mode."; }
  3191. case ${image_backend:-off} in
  3192. "ascii") print_ascii ;;
  3193. "off") image_backend="off" ;;
  3194. "caca" | "chafa" | "jp2a" | "iterm2" | "termpix" |\
  3195. "tycat" | "w3m" | "sixel" | "pixterm" | "kitty" | "pot")
  3196. get_image_source
  3197. [[ ! -f "$image" ]] && {
  3198. to_ascii "Image: '$image_source' doesn't exist, falling back to ascii mode."
  3199. return
  3200. }
  3201. get_window_size
  3202. ((term_width < 1)) && {
  3203. to_ascii "Image: Failed to find terminal window size."
  3204. err "Image: Check the 'Images in the terminal' wiki page for more info,"
  3205. return
  3206. }
  3207. printf '\e[2J\e[H'
  3208. get_image_size
  3209. make_thumbnail
  3210. display_image || to_off "Image: $image_backend failed to display the image."
  3211. ;;
  3212. *)
  3213. err "Image: Unknown image backend specified '$image_backend'."
  3214. err "Image: Valid backends are: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'kitty',
  3215. 'off', 'sixel', 'pot', 'pixterm', 'termpix', 'tycat',
  3216. 'w3m')"
  3217. err "Image: Falling back to ascii mode."
  3218. print_ascii
  3219. ;;
  3220. esac
  3221. # Set cursor position next image/ascii.
  3222. [[ "$image_backend" != "off" ]] && printf '\e[%sA\e[9999999D' "${lines:-0}"
  3223. }
  3224. print_ascii() {
  3225. if [[ -f "$image_source" && ! "$image_source" =~ (png|jpg|jpeg|jpe|svg|gif) ]]; then
  3226. ascii_data="$(< "$image_source")"
  3227. elif [[ "$image_source" == "ascii" || $image_source == auto ]]; then
  3228. :
  3229. else
  3230. ascii_data="$image_source"
  3231. fi
  3232. # Set locale to get correct padding.
  3233. LC_ALL="$sys_locale"
  3234. # Calculate size of ascii file in line length / line count.
  3235. while IFS=$'\n' read -r line; do
  3236. line=${line//\\\\/\\}
  3237. line=${line//█/ }
  3238. ((++lines,${#line}>ascii_len)) && ascii_len="${#line}"
  3239. done <<< "${ascii_data//\$\{??\}}"
  3240. # Fallback if file not found.
  3241. ((lines==1)) && { lines=; ascii_len=; image_source=auto; get_distro_ascii; print_ascii; return; }
  3242. # Colors.
  3243. ascii_data="${ascii_data//\$\{c1\}/$c1}"
  3244. ascii_data="${ascii_data//\$\{c2\}/$c2}"
  3245. ascii_data="${ascii_data//\$\{c3\}/$c3}"
  3246. ascii_data="${ascii_data//\$\{c4\}/$c4}"
  3247. ascii_data="${ascii_data//\$\{c5\}/$c5}"
  3248. ascii_data="${ascii_data//\$\{c6\}/$c6}"
  3249. ((text_padding=ascii_len+gap))
  3250. printf '%b\n' "$ascii_data${reset}"
  3251. LC_ALL=C
  3252. }
  3253. get_image_source() {
  3254. case $image_source in
  3255. "auto" | "wall" | "wallpaper")
  3256. get_wallpaper
  3257. ;;
  3258. *)
  3259. # Get the absolute path.
  3260. image_source="$(get_full_path "$image_source")"
  3261. if [[ -d "$image_source" ]]; then
  3262. shopt -s nullglob
  3263. files=("${image_source%/}"/*.{png,jpg,jpeg,jpe,gif,svg})
  3264. shopt -u nullglob
  3265. image="${files[RANDOM % ${#files[@]}]}"
  3266. else
  3267. image="$image_source"
  3268. fi
  3269. ;;
  3270. esac
  3271. err "Image: Using image '$image'"
  3272. }
  3273. get_wallpaper() {
  3274. case $os in
  3275. "Mac OS X"|"macOS")
  3276. image="$(osascript <<END
  3277. tell application "System Events" to picture of current desktop
  3278. END
  3279. )"
  3280. ;;
  3281. "Windows")
  3282. case $distro in
  3283. "Windows XP")
  3284. image="/c/Documents and Settings/${USER}"
  3285. image+="/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
  3286. [[ "$kernel_name" == *CYGWIN* ]] && image="/cygdrive${image}"
  3287. ;;
  3288. "Windows"*)
  3289. image="${APPDATA}/Microsoft/Windows/Themes/TranscodedWallpaper.jpg"
  3290. ;;
  3291. esac
  3292. ;;
  3293. *)
  3294. # Get DE if user has disabled the function.
  3295. ((de_run != 1)) && get_de
  3296. type -p wal >/dev/null && [[ -f "${HOME}/.cache/wal/wal" ]] && \
  3297. { image="$(< "${HOME}/.cache/wal/wal")"; return; }
  3298. case $de in
  3299. "MATE"*)
  3300. image="$(gsettings get org.mate.background picture-filename)"
  3301. ;;
  3302. "Xfce"*)
  3303. image="$(xfconf-query -c xfce4-desktop -p \
  3304. "/backdrop/screen0/monitor0/workspace0/last-image")"
  3305. ;;
  3306. "Cinnamon"*)
  3307. image="$(gsettings get org.cinnamon.desktop.background picture-uri)"
  3308. image="$(decode_url "$image")"
  3309. ;;
  3310. "GNOME"*)
  3311. image="$(gsettings get org.gnome.desktop.background picture-uri)"
  3312. image="$(decode_url "$image")"
  3313. ;;
  3314. "Plasma"*)
  3315. image=$XDG_CONFIG_HOME/plasma-org.kde.plasma.desktop-appletsrc
  3316. image=$(awk -F '=' '$1 == "Image" { print $2 }' "$image")
  3317. ;;
  3318. "LXQt"*)
  3319. image="$XDG_CONFIG_HOME/pcmanfm-qt/lxqt/settings.conf"
  3320. image="$(awk -F '=' '$1 == "Wallpaper" {print $2}' "$image")"
  3321. ;;
  3322. *)
  3323. if type -p feh >/dev/null && [[ -f "${HOME}/.fehbg" ]]; then
  3324. image="$(awk -F\' '/feh/ {printf $(NF-1)}' "${HOME}/.fehbg")"
  3325. elif type -p setroot >/dev/null && \
  3326. [[ -f "${XDG_CONFIG_HOME}/setroot/.setroot-restore" ]]; then
  3327. image="$(awk -F\' '/setroot/ {printf $(NF-1)}' \
  3328. "${XDG_CONFIG_HOME}/setroot/.setroot-restore")"
  3329. elif type -p nitrogen >/dev/null; then
  3330. image="$(awk -F'=' '/file/ {printf $2;exit;}' \
  3331. "${XDG_CONFIG_HOME}/nitrogen/bg-saved.cfg")"
  3332. else
  3333. image="$(gsettings get org.gnome.desktop.background picture-uri)"
  3334. image="$(decode_url "$image")"
  3335. fi
  3336. ;;
  3337. esac
  3338. # Strip un-needed info from the path.
  3339. image="${image/file:\/\/}"
  3340. image="$(trim_quotes "$image")"
  3341. ;;
  3342. esac
  3343. # If image is an xml file, don't use it.
  3344. [[ "${image/*\./}" == "xml" ]] && image=""
  3345. }
  3346. get_w3m_img_path() {
  3347. # Find w3m-img path.
  3348. shopt -s nullglob
  3349. w3m_paths=({/usr/{local/,},~/.nix-profile/}{lib,libexec,lib64,libexec64}/w3m/w3mi*)
  3350. shopt -u nullglob
  3351. [[ -x "${w3m_paths[0]}" ]] && \
  3352. { w3m_img_path="${w3m_paths[0]}"; return; }
  3353. err "Image: w3m-img wasn't found on your system"
  3354. }
  3355. get_window_size() {
  3356. # This functions gets the current window size in
  3357. # pixels.
  3358. #
  3359. # We first try to use the escape sequence "\033[14t"
  3360. # to get the terminal window size in pixels. If this
  3361. # fails we then fallback to using "xdotool" or other
  3362. # programs.
  3363. # Tmux has a special way of reading escape sequences
  3364. # so we have to use a slightly different sequence to
  3365. # get the terminal size.
  3366. if [[ "$image_backend" == "tycat" ]]; then
  3367. printf '%b' '\e}qs\000'
  3368. elif [[ -z $VTE_VERSION ]]; then
  3369. case ${TMUX:-null} in
  3370. "null") printf '%b' '\e[14t' ;;
  3371. *) printf '%b' '\ePtmux;\e\e[14t\e\\ ' ;;
  3372. esac
  3373. fi
  3374. # The escape codes above print the desired output as
  3375. # user input so we have to use read to store the out
  3376. # -put as a variable.
  3377. # The 1 second timeout is required for older bash
  3378. #
  3379. # False positive.
  3380. # shellcheck disable=2141
  3381. case $bash_version in
  3382. 4|5) IFS=';t' read -d t -t 0.05 -sra term_size ;;
  3383. *) IFS=';t' read -d t -t 1 -sra term_size ;;
  3384. esac
  3385. unset IFS
  3386. # Split the string into height/width.
  3387. if [[ "$image_backend" == "tycat" ]]; then
  3388. term_width="$((term_size[2] * term_size[0]))"
  3389. term_height="$((term_size[3] * term_size[1]))"
  3390. else
  3391. term_height="${term_size[1]}"
  3392. term_width="${term_size[2]}"
  3393. fi
  3394. # Get terminal width/height.
  3395. if (( "${term_width:-0}" < 50 )) && [[ "$DISPLAY" && $os != "Mac OS X" && $os != "macOS" ]]; then
  3396. if type -p xdotool &>/dev/null; then
  3397. IFS=$'\n' read -d "" -ra win \
  3398. <<< "$(xdotool getactivewindow getwindowgeometry --shell %1)"
  3399. term_width="${win[3]/WIDTH=}"
  3400. term_height="${win[4]/HEIGHT=}"
  3401. elif type -p xwininfo &>/dev/null; then
  3402. # Get the focused window's ID.
  3403. if type -p xdo &>/dev/null; then
  3404. current_window="$(xdo id)"
  3405. elif type -p xprop &>/dev/null; then
  3406. current_window="$(xprop -root _NET_ACTIVE_WINDOW)"
  3407. current_window="${current_window##* }"
  3408. elif type -p xdpyinfo &>/dev/null; then
  3409. current_window="$(xdpyinfo | grep -F "focus:")"
  3410. current_window="${current_window/*window }"
  3411. current_window="${current_window/,*}"
  3412. fi
  3413. # If the ID was found get the window size.
  3414. if [[ "$current_window" ]]; then
  3415. term_size=("$(xwininfo -id "$current_window")")
  3416. term_width="${term_size[0]#*Width: }"
  3417. term_width="${term_width/$'\n'*}"
  3418. term_height="${term_size[0]/*Height: }"
  3419. term_height="${term_height/$'\n'*}"
  3420. fi
  3421. fi
  3422. fi
  3423. term_width="${term_width:-0}"
  3424. }
  3425. get_term_size() {
  3426. # Get the terminal size in cells.
  3427. read -r lines columns <<< "$(stty size)"
  3428. # Calculate font size.
  3429. font_width="$((term_width / columns))"
  3430. font_height="$((term_height / lines))"
  3431. }
  3432. get_image_size() {
  3433. # This functions determines the size to make the thumbnail image.
  3434. get_term_size
  3435. case $image_size in
  3436. "auto")
  3437. image_size="$((columns * font_width / 2))"
  3438. term_height="$((term_height - term_height / 4))"
  3439. ((term_height < image_size)) && \
  3440. image_size="$term_height"
  3441. ;;
  3442. *"%")
  3443. percent="${image_size/\%}"
  3444. image_size="$((percent * term_width / 100))"
  3445. (((percent * term_height / 50) < image_size)) && \
  3446. image_size="$((percent * term_height / 100))"
  3447. ;;
  3448. "none")
  3449. # Get image size so that we can do a better crop.
  3450. read -r width height <<< "$(identify -format "%w %h" "$image")"
  3451. while ((width >= (term_width / 2) || height >= term_height)); do
  3452. ((width=width/2,height=height/2))
  3453. done
  3454. crop_mode="none"
  3455. ;;
  3456. *) image_size="${image_size/px}" ;;
  3457. esac
  3458. # Check for terminal padding.
  3459. [[ "$image_backend" == "w3m" ]] && term_padding
  3460. width="${width:-$image_size}"
  3461. height="${height:-$image_size}"
  3462. text_padding="$(((width + padding + xoffset) / font_width + gap))"
  3463. }
  3464. make_thumbnail() {
  3465. # Name the thumbnail using variables so we can
  3466. # use it later.
  3467. image_name="${crop_mode}-${crop_offset}-${width}-${height}-${image//\/}"
  3468. # Handle file extensions.
  3469. case ${image##*.} in
  3470. "eps"|"pdf"|"svg"|"gif"|"png")
  3471. image_name+=".png" ;;
  3472. *) image_name+=".jpg" ;;
  3473. esac
  3474. # Create the thumbnail dir if it doesn't exist.
  3475. mkdir -p "${thumbnail_dir:=${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch}"
  3476. if [[ ! -f "${thumbnail_dir}/${image_name}" ]]; then
  3477. # Get image size so that we can do a better crop.
  3478. [[ -z "$size" ]] && {
  3479. read -r og_width og_height <<< "$(identify -format "%w %h" "$image")"
  3480. ((og_height > og_width)) && size="$og_width" || size="$og_height"
  3481. }
  3482. case $crop_mode in
  3483. "fit")
  3484. c="$(convert "$image" \
  3485. -colorspace srgb \
  3486. -format "%[pixel:p{0,0}]" info:)"
  3487. convert \
  3488. -background none \
  3489. "$image" \
  3490. -trim +repage \
  3491. -gravity south \
  3492. -background "$c" \
  3493. -extent "${size}x${size}" \
  3494. -scale "${width}x${height}" \
  3495. "${thumbnail_dir}/${image_name}"
  3496. ;;
  3497. "fill")
  3498. convert \
  3499. -background none \
  3500. "$image" \
  3501. -trim +repage \
  3502. -scale "${width}x${height}^" \
  3503. -extent "${width}x${height}" \
  3504. "${thumbnail_dir}/${image_name}"
  3505. ;;
  3506. "none")
  3507. cp "$image" "${thumbnail_dir}/${image_name}"
  3508. ;;
  3509. *)
  3510. convert \
  3511. -background none \
  3512. "$image" \
  3513. -strip \
  3514. -gravity "$crop_offset" \
  3515. -crop "${size}x${size}+0+0" \
  3516. -scale "${width}x${height}" \
  3517. "${thumbnail_dir}/${image_name}"
  3518. ;;
  3519. esac
  3520. fi
  3521. # The final image.
  3522. image="${thumbnail_dir}/${image_name}"
  3523. }
  3524. display_image() {
  3525. case $image_backend in
  3526. "caca")
  3527. img2txt \
  3528. -W "$((width / font_width))" \
  3529. -H "$((height / font_height))" \
  3530. --gamma=0.6 \
  3531. "$image"
  3532. ;;
  3533. "chafa")
  3534. chafa --stretch --size="$((width / font_width))x$((height / font_height))" "$image"
  3535. ;;
  3536. "jp2a")
  3537. jp2a \
  3538. --colors \
  3539. --width="$((width / font_width))" \
  3540. --height="$((height / font_height))" \
  3541. "$image"
  3542. ;;
  3543. "kitty")
  3544. kitty +kitten icat \
  3545. --align left \
  3546. --place "$((width/font_width))x$((height/font_height))@${xoffset}x${yoffset}" \
  3547. "$image"
  3548. ;;
  3549. "pot")
  3550. pot \
  3551. "$image" \
  3552. --size="$((width / font_width))x$((height / font_height))"
  3553. ;;
  3554. "pixterm")
  3555. pixterm \
  3556. -tc "$((width / font_width))" \
  3557. -tr "$((height / font_height))" \
  3558. "$image"
  3559. ;;
  3560. "sixel")
  3561. img2sixel \
  3562. -w "$width" \
  3563. -h "$height" \
  3564. "$image"
  3565. ;;
  3566. "termpix")
  3567. termpix \
  3568. --width "$((width / font_width))" \
  3569. --height "$((height / font_height))" \
  3570. "$image"
  3571. ;;
  3572. "iterm2")
  3573. printf -v iterm_cmd '\e]1337;File=width=%spx;height=%spx;inline=1:%s' \
  3574. "$width" "$height" "$(base64 < "$image")"
  3575. # Tmux requires an additional escape sequence for this to work.
  3576. [[ -n "$TMUX" ]] && printf -v iterm_cmd '\ePtmux;\e%b\e'\\ "$iterm_cmd"
  3577. printf '%b\a\n' "$iterm_cmd"
  3578. ;;
  3579. "tycat")
  3580. tycat \
  3581. -g "${width}x${height}" \
  3582. "$image"
  3583. ;;
  3584. "w3m")
  3585. get_w3m_img_path
  3586. zws='\xE2\x80\x8B\x20'
  3587. # Add a tiny delay to fix issues with images not
  3588. # appearing in specific terminal emulators.
  3589. ((bash_version>3)) && sleep 0.05
  3590. printf '%b\n%s;\n%s\n' "0;1;$xoffset;$yoffset;$width;$height;;;;;$image" 3 4 |\
  3591. "${w3m_img_path:-false}" -bg "$background_color" &>/dev/null
  3592. ;;
  3593. esac
  3594. }
  3595. to_ascii() {
  3596. err "$1"
  3597. image_backend="ascii"
  3598. print_ascii
  3599. # Set cursor position next image/ascii.
  3600. printf '\e[%sA\e[9999999D' "${lines:-0}"
  3601. }
  3602. to_off() {
  3603. err "$1"
  3604. image_backend="off"
  3605. text_padding=
  3606. }
  3607. # TEXT FORMATTING
  3608. info() {
  3609. # Save subtitle value.
  3610. [[ "$2" ]] && subtitle="$1"
  3611. # Make sure that $prin is unset.
  3612. unset -v prin
  3613. # Call the function.
  3614. "get_${2:-$1}"
  3615. # If the get_func function called 'prin' directly, stop here.
  3616. [[ "$prin" ]] && return
  3617. # Update the variable.
  3618. if [[ "$2" ]]; then
  3619. output="$(trim "${!2}")"
  3620. else
  3621. output="$(trim "${!1}")"
  3622. fi
  3623. if [[ "$2" && "${output// }" ]]; then
  3624. prin "$1" "$output"
  3625. elif [[ "${output// }" ]]; then
  3626. prin "$output"
  3627. else
  3628. err "Info: Couldn't detect ${1}."
  3629. fi
  3630. unset -v subtitle
  3631. }
  3632. prin() {
  3633. # If $2 doesn't exist we format $1 as info.
  3634. if [[ "$(trim "$1")" && "$2" ]]; then
  3635. [[ "$json" ]] && { printf ' %s\n' "\"${1}\": \"${2}\","; return; }
  3636. string="${1}${2:+: $2}"
  3637. else
  3638. string="${2:-$1}"
  3639. local subtitle_color="$info_color"
  3640. fi
  3641. string="$(trim "${string//$'\e[0m'}")"
  3642. length="$(strip_sequences "$string")"
  3643. length="${#length}"
  3644. # Format the output.
  3645. string="${string/:/${reset}${colon_color}${separator:=:}${info_color}}"
  3646. string="${subtitle_color}${bold}${string}"
  3647. # Print the info.
  3648. printf '%b\n' "${text_padding:+\e[${text_padding}C}${zws}${string//\\n}${reset} "
  3649. # Calculate info height.
  3650. ((++info_height))
  3651. # Log that prin was used.
  3652. prin=1
  3653. }
  3654. get_underline() {
  3655. [[ "$underline_enabled" == "on" ]] && {
  3656. printf -v underline "%${length}s"
  3657. printf '%b%b\n' "${text_padding:+\e[${text_padding}C}${zws}${underline_color}" \
  3658. "${underline// /$underline_char}${reset} "
  3659. }
  3660. ((++info_height))
  3661. length=
  3662. prin=1
  3663. }
  3664. get_bold() {
  3665. case $ascii_bold in
  3666. "on") ascii_bold='\e[1m' ;;
  3667. "off") ascii_bold="" ;;
  3668. esac
  3669. case $bold in
  3670. "on") bold='\e[1m' ;;
  3671. "off") bold="" ;;
  3672. esac
  3673. }
  3674. trim() {
  3675. set -f
  3676. # shellcheck disable=2048,2086
  3677. set -- $*
  3678. printf '%s\n' "${*//[[:space:]]/}"
  3679. set +f
  3680. }
  3681. trim_quotes() {
  3682. trim_output="${1//\'}"
  3683. trim_output="${trim_output//\"}"
  3684. printf "%s" "$trim_output"
  3685. }
  3686. strip_sequences() {
  3687. strip="${1//$'\e['3[0-9]m}"
  3688. strip="${strip//$'\e['[0-9]m}"
  3689. strip="${strip//\\e\[[0-9]m}"
  3690. strip="${strip//$'\e['38\;5\;[0-9]m}"
  3691. strip="${strip//$'\e['38\;5\;[0-9][0-9]m}"
  3692. strip="${strip//$'\e['38\;5\;[0-9][0-9][0-9]m}"
  3693. printf '%s\n' "$strip"
  3694. }
  3695. # COLORS
  3696. set_colors() {
  3697. c1="$(color "$1")${ascii_bold}"
  3698. c2="$(color "$2")${ascii_bold}"
  3699. c3="$(color "$3")${ascii_bold}"
  3700. c4="$(color "$4")${ascii_bold}"
  3701. c5="$(color "$5")${ascii_bold}"
  3702. c6="$(color "$6")${ascii_bold}"
  3703. [[ "$color_text" != "off" ]] && set_text_colors "$@"
  3704. }
  3705. set_text_colors() {
  3706. if [[ "${colors[0]}" == "distro" ]]; then
  3707. title_color="$(color "$1")"
  3708. at_color="$reset"
  3709. underline_color="$reset"
  3710. subtitle_color="$(color "$2")"
  3711. colon_color="$reset"
  3712. info_color="$reset"
  3713. # If the ascii art uses 8 as a color, make the text the fg.
  3714. ((${1:-1} == 8)) && title_color="$reset"
  3715. ((${2:-7} == 8)) && subtitle_color="$reset"
  3716. # If the second color is white use the first for the subtitle.
  3717. ((${2:-7} == 7)) && subtitle_color="$(color "$1")"
  3718. ((${1:-1} == 7)) && title_color="$reset"
  3719. else
  3720. title_color="$(color "${colors[0]}")"
  3721. at_color="$(color "${colors[1]}")"
  3722. underline_color="$(color "${colors[2]}")"
  3723. subtitle_color="$(color "${colors[3]}")"
  3724. colon_color="$(color "${colors[4]}")"
  3725. info_color="$(color "${colors[5]}")"
  3726. fi
  3727. # Bar colors.
  3728. if [[ "$bar_color_elapsed" == "distro" ]]; then
  3729. bar_color_elapsed="$(color fg)"
  3730. else
  3731. bar_color_elapsed="$(color "$bar_color_elapsed")"
  3732. fi
  3733. case ${bar_color_total}${1} in
  3734. distro[736]) bar_color_total=$(color "$1") ;;
  3735. distro[0-9]) bar_color_total=$(color "$2") ;;
  3736. *) bar_color_total=$(color "$bar_color_total") ;;
  3737. esac
  3738. }
  3739. color() {
  3740. case $1 in
  3741. [0-6]) printf '%b\e[3%sm' "$reset" "$1" ;;
  3742. 7 | "fg") printf '\e[37m%b' "$reset" ;;
  3743. *) printf '\e[38;5;%bm' "$1" ;;
  3744. esac
  3745. }
  3746. # OTHER
  3747. stdout() {
  3748. image_backend="off"
  3749. unset subtitle_color colon_color info_color underline_color bold title_color at_color \
  3750. text_padding zws reset color_blocks bar_color_elapsed bar_color_total \
  3751. c1 c2 c3 c4 c5 c6 c7 c8
  3752. }
  3753. err() {
  3754. err+="$(color 1)[!]${reset} $1
  3755. "
  3756. }
  3757. get_full_path() {
  3758. # This function finds the absolute path from a relative one.
  3759. # For example "Pictures/Wallpapers" --> "/home/dylan/Pictures/Wallpapers"
  3760. # If the file exists in the current directory, stop here.
  3761. [[ -f "${PWD}/${1}" ]] && { printf '%s\n' "${PWD}/${1}"; return; }
  3762. ! cd "${1%/*}" && {
  3763. err "Error: Directory '${1%/*}' doesn't exist or is inaccessible"
  3764. err " Check that the directory exists or try another directory."
  3765. exit 1
  3766. }
  3767. local full_dir="${1##*/}"
  3768. # Iterate down a (possible) chain of symlinks.
  3769. while [[ -L "$full_dir" ]]; do
  3770. full_dir="$(readlink "$full_dir")"
  3771. cd "${full_dir%/*}" || exit
  3772. full_dir="${full_dir##*/}"
  3773. done
  3774. # Final directory.
  3775. full_dir="$(pwd -P)/${1/*\/}"
  3776. [[ -e "$full_dir" ]] && printf '%s\n' "$full_dir"
  3777. }
  3778. get_user_config() {
  3779. # --config /path/to/config.conf
  3780. if [[ -f "$config_file" ]]; then
  3781. source "$config_file"
  3782. err "Config: Sourced user config. (${config_file})"
  3783. return
  3784. elif [[ -f "${XDG_CONFIG_HOME}/neofetch/config.conf" ]]; then
  3785. source "${XDG_CONFIG_HOME}/neofetch/config.conf"
  3786. err "Config: Sourced user config. (${XDG_CONFIG_HOME}/neofetch/config.conf)"
  3787. elif [[ -f "${XDG_CONFIG_HOME}/neofetch/config" ]]; then
  3788. source "${XDG_CONFIG_HOME}/neofetch/config"
  3789. err "Config: Sourced user config. (${XDG_CONFIG_HOME}/neofetch/config)"
  3790. elif [[ -z "$no_config" ]]; then
  3791. config_file="${XDG_CONFIG_HOME}/neofetch/config.conf"
  3792. # The config file doesn't exist, create it.
  3793. mkdir -p "${XDG_CONFIG_HOME}/neofetch/"
  3794. printf '%s\n' "$config" > "$config_file"
  3795. fi
  3796. }
  3797. bar() {
  3798. # Get the values.
  3799. elapsed="$(($1 * bar_length / $2))"
  3800. # Create the bar with spaces.
  3801. printf -v prog "%${elapsed}s"
  3802. printf -v total "%$((bar_length - elapsed))s"
  3803. # Set the colors and swap the spaces for $bar_char_.
  3804. bar+="${bar_color_elapsed}${prog// /${bar_char_elapsed}}"
  3805. bar+="${bar_color_total}${total// /${bar_char_total}}"
  3806. # Borders.
  3807. [[ "$bar_border" == "on" ]] && \
  3808. bar="$(color fg)[${bar}$(color fg)]"
  3809. printf "%b" "${bar}${info_color}"
  3810. }
  3811. cache() {
  3812. if [[ "$2" ]]; then
  3813. mkdir -p "${cache_dir}/neofetch"
  3814. printf "%s" "${1/*-}=\"$2\"" > "${cache_dir}/neofetch/${1/*-}"
  3815. fi
  3816. }
  3817. get_cache_dir() {
  3818. case $os in
  3819. "Mac OS X"|"macOS") cache_dir="/Library/Caches" ;;
  3820. *) cache_dir="/tmp" ;;
  3821. esac
  3822. }
  3823. kde_config_dir() {
  3824. # If the user is using KDE get the KDE
  3825. # configuration directory.
  3826. if [[ "$kde_config_dir" ]]; then
  3827. return
  3828. elif type -p kf5-config &>/dev/null; then
  3829. kde_config_dir="$(kf5-config --path config)"
  3830. elif type -p kde4-config &>/dev/null; then
  3831. kde_config_dir="$(kde4-config --path config)"
  3832. elif type -p kde-config &>/dev/null; then
  3833. kde_config_dir="$(kde-config --path config)"
  3834. elif [[ -d "${HOME}/.kde4" ]]; then
  3835. kde_config_dir="${HOME}/.kde4/share/config"
  3836. elif [[ -d "${HOME}/.kde3" ]]; then
  3837. kde_config_dir="${HOME}/.kde3/share/config"
  3838. fi
  3839. kde_config_dir="${kde_config_dir/$'/:'*}"
  3840. }
  3841. term_padding() {
  3842. # Get terminal padding to properly align cursor.
  3843. [[ -z "$term" ]] && get_term
  3844. case $term in
  3845. urxvt*|rxvt-unicode)
  3846. [[ $xrdb ]] || xrdb=$(xrdb -query)
  3847. [[ $xrdb != *internalBorder:* ]] &&
  3848. return
  3849. padding=${xrdb/*internalBorder:}
  3850. padding=${padding/$'\n'*}
  3851. [[ $padding =~ ^[0-9]+$ ]] ||
  3852. padding=
  3853. ;;
  3854. esac
  3855. }
  3856. dynamic_prompt() {
  3857. [[ "$image_backend" == "off" ]] && { printf '\n'; return; }
  3858. [[ "$image_backend" != "ascii" ]] && ((lines=(height + yoffset) / font_height + 1))
  3859. [[ "$image_backend" == "w3m" ]] && ((lines=lines + padding / font_height + 1))
  3860. # If the ascii art is taller than the info.
  3861. ((lines=lines>info_height?lines-info_height+1:1))
  3862. printf -v nlines "%${lines}s"
  3863. printf "%b" "${nlines// /\\n}"
  3864. }
  3865. cache_uname() {
  3866. # Cache the output of uname so we don't
  3867. # have to spawn it multiple times.
  3868. IFS=" " read -ra uname <<< "$(uname -srm)"
  3869. kernel_name="${uname[0]}"
  3870. kernel_version="${uname[1]}"
  3871. kernel_machine="${uname[2]}"
  3872. if [[ "$kernel_name" == "Darwin" ]]; then
  3873. IFS=$'\n' read -d "" -ra sw_vers <<< "$(awk -F'<|>' '/key|string/ {print $3}' \
  3874. "/System/Library/CoreServices/SystemVersion.plist")"
  3875. for ((i=0;i<${#sw_vers[@]};i+=2)) {
  3876. case ${sw_vers[i]} in
  3877. ProductName) darwin_name=${sw_vers[i+1]} ;;
  3878. ProductVersion) osx_version=${sw_vers[i+1]} ;;
  3879. ProductBuildVersion) osx_build=${sw_vers[i+1]} ;;
  3880. esac
  3881. }
  3882. fi
  3883. }
  3884. get_ppid() {
  3885. # Get parent process ID of PID.
  3886. case $os in
  3887. "Windows")
  3888. ppid="$(ps -p "${1:-$PPID}" | awk '{printf $2}')"
  3889. ppid="${ppid/PPID}"
  3890. ;;
  3891. "Linux")
  3892. ppid="$(grep -i -F "PPid:" "/proc/${1:-$PPID}/status")"
  3893. ppid="$(trim "${ppid/PPid:}")"
  3894. ;;
  3895. *)
  3896. ppid="$(ps -p "${1:-$PPID}" -o ppid=)"
  3897. ;;
  3898. esac
  3899. printf "%s" "$ppid"
  3900. }
  3901. get_process_name() {
  3902. # Get PID name.
  3903. case $os in
  3904. "Windows")
  3905. name="$(ps -p "${1:-$PPID}" | awk '{printf $8}')"
  3906. name="${name/COMMAND}"
  3907. name="${name/*\/}"
  3908. ;;
  3909. "Linux")
  3910. name="$(< "/proc/${1:-$PPID}/comm")"
  3911. ;;
  3912. *)
  3913. name="$(ps -p "${1:-$PPID}" -o comm=)"
  3914. ;;
  3915. esac
  3916. printf "%s" "$name"
  3917. }
  3918. decode_url() {
  3919. decode="${1//+/ }"
  3920. printf "%b" "${decode//%/\\x}"
  3921. }
  3922. # FINISH UP
  3923. usage() { printf "%s" "\
  3924. Usage: neofetch func_name --option \"value\" --option \"value\"
  3925. Neofetch is a CLI system information tool written in BASH. Neofetch
  3926. displays information about your system next to an image, your OS logo,
  3927. or any ASCII file of your choice.
  3928. NOTE: Every launch flag has a config option.
  3929. Options:
  3930. INFO:
  3931. func_name Specify a function name (second part of info() from config) to
  3932. quickly display only that function's information.
  3933. Example: neofetch uptime --uptime_shorthand tiny
  3934. Example: neofetch uptime disk wm memory
  3935. This can be used in bars and scripts like so:
  3936. memory=\"\$(neofetch memory)\"; memory=\"\${memory##*: }\"
  3937. For multiple outputs at once (each line of info in an array):
  3938. IFS=\$'\\n' read -d \"\" -ra info < <(neofetch memory uptime wm)
  3939. info=(\"\${info[@]##*: }\")
  3940. --disable infoname Allows you to disable an info line from appearing
  3941. in the output. 'infoname' is the function name from the
  3942. 'print_info()' function inside the config file.
  3943. For example: 'info \"Memory\" memory' would be '--disable memory'
  3944. NOTE: You can supply multiple args. eg. 'neofetch --disable cpu gpu'
  3945. --title_fqdn on/off Hide/Show Fully Qualified Domain Name in title.
  3946. --package_managers on/off Hide/Show Package Manager names . (on, tiny, off)
  3947. --os_arch on/off Hide/Show OS architecture.
  3948. --speed_type type Change the type of cpu speed to display.
  3949. Possible values: current, min, max, bios,
  3950. scaling_current, scaling_min, scaling_max
  3951. NOTE: This only supports Linux with cpufreq.
  3952. --speed_shorthand on/off Whether or not to show decimals in CPU speed.
  3953. NOTE: This flag is not supported in systems with CPU speed less than
  3954. 1 GHz.
  3955. --cpu_brand on/off Enable/Disable CPU brand in output.
  3956. --cpu_cores type Whether or not to display the number of CPU cores
  3957. Possible values: logical, physical, off
  3958. NOTE: 'physical' doesn't work on BSD.
  3959. --cpu_speed on/off Hide/Show cpu speed.
  3960. --cpu_temp C/F/off Hide/Show cpu temperature.
  3961. NOTE: This only works on Linux and BSD.
  3962. NOTE: For FreeBSD and NetBSD-based systems, you need to enable
  3963. coretemp kernel module. This only supports newer Intel processors.
  3964. --distro_shorthand on/off Shorten the output of distro (on, tiny, off)
  3965. NOTE: This option won't work in Windows (Cygwin)
  3966. --kernel_shorthand on/off Shorten the output of kernel
  3967. NOTE: This option won't work in BSDs (except PacBSD and PC-BSD)
  3968. --uptime_shorthand on/off Shorten the output of uptime (on, tiny, off)
  3969. --refresh_rate on/off Whether to display the refresh rate of each monitor
  3970. Unsupported on Windows
  3971. --gpu_brand on/off Enable/Disable GPU brand in output. (AMD/NVIDIA/Intel)
  3972. --gpu_type type Which GPU to display. (all, dedicated, integrated)
  3973. NOTE: This only supports Linux.
  3974. --de_version on/off Show/Hide Desktop Environment version
  3975. --gtk_shorthand on/off Shorten output of gtk theme/icons
  3976. --gtk2 on/off Enable/Disable gtk2 theme/font/icons output
  3977. --gtk3 on/off Enable/Disable gtk3 theme/font/icons output
  3978. --shell_path on/off Enable/Disable showing \$SHELL path
  3979. --shell_version on/off Enable/Disable showing \$SHELL version
  3980. --disk_show value Which disks to display.
  3981. Possible values: '/', '/dev/sdXX', '/path/to/mount point'
  3982. NOTE: Multiple values can be given. (--disk_show '/' '/dev/sdc1')
  3983. --disk_subtitle type What information to append to the Disk subtitle.
  3984. Takes: name, mount, dir, none
  3985. 'name' shows the disk's name (sda1, sda2, etc)
  3986. 'mount' shows the disk's mount point (/, /mnt/Local Disk, etc)
  3987. 'dir' shows the basename of the disks's path. (/, Local Disk, etc)
  3988. 'none' shows only 'Disk' or the configured title.
  3989. --disk_percent on/off Hide/Show disk percent.
  3990. --ip_host url URL to query for public IP
  3991. --ip_timeout int Public IP timeout (in seconds).
  3992. --song_format format Print the song data in a specific format (see config file).
  3993. --song_shorthand on/off Print the Artist/Album/Title on separate lines.
  3994. --memory_percent on/off Display memory percentage.
  3995. --memory_unit kib/mib/gib Memory output unit.
  3996. --music_player player-name Manually specify a player to use.
  3997. Available values are listed in the config file
  3998. TEXT FORMATTING:
  3999. --colors x x x x x x Changes the text colors in this order:
  4000. title, @, underline, subtitle, colon, info
  4001. --underline on/off Enable/Disable the underline.
  4002. --underline_char char Character to use when underlining title
  4003. --bold on/off Enable/Disable bold text
  4004. --separator string Changes the default ':' separator to the specified string.
  4005. COLOR BLOCKS:
  4006. --color_blocks on/off Enable/Disable the color blocks
  4007. --col_offset auto/num Left-padding of color blocks
  4008. --block_width num Width of color blocks in spaces
  4009. --block_height num Height of color blocks in lines
  4010. --block_range num num Range of colors to print as blocks
  4011. BARS:
  4012. --bar_char 'elapsed char' 'total char'
  4013. Characters to use when drawing bars.
  4014. --bar_border on/off Whether or not to surround the bar with '[]'
  4015. --bar_length num Length in spaces to make the bars.
  4016. --bar_colors num num Colors to make the bar.
  4017. Set in this order: elapsed, total
  4018. --cpu_display mode Bar mode.
  4019. Possible values: bar, infobar, barinfo, off
  4020. --memory_display mode Bar mode.
  4021. Possible values: bar, infobar, barinfo, off
  4022. --battery_display mode Bar mode.
  4023. Possible values: bar, infobar, barinfo, off
  4024. --disk_display mode Bar mode.
  4025. Possible values: bar, infobar, barinfo, off
  4026. IMAGE BACKEND:
  4027. --backend backend Which image backend to use.
  4028. Possible values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2',
  4029. 'off', 'sixel', 'tycat', 'w3m', 'kitty'
  4030. --source source Which image or ascii file to use.
  4031. Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img',
  4032. '/path/to/ascii', '/path/to/dir/', 'command output' [ascii]
  4033. --ascii source Shortcut to use 'ascii' backend.
  4034. NEW: neofetch --ascii \"\$(fortune | cowsay -W 30)\"
  4035. --caca source Shortcut to use 'caca' backend.
  4036. --chafa source Shortcut to use 'chafa' backend.
  4037. --iterm2 source Shortcut to use 'iterm2' backend.
  4038. --jp2a source Shortcut to use 'jp2a' backend.
  4039. --kitty source Shortcut to use 'kitty' backend.
  4040. --pot source Shortcut to use 'pot' backend.
  4041. --pixterm source Shortcut to use 'pixterm' backend.
  4042. --sixel source Shortcut to use 'sixel' backend.
  4043. --termpix source Shortcut to use 'termpix' backend.
  4044. --tycat source Shortcut to use 'tycat' backend.
  4045. --w3m source Shortcut to use 'w3m' backend.
  4046. --off Shortcut to use 'off' backend (Disable ascii art).
  4047. NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img',
  4048. '/path/to/ascii', '/path/to/dir/'
  4049. ASCII:
  4050. --ascii_colors x x x x x x Colors to print the ascii art
  4051. --ascii_distro distro Which Distro's ascii art to print
  4052. NOTE: AIX, Alpine, AlterLinux, Anarchy, Android, Antergos, antiX,
  4053. \"AOSC OS\", \"AOSC OS/Retro\", Apricity, ArcoLinux, ArchBox,
  4054. ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya,
  4055. Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
  4056. BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, Chapeau,
  4057. Chrom, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
  4058. Container_Linux, CRUX, Cucumber, Debian, Deepin, DesaOS, Devuan,
  4059. DracOS, DarkOs, DragonFly, Drauger, Elementary, EndeavourOS, Endless,
  4060. EuroLinux, Exherbo, Fedora, Feren, FreeBSD, FreeMiNT, Frugalware,
  4061. Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, gNewSense, GNOME, GNU,
  4062. GoboLinux, Grombyang, Guix, Haiku, Huayra, Hyperbola, janus, Kali,
  4063. KaOS, KDE_neon, Kibojoe, Kogaion, Korora, KSLinux, Kubuntu, LEDE,
  4064. LFS, Linux_Lite, LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS,
  4065. Mandriva, Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
  4066. Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, NuTyX,
  4067. OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva,
  4068. OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, Parabola,
  4069. Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, popos,
  4070. Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
  4071. Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
  4072. Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
  4073. Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
  4074. SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
  4075. openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
  4076. Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
  4077. Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
  4078. and IRIX have ascii logos
  4079. NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
  4080. NOTE: Use '{distro name}_old' to use the old logos.
  4081. NOTE: Ubuntu has flavor variants.
  4082. NOTE: Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
  4083. Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
  4084. NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
  4085. CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
  4086. Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
  4087. Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
  4088. Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
  4089. postmarketOS, and Void have a smaller logo variant.
  4090. NOTE: Use '{distro name}_small' to use the small variants.
  4091. --ascii_bold on/off Whether or not to bold the ascii logo.
  4092. -L, --logo Hide the info text and only show the ascii logo.
  4093. IMAGE:
  4094. --loop Redraw the image constantly until Ctrl+C is used. This fixes issues
  4095. in some terminals emulators when using image mode.
  4096. --size 00px | --size 00% How to size the image.
  4097. Possible values: auto, 00px, 00%, none
  4098. --crop_mode mode Which crop mode to use
  4099. Takes the values: normal, fit, fill
  4100. --crop_offset value Change the crop offset for normal mode.
  4101. Possible values: northwest, north, northeast,
  4102. west, center, east, southwest, south, southeast
  4103. --xoffset px How close the image will be to the left edge of the
  4104. window. This only works with w3m.
  4105. --yoffset px How close the image will be to the top edge of the
  4106. window. This only works with w3m.
  4107. --bg_color color Background color to display behind transparent image.
  4108. This only works with w3m.
  4109. --gap num Gap between image and text.
  4110. NOTE: --gap can take a negative value which will move the text
  4111. closer to the left side.
  4112. --clean Delete cached files and thumbnails.
  4113. OTHER:
  4114. --config /path/to/config Specify a path to a custom config file
  4115. --config none Launch the script without a config file
  4116. --no_config Don't create the user config file.
  4117. --print_config Print the default config file to stdout.
  4118. --stdout Turn off all colors and disables any ASCII/image backend.
  4119. --help Print this text and exit
  4120. --version Show neofetch version
  4121. -v Display error messages.
  4122. -vv Display a verbose log for error reporting.
  4123. DEVELOPER:
  4124. --gen-man Generate a manpage for Neofetch in your PWD. (Requires GNU help2man)
  4125. Report bugs to https://github.com/dylanaraps/neofetch/issues
  4126. "
  4127. exit 1
  4128. }
  4129. get_args() {
  4130. # Check the commandline flags early for '--config'.
  4131. [[ "$*" != *--config* && "$*" != *--no_config* ]] && get_user_config
  4132. while [[ "$1" ]]; do
  4133. case $1 in
  4134. # Info
  4135. "--title_fqdn") title_fqdn="$2" ;;
  4136. "--package_managers") package_managers="$2" ;;
  4137. "--os_arch") os_arch="$2" ;;
  4138. "--cpu_cores") cpu_cores="$2" ;;
  4139. "--cpu_speed") cpu_speed="$2" ;;
  4140. "--speed_type") speed_type="$2" ;;
  4141. "--speed_shorthand") speed_shorthand="$2" ;;
  4142. "--distro_shorthand") distro_shorthand="$2" ;;
  4143. "--kernel_shorthand") kernel_shorthand="$2" ;;
  4144. "--uptime_shorthand") uptime_shorthand="$2" ;;
  4145. "--cpu_brand") cpu_brand="$2" ;;
  4146. "--gpu_brand") gpu_brand="$2" ;;
  4147. "--gpu_type") gpu_type="$2" ;;
  4148. "--refresh_rate") refresh_rate="$2" ;;
  4149. "--de_version") de_version="$2" ;;
  4150. "--gtk_shorthand") gtk_shorthand="$2" ;;
  4151. "--gtk2") gtk2="$2" ;;
  4152. "--gtk3") gtk3="$2" ;;
  4153. "--shell_path") shell_path="$2" ;;
  4154. "--shell_version") shell_version="$2" ;;
  4155. "--ip_host") public_ip_host="$2" ;;
  4156. "--ip_timeout") public_ip_timeout="$2" ;;
  4157. "--song_format") song_format="$2" ;;
  4158. "--song_shorthand") song_shorthand="$2" ;;
  4159. "--music_player") music_player="$2" ;;
  4160. "--memory_percent") memory_percent="$2" ;;
  4161. "--memory_unit") memory_unit="$2" ;;
  4162. "--cpu_temp")
  4163. cpu_temp="$2"
  4164. [[ "$cpu_temp" == "on" ]] && cpu_temp="C"
  4165. ;;
  4166. "--disk_subtitle") disk_subtitle="$2" ;;
  4167. "--disk_percent") disk_percent="$2" ;;
  4168. "--disk_show")
  4169. unset disk_show
  4170. for arg in "$@"; do
  4171. case $arg in
  4172. "--disk_show") ;;
  4173. "-"*) break ;;
  4174. *) disk_show+=("$arg") ;;
  4175. esac
  4176. done
  4177. ;;
  4178. "--disable")
  4179. for func in "$@"; do
  4180. case $func in
  4181. "--disable") continue ;;
  4182. "-"*) break ;;
  4183. *)
  4184. ((bash_version >= 4)) && func="${func,,}"
  4185. unset -f "get_$func"
  4186. ;;
  4187. esac
  4188. done
  4189. ;;
  4190. # Text Colors
  4191. "--colors")
  4192. unset colors
  4193. for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
  4194. case $arg in
  4195. "-"*) break ;;
  4196. *) colors+=("$arg") ;;
  4197. esac
  4198. done
  4199. colors+=(7 7 7 7 7 7)
  4200. ;;
  4201. # Text Formatting
  4202. "--underline") underline_enabled="$2" ;;
  4203. "--underline_char") underline_char="$2" ;;
  4204. "--bold") bold="$2" ;;
  4205. "--separator") separator="$2" ;;
  4206. # Color Blocks
  4207. "--color_blocks") color_blocks="$2" ;;
  4208. "--block_range") block_range=("$2" "$3") ;;
  4209. "--block_width") block_width="$2" ;;
  4210. "--block_height") block_height="$2" ;;
  4211. "--col_offset") col_offset="$2" ;;
  4212. # Bars
  4213. "--bar_char")
  4214. bar_char_elapsed="$2"
  4215. bar_char_total="$3"
  4216. ;;
  4217. "--bar_border") bar_border="$2" ;;
  4218. "--bar_length") bar_length="$2" ;;
  4219. "--bar_colors")
  4220. bar_color_elapsed="$2"
  4221. bar_color_total="$3"
  4222. ;;
  4223. "--cpu_display") cpu_display="$2" ;;
  4224. "--memory_display") memory_display="$2" ;;
  4225. "--battery_display") battery_display="$2" ;;
  4226. "--disk_display") disk_display="$2" ;;
  4227. # Image backend
  4228. "--backend") image_backend="$2" ;;
  4229. "--source") image_source="$2" ;;
  4230. "--ascii" | "--caca" | "--chafa" | "--jp2a" | "--iterm2" | "--off" | "--pot" |\
  4231. "--pixterm" | "--sixel" | "--termpix" | "--tycat" | "--w3m" | "--kitty")
  4232. image_backend="${1/--}"
  4233. case $2 in
  4234. "-"* | "") ;;
  4235. *) image_source="$2" ;;
  4236. esac
  4237. ;;
  4238. # Image options
  4239. "--loop") image_loop="on" ;;
  4240. "--image_size" | "--size") image_size="$2" ;;
  4241. "--crop_mode") crop_mode="$2" ;;
  4242. "--crop_offset") crop_offset="$2" ;;
  4243. "--xoffset") xoffset="$2" ;;
  4244. "--yoffset") yoffset="$2" ;;
  4245. "--background_color" | "--bg_color") background_color="$2" ;;
  4246. "--gap") gap="$2" ;;
  4247. "--clean")
  4248. [[ -d "$thumbnail_dir" ]] && rm -rf "$thumbnail_dir"
  4249. rm -rf "/Library/Caches/neofetch/"
  4250. rm -rf "/tmp/neofetch/"
  4251. exit
  4252. ;;
  4253. "--ascii_colors")
  4254. unset ascii_colors
  4255. for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
  4256. case $arg in
  4257. "-"*) break ;;
  4258. *) ascii_colors+=("$arg")
  4259. esac
  4260. done
  4261. ascii_colors+=(7 7 7 7 7 7)
  4262. ;;
  4263. "--ascii_distro")
  4264. image_backend="ascii"
  4265. ascii_distro="$2"
  4266. ;;
  4267. "--ascii_bold") ascii_bold="$2" ;;
  4268. "--logo" | "-L")
  4269. image_backend="ascii"
  4270. print_info() { printf '\n'; }
  4271. ;;
  4272. # Other
  4273. "--config")
  4274. case $2 in
  4275. "none" | "off" | "") ;;
  4276. *)
  4277. config_file="$(get_full_path "$2")"
  4278. get_user_config
  4279. ;;
  4280. esac
  4281. ;;
  4282. "--no_config") no_config="on" ;;
  4283. "--stdout") stdout="on" ;;
  4284. "-v") verbose="on" ;;
  4285. "--print_config") printf '%s\n' "$config"; exit ;;
  4286. "-vv") set -x; verbose="on" ;;
  4287. "--help") usage ;;
  4288. "--version")
  4289. printf '%s\n' "Neofetch $version"
  4290. exit 1
  4291. ;;
  4292. "--gen-man")
  4293. help2man -n "A fast, highly customizable system info script" \
  4294. -N ./neofetch -o neofetch.1
  4295. exit 1
  4296. ;;
  4297. "--json")
  4298. json="on"
  4299. unset -f get_title get_cols get_underline
  4300. printf '{\n'
  4301. print_info 2>/dev/null
  4302. printf ' %s\n' "\"Version\": \"${version}\""
  4303. printf '}\n'
  4304. exit
  4305. ;;
  4306. "--travis")
  4307. print_info() {
  4308. info title
  4309. info underline
  4310. info "OS" distro
  4311. info "Host" model
  4312. info "Kernel" kernel
  4313. info "Uptime" uptime
  4314. info "Packages" packages
  4315. info "Shell" shell
  4316. info "Resolution" resolution
  4317. info "DE" de
  4318. info "WM" wm
  4319. info "WM Theme" wm_theme
  4320. info "Theme" theme
  4321. info "Icons" icons
  4322. info "Terminal" term
  4323. info "Terminal Font" term_font
  4324. info "CPU" cpu
  4325. info "GPU" gpu
  4326. info "GPU Driver" gpu_driver
  4327. info "Memory" memory
  4328. info "CPU Usage" cpu_usage
  4329. info "Disk" disk
  4330. info "Battery" battery
  4331. info "Font" font
  4332. info "Song" song
  4333. info "Local IP" local_ip
  4334. info "Public IP" public_ip
  4335. info "Users" users
  4336. info cols
  4337. # Testing.
  4338. prin "prin"
  4339. prin "prin" "prin"
  4340. # Testing no subtitles.
  4341. info uptime
  4342. info disk
  4343. }
  4344. refresh_rate="on"
  4345. shell_version="on"
  4346. cpu_display="infobar"
  4347. memory_display="infobar"
  4348. disk_display="infobar"
  4349. cpu_temp="C"
  4350. # Known implicit unused variables.
  4351. mpc_args=()
  4352. printf '%s\n' "$kernel $icons $font $battery $locale ${mpc_args[*]}"
  4353. ;;
  4354. esac
  4355. shift
  4356. done
  4357. }
  4358. get_simple() {
  4359. while [[ "$1" ]]; do
  4360. [[ "$(type -t "get_$1")" == "function" ]] && {
  4361. get_distro
  4362. stdout
  4363. simple=1
  4364. info "$1" "$1"
  4365. }
  4366. shift
  4367. done
  4368. ((simple)) && exit
  4369. }
  4370. old_functions() {
  4371. # Removed functions for backwards compatibility.
  4372. get_line_break() { :; }
  4373. }
  4374. get_distro_ascii() {
  4375. # This function gets the distro ascii art and colors.
  4376. #
  4377. # $ascii_distro is the same as $distro.
  4378. case $(trim "$ascii_distro") in
  4379. "AIX"*)
  4380. set_colors 2 7
  4381. read -rd '' ascii_data <<'EOF'
  4382. ${c1} `:+ssssossossss+-`
  4383. .oys///oyhddddhyo///sy+.
  4384. /yo:+hNNNNNNNNNNNNNNNNh+:oy/
  4385. :h/:yNNNNNNNNNNNNNNNNNNNNNNy-+h:
  4386. `ys.yNNNNNNNNNNNNNNNNNNNNNNNNNNy.ys
  4387. `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oh
  4388. h+-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.oy
  4389. /d`mNNNNNNN/::mNNNd::m+:/dNNNo::dNNNd`m:
  4390. h//NNNNNNN: . .NNNh mNo od. -dNNNNN:+y
  4391. N.sNNNNNN+ -N/ -NNh mNNd. sNNNNNNNo-m
  4392. N.sNNNNNs +oo /Nh mNNs` ` /mNNNNNNo-m
  4393. h//NNNNh ossss` +h md- .hm/ `sNNNNN:+y
  4394. :d`mNNN+/yNNNNNd//y//h//oNNNNy//sNNNd`m-
  4395. yo-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNm.ss
  4396. `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oy
  4397. sy.yNNNNNNNNNNNNNNNNNNNNNNNNNNs.yo
  4398. :h+-yNNNNNNNNNNNNNNNNNNNNNNs-oh-
  4399. :ys:/yNNNNNNNNNNNNNNNmy/:sy:
  4400. .+ys///osyhhhhys+///sy+.
  4401. -/osssossossso/-
  4402. EOF
  4403. ;;
  4404. "Hash"*)
  4405. set_colors 123
  4406. read -rd '' ascii_data <<'EOF'
  4407. ${c1}
  4408. + ###### +
  4409. ### ###### ###
  4410. ##### ###### #####
  4411. ###### ###### ######
  4412. ####### '"###### '"########
  4413. ####### ###### ########
  4414. ####### ###### ########
  4415. ###### '"###### '"######
  4416. ##### ###### #####
  4417. ### ###### ###
  4418. ~ ###### ~
  4419. EOF
  4420. ;;
  4421. "alpine_small")
  4422. set_colors 4 7
  4423. read -rd '' ascii_data <<'EOF'
  4424. ${c1} /\\ /\\
  4425. /${c2}/ ${c1}\\ \\
  4426. /${c2}/ ${c1}\\ \\
  4427. /${c2}// ${c1}\\ \\
  4428. ${c2}// ${c1}\\ \\
  4429. \\
  4430. EOF
  4431. ;;
  4432. "Alpine"*)
  4433. set_colors 4 5 7 6
  4434. read -rd '' ascii_data <<'EOF'
  4435. ${c1} .hddddddddddddddddddddddh.
  4436. :dddddddddddddddddddddddddd:
  4437. /dddddddddddddddddddddddddddd/
  4438. +dddddddddddddddddddddddddddddd+
  4439. `sdddddddddddddddddddddddddddddddds`
  4440. `ydddddddddddd++hdddddddddddddddddddy`
  4441. .hddddddddddd+` `+ddddh:-sdddddddddddh.
  4442. hdddddddddd+` `+y: .sddddddddddh
  4443. ddddddddh+` `//` `.` -sddddddddd
  4444. ddddddh+` `/hddh/` `:s- -sddddddd
  4445. ddddh+` `/+/dddddh/` `+s- -sddddd
  4446. ddd+` `/o` :dddddddh/` `oy- .yddd
  4447. hdddyo+ohddyosdddddddddho+oydddy++ohdddh
  4448. .hddddddddddddddddddddddddddddddddddddh.
  4449. `yddddddddddddddddddddddddddddddddddy`
  4450. `sdddddddddddddddddddddddddddddddds`
  4451. +dddddddddddddddddddddddddddddd+
  4452. /dddddddddddddddddddddddddddd/
  4453. :dddddddddddddddddddddddddd:
  4454. .hddddddddddddddddddddddh.
  4455. EOF
  4456. ;;
  4457. "Alter"*)
  4458. set_colors 6 6
  4459. read -rd '' ascii_data <<'EOF'
  4460. ${c1} %,
  4461. ^WWWw
  4462. 'wwwwww
  4463. !wwwwwwww
  4464. #`wwwwwwwww
  4465. @wwwwwwwwwwww
  4466. wwwwwwwwwwwwwww
  4467. wwwwwwwwwwwwwwwww
  4468. wwwwwwwwwwwwwwwwwww
  4469. wwwwwwwwwwwwwwwwwwww,
  4470. w~1i.wwwwwwwwwwwwwwwww,
  4471. 3~:~1lli.wwwwwwwwwwwwwwww.
  4472. :~~:~?ttttzwwwwwwwwwwwwwwww
  4473. #<~:~~~~?llllltO-.wwwwwwwwwww
  4474. #~:~~:~:~~?ltlltlttO-.wwwwwwwww
  4475. @~:~~:~:~:~~(zttlltltlOda.wwwwwww
  4476. @~:~~: ~:~~:~:(zltlltlO a,wwwwww
  4477. 8~~:~~:~~~~:~~~~_1ltltu ,www
  4478. 5~~:~~:~~:~~:~~:~~~_1ltq N,,
  4479. g~:~~:~~~:~~:~~:~:~~~~1q N,
  4480. EOF
  4481. ;;
  4482. "Amazon"*)
  4483. set_colors 3 7
  4484. read -rd '' ascii_data <<'EOF'
  4485. ${c1} `-/oydNNdyo:.`
  4486. `.:+shmMMMMMMMMMMMMMMmhs+:.`
  4487. -+hNNMMMMMMMMMMMMMMMMMMMMMMNNho-
  4488. .`` -/+shmNNMMMMMMNNmhs+/- ``.
  4489. dNmhs+:. `.:/oo/:.` .:+shmNd
  4490. dMMMMMMMNdhs+:.. ..:+shdNMMMMMMMd
  4491. dMMMMMMMMMMMMMMNds odNMMMMMMMMMMMMMMd
  4492. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4493. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4494. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4495. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4496. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4497. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4498. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4499. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4500. dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
  4501. .:+ydNMMMMMMMMMMMh yMMMMMMMMMMMNdy+:.
  4502. `.:+shNMMMMMh yMMMMMNhs+:``
  4503. `-+shy shs+:`
  4504. EOF
  4505. ;;
  4506. "Anarchy"*)
  4507. set_colors 7 4
  4508. read -rd '' ascii_data <<'EOF'
  4509. ${c2}..${c1}
  4510. ${c2}..${c1}
  4511. ${c2}:..${c1}
  4512. ${c2}:+++.${c1}
  4513. .:::++${c2}++++${c1}+::.
  4514. .:+######${c2}++++${c1}######+:.
  4515. .+#########${c2}+++++${c1}##########:.
  4516. .+##########${c2}+++++++${c1}##${c2}+${c1}#########+.
  4517. +###########${c2}+++++++++${c1}############:
  4518. +##########${c2}++++++${c1}#${c2}++++${c1}#${c2}+${c1}###########+
  4519. +###########${c2}+++++${c1}###${c2}++++${c1}#${c2}+${c1}###########+
  4520. :##########${c2}+${c1}#${c2}++++${c1}####${c2}++++${c1}#${c2}+${c1}############:
  4521. ###########${c2}+++++${c1}#####${c2}+++++${c1}#${c2}+${c1}###${c2}++${c1}######+
  4522. .##########${c2}++++++${c1}#####${c2}++++++++++++${c1}#######.
  4523. .##########${c2}+++++++++++++++++++${c1}###########.
  4524. #####${c2}++++++++++++++${c1}###${c2}++++++++${c1}#########+
  4525. :###${c2}++++++++++${c1}#########${c2}+++++++${c1}#########:
  4526. +######${c2}+++++${c1}##########${c2}++++++++${c1}#######+
  4527. +####${c2}+++++${c1}###########${c2}+++++++++${c1}#####+
  4528. :##${c2}++++++${c1}############${c2}++++++++++${c1}##:
  4529. .${c2}++++++${c1}#############${c2}++++++++++${c1}+.
  4530. :${c2}++++${c1}###############${c2}+++++++${c1}::
  4531. .${c2}++. .:+${c1}##############${c2}+++++++${c1}..
  4532. ${c2}.:.${c1} ..::++++++::..:${c2}++++${c1}+.
  4533. ${c2}.${c1} ${c2}.:+++${c1}.
  4534. ${c2}.:${c1}:
  4535. ${c2}..${c1}
  4536. ${c2}..${c1}
  4537. EOF
  4538. ;;
  4539. "android_small"*)
  4540. set_colors 2 7
  4541. read -rd '' ascii_data <<'EOF'
  4542. ${c1} ;, ,;
  4543. ';,.-----.,;'
  4544. ,' ',
  4545. / O O \\
  4546. | |
  4547. '-----------------'
  4548. EOF
  4549. ;;
  4550. "Android"*)
  4551. set_colors 2 7
  4552. read -rd '' ascii_data <<'EOF'
  4553. ${c1} -o o-
  4554. +hydNNNNdyh+
  4555. +mMMMMMMMMMMMMm+
  4556. `dMM${c2}m:${c1}NMMMMMMN${c2}:m${c1}MMd`
  4557. hMMMMMMMMMMMMMMMMMMh
  4558. .. yyyyyyyyyyyyyyyyyyyy ..
  4559. .mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm.
  4560. :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
  4561. :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
  4562. :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
  4563. :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
  4564. -MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM-
  4565. +yy+ MMMMMMMMMMMMMMMMMMMM +yy+
  4566. mMMMMMMMMMMMMMMMMMMm
  4567. `/++MMMMh++hMMMM++/`
  4568. MMMMo oMMMM
  4569. MMMMo oMMMM
  4570. oNMm- -mMNs
  4571. EOF
  4572. ;;
  4573. "Antergos"*)
  4574. set_colors 4 6
  4575. read -rd '' ascii_data <<'EOF'
  4576. ${c2} `.-/::/-``
  4577. .-/osssssssso/.
  4578. :osyysssssssyyys+-
  4579. `.+yyyysssssssssyyyyy+.
  4580. `/syyyyyssssssssssyyyyys-`
  4581. `/yhyyyyysss${c1}++${c2}ssosyyyyhhy/`
  4582. .ohhhyyyys${c1}o++/+o${c2}so${c1}+${c2}syy${c1}+${c2}shhhho.
  4583. .shhhhys${c1}oo++//+${c2}sss${c1}+++${c2}yyy${c1}+s${c2}hhhhs.
  4584. -yhhhhs${c1}+++++++o${c2}ssso${c1}+++${c2}yyy${c1}s+o${c2}hhddy:
  4585. -yddhhy${c1}o+++++o${c2}syyss${c1}++++${c2}yyy${c1}yooy${c2}hdddy-
  4586. .yddddhs${c1}o++o${c2}syyyyys${c1}+++++${c2}yyhh${c1}sos${c2}hddddy`
  4587. `odddddhyosyhyyyyyy${c1}++++++${c2}yhhhyosddddddo
  4588. .dmdddddhhhhhhhyyyo${c1}+++++${c2}shhhhhohddddmmh.
  4589. ddmmdddddhhhhhhhso${c1}++++++${c2}yhhhhhhdddddmmdy
  4590. dmmmdddddddhhhyso${c1}++++++${c2}shhhhhddddddmmmmh
  4591. -dmmmdddddddhhys${c1}o++++o${c2}shhhhdddddddmmmmd-
  4592. .smmmmddddddddhhhhhhhhhdddddddddmmmms.
  4593. `+ydmmmdddddddddddddddddddmmmmdy/.
  4594. `.:+ooyyddddddddddddyyso+:.`
  4595. EOF
  4596. ;;
  4597. "antiX"*)
  4598. set_colors 1 7 3
  4599. read -rd '' ascii_data <<'EOF'
  4600. ${c1}
  4601. \
  4602. , - ~ ^ ~ - \ /
  4603. , ' \ ' , /
  4604. , \ '/
  4605. , \ / ,
  4606. ,___, \/ ,
  4607. / | _ _ _|_ o /\ ,
  4608. |, | / |/ | | | / \ ,
  4609. \,_/\_/ | |_/|_/|_/_/ \,
  4610. , / ,\
  4611. , / , ' \
  4612. ' - , _ _ _ , '
  4613. EOF
  4614. ;;
  4615. "AOSC OS/Retro"*)
  4616. set_colors 4 7 1 3
  4617. read -rd '' ascii_data <<'EOF'
  4618. ${c2} .........
  4619. ...................
  4620. .....................${c1}################${c2}
  4621. .............. ....${c1}################${c2}
  4622. .............. ...${c1}################${c2}
  4623. ............. ..${c1}****************${c2}
  4624. ............ . .${c1}****************${c2}
  4625. ........... ... ${c1}................${c2}
  4626. .......... ..... ${c1}...............${c2}
  4627. ......... ....... ...
  4628. .${c3}...... ${c2}.
  4629. ${c3}..... .....${c2}.... ${c4}...........
  4630. ${c3}.... ......${c2}. ${c4}...........
  4631. ${c3}... ....... ${c4}...........
  4632. ${c3}................ ${c4}***********
  4633. ${c3}................ ${c4}###########
  4634. ${c3}****************
  4635. ${c3}################
  4636. EOF
  4637. ;;
  4638. "AOSC OS"*)
  4639. set_colors 4 7 1
  4640. read -rd '' ascii_data <<'EOF'
  4641. ${c2} .:+syhhhhys+:.
  4642. .ohNMMMMMMMMMMMMMMNho.
  4643. `+mMMMMMMMMMMmdmNMMMMMMMMm+`
  4644. +NMMMMMMMMMMMM/ `./smMMMMMN+
  4645. .mMMMMMMMMMMMMMMo -yMMMMMm.
  4646. :NMMMMMMMMMMMMMMMs .hMMMMN:
  4647. .NMMMMhmMMMMMMMMMMm+/- oMMMMN.
  4648. dMMMMs ./ymMMMMMMMMMMNy. sMMMMd
  4649. -MMMMN` oMMMMMMMMMMMN: `NMMMM-
  4650. /MMMMh NMMMMMMMMMMMMm hMMMM/
  4651. /MMMMh NMMMMMMMMMMMMm hMMMM/
  4652. -MMMMN` :MMMMMMMMMMMMy. `NMMMM-
  4653. dMMMMs .yNMMMMMMMMMMMNy/. sMMMMd
  4654. .NMMMMo -/+sMMMMMMMMMMMmMMMMN.
  4655. :NMMMMh. .MMMMMMMMMMMMMMMN:
  4656. .mMMMMMy- NMMMMMMMMMMMMMm.
  4657. +NMMMMMms/.` mMMMMMMMMMMMN+
  4658. `+mMMMMMMMMNmddMMMMMMMMMMm+`
  4659. .ohNMMMMMMMMMMMMMMNho.
  4660. .:+syhhhhys+:.
  4661. EOF
  4662. ;;
  4663. "Apricity"*)
  4664. set_colors 4 7 1
  4665. read -rd '' ascii_data <<'EOF'
  4666. ${c2} ./o-
  4667. ``...`` `:. -/:
  4668. `-+ymNMMMMMNmho-` :sdNNm/
  4669. `+dMMMMMMMMMMMMMMMmo` sh:.:::-
  4670. /mMMMMMMMMMMMMMMMMMMMm/`sNd/
  4671. oMMMMMMMMMMMMMMMMMMMMMMMs -`
  4672. :MMMMMMMMMMMMMMMMMMMMMMMMM/
  4673. NMMMMMMMMMMMMMMMMMMMMMMMMMd
  4674. MMMMMMMmdmMMMMMMMMMMMMMMMMd
  4675. MMMMMMy` .mMMMMMMMMMMMmho:`
  4676. MMMMMMNo/sMMMMMMMNdy+-.`-/
  4677. MMMMMMMMMMMMNdy+:.`.:ohmm:
  4678. MMMMMMMmhs+-.`.:+ymNMMMy.
  4679. MMMMMM/`.-/ohmNMMMMMMy-
  4680. MMMMMMNmNNMMMMMMMMmo.
  4681. MMMMMMMMMMMMMMMms:`
  4682. MMMMMMMMMMNds/.
  4683. dhhyys+/-`
  4684. EOF
  4685. ;;
  4686. "arcolinux_small"*)
  4687. set_colors 7 4
  4688. read -rd '' ascii_data <<'EOF'
  4689. ${c2} A
  4690. ooo
  4691. ooooo
  4692. ooooooo
  4693. ooooooooo
  4694. ooooo ooooo
  4695. ooooo ooooo
  4696. ooooo ooooo
  4697. ooooo ${c1}<oooooooo>${c2}
  4698. ooooo ${c1}<oooooo>${c2}
  4699. ooooo ${c1}<oooo>${c2}
  4700. EOF
  4701. ;;
  4702. "ArcoLinux"*)
  4703. set_colors 7 4
  4704. read -rd '' ascii_data <<'EOF'
  4705. ${c2} /-
  4706. ooo:
  4707. yoooo/
  4708. yooooooo
  4709. yooooooooo
  4710. yooooooooooo
  4711. .yooooooooooooo
  4712. .oooooooooooooooo
  4713. .oooooooarcoooooooo
  4714. .ooooooooo-oooooooooo
  4715. .ooooooooo- oooooooooo
  4716. :ooooooooo. :ooooooooo
  4717. :ooooooooo. :ooooooooo
  4718. :oooarcooo .oooarcooo
  4719. :ooooooooy .ooooooooo
  4720. :ooooooooo ${c1}/ooooooooooooooooooo${c2}
  4721. :ooooooooo ${c1}.-ooooooooooooooooo.${c2}
  4722. ooooooooo- ${c1}-ooooooooooooo.${c2}
  4723. ooooooooo- ${c1}.-oooooooooo.${c2}
  4724. ooooooooo. ${c1}-ooooooooo${c2}
  4725. EOF
  4726. ;;
  4727. "arch_small")
  4728. set_colors 6 7 1
  4729. read -rd '' ascii_data <<'EOF'
  4730. ${c1} /\\
  4731. / \\
  4732. /\\ \\
  4733. ${c2} / \\
  4734. / ,, \\
  4735. / | | -\\
  4736. /_-'' ''-_\\
  4737. EOF
  4738. ;;
  4739. "arch_old")
  4740. set_colors 6 7 1
  4741. read -rd '' ascii_data <<'EOF'
  4742. ${c1} __
  4743. _=(SDGJT=_
  4744. _GTDJHGGFCVS)
  4745. ,GTDJGGDTDFBGX0
  4746. ${c1} JDJDIJHRORVFSBSVL${c2}-=+=,_
  4747. ${c1} IJFDUFHJNXIXCDXDSV,${c2} "DEBL
  4748. ${c1} [LKDSDJTDU=OUSCSBFLD.${c2} '?ZWX,
  4749. ${c1} ,LMDSDSWH' `DCBOSI${c2} DRDS],
  4750. ${c1} SDDFDFH' !YEWD,${c2} )HDROD
  4751. ${c1} !KMDOCG &GSU|${c2}\_GFHRGO\'
  4752. ${c1} HKLSGP'${c2} __${c1}\TKM0${c2}\GHRBV)'
  4753. ${c1}JSNRVW'${c2} __+MNAEC${c1}\IOI,${c2}\BN'
  4754. ${c1}HELK['${c2} __,=OFFXCBGHC${c1}\FD)
  4755. ${c1}?KGHE ${c2}\_-#DASDFLSV='${c1} 'EF
  4756. 'EHTI !H
  4757. `0F' '!
  4758. EOF
  4759. ;;
  4760. "ArchBox"*)
  4761. set_colors 2 7 1
  4762. read -rd '' ascii_data <<'EOF'
  4763. ${c1} ...:+oh/:::..
  4764. ..-/oshhhhhh` `::::-.
  4765. .:/ohhhhhhhhhhhh` `-::::.
  4766. .+shhhhhhhhhhhhhhhhh` `.::-.
  4767. /`-:+shhhhhhhhhhhhhh` .-/+shh
  4768. / .:/ohhhhhhhhh` .:/ohhhhhhhh
  4769. / `-:+shhh` ..:+shhhhhhhhhhhh
  4770. / .:ohhhhhhhhhhhhhhhhhhh
  4771. / `hhhhhhhhhhhhhhhhhhhh
  4772. / `hhhhhhhhhhhhhhhhhhhh
  4773. / `hhhhhhhhhhhhhhhhhhhh
  4774. / `hhhhhhhhhhhhhhhhhhhh
  4775. / .+o+ `hhhhhhhhhhhhhhhhhhhh
  4776. / -hhhhh `hhhhhhhhhhhhhhhhhhhh
  4777. / ohhhhho `hhhhhhhhhhhhhhhhhhhh
  4778. /:::+`hhhhoos` `hhhhhhhhhhhhhhhhhs+`
  4779. `--/:` /: `hhhhhhhhhhhho/-
  4780. -/:. `hhhhhhs+:-`
  4781. ::::/ho/-`
  4782. EOF
  4783. ;;
  4784. "ARCHlabs"*)
  4785. set_colors 6 6 7 1
  4786. read -rd '' ascii_data <<'EOF'
  4787. ${c1} 'c'
  4788. 'kKk,
  4789. .dKKKx.
  4790. .oKXKXKd.
  4791. .l0XXXXKKo.
  4792. c0KXXXXKX0l.
  4793. :0XKKOxxOKX0l.
  4794. :OXKOc. .c0XX0l.
  4795. :OK0o. ${c4}...${c1}'dKKX0l.
  4796. :OX0c ${c4};xOx'${c1}'dKXX0l.
  4797. :0KKo.${c4}.o0XXKd'.${c1}lKXX0l.
  4798. c0XKd.${c4}.oKXXXXKd..${c1}oKKX0l.
  4799. .c0XKk;${c4}.l0K0OO0XKd..${c1}oKXXKo.
  4800. .l0XXXk:${c4},dKx,.'l0XKo.${c1}.kXXXKo.
  4801. .o0XXXX0d,${c4}:x; .oKKx'${c1}.dXKXXKd.
  4802. .oKXXXXKK0c.${c4};. :00c'${c1}cOXXXXXKd.
  4803. .dKXXXXXXXXk,${c4}. cKx'${c1}'xKXXXXXXKx'
  4804. 'xKXXXXK0kdl:. ${c4}.ok; ${c1}.cdk0KKXXXKx'
  4805. 'xKK0koc,.. ${c4}'c, ${c1} ..,cok0KKk,
  4806. ,xko:'. ${c4}.. ${c1} .':okx;
  4807. .,'. .',.
  4808. EOF
  4809. ;;
  4810. "ArchStrike"*)
  4811. set_colors 8 6
  4812. read -rd '' ascii_data <<'EOF'
  4813. ${c1}                   *   
  4814.                   **.
  4815.                  ****
  4816.                 ******
  4817.                 *******
  4818.               ** *******
  4819.              **** *******
  4820.             ${c1}****${c2}_____${c1}***${c2}/${c1}*
  4821.            ***${c2}/${c1}*******${c2}//${c1}***
  4822.           **${c2}/${c1}********${c2}///${c1}*${c2}/${c1}**
  4823.          **${c2}/${c1}*******${c2}////${c1}***${c2}/${c1}**
  4824.         **${c2}/${c1}****${c2}//////.,${c1}****${c2}/${c1}**
  4825.        ***${c2}/${c1}*****${c2}/////////${c1}**${c2}/${c1}***
  4826.       ****${c2}/${c1}****    ${c2}/////${c1}***${c2}/${c1}****
  4827.      ******${c2}/${c1}*** ${c2}////   ${c1}**${c2}/${c1}******
  4828.     ********${c2}/${c1}* ${c2}///      ${c1}*${c2}/${c1}********
  4829.   ,******     ${c2}// ______ /    ${c1}******,
  4830. EOF
  4831. ;;
  4832. *"XFerience"*)
  4833. set_colors 6 6 7 1
  4834. read -rd '' ascii_data <<'EOF'
  4835. ${c1} ``--:::::::-.`
  4836. .-/+++ooooooooo+++:-`
  4837. `-/+oooooooooooooooooo++:.
  4838. -/+oooooo/+ooooooooo+/ooo++:`
  4839. `/+oo++oo. .+oooooo+.-: +:-o+-
  4840. `/+o/. -o. :oooooo+ ```:.+oo+-
  4841. `:+oo- -/` :oooooo+ .`-`+oooo/.
  4842. .+ooo+. .` `://///+-+..oooooo+:`
  4843. -+ooo:` ``.-+oooooo+/`
  4844. -+oo/` :+oooo/.
  4845. .+oo: ..-/. . -+oo+/`
  4846. `/++- -:::++::/. -+oo+-
  4847. ./o: `:///+- `./ooo+:`
  4848. .++- `` /-` -:/+oooo+:`
  4849. .:+/:`` `-:ooooooo++-
  4850. ./+o+//:...../+oooooooo++:`
  4851. `:/++ooooooooooooo++/-`
  4852. `.-//++++++//:-.`
  4853. ``````
  4854. EOF
  4855. ;;
  4856. "ArchMerge"*)
  4857. set_colors 6 6 7 1
  4858. read -rd '' ascii_data <<'EOF'
  4859. ${c1} y:
  4860. sMN-
  4861. +MMMm`
  4862. /MMMMMd`
  4863. :NMMMMMMy
  4864. -NMMMMMMMMs
  4865. .NMMMMMMMMMM+
  4866. .mMMMMMMMMMMMM+
  4867. oNMMMMMMMMMMMMM+
  4868. `+:-+NMMMMMMMMMMMM+
  4869. .sNMNhNMMMMMMMMMMMM/
  4870. `hho/sNMMMMMMMMMMMMMMM/
  4871. `.`omMMmMMMMMMMMMMMMMMMM+
  4872. .mMNdshMMMMd+::oNMMMMMMMMMo
  4873. .mMMMMMMMMM+ `yMMMMMMMMMs
  4874. .NMMMMMMMMM/ yMMMMMMMMMy
  4875. -NMMMMMMMMMh `mNMMMMMMMMd`
  4876. /NMMMNds+:.` `-/oymMMMm.
  4877. +Mmy/. `:smN:
  4878. /+. -o.
  4879. EOF
  4880. ;;
  4881. "Arch"*)
  4882. set_colors 6 6 7 1
  4883. read -rd '' ascii_data <<'EOF'
  4884. ${c1} -`
  4885. .o+`
  4886. `ooo/
  4887. `+oooo:
  4888. `+oooooo:
  4889. -+oooooo+:
  4890. `/:-:++oooo+:
  4891. `/++++/+++++++:
  4892. `/++++++++++++++:
  4893. `/+++o${c2}oooooooo${c1}oooo/`
  4894. ${c2} ${c1}./${c2}ooosssso++osssssso${c1}+`
  4895. ${c2} .oossssso-````/ossssss+`
  4896. -osssssso. :ssssssso.
  4897. :osssssss/ osssso+++.
  4898. /ossssssss/ +ssssooo/-
  4899. `/ossssso+/:- -:/+osssso+-
  4900. `+sso+:-` `.-/+oso:
  4901. `++:. `-/+/
  4902. .` `/
  4903. EOF
  4904. ;;
  4905. "artix_small"*)
  4906. set_colors 6 6 7 1
  4907. read -rd '' ascii_data <<'EOF'
  4908. ${c1} /\\
  4909. / \\
  4910. /`'.,\\
  4911. / ',
  4912. / ,`\\
  4913. / ,.'`. \\
  4914. /.,'` `'.\\
  4915. EOF
  4916. ;;
  4917. "Artix"*)
  4918. set_colors 6 6 7 1
  4919. read -rd '' ascii_data <<'EOF'
  4920. ${c1} '
  4921. 'o'
  4922. 'ooo'
  4923. 'ooxoo'
  4924. 'ooxxxoo'
  4925. 'oookkxxoo'
  4926. 'oiioxkkxxoo'
  4927. ':;:iiiioxxxoo'
  4928. `'.;::ioxxoo'
  4929. '-. `':;jiooo'
  4930. 'oooio-.. `'i:io'
  4931. 'ooooxxxxoio:,. `'-;'
  4932. 'ooooxxxxxkkxoooIi:-. `'
  4933. 'ooooxxxxxkkkkxoiiiiiji'
  4934. 'ooooxxxxxkxxoiiii:'` .i'
  4935. 'ooooxxxxxoi:::'` .;ioxo'
  4936. 'ooooxooi::'` .:iiixkxxo'
  4937. 'ooooi:'` `'';ioxxo'
  4938. 'i:'` '':io'
  4939. '` `'
  4940. EOF
  4941. ;;
  4942. "Arya"*)
  4943. set_colors 2 1
  4944. read -rd '' ascii_data <<'EOF'
  4945. ${c1} `oyyy/${c2}-yyyyyy+
  4946. ${c1} -syyyy/${c2}-yyyyyy+
  4947. ${c1} .syyyyy/${c2}-yyyyyy+
  4948. ${c1} :yyyyyy/${c2}-yyyyyy+
  4949. ${c1} `/ :yyyyyy/${c2}-yyyyyy+
  4950. ${c1} .+s :yyyyyy/${c2}-yyyyyy+
  4951. ${c1} .oys :yyyyyy/${c2}-yyyyyy+
  4952. ${c1} -oyys :yyyyyy/${c2}-yyyyyy+
  4953. ${c1} :syyys :yyyyyy/${c2}-yyyyyy+
  4954. ${c1} /syyyys :yyyyyy/${c2}-yyyyyy+
  4955. ${c1} +yyyyyys :yyyyyy/${c2}-yyyyyy+
  4956. ${c1} .oyyyyyyo. :yyyyyy/${c2}-yyyyyy+ ---------
  4957. ${c1} .syyyyyy+` :yyyyyy/${c2}-yyyyy+-+syyyyyyyy
  4958. ${c1} -syyyyyy/ :yyyyyy/${c2}-yyys:.syyyyyyyyyy
  4959. ${c1}:syyyyyy/ :yyyyyy/${c2}-yyo.:syyyyyyyyyyy
  4960. EOF
  4961. ;;
  4962. "Bedrock"*)
  4963. set_colors 8 7
  4964. read -rd '' ascii_data <<'EOF'
  4965. ${c1}--------------------------------------
  4966. --------------------------------------
  4967. --------------------------------------
  4968. ---${c2}\\\\\\\\\\\\\\\\\\\\\\\\${c1}-----------------------
  4969. ----${c2}\\\\\\ \\\\\\${c1}----------------------
  4970. -----${c2}\\\\\\ \\\\\\${c1}---------------------
  4971. ------${c2}\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\${c1}------
  4972. -------${c2}\\\\\\ \\\\\\${c1}-----
  4973. --------${c2}\\\\\\ \\\\\\${c1}----
  4974. ---------${c2}\\\\\\ ______ \\\\\\${c1}---
  4975. ----------${c2}\\\\\\ ///${c1}---
  4976. -----------${c2}\\\\\\ ///${c1}----
  4977. ------------${c2}\\\\\\ ///${c1}-----
  4978. -------------${c2}\\\\\\////////////////${c1}------
  4979. --------------------------------------
  4980. --------------------------------------
  4981. --------------------------------------
  4982. EOF
  4983. ;;
  4984. "Bitrig"*)
  4985. set_colors 2 7
  4986. read -rd '' ascii_data <<'EOF'
  4987. ${c1} `hMMMMN+
  4988. -MMo-dMd`
  4989. oMN- oMN`
  4990. yMd /NM:
  4991. .mMmyyhMMs
  4992. :NMMMhsmMh
  4993. +MNhNNoyMm-
  4994. hMd.-hMNMN:
  4995. mMmsssmMMMo
  4996. .MMdyyhNMMMd
  4997. oMN.`/dMddMN`
  4998. yMm/hNm+./MM/
  4999. .dMMMmo.``.NMo
  5000. :NMMMNmmmmmMMh
  5001. /MN/-------oNN:
  5002. hMd. .dMh
  5003. sm/ /ms
  5004. EOF
  5005. ;;
  5006. "BlackArch"*)
  5007. set_colors 1 1 0 1
  5008. read -rd '' ascii_data <<'EOF'
  5009. ${c3} 00
  5010. 11
  5011. ====${c1}
  5012. .${c3}//${c1}
  5013. `o${c3}//${c1}:
  5014. `+o${c3}//${c1}o:
  5015. `+oo${c3}//${c1}oo:
  5016. -+oo${c3}//${c1}oo+:
  5017. `/:-:+${c3}//${c1}ooo+:
  5018. `/+++++${c3}//${c1}+++++:
  5019. `/++++++${c3}//${c1}++++++:
  5020. `/+++o${c2}ooo${c3}//${c2}ooo${c1}oooo/`
  5021. ${c2} ${c1}./${c2}ooosssso${c3}//${c2}osssssso${c1}+`
  5022. ${c2} .oossssso-`${c3}//${c1}`/ossssss+`
  5023. -osssssso. ${c3}//${c1} :ssssssso.
  5024. :osssssss/ ${c3}//${c1} osssso+++.
  5025. /ossssssss/ ${c3}//${c1} +ssssooo/-
  5026. `/ossssso+/:- ${c3}//${c1} -:/+osssso+-
  5027. `+sso+:-` ${c3}//${c1} `.-/+oso:
  5028. `++:. ${c3}//${c1} `-/+/
  5029. .` ${c3}/${c1} `/
  5030. EOF
  5031. ;;
  5032. "BLAG"*)
  5033. set_colors 5 7
  5034. read -rd '' ascii_data <<'EOF'
  5035. ${c1} d
  5036. ,MK:
  5037. xMMMX:
  5038. .NMMMMMX;
  5039. lMMMMMMMM0clodkO0KXWW:
  5040. KMMMMMMMMMMMMMMMMMMX'
  5041. .;d0NMMMMMMMMMMMMMMMMMMK.
  5042. .;dONMMMMMMMMMMMMMMMMMMMMMMx
  5043. 'dKMMMMMMMMMMMMMMMMMMMMMMMMl
  5044. .:xKWMMMMMMMMMMMMMMMMMMM0.
  5045. .:xNMMMMMMMMMMMMMMMMMK.
  5046. lMMMMMMMMMMMMMMMMMMK.
  5047. ,MMMMMMMMWkOXWMMMMMM0
  5048. .NMMMMMNd. `':ldko
  5049. OMMMK:
  5050. oWk,
  5051. ;:
  5052. EOF
  5053. ;;
  5054. "BlankOn"*)
  5055. set_colors 1 7 3
  5056. read -rd '' ascii_data <<'EOF'
  5057. ${c2} `./ohdNMMMMNmho+.` ${c1} .+oo:`
  5058. ${c2} -smMMMMMMMMMMMMMMMMmy-` ${c1}`yyyyy+
  5059. ${c2} `:dMMMMMMMMMMMMMMMMMMMMMMd/` ${c1}`yyyyys
  5060. ${c2} .hMMMMMMMNmhso/++symNMMMMMMMh- ${c1}`yyyyys
  5061. ${c2} -mMMMMMMms-` -omMMMMMMN-${c1}.yyyyys
  5062. ${c2}.mMMMMMMy. .yMMMMMMm:${c1}yyyyys
  5063. ${c2}sMMMMMMy `sMMMMMMh${c1}yyyyys
  5064. ${c2}NMMMMMN: .NMMMMMN${c1}yyyyys
  5065. ${c2}MMMMMMm. NMMMMMN${c1}yyyyys
  5066. ${c2}hMMMMMM+ /MMMMMMN${c1}yyyyys
  5067. ${c2}:NMMMMMN: :mMMMMMM+${c1}yyyyys
  5068. ${c2} oMMMMMMNs- .sNMMMMMMs.${c1}yyyyys
  5069. ${c2} +MMMMMMMNho:.` `.:ohNMMMMMMNo ${c1}`yyyyys
  5070. ${c2} -hMMMMMMMMNNNmmNNNMMMMMMMMh- ${c1}`yyyyys
  5071. ${c2} :yNMMMMMMMMMMMMMMMMMMNy:` ${c1}`yyyyys
  5072. ${c2} .:sdNMMMMMMMMMMNds/. ${c1}`yyyyyo
  5073. ${c2} `.:/++++/:.` ${c1}:oys+.
  5074. EOF
  5075. ;;
  5076. "BlueLight"*)
  5077. set_colors 7 4
  5078. read -rd '' ascii_data <<'EOF'
  5079. ${c1} oMMNMMMMMMMMMMMMMMMMMMMMMM
  5080. oMMMMMMMMMMMMMMMMMMMMMMMMM
  5081. oMMMMMMMMMMMMMMMMMMMMMMMMM
  5082. oMMMMMMMMMMMMMMMMMMMMMMMMM
  5083. -+++++++++++++++++++++++mM${c2}
  5084. ```````````````````````..${c1}dM${c2}
  5085. ```````````````````````....${c1}dM${c2}
  5086. ```````````````````````......${c1}dM${c2}
  5087. ```````````````````````........${c1}dM${c2}
  5088. ```````````````````````..........${c1}dM${c2}
  5089. ```````````````````````............${c1}dM${c2}
  5090. .::::::::::::::::::::::-..............${c1}dM${c2}
  5091. `-+yyyyyyyyyyyyyyyyyyyo............${c1}+mMM${c2}
  5092. -+yyyyyyyyyyyyyyyyo..........${c1}+mMMMM${c2}
  5093. ./syyyyyyyyyyyyo........${c1}+mMMMMMM${c2}
  5094. ./oyyyyyyyyyo......${c1}+mMMMMMMMM${c2}
  5095. omdyyyyyyo....${c1}+mMMMMMMMMMM${c2}
  5096. ${c1}oMMM${c2}mdhyyo..${c1}+mMMMMMMMMMMMM
  5097. oNNNNNNm${c2}dso${c1}mMMMMMMMMMMMMMM
  5098. EOF
  5099. ;;
  5100. "bonsai"*)
  5101. set_colors 6 2 3
  5102. read -rd '' ascii_data <<'EOF'
  5103. ${c2} ,####,
  5104. ${c2}#######, ${c2},#####,
  5105. ${c2}#####',# ${c2}'######
  5106. ${c2}''###'${c3}';,,,'${c2}###'
  5107. ${c3} ,; ''''
  5108. ${c3} ;;; ${c2},#####,
  5109. ${c3} ;;;' ,,;${c2};;###
  5110. ${c3} ';;;;''${c2}'####'
  5111. ${c3} ;;;
  5112. ${c3} ,.;;';'',,,
  5113. ${c3} ' '
  5114. ${c1} #
  5115. # O
  5116. ##, ,##,',##, ,## ,#, ,
  5117. # # # # #''# #,, # # #
  5118. '#' '##' # # ,,# '##;, #
  5119. EOF
  5120. ;;
  5121. "BSD")
  5122. set_colors 1 7 4 3 6
  5123. read -rd '' ascii_data <<'EOF'
  5124. ${c1} , ,
  5125. /( )`
  5126. \ \___ / |
  5127. /- _ `-/ '
  5128. (${c2}/\/ \ ${c1}\ /\
  5129. ${c2}/ / | ` ${c1}\
  5130. ${c3}O O ${c2}) ${c1}/ |
  5131. ${c2}`-^--'${c1}`< '
  5132. (_.) _ ) /
  5133. `.___/` /
  5134. `-----' /
  5135. ${c4}<----. __ / __ \
  5136. ${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====|
  5137. <----' ${c1}`--' `.__,' \
  5138. | |
  5139. \ / /\
  5140. ${c5}______${c1}( (_ / \______/
  5141. ${c5},' ,-----' |
  5142. `--{__________)
  5143. EOF
  5144. ;;
  5145. "BunsenLabs"*)
  5146. set_colors fg 7
  5147. read -rd '' ascii_data <<'EOF'
  5148. ${c1} `++
  5149. -yMMs
  5150. `yMMMMN`
  5151. -NMMMMMMm.
  5152. :MMMMMMMMMN-
  5153. .NMMMMMMMMMMM/
  5154. yMMMMMMMMMMMMM/
  5155. `MMMMMMNMMMMMMMN.
  5156. -MMMMN+ /mMMMMMMy
  5157. -MMMm` `dMMMMMM
  5158. `MMN. .NMMMMM.
  5159. hMy yMMMMM`
  5160. -Mo +MMMMN
  5161. /o +MMMMs
  5162. +MMMN`
  5163. hMMM:
  5164. `NMM/
  5165. +MN:
  5166. mh.
  5167. -/
  5168. EOF
  5169. ;;
  5170. "Calculate"*)
  5171. set_colors 7 3
  5172. read -rd '' ascii_data <<'EOF'
  5173. ${c1} ......
  5174. ,,+++++++,.
  5175. .,,,....,,,${c2}+**+,,.${c1}
  5176. ............,${c2}++++,,,${c1}
  5177. ...............
  5178. ......,,,........
  5179. .....+*#####+,,,*+.
  5180. .....,*###############,..,,,,,,..
  5181. ......,*#################*..,,,,,..,,,..
  5182. .,,....*####################+***+,,,,...,++,
  5183. .,,..,..*#####################*,
  5184. ,+,.+*..*#######################.
  5185. ,+,,+*+..,########################*
  5186. .,++++++. ..+##**###################+
  5187. ..... ..+##***#################*.
  5188. .,.*#*****##############*.
  5189. ..,,*********#####****+.
  5190. ${c2}.,++*****+++${c1}*****************${c2}+++++,.${c1}
  5191. ${c2},++++++**+++++${c1}***********${c2}+++++++++,${c1}
  5192. ${c2}.,,,,++++,.. .,,,,,.....,+++,.,,${c1}
  5193. EOF
  5194. ;;
  5195. "Carbs"*)
  5196. set_colors 4 5 4 4 4 4
  5197. read -rd '' ascii_data <<'EOF'
  5198. ${c2} ..........
  5199. ..,;:ccccccc:;'..
  5200. ..,clllc:;;;;;:cllc,.
  5201. .,cllc,... ..';;'.
  5202. .;lol;.. ..
  5203. .,lol;.
  5204. .coo:.
  5205. .'lol,.
  5206. .,lol,.
  5207. .,lol,.
  5208. 'col;.
  5209. .:ooc'.
  5210. .'col:.
  5211. .'cllc'.. .''.
  5212. ..:lolc,'.......',cll,.
  5213. ..;cllllccccclllc;'.
  5214. ...',;;;;;;,,...
  5215. .....
  5216. EOF
  5217. ;;
  5218. "centos_small"*)
  5219. set_colors 3 2 4 5 7
  5220. read -rd '' ascii_data <<'EOF'
  5221. ${c2} ____${c1}^${c4}____
  5222. ${c2} |\\ ${c1}|${c4} /|
  5223. ${c2} | \\ ${c1}|${c4} / |
  5224. ${c4}<---- ${c3}---->
  5225. ${c3} | / ${c2}|${c1} \\ |
  5226. ${c3} |/__${c2}|${c1}__\\|
  5227. ${c2} v
  5228. EOF
  5229. ;;
  5230. "CentOS"*)
  5231. set_colors 3 2 4 5 7
  5232. read -rd '' ascii_data <<'EOF'
  5233. ${c1} ..
  5234. .PLTJ.
  5235. <><><><>
  5236. ${c2}KKSSV' 4KKK ${c1}LJ${c4} KKKL.'VSSKK
  5237. ${c2}KKV' 4KKKKK ${c1}LJ${c4} KKKKAL 'VKK
  5238. ${c2}V' ' 'VKKKK ${c1}LJ${c4} KKKKV' ' 'V
  5239. ${c2}.4MA.' 'VKK ${c1}LJ${c4} KKV' '.4Mb.
  5240. ${c4} . ${c2}KKKKKA.' 'V ${c1}LJ${c4} V' '.4KKKKK ${c3}.
  5241. ${c4} .4D ${c2}KKKKKKKA.'' ${c1}LJ${c4} ''.4KKKKKKK ${c3}FA.
  5242. ${c4}<QDD ++++++++++++ ${c3}++++++++++++ GFD>
  5243. ${c4} 'VD ${c3}KKKKKKKK'.. ${c2}LJ ${c1}..'KKKKKKKK ${c3}FV
  5244. ${c4} ' ${c3}VKKKKK'. .4 ${c2}LJ ${c1}K. .'KKKKKV ${c3}'
  5245. ${c3} 'VK'. .4KK ${c2}LJ ${c1}KKA. .'KV'
  5246. ${c3}A. . .4KKKK ${c2}LJ ${c1}KKKKA. . .4
  5247. ${c3}KKA. 'KKKKK ${c2}LJ ${c1}KKKKK' .4KK
  5248. ${c3}KKSSA. VKKK ${c2}LJ ${c1}KKKV .4SSKK
  5249. ${c2} <><><><>
  5250. 'MKKM'
  5251. ''
  5252. EOF
  5253. ;;
  5254. "Chakra"*)
  5255. set_colors 4 5 7 6
  5256. read -rd '' ascii_data <<'EOF'
  5257. ${c1} _ _ _ "kkkkkkkk.
  5258. ,kkkkkkkk., 'kkkkkkkkk,
  5259. ,kkkkkkkkkkkk., 'kkkkkkkkk.
  5260. ,kkkkkkkkkkkkkkkk,'kkkkkkkk,
  5261. ,kkkkkkkkkkkkkkkkkkk'kkkkkkk.
  5262. "''"''',;::,,"''kkk''kkkkk; __
  5263. ,kkkkkkkkkk, "k''kkkkk' ,kkkk
  5264. ,kkkkkkk' ., ' .: 'kkkk',kkkkkk
  5265. ,kkkkkkkk'.k' , ,kkkk;kkkkkkkkk
  5266. ,kkkkkkkk';kk 'k "'k',kkkkkkkkkkkk
  5267. .kkkkkkkkk.kkkk.'kkkkkkkkkkkkkkkkkk'
  5268. ;kkkkkkkk''kkkkkk;'kkkkkkkkkkkkk''
  5269. 'kkkkkkk; 'kkkkkkkk.,""''"''""
  5270. ''kkkk; 'kkkkkkkkkk.,
  5271. ';' 'kkkkkkkkkkkk.,
  5272. ';kkkkkkkkkk'
  5273. ';kkkkkk'
  5274. "''"
  5275. EOF
  5276. ;;
  5277. "ChaletOS"*)
  5278. set_colors 4 7 1
  5279. read -rd '' ascii_data <<'EOF'
  5280. ${c1} `.//+osso+/:``
  5281. `/sdNNmhyssssydmNNdo:`
  5282. :hNmy+-` .-+hNNs-
  5283. /mMh/` `+:` `+dMd:
  5284. .hMd- -sNNMNo. /yyy /mMs`
  5285. -NM+ `/dMd/--omNh::dMM `yMd`
  5286. .NN+ .sNNs:/dMNy:/hNmo/s yMd`
  5287. hMs `/hNd+-smMMMMMMd+:omNy- `dMo
  5288. :NM. .omMy:/hNMMMMMMMMMMNy:/hMd+` :Md`
  5289. /Md` `sm+.omMMMMMMMMMMMMMMMMd/-sm+ .MN:
  5290. /Md` MMMMMMMMMMMMMMMMMMMN .MN:
  5291. :NN. MMMMMMm....--NMMMMMN -Mm.
  5292. `dMo MMMMMMd mMMMMMN hMs
  5293. -MN: MMMMMMd mMMMMMN oMm`
  5294. :NM: MMMMMMd mMMMMMN +Mm-
  5295. -mMy. mmmmmmh dmmmmmh -hMh.
  5296. oNNs- :yMm/
  5297. .+mMdo:` `:smMd/`
  5298. -ohNNmhsoo++osshmNNh+.
  5299. `./+syyhhyys+:``
  5300. EOF
  5301. ;;
  5302. "Chapeau"*)
  5303. set_colors 2 7
  5304. read -rd '' ascii_data <<'EOF'
  5305. ${c1} .-/-.
  5306. ////////.
  5307. ////////${c2}y+${c1}//.
  5308. ////////${c2}mMN${c1}/////.
  5309. ////////${c2}mMN+${c1}////////.
  5310. ////////////////////////.
  5311. /////////+${c2}shhddhyo${c1}+////////.
  5312. ////////${c2}ymMNmdhhdmNNdo${c1}///////.
  5313. ///////+${c2}mMms${c1}////////${c2}hNMh${c1}///////.
  5314. ///////${c2}NMm+${c1}//////////${c2}sMMh${c1}///////
  5315. //////${c2}oMMNmmmmmmmmmmmmMMm${c1}///////
  5316. //////${c2}+MMmssssssssssssss+${c1}///////
  5317. `//////${c2}yMMy${c1}////////////////////
  5318. `//////${c2}smMNhso++oydNm${c1}////////
  5319. `///////${c2}ohmNMMMNNdy+${c1}///////
  5320. `//////////${c2}++${c1}//////////
  5321. `////////////////.
  5322. -////////-
  5323. EOF
  5324. ;;
  5325. "Chrom"*)
  5326. set_colors 2 1 3 4 7
  5327. read -rd '' ascii_data <<'EOF'
  5328. ${c2} .,:loool:,.
  5329. .,coooooooooooooc,.
  5330. .,lllllllllllllllllllll,.
  5331. ;ccccccccccccccccccccccccc;
  5332. ${c1} '${c2}ccccccccccccccccccccccccccccc.
  5333. ${c1} ,oo${c2}c::::::::okO${c5}000${c3}0OOkkkkkkkkkkk:
  5334. ${c1}.ooool${c2};;;;:x${c5}K0${c4}kxxxxxk${c5}0X${c3}K0000000000.
  5335. ${c1}:oooool${c2};,;O${c5}K${c4}ddddddddddd${c5}KX${c3}000000000d
  5336. ${c1}lllllool${c2};l${c5}N${c4}dllllllllllld${c5}N${c3}K000000000
  5337. ${c1}lllllllll${c2}o${c5}M${c4}dccccccccccco${c5}W${c3}K000000000
  5338. ${c1};cllllllllX${c5}X${c4}c:::::::::c${c5}0X${c3}000000000d
  5339. ${c1}.ccccllllllO${c5}Nk${c4}c;,,,;cx${c5}KK${c3}0000000000.
  5340. ${c1} .cccccclllllxOO${c5}OOO${c1}Okx${c3}O0000000000;
  5341. ${c1} .:ccccccccllllllllo${c3}O0000000OOO,
  5342. ${c1} ,:ccccccccclllcd${c3}0000OOOOOOl.
  5343. ${c1} '::ccccccccc${c3}dOOOOOOOkx:.
  5344. ${c1} ..,::cccc${c3}xOOOkkko;.
  5345. ${c1} ..,:${c3}dOkxl:.
  5346. EOF
  5347. ;;
  5348. "cleanjaro_small"*)
  5349. set_colors 7 7
  5350. read -rd '' ascii_data <<'EOF'
  5351. ${c1}█████ ██████████
  5352. █████ ██████████
  5353. █████
  5354. █████
  5355. █████
  5356. ████████████████
  5357. ████████████████
  5358. EOF
  5359. ;;
  5360. "Cleanjaro"*)
  5361. set_colors 7 7
  5362. read -rd '' ascii_data <<'EOF'
  5363. ${c1}███████▌ ████████████████
  5364. ███████▌ ████████████████
  5365. ███████▌ ████████████████
  5366. ███████▌
  5367. ███████▌
  5368. ███████▌
  5369. ███████▌
  5370. ███████▌
  5371. █████████████████████████
  5372. █████████████████████████
  5373. █████████████████████████
  5374. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5375. EOF
  5376. ;;
  5377. "ClearOS"*)
  5378. set_colors 2
  5379. read -rd '' ascii_data <<'EOF'
  5380. ${c1} `.--::::::--.`
  5381. .-:////////////////:-.
  5382. `-////////////////////////-`
  5383. -////////////////////////////-
  5384. `//////////////-..-//////////////`
  5385. ./////////////: ://///////////.
  5386. `//////:..-////: :////-..-//////`
  5387. ://////` -///:.``.:///-` ://///:
  5388. `///////:. -////////-` `:///////`
  5389. .//:--////:. -////-` `:////--://.
  5390. ./: .////:. --` `:////- :/.
  5391. `//-` .////:. `:////- `-//`
  5392. :///-` .////:. `:////- `-///:
  5393. `/////-` -///: :///- `-/////`
  5394. `//////- `///: :///` .//////`
  5395. `:////: `///: :///` -////:`
  5396. .://: `///: :///` -//:.
  5397. .:: `///: :///` -:.
  5398. `///: :///`
  5399. `... ...`
  5400. EOF
  5401. ;;
  5402. "Clear Linux OS"* | "Clear_Linux"*)
  5403. set_colors 4 3 7 6
  5404. read -rd '' ascii_data <<'EOF'
  5405. ${c1} BBB
  5406. BBBBBBBBB
  5407. BBBBBBBBBBBBBBB
  5408. BBBBBBBBBBBBBBBBBBBB
  5409. BBBBBBBBBBB BBB
  5410. BBBBBBBB${c2}YYYYY
  5411. ${c1} BBBBBBBB${c2}YYYYYY
  5412. ${c1} BBBBBBBB${c2}YYYYYYY
  5413. ${c1} BBBBBBBBB${c2}YYYYY${c3}W
  5414. ${c4} GG${c1}BBBBBBBY${c2}YYYY${c3}WWW
  5415. ${c4} GGG${c1}BBBBBBB${c2}YY${c3}WWWWWWWW
  5416. ${c4} GGGGGG${c1}BBBBBB${c3}WWWWWWWW
  5417. ${c4} GGGGGGGG${c1}BBBB${c3}WWWWWWWW
  5418. ${c4}GGGGGGGGGGG${c1}BBB${c3}WWWWWWW
  5419. ${c4}GGGGGGGGGGGGG${c1}B${c3}WWWWWW
  5420. ${c4}GGGGGGGG${c3}WWWWWWWWWWW
  5421. ${c4}GG${c3}WWWWWWWWWWWWWWWW
  5422. WWWWWWWWWWWWWWWW
  5423. WWWWWWWWWW
  5424. WWW
  5425. EOF
  5426. ;;
  5427. "Clover"*)
  5428. set_colors 2 6
  5429. read -rd '' ascii_data <<'EOF'
  5430. ${c1} `omo``omo`
  5431. `oNMMMNNMMMNo`
  5432. `oNMMMMMMMMMMMMNo`
  5433. oNMMMMMMMMMMMMMMMMNo
  5434. `sNMMMMMMMMMMMMMMNs`
  5435. `omo` `sNMMMMMMMMMMNs` `omo`
  5436. `oNMMMNo` `sNMMMMMMNs` `oNMMMNo`
  5437. `oNMMMMMMMNo` `oNMMNs` `oNMMMMMMMNo`
  5438. oNMMMMMMMMMMMNo` `sy` `oNMMMMMMMMMMMNo
  5439. `sNMMMMMMMMMMMMNo.${c2}oNNs${c1}.oNMMMMMMMMMMMMNs`
  5440. `oNMMMMMMMMMMMMNs.${c2}oNNs${c1}.oNMMMMMMMMMMMMNo`
  5441. oNMMMMMMMMMMMNs` `sy` `oNMMMMMMMMMMMNo
  5442. `oNMMMMMMMNs` `oNMMNo` `oNMMMMMMMNs`
  5443. `oNMMMNs` `sNMMMMMMNs` `oNMMMNs`
  5444. `oNs` `sNMMMMMMMMMMNs` `oNs`
  5445. `sNMMMMMMMMMMMMMMNs`
  5446. +NMMMMMMMMMMMMMMMMNo
  5447. `oNMMMMMMMMMMMMNo`
  5448. `oNMMMNNMMMNs`
  5449. `omo``oNs`
  5450. EOF
  5451. ;;
  5452. "Condres"*)
  5453. set_colors 2 3 6
  5454. read -rd '' ascii_data <<'EOF'
  5455. ${c1}syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+${c3}.+.
  5456. ${c1}`oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+${c3}:++.
  5457. ${c2}/o${c1}+oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/${c3}oo++.
  5458. ${c2}/y+${c1}syyyyyyyyyyyyyyyyyyyyyyyyyyyyy${c3}+ooo++.
  5459. ${c2}/hy+${c1}oyyyhhhhhhhhhhhhhhyyyyyyyyy${c3}+oo+++++.
  5460. ${c2}/hhh+${c1}shhhhhdddddhhhhhhhyyyyyyy${c3}+oo++++++.
  5461. ${c2}/hhdd+${c1}oddddddddddddhhhhhyyyys${c3}+oo+++++++.
  5462. ${c2}/hhddd+${c1}odmmmdddddddhhhhyyyy${c3}+ooo++++++++.
  5463. ${c2}/hhdddmo${c1}odmmmdddddhhhhhyyy${c3}+oooo++++++++.
  5464. ${c2}/hdddmmms${c1}/dmdddddhhhhyyys${c3}+oooo+++++++++.
  5465. ${c2}/hddddmmmy${c1}/hdddhhhhyyyyo${c3}+oooo++++++++++:
  5466. ${c2}/hhdddmmmmy${c1}:yhhhhyyyyy+${c3}+oooo+++++++++++:
  5467. ${c2}/hhddddddddy${c1}-syyyyyys+${c3}ooooo++++++++++++:
  5468. ${c2}/hhhddddddddy${c1}-+yyyy+${c3}/ooooo+++++++++++++:
  5469. ${c2}/hhhhhdddddhhy${c1}./yo:${c3}+oooooo+++++++++++++/
  5470. ${c2}/hhhhhhhhhhhhhy${c1}:-.${c3}+sooooo+++++++++++///:
  5471. ${c2}:sssssssssssso++${c1}${c3}`:/:--------.````````
  5472. EOF
  5473. ;;
  5474. "Container Linux by CoreOS"* | "Container_Linux"*)
  5475. set_colors 4 7 1
  5476. read -rd '' ascii_data <<'EOF'
  5477. ${c1} .....
  5478. .';:cccccccc:;'.
  5479. ':ccccclc${c3}lllllllll${c1}cc:.
  5480. .;cccccccc${c3}lllllllllllllll${c1}c,
  5481. ;clllccccc${c3}llllllllllllllllll${c1}c,
  5482. .cllclccccc${c3}lllll${c2}lll${c3}llllllllllll${c1}c:
  5483. ccclclcccc${c3}cllll${c2}kWMMNKk${c3}llllllllll${c1}c:
  5484. :ccclclcccc${c3}llll${c2}oWMMMMMMWO${c3}lllllllll${c1}c,
  5485. .ccllllllccc${c3}clll${c2}OMMMMMMMMM0${c3}lllllllll${c1}c
  5486. .lllllclcccc${c3}llll${c2}KMMMMMMMMMMo${c3}llllllll${c1}c.
  5487. .lllllllcccc${c3}clll${c2}KMMMMMMMMN0${c3}lllllllll${c1}c.
  5488. .cclllllcccc${c3}lllld${c2}xkkxxdo${c3}llllllllllc${c1}lc
  5489. :cccllllllcccc${c3}lllccllllcclccc${c1}cccccc;
  5490. .ccclllllllcccccccc${c3}lll${c1}ccccclccccccc
  5491. .cllllllllllclcccclccclccllllcllc
  5492. :cllllllllccclcllllllllllllcc;
  5493. .cccccccccccccclcccccccccc:.
  5494. .;cccclccccccllllllccc,.
  5495. .';ccccclllccc:;..
  5496. .....
  5497. EOF
  5498. ;;
  5499. "crux_small"|KISS*)
  5500. set_colors 4 5 7 6
  5501. read -rd '' ascii_data <<'EOF'
  5502. ${c1} ___
  5503. (${c3}.· ${c1}|
  5504. (${c2}<> ${c1}|
  5505. / ${c3}__ ${c1}\\
  5506. ( ${c3}/ \\ ${c1}/|
  5507. ${c2}_${c1}/\\ ${c3}__)${c1}/${c2}_${c1})
  5508. ${c2}\/${c1}-____${c2}\/
  5509. EOF
  5510. ;;
  5511. "CRUX"*)
  5512. set_colors 4 5 7 6
  5513. read -rd '' ascii_data <<'EOF'
  5514. ${c1} odddd
  5515. oddxkkkxxdoo
  5516. ddcoddxxxdoool
  5517. xdclodod olol
  5518. xoc xdd olol
  5519. xdc ${c2}k00${c1}Okdlol
  5520. xxd${c2}kOKKKOkd${c1}ldd
  5521. xdco${c2}xOkdlo${c1}dldd
  5522. ddc:cl${c2}lll${c1}oooodo
  5523. odxxdd${c3}xkO000kx${c1}ooxdo
  5524. oxdd${c3}x0NMMMMMMWW0od${c1}kkxo
  5525. oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx
  5526. docldkXW${c3}MMMMMMMWWN${c1}Odolco
  5527. xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c
  5528. ${c2}xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l
  5529. ${c2}dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd
  5530. ${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo
  5531. ${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo
  5532. EOF
  5533. ;;
  5534. *"Cucumber"*)
  5535. set_colors 2 3
  5536. read -rd '' ascii_data <<'EOF'
  5537. ${c1} `.-://++++++//:-.`
  5538. `:/+//${c2}::--------${c1}:://+/:`
  5539. -++/:${c2}----..........----${c1}:/++-
  5540. .++:${c2}---...........-......---${c1}:++.
  5541. /+:${c2}---....-::/:/--//:::-....---${c1}:+/
  5542. `++:${c2}--.....:---::/--/::---:.....--${c1}:++`
  5543. /+:${c2}--.....--.--::::-/::--.--.....--${c1}:+/
  5544. -o:${c2}--.......-:::://--/:::::-.......--${c1}:o-
  5545. /+:${c2}--...-:-::---:::..:::---:--:-...--${c1}:+/
  5546. o/:${c2}-...-:.:.-/:::......::/:.--.:-...-${c1}:/o
  5547. o/${c2}--...::-:/::/:-......-::::::-/-...-${c1}:/o
  5548. /+:${c2}--..-/:/:::--:::..:::--::////-..--${c1}:+/
  5549. -o:${c2}--...----::/:::/--/:::::-----...--${c1}:o-
  5550. /+:${c2}--....://:::.:/--/:.::://:....--${c1}:+/
  5551. `++:${c2}--...-:::.--.:..:.--.:/:-...--${c1}:++`
  5552. /+:${c2}---....----:-..-:----....---${c1}:+/
  5553. .++:${c2}---..................---${c1}:++.
  5554. -/+/:${c2}----..........----${c1}:/+/-
  5555. `:/+//${c2}::--------:::${c1}/+/:`
  5556. `.-://++++++//:-.`
  5557. EOF
  5558. ;;
  5559. "dahlia"*)
  5560. set_colors 1 7 3
  5561. read -rd '' ascii_data <<'EOF'
  5562. ${c1}
  5563. .#.
  5564. *%@@@%*
  5565. .,,,,,(&@@@@@@@&/,,,,,.
  5566. ,#@@@@@@@@@@@@@@@@@@@@@#.
  5567. ,#@@@@@@@&#///#&@@@@@@@#.
  5568. ,/%&@@@@@%/, .,(%@@@@@&#/.
  5569. *#&@@@@@@#,. .*#@@@@@@&#,
  5570. .&@@@@@@@@@( .(@@@@@@@@@&&.
  5571. #@@@@@@@@@@( )@@@@@@@@@@@#
  5572. °@@@@@@@@@@( .(@@@@@@@@@@@°
  5573. *%@@@@@@@(. ,#@@@@@@@%*
  5574. ,(&@@@@@@%*. ./%@@@@@@%(,
  5575. ,#@@@@@@@&(***(&@@@@@@@#.
  5576. ,#@@@@@@@@@@@@@@@@@@@@@#.
  5577. ,*****#&@@@@@@@&(*****,
  5578. ,/%@@@%/.
  5579. ,#,
  5580. EOF
  5581. ;;
  5582. "debian_small")
  5583. set_colors 1 7 3
  5584. read -rd '' ascii_data <<'EOF'
  5585. ${c1} _____
  5586. / __ \\
  5587. | / |
  5588. | \\___-
  5589. -_
  5590. --_
  5591. EOF
  5592. ;;
  5593. "Debian"*)
  5594. set_colors 1 7 3
  5595. read -rd '' ascii_data <<'EOF'
  5596. ${c2} _,met$$$$$gg.
  5597. ,g$$$$$$$$$$$$$$$P.
  5598. ,g$$P" """Y$$.".
  5599. ,$$P' `$$$.
  5600. ',$$P ,ggs. `$$b:
  5601. `d$$' ,$P"' ${c1}.${c2} $$$
  5602. $$P d$' ${c1},${c2} $$P
  5603. $$: $$. ${c1}-${c2} ,d$$'
  5604. $$; Y$b._ _,d$P'
  5605. Y$$. ${c1}`.${c2}`"Y$$$$P"'
  5606. ${c2} `$$b ${c1}"-.__
  5607. ${c2} `Y$$
  5608. `Y$$.
  5609. `$$b.
  5610. `Y$$b.
  5611. `"Y$b._
  5612. `"""
  5613. EOF
  5614. ;;
  5615. "Deepin"*)
  5616. set_colors 2 7
  5617. read -rd '' ascii_data <<'EOF'
  5618. ${c1} ............
  5619. .';;;;;. .,;,.
  5620. .,;;;;;;;. ';;;;;;;.
  5621. .;::::::::' .,::;;,''''',.
  5622. ,'.:::::::: .;;'. ';
  5623. ;' 'cccccc, ,' :: '.. .:
  5624. ,, :ccccc. ;: .c, '' :. ,;
  5625. .l. cllll' ., .lc :; .l' l.
  5626. .c :lllc ;cl: .l' .ll. :'
  5627. .l 'looc. . ,o: 'oo' c,
  5628. .o. .:ool::coc' .ooo' o.
  5629. :: ..... .;dddo ;c
  5630. l:... .';lddddo. ,o
  5631. lxxxxxdoolllodxxxxxxxxxc :l
  5632. ,dxxxxxxxxxxxxxxxxxxl. 'o,
  5633. ,dkkkkkkkkkkkkko;. .;o;
  5634. .;okkkkkdl;. .,cl:.
  5635. .,:cccccccc:,.
  5636. EOF
  5637. ;;
  5638. "DesaOS")
  5639. set_colors 2 7
  5640. read -rd '' ascii_data <<'EOF'
  5641. ${c1}███████████████████████
  5642. ███████████████████████
  5643. ███████████████████████
  5644. ███████████████████████
  5645. ████████ ███████
  5646. ████████ ███████
  5647. ████████ ███████
  5648. ████████ ███████
  5649. ████████ ███████
  5650. ████████ ███████
  5651. ████████ ███████
  5652. ██████████████████████████████
  5653. ██████████████████████████████
  5654. ████████████████████████
  5655. ████████████████████████
  5656. ████████████████████████
  5657. EOF
  5658. ;;
  5659. "Devuan"*)
  5660. set_colors 5 7
  5661. read -rd '' ascii_data <<'EOF'
  5662. ${c1} ..,,;;;::;,..
  5663. `':ddd;:,.
  5664. `'dPPd:,.
  5665. `:b$$b`.
  5666. 'P$$$d`
  5667. .$$$$$`
  5668. ;$$$$$P
  5669. .:P$$$$$$`
  5670. .,:b$$$$$$$;'
  5671. .,:dP$$$$$$$$b:'
  5672. .,:;db$$$$$$$$$$Pd'`
  5673. ,db$$$$$$$$$$$$$$b:'`
  5674. :$$$$$$$$$$$$b:'`
  5675. `$$$$$bd:''`
  5676. `'''`
  5677. EOF
  5678. ;;
  5679. "DracOS"*)
  5680. set_colors 1 7 3
  5681. read -rd '' ascii_data <<'EOF'
  5682. ${c1} `-:/-
  5683. -os:
  5684. -os/`
  5685. :sy+-`
  5686. `/yyyy+.
  5687. `+yyyyo-
  5688. `/yyyys:
  5689. `:osssoooo++- +yyyyyy/`
  5690. ./yyyyyyo yo`:syyyy+.
  5691. -oyyy+ +- :yyyyyo-
  5692. `:sy: `. `/yyyyys:
  5693. ./o/.` .oyyso+oo:`
  5694. :+oo+//::::///:-.` `.`
  5695. EOF
  5696. ;;
  5697. "DarkOs")
  5698. set_colors 1 6 5 3 2
  5699. read -rd '' ascii_data <<'EOF'
  5700. ${c3}⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5701. ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⠋⡆⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5702. ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡆⢀⣤⢛⠛⣠⣿⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5703. ${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣿⠟⣡⠊⣠⣾⣿⠃⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5704. ${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣯⣿⠀⠊⣤⣿⣿⣿⠃⣴⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5705. ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⡟⣠⣶⣿⣿⣿⢋⣤⠿⠛⠉⢁⣭⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5706. ${c4} ⠀⠀⠀⠀⠀⠀ ⠀⣠⠖⡭⢉⣿⣯⣿⣯⣿⣿⣿⣟⣧⠛⢉⣤⣶⣾⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5707. ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⣴⣫⠓⢱⣯⣿⢿⠋⠛⢛⠟⠯⠶⢟⣿⣯⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5708. ${c2}⠀⠀⠀⠀⠀⠀⢀⡮⢁⣴⣿⣿⣿⠖⣠⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠛⠛⢿⣶⣄⠀⠀⠀⠀⠀⠀⠀
  5709. ${c3}⠀⠀⠀⠀⢀⣤⣷⣿⣿⠿⢛⣭⠒⠉⠀⠀⠀⣀⣀⣄⣤⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
  5710. ${c1}⠀⢀⣶⠏⠟⠝⠉⢀⣤⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5711. ${c6}⢴⣯⣤⣶⣿⣿⣿⣿⣿⡿⣿⣯⠉⠉⠉⠉⠀⠀⠀⠈⣿⡀⣟⣿⣿⢿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5712. ${c5}⠀⠀⠀⠉⠛⣿⣧⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠃⣿⣿⣯⣿⣦⡀⠀⠉⠻⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5713. ${c3}⠀⠀⠀⠀⠀⠀⠉⢿⣮⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⣯⠉⠉⠛⢿⣿⣷⣄⠀⠈⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀
  5714. ${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠀⠀⠀⠀⠀⢀⢡⠃⣾⣿⣿⣦⠀⠀⠀⠙⢿⣿⣤⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀
  5715. ${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋⢿⣄⠀⠀⠀⠈⡄⠙⣶⣈⡄⠀⠀⠀⠀⠀⠀
  5716. ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀
  5717. ${c4}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5718. ${c3}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5719. ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5720. EOF
  5721. ;;
  5722. "Itc"*)
  5723. set_colors 1
  5724. read -rd '' ascii_data <<'EOF'
  5725. ${c1}....................-==============+...
  5726. ${c1}....................-==============:...
  5727. ${c1}...:===========-....-==============:...
  5728. ${c1}...-===========:....-==============-...
  5729. ${c1}....*==========+........-::********-...
  5730. ${c1}....*===========+.:*====**==*+-.-......
  5731. ${c1}....:============*+-..--:+**====*---...
  5732. ${c1}......::--........................::...
  5733. ${c1}..+-:+-.+::*:+::+:-++::++-.:-.*.:++:++.
  5734. ${c1}..:-:-++++:-::--:+::-::.:++-++:++--:-:. ⠀⠀⠀⠀⠀
  5735. ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  5736. EOF
  5737. ;;
  5738. "dragonfly_old"*)
  5739. set_colors 1 7 3
  5740. read -rd '' ascii_data <<'EOF'
  5741. ${c1} .-.
  5742. ${c3} ()${c1}I${c3}()
  5743. ${c1} "==.__:-:__.=="
  5744. "==.__/~|~\__.=="
  5745. "==._( Y )_.=="
  5746. ${c2}.-'~~""~=--...,__${c1}\/|\/${c2}__,...--=~""~~'-.
  5747. ( ..=${c1}\\=${c1}/${c2}=.. )
  5748. `'-. ,.-"`;${c1}/=\\${c2};"-.,_ .-'`
  5749. `~"-=-~` .-~` ${c1}|=|${c2} `~-. `~-=-"~`
  5750. .-~` /${c1}|=|${c2}\ `~-.
  5751. .~` / ${c1}|=|${c2} \ `~.
  5752. .-~` .' ${c1}|=|${c2} `. `~-.
  5753. (` _,.-="` ${c1} |=|${c2} `"=-.,_ `)
  5754. `~"~"` ${c1} |=|${c2} `"~"~`
  5755. ${c1} /=\\
  5756. \\=/
  5757. ^
  5758. EOF
  5759. ;;
  5760. "dragonfly_small"*)
  5761. set_colors 1 7 3
  5762. read -rd '' ascii_data <<'EOF'
  5763. ${c2} ,${c1}_${c2},
  5764. ('-_${c1}|${c2}_-')
  5765. >--${c1}|${c2}--<
  5766. (_-'${c1}|${c2}'-_)
  5767. ${c1}|
  5768. |
  5769. |
  5770. EOF
  5771. ;;
  5772. "DragonFly"*)
  5773. set_colors 1 7 3
  5774. read -rd '' ascii_data <<'EOF'
  5775. ${c2},--, ${c1}| ${c2},--,
  5776. ${c2}| `-, ${c1},^, ${c2},-' |
  5777. ${c2} `, `-, ${c3}(/ \) ${c2},-' ,'
  5778. ${c2} `-, `-,${c1}/ \${c2},-' ,-'
  5779. ${c2} `------${c1}( )${c2}------'
  5780. ${c2} ,----------${c1}( )${c2}----------,
  5781. ${c2} | _,-${c1}( )${c2}-,_ |
  5782. ${c2} `-,__,-' ${c1}\ /${c2} `-,__,-'
  5783. ${c1} | |
  5784. | |
  5785. | |
  5786. | |
  5787. | |
  5788. | |
  5789. `|'
  5790. EOF
  5791. ;;
  5792. "Drauger"*)
  5793. set_colors 1 7
  5794. read -rd '' ascii_data <<'EOF'
  5795. ${c1} -``-
  5796. `:+``+:`
  5797. `/++``++/.
  5798. .++/. ./++.
  5799. :++/` `/++:
  5800. `/++: :++/`
  5801. ./+/- -/+/.
  5802. -++/. ./++-
  5803. :++:` `:++:
  5804. `/++- -++/`
  5805. ./++. ./+/.
  5806. -++/` `/++-
  5807. :++:` `:++:
  5808. `/++- -++/`
  5809. .:-.`..............................`.-:.
  5810. `.-/++++++++++++++++++++++++++++++++/-.`
  5811. EOF
  5812. ;;
  5813. "elementary_small"*)
  5814. set_colors 4 7 1
  5815. read -rd '' ascii_data <<'EOF'
  5816. ${c2} _______
  5817. / ____ \\
  5818. / | / /\\
  5819. |__\\ / / |
  5820. \\ /__/ /
  5821. \\_______/
  5822. EOF
  5823. ;;
  5824. "Elementary"*)
  5825. set_colors 4 7 1
  5826. read -rd '' ascii_data <<'EOF'
  5827. ${c2} eeeeeeeeeeeeeeeee
  5828. eeeeeeeeeeeeeeeeeeeeeee
  5829. eeeee eeeeeeeeeeee eeeee
  5830. eeee eeeee eee eeee
  5831. eeee eeee eee eeee
  5832. eee eee eee eee
  5833. eee eee eee eee
  5834. ee eee eeee eeee
  5835. ee eee eeeee eeeeee
  5836. ee eee eeeee eeeee ee
  5837. eee eeee eeeeee eeeee eee
  5838. eee eeeeeeeeee eeeeee eee
  5839. eeeeeeeeeeeeeeeeeeeeeeee eeeee
  5840. eeeeeeee eeeeeeeeeeee eeee
  5841. eeeee eeeee
  5842. eeeeeee eeeeeee
  5843. eeeeeeeeeeeeeeeee
  5844. EOF
  5845. ;;
  5846. "EndeavourOS"*)
  5847. set_colors 1 5 4
  5848. read -rd '' ascii_data <<'EOF'
  5849. ${c1} ./${c2}o${c3}.
  5850. ${c1} ./${c2}sssso${c3}-
  5851. ${c1} `:${c2}osssssss+${c3}-
  5852. ${c1} `:+${c2}sssssssssso${c3}/.
  5853. ${c1} `-/o${c2}ssssssssssssso${c3}/.
  5854. ${c1} `-/+${c2}sssssssssssssssso${c3}+:`
  5855. ${c1} `-:/+${c2}sssssssssssssssssso${c3}+/.
  5856. ${c1} `.://o${c2}sssssssssssssssssssso${c3}++-
  5857. ${c1} .://+${c2}ssssssssssssssssssssssso${c3}++:
  5858. ${c1} .:///o${c2}ssssssssssssssssssssssssso${c3}++:
  5859. ${c1} `:////${c2}ssssssssssssssssssssssssssso${c3}+++.
  5860. ${c1}`-////+${c2}ssssssssssssssssssssssssssso${c3}++++-
  5861. ${c1} `..-+${c2}oosssssssssssssssssssssssso${c3}+++++/`
  5862. ./++++++++++++++++++++++++++++++/:.
  5863. `:::::::::::::::::::::::::------``
  5864. EOF
  5865. ;;
  5866. "Endless"*)
  5867. set_colors 1 7
  5868. read -rd '' ascii_data <<'EOF'
  5869. ${c1} `:+yhmNMMMMNmhy+:`
  5870. -odMMNhso//////oshNMMdo-
  5871. /dMMh+. .+hMMd/
  5872. /mMNo` `oNMm:
  5873. `yMMo` `oMMy`
  5874. `dMN- -NMd`
  5875. hMN. .NMh
  5876. /MM/ -os` /MM/
  5877. dMm `smNmmhs/- `:sNMd+ `` mMd
  5878. MMy oMd--:+yMMMMMNo.:ohmMMMNy` yMM
  5879. MMy -NNyyhmMNh+oNMMMMMy:. dMo yMM
  5880. dMm `/++/-``/yNNh+/sdNMNddMm- mMd
  5881. /MM/ `dNy: `-::- /MM/
  5882. hMN. .NMh
  5883. `dMN- -NMd`
  5884. `yMMo` `oMMy`
  5885. /mMNo` `oNMm/
  5886. /dMMh+. .+hMMd/
  5887. -odMMNhso//////oshNMMdo-
  5888. `:+yhmNMMMMNmhy+:`
  5889. EOF
  5890. ;;
  5891. "EuroLinux"*)
  5892. set_colors 4 7
  5893. read -rd '' ascii_data <<'EOF'
  5894. ${c1} __
  5895. -wwwWWWWWWWWWwww-
  5896. -WWWWWWWWWWWWWWWWWWw-
  5897. \WWWWWWWWWWWWWWWWWWW-
  5898. _Ww `WWWWWWWWWWWWWWWWWWWw
  5899. -W${c2}E${c1}Www -WWWWWWWWW-
  5900. _WW${c2}U${c1}WWWW- _WWWWWWWW
  5901. _WW${c2}R${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW-
  5902. wWW${c2}O${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
  5903. WWW${c2}L${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw
  5904. WWW${c2}I${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWww-
  5905. wWW${c2}N${c1}WWWWw
  5906. WW${c2}U${c1}WWWWWWw
  5907. wW${c2}X${c1}WWWWWWWWww
  5908. wWWWWWWWWWWWWWWWw
  5909. wWWWWWWWWWWWWWWWw
  5910. WWWWWWWWWWWWWw
  5911. wWWWWWWWw
  5912. EOF
  5913. ;;
  5914. "Exherbo"*)
  5915. set_colors 4 7 1
  5916. read -rd '' ascii_data <<'EOF'
  5917. ${c2} ,
  5918. OXo.
  5919. NXdX0: .cok0KXNNXXK0ko:.
  5920. KX '0XdKMMK;.xMMMk, .0MMMMMXx; ...
  5921. 'NO..xWkMMx kMMM cMMMMMX,NMWOxOXd.
  5922. cNMk NK .oXM. OMMMMO. 0MMNo kW.
  5923. lMc o: ., .oKNk; ;NMMWlxW'
  5924. ;Mc .. .,,' .0M${c1}g;${c2}WMN'dWMMMMMMO
  5925. XX ,WMMMMW. cM${c1}cfli${c2}WMKlo. .kMk
  5926. .Mo .WM${c1}GD${c2}MW. XM${c1}WO0${c2}MMk oMl
  5927. ,M: ,XMMWx::,''oOK0x; NM.
  5928. 'Ml ,kNKOxxxxxkkO0XXKOd:. oMk
  5929. NK .0Nxc${c3}:::::::::::::::${c2}fkKNk, .MW
  5930. ,Mo .NXc${c3}::${c2}qXWXb${c3}::::::::::${c2}oo${c3}::${c2}lNK. .MW
  5931. ;Wo oMd${c3}:::${c2}oNMNP${c3}::::::::${c2}oWMMMx${c3}:${c2}c0M; lMO
  5932. 'NO;W0c${c3}:::::::::::::::${c2}dMMMMO${c3}::${c2}lMk .WM'
  5933. xWONXdc${c3}::::::::::::::${c2}oOOo${c3}::${c2}lXN. ,WMd
  5934. 'KWWNXXK0Okxxo,${c3}:::::::${c2},lkKNo xMMO
  5935. :XMNxl,';:lodxkOO000Oxc. .oWMMo
  5936. 'dXMMXkl;,. .,o0MMNo'
  5937. ':d0XWMMMMWNNNNMMMNOl'
  5938. ':okKXWNKkl'
  5939. EOF
  5940. ;;
  5941. "fedora_small")
  5942. set_colors 4 7 1
  5943. read -rd '' ascii_data <<'EOF'
  5944. ${c2} _____
  5945. / __)${c1}\\${c2}
  5946. | / ${c1}\\ \\${c2}
  5947. ${c1}__${c2}_| |_${c1}_/ /${c2}
  5948. ${c1}/ ${c2}(_ _)${c1}_/${c2}
  5949. ${c1}/ /${c2} | |
  5950. ${c1}\\ \\${c2}__/ |
  5951. ${c1}\\${c2}(_____/
  5952. EOF
  5953. ;;
  5954. "Fedora"* | "RFRemix"*)
  5955. set_colors 4 7 1
  5956. read -rd '' ascii_data <<'EOF'
  5957. ${c1} /:-------------:\\
  5958. :-------------------::
  5959. :-----------${c2}/shhOHbmp${c1}---:\\
  5960. /-----------${c2}omMMMNNNMMD ${c1}---:
  5961. :-----------${c2}sMMMMNMNMP${c1}. ---:
  5962. :-----------${c2}:MMMdP${c1}------- ---\\
  5963. ,------------${c2}:MMMd${c1}-------- ---:
  5964. :------------${c2}:MMMd${c1}------- .---:
  5965. :---- ${c2}oNMMMMMMMMMNho${c1} .----:
  5966. :-- .${c2}+shhhMMMmhhy++${c1} .------/
  5967. :- -------${c2}:MMMd${c1}--------------:
  5968. :- --------${c2}/MMMd${c1}-------------;
  5969. :- ------${c2}/hMMMy${c1}------------:
  5970. :--${c2} :dMNdhhdNMMNo${c1}------------;
  5971. :---${c2}:sdNMMMMNds:${c1}------------:
  5972. :------${c2}:://:${c1}-------------::
  5973. :---------------------://
  5974. EOF
  5975. ;;
  5976. "Feren"*)
  5977. set_colors 4 7 1
  5978. read -rd '' ascii_data <<'EOF'
  5979. ${c1} `----------`
  5980. :+ooooooooo+.
  5981. -o+oooooooooo+-
  5982. ..`/+++++++++++/...`````````````````
  5983. .++++++++++++++++++++++++++/////-
  5984. ++++++++++++++++++++++++++++++++//:`
  5985. -++++++++++++++++++++++++++++++/-`
  5986. ++++++++++++++++++++++++++++:.
  5987. -++++++++++++++++++++++++/.
  5988. +++++++++++++++++++++/-`
  5989. -++++++++++++++++++//-`
  5990. .:+++++++++++++//////-
  5991. .:++++++++//////////-
  5992. `-++++++---:::://///.
  5993. `.:///+++. `
  5994. `.........
  5995. EOF
  5996. ;;
  5997. "freebsd_small")
  5998. set_colors 1 7 3
  5999. read -rd '' ascii_data <<'EOF'
  6000. ${c1}/\\,-'''''-,/\\
  6001. \\_) (_/
  6002. | |
  6003. | |
  6004. ; ;
  6005. '-_____-'
  6006. EOF
  6007. ;;
  6008. FreeBSD*|HardenedBSD*)
  6009. case $ascii_distro in
  6010. *HardenedBSD*) set_colors 4 7 3 ;;
  6011. *) set_colors 1 7 3
  6012. esac
  6013. read -rd '' ascii_data <<'EOF'
  6014. ${c2}``` ${c1}`
  6015. ${c2}` `.....---...${c1}....--.``` -/
  6016. ${c2}+o .--` ${c1}/y:` +.
  6017. ${c2} yo`:. ${c1}:o `+-
  6018. ${c2}y/ ${c1}-/` -o/
  6019. ${c2}.- ${c1}::/sy+:.
  6020. ${c2}/ ${c1}`-- /
  6021. ${c2}`: ${c1}:`
  6022. ${c2}`: ${c1}:`
  6023. ${c2}/ ${c1}/
  6024. ${c2}.- ${c1}-.
  6025. ${c2}-- ${c1}-.
  6026. ${c2}`:` ${c1}`:`
  6027. .-- `--.
  6028. .---.....----.
  6029. EOF
  6030. ;;
  6031. "FreeMiNT"*)
  6032. set_colors 7
  6033. read -rd '' ascii_data <<'EOF'
  6034. ${c1} ##
  6035. ## #########
  6036. #### ##
  6037. #### #### ##
  6038. #### #### ## ##
  6039. #### #### ## ##
  6040. #### #### ## ## ##
  6041. #### ######
  6042. ###### ## ## ####
  6043. #### ################
  6044. #### ## ####
  6045. ## #### ######
  6046. ## ## #### ####
  6047. ## ## ## ## ## ####
  6048. #### ## ## ##
  6049. EOF
  6050. ;;
  6051. "Frugalware"*)
  6052. set_colors 4 7 1
  6053. read -rd '' ascii_data <<'EOF'
  6054. ${c1} `++/::-.`
  6055. /o+++++++++/::-.`
  6056. `o+++++++++++++++o++/::-.`
  6057. /+++++++++++++++++++++++oo++/:-.``
  6058. .o+ooooooooooooooooooosssssssso++oo++/:-`
  6059. ++osoooooooooooosssssssssssssyyo+++++++o:
  6060. -o+ssoooooooooooosssssssssssssyyo+++++++s`
  6061. o++ssoooooo++++++++++++++sssyyyyo++++++o:
  6062. :o++ssoooooo${c2}/-------------${c1}+syyyyyo+++++oo
  6063. `o+++ssoooooo${c2}/-----${c1}+++++ooosyyyyyyo++++os:
  6064. /o+++ssoooooo${c2}/-----${c1}ooooooosyyyyyyyo+oooss
  6065. .o++++ssooooos${c2}/------------${c1}syyyyyyhsosssy-
  6066. ++++++ssooooss${c2}/-----${c1}+++++ooyyhhhhhdssssso
  6067. -s+++++syssssss${c2}/-----${c1}yyhhhhhhhhhhhddssssy.
  6068. sooooooyhyyyyyh${c2}/-----${c1}hhhhhhhhhhhddddyssy+
  6069. :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy`
  6070. yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/
  6071. -ysooooooydhhhhhhhhhhhddddddddddddddddssy
  6072. .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:
  6073. ``.-/+oosysssssssssssssssssssssss
  6074. ``.:/+osyysssssssssssssh.
  6075. `-:/+osyyssssyo
  6076. .-:+++`
  6077. EOF
  6078. ;;
  6079. "Funtoo"*)
  6080. set_colors 5 7
  6081. read -rd '' ascii_data <<'EOF'
  6082. ${c1} .dKXXd .
  6083. :XXl;:. .OXo
  6084. .'OXO'' .''''''''''''''''''''':XNd..'oco.lco,
  6085. xXXXXXX, cXXXNNNXXXXNNXXXXXXXXNNNNKOOK; d0O .k
  6086. kXX xXo KNNN0 KNN. 'xXNo :c; 'cc.
  6087. kXX xNo KNNN0 KNN. :xxxx. 'NNo
  6088. kXX xNo loooc KNN. oNNNN. 'NNo
  6089. kXX xN0:. KNN' oNNNX' ,XNk
  6090. kXX xNNXNNNNNNNNXNNNNNNNNXNNOxXNX0Xl
  6091. ... ......................... .;cc;.
  6092. EOF
  6093. ;;
  6094. "GalliumOS"*)
  6095. set_colors 4 7 1
  6096. read -rd '' ascii_data <<'EOF'
  6097. ${c1}sooooooooooooooooooooooooooooooooooooo+:
  6098. yyooooooooooooooooooooooooooooooooo+/:::
  6099. yyysoooooooooooooooooooooooooooo+/::::::
  6100. yyyyyoooooooooooooooooooooooo+/:::::::::
  6101. yyyyyysoooooooooooooooooo++/::::::::::::
  6102. yyyyyyysoooooooooooooo++/:::::::::::::::
  6103. yyyyyyyyysoooooo${c2}sydddys${c1}+/:::::::::::::::
  6104. yyyyyyyyyysooo${c2}smMMMMMMMNd${c1}+::::::::::::::
  6105. yyyyyyyyyyyyo${c2}sMMMMMMMMMMMN${c1}/:::::::::::::
  6106. yyyyyyyyyyyyy${c2}dMMMMMMMMMMMM${c1}o//:::::::::::
  6107. yyyyyyyyyyyyy${c2}hMMMMMMMMMMMm${c1}--//::::::::::
  6108. yyyyyyyyyyyyyy${c2}hmMMMMMMMNy${c1}:..-://::::::::
  6109. yyyyyyyyyyyyyyy${c2}yyhhyys+:${c1}......://:::::::
  6110. yyyyyyyyyyyyyyys+:--...........-///:::::
  6111. yyyyyyyyyyyys+:--................://::::
  6112. yyyyyyyyyo+:-.....................-//:::
  6113. yyyyyyo+:-..........................://:
  6114. yyyo+:-..............................-//
  6115. o/:-...................................:
  6116. EOF
  6117. ;;
  6118. "Garuda"*)
  6119. set_colors 7 7
  6120. read -rd '' ascii_data <<'EOF'
  6121. ${c1} __,,,,,,,_
  6122. _╓╗╣╫╠╠╠╠╠╠╠╠╠╠╠╠╠╕╗╗┐_
  6123. ╥╢╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╥,
  6124. ╗╠╠╠╠╠╠╠╝╜╜╜╜╝╢╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠┐
  6125. ╣╠╠╠╠╠╠╠╠╢╣╢╗╕ , `"╘╠╠╠╠╠╠╠╠╠╠╠╠╠╠╔╥_
  6126. ╒╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╕╙╥╥╜ `"╜╠╬╠╠╠╠╠╠╠╠╠╠╠╥,
  6127. ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╗╥╥╥╥╗╗╬╠╠╠╠╠╠╠╝╙╠╠╣╠╠╠╠╢┐
  6128. ╣╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╥╬╣╠╠╠╠╠╠╠╠╗
  6129. ╒╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╗
  6130. ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
  6131. ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╬ ```"╜╝╢╠╠╡
  6132. ╒╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╣, ╘╠╪
  6133. ╞╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╢┐ ╜
  6134. `╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╗
  6135. ,╬╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠"╕
  6136. ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╗
  6137. ╝^╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╝╣╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╡
  6138. ╔╜`╞┘╢╛╜ ╡╢╠"╚╠╠╜╝┌╞╞"╢╠╠╠╠╠╠╠╠╠╠╣╩╢╪
  6139. ╜╒" `╜ ` ╜╙╕ └╣╠╠╠╠╕ ╞╙╖
  6140. ╠╠╠
  6141. EOF
  6142. ;;
  6143. "gentoo_small")
  6144. set_colors 5 7
  6145. read -rd '' ascii_data <<'EOF'
  6146. ${c1} _-----_
  6147. ( \\
  6148. \ 0 \\
  6149. ${c2} \ )
  6150. / _/
  6151. ( _-
  6152. \____-
  6153. EOF
  6154. ;;
  6155. "Gentoo"*)
  6156. set_colors 5 7
  6157. read -rd '' ascii_data <<'EOF'
  6158. ${c1} -/oyddmdhs+:.
  6159. -o${c2}dNMMMMMMMMNNmhy+${c1}-`
  6160. -y${c2}NMMMMMMMMMMMNNNmmdhy${c1}+-
  6161. `o${c2}mMMMMMMMMMMMMNmdmmmmddhhy${c1}/`
  6162. om${c2}MMMMMMMMMMMN${c1}hhyyyo${c2}hmdddhhhd${c1}o`
  6163. .y${c2}dMMMMMMMMMMd${c1}hs++so/s${c2}mdddhhhhdm${c1}+`
  6164. oy${c2}hdmNMMMMMMMN${c1}dyooy${c2}dmddddhhhhyhN${c1}d.
  6165. :o${c2}yhhdNNMMMMMMMNNNmmdddhhhhhyym${c1}Mh
  6166. .:${c2}+sydNMMMMMNNNmmmdddhhhhhhmM${c1}my
  6167. /m${c2}MMMMMMNNNmmmdddhhhhhmMNh${c1}s:
  6168. `o${c2}NMMMMMMMNNNmmmddddhhdmMNhs${c1}+`
  6169. `s${c2}NMMMMMMMMNNNmmmdddddmNMmhs${c1}/.
  6170. /N${c2}MMMMMMMMNNNNmmmdddmNMNdso${c1}:`
  6171. +M${c2}MMMMMMNNNNNmmmmdmNMNdso${c1}/-
  6172. yM${c2}MNNNNNNNmmmmmNNMmhs+/${c1}-`
  6173. /h${c2}MMNNNNNNNNMNdhs++/${c1}-`
  6174. `/${c2}ohdmmddhys+++/:${c1}.`
  6175. `-//////:--.
  6176. EOF
  6177. ;;
  6178. "Pentoo"*)
  6179. set_colors 5 7
  6180. read -rd '' ascii_data <<'EOF'
  6181. ${c2} `:oydNNMMMMNNdyo:`
  6182. :yNMMMMMMMMMMMMMMMMNy:
  6183. :dMMMMMMMMMMMMMMMMMMMMMMd:
  6184. oMMMMMMMho/-....-/ohMMMMMMMo
  6185. oMMMMMMy. .yMMMMMMo
  6186. .MMMMMMo oMMMMMM.
  6187. +MMMMMm mMMMMM+
  6188. oMMMMMh hMMMMMo
  6189. //hMMMMMm//${c1}`${c2} ${c1}`${c2}////mMMMMMh//
  6190. MMMMMMMMMMM${c1}/${c2} ${c1}/o/`${c2} ${c1}.${c2}smMMMMMMMMMMM
  6191. MMMMMMMMMMm ${c1}`NMN:${c2} ${c1}.${c2}yMMMMMMMMMM
  6192. MMMMMMMMMMMh${c1}:.${c2} dMMMMMMMMM
  6193. MMMMMMMMMMMMMy${c1}.${c2} ${c1}-${c2}NMMMMMMMMM
  6194. MMMMMMMMMMMd:${c1}`${c2} ${c1}-${c2}yNMMMMMMMMMM
  6195. MMMMMMMMMMh${c1}`${c2} ${c1}./${c2}hNMMMMMMMMMMMM
  6196. MMMMMMMMMM${c1}s${c2} ${c1}.:${c2}ymMMMMMMMMMMMMMMM
  6197. MMMMMMMMMMN${c1}s:..-/${c2}ohNMMMMMMMMMMMMMMMMMM
  6198. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  6199. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  6200. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  6201. EOF
  6202. ;;
  6203. "gNewSense"*)
  6204. set_colors 4 5 7 6
  6205. read -rd '' ascii_data <<'EOF'
  6206. ${c1} ..,,,,..
  6207. .oocchhhhhhhhhhccoo.
  6208. .ochhlllllllc hhhhhh ollllllhhco.
  6209. ochlllllllllll hhhllllllhhh lllllllllllhco
  6210. .cllllllllllllll hlllllo +hllh llllllllllllllc.
  6211. ollllllllllhco'' hlllllo +hllh ``ochllllllllllo
  6212. hllllllllc' hllllllllllllh `cllllllllh
  6213. ollllllh +llllllllllll+ hllllllo
  6214. `cllllh. ohllllllho .hllllc'
  6215. ochllc. ++++ .cllhco
  6216. `+occooo+. .+ooocco+'
  6217. `+oo++++ ++++oo+'
  6218. EOF
  6219. ;;
  6220. "GNOME"*)
  6221. set_colors 4
  6222. read -rd '' ascii_data <<'EOF'
  6223. ${c1} ,@@@@@@@@,
  6224. @@@@@@ @@@@@@@@@@@@
  6225. ,@@. @@@@@@@ *@@@@@@@@@@@@
  6226. @@@@@% @@@@@@( @@@@@@@@@@@&
  6227. @@@@@@ @@@@* @@@@@@@@@#
  6228. @@@@* @@@@, *@@@@@%
  6229. @@@@@.
  6230. @@@@# @@@@@@@@@@@@@@@@
  6231. ,@@@@@@@@@@@@@@@@@@@@@@@,
  6232. ,@@@@@@@@@@@@@@@@@@@@@@@@@@&
  6233. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  6234. @@@@@@@@@@@@@@@@@@@@@@@@@@@
  6235. @@@@@@@@@@@@@@@@@@@@@@@@(
  6236. @@@@@@@@@@@@@@@@@@@@%
  6237. @@@@@@@@@@@@@@@@
  6238. @@@@@@@@@@@@* @@@@@@@@/
  6239. &@@@@@@@@@@ @@@@@@@@@*
  6240. @@@@@@@@@@@, @@@@@@@@@*
  6241. ,@@@@@@@@@@@@@@@@@@@@&
  6242. &@@@@@@@@@@@@@@
  6243. ...
  6244. EOF
  6245. ;;
  6246. "GNU")
  6247. set_colors fg 7
  6248. read -rd '' ascii_data <<'EOF'
  6249. ${c1} _-`````-, ,- '- .
  6250. .' .- - | | - -. `.
  6251. /.' / `. \
  6252. :/ : _... ..._ `` :
  6253. :: : /._ .`:'_.._\. || :
  6254. :: `._ ./ ,` : \ . _.'' .
  6255. `:. / | -. \-. \\_ /
  6256. \:._ _/ .' .@) \@) ` `\ ,.'
  6257. _/,--' .- .\,-.`--`.
  6258. ,'/'' (( \ ` )
  6259. /'/' \ `-' (
  6260. '/'' `._,-----'
  6261. ''/' .,---'
  6262. ''/' ;:
  6263. ''/'' ''/
  6264. ''/''/''
  6265. '/'/'
  6266. `;
  6267. EOF
  6268. ;;
  6269. "GoboLinux"*)
  6270. set_colors 5 4 6 2
  6271. read -rd '' ascii_data <<'EOF'
  6272. ${c1} _____ _
  6273. / ____| | |
  6274. | | __ ___ | |__ ___
  6275. | | |_ |/ _ \| '_ \ / _ \
  6276. | |__| | (_) | |_) | (_) |
  6277. \_____|\___/|_.__/ \___/
  6278. EOF
  6279. ;;
  6280. "Grombyang"*)
  6281. set_colors 4 2 1
  6282. read -rd '' ascii_data <<'EOF'
  6283. ${c1} eeeeeeeeeeee
  6284. eeeeeeeeeeeeeeeee
  6285. eeeeeeeeeeeeeeeeeeeeeee
  6286. eeeee ${c2}.o+ ${c1}eeee
  6287. eeee ${c2}`ooo/ ${c1}eeee
  6288. eeee ${c2}`+oooo: ${c1}eeee
  6289. eee ${c2}`+oooooo: ${c1}eee
  6290. eee ${c2}-+oooooo+: ${c1}eee
  6291. ee ${c2}`/:oooooooo+: ${c1}ee
  6292. ee ${c2}`/+ +++ +: ${c1}ee
  6293. ee ${c2}+o+\ ${c1}ee
  6294. eee ${c2}+o+\ ${c1}eee
  6295. eee ${c2}// \\ooo/ \\\ ${c1}eee
  6296. eee ${c2}//++++oooo++++\\\ ${c1}eee
  6297. eeee ${c2}::::++oooo+::::: ${c1}eeee
  6298. eeeee ${c3}Grombyang OS ${c1} eeee
  6299. eeeeeeeeeeeeeeeeeeeeeee
  6300. eeeeeeeeeeeeeeeee
  6301. EOF
  6302. ;;
  6303. "guix_small"*)
  6304. set_colors 3 7 6 1 8
  6305. read -rd '' ascii_data <<'EOF'
  6306. ${c1}|.__ __.|
  6307. |__ \\ / __|
  6308. \\ \\ / /
  6309. \\ \\ / /
  6310. \\ \\ / /
  6311. \\ \\/ /
  6312. \\__/
  6313. EOF
  6314. ;;
  6315. "Guix"*)
  6316. set_colors 3 7 6 1 8
  6317. read -rd '' ascii_data <<'EOF'
  6318. ${c1} .. `.
  6319. `--..```..` `..```..--`
  6320. .-:///-:::. `-:::///:-.
  6321. ````.:::` `:::.````
  6322. -//:` -::-
  6323. ://: -::-
  6324. `///- .:::`
  6325. -+++-:::.
  6326. :+/:::-
  6327. `-....`
  6328. EOF
  6329. ;;
  6330. "haiku_small"*)
  6331. set_colors 2 8
  6332. read -rd '' ascii_data <<'EOF'
  6333. ${c1} ,^,
  6334. / \\
  6335. *--_ ; ; _--*
  6336. \\ '" "' /
  6337. '. .'
  6338. .-'" "'-.
  6339. '-.__. .__.-'
  6340. |_|
  6341. EOF
  6342. ;;
  6343. "Haiku"*)
  6344. set_colors 2 8
  6345. read -rd '' ascii_data <<'EOF'
  6346. ${c2} :dc'
  6347. 'l:;'${c1},${c2}'ck. .;dc:.
  6348. co ${c1}..${c2}k. .;; ':o.
  6349. co ${c1}..${c2}k. ol ${c1}.${c2}0.
  6350. co ${c1}..${c2}k. oc ${c1}..${c2}0.
  6351. co ${c1}..${c2}k. oc ${c1}..${c2}0.
  6352. .Ol,. co ${c1}...''${c2}Oc;kkodxOdddOoc,.
  6353. ';lxxlxOdxkxk0kd${c1}oooll${c2}dl${c1}ccc:${c2}clxd;
  6354. ..${c1}oOolllllccccccc:::::${c2}od;
  6355. cx:ooc${c1}:::::::;${c2}cooolcX.
  6356. cd${c1}.${c2}''cloxdoollc' ${c1}...${c2}0.
  6357. cd${c1}......${c2}k;${c1}.${c2}xl${c1}.... .${c2}0.
  6358. .::c${c1};..${c2}cx;${c1}.${c2}xo${c1}..... .${c2}0.
  6359. '::c'${c1}...${c2}do${c1}..... .${c2}K,
  6360. cd,.${c1}....:${c2}O,${c1}
  6361. ':clod:'${c1}
  6362. ${c1}
  6363. EOF
  6364. ;;
  6365. "Huayra"*)
  6366. set_colors 4 7
  6367. read -rd '' ascii_data <<'EOF'
  6368. ${c2} `
  6369. . . `
  6370. `` - . .
  6371. `.` -` `. - `` .`
  6372. ..`-`-` + - / .` ```
  6373. .--.+--`+:- :/.` .-``.`
  6374. -+/so::h:.d-`./:`.`
  6375. :hNhyMomy:os-...-. ````
  6376. .dhsshNmNhoo+:-``.```
  6377. ${c1}`ohy:-${c2}NMds+::-.``
  6378. ````${c1}.hNN+`${c2}mMNho/:-....````
  6379. ````` `../dmNhoo+/:..``
  6380. ```` .dh++o/:....`
  6381. .+s/` `/s-.-.:.`` ````
  6382. ::` `::`..`
  6383. .` `..
  6384. ``
  6385. EOF
  6386. ;;
  6387. "hyperbola_small"*)
  6388. set_colors 8
  6389. read -rd '' ascii_data <<'EOF'
  6390. ${c1} |`__.`/
  6391. \____/
  6392. .--.
  6393. / \\
  6394. / ___ \\
  6395. / .` `.\\
  6396. /.` `.\\
  6397. EOF
  6398. ;;
  6399. "Hyperbola"*)
  6400. set_colors 8
  6401. read -rd '' ascii_data <<'EOF'
  6402. ${c1} WW
  6403. KX W
  6404. WO0W NX0O
  6405. NOO0NW WNXK0OOKW
  6406. W0OOOOOOOOOOOOKN
  6407. N0OOOOOOO0KXW
  6408. WNXXXNW
  6409. NXK00000KN
  6410. WNK0OOOOOOOOOO0W
  6411. NK0OOOOOOOOOOOOOO0W
  6412. X0OOOOOOO00KK00OOOOOK
  6413. X0OOOO0KNWW WX0OO0W
  6414. X0OO0XNW KOOW
  6415. N00KNW KOW
  6416. NKXN W0W
  6417. WW W
  6418. EOF
  6419. ;;
  6420. "januslinux"*|"janus"*|"Ataraxia Linux"*|"Ataraxia"*)
  6421. set_colors 4 5 6 2
  6422. read -rd '' ascii_data <<'EOF'
  6423. ${c1} 'l:
  6424. loooooo
  6425. loooo coooool
  6426. looooooooooooooooooool
  6427. looooooooooooooooo
  6428. lool cooo
  6429. coooooooloooooooo
  6430. clooooo ;lood cloooo
  6431. :loooocooo cloo loooo
  6432. loooo :ooooool loooo
  6433. looo cooooo cooooo
  6434. looooooooooooo ;loooooo ${c2}looooooc
  6435. ${c1}looooooooo loo cloooooool ${c2}looooc
  6436. ${c1} cooo cooooooooooo ${c2}looolooooool
  6437. ${c1} cooo: ${c2}coooooooooooooooooool
  6438. loooooooooooolc: loooc;
  6439. cooo: loooooooooooc
  6440. ;oool looooooo:
  6441. coool olc,
  6442. looooc ,,
  6443. coooooc loc
  6444. :oooool, coool:, looool:,
  6445. looool: ooooooooooooooo:
  6446. cooolc .ooooooooooool
  6447. EOF
  6448. ;;
  6449. "Kali"*)
  6450. set_colors 4 8
  6451. read -rd '' ascii_data <<'EOF'
  6452. ${c1}..............
  6453. ..,;:ccc,.
  6454. ......''';lxO.
  6455. .....''''..........,:ld;
  6456. .';;;:::;,,.x,
  6457. ..'''. 0Xxoc:,. ...
  6458. .... ,ONkc;,;cokOdc',.
  6459. . OMo ':${c2}dd${c1}o.
  6460. dMc :OO;
  6461. 0M. .:o.
  6462. ;Wd
  6463. ;XO,
  6464. ,d0Odlc;,..
  6465. ..',;:cdOOd::,.
  6466. .:d;.':;.
  6467. 'd, .'
  6468. ;l ..
  6469. .o
  6470. c
  6471. .'
  6472. .
  6473. EOF
  6474. ;;
  6475. "KaOS"*)
  6476. set_colors 4 7 1
  6477. read -rd '' ascii_data <<'EOF'
  6478. ${c1} ..
  6479. ..... ..OSSAAAAAAA..
  6480. .KKKKSS. .SSAAAAAAAAAAA.
  6481. .KKKKKSO. .SAAAAAAAAAA...
  6482. KKKKKKS. .OAAAAAAAA.
  6483. KKKKKKS. .OAAAAAA.
  6484. KKKKKKS. .SSAA..
  6485. .KKKKKS..OAAAAAAAAAAAA........
  6486. DKKKKO.=AA=========A===AASSSO..
  6487. AKKKS.==========AASSSSAAAAAASS.
  6488. .=KKO..========ASS.....SSSSASSSS.
  6489. .KK. .ASS..O.. =SSSSAOSS:
  6490. .OK. .ASSSSSSSO...=A.SSA.
  6491. .K ..SSSASSSS.. ..SSA.
  6492. .SSS.AAKAKSSKA.
  6493. .SSS....S..
  6494. EOF
  6495. ;;
  6496. "KDE"*)
  6497. set_colors 2 7
  6498. read -rd '' ascii_data <<'EOF'
  6499. ${c1} `..---+/---..`
  6500. `---.`` `` `.---.`
  6501. .--.` `` `-:-.
  6502. `:/: `.----//----.` :/-
  6503. .:. `---` `--.` .:`
  6504. .:` `--` .:- `:.
  6505. `/ `:. `.-::-.` -:` `/`
  6506. /. /. `:++++++++:` .: .:
  6507. `/ .: `+++++++++++/ /` `+`
  6508. /+` -- .++++++++++++` :. .+:
  6509. `/ .: `+++++++++++/ /` `+`
  6510. /` /. `:++++++++:` .: .:
  6511. ./ `:. `.:::-.` -:` `/`
  6512. .:` `--` .:- `:.
  6513. .:. `---` `--.` .:`
  6514. `:/: `.----//----.` :/-
  6515. .-:.` `` `-:-.
  6516. `---.`` `` `.---.`
  6517. `..---+/---..`
  6518. EOF
  6519. ;;
  6520. "Kibojoe"*)
  6521. set_colors 2 7 4
  6522. read -rd '' ascii_data <<'EOF'
  6523. ${c3} ./+oooooo+/.
  6524. -/+ooooo+/:.`
  6525. ${c1}`${c3}yyyo${c2}+++/++${c3}osss${c1}.
  6526. ${c1}+NMN${c3}yssssssssssss${c1}.
  6527. ${c1}.dMMMMN${c3}sssssssssssy${c1}Ns`
  6528. +MMMMMMMm${c3}sssssssssssh${c1}MNo`
  6529. `hMMMMMNNNMd${c3}sssssssssssd${c1}MMN/
  6530. .${c3}syyyssssssy${c1}NNmmmmd${c3}sssss${c1}hMMMMd:
  6531. -NMmh${c3}yssssssssyhhhhyssyh${c1}mMMMMMMMy`
  6532. -NMMMMMNN${c3}mdhyyyyyyyhdm${c1}NMMMMMMMMMMMN+
  6533. `NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd.
  6534. ods+/:-----://+oyydmNMMMMMMMMMMMMMMMMMN-
  6535. ` .-:+osyhhdmmNNNmdo
  6536. EOF
  6537. ;;
  6538. "Kogaion"*)
  6539. set_colors 4 7 1
  6540. read -rd '' ascii_data <<'EOF'
  6541. ${c1} ;; ,;
  6542. ;;; ,;;
  6543. ,;;;; ;;;;
  6544. ,;;;;;;;; ;;;;
  6545. ;;;;;;;;;;; ;;;;;
  6546. ,;;;;;;;;;;;; ';;;;;,
  6547. ;;;;;;;;;;;;;;, ';;;;;;;
  6548. ;;;;;;;;;;;;;;;;;, ';;;;;
  6549. ; ';;;;;;;;;;;;;;;;;;, ;;;
  6550. ;;;, ';;;;;;;;;;;;;;;;;;;,;;
  6551. ;;;;;, ';;;;;;;;;;;;;;;;;;,
  6552. ;;;;;;;;, ';;;;;;;;;;;;;;;;,
  6553. ;;;;;;;;;;;;, ';;;;;;;;;;;;;;
  6554. ';;;;;;;;;;;;; ';;;;;;;;;;;;;
  6555. ';;;;;;;;;;;;;, ';;;;;;;;;;;
  6556. ';;;;;;;;;;;;; ;;;;;;;;;;
  6557. ';;;;;;;;;;;; ;;;;;;;;
  6558. ';;;;;;;; ;;;;;;
  6559. ';;;;; ;;;;
  6560. ';;; ;;
  6561. EOF
  6562. ;;
  6563. "Korora"*)
  6564. set_colors 4 7 1
  6565. read -rd '' ascii_data <<'EOF'
  6566. ${c2} ____________
  6567. _add55555555554${c1}:
  6568. _w?'${c1}``````````'${c2})k${c1}:
  6569. _Z'${c1}`${c2} ]k${c1}:
  6570. m(${c1}`${c2} )k${c1}:
  6571. _.ss${c1}`${c2}m[${c1}`${c2}, ]e${c1}:
  6572. .uY"^`${c1}`${c2}Xc${c1}`${c2}?Ss. d(${c1}`
  6573. jF'${c1}`${c2} `@. ${c1}`${c2}Sc .jr${c1}`
  6574. jr${c1}`${c2} `?n_ ${c1}`${c2}$; _a2"${c1}`
  6575. .m${c1}:${c2} `~M${c1}`${c2}1k${c1}`${c2}5?!`${c1}`
  6576. :#${c1}:${c2} ${c1}`${c2})e${c1}```
  6577. :m${c1}:${c2} ,#'${c1}`
  6578. :#${c1}:${c2} .s2'${c1}`
  6579. :m,________.aa7^${c1}`
  6580. :#baaaaaaas!J'${c1}`
  6581. ```````````
  6582. EOF
  6583. ;;
  6584. "KSLinux"*)
  6585. set_colors 4 7 1
  6586. read -rd '' ascii_data <<'EOF'
  6587. ${c1} K K U U RRRR ooo
  6588. K K U U R R o o
  6589. KKK U U RRRR o o
  6590. K K U U R R o o
  6591. K K UUU R R ooo
  6592. ${c2} SSS AAA W W AAA
  6593. S A A W W A A
  6594. SSS AAAAA W W W AAAAA
  6595. S A A WW WW A A
  6596. SSS A A W W A A
  6597. EOF
  6598. ;;
  6599. "Kubuntu"*)
  6600. set_colors 4 7 1
  6601. read -rd '' ascii_data <<'EOF'
  6602. ${c1} `.:/ossyyyysso/:.
  6603. .:oyyyyyyyyyyyyyyyyyyo:`
  6604. -oyyyyyyyo${c2}dMMy${c1}yyyyyyysyyyyo-
  6605. -syyyyyyyyyy${c2}dMMy${c1}oyyyy${c2}dmMMy${c1}yyyys-
  6606. oyyys${c2}dMy${c1}syyyy${c2}dMMMMMMMMMMMMMy${c1}yyyyyyo
  6607. `oyyyy${c2}dMMMMy${c1}syysoooooo${c2}dMMMMy${c1}yyyyyyyyo`
  6608. oyyyyyy${c2}dMMMMy${c1}yyyyyyyyyyys${c2}dMMy${c1}sssssyyyo
  6609. -yyyyyyyy${c2}dMy${c1}syyyyyyyyyyyyyys${c2}dMMMMMy${c1}syyy-
  6610. oyyyysoo${c2}dMy${c1}yyyyyyyyyyyyyyyyyy${c2}dMMMMy${c1}syyyo
  6611. yyys${c2}dMMMMMy${c1}yyyyyyyyyyyyyyyyyysosyyyyyyyy
  6612. yyys${c2}dMMMMMy${c1}yyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  6613. oyyyyysos${c2}dy${c1}yyyyyyyyyyyyyyyyyy${c2}dMMMMy${c1}syyyo
  6614. -yyyyyyyy${c2}dMy${c1}syyyyyyyyyyyyyys${c2}dMMMMMy${c1}syyy-
  6615. oyyyyyy${c2}dMMMy${c1}syyyyyyyyyyys${c2}dMMy${c1}oyyyoyyyo
  6616. `oyyyy${c2}dMMMy${c1}syyyoooooo${c2}dMMMMy${c1}oyyyyyyyyo
  6617. oyyysyyoyyyys${c2}dMMMMMMMMMMMy${c1}yyyyyyyo
  6618. -syyyyyyyyy${c2}dMMMy${c1}syyy${c2}dMMMy${c1}syyyys-
  6619. -oyyyyyyy${c2}dMMy${c1}yyyyyysosyyyyo-
  6620. ./oyyyyyyyyyyyyyyyyyyo/.
  6621. `.:/oosyyyysso/:.`
  6622. EOF
  6623. ;;
  6624. "LEDE"*)
  6625. set_colors 4 7 1
  6626. read -rd '' ascii_data <<'EOF'
  6627. ${c1} _________
  6628. / /\
  6629. / LE / \
  6630. / DE / \
  6631. /________/ LE \
  6632. \ \ DE /
  6633. \ LE \ /
  6634. \ DE \ /
  6635. \________\/
  6636. EOF
  6637. ;;
  6638. "Linux")
  6639. set_colors fg 8 3
  6640. read -rd '' ascii_data <<'EOF'
  6641. ${c2} #####
  6642. ${c2} #######
  6643. ${c2} ##${c1}O${c2}#${c1}O${c2}##
  6644. ${c2} #${c3}#####${c2}#
  6645. ${c2} ##${c1}##${c3}###${c1}##${c2}##
  6646. ${c2} #${c1}##########${c2}##
  6647. ${c2} #${c1}############${c2}##
  6648. ${c2} #${c1}############${c2}###
  6649. ${c3} ##${c2}#${c1}###########${c2}##${c3}#
  6650. ${c3}######${c2}#${c1}#######${c2}#${c3}######
  6651. ${c3}#######${c2}#${c1}#####${c2}#${c3}#######
  6652. ${c3} #####${c2}#######${c3}#####
  6653. EOF
  6654. ;;
  6655. "linuxlite_small"*)
  6656. set_colors 3 7
  6657. read -rd '' ascii_data <<'EOF'
  6658. ${c1} /\\
  6659. / \\
  6660. / ${c2}/ ${c1}/
  6661. > ${c2}/ ${c1}/
  6662. \\ ${c2}\\ ${c1}\\
  6663. \\_${c2}\\${c1}_\\
  6664. ${c2} \\
  6665. EOF
  6666. ;;
  6667. "Linux Lite"* | "Linux_Lite"*)
  6668. set_colors 3 7
  6669. read -rd '' ascii_data <<'EOF'
  6670. ${c1} ,xXc
  6671. .l0MMMMMO
  6672. .kNMMMMMWMMMN,
  6673. KMMMMMMKMMMMMMo
  6674. 'MMMMMMNKMMMMMM:
  6675. kMMMMMMOMMMMMMO
  6676. .MMMMMMX0MMMMMW.
  6677. oMMMMMMxWMMMMM:
  6678. WMMMMMNkMMMMMO
  6679. :MMMMMMOXMMMMW
  6680. .0MMMMMxMMMMM;
  6681. :;cKMMWxMMMMO
  6682. 'MMWMMXOMMMMl
  6683. kMMMMKOMMMMMX:
  6684. .WMMMMKOWMMM0c
  6685. lMMMMMWO0MNd:'
  6686. oollXMKXoxl;.
  6687. ':. .: .'
  6688. ..
  6689. .
  6690. EOF
  6691. ;;
  6692. "LMDE"*)
  6693. set_colors 2 7
  6694. read -rd '' ascii_data <<'EOF'
  6695. ${c2}`.-::---..
  6696. ${c1} .:++++ooooosssoo:.
  6697. .+o++::. `.:oos+.
  6698. ${c1} :oo:.` -+oo${c2}:
  6699. ${c1} ${c2}`${c1}+o/` .${c2}::::::${c1}-. .++-${c2}`
  6700. ${c1}${c2}`${c1}/s/ .yyyyyyyyyyo: +o-${c2}`
  6701. ${c1}${c2}`${c1}so .ss ohyo` :s-${c2}:
  6702. ${c1}${c2}`${c1}s/ .ss h m myy/ /s`${c2}`
  6703. ${c1}`s: `oo s m Myy+-o:`
  6704. `oo :+sdoohyoydyso/.
  6705. :o. .:////////++:
  6706. ${c1} `/++ ${c2}-:::::-
  6707. ${c1} ${c2}`${c1}++-
  6708. ${c1} ${c2}`${c1}/+-
  6709. ${c1} ${c2}.${c1}+/.
  6710. ${c1} ${c2}.${c1}:+-.
  6711. `--.``
  6712. EOF
  6713. ;;
  6714. "Lubuntu"*)
  6715. set_colors 4 7 1
  6716. read -rd '' ascii_data <<'EOF'
  6717. ${c1} `-mddhhhhhhhhhddmss`
  6718. ./mdhhhhhhhhhhhhhhhhhhhhhh.
  6719. :mdhhhhhhhhhhhhhhhhhhhhhhhhhhhm`
  6720. :ymhhhhhhhhhhhhhhhyyyyyyhhhhhhhhhy:
  6721. `odhyyyhhhhhhhhhy+-````./syhhhhhhhho`
  6722. `hhy..:oyhhhhhhhy-`:osso/..:/++oosyyyh`
  6723. dhhs .-/syhhhhs`shhhhhhyyyyyyyyyyyyhs
  6724. :hhhy` yso/:+syhy/yhhhhhshhhhhhhhhhhhhh:
  6725. hhhhho. +hhhys++oyyyhhhhh-yhhhhhhhhhhhhhs
  6726. hhhhhhs-`/syhhhhyssyyhhhh:-yhhhhhhhhhhhhh
  6727. hhhhhhs `:/+ossyyhyyhhhhs -yhhhhhhhhhhhh
  6728. hhhhhhy/ `syyyssyyyyhhhhhh: :yhhhhhhhhhhs
  6729. :hhhhhhyo:-/osyhhhhhhhhhhho ohhhhhhhhhh:
  6730. sdhhhhhhhyyssyyhhhhhhhhhhh+ +hhhhhhhhs
  6731. `shhhhhhhhhhhhhhhhhhhhhhy+` .yhhhhhhhh`
  6732. +sdhhhhhhhhhhhhhhhhhyo/. `/yhhhhhhhd`
  6733. `:shhhhhhhhhh+---..``.:+yyhhhhhhh:
  6734. `:mdhhhhhh/.syssyyyyhhhhhhhd:`
  6735. `+smdhhh+shhhhhhhhhhhhdm`
  6736. `sNmdddhhhhhhhddm-`
  6737. EOF
  6738. ;;
  6739. "Lunar"*)
  6740. set_colors 4 7 3
  6741. read -rd '' ascii_data <<'EOF'
  6742. ${c1}`-. `-.
  6743. -ohys/-` `:+shy/`
  6744. -omNNdyo/` :+shmNNy/`
  6745. ${c3} -
  6746. /mMmo
  6747. hMMMN`
  6748. .NMMs
  6749. ${c1} -:+oooo+//: ${c3}/MN${c1}. -///oooo+/-`
  6750. /:.` ${c3}/${c1} `.:/`
  6751. ${c3} __
  6752. | | _ _ ___ ___ ___
  6753. | |__| | | | .'| _|
  6754. |_____|___|_|_|__,|_|
  6755. EOF
  6756. ;;
  6757. "mac"*"_small")
  6758. set_colors 2 3 1 5 4
  6759. read -rd '' ascii_data <<'EOF'
  6760. ${c1} .:'
  6761. _ :'_
  6762. ${c2} .'`_`-'_``.
  6763. :________.-'
  6764. ${c3}:_______:
  6765. :_______:
  6766. ${c4} :_______`-;
  6767. ${c5} `._.-._.'
  6768. EOF
  6769. ;;
  6770. "mac"* | "Darwin")
  6771. set_colors 2 3 1 1 5 4
  6772. read -rd '' ascii_data <<'EOF'
  6773. ${c1} 'c.
  6774. ,xNMM.
  6775. .OMMMMo
  6776. OMMM0,
  6777. .;loddo:' loolloddol;.
  6778. cKMMMMMMMMMMNWMMMMMMMMMM0:
  6779. ${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd.
  6780. XMMMMMMMMMMMMMMMMMMMMMMMX.
  6781. ${c3};MMMMMMMMMMMMMMMMMMMMMMMM:
  6782. :MMMMMMMMMMMMMMMMMMMMMMMM:
  6783. ${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX.
  6784. kMMMMMMMMMMMMMMMMMMMMMMMMWd.
  6785. ${c5}.XMMMMMMMMMMMMMMMMMMMMMMMMMMk
  6786. .XMMMMMMMMMMMMMMMMMMMMMMMMK.
  6787. ${c6}kMMMMMMMMMMMMMMMMMMMMMMd
  6788. ;KMMMMMMMWXXWMMMMMMMk.
  6789. .cooc,. .,coo:.
  6790. EOF
  6791. ;;
  6792. "mageia_small"*)
  6793. set_colors 6 7
  6794. read -rd '' ascii_data <<'EOF'
  6795. ${c1} *
  6796. *
  6797. **
  6798. ${c2} /\\__/\\
  6799. / \\
  6800. \\ /
  6801. \\____/
  6802. EOF
  6803. ;;
  6804. "Mageia"*)
  6805. set_colors 6 7
  6806. read -rd '' ascii_data <<'EOF'
  6807. ${c1} .°°.
  6808. °° .°°.
  6809. .°°°. °°
  6810. . .
  6811. °°° .°°°.
  6812. .°°°. '___'
  6813. ${c2} .${c1}'___' ${c2} .
  6814. :dkxc;'. ..,cxkd;
  6815. .dkk. kkkkkkkkkk .kkd.
  6816. .dkk. ';cloolc;. .kkd
  6817. ckk. .kk;
  6818. xO: cOd
  6819. xO: lOd
  6820. lOO. .OO:
  6821. .k00. .00x
  6822. .k00; ;00O.
  6823. .lO0Kc;,,,,,,;c0KOc.
  6824. ;d00KKKKKK00d;
  6825. .,KKKK,.
  6826. EOF
  6827. ;;
  6828. "MagpieOS"*)
  6829. set_colors 2 1 3 5
  6830. read -rd '' ascii_data <<'EOF'
  6831. ${c1} ;00000 :000Ol
  6832. .x00kk00: O0kk00k;
  6833. l00: :00. o0k :O0k.
  6834. .k0k. x${c2}d$dddd${c1}k' .d00;
  6835. k0k. ${c2}.dddddl ${c1}o00,
  6836. o00. ${c2}':cc:. ${c1}d0O
  6837. .00l ,00.
  6838. l00. d0x
  6839. k0O .:k0o
  6840. O0k ;dO0000d.
  6841. k0O .O0O${c2}xxxxk${c1}00:
  6842. o00. k0O${c2}dddddd${c1}occ
  6843. '00l x0O${c2}dddddo${c3};..${c1}
  6844. x00. .x00${c2}kxxd${c3}:..${c1}
  6845. .O0x .:oxxx${c4}Okl.${c1}
  6846. .x0d ${c4},xx,${c1}
  6847. .:o. ${c4}.xd ckd${c1}
  6848. .. ${c4}dxl .xx;
  6849. :xxolldxd'
  6850. ;oxdl.
  6851. EOF
  6852. ;;
  6853. "Mandriva"*)
  6854. set_colors 4 3
  6855. read -rd '' ascii_data <<'EOF'
  6856. ${c2} ``
  6857. `-.
  6858. ${c1} ` ${c2}.---
  6859. ${c1} -/ ${c2}-::--`
  6860. ${c1} `++ ${c2}`----...```-:::::.
  6861. ${c1} `os. ${c2}.::::::::::::::-``` ` `
  6862. ${c1} +s+ ${c2}.::::::::::::::::---...--`
  6863. ${c1}-ss: ${c2}`-::::::::::::::::-.``.``
  6864. ${c1}/ss- ${c2}.::::::::::::-.`` `
  6865. ${c1}+ss: ${c2}.::::::::::::-
  6866. ${c1}/sso ${c2}.::::::-::::::-
  6867. ${c1}.sss/ ${c2}-:::-.` .:::::
  6868. ${c1} /sss+. ${c2}..`${c1} `--` ${c2}.:::
  6869. ${c1} -ossso+/:://+/-` ${c2}.:`
  6870. ${c1} -/+ooo+/-. ${c2}`
  6871. EOF
  6872. ;;
  6873. "manjaro_small"*)
  6874. set_colors 2 7
  6875. read -rd '' ascii_data <<'EOF'
  6876. ${c1}||||||||| ||||
  6877. ||||||||| ||||
  6878. |||| ||||
  6879. |||| |||| ||||
  6880. |||| |||| ||||
  6881. |||| |||| ||||
  6882. |||| |||| ||||
  6883. EOF
  6884. ;;
  6885. "Manjaro"*)
  6886. set_colors 2 7
  6887. read -rd '' ascii_data <<'EOF'
  6888. ${c1}██████████████████ ████████
  6889. ██████████████████ ████████
  6890. ██████████████████ ████████
  6891. ██████████████████ ████████
  6892. ████████ ████████
  6893. ████████ ████████ ████████
  6894. ████████ ████████ ████████
  6895. ████████ ████████ ████████
  6896. ████████ ████████ ████████
  6897. ████████ ████████ ████████
  6898. ████████ ████████ ████████
  6899. ████████ ████████ ████████
  6900. ████████ ████████ ████████
  6901. ████████ ████████ ████████
  6902. EOF
  6903. ;;
  6904. "Maui"*)
  6905. set_colors 6 7
  6906. read -rd '' ascii_data <<'EOF'
  6907. ${c1} `.-://////:--`
  6908. .:/oooooooooooooooo+:.
  6909. `:+ooooooooooooooooooooooo:`
  6910. `:oooooooooooooooooooooooooooo/`
  6911. ..```-oooooo/-`` `:oooooo+:.` `--
  6912. :. +oo+-` /ooo/` -/
  6913. -o. `o+- +o/` -o:
  6914. `oo` ::` :o/ `+. .+o` /oo.
  6915. /o+ . -+oo- ` /oo/ `ooo/
  6916. +o- /ooo+` .+ooo. :ooo+
  6917. ++ .+oooo: -oooo+ `oooo+
  6918. :. .oooooo` :ooooo- :oooo:
  6919. ` .oooooo: :ooooo+ `ooo+-`
  6920. .+oooooo` -oooooo: `o/-
  6921. +oooooo: .ooooooo.
  6922. /ooooooo` /ooooooo/ ..
  6923. `:oooooooo/:::/ooooooooo+:--:/:`
  6924. `:+oooooooooooooooooooooo+:`
  6925. .:+oooooooooooooooo+:.
  6926. `.-://////:-.`
  6927. EOF
  6928. ;;
  6929. "Mer"*)
  6930. set_colors 4 7 1
  6931. read -rd '' ascii_data <<'EOF'
  6932. ${c1} dMs
  6933. .-`
  6934. `y`-o+`
  6935. ``NMMy
  6936. .--`:++.
  6937. .hNNNNs
  6938. /MMMMMN
  6939. `ommmd/ +/
  6940. ```` +/
  6941. `:+sssso/-`
  6942. .-::. `-::-` `smNMNmdmNMNd/ .://-`
  6943. .ymNMNNdmNMMNm+` -dMMh:.....+dMMs `sNNMMNo
  6944. dMN+::NMMy::hMM+ mMMo `ohhy/ `dMM+ yMMy::-
  6945. MMm yMM- :MMs NMN` `:::::--sMMh dMM`
  6946. MMm yMM- -MMs mMM+ `ymmdsymMMMs dMM`
  6947. NNd sNN- -NNs -mMNs-.--..:dMMh` dNN
  6948. --- .--` `--. .smMMmdddmMNdo` .--
  6949. ./ohddds+:`
  6950. +h- `.:-.
  6951. ./`.dMMMN+
  6952. +MMMMMd
  6953. `+dmmy-
  6954. ``` .+`
  6955. .dMNo-y.
  6956. `hmm/
  6957. .:`
  6958. dMs
  6959. EOF
  6960. ;;
  6961. "Minix"*)
  6962. set_colors 1 7 3
  6963. read -rd '' ascii_data <<'EOF'
  6964. ${c2} -sdhyo+:-` -/syymm:
  6965. sdyooymmNNy. `` .smNmmdysNd
  6966. odyoso+syNNmysoyhhdhsoomNmm+/osdm/
  6967. :hhy+-/syNNmddhddddddmNMNo:sdNd:
  6968. `smNNdNmmNmddddddddddmmmmmmmy`
  6969. `ohhhhdddddmmNNdmddNmNNmdddddmdh-
  6970. odNNNmdyo/:/-/hNddNy-`..-+ydNNNmd:
  6971. `+mNho:` smmd/ sNNh :dmms` -+ymmo.
  6972. -od/ -m${c1}mm${c2}mo -NN+ +m${c1}mm${c2}m- yms:
  6973. +sms -.` :so: .NN+ :os/ .-`mNh:
  6974. .-hyh+:////- -sNNd:` .--://ohNs-
  6975. `:hNNNNNNNMMd/sNMmhsdMMh/ymmNNNmmNNy/
  6976. -+sNNNNMMNNNsmNMo: :NNmymNNNNMMMms:
  6977. //oydNMMMMydMMNysNMMmsMMMMMNyo/`
  6978. ../-yNMMy--/::/-.sMMmos+.`
  6979. -+oyhNsooo+omy/```
  6980. `::ohdmds-`
  6981. EOF
  6982. ;;
  6983. "linuxmint_small"*)
  6984. set_colors 2 7
  6985. read -rd '' ascii_data <<'EOF'
  6986. ${c1} ___________
  6987. |_ \\
  6988. | ${c2}| _____ ${c1}|
  6989. | ${c2}| | | | ${c1}|
  6990. | ${c2}| | | | ${c1}|
  6991. | ${c2}\\__${c2}___/ ${c1}|
  6992. \\_________/
  6993. EOF
  6994. ;;
  6995. "Linux Mint Old"* | "LinuxMintOld"* | "mint_old"*)
  6996. set_colors 2 7
  6997. read -rd '' ascii_data <<'EOF'
  6998. ${c1}MMMMMMMMMMMMMMMMMMMMMMMMMmds+.
  6999. MMm----::-://////////////oymNMd+`
  7000. MMd ${c2}/++ ${c1}-sNMd:
  7001. MMNso/` ${c2}dMM `.::-. .-::.` ${c1}.hMN:
  7002. ddddMMh ${c2}dMM :hNMNMNhNMNMNh: ${c1}`NMm
  7003. NMm ${c2}dMM .NMN/-+MMM+-/NMN` ${c1}dMM
  7004. NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM
  7005. NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM
  7006. NMm ${c2}dMM .mmd `mmm yMM. ${c1}dMM
  7007. NMm ${c2}dMM` ..` ... ydm. ${c1}dMM
  7008. hMM- ${c2}+MMd/-------...-:sdds ${c1}dMM
  7009. -NMm- ${c2}:hNMNNNmdddddddddy/` ${c1}dMM
  7010. -dMNs-${c2}``-::::-------.`` ${c1}dMM
  7011. `/dMNmy+/:-------------:/yMMM
  7012. ./ydNMMMMMMMMMMMMMMMMMMMMM
  7013. .MMMMMMMMMMMMMMMMMMM
  7014. EOF
  7015. ;;
  7016. "Linux Mint"* | "LinuxMint"* | "mint"*)
  7017. set_colors 2 7
  7018. read -rd '' ascii_data <<'EOF'
  7019. ${c2} ...-:::::-...
  7020. ${c2} .-MMMMMMMMMMMMMMM-.
  7021. .-MMMM${c1}`..-:::::::-..`${c2}MMMM-.
  7022. .:MMMM${c1}.:MMMMMMMMMMMMMMM:.${c2}MMMM:.
  7023. -MMM${c1}-M---MMMMMMMMMMMMMMMMMMM.${c2}MMM-
  7024. `:MMM${c1}:MM` :MMMM:....::-...-MMMM:${c2}MMM:`
  7025. :MMM${c1}:MMM` :MM:` `` `` `:MMM:${c2}MMM:
  7026. .MMM${c1}.MMMM` :MM. -MM. .MM- `MMMM.${c2}MMM.
  7027. :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM:
  7028. :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM:${c2}MMM:
  7029. :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM:
  7030. .MMM${c1}.MMMM` :MM:--:MM:--:MM: `MMMM.${c2}MMM.
  7031. :MMM${c1}:MMM- `-MMMMMMMMMMMM-` -MMM-${c2}MMM:
  7032. :MMM${c1}:MMM:` `:MMM:${c2}MMM:
  7033. .MMM${c1}.MMMM:--------------:MMMM.${c2}MMM.
  7034. '-MMMM${c1}.-MMMMMMMMMMMMMMM-.${c2}MMMM-'
  7035. '.-MMMM${c1}``--:::::--``${c2}MMMM-.'
  7036. ${c2} '-MMMMMMMMMMMMM-'
  7037. ${c2} ``-:::::-``
  7038. EOF
  7039. ;;
  7040. "mx_small"*)
  7041. set_colors 4 6 7
  7042. read -rd '' ascii_data <<'EOF'
  7043. ${c3} \\\\ /
  7044. \\\\/
  7045. \\\\
  7046. /\\/ \\\\
  7047. / \\ /\\
  7048. / \\/ \\
  7049. /__________\\
  7050. EOF
  7051. ;;
  7052. "MX"*)
  7053. set_colors 4 6 7
  7054. read -rd '' ascii_data <<'EOF'
  7055. ${c3}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMM
  7056. MMMMMMMMMMNs..yMMMMMMMMMMMMMm: +NMMMMMMM
  7057. MMMMMMMMMN+ :mMMMMMMMMMNo` -dMMMMMMMM
  7058. MMMMMMMMMMMs. `oNMMMMMMh- `sNMMMMMMMMM
  7059. MMMMMMMMMMMMN/ -hMMMN+ :dMMMMMMMMMMM
  7060. MMMMMMMMMMMMMMh- +ms. .sMMMMMMMMMMMMM
  7061. MMMMMMMMMMMMMMMN+` ` +NMMMMMMMMMMMMMM
  7062. MMMMMMMMMMMMMMNMMd: .dMMMMMMMMMMMMMMM
  7063. MMMMMMMMMMMMm/-hMd- `sNMMMMMMMMMMMMM
  7064. MMMMMMMMMMNo` -` :h/ -dMMMMMMMMMMMM
  7065. MMMMMMMMMd: /NMMh- `+NMMMMMMMMMM
  7066. MMMMMMMNo` :mMMN+` `-hMMMMMMMM
  7067. MMMMMMh. `oNMMd: `/mMMMMMM
  7068. MMMMm/ -hMd- `sNMMMM
  7069. MMNs` - :dMMM
  7070. Mm: `oMM
  7071. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  7072. EOF
  7073. ;;
  7074. "Namib"*)
  7075. set_colors 1
  7076. read -rd '' ascii_data <<'EOF'
  7077. ${c1} .:+shysyhhhhysyhs+:.
  7078. -/yyys syyy/-
  7079. -shy yhs-
  7080. -yhs shy-
  7081. +hy yh+
  7082. +ds sd+
  7083. /ys so sy/
  7084. sh smMMNdyo hs
  7085. yo ymMMMMNNMMNho oy
  7086. N ydMMMNNMMMMMMMMMmy N
  7087. N shmMMMMNNMMMMMMMMMMMMMNy N
  7088. yo ooshmNMMMNNNNMMMMMMMMMMMMMMMMMms oy
  7089. sd yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy ds
  7090. /ys sy/
  7091. +ds sd+
  7092. +hy yh+
  7093. -yhs shy-
  7094. -shy yhs-
  7095. -/yyys syyy/-
  7096. .:+shysyhyhhysyhs+:.
  7097. EOF
  7098. ;;
  7099. "Neptune"*)
  7100. set_colors 7
  7101. read -rd '' ascii_data <<'EOF'
  7102. ${c1} ./+sydddddddys/-.
  7103. .+ymNNdyooo/:+oooymNNmy/`
  7104. `/hNNh/.` `-+dNNy:`
  7105. /mMd/. .++.:oy/ .+mMd-
  7106. `sMN/ oMMmdy+. `oNNo
  7107. `hMd. `/ymy/. :NMo
  7108. oMN- `/dMd: /MM-
  7109. `mMy -dMN+` mMs
  7110. .MMo -NMM/ yMs
  7111. dMh mMMMo:` `NMo
  7112. /MM/ /ymMMMm- sMN.
  7113. +Mm: .hMMd` oMN/
  7114. +mNs. `yNd/` -dMm-
  7115. .yMNs: `/.` `/yNNo`
  7116. .odNNy+-` .:ohNNd/.
  7117. -+ymNNmdyyyyyyydmNNmy+.
  7118. `-//sssssss//.
  7119. EOF
  7120. ;;
  7121. "netbsd_small"*)
  7122. set_colors 5 7
  7123. read -rd '' ascii_data <<'EOF'
  7124. ${c2}\\\\${c1}\`-______,----__
  7125. ${c2} \\\\ ${c1}__,---\`_
  7126. ${c2} \\\\ ${c1}\`.____
  7127. ${c2} \\\\${c1}-______,----\`-
  7128. ${c2} \\\\
  7129. \\\\
  7130. \\\\
  7131. EOF
  7132. ;;
  7133. "NetBSD"*)
  7134. set_colors 5 7
  7135. read -rd '' ascii_data <<'EOF'
  7136. ${c1} `-/oshdmNMNdhyo+:-`
  7137. ${c2}y${c1}/s+:-`` `.-:+oydNMMMMNhs/-``
  7138. ${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-`
  7139. ${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMMmy+:`
  7140. ${c2}-N/${c1}dMMMMMMMMMMMMMMMds:`
  7141. ${c2}-N/${c1}hMMMMMMMMMmho:`
  7142. ${c2}-N/${c1}-:/++/:.`
  7143. ${c2} :M+
  7144. :Mo
  7145. :Ms
  7146. :Ms
  7147. :Ms
  7148. :Ms
  7149. :Ms
  7150. :Ms
  7151. :Ms
  7152. :Ms
  7153. EOF
  7154. ;;
  7155. "Netrunner"*)
  7156. set_colors 4 7 1
  7157. read -rd '' ascii_data <<'EOF'
  7158. ${c1} .:oydmMMMMMMmdyo:`
  7159. -smMMMMMMMMMMMMMMMMMMds-
  7160. +mMMMMMMMMMMMMMMMMMMMMMMMMd+
  7161. /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/
  7162. `hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy`
  7163. .mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd`
  7164. dMMMMMMMMMMMMMMMMMMMMMMNdhmMMMMMMMMMMh
  7165. +MMMMMMMMMMMMMNmhyo+/-. -MMMMMMMMMMMM/
  7166. mMMMMMMMMd+:.` `mMMMMMMMMMMMMd
  7167. MMMMMMMMMMMdy/. yMMMMMMMMMMMMMM
  7168. MMMMMMMMMMMMMMMNh+` +MMMMMMMMMMMMMMM
  7169. mMMMMMMMMMMMMMMMMMs -NMMMMMMMMMMMMMMd
  7170. +MMMMMMMMMMMMMMMMMN. `mMMMMMMMMMMMMMMM/
  7171. dMMMMMMMMMMMMMMMMMy hMMMMMMMMMMMMMMMh
  7172. `dMMMMMMMMMMMMMMMMM-+MMMMMMMMMMMMMMMd`
  7173. `hMMMMMMMMMMMMMMMMmMMMMMMMMMMMMMMMy
  7174. /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm:
  7175. +dMMMMMMMMMMMMMMMMMMMMMMMMd/
  7176. -odMMMMMMMMMMMMMMMMMMdo-
  7177. `:+ydmNMMMMNmhy+-`
  7178. EOF
  7179. ;;
  7180. "Nitrux"*)
  7181. set_colors 4
  7182. read -rd '' ascii_data <<'EOF'
  7183. ${c1}`:/.
  7184. `/yo
  7185. `/yo
  7186. `/yo .+:.
  7187. `/yo .sys+:.`
  7188. `/yo `-/sys+:.`
  7189. `/yo ./sss+:.`
  7190. `/yo .:oss+:-`
  7191. `/yo ./o///:-`
  7192. `/yo `.-:///////:`
  7193. `/yo `.://///++//-``
  7194. `/yo `.-:////++++/-`
  7195. `/yo `-://///++o+/-`
  7196. `/yo `-/+o+++ooo+/-`
  7197. `/s+:+oooossso/.`
  7198. `//+sssssso:.
  7199. `+syyyy+:`
  7200. :+s+-
  7201. EOF
  7202. ;;
  7203. "nixos_small")
  7204. set_colors 4 6
  7205. read -rd '' ascii_data <<'EOF'
  7206. ${c1} \\\\ \\\\ //
  7207. ==\\\\__\\\\/ //
  7208. // \\\\//
  7209. ==// //==
  7210. //\\\\___//
  7211. // /\\\\ \\\\==
  7212. // \\\\ \\\\
  7213. EOF
  7214. ;;
  7215. "NixOS"*)
  7216. set_colors 4 6
  7217. read -rd '' ascii_data <<'EOF'
  7218. ${c1} ::::. ${c2}'::::: ::::'
  7219. ${c1} '::::: ${c2}':::::. ::::'
  7220. ${c1} ::::: ${c2}'::::.:::::
  7221. ${c1} .......:::::..... ${c2}::::::::
  7222. ${c1} ::::::::::::::::::. ${c2}:::::: ${c1}::::.
  7223. ::::::::::::::::::::: ${c2}:::::. ${c1}.::::'
  7224. ${c2} ..... ::::' ${c1}:::::'
  7225. ${c2} ::::: '::' ${c1}:::::'
  7226. ${c2} ........::::: ' ${c1}:::::::::::.
  7227. ${c2}::::::::::::: ${c1}:::::::::::::
  7228. ${c2} ::::::::::: ${c1}.. ${c1}:::::
  7229. ${c2} .::::: ${c1}.::: ${c1}:::::
  7230. ${c2} .::::: ${c1}::::: ${c1}''''' ${c2}.....
  7231. ::::: ${c1}':::::. ${c2}......:::::::::::::'
  7232. ::: ${c1}::::::. ${c2}':::::::::::::::::'
  7233. ${c1} .:::::::: ${c2}'::::::::::
  7234. ${c1} .::::''::::. ${c2}'::::.
  7235. ${c1} .::::' ::::. ${c2}'::::.
  7236. ${c1} .:::: :::: ${c2}'::::.
  7237. EOF
  7238. ;;
  7239. "Nurunner"*)
  7240. set_colors 4
  7241. read -rd '' ascii_data <<'EOF'
  7242. ${c1} ,xc
  7243. ;00cxXl
  7244. ;K0, .xNo.
  7245. :KO' .lXx.
  7246. cXk. ;xl cXk.
  7247. cXk. ;k:.,xo. cXk.
  7248. .lXx. :x::0MNl,dd. :KO,
  7249. .xNx. cx;:KMMMMMNo'dx. ;KK;
  7250. .dNl. cd,cXMMMMMMMMMWd,ox' 'OK:
  7251. ;WK. 'K,.KMMMMMMMMMMMMMWc.Kx lMO
  7252. 'OK: 'dl'xWMMMMMMMMMM0::x: 'OK:
  7253. .kNo .xo'xWMMMMMM0;:O: ;KK;
  7254. .dXd. .do,oNMMO;ck: ;00,
  7255. oNd. .dx,;'cO; ;K0,
  7256. oNx. okk; ;K0,
  7257. lXx. :KO'
  7258. cKk' cXk.
  7259. ;00:lXx.
  7260. ,kd.
  7261. EOF
  7262. ;;
  7263. "NuTyX"*)
  7264. set_colors 4 1
  7265. read -rd '' ascii_data <<'EOF'
  7266. ${c1} .
  7267. .
  7268. ...
  7269. ...
  7270. .... .........--.
  7271. ..-++-----....--++++++---.
  7272. .-++++++-. .-++++++++++++-----..
  7273. .--... .++..-+++--.....-++++++++++--..
  7274. . .-+-. .**- .... ..-+----..
  7275. .+++. .*+. + -++-----.
  7276. .+++++- ++. .*+. .....-+++-----.
  7277. -+++-++. .+. .-+***++***++--++++. .
  7278. -+-. -- -. -*- ...... ..--.
  7279. .-. .+- . -+.
  7280. . .+- +.
  7281. -- --
  7282. -+----. .-
  7283. -++-.+. .
  7284. .++. --
  7285. +. ----.
  7286. . .+. ..
  7287. - .
  7288. .
  7289. EOF
  7290. ;;
  7291. "OBRevenge"*)
  7292. set_colors 1 7 3
  7293. read -rd '' ascii_data <<'EOF'
  7294. ${c1} __ __
  7295. _@@@@ @@@g_
  7296. _@@@@@@ @@@@@@
  7297. _@@@@@@M W@@@@@@_
  7298. j@@@@P ^W@@@@
  7299. @@@@L____ _____Q@@@@
  7300. Q@@@@@@@@@@j@@@@@@@@@@
  7301. @@@@@ T@j@ T@@@@@
  7302. @@@@@ ___Q@J@ _@@@@@
  7303. @@@@@fMMM@@j@jggg@@@@@@
  7304. @@@@@ j@j@^MW@P @@@@
  7305. Q@@@@@ggg@@f@ @@@@@@L
  7306. ^@@@@WWMMP ^ Q@@@@
  7307. @@@@@_ _@@@@l
  7308. W@@@@@g_____g@@@@@P
  7309. @@@@@@@@@@@@@@@@l
  7310. ^W@@@@@@@@@@@P
  7311. ^TMMMMTll
  7312. EOF
  7313. ;;
  7314. "openbsd_small")
  7315. set_colors 3 7 6 1 8
  7316. read -rd '' ascii_data <<'EOF'
  7317. ${c1} _____
  7318. \\- -/
  7319. \\_/ \\
  7320. | ${c2}O O${c1} |
  7321. |_ < ) 3 )
  7322. / \\ /
  7323. /-_____-\\
  7324. EOF
  7325. ;;
  7326. "OpenBSD"*)
  7327. set_colors 3 7 6 1 8
  7328. read -rd '' ascii_data <<'EOF'
  7329. ${c3} _
  7330. (_)
  7331. ${c1} | .
  7332. ${c1} . |L /| . ${c3} _
  7333. ${c1} _ . |\ _| \--+._/| . ${c3}(_)
  7334. ${c1} / ||\| Y J ) / |/| ./
  7335. J |)'( | ` F`.'/ ${c3} _
  7336. ${c1} -<| F __ .-< ${c3}(_)
  7337. ${c1} | / .-'${c3}. ${c1}`. /${c3}-. ${c1}L___
  7338. J \\ < ${c3}\ ${c1} | | ${c5}O${c3}\\${c1}|.-' ${c3} _
  7339. ${c1} _J \\ .- \\${c3}/ ${c5}O ${c3}| ${c1}| \\ |${c1}F ${c3}(_)
  7340. ${c1} '-F -<_. \\ .-' `-' L__
  7341. __J _ _. >-' ${c1})${c4}._. ${c1}|-'
  7342. ${c1} `-|.' /_. ${c4}\_| ${c1} F
  7343. /.- . _.<
  7344. /' /.' .' `\\
  7345. /L /' |/ _.-'-\\
  7346. /'J ___.---'\|
  7347. |\ .--' V | `. `
  7348. |/`. `-. `._)
  7349. / .-.\\
  7350. \\ ( `\\
  7351. `.\\
  7352. EOF
  7353. ;;
  7354. "openEuler"*)
  7355. set_colors 4 7 1
  7356. read -rd '' ascii_data <<'EOF'
  7357. ${c1}
  7358. (#####
  7359. (((######## #####
  7360. ((( ########## __...__
  7361. (((((((( ####### /((((((###\
  7362. ((((((((((( ....... \(((((####/
  7363. (((((( ((((######### *******
  7364. %((((((# ((########
  7365. /////((((( ###
  7366. /////(((((((# (((&
  7367. (((((((((((((
  7368. ((((((((((((
  7369. ((((((((( ((((((###
  7370. /((((((######
  7371. //((((((######
  7372. /((((((#####
  7373. *********/
  7374. EOF
  7375. ;;
  7376. "OpenIndiana"*)
  7377. set_colors 4 7 1
  7378. read -rd '' ascii_data <<'EOF'
  7379. ${c2} .sy/
  7380. .yh+
  7381. ${c1}-+syyyo+- ${c2} /+.
  7382. ${c1}+ddo/---/sdh/ ${c2} ym-
  7383. ${c1}`hm+ `sms${c2} ym-```````.-.
  7384. ${c1}sm+ sm/ ${c2} ym- +s
  7385. ${c1}hm. /mo ${c2} ym- /h
  7386. ${c1}omo ym: ${c2} ym- `os`
  7387. ${c1}smo` .ym+ ${c2} ym- .os-
  7388. `` ${c1}:ymy+///oyms- ${c2} ym- .+s+.
  7389. ..` ${c1}`:+oo+/-` ${c2} -//oyo-
  7390. -:` .:oys/.
  7391. +- `./oyys/.
  7392. h+` `.-:+oyyyo/-`
  7393. `/ossssysso+/-.`
  7394. EOF
  7395. ;;
  7396. "openmamba"*)
  7397. set_colors 7 2
  7398. read -rd '' ascii_data <<'EOF'
  7399. ${c1} `````
  7400. .-/+ooooooooo+/:-`
  7401. ./ooooooooooooooooooo+:.
  7402. -+oooooooooooooooooooooooo+-
  7403. .+ooooooooo+/:---::/+ooooooooo+.
  7404. :oooooooo/-` `-/oo${c2}s´${c1}oooo.${c2}s´${c1}
  7405. :ooooooo/` `${c2}sNds${c1}ooo${c2}sNds${c1}
  7406. -ooooooo- ${c2}:dmy${c1}ooo${c2}:dmy${c1}
  7407. +oooooo: :oooooo-
  7408. .ooooooo .://:`
  7409. :oooooo+ ./+o+:`
  7410. -ooooooo` `oooooo+
  7411. `ooooooo: /oooooo+
  7412. -ooooooo: :ooooooo.
  7413. :ooooooo+. .+ooooooo:
  7414. :oooooooo+-` `-+oooooooo:
  7415. .+ooooooooo+/::::://oooooooooo+.
  7416. -+oooooooooooooooooooooooo+-
  7417. .:ooooooooooooooooooo+:.
  7418. `-:/ooooooooo+/:.`
  7419. ``````
  7420. EOF
  7421. ;;
  7422. "OpenMandriva"*)
  7423. set_colors 4
  7424. read -rd '' ascii_data <<'EOF'
  7425. ${c1} ``````
  7426. `-:/+++++++//:-.`
  7427. .:+++oooo+/:.`` ``
  7428. `:+ooooooo+:. `-:/++++++/:.`
  7429. -+oooooooo:` `-++o+/::::://+o+/-
  7430. `/ooooooooo- -+oo/.` `-/oo+.
  7431. `+ooooooooo. :os/` .+so:
  7432. +sssssssss/ :ss/ `+ss-
  7433. :ssssssssss` sss` .sso
  7434. ossssssssss `yyo sys
  7435. `sssssssssss` `yys `yys
  7436. `sssssssssss: +yy/ +yy:
  7437. oyyyyyyyyyys. `oyy/` `+yy+
  7438. :yyyyyyyyyyyo. `+yhs:. `./shy/
  7439. oyyyyyyyyyyys:` .oyhys+:----/+syhy+. `
  7440. `syyyyyyyyyyyyo-` .:osyhhhhhyys+:``.:`
  7441. `oyyyyyyyyyyyyys+-`` `.----.```./oo.
  7442. /yhhhhhhhhhhhhhhyso+//://+osyhy/`
  7443. `/yhhhhhhhhhhhhhhhhhhhhhhhhy/`
  7444. `:oyhhhhhhhhhhhhhhhhhhyo:`
  7445. .:+syhhhhhhhhys+:-`
  7446. ``....``
  7447. EOF
  7448. ;;
  7449. "OpenStage"*)
  7450. set_colors 2
  7451. read -rd '' ascii_data <<'EOF'
  7452. ${c1} /(/
  7453. .(((((((,
  7454. /(((((((((/
  7455. .(((((/,/(((((,
  7456. *(((((* ,(((((/
  7457. (((((* .*/((
  7458. *((((/ (//(/*
  7459. /((((* ((((((((((,
  7460. . /((((* (((((((((((((.
  7461. ((. *((((/ ,((((((((
  7462. ,(((/ (((((/ ** ,((((((*
  7463. /(((((. .(((((/ //(((* *(((((/
  7464. .(((((, ((/ .(((((/. .(((((,
  7465. /((((* ,(((((((/ ,(((((
  7466. /(((((((((((((((((((/. /(((((((((/
  7467. /(((((((((((((((((, /(((((((((((/
  7468. */(((((//*. */((/(/(/*
  7469. EOF
  7470. ;;
  7471. "OpenWrt"*)
  7472. set_colors 4 7 1
  7473. read -rd '' ascii_data <<'EOF'
  7474. ${c1} _______
  7475. | |.-----.-----.-----.
  7476. | - || _ | -__| |
  7477. |_______|| __|_____|__|__|
  7478. |__|
  7479. ________ __
  7480. | | | |.----.| |_
  7481. | | | || _|| _|
  7482. |________||__| |____|
  7483. EOF
  7484. ;;
  7485. "Open Source Media Center"* | "osmc")
  7486. set_colors 4 7 1
  7487. read -rd '' ascii_data <<'EOF'
  7488. ${c1} -+shdmNNNNmdhs+-
  7489. .+hMNho/:..``..:/ohNMh+.
  7490. :hMdo. .odMh:
  7491. -dMy- -yMd-
  7492. sMd- -dMs
  7493. hMy +. .+ yMh
  7494. yMy dMs. .sMd yMy
  7495. :Mm dMNMs` `sMNMd `mM:
  7496. yM+ dM//mNs``sNm//Md +My
  7497. mM- dM: +NNNN+ :Md -Mm
  7498. mM- dM: `oNN+ :Md -Mm
  7499. yM+ dM/+NNo` :Md +My
  7500. :Mm` dMMNs` :Md `mM:
  7501. yMy dMs` -ms yMy
  7502. hMy +. yMh
  7503. sMd- -dMs
  7504. -dMy- -yMd-
  7505. :hMdo. .odMh:
  7506. .+hMNho/:..``..:/ohNMh+.
  7507. -+shdmNNNNmdhs+-
  7508. EOF
  7509. ;;
  7510. "Oracle"*)
  7511. set_colors 1 7 3
  7512. read -rd '' ascii_data <<'EOF'
  7513. ${c1}
  7514. `-/+++++++++++++++++/-.`
  7515. `/syyyyyyyyyyyyyyyyyyyyyyys/.
  7516. :yyyyo/-...............-/oyyyy/
  7517. /yyys- .oyyy+
  7518. .yyyy` `syyy-
  7519. :yyyo /yyy/
  7520. .yyyy` `syyy-
  7521. /yyys. .oyyyo
  7522. /yyyyo:-...............-:oyyyy/`
  7523. `/syyyyyyyyyyyyyyyyyyyyyyys+.
  7524. `.:/+ooooooooooooooo+/:.`
  7525. EOF
  7526. ;;
  7527. "OS Elbrus"*)
  7528. set_colors 4 7 3
  7529. read -rd '' ascii_data <<'EOF'
  7530. ${c1} ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  7531. ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
  7532. ██ ██
  7533. ██ ███████ ███████ ██
  7534. ██ ██ ██ ██ ██ ██
  7535. ██ ██ ██ ██ ██ ██
  7536. ██ ██ ██ ██ ██ ██
  7537. ██ ██ ██ ██ ██ ██
  7538. ██ ██ ███████ ███████
  7539. ██ ██ ██
  7540. ██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██
  7541. ██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
  7542. ██ ██
  7543. ███████████████████████████
  7544. EOF
  7545. ;;
  7546. "PacBSD"*)
  7547. set_colors 1 7 3
  7548. read -rd '' ascii_data <<'EOF'
  7549. ${c1} :+sMs.
  7550. `:ddNMd- -o--`
  7551. -sMMMMh: `+N+``
  7552. yMMMMMs` .....-/-... `mNh/
  7553. yMMMMMmh+-`:sdmmmmmmMmmmmddy+-``./ddNMMm
  7554. yNMMNMMMMNdyyNNMMMMMMMMMMMMMMMhyshNmMMMm
  7555. :yMMMMMMMMMNdooNMMMMMMMMMMMMMMMMNmy:mMMd
  7556. +MMMMMMMMMmy:sNMMMMMMMMMMMMMMMMMMMmshs-
  7557. :hNMMMMMMN+-+MMMMMMMMMMMMMMMMMMMMMMMs.
  7558. .omysmNNhy/+yNMMMMMMMMMMNMMMMMMMMMNdNNy-
  7559. /hMM:::::/hNMMMMMMMMMMMm/-yNMMMMMMN.mMNh`
  7560. .hMMMMdhdMMMMMMMMMMMMMMmo `sMMMMMMN mMMm-
  7561. :dMMMMMMMMMMMMMMMMMMMMMdo+ oMMMMMMN`smMNo`
  7562. /dMMMMMMMMMMMMMMMMMMMMMNd/` :yMMMMMN:-hMMM.
  7563. :dMMMMMMMMMMMMMMMMMMMMMNh` oMMMMMMNo/dMNN`
  7564. :hMMMMMMMMMMMMMMMMMMMMMMNs--sMMMMMMMNNmy++`
  7565. sNMMMMMMMMMMMMMMMMMMMMMMMmmNMMMMMMNho::o.
  7566. :yMMMMMMMMMMMMMNho+sydNNNNNNNmysso/` -//
  7567. /dMMMMMMMMMMMMMs- ````````..``
  7568. .oMMMMMMMMMMMMNs` ./y:`
  7569. +dNMMNMMMMMMMmy` ``./ys.
  7570. `/hMMMMMMMMMMMNo-`` `.+yy+-`
  7571. `-/hmNMNMMMMMMmmddddhhy/-`
  7572. `-+oooyMMMdsoo+/:.
  7573. EOF
  7574. ;;
  7575. "parabola_small"*)
  7576. set_colors 5 7
  7577. read -rd '' ascii_data <<'EOF'
  7578. ${c1} __ __ __ _
  7579. .`_//_//_/ / `.
  7580. / .`
  7581. / .`
  7582. /.`
  7583. /`
  7584. EOF
  7585. ;;
  7586. "Parabola"*)
  7587. set_colors 5 7
  7588. read -rd '' ascii_data <<'EOF'
  7589. ${c1} `.-. `.
  7590. `.` `:++. `-+o+.
  7591. `` `:+/. `:+/. `-+oooo+
  7592. ``-::-.:+/. `:+/. `-+oooooo+
  7593. `.-:///- ..` .-. `-+oooooooo-
  7594. `..-..` `+ooooooooo:
  7595. `` :oooooooo/
  7596. `ooooooo:
  7597. `oooooo:
  7598. -oooo+.
  7599. +ooo/`
  7600. -ooo-
  7601. `+o/.
  7602. /+-
  7603. //`
  7604. -.
  7605. EOF
  7606. ;;
  7607. "Pardus"*)
  7608. set_colors 3 7 6 1 8
  7609. read -rd '' ascii_data <<'EOF'
  7610. ${c1} .smNdy+- `.:/osyyso+:.` -+ydmNs.
  7611. /Md- -/ymMdmNNdhso/::/oshdNNmdMmy/. :dM/
  7612. mN. oMdyy- -y `-dMo .Nm
  7613. .mN+` sMy hN+ -: yMs `+Nm.
  7614. `yMMddMs.dy `+` sMddMMy`
  7615. +MMMo .` . oMMM+
  7616. `NM/ `````.` `.````` +MN`
  7617. yM+ `.-:yhomy ymohy:-.` +My
  7618. yM: yo oy :My
  7619. +Ms .N` `N. +h sM+
  7620. `MN - -::::::- : :o:+`NM`
  7621. yM/ sh -dMMMMd- ho +y+My
  7622. .dNhsohMh-//: /mm/ ://-yMyoshNd`
  7623. `-ommNMm+:/. oo ./:+mMNmmo:`
  7624. `/o+.-somNh- :yy: -hNmos-.+o/`
  7625. ./` .s/`s+sMdd+``+ddMs+s`/s. `/.
  7626. : -y. -hNmddmNy. .y- :
  7627. -+ `..` +-
  7628. EOF
  7629. ;;
  7630. "Parrot"*)
  7631. set_colors 6 7
  7632. read -rd '' ascii_data <<'EOF'
  7633. ${c1} `:oho/-`
  7634. `mMMMMMMMMMMMNmmdhy-
  7635. dMMMMMMMMMMMMMMMMMMs`
  7636. +MMsohNMMMMMMMMMMMMMm/
  7637. .My .+dMMMMMMMMMMMMMh.
  7638. + :NMMMMMMMMMMMMNo
  7639. `yMMMMMMMMMMMMMm:
  7640. /NMMMMMMMMMMMMMy`
  7641. .hMMMMMMMMMMMMMN+
  7642. ``-NMMMMMMMMMd-
  7643. /MMMMMMMMMMMs`
  7644. mMMMMMMMsyNMN/
  7645. +MMMMMMMo :sNh.
  7646. `NMMMMMMm -o/
  7647. oMMMMMMM.
  7648. `NMMMMMM+
  7649. +MMd/NMh
  7650. mMm -mN`
  7651. /MM `h:
  7652. dM` .
  7653. :M-
  7654. d:
  7655. -+
  7656. -
  7657. EOF
  7658. ;;
  7659. "Parsix"*)
  7660. set_colors 3 1 7 8
  7661. read -rd '' ascii_data <<'EOF'
  7662. ${c2}-/+/:.
  7663. ${c2}.syssssys.
  7664. ${c1}.--. ${c2}ssssssssso${c1} ..--.
  7665. :++++++: ${c2}+ssssssss+${c1} ./++/+++:
  7666. /+++++++++.${c2}.yssooooy`${c1}-+///////o-
  7667. /++++++++++.${c2}+soooos:${c1}:+////////+-
  7668. :+++++////o-${c2}oooooo-${c1}+/////////-
  7669. `-/++//++-${c4}.-----.-${c1}:+/////:-
  7670. ${c3}-://::--${c1}-:/:${c4}.--.````.--.${c1}:::-${c3}--::::::.
  7671. ${c3}-/:::::::://:${c4}.:-` `-:${c3}`:/:::::::--/-
  7672. ${c3}/::::::::::/-${c4}--. .-.${c3}-/://///::::/
  7673. ${c3}-/:::::::::/:${c4}`:-. .-:${c3}`:///////////-
  7674. `${c3}-::::--${c1}.-://.${c4}---....---${c1}`:+/:-${c3}--::::-`
  7675. ${c1}-/+///+o/-${c4}.----.${c1}.:oo+++o+.
  7676. ${c1}-+/////+++o:${c2}syyyyy.${c1}o+++++++++:
  7677. ${c1}.+////+++++-${c2}+sssssy+${c1}.++++++++++\
  7678. ${c1}.+:/++++++.${c2}.yssssssy-${c1}`+++++++++:
  7679. ${c1}:/+++++- ${c2}+sssssssss ${c1}-++++++-
  7680. ${c1}`--` ${c2}+sssssssso ${c1}`--`
  7681. ${c2}+sssssy+`
  7682. ${c2}`.::-`
  7683. EOF
  7684. ;;
  7685. "PCBSD"* | "TrueOS"*)
  7686. set_colors 1 7 3
  7687. read -rd '' ascii_data <<'EOF'
  7688. ${c1} ..
  7689. s.
  7690. +y
  7691. yN
  7692. -MN `.
  7693. :NMs `m
  7694. .yMMm` `No
  7695. `-/+++sdMMMNs+-`+Ms
  7696. `:oo+-` .yMMMMy` `-+oNMh
  7697. -oo- +NMMMM/ oMMh-
  7698. .s+` ` oMMMMM/ - oMMMhy.
  7699. +s`- :: :MMMMMd -o `mMMMy`s+
  7700. y+ h .Ny+oNMMMMMN/ sh+NMMMMo +y
  7701. s+ .ds -NMMMMMMMMMMNdhdNMMMMMMh` +s
  7702. -h .NM` `hMMMMMMMMMMMMMMNMMNy: h-
  7703. y- hMN` hMMmMMMMMMMMMNsdMNs. -y
  7704. m` mMMy` oMMNoNMMMMMMo` sMMMo `m
  7705. m` :NMMMdyydMMMMo+MdMMMs sMMMd` `m
  7706. h- `+ymMMMMMMMM--M+hMMN/ +MMMMy -h
  7707. :y `.sMMMMM/ oMM+.yMMNddNMMMMMm y:
  7708. y: `s dMMN- .MMMM/ :MMMMMMMMMMh :y
  7709. `h: `mdmMMM/ yMMMMs sMMMMMMMMN- :h`
  7710. so -NMMMN /mmd+ `dMMMMMMMm- os
  7711. :y: `yMMM` `+NMMMMMMNo`:y:
  7712. /s+`.omy /NMMMMMNh/.+s:
  7713. .+oo:-. /mdhs+::oo+.
  7714. -/o+++++++++++/-
  7715. EOF
  7716. ;;
  7717. "PCLinuxOS"*)
  7718. set_colors 4 7 1
  7719. read -rd '' ascii_data <<'EOF'
  7720. ${c1}mhhhyyyyhhhdN
  7721. dyssyhhhhhhhhhhhssyhN
  7722. Nysyhhyo/:-.....-/oyhhhssd
  7723. Nsshhy+. `/shhysm
  7724. dohhy/ -shhsy
  7725. dohhs` /hhys
  7726. N+hho ${c2}+ssssss+- .+syhys+ ${c1}/hhsy
  7727. ohhh` ${c2}ymmo++hmm+`smmy/::+y` ${c1}shh+
  7728. +hho ${c2}ymm- /mmy+mms ${c1}:hhod
  7729. /hh+ ${c2}ymmhhdmmh.smm/ ${c1}.hhsh
  7730. +hhs ${c2}ymm+::-` /mmy` ` ${c1}/hh+m
  7731. yyhh- ${c2}ymm- /dmdyosyd` ${c1}`yhh+
  7732. ohhy` ${c2}://` -/+++/- ${c1}ohhom
  7733. N+hhy- `shhoh
  7734. sshho. `+hhyom
  7735. dsyhhs/. `:ohhhoy
  7736. dysyhhhso///://+syhhhssh
  7737. dhyssyhhhhhhyssyyhN
  7738. mddhdhdmN
  7739. EOF
  7740. ;;
  7741. "Peppermint"*)
  7742. set_colors 1 15 3
  7743. read -rd '' ascii_data <<'EOF'
  7744. ${c1} PPPPPPPPPPPPPP
  7745. ${c1} PPPP${c2}MMMMMMM${c1}PPPPPPPPPPP
  7746. ${c1} PPPP${c2}MMMMMMMMMM${c1}PPPPPPPP${c2}MM${c1}PP
  7747. ${c1} PPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP${c2}MMMMM${c1}PP
  7748. ${c1} PPPPPPPPPPPP${c2}MMMMMM${c1}PPPPPPP${c2}MMMMMMM${c1}PP
  7749. ${c1} PPPPPPPPPPPP${c2}MMMMMMM${c1}PPPP${c2}M${c1}P${c2}MMMMMMMMM${c1}PP
  7750. ${c1} PP${c2}MMMM${c1}PPPPPPPPPP${c2}MMM${c1}PPPPP${c2}MMMMMMM${c1}P${c2}MM${c1}PPPP
  7751. ${c1} P${c2}MMMMMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPP${c2}MMMMMM${c1}PPPPPPPP
  7752. ${c1} P${c2}MMMMMMMMMMMM${c1}PPPPP${c2}MM${c1}PP${c2}M${c1}P${c2}MM${c1}P${c2}MM${c1}PPPPPPPPPPP
  7753. ${c1} P${c2}MMMMMMMMMMMMMMMM${c1}PP${c2}M${c1}P${c2}MMM${c1}PPPPPPPPPPPPPPPP
  7754. ${c1} P${c2}MMM${c1}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP${c2}MMMMM${c1}P
  7755. ${c1} PPPPPPPPPPPPPPPP${c2}MMM${c1}P${c2}M${c1}P${c2}MMMMMMMMMMMMMMMM${c1}PP
  7756. ${c1} PPPPPPPPPPP${c2}MM${c1}P${c2}MM${c1}PPPP${c2}MM${c1}PPPPP${c2}MMMMMMMMMMM${c1}PP
  7757. ${c1} PPPPPPPP${c2}MMMMMM${c1}PPPPP${c2}MM${c1}PPPPPP${c2}MMMMMMMMM${c1}PP
  7758. ${c1} PPPP${c2}MM${c1}P${c2}MMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPPPPPPP${c2}MMMM${c1}PP
  7759. ${c1} PP${c2}MMMMMMMMM${c1}P${c2}M${c1}PPPP${c2}MMMMMM${c1}PPPPPPPPPPPPP
  7760. ${c1} PP${c2}MMMMMMM${c1}PPPPPPP${c2}MMMMMM${c1}PPPPPPPPPPPP
  7761. ${c1} PP${c2}MMMM${c1}PPPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP
  7762. ${c1} PP${c2}MM${c1}PPPPPPPP${c2}MMMMMMMMMM${c1}PPPP
  7763. ${c1} PPPPPPPPPP${c2}MMMMMMMM${c1}PPPP
  7764. ${c1} PPPPPPPPPPPPPP
  7765. EOF
  7766. ;;
  7767. "popos_small"* | "pop_os_small"*)
  7768. set_colors 6 7
  7769. read -rd '' ascii_data <<'EOF'
  7770. ${c1}______
  7771. \\ _ \\ __
  7772. \\ \\ \\ \\ / /
  7773. \\ \\_\\ \\ / /
  7774. \\ ___\\ /_/
  7775. \\ \\ _
  7776. __\\_\\__(_)_
  7777. (___________)`
  7778. EOF
  7779. ;;
  7780. "Pop!_OS"* | "popos"* | "pop_os"*)
  7781. set_colors 6 7
  7782. read -rd '' ascii_data <<'EOF'
  7783. ${c1} /////////////
  7784. /////////////////////
  7785. ///////${c2}*767${c1}////////////////
  7786. //////${c2}7676767676*${c1}//////////////
  7787. /////${c2}76767${c1}//${c2}7676767${c1}//////////////
  7788. /////${c2}767676${c1}///${c2}*76767${c1}///////////////
  7789. ///////${c2}767676${c1}///${c2}76767${c1}.///${c2}7676*${c1}///////
  7790. /////////${c2}767676${c1}//${c2}76767${c1}///${c2}767676${c1}////////
  7791. //////////${c2}76767676767${c1}////${c2}76767${c1}/////////
  7792. ///////////${c2}76767676${c1}//////${c2}7676${c1}//////////
  7793. ////////////,${c2}7676${c1},///////${c2}767${c1}///////////
  7794. /////////////*${c2}7676${c1}///////${c2}76${c1}////////////
  7795. ///////////////${c2}7676${c1}////////////////////
  7796. ///////////////${c2}7676${c1}///${c2}767${c1}////////////
  7797. //////////////////////${c2}'${c1}////////////
  7798. //////${c2}.7676767676767676767,${c1}//////
  7799. /////${c2}767676767676767676767${c1}/////
  7800. ///////////////////////////
  7801. /////////////////////
  7802. /////////////
  7803. EOF
  7804. ;;
  7805. "Porteus"*)
  7806. set_colors 6 7
  7807. read -rd '' ascii_data <<'EOF'
  7808. ${c1} `.-:::-.`
  7809. -+ydmNNNNNNNmdy+-
  7810. .+dNmdhs+//////+shdmdo.
  7811. .smmy+-` ./sdy:
  7812. `omdo. `.-/+osssso+/-` `+dy.
  7813. `yms. `:shmNmdhsoo++osyyo-``oh.
  7814. hm/ .odNmds/.` ``.....:::-+s
  7815. /m: `+dNmy:` `./oyhhhhyyooo++so
  7816. ys `yNmy- .+hmmho:-.` ```
  7817. s: yNm+` .smNd+.
  7818. `` /Nm: +dNd+`
  7819. yN+ `smNy.
  7820. dm oNNy`
  7821. hy -mNm.
  7822. +y oNNo
  7823. `y` sNN:
  7824. `: +NN:
  7825. ` .mNo
  7826. /mm`
  7827. /my`
  7828. .sy`
  7829. .+:
  7830. `
  7831. EOF
  7832. ;;
  7833. "postmarketos_small")
  7834. set_colors 2 7
  7835. read -rd '' ascii_data <<'EOF'
  7836. ${c1} /\\
  7837. / \\
  7838. / \\
  7839. \\__ \\
  7840. /\\__ \\ _\\
  7841. / / \\/ __
  7842. / / ____/ \\
  7843. / \\ \\ \\
  7844. /_____/ /________\\
  7845. EOF
  7846. ;;
  7847. "PostMarketOS"*)
  7848. set_colors 2 7
  7849. read -rd '' ascii_data <<'EOF'
  7850. ${c1} /\\
  7851. / \\
  7852. / \\
  7853. / \\
  7854. / \\
  7855. / \\
  7856. \\ \\
  7857. /\\ \\____ \\
  7858. / \\____ \\ \\
  7859. / / \\ \\
  7860. / / \\ ___\\
  7861. / / \\ / ____
  7862. / / \\/ / \\
  7863. / / __________/ \\
  7864. / \\ \\ \\
  7865. / \\ \\ \\
  7866. / / / \\
  7867. /___________/ /____________________\\
  7868. EOF
  7869. ;;
  7870. "Proxmox"*)
  7871. set_colors 7 202
  7872. read -rd '' ascii_data <<'EOF'
  7873. ${c1} .://:` `://:.
  7874. `hMMMMMMd/ /dMMMMMMh`
  7875. `sMMMMMMMd: :mMMMMMMMs`
  7876. ${c2}`-/+oo+/:${c1}`.yMMMMMMMh- -hMMMMMMMy.`${c2}:/+oo+/-`
  7877. `:oooooooo/${c1}`-hMMMMMMMyyMMMMMMMh-`${c2}/oooooooo:`
  7878. `/oooooooo:${c1}`:mMMMMMMMMMMMMm:`${c2}:oooooooo/`
  7879. ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/.
  7880. .+ooooooo+-${c1}`oNMMMMNo`${c2}-+ooooooo+.
  7881. -+ooooooo/.${c1}`sMMs`${c2}./ooooooo+-
  7882. :oooooooo/${c1}`..`${c2}/oooooooo:
  7883. :oooooooo/`${c1}..${c2}`/oooooooo:
  7884. -+ooooooo/.`${c1}sMMs${c2}`./ooooooo+-
  7885. .+ooooooo+-`${c1}oNMMMMNo${c2}`-+ooooooo+.
  7886. ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/.
  7887. `/oooooooo:`${c1}:mMMMMMMMMMMMMm:${c2}`:oooooooo/`
  7888. `:oooooooo/`${c1}-hMMMMMMMyyMMMMMMMh-${c2}`/oooooooo:`
  7889. `-/+oo+/:`${c1}.yMMMMMMMh- -hMMMMMMMy.${c2}`:/+oo+/-`
  7890. ${c1} `sMMMMMMMm: :dMMMMMMMs`
  7891. `hMMMMMMd/ /dMMMMMMh`
  7892. `://:` `://:`
  7893. EOF
  7894. ;;
  7895. "Puppy"* | "Quirky Werewolf"* | "Precise Puppy"*)
  7896. set_colors 4 7
  7897. read -rd '' ascii_data <<'EOF'
  7898. ${c1} `-/osyyyysosyhhhhhyys+-
  7899. -ohmNNmh+/hMMMMMMMMNNNNd+dMMMMNM+
  7900. yMMMMNNmmddo/NMMMNNNNNNNNNo+NNNNNy
  7901. .NNNNNNmmmddds:MMNNNNNNNNNNNh:mNNN/
  7902. -NNNdyyyhdmmmd`dNNNNNmmmmNNmdd/os/
  7903. .Nm+shddyooo+/smNNNNmmmmNh. :mmd.
  7904. NNNNy:` ./hmmmmmmmNNNN: hNMh
  7905. NMN- -++- +NNNNNNNNNNm+..-sMMMM-
  7906. .MMo oNNNNo hNNNNNNNNmhdNNNMMMMM+
  7907. .MMs /NNNN/ dNmhs+:-` yMMMMMMMM+
  7908. mMM+ .. `sNN+. hMMMMhhMMM-
  7909. +MMMmo:...:sNMMMMMms:` hMMMMm.hMMy
  7910. yMMMMMMMMMMMNdMMMMMM::/+o+//dMMd`
  7911. sMMMMMMMMMMN+:oyyo:sMMMNNMMMNy`
  7912. :mMMMMMMMMMMMmddNMMMMMMMMmh/
  7913. /dMMMMMMMMMMMMMMMMMMNdy/`
  7914. .+hNMMMMMMMMMNmdhs/.
  7915. .:/+ooo+/:-.
  7916. EOF
  7917. ;;
  7918. "pureos_small"*)
  7919. set_colors 2 7 7
  7920. read -rd '' ascii_data <<'EOF'
  7921. ${c1} _____________
  7922. | _________ |
  7923. | | | |
  7924. | | | |
  7925. | |_________| |
  7926. |_____________|
  7927. EOF
  7928. ;;
  7929. "PureOS"*)
  7930. set_colors 2 7 7
  7931. read -rd '' ascii_data <<'EOF'
  7932. ${c1}dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd
  7933. dNm//////////////////////////////////mNd
  7934. dNd dNd
  7935. dNd dNd
  7936. dNd dNd
  7937. dNd dNd
  7938. dNd dNd
  7939. dNd dNd
  7940. dNd dNd
  7941. dNd dNd
  7942. dNm//////////////////////////////////mNd
  7943. dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd
  7944. EOF
  7945. ;;
  7946. "Qubes"*)
  7947. set_colors 4 5 7 6
  7948. read -rd '' ascii_data <<'EOF'
  7949. ${c1} `..--..`
  7950. `.----------.`
  7951. `..----------------..`
  7952. `.------------------------.``
  7953. `..-------------....-------------..`
  7954. .::----------..`` ``..----------:+:
  7955. :////:----..` `..---:/ossso
  7956. :///////:` `/osssssso
  7957. :///////: /ssssssso
  7958. :///////: /ssssssso
  7959. :///////: /ssssssso
  7960. :///////: /ssssssso
  7961. :///////: /ssssssso
  7962. :////////-` .:sssssssso
  7963. :///////////-.` `-/osssssssssso
  7964. `//////////////:-```.:+ssssssssssssso-
  7965. .-://////////////sssssssssssssso/-`
  7966. `.:///////////sssssssssssssso:.
  7967. .-:///////ssssssssssssssssss/`
  7968. `.:////ssss+/+ssssssssssss.
  7969. `--//- `-/osssso/.
  7970. EOF
  7971. ;;
  7972. "Radix"*)
  7973. set_colors 1 2
  7974. read -rd '' ascii_data <<'EOF'
  7975. ${c2} .:oyhdmNo
  7976. `/yhyoosdms`
  7977. -o+/ohmmho-
  7978. ..`.:/:-`
  7979. `.--:::-.``${c1}
  7980. .+ydNMMMMMMNmhs:`
  7981. `omMMMMMMMMMMMMMMNh-
  7982. oNMMMNmddhhyyhhhddmy.
  7983. mMMMMNmmddhhysoo+/:-`
  7984. yMMMMMMMMMMMMMMMMNNh.
  7985. -dmmmmmNNMMMMMMMMMMs`
  7986. -+oossyhmMMMMMMMMd-
  7987. `sNMMMMMMMMMMMMMm:
  7988. `yMMMMMMNmdhhhh:
  7989. `sNMMMMMNmmho.
  7990. `+mMMMMMMMy.
  7991. .yNMMMm+`
  7992. `:yd+.
  7993. EOF
  7994. ;;
  7995. "Raspbian_small"*)
  7996. set_colors 2 1
  7997. read -rd '' ascii_data <<'EOF'
  7998. ${c1} .~~. .~~.
  7999. '. \\ ' ' / .'
  8000. ${c2} .~ .~~~..~.
  8001. : .~.'~'.~. :
  8002. ~ ( ) ( ) ~
  8003. ( : '~'.~.'~' : )
  8004. ~ .~ ( ) ~. ~
  8005. ( : '~' : )
  8006. '~ .~~~. ~'
  8007. '~'
  8008. EOF
  8009. ;;
  8010. "Raspbian"*)
  8011. set_colors 2 1
  8012. read -rd '' ascii_data <<'EOF'
  8013. ${c1} `.::///+:/-. --///+//-:``
  8014. `+oooooooooooo: `+oooooooooooo:
  8015. /oooo++//ooooo: ooooo+//+ooooo.
  8016. `+ooooooo:-:oo- +o+::/ooooooo:
  8017. `:oooooooo+`` `.oooooooo+-
  8018. `:++ooo/. :+ooo+/.`
  8019. ${c2}...` `.----.` ``..
  8020. .::::-``:::::::::.`-:::-`
  8021. -:::-` .:::::::-` `-:::-
  8022. `::. `.--.` `` `.---.``.::`
  8023. .::::::::` -::::::::` `
  8024. .::` .:::::::::- `::::::::::``::.
  8025. -:::` ::::::::::. ::::::::::.`:::-
  8026. :::: -::::::::. `-:::::::: ::::
  8027. -::- .-:::-.``....``.-::-. -::-
  8028. .. `` .::::::::. `..`..
  8029. -:::-` -::::::::::` .:::::`
  8030. :::::::` -::::::::::` :::::::.
  8031. .::::::: -::::::::. ::::::::
  8032. `-:::::` ..--.` ::::::.
  8033. `...` `...--..` `...`
  8034. .::::::::::
  8035. `.-::::-`
  8036. EOF
  8037. ;;
  8038. "Reborn OS"* | "Reborn"*)
  8039. set_colors 2 2 8
  8040. read -rd '' ascii_data <<'EOF'
  8041. ${c3}
  8042. mMMMMMMMMM MMMMMMMMMm
  8043. NM MN
  8044. MM ${c1}dddddddd dddddddd ${c3}MN
  8045. mM ${c1}dd dd ${c3}MM
  8046. ${c1}dd hhhhhh hhhhh dd
  8047. ${c3}mM ${c1}hh hh ${c3}Mm
  8048. NM ${c1}hd ${c3}mMMMMMMd ${c1}dh ${c3}MN
  8049. NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
  8050. NM ${c1}dd hh ${c3}mMMMMMMMMMMm ${c1}hh dd ${c3}MN
  8051. NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
  8052. NM ${c1}hd ${c3}mMMMMMMm ${c1}dh ${c3}MN
  8053. mM ${c1}hh hh ${c3}Mm
  8054. ${c1}dd hhhhhh hhhhhh dd
  8055. ${c3}MM ${c1}dd dd ${c3}MM
  8056. MM ${c1}dddddddd dddddddd ${c3}MN
  8057. NM MN
  8058. mMMMMMMMMM MMMMMMMMMm
  8059. EOF
  8060. ;;
  8061. "Red Star"* | "Redstar"*)
  8062. set_colors 1 7 3
  8063. read -rd '' ascii_data <<'EOF'
  8064. ${c1} ..
  8065. .oK0l
  8066. :0KKKKd.
  8067. .xKO0KKKKd
  8068. ,Od' .d0000l
  8069. .c;. .'''... ..'.
  8070. .,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx:
  8071. ;kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,.
  8072. .okkkkd,.lko .......',;:cllc:;,,'''''.
  8073. .cdo. :xd' cd:. ..';'',,,'',,;;;,'.
  8074. . .ddl.;doooc'..;oc;'..';::;,'.
  8075. coo;.oooolllllllcccc:'. .
  8076. .ool''lllllccccccc:::::;.
  8077. ;lll. .':cccc:::::::;;;;'
  8078. :lcc:'',..';::::;;;;;;;,,.
  8079. :cccc::::;...';;;;;,,,,,,.
  8080. ,::::::;;;,'. ..',,,,'''.
  8081. ........ ......
  8082. EOF
  8083. ;;
  8084. "Redcore"*)
  8085. set_colors 1
  8086. read -rd '' ascii_data <<'EOF'
  8087. ${c1} RRRRRRRRR
  8088. RRRRRRRRRRRRR
  8089. RRRRRRRRRR RRRRR
  8090. RRRRRRRRRRRRRRRRRRRRRRRRRRR
  8091. RRRRRRR RRR RRR RRRRRRRR
  8092. RRRRR RR RRRRRRRRR
  8093. RRRR RR RRRRRRRR RR RRRRRR
  8094. RRRR R RRRRRRRRRRRRRR RR RRRRR
  8095. RRRR R RRRRRRRRRRRRRRRRRR R RRRRR
  8096. RRRR RRRRRRRRRRRRRRRRRRR R RRRR
  8097. RRR RRRRRRRRRRRRRRRRRRRR R RRRR
  8098. RRR RRRRRRRRRRRRRRRRRRRR RRRR
  8099. RR RRRRRRRRRRRRRRRRRRR RRR
  8100. RR RRRRRRRRRRRRRRRRR RRR
  8101. RR RRRRRRRRRRRRRR RR
  8102. R RRRR RR
  8103. EOF
  8104. ;;
  8105. "redhat_old" | "rhel_old"*)
  8106. set_colors 1 7 3
  8107. read -rd '' ascii_data <<'EOF'
  8108. ${c1} `.-..........`
  8109. `////////::.`-/.
  8110. -: ....-////////.
  8111. //:-::///////////`
  8112. `--::: `-://////////////:
  8113. //////- ``.-:///////// .`
  8114. `://////:-.` :///////::///:`
  8115. .-/////////:---/////////////:
  8116. .-://////////////////////.
  8117. ${c2} yMN+`.-${c1}::///////////////-`
  8118. ${c2} .-`:NMMNMs` `..-------..`
  8119. MN+/mMMMMMhoooyysshsss
  8120. MMM MMMMMMMMMMMMMMyyddMMM+
  8121. MMMM MMMMMMMMMMMMMNdyNMMh` hyhMMM
  8122. MMMMMMMMMMMMMMMMyoNNNMMM+. MMMMMMMM
  8123. MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM
  8124. EOF
  8125. ;;
  8126. "Redhat"* | "Red Hat"* | "rhel"*)
  8127. set_colors 1
  8128. read -rd '' ascii_data <<'EOF'
  8129. ${c1} .MMM..:MMMMMMM
  8130. MMMMMMMMMMMMMMMMMM
  8131. MMMMMMMMMMMMMMMMMMMM.
  8132. MMMMMMMMMMMMMMMMMMMMMM
  8133. ,MMMMMMMMMMMMMMMMMMMMMM:
  8134. MMMMMMMMMMMMMMMMMMMMMMMM
  8135. .MMMM' MMMMMMMMMMMMMMMMMMMMMM
  8136. MMMMMM `MMMMMMMMMMMMMMMMMMMM.
  8137. MMMMMMMM MMMMMMMMMMMMMMMMMM .
  8138. MMMMMMMMM. `MMMMMMMMMMMMM' MM.
  8139. MMMMMMMMMMM. MMMM
  8140. `MMMMMMMMMMMMM. ,MMMMM.
  8141. `MMMMMMMMMMMMMMMMM. ,MMMMMMMM.
  8142. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  8143. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:
  8144. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  8145. `MMMMMMMMMMMMMMMMMMMMMMMM:
  8146. ``MMMMMMMMMMMMMMMMM'
  8147. EOF
  8148. ;;
  8149. "Refracted Devuan"* | "Refracted_Devuan"*)
  8150. set_colors 8 7
  8151. read -rd '' ascii_data <<'EOF'
  8152. ${c2} A
  8153. VW
  8154. VVW\\
  8155. .yWWW\\
  8156. ,;,,u,;yy;;v;uyyyyyyy ,WWWWW^
  8157. *WWWWWWWWWWWWWWWW/ $VWWWWw ,
  8158. ^*%WWWWWWVWWX $WWWW** ,yy
  8159. , "**WWW/' **' ,yy/WWW*`
  8160. &WWWWwy `*` <,ywWW%VWWW*
  8161. yWWWWWWWWWW* ., "**WW%W
  8162. ,&WWWWWM*"` ,y/ &WWWww ^*
  8163. XWWX*^ ,yWWWW09 .WWWWWWWWwy,
  8164. *` &WWWWWM WWWWWWWWWWWWWww,
  8165. (WWWWW` /#####WWW***********
  8166. ^WWWW
  8167. VWW
  8168. Wh.
  8169. V/
  8170. EOF
  8171. ;;
  8172. "Regata"*)
  8173. set_colors 7 1 4 5 3 2
  8174. read -rd '' ascii_data <<'EOF'
  8175. ${c1} ddhso+++++osydd
  8176. dho/.`hh${c2}.:/+/:.${c1}hhh`:+yd
  8177. do-hhhhhh${c2}/sssssss+`${c1}hhhhh./yd
  8178. h/`hhhhhhh${c2}-sssssssss:${c1}hhhhhhhh-yd
  8179. do`hhhhhhhhh${c2}`ossssssso.${c1}hhhhhhhhhh/d
  8180. d/hhhhhhhhhhhh${c2}`/ossso/.${c1}hhhhhhhhhhhh.h
  8181. /hhhhhhhhhhhh${c3}`-/osyso/-`${c1}hhhhhhhhhhhh.h
  8182. shh${c4}-/ooo+-${c1}hhh${c3}:syyso+osyys/`${c1}hhh${c5}`+oo`${c1}hhh/
  8183. h${c4}`ohhhhhhho`${c3}+yyo.${c1}hhhhh${c3}.+yyo`${c5}.sssssss.${c1}h`h
  8184. s${c4}:hhhhhhhhho${c3}yys`${c1}hhhhhhh${c3}.oyy/${c5}ossssssso-${c1}hs
  8185. s${c4}.yhhhhhhhy/${c3}yys`${c1}hhhhhhh${c3}.oyy/${c5}ossssssso-${c1}hs
  8186. hh${c4}./syyys+.${c1} ${c3}+yy+.${c1}hhhhh${c3}.+yyo`${c5}.ossssso/${c1}h`h
  8187. shhh${c4}``.`${c1}hhh${c3}`/syyso++oyys/`${c1}hhh${c5}`+++-`${c1}hh:h
  8188. d/hhhhhhhhhhhh${c3}`-/osyso+-`${c1}hhhhhhhhhhhh.h
  8189. d/hhhhhhhhhhhh${c6}`/ossso/.${c1}hhhhhhhhhhhh.h
  8190. do`hhhhhhhhh${c6}`ossssssso.${c1}hhhhhhhhhh:h
  8191. h/`hhhhhhh${c6}-sssssssss:${c1}hhhhhhhh-yd
  8192. h+.hhhhhh${c6}+sssssss+${c1}hhhhhh`/yd
  8193. dho:.hhh${c6}.:+++/.${c1}hhh`-+yd
  8194. ddhso+++++osyhd
  8195. EOF
  8196. ;;
  8197. "Regolith"*)
  8198. set_colors 1
  8199. read -rd '' ascii_data <<'EOF'
  8200. ${c1}
  8201. ``....```
  8202. `.:/++++++/::-.`
  8203. -/+++++++:.`
  8204. -++++++++:`
  8205. `/++++++++-
  8206. `/++++++++. -/+/
  8207. /++++++++/ `` .:+++:.
  8208. -+++++++++/ ./++++:+++/-`
  8209. :+++++++++/ `+++++++/-`
  8210. :++++++++++` .-/+++++++`
  8211. `:++++++++++/``.-/++++:-:::-` `
  8212. `:+++++++++++++++++/:.` ./`
  8213. :++/-:+++++++++/:-.. -/+.
  8214. +++++++++/::-...:/+++/-..````..-/+++.
  8215. `......``.::/+++++++++++++++++++++/.
  8216. -/+++++++++++++++++++++/.
  8217. .:/+++++++++++++++/-`
  8218. `.-:://////:-.
  8219. EOF
  8220. ;;
  8221. "Rosa"*)
  8222. set_colors 4 7 1
  8223. read -rd '' ascii_data <<'EOF'
  8224. ${c1} ROSAROSAROSAROSAR
  8225. ROSA AROS
  8226. ROS SAROSAROSAROSAR AROS
  8227. RO ROSAROSAROSAROSAROSAR RO
  8228. ARO AROSAROSAROSARO AROS ROS
  8229. ARO ROSAROS OSAR ROSA ROS
  8230. RO AROSA ROSAROSAROSA ROSAR RO
  8231. RO ROSAR ROSAROSAROSAR R ROSARO RO
  8232. RO ROSA AROSAROSAROSA AR ROSARO AR
  8233. RO AROS ROSAROSAROSA ROS AROSARO AR
  8234. RO AROS ROSAROSARO ROSARO ROSARO AR
  8235. RO ROS AROSAROS ROSAROSA AROSAR AR
  8236. RO ROSA ROS ROSAROSAR ROSARO RO
  8237. RO ROS AROSAROSAROSA ROSARO AR
  8238. ARO ROSA ROSAROSAROS AROSAR ARO
  8239. ARO OROSA R ROSAROS ROS
  8240. RO AROSAROS AROSAROSAR RO
  8241. AROS AROSAROSAROSARO AROS
  8242. ROSA SARO
  8243. ROSAROSAROSAROSAR
  8244. EOF
  8245. ;;
  8246. "sabotage"*)
  8247. set_colors 4 7 1
  8248. read -rd '' ascii_data <<'EOF'
  8249. ${c2} .|'''.| | '||''|. ..|''||
  8250. ||.. ' ||| || || .|' ||
  8251. ''|||. | || ||'''|. || ||
  8252. . '|| .''''|. || || '|. ||
  8253. |'....|' .|. .||. .||...|' ''|...|'
  8254. |''||''| | ..|'''.| '||''''|
  8255. || ||| .|' ' || .
  8256. || | || || .... ||''|
  8257. || .''''|. '|. || ||
  8258. .||. .|. .||. ''|...'| .||.....|
  8259. EOF
  8260. ;;
  8261. "Sabayon"*)
  8262. set_colors 4 7 1
  8263. read -rd '' ascii_data <<'EOF'
  8264. ${c1} ...........
  8265. .. ..
  8266. .. ..
  8267. .. ${c2}o ${c1}..
  8268. .. ${c2}:W' ${c1}..
  8269. .. ${c2}.d. ${c1}..
  8270. :. ${c2}.KNO ${c1}.:
  8271. :. ${c2}cNNN. ${c1}.:
  8272. : ${c2}dXXX, ${c1}:
  8273. : ${c2}. dXXX, .cd, ${c1}:
  8274. : ${c2}'kc .. dKKK. ,ll;:' ${c1}:
  8275. : ${c2}.xkkxc;..dkkkc',cxkkl ${c1}:
  8276. :. ${c2}.,cdddddddddddddo:. ${c1}.:
  8277. .. ${c2}:lllllll: ${c1}..
  8278. .. ${c2}',,,,, ${c1}..
  8279. .. ..
  8280. .. ..
  8281. ...............
  8282. EOF
  8283. ;;
  8284. "Sailfish"*)
  8285. set_colors 4 5 7 6
  8286. read -rd '' ascii_data <<'EOF'
  8287. ${c1} _a@b
  8288. _#b (b
  8289. _@@ @_ _,
  8290. _#^@ _#*^^*gg,aa@^^
  8291. #- @@^ _a@^^
  8292. @_ *g#b
  8293. ^@_ ^@_
  8294. ^@_ @
  8295. @(b (b
  8296. #b(b#^
  8297. _@_#@^
  8298. _a@a*^
  8299. ,a@*^
  8300. EOF
  8301. ;;
  8302. "SalentOS"*)
  8303. set_colors 2 1 3 7
  8304. read -rd '' ascii_data <<'EOF'
  8305. ${c1} ``..``
  8306. .-:+oshdNMMMMMMNdhyo+:-.`
  8307. -oydmMMMMMMMMMMMMMMMMMMMMMMMMMMNdhs/
  8308. ${c4} +hdddm${c1}NMMMMMMMMMMMMMMMMMMMMMMMMN${c4}mdddh+`
  8309. ${c2}`MMMMMN${c4}mdddddm${c1}MMMMMMMMMMMM${c4}mdddddm${c3}NMMMMM-
  8310. ${c2} mMMMMMMMMMMMN${c4}ddddhyyhhddd${c3}NMMMMMMMMMMMM`
  8311. ${c2} dMMMMMMMMMMMMMMMMM${c4}oo${c3}MMMMMMMMMMMMMMMMMN`
  8312. ${c2} yMMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMd
  8313. ${c2} +MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMy
  8314. ${c2} :MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMo
  8315. ${c2} .MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM/
  8316. ${c2} `NMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM-
  8317. ${c2} mMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMN`
  8318. ${c2} hMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMm
  8319. ${c2} /MMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMy
  8320. ${c2} .+hMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMms:
  8321. ${c2} `:smMMMMMMMMM${c4}hh${c3}MMMMMMMMMNh+.
  8322. ${c2} .+hMMMMMM${c4}hh${c3}MMMMMMdo:
  8323. ${c2} `:smMM${c4}yy${c3}MMNy/`
  8324. ${c2}.- ${c4}`${c3}:.
  8325. EOF
  8326. ;;
  8327. "Scientific"*)
  8328. set_colors 4 7 1
  8329. read -rd '' ascii_data <<'EOF'
  8330. ${c1} =/;;/-
  8331. +: //
  8332. /; /;
  8333. -X H.
  8334. .//;;;:;;-, X= :+ .-;:=;:;#;.
  8335. M- ,=;;;#:, ,:#;;:=, ,@
  8336. :# :#.=/++++/=.$= #=
  8337. ,#; #/:+/;,,/++:+/ ;+.
  8338. ,+/. ,;@+, ,#H;, ,/+,
  8339. ;+;;/= @. ${c3}.H${c2}#${c3}#X ${c1}-X :///+;
  8340. ;+=;;;.@, ${c2}.X${c3}M${c2}@$. ${c1}=X.//;=#/.
  8341. ,;: :@#= =$H: .+#-
  8342. ,#= #;-///==///-// =#,
  8343. ;+ :#-;;;:;;;;-X- +:
  8344. @- .-;;;;M- =M/;;;-. -X
  8345. :;;::;;-. #- :+ ,-;;-;:==
  8346. ,X H.
  8347. ;/ #=
  8348. // +;
  8349. '////'
  8350. EOF
  8351. ;;
  8352. "Septor"*)
  8353. set_colors 4 7 4
  8354. read -rd '' ascii_data <<'EOF'
  8355. ${c1}ssssssssssssssssssssssssssssssssssssssss
  8356. ssssssssssssssssssssssssssssssssssssssss
  8357. ssssssssssssssssssssssssssssssssssssssss
  8358. ssssssssssssssssssssssssssssssssssssssss
  8359. ssssssssss${c2};okOOOOOOOOOOOOOOko;${c1}ssssssssss
  8360. sssssssss${c2}oNWWWWWWWWWWWWWWWWWWNo${c1}sssssssss
  8361. ssssssss${c2}:WWWWWWWWWWWWWWWWWWWWWW:${c1}ssssssss
  8362. ssssssss${c2}lWWWWWk${c1}ssssssssss${c2}lddddd:${c1}ssssssss
  8363. ssssssss${c2}cWWWWWNKKKKKKKKKKKKOx:${c1}ssssssssss
  8364. ${c3}yy${c1}sssssss${c2}OWWWWWWWWWWWWWWWWWWWWx${c1}sssssss${c3}yy
  8365. yyyyyyyyyy${c2}:kKNNNNNNNNNNNNWWWWWW:${c3}yyyyyyyy
  8366. yyyyyyyy${c2}sccccc;${c3}yyyyyyyyyy${c2}kWWWWW:${c3}yyyyyyyy
  8367. yyyyyyyy${c2}:WWWWWWNNNNNNNNNNWWWWWW;${c3}yyyyyyyy
  8368. yyyyyyyy${c2}.dWWWWWWWWWWWWWWWWWWWNd${c3}yyyyyyyyy
  8369. yyyyyyyyyy${c2}sdO0KKKKKKKKKKKK0Od;${c3}yyyyyyyyyy
  8370. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8371. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8372. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8373. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8374. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8375. EOF
  8376. ;;
  8377. "Serene"*)
  8378. set_colors 6 6
  8379. read -rd '' ascii_data <<'EOF'
  8380. ${c1} __---''''''---__
  8381. . .
  8382. : :
  8383. - _______----_-
  8384. s __----''' __----
  8385. __h_ _-' _-' h
  8386. '-._''--.._ ; _-' y
  8387. : ''-._ '-._/ _-' :
  8388. y ':_ _--'' y
  8389. m .--'' '-._.;' m
  8390. m : : m
  8391. y '.._ '-__ y
  8392. : '--._ '''----___ :
  8393. y '--._ ''-- _ y
  8394. h '--._ : h
  8395. s __'; vs
  8396. - __..--'' -
  8397. :_..--'' :
  8398. . _ .
  8399. `''---______---''-``
  8400. EOF
  8401. ;;
  8402. "SharkLinux"*)
  8403. set_colors 4 7
  8404. read -rd '' ascii_data <<'EOF'
  8405. ${c1} `:shd/
  8406. `:yNMMMMs
  8407. `-smMMMMMMN.
  8408. .+dNMMMMMMMMs
  8409. .smNNMMMMMMMMm`
  8410. .sNNNNNNNMMMMMM/
  8411. `omNNNNNNNMMMMMMm
  8412. /dNNNNNNNNMMMMMMM+
  8413. .yNNNNNNNNNMMMMMMMN`
  8414. +mNNNNNNNNNMMMMMMMMh
  8415. .hNNNNNNNNNNMMMMMMMMMs
  8416. +mMNNNNNNNNMMMMMMMMMMMs
  8417. .hNMMNNNNMMMMMMMMMMMMMMMd
  8418. .oNNNNNNNNNNMMMMMMMMMMMMMMMo
  8419. `:+syyssoo++++ooooossssssssssso:
  8420. EOF
  8421. ;;
  8422. "Siduction"*)
  8423. set_colors 4 4
  8424. read -rd '' ascii_data <<'EOF'
  8425. ${c1} _aass,
  8426. jQh: =$w
  8427. QWmwawQW
  8428. )$QQQQ@( ..
  8429. _a_a. ~??^ syDY?Sa,
  8430. _mW>-<$c jWmi imm.
  8431. ]QQwayQE 4QQmgwmQQ`
  8432. ?WWQWP' -9QQQQQ@'._aas,
  8433. _a%is. .adYYs,. -"?!` aQB*~^3$c
  8434. _Qh;.nm .QWc. {QL ]QQp;..vmQ/
  8435. "QQmmQ@ -QQQggmQP ]QQWmggmQQ(
  8436. -???" "$WQQQY` __, ?QQQQQQW!
  8437. _yZ!?q, - .yWY!!Sw, "???^
  8438. .QQa_=qQ mQm>..vmm
  8439. $QQWQQP $QQQgmQQ@
  8440. "???" _aa, -9WWQQWY`
  8441. _mB>~)$a -~~
  8442. mQms_vmQ.
  8443. ]WQQQQQP
  8444. -?T??"
  8445. EOF
  8446. ;;
  8447. "slackware_small"*)
  8448. set_colors 4 7 1
  8449. read -rd '' ascii_data <<'EOF'
  8450. ${c1} ________
  8451. / ______|
  8452. | |______
  8453. \\______ \\
  8454. ______| |
  8455. | |________/
  8456. |____________
  8457. EOF
  8458. ;;
  8459. "Slackware"*)
  8460. set_colors 4 7 1
  8461. read -rd '' ascii_data <<'EOF'
  8462. ${c1} :::::::
  8463. :::::::::::::::::::
  8464. :::::::::::::::::::::::::
  8465. ::::::::${c2}cllcccccllllllll${c1}::::::
  8466. :::::::::${c2}lc dc${c1}:::::::
  8467. ::::::::${c2}cl clllccllll oc${c1}:::::::::
  8468. :::::::::${c2}o lc${c1}::::::::${c2}co oc${c1}::::::::::
  8469. ::::::::::${c2}o cccclc${c1}:::::${c2}clcc${c1}::::::::::::
  8470. :::::::::::${c2}lc cclccclc${c1}:::::::::::::
  8471. ::::::::::::::${c2}lcclcc lc${c1}::::::::::::
  8472. ::::::::::${c2}cclcc${c1}:::::${c2}lccclc oc${c1}:::::::::::
  8473. ::::::::::${c2}o l${c1}::::::::::${c2}l lc${c1}:::::::::::
  8474. :::::${c2}cll${c1}:${c2}o clcllcccll o${c1}:::::::::::
  8475. :::::${c2}occ${c1}:${c2}o clc${c1}:::::::::::
  8476. ::::${c2}ocl${c1}:${c2}ccslclccclclccclclc${c1}:::::::::::::
  8477. :::${c2}oclcccccccccccccllllllllllllll${c1}:::::
  8478. ::${c2}lcc1lcccccccccccccccccccccccco${c1}::::
  8479. ::::::::::::::::::::::::::::::::
  8480. ::::::::::::::::::::::::::::
  8481. ::::::::::::::::::::::
  8482. ::::::::::::
  8483. EOF
  8484. ;;
  8485. "SliTaz"*)
  8486. set_colors 3 3
  8487. read -rd '' ascii_data <<'EOF'
  8488. ${c1} @ @( @
  8489. @@ @@ @ @/
  8490. @@ @@ @@ @@
  8491. @@ %@@ @@ @@
  8492. @@ %@@@ @@@@@. @@@@ @@
  8493. @@@ @@@@ @@@@@@@ &@@@ @@@
  8494. @@@@@@@ %@@@@@@@@@@@@ &@@@% @@@@@@@/
  8495. ,@@@@@@@@@@@@@@@@@@@@@@@@@
  8496. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/
  8497. @@@@@@. @@@@@@@@@@@@@@@@@@@@@ /@@@@@@
  8498. @@ @@@@@ @@@@@@@@@@@@, @@@@@ @@@
  8499. @@ @@@@. @@@@@@@@@@@@@% #@@@@ @@.
  8500. @@ ,@@ @@@@@@@@@@@@@ @@@ @@
  8501. @ @@. @@@@@@@@@@@@@ @@@ *@
  8502. @ @@ @@@@@@@@@@@@ @@ @
  8503. @ @@@@@@@@@. #@
  8504. @ ,@@@@@ @
  8505. EOF
  8506. ;;
  8507. "SmartOS"*)
  8508. set_colors 6 7
  8509. read -rd '' ascii_data <<'EOF'
  8510. ${c1}yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8511. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8512. yyyys oyyyyyyyyyyyyyyyy
  8513. yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
  8514. yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
  8515. yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
  8516. yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
  8517. yyyys yyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8518. yyyyy syyyy
  8519. yyyyyyyyyyyyyyyyyyyyyyyyyyyy syyyy
  8520. yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
  8521. yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
  8522. yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
  8523. yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
  8524. yyyyyyyyyyyyyyyy yyyyy
  8525. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8526. yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
  8527. EOF
  8528. ;;
  8529. "Solus"*)
  8530. set_colors 4 7 1
  8531. read -rd '' ascii_data <<'EOF'
  8532. ${c2} -```````````
  8533. `-+/------------.`
  8534. .---:mNo---------------.
  8535. .-----yMMMy:---------------.
  8536. `------oMMMMMm/----------------`
  8537. .------/MMMMMMMN+----------------.
  8538. .------/NMMMMMMMMm-+/--------------.
  8539. `------/NMMMMMMMMMN-:mh/-------------`
  8540. .-----/NMMMMMMMMMMM:-+MMd//oso/:-----.
  8541. -----/NMMMMMMMMMMMM+--mMMMh::smMmyo:--
  8542. ----+NMMMMMMMMMMMMMo--yMMMMNo-:yMMMMd/.
  8543. .--oMMMMMMMMMMMMMMMy--yMMMMMMh:-yMMMy-`
  8544. `-sMMMMMMMMMMMMMMMMh--dMMMMMMMd:/Ny+y.
  8545. `-/+osyhhdmmNNMMMMMm-/MMMMMMMmh+/ohm+
  8546. .------------:://+-/++++++${c1}oshddys:
  8547. -hhhhyyyyyyyyyyyhhhhddddhysssso-
  8548. `:ossssssyysssssssssssssssso:`
  8549. `:+ssssssssssssssssssss+-
  8550. `-/+ssssssssssso+/-`
  8551. `.-----..`
  8552. EOF
  8553. ;;
  8554. "Source Mage"* | "Source_Mage"*)
  8555. set_colors 4 7 1
  8556. read -rd '' ascii_data <<'EOF'
  8557. ${c2} :ymNMNho.
  8558. .+sdmNMMMMMMMMMMy`
  8559. .-::/yMMMMMMMMMMMm-
  8560. sMMMMMMMMMMMm/
  8561. /NMMMMMMMMMMMMMm:
  8562. .MMMMMMMMMMMMMMMMM:
  8563. `MMMMMMMMMMMMMMMMMN.
  8564. NMMMMMMMMMMMMMMMMMd
  8565. mMMMMMMMMMMMMMMMMMMo
  8566. hhMMMMMMMMMMMMMMMMMM.
  8567. .`/MMMMMMMMMMMMMMMMMs
  8568. :mMMMMMMMMMMMMMMMN`
  8569. `sMMMMMMMMMMMMMMM+
  8570. /NMMMMMMMMMMMMMN`
  8571. oMMMMMMMMMMMMM+
  8572. ./sd.-hMMMMMMMMmmN`
  8573. ./+oyyyh- `MMMMMMMMMmNh
  8574. sMMMMMMMMMmmo
  8575. `NMMMMMMMMMd:
  8576. -dMMMMMMMMMo
  8577. -shmNMMms.
  8578. EOF
  8579. ;;
  8580. "Sparky"*)
  8581. set_colors 1 7
  8582. read -rd '' ascii_data <<'EOF'
  8583. ${c1}
  8584. . `-:-`
  8585. .o` .-///-`
  8586. `oo` .:/++:.
  8587. os+` -/+++:` ``.........```
  8588. /ys+`./+++/-.-::::::----......``
  8589. `syyo`++o+--::::-::/+++/-``
  8590. -yyy+.+o+`:/:-:sdmmmmmmmmdy+-`
  8591. ::-` :yyy/-oo.-+/`ymho++++++oyhdmdy/`
  8592. `/yy+-`.syyo`+o..o--h..osyhhddhs+//osyy/`
  8593. -ydhs+-oyy/.+o.-: ` ` :/::+ydhy+```-os-
  8594. .sdddy::syo--/:. `.:dy+-ohhho ./:
  8595. :yddds/:+oo+//:-`- /+ +hy+.shhy: ``
  8596. `:ydmmdysooooooo-.ss`/yss--oyyo
  8597. `./ossyyyyo+:-/oo:.osso- .oys
  8598. ``..-------::////.-oooo/ :so
  8599. `...----::::::::--.`/oooo: .o:
  8600. ``````` ++o+:` `:`
  8601. ./+/-` `
  8602. `-:-.
  8603. ``
  8604. EOF
  8605. ;;
  8606. "Star"*)
  8607. set_colors 7
  8608. read -rd '' ascii_data <<'EOF'
  8609. ${c1} ./
  8610. `yy-
  8611. `y.`y`
  8612. `` s- .y `
  8613. +h//:..` +/ /o ``..:/so
  8614. /o``.-::/:/+ o/://::-.`+o`
  8615. :s` `. .` `s/
  8616. .y. .s-
  8617. `y- :s`
  8618. .-//. /+:.
  8619. .:/:. .:/:.
  8620. -+o:. .:+:.
  8621. -///++///:::` .-::::///+so-
  8622. ``..o/ d-....```
  8623. s. `/. d
  8624. h .+o-+o- h.
  8625. h -o/` `/o: s:
  8626. -s/o:` `:o/+/
  8627. /s- -yo
  8628. EOF
  8629. ;;
  8630. "SteamOS"*)
  8631. set_colors 5 7
  8632. read -rd '' ascii_data <<'EOF'
  8633. ${c1} .,,,,.
  8634. .,'onNMMMMMNNnn',.
  8635. .'oNMANKMMMMMMMMMMMNNn'.
  8636. .'ANMMMMMMMXKNNWWWPFFWNNMNn.
  8637. ;NNMMMMMMMMMMNWW'' ,.., 'WMMM,
  8638. ;NMMMMV+##+VNWWW' .+;'':+, 'WMW,
  8639. ,VNNWP+${c2}######${c1}+WW, ${c2}+: ${c1}:+, +MMM,
  8640. '${c2}+#############, +. ,+' ${c1}+NMMM
  8641. ${c2} '*#########*' '*,,*' ${c1}.+NMMMM.
  8642. ${c2} `'*###*' ,.,;###${c1}+WNM,
  8643. ${c2} .,;;, .;##########${c1}+W
  8644. ${c2},',. '; ,+##############'
  8645. '###+. :,. .,; ,###############'
  8646. '####.. `'' .,###############'
  8647. '#####+++################'
  8648. '*##################*'
  8649. ''*##########*''
  8650. ''''''
  8651. EOF
  8652. ;;
  8653. "sunos_small" | "solaris_small")
  8654. set_colors 3 7
  8655. read -rd '' ascii_data <<'EOF'
  8656. ${c1} . .; .
  8657. . :; :: ;: .
  8658. .;. .. .. .;.
  8659. .. .. .. ..
  8660. .;, ,;.
  8661. EOF
  8662. ;;
  8663. "SunOS" | "Solaris")
  8664. set_colors 3 7
  8665. read -rd '' ascii_data <<'EOF'
  8666. ${c1} `- `
  8667. `-- `+- .:
  8668. .+: `++: -/+- .
  8669. `.::` -++/``:::`./+/ `.-/.
  8670. `++/-`.` ` /++:`
  8671. `` ./:` .: `..`.-
  8672. ``./+/:- -+++:-
  8673. -/+` :.
  8674. EOF
  8675. ;;
  8676. "openSUSE Leap"* | "openSUSE_Leap"*)
  8677. set_colors 2 7
  8678. read -rd '' ascii_data <<'EOF'
  8679. ${c2} `-++:`
  8680. ./oooooo/-
  8681. `:oooooooooooo:.
  8682. -+oooooooooooooooo+-`
  8683. ./oooooooooooooooooooooo/-
  8684. :oooooooooooooooooooooooooo:
  8685. ` `-+oooooooooooooooooooo/- `
  8686. `:oo/- .:ooooooooooooooo+:` `-+oo/.
  8687. `/oooooo:. -/oooooooooo/. ./oooooo/.
  8688. `:+ooooo+-` `:+oooo+- `:oooooo+:`
  8689. .:oooooo/. .::` -+oooooo/.
  8690. -/oooooo:. ./oooooo+-
  8691. `:+ooooo+-:+oooooo:`
  8692. ./oooooooooo/.
  8693. -/oooo+:`
  8694. `:/.
  8695. EOF
  8696. ;;
  8697. "t2"*)
  8698. set_colors 7 4
  8699. read -rd '' ascii_data <<'EOF'
  8700. ${c2}
  8701. TTTTTTTTTT
  8702. tt ${c1}222${c2}
  8703. tt ${c1}2 2${c2}
  8704. tt ${c1}2${c2}
  8705. tt ${c1}2${c2}
  8706. tt ${c1}22222${c2}
  8707. EOF
  8708. ;;
  8709. "openSUSE Tumbleweed"* | "openSUSE_Tumbleweed"*)
  8710. set_colors 2 7
  8711. read -rd '' ascii_data <<'EOF'
  8712. ${c2} ......
  8713. .,cdxxxoc,. .:kKMMMNWMMMNk:.
  8714. cKMMN0OOOKWMMXo. ; ;0MWk:. .:OMMk.
  8715. ;WMK;. .lKMMNM, :NMK, .OMW;
  8716. cMW; 'WMMMN ,XMK, oMM'
  8717. .MMc ..;l. xMN: KM0
  8718. 'MM. 'NMO oMM
  8719. .MM, .kMMl xMN
  8720. KM0 .kMM0. .dl:,.. .WMd
  8721. .XM0. ,OMMK, OMMMK. .XMK
  8722. oWMO:. .;xNMMk, NNNMKl. .xWMx
  8723. :ONMMNXMMMKx; . ,xNMWKkxllox0NMWk,
  8724. ..... .:dOOXXKOxl,
  8725. EOF
  8726. ;;
  8727. "opensuse_small" | "suse_small"*)
  8728. set_colors 2 7
  8729. read -rd '' ascii_data <<'EOF'
  8730. ${c1} _______
  8731. __| __ \\
  8732. / .\\ \\
  8733. \\__/ |
  8734. _______|
  8735. \\_______
  8736. __________/
  8737. EOF
  8738. ;;
  8739. "openSUSE"* | "open SUSE"* | "SUSE"*)
  8740. set_colors 2 7
  8741. read -rd '' ascii_data <<'EOF'
  8742. ${c2} .;ldkO0000Okdl;.
  8743. .;d00xl:^''''''^:ok00d;.
  8744. .d00l' 'o00d.
  8745. .d0Kd'${c1} Okxol:;,. ${c2}:O0d.
  8746. .OK${c1}KKK0kOKKKKKKKKKKOxo:, ${c2}lKO.
  8747. ,0K${c1}KKKKKKKKKKKKKKK0P^${c2},,,${c1}^dx:${c2} ;00,
  8748. .OK${c1}KKKKKKKKKKKKKKKk'${c2}.oOPPb.${c1}'0k.${c2} cKO.
  8749. :KK${c1}KKKKKKKKKKKKKKK: ${c2}kKx..dd ${c1}lKd${c2} 'OK:
  8750. dKK${c1}KKKKKKKKKOx0KKKd ${c2}^0KKKO' ${c1}kKKc${c2} dKd
  8751. dKK${c1}KKKKKKKKKK;.;oOKx,..${c2}^${c1}..;kKKK0.${c2} dKd
  8752. :KK${c1}KKKKKKKKKK0o;...^cdxxOK0O/^^' ${c2}.0K:
  8753. kKK${c1}KKKKKKKKKKKKK0x;,,......,;od ${c2}lKk
  8754. '0K${c1}KKKKKKKKKKKKKKKKKKKK00KKOo^ ${c2}c00'
  8755. 'kK${c1}KKOxddxkOO00000Okxoc;'' ${c2}.dKk'
  8756. l0Ko. .c00l'
  8757. 'l0Kk:. .;xK0l'
  8758. 'lkK0xl:;,,,,;:ldO0kl'
  8759. '^:ldxkkkkxdl:^'
  8760. EOF
  8761. ;;
  8762. "SwagArch"*)
  8763. set_colors 4 7 1
  8764. read -rd '' ascii_data <<'EOF'
  8765. ${c2} .;ldkOKXXNNNNXXK0Oxoc,.
  8766. ,lkXMMNK0OkkxkkOKWMMMMMMMMMM;
  8767. 'K0xo ..,;:c:. `'lKMMMMM0
  8768. .lONMMMMMM' `lNMk'
  8769. ${c2} ;WMMMMMMMMMO. ${c1}....::...
  8770. ${c2} OMMMMMMMMMMMMKl. ${c1}.,;;;;;ccccccc,
  8771. ${c2} `0MMMMMMMMMMMMMM0: ${c1}.. .ccccccc.
  8772. ${c2} 'kWMMMMMMMMMMMMMNo. ${c1}.,:' .ccccccc.
  8773. ${c2} `c0MMMMMMMMMMMMMN,${c1},:c; :cccccc:
  8774. ${c2} ckl. `lXMMMMMMMMMX${c1}occcc:.. ;ccccccc.
  8775. ${c2}dMMMMXd, `OMMMMMMWk${c1}ccc;:''` ,ccccccc:
  8776. ${c2}XMMMMMMMWKkxxOWMMMMMNo${c1}ccc; .cccccccc.
  8777. ${c2} `':ldxO0KXXXXXK0Okdo${c1}cccc. :cccccccc.
  8778. :ccc:' `cccccccc:,
  8779. ''
  8780. EOF
  8781. ;;
  8782. "Tails"*)
  8783. set_colors 5 7
  8784. read -rd '' ascii_data <<'EOF'
  8785. ${c1} ``
  8786. ./yhNh
  8787. syy/Nshh `:o/
  8788. N:dsNshh █ `ohNMMd
  8789. N-/+Nshh `yMMMMd
  8790. N-yhMshh yMMMMd
  8791. N-s:hshh █ yMMMMd so//.
  8792. N-oyNsyh yMMMMd d Mms.
  8793. N:hohhhd:. yMMMMd syMMM+
  8794. Nsyh+-..+y+- yMMMMd :mMM+
  8795. +hy- -ss/`yMMMM `+d+
  8796. :sy/. ./yNMMMMm ``
  8797. .+ys- `:+hNMMMMMMy/`
  8798. `hNmmMMMMMMMMMMMMdo.
  8799. dMMMMMMMMMMMMMMMMMNh:
  8800. +hMMMMMMMMMMMMMMMMMmy.
  8801. -oNMMMMMMMMMMmy+.`
  8802. `:yNMMMds/.`
  8803. .//`
  8804. EOF
  8805. ;;
  8806. "Trisquel"*)
  8807. set_colors 4 6
  8808. read -rd '' ascii_data <<'EOF'
  8809. ${c1} ▄▄▄▄▄▄
  8810. ▄█████████▄
  8811. ▄▄▄▄▄▄ ████▀ ▀████
  8812. ▄██████████▄ ████▀ ▄▄ ▀███
  8813. ▄███▀▀ ▀▀████ ███▄ ▄█ ███
  8814. ▄███ ▄▄▄ ████▄ ▀██████ ▄███
  8815. ███ █▀▀██▄ █████▄ ▀▀ ▄████
  8816. ▀███ ███ ███████▄▄ ▄▄██████
  8817. ${c1} ▀███▄ ▄███ █████████████${c2}████▀
  8818. ${c1} ▀█████████ ███████${c2}███▀▀▀
  8819. ▀▀███▀▀ ██████▀▀
  8820. ██████▀ ▄▄▄▄
  8821. █████▀ ████████
  8822. █████ ███▀ ▀███
  8823. ████▄ ██▄▄▄ ███
  8824. █████▄ ▀▀ ▄██
  8825. ██████▄▄▄████
  8826. ▀▀█████▀▀
  8827. EOF
  8828. ;;
  8829. "Ubuntu Cinnamon"* | "Ubuntu-Cinnamon"*)
  8830. set_colors 1
  8831. read -rd '' ascii_data <<'EOF'
  8832. ${c1} .-:/++oooo++/:-.
  8833. `:/oooooooooooooooooo/-`
  8834. -/oooooooooooooooooooo+ooo/-
  8835. .+oooooooooooooooooo+/-`.ooooo+.
  8836. :oooooooooooo+//:://++:. .ooooooo:
  8837. /oooooooooo+o:`.----.``./+/oooooooo/
  8838. /ooooooooo+. +ooooooooo+:``/ooooooooo/
  8839. .ooooooooo: .+ooooooooooooo- -ooooooooo.
  8840. /oooooo/o+ .ooooooo:`+oo+ooo- :oooooooo/
  8841. ooo+:. .o: :ooooo:` .+/. ./o+:/ooooooooo
  8842. oooo/-`.o: :ooo/` `/+. ./.:ooooooooo
  8843. /oooooo+o+``++. `:+- /oooooooo/
  8844. .ooooooooo/`` -+:` :ooooooooo.
  8845. /ooooooooo+--+/` .+ooooooooo/
  8846. /ooooooooooo+.` `.:++:oooooooo/
  8847. :oooooooooooooo++++oo+-` .ooooooo:
  8848. .+ooooooooooooooooooo+:..ooooo+.
  8849. -/oooooooooooooooooooooooo/-
  8850. `-/oooooooooooooooooo/:`
  8851. .-:/++oooo++/:-.
  8852. EOF
  8853. ;;
  8854. "Ubuntu Budgie"* | "Ubuntu-Budgie"*)
  8855. set_colors 4 7 1
  8856. read -rd '' ascii_data <<'EOF'
  8857. ${c2} ./oydmMMMMMMmdyo/.
  8858. :smMMMMMMMMMMMhs+:++yhs:
  8859. `omMMMMMMMMMMMN+` `odo`
  8860. /NMMMMMMMMMMMMN- `sN/
  8861. `hMMMMmhhmMMMMMMh sMh`
  8862. .mMmo- /yMMMMm` `MMm.
  8863. mN/ yMMMMMMMd- MMMm
  8864. oN- oMMMMMMMMMms+//+o+: :MMMMo
  8865. m/ +NMMMMMMMMMMMMMMMMm. :NMMMMm
  8866. M` .NMMMMMMMMMMMMMMMNodMMMMMMM
  8867. M- sMMMMMMMMMMMMMMMMMMMMMMMMM
  8868. mm` mMMMMMMMMMNdhhdNMMMMMMMMMm
  8869. oMm/ .dMMMMMMMMh: :dMMMMMMMo
  8870. mMMNyo/:/sdMMMMMMMMM+ sMMMMMm
  8871. .mMMMMMMMMMMMMMMMMMs `NMMMm.
  8872. `hMMMMMMMMMMM.oo+. `MMMh`
  8873. /NMMMMMMMMMo sMN/
  8874. `omMMMMMMMMy. :dmo`
  8875. :smMMMMMMMh+-` `.:ohs:
  8876. ./oydmMMMMMMdhyo/.
  8877. EOF
  8878. ;;
  8879. "Ubuntu-GNOME"*)
  8880. set_colors 4 5 7 6
  8881. read -rd '' ascii_data <<'EOF'
  8882. ${c3} ./o.
  8883. .oooooooo
  8884. .oooo```soooo
  8885. .oooo` `soooo
  8886. .ooo` ${c4}.o.${c3} `\/ooo.
  8887. :ooo ${c4}:oooo.${c3} `\/ooo.
  8888. sooo ${c4}`ooooo${c3} \/oooo
  8889. \/ooo ${c4}`soooo${c3} `ooooo
  8890. `soooo ${c4}`\/ooo${c3} `soooo
  8891. ${c4}./oo ${c3}`\/ooo ${c4}`/oooo.${c3} `/ooo
  8892. ${c4}`\/ooo. ${c3}`/oooo. ${c4}`/oooo.${c3} ``
  8893. ${c4} `\/ooo. ${c3}/oooo ${c4}/ooo`
  8894. ${c4} `ooooo ${c3}`` ${c4}.oooo
  8895. ${c4} `soooo. .oooo`
  8896. `\/oooooooooo`
  8897. ``\/oo``
  8898. EOF
  8899. ;;
  8900. "Ubuntu MATE"* | "Ubuntu-MATE"*)
  8901. set_colors 2 7
  8902. read -rd '' ascii_data <<'EOF'
  8903. ${c1} `:+shmNNMMNNmhs+:`
  8904. .odMMMMMMMMMMMMMMMMMMdo.
  8905. /dMMMMMMMMMMMMMMMmMMMMMMMMd/
  8906. :mMMMMMMMMMMMMNNNNM/`/yNMMMMMMm:
  8907. `yMMMMMMMMMms:..-::oM: -omMMMMMy`
  8908. `dMMMMMMMMy-.odNMMMMMM: -odMMMMMMd`
  8909. hMMMMMMMm-.hMMy/....+M:`/yNm+mMMMMMMMh
  8910. /MMMMNmMN-:NMy`-yNMMMMMmNyyMN:`dMMMMMMM/
  8911. hMMMMm -odMMh`sMMMMMMMMMMs sMN..MMMMMMMh
  8912. NMMMMm `/yNMMMMMMMMMMMM: MM+ mMMMMMMN
  8913. NMMMMm `/yNMMMMMMMMMMMM: MM+ mMMMMMMN
  8914. hMMMMm -odMMh sMMMMMMMMMMs oMN..MMMMMMMh
  8915. /MMMMNNMN-:NMy`-yNMMMMMNNsyMN:`dMMMMMMM/
  8916. hMMMMMMMm-.hMMy/....+M:.+hNd+mMMMMMMMh
  8917. `dMMMMMMMMy-.odNMMMMMM: :smMMMMMMd`
  8918. yMMMMMMMMMms/..-::oM: .+dMMMMMy
  8919. :mMMMMMMMMMMMMNNNNM: :smMMMMMMm:
  8920. /dMMMMMMMMMMMMMMMdNMMMMMMMd/
  8921. .odMMMMMMMMMMMMMMMMMMdo.
  8922. `:+shmNNMMNNmhs+:`
  8923. EOF
  8924. ;;
  8925. "ubuntu_old")
  8926. set_colors 1 7 3
  8927. read -rd '' ascii_data <<'EOF'
  8928. ${c1} ./+o+-
  8929. ${c2} yyyyy- ${c1}-yyyyyy+
  8930. ${c2} ${c2}://+//////${c1}-yyyyyyo
  8931. ${c3} .++ ${c2}.:/++++++/-${c1}.+sss/`
  8932. ${c3} .:++o: ${c2}/++++++++/:--:/-
  8933. ${c3} o:+o+:++.${c2}`..```.-/oo+++++/
  8934. ${c3} .:+o:+o/.${c2} `+sssoo+/
  8935. ${c2} .++/+:${c3}+oo+o:`${c2} /sssooo.
  8936. ${c2}/+++//+:${c3}`oo+o${c2} /::--:.
  8937. ${c2}+/+o+++${c3}`o++o${c1} ++////.
  8938. ${c2} .++.o+${c3}++oo+:`${c1} /dddhhh.
  8939. ${c3} .+.o+oo:.${c1} `oddhhhh+
  8940. ${c3} +.++o+o`${c1}`-````.:ohdhhhhh+
  8941. ${c3} `:o+++ ${c1}`ohhhhhhhhyo++os:
  8942. ${c3} .o:${c1}`.syhhhhhhh/${c3}.oo++o`
  8943. ${c1} /osyyyyyyo${c3}++ooo+++/
  8944. ${c1} ````` ${c3}+oo+++o:
  8945. ${c3} `oo++.
  8946. EOF
  8947. ;;
  8948. "Ubuntu Studio"* | "Ubuntu-Studio")
  8949. set_colors 6 7
  8950. read -rd '' ascii_data <<'EOF'
  8951. ${c1} ..-::::::-.`
  8952. `.:+++++++++++${c2}ooo${c1}++:.`
  8953. ./+++++++++++++${c2}sMMMNdyo${c1}+/.
  8954. .++++++++++++++++${c2}oyhmMMMMms${c1}++.
  8955. `/+++++++++${c2}osyhddddhys${c1}+${c2}osdMMMh${c1}++/`
  8956. `+++++++++${c2}ydMMMMNNNMMMMNds${c1}+${c2}oyyo${c1}++++`
  8957. +++++++++${c2}dMMNhso${c1}++++${c2}oydNMMmo${c1}++++++++`
  8958. :+${c2}odmy${c1}+++${c2}ooysoohmNMMNmyoohMMNs${c1}+++++++:
  8959. ++${c2}dMMm${c1}+${c2}oNMd${c1}++${c2}yMMMmhhmMMNs+yMMNo${c1}+++++++
  8960. `++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMs${c1}++++${c2}sMMN${c1}++${c2}NMMs${c1}+++++++.
  8961. `++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMo${c1}++++${c2}sMMN${c1}++${c2}mMMs${c1}+++++++.
  8962. ++${c2}dMMd${c1}+${c2}oNMm${c1}++${c2}yMMNdhhdMMMs${c1}+y${c2}MMNo${c1}+++++++
  8963. :+${c2}odmy${c1}++${c2}oo${c1}+${c2}ss${c1}+${c2}ohNMMMMmho${c1}+${c2}yMMMs${c1}+++++++:
  8964. +++++++++${c2}hMMmhs+ooo+oshNMMms${c1}++++++++
  8965. `++++++++${c2}oymMMMMNmmNMMMMmy+oys${c1}+++++`
  8966. `/+++++++++${c2}oyhdmmmmdhso+sdMMMs${c1}++/
  8967. ./+++++++++++++++${c2}oyhdNMMMms${c1}++.
  8968. ./+++++++++++++${c2}hMMMNdyo${c1}+/.
  8969. `.:+++++++++++${c2}sso${c1}++:.
  8970. ..-::::::-..
  8971. EOF
  8972. ;;
  8973. "ubuntu_small")
  8974. set_colors 1 7 3
  8975. read -rd '' ascii_data <<'EOF'
  8976. ${c1} _
  8977. ---(_)
  8978. _/ --- \\
  8979. (_) | |
  8980. \\ --- _/
  8981. ---(_)
  8982. EOF
  8983. ;;
  8984. "Ubuntu"* | "i3buntu"*)
  8985. set_colors 1 7 3
  8986. read -rd '' ascii_data <<'EOF'
  8987. ${c1} .-/+oossssoo+/-.
  8988. `:+ssssssssssssssssss+:`
  8989. -+ssssssssssssssssssyyssss+-
  8990. .ossssssssssssssssss${c2}dMMMNy${c1}sssso.
  8991. /sssssssssss${c2}hdmmNNmmyNMMMMh${c1}ssssss/
  8992. +sssssssss${c2}hm${c1}yd${c2}MMMMMMMNddddy${c1}ssssssss+
  8993. /ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhmNMMMNh${c1}ssssssss/
  8994. .ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss.
  8995. +ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+
  8996. oss${c2}yNMMMNyMMh${c1}ssssssssssssss${c2}hmmmh${c1}ssssssso
  8997. oss${c2}yNMMMNyMMh${c1}sssssssssssssshmmmh${c1}ssssssso
  8998. +ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+
  8999. .ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss.
  9000. /ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhdNMMMNh${c1}ssssssss/
  9001. +sssssssss${c2}dm${c1}yd${c2}MMMMMMMMddddy${c1}ssssssss+
  9002. /sssssssssss${c2}hdmNNNNmyNMMMMh${c1}ssssss/
  9003. .ossssssssssssssssss${c2}dMMMNy${c1}sssso.
  9004. -+sssssssssssssssss${c2}yyy${c1}ssss+-
  9005. `:+ssssssssssssssssss+:`
  9006. .-/+oossssoo+/-.
  9007. EOF
  9008. ;;
  9009. "Venom"*)
  9010. set_colors 8 4
  9011. read -rd '' ascii_data <<'EOF'
  9012. ${c1} ::::::: :::::::
  9013. mMMMMMMm dMMMMMMm
  9014. /MMMMMMMo +MMMMMMM/
  9015. yMMMMMMN mMMMMMMy
  9016. NMMMMMMs oMMMMMMm
  9017. +MMMMMMN: NMMMMMM+
  9018. hMMMMMMy sMMMMMMy
  9019. :NMMMMMM::NMMMMMN:
  9020. oMMMMMMyyMMMMMM+
  9021. dMMMMMMMMMMMMh
  9022. /MMMMMMMMMMMN:
  9023. sMMMMMMMMMMo
  9024. mMMMMMMMMd
  9025. +MMMMMMMN:
  9026. ::::::
  9027. EOF
  9028. ;;
  9029. "void_small")
  9030. set_colors 2 8
  9031. read -rd '' ascii_data <<'EOF'
  9032. ${c1} _______
  9033. _ \\______ -
  9034. | \\ ___ \\ |
  9035. | | / \ | |
  9036. | | \___/ | |
  9037. | \\______ \\_|
  9038. -_______\\
  9039. EOF
  9040. ;;
  9041. "Void"*)
  9042. set_colors 2 8
  9043. read -rd '' ascii_data <<'EOF'
  9044. ${c1} __.;=====;.__
  9045. _.=+==++=++=+=+===;.
  9046. -=+++=+===+=+=+++++=_
  9047. . -=:`` `--==+=++==.
  9048. _vi, ` --+=++++:
  9049. .uvnvi. _._ -==+==+.
  9050. .vvnvnI` .;==|==;. :|=||=|.
  9051. ${c2}+QmQQm${c1}pvvnv; ${c2}_yYsyQQWUUQQQm #QmQ#${c1}:${c2}QQQWUV$QQm.
  9052. ${c2} -QQWQW${c1}pvvo${c2}wZ?.wQQQE${c1}==<${c2}QWWQ/QWQW.QQWW${c1}(: ${c2}jQWQE
  9053. ${c2} -$QQQQmmU' jQQQ@${c1}+=<${c2}QWQQ)mQQQ.mQQQC${c1}+;${c2}jWQQ@'
  9054. ${c2} -$WQ8Y${c1}nI: ${c2}QWQQwgQQWV${c1}`${c2}mWQQ.jQWQQgyyWW@!
  9055. ${c1} -1vvnvv. `~+++` ++|+++
  9056. +vnvnnv, `-|===
  9057. +vnvnvns. . :=-
  9058. -Invnvvnsi..___..=sv=. `
  9059. +Invnvnvnnnnnnnnvvnn;.
  9060. ~|Invnvnvvnvvvnnv}+`
  9061. -~|{*l}*|~
  9062. EOF
  9063. ;;
  9064. "Obarun"*)
  9065. set_colors 6 6 7 1
  9066. read -rd '' ascii_data <<'EOF'
  9067. ${c1} ,;::::;
  9068. ;cooolc;,
  9069. ,coool;
  9070. ,loool,
  9071. loooo;
  9072. :ooool
  9073. cooooc ,:ccc;
  9074. looooc :oooooool
  9075. cooooo ;oooooooooo,
  9076. :ooooo; :ooooooooooo
  9077. oooooo oooooooooooc
  9078. :oooooo :ooooooooool
  9079. loooooo ;oooooooool
  9080. looooooc .coooooooc
  9081. cooooooo: ,;co;
  9082. ,ooooooool; ,:loc
  9083. cooooooooooooloooooc
  9084. ;ooooooooooooool;
  9085. ;looooooolc;
  9086. EOF
  9087. ;;
  9088. *"[Windows 10]"*|*"on Windows 10"*|"Windows 8"*|\
  9089. "Windows 10"* |"windows10"|"windows8")
  9090. set_colors 6 7
  9091. read -rd '' ascii_data <<'EOF'
  9092. ${c1} ..,
  9093. ....,,:;+ccllll
  9094. ...,,+:; cllllllllllllllllll
  9095. ,cclllllllllll lllllllllllllllllll
  9096. llllllllllllll lllllllllllllllllll
  9097. llllllllllllll lllllllllllllllllll
  9098. llllllllllllll lllllllllllllllllll
  9099. llllllllllllll lllllllllllllllllll
  9100. llllllllllllll lllllllllllllllllll
  9101. llllllllllllll lllllllllllllllllll
  9102. llllllllllllll lllllllllllllllllll
  9103. llllllllllllll lllllllllllllllllll
  9104. llllllllllllll lllllllllllllllllll
  9105. llllllllllllll lllllllllllllllllll
  9106. `'ccllllllllll lllllllllllllllllll
  9107. `' \\*:: :ccllllllllllllllll
  9108. ````''*::cll
  9109. ``
  9110. EOF
  9111. ;;
  9112. "Windows"*)
  9113. set_colors 1 2 4 3
  9114. read -rd '' ascii_data <<'EOF'
  9115. ${c1} ,.=:!!t3Z3z.,
  9116. :tt:::tt333EE3
  9117. ${c1} Et:::ztt33EEEL${c2} @Ee., ..,
  9118. ${c1} ;tt:::tt333EE7${c2} ;EEEEEEttttt33#
  9119. ${c1} :Et:::zt333EEQ.${c2} $EEEEEttttt33QL
  9120. ${c1} it::::tt333EEF${c2} @EEEEEEttttt33F
  9121. ${c1} ;3=*^```"*4EEV${c2} :EEEEEEttttt33@.
  9122. ${c3} ,.=::::!t=., ${c1}`${c2} @EEEEEEtttz33QF
  9123. ${c3} ;::::::::zt33)${c2} "4EEEtttji3P*
  9124. ${c3} :t::::::::tt33.${c4}:Z3z..${c2} ``${c4} ,..g.
  9125. ${c3} i::::::::zt33F${c4} AEEEtttt::::ztF
  9126. ${c3} ;:::::::::t33V${c4} ;EEEttttt::::t3
  9127. ${c3} E::::::::zt33L${c4} @EEEtttt::::z3F
  9128. ${c3}{3=*^```"*4E3)${c4} ;EEEtttt:::::tZ`
  9129. ${c3} `${c4} :EEEEtttt::::z7
  9130. "VEzjt:;;z>*`
  9131. EOF
  9132. ;;
  9133. "Xubuntu"*)
  9134. set_colors 4 7 1
  9135. read -rd '' ascii_data <<'EOF'
  9136. ${c1} `-/osyhddddhyso/-`
  9137. .+yddddddddddddddddddy+.
  9138. :yddddddddddddddddddddddddy:
  9139. -yddddddddddddddddddddhdddddddy-
  9140. odddddddddddyshdddddddh`dddd+ydddo
  9141. `yddddddhshdd- ydddddd+`ddh.:dddddy`
  9142. sddddddy /d. :dddddd-:dy`-ddddddds
  9143. :ddddddds /+ .dddddd`yy`:ddddddddd:
  9144. sdddddddd` . .-:/+ssdyodddddddddds
  9145. ddddddddy `:ohddddddddd
  9146. dddddddd. +dddddddd
  9147. sddddddy ydddddds
  9148. :dddddd+ .oddddddd:
  9149. sdddddo ./ydddddddds
  9150. `yddddd. `:ohddddddddddy`
  9151. oddddh/` `.:+shdddddddddddddo
  9152. -ydddddhyssyhdddddddddddddddddy-
  9153. :yddddddddddddddddddddddddy:
  9154. .+yddddddddddddddddddy+.
  9155. `-/osyhddddhyso/-`
  9156. EOF
  9157. ;;
  9158. "IRIX"*)
  9159. set_colors 4 7
  9160. read -rd '' ascii_data <<'EOF'
  9161. ${c1} ./ohmNd/ +dNmho/-
  9162. `:+ydNMMMMMMMM.-MMMMMMMMMdyo:.
  9163. `hMMMMMMNhs/sMMM-:MMM+/shNMMMMMMh`
  9164. -NMMMMMmo-` /MMM-/MMM- `-omMMMMMN.
  9165. `.`-+hNMMMMMNhyMMM-/MMMshmMMMMMmy+...`
  9166. +mMNds:-:sdNMMMMMMMyyMMMMMMMNdo:.:sdMMm+
  9167. dMMMMMMmy+.-/ymNMMMMMMMMNmy/-.+hmMMMMMMd
  9168. oMMMMmMMMMNds:.+MMMmmMMN/.-odNMMMMmMMMM+
  9169. .MMMM-/ymMMMMMmNMMy..hMMNmMMMMMmy/-MMMM.
  9170. hMMM/ `/dMMMMMMMN////NMMMMMMMd/. /MMMh
  9171. /MMMdhmMMMmyyMMMMMMMMMMMMhymMMMmhdMMM:
  9172. `mMMMMNho//sdMMMMM//NMMMMms//ohNMMMMd
  9173. `/so/:+ymMMMNMMMM` mMMMMMMMmh+::+o/`
  9174. `yNMMNho-yMMMM` NMMMm.+hNMMNh`
  9175. -MMMMd: oMMMM. NMMMh :hMMMM-
  9176. -yNMMMmooMMMM- NMMMyomMMMNy-
  9177. .omMMMMMMMM-`NMMMMMMMmo.
  9178. `:hMMMMMM. NMMMMMh/`
  9179. .odNm+ /dNms.
  9180. EOF
  9181. ;;
  9182. "Zorin"*)
  9183. set_colors 4 6
  9184. read -rd '' ascii_data <<'EOF'
  9185. ${c1} `osssssssssssssssssssso`
  9186. .osssssssssssssssssssssso.
  9187. .+oooooooooooooooooooooooo+.
  9188. `::::::::::::::::::::::. .:`
  9189. `+ssssssssssssssssss+:.` `.:+ssso`
  9190. .ossssssssssssssso/. `-+ossssssso.
  9191. ssssssssssssso/-` `-/osssssssssssss
  9192. .ossssssso/-` .-/ossssssssssssssso.
  9193. `+sss+:. `.:+ssssssssssssssssss+`
  9194. `:. .::::::::::::::::::::::`
  9195. .+oooooooooooooooooooooooo+.
  9196. -osssssssssssssssssssssso-
  9197. `osssssssssssssssssssso`
  9198. EOF
  9199. ;;
  9200. *)
  9201. case $kernel_name in
  9202. *"BSD")
  9203. set_colors 1 7 4 3 6
  9204. read -rd '' ascii_data <<'EOF'
  9205. ${c1} , ,
  9206. /( )`
  9207. \ \___ / |
  9208. /- _ `-/ '
  9209. (${c2}/\/ \ ${c1}\ /\
  9210. ${c2}/ / | ` ${c1}\
  9211. ${c3}O O ${c2}) ${c1}/ |
  9212. ${c2}`-^--'${c1}`< '
  9213. (_.) _ ) /
  9214. `.___/` /
  9215. `-----' /
  9216. ${c4}<----. __ / __ \
  9217. ${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====|
  9218. <----' ${c1}`--' `.__,' \
  9219. | |
  9220. \ / /\
  9221. ${c5}______${c1}( (_ / \______/
  9222. ${c5},' ,-----' |
  9223. `--{__________)
  9224. EOF
  9225. ;;
  9226. "Darwin")
  9227. set_colors 2 3 1 1 5 4
  9228. read -rd '' ascii_data <<'EOF'
  9229. ${c1} 'c.
  9230. ,xNMM.
  9231. .OMMMMo
  9232. OMMM0,
  9233. .;loddo:' loolloddol;.
  9234. cKMMMMMMMMMMNWMMMMMMMMMM0:
  9235. ${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd.
  9236. XMMMMMMMMMMMMMMMMMMMMMMMX.
  9237. ${c3};MMMMMMMMMMMMMMMMMMMMMMMM:
  9238. :MMMMMMMMMMMMMMMMMMMMMMMM:
  9239. ${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX.
  9240. kMMMMMMMMMMMMMMMMMMMMMMMMWd.
  9241. ${c5}.XMMMMMMMMMMMMMMMMMMMMMMMMMMk
  9242. .XMMMMMMMMMMMMMMMMMMMMMMMMK.
  9243. ${c6}kMMMMMMMMMMMMMMMMMMMMMMd
  9244. ;KMMMMMMMWXXWMMMMMMMk.
  9245. .cooc,. .,coo:.
  9246. EOF
  9247. ;;
  9248. "GNU"*)
  9249. set_colors fg 7
  9250. read -rd '' ascii_data <<'EOF'
  9251. ${c1} _-`````-, ,- '- .
  9252. .' .- - | | - -. `.
  9253. /.' / `. \
  9254. :/ : _... ..._ `` :
  9255. :: : /._ .`:'_.._\. || :
  9256. :: `._ ./ ,` : \ . _.'' .
  9257. `:. / | -. \-. \\_ /
  9258. \:._ _/ .' .@) \@) ` `\ ,.'
  9259. _/,--' .- .\,-.`--`.
  9260. ,'/'' (( \ ` )
  9261. /'/' \ `-' (
  9262. '/'' `._,-----'
  9263. ''/' .,---'
  9264. ''/' ;:
  9265. ''/'' ''/
  9266. ''/''/''
  9267. '/'/'
  9268. `;
  9269. EOF
  9270. ;;
  9271. "Linux")
  9272. set_colors fg 8 3
  9273. read -rd '' ascii_data <<'EOF'
  9274. ${c2} #####
  9275. ${c2} #######
  9276. ${c2} ##${c1}O${c2}#${c1}O${c2}##
  9277. ${c2} #${c3}#####${c2}#
  9278. ${c2} ##${c1}##${c3}###${c1}##${c2}##
  9279. ${c2} #${c1}##########${c2}##
  9280. ${c2} #${c1}############${c2}##
  9281. ${c2} #${c1}############${c2}###
  9282. ${c3} ##${c2}#${c1}###########${c2}##${c3}#
  9283. ${c3}######${c2}#${c1}#######${c2}#${c3}######
  9284. ${c3}#######${c2}#${c1}#####${c2}#${c3}#######
  9285. ${c3} #####${c2}#######${c3}#####
  9286. EOF
  9287. ;;
  9288. "Profelis SambaBOX"* | "SambaBOX"*)
  9289. set_colors 3 6
  9290. read -rd '' ascii_data <<'EOF'
  9291. ${c1}
  9292. #
  9293. *////#####
  9294. /////////#########(
  9295. .((((((///// ,####(#(((((
  9296. /#######(((* (#(((((((((.
  9297. //((#(#(#, ((##( ,((((((//
  9298. ////// #(##########( //////
  9299. ////// ((#(#(#(#(##########(/////////
  9300. /////( (((((((#########(##((((((/////
  9301. /(((#( ((((/
  9302. ####(# ((###
  9303. #########(((/////////(((((((((, (#(#(
  9304. ########( /////////(((((((* #####
  9305. ####///, *////((( (((((((
  9306. ./////////// .//(((((((((
  9307. ///////////, *(/////((((*
  9308. ,/(((((((((##########/.
  9309. .((((((#######
  9310. ((##*
  9311. EOF
  9312. ;;
  9313. "SunOS")
  9314. set_colors 3 7
  9315. read -rd '' ascii_data <<'EOF'
  9316. ${c1} `- `
  9317. `-- `+- .:
  9318. .+: `++: -/+- .
  9319. `.::` -++/``:::`./+/ `.-/.
  9320. `++/-`.` ` /++:`
  9321. `` ./:` .: `..`.-
  9322. ``./+/:- -+++:-
  9323. -/+` :.
  9324. EOF
  9325. ;;
  9326. "IRIX"*)
  9327. set_colors 4 7
  9328. read -rd '' ascii_data <<'EOF'
  9329. ${c1} ./ohmNd/ +dNmho/-
  9330. `:+ydNMMMMMMMM.-MMMMMMMMMdyo:.
  9331. `hMMMMMMNhs/sMMM-:MMM+/shNMMMMMMh`
  9332. -NMMMMMmo-` /MMM-/MMM- `-omMMMMMN.
  9333. `.`-+hNMMMMMNhyMMM-/MMMshmMMMMMmy+...`
  9334. +mMNds:-:sdNMMMMMMMyyMMMMMMMNdo:.:sdMMm+
  9335. dMMMMMMmy+.-/ymNMMMMMMMMNmy/-.+hmMMMMMMd
  9336. oMMMMmMMMMNds:.+MMMmmMMN/.-odNMMMMmMMMM+
  9337. .MMMM-/ymMMMMMmNMMy..hMMNmMMMMMmy/-MMMM.
  9338. hMMM/ `/dMMMMMMMN////NMMMMMMMd/. /MMMh
  9339. /MMMdhmMMMmyyMMMMMMMMMMMMhymMMMmhdMMM:
  9340. `mMMMMNho//sdMMMMM//NMMMMms//ohNMMMMd
  9341. `/so/:+ymMMMNMMMM` mMMMMMMMmh+::+o/`
  9342. `yNMMNho-yMMMM` NMMMm.+hNMMNh`
  9343. -MMMMd: oMMMM. NMMMh :hMMMM-
  9344. -yNMMMmooMMMM- NMMMyomMMMNy-
  9345. .omMMMMMMMM-`NMMMMMMMmo.
  9346. `:hMMMMMM. NMMMMMh/`
  9347. .odNm+ /dNms.
  9348. EOF
  9349. ;;
  9350. esac
  9351. ;;
  9352. esac
  9353. # Overwrite distro colors if '$ascii_colors' doesn't
  9354. # equal 'distro'.
  9355. [[ ${ascii_colors[0]} != distro ]] && {
  9356. color_text=off
  9357. set_colors "${ascii_colors[@]}"
  9358. }
  9359. }
  9360. main() {
  9361. cache_uname
  9362. get_os
  9363. # Load default config.
  9364. eval "$config"
  9365. get_args "$@"
  9366. [[ $verbose != on ]] && exec 2>/dev/null
  9367. get_simple "$@"
  9368. get_distro
  9369. get_bold
  9370. get_distro_ascii
  9371. [[ $stdout == on ]] && stdout
  9372. # Minix doesn't support these sequences.
  9373. [[ $TERM != minix && $stdout != on ]] && {
  9374. # If the script exits for any reason, unhide the cursor.
  9375. trap 'printf "\e[?25h\e[?7h"' EXIT
  9376. # Hide the cursor and disable line wrap.
  9377. printf '\e[?25l\e[?7l'
  9378. }
  9379. image_backend
  9380. get_cache_dir
  9381. old_functions
  9382. print_info
  9383. dynamic_prompt
  9384. # w3m-img: Draw the image a second time to fix
  9385. # rendering issues in specific terminal emulators.
  9386. [[ $image_backend == *w3m* ]] && display_image
  9387. # Add neofetch info to verbose output.
  9388. err "Neofetch command: $0 $*"
  9389. err "Neofetch version: $version"
  9390. [[ $verbose == on ]] && printf %b "$err" >&2
  9391. # If `--loop` was used, constantly redraw the image.
  9392. while [[ $image_loop == on && $image_backend == w3m ]]; do
  9393. display_image
  9394. sleep 1
  9395. done
  9396. return 0
  9397. }
  9398. main "$@"