diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index d1120c08..e51b6bbd 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -2,8 +2,6 @@
If you're suggesting a new feature then just a description will suffice.
-- [ ] Does this issue still occur in the master branch? (**Required if issue**)
-
#### Neofetch version
diff --git a/.travis.yml b/.travis.yml
index 60c4a730..388082b0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,13 @@
language: bash
sudo: required
+addons:
+ apt:
+ sources:
+ - debian-sid
+ packages:
+ - shellcheck
+
os:
- linux
- osx
@@ -10,7 +17,11 @@ before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install screenresolution; fi
script:
- - time ./neofetch --travis -v
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck -e SC2244 -e SC2243 neofetch; fi
- # Check for lines longer than 100 chars.
- - if grep '.\{102\}' neofetch; then (exit 1); else (exit 0); fi
+ - time ./neofetch --ascii --config config/travis.conf -v
+ # See this wiki page for why we're disabling these errors.
+ # https://github.com/dylanaraps/neofetch/wiki/Shellcheck-Exclusions
+ - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck neofetch -e SC1090,SC2009,SC2012,SC2016,SC2034,SC2128,SC2153,SC2154,SC2178,SC2010,SC1004; fi
+ # The if statement is here to invert the exit code from grep.
+ # grep normally errors if no match is found but we want the opposite.
+ # We invert it so grep fails if a match is found.
+ - if grep '.\{101\}' neofetch; then (exit 1); else (exit 0); fi
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..560033d0
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,27 @@
+## Contributors
+
+- [**@yslgirl**](https://github.com/yslgirl)
+- [**@iandrewt**](https://github.com/iandrewt)
+- [**@chrisweeksnz**](https://github.com/chrisweeksnz)
+
+
+## OS
+
+- Fixed detection bug with Gentoo.
+- Added support for macOS High Sierra. [**@yslgirl**](https://github.com/yslgirl)
+- Added support for Container Linux by CoreOS. [**@chrisweeksnz**](https://github.com/chrisweeksnz)
+- Added support for 2017 iOS devices [**@iandrewt**](https://github.com/iandrewt)
+
+## Info
+
+**Window Manager**
+
+- [macOS] Fixed chunkwm being detected as Kwm. [**@iandrewt**](https://github.com/iandrewt)
+
+**Install Date**
+
+- [macOS] Fixed Install Date. [**@iandrewt**](https://github.com/iandrewt)
+
+**Resolution**
+
+- [macOS] Fixed errors on non-retina screens. [**@iandrewt**](https://github.com/iandrewt)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index f9c0191e..00000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,151 +0,0 @@
-# How to Contribute
-
-
-
-* [Coding Conventions](#coding-conventions)
- * [ShellCheck](#shellcheck)
- * [No no's](#no-nos)
- * [If Statements](#if-statements)
- * [Case Statements](#case-statements)
-* [Making changes to Neofetch](#making-changes-to-neofetch)
- * [Adding support for a new Operating System / Distribution.](#adding-support-for-a-new-operating-system--distribution)
-
-
-
-
-## Coding Conventions
-
-- Use `bash` built-ins wherever possible.
-- Try not to pipe (`|`) at all.
-- Limit usage of external commands `$(cmd)`.
-- Indent 4 spaces.
-- Use [snake_case](https://en.wikipedia.org/wiki/Snake_case) for function
- and variable names.
-- Keep lines below `100` characters long.
-- Use `[[ ]]` for tests.
-- Quote **EVERYTHING**.
-
-### ShellCheck
-
-For your contribution to be accepted, your changes need to pass
-ShellCheck.
-
-```sh
-shellcheck neofetch
-```
-
-**Note**: If you have trouble installing ShellCheck. You can open a pull
-request on the repo and our Travis.ci hook will run ShellCheck for you.
-
-
-### No no's
-
-- Don’t use GNU conventions in commands.
- - Use POSIX arguments and flags.
-- Don’t use `cut`.
- - Use `bash`'s built-in [parameter expansion](http://wiki.bash-hackers.org/syntax/pe).
-- Don’t use `echo`.
- - Use `printf "%s\n"`
-- Don’t use `bc`.
-- Don’t use `sed`.
- - Use `bash`'s built-in [parameter expansion](http://wiki.bash-hackers.org/syntax/pe).
-- Don’t use `cat`.
- - Use `bash`'s built-in syntax (`file="$(< /path/to/file.txt)")`).
-- Don’t use `grep "pattern" | awk '{ printf }'`.
- - Use `awk '/pattern/ { printf }'`
-- Don’t use `wc`.
- - Use `${#var}` or `${#arr[@]}`.
-
-
-### If Statements
-
-If the test only has one command inside of it; use the compact test
-syntax. Otherwise the normal `if`/`fi` is just fine.
-
-```sh
-# Bad
-if [[ "$var" ]]; then
- printf "%s\n" "$var"
-fi
-
-# Good
-[[ "$var" ]] && printf "%s\n" "$var"
-
-# Also good (Use this for longer lines).
-[[ "$var" ]] && \
- printf "%s\n" "$var"
-```
-
-
-### Case Statements
-
-Case statements need to be formatted in a specific way.
-
-```sh
-# Good example (Notice the indentation).
-case "$var" in
- 1) printf "%s\n" 1 ;;
- 2)
- printf "%s\n" "1"
- printf "%s\n" "2"
- ;;
-
- *)
- printf "%s\n" "1"
- printf "%s\n" "2"
- printf "%s\n" "3"
- ;;
-esac
-```
-
-## Making changes to Neofetch
-
-### Adding support for a new Operating System / Distribution.
-
-Adding support for a new OS/Distro requires adding the Name, Logo and
-Colors of the OS/Distro to the `get_distro_ascii()` function.
-
-The function is located right at the bottom of the script, one function
-above `main()`. Inside this function you’ll find an alphabetical list of
-each OS/Distro.
-
-Find the spot in the list your new OS/Distro fits into and start
-implementing your changes.
-
-If your OS/Distro requires changes to the actual information gathering
-functions then you can make these changes in the `get_*` functions.
-
-**Syntax**:
-
-- You have to escape back-slashes (`\`). (eg `\\`)
-- You can use `${c1}` to `${c6}`to color the ascii.
- - These are evaluated *after* we read the file.
-
-
-**Example**:
-
-```sh
- "CRUX"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} odddd
- oddxkkkxxdoo
- ddcoddxxxdoool
- xdclodod olol
- xoc xdd olol
- xdc ${c2}k00${c1}Okdlol
- xxd${c2}kOKKKOkd${c1}ldd
- xdco${c2}xOkdlo${c1}dldd
- ddc:cl${c2}lll${c1}oooodo
- odxxdd${c3}xkO000kx${c1}ooxdo
- oxdd${c3}x0NMMMMMMWW0od${c1}kkxo
- oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx
-docldkXW${c3}MMMMMMMWWN${c1}Odolco
-xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c
-${c2}xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l
-${c2}dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd
-${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo
-${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo
-EOF
- ;;
-```
diff --git a/LICENSE.md b/LICENSE.md
index eeb066f7..851d9f6a 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2015-2021 Dylan Araps
+Copyright (c) 2016-2017 Dylan Araps
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/Makefile b/Makefile
index 2b41f34f..99ec43b2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,29 @@
-PREFIX = /usr
-MANDIR = $(PREFIX)/share/man
+PREFIX ?= /usr
+SYSCONFDIR ?= /etc
+MANDIR ?= $(PREFIX)/share/man
all:
@echo Run \'make install\' to install Neofetch.
install:
+ @echo 'Making directories...'
@mkdir -p $(DESTDIR)$(PREFIX)/bin
+ @mkdir -p $(DESTDIR)$(PREFIX)/share/neofetch/ascii/distro
@mkdir -p $(DESTDIR)$(MANDIR)/man1
- @cp -p neofetch $(DESTDIR)$(PREFIX)/bin/neofetch
- @cp -p neofetch.1 $(DESTDIR)$(MANDIR)/man1
+ @mkdir -p $(DESTDIR)$(SYSCONFDIR)/neofetch
+
+ @echo 'Installing binaries...'
+ @sed "s|ASCIIDIR|$(PREFIX)/share/neofetch/ascii/distro|g;s|CONFDIR|$(SYSCONFDIR)/neofetch|g" < neofetch > $(DESTDIR)$(PREFIX)/bin/neofetch
@chmod 755 $(DESTDIR)$(PREFIX)/bin/neofetch
+ @echo 'Installing ASCII files, man page and config file...'
+ @cp -p ascii/distro/* $(DESTDIR)$(PREFIX)/share/neofetch/ascii/distro
+ @cp -p neofetch.1 $(DESTDIR)$(MANDIR)/man1
+ @cp -p config/config.conf $(DESTDIR)$(SYSCONFDIR)/neofetch/config.conf
+
uninstall:
+ @echo 'Removing files...'
@rm -rf $(DESTDIR)$(PREFIX)/bin/neofetch
@rm -rf $(DESTDIR)$(MANDIR)/man1/neofetch.1*
+ @rm -rf $(DESTDIR)$(PREFIX)/share/neofetch
+ @rm -rf $(DESTDIR)$(SYSCONFDIR)/neofetch
diff --git a/README.md b/README.md
index 6bfa7403..16ad5e91 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,91 @@
-

-A command-line system information tool written in bash 3.2+
+# Neofetch
-
-
-
-
-
+[](https://gitter.im/dylanaraps/fetch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
+[](https://travis-ci.org/dylanaraps/neofetch)
+[](./LICENSE.md)
+[](https://github.com/dylanaraps/neofetch/releases)
+[](https://www.patreon.com/dyla)
-
+Neofetch is a CLI system information tool written in BASH. Neofetch displays information about your system next to an image, your OS logo, or any ASCII file of your choice. The main purpose of Neofetch is to be used in screenshots to show other users what OS/Distro you're running, what Theme/Icons you're using etc.
-Neofetch is a command-line system information tool written in `bash 3.2+`. Neofetch displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.
+Neofetch is highly customizable through the use of command line flags or the user config file. There are over 50 config options to mess around with and there's the `print_info()` function and friends which let you add your own custom info.
-The overall purpose of Neofetch is to be used in screen-shots of your system. Neofetch shows the information other people want to see. There are other tools available for proper system statistic/diagnostics.
+Neofetch can be used on any OS that has BASH 3.2+, it's just a matter of adding support. If your OS/Distro isn't in the list below, feel free to open an issue on the repo and I'll gladly add support. Neofetch currently supports `Linux`, `MacOS`, `iOS`, `BSD`, `Solaris`, `Android`, `Haiku`, `GNU Hurd`, `MINIX`, `AIX`, `IRIX`, and `Windows (Cygwin/MSYS2/MinGW/Windows 10 Linux subsystem)`.
-The information by default is displayed alongside your operating system's logo. You can further configure Neofetch to instead use an image, a custom ASCII file, your wallpaper or nothing at all.
+For more information:
-
+**https://github.com/dylanaraps/neofetch/wiki**
-You can further configure Neofetch to display exactly what you want it to. Through the use of command-line flags and the configuration file you can change existing information outputs or add your own custom ones.
-
-Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX and Haiku. If your favourite operating system is unsupported: Open up an issue and support will be added.
+
-### More: \[[Dependencies](https://github.com/dylanaraps/neofetch/wiki/Dependencies)\] \[[Installation](https://github.com/dylanaraps/neofetch/wiki/Installation)\] \[[Wiki](https://github.com/dylanaraps/neofetch/wiki)\]
+## Dependencies
+
+https://github.com/dylanaraps/neofetch/wiki/Dependencies
+
+
+## Installation
+
+https://github.com/dylanaraps/neofetch/wiki/Installation
+
+
+## Post Install
+
+
+### Using the config file
+
+Neofetch will by default create a config file at `$HOME/.config/neofetch/config` and this file contains all of the script's options/settings. The config file allows you to keep your customizations between script versions and allows you to easily share your customizations with other people.
+
+You can launch the script without a config file by using the flag `--config none` and you can specify a custom config location using `--config path/to/config`.
+
+See this wiki page for the default config: https://github.com/dylanaraps/neofetch/wiki/Config-File
+
+
+### Customizing what info gets displayed
+
+https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
+
+
+### Customizing the script using a custom alias
+
+If you don't want to use the config file you can customize almost everything using launch flags.
+
+Here's an example neofetch alias:
+
+```sh
+alias neofetch2="neofetch \
+--config off \
+--block_range 1 8 \
+--bold off \
+--uptime_shorthand on \
+--gtk_shorthand on \
+--colors 4 1 8 8 8 7 \
+"
+```
+
+
+## Thanks
+
+Thanks to:
+
+- [Contributors](https://github.com/dylanaraps/neofetch/contributors)
+ - Thanks for making Neofetch better, I really appreciate it.
+- [Packagers](https://github.com/dylanaraps/neofetch/issues/115)
+ - Thanks for maintaining Neofetch packages.
+- Users
+ - Thanks for using Neofetch!
+- [Screenfetch](https://github.com/KittyKatt/screenFetch):
+ - We've used some snippets as a base for a few functions in this script.
+ - Some of the ASCII logos.
+- [ufetch](https://github.com/jschx/ufetch):
+ - Tiny ASCII logos
+
+
+
+## Donate
+
+Donations will allow me to spend more time working on `neofetch`.
+
+If you like `neofetch` and want to give back in some way you can donate here:
+
+**https://patreon.com/dyla**
diff --git a/ascii/distro/aix b/ascii/distro/aix
new file mode 100644
index 00000000..8526b7c6
--- /dev/null
+++ b/ascii/distro/aix
@@ -0,0 +1,20 @@
+${c1} `:+ssssossossss+-`
+ .oys///oyhddddhyo///sy+.
+ /yo:+hNNNNNNNNNNNNNNNNh+:oy/
+ :h/:yNNNNNNNNNNNNNNNNNNNNNNy-+h:
+ `ys.yNNNNNNNNNNNNNNNNNNNNNNNNNNy.ys
+ `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oh
+ h+-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.oy
+/d`mNNNNNNN/::mNNNd::m+:/dNNNo::dNNNd`m:
+h//NNNNNNN: . .NNNh mNo od. -dNNNNN:+y
+N.sNNNNNN+ -N/ -NNh mNNd. sNNNNNNNo-m
+N.sNNNNNs +oo /Nh mNNs` ` /mNNNNNNo-m
+h//NNNNh ossss` +h md- .hm/ `sNNNNN:+y
+:d`mNNN+/yNNNNNd//y//h//oNNNNy//sNNNd`m-
+ yo-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNm.ss
+ `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oy
+ sy.yNNNNNNNNNNNNNNNNNNNNNNNNNNs.yo
+ :h+-yNNNNNNNNNNNNNNNNNNNNNNs-oh-
+ :ys:/yNNNNNNNNNNNNNNNmy/:sy:
+ .+ys///osyhhhhys+///sy+.
+ -/osssossossso/-
diff --git a/ascii/distro/alpine b/ascii/distro/alpine
new file mode 100644
index 00000000..8f9b8771
--- /dev/null
+++ b/ascii/distro/alpine
@@ -0,0 +1,20 @@
+${c1} .hddddddddddddddddddddddh.
+ :dddddddddddddddddddddddddd:
+ /dddddddddddddddddddddddddddd/
+ +dddddddddddddddddddddddddddddd+
+ `sdddddddddddddddddddddddddddddddds`
+ `ydddddddddddd++hdddddddddddddddddddy`
+.hddddddddddd+` `+ddddh:-sdddddddddddh.
+hdddddddddd+` `+y: .sddddddddddh
+ddddddddh+` `//` `.` -sddddddddd
+ddddddh+` `/hddh/` `:s- -sddddddd
+ddddh+` `/+/dddddh/` `+s- -sddddd
+ddd+` `/o` :dddddddh/` `oy- .yddd
+hdddyo+ohddyosdddddddddho+oydddy++ohdddh
+.hddddddddddddddddddddddddddddddddddddh.
+ `yddddddddddddddddddddddddddddddddddy`
+ `sdddddddddddddddddddddddddddddddds`
+ +dddddddddddddddddddddddddddddd+
+ /dddddddddddddddddddddddddddd/
+ :dddddddddddddddddddddddddd:
+ .hddddddddddddddddddddddh.
diff --git a/ascii/distro/alpine_small b/ascii/distro/alpine_small
new file mode 100644
index 00000000..9949011c
--- /dev/null
+++ b/ascii/distro/alpine_small
@@ -0,0 +1,6 @@
+${c1} /\\ /\\
+ /${c2}/ ${c1}\\ \\
+ /${c2}/ ${c1}\\ \\
+/${c2}// ${c1}\\ \\
+${c2}// ${c1}\\ \\
+ \\
diff --git a/ascii/distro/amazon b/ascii/distro/amazon
new file mode 100644
index 00000000..050c5b3a
--- /dev/null
+++ b/ascii/distro/amazon
@@ -0,0 +1,19 @@
+${c1} `-/oydNNdyo:.`
+ `.:+shmMMMMMMMMMMMMMMmhs+:.`
+ -+hNNMMMMMMMMMMMMMMMMMMMMMMNNho-
+.`` -/+shmNNMMMMMMNNmhs+/- ``.
+dNmhs+:. `.:/oo/:.` .:+shmNd
+dMMMMMMMNdhs+:.. ..:+shdNMMMMMMMd
+dMMMMMMMMMMMMMMNds odNMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
+.:+ydNMMMMMMMMMMMh yMMMMMMMMMMMNdy+:.
+ `.:+shNMMMMMh yMMMMMNhs+:``
+ `-+shy shs+:`
diff --git a/ascii/distro/android b/ascii/distro/android
new file mode 100644
index 00000000..17e7ff30
--- /dev/null
+++ b/ascii/distro/android
@@ -0,0 +1,13 @@
+${c1} ╲ ▁▂▂▂▁ ╱
+ ▄███████▄
+ ▄██${c2} ${c1}███${c2} ${c1}██▄
+ ▄███████████▄
+▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄
+██ █████████████ ██
+██ █████████████ ██
+██ █████████████ ██
+██ █████████████ ██
+ █████████████
+ ███████████
+ ██ ██
+ ██ ██
diff --git a/ascii/distro/antergos b/ascii/distro/antergos
new file mode 100644
index 00000000..023af9bd
--- /dev/null
+++ b/ascii/distro/antergos
@@ -0,0 +1,19 @@
+${c2} `.-/::/-``
+ .-/osssssssso/.
+ :osyysssssssyyys+-
+ `.+yyyysssssssssyyyyy+.
+ `/syyyyyssssssssssyyyyys-`
+ `/yhyyyyysss${c1}++${c2}ssosyyyyhhy/`
+ .ohhhyyyys${c1}o++/+o${c2}so${c1}+${c2}syy${c1}+${c2}shhhho.
+ .shhhhys${c1}oo++//+${c2}sss${c1}+++${c2}yyy${c1}+s${c2}hhhhs.
+ -yhhhhs${c1}+++++++o${c2}ssso${c1}+++${c2}yyy${c1}s+o${c2}hhddy:
+ -yddhhy${c1}o+++++o${c2}syyss${c1}++++${c2}yyy${c1}yooy${c2}hdddy-
+ .yddddhs${c1}o++o${c2}syyyyys${c1}+++++${c2}yyhh${c1}sos${c2}hddddy`
+`odddddhyosyhyyyyyy${c1}++++++${c2}yhhhyosddddddo
+.dmdddddhhhhhhhyyyo${c1}+++++${c2}shhhhhohddddmmh.
+ddmmdddddhhhhhhhso${c1}++++++${c2}yhhhhhhdddddmmdy
+dmmmdddddddhhhyso${c1}++++++${c2}shhhhhddddddmmmmh
+-dmmmdddddddhhys${c1}o++++o${c2}shhhhdddddddmmmmd-
+.smmmmddddddddhhhhhhhhhdddddddddmmmms.
+ `+ydmmmdddddddddddddddddddmmmmdy/.
+ `.:+ooyyddddddddddddyyso+:.`
diff --git a/ascii/distro/antix b/ascii/distro/antix
new file mode 100644
index 00000000..c383774e
--- /dev/null
+++ b/ascii/distro/antix
@@ -0,0 +1,13 @@
+${c1}
+ \
+ , - ~ ^ ~ - \ /
+ , ' \ ' , /
+ , \ '/
+ , \ / ,
+ ,___, \/ ,
+ / | _ _ _|_ o /\ ,
+|, | / |/ | | | / \ ,
+ \,_/\_/ | |_/|_/|_/_/ \,
+ , / ,\
+ , / , ' \
+ ' - , _ _ _ , '
diff --git a/ascii/distro/aosc b/ascii/distro/aosc
new file mode 100644
index 00000000..785ba7d9
--- /dev/null
+++ b/ascii/distro/aosc
@@ -0,0 +1,20 @@
+${c2} .:+syhhhhys+:.
+ .ohNMMMMMMMMMMMMMMNho.
+ `+mMMMMMMMMMMmdmNMMMMMMMMm+`
+ +NMMMMMMMMMMMM/ `./smMMMMMN+
+ .mMMMMMMMMMMMMMMo -yMMMMMm.
+ :NMMMMMMMMMMMMMMMs .hMMMMN:
+ .NMMMMhmMMMMMMMMMMm+/- oMMMMN.
+ dMMMMs ./ymMMMMMMMMMMNy. sMMMMd
+-MMMMN` oMMMMMMMMMMMN: `NMMMM-
+/MMMMh NMMMMMMMMMMMMm hMMMM/
+/MMMMh NMMMMMMMMMMMMm hMMMM/
+-MMMMN` :MMMMMMMMMMMMy. `NMMMM-
+ dMMMMs .yNMMMMMMMMMMMNy/. sMMMMd
+ .NMMMMo -/+sMMMMMMMMMMMmMMMMN.
+ :NMMMMh. .MMMMMMMMMMMMMMMN:
+ .mMMMMMy- NMMMMMMMMMMMMMm.
+ +NMMMMMms/.` mMMMMMMMMMMMN+
+ `+mMMMMMMMMNmddMMMMMMMMMMm+`
+ .ohNMMMMMMMMMMMMMMNho.
+ .:+syhhhhys+:.
diff --git a/ascii/distro/apricity b/ascii/distro/apricity
new file mode 100644
index 00000000..eada9d6d
--- /dev/null
+++ b/ascii/distro/apricity
@@ -0,0 +1,18 @@
+${c2} ./o-
+ ``...`` `:. -/:
+ `-+ymNMMMMMNmho-` :sdNNm/
+ `+dMMMMMMMMMMMMMMMmo` sh:.:::-
+ /mMMMMMMMMMMMMMMMMMMMm/`sNd/
+ oMMMMMMMMMMMMMMMMMMMMMMMs -`
+:MMMMMMMMMMMMMMMMMMMMMMMMM/
+NMMMMMMMMMMMMMMMMMMMMMMMMMd
+MMMMMMMmdmMMMMMMMMMMMMMMMMd
+MMMMMMy` .mMMMMMMMMMMMmho:`
+MMMMMMNo/sMMMMMMMNdy+-.`-/
+MMMMMMMMMMMMNdy+:.`.:ohmm:
+MMMMMMMmhs+-.`.:+ymNMMMy.
+MMMMMM/`.-/ohmNMMMMMMy-
+MMMMMMNmNNMMMMMMMMmo.
+MMMMMMMMMMMMMMMms:`
+MMMMMMMMMMNds/.
+dhhyys+/-`
diff --git a/ascii/distro/arch b/ascii/distro/arch
new file mode 100644
index 00000000..3de103bb
--- /dev/null
+++ b/ascii/distro/arch
@@ -0,0 +1,19 @@
+${c1} -`
+ .o+`
+ `ooo/
+ `+oooo:
+ `+oooooo:
+ -+oooooo+:
+ `/:-:++oooo+:
+ `/++++/+++++++:
+ `/++++++++++++++:
+ `/+++o${c2}oooooooo${c1}oooo/`
+${c2} ${c1}./${c2}ooosssso++osssssso${c1}+`
+${c2} .oossssso-````/ossssss+`
+ -osssssso. :ssssssso.
+ :osssssss/ osssso+++.
+ /ossssssss/ +ssssooo/-
+ `/ossssso+/:- -:/+osssso+-
+ `+sso+:-` `.-/+oso:
+ `++:. `-/+/
+ .` `/
diff --git a/ascii/distro/arch_old b/ascii/distro/arch_old
new file mode 100644
index 00000000..dbd6cefa
--- /dev/null
+++ b/ascii/distro/arch_old
@@ -0,0 +1,16 @@
+${c1} __
+ _=(SDGJT=_
+ _GTDJHGGFCVS)
+ ,GTDJGGDTDFBGX0
+${c1} JDJDIJHRORVFSBSVL${c2}-=+=,_
+${c1} IJFDUFHJNXIXCDXDSV,${c2} "DEBL
+${c1} [LKDSDJTDU=OUSCSBFLD.${c2} '?ZWX,
+${c1} ,LMDSDSWH' `DCBOSI${c2} DRDS],
+${c1} SDDFDFH' !YEWD,${c2} )HDROD
+${c1} !KMDOCG &GSU|${c2}\_GFHRGO\'
+${c1} HKLSGP'${c2} __${c1}\TKM0${c2}\GHRBV)'
+${c1}JSNRVW'${c2} __+MNAEC${c1}\IOI,${c2}\BN'
+${c1}HELK['${c2} __,=OFFXCBGHC${c1}\FD)
+${c1}?KGHE ${c2}\_-#DASDFLSV='${c1} 'EF
+'EHTI !H
+ `0F' '!
diff --git a/ascii/distro/arch_small b/ascii/distro/arch_small
new file mode 100644
index 00000000..26757617
--- /dev/null
+++ b/ascii/distro/arch_small
@@ -0,0 +1,7 @@
+${c1} /\
+ /^^\
+ /\ \
+ /${c2} __ \
+ / ( ) \
+ / __| |__\\\
+/// \\\\\
diff --git a/ascii/distro/arch_xferience b/ascii/distro/arch_xferience
new file mode 100644
index 00000000..f1757f92
--- /dev/null
+++ b/ascii/distro/arch_xferience
@@ -0,0 +1,19 @@
+${c1} ``--:::::::-.`
+ .-/+++ooooooooo+++:-`
+ `-/+oooooooooooooooooo++:.
+ -/+oooooo/+ooooooooo+/ooo++:`
+ `/+oo++oo. .+oooooo+.-: +:-o+-
+ `/+o/. -o. :oooooo+ ```:.+oo+-
+`:+oo- -/` :oooooo+ .`-`+oooo/.
+.+ooo+. .` `://///+-+..oooooo+:`
+-+ooo:` ``.-+oooooo+/`
+-+oo/` :+oooo/.
+.+oo: ..-/. . -+oo+/`
+`/++- -:::++::/. -+oo+-
+ ./o: `:///+- `./ooo+:`
+ .++- `` /-` -:/+oooo+:`
+ .:+/:`` `-:ooooooo++-
+ ./+o+//:...../+oooooooo++:`
+ `:/++ooooooooooooo++/-`
+ `.-//++++++//:-.`
+ ``````
diff --git a/ascii/distro/archbox b/ascii/distro/archbox
new file mode 100644
index 00000000..a35a15c6
--- /dev/null
+++ b/ascii/distro/archbox
@@ -0,0 +1,19 @@
+${c1} ...:+oh/:::..
+ ..-/oshhhhhh` `::::-.
+ .:/ohhhhhhhhhhhh` `-::::.
+ .+shhhhhhhhhhhhhhhhh` `.::-.
+ /`-:+shhhhhhhhhhhhhh` .-/+shh
+ / .:/ohhhhhhhhh` .:/ohhhhhhhh
+ / `-:+shhh` ..:+shhhhhhhhhhhh
+ / .:ohhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / `hhhhhhhhhhhhhhhhhhhh
+ / .+o+ `hhhhhhhhhhhhhhhhhhhh
+ / -hhhhh `hhhhhhhhhhhhhhhhhhhh
+ / ohhhhho `hhhhhhhhhhhhhhhhhhhh
+ /:::+`hhhhoos` `hhhhhhhhhhhhhhhhhs+`
+ `--/:` /: `hhhhhhhhhhhho/-
+ -/:. `hhhhhhs+:-`
+ ::::/ho/-`
diff --git a/ascii/distro/archlabs b/ascii/distro/archlabs
new file mode 100644
index 00000000..74f8a026
--- /dev/null
+++ b/ascii/distro/archlabs
@@ -0,0 +1,21 @@
+${c1} 'c'
+ 'kKk,
+ .dKKKx.
+ .oKXKXKd.
+ .l0XXXXKKo.
+ c0KXXXXKX0l.
+ :0XKKOxxOKX0l.
+ :OXKOc. .c0XX0l.
+ :OK0o. ${c4}...${c1}'dKKX0l.
+ :OX0c ${c4};xOx'${c1}'dKXX0l.
+ :0KKo.${c4}.o0XXKd'.${c1}lKXX0l.
+ c0XKd.${c4}.oKXXXXKd..${c1}oKKX0l.
+ .c0XKk;${c4}.l0K0OO0XKd..${c1}oKXXKo.
+ .l0XXXk:${c4},dKx,.'l0XKo.${c1}.kXXXKo.
+ .o0XXXX0d,${c4}:x; .oKKx'${c1}.dXKXXKd.
+ .oKXXXXKK0c.${c4};. :00c'${c1}cOXXXXXKd.
+ .dKXXXXXXXXk,${c4}. cKx'${c1}'xKXXXXXXKx'
+ 'xKXXXXK0kdl:. ${c4}.ok; ${c1}.cdk0KKXXXKx'
+ 'xKK0koc,.. ${c4}'c, ${c1} ..,cok0KKk,
+ ,xko:'. ${c4}.. ${c1} .':okx;
+ .,'. .',.
diff --git a/ascii/distro/artix b/ascii/distro/artix
new file mode 100644
index 00000000..3ac30d3d
--- /dev/null
+++ b/ascii/distro/artix
@@ -0,0 +1,19 @@
+${c1} d${c2}c.
+${c1} x${c2}dc.
+${c1} '.${c4}.${c1} d${c2}dlc.
+${c1} c${c2}0d:${c1}o${c2}xllc;
+${c1} :${c2}0ddlolc,lc,
+${c1} :${c1}ko${c4}.${c1}:${c2}0ddollc..dlc.
+${c1} ;${c1}K${c2}kxoOddollc' cllc.
+${c1} ,${c1}K${c2}kkkxdddllc, ${c4}.${c2}lll:
+${c1} ,${c1}X${c2}kkkddddlll;${c3}...';${c1}d${c2}llll${c3}dxk:
+${c1} ,${c1}X${c2}kkkddddllll${c3}oxxxddo${c2}lll${c3}oooo,
+${c3} xxk${c1}0${c2}kkkdddd${c1}o${c2}lll${c1}o${c3}ooooooolooooc;${c1}.
+${c3} ddd${c2}kkk${c1}d${c2}ddd${c1}ol${c2}lc:${c3}:;,'.${c3}... .${c2}lll;
+${c1} .${c3}xd${c1}x${c2}kk${c1}xd${c2}dl${c1}'cl:${c4}. ${c2}.llc,
+${c1} .${c1}0${c2}kkkxddl${c4}. ${c2};'${c4}. ${c2};llc.
+${c1} .${c1}K${c2}Okdcddl${c4}. ${c2}cllc${c4}.
+${c1} 0${c2}Okd''dc. .cll;
+${c1} k${c2}Okd' .llc,
+${c1} d${c2}Od, 'lc.
+${c1} :,${c4}. ${c2}...
diff --git a/ascii/distro/arya b/ascii/distro/arya
new file mode 100644
index 00000000..7d603e20
--- /dev/null
+++ b/ascii/distro/arya
@@ -0,0 +1,15 @@
+${c1} `oyyy/${c2}-yyyyyy+
+${c1} -syyyy/${c2}-yyyyyy+
+${c1} .syyyyy/${c2}-yyyyyy+
+${c1} :yyyyyy/${c2}-yyyyyy+
+${c1} `/ :yyyyyy/${c2}-yyyyyy+
+${c1} .+s :yyyyyy/${c2}-yyyyyy+
+${c1} .oys :yyyyyy/${c2}-yyyyyy+
+${c1} -oyys :yyyyyy/${c2}-yyyyyy+
+${c1} :syyys :yyyyyy/${c2}-yyyyyy+
+${c1} /syyyys :yyyyyy/${c2}-yyyyyy+
+${c1} +yyyyyys :yyyyyy/${c2}-yyyyyy+
+${c1} .oyyyyyyo. :yyyyyy/${c2}-yyyyyy+ ---------
+${c1} .syyyyyy+` :yyyyyy/${c2}-yyyyy+-+syyyyyyyy
+${c1} -syyyyyy/ :yyyyyy/${c2}-yyys:.syyyyyyyyyy
+${c1}:syyyyyy/ :yyyyyy/${c2}-yyo.:syyyyyyyyyyy
diff --git a/ascii/distro/bitrig b/ascii/distro/bitrig
new file mode 100644
index 00000000..8daebf5f
--- /dev/null
+++ b/ascii/distro/bitrig
@@ -0,0 +1,18 @@
+${c1} `hMMMMN+
+ -MMo-dMd`
+ oMN- oMN`
+ yMd /NM:
+ .mMmyyhMMs
+ :NMMMhsmMh
+ +MNhNNoyMm-
+ hMd.-hMNMN:
+ mMmsssmMMMo
+ .MMdyyhNMMMd
+ oMN.`/dMddMN`
+ yMm/hNm+./MM/
+.dMMMmo.``.NMo
+:NMMMNmmmmmMMh
+/MN/-------oNN:
+hMd. .dMh
+sm/ /ms
+
diff --git a/ascii/distro/blag b/ascii/distro/blag
new file mode 100644
index 00000000..047444cc
--- /dev/null
+++ b/ascii/distro/blag
@@ -0,0 +1,17 @@
+${c1} d
+ ,MK:
+ xMMMX:
+ .NMMMMMX;
+ lMMMMMMMM0clodkO0KXWW:
+ KMMMMMMMMMMMMMMMMMMX'
+ .;d0NMMMMMMMMMMMMMMMMMMK.
+ .;dONMMMMMMMMMMMMMMMMMMMMMMx
+'dKMMMMMMMMMMMMMMMMMMMMMMMMl
+ .:xKWMMMMMMMMMMMMMMMMMMM0.
+ .:xNMMMMMMMMMMMMMMMMMK.
+ lMMMMMMMMMMMMMMMMMMK.
+ ,MMMMMMMMWkOXWMMMMMM0
+ .NMMMMMNd. `':ldko
+ OMMMK:
+ oWk,
+ ;:
diff --git a/ascii/distro/blankon b/ascii/distro/blankon
new file mode 100644
index 00000000..43bbd786
--- /dev/null
+++ b/ascii/distro/blankon
@@ -0,0 +1,17 @@
+${c2} `./ohdNMMMMNmho+.` ${c1} .+oo:`
+${c2} -smMMMMMMMMMMMMMMMMmy-` ${c1}`yyyyy+
+${c2} `:dMMMMMMMMMMMMMMMMMMMMMMd/` ${c1}`yyyyys
+${c2} .hMMMMMMMNmhso/++symNMMMMMMMh- ${c1}`yyyyys
+${c2} -mMMMMMMms-` -omMMMMMMN-${c1}.yyyyys
+${c2}.mMMMMMMy. .yMMMMMMm:${c1}yyyyys
+${c2}sMMMMMMy `sMMMMMMh${c1}yyyyys
+${c2}NMMMMMN: .NMMMMMN${c1}yyyyys
+${c2}MMMMMMm. NMMMMMN${c1}yyyyys
+${c2}hMMMMMM+ /MMMMMMN${c1}yyyyys
+${c2}:NMMMMMN: :mMMMMMM+${c1}yyyyys
+${c2} oMMMMMMNs- .sNMMMMMMs.${c1}yyyyys
+${c2} +MMMMMMMNho:.` `.:ohNMMMMMMNo ${c1}`yyyyys
+${c2} -hMMMMMMMMNNNmmNNNMMMMMMMMh- ${c1}`yyyyys
+${c2} :yNMMMMMMMMMMMMMMMMMMNy:` ${c1}`yyyyys
+${c2} .:sdNMMMMMMMMMMNds/. ${c1}`yyyyyo
+${c2} `.:/++++/:.` ${c1}:oys+.
diff --git a/ascii/distro/bsd b/ascii/distro/bsd
new file mode 100644
index 00000000..91c9a7ae
--- /dev/null
+++ b/ascii/distro/bsd
@@ -0,0 +1,19 @@
+${c1} , ,
+ /( )`
+ \ \___ / |
+ /- _ `-/ '
+ (${c2}/\/ \ ${c1}\ /\
+ ${c2}/ / | ` ${c1}\
+ ${c3}O O ${c2}) ${c1}/ |
+ ${c2}`-^--'${c1}`< '
+ (_.) _ ) /
+ `.___/` /
+ `-----' /
+${c4}<----. __ / __ \
+${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====|
+<----' ${c1}`--' `.__,' \
+ | |
+ \ / /\
+ ${c5}______${c1}( (_ / \______/
+ ${c5},' ,-----' |
+ `--{__________)
diff --git a/ascii/distro/bunsenlabs b/ascii/distro/bunsenlabs
new file mode 100644
index 00000000..93796823
--- /dev/null
+++ b/ascii/distro/bunsenlabs
@@ -0,0 +1,20 @@
+${c1} `++
+ -yMMs
+ `yMMMMN`
+ -NMMMMMMm.
+ :MMMMMMMMMN-
+ .NMMMMMMMMMMM/
+ yMMMMMMMMMMMMM/
+`MMMMMMNMMMMMMMN.
+-MMMMN+ /mMMMMMMy
+-MMMm` `dMMMMMM
+`MMN. .NMMMMM.
+ hMy yMMMMM`
+ -Mo +MMMMN
+ /o +MMMMs
+ +MMMN`
+ hMMM:
+ `NMM/
+ +MN:
+ mh.
+ -/
diff --git a/ascii/distro/centos b/ascii/distro/centos
new file mode 100644
index 00000000..e56aa5dd
--- /dev/null
+++ b/ascii/distro/centos
@@ -0,0 +1,19 @@
+${c1} ..
+ .PLTJ.
+ <><><><>
+ ${c2}KKSSV' 4KKK ${c1}LJ${c4} KKKL.'VSSKK
+ ${c2}KKV' 4KKKKK ${c1}LJ${c4} KKKKAL 'VKK
+ ${c2}V' ' 'VKKKK ${c1}LJ${c4} KKKKV' ' 'V
+ ${c2}.4MA.' 'VKK ${c1}LJ${c4} KKV' '.4Mb.
+${c4} . ${c2}KKKKKA.' 'V ${c1}LJ${c4} V' '.4KKKKK ${c3}.
+${c4} .4D ${c2}KKKKKKKA.'' ${c1}LJ${c4} ''.4KKKKKKK ${c3}FA.
+${c4}
+${c4} 'VD ${c3}KKKKKKKK'.. ${c2}LJ ${c1}..'KKKKKKKK ${c3}FV
+${c4} ' ${c3}VKKKKK'. .4 ${c2}LJ ${c1}K. .'KKKKKV ${c3}'
+ ${c3} 'VK'. .4KK ${c2}LJ ${c1}KKA. .'KV'
+ ${c3}A. . .4KKKK ${c2}LJ ${c1}KKKKA. . .4
+ ${c3}KKA. 'KKKKK ${c2}LJ ${c1}KKKKK' .4KK
+ ${c3}KKSSA. VKKK ${c2}LJ ${c1}KKKV .4SSKK
+${c2} <><><><>
+ 'MKKM'
+ ''
diff --git a/ascii/distro/chakra b/ascii/distro/chakra
new file mode 100644
index 00000000..28227b92
--- /dev/null
+++ b/ascii/distro/chakra
@@ -0,0 +1,18 @@
+${c1} _ _ _ "kkkkkkkk.
+ ,kkkkkkkk., 'kkkkkkkkk,
+ ,kkkkkkkkkkkk., 'kkkkkkkkk.
+ ,kkkkkkkkkkkkkkkk,'kkkkkkkk,
+ ,kkkkkkkkkkkkkkkkkkk'kkkkkkk.
+ "''"''',;::,,"''kkk''kkkkk; __
+ ,kkkkkkkkkk, "k''kkkkk' ,kkkk
+ ,kkkkkkk' ., ' .: 'kkkk',kkkkkk
+ ,kkkkkkkk'.k' , ,kkkk;kkkkkkkkk
+ ,kkkkkkkk';kk 'k "'k',kkkkkkkkkkkk
+.kkkkkkkkk.kkkk.'kkkkkkkkkkkkkkkkkk'
+;kkkkkkkk''kkkkkk;'kkkkkkkkkkkkk''
+'kkkkkkk; 'kkkkkkkk.,""''"''""
+ ''kkkk; 'kkkkkkkkkk.,
+ ';' 'kkkkkkkkkkkk.,
+ ';kkkkkkkkkk'
+ ';kkkkkk'
+ "''"
diff --git a/ascii/distro/chaletos b/ascii/distro/chaletos
new file mode 100644
index 00000000..6473a5cc
--- /dev/null
+++ b/ascii/distro/chaletos
@@ -0,0 +1,20 @@
+${c1} `.//+osso+/:``
+ `/sdNNmhyssssydmNNdo:`
+ :hNmy+-` .-+hNNs-
+ /mMh/` `+:` `+dMd:
+ .hMd- -sNNMNo. /yyy /mMs`
+ -NM+ `/dMd/--omNh::dMM `yMd`
+ .NN+ .sNNs:/dMNy:/hNmo/s yMd`
+ hMs `/hNd+-smMMMMMMd+:omNy- `dMo
+:NM. .omMy:/hNMMMMMMMMMMNy:/hMd+` :Md`
+/Md` `sm+.omMMMMMMMMMMMMMMMMd/-sm+ .MN:
+/Md` MMMMMMMMMMMMMMMMMMMN .MN:
+:NN. MMMMMMm....--NMMMMMN -Mm.
+`dMo MMMMMMd mMMMMMN hMs
+ -MN: MMMMMMd mMMMMMN oMm`
+ :NM: MMMMMMd mMMMMMN +Mm-
+ -mMy. mmmmmmh dmmmmmh -hMh.
+ oNNs- :yMm/
+ .+mMdo:` `:smMd/`
+ -ohNNmhsoo++osshmNNh+.
+ `./+syyhhyys+:``
diff --git a/ascii/distro/chapeau b/ascii/distro/chapeau
new file mode 100644
index 00000000..6107817c
--- /dev/null
+++ b/ascii/distro/chapeau
@@ -0,0 +1,18 @@
+${c1} .-/-.
+ ////////.
+ ////////${c2}y+${c1}//.
+ ////////${c2}mMN${c1}/////.
+ ////////${c2}mMN+${c1}////////.
+ ////////////////////////.
+ /////////+${c2}shhddhyo${c1}+////////.
+ ////////${c2}ymMNmdhhdmNNdo${c1}///////.
+///////+${c2}mMms${c1}////////${c2}hNMh${c1}///////.
+///////${c2}NMm+${c1}//////////${c2}sMMh${c1}///////
+//////${c2}oMMNmmmmmmmmmmmmMMm${c1}///////
+//////${c2}+MMmssssssssssssss+${c1}///////
+`//////${c2}yMMy${c1}////////////////////
+ `//////${c2}smMNhso++oydNm${c1}////////
+ `///////${c2}ohmNMMMNNdy+${c1}///////
+ `//////////${c2}++${c1}//////////
+ `////////////////.
+ -////////-
diff --git a/ascii/distro/chrome b/ascii/distro/chrome
new file mode 100644
index 00000000..951bf190
--- /dev/null
+++ b/ascii/distro/chrome
@@ -0,0 +1,18 @@
+${c2} .,:loool:,.
+ .,coooooooooooooc,.
+ .,lllllllllllllllllllll,.
+ ;ccccccccccccccccccccccccc;
+${c1} '${c2}ccccccccccccccccccccccccccccc.
+${c1} ,oo${c2}c::::::::okO${c5}000${c3}0OOkkkkkkkkkkk:
+${c1}.ooool${c2};;;;:x${c5}K0${c4}kxxxxxk${c5}0X${c3}K0000000000.
+${c1}:oooool${c2};,;O${c5}K${c4}ddddddddddd${c5}KX${c3}000000000d
+${c1}lllllool${c2};l${c5}N${c4}dllllllllllld${c5}N${c3}K000000000
+${c1}lllllllll${c2}o${c5}M${c4}dccccccccccco${c5}W${c3}K000000000
+${c1};cllllllllX${c5}X${c4}c:::::::::c${c5}0X${c3}000000000d
+${c1}.ccccllllllO${c5}Nk${c4}c;,,,;cx${c5}KK${c3}0000000000.
+${c1} .cccccclllllxOO${c5}OOO${c1}Okx${c3}O0000000000;
+${c1} .:ccccccccllllllllo${c3}O0000000OOO,
+${c1} ,:ccccccccclllcd${c3}0000OOOOOOl.
+${c1} '::ccccccccc${c3}dOOOOOOOkx:.
+${c1} ..,::cccc${c3}xOOOkkko;.
+${c1} ..,:${c3}dOkxl:.
diff --git a/ascii/distro/cloveros b/ascii/distro/cloveros
new file mode 100644
index 00000000..9996c77c
--- /dev/null
+++ b/ascii/distro/cloveros
@@ -0,0 +1,20 @@
+${c1} `omo``omo`
+ `oNMMMNNMMMNo`
+ `oNMMMMMMMMMMMMNo`
+ oNMMMMMMMMMMMMMMMMNo
+ `sNMMMMMMMMMMMMMMNs`
+ `omo` `sNMMMMMMMMMMNs` `omo`
+ `oNMMMNo` `sNMMMMMMNs` `oNMMMNo`
+ `oNMMMMMMMNo` `oNMMNs` `oNMMMMMMMNo`
+oNMMMMMMMMMMMNo` `sy` `oNMMMMMMMMMMMNo
+`sNMMMMMMMMMMMMNo.${c2}oNNs${c1}.oNMMMMMMMMMMMMNs`
+`oNMMMMMMMMMMMMNs.${c2}oNNs${c1}.oNMMMMMMMMMMMMNo`
+oNMMMMMMMMMMMNs` `sy` `oNMMMMMMMMMMMNo
+ `oNMMMMMMMNs` `oNMMNo` `oNMMMMMMMNs`
+ `oNMMMNs` `sNMMMMMMNs` `oNMMMNs`
+ `oNs` `sNMMMMMMMMMMNs` `oNs`
+ `sNMMMMMMMMMMMMMMNs`
+ +NMMMMMMMMMMMMMMMMNo
+ `oNMMMMMMMMMMMMNo`
+ `oNMMMNNMMMNs`
+ `omo``oNs`
diff --git a/ascii/distro/coreos b/ascii/distro/coreos
new file mode 100644
index 00000000..605d5050
--- /dev/null
+++ b/ascii/distro/coreos
@@ -0,0 +1,20 @@
+${c1} .....
+ .';:cccccccc:;'.
+ ':ccccclc${c3}lllllllll${c1}cc:.
+ .;cccccccc${c3}lllllllllllllll${c1}c,
+ ;clllccccc${c3}llllllllllllllllll${c1}c,
+ .cllclccccc${c3}lllll${c2}lll${c3}llllllllllll${c1}c:
+ ccclclcccc${c3}cllll${c2}kWMMNKk${c3}llllllllll${c1}c:
+ :ccclclcccc${c3}llll${c2}oWMMMMMMWO${c3}lllllllll${c1}c,
+.ccllllllccc${c3}clll${c2}OMMMMMMMMM0${c3}lllllllll${c1}c
+.lllllclcccc${c3}llll${c2}KMMMMMMMMMMo${c3}llllllll${c1}c.
+.lllllllcccc${c3}clll${c2}KMMMMMMMMN0${c3}lllllllll${c1}c.
+.cclllllcccc${c3}lllld${c2}xkkxxdo${c3}llllllllllc${c1}lc
+ :cccllllllcccc${c3}lllccllllcclccc${c1}cccccc;
+ .ccclllllllcccccccc${c3}lll${c1}ccccclccccccc
+ .cllllllllllclcccclccclccllllcllc
+ :cllllllllccclcllllllllllllcc;
+ .cccccccccccccclcccccccccc:.
+ .;cccclccccccllllllccc,.
+ .';ccccclllccc:;..
+ .....
diff --git a/ascii/distro/crux b/ascii/distro/crux
new file mode 100644
index 00000000..b5af7baa
--- /dev/null
+++ b/ascii/distro/crux
@@ -0,0 +1,18 @@
+${c1} odddd
+ oddxkkkxxdoo
+ ddcoddxxxdoool
+ xdclodod olol
+ xoc xdd olol
+ xdc ${c2}k00${c1}Okdlol
+ xxd${c2}kOKKKOkd${c1}ldd
+ xdco${c2}xOkdlo${c1}dldd
+ ddc:cl${c2}lll${c1}oooodo
+ odxxdd${c3}xkO000kx${c1}ooxdo
+ oxdd${c3}x0NMMMMMMWW0od${c1}kkxo
+ oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx
+docldkXW${c3}MMMMMMMWWN${c1}Odolco
+xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c
+${c2}xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l
+${c2}dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd
+${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo
+${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo
diff --git a/ascii/distro/crux_small b/ascii/distro/crux_small
new file mode 100644
index 00000000..4b64001d
--- /dev/null
+++ b/ascii/distro/crux_small
@@ -0,0 +1,7 @@
+${c1} ___
+ (${c3}.· ${c1}|
+ (${c2}<> ${c1}|
+ / ${c3}__ ${c1}\\
+ ( ${c3}/ \\ ${c1}/|
+${c2}_${c1}/\\ ${c3}__)${c1}/${c2}_${c1})
+${c2}\/${c1}-____${c2}\/
diff --git a/ascii/distro/debian b/ascii/distro/debian
new file mode 100644
index 00000000..df88d079
--- /dev/null
+++ b/ascii/distro/debian
@@ -0,0 +1,17 @@
+${c2} _,met$$$$$gg.
+ ,g$$$$$$$$$$$$$$$P.
+ ,g$$P" """Y$$.".
+ ,$$P' `$$$.
+',$$P ,ggs. `$$b:
+`d$$' ,$P"' ${c1}.${c2} $$$
+ $$P d$' ${c1},${c2} $$P
+ $$: $$. ${c1}-${c2} ,d$$'
+ $$; Y$b._ _,d$P'
+ Y$$. ${c1}`.${c2}`"Y$$$$P"'
+${c2} `$$b ${c1}"-.__
+${c2} `Y$$
+ `Y$$.
+ `$$b.
+ `Y$$b.
+ `"Y$b._
+ `"""
diff --git a/ascii/distro/debian_small b/ascii/distro/debian_small
new file mode 100644
index 00000000..64cbb56c
--- /dev/null
+++ b/ascii/distro/debian_small
@@ -0,0 +1,6 @@
+ ${c1}_____
+ / __ \\
+| / |
+| \\___-
+-_
+ --_
diff --git a/ascii/distro/deepin b/ascii/distro/deepin
new file mode 100644
index 00000000..a44f4dad
--- /dev/null
+++ b/ascii/distro/deepin
@@ -0,0 +1,18 @@
+${c1} ............
+ .';;;;;. .,;,.
+ .,;;;;;;;. ';;;;;;;.
+ .;::::::::' .,::;;,''''',.
+ ,'.:::::::: .;;'. ';
+ ;' 'cccccc, ,' :: '.. .:
+ ,, :ccccc. ;: .c, '' :. ,;
+.l. cllll' ., .lc :; .l' l.
+.c :lllc ;cl: .l' .ll. :'
+.l 'looc. . ,o: 'oo' c,
+.o. .:ool::coc' .ooo' o.
+ :: ..... .;dddo ;c
+ l:... .';lddddo. ,o
+ lxxxxxdoolllodxxxxxxxxxc :l
+ ,dxxxxxxxxxxxxxxxxxxl. 'o,
+ ,dkkkkkkkkkkkkko;. .;o;
+ .;okkkkkdl;. .,cl:.
+ .,:cccccccc:,.
diff --git a/ascii/distro/desaos b/ascii/distro/desaos
new file mode 100644
index 00000000..81d8b55e
--- /dev/null
+++ b/ascii/distro/desaos
@@ -0,0 +1,16 @@
+${c1}███████████████████████
+███████████████████████
+███████████████████████
+███████████████████████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+████████ ███████
+██████████████████████████████
+██████████████████████████████
+████████████████████████
+████████████████████████
+████████████████████████
diff --git a/ascii/distro/devuan b/ascii/distro/devuan
new file mode 100644
index 00000000..4173782f
--- /dev/null
+++ b/ascii/distro/devuan
@@ -0,0 +1,15 @@
+${c1} ..,,;;;::;,..
+ `':ddd;:,.
+ `'dPPd:,.
+ `:b$$b`.
+ 'P$$$d`
+ .$$$$$`
+ ;$$$$$P
+ .:P$$$$$$`
+ .,:b$$$$$$$;'
+ .,:dP$$$$$$$$b:'
+ .,:;db$$$$$$$$$$Pd'`
+ ,db$$$$$$$$$$$$$$b:'`
+:$$$$$$$$$$$$b:'`
+ `$$$$$bd:''`
+ `'''`
diff --git a/ascii/distro/dracos b/ascii/distro/dracos
new file mode 100644
index 00000000..3eb2a70b
--- /dev/null
+++ b/ascii/distro/dracos
@@ -0,0 +1,13 @@
+${c1} `-:/-
+ -os:
+ -os/`
+ :sy+-`
+ `/yyyy+.
+ `+yyyyo-
+ `/yyyys:
+`:osssoooo++- +yyyyyy/`
+ ./yyyyyyo yo`:syyyy+.
+ -oyyy+ +- :yyyyyo-
+ `:sy: `. `/yyyyys:
+ ./o/.` .oyyso+oo:`
+ :+oo+//::::///:-.` `.`
diff --git a/ascii/distro/dragonflybsd b/ascii/distro/dragonflybsd
new file mode 100644
index 00000000..3276d4f0
--- /dev/null
+++ b/ascii/distro/dragonflybsd
@@ -0,0 +1,18 @@
+ ${c1} |
+ .-.
+ ${c3} ()${c1}I${c3}()
+ ${c1} "==.__:-:__.=="
+ "==.__/~|~\__.=="
+ "==._( Y )_.=="
+ ${c2}.-'~~""~=--...,__${c1}\/|\/${c2}__,...--=~""~~'-.
+( ..=${c1}\\=${c1}/${c2}=.. )
+ `'-. ,.-"`;${c1}/=\\${c2};"-.,_ .-'`
+ `~"-=-~` .-~` ${c1}|=|${c2} `~-. `~-=-"~`
+ .-~` /${c1}|=|${c2}\ `~-.
+ .~` / ${c1}|=|${c2} \ `~.
+ .-~` .' ${c1}|=|${c2} `. `~-.
+ (` _,.-="` ${c1} |=|${c2} `"=-.,_ `)
+ `~"~"` ${c1} |=|${c2} `"~"~`
+ ${c1} /=\\
+ \\=/
+ ^
diff --git a/ascii/distro/elementary b/ascii/distro/elementary
new file mode 100644
index 00000000..8614c746
--- /dev/null
+++ b/ascii/distro/elementary
@@ -0,0 +1,17 @@
+${c2} eeeeeeeeeeeeeeeee
+ eeeeeeeeeeeeeeeeeeeeeee
+ eeeee eeeeeeeeeeee eeeee
+ eeee eeeee eee eeee
+ eeee eeee eee eeee
+eee eee eee eee
+eee eee eee eee
+ee eee eeee eeee
+ee eee eeeee eeeeee
+ee eee eeeee eeeee ee
+eee eeee eeeeee eeeee eee
+eee eeeeeeeeee eeeeee eee
+ eeeeeeeeeeeeeeeeeeeeeeee eeeee
+ eeeeeeee eeeeeeeeeeee eeee
+ eeeee eeeee
+ eeeeeee eeeeeee
+ eeeeeeeeeeeeeeeee
diff --git a/ascii/distro/endless b/ascii/distro/endless
new file mode 100644
index 00000000..fbff54b9
--- /dev/null
+++ b/ascii/distro/endless
@@ -0,0 +1,21 @@
+${c1} `:+yhmNMMMMNmhy+:`
+ -odMMNhso//////oshNMMdo-
+ /dMMh+. .+hMMd/
+ /mMNo` `oNMm:
+ `yMMo` `oMMy`
+ `dMN- -NMd`
+ hMN. .NMh
+/MM/ -os` /MM/
+dMm `smNmmhs/- `:sNMd+ `` mMd
+MMy oMd--:+yMMMMMNo.:ohmMMMNy` yMM
+MMy -NNyyhmMNh+oNMMMMMy:. dMo yMM
+dMm `/++/-``/yNNh+/sdNMNddMm- mMd
+/MM/ `dNy: `-::- /MM/
+ hMN. .NMh
+ `dMN- -NMd`
+ `yMMo` `oMMy`
+ /mMNo` `oNMm/
+ /dMMh+. .+hMMd/
+ -odMMNhso//////oshNMMdo-
+ `:+yhmNMMMMNmhy+:`
+
diff --git a/ascii/distro/exherbo b/ascii/distro/exherbo
new file mode 100644
index 00000000..edacf81a
--- /dev/null
+++ b/ascii/distro/exherbo
@@ -0,0 +1,22 @@
+${c2} ,
+OXo.
+NXdX0: .cok0KXNNXXK0ko:.
+KX '0XdKMMK;.xMMMk, .0MMMMMXx; ...
+'NO..xWkMMx kMMM cMMMMMX,NMWOxOXd.
+ cNMk NK .oXM. OMMMMO. 0MMNo kW.
+ lMc o: ., .oKNk; ;NMMWlxW'
+ ;Mc .. .,,' .0M${c1}g;${c2}WMN'dWMMMMMMO
+ XX ,WMMMMW. cM${c1}cfli${c2}WMKlo. .kMk
+.Mo .WM${c1}GD${c2}MW. XM${c1}WO0${c2}MMk oMl
+,M: ,XMMWx::,''oOK0x; NM.
+'Ml ,kNKOxxxxxkkO0XXKOd:. oMk
+ NK .0Nxc${c3}:::::::::::::::${c2}fkKNk, .MW
+ ,Mo .NXc${c3}::${c2}qXWXb${c3}::::::::::${c2}oo${c3}::${c2}lNK. .MW
+ ;Wo oMd${c3}:::${c2}oNMNP${c3}::::::::${c2}oWMMMx${c3}:${c2}c0M; lMO
+ 'NO;W0c${c3}:::::::::::::::${c2}dMMMMO${c3}::${c2}lMk .WM'
+ xWONXdc${c3}::::::::::::::${c2}oOOo${c3}::${c2}lXN. ,WMd
+ 'KWWNXXK0Okxxo,${c3}:::::::${c2},lkKNo xMMO
+ :XMNxl,';:lodxkOO000Oxc. .oWMMo
+ 'dXMMXkl;,. .,o0MMNo'
+ ':d0XWMMMMWNNNNMMMNOl'
+ ':okKXWNKkl'
diff --git a/ascii/distro/fedora b/ascii/distro/fedora
new file mode 100644
index 00000000..f0ba391b
--- /dev/null
+++ b/ascii/distro/fedora
@@ -0,0 +1,17 @@
+${c1} /:-------------:\\
+ :-------------------::
+ :-----------${c2}/shhOHbmp${c1}---:\\
+ /-----------${c2}omMMMNNNMMD ${c1}---:
+ :-----------${c2}sMMMMNMNMP${c1}. ---:
+ :-----------${c2}:MMMdP${c1}------- ---\\
+,------------${c2}:MMMd${c1}-------- ---:
+:------------${c2}:MMMd${c1}------- .---:
+:---- ${c2}oNMMMMMMMMMNho${c1} .----:
+:-- .${c2}+shhhMMMmhhy++${c1} .------/
+:- -------${c2}:MMMd${c1}--------------:
+:- --------${c2}/MMMd${c1}-------------;
+:- ------${c2}/hMMMy${c1}------------:
+:--${c2} :dMNdhhdNMMNo${c1}------------;
+:---${c2}:sdNMMMMNds:${c1}------------:
+:------${c2}:://:${c1}-------------::
+:---------------------://
diff --git a/ascii/distro/freebsd b/ascii/distro/freebsd
new file mode 100644
index 00000000..6ef67782
--- /dev/null
+++ b/ascii/distro/freebsd
@@ -0,0 +1,15 @@
+ ${c2}``` ${c1}`
+ ${c2}` `.....---...${c1}....--.``` -/
+ ${c2}+o .--` ${c1}/y:` +.
+ ${c2} yo`:. ${c1}:o `+-
+ ${c2}y/ ${c1}-/` -o/
+ ${c2}.- ${c1}::/sy+:.
+ ${c2}/ ${c1}`-- /
+ ${c2}`: ${c1}:`
+ ${c2}`: ${c1}:`
+ ${c2}/ ${c1}/
+ ${c2}.- ${c1}-.
+ ${c2}-- ${c1}-.
+ ${c2}`:` ${c1}`:`
+ .-- `--.
+ .---.....----.
diff --git a/ascii/distro/freebsd_small b/ascii/distro/freebsd_small
new file mode 100644
index 00000000..943c147e
--- /dev/null
+++ b/ascii/distro/freebsd_small
@@ -0,0 +1,7 @@
+${c1} /\\ _____ /\\
+ \\_) (_/
+ / \
+| |
+| |
+ \ /
+ --_____--
diff --git a/ascii/distro/frugalware b/ascii/distro/frugalware
new file mode 100644
index 00000000..b11961ba
--- /dev/null
+++ b/ascii/distro/frugalware
@@ -0,0 +1,23 @@
+${c1} `++/::-.`
+ /o+++++++++/::-.`
+ `o+++++++++++++++o++/::-.`
+ /+++++++++++++++++++++++oo++/:-.``
+ .o+ooooooooooooooooooosssssssso++oo++/:-`
+ ++osoooooooooooosssssssssssssyyo+++++++o:
+ -o+ssoooooooooooosssssssssssssyyo+++++++s`
+ o++ssoooooo++++++++++++++sssyyyyo++++++o:
+ :o++ssoooooo${c2}/-------------${c1}+syyyyyo+++++oo
+ `o+++ssoooooo${c2}/-----${c1}+++++ooosyyyyyyo++++os:
+ /o+++ssoooooo${c2}/-----${c1}ooooooosyyyyyyyo+oooss
+ .o++++ssooooos${c2}/------------${c1}syyyyyyhsosssy-
+ ++++++ssooooss${c2}/-----${c1}+++++ooyyhhhhhdssssso
+ -s+++++syssssss${c2}/-----${c1}yyhhhhhhhhhhhddssssy.
+ sooooooyhyyyyyh${c2}/-----${c1}hhhhhhhhhhhddddyssy+
+ :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy`
+ yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/
+-ysooooooydhhhhhhhhhhhddddddddddddddddssy
+ .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:
+ ``.-/+oosysssssssssssssssssssssss
+ ``.:/+osyysssssssssssssh.
+ `-:/+osyyssssyo
+ .-:+++`
diff --git a/ascii/distro/funtoo b/ascii/distro/funtoo
new file mode 100644
index 00000000..13079091
--- /dev/null
+++ b/ascii/distro/funtoo
@@ -0,0 +1,11 @@
+${c2} _______ ____
+ /MMMMMMM/ /MMMM| _____ _____
+ __/M${c1}.MMM.${c2}M/_____________|M${c1}.M${c2}MM|/MMMMM\/MMMMM\\
+|MMMM${c1}MM'${c2}MMMMMMMMMMMMMMMMMMM${c1}MM${c2}MMMM${c1}.MMMM..MMMM.${c2}MM\\
+|MM${c1}MMMMMMM${c2}/m${c1}MMMMMMMMMMMMMMMMMMMMMM${c2}MMMM${c1}MM${c2}MMMM${c1}MM${c2}MM|
+|MMMM${c1}MM${c2}MMM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MMMMM${c1}\MMM${c2}MMM${c1}MM${c2}MMMM${c1}MM${c2}MMMM${c1}MM${c2}MM|
+ |MM${c1}MM${c2}MMM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MMM${c2}MMMM${c1}'MMMM''MMMM'${c2}MM/
+ |MM${c1}MM${c2}MMM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MMM${c2}MMM\MMMMM/\MMMMM/
+ |MM${c1}MM${c2}MMM${c1}MM${c2}MMMMMM${c1}MM${c2}MM${c1}MM${c2}MM${c1}MMMMM'${c2}M|
+ |MM${c1}MM${c2}MMM${c1}MMMMMMMMMMMMMMMMM MM'${c2}M/
+ |MMMMMMMMMMMMMMMMMMMMMMMMMMMM/
diff --git a/ascii/distro/galliumos b/ascii/distro/galliumos
new file mode 100644
index 00000000..ae9681d5
--- /dev/null
+++ b/ascii/distro/galliumos
@@ -0,0 +1,19 @@
+${c1}sooooooooooooooooooooooooooooooooooooo+:
+yyooooooooooooooooooooooooooooooooo+/:::
+yyysoooooooooooooooooooooooooooo+/::::::
+yyyyyoooooooooooooooooooooooo+/:::::::::
+yyyyyysoooooooooooooooooo++/::::::::::::
+yyyyyyysoooooooooooooo++/:::::::::::::::
+yyyyyyyyysoooooo${c2}sydddys${c1}+/:::::::::::::::
+yyyyyyyyyysooo${c2}smMMMMMMMNd${c1}+::::::::::::::
+yyyyyyyyyyyyo${c2}sMMMMMMMMMMMN${c1}/:::::::::::::
+yyyyyyyyyyyyy${c2}dMMMMMMMMMMMM${c1}o//:::::::::::
+yyyyyyyyyyyyy${c2}hMMMMMMMMMMMm${c1}--//::::::::::
+yyyyyyyyyyyyyy${c2}hmMMMMMMMNy${c1}:..-://::::::::
+yyyyyyyyyyyyyyy${c2}yyhhyys+:${c1}......://:::::::
+yyyyyyyyyyyyyyys+:--...........-///:::::
+yyyyyyyyyyyys+:--................://::::
+yyyyyyyyyo+:-.....................-//:::
+yyyyyyo+:-..........................://:
+yyyo+:-..............................-//
+o/:-...................................:
diff --git a/ascii/distro/gentoo b/ascii/distro/gentoo
new file mode 100644
index 00000000..3bec6daa
--- /dev/null
+++ b/ascii/distro/gentoo
@@ -0,0 +1,18 @@
+${c1} -/oyddmdhs+:.
+ -o${c2}dNMMMMMMMMNNmhy+${c1}-`
+ -y${c2}NMMMMMMMMMMMNNNmmdhy${c1}+-
+ `o${c2}mMMMMMMMMMMMMNmdmmmmddhhy${c1}/`
+ om${c2}MMMMMMMMMMMN${c1}hhyyyo${c2}hmdddhhhd${c1}o`
+.y${c2}dMMMMMMMMMMd${c1}hs++so/s${c2}mdddhhhhdm${c1}+`
+ oy${c2}hdmNMMMMMMMN${c1}dyooy${c2}dmddddhhhhyhN${c1}d.
+ :o${c2}yhhdNNMMMMMMMNNNmmdddhhhhhyym${c1}Mh
+ .:${c2}+sydNMMMMMNNNmmmdddhhhhhhmM${c1}my
+ /m${c2}MMMMMMNNNmmmdddhhhhhmMNh${c1}s:
+ `o${c2}NMMMMMMMNNNmmmddddhhdmMNhs${c1}+`
+ `s${c2}NMMMMMMMMNNNmmmdddddmNMmhs${c1}/.
+ /N${c2}MMMMMMMMNNNNmmmdddmNMNdso${c1}:`
++M${c2}MMMMMMNNNNNmmmmdmNMNdso${c1}/-
+yM${c2}MNNNNNNNmmmmmNNMmhs+/${c1}-`
+/h${c2}MMNNNNNNNNMNdhs++/${c1}-`
+`/${c2}ohdmmddhys+++/:${c1}.`
+ `-//////:--.
diff --git a/ascii/distro/gentoo_small b/ascii/distro/gentoo_small
new file mode 100644
index 00000000..a1e7a0ba
--- /dev/null
+++ b/ascii/distro/gentoo_small
@@ -0,0 +1,7 @@
+${c1} _-----_
+( \\
+\ 0 \\
+${c2} \ )
+ / _/
+( _-
+\____-
diff --git a/ascii/distro/gnewsense b/ascii/distro/gnewsense
new file mode 100644
index 00000000..b98b859b
--- /dev/null
+++ b/ascii/distro/gnewsense
@@ -0,0 +1,12 @@
+${c1} ..,,,,..
+ .oocchhhhhhhhhhccoo.
+ .ochhlllllllc hhhhhh ollllllhhco.
+ ochlllllllllll hhhllllllhhh lllllllllllhco
+ .cllllllllllllll hlllllo +hllh llllllllllllllc.
+ollllllllllhco'' hlllllo +hllh ``ochllllllllllo
+hllllllllc' hllllllllllllh `cllllllllh
+ollllllh +llllllllllll+ hllllllo
+ `cllllh. ohllllllho .hllllc'
+ ochllc. ++++ .cllhco
+ `+occooo+. .+ooocco+'
+ `+oo++++ ++++oo+'
diff --git a/ascii/distro/gnu b/ascii/distro/gnu
new file mode 100644
index 00000000..e4b4c017
--- /dev/null
+++ b/ascii/distro/gnu
@@ -0,0 +1,18 @@
+${c1} _-`````-, ,- '- .
+ .' .- - | | - -. `.
+ /.' / `. \
+:/ : _... ..._ `` :
+:: : /._ .`:'_.._\. || :
+:: `._ ./ ,` : \ . _.'' .
+`:. / | -. \-. \\_ /
+ \:._ _/ .' .@) \@) ` `\ ,.'
+ _/,--' .- .\,-.`--`.
+ ,'/'' (( \ ` )
+ /'/' \ `-' (
+ '/'' `._,-----'
+ ''/' .,---'
+ ''/' ;:
+ ''/'' ''/
+ ''/''/''
+ '/'/'
+ `;
diff --git a/ascii/distro/gobolinux b/ascii/distro/gobolinux
new file mode 100644
index 00000000..443cfbca
--- /dev/null
+++ b/ascii/distro/gobolinux
@@ -0,0 +1,6 @@
+${c1}_____ _
+/ ____| | |
+| | __ ___ | |__ ___
+| | |_ |/ _ \| '_ \ / _ \
+| |__| | (_) | |_) | (_) |
+ \_____|\___/|_.__/ \___/
diff --git a/ascii/distro/grombyang b/ascii/distro/grombyang
new file mode 100644
index 00000000..6dfbea9b
--- /dev/null
+++ b/ascii/distro/grombyang
@@ -0,0 +1,18 @@
+${c1} eeeeeeeeeeee
+ eeeeeeeeeeeeeeeee
+ eeeeeeeeeeeeeeeeeeeeeee
+ eeeee ${c2}.o+ ${c1}eeee
+ eeee ${c2}`ooo/ ${c1}eeee
+ eeee ${c2}`+oooo: ${c1}eeee
+eee ${c2}`+oooooo: ${c1}eee
+eee ${c2}-+oooooo+: ${c1}eee
+ee ${c2}`/:oooooooo+: ${c1}ee
+ee ${c2}`/+ +++ +: ${c1}ee
+ee ${c2}+o+\ ${c1}ee
+eee ${c2}+o+\ ${c1}eee
+eee ${c2}// \\ooo/ \\\ ${c1}eee
+ eee ${c2}//++++oooo++++\\\ ${c1}eee
+ eeee ${c2}::::++oooo+::::: ${c1}eeee
+ eeeee ${c3}Grombyang OS ${c1} eeee
+ eeeeeeeeeeeeeeeeeeeeeee
+ eeeeeeeeeeeeeeeee
diff --git a/ascii/distro/guixsd b/ascii/distro/guixsd
new file mode 100644
index 00000000..6d6345ec
--- /dev/null
+++ b/ascii/distro/guixsd
@@ -0,0 +1,10 @@
+${c1} .. `.
+ `--..```..` `..```..--`
+ .-:///-:::. `-:::///:-.
+ ````.:::` `:::.````
+ -//:` -::-
+ ://: -::-
+ `///- .:::`
+ -+++-:::.
+ :+/:::-
+ `-....`
diff --git a/ascii/distro/haiku b/ascii/distro/haiku
new file mode 100644
index 00000000..56a7feb4
--- /dev/null
+++ b/ascii/distro/haiku
@@ -0,0 +1,17 @@
+${c2} :dc'
+ 'l:;'${c1},${c2}'ck. .;dc:.
+ co ${c1}..${c2}k. .;; ':o.
+ co ${c1}..${c2}k. ol ${c1}.${c2}0.
+ co ${c1}..${c2}k. oc ${c1}..${c2}0.
+ co ${c1}..${c2}k. oc ${c1}..${c2}0.
+.Ol,. co ${c1}...''${c2}Oc;kkodxOdddOoc,.
+ ';lxxlxOdxkxk0kd${c1}oooll${c2}dl${c1}ccc:${c2}clxd;
+ ..${c1}oOolllllccccccc:::::${c2}od;
+ cx:ooc${c1}:::::::;${c2}cooolcX.
+ cd${c1}.${c2}''cloxdoollc' ${c1}...${c2}0.
+ cd${c1}......${c2}k;${c1}.${c2}xl${c1}.... .${c2}0.
+ .::c${c1};..${c2}cx;${c1}.${c2}xo${c1}..... .${c2}0.
+ '::c'${c1}...${c2}do${c1}..... .${c2}K,
+ cd,.${c1}....:${c2}O,${c1}
+ ':clod:'${c1}
+ ${c1}
diff --git a/ascii/distro/irix b/ascii/distro/irix
new file mode 100644
index 00000000..57ce2121
--- /dev/null
+++ b/ascii/distro/irix
@@ -0,0 +1,19 @@
+${c1} ./ohmNd/ +dNmho/-
+ `:+ydNMMMMMMMM.-MMMMMMMMMdyo:.
+ `hMMMMMMNhs/sMMM-:MMM+/shNMMMMMMh`
+ -NMMMMMmo-` /MMM-/MMM- `-omMMMMMN.
+ `.`-+hNMMMMMNhyMMM-/MMMshmMMMMMmy+...`
++mMNds:-:sdNMMMMMMMyyMMMMMMMNdo:.:sdMMm+
+dMMMMMMmy+.-/ymNMMMMMMMMNmy/-.+hmMMMMMMd
+oMMMMmMMMMNds:.+MMMmmMMN/.-odNMMMMmMMMM+
+.MMMM-/ymMMMMMmNMMy..hMMNmMMMMMmy/-MMMM.
+ hMMM/ `/dMMMMMMMN////NMMMMMMMd/. /MMMh
+ /MMMdhmMMMmyyMMMMMMMMMMMMhymMMMmhdMMM:
+ `mMMMMNho//sdMMMMM//NMMMMms//ohNMMMMd
+ `/so/:+ymMMMNMMMM` mMMMMMMMmh+::+o/`
+ `yNMMNho-yMMMM` NMMMm.+hNMMNh`
+ -MMMMd: oMMMM. NMMMh :hMMMM-
+ -yNMMMmooMMMM- NMMMyomMMMNy-
+ .omMMMMMMMM-`NMMMMMMMmo.
+ `:hMMMMMM. NMMMMMh/`
+ .odNm+ /dNms.
diff --git a/ascii/distro/kali b/ascii/distro/kali
new file mode 100644
index 00000000..d1e01da6
--- /dev/null
+++ b/ascii/distro/kali
@@ -0,0 +1,21 @@
+${c1}..............
+ ..,;:ccc,.
+ ......''';lxO.
+.....''''..........,:ld;
+ .';;;:::;,,.x,
+ ..'''. 0Xxoc:,. ...
+ .... ,ONkc;,;cokOdc',.
+ . OMo ':${c2}dd${c1}o.
+ dMc :OO;
+ 0M. .:o.
+ ;Wd
+ ;XO,
+ ,d0Odlc;,..
+ ..',;:cdOOd::,.
+ .:d;.':;.
+ 'd, .'
+ ;l ..
+ .o
+ c
+ .'
+ .
diff --git a/ascii/distro/kaos b/ascii/distro/kaos
new file mode 100644
index 00000000..830835e4
--- /dev/null
+++ b/ascii/distro/kaos
@@ -0,0 +1,16 @@
+${c1} ..
+ ..... ..OSSAAAAAAA..
+ .KKKKSS. .SSAAAAAAAAAAA.
+.KKKKKSO. .SAAAAAAAAAA...
+KKKKKKS. .OAAAAAAAA.
+KKKKKKS. .OAAAAAA.
+KKKKKKS. .SSAA..
+.KKKKKS..OAAAAAAAAAAAA........
+ DKKKKO.=AA=========A===AASSSO..
+ AKKKS.==========AASSSSAAAAAASS.
+ .=KKO..========ASS.....SSSSASSSS.
+ .KK. .ASS..O.. =SSSSAOSS:
+ .OK. .ASSSSSSSO...=A.SSA.
+ .K ..SSSASSSS.. ..SSA.
+ .SSS.AAKAKSSKA.
+ .SSS....S..
diff --git a/ascii/distro/kde b/ascii/distro/kde
new file mode 100644
index 00000000..16809700
--- /dev/null
+++ b/ascii/distro/kde
@@ -0,0 +1,19 @@
+${c1} `..---+/---..`
+ `---.`` `` `.---.`
+ .--.` `` `-:-.
+ `:/: `.----//----.` :/-
+ .:. `---` `--.` .:`
+ .:` `--` .:- `:.
+ `/ `:. `.-::-.` -:` `/`
+ /. /. `:++++++++:` .: .:
+`/ .: `+++++++++++/ /` `+`
+/+` -- .++++++++++++` :. .+:
+`/ .: `+++++++++++/ /` `+`
+ /` /. `:++++++++:` .: .:
+ ./ `:. `.:::-.` -:` `/`
+ .:` `--` .:- `:.
+ .:. `---` `--.` .:`
+ `:/: `.----//----.` :/-
+ .-:.` `` `-:-.
+ `---.`` `` `.---.`
+ `..---+/---..`
diff --git a/ascii/distro/kogaion b/ascii/distro/kogaion
new file mode 100644
index 00000000..47ed962e
--- /dev/null
+++ b/ascii/distro/kogaion
@@ -0,0 +1,20 @@
+${c1} ;; ,;
+ ;;; ,;;
+ ,;;;; ;;;;
+ ,;;;;;;;; ;;;;
+ ;;;;;;;;;;; ;;;;;
+ ,;;;;;;;;;;;; ';;;;;,
+ ;;;;;;;;;;;;;;, ';;;;;;;
+ ;;;;;;;;;;;;;;;;;, ';;;;;
+; ';;;;;;;;;;;;;;;;;;, ;;;
+;;;, ';;;;;;;;;;;;;;;;;;;,;;
+;;;;;, ';;;;;;;;;;;;;;;;;;,
+;;;;;;;;, ';;;;;;;;;;;;;;;;,
+;;;;;;;;;;;;, ';;;;;;;;;;;;;;
+';;;;;;;;;;;;; ';;;;;;;;;;;;;
+ ';;;;;;;;;;;;;, ';;;;;;;;;;;
+ ';;;;;;;;;;;;; ;;;;;;;;;;
+ ';;;;;;;;;;;; ;;;;;;;;
+ ';;;;;;;; ;;;;;;
+ ';;;;; ;;;;
+ ';;; ;;
diff --git a/ascii/distro/korora b/ascii/distro/korora
new file mode 100644
index 00000000..709289af
--- /dev/null
+++ b/ascii/distro/korora
@@ -0,0 +1,16 @@
+${c2} ____________
+ _add55555555554${c1}:
+ _w?'${c1}``````````'${c2})k${c1}:
+ _Z'${c1}`${c2} ]k${c1}:
+ m(${c1}`${c2} )k${c1}:
+ _.ss${c1}`${c2}m[${c1}`${c2}, ]e${c1}:
+ .uY"^`${c1}`${c2}Xc${c1}`${c2}?Ss. d(${c1}`
+ jF'${c1}`${c2} `@. ${c1}`${c2}Sc .jr${c1}`
+ jr${c1}`${c2} `?n_ ${c1}`${c2}$; _a2"${c1}`
+.m${c1}:${c2} `~M${c1}`${c2}1k${c1}`${c2}5?!`${c1}`
+:#${c1}:${c2} ${c1}`${c2})e${c1}```
+:m${c1}:${c2} ,#'${c1}`
+:#${c1}:${c2} .s2'${c1}`
+:m,________.aa7^${c1}`
+:#baaaaaaas!J'${c1}`
+ ```````````
diff --git a/ascii/distro/kslinux b/ascii/distro/kslinux
new file mode 100644
index 00000000..53385bd8
--- /dev/null
+++ b/ascii/distro/kslinux
@@ -0,0 +1,11 @@
+${c1} K K U U RRRR ooo
+ K K U U R R o o
+ KKK U U RRRR o o
+ K K U U R R o o
+ K K UUU R R ooo
+
+${c2} SSS AAA W W AAA
+ S A A W W A A
+ SSS AAAAA W W W AAAAA
+ S A A WW WW A A
+ SSS A A W W A A
diff --git a/ascii/distro/kubuntu b/ascii/distro/kubuntu
new file mode 100644
index 00000000..6302ff0f
--- /dev/null
+++ b/ascii/distro/kubuntu
@@ -0,0 +1,20 @@
+${c1} `.:/ossyyyysso/:.
+ .:oyyyyyyyyyyyyyyyyyyo:`
+ -oyyyyyyyo${c2}dMMy${c1}yyyyyyysyyyyo-
+ -syyyyyyyyyy${c2}dMMy${c1}oyyyy${c2}dmMMy${c1}yyyys-
+ oyyys${c2}dMy${c1}syyyy${c2}dMMMMMMMMMMMMMy${c1}yyyyyyo
+ `oyyyy${c2}dMMMMy${c1}syysoooooo${c2}dMMMMy${c1}yyyyyyyyo`
+ oyyyyyy${c2}dMMMMy${c1}yyyyyyyyyyys${c2}dMMy${c1}sssssyyyo
+-yyyyyyyy${c2}dMy${c1}syyyyyyyyyyyyyys${c2}dMMMMMy${c1}syyy-
+oyyyysoo${c2}dMy${c1}yyyyyyyyyyyyyyyyyy${c2}dMMMMy${c1}syyyo
+yyys${c2}dMMMMMy${c1}yyyyyyyyyyyyyyyyyysosyyyyyyyy
+yyys${c2}dMMMMMy${c1}yyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+oyyyyysos${c2}dy${c1}yyyyyyyyyyyyyyyyyy${c2}dMMMMy${c1}syyyo
+-yyyyyyyy${c2}dMy${c1}syyyyyyyyyyyyyys${c2}dMMMMMy${c1}syyy-
+ oyyyyyy${c2}dMMMy${c1}syyyyyyyyyyys${c2}dMMy${c1}oyyyoyyyo
+ `oyyyy${c2}dMMMy${c1}syyyoooooo${c2}dMMMMy${c1}oyyyyyyyyo
+ oyyysyyoyyyys${c2}dMMMMMMMMMMMy${c1}yyyyyyyo
+ -syyyyyyyyy${c2}dMMMy${c1}syyy${c2}dMMMy${c1}syyyys-
+ -oyyyyyyy${c2}dMMy${c1}yyyyyysosyyyyo-
+ ./oyyyyyyyyyyyyyyyyyyo/.
+ `.:/oosyyyysso/:.`
diff --git a/ascii/distro/linux b/ascii/distro/linux
new file mode 100644
index 00000000..f31dd29f
--- /dev/null
+++ b/ascii/distro/linux
@@ -0,0 +1,12 @@
+${c2} #####
+${c2} #######
+${c2} ##${c1}O${c2}#${c1}O${c2}##
+${c2} #${c3}#####${c2}#
+${c2} ##${c1}##${c3}###${c1}##${c2}##
+${c2} #${c1}##########${c2}##
+${c2} #${c1}############${c2}##
+${c2} #${c1}############${c2}###
+${c3} ##${c2}#${c1}###########${c2}##${c3}#
+${c3}######${c2}#${c1}#######${c2}#${c3}######
+${c3}#######${c2}#${c1}#####${c2}#${c3}#######
+${c3} #####${c2}#######${c3}#####
diff --git a/ascii/distro/lmde b/ascii/distro/lmde
new file mode 100644
index 00000000..5161881e
--- /dev/null
+++ b/ascii/distro/lmde
@@ -0,0 +1,17 @@
+ ${c2}`.-::---..
+${c1} .:++++ooooosssoo:.
+ .+o++::. `.:oos+.
+${c1} :oo:.` -+oo${c2}:
+${c1} ${c2}`${c1}+o/` .${c2}::::::${c1}-. .++-${c2}`
+${c1}${c2}`${c1}/s/ .yyyyyyyyyyo: +o-${c2}`
+${c1}${c2}`${c1}so .ss ohyo` :s-${c2}:
+${c1}${c2}`${c1}s/ .ss h m myy/ /s`${c2}`
+${c1}`s: `oo s m Myy+-o:`
+`oo :+sdoohyoydyso/.
+ :o. .:////////++:
+${c1} `/++ ${c2}-:::::-
+${c1} ${c2}`${c1}++-
+${c1} ${c2}`${c1}/+-
+${c1} ${c2}.${c1}+/.
+${c1} ${c2}.${c1}:+-.
+ `--.``
diff --git a/ascii/distro/lubuntu b/ascii/distro/lubuntu
new file mode 100644
index 00000000..9731cb3e
--- /dev/null
+++ b/ascii/distro/lubuntu
@@ -0,0 +1,20 @@
+${c1} `-/+oyyhhhhyyo+/-`
+ ./shhhhhhhhhhhhhhhhhhs/.
+ `:shhhhhhhhhhhhhhhhhhhhhhhhs:`
+ :yhhhhhhhhhhhhhhhs++yhhhhhhhhhy:
+ `ohhhhhhhhhhhhhs+:. .yhhhhhhhhhhhho`
+ `shhhhhhhhhhy+:` /yhhhhhhhhhhhhhs`
+ shhhhhhhhy+. .ohhhhhhhhhhhhhs
+:hhhhhhy/. /hhhhhhhhhhhhh:
+shhhy/. :hhhhhhhhhhhhs
+hy+. ` `+yhs/` +hhhhhhhhhhhh
+-.:/oshy- ` :yhhhhhy/ shhhhhhhhhhh
+shhhhhy-`/s. .shhhhhhhhho` .hhhhhhhhhhs
+:hhhho`:ys` /yhhhhhhhhhhhs` +hhhhhhhhh:
+ shh/.sh+ `ohhhhhhhhhhhhhhs` .hhhhhhhhs
+ `o-+hh: :yhhhhhhhhhhhhhhhho ohhhhhhs`
+ +hy-`ohhhhhhhhhhhhhhhhhhh+ -hhhhho`
+ :.-yhhhhhhhhhhhhhhhhhhhhh: yhhy:
+ :shhhhhhhhhhhhhhhhhhhhhy`+s:`
+ .+shhhhhhhhhhhhhhhhhhs:`
+ `-/+oyyhhhhyys+/-`
diff --git a/ascii/distro/lunar b/ascii/distro/lunar
new file mode 100644
index 00000000..26bd295c
--- /dev/null
+++ b/ascii/distro/lunar
@@ -0,0 +1,13 @@
+${c1}`-. `-.
+ -ohys/-` `:+shy/`
+ -omNNdyo/` :+shmNNy/`
+ ${c3} -
+ /mMmo
+ hMMMN`
+ .NMMs
+ ${c1} -:+oooo+//: ${c3}/MN${c1}. -///oooo+/-`
+ /:.` ${c3}/${c1} `.:/`
+${c3} __
+ | | _ _ ___ ___ ___
+ | |__| | | | .'| _|
+ |_____|___|_|_|__,|_|
diff --git a/ascii/distro/mac b/ascii/distro/mac
new file mode 100644
index 00000000..3ca5ea31
--- /dev/null
+++ b/ascii/distro/mac
@@ -0,0 +1,18 @@
+${c1} 'c.
+ ,xNMM.
+ .OMMMMo
+ OMMM0,
+ .;loddo:' loolloddol;.
+ cKMMMMMMMMMMNWMMMMMMMMMM0:
+${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd.
+ XMMMMMMMMMMMMMMMMMMMMMMMX.
+${c3};MMMMMMMMMMMMMMMMMMMMMMMM:
+:MMMMMMMMMMMMMMMMMMMMMMMM:
+${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX.
+ kMMMMMMMMMMMMMMMMMMMMMMMMWd.
+ ${c5}.XMMMMMMMMMMMMMMMMMMMMMMMMMMk
+ .XMMMMMMMMMMMMMMMMMMMMMMMMK.
+ ${c6}kMMMMMMMMMMMMMMMMMMMMMMd
+ ;KMMMMMMMWXXWMMMMMMMk.
+ .cooc,. .,coo:.
+
diff --git a/ascii/distro/mac_small b/ascii/distro/mac_small
new file mode 100644
index 00000000..24852ff1
--- /dev/null
+++ b/ascii/distro/mac_small
@@ -0,0 +1,8 @@
+${c1} .:'
+ _ :'_
+${c2} .'`_`-'_``.
+:________.-'
+${c3}:_______:
+:_______:
+${c4} :_______`-;
+${c5} `._.-._.'
diff --git a/ascii/distro/mageia b/ascii/distro/mageia
new file mode 100644
index 00000000..af01caba
--- /dev/null
+++ b/ascii/distro/mageia
@@ -0,0 +1,19 @@
+${c1} .°°.
+ °° .°°.
+ .°°°. °°
+ . .
+ °°° .°°°.
+ .°°°. '___'
+${c2} .${c1}'___' ${c2} .
+ :dkxc;'. ..,cxkd;
+ .dkk. kkkkkkkkkk .kkd.
+.dkk. ';cloolc;. .kkd
+ckk. .kk;
+xO: cOd
+xO: lOd
+lOO. .OO:
+.k00. .00x
+ .k00; ;00O.
+ .lO0Kc;,,,,,,;c0KOc.
+ ;d00KKKKKK00d;
+ .,KKKK,.
diff --git a/ascii/distro/manjaro b/ascii/distro/manjaro
new file mode 100644
index 00000000..89fa7a2f
--- /dev/null
+++ b/ascii/distro/manjaro
@@ -0,0 +1,14 @@
+${c1}██████████████████ ████████
+██████████████████ ████████
+██████████████████ ████████
+██████████████████ ████████
+████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
+████████ ████████ ████████
diff --git a/ascii/distro/maui b/ascii/distro/maui
new file mode 100644
index 00000000..1ab9c07d
--- /dev/null
+++ b/ascii/distro/maui
@@ -0,0 +1,20 @@
+${c1} `.-://////:--`
+ .:/oooooooooooooooo+:.
+ `:+ooooooooooooooooooooooo:`
+ `:oooooooooooooooooooooooooooo/`
+ ..```-oooooo/-`` `:oooooo+:.` `--
+ :. +oo+-` /ooo/` -/
+ -o. `o+- +o/` -o:
+`oo` ::` :o/ `+. .+o` /oo.
+/o+ . -+oo- ` /oo/ `ooo/
++o- /ooo+` .+ooo. :ooo+
+++ .+oooo: -oooo+ `oooo+
+:. .oooooo` :ooooo- :oooo:
+` .oooooo: :ooooo+ `ooo+-`
+ .+oooooo` -oooooo: `o/-
+ +oooooo: .ooooooo.
+ /ooooooo` /ooooooo/ ..
+ `:oooooooo/:::/ooooooooo+:--:/:`
+ `:+oooooooooooooooooooooo+:`
+ .:+oooooooooooooooo+:.
+ `.-://////:-.`
diff --git a/ascii/distro/mer b/ascii/distro/mer
new file mode 100644
index 00000000..a98f3eb1
--- /dev/null
+++ b/ascii/distro/mer
@@ -0,0 +1,27 @@
+${c1} dMs
+ .-`
+ `y`-o+`
+ ``NMMy
+ .--`:++.
+ .hNNNNs
+ /MMMMMN
+ `ommmd/ +/
+ ```` +/
+ `:+sssso/-`
+ .-::. `-::-` `smNMNmdmNMNd/ .://-`
+.ymNMNNdmNMMNm+` -dMMh:.....+dMMs `sNNMMNo
+dMN+::NMMy::hMM+ mMMo `ohhy/ `dMM+ yMMy::-
+MMm yMM- :MMs NMN` `:::::--sMMh dMM`
+MMm yMM- -MMs mMM+ `ymmdsymMMMs dMM`
+NNd sNN- -NNs -mMNs-.--..:dMMh` dNN
+--- .--` `--. .smMMmdddmMNdo` .--
+ ./ohddds+:`
+ +h- `.:-.
+ ./`.dMMMN+
+ +MMMMMd
+ `+dmmy-
+ ``` .+`
+ .dMNo-y.
+ `hmm/
+ .:`
+ dMs
diff --git a/ascii/distro/minix b/ascii/distro/minix
new file mode 100644
index 00000000..a0ff143c
--- /dev/null
+++ b/ascii/distro/minix
@@ -0,0 +1,17 @@
+${c2} -sdhyo+:-` -/syymm:
+ sdyooymmNNy. `` .smNmmdysNd
+ odyoso+syNNmysoyhhdhsoomNmm+/osdm/
+ :hhy+-/syNNmddhddddddmNMNo:sdNd:
+ `smNNdNmmNmddddddddddmmmmmmmy`
+ `ohhhhdddddmmNNdmddNmNNmdddddmdh-
+ odNNNmdyo/:/-/hNddNy-`..-+ydNNNmd:
+ `+mNho:` smmd/ sNNh :dmms` -+ymmo.
+-od/ -m${c1}mm${c2}mo -NN+ +m${c1}mm${c2}m- yms:
++sms -.` :so: .NN+ :os/ .-`mNh:
+.-hyh+:////- -sNNd:` .--://ohNs-
+ `:hNNNNNNNMMd/sNMmhsdMMh/ymmNNNmmNNy/
+ -+sNNNNMMNNNsmNMo: :NNmymNNNNMMMms:
+ //oydNMMMMydMMNysNMMmsMMMMMNyo/`
+ ../-yNMMy--/::/-.sMMmos+.`
+ -+oyhNsooo+omy/```
+ `::ohdmds-`
diff --git a/ascii/distro/mint b/ascii/distro/mint
new file mode 100644
index 00000000..c7e59d99
--- /dev/null
+++ b/ascii/distro/mint
@@ -0,0 +1,16 @@
+${c1}MMMMMMMMMMMMMMMMMMMMMMMMMmds+.
+MMm----::-://////////////oymNMd+`
+MMd ${c2}/++ ${c1}-sNMd:
+MMNso/` ${c2}dMM `.::-. .-::.` ${c1}.hMN:
+ddddMMh ${c2}dMM :hNMNMNhNMNMNh: ${c1}`NMm
+ NMm ${c2}dMM .NMN/-+MMM+-/NMN` ${c1}dMM
+ NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM
+ NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM
+ NMm ${c2}dMM .mmd `mmm yMM. ${c1}dMM
+ NMm ${c2}dMM` ..` ... ydm. ${c1}dMM
+ hMM- ${c2}+MMd/-------...-:sdds ${c1}dMM
+ -NMm- ${c2}:hNMNNNmdddddddddy/` ${c1}dMM
+ -dMNs-${c2}``-::::-------.`` ${c1}dMM
+ `/dMNmy+/:-------------:/yMMM
+ ./ydNMMMMMMMMMMMMMMMMMMMMM
+ .MMMMMMMMMMMMMMMMMMM
diff --git a/ascii/distro/mx b/ascii/distro/mx
new file mode 100644
index 00000000..9fc44075
--- /dev/null
+++ b/ascii/distro/mx
@@ -0,0 +1,17 @@
+${c3}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMM
+MMMMMMMMMMNs..yMMMMMMMMMMMMMm: +NMMMMMMM
+MMMMMMMMMN+ :mMMMMMMMMMNo` -dMMMMMMMM
+MMMMMMMMMMMs. `oNMMMMMMh- `sNMMMMMMMMM
+MMMMMMMMMMMMN/ -hMMMN+ :dMMMMMMMMMMM
+MMMMMMMMMMMMMMh- +ms. .sMMMMMMMMMMMMM
+MMMMMMMMMMMMMMMN+` ` +NMMMMMMMMMMMMMM
+MMMMMMMMMMMMMMNMMd: .dMMMMMMMMMMMMMMM
+MMMMMMMMMMMMm/-hMd- `sNMMMMMMMMMMMMM
+MMMMMMMMMMNo` -` :h/ -dMMMMMMMMMMMM
+MMMMMMMMMd: /NMMh- `+NMMMMMMMMMM
+MMMMMMMNo` :mMMN+` `-hMMMMMMMM
+MMMMMMh. `oNMMd: `/mMMMMMM
+MMMMm/ -hMd- `sNMMMM
+MMNs` - :dMMM
+Mm: `oMM
+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
diff --git a/ascii/distro/netbsd b/ascii/distro/netbsd
new file mode 100644
index 00000000..6048ee3a
--- /dev/null
+++ b/ascii/distro/netbsd
@@ -0,0 +1,17 @@
+${c1} `-/oshdmNMNdhyo+:-`
+${c2}y${c1}/s+:-`` `.-:+oydNMMMMNhs/-``
+${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-`
+ ${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMMmy+:`
+ ${c2}-N/${c1}dMMMMMMMMMMMMMMMds:`
+ ${c2}-N/${c1}hMMMMMMMMMmho:`
+ ${c2}-N/${c1}-:/++/:.`
+${c2} :M+
+ :Mo
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms
+ :Ms
diff --git a/ascii/distro/netrunner b/ascii/distro/netrunner
new file mode 100644
index 00000000..4230bc09
--- /dev/null
+++ b/ascii/distro/netrunner
@@ -0,0 +1,20 @@
+${c1} .:oydmMMMMMMmdyo:`
+ -smMMMMMMMMMMMMMMMMMMds-
+ +mMMMMMMMMMMMMMMMMMMMMMMMMd+
+ /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/
+ `hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy`
+ .mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd`
+ dMMMMMMMMMMMMMMMMMMMMMMNdhmMMMMMMMMMMh
++MMMMMMMMMMMMMNmhyo+/-. -MMMMMMMMMMMM/
+mMMMMMMMMd+:.` `mMMMMMMMMMMMMd
+MMMMMMMMMMMdy/. yMMMMMMMMMMMMMM
+MMMMMMMMMMMMMMMNh+` +MMMMMMMMMMMMMMM
+mMMMMMMMMMMMMMMMMMs -NMMMMMMMMMMMMMMd
++MMMMMMMMMMMMMMMMMN. `mMMMMMMMMMMMMMMM/
+ dMMMMMMMMMMMMMMMMMy hMMMMMMMMMMMMMMMh
+ `dMMMMMMMMMMMMMMMMM-+MMMMMMMMMMMMMMMd`
+ `hMMMMMMMMMMMMMMMMmMMMMMMMMMMMMMMMy
+ /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm:
+ +dMMMMMMMMMMMMMMMMMMMMMMMMd/
+ -odMMMMMMMMMMMMMMMMMMdo-
+ `:+ydmNMMMMNmhy+-`
diff --git a/ascii/distro/nitrux b/ascii/distro/nitrux
new file mode 100644
index 00000000..2f49d638
--- /dev/null
+++ b/ascii/distro/nitrux
@@ -0,0 +1,18 @@
+${c1}`:/.
+`/yo
+`/yo
+`/yo .+:.
+`/yo .sys+:.`
+`/yo `-/sys+:.`
+`/yo ./sss+:.`
+`/yo .:oss+:-`
+`/yo ./o///:-`
+`/yo `.-:///////:`
+`/yo `.://///++//-``
+`/yo `.-:////++++/-`
+`/yo `-://///++o+/-`
+`/yo `-/+o+++ooo+/-`
+`/s+:+oooossso/.`
+`//+sssssso:.
+`+syyyy+:`
+:+s+-
diff --git a/ascii/distro/nixos b/ascii/distro/nixos
new file mode 100644
index 00000000..d1a35bd2
--- /dev/null
+++ b/ascii/distro/nixos
@@ -0,0 +1,19 @@
+${c1} ::::. ${c2}'::::: ::::'
+${c1} '::::: ${c2}':::::. ::::'
+${c1} ::::: ${c2}'::::.:::::
+${c1} .......:::::..... ${c2}::::::::
+${c1} ::::::::::::::::::. ${c2}:::::: ${c1}::::.
+ ::::::::::::::::::::: ${c2}:::::. ${c1}.::::'
+${c2} ..... ::::' ${c1}:::::'
+${c2} ::::: '::' ${c1}:::::'
+${c2} ........::::: ' ${c1}:::::::::::.
+${c2}::::::::::::: ${c1}:::::::::::::
+${c2} ::::::::::: ${c1}.. ${c1}:::::
+${c2} .::::: ${c1}.::: ${c1}:::::
+${c2} .::::: ${c1}::::: ${c1}''''' ${c2}.....
+ ::::: ${c1}':::::. ${c2}......:::::::::::::'
+ ::: ${c1}::::::. ${c2}':::::::::::::::::'
+${c1} .:::::::: ${c2}'::::::::::
+${c1} .::::''::::. ${c2}'::::.
+${c1} .::::' ::::. ${c2}'::::.
+${c1} .:::: :::: ${c2}'::::.
diff --git a/ascii/distro/nixos_small b/ascii/distro/nixos_small
new file mode 100644
index 00000000..0917ff8e
--- /dev/null
+++ b/ascii/distro/nixos_small
@@ -0,0 +1,7 @@
+ ${c1}\\\\ \\\\ //
+ ==\\\\__\\\\/ //
+ // \\\\//
+==// //==
+ //\\\\___//
+// /\\\\ \\\\==
+ // \\\\ \\\\
diff --git a/ascii/distro/nurunner b/ascii/distro/nurunner
new file mode 100644
index 00000000..e5529673
--- /dev/null
+++ b/ascii/distro/nurunner
@@ -0,0 +1,19 @@
+${c1} ,xc
+ ;00cxXl
+ ;K0, .xNo.
+ :KO' .lXx.
+ cXk. ;xl cXk.
+ cXk. ;k:.,xo. cXk.
+ .lXx. :x::0MNl,dd. :KO,
+ .xNx. cx;:KMMMMMNo'dx. ;KK;
+ .dNl. cd,cXMMMMMMMMMWd,ox' 'OK:
+;WK. 'K,.KMMMMMMMMMMMMMWc.Kx lMO
+ 'OK: 'dl'xWMMMMMMMMMM0::x: 'OK:
+ .kNo .xo'xWMMMMMM0;:O: ;KK;
+ .dXd. .do,oNMMO;ck: ;00,
+ oNd. .dx,;'cO; ;K0,
+ oNx. okk; ;K0,
+ lXx. :KO'
+ cKk' cXk.
+ ;00:lXx.
+ ,kd.
diff --git a/ascii/distro/obrevenge b/ascii/distro/obrevenge
new file mode 100644
index 00000000..87b50f40
--- /dev/null
+++ b/ascii/distro/obrevenge
@@ -0,0 +1,18 @@
+${c1} __ __
+ _@@@@ @@@g_
+ _@@@@@@ @@@@@@
+ _@@@@@@M W@@@@@@_
+ j@@@@P ^W@@@@
+ @@@@L____ _____Q@@@@
+Q@@@@@@@@@@j@@@@@@@@@@
+@@@@@ T@j@ T@@@@@
+@@@@@ ___Q@J@ _@@@@@
+@@@@@fMMM@@j@jggg@@@@@@
+@@@@@ j@j@^MW@P @@@@
+Q@@@@@ggg@@f@ @@@@@@L
+^@@@@WWMMP ^ Q@@@@
+ @@@@@_ _@@@@l
+ W@@@@@g_____g@@@@@P
+ @@@@@@@@@@@@@@@@l
+ ^W@@@@@@@@@@@P
+ ^TMMMMTll
diff --git a/ascii/distro/openbsd b/ascii/distro/openbsd
new file mode 100644
index 00000000..d3812019
--- /dev/null
+++ b/ascii/distro/openbsd
@@ -0,0 +1,23 @@
+ ${c3} _
+ (_)
+${c1} | .
+${c1} . |L /| . ${c3} _
+${c1} _ . |\ _| \--+._/| . ${c3}(_)
+${c1} / ||\| Y J ) / |/| ./
+ J |)'( | ` F`.'/ ${c3} _
+${c1} -<| F __ .-< ${c3}(_)
+${c1} | / .-'${c3}. ${c1}`. /${c3}-. ${c1}L___
+ J \\ < ${c3}\ ${c1} | | ${c5}O${c3}\\${c1}|.-' ${c3} _
+${c1} _J \\ .- \\${c3}/ ${c5}O ${c3}| ${c1}| \\ |${c1}F ${c3}(_)
+${c1} '-F -<_. \\ .-' `-' L__
+__J _ _. >-' ${c1})${c4}._. ${c1}|-'
+${c1} `-|.' /_. ${c4}\_| ${c1} F
+ /.- . _.<
+ /' /.' .' `\\
+ /L /' |/ _.-'-\\
+ /'J ___.---'\|
+ |\ .--' V | `. `
+ |/`. `-. `._)
+ / .-.\\
+ \\ ( `\\
+ `.\
diff --git a/ascii/distro/openbsd_small b/ascii/distro/openbsd_small
new file mode 100644
index 00000000..bb6e646a
--- /dev/null
+++ b/ascii/distro/openbsd_small
@@ -0,0 +1,7 @@
+${c1} _____
+ \\- -/
+ \\_/ \\
+ | ${c2}O O${c1} |
+ |_ < ) 3 )
+ / \\ /
+ /-_____-\\
diff --git a/ascii/distro/openindiana b/ascii/distro/openindiana
new file mode 100644
index 00000000..c76d8f7b
--- /dev/null
+++ b/ascii/distro/openindiana
@@ -0,0 +1,16 @@
+${c2} .sy/
+ .yh+
+
+ ${c1}-+syyyo+- ${c2} /+.
+ ${c1}+ddo/---/sdh/ ${c2} ym-
+ ${c1}`hm+ `sms${c2} ym-```````.-.
+ ${c1}sm+ sm/ ${c2} ym- +s
+ ${c1}hm. /mo ${c2} ym- /h
+ ${c1}omo ym: ${c2} ym- `os`
+ ${c1}smo` .ym+ ${c2} ym- .os-
+ `` ${c1}:ymy+///oyms- ${c2} ym- .+s+.
+ ..` ${c1}`:+oo+/-` ${c2} -//oyo-
+ -:` .:oys/.
++- `./oyys/.
+h+` `.-:+oyyyo/-`
+`/ossssysso+/-.`
diff --git a/ascii/distro/openmandriva b/ascii/distro/openmandriva
new file mode 100644
index 00000000..ef3e8439
--- /dev/null
+++ b/ascii/distro/openmandriva
@@ -0,0 +1,15 @@
+${c2} ``
+ `-.
+${c1} ` ${c2}.---
+${c1} -/ ${c2}-::--`
+${c1} `++ ${c2}`----...```-:::::.
+${c1} `os. ${c2}.::::::::::::::-``` ` `
+${c1} +s+ ${c2}.::::::::::::::::---...--`
+${c1}-ss: ${c2}`-::::::::::::::::-.``.``
+${c1}/ss- ${c2}.::::::::::::-.`` `
+${c1}+ss: ${c2}.::::::::::::-
+${c1}/sso ${c2}.::::::-::::::-
+${c1}.sss/ ${c2}-:::-.` .:::::
+${c1} /sss+. ${c2}..`${c1} `--` ${c2}.:::
+${c1} -ossso+/:://+/-` ${c2}.:`
+${c1} -/+ooo+/-. ${c2}`
diff --git a/ascii/distro/openwrt b/ascii/distro/openwrt
new file mode 100644
index 00000000..903068b0
--- /dev/null
+++ b/ascii/distro/openwrt
@@ -0,0 +1,9 @@
+${c1} _______
+| |.-----.-----.-----.
+| - || _ | -__| |
+|_______|| __|_____|__|__|
+ |__|
+ ________ __
+| | | |.----.| |_
+| | | || _|| _|
+|________||__| |____|
diff --git a/ascii/distro/oracle b/ascii/distro/oracle
new file mode 100644
index 00000000..cdd61c55
--- /dev/null
+++ b/ascii/distro/oracle
@@ -0,0 +1,12 @@
+${c1}
+ `-/+++++++++++++++++/-.`
+ `/syyyyyyyyyyyyyyyyyyyyyyys/.
+ :yyyyo/-...............-/oyyyy/
+ /yyys- .oyyy+
+.yyyy` `syyy-
+:yyyo /yyy/
+.yyyy` `syyy-
+ /yyys. .oyyyo
+ /yyyyo:-...............-:oyyyy/`
+ `/syyyyyyyyyyyyyyyyyyyyyyys+.
+ `.:/+ooooooooooooooo+/:.`
diff --git a/ascii/distro/osmc b/ascii/distro/osmc
new file mode 100644
index 00000000..f18c2e99
--- /dev/null
+++ b/ascii/distro/osmc
@@ -0,0 +1,20 @@
+${c1} -+shdmNNNNmdhs+-
+ .+hMNho/:..``..:/ohNMh+.
+ :hMdo. .odMh:
+ -dMy- -yMd-
+ sMd- -dMs
+ hMy +. .+ yMh
+ yMy dMs. .sMd yMy
+:Mm dMNMs` `sMNMd `mM:
+yM+ dM//mNs``sNm//Md +My
+mM- dM: +NNNN+ :Md -Mm
+mM- dM: `oNN+ :Md -Mm
+yM+ dM/+NNo` :Md +My
+:Mm` dMMNs` :Md `mM:
+ yMy dMs` -ms yMy
+ hMy +. yMh
+ sMd- -dMs
+ -dMy- -yMd-
+ :hMdo. .odMh:
+ .+hMNho/:..``..:/ohNMh+.
+ -+shdmNNNNmdhs+-
diff --git a/ascii/distro/pacbsd b/ascii/distro/pacbsd
new file mode 100644
index 00000000..000e93a0
--- /dev/null
+++ b/ascii/distro/pacbsd
@@ -0,0 +1,24 @@
+${c1} :+sMs.
+ `:ddNMd- -o--`
+ -sMMMMh: `+N+``
+ yMMMMMs` .....-/-... `mNh/
+ yMMMMMmh+-`:sdmmmmmmMmmmmddy+-``./ddNMMm
+ yNMMNMMMMNdyyNNMMMMMMMMMMMMMMMhyshNmMMMm
+ :yMMMMMMMMMNdooNMMMMMMMMMMMMMMMMNmy:mMMd
+ +MMMMMMMMMmy:sNMMMMMMMMMMMMMMMMMMMmshs-
+ :hNMMMMMMN+-+MMMMMMMMMMMMMMMMMMMMMMMs.
+ .omysmNNhy/+yNMMMMMMMMMMNMMMMMMMMMNdNNy-
+ /hMM:::::/hNMMMMMMMMMMMm/-yNMMMMMMN.mMNh`
+.hMMMMdhdMMMMMMMMMMMMMMmo `sMMMMMMN mMMm-
+:dMMMMMMMMMMMMMMMMMMMMMdo+ oMMMMMMN`smMNo`
+/dMMMMMMMMMMMMMMMMMMMMMNd/` :yMMMMMN:-hMMM.
+:dMMMMMMMMMMMMMMMMMMMMMNh` oMMMMMMNo/dMNN`
+:hMMMMMMMMMMMMMMMMMMMMMMNs--sMMMMMMMNNmy++`
+ sNMMMMMMMMMMMMMMMMMMMMMMMmmNMMMMMMNho::o.
+ :yMMMMMMMMMMMMMNho+sydNNNNNNNmysso/` -//
+ /dMMMMMMMMMMMMMs- ````````..``
+ .oMMMMMMMMMMMMNs` ./y:`
+ +dNMMNMMMMMMMmy` ``./ys.
+ `/hMMMMMMMMMMMNo-`` `.+yy+-`
+ `-/hmNMNMMMMMMmmddddhhy/-`
+ `-+oooyMMMdsoo+/:.
diff --git a/ascii/distro/parabola b/ascii/distro/parabola
new file mode 100644
index 00000000..33c38bd5
--- /dev/null
+++ b/ascii/distro/parabola
@@ -0,0 +1,16 @@
+${c1} `.-. `.
+ `.` `:++. `-+o+.
+ `` `:+/. `:+/. `-+oooo+
+ ``-::-.:+/. `:+/. `-+oooooo+
+ `.-:///- ..` .-. `-+oooooooo-
+ `..-..` `+ooooooooo:
+`` :oooooooo/
+ `ooooooo:
+ `oooooo:
+ -oooo+.
+ +ooo/`
+ -ooo-
+ `+o/.
+ /+-
+ //`
+ -.
diff --git a/ascii/distro/pardus b/ascii/distro/pardus
new file mode 100644
index 00000000..ae817579
--- /dev/null
+++ b/ascii/distro/pardus
@@ -0,0 +1,18 @@
+${c1} .smNdy+- `.:/osyyso+:.` -+ydmNs.
+/Md- -/ymMdmNNdhso/::/oshdNNmdMmy/. :dM/
+mN. oMdyy- -y `-dMo .Nm
+.mN+` sMy hN+ -: yMs `+Nm.
+ `yMMddMs.dy `+` sMddMMy`
+ +MMMo .` . oMMM+
+ `NM/ `````.` `.````` +MN`
+ yM+ `.-:yhomy ymohy:-.` +My
+ yM: yo oy :My
+ +Ms .N` `N. +h sM+
+ `MN - -::::::- : :o:+`NM`
+ yM/ sh -dMMMMd- ho +y+My
+ .dNhsohMh-//: /mm/ ://-yMyoshNd`
+ `-ommNMm+:/. oo ./:+mMNmmo:`
+ `/o+.-somNh- :yy: -hNmos-.+o/`
+ ./` .s/`s+sMdd+``+ddMs+s`/s. `/.
+ : -y. -hNmddmNy. .y- :
+ -+ `..` +-
diff --git a/ascii/distro/parrot b/ascii/distro/parrot
new file mode 100644
index 00000000..af98994d
--- /dev/null
+++ b/ascii/distro/parrot
@@ -0,0 +1,24 @@
+${c1} `:oho/-`
+`mMMMMMMMMMMMNmmdhy-
+ dMMMMMMMMMMMMMMMMMMs`
+ +MMsohNMMMMMMMMMMMMMm/
+ .My .+dMMMMMMMMMMMMMh.
+ + :NMMMMMMMMMMMMNo
+ `yMMMMMMMMMMMMMm:
+ /NMMMMMMMMMMMMMy`
+ .hMMMMMMMMMMMMMN+
+ ``-NMMMMMMMMMd-
+ /MMMMMMMMMMMs`
+ mMMMMMMMsyNMN/
+ +MMMMMMMo :sNh.
+ `NMMMMMMm -o/
+ oMMMMMMM.
+ `NMMMMMM+
+ +MMd/NMh
+ mMm -mN`
+ /MM `h:
+ dM` .
+ :M-
+ d:
+ -+
+ -
diff --git a/ascii/distro/parsix b/ascii/distro/parsix
new file mode 100644
index 00000000..2753a461
--- /dev/null
+++ b/ascii/distro/parsix
@@ -0,0 +1,21 @@
+ ${c2}-/+/:.
+ ${c2}.syssssys.
+ ${c1}.--. ${c2}ssssssssso${c1} ..--.
+ :++++++: ${c2}+ssssssss+${c1} ./++/+++:
+ /+++++++++.${c2}.yssooooy`${c1}-+///////o-
+ /++++++++++.${c2}+soooos:${c1}:+////////+-
+ :+++++////o-${c2}oooooo-${c1}+/////////-
+ `-/++//++-${c4}.-----.-${c1}:+/////:-
+ ${c3}-://::--${c1}-:/:${c4}.--.````.--.${c1}:::-${c3}--::::::.
+${c3}-/:::::::://:${c4}.:-` `-:${c3}`:/:::::::--/-
+${c3}/::::::::::/-${c4}--. .-.${c3}-/://///::::/
+${c3}-/:::::::::/:${c4}`:-. .-:${c3}`:///////////-
+ `${c3}-::::--${c1}.-://.${c4}---....---${c1}`:+/:-${c3}--::::-`
+ ${c1}-/+///+o/-${c4}.----.${c1}.:oo+++o+.
+ ${c1}-+/////+++o:${c2}syyyyy.${c1}o+++++++++:
+ ${c1}.+////+++++-${c2}+sssssy+${c1}.++++++++++\
+ ${c1}.+:/++++++.${c2}.yssssssy-${c1}`+++++++++:
+ ${c1}:/+++++- ${c2}+sssssssss ${c1}-++++++-
+ ${c1}`--` ${c2}+sssssssso ${c1}`--`
+ ${c2}+sssssy+`
+ ${c2}`.::-`
diff --git a/ascii/distro/pclinuxos b/ascii/distro/pclinuxos
new file mode 100644
index 00000000..963d3929
--- /dev/null
+++ b/ascii/distro/pclinuxos
@@ -0,0 +1,19 @@
+ ${c1}mhhhyyyyhhhdN
+ dyssyhhhhhhhhhhhssyhN
+ Nysyhhyo/:-.....-/oyhhhssd
+ Nsshhy+. `/shhysm
+ dohhy/ -shhsy
+ dohhs` /hhys
+N+hho ${c2}+ssssss+- .+syhys+ ${c1}/hhsy
+ohhh` ${c2}ymmo++hmm+`smmy/::+y` ${c1}shh+
++hho ${c2}ymm- /mmy+mms ${c1}:hhod
+/hh+ ${c2}ymmhhdmmh.smm/ ${c1}.hhsh
++hhs ${c2}ymm+::-` /mmy` ` ${c1}/hh+m
+yyhh- ${c2}ymm- /dmdyosyd` ${c1}`yhh+
+ ohhy` ${c2}://` -/+++/- ${c1}ohhom
+ N+hhy- `shhoh
+ sshho. `+hhyom
+ dsyhhs/. `:ohhhoy
+ dysyhhhso///://+syhhhssh
+ dhyssyhhhhhhyssyyhN
+ mddhdhdmN
diff --git a/ascii/distro/peppermint b/ascii/distro/peppermint
new file mode 100644
index 00000000..be0a953b
--- /dev/null
+++ b/ascii/distro/peppermint
@@ -0,0 +1,19 @@
+${c1} 8ZZZZZZ${c2}MMMMM
+${c1} .ZZZZZZZZZ${c2}MMMMMMM.
+${c2} MM${c1}ZZZZZZZZZ${c2}MMMMMMM${c1}ZZZZ
+${c2} MMMMM${c1}ZZZZZZZZ${c2}MMMMM${c1}ZZZZZZZM
+${c2} MMMMMMM${c1}ZZZZZZZ${c2}MMMM${c1}ZZZZZZZZZ.
+${c2} MMMMMMMMM${c1}ZZZZZZ${c2}MMM${c1}ZZZZZZZZZZZI
+${c2}MMMMMMMMMMM${c1}ZZZZZZ${c2}MM${c1}ZZZZZZZZZZ${c2}MMM
+${c1}.ZZZ${c2}MMMMMMMMMM${c1}IZZ${c2}MM${c1}ZZZZZ${c2}MMMMMMMMM
+${c1}ZZZZZZZ${c2}MMMMMMMM${c1}ZZ${c2}M${c1}ZZZZ${c2}MMMMMMMMMMM
+${c1}ZZZZZZZZZZZZZZZZ${c2}M${c1}Z${c2}MMMMMMMMMMMMMMM
+${c1}.ZZZZZZZZZZZZZ${c2}MMM${c1}Z${c2}M${c1}ZZZZZZZZZZ${c2}MMMM
+${c1}.ZZZZZZZZZZZ${c2}MMM${c1}7ZZ${c2}MM${c1}ZZZZZZZZZZ7${c2}M
+${c1} ZZZZZZZZZ${c2}MMMM${c1}ZZZZ${c2}MMMM${c1}ZZZZZZZ77
+${c2} MMMMMMMMMMMM${c1}ZZZZZ${c2}MMMM${c1}ZZZZZ77
+${c2} MMMMMMMMMM${c1}7ZZZZZZ${c2}MMMMM${c1}ZZ77
+${c2} .MMMMMMM${c1}ZZZZZZZZ${c2}MMMMM${c1}Z7Z
+${c2} MMMMM${c1}ZZZZZZZZZ${c2}MMMMMMM
+${c1} NZZZZZZZZZZZ${c2}MMMMM
+${c1} ZZZZZZZZZ${c2}MM)
diff --git a/ascii/distro/pop_os b/ascii/distro/pop_os
new file mode 100644
index 00000000..a399f18f
--- /dev/null
+++ b/ascii/distro/pop_os
@@ -0,0 +1,21 @@
+${c1} /////////////
+ /////////////////////
+ ///////${c2}*767${c1}////////////////
+ //////${c2}7676767676*${c1}//////////////
+ /////${c2}76767${c1}//${c2}7676767${c1}//////////////
+ /////${c2}767676${c1}///${c2}*76767${c1}///////////////
+ ///////${c2}767676${c1}///${c2}76767${c1}.///${c2}7676*${c1}///////
+/////////${c2}767676${c1}//${c2}76767${c1}///${c2}767676${c1}////////
+//////////${c2}76767676767${c1}////${c2}76767${c1}/////////
+///////////${c2}76767676${c1}//////${c2}7676${c1}//////////
+////////////,${c2}7676${c1},///////${c2}767${c1}///////////
+/////////////*${c2}7676${c1}///////${c2}76${c1}////////////
+///////////////${c2}7676${c1}////////////////////
+ ///////////////${c2}7676${c1}///${c2}767${c1}////////////
+ //////////////////////${c2}'${c1}////////////
+ //////${c2}.7676767676767676767,${c1}//////
+ /////${c2}767676767676767676767${c1}/////
+ ///////////////////////////
+ /////////////////////
+ /////////////
+
diff --git a/ascii/distro/porteus b/ascii/distro/porteus
new file mode 100644
index 00000000..82cc7aa9
--- /dev/null
+++ b/ascii/distro/porteus
@@ -0,0 +1,23 @@
+${c1} `.-:::-.`
+ -+ydmNNNNNNNmdy+-
+ .+dNmdhs+//////+shdmdo.
+ .smmy+-` ./sdy:
+ `omdo. `.-/+osssso+/-` `+dy.
+ `yms. `:shmNmdhsoo++osyyo-``oh.
+ hm/ .odNmds/.` ``.....:::-+s
+/m: `+dNmy:` `./oyhhhhyyooo++so
+ys `yNmy- .+hmmho:-.` ```
+s: yNm+` .smNd+.
+`` /Nm: +dNd+`
+ yN+ `smNy.
+ dm oNNy`
+ hy -mNm.
+ +y oNNo
+ `y` sNN:
+ `: +NN:
+ ` .mNo
+ /mm`
+ /my`
+ .sy`
+ .+:
+ `
diff --git a/ascii/distro/puppy b/ascii/distro/puppy
new file mode 100644
index 00000000..7cdc1c2d
--- /dev/null
+++ b/ascii/distro/puppy
@@ -0,0 +1,18 @@
+${c1} `-/osyyyysosyhhhhhyys+-
+ -ohmNNmh+/hMMMMMMMMNNNNd+dMMMMNM+
+ yMMMMNNmmddo/NMMMNNNNNNNNNo+NNNNNy
+.NNNNNNmmmddds:MMNNNNNNNNNNNh:mNNN/
+-NNNdyyyhdmmmd`dNNNNNmmmmNNmdd/os/
+.Nm+shddyooo+/smNNNNmmmmNh. :mmd.
+ NNNNy:` ./hmmmmmmmNNNN: hNMh
+ NMN- -++- +NNNNNNNNNNm+..-sMMMM-
+.MMo oNNNNo hNNNNNNNNmhdNNNMMMMM+
+.MMs /NNNN/ dNmhs+:-` yMMMMMMMM+
+ mMM+ .. `sNN+. hMMMMhhMMM-
+ +MMMmo:...:sNMMMMMms:` hMMMMm.hMMy
+ yMMMMMMMMMMMNdMMMMMM::/+o+//dMMd`
+ sMMMMMMMMMMN+:oyyo:sMMMNNMMMNy`
+ :mMMMMMMMMMMMmddNMMMMMMMMmh/
+ /dMMMMMMMMMMMMMMMMMMNdy/`
+ .+hNMMMMMMMMMNmdhs/.
+ .:/+ooo+/:-.
diff --git a/ascii/distro/qubes b/ascii/distro/qubes
new file mode 100644
index 00000000..3867fa6f
--- /dev/null
+++ b/ascii/distro/qubes
@@ -0,0 +1,21 @@
+${c1} `..--..`
+ `.----------.`
+ `..----------------..`
+ `.------------------------.``
+ `..-------------....-------------..`
+.::----------..`` ``..----------:+:
+:////:----..` `..---:/ossso
+:///////:` `/osssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:///////: /ssssssso
+:////////-` .:sssssssso
+:///////////-.` `-/osssssssssso
+`//////////////:-```.:+ssssssssssssso-
+ .-://////////////sssssssssssssso/-`
+ `.:///////////sssssssssssssso:.
+ .-:///////ssssssssssssssssss/`
+ `.:////ssss+/+ssssssssssss.
+ `--//- `-/osssso/.
diff --git a/ascii/distro/raspbian b/ascii/distro/raspbian
new file mode 100644
index 00000000..472b74eb
--- /dev/null
+++ b/ascii/distro/raspbian
@@ -0,0 +1,23 @@
+${c1} `.::///+:/-. --///+//-:``
+ `+oooooooooooo: `+oooooooooooo:
+ /oooo++//ooooo: ooooo+//+ooooo.
+ `+ooooooo:-:oo- +o+::/ooooooo:
+ `:oooooooo+`` `.oooooooo+-
+ `:++ooo/. :+ooo+/.`
+ ${c2}...` `.----.` ``..
+ .::::-``:::::::::.`-:::-`
+ -:::-` .:::::::-` `-:::-
+ `::. `.--.` `` `.---.``.::`
+ .::::::::` -::::::::` `
+ .::` .:::::::::- `::::::::::``::.
+-:::` ::::::::::. ::::::::::.`:::-
+:::: -::::::::. `-:::::::: ::::
+-::- .-:::-.``....``.-::-. -::-
+ .. `` .::::::::. `..`..
+ -:::-` -::::::::::` .:::::`
+ :::::::` -::::::::::` :::::::.
+ .::::::: -::::::::. ::::::::
+ `-:::::` ..--.` ::::::.
+ `...` `...--..` `...`
+ .::::::::::
+ `.-::::-`
diff --git a/ascii/distro/redhat b/ascii/distro/redhat
new file mode 100644
index 00000000..868521f4
--- /dev/null
+++ b/ascii/distro/redhat
@@ -0,0 +1,16 @@
+${c1} `.-..........`
+ `////////::.`-/.
+ -: ....-////////.
+ //:-::///////////`
+ `--::: `-://////////////:
+ //////- ``.-:///////// .`
+ `://////:-.` :///////::///:`
+ .-/////////:---/////////////:
+ .-://////////////////////.
+${c2} yMN+`.-${c1}::///////////////-`
+${c2} .-`:NMMNMs` `..-------..`
+ MN+/mMMMMMhoooyysshsss
+MMM MMMMMMMMMMMMMMyyddMMM+
+ MMMM MMMMMMMMMMMMMNdyNMMh` hyhMMM
+ MMMMMMMMMMMMMMMMyoNNNMMM+. MMMMMMMM
+ MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM
diff --git a/ascii/distro/redstar b/ascii/distro/redstar
new file mode 100644
index 00000000..6c15233f
--- /dev/null
+++ b/ascii/distro/redstar
@@ -0,0 +1,18 @@
+${c1} ..
+ .oK0l
+ :0KKKKd.
+ .xKO0KKKKd
+ ,Od' .d0000l
+ .c;. .'''... ..'.
+.,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx:
+;kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,.
+ .okkkkd,.lko .......',;:cllc:;,,'''''.
+ .cdo. :xd' cd:. ..';'',,,'',,;;;,'.
+ . .ddl.;doooc'..;oc;'..';::;,'.
+ coo;.oooolllllllcccc:'. .
+ .ool''lllllccccccc:::::;.
+ ;lll. .':cccc:::::::;;;;'
+ :lcc:'',..';::::;;;;;;;,,.
+ :cccc::::;...';;;;;,,,,,,.
+ ,::::::;;;,'. ..',,,,'''.
+ ........ ......
diff --git a/ascii/distro/refracta b/ascii/distro/refracta
new file mode 100644
index 00000000..396474b5
--- /dev/null
+++ b/ascii/distro/refracta
@@ -0,0 +1,19 @@
+${c2} A
+ VW
+ VVW\\
+ .yWWW\\
+ ,;,,u,;yy;;v;uyyyyyyy ,WWWWW^
+ *WWWWWWWWWWWWWWWW/ $VWWWWw ,
+ ^*%WWWWWWVWWX $WWWW** ,yy
+ , "**WWW/' **' ,yy/WWW*`
+ &WWWWwy `*` <,ywWW%VWWW*
+ yWWWWWWWWWW* ., "**WW%W
+ ,&WWWWWM*"` ,y/ &WWWww ^*
+ XWWX*^ ,yWWWW09 .WWWWWWWWwy,
+ *` &WWWWWM WWWWWWWWWWWWWww,
+ (WWWWW` /#####WWW***********
+ ^WWWW
+ VWW
+ Wh.
+ V/
+
diff --git a/ascii/distro/rosa b/ascii/distro/rosa
new file mode 100644
index 00000000..fcbad876
--- /dev/null
+++ b/ascii/distro/rosa
@@ -0,0 +1,20 @@
+${c1} ROSAROSAROSAROSAR
+ ROSA AROS
+ ROS SAROSAROSAROSAR AROS
+ RO ROSAROSAROSAROSAROSAR RO
+ ARO AROSAROSAROSARO AROS ROS
+ ARO ROSAROS OSAR ROSA ROS
+ RO AROSA ROSAROSAROSA ROSAR RO
+RO ROSAR ROSAROSAROSAR R ROSARO RO
+RO ROSA AROSAROSAROSA AR ROSARO AR
+RO AROS ROSAROSAROSA ROS AROSARO AR
+RO AROS ROSAROSARO ROSARO ROSARO AR
+RO ROS AROSAROS ROSAROSA AROSAR AR
+RO ROSA ROS ROSAROSAR ROSARO RO
+ RO ROS AROSAROSAROSA ROSARO AR
+ ARO ROSA ROSAROSAROS AROSAR ARO
+ ARO OROSA R ROSAROS ROS
+ RO AROSAROS AROSAROSAR RO
+ AROS AROSAROSAROSARO AROS
+ ROSA SARO
+ ROSAROSAROSAROSAR
diff --git a/ascii/distro/sabayon b/ascii/distro/sabayon
new file mode 100644
index 00000000..bfd51eed
--- /dev/null
+++ b/ascii/distro/sabayon
@@ -0,0 +1,18 @@
+${c1} ...........
+ .. ..
+ .. ..
+ .. ${c2}o ${c1}..
+ .. ${c2}:W' ${c1}..
+ .. ${c2}.d. ${c1}..
+:. ${c2}.KNO ${c1}.:
+:. ${c2}cNNN. ${c1}.:
+: ${c2}dXXX, ${c1}:
+: ${c2}. dXXX, .cd, ${c1}:
+: ${c2}'kc .. dKKK. ,ll;:' ${c1}:
+: ${c2}.xkkxc;..dkkkc',cxkkl ${c1}:
+:. ${c2}.,cdddddddddddddo:. ${c1}.:
+ .. ${c2}:lllllll: ${c1}..
+ .. ${c2}',,,,, ${c1}..
+ .. ..
+ .. ..
+ ...............
diff --git a/ascii/distro/sabotage b/ascii/distro/sabotage
new file mode 100644
index 00000000..d4490fc8
--- /dev/null
+++ b/ascii/distro/sabotage
@@ -0,0 +1,12 @@
+
+${c2} .|'''.| | '||''|. ..|''||
+ ||.. ' ||| || || .|' ||
+ ''|||. | || ||'''|. || ||
+. '|| .''''|. || || '|. ||
+|'....|' .|. .||. .||...|' ''|...|'
+
+|''||''| | ..|'''.| '||''''|
+ || ||| .|' ' || .
+ || | || || .... ||''|
+ || .''''|. '|. || ||
+ .||. .|. .||. ''|...'| .||.....|
diff --git a/ascii/distro/sailfishos b/ascii/distro/sailfishos
new file mode 100644
index 00000000..a7dd91b4
--- /dev/null
+++ b/ascii/distro/sailfishos
@@ -0,0 +1,18 @@
+${c1} .+eWWW
+ .+ee+++eee e.
+ .ee++eeeeeeee +e.
+ .e++ee++eeeeeee+eee+e+
+ ee.e+.ee+eee++eeeeee+
+ W.+e.e+.e++ee+eee
+ W.+e.W.ee.W++ee'
+ +e.W W.e+.W.W+
+ W.e.+e.W W W.
+ e e e +e.W.W
+ .W W W.
+ W.+e.W.
+ W++e.ee+.
+ ++ +ee++eeeee++.
+ ' '+++e 'ee.
+ ee
+ ee
+ e
diff --git a/ascii/distro/salentos b/ascii/distro/salentos
new file mode 100644
index 00000000..f41ee747
--- /dev/null
+++ b/ascii/distro/salentos
@@ -0,0 +1,20 @@
+${c1} ``..``
+ .-:+oshdNMMMMMMNdhyo+:-.`
+ -oydmMMMMMMMMMMMMMMMMMMMMMMMMMMNdhs/
+${c4} +hdddm${c1}NMMMMMMMMMMMMMMMMMMMMMMMMN${c4}mdddh+`
+${c2}`MMMMMN${c4}mdddddm${c1}MMMMMMMMMMMM${c4}mdddddm${c3}NMMMMM-
+${c2} mMMMMMMMMMMMN${c4}ddddhyyhhddd${c3}NMMMMMMMMMMMM`
+${c2} dMMMMMMMMMMMMMMMMM${c4}oo${c3}MMMMMMMMMMMMMMMMMN`
+${c2} yMMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMd
+${c2} +MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMy
+${c2} :MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMo
+${c2} .MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM/
+${c2} `NMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM-
+${c2} mMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMN`
+${c2} hMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMm
+${c2} /MMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMy
+${c2} .+hMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMms:
+${c2} `:smMMMMMMMMM${c4}hh${c3}MMMMMMMMMNh+.
+${c2} .+hMMMMMM${c4}hh${c3}MMMMMMdo:
+${c2} `:smMM${c4}yy${c3}MMNy/`
+ ${c2}.- ${c4}`${c3}:.
diff --git a/ascii/distro/scientific b/ascii/distro/scientific
new file mode 100644
index 00000000..82e9553f
--- /dev/null
+++ b/ascii/distro/scientific
@@ -0,0 +1,20 @@
+${c1} =/;;/-
+ +: //
+ /; /;
+ -X H.
+.//;;;:;;-, X= :+ .-;:=;:;#;.
+M- ,=;;;#:, ,:#;;:=, ,@
+:# :#.=/++++/=.$= #=
+ ,#; #/:+/;,,/++:+/ ;+.
+ ,+/. ,;@+, ,#H;, ,/+,
+ ;+;;/= @. ${c3}.H${c2}#${c3}#X ${c1}-X :///+;
+ ;+=;;;.@, ${c2}.X${c3}M${c2}@$. ${c1}=X.//;=#/.
+ ,;: :@#= =$H: .+#-
+ ,#= #;-///==///-// =#,
+;+ :#-;;;:;;;;-X- +:
+@- .-;;;;M- =M/;;;-. -X
+ :;;::;;-. #- :+ ,-;;-;:==
+ ,X H.
+ ;/ #=
+ // +;
+ '////'
diff --git a/ascii/distro/siduction b/ascii/distro/siduction
new file mode 100644
index 00000000..c9720a60
--- /dev/null
+++ b/ascii/distro/siduction
@@ -0,0 +1,21 @@
+${c1} _aass,
+ jQh: =$w
+ QWmwawQW
+ )$QQQQ@( ..
+ _a_a. ~??^ syDY?Sa,
+ _mW>-<$c jWmi imm.
+ ]QQwayQE 4QQmgwmQQ`
+ ?WWQWP' -9QQQQQ@'._aas,
+ _a%is. .adYYs,. -"?!` aQB*~^3$c
+_Qh;.nm .QWc. {QL ]QQp;..vmQ/
+"QQmmQ@ -QQQggmQP ]QQWmggmQQ(
+ -???" "$WQQQY` __, ?QQQQQQW!
+ _yZ!?q, - .yWY!!Sw, "???^
+ .QQa_=qQ mQm>..vmm
+ $QQWQQP $QQQgmQQ@
+ "???" _aa, -9WWQQWY`
+ _mB>~)$a -~~
+ mQms_vmQ.
+ ]WQQQQQP
+ -?T??"
+
diff --git a/ascii/distro/slackware b/ascii/distro/slackware
new file mode 100644
index 00000000..9ffde3dc
--- /dev/null
+++ b/ascii/distro/slackware
@@ -0,0 +1,21 @@
+${c1} :::::::
+ :::::::::::::::::::
+ :::::::::::::::::::::::::
+ ::::::::${c2}cllcccccllllllll${c1}::::::
+ :::::::::${c2}lc dc${c1}:::::::
+ ::::::::${c2}cl clllccllll oc${c1}:::::::::
+ :::::::::${c2}o lc${c1}::::::::${c2}co oc${c1}::::::::::
+ ::::::::::${c2}o cccclc${c1}:::::${c2}clcc${c1}::::::::::::
+ :::::::::::${c2}lc cclccclc${c1}:::::::::::::
+::::::::::::::${c2}lcclcc lc${c1}::::::::::::
+::::::::::${c2}cclcc${c1}:::::${c2}lccclc oc${c1}:::::::::::
+::::::::::${c2}o l${c1}::::::::::${c2}l lc${c1}:::::::::::
+ :::::${c2}cll${c1}:${c2}o clcllcccll o${c1}:::::::::::
+ :::::${c2}occ${c1}:${c2}o clc${c1}:::::::::::
+ ::::${c2}ocl${c1}:${c2}ccslclccclclccclclc${c1}:::::::::::::
+ :::${c2}oclcccccccccccccllllllllllllll${c1}:::::
+ ::${c2}lcc1lcccccccccccccccccccccccco${c1}::::
+ ::::::::::::::::::::::::::::::::
+ ::::::::::::::::::::::::::::
+ ::::::::::::::::::::::
+ ::::::::::::
diff --git a/ascii/distro/slitaz b/ascii/distro/slitaz
new file mode 100644
index 00000000..5ee52706
--- /dev/null
+++ b/ascii/distro/slitaz
@@ -0,0 +1,17 @@
+${c1} @ @( @
+ @@ @@ @ @/
+ @@ @@ @@ @@
+ @@ %@@ @@ @@
+ @@ %@@@ @@@@@. @@@@ @@
+ @@@ @@@@ @@@@@@@ &@@@ @@@
+ @@@@@@@ %@@@@@@@@@@@@ &@@@% @@@@@@@/
+ ,@@@@@@@@@@@@@@@@@@@@@@@@@
+ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/
+@@@@@@. @@@@@@@@@@@@@@@@@@@@@ /@@@@@@
+@@ @@@@@ @@@@@@@@@@@@, @@@@@ @@@
+@@ @@@@. @@@@@@@@@@@@@% #@@@@ @@.
+@@ ,@@ @@@@@@@@@@@@@ @@@ @@
+@ @@. @@@@@@@@@@@@@ @@@ *@
+@ @@ @@@@@@@@@@@@ @@ @
+ @ @@@@@@@@@. #@
+ @ ,@@@@@ @
diff --git a/ascii/distro/smartos b/ascii/distro/smartos
new file mode 100644
index 00000000..59cea693
--- /dev/null
+++ b/ascii/distro/smartos
@@ -0,0 +1,17 @@
+${c1}yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyys oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
+yyyys yyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyy syyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
+yyyyyyyyyyyyyyyy yyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
diff --git a/ascii/distro/solaris b/ascii/distro/solaris
new file mode 100644
index 00000000..95a7f1a1
--- /dev/null
+++ b/ascii/distro/solaris
@@ -0,0 +1,8 @@
+${c1} `- `
+ `-- `+- .:
+ .+: `++: -/+- .
+ `.::` -++/``:::`./+/ `.-/.
+ `++/-`.` ` /++:`
+ `` ./:` .: `..`.-
+``./+/:- -+++:-
+ -/+` :.
diff --git a/ascii/distro/solus b/ascii/distro/solus
new file mode 100644
index 00000000..75637543
--- /dev/null
+++ b/ascii/distro/solus
@@ -0,0 +1,20 @@
+${c2} -```````````
+ `-+/------------.`
+ .---:mNo---------------.
+ .-----yMMMy:---------------.
+ `------oMMMMMm/----------------`
+ .------/MMMMMMMN+----------------.
+ .------/NMMMMMMMMm-+/--------------.
+`------/NMMMMMMMMMN-:mh/-------------`
+.-----/NMMMMMMMMMMM:-+MMd//oso/:-----.
+-----/NMMMMMMMMMMMM+--mMMMh::smMmyo:--
+----+NMMMMMMMMMMMMMo--yMMMMNo-:yMMMMd/.
+.--oMMMMMMMMMMMMMMMy--yMMMMMMh:-yMMMy-`
+`-sMMMMMMMMMMMMMMMMh--dMMMMMMMd:/Ny+y.
+`-/+osyhhdmmNNMMMMMm-/MMMMMMMmh+/ohm+
+ .------------:://+-/++++++${c1}oshddys:
+ -hhhhyyyyyyyyyyyhhhhddddhysssso-
+ `:ossssssyysssssssssssssssso:`
+ `:+ssssssssssssssssssss+-
+ `-/+ssssssssssso+/-`
+ `.-----..`
diff --git a/ascii/distro/source_mage b/ascii/distro/source_mage
new file mode 100644
index 00000000..39a440e8
--- /dev/null
+++ b/ascii/distro/source_mage
@@ -0,0 +1,21 @@
+${c2} :ymNMNho.
+.+sdmNMMMMMMMMMMy`
+.-::/yMMMMMMMMMMMm-
+ sMMMMMMMMMMMm/
+ /NMMMMMMMMMMMMMm:
+ .MMMMMMMMMMMMMMMMM:
+ `MMMMMMMMMMMMMMMMMN.
+ NMMMMMMMMMMMMMMMMMd
+ mMMMMMMMMMMMMMMMMMMo
+ hhMMMMMMMMMMMMMMMMMM.
+ .`/MMMMMMMMMMMMMMMMMs
+ :mMMMMMMMMMMMMMMMN`
+ `sMMMMMMMMMMMMMMM+
+ /NMMMMMMMMMMMMMN`
+ oMMMMMMMMMMMMM+
+ ./sd.-hMMMMMMMMmmN`
+ ./+oyyyh- `MMMMMMMMMmNh
+ sMMMMMMMMMmmo
+ `NMMMMMMMMMd:
+ -dMMMMMMMMMo
+ -shmNMMms.
diff --git a/ascii/distro/sparky b/ascii/distro/sparky
new file mode 100644
index 00000000..82acb5a0
--- /dev/null
+++ b/ascii/distro/sparky
@@ -0,0 +1,21 @@
+${c1}
+ . `-:-`
+ .o` .-///-`
+ `oo` .:/++:.
+ os+` -/+++:` ``.........```
+ /ys+`./+++/-.-::::::----......``
+ `syyo`++o+--::::-::/+++/-``
+ -yyy+.+o+`:/:-:sdmmmmmmmmdy+-`
+::-` :yyy/-oo.-+/`ymho++++++oyhdmdy/`
+`/yy+-`.syyo`+o..o--h..osyhhddhs+//osyy/`
+ -ydhs+-oyy/.+o.-: ` ` :/::+ydhy+```-os-
+ .sdddy::syo--/:. `.:dy+-ohhho ./:
+ :yddds/:+oo+//:-`- /+ +hy+.shhy: ``
+ `:ydmmdysooooooo-.ss`/yss--oyyo
+ `./ossyyyyo+:-/oo:.osso- .oys
+ ``..-------::////.-oooo/ :so
+ `...----::::::::--.`/oooo: .o:
+ ``````` ++o+:` `:`
+ ./+/-` `
+ `-:-.
+ ``
diff --git a/ascii/distro/steamos b/ascii/distro/steamos
new file mode 100644
index 00000000..c17b16b6
--- /dev/null
+++ b/ascii/distro/steamos
@@ -0,0 +1,18 @@
+${c1} .,,,,.
+ .,'onNMMMMMNNnn',.
+ .'oNMANKMMMMMMMMMMMNNn'.
+ .'ANMMMMMMMXKNNWWWPFFWNNMNn.
+ ;NNMMMMMMMMMMNWW'' ,.., 'WMMM,
+ ;NMMMMV+##+VNWWW' .+;'':+, 'WMW,
+,VNNWP+${c2}######${c1}+WW, ${c2}+: ${c1}:+, +MMM,
+'${c2}+#############, +. ,+' ${c1}+NMMM
+${c2} '*#########*' '*,,*' ${c1}.+NMMMM.
+${c2} `'*###*' ,.,;###${c1}+WNM,
+${c2} .,;;, .;##########${c1}+W
+${c2},',. '; ,+##############'
+ '###+. :,. .,; ,###############'
+ '####.. `'' .,###############'
+ '#####+++################'
+ '*##################*'
+ ''*##########*''
+ ''''''
diff --git a/ascii/distro/suse b/ascii/distro/suse
new file mode 100644
index 00000000..6cc0433c
--- /dev/null
+++ b/ascii/distro/suse
@@ -0,0 +1,18 @@
+${c2} .;ldkO0000Okdl;.
+ .;d00xl:^''''''^:ok00d;.
+ .d00l' 'o00d.
+ .d0Kd'${c1} Okxol:;,. ${c2}:O0d.
+ .OK${c1}KKK0kOKKKKKKKKKKOxo:, ${c2}lKO.
+ ,0K${c1}KKKKKKKKKKKKKKK0P^${c2},,,${c1}^dx:${c2} ;00,
+.OK${c1}KKKKKKKKKKKKKKKk'${c2}.oOPPb.${c1}'0k.${c2} cKO.
+:KK${c1}KKKKKKKKKKKKKKK: ${c2}kKx..dd ${c1}lKd${c2} 'OK:
+dKK${c1}KKKKKKKKKOx0KKKd ${c2}^0KKKO' ${c1}kKKc${c2} dKd
+dKK${c1}KKKKKKKKKK;.;oOKx,..${c2}^${c1}..;kKKK0.${c2} dKd
+:KK${c1}KKKKKKKKKK0o;...^cdxxOK0O/^^' ${c2}.0K:
+ kKK${c1}KKKKKKKKKKKKK0x;,,......,;od ${c2}lKk
+ '0K${c1}KKKKKKKKKKKKKKKKKKKK00KKOo^ ${c2}c00'
+ 'kK${c1}KKOxddxkOO00000Okxoc;'' ${c2}.dKk'
+ l0Ko. .c00l'
+ 'l0Kk:. .;xK0l'
+ 'lkK0xl:;,,,,;:ldO0kl'
+ '^:ldxkkkkxdl:^'
diff --git a/ascii/distro/swagarch b/ascii/distro/swagarch
new file mode 100644
index 00000000..e3884f15
--- /dev/null
+++ b/ascii/distro/swagarch
@@ -0,0 +1,15 @@
+${c2} .;ldkOKXXNNNNXXK0Oxoc,.
+ ,lkXMMNK0OkkxkkOKWMMMMMMMMMM;
+ 'K0xo ..,;:c:. `'lKMMMMM0
+ .lONMMMMMM' `lNMk'
+${c2} ;WMMMMMMMMMO. ${c1}....::...
+${c2} OMMMMMMMMMMMMKl. ${c1}.,;;;;;ccccccc,
+${c2} `0MMMMMMMMMMMMMM0: ${c1}.. .ccccccc.
+${c2} 'kWMMMMMMMMMMMMMNo. ${c1}.,:' .ccccccc.
+${c2} `c0MMMMMMMMMMMMMN,${c1},:c; :cccccc:
+${c2} ckl. `lXMMMMMMMMMX${c1}occcc:.. ;ccccccc.
+${c2}dMMMMXd, `OMMMMMMWk${c1}ccc;:''` ,ccccccc:
+${c2}XMMMMMMMWKkxxOWMMMMMNo${c1}ccc; .cccccccc.
+${c2} `':ldxO0KXXXXXK0Okdo${c1}cccc. :cccccccc.
+ :ccc:' `cccccccc:,
+ ''
diff --git a/ascii/distro/tails b/ascii/distro/tails
new file mode 100644
index 00000000..a0512bc6
--- /dev/null
+++ b/ascii/distro/tails
@@ -0,0 +1,19 @@
+${c1} ``
+ ./yhNh
+syy/Nshh `:o/
+N:dsNshh █ `ohNMMd
+N-/+Nshh `yMMMMd
+N-yhMshh yMMMMd
+N-s:hshh █ yMMMMd so//.
+N-oyNsyh yMMMMd d Mms.
+N:hohhhd:. yMMMMd syMMM+
+Nsyh+-..+y+- yMMMMd :mMM+
++hy- -ss/`yMMMM `+d+
+ :sy/. ./yNMMMMm ``
+ .+ys- `:+hNMMMMMMy/`
+ `hNmmMMMMMMMMMMMMdo.
+ dMMMMMMMMMMMMMMMMMNh:
+ +hMMMMMMMMMMMMMMMMMmy.
+ -oNMMMMMMMMMMmy+.`
+ `:yNMMMds/.`
+ .//`
diff --git a/ascii/distro/trisquel b/ascii/distro/trisquel
new file mode 100644
index 00000000..07634b83
--- /dev/null
+++ b/ascii/distro/trisquel
@@ -0,0 +1,18 @@
+${c1} ▄▄▄▄▄▄
+ ▄█████████▄
+ ▄▄▄▄▄▄ ████▀ ▀████
+ ▄██████████▄ ████▀ ▄▄ ▀███
+ ▄███▀▀ ▀▀████ ███▄ ▄█ ███
+▄███ ▄▄▄ ████▄ ▀██████ ▄███
+███ █▀▀██▄ █████▄ ▀▀ ▄████
+▀███ ███ ███████▄▄ ▄▄██████
+${c1} ▀███▄ ▄███ █████████████${c2}████▀
+${c1} ▀█████████ ███████${c2}███▀▀▀
+ ▀▀███▀▀ ██████▀▀
+ ██████▀ ▄▄▄▄
+ █████▀ ████████
+ █████ ███▀ ▀███
+ ████▄ ██▄▄▄ ███
+ █████▄ ▀▀ ▄██
+ ██████▄▄▄████
+ ▀▀█████▀▀
diff --git a/ascii/distro/trueos b/ascii/distro/trueos
new file mode 100644
index 00000000..84bc618a
--- /dev/null
+++ b/ascii/distro/trueos
@@ -0,0 +1,27 @@
+${c1} ..
+ s.
+ +y
+ yN
+ -MN `.
+ :NMs `m
+ .yMMm` `No
+ `-/+++sdMMMNs+-`+Ms
+ `:oo+-` .yMMMMy` `-+oNMh
+ -oo- +NMMMM/ oMMh-
+ .s+` ` oMMMMM/ - oMMMhy.
+ +s`- :: :MMMMMd -o `mMMMy`s+
+ y+ h .Ny+oNMMMMMN/ sh+NMMMMo +y
+ s+ .ds -NMMMMMMMMMMNdhdNMMMMMMh` +s
+-h .NM` `hMMMMMMMMMMMMMMNMMNy: h-
+y- hMN` hMMmMMMMMMMMMNsdMNs. -y
+m` mMMy` oMMNoNMMMMMMo` sMMMo `m
+m` :NMMMdyydMMMMo+MdMMMs sMMMd` `m
+h- `+ymMMMMMMMM--M+hMMN/ +MMMMy -h
+:y `.sMMMMM/ oMM+.yMMNddNMMMMMm y:
+ y: `s dMMN- .MMMM/ :MMMMMMMMMMh :y
+ `h: `mdmMMM/ yMMMMs sMMMMMMMMN- :h`
+ so -NMMMN /mmd+ `dMMMMMMMm- os
+ :y: `yMMM` `+NMMMMMMNo`:y:
+ /s+`.omy /NMMMMMNh/.+s:
+ .+oo:-. /mdhs+::oo+.
+ -/o+++++++++++/-
diff --git a/ascii/distro/ubuntu b/ascii/distro/ubuntu
new file mode 100644
index 00000000..db5df090
--- /dev/null
+++ b/ascii/distro/ubuntu
@@ -0,0 +1,20 @@
+${c1} .-/+oossssoo+/-.
+ `:+ssssssssssssssssss+:`
+ -+ssssssssssssssssssyyssss+-
+ .ossssssssssssssssss${c2}dMMMNy${c1}sssso.
+ /sssssssssss${c2}hdmmNNmmyNMMMMh${c1}ssssss/
+ +sssssssss${c2}hm${c1}yd${c2}MMMMMMMNddddy${c1}ssssssss+
+ /ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhmNMMMNh${c1}ssssssss/
+.ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss.
++ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+
+oss${c2}yNMMMNyMMh${c1}ssssssssssssss${c2}hmmmh${c1}ssssssso
+oss${c2}yNMMMNyMMh${c1}sssssssssssssshmmmh${c1}ssssssso
++ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+
+.ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss.
+ /ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhdNMMMNh${c1}ssssssss/
+ +sssssssss${c2}dm${c1}yd${c2}MMMMMMMMddddy${c1}ssssssss+
+ /sssssssssss${c2}hdmNNNNmyNMMMMh${c1}ssssss/
+ .ossssssssssssssssss${c2}dMMMNy${c1}sssso.
+ -+sssssssssssssssss${c2}yyy${c1}ssss+-
+ `:+ssssssssssssssssss+:`
+ .-/+oossssoo+/-.
diff --git a/ascii/distro/ubuntu-budgie b/ascii/distro/ubuntu-budgie
new file mode 100644
index 00000000..1faec715
--- /dev/null
+++ b/ascii/distro/ubuntu-budgie
@@ -0,0 +1,20 @@
+${c2} ./oydmMMMMMMmdyo/.
+ :smMMMMMMMMMMMhs+:++yhs:
+ `omMMMMMMMMMMMN+` `odo`
+ /NMMMMMMMMMMMMN- `sN/
+ `hMMMMmhhmMMMMMMh sMh`
+ .mMmo- /yMMMMm` `MMm.
+ mN/ yMMMMMMMd- MMMm
+oN- oMMMMMMMMMms+//+o+: :MMMMo
+m/ +NMMMMMMMMMMMMMMMMm. :NMMMMm
+M` .NMMMMMMMMMMMMMMMNodMMMMMMM
+M- sMMMMMMMMMMMMMMMMMMMMMMMMM
+mm` mMMMMMMMMMNdhhdNMMMMMMMMMm
+oMm/ .dMMMMMMMMh: :dMMMMMMMo
+ mMMNyo/:/sdMMMMMMMMM+ sMMMMMm
+ .mMMMMMMMMMMMMMMMMMs `NMMMm.
+ `hMMMMMMMMMMM.oo+. `MMMh`
+ /NMMMMMMMMMo sMN/
+ `omMMMMMMMMy. :dmo`
+ :smMMMMMMMh+-` `.:ohs:
+ ./oydmMMMMMMdhyo/.
diff --git a/ascii/distro/ubuntu-gnome b/ascii/distro/ubuntu-gnome
new file mode 100644
index 00000000..096dca3d
--- /dev/null
+++ b/ascii/distro/ubuntu-gnome
@@ -0,0 +1,16 @@
+${c3} ./o.
+ .oooooooo
+ .oooo```soooo
+ .oooo` `soooo
+ .ooo` ${c4}.o.${c3} `\/ooo.
+ :ooo ${c4}:oooo.${c3} `\/ooo.
+ sooo ${c4}`ooooo${c3} \/oooo
+ \/ooo ${c4}`soooo${c3} `ooooo
+ `soooo ${c4}`\/ooo${c3} `soooo
+${c4}./oo ${c3}`\/ooo ${c4}`/oooo.${c3} `/ooo
+${c4}`\/ooo. ${c3}`/oooo. ${c4}`/oooo.${c3} ``
+${c4} `\/ooo. ${c3}/oooo ${c4}/ooo`
+${c4} `ooooo ${c3}`` ${c4}.oooo
+${c4} `soooo. .oooo`
+ `\/oooooooooo`
+ ``\/oo``
diff --git a/ascii/distro/ubuntu-mate b/ascii/distro/ubuntu-mate
new file mode 100644
index 00000000..893389fe
--- /dev/null
+++ b/ascii/distro/ubuntu-mate
@@ -0,0 +1,20 @@
+${c1} `:+shmNNMMNNmhs+:`
+ .odMMMMMMMMMMMMMMMMMMdo.
+ /dMMMMMMMMMMMMMMMmMMMMMMMMd/
+ :mMMMMMMMMMMMMNNNNM/`/yNMMMMMMm:
+ `yMMMMMMMMMms:..-::oM: -omMMMMMy`
+ `dMMMMMMMMy-.odNMMMMMM: -odMMMMMMd`
+ hMMMMMMMm-.hMMy/....+M:`/yNm+mMMMMMMMh
+/MMMMNmMN-:NMy`-yNMMMMMmNyyMN:`dMMMMMMM/
+hMMMMm -odMMh`sMMMMMMMMMMs sMN..MMMMMMMh
+NMMMMm `/yNMMMMMMMMMMMM: MM+ mMMMMMMN
+NMMMMm `/yNMMMMMMMMMMMM: MM+ mMMMMMMN
+hMMMMm -odMMh sMMMMMMMMMMs oMN..MMMMMMMh
+/MMMMNNMN-:NMy`-yNMMMMMNNsyMN:`dMMMMMMM/
+ hMMMMMMMm-.hMMy/....+M:.+hNd+mMMMMMMMh
+ `dMMMMMMMMy-.odNMMMMMM: :smMMMMMMd`
+ yMMMMMMMMMms/..-::oM: .+dMMMMMy
+ :mMMMMMMMMMMMMNNNNM: :smMMMMMMm:
+ /dMMMMMMMMMMMMMMMdNMMMMMMMd/
+ .odMMMMMMMMMMMMMMMMMMdo.
+ `:+shmNNMMNNmhs+:`
diff --git a/ascii/distro/ubuntu-studio b/ascii/distro/ubuntu-studio
new file mode 100644
index 00000000..2deb270e
--- /dev/null
+++ b/ascii/distro/ubuntu-studio
@@ -0,0 +1,20 @@
+${c1} ..-::::::-.`
+ `.:+++++++++++${c2}ooo${c1}++:.`
+ ./+++++++++++++${c2}sMMMNdyo${c1}+/.
+ .++++++++++++++++${c2}oyhmMMMMms${c1}++.
+ `/+++++++++${c2}osyhddddhys${c1}+${c2}osdMMMh${c1}++/`
+ `+++++++++${c2}ydMMMMNNNMMMMNds${c1}+${c2}oyyo${c1}++++`
+ +++++++++${c2}dMMNhso${c1}++++${c2}oydNMMmo${c1}++++++++`
+ :+${c2}odmy${c1}+++${c2}ooysoohmNMMNmyoohMMNs${c1}+++++++:
+ ++${c2}dMMm${c1}+${c2}oNMd${c1}++${c2}yMMMmhhmMMNs+yMMNo${c1}+++++++
+`++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMs${c1}++++${c2}sMMN${c1}++${c2}NMMs${c1}+++++++.
+`++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMo${c1}++++${c2}sMMN${c1}++${c2}mMMs${c1}+++++++.
+ ++${c2}dMMd${c1}+${c2}oNMm${c1}++${c2}yMMNdhhdMMMs${c1}+y${c2}MMNo${c1}+++++++
+ :+${c2}odmy${c1}++${c2}oo${c1}+${c2}ss${c1}+${c2}ohNMMMMmho${c1}+${c2}yMMMs${c1}+++++++:
+ +++++++++${c2}hMMmhs+ooo+oshNMMms${c1}++++++++
+ `++++++++${c2}oymMMMMNmmNMMMMmy+oys${c1}+++++`
+ `/+++++++++${c2}oyhdmmmmdhso+sdMMMs${c1}++/
+ ./+++++++++++++++${c2}oyhdNMMMms${c1}++.
+ ./+++++++++++++${c2}hMMMNdyo${c1}+/.
+ `.:+++++++++++${c2}sso${c1}++:.
+ ..-::::::-..
diff --git a/ascii/distro/ubuntu_old b/ascii/distro/ubuntu_old
new file mode 100644
index 00000000..4e3664b6
--- /dev/null
+++ b/ascii/distro/ubuntu_old
@@ -0,0 +1,19 @@
+
+${c1} ./+o+-
+${c2} yyyyy- ${c1}-yyyyyy+
+${c2} ${c2}://+//////${c1}-yyyyyyo
+${c3} .++ ${c2}.:/++++++/-${c1}.+sss/`
+${c3} .:++o: ${c2}/++++++++/:--:/-
+${c3} o:+o+:++.${c2}`..```.-/oo+++++/
+${c3} .:+o:+o/.${c2} `+sssoo+/
+${c2} .++/+:${c3}+oo+o:`${c2} /sssooo.
+${c2}/+++//+:${c3}`oo+o${c2} /::--:.
+${c2}+/+o+++${c3}`o++o${c1} ++////.
+${c2} .++.o+${c3}++oo+:`${c1} /dddhhh.
+${c3} .+.o+oo:.${c1} `oddhhhh+
+${c3} +.++o+o`${c1}`-````.:ohdhhhhh+
+${c3} `:o+++ ${c1}`ohhhhhhhhyo++os:
+${c3} .o:${c1}`.syhhhhhhh/${c3}.oo++o`
+${c1} /osyyyyyyo${c3}++ooo+++/
+${c1} ````` ${c3}+oo+++o:
+${c3} `oo++.
diff --git a/ascii/distro/void b/ascii/distro/void
new file mode 100644
index 00000000..2a089e63
--- /dev/null
+++ b/ascii/distro/void
@@ -0,0 +1,18 @@
+${c1} __.;=====;.__
+ _.=+==++=++=+=+===;.
+ -=+++=+===+=+=+++++=_
+ . -=:`` `--==+=++==.
+ _vi, ` --+=++++:
+ .uvnvi. _._ -==+==+.
+ .vvnvnI` .;==|==;. :|=||=|.
+${c2}+QmQQm${c1}pvvnv; ${c2}_yYsyQQWUUQQQm #QmQ#${c1}:${c2}QQQWUV$QQmL
+${c2} -QQWQW${c1}pvvo${c2}wZ?.wQQQE${c1}==<${c2}QWWQ/QWQW.QQWW${c1}(: ${c2}jQWQE
+${c2} -$QQQQmmU' jQQQ@${c1}+=<${c2}QWQQ)mQQQ.mQQQC${c1}+;${c2}jWQQ@'
+${c2} -$WQ8Y${c1}nI: ${c2}QWQQwgQQWV${c1}`${c2}mWQQ.jQWQQgyyWW@!
+${c1} -1vvnvv. `~+++` ++|+++
+ +vnvnnv, `-|===
+ +vnvnvns. . :=-
+ -Invnvvnsi..___..=sv=. `
+ +Invnvnvnnnnnnnnvvnn;.
+ ~|Invnvnvvnvvvnnv}+`
+ -~|{*l}*|~
diff --git a/ascii/distro/void_small b/ascii/distro/void_small
new file mode 100644
index 00000000..adfae49b
--- /dev/null
+++ b/ascii/distro/void_small
@@ -0,0 +1,7 @@
+${c1} _______
+ _ \______ -
+| \ ___ \ |
+| | / \ | |
+| | \___/ | |
+| \______ \_|
+ -_______\
diff --git a/ascii/distro/windows b/ascii/distro/windows
new file mode 100644
index 00000000..31564309
--- /dev/null
+++ b/ascii/distro/windows
@@ -0,0 +1,16 @@
+${c1} ,.=:!!t3Z3z.,
+ :tt:::tt333EE3
+${c1} Et:::ztt33EEEL${c2} @Ee., ..,
+${c1} ;tt:::tt333EE7${c2} ;EEEEEEttttt33#
+${c1} :Et:::zt333EEQ.${c2} $EEEEEttttt33QL
+${c1} it::::tt333EEF${c2} @EEEEEEttttt33F
+${c1} ;3=*^```"*4EEV${c2} :EEEEEEttttt33@.
+${c3} ,.=::::!t=., ${c1}`${c2} @EEEEEEtttz33QF
+${c3} ;::::::::zt33)${c2} "4EEEtttji3P*
+${c3} :t::::::::tt33.${c4}:Z3z..${c2} ``${c4} ,..g.
+${c3} i::::::::zt33F${c4} AEEEtttt::::ztF
+${c3} ;:::::::::t33V${c4} ;EEEttttt::::t3
+${c3} E::::::::zt33L${c4} @EEEtttt::::z3F
+${c3}{3=*^```"*4E3)${c4} ;EEEtttt:::::tZ`
+${c3} `${c4} :EEEEtttt::::z7
+ "VEzjt:;;z>*`
diff --git a/ascii/distro/windows10 b/ascii/distro/windows10
new file mode 100644
index 00000000..62596129
--- /dev/null
+++ b/ascii/distro/windows10
@@ -0,0 +1,19 @@
+${c1} ..,
+ ....,,:;+ccllll
+ ...,,+:; cllllllllllllllllll
+,cclllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+llllllllllllll lllllllllllllllllll
+`'ccllllllllll lllllllllllllllllll
+ `' \\*:: :ccllllllllllllllll
+ ````''*::cll
+ ``
diff --git a/ascii/distro/xubuntu b/ascii/distro/xubuntu
new file mode 100644
index 00000000..b872562b
--- /dev/null
+++ b/ascii/distro/xubuntu
@@ -0,0 +1,20 @@
+${c1} `-/osyhddddhyso/-`
+ .+yddddddddddddddddddy+.
+ :yddddddddddddddddddddddddy:
+ -yddddddddddddddddddddhdddddddy-
+ odddddddddddyshdddddddh`dddd+ydddo
+ `yddddddhshdd- ydddddd+`ddh.:dddddy`
+ sddddddy /d. :dddddd-:dy`-ddddddds
+:ddddddds /+ .dddddd`yy`:ddddddddd:
+sdddddddd` . .-:/+ssdyodddddddddds
+ddddddddy `:ohddddddddd
+dddddddd. +dddddddd
+sddddddy ydddddds
+:dddddd+ .oddddddd:
+ sdddddo ./ydddddddds
+ `yddddd. `:ohddddddddddy`
+ oddddh/` `.:+shdddddddddddddo
+ -ydddddhyssyhdddddddddddddddddy-
+ :yddddddddddddddddddddddddy:
+ .+yddddddddddddddddddy+.
+ `-/osyhddddhyso/-`
diff --git a/ascii/distro/zorin b/ascii/distro/zorin
new file mode 100644
index 00000000..bb051669
--- /dev/null
+++ b/ascii/distro/zorin
@@ -0,0 +1,17 @@
+${c1} `osssssssssssssssssssso`
+ .osssssssssssssssssssssso.
+ .+oooooooooooooooooooooooo+.
+
+
+ `::::::::::::::::::::::. .:`
+ `+ssssssssssssssssss+:.` `.:+ssso`
+.ossssssssssssssso/. `-+ossssssso.
+ssssssssssssso/-` `-/osssssssssssss
+.ossssssso/-` .-/ossssssssssssssso.
+ `+sss+:. `.:+ssssssssssssssssss+`
+ `:. .::::::::::::::::::::::`
+
+
+ .+oooooooooooooooooooooooo+.
+ -osssssssssssssssssssssso-
+ `osssssssssssssssssssso`
diff --git a/config/config.conf b/config/config.conf
new file mode 100644
index 00000000..f0d7cdb9
--- /dev/null
+++ b/config/config.conf
@@ -0,0 +1,732 @@
+# Neofetch config file
+# https://github.com/dylanaraps/neofetch
+
+
+# See this wiki page for more info:
+# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
+print_info() {
+ info title
+ info underline
+
+ info "OS" distro
+ info "Host" model
+ info "Kernel" kernel
+ info "Uptime" uptime
+ info "Packages" packages
+ info "Shell" shell
+ info "Resolution" resolution
+ info "DE" de
+ info "WM" wm
+ info "WM Theme" wm_theme
+ info "Theme" theme
+ info "Icons" icons
+ info "Terminal" term
+ info "Terminal Font" term_font
+ info "CPU" cpu
+ info "GPU" gpu
+ info "Memory" memory
+
+ # info "GPU Driver" gpu_driver # Linux/macOS only
+ # info "CPU Usage" cpu_usage
+ # info "Disk" disk
+ # info "Battery" battery
+ # info "Font" font
+ # info "Song" song
+ # info "Local IP" local_ip
+ # info "Public IP" public_ip
+ # info "Users" users
+ # info "Install Date" install_date
+ # info "Locale" locale # This only works on glibc systems.
+
+ info line_break
+ info cols
+ info line_break
+}
+
+
+# Kernel
+
+
+# Shorten the output of the kernel function.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --kernel_shorthand
+# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
+#
+# Example:
+# on: '4.8.9-1-ARCH'
+# off: 'Linux 4.8.9-1-ARCH'
+kernel_shorthand="on"
+
+
+# Distro
+
+
+# Shorten the output of the distro function
+#
+# Default: 'off'
+# Values: 'on', 'off', 'tiny'
+# Flag: --distro_shorthand
+# Supports: Everything except Windows and Haiku
+distro_shorthand="off"
+
+# Show/Hide OS Architecture.
+# Show 'x86_64', 'x86' and etc in 'Distro:' output.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --os_arch
+#
+# Example:
+# on: 'Arch Linux x86_64'
+# off: 'Arch Linux'
+os_arch="on"
+
+
+# Uptime
+
+
+# Shorten the output of the uptime function
+#
+# Default: 'on'
+# Values: 'on', 'off', 'tiny'
+# Flag: --uptime_shorthand
+#
+# Example:
+# on: '2 days, 10 hours, 3 mins'
+# off: '2 days, 10 hours, 3 minutes'
+# tiny: '2d 10h 3m'
+uptime_shorthand="on"
+
+
+# Shell
+
+
+# Show the path to $SHELL
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --shell_path
+#
+# Example:
+# on: '/bin/bash'
+# off: 'bash'
+shell_path="off"
+
+# Show $SHELL version
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --shell_version
+#
+# Example:
+# on: 'bash 4.4.5'
+# off: 'bash'
+shell_version="on"
+
+
+# CPU
+
+
+# CPU speed type
+#
+# Default: 'bios_limit'
+# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
+# Flag: --speed_type
+# Supports: Linux with 'cpufreq'
+# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
+speed_type="bios_limit"
+
+# CPU speed shorthand
+#
+# Default: 'off'
+# Values: 'on', 'off'.
+# Flag: --speed_shorthand.
+# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
+#
+# Example:
+# on: 'i7-6500U (4) @ 3.1GHz'
+# off: 'i7-6500U (4) @ 3.100GHz'
+speed_shorthand="off"
+
+# Enable/Disable CPU brand in output.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --cpu_brand
+#
+# Example:
+# on: 'Intel i7-6500U'
+# off: 'i7-6500U (4)'
+cpu_brand="on"
+
+# CPU Speed
+# Hide/Show CPU speed.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --cpu_speed
+#
+# Example:
+# on: 'Intel i7-6500U (4) @ 3.1GHz'
+# off: 'Intel i7-6500U (4)'
+cpu_speed="on"
+
+# CPU Cores
+# Display CPU cores in output
+#
+# Default: 'logical'
+# Values: 'logical', 'physical', 'off'
+# Flag: --cpu_cores
+# Support: 'physical' doesn't work on BSD.
+#
+# Example:
+# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
+# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
+# off: 'Intel i7-6500U @ 3.1GHz'
+cpu_cores="logical"
+
+# CPU Temperature
+# Hide/Show CPU temperature.
+# Note the temperature is added to the regular CPU function.
+#
+# Default: 'off'
+# Values: 'C', 'F', 'off'
+# Flag: --cpu_temp
+# Supports: Linux, BSD
+# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
+# coretemp kernel module. This only supports newer Intel processors.
+#
+# Example:
+# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
+# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
+# off: 'Intel i7-6500U (4) @ 3.1GHz'
+cpu_temp="off"
+
+
+# GPU
+
+
+# Enable/Disable GPU Brand
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --gpu_brand
+#
+# Example:
+# on: 'AMD HD 7950'
+# off: 'HD 7950'
+gpu_brand="on"
+
+# Which GPU to display
+#
+# Default: 'all'
+# Values: 'all', 'dedicated', 'integrated'
+# Flag: --gpu_type
+# Supports: Linux
+#
+# Example:
+# all:
+# GPU1: AMD HD 7950
+# GPU2: Intel Integrated Graphics
+#
+# dedicated:
+# GPU1: AMD HD 7950
+#
+# integrated:
+# GPU1: Intel Integrated Graphics
+gpu_type="all"
+
+
+# Resolution
+
+
+# Display refresh rate next to each monitor
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --refresh_rate
+# Supports: Doesn't work on Windows.
+#
+# Example:
+# on: '1920x1080 @ 60Hz'
+# off: '1920x1080'
+refresh_rate="off"
+
+
+# Gtk Theme / Icons / Font
+
+
+# Shorten output of GTK Theme / Icons / Font
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --gtk_shorthand
+#
+# Example:
+# on: 'Numix, Adwaita'
+# off: 'Numix [GTK2], Adwaita [GTK3]'
+gtk_shorthand="off"
+
+
+# Enable/Disable gtk2 Theme / Icons / Font
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --gtk2
+#
+# Example:
+# on: 'Numix [GTK2], Adwaita [GTK3]'
+# off: 'Adwaita [GTK3]'
+gtk2="on"
+
+# Enable/Disable gtk3 Theme / Icons / Font
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --gtk3
+#
+# Example:
+# on: 'Numix [GTK2], Adwaita [GTK3]'
+# off: 'Numix [GTK2]'
+gtk3="on"
+
+
+# IP Address
+
+
+# Website to ping for the public IP
+#
+# Default: 'http://ident.me'
+# Values: 'url'
+# Flag: --ip_host
+public_ip_host="http://ident.me"
+
+
+# Disk
+
+
+# Which disks to display.
+# The values can be any /dev/sdXX, mount point or directory.
+# NOTE: By default we only show the disk info for '/'.
+#
+# Default: '/'
+# Values: '/', '/dev/sdXX', '/path/to/drive'.
+# Flag: --disk_show
+#
+# Example:
+# disk_show=('/' '/dev/sdb1'):
+# 'Disk (/): 74G / 118G (66%)'
+# 'Disk (/mnt/Videos): 823G / 893G (93%)'
+#
+# disk_show=('/'):
+# 'Disk (/): 74G / 118G (66%)'
+#
+disk_show=('/')
+
+# Disk subtitle.
+# What to append to the Disk subtitle.
+#
+# Default: 'mount'
+# Values: 'mount', 'name', 'dir'
+# Flag: --disk_subtitle
+#
+# Example:
+# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
+# 'Disk (/dev/sdb2): 74G / 118G (66%)'
+#
+# mount: 'Disk (/): 74G / 118G (66%)'
+# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
+# 'Disk (/mnt/Videos): 74G / 118G (66%)'
+#
+# dir: 'Disk (/): 74G / 118G (66%)'
+# 'Disk (Local Disk): 74G / 118G (66%)'
+# 'Disk (Videos): 74G / 118G (66%)'
+disk_subtitle="mount"
+
+
+# Song
+
+
+# Print the Artist and Title on separate lines
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --song_shorthand
+#
+# Example:
+# on: 'Artist: The Fratellis'
+# 'Song: Chelsea Dagger'
+#
+# off: 'Song: The Fratellis - Chelsea Dagger'
+song_shorthand="off"
+
+
+# Install Date
+
+
+# Whether to show the time in the output
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --install_time
+#
+# Example:
+# on: 'Thu 14 Apr 2016 11:50 PM'
+# off: 'Thu 14 Apr 2016'
+install_time="on"
+
+# Set time format in the output
+#
+# Default: '24h'
+# Values: '12h', '24h'
+# Flag: --install_time_format
+#
+# Example:
+# 12h: 'Thu 14 Apr 2016 11:50 PM'
+# 24h: 'Thu 14 Apr 2016 23:50'
+install_time_format="12h"
+
+
+# Text Colors
+
+
+# Text Colors
+#
+# Default: 'distro'
+# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
+# Flag: --colors
+#
+# Each number represents a different part of the text in
+# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
+#
+# Example:
+# colors=(distro) - Text is colored based on Distro colors.
+# colors=(4 6 1 8 8 6) - Text is colored in the order above.
+colors=(distro)
+
+
+# Text Options
+
+
+# Toggle bold text
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --bold
+bold="on"
+
+# Enable/Disable Underline
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --underline
+underline_enabled="on"
+
+# Underline character
+#
+# Default: '-'
+# Values: 'string'
+# Flag: --underline_char
+underline_char="-"
+
+
+# Color Blocks
+
+
+# Color block range
+# The range of colors to print.
+#
+# Default: '0', '7'
+# Values: 'num'
+# Flag: --block_range
+#
+# Example:
+#
+# Display colors 0-7 in the blocks. (8 colors)
+# neofetch --block_range 0 7
+#
+# Display colors 0-15 in the blocks. (16 colors)
+# neofetch --block_range 0 15
+block_range=(0 7)
+
+# Toggle color blocks
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --color_blocks
+color_blocks="on"
+
+# Color block width in spaces
+#
+# Default: '3'
+# Values: 'num'
+# Flag: --block_width
+block_width=3
+
+# Color block height in lines
+#
+# Default: '1'
+# Values: 'num'
+# Flag: --block_height
+block_height=1
+
+
+# Progress Bars
+
+
+# Bar characters
+#
+# Default: '-', '='
+# Values: 'string', 'string'
+# Flag: --bar_char
+#
+# Example:
+# neofetch --bar_char 'elapsed' 'total'
+# neofetch --bar_char '-' '='
+bar_char_elapsed="-"
+bar_char_total="="
+
+# Toggle Bar border
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --bar_border
+bar_border="on"
+
+# Progress bar length in spaces
+# Number of chars long to make the progress bars.
+#
+# Default: '15'
+# Values: 'num'
+# Flag: --bar_length
+bar_length=15
+
+# Progress bar colors
+# When set to distro, uses your distro's logo colors.
+#
+# Default: 'distro', 'distro'
+# Values: 'distro', 'num'
+# Flag: --bar_colors
+#
+# Example:
+# neofetch --bar_colors 3 4
+# neofetch --bar_colors distro 5
+bar_color_elapsed="distro"
+bar_color_total="distro"
+
+
+# Info display
+# Display a bar with the info.
+#
+# Default: 'off'
+# Values: 'bar', 'infobar', 'barinfo', 'off'
+# Flags: --cpu_display
+# --memory_display
+# --battery_display
+# --disk_display
+#
+# Example:
+# bar: '[---=======]'
+# infobar: 'info [---=======]'
+# barinfo: '[---=======] info'
+# off: 'info'
+cpu_display="off"
+memory_display="off"
+battery_display="off"
+disk_display="off"
+
+
+# Backend Settings
+
+
+# Image backend.
+#
+# Default: 'ascii'
+# Values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', 'tycat', 'w3m'
+# Flag: --backend
+image_backend="ascii"
+
+# Image Source
+#
+# Which image or ascii file to display.
+#
+# Default: 'auto'
+# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
+# Flag: --source
+#
+# NOTE: 'auto' will pick the best image source for whatever image backend is used.
+# In ascii mode, distro ascii art will be used and in an image mode, your
+# wallpaper will be used.
+image_source="auto"
+
+
+# Ascii Options
+
+
+# Ascii distro
+# Which distro's ascii art to display.
+#
+# Default: 'auto'
+# Values: 'auto', 'distro_name'
+# Flag: --ascii_distro
+#
+# NOTE: Arch and Ubuntu have 'old' logo variants.
+# Change this to 'arch_old' or 'ubuntu_old' to use the old logos.
+# NOTE: Ubuntu has flavor variants.
+# Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME' or 'Ubuntu-Budgie' to use the flavors.
+# NOTE: Arch, Crux and Gentoo have a smaller logo variant.
+# Change this to 'arch_small', 'crux_small' or 'gentoo_small' to use the small logos.
+ascii_distro="auto"
+
+# Ascii Colors
+#
+# Default: 'distro'
+# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
+# Flag: --ascii_colors
+#
+# Example:
+# ascii_colors=(distro) - Ascii is colored based on Distro colors.
+# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
+ascii_colors=(distro)
+
+# Bold ascii logo
+# Whether or not to bold the ascii logo.
+#
+# Default: 'on'
+# Values: 'on', 'off'
+# Flag: --ascii_bold
+ascii_bold="on"
+
+
+# Image Options
+
+
+# Image loop
+# Setting this to on will make neofetch redraw the image constantly until
+# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flag: --loop
+image_loop="off"
+
+# Thumbnail directory
+#
+# Default: '~/.cache/thumbnails/neofetch'
+# Values: 'dir'
+thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
+
+# Crop mode
+#
+# Default: 'normal'
+# Values: 'normal', 'fit', 'fill'
+# Flag: --crop_mode
+#
+# See this wiki page to learn about the fit and fill options.
+# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
+crop_mode="normal"
+
+# Crop offset
+# Note: Only affects 'normal' crop mode.
+#
+# Default: 'center'
+# Values: 'northwest', 'north', 'northeast', 'west', 'center'
+# 'east', 'southwest', 'south', 'southeast'
+# Flag: --crop_offset
+crop_offset="center"
+
+# Image size
+# The image is half the terminal width by default.
+#
+# Default: 'auto'
+# Values: 'auto', '00px', '00%', 'none'
+# Flags: --image_size
+# --size
+image_size="auto"
+
+# Ggap between image and text
+#
+# Default: '3'
+# Values: 'num', '-num'
+# Flag: --gap
+gap=3
+
+# Image offsets
+# Only works with the w3m backend.
+#
+# Default: '0'
+# Values: 'px'
+# Flags: --xoffset
+# --yoffset
+yoffset=0
+xoffset=0
+
+# Image background color
+# Only works with the w3m backend.
+#
+# Default: ''
+# Values: 'color', 'blue'
+# Flag: --bg_color
+background_color=
+
+
+# Scrot Options
+
+
+# Whether or not to always take a screenshot
+# You can manually take a screenshot with "--scrot" or "-s"
+#
+# Default: 'off'
+# Values: 'on', 'off'
+# Flags: --scrot
+# -s
+scrot="off"
+
+# Screenshot Program
+# Neofetch will automatically use whatever screenshot tool
+# is installed on your system.
+#
+# If 'neofetch -v' says that it couldn't find a screenshot
+# tool or you're using a custom tool then you can change
+# the option below to a custom command.
+#
+# Default: 'auto'
+# Values: 'auto' 'cmd -flags'
+# Flag: --scrot_cmd
+scrot_cmd="auto"
+
+# Screenshot Filename
+# What to name the screenshots
+#
+# Default: 'neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png'
+# Values: 'string'
+# Flag: --scrot_name
+scrot_name="neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png"
+
+# Image upload host
+# Where to upload the image.
+#
+# Default: 'teknik'
+# Values: 'imgur', 'teknik'
+# Flag: --image_host
+#
+# NOTE: If you'd like another image host to be added to Neofetch.
+# Open an issue on github.
+image_host="teknik"
+
+
+# Misc Options
+
+# Stdout mode
+# Turn off all colors and disables image backend (ASCII/Image).
+# Useful for piping into another command.
+# Default: 'off'
+# Values: 'on', 'off'
+stdout="off"
+
+# Config version.
+#
+# NOTE: Don't change this value, neofetch reads this to determine
+# how to handle backwards compatibility.
+config_version="3.3.1-git"
diff --git a/config/travis.conf b/config/travis.conf
new file mode 100644
index 00000000..0dada093
--- /dev/null
+++ b/config/travis.conf
@@ -0,0 +1,55 @@
+# Neofetch config file for travis.ci
+# https://github.com/dylanaraps/neofetch
+
+print_info() {
+ info title
+ info underline
+
+ info "OS" distro
+ info "Host" model
+ info "Kernel" kernel
+ info "Uptime" uptime
+ info "Packages" packages
+ info "Shell" shell
+ info "Resolution" resolution
+ info "DE" de
+ info "WM" wm
+ info "WM Theme" wm_theme
+ info "Theme" theme
+ info "Icons" icons
+ info "Terminal" term
+ info "Terminal Font" term_font
+ info "CPU" cpu
+ info "GPU" gpu
+ info "GPU Driver" gpu_driver
+ info "Memory" memory
+
+ info "CPU Usage" cpu_usage
+ info "Disk" disk
+ info "Battery" battery
+ info "Font" font
+ info "Song" song
+ info "Local IP" local_ip
+ info "Public IP" public_ip
+ info "Users" users
+ info "Install Date" install_date
+
+ info line_break
+ info cols
+ info line_break
+
+ # Testing.
+ prin "prin"
+ prin "prin" "prin"
+
+ # Testing no subtitles.
+ info uptime
+ info disk
+}
+
+refresh_rate="on"
+shell_version="on"
+cpu_display="infobar"
+memory_display="infobar"
+disk_display="infobar"
+cpu_temp="C"
diff --git a/neofetch b/neofetch
index 3960a0e0..1742f790 100755
--- a/neofetch
+++ b/neofetch
@@ -1,1891 +1,706 @@
#!/usr/bin/env bash
+# set -x
# vim: noai:ts=4:sw=4:expandtab
-# shellcheck source=/dev/null
-# shellcheck disable=2009
#
-# Neofetch: A command-line system information tool written in bash 3.2+.
+# Neofetch: Simple system information script.
# https://github.com/dylanaraps/neofetch
#
-# The MIT License (MIT)
-#
-# Copyright (c) 2015-2021 Dylan Araps
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
+# Created by Dylan Araps
+# https://github.com/dylanaraps/
-version=7.1.0
+# Neofetch version.
+version="3.3.1-git"
-# Fallback to a value of '5' for shells which support bash
-# but do not set the 'BASH_' shell variables (osh).
-bash_version=${BASH_VERSINFO[0]:-5}
-shopt -s eval_unsafe_arith &>/dev/null
-
-sys_locale=${LANG:-C}
-XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-${HOME}/.config}
-PATH=$PATH:/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec
-reset='\e[0m'
-shopt -s nocasematch
+bash_version="${BASH_VERSION/.*}"
+sys_locale="${LANG:-C}"
+XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}"
+old_ifs="$IFS"
# Speed up script by not using unicode.
-LC_ALL=C
-LANG=C
+export LC_ALL=C
+export LANG=C
-# Fix issues with gsettings.
-export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/
+# Add more paths to $PATH.
+export PATH="/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec:${PATH}"
-# Neofetch default config.
-read -rd '' config <<'EOF'
-# See this wiki page for more info:
-# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
-print_info() {
- info title
- info underline
+# Set no case match.
+shopt -s nocasematch
- info "OS" distro
- info "Host" model
- info "Kernel" kernel
- info "Uptime" uptime
- info "Packages" packages
- info "Shell" shell
- info "Resolution" resolution
- info "DE" de
- info "WM" wm
- info "WM Theme" wm_theme
- info "Theme" theme
- info "Icons" icons
- info "Terminal" term
- info "Terminal Font" term_font
- info "CPU" cpu
- info "GPU" gpu
- info "Memory" memory
-
- # info "GPU Driver" gpu_driver # Linux/macOS only
- # info "Disk" disk
- # info "Battery" battery
- # info "Font" font
- # info "Song" song
- # [[ "$player" ]] && prin "Music Player" "$player"
- # info "Local IP" local_ip
- # info "Public IP" public_ip
- # info "Users" users
- # info "Locale" locale # This only works on glibc systems.
-
- info cols
-}
-
-# Title
-
-
-# Hide/Show Fully qualified domain name.
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --title_fqdn
-title_fqdn="off"
-
-
-# Kernel
-
-
-# Shorten the output of the kernel function.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --kernel_shorthand
-# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
-#
-# Example:
-# on: '4.8.9-1-ARCH'
-# off: 'Linux 4.8.9-1-ARCH'
-kernel_shorthand="on"
-
-
-# Distro
-
-
-# Shorten the output of the distro function
-#
-# Default: 'off'
-# Values: 'on', 'tiny', 'off'
-# Flag: --distro_shorthand
-# Supports: Everything except Windows and Haiku
-distro_shorthand="off"
-
-# Show/Hide OS Architecture.
-# Show 'x86_64', 'x86' and etc in 'Distro:' output.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --os_arch
-#
-# Example:
-# on: 'Arch Linux x86_64'
-# off: 'Arch Linux'
-os_arch="on"
-
-
-# Uptime
-
-
-# Shorten the output of the uptime function
-#
-# Default: 'on'
-# Values: 'on', 'tiny', 'off'
-# Flag: --uptime_shorthand
-#
-# Example:
-# on: '2 days, 10 hours, 3 mins'
-# tiny: '2d 10h 3m'
-# off: '2 days, 10 hours, 3 minutes'
-uptime_shorthand="on"
-
-
-# Memory
-
-
-# Show memory percentage in output.
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --memory_percent
-#
-# Example:
-# on: '1801MiB / 7881MiB (22%)'
-# off: '1801MiB / 7881MiB'
-memory_percent="off"
-
-# Change memory output unit.
-#
-# Default: 'mib'
-# Values: 'kib', 'mib', 'gib'
-# Flag: --memory_unit
-#
-# Example:
-# kib '1020928KiB / 7117824KiB'
-# mib '1042MiB / 6951MiB'
-# gib: ' 0.98GiB / 6.79GiB'
-memory_unit="mib"
-
-
-# Packages
-
-
-# Show/Hide Package Manager names.
-#
-# Default: 'tiny'
-# Values: 'on', 'tiny' 'off'
-# Flag: --package_managers
-#
-# Example:
-# on: '998 (pacman), 8 (flatpak), 4 (snap)'
-# tiny: '908 (pacman, flatpak, snap)'
-# off: '908'
-package_managers="on"
-
-
-# Shell
-
-
-# Show the path to $SHELL
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --shell_path
-#
-# Example:
-# on: '/bin/bash'
-# off: 'bash'
-shell_path="off"
-
-# Show $SHELL version
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --shell_version
-#
-# Example:
-# on: 'bash 4.4.5'
-# off: 'bash'
-shell_version="on"
-
-
-# CPU
-
-
-# CPU speed type
-#
-# Default: 'bios_limit'
-# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
-# Flag: --speed_type
-# Supports: Linux with 'cpufreq'
-# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
-speed_type="bios_limit"
-
-# CPU speed shorthand
-#
-# Default: 'off'
-# Values: 'on', 'off'.
-# Flag: --speed_shorthand
-# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
-#
-# Example:
-# on: 'i7-6500U (4) @ 3.1GHz'
-# off: 'i7-6500U (4) @ 3.100GHz'
-speed_shorthand="off"
-
-# Enable/Disable CPU brand in output.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --cpu_brand
-#
-# Example:
-# on: 'Intel i7-6500U'
-# off: 'i7-6500U (4)'
-cpu_brand="on"
-
-# CPU Speed
-# Hide/Show CPU speed.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --cpu_speed
-#
-# Example:
-# on: 'Intel i7-6500U (4) @ 3.1GHz'
-# off: 'Intel i7-6500U (4)'
-cpu_speed="on"
-
-# CPU Cores
-# Display CPU cores in output
-#
-# Default: 'logical'
-# Values: 'logical', 'physical', 'off'
-# Flag: --cpu_cores
-# Support: 'physical' doesn't work on BSD.
-#
-# Example:
-# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
-# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
-# off: 'Intel i7-6500U @ 3.1GHz'
-cpu_cores="logical"
-
-# CPU Temperature
-# Hide/Show CPU temperature.
-# Note the temperature is added to the regular CPU function.
-#
-# Default: 'off'
-# Values: 'C', 'F', 'off'
-# Flag: --cpu_temp
-# Supports: Linux, BSD
-# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
-# coretemp kernel module. This only supports newer Intel processors.
-#
-# Example:
-# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
-# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
-# off: 'Intel i7-6500U (4) @ 3.1GHz'
-cpu_temp="off"
-
-
-# GPU
-
-
-# Enable/Disable GPU Brand
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --gpu_brand
-#
-# Example:
-# on: 'AMD HD 7950'
-# off: 'HD 7950'
-gpu_brand="on"
-
-# Which GPU to display
-#
-# Default: 'all'
-# Values: 'all', 'dedicated', 'integrated'
-# Flag: --gpu_type
-# Supports: Linux
-#
-# Example:
-# all:
-# GPU1: AMD HD 7950
-# GPU2: Intel Integrated Graphics
-#
-# dedicated:
-# GPU1: AMD HD 7950
-#
-# integrated:
-# GPU1: Intel Integrated Graphics
-gpu_type="all"
-
-
-# Resolution
-
-
-# Display refresh rate next to each monitor
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --refresh_rate
-# Supports: Doesn't work on Windows.
-#
-# Example:
-# on: '1920x1080 @ 60Hz'
-# off: '1920x1080'
-refresh_rate="off"
-
-
-# Gtk Theme / Icons / Font
-
-
-# Shorten output of GTK Theme / Icons / Font
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --gtk_shorthand
-#
-# Example:
-# on: 'Numix, Adwaita'
-# off: 'Numix [GTK2], Adwaita [GTK3]'
-gtk_shorthand="off"
-
-
-# Enable/Disable gtk2 Theme / Icons / Font
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --gtk2
-#
-# Example:
-# on: 'Numix [GTK2], Adwaita [GTK3]'
-# off: 'Adwaita [GTK3]'
-gtk2="on"
-
-# Enable/Disable gtk3 Theme / Icons / Font
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --gtk3
-#
-# Example:
-# on: 'Numix [GTK2], Adwaita [GTK3]'
-# off: 'Numix [GTK2]'
-gtk3="on"
-
-
-# IP Address
-
-
-# Website to ping for the public IP
-#
-# Default: 'http://ident.me'
-# Values: 'url'
-# Flag: --ip_host
-public_ip_host="http://ident.me"
-
-# Public IP timeout.
-#
-# Default: '2'
-# Values: 'int'
-# Flag: --ip_timeout
-public_ip_timeout=2
-
-# Local IP interface
-#
-# Default: 'auto' (interface of default route)
-# Values: 'auto', 'en0', 'en1'
-# Flag: --ip_interface
-local_ip_interface=('auto')
-
-
-# Desktop Environment
-
-
-# Show Desktop Environment version
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --de_version
-de_version="on"
-
-
-# Disk
-
-
-# Which disks to display.
-# The values can be any /dev/sdXX, mount point or directory.
-# NOTE: By default we only show the disk info for '/'.
-#
-# Default: '/'
-# Values: '/', '/dev/sdXX', '/path/to/drive'.
-# Flag: --disk_show
-#
-# Example:
-# disk_show=('/' '/dev/sdb1'):
-# 'Disk (/): 74G / 118G (66%)'
-# 'Disk (/mnt/Videos): 823G / 893G (93%)'
-#
-# disk_show=('/'):
-# 'Disk (/): 74G / 118G (66%)'
-#
-disk_show=('/')
-
-# Disk subtitle.
-# What to append to the Disk subtitle.
-#
-# Default: 'mount'
-# Values: 'mount', 'name', 'dir', 'none'
-# Flag: --disk_subtitle
-#
-# Example:
-# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
-# 'Disk (/dev/sdb2): 74G / 118G (66%)'
-#
-# mount: 'Disk (/): 74G / 118G (66%)'
-# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
-# 'Disk (/mnt/Videos): 74G / 118G (66%)'
-#
-# dir: 'Disk (/): 74G / 118G (66%)'
-# 'Disk (Local Disk): 74G / 118G (66%)'
-# 'Disk (Videos): 74G / 118G (66%)'
-#
-# none: 'Disk: 74G / 118G (66%)'
-# 'Disk: 74G / 118G (66%)'
-# 'Disk: 74G / 118G (66%)'
-disk_subtitle="mount"
-
-# Disk percent.
-# Show/Hide disk percent.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --disk_percent
-#
-# Example:
-# on: 'Disk (/): 74G / 118G (66%)'
-# off: 'Disk (/): 74G / 118G'
-disk_percent="on"
-
-
-# Song
-
-
-# Manually specify a music player.
-#
-# Default: 'auto'
-# Values: 'auto', 'player-name'
-# Flag: --music_player
-#
-# Available values for 'player-name':
-#
-# amarok
-# audacious
-# banshee
-# bluemindo
-# clementine
-# cmus
-# deadbeef
-# deepin-music
-# dragon
-# elisa
-# exaile
-# gnome-music
-# gmusicbrowser
-# gogglesmm
-# guayadeque
-# io.elementary.music
-# iTunes
-# Music
-# juk
-# lollypop
-# MellowPlayer
-# mocp
-# mopidy
-# mpd
-# muine
-# netease-cloud-music
-# olivia
-# playerctl
-# pogo
-# pragha
-# qmmp
-# quodlibet
-# rhythmbox
-# sayonara
-# smplayer
-# spotify
-# strawberry
-# tauonmb
-# tomahawk
-# vlc
-# xmms2d
-# xnoise
-# yarock
-music_player="auto"
-
-# Format to display song information.
-#
-# Default: '%artist% - %album% - %title%'
-# Values: '%artist%', '%album%', '%title%'
-# Flag: --song_format
-#
-# Example:
-# default: 'Song: Jet - Get Born - Sgt Major'
-song_format="%artist% - %album% - %title%"
-
-# Print the Artist, Album and Title on separate lines
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --song_shorthand
-#
-# Example:
-# on: 'Artist: The Fratellis'
-# 'Album: Costello Music'
-# 'Song: Chelsea Dagger'
-#
-# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
-song_shorthand="off"
-
-# 'mpc' arguments (specify a host, password etc).
-#
-# Default: ''
-# Example: mpc_args=(-h HOST -P PASSWORD)
-mpc_args=()
-
-
-# Text Colors
-
-
-# Text Colors
-#
-# Default: 'distro'
-# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
-# Flag: --colors
-#
-# Each number represents a different part of the text in
-# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
-#
-# Example:
-# colors=(distro) - Text is colored based on Distro colors.
-# colors=(4 6 1 8 8 6) - Text is colored in the order above.
-colors=(distro)
-
-
-# Text Options
-
-
-# Toggle bold text
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --bold
-bold="on"
-
-# Enable/Disable Underline
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --underline
-underline_enabled="on"
-
-# Underline character
-#
-# Default: '-'
-# Values: 'string'
-# Flag: --underline_char
-underline_char="-"
-
-
-# Info Separator
-# Replace the default separator with the specified string.
-#
-# Default: ':'
-# Flag: --separator
-#
-# Example:
-# separator="->": 'Shell-> bash'
-# separator=" =": 'WM = dwm'
-separator=":"
-
-
-# Color Blocks
-
-
-# Color block range
-# The range of colors to print.
-#
-# Default: '0', '15'
-# Values: 'num'
-# Flag: --block_range
-#
-# Example:
-#
-# Display colors 0-7 in the blocks. (8 colors)
-# neofetch --block_range 0 7
-#
-# Display colors 0-15 in the blocks. (16 colors)
-# neofetch --block_range 0 15
-block_range=(0 15)
-
-# Toggle color blocks
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --color_blocks
-color_blocks="on"
-
-# Color block width in spaces
-#
-# Default: '3'
-# Values: 'num'
-# Flag: --block_width
-block_width=3
-
-# Color block height in lines
-#
-# Default: '1'
-# Values: 'num'
-# Flag: --block_height
-block_height=1
-
-# Color Alignment
-#
-# Default: 'auto'
-# Values: 'auto', 'num'
-# Flag: --col_offset
-#
-# Number specifies how far from the left side of the terminal (in spaces) to
-# begin printing the columns, in case you want to e.g. center them under your
-# text.
-# Example:
-# col_offset="auto" - Default behavior of neofetch
-# col_offset=7 - Leave 7 spaces then print the colors
-col_offset="auto"
-
-# Progress Bars
-
-
-# Bar characters
-#
-# Default: '-', '='
-# Values: 'string', 'string'
-# Flag: --bar_char
-#
-# Example:
-# neofetch --bar_char 'elapsed' 'total'
-# neofetch --bar_char '-' '='
-bar_char_elapsed="-"
-bar_char_total="="
-
-# Toggle Bar border
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --bar_border
-bar_border="on"
-
-# Progress bar length in spaces
-# Number of chars long to make the progress bars.
-#
-# Default: '15'
-# Values: 'num'
-# Flag: --bar_length
-bar_length=15
-
-# Progress bar colors
-# When set to distro, uses your distro's logo colors.
-#
-# Default: 'distro', 'distro'
-# Values: 'distro', 'num'
-# Flag: --bar_colors
-#
-# Example:
-# neofetch --bar_colors 3 4
-# neofetch --bar_colors distro 5
-bar_color_elapsed="distro"
-bar_color_total="distro"
-
-
-# Info display
-# Display a bar with the info.
-#
-# Default: 'off'
-# Values: 'bar', 'infobar', 'barinfo', 'off'
-# Flags: --memory_display
-# --battery_display
-# --disk_display
-#
-# Example:
-# bar: '[---=======]'
-# infobar: 'info [---=======]'
-# barinfo: '[---=======] info'
-# off: 'info'
-memory_display="off"
-battery_display="off"
-disk_display="off"
-
-
-# Backend Settings
-
-
-# Image backend.
-#
-# Default: 'ascii'
-# Values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', 'iterm2', 'off',
-# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty', 'ueberzug',
-# 'viu'
-
-# Flag: --backend
-image_backend="ascii"
-
-# Image Source
-#
-# Which image or ascii file to display.
-#
-# Default: 'auto'
-# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
-# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
-# Flag: --source
-#
-# NOTE: 'auto' will pick the best image source for whatever image backend is used.
-# In ascii mode, distro ascii art will be used and in an image mode, your
-# wallpaper will be used.
-image_source="auto"
-
-
-# Ascii Options
-
-
-# Ascii distro
-# Which distro's ascii art to display.
-#
-# Default: 'auto'
-# Values: 'auto', 'distro_name'
-# Flag: --ascii_distro
-# NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS,
-# Antergos, antiX, "AOSC OS", "AOSC OS/Retro", Apricity, ArchCraft,
-# ArcoLinux, ArchBox, ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch,
-# Artix, Arya, Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight,
-# Bodhi, bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
-# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
-# Container_Linux, Crystal Linux, CRUX, Cucumber, dahlia, Debian, Deepin,
-# DesaOS, Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary,
-# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
-# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
-# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, HydroOS
-# Hyperbola, iglunix, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
-# KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE,
-# Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui,
-# Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
-# Netrunner, Nitrux, NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD,
-# openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt,
-# osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix,
-# TrueOS, PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
-# Proxmox, PuffOS, Puppy, PureOS, Qubes, Qubyt, Quibian, Radix, Raspbian,
-# Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith,
-# Rocky, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
-# SereneLinux, SharkLinux, Siduction, SkiffOS, Slackware, SliTaz, SmartOS,
-# Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap, t2,
-# openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
-# Ubuntu-Cinnamon, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE,
-# Ubuntu-Studio, Ubuntu, Univention, Venom, Void, VNux, LangitKetujuh, semc,
-# Obarun, Parch, windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
-# NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
-# Use '{distro name}_old' to use the old logos.
-# NOTE: Ubuntu has flavor variants.
-# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
-# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
-# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
-# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
-# Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
-# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
-# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
-# postmarketOS, and Void have a smaller logo variant.
-# Use '{distro name}_small' to use the small variants.
-ascii_distro="auto"
-
-# Ascii Colors
-#
-# Default: 'distro'
-# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
-# Flag: --ascii_colors
-#
-# Example:
-# ascii_colors=(distro) - Ascii is colored based on Distro colors.
-# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
-ascii_colors=(distro)
-
-# Bold ascii logo
-# Whether or not to bold the ascii logo.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --ascii_bold
-ascii_bold="on"
-
-
-# Image Options
-
-
-# Image loop
-# Setting this to on will make neofetch redraw the image constantly until
-# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --loop
-image_loop="off"
-
-# Thumbnail directory
-#
-# Default: '~/.cache/thumbnails/neofetch'
-# Values: 'dir'
-thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
-
-# Crop mode
-#
-# Default: 'normal'
-# Values: 'normal', 'fit', 'fill'
-# Flag: --crop_mode
-#
-# See this wiki page to learn about the fit and fill options.
-# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
-crop_mode="normal"
-
-# Crop offset
-# Note: Only affects 'normal' crop mode.
-#
-# Default: 'center'
-# Values: 'northwest', 'north', 'northeast', 'west', 'center'
-# 'east', 'southwest', 'south', 'southeast'
-# Flag: --crop_offset
-crop_offset="center"
-
-# Image size
-# The image is half the terminal width by default.
-#
-# Default: 'auto'
-# Values: 'auto', '00px', '00%', 'none'
-# Flags: --image_size
-# --size
-image_size="auto"
-
-# Catimg block size.
-# Control the resolution of catimg.
-#
-# Default: '2'
-# Values: '1', '2'
-# Flags: --catimg_size
-catimg_size="2"
-
-# Gap between image and text
-#
-# Default: '3'
-# Values: 'num', '-num'
-# Flag: --gap
-gap=3
-
-# Image offsets
-# Only works with the w3m backend.
-#
-# Default: '0'
-# Values: 'px'
-# Flags: --xoffset
-# --yoffset
-yoffset=0
-xoffset=0
-
-# Image background color
-# Only works with the w3m backend.
-#
-# Default: ''
-# Values: 'color', 'blue'
-# Flag: --bg_color
-background_color=
-
-
-# Misc Options
-
-# Stdout mode
-# Turn off all colors and disables image backend (ASCII/Image).
-# Useful for piping into another command.
-# Default: 'off'
-# Values: 'on', 'off'
-stdout="off"
-EOF
+# Reset colors and bold.
+reset="\033[0m"
# DETECT INFORMATION
get_os() {
# $kernel_name is set in a function called cache_uname and is
# just the output of "uname -s".
- case $kernel_name in
- Darwin) os=$darwin_name ;;
- SunOS) os=Solaris ;;
- Haiku) os=Haiku ;;
- MINIX) os=MINIX ;;
- AIX) os=AIX ;;
- IRIX*) os=IRIX ;;
- FreeMiNT) os=FreeMiNT ;;
-
- Linux|GNU*)
- os=Linux
- ;;
-
- *BSD|DragonFly|Bitrig)
- os=BSD
- ;;
-
- CYGWIN*|MSYS*|MINGW*)
- os=Windows
- ;;
-
+ case "$kernel_name" in
+ "Linux" | "GNU"*) os="Linux" ;;
+ "Darwin") os="$(sw_vers -productName)" ;;
+ *"BSD" | "DragonFly" | "Bitrig") os="BSD" ;;
+ "CYGWIN"* | "MSYS"* | "MINGW"*) os="Windows" ;;
+ "SunOS") os="Solaris" ;;
+ "Haiku") os="Haiku" ;;
+ "MINIX") os="MINIX" ;;
+ "AIX") os="AIX" ;;
+ "IRIX64") os="IRIX" ;;
+ "HP-UX") os="HP-UX" ;;
*)
- printf '%s\n' "Unknown OS detected: '$kernel_name', aborting..." >&2
- printf '%s\n' "Open an issue on GitHub to add support for your OS." >&2
+ printf "%s\n" "Unknown OS detected: '$kernel_name', aborting..." >&2
+ printf "%s\n" "Open an issue on GitHub to add support for your OS." >&2
exit 1
;;
esac
}
get_distro() {
- [[ $distro ]] && return
+ [[ "$distro" ]] && return
- case $os in
- Linux|BSD|MINIX)
- if [[ -f /bedrock/etc/bedrock-release && -z $BEDROCK_RESTRICT ]]; then
- case $distro_shorthand in
- on|tiny) distro="Bedrock Linux" ;;
- *) distro=$(< /bedrock/etc/bedrock-release)
+ case "$os" in
+ "Linux" | "BSD" | "MINIX")
+ if [[ "$(< /proc/version)" == *"Microsoft"* ||
+ "$kernel_version" == *"Microsoft"* ]]; then
+ case "$distro_shorthand" in
+ "on") distro="$(lsb_release -sir) [Windows 10]" ;;
+ "tiny") distro="Windows 10" ;;
+ *) distro="$(lsb_release -sd) on Windows 10" ;;
esac
- elif [[ -f /etc/redstar-release ]]; then
- case $distro_shorthand in
- on|tiny) distro="Red Star OS" ;;
+ elif [[ "$(< /proc/version)" == *"chrome-bot"* || -f "/dev/cros_ec" ]]; then
+ case "$distro_shorthand" in
+ "on") distro="$(lsb_release -sir) [Chrome OS]" ;;
+ "tiny") distro="Chrome OS" ;;
+ *) distro="$(lsb_release -sd) on Chrome OS" ;;
+ esac
+
+ elif [[ -f "/etc/redstar-release" ]]; then
+ case "$distro_shorthand" in
+ "on" | "tiny") distro="Red Star OS" ;;
*) distro="Red Star OS $(awk -F'[^0-9*]' '$0=$2' /etc/redstar-release)"
esac
- elif [[ -f /etc/armbian-release ]]; then
- . /etc/armbian-release
- distro="Armbian $DISTRIBUTION_CODENAME (${VERSION:-})"
-
- elif [[ -f /etc/siduction-version ]]; then
- case $distro_shorthand in
- on|tiny) distro=Siduction ;;
+ elif [[ -f "/etc/siduction-version" ]]; then
+ case "$distro_shorthand" in
+ "on" | "tiny") distro="Siduction" ;;
*) distro="Siduction ($(lsb_release -sic))"
esac
- elif [[ -f /etc/mcst_version ]]; then
- case $distro_shorthand in
- on|tiny) distro="OS Elbrus" ;;
- *) distro="OS Elbrus $(< /etc/mcst_version)"
- esac
-
- elif type -p pveversion >/dev/null; then
- case $distro_shorthand in
- on|tiny) distro="Proxmox VE" ;;
- *)
- distro=$(pveversion)
- distro=${distro#pve-manager/}
- distro="Proxmox VE ${distro%/*}"
- esac
-
elif type -p lsb_release >/dev/null; then
- case $distro_shorthand in
- on) lsb_flags=-si ;;
- tiny) lsb_flags=-si ;;
- *) lsb_flags=-sd ;;
+ case "$distro_shorthand" in
+ "on") lsb_flags="-sir" ;;
+ "tiny") lsb_flags="-si" ;;
+ *) lsb_flags="-sd" ;;
esac
- distro=$(lsb_release "$lsb_flags")
+ distro="$(lsb_release $lsb_flags)"
- elif [[ -f /etc/os-release || \
- -f /usr/lib/os-release || \
- -f /etc/openwrt_release || \
- -f /etc/lsb-release ]]; then
-
- # Source the os-release file
- for file in /etc/lsb-release /usr/lib/os-release \
- /etc/os-release /etc/openwrt_release; do
- source "$file" && break
- done
-
- # Format the distro name.
- case $distro_shorthand in
- on) distro="${NAME:-${DISTRIB_ID}} ${VERSION_ID:-${DISTRIB_RELEASE}}" ;;
- tiny) distro="${NAME:-${DISTRIB_ID:-${TAILS_PRODUCT_NAME}}}" ;;
- off) distro="${PRETTY_NAME:-${DISTRIB_DESCRIPTION}} ${UBUNTU_CODENAME}" ;;
- esac
-
- elif [[ -f /etc/GoboLinuxVersion ]]; then
- case $distro_shorthand in
- on|tiny) distro=GoboLinux ;;
+ elif [[ -f "/etc/GoboLinuxVersion" ]]; then
+ case "$distro_shorthand" in
+ "on" | "tiny") distro="GoboLinux" ;;
*) distro="GoboLinux $(< /etc/GoboLinuxVersion)"
esac
- elif [[ -f /etc/SDE-VERSION ]]; then
- distro="$(< /etc/SDE-VERSION)"
- case $distro_shorthand in
- on|tiny) distro="${distro% *}" ;;
+ elif type -p guix >/dev/null; then
+ case "$distro_shorthand" in
+ "on" | "tiny") distro="GuixSD" ;;
+ *) distro="GuixSD $(guix system -V | awk 'NR==1{printf $5}')"
esac
elif type -p crux >/dev/null; then
- distro=$(crux)
- case $distro_shorthand in
- on) distro=${distro//version} ;;
- tiny) distro=${distro//version*}
+ distro="$(crux)"
+ case "$distro_shorthand" in
+ "on") distro="${distro//version}" ;;
+ "tiny") distro="${distro//version*}" ;;
esac
elif type -p tazpkg >/dev/null; then
distro="SliTaz $(< /etc/slitaz-release)"
- elif type -p kpt >/dev/null && \
- type -p kpm >/dev/null; then
- distro=KSLinux
+ elif type -p kpm > /dev/null; then
+ distro="KSLinux"
- elif [[ -d /system/app/ && -d /system/priv-app ]]; then
+ elif [[ -d "/system/app/" && -d "/system/priv-app" ]]; then
distro="Android $(getprop ro.build.version.release)"
- # Chrome OS doesn't conform to the /etc/*-release standard.
- # While the file is a series of variables they can't be sourced
- # by the shell since the values aren't quoted.
- elif [[ -f /etc/lsb-release && $(< /etc/lsb-release) == *CHROMEOS* ]]; then
- distro='Chrome OS'
+ elif [[ -f "/etc/os-release" || -f "/usr/lib/os-release" ]]; then
+ files=("/etc/os-release" "/usr/lib/os-release")
- elif type -p guix >/dev/null; then
- case $distro_shorthand in
- on|tiny) distro="Guix System" ;;
- *) distro="Guix System $(guix -V | awk 'NR==1{printf $4}')"
+ # Source the os-release file
+ for file in "${files[@]}"; do
+ source "$file" && break
+ done
+
+ # Format the distro name.
+ case "$distro_shorthand" in
+ "on") distro="${NAME:-${DISTRIB_ID}} ${VERSION_ID:-${DISTRIB_RELEASE}}" ;;
+ "tiny") distro="${NAME:-${DISTRIB_ID:-${TAILS_PRODUCT_NAME}}}" ;;
+ "off") distro="${PRETTY_NAME:-${DISTRIB_DESCRIPTION}} ${UBUNTU_CODENAME}" ;;
esac
- # Display whether using '-current' or '-release' on OpenBSD.
- elif [[ $kernel_name = OpenBSD ]] ; then
- read -ra kernel_info <<< "$(sysctl -n kern.version)"
- distro=${kernel_info[*]:0:2}
+ # Workarounds for distros that go against the os-release standard.
+ [[ -z "${distro// }" ]] && distro="$(awk '/BLAG/ {print $1; exit}')" "${files[@]}"
+ [[ -z "${distro// }" ]] && distro="$(awk -F'=' '{print $2; exit}')" "${files[@]}"
else
for release_file in /etc/*-release; do
- distro+=$(< "$release_file")
+ distro+="$(< "$release_file")"
done
- if [[ -z $distro ]]; then
- case $distro_shorthand in
- on|tiny) distro=$kernel_name ;;
+ if [[ -z "$distro" ]]; then
+ case "$distro_shorthand" in
+ "on" | "tiny") distro="$kernel_name" ;;
*) distro="$kernel_name $kernel_version" ;;
esac
+ distro="${distro/DragonFly/DragonFlyBSD}"
- distro=${distro/DragonFly/DragonFlyBSD}
+ # Workarounds for FreeBSD based distros.
+ [[ -f "/etc/pcbsd-lang" ]] && distro="PCBSD"
+ [[ -f "/etc/rc.conf.trueos" ]] && distro="TrueOS"
- # Workarounds for some BSD based distros.
- [[ -f /etc/pcbsd-lang ]] && distro=PCBSD
- [[ -f /etc/trueos-lang ]] && distro=TrueOS
- [[ -f /etc/pacbsd-release ]] && distro=PacBSD
- [[ -f /etc/hbsd-update.conf ]] && distro=HardenedBSD
+ # /etc/pacbsd-release is an empty file
+ [[ -f "/etc/pacbsd-release" ]] && distro="PacBSD"
fi
fi
-
- if [[ $(< /proc/version) == *Microsoft* || $kernel_version == *Microsoft* ]]; then
- windows_version=$(wmic.exe os get Version)
- windows_version=$(trim "${windows_version/Version}")
-
- case $distro_shorthand in
- on) distro+=" [Windows $windows_version]" ;;
- tiny) distro="Windows ${windows_version::2}" ;;
- *) distro+=" on Windows $windows_version" ;;
- esac
-
- elif [[ $(< /proc/version) == *chrome-bot* || -f /dev/cros_ec ]]; then
- [[ $distro != *Chrome* ]] &&
- case $distro_shorthand in
- on) distro+=" [Chrome OS]" ;;
- tiny) distro="Chrome OS" ;;
- *) distro+=" on Chrome OS" ;;
- esac
- distro=${distro## on }
- fi
-
- distro=$(trim_quotes "$distro")
- distro=${distro/NAME=}
-
- # Get Ubuntu flavor.
- if [[ $distro == "Ubuntu"* ]]; then
- case $XDG_CONFIG_DIRS in
- *"studio"*) distro=${distro/Ubuntu/Ubuntu Studio} ;;
- *"plasma"*) distro=${distro/Ubuntu/Kubuntu} ;;
- *"mate"*) distro=${distro/Ubuntu/Ubuntu MATE} ;;
- *"xubuntu"*) distro=${distro/Ubuntu/Xubuntu} ;;
- *"Lubuntu"*) distro=${distro/Ubuntu/Lubuntu} ;;
- *"budgie"*) distro=${distro/Ubuntu/Ubuntu Budgie} ;;
- *"cinnamon"*) distro=${distro/Ubuntu/Ubuntu Cinnamon} ;;
- esac
- fi
+ distro="$(trim_quotes "$distro")"
+ distro="${distro/'NAME='}"
;;
- "Mac OS X"|"macOS")
- case $osx_version in
- 10.4*) codename="Mac OS X Tiger" ;;
- 10.5*) codename="Mac OS X Leopard" ;;
- 10.6*) codename="Mac OS X Snow Leopard" ;;
- 10.7*) codename="Mac OS X Lion" ;;
- 10.8*) codename="OS X Mountain Lion" ;;
- 10.9*) codename="OS X Mavericks" ;;
- 10.10*) codename="OS X Yosemite" ;;
- 10.11*) codename="OS X El Capitan" ;;
- 10.12*) codename="macOS Sierra" ;;
- 10.13*) codename="macOS High Sierra" ;;
- 10.14*) codename="macOS Mojave" ;;
- 10.15*) codename="macOS Catalina" ;;
- 10.16*) codename="macOS Big Sur" ;;
- 11.*) codename="macOS Big Sur" ;;
- 12.*) codename="macOS Monterey" ;;
- *) codename=macOS ;;
- esac
+ "Mac OS X")
+ osx_version="$(sw_vers -productVersion)"
+ osx_build="$(sw_vers -buildVersion)"
+ case "$osx_version" in
+ "10.4"*) codename="Mac OS X Tiger" ;;
+ "10.5"*) codename="Mac OS X Leopard" ;;
+ "10.6"*) codename="Mac OS X Snow Leopard" ;;
+ "10.7"*) codename="Mac OS X Lion" ;;
+ "10.8"*) codename="OS X Mountain Lion" ;;
+ "10.9"*) codename="OS X Mavericks" ;;
+ "10.10"*) codename="OS X Yosemite" ;;
+ "10.11"*) codename="OS X El Capitan" ;;
+ "10.12"*) codename="macOS Sierra" ;;
+ "10.13"*) codename="macOS High Sierra" ;;
+ *) codename="macOS" ;;
+ esac
distro="$codename $osx_version $osx_build"
- case $distro_shorthand in
- on) distro=${distro/ ${osx_build}} ;;
-
- tiny)
- case $osx_version in
- 10.[4-7]*) distro=${distro/${codename}/Mac OS X} ;;
- 10.[8-9]*|10.1[0-1]*) distro=${distro/${codename}/OS X} ;;
- 10.1[2-6]*|11.0*) distro=${distro/${codename}/macOS} ;;
+ case "$distro_shorthand" in
+ "on") distro="${distro/ ${osx_build}}" ;;
+ "tiny")
+ case "$osx_version" in
+ "10."[4-7]*) distro="${distro/${codename}/Mac OS X}" ;;
+ "10."[8-9]* | "10.1"[0-1]*) distro="${distro/${codename}/OS X}" ;;
+ "10.1"[2-3]*) distro="${distro/${codename}/macOS}" ;;
esac
- distro=${distro/ ${osx_build}}
+ distro="${distro/ ${osx_build}}"
;;
esac
;;
"iPhone OS")
- distro="iOS $osx_version"
+ distro="iOS $(sw_vers -productVersion)"
- # "uname -m" doesn't print architecture on iOS.
- os_arch=off
+ # "uname -m" doesn't print architecture on iOS so we force it off.
+ os_arch="off"
;;
- Windows)
- distro=$(wmic os get Caption)
- distro=${distro/Caption}
- distro=${distro/Microsoft }
+ "Windows")
+ distro="$(wmic os get Caption)"
+
+ # Strip crap from the output of wmic.
+ distro="${distro/Caption}"
+ distro="${distro/Microsoft }"
;;
- Solaris)
- case $distro_shorthand in
- on|tiny) distro=$(awk 'NR==1 {print $1,$3}' /etc/release) ;;
- *) distro=$(awk 'NR==1 {print $1,$2,$3}' /etc/release) ;;
+ "Solaris")
+ case "$distro_shorthand" in
+ "on" | "tiny") distro="$(awk 'NR==1{print $1 " " $3;}' /etc/release)" ;;
+ *) distro="$(awk 'NR==1{print $1 " " $2 " " $3;}' /etc/release)" ;;
esac
- distro=${distro/\(*}
+ distro="${distro/\(*}"
;;
- Haiku)
- distro=Haiku
+ "Haiku")
+ distro="$(uname -sv | awk '{print $1 " " $2}')"
;;
- AIX)
+ "AIX")
distro="AIX $(oslevel)"
;;
- IRIX)
- distro="IRIX ${kernel_version}"
- ;;
-
- FreeMiNT)
- distro=FreeMiNT
+ "IRIX" | "HP-UX")
+ distro="$os ${kernel_version}"
+ case "$distro_shorthand" in
+ "on" | "tiny") distro="${distro/ ${kernel_version}}" ;;
+ esac
;;
esac
- distro=${distro//Enterprise Server}
+ distro="${distro//Enterprise Server}"
- [[ $distro ]] || distro="$os (Unknown)"
+ [[ -z "$distro" ]] && distro="$os (Unknown)"
# Get OS architecture.
- case $os in
- Solaris|AIX|Haiku|IRIX|FreeMiNT)
- machine_arch=$(uname -p)
- ;;
+ case "$os" in
+ "Solaris" | "AIX" | "Haiku" | "IRIX") machine_arch="$(uname -p)" ;;
+ *) machine_arch="$(uname -m)" ;;
- *) machine_arch=$kernel_machine ;;
esac
+ if [[ "$os_arch" == "on" ]]; then
+ distro+=" ${machine_arch}"
+ fi
- [[ $os_arch == on ]] && \
- distro+=" $machine_arch"
-
- [[ ${ascii_distro:-auto} == auto ]] && \
- ascii_distro=$(trim "$distro")
+ [[ "${ascii_distro:-auto}" == "auto" ]] && \
+ ascii_distro="$(trim "$distro")"
}
get_model() {
- case $os in
- Linux)
- if [[ -d /system/app/ && -d /system/priv-app ]]; then
+ case "$os" in
+ "Linux")
+ if [[ -d "/system/app/" && -d "/system/priv-app" ]]; then
model="$(getprop ro.product.brand) $(getprop ro.product.model)"
- elif [[ -f /sys/devices/virtual/dmi/id/board_vendor ||
- -f /sys/devices/virtual/dmi/id/board_name ]]; then
- model=$(< /sys/devices/virtual/dmi/id/board_vendor)
- model+=" $(< /sys/devices/virtual/dmi/id/board_name)"
-
elif [[ -f /sys/devices/virtual/dmi/id/product_name ||
-f /sys/devices/virtual/dmi/id/product_version ]]; then
- model=$(< /sys/devices/virtual/dmi/id/product_name)
+ model="$(< /sys/devices/virtual/dmi/id/product_name)"
model+=" $(< /sys/devices/virtual/dmi/id/product_version)"
elif [[ -f /sys/firmware/devicetree/base/model ]]; then
- model=$(< /sys/firmware/devicetree/base/model)
+ model="$(< /sys/firmware/devicetree/base/model)"
elif [[ -f /tmp/sysinfo/model ]]; then
- model=$(< /tmp/sysinfo/model)
+ model="$(< /tmp/sysinfo/model)"
fi
;;
- "Mac OS X"|"macOS")
- if [[ $(kextstat | grep -F -e "FakeSMC" -e "VirtualSMC") != "" ]]; then
+ "Mac OS X")
+ if [[ "$(kextstat | grep "FakeSMC")" != "" ]]; then
model="Hackintosh (SMBIOS: $(sysctl -n hw.model))"
else
- model=$(sysctl -n hw.model)
+ model="$(sysctl -n hw.model)"
fi
;;
"iPhone OS")
- case $kernel_machine in
- iPad1,1): "iPad" ;;
- iPad2,[1-4]): "iPad 2" ;;
- iPad3,[1-3]): "iPad 3" ;;
- iPad3,[4-6]): "iPad 4" ;;
- iPad6,1[12]): "iPad 5" ;;
- iPad7,[5-6]): "iPad 6" ;;
- iPad7,1[12]): "iPad 7" ;;
- iPad11,[67]): "iPad 8" ;;
- iPad4,[1-3]): "iPad Air" ;;
- iPad5,[3-4]): "iPad Air 2" ;;
- iPad11,[3-4]): "iPad Air 3" ;;
- iPad13,[1-2]): "iPad Air 4";;
- iPad6,[7-8]): "iPad Pro (12.9 Inch)" ;;
- iPad6,[3-4]): "iPad Pro (9.7 Inch)" ;;
- iPad7,[1-2]): "iPad Pro 2 (12.9 Inch)" ;;
- iPad7,[3-4]): "iPad Pro (10.5 Inch)" ;;
- iPad8,[1-4]): "iPad Pro (11 Inch)" ;;
- iPad8,[5-8]): "iPad Pro 3 (12.9 Inch)" ;;
- iPad8,9 | iPad8,10): "iPad Pro 4 (11 Inch)" ;;
- iPad8,1[1-2]): "iPad Pro 4 (12.9 Inch)" ;;
- iPad2,[5-7]): "iPad mini" ;;
- iPad4,[4-6]): "iPad mini 2" ;;
- iPad4,[7-9]): "iPad mini 3" ;;
- iPad5,[1-2]): "iPad mini 4" ;;
- iPad11,[1-2]): "iPad mini 5" ;;
+ case "$machine_arch" in
+ "iPad1,1") model="iPad" ;;
+ "iPad2,"[1-4]) model="iPad 2" ;;
+ "iPad3,"[1-3]) model="iPad 3" ;;
+ "iPad3,"[4-6]) model="iPad 4" ;;
+ "iPad6,11" | "iPad 6,12") model="iPad 5" ;;
+ "iPad4,"[1-3]) model="iPad Air" ;;
+ "iPad5,"[3-4]) model="iPad Air 2" ;;
+ "iPad6,"[7-8]) model="iPad Pro (12.9 Inch)" ;;
+ "iPad6,"[3-4]) model="iPad Pro (9.7 Inch)" ;;
+ "iPad7,"[1-2]) model="iPad Pro 2 (12.9 Inch)" ;;
+ "iPad7,"[3-4]) model="iPad Pro (10.5 Inch)" ;;
+ "iPad2,"[5-7]) model="iPad mini" ;;
+ "iPad4,"[4-6]) model="iPad mini 2" ;;
+ "iPad4,"[7-9]) model="iPad mini 3" ;;
+ "iPad5,"[1-2]) model="iPad mini 4" ;;
- iPhone1,1): "iPhone" ;;
- iPhone1,2): "iPhone 3G" ;;
- iPhone2,1): "iPhone 3GS" ;;
- iPhone3,[1-3]): "iPhone 4" ;;
- iPhone4,1): "iPhone 4S" ;;
- iPhone5,[1-2]): "iPhone 5" ;;
- iPhone5,[3-4]): "iPhone 5c" ;;
- iPhone6,[1-2]): "iPhone 5s" ;;
- iPhone7,2): "iPhone 6" ;;
- iPhone7,1): "iPhone 6 Plus" ;;
- iPhone8,1): "iPhone 6s" ;;
- iPhone8,2): "iPhone 6s Plus" ;;
- iPhone8,4): "iPhone SE" ;;
- iPhone9,[13]): "iPhone 7" ;;
- iPhone9,[24]): "iPhone 7 Plus" ;;
- iPhone10,[14]): "iPhone 8" ;;
- iPhone10,[25]): "iPhone 8 Plus" ;;
- iPhone10,[36]): "iPhone X" ;;
- iPhone11,2): "iPhone XS" ;;
- iPhone11,[46]): "iPhone XS Max" ;;
- iPhone11,8): "iPhone XR" ;;
- iPhone12,1): "iPhone 11" ;;
- iPhone12,3): "iPhone 11 Pro" ;;
- iPhone12,5): "iPhone 11 Pro Max" ;;
- iPhone12,8): "iPhone SE 2020" ;;
- iPhone13,1): "iPhone 12 Mini" ;;
- iPhone13,2): "iPhone 12" ;;
- iPhone13,3): "iPhone 12 Pro" ;;
- iPhone13,4): "iPhone 12 Pro Max" ;;
+ "iPhone1,1") model="iPhone" ;;
+ "iPhone1,2") model="iPhone 3G" ;;
+ "iPhone2,1") model="iPhone 3GS" ;;
+ "iPhone3,"[1-3]) model="iPhone 4" ;;
+ "iPhone4,1") model="iPhone 4S" ;;
+ "iPhone5,"[1-2]) model="iPhone 5" ;;
+ "iPhone5,"[3-4]) model="iPhone 5c" ;;
+ "iPhone6,"[1-2]) model="iPhone 5s" ;;
+ "iPhone7,2") model="iPhone 6" ;;
+ "iPhone7,1") model="iPhone 6 Plus" ;;
+ "iPhone8,1") model="iPhone 6s" ;;
+ "iPhone8,2") model="iPhone 6s Plus" ;;
+ "iPhone8,4") model="iPhone SE" ;;
+ "iPhone9,1" | "iPhone9,3") model="iPhone 7" ;;
+ "iPhone9,2" | "iPhone9,4") model="iPhone 7 Plus" ;;
+ "iPhone10,1" | "iPhone10,4") model="iPhone 8" ;;
+ "iPhone10,2" | "iPhone10,5") model="iPhone 8 Plus" ;;
+ "iPhone10,3" | "iPhone10,6") model="iPhone X" ;;
- iPod1,1): "iPod touch" ;;
- ipod2,1): "iPod touch 2G" ;;
- ipod3,1): "iPod touch 3G" ;;
- ipod4,1): "iPod touch 4G" ;;
- ipod5,1): "iPod touch 5G" ;;
- ipod7,1): "iPod touch 6G" ;;
- iPod9,1): "iPod touch 7G" ;;
+ "iPod1,1") model="iPod touch" ;;
+ "ipod2,1") model="iPod touch 2G" ;;
+ "ipod3,1") model="iPod touch 3G" ;;
+ "ipod4,1") model="iPod touch 4G" ;;
+ "ipod5,1") model="iPod touch 5G" ;;
+ "ipod7,1") model="iPod touch 6G" ;;
esac
-
- model=$_
;;
- BSD|MINIX)
- model=$(sysctl -n hw.vendor hw.product)
+ "BSD" | "MINIX")
+ model="$(sysctl -n hw.vendor hw.product)"
;;
- Windows)
- model=$(wmic computersystem get manufacturer,model)
- model=${model/Manufacturer}
- model=${model/Model}
+ "Windows")
+ model="$(wmic computersystem get manufacturer,model)"
+ model="${model/Manufacturer}"
+ model="${model/Model}"
;;
- Solaris)
- model=$(prtconf -b | awk -F':' '/banner-name/ {printf $2}')
+ "Solaris")
+ model="$(prtconf -b | awk -F':' '/banner-name/ {printf $2}')"
;;
- AIX)
- model=$(/usr/bin/uname -M)
+ "AIX")
+ model="$(/usr/bin/uname -M)"
;;
- FreeMiNT)
- model=$(sysctl -n hw.model)
- model=${model/ (_MCH *)}
+ "HP-UX")
+ model="$(model)"
;;
esac
# Remove dummy OEM info.
- model=${model//To be filled by O.E.M.}
- model=${model//To Be Filled*}
- model=${model//OEM*}
- model=${model//Not Applicable}
- model=${model//System Product Name}
- model=${model//System Version}
- model=${model//Undefined}
- model=${model//Default string}
- model=${model//Not Specified}
- model=${model//Type1ProductConfigId}
- model=${model//INVALID}
- model=${model//All Series}
- model=${model//�}
+ model="${model//To be filled by O.E.M.}"
+ model="${model//To Be Filled*}"
+ model="${model//OEM*}"
+ model="${model//Not Applicable}"
+ model="${model//System Product Name}"
+ model="${model//System Version}"
+ model="${model//Undefined}"
+ model="${model//Default string}"
+ model="${model//Not Specified}"
+ model="${model//Type1ProductConfigId}"
+ model="${model//INVALID}"
+ model="${model//�}"
- case $model in
+ case "$model" in
"Standard PC"*) model="KVM/QEMU (${model})" ;;
- OpenBSD*) model="vmm ($model)" ;;
esac
}
get_title() {
- user=${USER:-$(id -un || printf %s "${HOME/*\/}")}
-
- case $title_fqdn in
- on) hostname=$(hostname -f) ;;
- *) hostname=${HOSTNAME:-$(hostname)} ;;
- esac
-
- title=${title_color}${bold}${user}${at_color}@${title_color}${bold}${hostname}
- length=$((${#user} + ${#hostname} + 1))
+ user="${USER:-$(whoami || printf "%s" "${HOME/*\/}")}"
+ hostname="${HOSTNAME:-$(hostname)}"
+ title="${title_color}${bold}${user}${at_color}@${title_color}${bold}${hostname}"
+ length="$((${#user} + ${#hostname} + 1))"
}
get_kernel() {
- # Since these OS are integrated systems, it's better to skip this function altogether
- [[ $os =~ (AIX|IRIX) ]] && return
+ # Since AIX has no useful output in uname, it's better to skip this function altogether
+ [[ "$os" == "AIX" ]] && return
- # Haiku uses 'uname -v' and not - 'uname -r'.
- [[ $os == Haiku ]] && {
- kernel=$(uname -v)
- return
- }
-
- # In Windows 'uname' may return the info of GNUenv thus use wmic for OS kernel.
- [[ $os == Windows ]] && {
- kernel=$(wmic os get Version)
- kernel=${kernel/Version}
- return
- }
-
- case $kernel_shorthand in
- on) kernel=$kernel_version ;;
- off) kernel="$kernel_name $kernel_version" ;;
+ case "$kernel_shorthand" in
+ "on") kernel="$kernel_version" ;;
+ "off") kernel="$kernel_name $kernel_version" ;;
esac
# Hide kernel info if it's identical to the distro info.
- [[ $os =~ (BSD|MINIX) && $distro == *"$kernel_name"* ]] &&
- case $distro_shorthand in
- on|tiny) kernel=$kernel_version ;;
- *) unset kernel ;;
+ if [[ "$os" =~ (BSD|MINIX|IRIX|HP-UX) && "$distro" == *"$kernel_name"* ]]; then
+ case "$distro_shorthand" in
+ "on" | "tiny") kernel="$kernel_version" ;;
+ *) unset kernel ;;
esac
+ fi
}
get_uptime() {
- # Get uptime in seconds.
- case $os in
- Linux|Windows|MINIX)
- if [[ -r /proc/uptime ]]; then
- s=$(< /proc/uptime)
- s=${s/.*}
- else
- boot=$(date -d"$(uptime -s)" +%s)
- now=$(date +%s)
- s=$((now - boot))
- fi
+ # Since Haiku's uptime cannot be fetched in seconds, a case outside
+ # the usual case is needed.
+ case "$os" in
+ "Haiku")
+ uptime="$(uptime -u)"
+ uptime="${uptime/up }"
;;
- "Mac OS X"|"macOS"|"iPhone OS"|BSD|FreeMiNT)
- boot=$(sysctl -n kern.boottime)
- boot=${boot/\{ sec = }
- boot=${boot/,*}
+ *)
+ # Get uptime in seconds.
+ case "$os" in
+ "Linux" | "Windows" | "MINIX")
+ seconds="$(< /proc/uptime)"
+ seconds="${seconds/.*}"
+ ;;
- # Get current date in seconds.
- now=$(date +%s)
- s=$((now - boot))
- ;;
+ "Mac OS X" | "iPhone OS" | "BSD")
+ boot="$(sysctl -n kern.boottime)"
+ boot="${boot/'{ sec = '}"
+ boot="${boot/,*}"
- Solaris)
- s=$(kstat -p unix:0:system_misc:snaptime | awk '{print $2}')
- s=${s/.*}
- ;;
+ # Get current date in seconds.
+ now="$(date +%s)"
+ seconds="$((now - boot))"
+ ;;
- AIX|IRIX)
- t=$(LC_ALL=POSIX ps -o etime= -p 1)
+ "Solaris")
+ seconds="$(kstat -p unix:0:system_misc:snaptime | awk '{print $2}')"
+ seconds="${seconds/.*}"
+ ;;
- [[ $t == *-* ]] && { d=${t%%-*}; t=${t#*-}; }
- [[ $t == *:*:* ]] && { h=${t%%:*}; t=${t#*:}; }
+ "AIX" | "IRIX" | "HP-UX")
+ t="$(LC_ALL=POSIX UNIX95=1 ps -o etime= -p 1)"
+ d="0" h="0"
+ case "$t" in *"-"*) d="${t%%-*}"; t="${t#*-}";; esac
+ case "$t" in *":"*":"*) h="${t%%:*}"; t="${t#*:}";; esac
+ h="${h#0}" t="${t#0}"
+ seconds="$((d*86400 + h*3600 + ${t%%:*}*60 + ${t#*:}))"
+ ;;
+ esac
- h=${h#0}
- t=${t#0}
+ days="$((seconds / 60 / 60 / 24)) days"
+ hours="$((seconds / 60 / 60 % 24)) hours"
+ mins="$((seconds / 60 % 60)) minutes"
- s=$((${d:-0}*86400 + ${h:-0}*3600 + ${t%%:*}*60 + ${t#*:}))
- ;;
+ # Format the days, hours and minutes.
+ strip_date() {
+ case "$1" in
+ "0 "*) unset "${1/* }" ;;
+ "1 "*) printf "%s" "${1/s}" ;;
+ *) printf "%s" "$1" ;;
+ esac
+ }
- Haiku)
- s=$(($(system_time) / 1000000))
+ days="$(strip_date "$days")"
+ hours="$(strip_date "$hours")"
+ mins="$(strip_date "$mins")"
+
+ uptime="${days:+$days, }${hours:+$hours, }${mins}"
+ uptime="${uptime%', '}"
+ uptime="${uptime:-${seconds} seconds}"
;;
esac
- d="$((s / 60 / 60 / 24)) days"
- h="$((s / 60 / 60 % 24)) hours"
- m="$((s / 60 % 60)) minutes"
-
- # Remove plural if < 2.
- ((${d/ *} == 1)) && d=${d/s}
- ((${h/ *} == 1)) && h=${h/s}
- ((${m/ *} == 1)) && m=${m/s}
-
- # Hide empty fields.
- ((${d/ *} == 0)) && unset d
- ((${h/ *} == 0)) && unset h
- ((${m/ *} == 0)) && unset m
-
- uptime=${d:+$d, }${h:+$h, }$m
- uptime=${uptime%', '}
- uptime=${uptime:-$s seconds}
-
# Make the output of uptime smaller.
- case $uptime_shorthand in
- on)
- uptime=${uptime/ minutes/ mins}
- uptime=${uptime/ minute/ min}
- uptime=${uptime/ seconds/ secs}
+ case "$uptime_shorthand" in
+ "on")
+ uptime="${uptime/minutes/mins}"
+ uptime="${uptime/minute/min}"
+ uptime="${uptime/seconds/secs}"
;;
- tiny)
- uptime=${uptime/ days/d}
- uptime=${uptime/ day/d}
- uptime=${uptime/ hours/h}
- uptime=${uptime/ hour/h}
- uptime=${uptime/ minutes/m}
- uptime=${uptime/ minute/m}
- uptime=${uptime/ seconds/s}
- uptime=${uptime//,}
+ "tiny")
+ uptime="${uptime/ days/d}"
+ uptime="${uptime/ day/d}"
+ uptime="${uptime/ hours/h}"
+ uptime="${uptime/ hour/h}"
+ uptime="${uptime/ minutes/m}"
+ uptime="${uptime/ minute/m}"
+ uptime="${uptime/ seconds/s}"
+ uptime="${uptime//,}"
;;
esac
}
get_packages() {
- # to adjust the number of pkgs per pkg manager
- pkgs_h=0
+ # Remove /usr/games from $PATH.
+ # This solves issues with neofetch opening the "pacman" game.
+ local PATH=":${PATH}:"
+ local PATH="${PATH/':/usr/games:'/:}"
+ local PATH="${PATH%:}"
+ local PATH="${PATH#:}"
- # has: Check if package manager installed.
- # dir: Count files or dirs in a glob.
- # pac: If packages > 0, log package manager name.
- # tot: Count lines in command output.
- has() { type -p "$1" >/dev/null && manager=$1; }
- # globbing is intentional here
- # shellcheck disable=SC2206
- dir() { pkgs=($@); ((packages+=${#pkgs[@]})); pac "$((${#pkgs[@]}-pkgs_h))"; }
- pac() { (($1 > 0)) && { managers+=("$1 (${manager})"); manager_string+="${manager}, "; }; }
- tot() {
- IFS=$'\n' read -d "" -ra pkgs <<< "$("$@")";
- ((packages+=${#pkgs[@]}));
- pac "$((${#pkgs[@]}-pkgs_h))";
- }
+ case "$os" in
+ "Linux" | "BSD" | "iPhone OS" | "Solaris")
+ type -p pacman >/dev/null && \
+ packages="$(pacman -Qq --color never | wc -l)"
- # Redefine tot() and dir() for Bedrock Linux.
- [[ -f /bedrock/etc/bedrock-release && $PATH == */bedrock/cross/* ]] && {
- br_strata=$(brl list)
- tot() {
- IFS=$'\n' read -d "" -ra pkgs <<< "$(for s in ${br_strata}; do strat -r "$s" "$@"; done)"
- ((packages+="${#pkgs[@]}"))
- pac "$((${#pkgs[@]}-pkgs_h))";
- }
- dir() {
- local pkgs=()
- # globbing is intentional here
- # shellcheck disable=SC2206
- for s in ${br_strata}; do pkgs+=(/bedrock/strata/$s/$@); done
- ((packages+=${#pkgs[@]}))
- pac "$((${#pkgs[@]}-pkgs_h))"
- }
- }
+ type -p dpkg >/dev/null && \
+ packages="$((packages+=$(dpkg --get-selections | grep -cv deinstall$)))"
- case $os in
- Linux|BSD|"iPhone OS"|Solaris)
- # Package Manager Programs.
- has kiss && tot kiss l
- has cpt-list && tot cpt-list
- has pacman-key && tot pacman -Qq --color never
- has dpkg && tot dpkg-query -f '.\n' -W
- has xbps-query && tot xbps-query -l
- has apk && tot apk info
- has opkg && tot opkg list-installed
- has pacman-g2 && tot pacman-g2 -Q
- has lvu && tot lvu installed
- has tce-status && tot tce-status -i
- has pkg_info && tot pkg_info
- has pkgin && tot pkgin list
- has tazpkg && pkgs_h=6 tot tazpkg list && ((packages-=6))
- has sorcery && tot gaze installed
- has alps && tot alps showinstalled
- has butch && tot butch list
- has swupd && tot swupd bundle-list --quiet
- has pisi && tot pisi li
- has pacstall && tot pacstall -L
+ type -p kpm >/dev/null && \
+ packages="$((packages+=$(kpm --get-selections | grep -cv deinstall$)))"
- # Using the dnf package cache is much faster than rpm.
- if has dnf && type -p sqlite3 >/dev/null && [[ -f /var/cache/dnf/packages.db ]]; then
- pac "$(sqlite3 /var/cache/dnf/packages.db "SELECT count(pkg) FROM installed")"
- else
- has rpm && tot rpm -qa
+ type -p pkgtool >/dev/null && \
+ packages="$((packages+=$(ls -1 /var/log/packages | wc -l)))"
+
+ type -p rpm >/dev/null && \
+ packages="$((packages+=$(rpm -qa | wc -l)))"
+
+ type -p xbps-query >/dev/null && \
+ packages="$((packages+=$(xbps-query -l | wc -l)))"
+
+ type -p pkginfo >/dev/null && \
+ packages="$((packages+=$(pkginfo -i | wc -l)))"
+
+ type -p emerge >/dev/null && \
+ packages="$((packages+=$(ls -d /var/db/pkg/*/* | wc -l)))"
+
+ type -p nix-env >/dev/null && \
+ packages="$((packages+=$(ls -d -1 /nix/store/*/ | wc -l)))"
+
+ type -p guix >/dev/null && \
+ packages="$((packages+=$(ls -d -1 /gnu/store/*/ | wc -l)))"
+
+ type -p apk >/dev/null && \
+ packages="$((packages+=$(apk info | wc -l)))"
+
+ type -p opkg >/dev/null && \
+ packages="$((packages+=$(opkg list-installed | wc -l)))"
+
+ type -p pacman-g2 >/dev/null && \
+ packages="$((packages+=$(pacman-g2 -Q | wc -l)))"
+
+ type -p lvu >/dev/null && \
+ packages="$((packages+=$(lvu installed | wc -l)))"
+
+ type -p tce-status >/dev/null && \
+ packages="$((packages+=$(tce-status -i | wc -l)))"
+
+ type -p Compile >/dev/null && \
+ packages="$((packages+=$(ls -d -1 /Programs/*/ | wc -l)))"
+
+ type -p eopkg >/dev/null && \
+ packages="$((packages+=$(ls -1 /var/lib/eopkg/package | wc -l)))"
+
+ type -p pkg_info >/dev/null && \
+ packages="$((packages+=$(pkg_info | wc -l)))"
+
+ type -p crew >/dev/null && \
+ packages="$((packages+=$(ls -l /usr/local/etc/crew/meta/*.filelist | wc -l)))"
+
+ type -p tazpkg >/dev/null && \
+ packages="$((packages+=$(tazpkg list | wc -l) - 6))"
+
+ type -p sorcery >/dev/null && \
+ packages="$((packages+=$(gaze installed | wc -l)))"
+
+ type -p alps >/dev/null && \
+ packages="$((packages+=$(alps showinstalled | wc -l)))"
+
+ if type -p cave >/dev/null; then
+ package_dir=(/var/db/paludis/repositories/{cross-installed,installed}/*/data/*)
+ packages="$((packages+=$(ls -d -1 "${package_dir[@]}" | wc -l)))"
fi
- # 'mine' conflicts with minesweeper games.
- [[ -f /etc/SDE-VERSION ]] &&
- has mine && tot mine -q
+ if type -p pkg >/dev/null; then
+ case "$kernel_name" in
+ "FreeBSD") packages="$((packages+=$(pkg info | wc -l)))" ;;
+ *)
+ packages="$((packages+=$(ls -1 /var/db/pkg | wc -l)))"
+ ((packages == 0)) && packages="$((packages+=$(pkg list | wc -l)))"
+ esac
+ fi
+ ;;
- # Counting files/dirs.
- # Variables need to be unquoted here. Only Bedrock Linux is affected.
- # $br_prefix is fixed and won't change based on user input so this is safe either way.
- # shellcheck disable=SC2086
- {
- shopt -s nullglob
- has brew && dir "$(brew --cellar)/* $(brew --caskroom)/*"
- has emerge && dir "/var/db/pkg/*/*"
- has Compile && dir "/Programs/*/"
- has eopkg && dir "/var/lib/eopkg/package/*"
- has crew && dir "${CREW_PREFIX:-/usr/local}/etc/crew/meta/*.filelist"
- has pkgtool && dir "/var/log/packages/*"
- has scratch && dir "/var/lib/scratchpkg/index/*/.pkginfo"
- has kagami && dir "/var/lib/kagami/pkgs/*"
- has cave && dir "/var/db/paludis/repositories/cross-installed/*/data/*/ \
- /var/db/paludis/repositories/installed/data/*/"
- shopt -u nullglob
- }
+ "Mac OS X" | "MINIX")
+ [[ -d "/usr/local/bin" ]] && \
+ packages="$(($(ls -l /usr/local/bin/ | grep -cv "\(../Cellar/\|brew\)") - 1))"
- # Other (Needs complex command)
- has kpm-pkg && ((packages+=$(kpm --get-selections | grep -cv deinstall$)))
+ type -p port >/dev/null && \
+ packages="$((packages + $(port installed | wc -l) - 1))"
- has guix && {
- manager=guix-system && tot guix package -p "/run/current-system/profile" -I
- manager=guix-user && tot guix package -I
- }
+ type -p brew >/dev/null && \
+ packages="$((packages + $(find /usr/local/Cellar -maxdepth 1 | wc -l) - 1))"
- has nix-store && {
- nix-user-pkgs() {
- nix-store -qR ~/.nix-profile
- nix-store -qR /etc/profiles/per-user/"$USER"
- }
- manager=nix-system && tot nix-store -qR /run/current-system/sw
- manager=nix-user && tot nix-user-pkgs
- manager=nix-default && tot nix-store -qR /nix/var/nix/profiles/default
- }
+ type -p pkgin >/dev/null && \
+ packages="$((packages + $(pkgin list | wc -l)))"
+ ;;
- # pkginfo is also the name of a python package manager which is painfully slow.
- # TODO: Fix this somehow.
- has pkginfo && tot pkginfo -i
-
- case $os-$kernel_name in
- BSD-FreeBSD|BSD-DragonFly)
- has pkg && tot pkg info
- ;;
-
- BSD-*)
- has pkg && dir /var/db/pkg/*
-
- ((packages == 0)) &&
- has pkg && tot pkg list
- ;;
+ "Windows")
+ case "$kernel_name" in
+ "CYGWIN"*) packages="$(cygcheck -cd | wc -l)" ;;
+ "MSYS"*) packages="$(pacman -Qq --color never | wc -l)"
esac
- # List these last as they accompany regular package managers.
- has flatpak && tot flatpak list
- has spm && tot spm list -i
- has puyo && dir ~/.puyo/installed
-
- # Snap hangs if the command is run without the daemon running.
- # Only run snap if the daemon is also running.
- has snap && ps -e | grep -qFm 1 snapd >/dev/null && \
- pkgs_h=1 tot snap list && ((packages-=1))
-
- # This is the only standard location for appimages.
- # See: https://github.com/AppImage/AppImageKit/wiki
- manager=appimage && has appimaged && dir ~/.local/bin/*.appimage
- ;;
-
- "Mac OS X"|"macOS"|MINIX)
- has port && pkgs_h=1 tot port installed && ((packages-=1))
- has brew && dir "$(brew --cellar)/* $(brew --caskroom)/*"
- has pkgin && tot pkgin list
- has dpkg && tot dpkg-query -f '.\n' -W
-
- has nix-store && {
- nix-user-pkgs() {
- nix-store -qR ~/.nix-profile
- nix-store -qR /etc/profiles/per-user/"$USER"
- }
- manager=nix-system && tot nix-store -qR /run/current-system/sw
- manager=nix-user && tot nix-user-pkgs
- }
- ;;
-
- AIX|FreeMiNT)
- has lslpp && ((packages+=$(lslpp -J -l -q | grep -cv '^#')))
- has rpm && tot rpm -qa
- ;;
-
- Windows)
- case $kernel_name in
- CYGWIN*) has cygcheck && tot cygcheck -cd ;;
- MSYS*) has pacman && tot pacman -Qq --color never ;;
- esac
-
- # Scoop environment throws errors if `tot scoop list` is used
- has scoop && pkgs_h=1 dir ~/scoop/apps/* && ((packages-=1))
-
# Count chocolatey packages.
- [[ -d /cygdrive/c/ProgramData/chocolatey/lib ]] && \
- dir /cygdrive/c/ProgramData/chocolatey/lib/*
+ [[ -d "/cygdrive/c/ProgramData/chocolatey/lib" ]] && \
+ packages="$((packages+=$(ls -1 /cygdrive/c/ProgramData/chocolatey/lib | wc -l)))"
;;
- Haiku)
- has pkgman && dir /boot/system/package-links/*
- packages=${packages/pkgman/depot}
+ "Haiku")
+ packages="$(ls -1 /boot/system/package-links | wc -l)"
;;
- IRIX)
- manager=swpkg
- pkgs_h=3 tot versions -b && ((packages-=3))
+ "AIX")
+ packages="$(lslpp -J -l -q | grep -cv '^#')"
+ packages="$((packages+=$(rpm -qa | wc -l)))"
+ ;;
+
+ "IRIX")
+ packages="$(($(versions -b | wc -l)-3))"
+ ;;
+
+ "HP-UX")
+ packages="$(($(swlist -l product | wc -l)-6))"
;;
esac
- if ((packages == 0)); then
- unset packages
-
- elif [[ $package_managers == on ]]; then
- printf -v packages '%s, ' "${managers[@]}"
- packages=${packages%,*}
-
- elif [[ $package_managers == tiny ]]; then
- packages+=" (${manager_string%,*})"
- fi
-
- packages=${packages/pacman-key/pacman}
+ ((packages == 0)) && unset packages
}
get_shell() {
- case $shell_path in
- on) shell="$SHELL " ;;
- off) shell="${SHELL##*/} " ;;
+ case "$shell_path" in
+ "on") shell="$SHELL " ;;
+ "off") shell="${SHELL##*/} " ;;
esac
- [[ $shell_version != on ]] && return
+ if [[ "$shell_version" == "on" ]]; then
+ case "${shell_name:=${SHELL##*/}}" in
+ "bash") shell+="${BASH_VERSION/-*}" ;;
+ "sh" | "ash" | "dash") ;;
- case ${shell_name:=${SHELL##*/}} in
- bash)
- [[ $BASH_VERSION ]] ||
- BASH_VERSION=$("$SHELL" -c "printf %s \"\$BASH_VERSION\"")
+ "mksh" | "ksh")
+ shell+="$("$SHELL" -c 'printf "%s" "$KSH_VERSION"')"
+ shell="${shell/ * KSH}"
+ shell="${shell/version}"
+ ;;
- shell+=${BASH_VERSION/-*}
- ;;
+ *)
+ shell+="$("$SHELL" --version 2>&1)"
+ shell="${shell/ "${shell_name}"}"
+ ;;
+ esac
- sh|ash|dash|es) ;;
-
- *ksh)
- shell+=$("$SHELL" -c "printf %s \"\$KSH_VERSION\"")
- shell=${shell/ * KSH}
- shell=${shell/version}
- ;;
-
- osh)
- if [[ $OIL_VERSION ]]; then
- shell+=$OIL_VERSION
- else
- shell+=$("$SHELL" -c "printf %s \"\$OIL_VERSION\"")
- fi
- ;;
-
- tcsh)
- shell+=$("$SHELL" -c "printf %s \$tcsh")
- ;;
-
- yash)
- shell+=$("$SHELL" --version 2>&1)
- shell=${shell/ $shell_name}
- shell=${shell/ Yet another shell}
- shell=${shell/Copyright*}
- ;;
-
- nu)
- shell+=$("$SHELL" -c "version | get version")
- shell=${shell/ $shell_name}
- ;;
-
-
- *)
- shell+=$("$SHELL" --version 2>&1)
- shell=${shell/ $shell_name}
- ;;
- esac
-
- # Remove unwanted info.
- shell=${shell/, version}
- shell=${shell/xonsh\//xonsh }
- shell=${shell/options*}
- shell=${shell/\(*\)}
+ # Remove unwanted info.
+ shell="${shell/, version}"
+ shell="${shell/xonsh\//xonsh }"
+ shell="${shell/options*}"
+ shell="${shell/\(*\)}"
+ fi
}
get_de() {
# If function was run, stop here.
((de_run == 1)) && return
- case $os in
- "Mac OS X"|"macOS") de=Aqua ;;
-
- Windows)
- case $distro in
- *"Windows 10"*)
- de=Fluent
- ;;
-
- *"Windows 8"*)
- de=Metro
- ;;
-
- *)
- de=Aero
- ;;
- esac
- ;;
-
- FreeMiNT)
- freemint_wm=(/proc/*)
-
- case ${freemint_wm[*]} in
- *thing*) de=Thing ;;
- *jinnee*) de=Jinnee ;;
- *tera*) de=Teradesk ;;
- *neod*) de=NeoDesk ;;
- *zdesk*) de=zDesk ;;
- *mdesk*) de=mDesk ;;
+ case "$os" in
+ "Mac OS X") de="Aqua" ;;
+ "Windows")
+ case "$distro" in
+ "Windows 8"* | "Windows 10"*) de="Modern UI/Metro" ;;
+ *) de="Aero" ;;
esac
;;
*)
((wm_run != 1)) && get_wm
- # Temporary support for Regolith Linux
- if [[ $DESKTOP_SESSION == *regolith ]]; then
- de=Regolith
+ if [[ "$XDG_CURRENT_DESKTOP" ]]; then
+ de="${XDG_CURRENT_DESKTOP/'X-'}"
+ de="${de/Budgie:GNOME/Budgie}"
- elif [[ $XDG_CURRENT_DESKTOP ]]; then
- de=${XDG_CURRENT_DESKTOP/X\-}
- de=${de/Budgie:GNOME/Budgie}
- de=${de/:Unity7:ubuntu}
+ elif [[ "$DESKTOP_SESSION" ]]; then
+ de="${DESKTOP_SESSION##*/}"
- elif [[ $DESKTOP_SESSION ]]; then
- de=${DESKTOP_SESSION##*/}
+ elif [[ "$GNOME_DESKTOP_SESSION_ID" ]]; then
+ de="GNOME"
- elif [[ $GNOME_DESKTOP_SESSION_ID ]]; then
- de=GNOME
-
- elif [[ $MATE_DESKTOP_SESSION_ID ]]; then
- de=MATE
-
- elif [[ $TDE_FULL_SESSION ]]; then
- de=Trinity
+ elif [[ "$MATE_DESKTOP_SESSION_ID" ]]; then
+ de="MATE"
fi
# When a window manager is started from a display manager
# the desktop variables are sometimes also set to the
# window manager name. This checks to see if WM == DE
- # and discards the DE value.
- [[ $de == "$wm" ]] && { unset -v de; return; }
+ # and dicards the DE value.
+ [[ "$wm" && "$de" =~ ^$wm$ ]] && { unset -v de; return; }
;;
esac
# Fallback to using xprop.
- [[ $DISPLAY && -z $de ]] && type -p xprop &>/dev/null && \
- de=$(xprop -root | awk '/KDE_SESSION_VERSION|^_MUFFIN|xfce4|xfce5/')
+ [[ -n "$DISPLAY" && -z "$de" ]] && \
+ de="$(xprop -root | awk '/KDE_SESSION_VERSION|^_MUFFIN|xfce4|xfce5/')"
# Format strings.
- case $de in
- KDE_SESSION_VERSION*) de=KDE${de/* = } ;;
- *xfce4*) de=Xfce4 ;;
- *xfce5*) de=Xfce5 ;;
- *xfce*) de=Xfce ;;
- *mate*) de=MATE ;;
- *GNOME*) de=GNOME ;;
- *MUFFIN*) de=Cinnamon ;;
+ case "$de" in
+ "KDE_SESSION_VERSION"*) de="KDE${de/* = }" ;;
+ *"TDE_FULL_SESSION"*) de="Trinity" ;;
+ *"MUFFIN"* | "Cinnamon") de="$(cinnamon --version)"; de="${de:-Cinnamon}" ;;
+ *"xfce4"*) de="Xfce4" ;;
+ *"xfce5"*) de="Xfce5" ;;
+ *"xfce"*) de="Xfce" ;;
+ *"mate"*) de="MATE" ;;
esac
- ((${KDE_SESSION_VERSION:-0} >= 4)) && de=${de/KDE/Plasma}
-
- if [[ $de_version == on && $de ]]; then
- case $de in
- Plasma*) de_ver=$(plasmashell --version) ;;
- MATE*) de_ver=$(mate-session --version) ;;
- Xfce*) de_ver=$(xfce4-session --version) ;;
- GNOME*) de_ver=$(gnome-shell --version) ;;
- Cinnamon*) de_ver=$(cinnamon --version) ;;
- Deepin*) de_ver=$(awk -F'=' '/MajorVersion/ {print $2}' /etc/os-version) ;;
- Budgie*) de_ver=$(budgie-desktop --version) ;;
- LXQt*) de_ver=$(lxqt-session --version) ;;
- Lumina*) de_ver=$(lumina-desktop --version 2>&1) ;;
- Trinity*) de_ver=$(tde-config --version) ;;
- Unity*) de_ver=$(unity --version) ;;
- esac
-
- de_ver=${de_ver/*TDE:}
- de_ver=${de_ver/tde-config*}
- de_ver=${de_ver/liblxqt*}
- de_ver=${de_ver/Copyright*}
- de_ver=${de_ver/)*}
- de_ver=${de_ver/* }
- de_ver=${de_ver//\"}
-
- de+=" $de_ver"
- fi
-
- # TODO:
- # - New config option + flag: --de_display_server on/off ?
- # - Add display of X11, Arcan and anything else relevant.
- [[ $de && $WAYLAND_DISPLAY ]] &&
- de+=" (Wayland)"
-
+ # Log that the function was run.
de_run=1
}
@@ -1893,131 +708,48 @@ get_wm() {
# If function was run, stop here.
((wm_run == 1)) && return
- case $kernel_name in
- *OpenBSD*) ps_flags=(x -c) ;;
- *) ps_flags=(-e) ;;
- esac
+ if [[ -n "$DISPLAY" && "$os" != "Mac OS X" ]]; then
+ id="$(xprop -root -notype _NET_SUPPORTING_WM_CHECK)"
+ id="${id##* }"
+ wm="$(xprop -id "$id" -notype -len 100 -f _NET_WM_NAME 8t)"
+ wm="${wm/*_NET_WM_NAME = }"
+ wm="${wm/\"}"
+ wm="${wm/\"*}"
- if [[ -O "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}" ]]; then
- if tmp_pid="$(lsof -t "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}" 2>&1)" ||
- tmp_pid="$(fuser "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}" 2>&1)"; then
- wm="$(ps -p "${tmp_pid}" -ho comm=)"
- else
- # lsof may not exist, or may need root on some systems. Similarly fuser.
- # On those systems we search for a list of known window managers, this can mistakenly
- # match processes for another user or session and will miss unlisted window managers.
- wm=$(ps "${ps_flags[@]}" | grep -m 1 -o -F \
- -e arcan \
- -e asc \
- -e clayland \
- -e dwc \
- -e fireplace \
- -e gnome-shell \
- -e greenfield \
- -e grefsen \
- -e hikari \
- -e kwin \
- -e lipstick \
- -e maynard \
- -e mazecompositor \
- -e motorcar \
- -e orbital \
- -e orbment \
- -e perceptia \
- -e river \
- -e rustland \
- -e sway \
- -e ulubis \
- -e velox \
- -e wavy \
- -e way-cooler \
- -e wayfire \
- -e wayhouse \
- -e westeros \
- -e westford \
- -e weston)
- fi
+ # Window Maker does not set _NET_WM_NAME
+ [[ "$wm" =~ "WINDOWMAKER" ]] && wm="wmaker"
- elif [[ $DISPLAY && $os != "Mac OS X" && $os != "macOS" && $os != FreeMiNT ]]; then
- # non-EWMH WMs.
- wm=$(ps "${ps_flags[@]}" | grep -m 1 -o \
- -e "[s]owm" \
- -e "[c]atwm" \
- -e "[f]vwm" \
- -e "[d]wm" \
- -e "[2]bwm" \
- -e "[m]onsterwm" \
- -e "[t]inywm" \
- -e "[x]11fs" \
- -e "[x]monad")
-
- [[ -z $wm ]] && type -p xprop &>/dev/null && {
- id=$(xprop -root -notype _NET_SUPPORTING_WM_CHECK)
- id=${id##* }
- wm=$(xprop -id "$id" -notype -len 100 -f _NET_WM_NAME 8t)
- wm=${wm/*WM_NAME = }
- wm=${wm/\"}
- wm=${wm/\"*}
- }
+ # Fallback for Wayland wms.
+ [[ "$wm" == "xwlc" ]] && \
+ wm="$(ps -e | grep -m 1 -o -F -e "sway" -e "orbment" -e "velox" -e "orbital")"
else
- case $os in
- "Mac OS X"|"macOS")
- ps_line=$(ps -e | grep -o \
- -e "[S]pectacle" \
- -e "[A]methyst" \
- -e "[k]wm" \
- -e "[c]hun[k]wm" \
- -e "[y]abai" \
- -e "[R]ectangle")
+ case "$os" in
+ "Mac OS X")
+ ps_line="$(ps -e | grep -o '[S]pectacle\|[A]methyst\|[k]wm\|[c]hun[k]wm')"
- case $ps_line in
- *chunkwm*) wm=chunkwm ;;
- *kwm*) wm=Kwm ;;
- *yabai*) wm=yabai ;;
- *Amethyst*) wm=Amethyst ;;
- *Spectacle*) wm=Spectacle ;;
- *Rectangle*) wm=Rectangle ;;
- *) wm="Quartz Compositor" ;;
+ case "$ps_line" in
+ *"chunkwm"*) wm="chunkwm" ;;
+ *"kwm"*) wm="Kwm" ;;
+ *"Amethyst"*) wm="Amethyst" ;;
+ *"Spectacle"*) wm="Spectacle" ;;
+ *) wm="Quartz Compositor" ;;
esac
;;
- Windows)
- wm=$(
- tasklist |
-
- grep -Fom 1 \
- -e bugn \
- -e Windawesome \
- -e blackbox \
- -e emerge \
- -e litestep
- )
-
- [[ $wm == blackbox ]] &&
- wm="bbLean (Blackbox)"
-
- wm=${wm:+$wm, }DWM.exe
- ;;
-
- FreeMiNT)
- freemint_wm=(/proc/*)
-
- case ${freemint_wm[*]} in
- *xaaes* | *xaloader*) wm=XaAES ;;
- *myaes*) wm=MyAES ;;
- *naes*) wm=N.AES ;;
- geneva) wm=Geneva ;;
- *) wm="Atari AES" ;;
- esac
+ "Windows")
+ wm="$(tasklist | grep -m 1 -o -F -e "bugn" \
+ -e "Windawesome" \
+ -e "blackbox" \
+ -e "emerge" \
+ -e "litestep")"
+ [[ "$wm" == "blackbox" ]] && wm="bbLean (Blackbox)"
+ wm="${wm:+$wm, }Explorer"
;;
esac
fi
- # Rename window managers to their proper values.
- [[ $wm == *WINDOWMAKER* ]] && wm=wmaker
- [[ $wm == *GNOME*Shell* ]] && wm=Mutter
-
+ # Log that the function was run.
wm_run=1
}
@@ -2025,174 +757,157 @@ get_wm_theme() {
((wm_run != 1)) && get_wm
((de_run != 1)) && get_de
- case $wm in
- E16)
- wm_theme=$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg")
+ case "$wm" in
+ "E16")
+ wm_theme="$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg")"
;;
- Sawfish)
- wm_theme=$(awk -F '\\(quote|\\)' '/default-frame-style/ {print $(NF-4)}' \
- "$HOME/.sawfish/custom")
+ "Sawfish")
+ wm_theme="$(awk -F ")" '/\(quote default-frame-style/ {print $2}' \
+ "${HOME}/.sawfish/custom")"
;;
- Cinnamon|Muffin|"Mutter (Muffin)")
- detheme=$(gsettings get org.cinnamon.theme name)
- wm_theme=$(gsettings get org.cinnamon.desktop.wm.preferences theme)
- wm_theme="$detheme ($wm_theme)"
+ "Cinnamon" | "Muffin" | "Mutter (Muffin)")
+ detheme="$(gsettings get org.cinnamon.theme name)"
+ wm_theme="$(gsettings get org.cinnamon.desktop.wm.preferences theme)"
+ wm_theme="$detheme (${wm_theme})"
;;
- Compiz|Mutter|Gala)
+ "Compiz" | "Mutter" | "GNOME Shell" | "Gala")
if type -p gsettings >/dev/null; then
- wm_theme=$(gsettings get org.gnome.shell.extensions.user-theme name)
+ wm_theme="$(gsettings get org.gnome.shell.extensions.user-theme name)"
- [[ ${wm_theme//\'} ]] || \
- wm_theme=$(gsettings get org.gnome.desktop.wm.preferences theme)
+ [[ -z "${wm_theme//\'}" ]] && \
+ wm_theme="$(gsettings get org.gnome.desktop.wm.preferences theme)"
elif type -p gconftool-2 >/dev/null; then
- wm_theme=$(gconftool-2 -g /apps/metacity/general/theme)
+ wm_theme="$(gconftool-2 -g /apps/metacity/general/theme)"
fi
;;
- Metacity*)
- if [[ $de == Deepin ]]; then
- wm_theme=$(gsettings get com.deepin.wrap.gnome.desktop.wm.preferences theme)
+ "Metacity"*)
+ if [[ "$de" == "Deepin" ]]; then
+ wm_theme="$(gsettings get com.deepin.wrap.gnome.desktop.wm.preferences theme)"
- elif [[ $de == MATE ]]; then
- wm_theme=$(gsettings get org.mate.Marco.general theme)
+ elif [[ "$de" == "MATE" ]]; then
+ wm_theme="$(gsettings get org.mate.Marco.general theme)"
else
- wm_theme=$(gconftool-2 -g /apps/metacity/general/theme)
+ wm_theme="$(gconftool-2 -g /apps/metacity/general/theme)"
fi
;;
- E17|Enlightenment)
+ "E17" | "Enlightenment")
if type -p eet >/dev/null; then
- wm_theme=$(eet -d "$HOME/.e/e/config/standard/e.cfg" config |\
- awk '/value \"file\" string.*.edj/ {print $4}')
- wm_theme=${wm_theme##*/}
- wm_theme=${wm_theme%.*}
+ wm_theme="$(eet -d "${HOME}/.e/e/config/standard/e.cfg" config |\
+ awk '/value \"file\" string.*.edj/ {print $4}')"
+ wm_theme="${wm_theme##*/}"
+ wm_theme="${wm_theme%.*}"
fi
;;
- Fluxbox)
- [[ -f $HOME/.fluxbox/init ]] &&
- wm_theme=$(awk -F "/" '/styleFile/ {print $NF}' "$HOME/.fluxbox/init")
+ "Fluxbox")
+ [[ -f "${HOME}/.fluxbox/init" ]] && \
+ wm_theme="$(awk -F "/" '/styleFile/ {print $NF}' "${HOME}/.fluxbox/init")"
;;
- IceWM*)
- [[ -f $HOME/.icewm/theme ]] &&
- wm_theme=$(awk -F "[\",/]" '!/#/ {print $2}' "$HOME/.icewm/theme")
+ "IceWM"*)
+ [[ -f "${HOME}/.icewm/theme" ]] && \
+ wm_theme="$(awk -F "[\",/]" '!/#/ {print $2}' "${HOME}/.icewm/theme")"
;;
- Openbox)
- case $de in
- LXDE*) ob_file=lxde-rc ;;
- LXQt*) ob_file=lxqt-rc ;;
- *) ob_file=rc ;;
- esac
+ "Openbox")
+ if [[ "$de" == "LXDE" && -f "${HOME}/.config/openbox/lxde-rc.xml" ]]; then
+ ob_file="lxde-rc"
- ob_file=$XDG_CONFIG_HOME/openbox/$ob_file.xml
+ elif [[ -f "${HOME}/.config/openbox/rc.xml" ]]; then
+ ob_file="rc"
+ fi
- [[ -f $ob_file ]] &&
- wm_theme=$(awk '// {while (getline n) {if (match(n, //))
- {l=n; exit}}} END {split(l, a, "[<>]"); print a[3]}' "$ob_file")
+ wm_theme="$(awk -F "[<,>]" '/ 1)) && gpu_num=1
for gpu in "${gpus[@]}"; do
# GPU shorthand tests.
- [[ "$gpu_type" == "dedicated" && "$gpu" == *Intel* ]] || \
- [[ "$gpu_type" == "integrated" && ! "$gpu" == *Intel* ]] && \
+ [[ "$gpu_type" == "dedicated" && "$gpu" =~ (i|I)ntel ]] ||\
+ [[ "$gpu_type" == "integrated" && ! "$gpu" =~ (i|I)ntel ]] && \
{ unset -v gpu; continue; }
- case $gpu in
- *"Advanced"*)
- brand="${gpu/*AMD*ATI*/AMD ATI}"
- brand="${brand:-${gpu/*AMD*/AMD}}"
- brand="${brand:-${gpu/*ATI*/ATi}}"
-
- gpu="${gpu/\[AMD\/ATI\] }"
- gpu="${gpu/\[AMD\] }"
+ case "$gpu" in
+ *"advanced"*)
+ gpu="${gpu/'[AMD/ATI]' }"
+ gpu="${gpu/'[AMD]' }"
gpu="${gpu/OEM }"
gpu="${gpu/Advanced Micro Devices, Inc.}"
+ gpu="${gpu/ \/ *}"
gpu="${gpu/*\[}"
gpu="${gpu/\]*}"
- gpu="$brand $gpu"
+ gpu="AMD $gpu"
;;
- *"NVIDIA"*)
+ *"nvidia"*)
gpu="${gpu/*\[}"
gpu="${gpu/\]*}"
gpu="NVIDIA $gpu"
;;
- *"Intel"*)
+ *"intel"*)
+ gpu="$(glxinfo | grep "Device:.*Intel")"
gpu="${gpu/*Intel/Intel}"
- gpu="${gpu/\(R\)}"
- gpu="${gpu/Corporation}"
+ gpu="${gpu/'(R)'}"
gpu="${gpu/ \(*}"
- gpu="${gpu/Integrated Graphics Controller}"
- gpu="${gpu/*Xeon*/Intel HD Graphics}"
[[ -z "$(trim "$gpu")" ]] && gpu="Intel Integrated Graphics"
;;
- *"MCST"*)
- gpu="${gpu/*MCST*MGA2*/MCST MGA2}"
- ;;
-
- *"VirtualBox"*)
+ *"virtualbox"*)
gpu="VirtualBox Graphics Adapter"
;;
-
- *) continue ;;
esac
if [[ "$gpu_brand" == "off" ]]; then
@@ -2581,19 +1254,20 @@ get_gpu() {
fi
prin "${subtitle:+${subtitle}${gpu_name}}" "$gpu"
+ ((++gpu_num))
done
return
;;
- "Mac OS X"|"macOS")
+ "Mac OS X")
if [[ -f "${cache_dir}/neofetch/gpu" ]]; then
source "${cache_dir}/neofetch/gpu"
else
gpu="$(system_profiler SPDisplaysDataType |\
awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')"
- gpu="${gpu//\/ \$}"
+ gpu="${gpu//'/ $'}"
gpu="${gpu%,*}"
cache "gpu" "$gpu"
@@ -2601,48 +1275,40 @@ get_gpu() {
;;
"iPhone OS")
- case $kernel_machine in
- "iPhone1,"[1-2]): "PowerVR MBX Lite 3D" ;;
- "iPhone2,1" | "iPhone3,"[1-3] | "iPod3,1" | "iPod4,1" | "iPad1,1"):
- "PowerVR SGX535"
- ;;
- "iPhone4,1" | "iPad2,"[1-7] | "iPod5,1"): "PowerVR SGX543MP2" ;;
- "iPhone5,"[1-4]): "PowerVR SGX543MP3" ;;
- "iPhone6,"[1-2] | "iPad4,"[1-9]): "PowerVR G6430" ;;
- "iPhone7,"[1-2] | "iPod7,1" | "iPad5,"[1-2]): "PowerVR GX6450" ;;
- "iPhone8,"[1-4] | "iPad6,1"[12]): "PowerVR GT7600" ;;
- "iPhone9,"[1-4] | "iPad7,"[5-6]): "PowerVR GT7600 Plus" ;;
- "iPhone10,"[1-6]): "Apple Designed GPU (A11)" ;;
- "iPhone11,"[2468] | "iPad11,"[67]): "Apple Designed GPU (A12)" ;;
- "iPhone12,"[1358]): "Apple Designed GPU (A13)" ;;
- "iPhone13,"[1234] | "iPad13,"[12]): "Apple Designed GPU (A14)" ;;
+ case "$machine_arch" in
+ "iPhone1,"[1-2]) gpu="PowerVR MBX Lite 3D" ;;
+ "iPhone5,"[1-4]) gpu="PowerVR SGX543MP3" ;;
+ "iPhone8,"[1-4]) gpu="PowerVR GT7600" ;;
+ "iPad3,"[1-3]) gpu="PowerVR SGX534MP4" ;;
+ "iPad3,"[4-6]) gpu="PowerVR SGX554MP4" ;;
+ "iPad5,"[3-4]) gpu="PowerVR GXA6850" ;;
+ "iPad6,"[3-8]) gpu="PowerVR 7XT" ;;
- "iPad3,"[1-3]): "PowerVR SGX534MP4" ;;
- "iPad3,"[4-6]): "PowerVR SGX554MP4" ;;
- "iPad5,"[3-4]): "PowerVR GXA6850" ;;
- "iPad6,"[3-8]): "PowerVR 7XT" ;;
+ "iPhone2,1" | "iPhone3,"[1-3] | "iPod3,1" | "iPod4,1" | "iPad1,1")
+ gpu="PowerVR SGX535"
+ ;;
+
+ "iPhone4,1" | "iPad2,"[1-7] | "iPod5,1")
+ gpu="PowerVR SGX543MP2"
+ ;;
+
+ "iPhone6,"[1-2] | "iPad4,"[1-9])
+ gpu="PowerVR G6430"
+ ;;
+
+ "iPhone7,"[1-2] | "iPod7,1" | "iPad5,"[1-2])
+ gpu="PowerVR GX6450"
+ ;;
"iPod1,1" | "iPod2,1")
- : "PowerVR MBX Lite"
+ gpu="PowerVR MBX Lite"
;;
esac
- gpu="$_"
;;
"Windows")
- wmic path Win32_VideoController get caption | while read -r line; do
- line=$(trim "$line")
-
- case $line in
- *Caption*|'')
- continue
- ;;
-
- *)
- prin "${subtitle:+${subtitle}${gpu_name}}" "$line"
- ;;
- esac
- done
+ gpu="$(wmic path Win32_VideoController get caption)"
+ gpu="${gpu//Caption}"
;;
"Haiku")
@@ -2651,7 +1317,7 @@ get_gpu() {
;;
*)
- case $kernel_name in
+ case "$kernel_name" in
"FreeBSD"* | "DragonFly"*)
gpu="$(pciconf -lv | grep -B 4 -F "VGA" | grep -F "device")"
gpu="${gpu/*device*= }"
@@ -2659,8 +1325,8 @@ get_gpu() {
;;
*)
- gpu="$(glxinfo -B | grep -F 'OpenGL renderer string')"
- gpu="${gpu/OpenGL renderer string: }"
+ gpu="$(glxinfo | grep -F 'OpenGL renderer string')"
+ gpu="${gpu/'OpenGL renderer string: '}"
;;
esac
;;
@@ -2674,54 +1340,41 @@ get_gpu() {
}
get_memory() {
- case $os in
+ case "$os" in
"Linux" | "Windows")
# MemUsed = Memtotal + Shmem - MemFree - Buffers - Cached - SReclaimable
# Source: https://github.com/KittyKatt/screenFetch/issues/386#issuecomment-249312716
while IFS=":" read -r a b; do
- case $a in
- "MemTotal") ((mem_used+=${b/kB})); mem_total="${b/kB}" ;;
- "Shmem") ((mem_used+=${b/kB})) ;;
+ case "$a" in
+ "MemTotal") mem_used="$((mem_used+=${b/kB}))"; mem_total="${b/kB}" ;;
+ "Shmem") mem_used="$((mem_used+=${b/kB}))" ;;
"MemFree" | "Buffers" | "Cached" | "SReclaimable")
mem_used="$((mem_used-=${b/kB}))"
;;
-
- # Available since Linux 3.14rc (34e431b0ae398fc54ea69ff85ec700722c9da773).
- # If detected this will be used over the above calculation for mem_used.
- "MemAvailable")
- mem_avail=${b/kB}
- ;;
esac
done < /proc/meminfo
- if [[ $mem_avail ]]; then
- mem_used=$(((mem_total - mem_avail) / 1024))
- else
- mem_used="$((mem_used / 1024))"
- fi
-
+ mem_used="$((mem_used / 1024))"
mem_total="$((mem_total / 1024))"
;;
- "Mac OS X" | "macOS" | "iPhone OS")
- hw_pagesize="$(sysctl -n hw.pagesize)"
+ "Mac OS X" | "iPhone OS")
mem_total="$(($(sysctl -n hw.memsize) / 1024 / 1024))"
- pages_app="$(($(sysctl -n vm.page_pageable_internal_count) - $(sysctl -n vm.page_purgeable_count)))"
- pages_wired="$(vm_stat | awk '/ wired/ { print $4 }')"
- pages_compressed="$(vm_stat | awk '/ occupied/ { printf $5 }')"
- pages_compressed="${pages_compressed:-0}"
- mem_used="$(((${pages_app} + ${pages_wired//.} + ${pages_compressed//.}) * hw_pagesize / 1024 / 1024))"
+ mem_wired="$(vm_stat | awk '/wired/ { print $4 }')"
+ mem_active="$(vm_stat | awk '/active / { printf $3 }')"
+ mem_compressed="$(vm_stat | awk '/occupied/ { printf $5 }')"
+ mem_used="$(((${mem_wired//.} + ${mem_active//.} + ${mem_compressed//.}) * 4 / 1024))"
;;
"BSD" | "MINIX")
# Mem total.
- case $kernel_name in
+ case "$kernel_name" in
"NetBSD"*) mem_total="$(($(sysctl -n hw.physmem64) / 1024 / 1024))" ;;
*) mem_total="$(($(sysctl -n hw.physmem) / 1024 / 1024))" ;;
esac
# Mem free.
- case $kernel_name in
+ case "$kernel_name" in
"NetBSD"*)
mem_free="$(($(awk -F ':|kB' '/MemFree:/ {printf $2}' /proc/meminfo) / 1024))"
;;
@@ -2740,36 +1393,19 @@ get_memory() {
;;
"OpenBSD"*) ;;
- *) mem_free="$(($(vmstat | awk 'END {printf $5}') / 1024))" ;;
+ *) mem_free="$(($(vmstat | awk 'END{printf $5}') / 1024))" ;;
esac
# Mem used.
- case $kernel_name in
- "OpenBSD"*)
- mem_used="$(vmstat | awk 'END {printf $3}')"
- mem_used="${mem_used/M}"
- ;;
-
+ case "$kernel_name" in
+ "OpenBSD"*) mem_used="$(($(vmstat | awk 'END{printf $4}') / 1024))" ;;
*) mem_used="$((mem_total - mem_free))" ;;
esac
;;
- "Solaris" | "AIX")
- hw_pagesize="$(pagesize)"
- case $os in
- "Solaris")
- pages_total="$(kstat -p unix:0:system_pages:pagestotal | awk '{print $2}')"
- pages_free="$(kstat -p unix:0:system_pages:pagesfree | awk '{print $2}')"
- ;;
-
- "AIX")
- IFS=$'\n'"| " read -d "" -ra mem_stat <<< "$(svmon -G -O unit=page)"
- pages_total="${mem_stat[11]}"
- pages_free="${mem_stat[16]}"
- ;;
- esac
- mem_total="$((pages_total * hw_pagesize / 1024 / 1024))"
- mem_free="$((pages_free * hw_pagesize / 1024 / 1024))"
+ "Solaris")
+ mem_total="$(prtconf | awk '/Memory/ {print $3}')"
+ mem_free="$(($(vmstat | awk 'NR==3{printf $5}') / 1024))"
mem_used="$((mem_total - mem_free))"
;;
@@ -2779,106 +1415,43 @@ get_memory() {
mem_used="$((${mem_used/max} / 1024 / 1024))"
;;
- "IRIX")
- IFS=$'\n' read -d "" -ra mem_cmd <<< "$(pmem)"
- IFS=" " read -ra mem_stat <<< "${mem_cmd[0]}"
+ "AIX")
+ mem_stat=($(svmon -G -O unit=MB))
+ mem_total="${mem_stat[11]/.*}"
+ mem_free="${mem_stat[16]/.*}"
+ mem_used="$((mem_total - mem_free))"
+ mem_label="MB"
+ ;;
+ "IRIX")
+ mem_stat=($(pmem | head -1))
mem_total="$((mem_stat[3] / 1024))"
mem_free="$((mem_stat[5] / 1024))"
mem_used="$((mem_total - mem_free))"
;;
- "FreeMiNT")
- mem="$(awk -F ':|kB' '/MemTotal:|MemFree:/ {printf $2, " "}' /kern/meminfo)"
- mem_free="${mem/* }"
- mem_total="${mem/$mem_free}"
+ "HP-UX")
+ mem_total="$(machinfo | awk -F':' '/Memory/ {print $2}')"
+ mem_total="${mem_total/MB*}"
+ mem_free="$(($(vmstat | awk 'NR==3{printf $5}') / 1024))"
mem_used="$((mem_total - mem_free))"
- mem_total="$((mem_total / 1024))"
- mem_used="$((mem_used / 1024))"
- ;;
-
- esac
-
- [[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total))
-
- case $memory_unit in
- gib)
- mem_used=$(awk '{printf "%.2f", $1 / $2}' <<< "$mem_used 1024")
- mem_total=$(awk '{printf "%.2f", $1 / $2}' <<< "$mem_total 1024")
- mem_label=GiB
- ;;
-
- kib)
- mem_used=$((mem_used * 1024))
- mem_total=$((mem_total * 1024))
- mem_label=KiB
;;
esac
-
- memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB} ${mem_perc:+(${mem_perc}%)}"
+ memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB}"
# Bars.
- case $memory_display in
- "bar") memory="$(bar "${mem_used}" "${mem_total}")" ;;
+ case "$memory_display" in
+ "bar") memory="$(bar "${mem_used}" "${mem_total}")" ;;
"infobar") memory="${memory} $(bar "${mem_used}" "${mem_total}")" ;;
"barinfo") memory="$(bar "${mem_used}" "${mem_total}")${info_color} ${memory}" ;;
esac
}
get_song() {
- players=(
- "amarok"
- "audacious"
- "banshee"
- "bluemindo"
- "clementine"
- "cmus"
- "deadbeef"
- "deepin-music"
- "dragon"
- "elisa"
- "exaile"
- "gnome-music"
- "gmusicbrowser"
- "gogglesmm"
- "guayadeque"
- "io.elementary.music"
- "iTunes"
- "Music"
- "juk"
- "lollypop"
- "MellowPlayer"
- "mocp"
- "mopidy"
- "mpd"
- "muine"
- "netease-cloud-music"
- "olivia"
- "plasma-browser-integration"
- "playerctl"
- "pogo"
- "pragha"
- "qmmp"
- "quodlibet"
- "rhythmbox"
- "sayonara"
- "smplayer"
- "spotify"
- "Spotify"
- "strawberry"
- "tauonmb"
- "tomahawk"
- "vlc"
- "xmms2d"
- "xnoise"
- "yarock"
- )
-
- printf -v players "|%s" "${players[@]}"
- player="$(ps aux | awk -v pattern="(${players:1})" \
- '!/ awk / && !/iTunesHelper/ && match($0,pattern){print substr($0,RSTART,RLENGTH); exit}')"
-
- [[ "$music_player" && "$music_player" != "auto" ]] && player="$music_player"
+ player="$(ps x | awk '!(/ awk|Helper|Cache|ibus|indicator/) && /mpd|mopidy|cmus|mocp|spotify|\
+Google Play|iTunes.app|rhythmbox|banshee|amarok|deadbeef|audacious|\
+xmms2d|gnome-music|lollypop|clementine|pragha|exaile|juk|bluemindo|\
+guayadeque|yarock|qmmp|quodlibet|deepin-music|tomahawk|pogo|elisa/ {printf $5 " " $6; exit}')"
get_song_dbus() {
# Multiple players use an almost identical dbus command to get the information.
@@ -2887,137 +1460,115 @@ get_song() {
dbus-send --print-reply --dest=org.mpris.MediaPlayer2."${1}" /org/mpris/MediaPlayer2 \
org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' \
string:'Metadata' |\
- awk -F '"' 'BEGIN {RS=" entry"}; /"xesam:artist"/ {a = $4} /"xesam:album"/ {b = $4}
- /"xesam:title"/ {t = $4} END {print a " \n" b " \n" t}'
+ awk -F 'string "' '/string|array/ {printf "%s",$2; next}{print ""}' |\
+ awk -F '"' '/artist/ {a=$2} /title/ {t=$2} END{print a " - " t}'
)"
}
- case ${player/*\/} in
- "mocp"*) song="$(mocp -Q '%artist \n%album \n%song')" ;;
- "deadbeef"*) song="$(deadbeef --nowplaying-tf '%artist% \\n%album% \\n%title%')" ;;
- "qmmp"*) song="$(qmmp --nowplaying '%p \n%a \n%t')" ;;
- "gnome-music"*) get_song_dbus "GnomeMusic" ;;
- "lollypop"*) get_song_dbus "Lollypop" ;;
- "clementine"*) get_song_dbus "clementine" ;;
- "cmus"*) get_song_dbus "cmus" ;;
- "juk"*) get_song_dbus "juk" ;;
- "bluemindo"*) get_song_dbus "Bluemindo" ;;
- "guayadeque"*) get_song_dbus "guayadeque" ;;
- "yarock"*) get_song_dbus "yarock" ;;
- "deepin-music"*) get_song_dbus "DeepinMusic" ;;
- "tomahawk"*) get_song_dbus "tomahawk" ;;
- "elisa"*) get_song_dbus "elisa" ;;
- "sayonara"*) get_song_dbus "sayonara" ;;
- "audacious"*) get_song_dbus "audacious" ;;
- "vlc"*) get_song_dbus "vlc" ;;
- "gmusicbrowser"*) get_song_dbus "gmusicbrowser" ;;
- "pragha"*) get_song_dbus "pragha" ;;
- "amarok"*) get_song_dbus "amarok" ;;
- "dragon"*) get_song_dbus "dragonplayer" ;;
- "smplayer"*) get_song_dbus "smplayer" ;;
- "rhythmbox"*) get_song_dbus "rhythmbox" ;;
- "strawberry"*) get_song_dbus "strawberry" ;;
- "gogglesmm"*) get_song_dbus "gogglesmm" ;;
- "xnoise"*) get_song_dbus "xnoise" ;;
- "tauonmb"*) get_song_dbus "tauon" ;;
- "olivia"*) get_song_dbus "olivia" ;;
- "exaile"*) get_song_dbus "exaile" ;;
- "netease-cloud-music"*) get_song_dbus "netease-cloud-music" ;;
- "plasma-browser-integration"*) get_song_dbus "plasma-browser-integration" ;;
- "io.elementary.music"*) get_song_dbus "Music" ;;
- "MellowPlayer"*) get_song_dbus "MellowPlayer3" ;;
+ case "${player/*\/}" in
+ "mpd"* | "mopidy"*) song="$(mpc current)" ;;
+ "mocp"*) song="$(mocp -Q "%artist - %song")" ;;
+ "google play"*) song="$(gpmdp-remote current)" ;;
+ "rhythmbox"*) song="$(rhythmbox-client --print-playing)" ;;
+ "deadbeef"*) song="$(deadbeef --nowplaying-tf '%artist% - %title%')" ;;
+ "xmms2d"*) song="$(xmms2 current -f '${artist} - ${title}')" ;;
+ "qmmp"*) song="$(qmmp --nowplaying '%p - %t')" ;;
+ "gnome-music"*) get_song_dbus "GnomeMusic" ;;
+ "lollypop"*) get_song_dbus "Lollypop" ;;
+ "clementine"*) get_song_dbus "clementine" ;;
+ "juk"*) get_song_dbus "juk" ;;
+ "bluemindo"*) get_song_dbus "Bluemindo" ;;
+ "guayadeque"*) get_song_dbus "guayadeque" ;;
+ "yarock"*) get_song_dbus "yarock" ;;
+ "deepin-music"*) get_song_dbus "deepinmusic" ;;
+ "tomahawk"*) get_song_dbus "tomahawk" ;;
+ "elisa"*) get_song_dbus "elisa" ;;
- "mpd"* | "mopidy"*)
- song="$(mpc -f '%artist% \n%album% \n%title%' current "${mpc_args[@]}")"
+ "audacious"*)
+ song="$(audtool current-song)"
+
+ # Remove Album from 'Artist - Album - Title'
+ song="${song/-* -/-}"
+
+ [[ -z "$song" ]] && get_song_dbus "audacious"
;;
- "xmms2d"*)
- song="$(xmms2 current -f "\${artist}"$' \n'"\${album}"$' \n'"\${title}")"
+ "cmus"*)
+ song="$(cmus-remote -Q | awk '/tag artist/ {$1=$2=""; print; print " - "}\
+ /tag title/ {$1=$2=""; print}')"
;;
"spotify"*)
- case $os in
+ case "$os" in
"Linux") get_song_dbus "spotify" ;;
- "Mac OS X"|"macOS")
- song="$(osascript -e 'tell application "Spotify" to artist of current track as¬
- string & "\n" & album of current track as¬
- string & "\n" & name of current track as string')"
+ "Mac OS X")
+ song="$(osascript -e 'tell application "Spotify" to artist of current track as \
+ string & " - " & name of current track as string')"
;;
esac
;;
"itunes"*)
- song="$(osascript -e 'tell application "iTunes" to artist of current track as¬
- string & "\n" & album of current track as¬
- string & "\n" & name of current track as string')"
- ;;
-
- "music"*)
- song="$(osascript -e 'tell application "Music" to artist of current track as¬
- string & "\n" & album of current track as¬
- string & "\n" & name of current track as string')"
+ song="$(osascript -e 'tell application "iTunes" to artist of current track as \
+ string & " - " & name of current track as string')"
;;
"banshee"*)
- song="$(banshee --query-artist --query-album --query-title |\
- awk -F':' '/^artist/ {a=$2} /^album/ {b=$2} /^title/ {t=$2}
- END {print a " \n" b " \n"t}')"
+ song="$(banshee --query-artist --query-title |\
+ awk -F':' '/^artist/ {a=$2} /^title/ {t=$2} END{print a " - " t}')"
;;
- "muine"*)
- song="$(dbus-send --print-reply --dest=org.gnome.Muine /org/gnome/Muine/Player \
- org.gnome.Muine.Player.GetCurrentSong |
- awk -F':' '/^artist/ {a=$2} /^album/ {b=$2} /^title/ {t=$2}
- END {print a " \n" b " \n" t}')"
+ "amarok"*)
+ song="$(qdbus org.kde.amarok /Player GetMetadata |\
+ awk -F':' '/^artist/ {a=$2} /^title/ {t=$2} END{print a " - " t}')"
+ ;;
+
+ "pragha"*)
+ song="$(pragha -c | awk -F':' '/^artist/ {a=$2} /^title/ {t=$2} END{print a " - " t}')"
+ ;;
+
+ "exaile"*)
+ song="$(dbus-send --print-reply --dest=org.exaile.Exaile /org/exaile/Exaile \
+ org.exaile.Exaile.Query | awk -F':|,' '{if ($6 && $4) printf $6 " -" $4}')"
;;
"quodlibet"*)
song="$(dbus-send --print-reply --dest=net.sacredchao.QuodLibet \
/net/sacredchao/QuodLibet net.sacredchao.QuodLibet.CurrentSong |\
- awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4}
- /"title"/ {t=$4} END {print a " \n" b " \n" t}')"
+ awk -F'"' '/artist/ {getline; a=$2} \
+ /title/ {getline; t=$2} END{print a " - " t}')"
;;
"pogo"*)
song="$(dbus-send --print-reply --dest=org.mpris.pogo /Player \
org.freedesktop.MediaPlayer.GetMetadata |
- awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4}
- /"title"/ {t=$4} END {print a " \n" b " \n" t}')"
+ awk -F'"' '/string "artist"/ {getline; a=$2} /string "title"/ {getline; t=$2} \
+ END{print a " - " t}')"
;;
- "playerctl"*)
- song="$(playerctl metadata --format '{{ artist }} \n{{ album }} \n{{ title }}')"
- ;;
-
- *) mpc &>/dev/null && song="$(mpc -f '%artist% \n%album% \n%title%' current)" || return ;;
+ *) mpc >/dev/null 2>&1 && song="$(mpc current)" ;;
esac
- IFS=$'\n' read -d "" -r artist album title <<< "${song//'\n'/$'\n'}"
+ [[ "$(trim "$song")" == "-" ]] && unset -v song
- # Make sure empty tags are truly empty.
- artist="$(trim "$artist")"
- album="$(trim "$album")"
- title="$(trim "$title")"
+ # Display Artist and Title on separate lines.
+ if [[ "$song_shorthand" == "on" && "$song" ]]; then
+ artist="${song/ -*}"
+ song="${song/*-}"
- # Set default values if no tags were found.
- : "${artist:=Unknown Artist}" "${album:=Unknown Album}" "${title:=Unknown Song}"
-
- # Display Artist, Album and Title on separate lines.
- if [[ "$song_shorthand" == "on" ]]; then
- prin "Artist" "$artist"
- prin "Album" "$album"
- prin "Song" "$title"
- else
- song="${song_format/\%artist\%/$artist}"
- song="${song/\%album\%/$album}"
- song="${song/\%title\%/$title}"
+ if [[ "$song" != "$artist" ]]; then
+ prin "Artist" "$artist"
+ prin "Song" "$song"
+ else
+ prin "$subtitle" "$song"
+ fi
fi
}
get_resolution() {
- case $os in
- "Mac OS X"|"macOS")
+ case "$os" in
+ "Mac OS X")
if type -p screenresolution >/dev/null; then
resolution="$(screenresolution get 2>&1 | awk '/Display/ {printf $6 "Hz, "}')"
resolution="${resolution//x??@/ @ }"
@@ -3051,90 +1602,61 @@ get_resolution() {
;;
"Windows")
- IFS=$'\n' read -d "" -ra sw \
- <<< "$(wmic path Win32_VideoController get CurrentHorizontalResolution)"
+ local width=""
+ width="$(wmic path Win32_VideoController get CurrentHorizontalResolution)"
+ width="${width//CurrentHorizontalResolution/}"
- IFS=$'\n' read -d "" -ra sh \
- <<< "$(wmic path Win32_VideoController get CurrentVerticalResolution)"
+ local height=""
+ height="$(wmic path Win32_VideoController get CurrentVerticalResolution)"
+ height="${height//CurrentVerticalResolution/}"
- sw=("${sw[@]//CurrentHorizontalResolution}")
- sh=("${sh[@]//CurrentVerticalResolution}")
-
- for ((mn = 0; mn < ${#sw[@]}; mn++)) {
- [[ ${sw[mn]//[[:space:]]} && ${sh[mn]//[[:space:]]} ]] &&
- resolution+="${sw[mn]//[[:space:]]}x${sh[mn]//[[:space:]]}, "
- }
-
- resolution=${resolution%,}
+ [[ "$(trim "$width")" ]] && resolution="${width//[[:space:]]}x${height//[[:space:]]}"
;;
"Haiku")
- resolution="$(screenmode | awk -F ' |, ' 'END{printf $2 "x" $3 " @ " $6 $7}')"
+ resolution="$(screenmode | awk -F ' |, ' '{printf $2 "x" $3 " @ " $6 $7}')"
[[ "$refresh_rate" == "off" ]] && resolution="${resolution/ @*}"
;;
- "FreeMiNT")
- # Need to block X11 queries
- ;;
-
*)
- if type -p xrandr >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
- case $refresh_rate in
+ if type -p xrandr >/dev/null; then
+ case "$refresh_rate" in
"on")
resolution="$(xrandr --nograb --current |\
- awk 'match($0,/[0-9]*\.[0-9]*\*/) {
- printf $1 " @ " substr($0,RSTART,RLENGTH) "Hz, "}')"
+ awk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ "\
+ substr($0,RSTART,RLENGTH) "Hz, "}')"
;;
"off")
resolution="$(xrandr --nograb --current |\
awk -F 'connected |\\+|\\(' \
- '/ connected.*[0-9]+x[0-9]+\+/ && $2 {printf $2 ", "}')"
-
- resolution="${resolution/primary, }"
+ '/ connected/ && $2 {printf $2 ", "}')"
resolution="${resolution/primary }"
;;
esac
resolution="${resolution//\*}"
- elif type -p xwininfo >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
- read -r w h \
- <<< "$(xwininfo -root | awk -F':' '/Width|Height/ {printf $2}')"
- resolution="${w}x${h}"
-
- elif type -p xdpyinfo >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then
+ elif type -p xdpyinfo >/dev/null; then
resolution="$(xdpyinfo | awk '/dimensions:/ {printf $2}')"
-
- elif [[ -d /sys/class/drm ]]; then
- for dev in /sys/class/drm/*/modes; do
- read -r single_resolution _ < "$dev"
-
- [[ $single_resolution ]] && resolution="${single_resolution}, ${resolution}"
- done
fi
;;
esac
- resolution="${resolution%%,}"
- resolution="${resolution%%, }"
- [[ -z "${resolution/x}" ]] && resolution=
+ resolution="${resolution%,*}"
}
get_style() {
# Fix weird output when the function is run multiple times.
unset gtk2_theme gtk3_theme theme path
- if [[ "$DISPLAY" && $os != "Mac OS X" && $os != "macOS" ]]; then
+ if [[ -n "$DISPLAY" && "$os" != "Mac OS X" ]]; then
# Get DE if user has disabled the function.
((de_run != 1)) && get_de
- # Remove version from '$de'.
- [[ $de_version == on ]] && de=${de/ *}
-
# Check for DE Theme.
- case $de in
- "KDE"* | "Plasma"*)
+ case "$de" in
+ "KDE"*)
kde_config_dir
if [[ -f "${kde_config_dir}/kdeglobals" ]]; then
@@ -3147,7 +1669,7 @@ get_style() {
kde_font_size="${kde_font_size/,*}"
kde_theme="${kde_theme/,*} ${kde_theme/*,} ${kde_font_size}"
fi
- kde_theme="$kde_theme [$de], "
+ kde_theme="$(uppercase "$kde_theme") [KDE], "
else
err "Theme: KDE config files not found, skipping."
fi
@@ -3183,21 +1705,17 @@ get_style() {
# Check for general GTK2 Theme.
if [[ -z "$gtk2_theme" ]]; then
- if [[ -n "$GTK2_RC_FILES" ]]; then
- IFS=: read -ra rc_files <<< "$GTK2_RC_FILES"
- gtk2_theme="$(grep "^[^#]*${name}" "${rc_files[@]}")"
- elif [[ -f "${HOME}/.gtkrc-2.0" ]]; then
- gtk2_theme="$(grep "^[^#]*${name}" "${HOME}/.gtkrc-2.0")"
-
- elif [[ -f "/etc/gtk-2.0/gtkrc" ]]; then
- gtk2_theme="$(grep "^[^#]*${name}" /etc/gtk-2.0/gtkrc)"
+ if [[ -f "${GTK2_RC_FILES:-${HOME}/.gtkrc-2.0}" ]]; then
+ gtk2_theme="$(grep "^[^#]*${name}" "${GTK2_RC_FILES:-${HOME}/.gtkrc-2.0}")"
elif [[ -f "/usr/share/gtk-2.0/gtkrc" ]]; then
gtk2_theme="$(grep "^[^#]*${name}" /usr/share/gtk-2.0/gtkrc)"
+ elif [[ -f "/etc/gtk-2.0/gtkrc" ]]; then
+ gtk2_theme="$(grep "^[^#]*${name}" /etc/gtk-2.0/gtkrc)"
fi
- gtk2_theme="${gtk2_theme/*${name}*=}"
+ gtk2_theme="${gtk2_theme/${name}*=}"
fi
# Check for general GTK3 Theme.
@@ -3208,11 +1726,11 @@ get_style() {
elif type -p gsettings >/dev/null; then
gtk3_theme="$(gsettings get org.gnome.desktop.interface "$gsettings")"
- elif [[ -f "/etc/gtk-3.0/settings.ini" ]]; then
- gtk3_theme="$(grep "^[^#]*$name" /etc/gtk-3.0/settings.ini)"
-
elif [[ -f "/usr/share/gtk-3.0/settings.ini" ]]; then
gtk3_theme="$(grep "^[^#]*$name" /usr/share/gtk-3.0/settings.ini)"
+
+ elif [[ -f "/etc/gtk-3.0/settings.ini" ]]; then
+ gtk3_theme="$(grep "^[^#]*$name" /etc/gtk-3.0/settings.ini)"
fi
gtk3_theme="${gtk3_theme/${name}*=}"
@@ -3226,6 +1744,10 @@ get_style() {
gtk2_theme="$(trim_quotes "$gtk2_theme")"
gtk3_theme="$(trim_quotes "$gtk3_theme")"
+ # Uppercase the first letter of each GTK theme.
+ gtk2_theme="$(uppercase "$gtk2_theme")"
+ gtk3_theme="$(uppercase "$gtk3_theme")"
+
# Toggle visibility of GTK themes.
[[ "$gtk2" == "off" ]] && unset gtk2_theme
[[ "$gtk3" == "off" ]] && unset gtk3_theme
@@ -3253,7 +1775,6 @@ get_style() {
theme="${theme// '[GTK'[0-9]']'}"
theme="${theme/ '[GTK2/3]'}"
theme="${theme/ '[KDE]'}"
- theme="${theme/ '[Plasma]'}"
fi
fi
}
@@ -3296,54 +1817,33 @@ get_term() {
# Workaround for macOS systems that
# don't support the block below.
- case $TERM_PROGRAM in
- "iTerm.app") term="iTerm2" ;;
+ case "$TERM_PROGRAM" in
+ "iTerm.app") term="iTerm2" ;;
"Terminal.app") term="Apple Terminal" ;;
- "Hyper") term="HyperTerm" ;;
- *) term="${TERM_PROGRAM/\.app}" ;;
+ "Hyper") term="HyperTerm" ;;
+ *) term="${TERM_PROGRAM/\.app}" ;;
esac
- # Most likely TosWin2 on FreeMiNT - quick check
- [[ "$TERM" == "tw52" || "$TERM" == "tw100" ]] && term="TosWin2"
- [[ "$SSH_CONNECTION" ]] && term="$SSH_TTY"
- [[ "$WT_SESSION" ]] && term="Windows Terminal"
-
# Check $PPID for terminal emulator.
while [[ -z "$term" ]]; do
- parent="$(get_ppid "$parent")"
- [[ -z "$parent" ]] && break
- name="$(get_process_name "$parent")"
-
- case ${name// } in
- "${SHELL/*\/}"|*"sh"|"screen"|"su"*|"newgrp") ;;
-
- "login"*|*"Login"*|"init"|"(init)")
- term="$(tty)"
- ;;
-
- "ruby"|"1"|"tmux"*|"systemd"|"sshd"*|"python"*|\
- "USER"*"PID"*|"kdeinit"*|"launchd"*|"bwrap")
- break
- ;;
-
- "gnome-terminal-") term="gnome-terminal" ;;
- "urxvtd") term="urxvt" ;;
- *"nvim") term="Neovim Terminal" ;;
- *"NeoVimServer"*) term="VimR Terminal" ;;
-
- *)
- # Fix issues with long process names on Linux.
- [[ $os == Linux ]] && term=$(realpath "/proc/$parent/exe")
-
- term="${name##*/}"
-
- # Fix wrapper names in Nix.
- [[ $term == .*-wrapped ]] && {
- term="${term#.}"
- term="${term%-wrapped}"
- }
- ;;
- esac
+ if [[ "$SSH_CONNECTION" ]]; then
+ term="$SSH_TTY"; break
+ else
+ parent="$(get_ppid "$parent")"
+ [[ -z "$parent" ]] && break
+ name="$(get_process_name "$parent")"
+ case "${name// }" in
+ "${SHELL/*\/}" | *"sh" | "tmux"* | "screen" | "su"*) ;;
+ "login"* | *"Login"* | "init" | "(init)") term="$(tty)" ;;
+ "ruby" | "1" | "systemd" | "sshd"* | "python"* | "USER"*"PID"* | "kdeinit"*)
+ break
+ ;;
+ "gnome-terminal-") term="gnome-terminal" ;;
+ *"nvim") term="Neovim Terminal" ;;
+ *"NeoVimServer"*) term="VimR Terminal" ;;
+ *) term="${name##*/}" ;;
+ esac
+ fi
done
# Log that the function was run.
@@ -3353,27 +1853,18 @@ get_term() {
get_term_font() {
((term_run != 1)) && get_term
- case $term in
+ case "$term" in
"alacritty"*)
- shopt -s nullglob
- confs=({$XDG_CONFIG_HOME,$HOME}/{alacritty,}/{.,}alacritty.ym?)
- shopt -u nullglob
-
- [[ -f "${confs[0]}" ]] || return
-
- term_font="$(awk '/normal:/ {while (!/family:/ || /#/)
- {if (!getline) {exit}} print; exit}' "${confs[0]}")"
+ term_font="$(awk -F ':|#' '/normal:/ {getline; print}' \
+ "${XDG_CONFIG_HOME}/alacritty/alacritty.yml")"
term_font="${term_font/*family:}"
term_font="${term_font/$'\n'*}"
term_font="${term_font/\#*}"
- term_font="${term_font//\"}"
;;
"Apple_Terminal")
- term_font="$(osascript </dev/null ||
+ type -p df >/dev/null 2>&1 ||\
{ err "Disk requires 'df' to function. Install 'df' to get disk info."; return; }
- df_version=$(df --version 2>&1)
-
- case $df_version in
- *IMitv*) df_flags=(-P -g) ;; # AIX
- *befhikm*) df_flags=(-P -k) ;; # IRIX
- *hiklnP*) df_flags=(-h) ;; # OpenBSD
-
- *Tracker*) # Haiku
+ # Get "df" version.
+ df_version="$(df --version 2>&1)"
+ case "$df_version" in
+ *"blocks"*) # Haiku
err "Your version of df cannot be used due to the non-standard flags"
return
;;
-
+ *"IMitv"*) df_flags=(-P -g) ;; # AIX
+ *"befhikm"*) df_flags=(-P -k) ;; # IRIX
*) df_flags=(-P -h) ;;
esac
# Create an array called 'disks' where each element is a separate line from
# df's output. We then unset the first element which removes the column titles.
- IFS=$'\n' read -d "" -ra disks <<< "$(df "${df_flags[@]}" "${disk_show[@]:-/}")"
- unset "disks[0]"
+ IFS=$'\n'
+ case "$os" in
+ "HP-UX") disks=($(bdf "${disk_show[@]:-/}" 2>/dev/null)); df_version="bdf" ;;
+ *) disks=($(df "${df_flags[@]}" "${disk_show[@]:-/}" 2>/dev/null)) ;;
+ esac
+ unset 'disks[0]'
+ IFS="$old_ifs"
# Stop here if 'df' fails to print disk info.
- [[ ${disks[*]} ]] || {
+ if [[ -z "${disks[*]}" ]]; then
err "Disk: df failed to print the disks, make sure the disk_show array is set properly."
return
- }
+ fi
for disk in "${disks[@]}"; do
# Create a second array and make each element split at whitespace this time.
- IFS=" " read -ra disk_info <<< "$disk"
- disk_perc=${disk_info[${#disk_info[@]} - 2]/\%}
+ disk_info=($disk)
+ disk_perc="${disk_info[4]/'%'}"
- case $disk_percent in
- off) disk_perc=
+ case "$df_version" in
+ *"befhikm"*|"bdf")
+ disk="$((disk_info[2]/1024/1024))G / $((disk_info[1]/1024/1024)) (${disk_perc}%)"
+ ;;
+
+ *) disk="${disk_info[2]/i} / ${disk_info[1]/i} (${disk_perc}%)" ;;
esac
- case $df_version in
- *befhikm*)
- disk=$((disk_info[${#disk_info[@]} - 4] / 1024 / 1024))G
- disk+=" / "
- disk+=$((disk_info[${#disk_info[@]} - 5] / 1024/ 1024))G
- disk+=${disk_perc:+ ($disk_perc%)}
- ;;
-
- *)
- disk=${disk_info[${#disk_info[@]} - 4]/i}
- disk+=" / "
- disk+=${disk_info[${#disk_info[@]} - 5]/i}
- disk+=${disk_perc:+ ($disk_perc%)}
+ # Subtitle.
+ case "$disk_subtitle" in
+ "name") disk_sub="${disk_info[0]}" ;;
+ "dir")
+ disk_sub="${disk_info[5]/*\/}"
+ [[ -z "$disk_sub" ]] && disk_sub="${disk_info[5]}"
;;
+ *) disk_sub="${disk_info[5]}" ;;
esac
- case $disk_subtitle in
- name)
- disk_sub=${disk_info[*]::${#disk_info[@]} - 5}
- ;;
-
- dir)
- disk_sub=${disk_info[${#disk_info[@]} - 1]/*\/}
- disk_sub=${disk_sub:-${disk_info[${#disk_info[@]} - 1]}}
- ;;
-
- none) ;;
-
- *)
- disk_sub=${disk_info[${#disk_info[@]} - 1]}
- ;;
- esac
-
- case $disk_display in
- bar) disk="$(bar "$disk_perc" "100")" ;;
- infobar) disk+=" $(bar "$disk_perc" "100")" ;;
- barinfo) disk="$(bar "$disk_perc" "100")${info_color} $disk" ;;
- perc) disk="${disk_perc}% $(bar "$disk_perc" "100")" ;;
+ # Bar.
+ case "$disk_display" in
+ "bar") disk="$(bar "$disk_perc" "100")" ;;
+ "infobar") disk+=" $(bar "$disk_perc" "100")" ;;
+ "barinfo") disk="$(bar "$disk_perc" "100")${info_color} $disk" ;;
+ "perc") disk="${disk_perc}% $(bar "$disk_perc" "100")" ;;
esac
# Append '(disk mount point)' to the subtitle.
- if [[ "$subtitle" ]]; then
- prin "$subtitle${disk_sub:+ ($disk_sub)}" "$disk"
+ if [[ -z "$subtitle" ]]; then
+ prin "${disk_sub}" "$disk"
else
- prin "$disk_sub" "$disk"
+ prin "${subtitle} (${disk_sub})" "$disk"
fi
done
}
get_battery() {
- case $os in
+ case "$os" in
"Linux")
# We use 'prin' here so that we can do multi battery support
# with a single battery per line.
@@ -3771,8 +2140,8 @@ get_battery() {
if [[ "$capacity" ]]; then
battery="${capacity}% [${status}]"
- case $battery_display in
- "bar") battery="$(bar "$capacity" 100)" ;;
+ case "$battery_display" in
+ "bar") battery="$(bar "$capacity" 100)" ;;
"infobar") battery+=" $(bar "$capacity" 100)" ;;
"barinfo") battery="$(bar "$capacity" 100)${info_color} ${battery}" ;;
esac
@@ -3785,7 +2154,7 @@ get_battery() {
;;
"BSD")
- case $kernel_name in
+ case "$kernel_name" in
"FreeBSD"* | "DragonFly"*)
battery="$(acpiconf -i 0 | awk -F ':\t' '/Remaining capacity/ {print $2}')"
battery_state="$(acpiconf -i 0 | awk -F ':\t\t\t' '/State/ {print $2}')"
@@ -3797,26 +2166,19 @@ get_battery() {
;;
"OpenBSD"* | "Bitrig"*)
- battery0full="$(sysctl -n hw.sensors.acpibat0.watthour0\
- hw.sensors.acpibat0.amphour0)"
- battery0full="${battery0full%% *}"
+ battery0full="$(sysctl -n hw.sensors.acpibat0.watthour0)"
+ battery0full="${battery0full/ Wh*}"
- battery0now="$(sysctl -n hw.sensors.acpibat0.watthour3\
- hw.sensors.acpibat0.amphour3)"
- battery0now="${battery0now%% *}"
+ battery0now="$(sysctl -n hw.sensors.acpibat0.watthour3)"
+ battery0now="${battery0now/ Wh*}"
- state="$(sysctl -n hw.sensors.acpibat0.raw0)"
- state="${state##? (battery }"
- state="${state%)*}"
-
- [[ "${state}" == "charging" ]] && battery_state="charging"
[[ "$battery0full" ]] && \
battery="$((100 * ${battery0now/\.} / ${battery0full/\.}))%"
;;
esac
;;
- "Mac OS X"|"macOS")
+ "Mac OS X")
battery="$(pmset -g batt | grep -o '[0-9]*%')"
state="$(pmset -g batt | awk '/;/ {print $4}')"
[[ "$state" == "charging;" ]] && battery_state="charging"
@@ -3825,10 +2187,7 @@ get_battery() {
"Windows")
battery="$(wmic Path Win32_Battery get EstimatedChargeRemaining)"
battery="${battery/EstimatedChargeRemaining}"
- battery="$(trim "$battery")%"
- state="$(wmic /NameSpace:'\\root\WMI' Path BatteryStatus get Charging)"
- state="${state/Charging}"
- [[ "$state" == *TRUE* ]] && battery_state="charging"
+ [[ "$(trim "$battery")" ]] && battery="%"
;;
"Haiku")
@@ -3840,55 +2199,28 @@ get_battery() {
[[ "$battery_state" ]] && battery+=" Charging"
- case $battery_display in
- "bar") battery="$(bar "${battery/\%*}" 100)" ;;
- "infobar") battery="${battery} $(bar "${battery/\%*}" 100)" ;;
- "barinfo") battery="$(bar "${battery/\%*}" 100)${info_color} ${battery}" ;;
+ case "$battery_display" in
+ "bar") battery="$(bar "${battery/'%'*}" 100)" ;;
+ "infobar") battery="${battery} $(bar "${battery/'%'*}" 100)" ;;
+ "barinfo") battery="$(bar "${battery/'%'*}" 100)${info_color} ${battery}" ;;
esac
}
get_local_ip() {
- case $os in
+ case "$os" in
"Linux" | "BSD" | "Solaris" | "AIX" | "IRIX")
- if [[ "${local_ip_interface[0]}" == "auto" ]]; then
- local_ip="$(ip route get 1 | awk -F'src' '{print $2; exit}')"
- local_ip="${local_ip/uid*}"
- [[ "$local_ip" ]] || local_ip="$(ifconfig -a | awk '/broadcast/ {print $2; exit}')"
- else
- for interface in "${local_ip_interface[@]}"; do
- local_ip="$(ip addr show "$interface" 2> /dev/null |
- awk '/inet / {print $2; exit}')"
- local_ip="${local_ip/\/*}"
- [[ "$local_ip" ]] ||
- local_ip="$(ifconfig "$interface" 2> /dev/null |
- awk '/broadcast/ {print $2; exit}')"
- if [[ -n "$local_ip" ]]; then
- prin "$interface" "$local_ip"
- else
- err "Local IP: Could not detect local ip for $interface"
- fi
- done
- fi
+ local_ip="$(ip route get 1 | awk -F'src' '{print $2; exit}')"
+ local_ip="${local_ip/uid*}"
+ [[ -z "$local_ip" ]] && local_ip="$(ifconfig -a | awk '/broadcast/ {print $2; exit}')"
;;
"MINIX")
local_ip="$(ifconfig | awk '{printf $3; exit}')"
;;
- "Mac OS X" | "macOS" | "iPhone OS")
- if [[ "${local_ip_interface[0]}" == "auto" ]]; then
- interface="$(route get 1 | awk -F': ' '/interface/ {printf $2; exit}')"
- local_ip="$(ipconfig getifaddr "$interface")"
- else
- for interface in "${local_ip_interface[@]}"; do
- local_ip="$(ipconfig getifaddr "$interface")"
- if [[ -n "$local_ip" ]]; then
- prin "$interface" "$local_ip"
- else
- err "Local IP: Could not detect local ip for $interface"
- fi
- done
- fi
+ "Mac OS X" | "iPhone OS")
+ local_ip="$(ipconfig getifaddr en0)"
+ [[ -z "$local_ip" ]] && local_ip="$(ipconfig getifaddr en1)"
;;
"Windows")
@@ -3898,28 +2230,23 @@ get_local_ip() {
"Haiku")
local_ip="$(ifconfig | awk -F ': ' '/Bcast/ {print $2}')"
- local_ip="${local_ip/, Bcast}"
+ local_ip="${local_ip/', Bcast'}"
;;
esac
}
get_public_ip() {
- if [[ ! -n "$public_ip_host" ]] && type -p dig >/dev/null; then
+ if type -p dig >/dev/null; then
public_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com)"
[[ "$public_ip" =~ ^\; ]] && unset public_ip
fi
- if [[ ! -n "$public_ip_host" ]] && [[ -z "$public_ip" ]] && type -p drill >/dev/null; then
- public_ip="$(drill myip.opendns.com @resolver1.opendns.com | \
- awk '/^myip\./ && $3 == "IN" {print $5}')"
- fi
-
if [[ -z "$public_ip" ]] && type -p curl >/dev/null; then
- public_ip="$(curl -L --max-time "$public_ip_timeout" -w '\n' "$public_ip_host")"
+ public_ip="$(curl --max-time 10 -w '\n' "$public_ip_host")"
fi
if [[ -z "$public_ip" ]] && type -p wget >/dev/null; then
- public_ip="$(wget -T "$public_ip_timeout" -qO- "$public_ip_host")"
+ public_ip="$(wget -T 10 -qO- "$public_ip_host")"
fi
}
@@ -3928,27 +2255,81 @@ get_users() {
users="${users%\,*}"
}
+get_install_date() {
+ case "$os" in
+ "Linux" | "iPhone OS") install_file="/lost+found" ;;
+ "Mac OS X") install_file="/var/log/install.log" ;;
+ "Solaris") install_file="/var/sadm/system/logs/install_log" ;;
+ "Windows")
+ case "$kernel_name" in
+ "CYGWIN"*) install_file="/cygdrive/c/Windows/explorer.exe" ;;
+ "MSYS"* | "MINGW"*) install_file="/c/Windows/explorer.exe" ;;
+ esac
+ ;;
+ "Haiku") install_file="/boot" ;;
+ "BSD" | "MINIX" | "IRIX")
+ case "$kernel_name" in
+ "FreeBSD") install_file="/etc/hostid" ;;
+ "NetBSD" | "DragonFly"*) install_file="/etc/defaults/rc.conf" ;;
+ *) install_file="/" ;;
+ esac
+ ;;
+ "AIX") install_file="/var/adm/ras/bosinstlog" ;;
+ "HP-UX") install_file="/dev/config" ;;
+ esac
+
+ ls_prog="$(ls --version 2>&1)"
+ case "$ls_prog" in
+ *"BusyBox"*)
+ install_date="$(ls -tdce "$install_file" | awk '{printf $10 " " $7 " " $8 " " $9}')"
+ ;;
+
+ *"crtime"*) # xpg4 (Solaris)
+ install_date="$(ls -tdcE "$install_file" | awk '{printf $6 " " $7}')"
+ ;;
+
+ *"ACFHLRSZ"*) # Toybox
+ install_date="$(ls -dl "$install_file" | awk '{printf $6 " " $7}')"
+ ;;
+
+ *"GNU coreutils"*)
+ install_date="$(ls -tcd --full-time "$install_file" | awk '{printf $6 " " $7}')"
+ ;;
+
+ *"ACFHLNRS"* | *"RadC1xmnlog"* | *"1ARadeCx"*) # AIX ls / IRIX ls / HP-UX ls
+ err "Install Date doesn't work because your 'ls' doesn't support full date/time."
+ return
+ ;;
+
+ *"HLOPRSTUWabc"*) # macOS ls
+ install_date="$(ls -dlctUT "$install_file" | awk '{printf $9 " " $6 " "$7 " " $8}')"
+ ;;
+
+ *)
+ install_date="$(ls -dlctT "$install_file" | awk '{printf $9 " " $6 " " $7 " " $8}')"
+ ;;
+ esac
+
+ install_date="${install_date//-/ }"
+ install_date="${install_date%:*}"
+ install_date=($install_date)
+ install_date="$(convert_time "${install_date[@]}")"
+}
+
get_locale() {
locale="$sys_locale"
}
get_gpu_driver() {
- case $os in
+ case "$os" in
"Linux")
gpu_driver="$(lspci -nnk | awk -F ': ' \
- '/Display|3D|VGA/{nr[NR+2]}; NR in nr {printf $2 ", "; exit}')"
+ '/Display|3D|VGA/{nr[NR+2]}; NR in nr {printf $2 ", "}')"
gpu_driver="${gpu_driver%, }"
-
- if [[ "$gpu_driver" == *"nvidia"* ]]; then
- gpu_driver="$(< /proc/driver/nvidia/version)"
- gpu_driver="${gpu_driver/*Module }"
- gpu_driver="NVIDIA ${gpu_driver/ *}"
- fi
;;
-
- "Mac OS X"|"macOS")
+ "Mac OS X")
if [[ "$(kextstat | grep "GeForceWeb")" != "" ]]; then
- gpu_driver="NVIDIA Web Driver"
+ gpu_driver="Nvidia Web Driver"
else
gpu_driver="macOS Default Graphics Driver"
fi
@@ -3957,24 +2338,20 @@ get_gpu_driver() {
}
get_cols() {
- local blocks blocks2 cols
-
if [[ "$color_blocks" == "on" ]]; then
# Convert the width to space chars.
printf -v block_width "%${block_width}s"
- # Generate the string.
- for ((block_range[0]; block_range[0]<=block_range[1]; block_range[0]++)); do
- case ${block_range[0]} in
- [0-7])
- printf -v blocks '%b\e[3%bm\e[4%bm%b' \
- "$blocks" "${block_range[0]}" "${block_range[0]}" "$block_width"
- ;;
+ # Set variables.
+ start="${block_range[0]}"
+ end="${block_range[1]}"
- *)
- printf -v blocks2 '%b\e[38;5;%bm\e[48;5;%bm%b' \
- "$blocks2" "${block_range[0]}" "${block_range[0]}" "$block_width"
- ;;
+ # Generate the string.
+ for ((start; start<=end; start++)); do
+ case "$start" in
+ [0-6]) blocks+="${reset}\033[3${start}m\033[4${start}m${block_width}" ;;
+ 7) blocks+="${reset}\033[3${start}m\033[4${start}m${block_width}" ;;
+ *) blocks2+="\033[38;5;${start}m\033[48;5;${start}m${block_width}" ;;
esac
done
@@ -3982,21 +2359,17 @@ get_cols() {
printf -v block_spaces "%${block_height}s"
# Convert the spaces into rows of blocks.
- [[ "$blocks" ]] && cols+="${block_spaces// /${blocks}[mnl}"
- [[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}[mnl}"
+ [[ "$blocks" ]] && cols+="${block_spaces// /${blocks}${reset}nl}"
+ [[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}${reset}nl}"
# Add newlines to the string.
- cols=${cols%%nl}
- cols=${cols//nl/
-[${text_padding}C${zws}}
+ cols="${cols%%'nl'}"
+ cols="${cols//nl/\\n\\033[${text_padding}C${zws}}"
# Add block height to info height.
- ((info_height+=block_range[1]>7?block_height+2:block_height+1))
+ info_height="$((info_height+=block_height+2))"
- case $col_offset in
- "auto") printf '\n\e[%bC%b\n' "$text_padding" "${zws}${cols}" ;;
- *) printf '\n\e[%bC%b\n' "$col_offset" "${zws}${cols}" ;;
- esac
+ printf "%b\n" "\033[${text_padding}C${zws}${cols}"
fi
unset -v blocks blocks2 cols
@@ -4008,96 +2381,112 @@ get_cols() {
# IMAGES
image_backend() {
- [[ "$image_backend" != "off" ]] && ! type -p convert &>/dev/null && \
- { image_backend="ascii"; err "Image: Imagemagick not found, falling back to ascii mode."; }
+ if [[ ! "$image_backend" =~ ^(off|ascii)$ ]]; then
+ if ! type -p convert >/dev/null 2>&1; then
+ image_backend="ascii"
+ err "Image: Imagemagick not found, falling back to ascii mode."
+ fi
+ fi
- case ${image_backend:-off} in
- "ascii") print_ascii ;;
+ case "${image_backend:-off}" in
+ "ascii") get_ascii ;;
"off") image_backend="off" ;;
- "caca" | "catimg" | "chafa" | "jp2a" | "iterm2" | "termpix" |\
- "tycat" | "w3m" | "sixel" | "pixterm" | "kitty" | "pot", | "ueberzug" |\
- "viu")
+ "caca" | "catimg" | "jp2a" | "iterm2" | "termpix" | "tycat" | "w3m" | "sixel")
get_image_source
- [[ ! -f "$image" ]] && {
+ if [[ ! -f "$image" ]]; then
to_ascii "Image: '$image_source' doesn't exist, falling back to ascii mode."
return
- }
- [[ "$image_backend" == "ueberzug" ]] && wait=true;
+ fi
- get_window_size
+ get_term_size
- ((term_width < 1)) && {
+ if [[ "$term_width" ]] && ((term_width >= 1)); then
+ clear
+ else
to_ascii "Image: Failed to find terminal window size."
err "Image: Check the 'Images in the terminal' wiki page for more info,"
return
- }
+ fi
- printf '\e[2J\e[H'
get_image_size
make_thumbnail
- display_image || to_off "Image: $image_backend failed to display the image."
+ display_image
;;
*)
err "Image: Unknown image backend specified '$image_backend'."
- err "Image: Valid backends are: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', 'iterm2',
- 'kitty', 'off', 'sixel', 'pot', 'pixterm', 'termpix',
- 'tycat', 'w3m', 'viu')"
+ err "Image: Valid backends are: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2',
+ 'off', 'sixel', 'termpix', 'tycat', 'w3m')"
err "Image: Falling back to ascii mode."
- print_ascii
+ get_ascii
;;
esac
# Set cursor position next image/ascii.
- [[ "$image_backend" != "off" ]] && printf '\e[%sA\e[9999999D' "${lines:-0}"
+ [[ "$image_backend" != "off" ]] && printf "%b" "\033[${lines:-0}A\033[9999999D"
}
-print_ascii() {
- if [[ -f "$image_source" && ! "$image_source" =~ (png|jpg|jpeg|jpe|svg|gif) ]]; then
- ascii_data="$(< "$image_source")"
- elif [[ "$image_source" == "ascii" || $image_source == auto ]]; then
- :
- else
- ascii_data="$image_source"
+get_ascii() {
+ if [[ ! -f "$image_source" ||
+ "$image_source" =~ ^(auto|ascii)$ ||
+ "$image_source" =~ \.(png|jpg|jpe|jpeg|gif)$ ]]; then
+
+ # Fallback to distro ascii mode if custom ascii isn't found.
+ [[ ! "$image_source" =~ ^(auto|ascii)$ ]] && \
+ err "Ascii: Ascii file not found, using distro ascii."
+
+ # Fallback to distro ascii mode if source is an image.
+ [[ "$image_source" =~ \.(png|jpg|jpe|jpeg|gif)$ ]] && \
+ err "Image: Source is image file but ascii backend was selected. Using distro ascii."
+
+ if [[ -d "ASCIIDIR" ]]; then
+ ascii_dir="ASCIIDIR"
+ else
+ [[ -z "$script_dir" ]] && script_dir="$(get_full_path "$0")"
+ ascii_dir="${script_dir%/*}/ascii/distro"
+ fi
+
+ image_source="${ascii_dir}/${ascii_file}"
+
+ # Fallback to no ascii mode if distro ascii isn't found.
+ [[ ! -f "$image_source" ]] && \
+ { to_off "Ascii: Failed to find distro ascii, falling back to no ascii mode."; return; }
fi
# Set locale to get correct padding.
- LC_ALL="$sys_locale"
+ export LC_ALL="$sys_locale"
- # Calculate size of ascii file in line length / line count.
+ # Turn file into variable.
while IFS=$'\n' read -r line; do
- line=${line//\\\\/\\}
- line=${line//█/ }
- ((++lines,${#line}>ascii_len)) && ascii_len="${#line}"
- done <<< "${ascii_data//\$\{??\}}"
+ print+="$line \n"
- # Fallback if file not found.
- ((lines==1)) && {
- lines=
- ascii_len=
- image_source=auto
- get_distro_ascii
- print_ascii
- return
- }
+ # Calculate size of ascii file in line length / line count.
+ line="${line//\$\{??\}}"
+ line="${line//\\\\/\\}"
+ ((${#line} > ascii_length)) && ascii_length="${#line}"
+ ((++lines))
+ done < "$image_source"
# Colors.
- ascii_data="${ascii_data//\$\{c1\}/$c1}"
- ascii_data="${ascii_data//\$\{c2\}/$c2}"
- ascii_data="${ascii_data//\$\{c3\}/$c3}"
- ascii_data="${ascii_data//\$\{c4\}/$c4}"
- ascii_data="${ascii_data//\$\{c5\}/$c5}"
- ascii_data="${ascii_data//\$\{c6\}/$c6}"
+ print="${print//'${c1}'/$c1}"
+ print="${print//'${c2}'/$c2}"
+ print="${print//'${c3}'/$c3}"
+ print="${print//'${c4}'/$c4}"
+ print="${print//'${c5}'/$c5}"
+ print="${print//'${c6}'/$c6}"
- ((text_padding=ascii_len+gap))
- printf '%b\n' "$ascii_data${reset}"
- LC_ALL=C
+ # Overwrite padding if ascii_length_force is set.
+ [[ "$ascii_length_force" ]] && ascii_length="$ascii_length_force"
+
+ text_padding="$((ascii_length + gap))"
+ printf "%b" "$print"
+ export LC_ALL=C
}
get_image_source() {
- case $image_source in
+ case "$image_source" in
"auto" | "wall" | "wallpaper")
get_wallpaper
;;
@@ -4122,25 +2511,25 @@ get_image_source() {
}
get_wallpaper() {
- case $os in
- "Mac OS X"|"macOS")
- image="$(osascript </dev/null && [[ -f "${HOME}/.cache/wal/wal" ]] && \
- { image="$(< "${HOME}/.cache/wal/wal")"; return; }
-
- case $de in
- "MATE"*)
- image="$(gsettings get org.mate.background picture-filename)"
- ;;
-
+ case "$de" in
+ "MATE"*) image="$(gsettings get org.mate.background picture-filename)" ;;
"Xfce"*)
image="$(xfconf-query -c xfce4-desktop -p \
"/backdrop/screen0/monitor0/workspace0/last-image")"
@@ -4167,30 +2550,10 @@ END
image="$(decode_url "$image")"
;;
- "GNOME"*)
- image="$(gsettings get org.gnome.desktop.background picture-uri)"
- image="$(decode_url "$image")"
- ;;
-
- "Plasma"*)
- image=$XDG_CONFIG_HOME/plasma-org.kde.plasma.desktop-appletsrc
- image=$(awk -F '=' '$1 == "Image" { print $2 }' "$image")
- ;;
-
- "LXQt"*)
- image="$XDG_CONFIG_HOME/pcmanfm-qt/lxqt/settings.conf"
- image="$(awk -F '=' '$1 == "Wallpaper" {print $2}' "$image")"
- ;;
-
*)
if type -p feh >/dev/null && [[ -f "${HOME}/.fehbg" ]]; then
image="$(awk -F\' '/feh/ {printf $(NF-1)}' "${HOME}/.fehbg")"
- elif type -p setroot >/dev/null && \
- [[ -f "${XDG_CONFIG_HOME}/setroot/.setroot-restore" ]]; then
- image="$(awk -F\' '/setroot/ {printf $(NF-1)}' \
- "${XDG_CONFIG_HOME}/setroot/.setroot-restore")"
-
elif type -p nitrogen >/dev/null; then
image="$(awk -F'=' '/file/ {printf $2;exit;}' \
"${XDG_CONFIG_HOME}/nitrogen/bg-saved.cfg")"
@@ -4203,7 +2566,7 @@ END
esac
# Strip un-needed info from the path.
- image="${image/file:\/\/}"
+ image="${image/'file://'}"
image="$(trim_quotes "$image")"
;;
esac
@@ -4214,21 +2577,34 @@ END
get_w3m_img_path() {
# Find w3m-img path.
- shopt -s nullglob
- w3m_paths=({/usr/{local/,},~/.nix-profile/}{lib,libexec,lib64,libexec64}/w3m/w3mi*)
- shopt -u nullglob
+ if [[ -x "/usr/lib/w3m/w3mimgdisplay" ]]; then
+ w3m_img_path="/usr/lib/w3m/w3mimgdisplay"
- [[ -x "${w3m_paths[0]}" ]] && \
- { w3m_img_path="${w3m_paths[0]}"; return; }
+ elif [[ -x "/usr/libexec/w3m/w3mimgdisplay" ]]; then
+ w3m_img_path="/usr/libexec/w3m/w3mimgdisplay"
- err "Image: w3m-img wasn't found on your system"
+ elif [[ -x "/usr/lib64/w3m/w3mimgdisplay" ]]; then
+ w3m_img_path="/usr/lib64/w3m/w3mimgdisplay"
+
+ elif [[ -x "/usr/libexec64/w3m/w3mimgdisplay" ]]; then
+ w3m_img_path="/usr/libexec64/w3m/w3mimgdisplay"
+
+ elif [[ -x "/usr/local/libexec/w3m/w3mimgdisplay" ]]; then
+ w3m_img_path="/usr/local/libexec/w3m/w3mimgdisplay"
+
+ elif [[ -x "$HOME/.nix-profile/libexec/w3m/w3mimgdisplay" ]]; then
+ w3m_img_path="$HOME/.nix-profile/libexec/w3m/w3mimgdisplay"
+
+ else
+ err "Image: w3m-img wasn't found on your system"
+ fi
}
-get_window_size() {
+get_term_size() {
# This functions gets the current window size in
# pixels.
#
- # We first try to use the escape sequence "\033[14t"
+ # We first try to use the escape sequence "\044[14t"
# to get the terminal window size in pixels. If this
# fails we then fallback to using "xdotool" or other
# programs.
@@ -4236,28 +2612,22 @@ get_window_size() {
# Tmux has a special way of reading escape sequences
# so we have to use a slightly different sequence to
# get the terminal size.
- if [[ "$image_backend" == "tycat" ]]; then
- printf '%b' '\e}qs\000'
+ if [[ -n "$TMUX" ]]; then
+ printf "%b" "\033Ptmux;\033\033[14t\033\033[c\033\\"
+ read_flags=(-d c)
- elif [[ -z $VTE_VERSION ]]; then
- case ${TMUX:-null} in
- "null") printf '%b' '\e[14t' ;;
- *) printf '%b' '\ePtmux;\e\e[14t\e\\ ' ;;
- esac
+ elif [[ "$image_backend" == "tycat" ]]; then
+ printf "%b" "\033}qs\000"
+
+ else
+ printf "%b" "\033[14t\033[c"
+ read_flags=(-d c)
fi
# The escape codes above print the desired output as
# user input so we have to use read to store the out
# -put as a variable.
- # The 1 second timeout is required for older bash
- #
- # False positive.
- # shellcheck disable=2141
- case $bash_version in
- 4|5) IFS=';t' read -d t -t 0.05 -sra term_size ;;
- *) IFS=';t' read -d t -t 1 -sra term_size ;;
- esac
- unset IFS
+ IFS=";" read -s -t 1 "${read_flags[@]}" -r -a term_size
# Split the string into height/width.
if [[ "$image_backend" == "tycat" ]]; then
@@ -4266,61 +2636,56 @@ get_window_size() {
else
term_height="${term_size[1]}"
- term_width="${term_size[2]}"
+ term_width="${term_size[2]/t*}"
fi
- # Get terminal width/height.
- if (( "${term_width:-0}" < 50 )) && [[ "$DISPLAY" && $os != "Mac OS X" && $os != "macOS" ]]; then
- if type -p xdotool &>/dev/null; then
- IFS=$'\n' read -d "" -ra win \
- <<< "$(xdotool getactivewindow getwindowgeometry --shell %1)"
- term_width="${win[3]/WIDTH=}"
- term_height="${win[4]/HEIGHT=}"
+ # Get terminal width/height if \033[14t is unsupported.
+ if [[ -z "$term_width" ]] || (( "$term_width" < 50 )); then
+ if type -p xdotool >/dev/null 2>&1; then
+ current_window="$(xdotool getactivewindow)"
+ source <(xdotool getwindowgeometry --shell "$current_window")
+ term_height="$HEIGHT"
+ term_width="$WIDTH"
- elif type -p xwininfo &>/dev/null; then
+ elif type -p xwininfo >/dev/null 2>&1; then
# Get the focused window's ID.
- if type -p xdo &>/dev/null; then
- current_window="$(xdo id)"
-
- elif type -p xprop &>/dev/null; then
+ if type -p xdpyinfo >/dev/null 2>&1; then
+ current_window="$(xdpyinfo | grep -E -o "focus:.*0x[0-9a-f]+")"
+ current_window="${current_window/*window }"
+ elif type -p xprop >/dev/null 2>&1; then
current_window="$(xprop -root _NET_ACTIVE_WINDOW)"
current_window="${current_window##* }"
-
- elif type -p xdpyinfo &>/dev/null; then
- current_window="$(xdpyinfo | grep -F "focus:")"
- current_window="${current_window/*window }"
- current_window="${current_window/,*}"
fi
# If the ID was found get the window size.
if [[ "$current_window" ]]; then
- term_size=("$(xwininfo -id "$current_window")")
- term_width="${term_size[0]#*Width: }"
- term_width="${term_width/$'\n'*}"
- term_height="${term_size[0]/*Height: }"
- term_height="${term_height/$'\n'*}"
+ term_size="$(xwininfo -id "$current_window" |\
+ awk -F ': ' '/Width|Height/ {printf $2 " "}')"
+ term_width="${term_size/ *}"
+ term_height="${term_size/${term_width}}"
+ else
+ term_width=0
fi
+ else
+ term_width=0
fi
fi
-
- term_width="${term_width:-0}"
}
+get_image_size() {
+ # This functions determines the size to make
+ # the thumbnail image.
-get_term_size() {
- # Get the terminal size in cells.
- read -r lines columns <<< "$(stty size)"
+ # Get terminal lines and columns.
+ term_blocks="$(stty size)"
+ columns="${term_blocks/* }"
+ lines="${term_blocks/ *}"
# Calculate font size.
font_width="$((term_width / columns))"
font_height="$((term_height / lines))"
-}
-get_image_size() {
- # This functions determines the size to make the thumbnail image.
- get_term_size
-
- case $image_size in
+ case "$image_size" in
"auto")
image_size="$((columns * font_width / 2))"
term_height="$((term_height - term_height / 4))"
@@ -4339,49 +2704,51 @@ get_image_size() {
"none")
# Get image size so that we can do a better crop.
- read -r width height <<< "$(identify -format "%w %h" "$image")"
-
- while ((width >= (term_width / 2) || height >= term_height)); do
- ((width=width/2,height=height/2))
- done
-
+ size="$(identify -format "%w %h" "$image")"
+ width="${size%% *}"
+ height="${size##* }"
crop_mode="none"
;;
- *) image_size="${image_size/px}" ;;
+ *) image_size="${image_size/px}" ;;
esac
- # Check for terminal padding.
- [[ "$image_backend" == "w3m" ]] && term_padding
-
width="${width:-$image_size}"
height="${height:-$image_size}"
- text_padding="$(((width + padding + xoffset) / font_width + gap))"
+
+ text_padding="$((width / font_width + gap + xoffset/font_width))"
}
make_thumbnail() {
# Name the thumbnail using variables so we can
# use it later.
- image_name="${crop_mode}-${crop_offset}-${width}-${height}-${image//\/}"
+ image_name="$crop_mode-$crop_offset-$width-$height-${image//'/'/_}"
# Handle file extensions.
- case ${image##*.} in
+ case "${image##*.}" in
"eps"|"pdf"|"svg"|"gif"|"png")
image_name+=".png" ;;
*) image_name+=".jpg" ;;
esac
# Create the thumbnail dir if it doesn't exist.
- mkdir -p "${thumbnail_dir:=${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch}"
+ mkdir -p "$thumbnail_dir"
- if [[ ! -f "${thumbnail_dir}/${image_name}" ]]; then
+ # Check to see if the thumbnail exists before we do any cropping.
+ if [[ ! -f "$thumbnail_dir/$image_name" ]]; then
# Get image size so that we can do a better crop.
- [[ -z "$size" ]] && {
- read -r og_width og_height <<< "$(identify -format "%w %h" "$image")"
- ((og_height > og_width)) && size="$og_width" || size="$og_height"
- }
+ if [[ -z "$size" ]]; then
+ size="$(identify -format "%w %h" "$image")"
+ og_width="${size%% *}"
+ og_height="${size##* }"
- case $crop_mode in
+ # This checks to see if height is greater than width
+ # so we can do a better crop of portrait images.
+ size="$og_height"
+ ((og_height > og_width)) && size="$og_width"
+ fi
+
+ case "$crop_mode" in
"fit")
c="$(convert "$image" \
-colorspace srgb \
@@ -4393,9 +2760,9 @@ make_thumbnail() {
-trim +repage \
-gravity south \
-background "$c" \
- -extent "${size}x${size}" \
- -scale "${width}x${height}" \
- "${thumbnail_dir}/${image_name}"
+ -extent "$size"x"$size" \
+ -scale "$width"x"$height" \
+ "$thumbnail_dir/$image_name"
;;
"fill")
@@ -4403,159 +2770,218 @@ make_thumbnail() {
-background none \
"$image" \
-trim +repage \
- -scale "${width}x${height}^" \
- -extent "${width}x${height}" \
- "${thumbnail_dir}/${image_name}"
- ;;
-
- "none")
- cp "$image" "${thumbnail_dir}/${image_name}"
+ -scale "$width"x"$height"^ \
+ -extent "$width"x"$height" \
+ "$thumbnail_dir/$image_name"
;;
+ "none") cp "$image" "$thumbnail_dir/$image_name" ;;
*)
convert \
-background none \
"$image" \
- -strip \
-gravity "$crop_offset" \
- -crop "${size}x${size}+0+0" \
- -scale "${width}x${height}" \
- "${thumbnail_dir}/${image_name}"
+ -crop "$size"x"$size"+0+0 \
+ -quality 95 \
+ -scale "$width"x"$height" \
+ "$thumbnail_dir/$image_name"
;;
esac
fi
# The final image.
- image="${thumbnail_dir}/${image_name}"
+ image="$thumbnail_dir/$image_name"
}
display_image() {
- case $image_backend in
+ case "$image_backend" in
"caca")
- img2txt \
- -W "$((width / font_width))" \
- -H "$((height / font_height))" \
- --gamma=0.6 \
- "$image"
- ;;
-
-
- "ueberzug")
- if [ "$wait" = true ];then
- wait=false;
- else
- ueberzug layer --parser bash 0< <(
- declare -Ap ADD=(\
- [action]="add"\
- [identifier]="neofetch"\
- [x]=$xoffset [y]=$yoffset\
- [path]=$image\
- )
- read -rs
- )
- fi
+ img2txt -W "$((width / font_width)))" \
+ -H "$((height / font_height))" \
+ --gamma=0.6 "$image" ||\
+ to_off "Image: libcaca failed to display the image."
;;
"catimg")
- catimg -w "$((width*catimg_size / font_width))" -r "$catimg_size" "$image"
- ;;
-
- "chafa")
- chafa --stretch --size="$((width / font_width))x$((height / font_height))" "$image"
+ catimg -w "$((width * 2 / font_width))" -r 0 "$image" ||\
+ to_off "Image: catimg failed to display the image."
;;
"jp2a")
- jp2a \
- --colors \
- --width="$((width / font_width))" \
- --height="$((height / font_height))" \
- "$image"
- ;;
-
- "kitty")
- kitty +kitten icat \
- --align left \
- --place "$((width/font_width))x$((height/font_height))@${xoffset}x${yoffset}" \
- "$image"
- ;;
-
- "pot")
- pot \
- "$image" \
- --size="$((width / font_width))x$((height / font_height))"
- ;;
-
- "pixterm")
- pixterm \
- -tc "$((width / font_width))" \
- -tr "$((height / font_height))" \
- "$image"
+ jp2a --width="$((width / font_width))" --colors "$image" ||\
+ to_off "Image: jp2a failed to display the image."
;;
"sixel")
- img2sixel \
- -w "$width" \
- -h "$height" \
- "$image"
+ img2sixel -w "$width" "$image" || to_off "Image: libsixel failed to display the image."
;;
"termpix")
- termpix \
- --width "$((width / font_width))" \
- --height "$((height / font_height))" \
- "$image"
+ termpix --width "$((width / font_width))" "$image" ||\
+ to_off "Image: termpix failed to display the image."
;;
"iterm2")
- printf -v iterm_cmd '\e]1337;File=width=%spx;height=%spx;inline=1:%s' \
- "$width" "$height" "$(base64 < "$image")"
+ image="$(base64 < "$image")"
+ iterm_cmd="\033]1337;File=width=${width}px;height=${height}px;inline=1:${image}"
# Tmux requires an additional escape sequence for this to work.
- [[ -n "$TMUX" ]] && printf -v iterm_cmd '\ePtmux;\e%b\e'\\ "$iterm_cmd"
+ [[ -n "$TMUX" ]] && iterm_cmd="\033Ptmux;\033${iterm_cmd}\033\\"
- printf '%b\a\n' "$iterm_cmd"
+ printf "%b\a\n" "$iterm_cmd"
;;
"tycat")
- tycat \
- -g "${width}x${height}" \
- "$image"
- ;;
-
- "viu")
- viu \
- -t -w "$((width / font_width))" -h "$((height / font_height))" \
- "$image"
+ tycat "$image" ||\
+ to_off "Image: tycat failed to display the image."
;;
"w3m")
get_w3m_img_path
- zws='\xE2\x80\x8B\x20'
# Add a tiny delay to fix issues with images not
# appearing in specific terminal emulators.
- ((bash_version>3)) && sleep 0.05
- printf '%b\n%s;\n%s\n' "0;1;$xoffset;$yoffset;$width;$height;;;;;$image" 3 4 |\
- "${w3m_img_path:-false}" -bg "$background_color" &>/dev/null
+ sleep 0.05
+ printf "%b\n" "0;1;$xoffset;$yoffset;$width;$height;;;;;$image\n4;\n3;" |\
+ "${w3m_img_path:-false}" -bg "$background_color" >/dev/null 2>&1 ||\
+ to_off "Image: w3m-img failed to display the image."
+
+ zws="\xE2\x80\x8B\x20"
;;
esac
}
to_ascii() {
+ # Log the error.
err "$1"
+
+ # This function makes neofetch fallback to ascii mode.
image_backend="ascii"
- print_ascii
+
+ # Print the ascii art.
+ get_ascii
# Set cursor position next image/ascii.
- printf '\e[%sA\e[9999999D' "${lines:-0}"
+ printf "%b" "\033[${lines:-0}A\033[9999999D"
}
to_off() {
+ # This function makes neofetch fallback to off mode.
err "$1"
image_backend="off"
text_padding=
}
+# SCREENSHOT
+
+take_scrot() {
+ scrot_program "${scrot_dir}${scrot_name}"
+
+ err "Scrot: Saved screenshot as: ${scrot_dir}${scrot_name}"
+
+ [[ "$scrot_upload" == "on" ]] && scrot_upload
+}
+
+scrot_upload() {
+ if ! type -p curl >/dev/null 2>&1; then
+ printf "%s\n" "[!] Install curl to upload images"
+ return
+ fi
+
+ image_file="${scrot_dir}${scrot_name}"
+
+ # Print a message letting the user know we're uploading
+ # the screenshot.
+ printf "%s\r" "Uploading scrot"
+ sleep .2
+ printf "%s\r" "Uploading scrot."
+ sleep .2
+ printf "%s\r" "Uploading scrot.."
+ sleep .2
+ printf "%s\r" "Uploading scrot..."
+
+ case "$image_host" in
+ "teknik")
+ image_url="$(curl -sf -F file="@${image_file};type=image/png" \
+ "https://api.teknik.io/v1/Upload")"
+ image_url="$(awk -F 'url:|,' '{printf $2}' <<< "${image_url//\"}")"
+ ;;
+
+ "imgur")
+ image_url="$(curl -sH "Authorization: Client-ID 0e8b44d15e9fc95" \
+ -F image="@${image_file}" "https://api.imgur.com/3/upload")"
+ image_url="$(awk -F 'id:|,' '{printf $2}' <<< "${image_url//\"}")"
+ [[ "$image_url" ]] && image_url="https://i.imgur.com/${image_url}.png"
+ ;;
+ esac
+
+ printf "%s\n" "${image_url:-'[!] Image failed to upload'}"
+}
+
+scrot_args() {
+ scrot="on"
+
+ if [[ "$2" =~ \.(png|jpg|jpe|jpeg|gif)$ ]]; then
+ scrot_name="${2##*/}"
+ scrot_dir="${2/$scrot_name}"
+
+ elif [[ -d "$2" ]]; then
+ scrot_dir="$2"
+ else
+ scrot_dir="${PWD:+${PWD}/}"
+ fi
+}
+
+scrot_program() {
+ # Detect screenshot program.
+ #
+ # We first check to see if an X server is running before
+ # falling back to OS specific screenshot tools.
+ if [[ -n "$DISPLAY" ]]; then
+ if [[ "$scrot_cmd" != "auto" ]] && type -p "${scrot_cmd%% *}" >/dev/null; then
+ scrot_program=($scrot_cmd)
+
+ elif type -p maim >/dev/null; then
+ scrot_program=(maim)
+
+ elif type -p scrot >/dev/null; then
+ scrot_program=(scrot)
+
+ elif type -p import >/dev/null && [[ "$os" != "Mac OS X" ]]; then
+ scrot_program=(import -window root)
+
+ elif type -p imlib2_grab >/dev/null; then
+ scrot_program=(imlib2_grab)
+
+ elif type -p gnome-screenshot >/dev/null; then
+ scrot_program=(gnome-screenshot -f)
+
+ else
+ err "Scrot: No screen capture tool found."
+ return
+ fi
+ else
+ case "$os" in
+ "Mac OS X") scrot_program=(screencapture -S) ;;
+ "Haiku") scrot_program=(screenshot -s) ;;
+ esac
+ fi
+
+ # Print a message letting the user know we're taking
+ # a screenshot.
+ printf "%s\r" "Taking scrot"
+ sleep .2
+ printf "%s\r" "Taking scrot."
+ sleep .2
+ printf "%s\r" "Taking scrot.."
+ sleep .2
+ printf "%s\r" "Taking scrot..."
+
+ # Take the scrot.
+ "${scrot_program[@]}" "$1"
+
+ err "Scrot: Screen captured using ${scrot_program[0]}"
+}
# TEXT FORMATTING
@@ -4573,11 +2999,7 @@ info() {
[[ "$prin" ]] && return
# Update the variable.
- if [[ "$2" ]]; then
- output="$(trim "${!2}")"
- else
- output="$(trim "${!1}")"
- fi
+ output="$(trim "${!2:-${!1}}")"
if [[ "$2" && "${output// }" ]]; then
prin "$1" "$output"
@@ -4595,24 +3017,25 @@ info() {
prin() {
# If $2 doesn't exist we format $1 as info.
if [[ "$(trim "$1")" && "$2" ]]; then
- [[ "$json" ]] && { printf ' %s\n' "\"${1}\": \"${2}\","; return; }
-
string="${1}${2:+: $2}"
else
string="${2:-$1}"
local subtitle_color="$info_color"
fi
+ string="$(trim "${string//$'\033[0m'}")"
- string="$(trim "${string//$'\e[0m'}")"
- length="$(strip_sequences "$string")"
- length="${#length}"
+ # Log length if it doesn't exist.
+ if [[ -z "$length" ]]; then
+ length="$(strip_sequences "$string")"
+ length="${#length}"
+ fi
# Format the output.
- string="${string/:/${reset}${colon_color}${separator:=:}${info_color}}"
+ string="${string/:/${reset}${colon_color}:${info_color}}"
string="${subtitle_color}${bold}${string}"
# Print the info.
- printf '%b\n' "${text_padding:+\e[${text_padding}C}${zws}${string//\\n}${reset} "
+ printf "%b\n" "${text_padding:+\033[${text_padding}C}${zws}${string}${reset}"
# Calculate info height.
((++info_height))
@@ -4622,34 +3045,53 @@ prin() {
}
get_underline() {
- [[ "$underline_enabled" == "on" ]] && {
+ if [[ "$underline_enabled" == "on" ]]; then
printf -v underline "%${length}s"
- printf '%b%b\n' "${text_padding:+\e[${text_padding}C}${zws}${underline_color}" \
- "${underline// /$underline_char}${reset} "
- }
+ printf "%b%b\n" "${text_padding:+\033[${text_padding}C}${zws}${underline_color}" \
+ "${underline// /$underline_char}${reset}"
+ unset -v length
+ fi
+ prin=1
+}
+get_line_break() {
+ # Print it directly.
+ printf "%b\n" "${zws}"
+
+ # Calculate info height.
((++info_height))
- length=
+ line_breaks+="\n"
+
+ # Tell info() that we printed manually.
prin=1
}
get_bold() {
- case $ascii_bold in
- "on") ascii_bold='\e[1m' ;;
+ case "$ascii_bold" in
+ "on") ascii_bold="\033[1m" ;;
"off") ascii_bold="" ;;
esac
- case $bold in
- "on") bold='\e[1m' ;;
+ case "$bold" in
+ "on") bold="\033[1m" ;;
"off") bold="" ;;
esac
}
trim() {
+ # When a string is passed to "echo" all trailing and leading
+ # whitespace is removed and inside the string multiple spaces are
+ # condensed into single spaces.
+ #
+ # The "set -f/+f" is here so that "echo" doesn't cause any expansion
+ # of special characters.
+ #
+ # The whitespace trim doesn't work with multiline strings so we use
+ # "${1//[[:space:]]/ }" to remove newlines before we trim the whitespace.
+
set -f
- # shellcheck disable=2048,2086
- set -- $*
- printf '%s\n' "${*//[[:space:]]/}"
+ # shellcheck disable=2086
+ builtin echo -E ${1//[[:space:]]/ }
set +f
}
@@ -4660,18 +3102,751 @@ trim_quotes() {
}
strip_sequences() {
- strip="${1//$'\e['3[0-9]m}"
- strip="${strip//$'\e['[0-9]m}"
- strip="${strip//\\e\[[0-9]m}"
- strip="${strip//$'\e['38\;5\;[0-9]m}"
- strip="${strip//$'\e['38\;5\;[0-9][0-9]m}"
- strip="${strip//$'\e['38\;5\;[0-9][0-9][0-9]m}"
+ strip="${1//$'\033['3[0-9]m}"
+ strip="${strip//$'\033['38\;5\;[0-9]m}"
+ strip="${strip//$'\033['38\;5\;[0-9][0-9]m}"
+ strip="${strip//$'\033['38\;5\;[0-9][0-9][0-9]m}"
- printf '%s\n' "$strip"
+ printf "%s\n" "$strip"
+}
+
+uppercase() {
+ ((bash_version >= 4)) && printf "%s" "${1^}"
}
# COLORS
+get_distro_colors() {
+ # This function sets the text colors according
+ # to your OS/Distro's logo colors.
+ #
+ # $ascii_distro is the same as $distro.
+ case "$ascii_distro" in
+ "AIX"*)
+ set_colors 2 7
+ ascii_file="aix"
+ ;;
+
+ "alpine_small")
+ set_colors 4 7
+ ascii_file="alpine_small"
+ ;;
+
+ "Alpine"*)
+ set_colors 4 5 7 6
+ ascii_file="alpine"
+ ;;
+
+ "Amazon"*)
+ set_colors 3 7
+ ascii_file="amazon"
+ ;;
+
+ "Android"*)
+ set_colors 2 7
+ ascii_file="android"
+ ascii_length_force=19
+ ;;
+
+ "Antergos"*)
+ set_colors 4 6
+ ascii_file="antergos"
+ ;;
+
+ "antiX"*)
+ set_colors 1 7 3
+ ascii_file="antix"
+ ;;
+
+ "AOSC"*)
+ set_colors 4 7 1
+ ascii_file="aosc"
+ ;;
+
+ "Apricity"*)
+ set_colors 4 7 1
+ ascii_file="apricity"
+ ;;
+
+ "arch_small")
+ set_colors 6 7 1
+ ascii_file="arch_small"
+ ;;
+
+ "arch_old")
+ set_colors 6 7 1
+ ascii_file="arch_old"
+ ;;
+
+ "ArchBox"*)
+ set_colors 2 7 1
+ ascii_file="archbox"
+ ;;
+
+ "ARCHlabs"*)
+ set_colors 6 6 7 1
+ ascii_file="archlabs"
+ ;;
+
+ *"XFerience"*)
+ set_colors 6 6 7 1
+ ascii_file="arch_xferience"
+ ;;
+
+ "Arch"*)
+ set_colors 6 6 7 1
+ ascii_file="arch"
+ ;;
+
+ "Artix"*)
+ set_colors 6 4 2 7
+ ascii_file="artix"
+ ;;
+
+ "Arya"*)
+ set_colors 2 1
+ ascii_file="arya"
+ ;;
+
+ "Bitrig"*)
+ set_colors 2 7
+ ascii_file="bitrig"
+ ;;
+
+ "BLAG"*)
+ set_colors 5 7
+ ascii_file="blag"
+ ;;
+
+ "BlankOn"*)
+ set_colors 1 7 3
+ ascii_file="blankon"
+ ;;
+
+ "BSD")
+ set_colors 1 7 4 3 6
+ ascii_file="bsd"
+ ;;
+
+ "BunsenLabs"*)
+ set_colors fg 7
+ ascii_file="bunsenlabs"
+ ;;
+
+ "CentOS"*)
+ set_colors 3 2 4 5 7
+ ascii_file="centos"
+ ;;
+
+ "Chakra"*)
+ set_colors 4 5 7 6
+ ascii_file="chakra"
+ ;;
+
+ "ChaletOS"*)
+ set_colors 4 7 1
+ ascii_file="chaletos"
+ ;;
+
+ "Chapeau"*)
+ set_colors 2 7
+ ascii_file="chapeau"
+ ;;
+
+ "Chrom"*)
+ set_colors 2 1 3 4 7
+ ascii_file="chrome"
+ ;;
+
+ "Clover"*)
+ set_colors 2 6
+ ascii_file="cloveros"
+ ;;
+
+ "Container Linux by CoreOS"*)
+ set_colors 4 7 1
+ ascii_file="coreos"
+ ;;
+
+ "crux_small")
+ set_colors 4 5 7 6
+ ascii_file="crux_small"
+ ;;
+
+ "CRUX"*)
+ set_colors 4 5 7 6
+ ascii_file="crux"
+ ;;
+
+ "debian_small")
+ set_colors 1 7 3
+ ascii_file="debian_small"
+ ;;
+
+ "Debian"*)
+ set_colors 1 7 3
+ ascii_file="debian"
+ ;;
+
+ "Deepin"*)
+ set_colors 2 7
+ ascii_file="deepin"
+ ;;
+
+ "DesaOS")
+ set_colors 2 7
+ ascii_file="desaos"
+ ;;
+
+ "Devuan"*)
+ set_colors 5 7
+ ascii_file="devuan"
+ ;;
+
+ "DracOS"*)
+ set_colors 1 7 3
+ ascii_file="dracos"
+ ;;
+
+ "DragonFly"*)
+ set_colors 1 7 3
+ ascii_file="dragonflybsd"
+ ;;
+
+ "Elementary"*)
+ set_colors 4 7 1
+ ascii_file="elementary"
+ ;;
+
+ "Endless"*)
+ set_colors 1 7
+ ascii_file="endless"
+ ;;
+
+ "Exherbo"*)
+ set_colors 4 7 1
+ ascii_file="exherbo"
+ ;;
+
+ "Fedora"* | "RFRemix"*)
+ set_colors 4 7 1
+ ascii_file="fedora"
+ ;;
+
+ "freebsd_small")
+ set_colors 1 7 3
+ ascii_file="freebsd_small"
+ ;;
+
+ "FreeBSD"*)
+ set_colors 1 7 3
+ ascii_file="freebsd"
+ ;;
+
+ "Frugalware"*)
+ set_colors 4 7 1
+ ascii_file="frugalware"
+ ;;
+
+ "Funtoo"*)
+ set_colors 5 7
+ ascii_file="funtoo"
+ ;;
+
+ "GalliumOS"*)
+ set_colors 4 7 1
+ ascii_file="galliumos"
+ ;;
+
+ "gentoo_small")
+ set_colors 5 7
+ ascii_file="gentoo_small"
+ ;;
+
+ "Gentoo"*)
+ set_colors 5 7
+ ascii_file="gentoo"
+ ;;
+
+ "gNewSense"*)
+ set_colors 4 5 7 6
+ ascii_file="gnewsense"
+ ;;
+
+ "GNU")
+ set_colors fg 7
+ ascii_file="gnu"
+ ;;
+
+ "GoboLinux"*)
+ set_colors 5 4 6 2
+ ascii_file="gobolinux"
+ ;;
+
+ "Grombyang"*)
+ set_colors 4 2 1
+ ascii_file="grombyang"
+ ;;
+
+ "GuixSD"*)
+ set_colors 3 7 6 1 8
+ ascii_file="guixsd"
+ ;;
+
+ "Haiku"*)
+ set_colors 2 8
+ ascii_file="haiku"
+ ;;
+
+ "Kali"*)
+ set_colors 4 8
+ ascii_file="kali"
+ ;;
+
+ "KaOS"*)
+ set_colors 4 7 1
+ ascii_file="kaos"
+ ;;
+
+ "KDE"*)
+ set_colors 2 7
+ ascii_file="kde"
+ ;;
+
+ "Kogaion"*)
+ set_colors 4 7 1
+ ascii_file="kogaion"
+ ;;
+
+ "Korora"*)
+ set_colors 4 7 1
+ ascii_file="korora"
+ ;;
+
+ "KSLinux"*)
+ set_colors 4 7 1
+ ascii_file="kslinux"
+ ;;
+
+ "Kubuntu"*)
+ set_colors 4 7 1
+ ascii_file="kubuntu"
+ ;;
+
+ "Linux")
+ set_colors fg 8 3
+ ascii_file="linux"
+ ;;
+
+ "LMDE"*)
+ set_colors 2 7
+ ascii_file="lmde"
+ ;;
+
+ "Lubuntu"*)
+ set_colors 4 7 1
+ ascii_file="lubuntu"
+ ;;
+
+ "Lunar"*)
+ set_colors 4 7 3
+ ascii_file="lunar"
+ ;;
+
+ "mac"*"_small")
+ set_colors 2 3 1 5 4
+ ascii_file="mac_small"
+ ;;
+
+ "mac" | "Darwin")
+ set_colors 2 3 1 1 5 4
+ ascii_file="mac"
+ ;;
+
+ "Mageia"*)
+ set_colors 6 7
+ ascii_file="mageia"
+ ;;
+
+ "Manjaro"*)
+ set_colors 2 7
+ ascii_file="manjaro"
+ ;;
+
+ "Maui"*)
+ set_colors 6 7
+ ascii_file="maui"
+ ;;
+
+ "Mer"*)
+ set_colors 4 7 1
+ ascii_file="mer"
+ ;;
+
+ "Minix"*)
+ set_colors 1 7 3
+ ascii_file="minix"
+ ;;
+
+ "Linux Mint"* | "LinuxMint"*)
+ set_colors 2 7
+ ascii_file="mint"
+ ;;
+
+ "MX"*)
+ set_colors 4 6 7
+ ascii_file="mx"
+ ;;
+
+ "NetBSD"*)
+ set_colors 5 7
+ ascii_file="netbsd"
+ ;;
+
+ "Netrunner"*)
+ set_colors 4 7 1
+ ascii_file="netrunner"
+ ;;
+
+ "Nitrux"*)
+ set_colors 4
+ ascii_file="nitrux"
+ ;;
+
+ "nixos_small")
+ set_colors 4 6
+ ascii_file="nixos_small"
+ ;;
+
+ "NixOS"*)
+ set_colors 4 6
+ ascii_file="nixos"
+ ;;
+
+ "Nurunner"*)
+ set_colors 4
+ ascii_file="nurunner"
+ ;;
+
+ "OBRevenge"*)
+ set_colors 1 7 3
+ ascii_file="obrevenge"
+ ;;
+
+ "openbsd_small")
+ set_colors 3 7 6 1 8
+ ascii_file="openbsd_small"
+ ;;
+
+ "OpenBSD"*)
+ set_colors 3 7 6 1 8
+ ascii_file="openbsd"
+ ;;
+
+ "OpenIndiana"*)
+ set_colors 4 7 1
+ ascii_file="openindiana"
+ ;;
+
+ "OpenMandriva"*)
+ set_colors 4 3
+ ascii_file="openmandriva"
+ ;;
+
+ "OpenWrt"*)
+ set_colors 4 7 1
+ ascii_file="openwrt"
+ ;;
+
+ "Open Source Media Center"* | "osmc")
+ set_colors 4 7 1
+ ascii_file="osmc"
+ ;;
+
+ "Oracle"*)
+ set_colors 1 7 3
+ ascii_file="oracle"
+ ;;
+
+ "PacBSD"*)
+ set_colors 1 7 3
+ ascii_file="pacbsd"
+ ;;
+
+ "Parabola"*)
+ set_colors 5 7
+ ascii_file="parabola"
+ ;;
+
+ "Pardus"*)
+ set_colors 3 7 6 1 8
+ ascii_file="pardus"
+ ;;
+
+ "Parrot"*)
+ set_colors 6 7
+ ascii_file="parrot"
+ ;;
+
+ "Parsix"*)
+ set_colors 3 1 7 8
+ ascii_file="parsix"
+ ;;
+
+ "PCBSD"* | "TrueOS"*)
+ set_colors 1 7 3
+ ascii_file="trueos"
+ ;;
+
+ "PCLinuxOS"*)
+ set_colors 4 7 1
+ ascii_file="pclinuxos"
+ ;;
+
+ "Peppermint"*)
+ set_colors 1 7 3
+ ascii_file="peppermint"
+ ;;
+
+ "Pop!_OS"*)
+ set_colors 6 7
+ ascii_file="pop_os"
+ ;;
+
+ "Porteus"*)
+ set_colors 6 7
+ ascii_file="porteus"
+ ;;
+
+ "Puppy"* | "Quirky Werewolf"* | "Precise Puppy"*)
+ set_colors 4 7
+ ascii_file="puppy"
+ ;;
+
+ "Qubes"*)
+ set_colors 4 5 7 6
+ ascii_file="qubes"
+ ;;
+
+ "Raspbian"*)
+ set_colors 2 1
+ ascii_file="raspbian"
+ ;;
+
+ "Red Star"* | "Redstar"*)
+ set_colors 1 7 3
+ ascii_file="redstar"
+ ;;
+
+ "Redhat"* | "Red Hat"* | "rhel"*)
+ set_colors 1 7 3
+ ascii_file="redhat"
+ ;;
+
+ "Refracted Devuan"*)
+ set_colors 8 7
+ ascii_file="refracta"
+ ;;
+
+ "Rosa"*)
+ set_colors 4 7 1
+ ascii_file="rosa"
+ ;;
+
+ "sabotage"*)
+ set_colors 4 7 1
+ ascii_file="sabotage"
+ ;;
+
+ "Sabayon"*)
+ set_colors 4 7 1
+ ascii_file="sabayon"
+ ;;
+
+ "SailfishOS"*)
+ set_colors 4 5 7 6
+ ascii_file="sailfishos"
+ ;;
+
+ "SalentOS"*)
+ set_colors 2 1 3 7
+ ascii_file="salentos"
+ ;;
+
+ "Scientific"*)
+ set_colors 4 7 1
+ ascii_file="scientific"
+ ;;
+
+ "Siduction"*)
+ set_colors 4 4
+ ascii_file="siduction"
+ ;;
+
+ "Slackware"*)
+ set_colors 4 7 1
+ ascii_file="slackware"
+ ;;
+
+ "SliTaz"*)
+ set_colors 3 3
+ ascii_file="slitaz"
+ ;;
+
+ "SmartOS"*)
+ set_colors 6 7
+ ascii_file="smartos"
+ ;;
+
+ "Solus"*)
+ set_colors 4 7 1
+ ascii_file="solus"
+ ;;
+
+ "Source Mage"*)
+ set_colors 4 7 1
+ ascii_file="source_mage"
+ ;;
+
+ "Sparky"*)
+ set_colors 1 7
+ ascii_file="sparky"
+ ;;
+
+ "SteamOS"*)
+ set_colors 5 7
+ ascii_file="steamos"
+ ;;
+
+ "SunOS" | "Solaris")
+ set_colors 3 7
+ ascii_file="solaris"
+ ;;
+
+ "openSUSE"* | "open SUSE"* | "SUSE"*)
+ set_colors 2 7
+ ascii_file="suse"
+ ;;
+
+ "SwagArch"*)
+ set_colors 4 7 1
+ ascii_file="swagarch"
+ ;;
+
+ "Tails"*)
+ set_colors 5 7
+ ascii_file="tails"
+ ;;
+
+ "Trisquel"*)
+ set_colors 4 6
+ ascii_file="trisquel"
+ ;;
+
+ "Ubuntu-Budgie"*)
+ set_colors 4 7 1
+ ascii_file="ubuntu-budgie"
+ ;;
+
+ "Ubuntu-GNOME"*)
+ set_colors 4 5 7 6
+ ascii_file="ubuntu-gnome"
+ ;;
+
+ "Ubuntu-MATE"*)
+ set_colors 2 7
+ ascii_file="ubuntu-mate"
+ ;;
+
+ "ubuntu_old")
+ set_colors 1 7 3
+ ascii_file="ubuntu_old"
+ ;;
+
+ "Ubuntu-Studio")
+ set_colors 6 7
+ ascii_file="ubuntu-studio"
+ ;;
+
+ "Ubuntu"*)
+ set_colors 1 7 3
+ ascii_file="ubuntu"
+ ;;
+
+ "void_small")
+ set_colors 2 8
+ ascii_file="void_small"
+ ;;
+
+ "Void"*)
+ set_colors 2 8
+ ascii_file="void"
+ ;;
+
+ *"[Windows 10]"* | *"on Windows 10"* | "Windows 8"* |\
+ "Windows 10"* | "windows10" | "windows8" )
+ set_colors 6 7
+ ascii_file="windows10"
+ ;;
+
+ "Windows"*)
+ set_colors 1 2 4 3
+ ascii_file="windows"
+ ;;
+
+ "Xubuntu"*)
+ set_colors 4 7 1
+ ascii_file="xubuntu"
+ ;;
+
+ "Zorin"*)
+ set_colors 4 6
+ ascii_file="zorin"
+ ;;
+
+ *)
+ case "$kernel_name" in
+ *"BSD")
+ set_colors 1 7 4 3 6
+ ascii_file="bsd"
+ ;;
+
+ "Darwin")
+ set_colors 2 3 1 1 5 4
+ ascii_file="mac"
+ ;;
+
+ "GNU"*)
+ set_colors fg 7
+ ascii_file="gnu"
+ ;;
+
+ "Linux")
+ set_colors fg 8 3
+ ascii_file="linux"
+ ;;
+
+ "SunOS")
+ set_colors 3 7
+ ascii_file="solaris"
+ ;;
+
+ "IRIX"*)
+ set_colors 4 7
+ ascii_file="irix"
+ ;;
+ esac
+ ;;
+ esac
+
+ # Overwrite distro colors if '$ascii_colors' doesn't
+ # equal 'distro'.
+ if [[ "${ascii_colors[0]}" != "distro" ]]; then
+ color_text="off"
+ set_colors "${ascii_colors[@]}"
+ fi
+}
+
set_colors() {
c1="$(color "$1")${ascii_bold}"
c2="$(color "$2")${ascii_bold}"
@@ -4715,18 +3890,18 @@ set_text_colors() {
bar_color_elapsed="$(color "$bar_color_elapsed")"
fi
- case ${bar_color_total}${1} in
- distro[736]) bar_color_total=$(color "$1") ;;
- distro[0-9]) bar_color_total=$(color "$2") ;;
- *) bar_color_total=$(color "$bar_color_total") ;;
+ case "$bar_color_total $1" in
+ "distro "[736]) bar_color_total="$(color "$1")" ;;
+ "distro "[0-9]) bar_color_total="$(color "$2")" ;;
+ *) bar_color_total="$(color "$bar_color_total")" ;;
esac
}
color() {
- case $1 in
- [0-6]) printf '%b\e[3%sm' "$reset" "$1" ;;
- 7 | "fg") printf '\e[37m%b' "$reset" ;;
- *) printf '\e[38;5;%bm' "$1" ;;
+ case "$1" in
+ [0-6]) printf "%b" "${reset}\033[3${1}m" ;;
+ 7 | "fg") printf "%b" "\033[37m${reset}" ;;
+ *) printf "%b" "\033[38;5;${1}m" ;;
esac
}
@@ -4734,14 +3909,22 @@ color() {
stdout() {
image_backend="off"
- unset subtitle_color colon_color info_color underline_color bold title_color at_color \
- text_padding zws reset color_blocks bar_color_elapsed bar_color_total \
- c1 c2 c3 c4 c5 c6 c7 c8
+ unset subtitle_color
+ unset colon_color
+ unset info_color
+ unset underline_color
+ unset bold
+ unset title_color
+ unset at_color
+ unset text_padding
+ unset zws
+ unset reset
+ unset color_blocks
+ unset get_line_break
}
err() {
- err+="$(color 1)[!]${reset} $1
-"
+ err+="$(color 1)[!]\033[0m $1\n"
}
get_full_path() {
@@ -4749,13 +3932,13 @@ get_full_path() {
# For example "Pictures/Wallpapers" --> "/home/dylan/Pictures/Wallpapers"
# If the file exists in the current directory, stop here.
- [[ -f "${PWD}/${1}" ]] && { printf '%s\n' "${PWD}/${1}"; return; }
+ [[ -f "${PWD}/${1/*\/}" ]] && { printf "%s\n" "${PWD}/${1/*\/}"; return; }
- ! cd "${1%/*}" && {
+ if ! cd "${1%/*}"; then
err "Error: Directory '${1%/*}' doesn't exist or is inaccessible"
err " Check that the directory exists or try another directory."
exit 1
- }
+ fi
local full_dir="${1##*/}"
@@ -4769,31 +3952,57 @@ get_full_path() {
# Final directory.
full_dir="$(pwd -P)/${1/*\/}"
- [[ -e "$full_dir" ]] && printf '%s\n' "$full_dir"
+ [[ -e "$full_dir" ]] && printf "%s\n" "$full_dir"
+}
+
+get_default_config() {
+ if [[ -f "CONFDIR/config.conf" ]]; then
+ default_config="CONFDIR/config.conf"
+
+ else
+ [[ -z "$script_dir" ]] && script_dir="$(get_full_path "$0")"
+ default_config="${script_dir%/*}/config/config.conf"
+ fi
+
+ if source "$default_config"; then
+ err "Config: Sourced default config. (${default_config})"
+ else
+ err "Config: Default config not found, continuing..."
+ fi
}
get_user_config() {
- # --config /path/to/config.conf
+ # Check $config_file.
if [[ -f "$config_file" ]]; then
source "$config_file"
- err "Config: Sourced user config. (${config_file})"
+ err "Config: Sourced user config. (${config_file})"
+ old_options
return
+ fi
+ mkdir -p "${XDG_CONFIG_HOME}/neofetch/"
+
+ # Check ${XDG_CONFIG_HOME}/neofetch and create the
+ # dir/files if they don't exist.
+ if [[ -f "${XDG_CONFIG_HOME}/neofetch/config" ]]; then
+ config_file="${XDG_CONFIG_HOME}/neofetch/config"
elif [[ -f "${XDG_CONFIG_HOME}/neofetch/config.conf" ]]; then
- source "${XDG_CONFIG_HOME}/neofetch/config.conf"
- err "Config: Sourced user config. (${XDG_CONFIG_HOME}/neofetch/config.conf)"
-
- elif [[ -f "${XDG_CONFIG_HOME}/neofetch/config" ]]; then
- source "${XDG_CONFIG_HOME}/neofetch/config"
- err "Config: Sourced user config. (${XDG_CONFIG_HOME}/neofetch/config)"
-
- elif [[ -z "$no_config" ]]; then
config_file="${XDG_CONFIG_HOME}/neofetch/config.conf"
- # The config file doesn't exist, create it.
- mkdir -p "${XDG_CONFIG_HOME}/neofetch/"
- printf '%s\n' "$config" > "$config_file"
+ elif [[ -f "CONFDIR/config.conf" ]]; then
+ cp "CONFDIR/config.conf" "${XDG_CONFIG_HOME}/neofetch"
+ config_file="${XDG_CONFIG_HOME}/neofetch/config.conf"
+
+ else
+ [[ -z "$script_dir" ]] && script_dir="$(get_full_path "$0")"
+
+ cp "${script_dir%/*}/config/config.conf" "${XDG_CONFIG_HOME}/neofetch"
+ config_file="${XDG_CONFIG_HOME}/neofetch/config.conf"
fi
+
+ source "$config_file"
+ err "Config: Sourced user config. (${config_file})"
+ old_options
}
bar() {
@@ -4823,9 +4032,9 @@ cache() {
}
get_cache_dir() {
- case $os in
- "Mac OS X"|"macOS") cache_dir="/Library/Caches" ;;
- *) cache_dir="/tmp" ;;
+ case "$os" in
+ "Mac OS X") cache_dir="/Library/Caches" ;;
+ *) cache_dir="/tmp" ;;
esac
}
@@ -4835,13 +4044,13 @@ kde_config_dir() {
if [[ "$kde_config_dir" ]]; then
return
- elif type -p kf5-config &>/dev/null; then
+ elif type -p kf5-config >/dev/null 2>&1; then
kde_config_dir="$(kf5-config --path config)"
- elif type -p kde4-config &>/dev/null; then
+ elif type -p kde4-config >/dev/null 2>&1; then
kde_config_dir="$(kde4-config --path config)"
- elif type -p kde-config &>/dev/null; then
+ elif type -p kde-config >/dev/null 2>&1; then
kde_config_dir="$(kde-config --path config)"
elif [[ -d "${HOME}/.kde4" ]]; then
@@ -4854,70 +4063,212 @@ kde_config_dir() {
kde_config_dir="${kde_config_dir/$'/:'*}"
}
-term_padding() {
- # Get terminal padding to properly align cursor.
- [[ -z "$term" ]] && get_term
+get_term_padding() {
+ # Terminal info.
+ #
+ # Parse terminal config files to get
+ # info about padding. Due to how w3m-img
+ # works padding around the terminal throws
+ # off the cursor placement calculation in
+ # specific terminals.
+ #
+ # Note: This issue only seems to affect
+ # URxvt.
+ ((term_run != 1)) && get_term
- case $term in
- urxvt*|rxvt-unicode)
- [[ $xrdb ]] || xrdb=$(xrdb -query)
-
- [[ $xrdb != *internalBorder:* ]] &&
- return
-
- padding=${xrdb/*internalBorder:}
- padding=${padding/$'\n'*}
-
- [[ $padding =~ ^[0-9]+$ ]] ||
- padding=
+ case "$term" in
+ "URxvt"*)
+ border="$(xrdb -query | awk -F ':' '/^(URxvt|\*).internalBorder/ {printf $2; exit}')"
;;
esac
}
dynamic_prompt() {
- [[ "$image_backend" == "off" ]] && { printf '\n'; return; }
- [[ "$image_backend" != "ascii" ]] && ((lines=(height + yoffset) / font_height + 1))
- [[ "$image_backend" == "w3m" ]] && ((lines=lines + padding / font_height + 1))
+ case "$image_backend" in
+ "ascii") printf "\n" ;;
+ "off") return ;;
+ *)
+ get_term_padding
+ lines="$(((border + height + yoffset) / font_height))"
+ image_prompt="on"
+ ;;
+ esac
- # If the ascii art is taller than the info.
- ((lines=lines>info_height?lines-info_height+1:1))
+ # If the info is higher than the ascii/image place the prompt
+ # based on the info height instead of the ascii/image height.
+ if ((lines < info_height)); then
+ [[ "$image_prompt" ]] && printf "\n"
+ return
+ else
+ [[ "$image_prompt" ]] && printf "%b\n" "$line_breaks"
+ lines="$((lines - info_height))"
+ fi
- printf -v nlines "%${lines}s"
- printf "%b" "${nlines// /\\n}"
+ # Set the prompt location.
+ ((lines > 0)) && printf "%b" "\033[${lines}B"
+}
+
+old_functions() {
+ # Deprecated functions.
+ # Neofetch 2.0 changed the names of a few variables.
+ # This function adds backwards compatibility for the
+ # old variable names.
+ if type printinfo >/dev/null 2>&1; then
+ print_info() { printinfo ; }
+ get_wmtheme() { get_wm_theme; wmtheme="$wm_theme"; }
+ get_termfont() { get_term_font; termfont="$term_font"; }
+ get_localip() { get_local_ip; localip="$local_ip"; }
+ get_publicip() { get_public_ip; publicip="$public_ip"; }
+ get_linebreak() { get_line_break; linebreak="$line_break"; }
+ fi
+
+ get_birthday() { get_install_date; birthday="$install_date"; }
+}
+
+old_options() {
+ [[ -n "$osx_buildversion" ]] && \
+ err "Config: \$osx_buildversion is deprecated, use \$distro_shorthand instead."
+ [[ -n "$osx_codename" ]] && \
+ err "Config: \$osx_codename is deprecated, use \$distro_shorthand instead."
+ [[ "$cpu_cores" == "on" ]] && \
+ err "Config: cpu_cores='on' is deprecated, use cpu_cores='logical|physical|off' instead."
+ [[ -n "$image" ]] && \
+ { err "Config: \$image is deprecated, use \$image_source instead."; image_source="$image"; }
+
+ # All progress_ variables were changed to bar_.
+ [[ -n "$progress_char" ]] && \
+ err "Config: \$progress_char is deprecated, use \$bar_char_{elapsed,total} instead."
+ [[ -n "$progress_border" ]] && \
+ { err "Config: \$progress_border is deprecated, use \$bar_border instead."; \
+ bar_border="$progress_border"; }
+ [[ -n "$progress_length" ]] && \
+ { err "Config: \$progress_length is deprecated, use \$bar_length instead."; \
+ bar_length="$progress_length"; }
+ [[ -n "$progress_color_elapsed" ]] && \
+ { err "Config: \$progress_color_elapsed is deprecated, use \$bar_color_elapsed instead."; \
+ bar_color_elapsed="$progress_color_elapsed"; }
+ [[ -n "$progress_color_total" ]] && \
+ { err "Config: \$progress_color_total is deprecated, use \$bar_color_total instead."; \
+ bar_color_total="$progress_color_total"; }
+
+ # All cpufreq values were changed in 3.0.
+ [[ "$speed_type" == "current" ]] && \
+ err "Config: speed_type='current' is deprecated, use speed_type='scaling_cur_freq' instead."
+ [[ "$speed_type" == "min" ]] && \
+ err "Config: speed_type='min' is deprecated, use speed_type='scaling_min_freq' instead."
+ [[ "$speed_type" == "max" ]] && \
+ err "Config: speed_type='max' is deprecated, use speed_type='scaling_max_freq' instead."
+ [[ "$speed_type" == "bios" ]] && \
+ err "Config: speed_type='bios' is deprecated, use speed_type='bios_limit' instead."
+
+ # Ascii_logo_size was removed in 3.0.
+ [[ "$ascii_logo_size" ]] && \
+ err "Config: ascii_logo_size is deprecated, use ascii_distro='{distro}_small' instead."
+
+ # $start and $end were replaced with ${block_range[@]} in 3.0.
+ [[ "$start" && "$end" ]] && \
+ { err "Config: \$start and \$end are deprecated, use block_range=(0 7) instead."; \
+ block_range=("$start" "$end"); }
+
+ # Fahrenheit support was added to CPU so the options were changed.
+ [[ "$cpu_temp" == "on" ]] && \
+ { err "Config: cpu_temp='on' is deprecated, use cpu_temp='C' or 'F' instead.";
+ cpu_temp="C"; }
+
+ # Birthday was renamed to Install Date in 3.0
+ [[ -n "$birthday_time" ]] && \
+ { err "Config: \$birthday_time is deprecated, use \3install_time instead."; \
+ install_time="$birthday_time"; }
+
+ # Scrot dir was removed in 3.1.0.
+ [[ -n "$scrot_dir" ]] && scrot_dir=
+
+ # cpu_shorthand was deprecated in 3.3.0
+ [[ -n "$cpu_shorthand" ]] && \
+ { err "Config: \$cpu_shorthand is deprecated, use \$cpu_brand, \$cpu_cores, and
+ \$cpu_speed instead."; }
}
cache_uname() {
# Cache the output of uname so we don't
# have to spawn it multiple times.
- IFS=" " read -ra uname <<< "$(uname -srm)"
+ uname=($(uname -sr))
kernel_name="${uname[0]}"
kernel_version="${uname[1]}"
- kernel_machine="${uname[2]}"
+}
- if [[ "$kernel_name" == "Darwin" ]]; then
- # macOS can report incorrect versions unless this is 0.
- # https://github.com/dylanaraps/neofetch/issues/1607
- export SYSTEM_VERSION_COMPAT=0
+convert_time() {
+ # Convert ls timestamp to 'Tue 06 Dec 2016 4:58 PM' format.
+ year="$1"
+ day="${3#0}"
- IFS=$'\n' read -d "" -ra sw_vers <<< "$(awk -F'<|>' '/key|string/ {print $3}' \
- "/System/Library/CoreServices/SystemVersion.plist")"
- for ((i=0;i<${#sw_vers[@]};i+=2)) {
- case ${sw_vers[i]} in
- ProductName) darwin_name=${sw_vers[i+1]} ;;
- ProductVersion) osx_version=${sw_vers[i+1]} ;;
- ProductBuildVersion) osx_build=${sw_vers[i+1]} ;;
+ # Split time into hours/minutes.
+ hour="${4/:*}"
+ min="${4/${hour}}"
+
+ # Get month. (Month code is used for day of week)
+ # Due to different versions of 'ls', the month can be 1, 01 or Jan.
+ case "$2" in
+ 1 | 01 | "Jan") month="Jan"; month_code=0 ;;
+ 2 | 02 | "Feb") month="Feb"; month_code=3 ;;
+ 3 | 03 | "Mar") month="Mar"; month_code=3 ;;
+ 4 | 04 | "Apr") month="Apr"; month_code=6 ;;
+ 5 | 05 | "May") month="May"; month_code=1 ;;
+ 6 | 06 | "Jun") month="Jun"; month_code=4 ;;
+ 7 | 07 | "Jul") month="Jul"; month_code=6 ;;
+ 8 | 08 | "Aug") month="Aug"; month_code=2 ;;
+ 9 | 09 | "Sep") month="Sep"; month_code=5 ;;
+ 10 | "Oct") month="Oct"; month_code=0 ;;
+ 11 | "Nov") month="Nov"; month_code=3 ;;
+ 12 | "Dec") month="Dec"; month_code=5 ;;
+ esac
+
+ # Get leap year.
+ # Source: http://stackoverflow.com/questions/725098/leap-year-calculation
+ [[ "$((year % 4))" == 0 && "$((year % 100))" != 0 || "$((year % 400))" == 0 ]] && \
+ [[ "$month" =~ (Jan|Feb) ]] && \
+ leap_code=1
+
+ # Calculate day of week.
+ # Source: http://blog.artofmemory.com/how-to-calculate-the-day-of-the-week-4203.html
+ year_code="$((${year/??} + (${year/??} / 4) % 7))"
+ week_day="$(((year_code + month_code + 6 + day - leap_code) % 7))"
+
+ case "$week_day" in
+ 0) week_day="Sun" ;;
+ 1) week_day="Mon" ;;
+ 2) week_day="Tue" ;;
+ 3) week_day="Wed" ;;
+ 4) week_day="Thu" ;;
+ 5) week_day="Fri" ;;
+ 6) week_day="Sat" ;;
+ esac
+
+ # Convert 24 hour time to 12 hour time + AM/PM.
+ case "$install_time_format" in
+ "12h")
+ case "$hour" in
+ [0-9] | 0[0-9] | 1[0-1]) time="${hour/00/12}${min} AM" ;;
+ *) time="$((hour - 12))${min} PM" ;;
esac
- }
- fi
+ ;;
+ *) time="$4" ;;
+ esac
+
+ # Toggle showing the time.
+ [[ "$install_time" == "off" ]] && unset time
+
+ # Print the install date.
+ printf "%s" "$week_day $day $month $year $time"
}
get_ppid() {
# Get parent process ID of PID.
- case $os in
+ case "$os" in
"Windows")
ppid="$(ps -p "${1:-$PPID}" | awk '{printf $2}')"
- ppid="${ppid/PPID}"
+ ppid="${ppid/'PPID'}"
;;
"Linux")
@@ -4935,10 +4286,10 @@ get_ppid() {
get_process_name() {
# Get PID name.
- case $os in
+ case "$os" in
"Windows")
name="$(ps -p "${1:-$PPID}" | awk '{printf $8}')"
- name="${name/COMMAND}"
+ name="${name/'COMMAND'}"
name="${name/*\/}"
;;
@@ -4962,7 +4313,7 @@ decode_url() {
# FINISH UP
usage() { printf "%s" "\
-Usage: neofetch func_name --option \"value\" --option \"value\"
+Usage: neofetch --option \"value\" --option \"value\"
Neofetch is a CLI system information tool written in BASH. Neofetch
displays information about your system next to an image, your OS logo,
@@ -4973,32 +4324,11 @@ NOTE: Every launch flag has a config option.
Options:
INFO:
- func_name Specify a function name (second part of info() from config) to
- quickly display only that function's information.
-
- Example: neofetch uptime --uptime_shorthand tiny
-
- Example: neofetch uptime disk wm memory
-
- This can be used in bars and scripts like so:
-
- memory=\"\$(neofetch memory)\"; memory=\"\${memory##*: }\"
-
- For multiple outputs at once (each line of info in an array):
-
- IFS=\$'\\n' read -d \"\" -ra info < <(neofetch memory uptime wm)
-
- info=(\"\${info[@]##*: }\")
-
--disable infoname Allows you to disable an info line from appearing
- in the output. 'infoname' is the function name from the
- 'print_info()' function inside the config file.
- For example: 'info \"Memory\" memory' would be '--disable memory'
+ in the output.
NOTE: You can supply multiple args. eg. 'neofetch --disable cpu gpu'
- --title_fqdn on/off Hide/Show Fully Qualified Domain Name in title.
- --package_managers on/off Hide/Show Package Manager names . (on, tiny, off)
--os_arch on/off Hide/Show OS architecture.
--speed_type type Change the type of cpu speed to display.
Possible values: current, min, max, bios,
@@ -5025,7 +4355,7 @@ INFO:
NOTE: For FreeBSD and NetBSD-based systems, you need to enable
coretemp kernel module. This only supports newer Intel processors.
- --distro_shorthand on/off Shorten the output of distro (on, tiny, off)
+ --distro_shorthand on/off Shorten the output of distro (tiny, on, off)
NOTE: This option won't work in Windows (Cygwin)
@@ -5033,7 +4363,7 @@ INFO:
NOTE: This option won't work in BSDs (except PacBSD and PC-BSD)
- --uptime_shorthand on/off Shorten the output of uptime (on, tiny, off)
+ --uptime_shorthand on/off Shorten the output of uptime (tiny, on, off)
--refresh_rate on/off Whether to display the refresh rate of each monitor
Unsupported on Windows
--gpu_brand on/off Enable/Disable GPU brand in output. (AMD/NVIDIA/Intel)
@@ -5041,7 +4371,6 @@ INFO:
NOTE: This only supports Linux.
- --de_version on/off Show/Hide Desktop Environment version
--gtk_shorthand on/off Shorten output of gtk theme/icons
--gtk2 on/off Enable/Disable gtk2 theme/font/icons output
--gtk3 on/off Enable/Disable gtk3 theme/font/icons output
@@ -5053,7 +4382,7 @@ INFO:
NOTE: Multiple values can be given. (--disk_show '/' '/dev/sdc1')
--disk_subtitle type What information to append to the Disk subtitle.
- Takes: name, mount, dir, none
+ Takes: name, mount, dir
'name' shows the disk's name (sda1, sda2, etc)
@@ -5061,19 +4390,11 @@ INFO:
'dir' shows the basename of the disks's path. (/, Local Disk, etc)
- 'none' shows only 'Disk' or the configured title.
-
- --disk_percent on/off Hide/Show disk percent.
-
--ip_host url URL to query for public IP
- --ip_timeout int Public IP timeout (in seconds).
- --ip_interface value Interface(s) to use for local IP
- --song_format format Print the song data in a specific format (see config file).
- --song_shorthand on/off Print the Artist/Album/Title on separate lines.
- --memory_percent on/off Display memory percentage.
- --memory_unit kib/mib/gib Memory output unit.
- --music_player player-name Manually specify a player to use.
- Available values are listed in the config file
+ --song_shorthand on/off Print the Artist/Title on separate lines
+ --install_time on/off Enable/Disable showing the time in Install Date output.
+ --install_time_format 12h/24h
+ Set time format in Install Date to be 12 hour or 24 hour.
TEXT FORMATTING:
--colors x x x x x x Changes the text colors in this order:
@@ -5081,11 +4402,9 @@ TEXT FORMATTING:
--underline on/off Enable/Disable the underline.
--underline_char char Character to use when underlining title
--bold on/off Enable/Disable bold text
- --separator string Changes the default ':' separator to the specified string.
COLOR BLOCKS:
--color_blocks on/off Enable/Disable the color blocks
- --col_offset auto/num Left-padding of color blocks
--block_width num Width of color blocks in spaces
--block_height num Height of color blocks in lines
--block_range num num Range of colors to print as blocks
@@ -5097,6 +4416,8 @@ BARS:
--bar_length num Length in spaces to make the bars.
--bar_colors num num Colors to make the bar.
Set in this order: elapsed, total
+ --cpu_display mode Bar mode.
+ Possible values: bar, infobar, barinfo, off
--memory_display mode Bar mode.
Possible values: bar, infobar, barinfo, off
--battery_display mode Bar mode.
@@ -5106,31 +4427,21 @@ BARS:
IMAGE BACKEND:
--backend backend Which image backend to use.
- Possible values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a',
- 'iterm2', 'off', 'sixel', 'tycat', 'w3m', 'kitty', 'viu'
+ Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off',
+ 'sixel', 'tycat', 'w3m'
--source source Which image or ascii file to use.
Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img',
- '/path/to/ascii', '/path/to/dir/', 'command output' [ascii]
-
+ '/path/to/ascii', '/path/to/dir/'
--ascii source Shortcut to use 'ascii' backend.
-
- NEW: neofetch --ascii \"\$(fortune | cowsay -W 30)\"
-
--caca source Shortcut to use 'caca' backend.
--catimg source Shortcut to use 'catimg' backend.
- --chafa source Shortcut to use 'chafa' backend.
--iterm2 source Shortcut to use 'iterm2' backend.
--jp2a source Shortcut to use 'jp2a' backend.
- --kitty source Shortcut to use 'kitty' backend.
- --pot source Shortcut to use 'pot' backend.
- --pixterm source Shortcut to use 'pixterm' backend.
--sixel source Shortcut to use 'sixel' backend.
--termpix source Shortcut to use 'termpix' backend.
--tycat source Shortcut to use 'tycat' backend.
--w3m source Shortcut to use 'w3m' backend.
- --ueberzug source Shortcut to use 'ueberzug' backend
- --viu source Shortcut to use 'viu' backend
- --off Shortcut to use 'off' backend (Disable ascii art).
+ --off Shortcut to use 'off' backend.
NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img',
'/path/to/ascii', '/path/to/dir/'
@@ -5139,63 +4450,30 @@ ASCII:
--ascii_colors x x x x x x Colors to print the ascii art
--ascii_distro distro Which Distro's ascii art to print
- NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android,
- instantOS, Antergos, antiX, \"AOSC OS\", \"AOSC OS/Retro\",
- Apricity, ArchCraft, ArcoLinux, ArchBox, ARCHlabs, ArchStrike,
- XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, Bitrig,
- BlackArch, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD, BunsenLabs,
- Calculate, Carbs, CentOS, Chakra, ChaletOS, Chapeau, Chrom,
- Cleanjaro, ClearOS, Clear_Linux, Clover, Condres, Container_Linux,
- Crystal Linux, CRUX, Cucumber, dahlia, Debian, Deepin, DesaOS, Devuan,
- DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary, EndeavourOS, Endless,
- EuroLinux, Exherbo, Fedora, Feren, FreeBSD, FreeMiNT, Frugalware,
- Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, gNewSense, GNOME, GNU,
- GoboLinux, Grombyang, Guix, Haiku, Huayra, Hyperbola, iglunix, janus, Kali,
- KaOS, KDE_neon, Kibojoe, Kogaion, Korora, KSLinux, Kubuntu, LEDE,
- LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE, Lubuntu, Lunar, macos,
- Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui, Mer, Minix, LinuxMint,
- Live_Raizo, MX_Linux, Namib, Neptune, NetBSD, Netrunner, Nitrux,
- NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana,
- openmamba, OpenMandriva, OpenStage, OpenWrt, osmc, Oracle,
- OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parch, TrueOS,
- PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
- Proxmox, PuffOS, Puppy, PureOS, Qubes, Qubyt, Quibian, Radix, Raspbian, Reborn_OS,
- Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith, Rosa,
- sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
- SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, SmartOS,
- Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
- t2, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
- Ubuntu-Cinnamon, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE,
- Ubuntu-Studio, Ubuntu, Univention, Venom, Void, VNux, LangitKetujuh, semc,
- Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
+ NOTE: Arch and Ubuntu have 'old' logo variants.
- NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
-
- NOTE: Use '{distro name}_old' to use the old logos.
+ NOTE: Use 'arch_old' or 'ubuntu_old' to use the old logos.
NOTE: Ubuntu has flavor variants.
- NOTE: Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
- Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
+ NOTE: Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME',
+ 'Ubuntu-Studio' or 'Ubuntu-Budgie' to use the flavors.
- NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
- CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
- Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
- Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
- Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
- postmarketOS, and Void have a smaller logo variant.
+ NOTE: Alpine, Arch, CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS,
+ OpenBSD, and Void have a smaller logo variant.
NOTE: Use '{distro name}_small' to use the small variants.
--ascii_bold on/off Whether or not to bold the ascii logo.
-L, --logo Hide the info text and only show the ascii logo.
+ Possible values: bar, infobar, barinfo, off
+
IMAGE:
--loop Redraw the image constantly until Ctrl+C is used. This fixes issues
in some terminals emulators when using image mode.
--size 00px | --size 00% How to size the image.
Possible values: auto, 00px, 00%, none
- --catimg_size 1/2 Change the resolution of catimg.
--crop_mode mode Which crop mode to use
Takes the values: normal, fit, fill
--crop_offset value Change the crop offset for normal mode.
@@ -5215,11 +4493,16 @@ IMAGE:
--clean Delete cached files and thumbnails.
+SCREENSHOT:
+ -s, --scrot /path/to/img Take a screenshot, if path is left empty the screen-
+ shot function will use \$scrot_dir and \$scrot_name.
+ -su, --upload /path/to/img Same as --scrot but uploads the scrot to a website.
+ --image_host imgur/teknik Website to upload scrots to.
+ --scrot_cmd cmd Screenshot program to launch
+
OTHER:
--config /path/to/config Specify a path to a custom config file
--config none Launch the script without a config file
- --no_config Don't create the user config file.
- --print_config Print the default config file to stdout.
--stdout Turn off all colors and disables any ASCII/image backend.
--help Print this text and exit
--version Show neofetch version
@@ -5236,15 +4519,44 @@ Report bugs to https://github.com/dylanaraps/neofetch/issues
exit 1
}
+version() { printf "%s" "\
+Neofetch $version
+
+Copyright (c) 2016-2017 Dylan Araps
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Written by Dylan Araps with help from the following people:
+
+https://github.com/dylanaraps/neofetch/contributors
+
+"
+exit 1
+}
+
get_args() {
# Check the commandline flags early for '--config'.
- [[ "$*" != *--config* && "$*" != *--no_config* ]] && get_user_config
+ [[ "$*" != *--config* ]] && get_user_config
while [[ "$1" ]]; do
- case $1 in
+ case "$1" in
# Info
- "--title_fqdn") title_fqdn="$2" ;;
- "--package_managers") package_managers="$2" ;;
"--os_arch") os_arch="$2" ;;
"--cpu_cores") cpu_cores="$2" ;;
"--cpu_speed") cpu_speed="$2" ;;
@@ -5257,51 +4569,35 @@ get_args() {
"--gpu_brand") gpu_brand="$2" ;;
"--gpu_type") gpu_type="$2" ;;
"--refresh_rate") refresh_rate="$2" ;;
- "--de_version") de_version="$2" ;;
"--gtk_shorthand") gtk_shorthand="$2" ;;
"--gtk2") gtk2="$2" ;;
"--gtk3") gtk3="$2" ;;
"--shell_path") shell_path="$2" ;;
"--shell_version") shell_version="$2" ;;
"--ip_host") public_ip_host="$2" ;;
- "--ip_timeout") public_ip_timeout="$2" ;;
- "--ip_interface")
- unset local_ip_interface
- for arg in "$@"; do
- case "$arg" in
- "--ip_interface") ;;
- "-"*) break ;;
- *) local_ip_interface+=("$arg") ;;
- esac
- done
- ;;
-
- "--song_format") song_format="$2" ;;
"--song_shorthand") song_shorthand="$2" ;;
- "--music_player") music_player="$2" ;;
- "--memory_percent") memory_percent="$2" ;;
- "--memory_unit") memory_unit="$2" ;;
+ "--install_time") install_time="$2" ;;
+ "--install_time_format") install_time_format="$2" ;;
"--cpu_temp")
cpu_temp="$2"
[[ "$cpu_temp" == "on" ]] && cpu_temp="C"
;;
"--disk_subtitle") disk_subtitle="$2" ;;
- "--disk_percent") disk_percent="$2" ;;
"--disk_show")
unset disk_show
for arg in "$@"; do
- case $arg in
+ case "$arg" in
"--disk_show") ;;
"-"*) break ;;
- *) disk_show+=("$arg") ;;
+ *) disk_show+=($arg)
esac
done
;;
"--disable")
for func in "$@"; do
- case $func in
+ case "$func" in
"--disable") continue ;;
"-"*) break ;;
*)
@@ -5316,9 +4612,9 @@ get_args() {
"--colors")
unset colors
for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
- case $arg in
+ case "$arg" in
"-"*) break ;;
- *) colors+=("$arg") ;;
+ *) colors+=($arg)
esac
done
colors+=(7 7 7 7 7 7)
@@ -5328,14 +4624,12 @@ get_args() {
"--underline") underline_enabled="$2" ;;
"--underline_char") underline_char="$2" ;;
"--bold") bold="$2" ;;
- "--separator") separator="$2" ;;
# Color Blocks
"--color_blocks") color_blocks="$2" ;;
"--block_range") block_range=("$2" "$3") ;;
"--block_width") block_width="$2" ;;
"--block_height") block_height="$2" ;;
- "--col_offset") col_offset="$2" ;;
# Bars
"--bar_char")
@@ -5350,6 +4644,7 @@ get_args() {
bar_color_total="$3"
;;
+ "--cpu_display") cpu_display="$2" ;;
"--memory_display") memory_display="$2" ;;
"--battery_display") battery_display="$2" ;;
"--disk_display") disk_display="$2" ;;
@@ -5357,11 +4652,10 @@ get_args() {
# Image backend
"--backend") image_backend="$2" ;;
"--source") image_source="$2" ;;
- "--ascii" | "--caca" | "--catimg" | "--chafa" | "--jp2a" | "--iterm2" | "--off" |\
- "--pot" | "--pixterm" | "--sixel" | "--termpix" | "--tycat" | "--w3m" | "--kitty" |\
- "--ueberzug" | "--viu")
+ "--ascii" | "--caca" | "--catimg" | "--jp2a" | "--iterm2" | "--off" | "--sixel" |\
+ "--termpix" | "--tycat" | "--w3m")
image_backend="${1/--}"
- case $2 in
+ case "$2" in
"-"* | "") ;;
*) image_source="$2" ;;
esac
@@ -5370,7 +4664,6 @@ get_args() {
# Image options
"--loop") image_loop="on" ;;
"--image_size" | "--size") image_size="$2" ;;
- "--catimg_size") catimg_size="$2" ;;
"--crop_mode") crop_mode="$2" ;;
"--crop_offset") crop_offset="$2" ;;
"--xoffset") xoffset="$2" ;;
@@ -5387,9 +4680,9 @@ get_args() {
"--ascii_colors")
unset ascii_colors
for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
- case $arg in
+ case "$arg" in
"-"*) break ;;
- *) ascii_colors+=("$arg")
+ *) ascii_colors+=($arg)
esac
done
ascii_colors+=(7 7 7 7 7 7)
@@ -5398,17 +4691,30 @@ get_args() {
"--ascii_distro")
image_backend="ascii"
ascii_distro="$2"
+ case "$2" in "-"* | "") ascii_distro="$distro" ;; esac
;;
"--ascii_bold") ascii_bold="$2" ;;
"--logo" | "-L")
image_backend="ascii"
- print_info() { printf '\n'; }
+ print_info() { info line_break; }
;;
+ # Screenshot
+ "--scrot" | "-s")
+ scrot_args "$@"
+ ;;
+ "--upload" | "-su")
+ scrot_upload="on"
+ scrot_args "$@"
+ ;;
+
+ "--image_host") image_host="$2" ;;
+ "--scrot_cmd") scrot_cmd="$2" ;;
+
# Other
"--config")
- case $2 in
+ case "$2" in
"none" | "off" | "") ;;
*)
config_file="$(get_full_path "$2")"
@@ -5416,6209 +4722,60 @@ get_args() {
;;
esac
;;
- "--no_config") no_config="on" ;;
"--stdout") stdout="on" ;;
"-v") verbose="on" ;;
- "--print_config") printf '%s\n' "$config"; exit ;;
"-vv") set -x; verbose="on" ;;
"--help") usage ;;
- "--version")
- printf '%s\n' "Neofetch $version"
- exit 1
- ;;
+ "--version") version ;;
"--gen-man")
help2man -n "A fast, highly customizable system info script" \
-N ./neofetch -o neofetch.1
exit 1
;;
-
- "--json")
- json="on"
- unset -f get_title get_cols get_underline
-
- printf '{\n'
- print_info 2>/dev/null
- printf ' %s\n' "\"Version\": \"${version}\""
- printf '}\n'
- exit
- ;;
-
- "--travis")
- print_info() {
- info title
- info underline
-
- info "OS" distro
- info "Host" model
- info "Kernel" kernel
- info "Uptime" uptime
- info "Packages" packages
- info "Shell" shell
- info "Resolution" resolution
- info "DE" de
- info "WM" wm
- info "WM Theme" wm_theme
- info "Theme" theme
- info "Icons" icons
- info "Terminal" term
- info "Terminal Font" term_font
- info "CPU" cpu
- info "GPU" gpu
- info "GPU Driver" gpu_driver
- info "Memory" memory
-
- info "Disk" disk
- info "Battery" battery
- info "Font" font
- info "Song" song
- info "Local IP" local_ip
- info "Public IP" public_ip
- info "Users" users
-
- info cols
-
- # Testing.
- prin "prin"
- prin "prin" "prin"
-
- # Testing no subtitles.
- info uptime
- info disk
- }
-
- refresh_rate="on"
- shell_version="on"
- memory_display="infobar"
- disk_display="infobar"
- cpu_temp="C"
-
- # Known implicit unused variables.
- mpc_args=()
- printf '%s\n' "$kernel $icons $font $battery $locale ${mpc_args[*]}"
- ;;
esac
shift
done
}
-get_simple() {
- while [[ "$1" ]]; do
- [[ "$(type -t "get_$1")" == "function" ]] && {
- get_distro
- stdout
- simple=1
- info "$1" "$1"
- }
- shift
- done
- ((simple)) && exit
-}
-
-old_functions() {
- # Removed functions for backwards compatibility.
- get_line_break() { :; }
- get_cpu_usage() { :; }
-}
-
-get_distro_ascii() {
- # This function gets the distro ascii art and colors.
- #
- # $ascii_distro is the same as $distro.
- case $(trim "$ascii_distro") in
- "AIX"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} `:+ssssossossss+-`
- .oys///oyhddddhyo///sy+.
- /yo:+hNNNNNNNNNNNNNNNNh+:oy/
- :h/:yNNNNNNNNNNNNNNNNNNNNNNy-+h:
- `ys.yNNNNNNNNNNNNNNNNNNNNNNNNNNy.ys
- `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oh
- h+-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.oy
-/d`mNNNNNNN/::mNNNd::m+:/dNNNo::dNNNd`m:
-h//NNNNNNN: . .NNNh mNo od. -dNNNNN:+y
-N.sNNNNNN+ -N/ -NNh mNNd. sNNNNNNNo-m
-N.sNNNNNs +oo /Nh mNNs` ` /mNNNNNNo-m
-h//NNNNh ossss` +h md- .hm/ `sNNNNN:+y
-:d`mNNN+/yNNNNNd//y//h//oNNNNy//sNNNd`m-
- yo-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNm.ss
- `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oy
- sy.yNNNNNNNNNNNNNNNNNNNNNNNNNNs.yo
- :h+-yNNNNNNNNNNNNNNNNNNNNNNs-oh-
- :ys:/yNNNNNNNNNNNNNNNmy/:sy:
- .+ys///osyhhhhys+///sy+.
- -/osssossossso/-
-EOF
- ;;
-
- "Aperio GNU/Linux"*)
- set_colors 255
- read -rd '' ascii_data <<'EOF'
-${c2}
- _.._ _ ._.. _
-(_][_)(/,[ |(_)
- | GNU/Linux
-EOF
- ;;
-
- "Hash"*)
- set_colors 123
- read -rd '' ascii_data <<'EOF'
-${c1}
-
- + ###### +
- ### ###### ###
- ##### ###### #####
- ###### ###### ######
-
-####### '"###### '"########
-####### ###### ########
-####### ###### ########
-
- ###### '"###### '"######
- ##### ###### #####
- ### ###### ###
- ~ ###### ~
-
-EOF
- ;;
-
- "AlmaLinux"*)
- set_colors 1 3 4 2 6
- read -rd '' ascii_data <<'EOF'
-${c1} 'c:.
-${c1} lkkkx, .. ${c2}.. ,cc,
-${c1} okkkk:ckkx' ${c2}.lxkkx.okkkkd
-${c1} .:llcokkx' ${c2}:kkkxkko:xkkd,
-${c1} .xkkkkdood: ${c2};kx, .lkxlll;
-${c1} xkkx. ${c2}xk' xkkkkk:
-${c1} 'xkx. ${c2}xd .....,.
-${c3} .. ${c1}:xkl' ${c2}:c ..''..
-${c3} .dkx' ${c1}.:ldl:'. ${c2}' ${c4}':lollldkkxo;
-${c3} .''lkkko' ${c4}ckkkx.
-${c3}'xkkkd:kkd. .. ${c5};' ${c4}:kkxo.
-${c3},xkkkd;kk' ,d; ${c5}ld. ${c4}':dkd::cc,
-${c3} .,,.;xkko'.';lxo. ${c5}dx, ${c4}:kkk'xkkkkc
-${c3} 'dkkkkkxo:. ${c5};kx ${c4}.kkk:;xkkd.
-${c3} ..... ${c5}.;dk:. ${c5}lkk. ${c4}:;,
- ${c5}:kkkkkkkdoxkkx
- ,c,,;;;:xkkd.
- ;kkkkl...
- ;kkkkl
- ,od;
-EOF
- ;;
-
- "alpine_small")
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c1} /\\ /\\
- /${c2}/ ${c1}\\ \\
- /${c2}/ ${c1}\\ \\
-/${c2}// ${c1}\\ \\
-${c2}// ${c1}\\ \\
- \\
-EOF
- ;;
-
- "Alpine"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} .hddddddddddddddddddddddh.
- :dddddddddddddddddddddddddd:
- /dddddddddddddddddddddddddddd/
- +dddddddddddddddddddddddddddddd+
- `sdddddddddddddddddddddddddddddddds`
- `ydddddddddddd++hdddddddddddddddddddy`
-.hddddddddddd+` `+ddddh:-sdddddddddddh.
-hdddddddddd+` `+y: .sddddddddddh
-ddddddddh+` `//` `.` -sddddddddd
-ddddddh+` `/hddh/` `:s- -sddddddd
-ddddh+` `/+/dddddh/` `+s- -sddddd
-ddd+` `/o` :dddddddh/` `oy- .yddd
-hdddyo+ohddyosdddddddddho+oydddy++ohdddh
-.hddddddddddddddddddddddddddddddddddddh.
- `yddddddddddddddddddddddddddddddddddy`
- `sdddddddddddddddddddddddddddddddds`
- +dddddddddddddddddddddddddddddd+
- /dddddddddddddddddddddddddddd/
- :dddddddddddddddddddddddddd:
- .hddddddddddddddddddddddh.
-EOF
- ;;
-
- "Alter"*)
- set_colors 6 6
- read -rd '' ascii_data <<'EOF'
-${c1} %,
- ^WWWw
- 'wwwwww
- !wwwwwwww
- #`wwwwwwwww
- @wwwwwwwwwwww
- wwwwwwwwwwwwwww
- wwwwwwwwwwwwwwwww
- wwwwwwwwwwwwwwwwwww
- wwwwwwwwwwwwwwwwwwww,
- w~1i.wwwwwwwwwwwwwwwww,
- 3~:~1lli.wwwwwwwwwwwwwwww.
- :~~:~?ttttzwwwwwwwwwwwwwwww
- #<~:~~~~?llllltO-.wwwwwwwwwww
- #~:~~:~:~~?ltlltlttO-.wwwwwwwww
- @~:~~:~:~:~~(zttlltltlOda.wwwwwww
- @~:~~: ~:~~:~:(zltlltlO a,wwwwww
- 8~~:~~:~~~~:~~~~_1ltltu ,www
- 5~~:~~:~~:~~:~~:~~~_1ltq N,,
- g~:~~:~~~:~~:~~:~:~~~~1q N,
-EOF
- ;;
-
- "Amazon"*)
- set_colors 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} `-/oydNNdyo:.`
- `.:+shmMMMMMMMMMMMMMMmhs+:.`
- -+hNNMMMMMMMMMMMMMMMMMMMMMMNNho-
-.`` -/+shmNNMMMMMMNNmhs+/- ``.
-dNmhs+:. `.:/oo/:.` .:+shmNd
-dMMMMMMMNdhs+:.. ..:+shdNMMMMMMMd
-dMMMMMMMMMMMMMMNds odNMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd
-.:+ydNMMMMMMMMMMMh yMMMMMMMMMMMNdy+:.
- `.:+shNMMMMMh yMMMMMNhs+:``
- `-+shy shs+:`
-EOF
- ;;
- "Anarchy"*)
- set_colors 7 4
- read -rd '' ascii_data <<'EOF'
- ${c2}..${c1}
- ${c2}..${c1}
- ${c2}:..${c1}
- ${c2}:+++.${c1}
- .:::++${c2}++++${c1}+::.
- .:+######${c2}++++${c1}######+:.
- .+#########${c2}+++++${c1}##########:.
- .+##########${c2}+++++++${c1}##${c2}+${c1}#########+.
- +###########${c2}+++++++++${c1}############:
- +##########${c2}++++++${c1}#${c2}++++${c1}#${c2}+${c1}###########+
- +###########${c2}+++++${c1}###${c2}++++${c1}#${c2}+${c1}###########+
- :##########${c2}+${c1}#${c2}++++${c1}####${c2}++++${c1}#${c2}+${c1}############:
- ###########${c2}+++++${c1}#####${c2}+++++${c1}#${c2}+${c1}###${c2}++${c1}######+
-.##########${c2}++++++${c1}#####${c2}++++++++++++${c1}#######.
-.##########${c2}+++++++++++++++++++${c1}###########.
- #####${c2}++++++++++++++${c1}###${c2}++++++++${c1}#########+
- :###${c2}++++++++++${c1}#########${c2}+++++++${c1}#########:
- +######${c2}+++++${c1}##########${c2}++++++++${c1}#######+
- +####${c2}+++++${c1}###########${c2}+++++++++${c1}#####+
- :##${c2}++++++${c1}############${c2}++++++++++${c1}##:
- .${c2}++++++${c1}#############${c2}++++++++++${c1}+.
- :${c2}++++${c1}###############${c2}+++++++${c1}::
- .${c2}++. .:+${c1}##############${c2}+++++++${c1}..
- ${c2}.:.${c1} ..::++++++::..:${c2}++++${c1}+.
- ${c2}.${c1} ${c2}.:+++${c1}.
- ${c2}.:${c1}:
- ${c2}..${c1}
- ${c2}..${c1}
-EOF
- ;;
-
- "android_small"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} ;, ,;
- ';,.-----.,;'
- ,' ',
- / O O \\
-| |
-'-----------------'
-EOF
- ;;
-
- "Android"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} -o o-
- +hydNNNNdyh+
- +mMMMMMMMMMMMMm+
- `dMM${c2}m:${c1}NMMMMMMN${c2}:m${c1}MMd`
- hMMMMMMMMMMMMMMMMMMh
- .. yyyyyyyyyyyyyyyyyyyy ..
-.mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm.
-:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
-:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
-:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
-:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM:
--MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM-
- +yy+ MMMMMMMMMMMMMMMMMMMM +yy+
- mMMMMMMMMMMMMMMMMMMm
- `/++MMMMh++hMMMM++/`
- MMMMo oMMMM
- MMMMo oMMMM
- oNMm- -mMNs
-EOF
- ;;
-
- "instantOS"*)
- set_colors 4 6
- read -rd '' ascii_data <<'EOF'
-
-${c1}
- 'cx0XWWMMWNKOd:'.
- .;kNMMMMMMMMMMMMMWNKd'
- 'kNMMMMMMWNNNWMMMMMMMMXo.
-,0MMMMMW0o;'..,:dKWMMMMMWx.
-OMMMMMXl. .xNMMMMMNo
-WMMMMNl .kWWMMMMO'
-MMMMMX; oNWMMMMK,
-NMMMMWo .OWMMMMMK,
-kWMMMMNd. ,kWMMMMMMK,
-'kWMMMMWXxl:;;:okNMMMMMMMMK,
- .oXMMMMMMMWWWMMMMMMMMMMMMK,
- 'oKWMMMMMMMMMMMMMMMMMMMK,
- .;lxOKXXXXXXXXXXXXXXXO;......
- ................,d0000000kd:.
- .kMMMMMMMMMW0;
- .kMMMMMMMMMMMX
- .xMMMMMMMMMMMW
- cXMMMMMMMMMM0
- :0WMMMMMMNx,
- .o0NMWNOc.
-EOF
- ;;
-
- "Antergos"*)
- set_colors 4 6
- read -rd '' ascii_data <<'EOF'
-${c2} `.-/::/-``
- .-/osssssssso/.
- :osyysssssssyyys+-
- `.+yyyysssssssssyyyyy+.
- `/syyyyyssssssssssyyyyys-`
- `/yhyyyyysss${c1}++${c2}ssosyyyyhhy/`
- .ohhhyyyys${c1}o++/+o${c2}so${c1}+${c2}syy${c1}+${c2}shhhho.
- .shhhhys${c1}oo++//+${c2}sss${c1}+++${c2}yyy${c1}+s${c2}hhhhs.
- -yhhhhs${c1}+++++++o${c2}ssso${c1}+++${c2}yyy${c1}s+o${c2}hhddy:
- -yddhhy${c1}o+++++o${c2}syyss${c1}++++${c2}yyy${c1}yooy${c2}hdddy-
- .yddddhs${c1}o++o${c2}syyyyys${c1}+++++${c2}yyhh${c1}sos${c2}hddddy`
-`odddddhyosyhyyyyyy${c1}++++++${c2}yhhhyosddddddo
-.dmdddddhhhhhhhyyyo${c1}+++++${c2}shhhhhohddddmmh.
-ddmmdddddhhhhhhhso${c1}++++++${c2}yhhhhhhdddddmmdy
-dmmmdddddddhhhyso${c1}++++++${c2}shhhhhddddddmmmmh
--dmmmdddddddhhys${c1}o++++o${c2}shhhhdddddddmmmmd-
-.smmmmddddddddhhhhhhhhhdddddddddmmmms.
- `+ydmmmdddddddddddddddddddmmmmdy/.
- `.:+ooyyddddddddddddyyso+:.`
-EOF
- ;;
-
- "antiX"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1}
- \
- , - ~ ^ ~ - \ /
- , ' \ ' , /
- , \ '/
- , \ / ,
- ,___, \/ ,
- / | _ _ _|_ o /\ ,
-|, | / |/ | | | / \ ,
- \,_/\_/ | |_/|_/|_/_/ \,
- , / ,\
- , / , ' \
- ' - , _ _ _ , '
-EOF
- ;;
-
- "AOSC OS/Retro"*)
- set_colors 4 7 1 3
- read -rd '' ascii_data <<'EOF'
-${c2} .........
- ...................
- .....................${c1}################${c2}
- .............. ....${c1}################${c2}
-.............. ...${c1}################${c2}
-............. ..${c1}****************${c2}
-............ . .${c1}****************${c2}
-........... ... ${c1}................${c2}
-.......... ..... ${c1}...............${c2}
-......... ....... ...
- .${c3}...... ${c2}.
- ${c3}..... .....${c2}.... ${c4}...........
- ${c3}.... ......${c2}. ${c4}...........
- ${c3}... ....... ${c4}...........
- ${c3}................ ${c4}***********
- ${c3}................ ${c4}###########
- ${c3}****************
- ${c3}################
-EOF
- ;;
-
- "AOSC OS"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} .:+syhhhhys+:.
- .ohNMMMMMMMMMMMMMMNho.
- `+mMMMMMMMMMMmdmNMMMMMMMMm+`
- +NMMMMMMMMMMMM/ `./smMMMMMN+
- .mMMMMMMMMMMMMMMo -yMMMMMm.
- :NMMMMMMMMMMMMMMMs .hMMMMN:
- .NMMMMhmMMMMMMMMMMm+/- oMMMMN.
- dMMMMs ./ymMMMMMMMMMMNy. sMMMMd
--MMMMN` oMMMMMMMMMMMN: `NMMMM-
-/MMMMh NMMMMMMMMMMMMm hMMMM/
-/MMMMh NMMMMMMMMMMMMm hMMMM/
--MMMMN` :MMMMMMMMMMMMy. `NMMMM-
- dMMMMs .yNMMMMMMMMMMMNy/. sMMMMd
- .NMMMMo -/+sMMMMMMMMMMMmMMMMN.
- :NMMMMh. .MMMMMMMMMMMMMMMN:
- .mMMMMMy- NMMMMMMMMMMMMMm.
- +NMMMMMms/.` mMMMMMMMMMMMN+
- `+mMMMMMMMMNmddMMMMMMMMMMm+`
- .ohNMMMMMMMMMMMMMMNho.
- .:+syhhhhys+:.
-EOF
- ;;
-
- "Apricity"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} ./o-
- ``...`` `:. -/:
- `-+ymNMMMMMNmho-` :sdNNm/
- `+dMMMMMMMMMMMMMMMmo` sh:.:::-
- /mMMMMMMMMMMMMMMMMMMMm/`sNd/
- oMMMMMMMMMMMMMMMMMMMMMMMs -`
-:MMMMMMMMMMMMMMMMMMMMMMMMM/
-NMMMMMMMMMMMMMMMMMMMMMMMMMd
-MMMMMMMmdmMMMMMMMMMMMMMMMMd
-MMMMMMy` .mMMMMMMMMMMMmho:`
-MMMMMMNo/sMMMMMMMNdy+-.`-/
-MMMMMMMMMMMMNdy+:.`.:ohmm:
-MMMMMMMmhs+-.`.:+ymNMMMy.
-MMMMMM/`.-/ohmNMMMMMMy-
-MMMMMMNmNNMMMMMMMMmo.
-MMMMMMMMMMMMMMMms:`
-MMMMMMMMMMNds/.
-dhhyys+/-`
-EOF
- ;;
-
- "Archcraft"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} -m:
- :NMM+ .+
- +MMMMMo -NMy
- sMMMMMMMy -MMMMh`
- yMMMMMMMMMd` oMMMMd`
- `dMMMMMMMMMMMm. /MMMMm-
- .mMMMMMm-dMMMMMN- :NMMMN:
- -NMMMMMd` yMMMMMN: .mMMMM/
- :NMMMMMy sMMMMMM+ `dMMMMo
- +MMMMMMs +MMMMMMs `hMMMMy
- oMMMMMMMds- :NMMMMMy sMMMMh`
- yMMMMMNoydMMmo` -NMMMMMd` +MMMMd.
- `dMMMMMN- `:yNNs` .mMMMMMm. /MMMMm-
- .mMMMMMm. :hN/ `dMMMMMN- -NMMMN:
- -NMMMMMd` -hh` `yMMMMMN: .mMMMM/
- :NMMMMMy `s` :h. oMMMMMM+ `-----
- +MMMMMMo .dMm. `o. +MMMMMMo
-sMMMMMM+ .mMMMN: :` :NMMMMMy
-EOF
- ;;
-
- "arcolinux_small"*)
- set_colors 7 4
- read -rd '' ascii_data <<'EOF'
-${c2} A
- ooo
- ooooo
- ooooooo
- ooooooooo
- ooooo ooooo
- ooooo ooooo
- ooooo ooooo
- ooooo ${c1}${c2}
- ooooo ${c1}${c2}
-ooooo ${c1}${c2}
-EOF
- ;;
-
- "ArcoLinux"*)
- set_colors 7 4
- read -rd '' ascii_data <<'EOF'
-${c2} /-
- ooo:
- yoooo/
- yooooooo
- yooooooooo
- yooooooooooo
- .yooooooooooooo
- .oooooooooooooooo
- .oooooooarcoooooooo
- .ooooooooo-oooooooooo
- .ooooooooo- oooooooooo
- :ooooooooo. :ooooooooo
- :ooooooooo. :ooooooooo
- :oooarcooo .oooarcooo
- :ooooooooy .ooooooooo
- :ooooooooo ${c1}/ooooooooooooooooooo${c2}
- :ooooooooo ${c1}.-ooooooooooooooooo.${c2}
- ooooooooo- ${c1}-ooooooooooooo.${c2}
- ooooooooo- ${c1}.-oooooooooo.${c2}
-ooooooooo. ${c1}-ooooooooo${c2}
-EOF
- ;;
-
- "arch_small")
- set_colors 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} /\\
- / \\
- /\\ \\
-${c2} / \\
- / ,, \\
- / | | -\\
-/_-'' ''-_\\
-EOF
- ;;
-
- "arch_old")
- set_colors 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} __
- _=(SDGJT=_
- _GTDJHGGFCVS)
- ,GTDJGGDTDFBGX0
-${c1} JDJDIJHRORVFSBSVL${c2}-=+=,_
-${c1} IJFDUFHJNXIXCDXDSV,${c2} "DEBL
-${c1} [LKDSDJTDU=OUSCSBFLD.${c2} '?ZWX,
-${c1} ,LMDSDSWH' `DCBOSI${c2} DRDS],
-${c1} SDDFDFH' !YEWD,${c2} )HDROD
-${c1} !KMDOCG &GSU|${c2}\_GFHRGO\'
-${c1} HKLSGP'${c2} __${c1}\TKM0${c2}\GHRBV)'
-${c1}JSNRVW'${c2} __+MNAEC${c1}\IOI,${c2}\BN'
-${c1}HELK['${c2} __,=OFFXCBGHC${c1}\FD)
-${c1}?KGHE ${c2}\_-#DASDFLSV='${c1} 'EF
-'EHTI !H
- `0F' '!
-EOF
- ;;
-
- "ArchBox"*)
- set_colors 2 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ...:+oh/:::..
- ..-/oshhhhhh` `::::-.
- .:/ohhhhhhhhhhhh` `-::::.
- .+shhhhhhhhhhhhhhhhh` `.::-.
- /`-:+shhhhhhhhhhhhhh` .-/+shh
- / .:/ohhhhhhhhh` .:/ohhhhhhhh
- / `-:+shhh` ..:+shhhhhhhhhhhh
- / .:ohhhhhhhhhhhhhhhhhhh
- / `hhhhhhhhhhhhhhhhhhhh
- / `hhhhhhhhhhhhhhhhhhhh
- / `hhhhhhhhhhhhhhhhhhhh
- / `hhhhhhhhhhhhhhhhhhhh
- / .+o+ `hhhhhhhhhhhhhhhhhhhh
- / -hhhhh `hhhhhhhhhhhhhhhhhhhh
- / ohhhhho `hhhhhhhhhhhhhhhhhhhh
- /:::+`hhhhoos` `hhhhhhhhhhhhhhhhhs+`
- `--/:` /: `hhhhhhhhhhhho/-
- -/:. `hhhhhhs+:-`
- ::::/ho/-`
-EOF
- ;;
-
- "ARCHlabs"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} 'c'
- 'kKk,
- .dKKKx.
- .oKXKXKd.
- .l0XXXXKKo.
- c0KXXXXKX0l.
- :0XKKOxxOKX0l.
- :OXKOc. .c0XX0l.
- :OK0o. ${c4}...${c1}'dKKX0l.
- :OX0c ${c4};xOx'${c1}'dKXX0l.
- :0KKo.${c4}.o0XXKd'.${c1}lKXX0l.
- c0XKd.${c4}.oKXXXXKd..${c1}oKKX0l.
- .c0XKk;${c4}.l0K0OO0XKd..${c1}oKXXKo.
- .l0XXXk:${c4},dKx,.'l0XKo.${c1}.kXXXKo.
- .o0XXXX0d,${c4}:x; .oKKx'${c1}.dXKXXKd.
- .oKXXXXKK0c.${c4};. :00c'${c1}cOXXXXXKd.
- .dKXXXXXXXXk,${c4}. cKx'${c1}'xKXXXXXXKx'
- 'xKXXXXK0kdl:. ${c4}.ok; ${c1}.cdk0KKXXXKx'
- 'xKK0koc,.. ${c4}'c, ${c1} ..,cok0KKk,
- ,xko:'. ${c4}.. ${c1} .':okx;
- .,'. .',.
-EOF
- ;;
-
- "ArchStrike"*)
- set_colors 8 6
- read -rd '' ascii_data <<'EOF'
-${c1} *
- **.
- ****
- ******
- *******
- ** *******
- **** *******
- ${c1}****${c2}_____${c1}***${c2}/${c1}*
- ***${c2}/${c1}*******${c2}//${c1}***
- **${c2}/${c1}********${c2}///${c1}*${c2}/${c1}**
- **${c2}/${c1}*******${c2}////${c1}***${c2}/${c1}**
- **${c2}/${c1}****${c2}//////.,${c1}****${c2}/${c1}**
- ***${c2}/${c1}*****${c2}/////////${c1}**${c2}/${c1}***
- ****${c2}/${c1}**** ${c2}/////${c1}***${c2}/${c1}****
- ******${c2}/${c1}*** ${c2}//// ${c1}**${c2}/${c1}******
- ********${c2}/${c1}* ${c2}/// ${c1}*${c2}/${c1}********
- ,****** ${c2}// ______ / ${c1}******,
-EOF
- ;;
-
- *"XFerience"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ``--:::::::-.`
- .-/+++ooooooooo+++:-`
- `-/+oooooooooooooooooo++:.
- -/+oooooo/+ooooooooo+/ooo++:`
- `/+oo++oo. .+oooooo+.-: +:-o+-
- `/+o/. -o. :oooooo+ ```:.+oo+-
-`:+oo- -/` :oooooo+ .`-`+oooo/.
-.+ooo+. .` `://///+-+..oooooo+:`
--+ooo:` ``.-+oooooo+/`
--+oo/` :+oooo/.
-.+oo: ..-/. . -+oo+/`
-`/++- -:::++::/. -+oo+-
- ./o: `:///+- `./ooo+:`
- .++- `` /-` -:/+oooo+:`
- .:+/:`` `-:ooooooo++-
- ./+o+//:...../+oooooooo++:`
- `:/++ooooooooooooo++/-`
- `.-//++++++//:-.`
- ``````
-EOF
- ;;
-
- "ArchMerge"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} y:
- sMN-
- +MMMm`
- /MMMMMd`
- :NMMMMMMy
- -NMMMMMMMMs
- .NMMMMMMMMMM+
- .mMMMMMMMMMMMM+
- oNMMMMMMMMMMMMM+
- `+:-+NMMMMMMMMMMMM+
- .sNMNhNMMMMMMMMMMMM/
- `hho/sNMMMMMMMMMMMMMMM/
- `.`omMMmMMMMMMMMMMMMMMMM+
- .mMNdshMMMMd+::oNMMMMMMMMMo
- .mMMMMMMMMM+ `yMMMMMMMMMs
- .NMMMMMMMMM/ yMMMMMMMMMy
- -NMMMMMMMMMh `mNMMMMMMMMd`
- /NMMMNds+:.` `-/oymMMMm.
- +Mmy/. `:smN:
-/+. -o.
-EOF
- ;;
-
- "Arch"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} -`
- .o+`
- `ooo/
- `+oooo:
- `+oooooo:
- -+oooooo+:
- `/:-:++oooo+:
- `/++++/+++++++:
- `/++++++++++++++:
- `/+++o${c2}oooooooo${c1}oooo/`
-${c2} ${c1}./${c2}ooosssso++osssssso${c1}+`
-${c2} .oossssso-````/ossssss+`
- -osssssso. :ssssssso.
- :osssssss/ osssso+++.
- /ossssssss/ +ssssooo/-
- `/ossssso+/:- -:/+osssso+-
- `+sso+:-` `.-/+oso:
- `++:. `-/+/
- .` `/
-EOF
- ;;
-
- "artix_small"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} /\\
- / \\
- /`'.,\\
- / ',
- / ,`\\
- / ,.'`. \\
-/.,'` `'.\\
-EOF
- ;;
-
- "Artix"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} '
- 'o'
- 'ooo'
- 'ooxoo'
- 'ooxxxoo'
- 'oookkxxoo'
- 'oiioxkkxxoo'
- ':;:iiiioxxxoo'
- `'.;::ioxxoo'
- '-. `':;jiooo'
- 'oooio-.. `'i:io'
- 'ooooxxxxoio:,. `'-;'
- 'ooooxxxxxkkxoooIi:-. `'
- 'ooooxxxxxkkkkxoiiiiiji'
- 'ooooxxxxxkxxoiiii:'` .i'
- 'ooooxxxxxoi:::'` .;ioxo'
- 'ooooxooi::'` .:iiixkxxo'
- 'ooooi:'` `'';ioxxo'
- 'i:'` '':io'
-'` `'
-EOF
- ;;
-
- "Arya"*)
- set_colors 2 1
- read -rd '' ascii_data <<'EOF'
-${c1} `oyyy/${c2}-yyyyyy+
-${c1} -syyyy/${c2}-yyyyyy+
-${c1} .syyyyy/${c2}-yyyyyy+
-${c1} :yyyyyy/${c2}-yyyyyy+
-${c1} `/ :yyyyyy/${c2}-yyyyyy+
-${c1} .+s :yyyyyy/${c2}-yyyyyy+
-${c1} .oys :yyyyyy/${c2}-yyyyyy+
-${c1} -oyys :yyyyyy/${c2}-yyyyyy+
-${c1} :syyys :yyyyyy/${c2}-yyyyyy+
-${c1} /syyyys :yyyyyy/${c2}-yyyyyy+
-${c1} +yyyyyys :yyyyyy/${c2}-yyyyyy+
-${c1} .oyyyyyyo. :yyyyyy/${c2}-yyyyyy+ ---------
-${c1} .syyyyyy+` :yyyyyy/${c2}-yyyyy+-+syyyyyyyy
-${c1} -syyyyyy/ :yyyyyy/${c2}-yyys:.syyyyyyyyyy
-${c1}:syyyyyy/ :yyyyyy/${c2}-yyo.:syyyyyyyyyyy
-EOF
- ;;
-
- "AsteroidOS"*)
- set_colors 160 208 202 214
- read -rd '' ascii_data <<'EOF'
-${c1} ***
-${c1} *****
-${c1} **********
-${c1} ***************
-${c1} *///****////****////.
-${c2} (/////// /////// ///////(
-${c2} /(((((//* //, //((((((.
-${c2} ((((((((((( ((( ((((((((
-${c2} *((((((((((((((((((((((( ((((((((
-${c3} (((((#(((((((#((((( ((#(((((
-${c3} (#(#(#####(#(#, ####(#(#
-${c3} ######### ########
-${c3} /######## ########
-${c4} #######%#######
-${c4} (#%%%%%%%#
-${c4} %%%%%
-${c4} %%%
-EOF
- ;;
-
- "Bedrock"*)
- set_colors 8 7
- read -rd '' ascii_data <<'EOF'
-${c1}--------------------------------------
---------------------------------------
---------------------------------------
----${c2}\\\\\\\\\\\\\\\\\\\\\\\\${c1}-----------------------
-----${c2}\\\\\\ \\\\\\${c1}----------------------
------${c2}\\\\\\ \\\\\\${c1}---------------------
-------${c2}\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\${c1}------
--------${c2}\\\\\\ \\\\\\${c1}-----
---------${c2}\\\\\\ \\\\\\${c1}----
----------${c2}\\\\\\ ______ \\\\\\${c1}---
-----------${c2}\\\\\\ ///${c1}---
------------${c2}\\\\\\ ///${c1}----
-------------${c2}\\\\\\ ///${c1}-----
--------------${c2}\\\\\\////////////////${c1}------
---------------------------------------
---------------------------------------
---------------------------------------
-EOF
- ;;
-
- "Bitrig"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} `hMMMMN+
- -MMo-dMd`
- oMN- oMN`
- yMd /NM:
- .mMmyyhMMs
- :NMMMhsmMh
- +MNhNNoyMm-
- hMd.-hMNMN:
- mMmsssmMMMo
- .MMdyyhNMMMd
- oMN.`/dMddMN`
- yMm/hNm+./MM/
-.dMMMmo.``.NMo
-:NMMMNmmmmmMMh
-/MN/-------oNN:
-hMd. .dMh
-sm/ /ms
-EOF
- ;;
-
- "BlackArch"*)
- set_colors 1 1 0 1
- read -rd '' ascii_data <<'EOF'
-${c3} 00
- 11
- ====${c1}
- .${c3}//${c1}
- `o${c3}//${c1}:
- `+o${c3}//${c1}o:
- `+oo${c3}//${c1}oo:
- -+oo${c3}//${c1}oo+:
- `/:-:+${c3}//${c1}ooo+:
- `/+++++${c3}//${c1}+++++:
- `/++++++${c3}//${c1}++++++:
- `/+++o${c2}ooo${c3}//${c2}ooo${c1}oooo/`
-${c2} ${c1}./${c2}ooosssso${c3}//${c2}osssssso${c1}+`
-${c2} .oossssso-`${c3}//${c1}`/ossssss+`
- -osssssso. ${c3}//${c1} :ssssssso.
- :osssssss/ ${c3}//${c1} osssso+++.
- /ossssssss/ ${c3}//${c1} +ssssooo/-
- `/ossssso+/:- ${c3}//${c1} -:/+osssso+-
- `+sso+:-` ${c3}//${c1} `.-/+oso:
- `++:. ${c3}//${c1} `-/+/
- .` ${c3}/${c1} `/
-EOF
- ;;
-
- "BLAG"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} d
- ,MK:
- xMMMX:
- .NMMMMMX;
- lMMMMMMMM0clodkO0KXWW:
- KMMMMMMMMMMMMMMMMMMX'
- .;d0NMMMMMMMMMMMMMMMMMMK.
- .;dONMMMMMMMMMMMMMMMMMMMMMMx
-'dKMMMMMMMMMMMMMMMMMMMMMMMMl
- .:xKWMMMMMMMMMMMMMMMMMMM0.
- .:xNMMMMMMMMMMMMMMMMMK.
- lMMMMMMMMMMMMMMMMMMK.
- ,MMMMMMMMWkOXWMMMMMM0
- .NMMMMMNd. `':ldko
- OMMMK:
- oWk,
- ;:
-EOF
- ;;
-
- "BlankOn"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c2} `./ohdNMMMMNmho+.` ${c1} .+oo:`
-${c2} -smMMMMMMMMMMMMMMMMmy-` ${c1}`yyyyy+
-${c2} `:dMMMMMMMMMMMMMMMMMMMMMMd/` ${c1}`yyyyys
-${c2} .hMMMMMMMNmhso/++symNMMMMMMMh- ${c1}`yyyyys
-${c2} -mMMMMMMms-` -omMMMMMMN-${c1}.yyyyys
-${c2}.mMMMMMMy. .yMMMMMMm:${c1}yyyyys
-${c2}sMMMMMMy `sMMMMMMh${c1}yyyyys
-${c2}NMMMMMN: .NMMMMMN${c1}yyyyys
-${c2}MMMMMMm. NMMMMMN${c1}yyyyys
-${c2}hMMMMMM+ /MMMMMMN${c1}yyyyys
-${c2}:NMMMMMN: :mMMMMMM+${c1}yyyyys
-${c2} oMMMMMMNs- .sNMMMMMMs.${c1}yyyyys
-${c2} +MMMMMMMNho:.` `.:ohNMMMMMMNo ${c1}`yyyyys
-${c2} -hMMMMMMMMNNNmmNNNMMMMMMMMh- ${c1}`yyyyys
-${c2} :yNMMMMMMMMMMMMMMMMMMNy:` ${c1}`yyyyys
-${c2} .:sdNMMMMMMMMMMNds/. ${c1}`yyyyyo
-${c2} `.:/++++/:.` ${c1}:oys+.
-EOF
- ;;
-
- "BlueLight"*)
- set_colors 7 4
- read -rd '' ascii_data <<'EOF'
-${c1} oMMNMMMMMMMMMMMMMMMMMMMMMM
- oMMMMMMMMMMMMMMMMMMMMMMMMM
- oMMMMMMMMMMMMMMMMMMMMMMMMM
- oMMMMMMMMMMMMMMMMMMMMMMMMM
- -+++++++++++++++++++++++mM${c2}
- ```````````````````````..${c1}dM${c2}
- ```````````````````````....${c1}dM${c2}
- ```````````````````````......${c1}dM${c2}
- ```````````````````````........${c1}dM${c2}
- ```````````````````````..........${c1}dM${c2}
- ```````````````````````............${c1}dM${c2}
-.::::::::::::::::::::::-..............${c1}dM${c2}
- `-+yyyyyyyyyyyyyyyyyyyo............${c1}+mMM${c2}
- -+yyyyyyyyyyyyyyyyo..........${c1}+mMMMM${c2}
- ./syyyyyyyyyyyyo........${c1}+mMMMMMM${c2}
- ./oyyyyyyyyyo......${c1}+mMMMMMMMM${c2}
- omdyyyyyyo....${c1}+mMMMMMMMMMM${c2}
- ${c1}oMMM${c2}mdhyyo..${c1}+mMMMMMMMMMMMM
- oNNNNNNm${c2}dso${c1}mMMMMMMMMMMMMMM
-EOF
- ;;
-
- "Bodhi"*)
- set_colors 7 11 2
- read -rd '' ascii_data <<'EOF'
-${c1}| ${c2},,mmKKKKKKKKWm,,
- ${c1}' ${c2},aKKP${c1}LL**********|L*${c2}TKp,
- ${c1}t ${c2}aKP${c1}L**``` ```**L${c2}*Kp
- IX${c1}EL${c3}L,wwww, ${c1}``*||${c2}Kp
- ,#P${c1}L|${c3}KKKpPP@IPPTKmw, ${c1}`*||${c2}K
- ,K${c1}LL*${c3}{KKKKKKPPb$KPhpKKPKp ${c1}`||${c2}K
- #${c1}PL ${c3}!KKKKKKPhKPPP$KKEhKKKKp ${c1}`||${c2}K
-!H${c1}L* ${c3}1KKKKKKKphKbPKKKKKK$KKp ${c1}`|I${c2}W
-$${c1}bL ${c3}KKKKKKKKBQKhKbKKKKKKKK ${c1}|I${c2}N
-$${c1}bL ${c3}!KKKKKKKKKKNKKKKKKKPP` ${c1}|I${c2}b
-TH${c1}L* ${c3}TKKKKKK##KKKN@KKKK^ ${c1}|I${c2}M
- K@${c1}L ${c3}*KKKKKKKKKKKEKE5 ${c1}||${c2}K
- `NL${c1}L ${c3}`KKKKKKKKKK"```|L ${c1}||${c2}#P
- `K@${c1}LL ${c3}`"**"` ${c1}'. :||${c2}#P
- Yp${c1}LL ${c1}' |L${c2}$M`
- `Tp${c1}pLL, ,|||${c2}p'L
- "Kpp${c1}LL++,., ,,|||$${c2}#K* ${c1}'.
- ${c2}`"MKWpppppppp#KM"` ${c1}`h,
-EOF
- ;;
-
- "bonsai"*)
- set_colors 6 2 3
- read -rd '' ascii_data <<'EOF'
-${c2} ,####,
- ${c2}#######, ${c2},#####,
- ${c2}#####',# ${c2}'######
- ${c2}''###'${c3}';,,,'${c2}###'
- ${c3} ,; ''''
- ${c3} ;;; ${c2},#####,
- ${c3} ;;;' ,,;${c2};;###
- ${c3} ';;;;''${c2}'####'
- ${c3} ;;;
- ${c3} ,.;;';'',,,
- ${c3} ' '
-${c1} #
- # O
- ##, ,##,',##, ,## ,#, ,
- # # # # #''# #,, # # #
- '#' '##' # # ,,# '##;, #
-EOF
- ;;
-
- "BSD")
- set_colors 1 7 4 3 6
- read -rd '' ascii_data <<'EOF'
-${c1} , ,
- /( )`
- \ \___ / |
- /- _ `-/ '
- (${c2}/\/ \ ${c1}\ /\
- ${c2}/ / | ` ${c1}\
- ${c3}O O ${c2}) ${c1}/ |
- ${c2}`-^--'${c1}`< '
- (_.) _ ) /
- `.___/` /
- `-----' /
-${c4}<----. __ / __ \
-${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====|
-<----' ${c1}`--' `.__,' \
- | |
- \ / /\
- ${c5}______${c1}( (_ / \______/
- ${c5},' ,-----' |
- `--{__________)
-EOF
- ;;
-
- "BunsenLabs"*)
- set_colors fg 7
- read -rd '' ascii_data <<'EOF'
-${c1} `++
- -yMMs
- `yMMMMN`
- -NMMMMMMm.
- :MMMMMMMMMN-
- .NMMMMMMMMMMM/
- yMMMMMMMMMMMMM/
-`MMMMMMNMMMMMMMN.
--MMMMN+ /mMMMMMMy
--MMMm` `dMMMMMM
-`MMN. .NMMMMM.
- hMy yMMMMM`
- -Mo +MMMMN
- /o +MMMMs
- +MMMN`
- hMMM:
- `NMM/
- +MN:
- mh.
- -/
-EOF
- ;;
-
- "Calculate"*)
- set_colors 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} ......
- ,,+++++++,.
- .,,,....,,,${c2}+**+,,.${c1}
- ............,${c2}++++,,,${c1}
- ...............
- ......,,,........
- .....+*#####+,,,*+.
- .....,*###############,..,,,,,,..
- ......,*#################*..,,,,,..,,,..
- .,,....*####################+***+,,,,...,++,
- .,,..,..*#####################*,
- ,+,.+*..*#######################.
- ,+,,+*+..,########################*
-.,++++++. ..+##**###################+
-..... ..+##***#################*.
- .,.*#*****##############*.
- ..,,*********#####****+.
- ${c2}.,++*****+++${c1}*****************${c2}+++++,.${c1}
- ${c2},++++++**+++++${c1}***********${c2}+++++++++,${c1}
- ${c2}.,,,,++++,.. .,,,,,.....,+++,.,,${c1}
-EOF
- ;;
- "Carbs"*)
- set_colors 4 5 4 4 4 4
- read -rd '' ascii_data <<'EOF'
-${c2} ..........
- ..,;:ccccccc:;'..
- ..,clllc:;;;;;:cllc,.
- .,cllc,... ..';;'.
- .;lol;.. ..
- .,lol;.
- .coo:.
- .'lol,.
- .,lol,.
- .,lol,.
- 'col;.
- .:ooc'.
- .'col:.
- .'cllc'.. .''.
- ..:lolc,'.......',cll,.
- ..;cllllccccclllc;'.
- ...',;;;;;;,,...
- .....
-EOF
- ;;
-
- "CBL-Mariner"*)
- set_colors 6
- read -rd '' ascii_data <<'EOF'
-${c1} .
- :- .
- :==. .=:
- :===: -==:
- :-===: .====:
- :-====- -=====:
- -====== :=======:
- -======. .=========:
- -======: -==========.
- -======- -===========.
- :======- :===========.
- :=======. .-==========.
- :=======: -==========.
- :=======- :==========.
- :=======- .-========-
-:--------. :========-
- ..:::--=========-
- ..::---================-=-
-EOF
- ;;
-
- "CelOS"*)
- set_colors 4 6 0 5
- read -rd '' ascii_data <<'EOF'
-
-${c4} .,cmmmmmmmmmmmc,.
- .,cmMMMMMMMMMMMMMMMMMMMMmc.
- .cMMMMMMMMMMMMMMMMMMMMMMMMMMMmc.
- .cMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc.
- ,:MMM ${c3}####################################${c4}
- cMMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmc.
- .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.
- .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc
- "******************************MMMMMMMMMMMMMc:
-${c3}#################################### ${c4}MMMMMMMMMMMMMc
- "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:
- "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"
- 'MMMMMMMMM*******************************:
- \"MMMMMM ${c3}#####################################
- ${c4}`:MMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;
- `"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"
- `":MMMMMMMMMMMMMMMMMMMMMMMMM;'
- `":MMMMMMMMMMMMMMMMMMM:"
- "************"
-
-
-
-
-EOF
- ;;
-
- "centos_small"*)
- set_colors 3 2 4 5 7
- read -rd '' ascii_data <<'EOF'
-${c2} ____${c1}^${c4}____
-${c2} |\\ ${c1}|${c4} /|
-${c2} | \\ ${c1}|${c4} / |
-${c4}<---- ${c3}---->
-${c3} | / ${c2}|${c1} \\ |
-${c3} |/__${c2}|${c1}__\\|
-${c2} v
-EOF
- ;;
-
- "CentOS"*)
- set_colors 3 2 4 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} ..
- .PLTJ.
- <><><><>
- ${c2}KKSSV' 4KKK ${c1}LJ${c4} KKKL.'VSSKK
- ${c2}KKV' 4KKKKK ${c1}LJ${c4} KKKKAL 'VKK
- ${c2}V' ' 'VKKKK ${c1}LJ${c4} KKKKV' ' 'V
- ${c2}.4MA.' 'VKK ${c1}LJ${c4} KKV' '.4Mb.
-${c4} . ${c2}KKKKKA.' 'V ${c1}LJ${c4} V' '.4KKKKK ${c3}.
-${c4} .4D ${c2}KKKKKKKA.'' ${c1}LJ${c4} ''.4KKKKKKK ${c3}FA.
-${c4}
-${c4} 'VD ${c3}KKKKKKKK'.. ${c2}LJ ${c1}..'KKKKKKKK ${c3}FV
-${c4} ' ${c3}VKKKKK'. .4 ${c2}LJ ${c1}K. .'KKKKKV ${c3}'
- ${c3} 'VK'. .4KK ${c2}LJ ${c1}KKA. .'KV'
- ${c3}A. . .4KKKK ${c2}LJ ${c1}KKKKA. . .4
- ${c3}KKA. 'KKKKK ${c2}LJ ${c1}KKKKK' .4KK
- ${c3}KKSSA. VKKK ${c2}LJ ${c1}KKKV .4SSKK
-${c2} <><><><>
- 'MKKM'
- ''
-EOF
- ;;
-
- "Chakra"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} _ _ _ "kkkkkkkk.
- ,kkkkkkkk., 'kkkkkkkkk,
- ,kkkkkkkkkkkk., 'kkkkkkkkk.
- ,kkkkkkkkkkkkkkkk,'kkkkkkkk,
- ,kkkkkkkkkkkkkkkkkkk'kkkkkkk.
- "''"''',;::,,"''kkk''kkkkk; __
- ,kkkkkkkkkk, "k''kkkkk' ,kkkk
- ,kkkkkkk' ., ' .: 'kkkk',kkkkkk
- ,kkkkkkkk'.k' , ,kkkk;kkkkkkkkk
- ,kkkkkkkk';kk 'k "'k',kkkkkkkkkkkk
-.kkkkkkkkk.kkkk.'kkkkkkkkkkkkkkkkkk'
-;kkkkkkkk''kkkkkk;'kkkkkkkkkkkkk''
-'kkkkkkk; 'kkkkkkkk.,""''"''""
- ''kkkk; 'kkkkkkkkkk.,
- ';' 'kkkkkkkkkkkk.,
- ';kkkkkkkkkk'
- ';kkkkkk'
- "''"
-EOF
- ;;
-
- "ChaletOS"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} `.//+osso+/:``
- `/sdNNmhyssssydmNNdo:`
- :hNmy+-` .-+hNNs-
- /mMh/` `+:` `+dMd:
- .hMd- -sNNMNo. /yyy /mMs`
- -NM+ `/dMd/--omNh::dMM `yMd`
- .NN+ .sNNs:/dMNy:/hNmo/s yMd`
- hMs `/hNd+-smMMMMMMd+:omNy- `dMo
-:NM. .omMy:/hNMMMMMMMMMMNy:/hMd+` :Md`
-/Md` `sm+.omMMMMMMMMMMMMMMMMd/-sm+ .MN:
-/Md` MMMMMMMMMMMMMMMMMMMN .MN:
-:NN. MMMMMMm....--NMMMMMN -Mm.
-`dMo MMMMMMd mMMMMMN hMs
- -MN: MMMMMMd mMMMMMN oMm`
- :NM: MMMMMMd mMMMMMN +Mm-
- -mMy. mmmmmmh dmmmmmh -hMh.
- oNNs- :yMm/
- .+mMdo:` `:smMd/`
- -ohNNmhsoo++osshmNNh+.
- `./+syyhhyys+:``
-EOF
- ;;
-
- "Chapeau"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} .-/-.
- ////////.
- ////////${c2}y+${c1}//.
- ////////${c2}mMN${c1}/////.
- ////////${c2}mMN+${c1}////////.
- ////////////////////////.
- /////////+${c2}shhddhyo${c1}+////////.
- ////////${c2}ymMNmdhhdmNNdo${c1}///////.
-///////+${c2}mMms${c1}////////${c2}hNMh${c1}///////.
-///////${c2}NMm+${c1}//////////${c2}sMMh${c1}///////
-//////${c2}oMMNmmmmmmmmmmmmMMm${c1}///////
-//////${c2}+MMmssssssssssssss+${c1}///////
-`//////${c2}yMMy${c1}////////////////////
- `//////${c2}smMNhso++oydNm${c1}////////
- `///////${c2}ohmNMMMNNdy+${c1}///////
- `//////////${c2}++${c1}//////////
- `////////////////.
- -////////-
-EOF
- ;;
-
- "Chrom"*)
- set_colors 2 1 3 4 7
- read -rd '' ascii_data <<'EOF'
-${c2} .,:loool:,.
- .,coooooooooooooc,.
- .,lllllllllllllllllllll,.
- ;ccccccccccccccccccccccccc;
-${c1} '${c2}ccccccccccccccccccccccccccccc.
-${c1} ,oo${c2}c::::::::okO${c5}000${c3}0OOkkkkkkkkkkk:
-${c1}.ooool${c2};;;;:x${c5}K0${c4}kxxxxxk${c5}0X${c3}K0000000000.
-${c1}:oooool${c2};,;O${c5}K${c4}ddddddddddd${c5}KX${c3}000000000d
-${c1}lllllool${c2};l${c5}N${c4}dllllllllllld${c5}N${c3}K000000000
-${c1}lllllllll${c2}o${c5}M${c4}dccccccccccco${c5}W${c3}K000000000
-${c1};cllllllllX${c5}X${c4}c:::::::::c${c5}0X${c3}000000000d
-${c1}.ccccllllllO${c5}Nk${c4}c;,,,;cx${c5}KK${c3}0000000000.
-${c1} .cccccclllllxOO${c5}OOO${c1}Okx${c3}O0000000000;
-${c1} .:ccccccccllllllllo${c3}O0000000OOO,
-${c1} ,:ccccccccclllcd${c3}0000OOOOOOl.
-${c1} '::ccccccccc${c3}dOOOOOOOkx:.
-${c1} ..,::cccc${c3}xOOOkkko;.
-${c1} ..,:${c3}dOkxl:.
-EOF
- ;;
-
- "cleanjaro_small"*)
- set_colors 7 7
- read -rd '' ascii_data <<'EOF'
-${c1}█████ ██████████
-█████ ██████████
-█████
-█████
-█████
-████████████████
-████████████████
-EOF
- ;;
-
- "Cleanjaro"*)
- set_colors 7 7
- read -rd '' ascii_data <<'EOF'
-${c1}███████▌ ████████████████
-███████▌ ████████████████
-███████▌ ████████████████
-███████▌
-███████▌
-███████▌
-███████▌
-███████▌
-█████████████████████████
-█████████████████████████
-█████████████████████████
-▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-EOF
- ;;
-
- "ClearOS"*)
- set_colors 2
- read -rd '' ascii_data <<'EOF'
-${c1} `.--::::::--.`
- .-:////////////////:-.
- `-////////////////////////-`
- -////////////////////////////-
- `//////////////-..-//////////////`
- ./////////////: ://///////////.
- `//////:..-////: :////-..-//////`
- ://////` -///:.``.:///-` ://///:
-`///////:. -////////-` `:///////`
-.//:--////:. -////-` `:////--://.
-./: .////:. --` `:////- :/.
-`//-` .////:. `:////- `-//`
- :///-` .////:. `:////- `-///:
- `/////-` -///: :///- `-/////`
- `//////- `///: :///` .//////`
- `:////: `///: :///` -////:`
- .://: `///: :///` -//:.
- .:: `///: :///` -:.
- `///: :///`
- `... ...`
-EOF
- ;;
-
- "Clear Linux OS"* | "Clear_Linux"*)
- set_colors 4 3 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} BBB
- BBBBBBBBB
- BBBBBBBBBBBBBBB
- BBBBBBBBBBBBBBBBBBBB
- BBBBBBBBBBB BBB
- BBBBBBBB${c2}YYYYY
-${c1} BBBBBBBB${c2}YYYYYY
-${c1} BBBBBBBB${c2}YYYYYYY
-${c1} BBBBBBBBB${c2}YYYYY${c3}W
-${c4} GG${c1}BBBBBBBY${c2}YYYY${c3}WWW
-${c4} GGG${c1}BBBBBBB${c2}YY${c3}WWWWWWWW
-${c4} GGGGGG${c1}BBBBBB${c3}WWWWWWWW
-${c4} GGGGGGGG${c1}BBBB${c3}WWWWWWWW
-${c4}GGGGGGGGGGG${c1}BBB${c3}WWWWWWW
-${c4}GGGGGGGGGGGGG${c1}B${c3}WWWWWW
-${c4}GGGGGGGG${c3}WWWWWWWWWWW
-${c4}GG${c3}WWWWWWWWWWWWWWWW
- WWWWWWWWWWWWWWWW
- WWWWWWWWWW
- WWW
-EOF
- ;;
-
- "Clover"*)
- set_colors 2 6
- read -rd '' ascii_data <<'EOF'
-${c1} `omo``omo`
- `oNMMMNNMMMNo`
- `oNMMMMMMMMMMMMNo`
- oNMMMMMMMMMMMMMMMMNo
- `sNMMMMMMMMMMMMMMNs`
- `omo` `sNMMMMMMMMMMNs` `omo`
- `oNMMMNo` `sNMMMMMMNs` `oNMMMNo`
- `oNMMMMMMMNo` `oNMMNs` `oNMMMMMMMNo`
-oNMMMMMMMMMMMNo` `sy` `oNMMMMMMMMMMMNo
-`sNMMMMMMMMMMMMNo.${c2}oNNs${c1}.oNMMMMMMMMMMMMNs`
-`oNMMMMMMMMMMMMNs.${c2}oNNs${c1}.oNMMMMMMMMMMMMNo`
-oNMMMMMMMMMMMNs` `sy` `oNMMMMMMMMMMMNo
- `oNMMMMMMMNs` `oNMMNo` `oNMMMMMMMNs`
- `oNMMMNs` `sNMMMMMMNs` `oNMMMNs`
- `oNs` `sNMMMMMMMMMMNs` `oNs`
- `sNMMMMMMMMMMMMMMNs`
- +NMMMMMMMMMMMMMMMMNo
- `oNMMMMMMMMMMMMNo`
- `oNMMMNNMMMNs`
- `omo``oNs`
-EOF
- ;;
-
- "Condres"*)
- set_colors 2 3 6
- read -rd '' ascii_data <<'EOF'
-${c1}syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+${c3}.+.
-${c1}`oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+${c3}:++.
-${c2}/o${c1}+oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/${c3}oo++.
-${c2}/y+${c1}syyyyyyyyyyyyyyyyyyyyyyyyyyyyy${c3}+ooo++.
-${c2}/hy+${c1}oyyyhhhhhhhhhhhhhhyyyyyyyyy${c3}+oo+++++.
-${c2}/hhh+${c1}shhhhhdddddhhhhhhhyyyyyyy${c3}+oo++++++.
-${c2}/hhdd+${c1}oddddddddddddhhhhhyyyys${c3}+oo+++++++.
-${c2}/hhddd+${c1}odmmmdddddddhhhhyyyy${c3}+ooo++++++++.
-${c2}/hhdddmo${c1}odmmmdddddhhhhhyyy${c3}+oooo++++++++.
-${c2}/hdddmmms${c1}/dmdddddhhhhyyys${c3}+oooo+++++++++.
-${c2}/hddddmmmy${c1}/hdddhhhhyyyyo${c3}+oooo++++++++++:
-${c2}/hhdddmmmmy${c1}:yhhhhyyyyy+${c3}+oooo+++++++++++:
-${c2}/hhddddddddy${c1}-syyyyyys+${c3}ooooo++++++++++++:
-${c2}/hhhddddddddy${c1}-+yyyy+${c3}/ooooo+++++++++++++:
-${c2}/hhhhhdddddhhy${c1}./yo:${c3}+oooooo+++++++++++++/
-${c2}/hhhhhhhhhhhhhy${c1}:-.${c3}+sooooo+++++++++++///:
-${c2}:sssssssssssso++${c1}${c3}`:/:--------.````````
-EOF
- ;;
-
- "Container Linux by CoreOS"* | "Container_Linux"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} .....
- .';:cccccccc:;'.
- ':ccccclc${c3}lllllllll${c1}cc:.
- .;cccccccc${c3}lllllllllllllll${c1}c,
- ;clllccccc${c3}llllllllllllllllll${c1}c,
- .cllclccccc${c3}lllll${c2}lll${c3}llllllllllll${c1}c:
- ccclclcccc${c3}cllll${c2}kWMMNKk${c3}llllllllll${c1}c:
- :ccclclcccc${c3}llll${c2}oWMMMMMMWO${c3}lllllllll${c1}c,
-.ccllllllccc${c3}clll${c2}OMMMMMMMMM0${c3}lllllllll${c1}c
-.lllllclcccc${c3}llll${c2}KMMMMMMMMMMo${c3}llllllll${c1}c.
-.lllllllcccc${c3}clll${c2}KMMMMMMMMN0${c3}lllllllll${c1}c.
-.cclllllcccc${c3}lllld${c2}xkkxxdo${c3}llllllllllc${c1}lc
- :cccllllllcccc${c3}lllccllllcclccc${c1}cccccc;
- .ccclllllllcccccccc${c3}lll${c1}ccccclccccccc
- .cllllllllllclcccclccclccllllcllc
- :cllllllllccclcllllllllllllcc;
- .cccccccccccccclcccccccccc:.
- .;cccclccccccllllllccc,.
- .';ccccclllccc:;..
- .....
-EOF
- ;;
-
- "crux_small"|KISS*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} ___
- (${c3}.· ${c1}|
- (${c2}<> ${c1}|
- / ${c3}__ ${c1}\\
- ( ${c3}/ \\ ${c1}/|
-${c2}_${c1}/\\ ${c3}__)${c1}/${c2}_${c1})
-${c2}\/${c1}-____${c2}\/
-EOF
- ;;
-
- "CRUX"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} odddd
- oddxkkkxxdoo
- ddcoddxxxdoool
- xdclodod olol
- xoc xdd olol
- xdc ${c2}k00${c1}Okdlol
- xxd${c2}kOKKKOkd${c1}ldd
- xdco${c2}xOkdlo${c1}dldd
- ddc:cl${c2}lll${c1}oooodo
- odxxdd${c3}xkO000kx${c1}ooxdo
- oxdd${c3}x0NMMMMMMWW0od${c1}kkxo
- oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx
-docldkXW${c3}MMMMMMMWWN${c1}Odolco
-xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c
-${c2}xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l
-${c2}dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd
-${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo
-${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo
-EOF
- ;;
-
- *"Crystal Linux"*)
- set_colors 13 5
- read -rd '' ascii_data <<'EOF'
-${c1} mysssym
-${c1} mysssym
-${c1} mysssym
-${c1} mysssym
-${c1} mysssyd
-${c1} mysssyd N
-${c1} mysssyd mysym
-${c1} mysssyd dysssym
-${c1} mysssyd dysssym
-${c1} mysssyd dysssym
-${c1} mysssyd dysssym
-${c1} mysssyd dysssym
-${c1} mysssyd dysssym
-${c1} mysym dysssym
-${c1} N dysssym
-${c1} dysssym
-${c1} dysssym
-${c1} dysssym
-${c1} dysssym
-${c1} dysssym
-EOF
- ;;
-
- *"Cucumber"*)
- set_colors 2 3
- read -rd '' ascii_data <<'EOF'
-${c1} `.-://++++++//:-.`
- `:/+//${c2}::--------${c1}:://+/:`
- -++/:${c2}----..........----${c1}:/++-
- .++:${c2}---...........-......---${c1}:++.
- /+:${c2}---....-::/:/--//:::-....---${c1}:+/
- `++:${c2}--.....:---::/--/::---:.....--${c1}:++`
- /+:${c2}--.....--.--::::-/::--.--.....--${c1}:+/
--o:${c2}--.......-:::://--/:::::-.......--${c1}:o-
-/+:${c2}--...-:-::---:::..:::---:--:-...--${c1}:+/
-o/:${c2}-...-:.:.-/:::......::/:.--.:-...-${c1}:/o
-o/${c2}--...::-:/::/:-......-::::::-/-...-${c1}:/o
-/+:${c2}--..-/:/:::--:::..:::--::////-..--${c1}:+/
--o:${c2}--...----::/:::/--/:::::-----...--${c1}:o-
- /+:${c2}--....://:::.:/--/:.::://:....--${c1}:+/
- `++:${c2}--...-:::.--.:..:.--.:/:-...--${c1}:++`
- /+:${c2}---....----:-..-:----....---${c1}:+/
- .++:${c2}---..................---${c1}:++.
- -/+/:${c2}----..........----${c1}:/+/-
- `:/+//${c2}::--------:::${c1}/+/:`
- `.-://++++++//:-.`
-EOF
- ;;
-
- "CyberOS"*)
- set_colors 50 32 57
- read -rd '' ascii_data <<'EOF'
-${c3} !M$EEEEEEEEEEEP
- .MMMMM000000Nr.
- ${c3}&MMMMMM${c2}MMMMMMMMMMMMM9
- ${c3}~MMM${c1}MMMM${c2}MMMMMMMMMMMMC
- ${c1}" ${c3}M${c1}MMMMMMM${c2}MMMMMMMMMMs
- ${c1}iM${c2}MMM&&${c1}MMMMMMMM${c2}MMMMMMMM\\
- ${c1}BMMM${c2}MMMMM${c1}MMMMMMM${c2}MMMMMM${c3}"
- ${c1}9MMMMM${c2}MMMMMMM${c1}MMMM${c2}MMMM${c3}MMMf-
- ${c2}sMMMMMMMM${c1}MM${c2}M${c3}MMMMMMMMM3_
- ${c2}+ffffffff${c1}P${c3}MMMMMMMMMMMM0
- ${c2}CMMMMMMMMMMM
- }MMMMMMMMM
- ~MMMMMMM
- "RMMMM
- .PMB
-EOF
- ;;
-
- "dahlia"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1}
- .#.
- *%@@@%*
- .,,,,,(&@@@@@@@&/,,,,,.
- ,#@@@@@@@@@@@@@@@@@@@@@#.
- ,#@@@@@@@///#&@@@@@@@#.
- ,/%&@@@@@%/, .,(%@@@@@/.
- *#&@@@@@@#,. .*#@@@@@@,
- .&@@@@@@@@@( .(@@@@@@@@@&&.
-#@@@@@@@@@@( )@@@@@@@@@@@#
- °@@@@@@@@@@( .(@@@@@@@@@@@°
- *%@@@@@@@(. ,#@@@@@@@%*
- ,(&@@@@@@%*. ./%@@@@@@%(,
- ,#@@@@@@@&(***(&@@@@@@@#.
- ,#@@@@@@@@@@@@@@@@@@@@@#.
- ,*****#&@@@@@@@&(*****,
- ,/%@@@%/.
- ,#,
-EOF
- ;;
-
- "debian_small")
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} _____
- / __ \\
-| / |
-| \\___-
--_
- --_
-EOF
- ;;
-
- "Debian"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c2} _,met$$$$$gg.
- ,g$$$$$$$$$$$$$$$P.
- ,g$$P" """Y$$.".
- ,$$P' `$$$.
-',$$P ,ggs. `$$b:
-`d$$' ,$P"' ${c1}.${c2} $$$
- $$P d$' ${c1},${c2} $$P
- $$: $$. ${c1}-${c2} ,d$$'
- $$; Y$b._ _,d$P'
- Y$$. ${c1}`.${c2}`"Y$$$$P"'
-${c2} `$$b ${c1}"-.__
-${c2} `Y$$
- `Y$$.
- `$$b.
- `Y$$b.
- `"Y$b._
- `"""
-EOF
- ;;
-
- "Deepin"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} ............
- .';;;;;. .,;,.
- .,;;;;;;;. ';;;;;;;.
- .;::::::::' .,::;;,''''',.
- ,'.:::::::: .;;'. ';
- ;' 'cccccc, ,' :: '.. .:
- ,, :ccccc. ;: .c, '' :. ,;
-.l. cllll' ., .lc :; .l' l.
-.c :lllc ;cl: .l' .ll. :'
-.l 'looc. . ,o: 'oo' c,
-.o. .:ool::coc' .ooo' o.
- :: ..... .;dddo ;c
- l:... .';lddddo. ,o
- lxxxxxdoolllodxxxxxxxxxc :l
- ,dxxxxxxxxxxxxxxxxxxl. 'o,
- ,dkkkkkkkkkkkkko;. .;o;
- .;okkkkkdl;. .,cl:.
- .,:cccccccc:,.
-EOF
- ;;
-
- "DesaOS")
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1}███████████████████████
-███████████████████████
-███████████████████████
-███████████████████████
-████████ ███████
-████████ ███████
-████████ ███████
-████████ ███████
-████████ ███████
-████████ ███████
-████████ ███████
-██████████████████████████████
-██████████████████████████████
-████████████████████████
-████████████████████████
-████████████████████████
-EOF
- ;;
-
- "Devuan"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} ..,,;;;::;,..
- `':ddd;:,.
- `'dPPd:,.
- `:b$$b`.
- 'P$$$d`
- .$$$$$`
- ;$$$$$P
- .:P$$$$$$`
- .,:b$$$$$$$;'
- .,:dP$$$$$$$$b:'
- .,:;db$$$$$$$$$$Pd'`
- ,db$$$$$$$$$$$$$$b:'`
-:$$$$$$$$$$$$b:'`
- `$$$$$bd:''`
- `'''`
-EOF
- ;;
-
- "DracOS"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} `-:/-
- -os:
- -os/`
- :sy+-`
- `/yyyy+.
- `+yyyyo-
- `/yyyys:
-`:osssoooo++- +yyyyyy/`
- ./yyyyyyo yo`:syyyy+.
- -oyyy+ +- :yyyyyo-
- `:sy: `. `/yyyyys:
- ./o/.` .oyyso+oo:`
- :+oo+//::::///:-.` `.`
-EOF
- ;;
-
- "DarkOs")
- set_colors 1 6 5 3 2
- read -rd '' ascii_data <<'EOF'
-
-${c3}⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⠋⡆⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡆⢀⣤⢛⠛⣠⣿⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣿⠟⣡⠊⣠⣾⣿⠃⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣯⣿⠀⠊⣤⣿⣿⣿⠃⣴⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⡟⣠⣶⣿⣿⣿⢋⣤⠿⠛⠉⢁⣭⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c4} ⠀⠀⠀⠀⠀⠀ ⠀⣠⠖⡭⢉⣿⣯⣿⣯⣿⣿⣿⣟⣧⠛⢉⣤⣶⣾⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c5}⠀⠀⠀⠀⠀⠀⠀⠀⣴⣫⠓⢱⣯⣿⢿⠋⠛⢛⠟⠯⠶⢟⣿⣯⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c2}⠀⠀⠀⠀⠀⠀⢀⡮⢁⣴⣿⣿⣿⠖⣠⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠛⠛⢿⣶⣄⠀⠀⠀⠀⠀⠀⠀
-${c3}⠀⠀⠀⠀⢀⣤⣷⣿⣿⠿⢛⣭⠒⠉⠀⠀⠀⣀⣀⣄⣤⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
-${c1}⠀⢀⣶⠏⠟⠝⠉⢀⣤⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c6}⢴⣯⣤⣶⣿⣿⣿⣿⣿⡿⣿⣯⠉⠉⠉⠉⠀⠀⠀⠈⣿⡀⣟⣿⣿⢿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c5}⠀⠀⠀⠉⠛⣿⣧⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠃⣿⣿⣯⣿⣦⡀⠀⠉⠻⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c3}⠀⠀⠀⠀⠀⠀⠉⢿⣮⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⣯⠉⠉⠛⢿⣿⣷⣄⠀⠈⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀
-${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠀⠀⠀⠀⠀⢀⢡⠃⣾⣿⣿⣦⠀⠀⠀⠙⢿⣿⣤⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀
-${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋⢿⣄⠀⠀⠀⠈⡄⠙⣶⣈⡄⠀⠀⠀⠀⠀⠀
-${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀
-${c4}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c3}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-
-EOF
- ;;
-
- "Itc"*)
- set_colors 1
- read -rd '' ascii_data <<'EOF'
-${c1}....................-==============+...
-${c1}....................-==============:...
-${c1}...:===========-....-==============:...
-${c1}...-===========:....-==============-...
-${c1}....*==========+........-::********-...
-${c1}....*===========+.:*====**==*+-.-......
-${c1}....:============*+-..--:+**====*---...
-${c1}......::--........................::...
-${c1}..+-:+-.+::*:+::+:-++::++-.:-.*.:++:++.
-${c1}..:-:-++++:-::--:+::-::.:++-++:++--:-:. ⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-EOF
- ;;
-
- "dragonfly_old"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
- ${c1} .-.
- ${c3} ()${c1}I${c3}()
- ${c1} "==.__:-:__.=="
- "==.__/~|~\__.=="
- "==._( Y )_.=="
- ${c2}.-'~~""~=--...,__${c1}\/|\/${c2}__,...--=~""~~'-.
-( ..=${c1}\\=${c1}/${c2}=.. )
- `'-. ,.-"`;${c1}/=\\${c2};"-.,_ .-'`
- `~"-=-~` .-~` ${c1}|=|${c2} `~-. `~-=-"~`
- .-~` /${c1}|=|${c2}\ `~-.
- .~` / ${c1}|=|${c2} \ `~.
- .-~` .' ${c1}|=|${c2} `. `~-.
- (` _,.-="` ${c1} |=|${c2} `"=-.,_ `)
- `~"~"` ${c1} |=|${c2} `"~"~`
- ${c1} /=\\
- \\=/
- ^
-EOF
- ;;
-
- "dragonfly_small"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c2} ,${c1}_${c2},
-('-_${c1}|${c2}_-')
- >--${c1}|${c2}--<
-(_-'${c1}|${c2}'-_)
- ${c1}|
- |
- |
-EOF
- ;;
-
- "DragonFly"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c2},--, ${c1}| ${c2},--,
-${c2}| `-, ${c1},^, ${c2},-' |
-${c2} `, `-, ${c3}(/ \) ${c2},-' ,'
-${c2} `-, `-,${c1}/ \${c2},-' ,-'
-${c2} `------${c1}( )${c2}------'
-${c2} ,----------${c1}( )${c2}----------,
-${c2} | _,-${c1}( )${c2}-,_ |
-${c2} `-,__,-' ${c1}\ /${c2} `-,__,-'
-${c1} | |
- | |
- | |
- | |
- | |
- | |
- `|'
-EOF
- ;;
-
- "Drauger"*)
- set_colors 1 7
- read -rd '' ascii_data <<'EOF'
-${c1} -``-
- `:+``+:`
- `/++``++/.
- .++/. ./++.
- :++/` `/++:
- `/++: :++/`
- ./+/- -/+/.
- -++/. ./++-
- :++:` `:++:
- `/++- -++/`
- ./++. ./+/.
- -++/` `/++-
- :++:` `:++:
- `/++- -++/`
-.:-.`..............................`.-:.
-`.-/++++++++++++++++++++++++++++++++/-.`
-EOF
- ;;
-
- "elementary_small"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} _______
- / ____ \\
-/ | / /\\
-|__\\ / / |
-\\ /__/ /
- \\_______/
-EOF
- ;;
-
- "Elementary"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} eeeeeeeeeeeeeeeee
- eeeeeeeeeeeeeeeeeeeeeee
- eeeee eeeeeeeeeeee eeeee
- eeee eeeee eee eeee
- eeee eeee eee eeee
-eee eee eee eee
-eee eee eee eee
-ee eee eeee eeee
-ee eee eeeee eeeeee
-ee eee eeeee eeeee ee
-eee eeee eeeeee eeeee eee
-eee eeeeeeeeee eeeeee eee
- eeeeeeeeeeeeeeeeeeeeeeee eeeee
- eeeeeeee eeeeeeeeeeee eeee
- eeeee eeeee
- eeeeeee eeeeeee
- eeeeeeeeeeeeeeeee
-EOF
- ;;
-
- "EndeavourOS"*)
- set_colors 1 5 4
- read -rd '' ascii_data <<'EOF'
-${c1} ./${c2}o${c3}.
-${c1} ./${c2}sssso${c3}-
-${c1} `:${c2}osssssss+${c3}-
-${c1} `:+${c2}sssssssssso${c3}/.
-${c1} `-/o${c2}ssssssssssssso${c3}/.
-${c1} `-/+${c2}sssssssssssssssso${c3}+:`
-${c1} `-:/+${c2}sssssssssssssssssso${c3}+/.
-${c1} `.://o${c2}sssssssssssssssssssso${c3}++-
-${c1} .://+${c2}ssssssssssssssssssssssso${c3}++:
-${c1} .:///o${c2}ssssssssssssssssssssssssso${c3}++:
-${c1} `:////${c2}ssssssssssssssssssssssssssso${c3}+++.
-${c1}`-////+${c2}ssssssssssssssssssssssssssso${c3}++++-
-${c1} `..-+${c2}oosssssssssssssssssssssssso${c3}+++++/`
- ./++++++++++++++++++++++++++++++/:.
- `:::::::::::::::::::::::::------``
-EOF
- ;;
-
- "Endless"*)
- set_colors 1 7
- read -rd '' ascii_data <<'EOF'
-${c1} `:+yhmNMMMMNmhy+:`
- -odMMNhso//////oshNMMdo-
- /dMMh+. .+hMMd/
- /mMNo` `oNMm:
- `yMMo` `oMMy`
- `dMN- -NMd`
- hMN. .NMh
-/MM/ -os` /MM/
-dMm `smNmmhs/- `:sNMd+ `` mMd
-MMy oMd--:+yMMMMMNo.:ohmMMMNy` yMM
-MMy -NNyyhmMNh+oNMMMMMy:. dMo yMM
-dMm `/++/-``/yNNh+/sdNMNddMm- mMd
-/MM/ `dNy: `-::- /MM/
- hMN. .NMh
- `dMN- -NMd`
- `yMMo` `oMMy`
- /mMNo` `oNMm/
- /dMMh+. .+hMMd/
- -odMMNhso//////oshNMMdo-
- `:+yhmNMMMMNmhy+:`
-EOF
- ;;
-
- "EuroLinux"*)
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c1} __
- -wwwWWWWWWWWWwww-
- -WWWWWWWWWWWWWWWWWWw-
- \WWWWWWWWWWWWWWWWWWW-
- _Ww `WWWWWWWWWWWWWWWWWWWw
- -W${c2}E${c1}Www -WWWWWWWWW-
-_WW${c2}U${c1}WWWW- _WWWWWWWW
-_WW${c2}R${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW-
-wWW${c2}O${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
-WWW${c2}L${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw
-WWW${c2}I${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWww-
-wWW${c2}N${c1}WWWWw
- WW${c2}U${c1}WWWWWWw
- wW${c2}X${c1}WWWWWWWWww
- wWWWWWWWWWWWWWWWw
- wWWWWWWWWWWWWWWWw
- WWWWWWWWWWWWWw
- wWWWWWWWw
-EOF
- ;;
-
- "Exherbo"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} ,
-OXo.
-NXdX0: .cok0KXNNXXK0ko:.
-KX '0XdKMMK;.xMMMk, .0MMMMMXx; ...
-'NO..xWkMMx kMMM cMMMMMX,NMWOxOXd.
- cNMk NK .oXM. OMMMMO. 0MMNo kW.
- lMc o: ., .oKNk; ;NMMWlxW'
- ;Mc .. .,,' .0M${c1}g;${c2}WMN'dWMMMMMMO
- XX ,WMMMMW. cM${c1}cfli${c2}WMKlo. .kMk
-.Mo .WM${c1}GD${c2}MW. XM${c1}WO0${c2}MMk oMl
-,M: ,XMMWx::,''oOK0x; NM.
-'Ml ,kNKOxxxxxkkO0XXKOd:. oMk
- NK .0Nxc${c3}:::::::::::::::${c2}fkKNk, .MW
- ,Mo .NXc${c3}::${c2}qXWXb${c3}::::::::::${c2}oo${c3}::${c2}lNK. .MW
- ;Wo oMd${c3}:::${c2}oNMNP${c3}::::::::${c2}oWMMMx${c3}:${c2}c0M; lMO
- 'NO;W0c${c3}:::::::::::::::${c2}dMMMMO${c3}::${c2}lMk .WM'
- xWONXdc${c3}::::::::::::::${c2}oOOo${c3}::${c2}lXN. ,WMd
- 'KWWNXXK0Okxxo,${c3}:::::::${c2},lkKNo xMMO
- :XMNxl,';:lodxkOO000Oxc. .oWMMo
- 'dXMMXkl;,. .,o0MMNo'
- ':d0XWMMMMWNNNNMMMNOl'
- ':okKXWNKkl'
-EOF
- ;;
-
- "fedora_small")
- set_colors 12
- read -rd '' ascii_data <<'EOF'
-${c1} ,'''''.
- | ,. |
- | | '_'
- ,....| |..
-.' ,_;| ..'
-| | | |
-| ',_,' |
- '. ,'
- '''''
-EOF
- ;;
-
- "Fedora_old"* | "RFRemix"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} /:-------------:\\
- :-------------------::
- :-----------${c2}/shhOHbmp${c1}---:\\
- /-----------${c2}omMMMNNNMMD ${c1}---:
- :-----------${c2}sMMMMNMNMP${c1}. ---:
- :-----------${c2}:MMMdP${c1}------- ---\\
-,------------${c2}:MMMd${c1}-------- ---:
-:------------${c2}:MMMd${c1}------- .---:
-:---- ${c2}oNMMMMMMMMMNho${c1} .----:
-:-- .${c2}+shhhMMMmhhy++${c1} .------/
-:- -------${c2}:MMMd${c1}--------------:
-:- --------${c2}/MMMd${c1}-------------;
-:- ------${c2}/hMMMy${c1}------------:
-:--${c2} :dMNdhhdNMMNo${c1}------------;
-:---${c2}:sdNMMMMNds:${c1}------------:
-:------${c2}:://:${c1}-------------::
-:---------------------://
-EOF
- ;;
-
- "Fedora"*)
- set_colors 12 7
- read -rd '' ascii_data <<'EOF'
-${c1} .',;::::;,'.
- .';:cccccccccccc:;,.
- .;cccccccccccccccccccccc;.
- .:cccccccccccccccccccccccccc:.
- .;ccccccccccccc;${c2}.:dddl:.${c1};ccccccc;.
- .:ccccccccccccc;${c2}OWMKOOXMWd${c1};ccccccc:.
-.:ccccccccccccc;${c2}KMMc${c1};cc;${c2}xMMc${c1};ccccccc:.
-,cccccccccccccc;${c2}MMM.${c1};cc;${c2};WW:${c1};cccccccc,
-:cccccccccccccc;${c2}MMM.${c1};cccccccccccccccc:
-:ccccccc;${c2}oxOOOo${c1};${c2}MMM0OOk.${c1};cccccccccccc:
-cccccc;${c2}0MMKxdd:${c1};${c2}MMMkddc.${c1};cccccccccccc;
-ccccc;${c2}XM0'${c1};cccc;${c2}MMM.${c1};cccccccccccccccc'
-ccccc;${c2}MMo${c1};ccccc;${c2}MMW.${c1};ccccccccccccccc;
-ccccc;${c2}0MNc.${c1}ccc${c2}.xMMd${c1};ccccccccccccccc;
-cccccc;${c2}dNMWXXXWM0:${c1};cccccccccccccc:,
-cccccccc;${c2}.:odl:.${c1};cccccccccccccc:,.
-:cccccccccccccccccccccccccccc:'.
-.:cccccccccccccccccccccc:;,..
- '::cccccccccccccc::;,.
-EOF
- ;;
-
- "Feren"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} `----------`
- :+ooooooooo+.
--o+oooooooooo+-
-..`/+++++++++++/...`````````````````
- .++++++++++++++++++++++++++/////-
- ++++++++++++++++++++++++++++++++//:`
- -++++++++++++++++++++++++++++++/-`
- ++++++++++++++++++++++++++++:.
- -++++++++++++++++++++++++/.
- +++++++++++++++++++++/-`
- -++++++++++++++++++//-`
- .:+++++++++++++//////-
- .:++++++++//////////-
- `-++++++---:::://///.
- `.:///+++. `
- `.........
-EOF
- ;;
-
- "freebsd_small")
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1}/\\,-'''''-,/\\
-\\_) (_/
-| |
-| |
- ; ;
- '-_____-'
-EOF
- ;;
-
- FreeBSD*|HardenedBSD*)
- case $ascii_distro in
- *HardenedBSD*) set_colors 4 7 3 ;;
- *) set_colors 1 7 3
- esac
-
- read -rd '' ascii_data <<'EOF'
- ${c2}``` ${c1}`
- ${c2}` `.....---...${c1}....--.``` -/
- ${c2}+o .--` ${c1}/y:` +.
- ${c2} yo`:. ${c1}:o `+-
- ${c2}y/ ${c1}-/` -o/
- ${c2}.- ${c1}::/sy+:.
- ${c2}/ ${c1}`-- /
- ${c2}`: ${c1}:`
- ${c2}`: ${c1}:`
- ${c2}/ ${c1}/
- ${c2}.- ${c1}-.
- ${c2}-- ${c1}-.
- ${c2}`:` ${c1}`:`
- .-- `--.
- .---.....----.
-EOF
- ;;
-
- "FreeMiNT"*)
- set_colors 7
- read -rd '' ascii_data <<'EOF'
-${c1} ##
- ## #########
- #### ##
- #### #### ##
-#### #### ## ##
- #### #### ## ##
- #### #### ## ## ##
- #### ######
- ###### ## ## ####
- #### ################
- #### ## ####
- ## #### ######
- ## ## #### ####
- ## ## ## ## ## ####
- #### ## ## ##
-EOF
- ;;
-
- "Frugalware"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} `++/::-.`
- /o+++++++++/::-.`
- `o+++++++++++++++o++/::-.`
- /+++++++++++++++++++++++oo++/:-.``
- .o+ooooooooooooooooooosssssssso++oo++/:-`
- ++osoooooooooooosssssssssssssyyo+++++++o:
- -o+ssoooooooooooosssssssssssssyyo+++++++s`
- o++ssoooooo++++++++++++++sssyyyyo++++++o:
- :o++ssoooooo${c2}/-------------${c1}+syyyyyo+++++oo
- `o+++ssoooooo${c2}/-----${c1}+++++ooosyyyyyyo++++os:
- /o+++ssoooooo${c2}/-----${c1}ooooooosyyyyyyyo+oooss
- .o++++ssooooos${c2}/------------${c1}syyyyyyhsosssy-
- ++++++ssooooss${c2}/-----${c1}+++++ooyyhhhhhdssssso
- -s+++++syssssss${c2}/-----${c1}yyhhhhhhhhhhhddssssy.
- sooooooyhyyyyyh${c2}/-----${c1}hhhhhhhhhhhddddyssy+
- :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy`
- yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/
--ysooooooydhhhhhhhhhhhddddddddddddddddssy
- .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy:
- ``.-/+oosysssssssssssssssssssssss
- ``.:/+osyysssssssssssssh.
- `-:/+osyyssssyo
- .-:+++`
-EOF
- ;;
-
- "Funtoo"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} .dKXXd .
- :XXl;:. .OXo
-.'OXO'' .''''''''''''''''''''':XNd..'oco.lco,
-xXXXXXX, cXXXNNNXXXXNNXXXXXXXXNNNNKOOK; d0O .k
- kXX xXo KNNN0 KNN. 'xXNo :c; 'cc.
- kXX xNo KNNN0 KNN. :xxxx. 'NNo
- kXX xNo loooc KNN. oNNNN. 'NNo
- kXX xN0:. KNN' oNNNX' ,XNk
- kXX xNNXNNNNNNNNXNNNNNNNNXNNOxXNX0Xl
- ... ......................... .;cc;.
-EOF
- ;;
-
- "GalliumOS"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1}sooooooooooooooooooooooooooooooooooooo+:
-yyooooooooooooooooooooooooooooooooo+/:::
-yyysoooooooooooooooooooooooooooo+/::::::
-yyyyyoooooooooooooooooooooooo+/:::::::::
-yyyyyysoooooooooooooooooo++/::::::::::::
-yyyyyyysoooooooooooooo++/:::::::::::::::
-yyyyyyyyysoooooo${c2}sydddys${c1}+/:::::::::::::::
-yyyyyyyyyysooo${c2}smMMMMMMMNd${c1}+::::::::::::::
-yyyyyyyyyyyyo${c2}sMMMMMMMMMMMN${c1}/:::::::::::::
-yyyyyyyyyyyyy${c2}dMMMMMMMMMMMM${c1}o//:::::::::::
-yyyyyyyyyyyyy${c2}hMMMMMMMMMMMm${c1}--//::::::::::
-yyyyyyyyyyyyyy${c2}hmMMMMMMMNy${c1}:..-://::::::::
-yyyyyyyyyyyyyyy${c2}yyhhyys+:${c1}......://:::::::
-yyyyyyyyyyyyyyys+:--...........-///:::::
-yyyyyyyyyyyys+:--................://::::
-yyyyyyyyyo+:-.....................-//:::
-yyyyyyo+:-..........................://:
-yyyo+:-..............................-//
-o/:-...................................:
-EOF
- ;;
-
- "Garuda"*)
- set_colors 7 7 3 7 2 4
- read -rd '' ascii_data <<'EOF'
-
-${c3}
- .%;888:8898898:
- x;XxXB%89b8:b8%b88:
- .8Xxd 8X:.
- .8Xx; 8x:.
- .tt8x ${c6}.d${c3} x88;
- .@8x8; ${c6}.db:${c3} xx@;
- ${c4},tSXX° .bbbbbbbbbbbbbbbbbbbB8x@;
- .SXxx bBBBBBBBBBBBBBBBBBBBbSBX8;
- ,888S pd!
- 8X88/ q
- GBB.
- ${c5}x%88 d888@8@X@X@X88X@@XX@@X@8@X.
- dxXd dB8b8b8B8B08bB88b998888b88x.
- dxx8o .@@;.
- dx88 .t@x.
- d:SS@8ba89aa67a853Sxxad.
- .d988999889889899dd.
-
-EOF
-
- ;;
-
- "gentoo_small")
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} _-----_
-( \\
-\ 0 \\
-${c2} \ )
- / _/
-( _-
-\____-
-EOF
- ;;
-
- "Gentoo"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} -/oyddmdhs+:.
- -o${c2}dNMMMMMMMMNNmhy+${c1}-`
- -y${c2}NMMMMMMMMMMMNNNmmdhy${c1}+-
- `o${c2}mMMMMMMMMMMMMNmdmmmmddhhy${c1}/`
- om${c2}MMMMMMMMMMMN${c1}hhyyyo${c2}hmdddhhhd${c1}o`
-.y${c2}dMMMMMMMMMMd${c1}hs++so/s${c2}mdddhhhhdm${c1}+`
- oy${c2}hdmNMMMMMMMN${c1}dyooy${c2}dmddddhhhhyhN${c1}d.
- :o${c2}yhhdNNMMMMMMMNNNmmdddhhhhhyym${c1}Mh
- .:${c2}+sydNMMMMMNNNmmmdddhhhhhhmM${c1}my
- /m${c2}MMMMMMNNNmmmdddhhhhhmMNh${c1}s:
- `o${c2}NMMMMMMMNNNmmmddddhhdmMNhs${c1}+`
- `s${c2}NMMMMMMMMNNNmmmdddddmNMmhs${c1}/.
- /N${c2}MMMMMMMMNNNNmmmdddmNMNdso${c1}:`
-+M${c2}MMMMMMNNNNNmmmmdmNMNdso${c1}/-
-yM${c2}MNNNNNNNmmmmmNNMmhs+/${c1}-`
-/h${c2}MMNNNNNNNNMNdhs++/${c1}-`
-`/${c2}ohdmmddhys+++/:${c1}.`
- `-//////:--.
-EOF
- ;;
-
- "Pentoo"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c2} `:oydNNMMMMNNdyo:`
- :yNMMMMMMMMMMMMMMMMNy:
- :dMMMMMMMMMMMMMMMMMMMMMMd:
- oMMMMMMMho/-....-/ohMMMMMMMo
- oMMMMMMy. .yMMMMMMo
- .MMMMMMo oMMMMMM.
- +MMMMMm mMMMMM+
- oMMMMMh hMMMMMo
- //hMMMMMm//${c1}`${c2} ${c1}`${c2}////mMMMMMh//
-MMMMMMMMMMM${c1}/${c2} ${c1}/o/`${c2} ${c1}.${c2}smMMMMMMMMMMM
-MMMMMMMMMMm ${c1}`NMN:${c2} ${c1}.${c2}yMMMMMMMMMM
-MMMMMMMMMMMh${c1}:.${c2} dMMMMMMMMM
-MMMMMMMMMMMMMy${c1}.${c2} ${c1}-${c2}NMMMMMMMMM
-MMMMMMMMMMMd:${c1}`${c2} ${c1}-${c2}yNMMMMMMMMMM
-MMMMMMMMMMh${c1}`${c2} ${c1}./${c2}hNMMMMMMMMMMMM
-MMMMMMMMMM${c1}s${c2} ${c1}.:${c2}ymMMMMMMMMMMMMMMM
-MMMMMMMMMMN${c1}s:..-/${c2}ohNMMMMMMMMMMMMMMMMMM
-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
- MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
-
-EOF
- ;;
-
- "glaucus"*)
- set_colors 5
- read -rd '' ascii_data <<'EOF'
-${c1} ,, ,d88P
- ,d8P ,ad8888*
- ,888P d88888* ,,ad8888P*
- d d888P a88888P* ,ad8888888*
- .d8 d8888: d888888* ,d888888P*
- .888; 88888b d8888888b8888888P
- d8888J888888a88888888888888P* ,d
- 88888888888888888888888888P ,,d8*
- 888888888888888888888888888888888*
- *8888888888888888888888888888888*
- Y888888888P* `*``*888888888888*
- *^888^* *Y888P**
-EOF
- ;;
-
- "gNewSense"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} ..,,,,..
- .oocchhhhhhhhhhccoo.
- .ochhlllllllc hhhhhh ollllllhhco.
- ochlllllllllll hhhllllllhhh lllllllllllhco
- .cllllllllllllll hlllllo +hllh llllllllllllllc.
-ollllllllllhco'' hlllllo +hllh ``ochllllllllllo
-hllllllllc' hllllllllllllh `cllllllllh
-ollllllh +llllllllllll+ hllllllo
- `cllllh. ohllllllho .hllllc'
- ochllc. ++++ .cllhco
- `+occooo+. .+ooocco+'
- `+oo++++ ++++oo+'
-EOF
- ;;
-
- "GNOME"*)
- set_colors 4
- read -rd '' ascii_data <<'EOF'
-${c1} ,@@@@@@@@,
- @@@@@@ @@@@@@@@@@@@
- ,@@. @@@@@@@ *@@@@@@@@@@@@
- @@@@@% @@@@@@( @@@@@@@@@@@&
- @@@@@@ @@@@* @@@@@@@@@#
-@@@@* @@@@, *@@@@@%
-@@@@@.
- @@@@# @@@@@@@@@@@@@@@@
- ,@@@@@@@@@@@@@@@@@@@@@@@,
- ,@@@@@@@@@@@@@@@@@@@@@@@@@@&
- .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- @@@@@@@@@@@@@@@@@@@@@@@@@@@
- @@@@@@@@@@@@@@@@@@@@@@@@(
- @@@@@@@@@@@@@@@@@@@@%
- @@@@@@@@@@@@@@@@
- @@@@@@@@@@@@* @@@@@@@@/
- &@@@@@@@@@@ @@@@@@@@@*
- @@@@@@@@@@@, @@@@@@@@@*
- ,@@@@@@@@@@@@@@@@@@@@&
- &@@@@@@@@@@@@@@
- ...
-EOF
- ;;
-
- "GNU")
- set_colors fg 7
- read -rd '' ascii_data <<'EOF'
-${c1} _-`````-, ,- '- .
- .' .- - | | - -. `.
- /.' / `. \
-:/ : _... ..._ `` :
-:: : /._ .`:'_.._\. || :
-:: `._ ./ ,` : \ . _.'' .
-`:. / | -. \-. \\_ /
- \:._ _/ .' .@) \@) ` `\ ,.'
- _/,--' .- .\,-.`--`.
- ,'/'' (( \ ` )
- /'/' \ `-' (
- '/'' `._,-----'
- ''/' .,---'
- ''/' ;:
- ''/'' ''/
- ''/''/''
- '/'/'
- `;
-EOF
- ;;
-
- "GoboLinux"*)
- set_colors 5 4 6 2
- read -rd '' ascii_data <<'EOF'
-${c1} _____ _
- / ____| | |
-| | __ ___ | |__ ___
-| | |_ |/ _ \| '_ \ / _ \
-| |__| | (_) | |_) | (_) |
- \_____|\___/|_.__/ \___/
-EOF
- ;;
-
- "Grombyang"*)
- set_colors 4 2 1
- read -rd '' ascii_data <<'EOF'
-${c1} eeeeeeeeeeee
- eeeeeeeeeeeeeeeee
- eeeeeeeeeeeeeeeeeeeeeee
- eeeee ${c2}.o+ ${c1}eeee
- eeee ${c2}`ooo/ ${c1}eeee
- eeee ${c2}`+oooo: ${c1}eeee
-eee ${c2}`+oooooo: ${c1}eee
-eee ${c2}-+oooooo+: ${c1}eee
-ee ${c2}`/:oooooooo+: ${c1}ee
-ee ${c2}`/+ +++ +: ${c1}ee
-ee ${c2}+o+\ ${c1}ee
-eee ${c2}+o+\ ${c1}eee
-eee ${c2}// \\ooo/ \\\ ${c1}eee
- eee ${c2}//++++oooo++++\\\ ${c1}eee
- eeee ${c2}::::++oooo+::::: ${c1}eeee
- eeeee ${c3}Grombyang OS ${c1} eeee
- eeeeeeeeeeeeeeeeeeeeeee
- eeeeeeeeeeeeeeeee
-EOF
- ;;
-
- "guix_small"*)
- set_colors 3 7 6 1 8
- read -rd '' ascii_data <<'EOF'
-${c1}|.__ __.|
-|__ \\ / __|
- \\ \\ / /
- \\ \\ / /
- \\ \\ / /
- \\ \\/ /
- \\__/
-EOF
- ;;
-
- "Guix"*)
- set_colors 3 7 6 1 8
- read -rd '' ascii_data <<'EOF'
-${c1} .. `.
- `--..```..` `..```..--`
- .-:///-:::. `-:::///:-.
- ````.:::` `:::.````
- -//:` -::-
- ://: -::-
- `///- .:::`
- -+++-:::.
- :+/:::-
- `-....`
-EOF
- ;;
-
- "haiku_small"*)
- set_colors 2 8
- read -rd '' ascii_data <<'EOF'
-${c1} ,^,
- / \\
-*--_ ; ; _--*
-\\ '" "' /
- '. .'
-.-'" "'-.
- '-.__. .__.-'
- |_|
-EOF
- ;;
-
- "Haiku"*)
- set_colors 1 3 7 2
- read -rd '' ascii_data <<'EOF'
-${c3}
-
- MMMM MMMM
- MMMM MMMM
- MMMM MMMM
- MMMM MMMM
- MMMM${c4} .ciO| /YMMMMM*"
-${c3} MMMM${c4} .cOMMMMM|/MMMMM/`
- , ,iMM|/MMMMMMMMMMMMMMM*
- `*.__,-cMMMMMMMMMMMMMMMMM/`${c3}.MMM
- MM${c4}MMMMMMM/`:MMM/ ${c3}MMMM
- MMMM MMMM
- MMMM MMMM
- """" """"
-EOF
- ;;
-
- "Huayra"*)
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c2} `
- . . `
- `` - . .
- `.` -` `. - `` .`
- ..`-`-` + - / .` ```
- .--.+--`+:- :/.` .-``.`
- -+/so::h:.d-`./:`.`
- :hNhyMomy:os-...-. ````
- .dhsshNmNhoo+:-``.```
- ${c1}`ohy:-${c2}NMds+::-.``
- ````${c1}.hNN+`${c2}mMNho/:-....````
- ````` `../dmNhoo+/:..``
- ```` .dh++o/:....`
-.+s/` `/s-.-.:.`` ````
-::` `::`..`
- .` `..
- ``
-EOF
- ;;
-
- "HydroOS"*)
- set_colors 1 2 3 4 5
- read -rd '' ascii_data <<'EOF'
-${c1}
- _ _ _ ____ _____
- | | | | | | / __ \ / ____|
- | |__| |_ _ __| |_ __ ___ | | | | (___
- | __ | | | |/ _` | '__/ _ \| | | |\___ \
- | | | | |_| | (_| | | | (_) | |__| |____) |
- |_| |_|\__, |\__,_|_| \___/ \____/|_____/
- __/ |
- |___/
-EOF
- ;;
-
- "hyperbola_small"*)
- set_colors 8
- read -rd '' ascii_data <<'EOF'
-${c1} |`__.`/
- \____/
- .--.
- / \\
- / ___ \\
- / .` `.\\
-/.` `.\\
-EOF
- ;;
-
- "Hyperbola"*)
- set_colors 8
- read -rd '' ascii_data <<'EOF'
-${c1} WW
- KX W
- WO0W NX0O
- NOO0NW WNXK0OOKW
- W0OOOOOOOOOOOOKN
- N0OOOOOOO0KXW
- WNXXXNW
- NXK00000KN
- WNK0OOOOOOOOOO0W
- NK0OOOOOOOOOOOOOO0W
- X0OOOOOOO00KK00OOOOOK
- X0OOOO0KNWW WX0OO0W
- X0OO0XNW KOOW
- N00KNW KOW
- NKXN W0W
-WW W
-EOF
- ;;
-
- "iglunix"*|"iglu"*)
- set_colors 8
- read -rd '' ascii_data <<'EOF'
-${c1} |
- | |
- |
-| ________
-| /\ | \
- / \ | \ |
- / \ \ |
-/ \________\
-\ / /
- \ / /
- \ / /
- \/________/
-EOF
- ;;
-
- "januslinux"*|"janus"*|"Ataraxia Linux"*|"Ataraxia"*)
- set_colors 4 5 6 2
- read -rd '' ascii_data <<'EOF'
-${c1} 'l:
- loooooo
- loooo coooool
- looooooooooooooooooool
- looooooooooooooooo
- lool cooo
- coooooooloooooooo
- clooooo ;lood cloooo
- :loooocooo cloo loooo
- loooo :ooooool loooo
-looo cooooo cooooo
-looooooooooooo ;loooooo ${c2}looooooc
-${c1}looooooooo loo cloooooool ${c2}looooc
-${c1} cooo cooooooooooo ${c2}looolooooool
-${c1} cooo: ${c2}coooooooooooooooooool
- loooooooooooolc: loooc;
- cooo: loooooooooooc
- ;oool looooooo:
- coool olc,
- looooc ,,
- coooooc loc
- :oooool, coool:, looool:,
- looool: ooooooooooooooo:
- cooolc .ooooooooooool
-EOF
- ;;
-
- "Kaisen"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} `
- `:+oyyho.
- `+:`sdddddd/
- `+` :ho oyo++ohds-`
- .ho :dd. .: `sddddddhhyso+/-
- ody.ddd-:yd- +hysssyhddddddddho`
- yddddddhddd` ` `--` -+hddddddh.
- hddy-+dddddy+ohh/..+sddddy/:::+ys
- :ddd/sdddddddddd- oddddddd `
- `yddddddddddddddd/ /ddddddd/
-:. :ydddddddddddddddddo..sddddddy/`
-odhdddddddo- `ddddh+-``....-+hdddddds.
--ddddddhd: /dddo -ydddddddhdddddddd-
- /hdy:o - `:sddds .`./hdddddddddddddo
- `/- `+hddyosy+ :dddddddy-.-od/
- :sydds -hddddddd` /
- .+shd- `:ohddddddddd`
- `:+ooooooooooooo:
-EOF
- ;;
-
- "Kali"*)
- set_colors 4 8
- read -rd '' ascii_data <<'EOF'
-${c1}..............
- ..,;:ccc,.
- ......''';lxO.
-.....''''..........,:ld;
- .';;;:::;,,.x,
- ..'''. 0Xxoc:,. ...
- .... ,ONkc;,;cokOdc',.
- . OMo ':${c2}dd${c1}o.
- dMc :OO;
- 0M. .:o.
- ;Wd
- ;XO,
- ,d0Odlc;,..
- ..',;:cdOOd::,.
- .:d;.':;.
- 'd, .'
- ;l ..
- .o
- c
- .'
- .
-EOF
- ;;
-
- "KaOS"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ..
- ..... ..OSSAAAAAAA..
- .KKKKSS. .SSAAAAAAAAAAA.
-.KKKKKSO. .SAAAAAAAAAA...
-KKKKKKS. .OAAAAAAAA.
-KKKKKKS. .OAAAAAA.
-KKKKKKS. .SSAA..
-.KKKKKS..OAAAAAAAAAAAA........
- DKKKKO.=AA=========A===AASSSO..
- AKKKS.==========AASSSSAAAAAASS.
- .=KKO..========ASS.....SSSSASSSS.
- .KK. .ASS..O.. =SSSSAOSS:
- .OK. .ASSSSSSSO...=A.SSA.
- .K ..SSSASSSS.. ..SSA.
- .SSS.AAKAKSSKA.
- .SSS....S..
-EOF
- ;;
-
- "KDE"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} `..---+/---..`
- `---.`` `` `.---.`
- .--.` `` `-:-.
- `:/: `.----//----.` :/-
- .:. `---` `--.` .:`
- .:` `--` .:- `:.
- `/ `:. `.-::-.` -:` `/`
- /. /. `:++++++++:` .: .:
-`/ .: `+++++++++++/ /` `+`
-/+` -- .++++++++++++` :. .+:
-`/ .: `+++++++++++/ /` `+`
- /` /. `:++++++++:` .: .:
- ./ `:. `.:::-.` -:` `/`
- .:` `--` .:- `:.
- .:. `---` `--.` .:`
- `:/: `.----//----.` :/-
- .-:.` `` `-:-.
- `---.`` `` `.---.`
- `..---+/---..`
-EOF
- ;;
-
- "Kibojoe"*)
- set_colors 2 7 4
- read -rd '' ascii_data <<'EOF'
- ${c3} ./+oooooo+/.
- -/+ooooo+/:.`
- ${c1}`${c3}yyyo${c2}+++/++${c3}osss${c1}.
- ${c1}+NMN${c3}yssssssssssss${c1}.
- ${c1}.dMMMMN${c3}sssssssssssy${c1}Ns`
- +MMMMMMMm${c3}sssssssssssh${c1}MNo`
- `hMMMMMNNNMd${c3}sssssssssssd${c1}MMN/
- .${c3}syyyssssssy${c1}NNmmmmd${c3}sssss${c1}hMMMMd:
- -NMmh${c3}yssssssssyhhhhyssyh${c1}mMMMMMMMy`
- -NMMMMMNN${c3}mdhyyyyyyyhdm${c1}NMMMMMMMMMMMN+
-`NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd.
-ods+/:-----://+oyydmNMMMMMMMMMMMMMMMMMN-
-` .-:+osyhhdmmNNNmdo
-EOF
- ;;
-
- "Kogaion"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ;; ,;
- ;;; ,;;
- ,;;;; ;;;;
- ,;;;;;;;; ;;;;
- ;;;;;;;;;;; ;;;;;
- ,;;;;;;;;;;;; ';;;;;,
- ;;;;;;;;;;;;;;, ';;;;;;;
- ;;;;;;;;;;;;;;;;;, ';;;;;
-; ';;;;;;;;;;;;;;;;;;, ;;;
-;;;, ';;;;;;;;;;;;;;;;;;;,;;
-;;;;;, ';;;;;;;;;;;;;;;;;;,
-;;;;;;;;, ';;;;;;;;;;;;;;;;,
-;;;;;;;;;;;;, ';;;;;;;;;;;;;;
-';;;;;;;;;;;;; ';;;;;;;;;;;;;
- ';;;;;;;;;;;;;, ';;;;;;;;;;;
- ';;;;;;;;;;;;; ;;;;;;;;;;
- ';;;;;;;;;;;; ;;;;;;;;
- ';;;;;;;; ;;;;;;
- ';;;;; ;;;;
- ';;; ;;
-EOF
- ;;
-
- "Korora"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} ____________
- _add55555555554${c1}:
- _w?'${c1}``````````'${c2})k${c1}:
- _Z'${c1}`${c2} ]k${c1}:
- m(${c1}`${c2} )k${c1}:
- _.ss${c1}`${c2}m[${c1}`${c2}, ]e${c1}:
- .uY"^`${c1}`${c2}Xc${c1}`${c2}?Ss. d(${c1}`
- jF'${c1}`${c2} `@. ${c1}`${c2}Sc .jr${c1}`
- jr${c1}`${c2} `?n_ ${c1}`${c2}$; _a2"${c1}`
-.m${c1}:${c2} `~M${c1}`${c2}1k${c1}`${c2}5?!`${c1}`
-:#${c1}:${c2} ${c1}`${c2})e${c1}```
-:m${c1}:${c2} ,#'${c1}`
-:#${c1}:${c2} .s2'${c1}`
-:m,________.aa7^${c1}`
-:#baaaaaaas!J'${c1}`
- ```````````
-EOF
- ;;
-
- "KSLinux"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} K K U U RRRR ooo
- K K U U R R o o
- KKK U U RRRR o o
- K K U U R R o o
- K K UUU R R ooo
-
-${c2} SSS AAA W W AAA
- S A A W W A A
- SSS AAAAA W W W AAAAA
- S A A WW WW A A
- SSS A A W W A A
-EOF
- ;;
-
- "Kubuntu"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} `.:/ossyyyysso/:.
- .:oyyyyyyyyyyyyyyyyyyo:`
- -oyyyyyyyo${c2}dMMy${c1}yyyyyyysyyyyo-
- -syyyyyyyyyy${c2}dMMy${c1}oyyyy${c2}dmMMy${c1}yyyys-
- oyyys${c2}dMy${c1}syyyy${c2}dMMMMMMMMMMMMMy${c1}yyyyyyo
- `oyyyy${c2}dMMMMy${c1}syysoooooo${c2}dMMMMy${c1}yyyyyyyyo`
- oyyyyyy${c2}dMMMMy${c1}yyyyyyyyyyys${c2}dMMy${c1}sssssyyyo
--yyyyyyyy${c2}dMy${c1}syyyyyyyyyyyyyys${c2}dMMMMMy${c1}syyy-
-oyyyysoo${c2}dMy${c1}yyyyyyyyyyyyyyyyyy${c2}dMMMMy${c1}syyyo
-yyys${c2}dMMMMMy${c1}yyyyyyyyyyyyyyyyyysosyyyyyyyy
-yyys${c2}dMMMMMy${c1}yyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-oyyyyysos${c2}dy${c1}yyyyyyyyyyyyyyyyyy${c2}dMMMMy${c1}syyyo
--yyyyyyyy${c2}dMy${c1}syyyyyyyyyyyyyys${c2}dMMMMMy${c1}syyy-
- oyyyyyy${c2}dMMMy${c1}syyyyyyyyyyys${c2}dMMy${c1}oyyyoyyyo
- `oyyyy${c2}dMMMy${c1}syyyoooooo${c2}dMMMMy${c1}oyyyyyyyyo
- oyyysyyoyyyys${c2}dMMMMMMMMMMMy${c1}yyyyyyyo
- -syyyyyyyyy${c2}dMMMy${c1}syyy${c2}dMMMy${c1}syyyys-
- -oyyyyyyy${c2}dMMy${c1}yyyyyysosyyyyo-
- ./oyyyyyyyyyyyyyyyyyyo/.
- `.:/oosyyyysso/:.`
-EOF
- ;;
-
- "LEDE"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
- ${c1} _________
- / /\
- / LE / \
- / DE / \
- /________/ LE \
- \ \ DE /
- \ LE \ /
- \ DE \ /
- \________\/
-EOF
- ;;
-
- "LaxerOS"*)
- set_colors 7 4
- read -rd '' ascii_data <<'EOF'
-${c2}
- /.
- `://:-
- `//////:
- .////////:`
- -//////////:`
- -/////////////`
- :///////////////.
- `://////.```-//////-
- `://///:` .//////-
- `//////: `//////:
- .//////- `://///:`
- -//////- `://///:`
- -//////. ://////`
- ://////` -//////.
- `/////:` ./////:
- .-::-` .:::-`
-
-.:://////////////////////////////////::.
-////////////////////////////////////////
-.:////////////////////////////////////:.
-
-EOF
- ;;
-
- "LibreELEC"*)
- set_colors 2 3 7 14 13
- read -rd '' ascii_data <<'EOF'
-${c1} :+ooo/. ${c2}./ooo+:
-${c1} :+ooooooo/. ${c2}./ooooooo+:
-${c1} :+ooooooooooo:${c2}:ooooooooooo+:
-${c1} :+ooooooooooo+- ${c2}-+ooooooooooo+:
-${c1} :+ooooooooooo+- ${c3}-- ${c2}-+ooooooooooo+:
-${c1}.+ooooooooooo+- ${c3}:+oo+: ${c2}-+ooooooooooo+-
-${c1}-+ooooooooo+- ${c3}:+oooooo+: ${c2}-+oooooooooo-
-${c1} :+ooooo+- ${c3}:+oooooooooo+: ${c2}-+oooooo:
-${c1} :+o+- ${c3}:+oooooooooooooo+: ${c2}-+oo:
-${c4} ./ ${c3}:oooooooooooooooooo: ${c5}/.
-${c4} ./oo+: ${c3}-+oooooooooooooo+- ${c5}:+oo/.
-${c4} ./oooooo+: ${c3}-+oooooooooo+- ${c5}:+oooooo/.
-${c4}-oooooooooo+: ${c3}-+oooooo+- ${c5}:+oooooooooo-
-${c4}.+ooooooooooo+: ${c3}-+oo+- ${c5}:+ooooooooooo+.
-${c4} -+ooooooooooo+: ${c3}.. ${c5}:+ooooooooooo+-
-${c4} -+ooooooooooo+: ${c5}:+ooooooooooo+-
-${c4} -+oooooooooo+:${c5}:+oooooooooo+-
-${c4} -+oooooo+: ${c5}:+oooooo+-
-${c4} -+oo+: ${c5}:+oo+-
-${c4} .. ${c5}..
-EOF
- ;;
-
- "Linux")
- set_colors fg 8 3
- read -rd '' ascii_data <<'EOF'
-${c2} #####
-${c2} #######
-${c2} ##${c1}O${c2}#${c1}O${c2}##
-${c2} #${c3}#####${c2}#
-${c2} ##${c1}##${c3}###${c1}##${c2}##
-${c2} #${c1}##########${c2}##
-${c2} #${c1}############${c2}##
-${c2} #${c1}############${c2}###
-${c3} ##${c2}#${c1}###########${c2}##${c3}#
-${c3}######${c2}#${c1}#######${c2}#${c3}######
-${c3}#######${c2}#${c1}#####${c2}#${c3}#######
-${c3} #####${c2}#######${c3}#####
-EOF
- ;;
-
- "linuxlite_small"*)
- set_colors 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} /\\
- / \\
- / ${c2}/ ${c1}/
-> ${c2}/ ${c1}/
-\\ ${c2}\\ ${c1}\\
- \\_${c2}\\${c1}_\\
-${c2} \\
-EOF
- ;;
-
- "Linux Lite"* | "Linux_Lite"*)
- set_colors 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} ,xXc
- .l0MMMMMO
- .kNMMMMMWMMMN,
- KMMMMMMKMMMMMMo
- 'MMMMMMNKMMMMMM:
- kMMMMMMOMMMMMMO
- .MMMMMMX0MMMMMW.
- oMMMMMMxWMMMMM:
- WMMMMMNkMMMMMO
-:MMMMMMOXMMMMW
-.0MMMMMxMMMMM;
-:;cKMMWxMMMMO
-'MMWMMXOMMMMl
- kMMMMKOMMMMMX:
- .WMMMMKOWMMM0c
- lMMMMMWO0MNd:'
- oollXMKXoxl;.
- ':. .: .'
- ..
- .
-EOF
- ;;
-
- "LMDE"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
- ${c2}`.-::---..
-${c1} .:++++ooooosssoo:.
- .+o++::. `.:oos+.
-${c1} :oo:.` -+oo${c2}:
-${c1} ${c2}`${c1}+o/` .${c2}::::::${c1}-. .++-${c2}`
-${c1}${c2}`${c1}/s/ .yyyyyyyyyyo: +o-${c2}`
-${c1}${c2}`${c1}so .ss ohyo` :s-${c2}:
-${c1}${c2}`${c1}s/ .ss h m myy/ /s`${c2}`
-${c1}`s: `oo s m Myy+-o:`
-`oo :+sdoohyoydyso/.
- :o. .:////////++:
-${c1} `/++ ${c2}-:::::-
-${c1} ${c2}`${c1}++-
-${c1} ${c2}`${c1}/+-
-${c1} ${c2}.${c1}+/.
-${c1} ${c2}.${c1}:+-.
- `--.``
-EOF
- ;;
-
- "Lubuntu"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} `.:/ossyyyysso/:.
- `.:yyyyyyyyyyyyyyyyyy:.`
- .:yyyyyyyyyyyyyyyyyyyyyyyy:.
- .:yyyyyyyyyyyyyyyyyyyyyyyyyyyy:.
- -yyyyyyyyyyyyyy${c2}+hNMMMNh+${c1}yyyyyyyyy-
- :yy${c2}mNy+${c1}yyyyyyyy${c2}+Nmso++smMdhyysoo+${c1}yy:
- -yy${c2}+MMMmmy${c1}yyyyyy${c2}hh${c1}yyyyyyyyyyyyyyyyyyy-
-.yyyy${c2}NMN${c1}yy${c2}shhs${c1}yyy${c2}+o${c1}yyyyyyyyyyyyyyyyyyyy.
-:yyyy${c2}oNM+${c1}yyyy${c2}+sso${c1}yyyyyyy${c2}ss${c1}yyyyyyyyyyyyy:
-:yyyyy${c2}+dNs${c1}yyyyyyy${c2}++${c1}yyyyy${c2}oN+${c1}yyyyyyyyyyyy:
-:yyyyy${c2}oMMmhysso${c1}yyyyyyyyyy${c2}mN+${c1}yyyyyyyyyyy:
-:yyyyyy${c2}hMm${c1}yyyyy${c2}+++${c1}yyyyyyy${c2}+MN${c1}yyyyyyyyyyy:
-.yyyyyyy${c2}ohmy+${c1}yyyyyyyyyyyyy${c2}NMh${c1}yyyyyyyyyy.
- -yyyyyyyyyy${c2}++${c1}yyyyyyyyyyyy${c2}MMh${c1}yyyyyyyyy-
- :yyyyyyyyyyyyyyyyyyyyy${c2}+mMN+${c1}yyyyyyyy:
- -yyyyyyyyyyyyyyyyy${c2}+sdMMd+${c1}yyyyyyyy-
- .:yyyyyyyyy${c2}hmdmmNMNdy+${c1}yyyyyyyy:.
- .:yyyyyyy${c2}my${c1}yyyyyyyyyyyyyyy:.
- `.:yyyy${c2}s${c1}yyyyyyyyyyyyy:.`
- `.:/oosyyyysso/:.`
-EOF
- ;;
-
- "Lunar"*)
- set_colors 4 7 3
- read -rd '' ascii_data <<'EOF'
-${c1}`-. `-.
- -ohys/-` `:+shy/`
- -omNNdyo/` :+shmNNy/`
- ${c3} -
- /mMmo
- hMMMN`
- .NMMs
- ${c1} -:+oooo+//: ${c3}/MN${c1}. -///oooo+/-`
- /:.` ${c3}/${c1} `.:/`
-${c3} __
- | | _ _ ___ ___ ___
- | |__| | | | .'| _|
- |_____|___|_|_|__,|_|
-EOF
- ;;
-
- "mac"*"_small")
- set_colors 2 3 1 5 4
- read -rd '' ascii_data <<'EOF'
-${c1} .:'
- _ :'_
-${c2} .'`_`-'_``.
-:________.-'
-${c3}:_______:
-:_______:
-${c4} :_______`-;
-${c5} `._.-._.'
-EOF
- ;;
-
- "mac"* | "Darwin")
- set_colors 2 3 1 1 5 4
- read -rd '' ascii_data <<'EOF'
-${c1} c.'
- ,xNMM.
- .OMMMMo
- lMM"
- .;loddo:. .olloddol;.
- cKMMMMMMMMMMNWMMMMMMMMMM0:
-${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd.
- XMMMMMMMMMMMMMMMMMMMMMMMX.
-${c3};MMMMMMMMMMMMMMMMMMMMMMMM:
-:MMMMMMMMMMMMMMMMMMMMMMMM:
-${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX.
- kMMMMMMMMMMMMMMMMMMMMMMMMWd.
- ${c5}'XMMMMMMMMMMMMMMMMMMMMMMMMMMk
- 'XMMMMMMMMMMMMMMMMMMMMMMMMK.
- ${c6}kMMMMMMMMMMMMMMMMMMMMMMd
- ;KMMMMMMMWXXWMMMMMMMk.
- "cooc*" "*coo'"
-EOF
- ;;
-
- "mageia_small"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} *
- *
- **
-${c2} /\\__/\\
-/ \\
-\\ /
- \\____/
-EOF
- ;;
-
- "Mageia"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} .°°.
- °° .°°.
- .°°°. °°
- . .
- °°° .°°°.
- .°°°. '___'
-${c2} .${c1}'___' ${c2} .
- :dkxc;'. ..,cxkd;
- .dkk. kkkkkkkkkk .kkd.
-.dkk. ';cloolc;. .kkd
-ckk. .kk;
-xO: cOd
-xO: lOd
-lOO. .OO:
-.k00. .00x
- .k00; ;00O.
- .lO0Kc;,,,,,,;c0KOc.
- ;d00KKKKKK00d;
- .,KKKK,.
-EOF
- ;;
-
- "MagpieOS"*)
- set_colors 2 1 3 5
- read -rd '' ascii_data <<'EOF'
-${c1} ;00000 :000Ol
- .x00kk00: O0kk00k;
- l00: :00. o0k :O0k.
- .k0k. x${c2}d$dddd${c1}k' .d00;
- k0k. ${c2}.dddddl ${c1}o00,
- o00. ${c2}':cc:. ${c1}d0O
-.00l ,00.
-l00. d0x
-k0O .:k0o
-O0k ;dO0000d.
-k0O .O0O${c2}xxxxk${c1}00:
-o00. k0O${c2}dddddd${c1}occ
-'00l x0O${c2}dddddo${c3};..${c1}
- x00. .x00${c2}kxxd${c3}:..${c1}
- .O0x .:oxxx${c4}Okl.${c1}
- .x0d ${c4},xx,${c1}
- .:o. ${c4}.xd ckd${c1}
- .. ${c4}dxl .xx;
- :xxolldxd'
- ;oxdl.
-EOF
- ;;
-
- "Mandriva"* | "Mandrake"*)
- set_colors 4 3
- read -rd '' ascii_data <<'EOF'
-${c2} ``
- `-.
-${c1} ` ${c2}.---
-${c1} -/ ${c2}-::--`
-${c1} `++ ${c2}`----...```-:::::.
-${c1} `os. ${c2}.::::::::::::::-``` ` `
-${c1} +s+ ${c2}.::::::::::::::::---...--`
-${c1}-ss: ${c2}`-::::::::::::::::-.``.``
-${c1}/ss- ${c2}.::::::::::::-.`` `
-${c1}+ss: ${c2}.::::::::::::-
-${c1}/sso ${c2}.::::::-::::::-
-${c1}.sss/ ${c2}-:::-.` .:::::
-${c1} /sss+. ${c2}..`${c1} `--` ${c2}.:::
-${c1} -ossso+/:://+/-` ${c2}.:`
-${c1} -/+ooo+/-. ${c2}`
-EOF
- ;;
-
- "manjaro_small"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1}||||||||| ||||
-||||||||| ||||
-|||| ||||
-|||| |||| ||||
-|||| |||| ||||
-|||| |||| ||||
-|||| |||| ||||
-EOF
- ;;
-
- "Manjaro"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1}██████████████████ ████████
-██████████████████ ████████
-██████████████████ ████████
-██████████████████ ████████
-████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-████████ ████████ ████████
-EOF
- ;;
-
- "TeArch"*)
- set_colors 39 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} @@@@@@@@@@@@@@
- @@@@@@@@@ @@@@@@
- @@@@@ @@@@@
- @@ @@
- @% @@
- @ @
- @@@@@@@@@@@@@@@@@@@@@@@@ @@
- .@@@@@@@@@@@@/@@@@@@@@@@@@
- @@@@@@@@@@@@///@@@@@@@@@@@@
- @@@@@@@@@@@@@((((@@@@@@@@@@@@
- @@@@@@@@@@@#(((((((#@@@@@@@@@@@
- @@@@@@@@@@@#//////////@@@@@@@@@@&
- @@@@@@@@@@////@@@@@////@@@@@@@@@@
- @@@@@@@@//////@@@@@/////@@@@@@@@@
- @@@@@@@//@@@@@@@@@@@@@@@//@@@@@@@
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@@ .@@@@@@@@@@@@@@@@@@@@@@@@@ @
- @@@@@@ @@@. @@@@@@@
- @@@@@@@&@@@@@@@# #@@@@@@@@@@@@@@@@
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- @@@@@@@@@@@@@@@@@@@@@
-EOF
- ;;
-
- "Maui"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} `.-://////:--`
- .:/oooooooooooooooo+:.
- `:+ooooooooooooooooooooooo:`
- `:oooooooooooooooooooooooooooo/`
- ..```-oooooo/-`` `:oooooo+:.` `--
- :. +oo+-` /ooo/` -/
- -o. `o+- +o/` -o:
-`oo` ::` :o/ `+. .+o` /oo.
-/o+ . -+oo- ` /oo/ `ooo/
-+o- /ooo+` .+ooo. :ooo+
-++ .+oooo: -oooo+ `oooo+
-:. .oooooo` :ooooo- :oooo:
-` .oooooo: :ooooo+ `ooo+-`
- .+oooooo` -oooooo: `o/-
- +oooooo: .ooooooo.
- /ooooooo` /ooooooo/ ..
- `:oooooooo/:::/ooooooooo+:--:/:`
- `:+oooooooooooooooooooooo+:`
- .:+oooooooooooooooo+:.
- `.-://////:-.`
-EOF
- ;;
-
- "Mer"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} dMs
- .-`
- `y`-o+`
- ``NMMy
- .--`:++.
- .hNNNNs
- /MMMMMN
- `ommmd/ +/
- ```` +/
- `:+sssso/-`
- .-::. `-::-` `smNMNmdmNMNd/ .://-`
-.ymNMNNdmNMMNm+` -dMMh:.....+dMMs `sNNMMNo
-dMN+::NMMy::hMM+ mMMo `ohhy/ `dMM+ yMMy::-
-MMm yMM- :MMs NMN` `:::::--sMMh dMM`
-MMm yMM- -MMs mMM+ `ymmdsymMMMs dMM`
-NNd sNN- -NNs -mMNs-.--..:dMMh` dNN
---- .--` `--. .smMMmdddmMNdo` .--
- ./ohddds+:`
- +h- `.:-.
- ./`.dMMMN+
- +MMMMMd
- `+dmmy-
- ``` .+`
- .dMNo-y.
- `hmm/
- .:`
- dMs
-EOF
- ;;
-
- "Minix"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c2} -sdhyo+:-` -/syymm:
- sdyooymmNNy. `` .smNmmdysNd
- odyoso+syNNmysoyhhdhsoomNmm+/osdm/
- :hhy+-/syNNmddhddddddmNMNo:sdNd:
- `smNNdNmmNmddddddddddmmmmmmmy`
- `ohhhhdddddmmNNdmddNmNNmdddddmdh-
- odNNNmdyo/:/-/hNddNy-`..-+ydNNNmd:
- `+mNho:` smmd/ sNNh :dmms` -+ymmo.
--od/ -m${c1}mm${c2}mo -NN+ +m${c1}mm${c2}m- yms:
-+sms -.` :so: .NN+ :os/ .-`mNh:
-.-hyh+:////- -sNNd:` .--://ohNs-
- `:hNNNNNNNMMd/sNMmhsdMMh/ymmNNNmmNNy/
- -+sNNNNMMNNNsmNMo: :NNmymNNNNMMMms:
- //oydNMMMMydMMNysNMMmsMMMMMNyo/`
- ../-yNMMy--/::/-.sMMmos+.`
- -+oyhNsooo+omy/```
- `::ohdmds-`
-EOF
- ;;
-
- "linuxmint_small"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} ___________
-|_ \\
- | ${c2}| _____ ${c1}|
- | ${c2}| | | | ${c1}|
- | ${c2}| | | | ${c1}|
- | ${c2}\\__${c2}___/ ${c1}|
- \\_________/
-EOF
- ;;
-
- "Linux Mint Old"* | "LinuxMintOld"* | "mint_old"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1}MMMMMMMMMMMMMMMMMMMMMMMMMmds+.
-MMm----::-://////////////oymNMd+`
-MMd ${c2}/++ ${c1}-sNMd:
-MMNso/` ${c2}dMM `.::-. .-::.` ${c1}.hMN:
-ddddMMh ${c2}dMM :hNMNMNhNMNMNh: ${c1}`NMm
- NMm ${c2}dMM .NMN/-+MMM+-/NMN` ${c1}dMM
- NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM
- NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM
- NMm ${c2}dMM .mmd `mmm yMM. ${c1}dMM
- NMm ${c2}dMM` ..` ... ydm. ${c1}dMM
- hMM- ${c2}+MMd/-------...-:sdds ${c1}dMM
- -NMm- ${c2}:hNMNNNmdddddddddy/` ${c1}dMM
- -dMNs-${c2}``-::::-------.`` ${c1}dMM
- `/dMNmy+/:-------------:/yMMM
- ./ydNMMMMMMMMMMMMMMMMMMMMM
- .MMMMMMMMMMMMMMMMMMM
-EOF
- ;;
-
- "Linux Mint"* | "LinuxMint"* | "mint"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c2} ...-:::::-...
-${c2} .-MMMMMMMMMMMMMMM-.
- .-MMMM${c1}`..-:::::::-..`${c2}MMMM-.
- .:MMMM${c1}.:MMMMMMMMMMMMMMM:.${c2}MMMM:.
- -MMM${c1}-M---MMMMMMMMMMMMMMMMMMM.${c2}MMM-
- `:MMM${c1}:MM` :MMMM:....::-...-MMMM:${c2}MMM:`
- :MMM${c1}:MMM` :MM:` `` `` `:MMM:${c2}MMM:
-.MMM${c1}.MMMM` :MM. -MM. .MM- `MMMM.${c2}MMM.
-:MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM:
-:MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM:${c2}MMM:
-:MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM:
-.MMM${c1}.MMMM` :MM:--:MM:--:MM: `MMMM.${c2}MMM.
- :MMM${c1}:MMM- `-MMMMMMMMMMMM-` -MMM-${c2}MMM:
- :MMM${c1}:MMM:` `:MMM:${c2}MMM:
- .MMM${c1}.MMMM:--------------:MMMM.${c2}MMM.
- '-MMMM${c1}.-MMMMMMMMMMMMMMM-.${c2}MMMM-'
- '.-MMMM${c1}``--:::::--``${c2}MMMM-.'
-${c2} '-MMMMMMMMMMMMM-'
-${c2} ``-:::::-``
-EOF
- ;;
-
- "Live Raizo"* | "Live_Raizo"*)
- set_colors 3
- read -rd '' ascii_data <<'EOF'
-${c1} `......`
- -+shmNMMMMMMNmhs/.
- :smMMMMMmmhyyhmmMMMMMmo-
- -hMMMMd+:. `----` .:odMMMMh-
- `hMMMN+. .odNMMMMMMNdo. .yMMMMs`
- hMMMd. -dMMMMmdhhdNMMMNh` .mMMMh
-oMMMm` :MMMNs.:sddy:-sMMMN- `NMMM+
-mMMMs dMMMo sMMMMMMd yMMMd sMMMm
-----` .---` oNMMMMMh `---. .----
- .sMMy:
- /MM/
- +dMMms.
- hMMMMMMN
- `dMMMMMMm:
- .+ss+sMNysMMoomMd+ss+.
- +MMMMMMN` +MM/ hMMMMMNs
- sMMMMMMm-hNMMMd-hMMMMMMd
- :yddh+`hMMMMMMN :yddy/`
- .hMMMMd:
- `..`
-EOF
- ;;
-
- "mx_small"*)
- set_colors 4 6 7
- read -rd '' ascii_data <<'EOF'
-${c3} \\\\ /
- \\\\/
- \\\\
- /\\/ \\\\
- / \\ /\\
- / \\/ \\
-/__________\\
-EOF
- ;;
-
- "MX"*)
- set_colors 4 6 7
- read -rd '' ascii_data <<'EOF'
-${c3}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMM
-MMMMMMMMMMNs..yMMMMMMMMMMMMMm: +NMMMMMMM
-MMMMMMMMMN+ :mMMMMMMMMMNo` -dMMMMMMMM
-MMMMMMMMMMMs. `oNMMMMMMh- `sNMMMMMMMMM
-MMMMMMMMMMMMN/ -hMMMN+ :dMMMMMMMMMMM
-MMMMMMMMMMMMMMh- +ms. .sMMMMMMMMMMMMM
-MMMMMMMMMMMMMMMN+` ` +NMMMMMMMMMMMMMM
-MMMMMMMMMMMMMMNMMd: .dMMMMMMMMMMMMMMM
-MMMMMMMMMMMMm/-hMd- `sNMMMMMMMMMMMMM
-MMMMMMMMMMNo` -` :h/ -dMMMMMMMMMMMM
-MMMMMMMMMd: /NMMh- `+NMMMMMMMMMM
-MMMMMMMNo` :mMMN+` `-hMMMMMMMM
-MMMMMMh. `oNMMd: `/mMMMMMM
-MMMMm/ -hMd- `sNMMMM
-MMNs` - :dMMM
-Mm: `oMM
-MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
-EOF
- ;;
-
- "Namib"*)
- set_colors 1
- read -rd '' ascii_data <<'EOF'
-${c1} .:+shysyhhhhysyhs+:.
- -/yyys syyy/-
- -shy yhs-
- -yhs shy-
- +hy yh+
- +ds sd+
-/ys so sy/
-sh smMMNdyo hs
-yo ymMMMMNNMMNho oy
-N ydMMMNNMMMMMMMMMmy N
-N shmMMMMNNMMMMMMMMMMMMMNy N
-yo ooshmNMMMNNNNMMMMMMMMMMMMMMMMMms oy
-sd yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy ds
-/ys sy/
- +ds sd+
- +hy yh+
- -yhs shy-
- -shy yhs-
- -/yyys syyy/-
- .:+shysyhyhhysyhs+:.
-EOF
- ;;
-
- "Neptune"*)
- set_colors 7
- read -rd '' ascii_data <<'EOF'
-${c1} ./+sydddddddys/-.
- .+ymNNdyooo/:+oooymNNmy/`
- `/hNNh/.` `-+dNNy:`
- /mMd/. .++.:oy/ .+mMd-
- `sMN/ oMMmdy+. `oNNo
- `hMd. `/ymy/. :NMo
- oMN- `/dMd: /MM-
-`mMy -dMN+` mMs
-.MMo -NMM/ yMs
- dMh mMMMo:` `NMo
- /MM/ /ymMMMm- sMN.
- +Mm: .hMMd` oMN/
- +mNs. `yNd/` -dMm-
- .yMNs: `/.` `/yNNo`
- .odNNy+-` .:ohNNd/.
- -+ymNNmdyyyyyyydmNNmy+.
- `-//sssssss//.
-EOF
- ;;
-
- "netbsd_small"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c2}\\\\${c1}\`-______,----__
-${c2} \\\\ ${c1}__,---\`_
-${c2} \\\\ ${c1}\`.____
-${c2} \\\\${c1}-______,----\`-
-${c2} \\\\
- \\\\
- \\\\
-EOF
- ;;
-
- "NetBSD"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} `-/oshdmNMNdhyo+:-`
-${c2}y${c1}/s+:-`` `.-:+oydNMMMMNhs/-``
-${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-`
- ${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMMmy+:`
- ${c2}-N/${c1}dMMMMMMMMMMMMMMMds:`
- ${c2}-N/${c1}hMMMMMMMMMmho:`
- ${c2}-N/${c1}-:/++/:.`
-${c2} :M+
- :Mo
- :Ms
- :Ms
- :Ms
- :Ms
- :Ms
- :Ms
- :Ms
- :Ms
-EOF
- ;;
-
- "Netrunner"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} .:oydmMMMMMMmdyo:`
- -smMMMMMMMMMMMMMMMMMMds-
- +mMMMMMMMMMMMMMMMMMMMMMMMMd+
- /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/
- `hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy`
- .mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd`
- dMMMMMMMMMMMMMMMMMMMMMMNdhmMMMMMMMMMMh
-+MMMMMMMMMMMMMNmhyo+/-. -MMMMMMMMMMMM/
-mMMMMMMMMd+:.` `mMMMMMMMMMMMMd
-MMMMMMMMMMMdy/. yMMMMMMMMMMMMMM
-MMMMMMMMMMMMMMMNh+` +MMMMMMMMMMMMMMM
-mMMMMMMMMMMMMMMMMMs -NMMMMMMMMMMMMMMd
-+MMMMMMMMMMMMMMMMMN. `mMMMMMMMMMMMMMMM/
- dMMMMMMMMMMMMMMMMMy hMMMMMMMMMMMMMMMh
- `dMMMMMMMMMMMMMMMMM-+MMMMMMMMMMMMMMMd`
- `hMMMMMMMMMMMMMMMMmMMMMMMMMMMMMMMMy
- /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm:
- +dMMMMMMMMMMMMMMMMMMMMMMMMd/
- -odMMMMMMMMMMMMMMMMMMdo-
- `:+ydmNMMMMNmhy+-`
-EOF
- ;;
-
- "Nitrux"*)
- set_colors 4
- read -rd '' ascii_data <<'EOF'
-${c1}`:/.
-`/yo
-`/yo
-`/yo .+:.
-`/yo .sys+:.`
-`/yo `-/sys+:.`
-`/yo ./sss+:.`
-`/yo .:oss+:-`
-`/yo ./o///:-`
-`/yo `.-:///////:`
-`/yo `.://///++//-``
-`/yo `.-:////++++/-`
-`/yo `-://///++o+/-`
-`/yo `-/+o+++ooo+/-`
-`/s+:+oooossso/.`
-`//+sssssso:.
-`+syyyy+:`
-:+s+-
-EOF
- ;;
-
- "nixos_small")
- set_colors 4 6
- read -rd '' ascii_data <<'EOF'
- ${c1} \\\\ \\\\ //
- ==\\\\__\\\\/ //
- // \\\\//
-==// //==
- //\\\\___//
-// /\\\\ \\\\==
- // \\\\ \\\\
-EOF
- ;;
-
- "nixos_old"*)
- set_colors 4 6
- read -rd '' ascii_data <<'EOF'
-${c1} ::::. ${c2}'::::: ::::'
-${c1} '::::: ${c2}':::::. ::::'
-${c1} ::::: ${c2}'::::.:::::
-${c1} .......:::::..... ${c2}::::::::
-${c1} ::::::::::::::::::. ${c2}:::::: ${c1}::::.
- ::::::::::::::::::::: ${c2}:::::. ${c1}.::::'
-${c2} ..... ::::' ${c1}:::::'
-${c2} ::::: '::' ${c1}:::::'
-${c2} ........::::: ' ${c1}:::::::::::.
-${c2}::::::::::::: ${c1}:::::::::::::
-${c2} ::::::::::: ${c1}.. ${c1}:::::
-${c2} .::::: ${c1}.::: ${c1}:::::
-${c2} .::::: ${c1}::::: ${c1}''''' ${c2}.....
- ::::: ${c1}':::::. ${c2}......:::::::::::::'
- ::: ${c1}::::::. ${c2}':::::::::::::::::'
-${c1} .:::::::: ${c2}'::::::::::
-${c1} .::::''::::. ${c2}'::::.
-${c1} .::::' ::::. ${c2}'::::.
-${c1} .:::: :::: ${c2}'::::.
-EOF
- ;;
-
- "NixOS"*)
- set_colors 4 6
- read -rd '' ascii_data <<'EOF'
-${c1} ▗▄▄▄ ${c2}▗▄▄▄▄ ▄▄▄▖
-${c1} ▜███▙ ${c2}▜███▙ ▟███▛
-${c1} ▜███▙ ${c2}▜███▙▟███▛
-${c1} ▜███▙ ${c2}▜██████▛
-${c1} ▟█████████████████▙ ${c2}▜████▛ ${c1}▟▙
-${c1} ▟███████████████████▙ ${c2}▜███▙ ${c1}▟██▙
-${c2} ▄▄▄▄▖ ▜███▙ ${c1}▟███▛
-${c2} ▟███▛ ▜██▛ ${c1}▟███▛
-${c2} ▟███▛ ▜▛ ${c1}▟███▛
-${c2}▟███████████▛ ${c1}▟██████████▙
-${c2}▜██████████▛ ${c1}▟███████████▛
-${c2} ▟███▛ ${c1}▟▙ ▟███▛
-${c2} ▟███▛ ${c1}▟██▙ ▟███▛
-${c2} ▟███▛ ${c1}▜███▙ ▝▀▀▀▀
-${c2} ▜██▛ ${c1}▜███▙ ${c2}▜██████████████████▛
-${c2} ▜▛ ${c1}▟████▙ ${c2}▜████████████████▛
-${c1} ▟██████▙ ${c2}▜███▙
-${c1} ▟███▛▜███▙ ${c2}▜███▙
-${c1} ▟███▛ ▜███▙ ${c2}▜███▙
-${c1} ▝▀▀▀ ▀▀▀▀▘ ${c2}▀▀▀▘
-EOF
- ;;
-
- "Nurunner"*)
- set_colors 4
- read -rd '' ascii_data <<'EOF'
-${c1} ,xc
- ;00cxXl
- ;K0, .xNo.
- :KO' .lXx.
- cXk. ;xl cXk.
- cXk. ;k:.,xo. cXk.
- .lXx. :x::0MNl,dd. :KO,
- .xNx. cx;:KMMMMMNo'dx. ;KK;
- .dNl. cd,cXMMMMMMMMMWd,ox' 'OK:
-;WK. 'K,.KMMMMMMMMMMMMMWc.Kx lMO
- 'OK: 'dl'xWMMMMMMMMMM0::x: 'OK:
- .kNo .xo'xWMMMMMM0;:O: ;KK;
- .dXd. .do,oNMMO;ck: ;00,
- oNd. .dx,;'cO; ;K0,
- oNx. okk; ;K0,
- lXx. :KO'
- cKk' cXk.
- ;00:lXx.
- ,kd.
-EOF
- ;;
-
- "NuTyX"*)
- set_colors 4 1
- read -rd '' ascii_data <<'EOF'
-${c1} .
- .
- ...
- ...
- .... .........--.
- ..-++-----....--++++++---.
- .-++++++-. .-++++++++++++-----..
- .--... .++..-+++--.....-++++++++++--..
- . .-+-. .**- .... ..-+----..
- .+++. .*+. + -++-----.
- .+++++- ++. .*+. .....-+++-----.
- -+++-++. .+. .-+***++***++--++++. .
- -+-. -- -. -*- ...... ..--.
-.-. .+- . -+.
-. .+- +.
- -- --
- -+----. .-
- -++-.+. .
- .++. --
- +. ----.
- . .+. ..
- - .
- .
-EOF
- ;;
-
- "OBRevenge"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} __ __
- _@@@@ @@@g_
- _@@@@@@ @@@@@@
- _@@@@@@M W@@@@@@_
- j@@@@P ^W@@@@
- @@@@L____ _____Q@@@@
-Q@@@@@@@@@@j@@@@@@@@@@
-@@@@@ T@j@ T@@@@@
-@@@@@ ___Q@J@ _@@@@@
-@@@@@fMMM@@j@jggg@@@@@@
-@@@@@ j@j@^MW@P @@@@
-Q@@@@@ggg@@f@ @@@@@@L
-^@@@@WWMMP ^ Q@@@@
- @@@@@_ _@@@@l
- W@@@@@g_____g@@@@@P
- @@@@@@@@@@@@@@@@l
- ^W@@@@@@@@@@@P
- ^TMMMMTll
-EOF
- ;;
-
- "openbsd_small")
- set_colors 3 7 6 1 8
- read -rd '' ascii_data <<'EOF'
-${c1} _____
- \\- -/
- \\_/ \\
- | ${c2}O O${c1} |
- |_ < ) 3 )
- / \\ /
- /-_____-\\
-EOF
- ;;
-
- "OpenBSD"*)
- set_colors 3 7 6 1 8
- read -rd '' ascii_data <<'EOF'
-${c3} _
- (_)
-${c1} | .
-${c1} . |L /| . ${c3} _
-${c1} _ . |\ _| \--+._/| . ${c3}(_)
-${c1} / ||\| Y J ) / |/| ./
- J |)'( | ` F`.'/ ${c3} _
-${c1} -<| F __ .-< ${c3}(_)
-${c1} | / .-'${c3}. ${c1}`. /${c3}-. ${c1}L___
- J \\ < ${c3}\ ${c1} | | ${c5}O${c3}\\${c1}|.-' ${c3} _
-${c1} _J \\ .- \\${c3}/ ${c5}O ${c3}| ${c1}| \\ |${c1}F ${c3}(_)
-${c1} '-F -<_. \\ .-' `-' L__
-__J _ _. >-' ${c1})${c4}._. ${c1}|-'
-${c1} `-|.' /_. ${c4}\_| ${c1} F
- /.- . _.<
- /' /.' .' `\\
- /L /' |/ _.-'-\\
- /'J ___.---'\|
- |\ .--' V | `. `
- |/`. `-. `._)
- / .-.\\
- \\ ( `\\
- `.\\
-EOF
- ;;
-
- "openEuler"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} `.cc.`
- ``.cccccccc..`
- `.cccccccccccccccc.`
- ``.cccccccccccccccccccccc.``
- `..cccccccccccccccccccccccccccc..`
-`.ccccccccccccccc${c2}/++/${c1}ccccccccccccccccc.`
-.ccccccccccccccc${c2}mNMMNdo+oso+${c1}ccccccccccc.
-.cccccccccc${c2}/++odms+//+mMMMMm/:+syso/${c1}cccc
-.ccccccccc${c2}yNNMMMs:::/::+o+/:${c1}c${c2}dMMMMMm${c1}cccc
-.ccccccc${c2}:+NmdyyhNNmNNNd:${c1}ccccc${c1}${c2}:oyyyo:${c1}cccc
-.ccc${c2}:ohdmMs:${c1}cccc${c2}+mNMNmy${c1}ccccccccccccccccc
-.cc${c2}/NMMMMMo////:${c1}c${c2}:///:${c1}cccccccccccccccccc
-.cc${c2}:syysyNMNNNMNy${c1}ccccccccccccccccccccccc
-.cccccccc${c2}+MMMMMNy${c1}c${c2}:/+++/${c1}cccccccccccccccc
-.ccccccccc${c2}ohhhs/${c1}c${c2}omMMMMNh${c1}ccccccccccccccc
-.ccccccccccccccc${c2}:MMMMMMMM/${c1}cccccccccccccc
-.cccccccccccccccc${c2}sNNNNNd+${c1}cccccccccccccc.
-`..cccccccccccccccc${c2}/+/:${c1}cccccccccccccc..`
- ``.cccccccccccccccccccccccccccc.``
- `.cccccccccccccccccccccc.`
- ``.cccccccccccccc.``
- `.cccccccc.`
- `....`
-EOF
- ;;
-
- "OpenIndiana"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} .sy/
- .yh+
-
- ${c1}-+syyyo+- ${c2} /+.
- ${c1}+ddo/---/sdh/ ${c2} ym-
- ${c1}`hm+ `sms${c2} ym-```````.-.
- ${c1}sm+ sm/ ${c2} ym- +s
- ${c1}hm. /mo ${c2} ym- /h
- ${c1}omo ym: ${c2} ym- `os`
- ${c1}smo` .ym+ ${c2} ym- .os-
- `` ${c1}:ymy+///oyms- ${c2} ym- .+s+.
- ..` ${c1}`:+oo+/-` ${c2} -//oyo-
- -:` .:oys/.
-+- `./oyys/.
-h+` `.-:+oyyyo/-`
-`/ossssysso+/-.`
-EOF
- ;;
-
- "openmamba"*)
- set_colors 7 2
- read -rd '' ascii_data <<'EOF'
-${c1} `````
- .-/+ooooooooo+/:-`
- ./ooooooooooooooooooo+:.
- -+oooooooooooooooooooooooo+-
- .+ooooooooo+/:---::/+ooooooooo+.
- :oooooooo/-` `-/oo${c2}s´${c1}oooo.${c2}s´${c1}
- :ooooooo/` `${c2}sNds${c1}ooo${c2}sNds${c1}
- -ooooooo- ${c2}:dmy${c1}ooo${c2}:dmy${c1}
- +oooooo: :oooooo-
-.ooooooo .://:`
-:oooooo+ ./+o+:`
--ooooooo` `oooooo+
-`ooooooo: /oooooo+
- -ooooooo: :ooooooo.
- :ooooooo+. .+ooooooo:
- :oooooooo+-` `-+oooooooo:
- .+ooooooooo+/::::://oooooooooo+.
- -+oooooooooooooooooooooooo+-
- .:ooooooooooooooooooo+:.
- `-:/ooooooooo+/:.`
- ``````
-EOF
- ;;
-
- "OpenMandriva"*)
- set_colors 4
- read -rd '' ascii_data <<'EOF'
-${c1} ``````
- `-:/+++++++//:-.`
- .:+++oooo+/:.`` ``
- `:+ooooooo+:. `-:/++++++/:.`
- -+oooooooo:` `-++o+/::::://+o+/-
- `/ooooooooo- -+oo/.` `-/oo+.
- `+ooooooooo. :os/` .+so:
- +sssssssss/ :ss/ `+ss-
- :ssssssssss` sss` .sso
- ossssssssss `yyo sys
-`sssssssssss` `yys `yys
-`sssssssssss: +yy/ +yy:
- oyyyyyyyyyys. `oyy/` `+yy+
- :yyyyyyyyyyyo. `+yhs:. `./shy/
- oyyyyyyyyyyys:` .oyhys+:----/+syhy+. `
- `syyyyyyyyyyyyo-` .:osyhhhhhyys+:``.:`
- `oyyyyyyyyyyyyys+-`` `.----.```./oo.
- /yhhhhhhhhhhhhhhyso+//://+osyhy/`
- `/yhhhhhhhhhhhhhhhhhhhhhhhhy/`
- `:oyhhhhhhhhhhhhhhhhhhyo:`
- .:+syhhhhhhhhys+:-`
- ``....``
-EOF
- ;;
-
- "OpenStage"*)
- set_colors 2
- read -rd '' ascii_data <<'EOF'
-${c1} /(/
- .(((((((,
- /(((((((((/
- .(((((/,/(((((,
- *(((((* ,(((((/
- (((((* .*/((
- *((((/ (//(/*
- /((((* ((((((((((,
- . /((((* (((((((((((((.
- ((. *((((/ ,((((((((
- ,(((/ (((((/ ** ,((((((*
- /(((((. .(((((/ //(((* *(((((/
- .(((((, ((/ .(((((/. .(((((,
- /((((* ,(((((((/ ,(((((
- /(((((((((((((((((((/. /(((((((((/
- /(((((((((((((((((, /(((((((((((/
- */(((((//*. */((/(/(/*
-EOF
- ;;
-
- "OpenWrt"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} _______
-| |.-----.-----.-----.
-| - || _ | -__| |
-|_______|| __|_____|__|__|
- |__|
- ________ __
-| | | |.----.| |_
-| | | || _|| _|
-|________||__| |____|
-EOF
- ;;
-
- "Open Source Media Center"* | "osmc")
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} -+shdmNNNNmdhs+-
- .+hMNho/:..``..:/ohNMh+.
- :hMdo. .odMh:
- -dMy- -yMd-
- sMd- -dMs
- hMy +. .+ yMh
- yMy dMs. .sMd yMy
-:Mm dMNMs` `sMNMd `mM:
-yM+ dM//mNs``sNm//Md +My
-mM- dM: +NNNN+ :Md -Mm
-mM- dM: `oNN+ :Md -Mm
-yM+ dM/+NNo` :Md +My
-:Mm` dMMNs` :Md `mM:
- yMy dMs` -ms yMy
- hMy +. yMh
- sMd- -dMs
- -dMy- -yMd-
- :hMdo. .odMh:
- .+hMNho/:..``..:/ohNMh+.
- -+shdmNNNNmdhs+-
-EOF
- ;;
-
- "Oracle"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1}
- `-/+++++++++++++++++/-.`
- `/syyyyyyyyyyyyyyyyyyyyyyys/.
- :yyyyo/-...............-/oyyyy/
- /yyys- .oyyy+
-.yyyy` `syyy-
-:yyyo /yyy/
-.yyyy` `syyy-
- /yyys. .oyyyo
- /yyyyo:-...............-:oyyyy/`
- `/syyyyyyyyyyyyyyyyyyyyyyys+.
- `.:/+ooooooooooooooo+/:.`
-EOF
- ;;
-
- "OS Elbrus"*)
- set_colors 4 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
- ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
- ██ ██
- ██ ███████ ███████ ██
- ██ ██ ██ ██ ██ ██
- ██ ██ ██ ██ ██ ██
- ██ ██ ██ ██ ██ ██
- ██ ██ ██ ██ ██ ██
- ██ ██ ███████ ███████
- ██ ██ ██
- ██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██
- ██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██
- ██ ██
- ███████████████████████████
-EOF
- ;;
-
- "PacBSD"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} :+sMs.
- `:ddNMd- -o--`
- -sMMMMh: `+N+``
- yMMMMMs` .....-/-... `mNh/
- yMMMMMmh+-`:sdmmmmmmMmmmmddy+-``./ddNMMm
- yNMMNMMMMNdyyNNMMMMMMMMMMMMMMMhyshNmMMMm
- :yMMMMMMMMMNdooNMMMMMMMMMMMMMMMMNmy:mMMd
- +MMMMMMMMMmy:sNMMMMMMMMMMMMMMMMMMMmshs-
- :hNMMMMMMN+-+MMMMMMMMMMMMMMMMMMMMMMMs.
- .omysmNNhy/+yNMMMMMMMMMMNMMMMMMMMMNdNNy-
- /hMM:::::/hNMMMMMMMMMMMm/-yNMMMMMMN.mMNh`
-.hMMMMdhdMMMMMMMMMMMMMMmo `sMMMMMMN mMMm-
-:dMMMMMMMMMMMMMMMMMMMMMdo+ oMMMMMMN`smMNo`
-/dMMMMMMMMMMMMMMMMMMMMMNd/` :yMMMMMN:-hMMM.
-:dMMMMMMMMMMMMMMMMMMMMMNh` oMMMMMMNo/dMNN`
-:hMMMMMMMMMMMMMMMMMMMMMMNs--sMMMMMMMNNmy++`
- sNMMMMMMMMMMMMMMMMMMMMMMMmmNMMMMMMNho::o.
- :yMMMMMMMMMMMMMNho+sydNNNNNNNmysso/` -//
- /dMMMMMMMMMMMMMs- ````````..``
- .oMMMMMMMMMMMMNs` ./y:`
- +dNMMNMMMMMMMmy` ``./ys.
- `/hMMMMMMMMMMMNo-`` `.+yy+-`
- `-/hmNMNMMMMMMmmddddhhy/-`
- `-+oooyMMMdsoo+/:.
-EOF
- ;;
-
- "parabola_small"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} __ __ __ _
-.`_//_//_/ / `.
- / .`
- / .`
- /.`
- /`
-EOF
- ;;
-
- "Parabola"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} `.-. `.
- `.` `:++. `-+o+.
- `` `:+/. `:+/. `-+oooo+
- ``-::-.:+/. `:+/. `-+oooooo+
- `.-:///- ..` .-. `-+oooooooo-
- `..-..` `+ooooooooo:
-`` :oooooooo/
- `ooooooo:
- `oooooo:
- -oooo+.
- +ooo/`
- -ooo-
- `+o/.
- /+-
- //`
- -.
-EOF
- ;;
-
- "Pardus"*)
- set_colors 3 7 6 1 8
- read -rd '' ascii_data <<'EOF'
-${c1} .smNdy+- `.:/osyyso+:.` -+ydmNs.
-/Md- -/ymMdmNNdhso/::/oshdNNmdMmy/. :dM/
-mN. oMdyy- -y `-dMo .Nm
-.mN+` sMy hN+ -: yMs `+Nm.
- `yMMddMs.dy `+` sMddMMy`
- +MMMo .` . oMMM+
- `NM/ `````.` `.````` +MN`
- yM+ `.-:yhomy ymohy:-.` +My
- yM: yo oy :My
- +Ms .N` `N. +h sM+
- `MN - -::::::- : :o:+`NM`
- yM/ sh -dMMMMd- ho +y+My
- .dNhsohMh-//: /mm/ ://-yMyoshNd`
- `-ommNMm+:/. oo ./:+mMNmmo:`
- `/o+.-somNh- :yy: -hNmos-.+o/`
- ./` .s/`s+sMdd+``+ddMs+s`/s. `/.
- : -y. -hNmddmNy. .y- :
- -+ `..` +-
-EOF
- ;;
-
- "Parrot"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} `:oho/-`
-`mMMMMMMMMMMMNmmdhy-
- dMMMMMMMMMMMMMMMMMMs`
- +MMsohNMMMMMMMMMMMMMm/
- .My .+dMMMMMMMMMMMMMh.
- + :NMMMMMMMMMMMMNo
- `yMMMMMMMMMMMMMm:
- /NMMMMMMMMMMMMMy`
- .hMMMMMMMMMMMMMN+
- ``-NMMMMMMMMMd-
- /MMMMMMMMMMMs`
- mMMMMMMMsyNMN/
- +MMMMMMMo :sNh.
- `NMMMMMMm -o/
- oMMMMMMM.
- `NMMMMMM+
- +MMd/NMh
- mMm -mN`
- /MM `h:
- dM` .
- :M-
- d:
- -+
- -
-EOF
- ;;
-
- "Parsix"*)
- set_colors 3 1 7 8
- read -rd '' ascii_data <<'EOF'
- ${c2}-/+/:.
- ${c2}.syssssys.
- ${c1}.--. ${c2}ssssssssso${c1} ..--.
- :++++++: ${c2}+ssssssss+${c1} ./++/+++:
- /+++++++++.${c2}.yssooooy`${c1}-+///////o-
- /++++++++++.${c2}+soooos:${c1}:+////////+-
- :+++++////o-${c2}oooooo-${c1}+/////////-
- `-/++//++-${c4}.-----.-${c1}:+/////:-
- ${c3}-://::--${c1}-:/:${c4}.--.````.--.${c1}:::-${c3}--::::::.
-${c3}-/:::::::://:${c4}.:-` `-:${c3}`:/:::::::--/-
-${c3}/::::::::::/-${c4}--. .-.${c3}-/://///::::/
-${c3}-/:::::::::/:${c4}`:-. .-:${c3}`:///////////-
- `${c3}-::::--${c1}.-://.${c4}---....---${c1}`:+/:-${c3}--::::-`
- ${c1}-/+///+o/-${c4}.----.${c1}.:oo+++o+.
- ${c1}-+/////+++o:${c2}syyyyy.${c1}o+++++++++:
- ${c1}.+////+++++-${c2}+sssssy+${c1}.++++++++++\
- ${c1}.+:/++++++.${c2}.yssssssy-${c1}`+++++++++:
- ${c1}:/+++++- ${c2}+sssssssss ${c1}-++++++-
- ${c1}`--` ${c2}+sssssssso ${c1}`--`
- ${c2}+sssssy+`
- ${c2}`.::-`
-EOF
- ;;
-
- "PCBSD"* | "TrueOS"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} ..
- s.
- +y
- yN
- -MN `.
- :NMs `m
- .yMMm` `No
- `-/+++sdMMMNs+-`+Ms
- `:oo+-` .yMMMMy` `-+oNMh
- -oo- +NMMMM/ oMMh-
- .s+` ` oMMMMM/ - oMMMhy.
- +s`- :: :MMMMMd -o `mMMMy`s+
- y+ h .Ny+oNMMMMMN/ sh+NMMMMo +y
- s+ .ds -NMMMMMMMMMMNdhdNMMMMMMh` +s
--h .NM` `hMMMMMMMMMMMMMMNMMNy: h-
-y- hMN` hMMmMMMMMMMMMNsdMNs. -y
-m` mMMy` oMMNoNMMMMMMo` sMMMo `m
-m` :NMMMdyydMMMMo+MdMMMs sMMMd` `m
-h- `+ymMMMMMMMM--M+hMMN/ +MMMMy -h
-:y `.sMMMMM/ oMM+.yMMNddNMMMMMm y:
- y: `s dMMN- .MMMM/ :MMMMMMMMMMh :y
- `h: `mdmMMM/ yMMMMs sMMMMMMMMN- :h`
- so -NMMMN /mmd+ `dMMMMMMMm- os
- :y: `yMMM` `+NMMMMMMNo`:y:
- /s+`.omy /NMMMMMNh/.+s:
- .+oo:-. /mdhs+::oo+.
- -/o+++++++++++/-
-EOF
- ;;
-
- "PCLinuxOS"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} mhhhyyyyhhhdN
- dyssyhhhhhhhhhhhssyhN
- Nysyhhyo/:-.....-/oyhhhssd
- Nsshhy+. `/shhysm
- dohhy/ -shhsy
- dohhs` /hhys
-N+hho ${c2}+ssssss+- .+syhys+ ${c1}/hhsy
-ohhh` ${c2}ymmo++hmm+`smmy/::+y` ${c1}shh+
-+hho ${c2}ymm- /mmy+mms ${c1}:hhod
-/hh+ ${c2}ymmhhdmmh.smm/ ${c1}.hhsh
-+hhs ${c2}ymm+::-` /mmy` ` ${c1}/hh+m
-yyhh- ${c2}ymm- /dmdyosyd` ${c1}`yhh+
- ohhy` ${c2}://` -/+++/- ${c1}ohhom
- N+hhy- `shhoh
- sshho. `+hhyom
- dsyhhs/. `:ohhhoy
- dysyhhhso///://+syhhhssh
- dhyssyhhhhhhyssyyhN
- mddhdhdmN
-EOF
- ;;
-
- "Pengwin"*)
- set_colors 5 5 13
- read -rd '' ascii_data <<'EOF'
-${c3} ...`
-${c3} `-///:-`
-${c3} .+${c2}ssys${c3}/
-${c3} +${c2}yyyyy${c3}o ${c2}
-${c2} -yyyyyy:
-${c2} `.:/+ooo+/:` -yyyyyy+
-${c2} `:oyyyyyys+:-.`syyyyyy:
-${c2} .syyyyyyo-` .oyyyyyyo
-${c2} `syyyyyy `-+yyyyyyy/`
-${c2} /yyyyyy+ -/osyyyyyyo/.
-${c2} +yyyyyy- `.-:::-.`
-${c2} .yyyyyy-
-${c3} :${c2}yyyyy${c3}o
-${c3} .+${c2}ooo${c3}+
-${c3} `.::/:.
-EOF
- ;;
-
- "Peppermint"*)
- set_colors 1 15 3
- read -rd '' ascii_data <<'EOF'
-${c1} PPPPPPPPPPPPPP
-${c1} PPPP${c2}MMMMMMM${c1}PPPPPPPPPPP
-${c1} PPPP${c2}MMMMMMMMMM${c1}PPPPPPPP${c2}MM${c1}PP
-${c1} PPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP${c2}MMMMM${c1}PP
-${c1} PPPPPPPPPPPP${c2}MMMMMM${c1}PPPPPPP${c2}MMMMMMM${c1}PP
-${c1} PPPPPPPPPPPP${c2}MMMMMMM${c1}PPPP${c2}M${c1}P${c2}MMMMMMMMM${c1}PP
-${c1} PP${c2}MMMM${c1}PPPPPPPPPP${c2}MMM${c1}PPPPP${c2}MMMMMMM${c1}P${c2}MM${c1}PPPP
-${c1} P${c2}MMMMMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPP${c2}MMMMMM${c1}PPPPPPPP
-${c1} P${c2}MMMMMMMMMMMM${c1}PPPPP${c2}MM${c1}PP${c2}M${c1}P${c2}MM${c1}P${c2}MM${c1}PPPPPPPPPPP
-${c1} P${c2}MMMMMMMMMMMMMMMM${c1}PP${c2}M${c1}P${c2}MMM${c1}PPPPPPPPPPPPPPPP
-${c1} P${c2}MMM${c1}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP${c2}MMMMM${c1}P
-${c1} PPPPPPPPPPPPPPPP${c2}MMM${c1}P${c2}M${c1}P${c2}MMMMMMMMMMMMMMMM${c1}PP
-${c1} PPPPPPPPPPP${c2}MM${c1}P${c2}MM${c1}PPPP${c2}MM${c1}PPPPP${c2}MMMMMMMMMMM${c1}PP
-${c1} PPPPPPPP${c2}MMMMMM${c1}PPPPP${c2}MM${c1}PPPPPP${c2}MMMMMMMMM${c1}PP
-${c1} PPPP${c2}MM${c1}P${c2}MMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPPPPPPP${c2}MMMM${c1}PP
-${c1} PP${c2}MMMMMMMMM${c1}P${c2}M${c1}PPPP${c2}MMMMMM${c1}PPPPPPPPPPPPP
-${c1} PP${c2}MMMMMMM${c1}PPPPPPP${c2}MMMMMM${c1}PPPPPPPPPPPP
-${c1} PP${c2}MMMM${c1}PPPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP
-${c1} PP${c2}MM${c1}PPPPPPPP${c2}MMMMMMMMMM${c1}PPPP
-${c1} PPPPPPPPPP${c2}MMMMMMMM${c1}PPPP
-${c1} PPPPPPPPPPPPPP
-EOF
- ;;
-
- "Pisi"*)
- set_colors 12 7 6 1 8
- read -rd '' ascii_data <<'EOF'
-${c1} \Fv/!- `:?lzC
-${c1} Q!::=zFx! ${c2}`;v6WBCicl;` ${c1},vCC\!::#.
-${c1} ,%:::,'` ${c2}+#%@@FQ@@. ,cF%i${c1}``-',::a?
-${c1} +m:,'```${c2}}3,/@@Q\@@ "af-${c1} `-'"7f
- =o'.` ${c2}/m' :Q@:Qg ,kl${c1} `.|o
- :k` '${c2}$+ 'Narm >d,${c1} ii
- #`${c2}!p. `C , 'd+${c1} %'
-${c2} !0m `6Kv
- =a m+
- !A !\L|: :|L\! $:
- .8` Q''%Q#' '#Q%''Q `0-
- :6 E|.6QQu uQQ6.|E p:
- i{ \jts9? ?9stj\ u\
- |a` -''. `e>
- ,m+ ${c1}'^ !`${c2}s@@@@a${c1}'"`+`${c2} >e'
- !3|${c1}`|=>>r- ${c2}'U%:${c1} '>>>=:`\3!
- 'xopE| ${c2}`'${c1} `ledoz-
- `;=>>+`${c2}`^llci/|==|/iclc;`${c1}'>>>>:
- `^`+~ ${c2}````${c1} !!-^
-EOF
- ;;
-
- "PNM Linux"* | "WHPNM Linux"*)
- set_colors 33 9 15 202
- read -rd '' ascii_data <<'EOF'
-
-${c1}
- ``.---..` `--`
- ``.---........-:.${c2}-::`${c1}
- ${c2}./::-${c1}........${c2}--::.````${c1}
- ${c2}.:://:::${c1}----${c2}::::-..${c1}
- ..${c2}--:::::--::::++-${c1}.`
- ${c2}`-:-`${c1} .-ohy+::${c2}-:::${c1}/sdmdd:.${c2} `-:-
- .-:::${c1}...${c3}sNNmds$y${c1}o/+${c3}sy+NN$m${c1}d+.`${c2}-:::-.
- `.-:-${c1}./${c3}dN${c1}()${c3}yyooosd${c1}()${c3}$m${c1}dy${c2}-.::-.`${c1}
- ${c2}`.${c1}-...-${c3}+hNdyyyyyydmy${c1}:......${c2}`${c1}
- ``..--.....-${c3}yNNm${c4}hssssh${c3}mmdo${c1}.........```
-`-:://:.....${c3}hNNNNN${c4}mddm${c3}NNNmds${c1}.....//::--`
- ```.:-...${c3}oNNNNNNNNNNNNNNmd/${c1}...:-.```
- .....${c3}hNNNNNNNNNNNNNNmds${c1}....`
- --...${c3}hNNNNNNNNNNNNNNmdo${c1}.....
- .:...${c3}/NNNNNNNNNNNNNNdd${c1}:....`
- `-...${c3}+mNNNNNNNNNNNmh${c1}:...-.
- ${c4}.:+o+/:-${c1}:+oo+///++o+/:-${c4}:/+ooo/:.
- ${c4}+oo/:o- +oooooso.`
- ${c4}.` ` `/ .-//-
-EOF
- ;;
-
- "popos_small"* | "pop_os_small"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1}______
-\\ _ \\ __
- \\ \\ \\ \\ / /
- \\ \\_\\ \\ / /
- \\ ___\\ /_/
- \\ \\ _
- __\\_\\__(_)_
- (___________)`
-EOF
- ;;
-
- "Pop!_OS"* | "popos"* | "pop_os"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} /////////////
- /////////////////////
- ///////${c2}*767${c1}////////////////
- //////${c2}7676767676*${c1}//////////////
- /////${c2}76767${c1}//${c2}7676767${c1}//////////////
- /////${c2}767676${c1}///${c2}*76767${c1}///////////////
- ///////${c2}767676${c1}///${c2}76767${c1}.///${c2}7676*${c1}///////
-/////////${c2}767676${c1}//${c2}76767${c1}///${c2}767676${c1}////////
-//////////${c2}76767676767${c1}////${c2}76767${c1}/////////
-///////////${c2}76767676${c1}//////${c2}7676${c1}//////////
-////////////,${c2}7676${c1},///////${c2}767${c1}///////////
-/////////////*${c2}7676${c1}///////${c2}76${c1}////////////
-///////////////${c2}7676${c1}////////////////////
- ///////////////${c2}7676${c1}///${c2}767${c1}////////////
- //////////////////////${c2}'${c1}////////////
- //////${c2}.7676767676767676767,${c1}//////
- /////${c2}767676767676767676767${c1}/////
- ///////////////////////////
- /////////////////////
- /////////////
-EOF
- ;;
-
- "Porteus"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} `.-:::-.`
- -+ydmNNNNNNNmdy+-
- .+dNmdhs+//////+shdmdo.
- .smmy+-` ./sdy:
- `omdo. `.-/+osssso+/-` `+dy.
- `yms. `:shmNmdhsoo++osyyo-``oh.
- hm/ .odNmds/.` ``.....:::-+s
-/m: `+dNmy:` `./oyhhhhyyooo++so
-ys `yNmy- .+hmmho:-.` ```
-s: yNm+` .smNd+.
-`` /Nm: +dNd+`
- yN+ `smNy.
- dm oNNy`
- hy -mNm.
- +y oNNo
- `y` sNN:
- `: +NN:
- ` .mNo
- /mm`
- /my`
- .sy`
- .+:
- `
-EOF
- ;;
-
- "postmarketos_small")
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} /\\
- / \\
- / \\
- \\__ \\
- /\\__ \\ _\\
- / / \\/ __
- / / ____/ \\
- / \\ \\ \\
-/_____/ /________\\
-EOF
- ;;
-
- "PostMarketOS"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} /\\
- / \\
- / \\
- / \\
- / \\
- / \\
- \\ \\
- /\\ \\____ \\
- / \\____ \\ \\
- / / \\ \\
- / / \\ ___\\
- / / \\ / ____
- / / \\/ / \\
- / / __________/ \\
- / \\ \\ \\
- / \\ \\ \\
- / / / \\
-/___________/ /____________________\\
-EOF
- ;;
-
- "PuffOS"*)
- set_colors 3
- read -rd '' ascii_data <<'EOF'
-${c1}
- _,..._,m,
- ,/' '"";
- / ".
- ,'mmmMMMMmm. \
- _/-"^^^^^"""%#%mm, ;
- ,m,_,' "###) ;,
-(###% \#/ ;##mm.
- ^#/ __ ___ ; (######)
- ; //.\\ //.\\ ; \####/
- _; (#\"// \\"/#) ; ,/
-@##\ \##/ = `"=" ,;mm/
-`\##>.____,...,____,<####@
-EOF
- ;;
-
- "Proxmox"*)
- set_colors 7 202
- read -rd '' ascii_data <<'EOF'
-${c1} .://:` `://:.
- `hMMMMMMd/ /dMMMMMMh`
- `sMMMMMMMd: :mMMMMMMMs`
-${c2}`-/+oo+/:${c1}`.yMMMMMMMh- -hMMMMMMMy.`${c2}:/+oo+/-`
-`:oooooooo/${c1}`-hMMMMMMMyyMMMMMMMh-`${c2}/oooooooo:`
- `/oooooooo:${c1}`:mMMMMMMMMMMMMm:`${c2}:oooooooo/`
- ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/.
- .+ooooooo+-${c1}`oNMMMMNo`${c2}-+ooooooo+.
- -+ooooooo/.${c1}`sMMs`${c2}./ooooooo+-
- :oooooooo/${c1}`..`${c2}/oooooooo:
- :oooooooo/`${c1}..${c2}`/oooooooo:
- -+ooooooo/.`${c1}sMMs${c2}`./ooooooo+-
- .+ooooooo+-`${c1}oNMMMMNo${c2}`-+ooooooo+.
- ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/.
- `/oooooooo:`${c1}:mMMMMMMMMMMMMm:${c2}`:oooooooo/`
-`:oooooooo/`${c1}-hMMMMMMMyyMMMMMMMh-${c2}`/oooooooo:`
-`-/+oo+/:`${c1}.yMMMMMMMh- -hMMMMMMMy.${c2}`:/+oo+/-`
-${c1} `sMMMMMMMm: :dMMMMMMMs`
- `hMMMMMMd/ /dMMMMMMh`
- `://:` `://:`
-EOF
- ;;
-
- "Puppy"* | "Quirky Werewolf"* | "Precise Puppy"*)
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c1} `-/osyyyysosyhhhhhyys+-
- -ohmNNmh+/hMMMMMMMMNNNNd+dMMMMNM+
- yMMMMNNmmddo/NMMMNNNNNNNNNo+NNNNNy
-.NNNNNNmmmddds:MMNNNNNNNNNNNh:mNNN/
--NNNdyyyhdmmmd`dNNNNNmmmmNNmdd/os/
-.Nm+shddyooo+/smNNNNmmmmNh. :mmd.
- NNNNy:` ./hmmmmmmmNNNN: hNMh
- NMN- -++- +NNNNNNNNNNm+..-sMMMM-
-.MMo oNNNNo hNNNNNNNNmhdNNNMMMMM+
-.MMs /NNNN/ dNmhs+:-` yMMMMMMMM+
- mMM+ .. `sNN+. hMMMMhhMMM-
- +MMMmo:...:sNMMMMMms:` hMMMMm.hMMy
- yMMMMMMMMMMMNdMMMMMM::/+o+//dMMd`
- sMMMMMMMMMMN+:oyyo:sMMMNNMMMNy`
- :mMMMMMMMMMMMmddNMMMMMMMMmh/
- /dMMMMMMMMMMMMMMMMMMNdy/`
- .+hNMMMMMMMMMNmdhs/.
- .:/+ooo+/:-.
-EOF
- ;;
-
- "pureos_small"*)
- set_colors 2 7 7
- read -rd '' ascii_data <<'EOF'
-${c1} _____________
-| _________ |
-| | | |
-| | | |
-| |_________| |
-|_____________|
-EOF
- ;;
-
- "PureOS"*)
- set_colors 2 7 7
- read -rd '' ascii_data <<'EOF'
-${c1}dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd
-dNm//////////////////////////////////mNd
-dNd dNd
-dNd dNd
-dNd dNd
-dNd dNd
-dNd dNd
-dNd dNd
-dNd dNd
-dNd dNd
-dNm//////////////////////////////////mNd
-dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd
-EOF
- ;;
-
- "Qubes"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} `..--..`
- `.----------.`
- `..----------------..`
- `.------------------------.``
- `..-------------....-------------..`
-.::----------..`` ``..----------:+:
-:////:----..` `..---:/ossso
-:///////:` `/osssssso
-:///////: /ssssssso
-:///////: /ssssssso
-:///////: /ssssssso
-:///////: /ssssssso
-:///////: /ssssssso
-:////////-` .:sssssssso
-:///////////-.` `-/osssssssssso
-`//////////////:-```.:+ssssssssssssso-
- .-://////////////sssssssssssssso/-`
- `.:///////////sssssssssssssso:.
- .-:///////ssssssssssssssssss/`
- `.:////ssss+/+ssssssssssss.
- `--//- `-/osssso/.
-EOF
- ;;
-
- "Qubyt"*)
- set_colors 4 5 0 4
- read -rd '' ascii_data <<'EOF'
-${c1} ########################${c2}(${c3}ooo
-${c1} ########################${c2}(${c3}ooo
-${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo
-${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo
-${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo
-${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo
-${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo
-${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo
-${c1}###${c2}(${c3}ooo ${c1}##${c3}o ${c2}((((${c3}ooo
-${c1}###${c2}(${c3}ooo o${c2}((${c1}### ${c3}oooooo
-${c1}###${c2}(${c3}ooo oo${c2}((${c1}###${c3}o
-${c1}###${c2}(${c3}ooo ooo${c2}((${c1}###
-${c1}################${c2}(${c3}oo oo${c2}((((${c3}o
-${c2}(((((((((((((((((${c3}ooo ooooo
- oooooooooooooooooo o
-EOF
- ;;
-
- "Quibian"*)
- set_colors 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} `.--::::::::--.`
- `.-:::-..`` ``..-::-.`
- .::::-` .${c2}+${c1}:`` `.-::.`
- .::::.` -::::::-` `.::.
- `-:::-` -:::::::::--..`` .::`
- `::::- .${c2}oy${c1}:::::::---.```.: `::`
- -:::: `.-:::::::::::-.``` `::
-.::::.`-:::::::::::::. `:.
--::::.::::::::::::::: -:
-::::::::::::::::::::` `:
-:::::::::::::::::::- `:
-::::::::::::::::::: --
-.:::::::::::::::::` `:`
-`::::::::::::::::: -`
- .:::::::::::::::- -`
- `::::::::::::::- `.`
- .::::::::::::- ``
- `.--:::::-.
-EOF
- ;;
-
- "Radix"*)
- set_colors 1 2
- read -rd '' ascii_data <<'EOF'
-${c2} .:oyhdmNo
- `/yhyoosdms`
- -o+/ohmmho-
- ..`.:/:-`
- `.--:::-.``${c1}
- .+ydNMMMMMMNmhs:`
-`omMMMMMMMMMMMMMMNh-
-oNMMMNmddhhyyhhhddmy.
-mMMMMNmmddhhysoo+/:-`
-yMMMMMMMMMMMMMMMMNNh.
--dmmmmmNNMMMMMMMMMMs`
- -+oossyhmMMMMMMMMd-
- `sNMMMMMMMMMMMMMm:
- `yMMMMMMNmdhhhh:
- `sNMMMMMNmmho.
- `+mMMMMMMMy.
- .yNMMMm+`
- `:yd+.
-EOF
- ;;
-
- "Raspbian_small"*)
- set_colors 2 1
- read -rd '' ascii_data <<'EOF'
-${c1} .. ,.
- :oo: .:oo:
- 'o\\o o/o:
-${c2} :: . :: . ::
-:: ::: ::: ::
-:' '',.'' ':
- ::: :::: :::
- ':, '' ,:'
- ' ~::~ '
-EOF
- ;;
-
- "Raspbian"*)
- set_colors 2 1
- read -rd '' ascii_data <<'EOF'
-${c1} `.::///+:/-. --///+//-:``
- `+oooooooooooo: `+oooooooooooo:
- /oooo++//ooooo: ooooo+//+ooooo.
- `+ooooooo:-:oo- +o+::/ooooooo:
- `:oooooooo+`` `.oooooooo+-
- `:++ooo/. :+ooo+/.`
- ${c2}...` `.----.` ``..
- .::::-``:::::::::.`-:::-`
- -:::-` .:::::::-` `-:::-
- `::. `.--.` `` `.---.``.::`
- .::::::::` -::::::::` `
- .::` .:::::::::- `::::::::::``::.
--:::` ::::::::::. ::::::::::.`:::-
-:::: -::::::::. `-:::::::: ::::
--::- .-:::-.``....``.-::-. -::-
- .. `` .::::::::. `..`..
- -:::-` -::::::::::` .:::::`
- :::::::` -::::::::::` :::::::.
- .::::::: -::::::::. ::::::::
- `-:::::` ..--.` ::::::.
- `...` `...--..` `...`
- .::::::::::
- `.-::::-`
-EOF
- ;;
-
- "Reborn OS"* | "Reborn"*)
- set_colors 2 2 8
- read -rd '' ascii_data <<'EOF'
-${c3}
- mMMMMMMMMM MMMMMMMMMm
- NM MN
- MM ${c1}dddddddd dddddddd ${c3}MN
- mM ${c1}dd dd ${c3}MM
- ${c1}dd hhhhhh hhhhh dd
- ${c3}mM ${c1}hh hh ${c3}Mm
- NM ${c1}hd ${c3}mMMMMMMd ${c1}dh ${c3}MN
- NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
-NM ${c1}dd hh ${c3}mMMMMMMMMMMm ${c1}hh dd ${c3}MN
- NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
- NM ${c1}hd ${c3}mMMMMMMm ${c1}dh ${c3}MN
- mM ${c1}hh hh ${c3}Mm
- ${c1}dd hhhhhh hhhhhh dd
- ${c3}MM ${c1}dd dd ${c3}MM
- MM ${c1}dddddddd dddddddd ${c3}MN
- NM MN
- mMMMMMMMMM MMMMMMMMMm
-EOF
- ;;
-
- "Red Star"* | "Redstar"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} ..
- .oK0l
- :0KKKKd.
- .xKO0KKKKd
- ,Od' .d0000l
- .c;. .'''... ..'.
-.,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx:
-;kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,.
- .okkkkd,.lko .......',;:cllc:;,,'''''.
- .cdo. :xd' cd:. ..';'',,,'',,;;;,'.
- . .ddl.;doooc'..;oc;'..';::;,'.
- coo;.oooolllllllcccc:'. .
- .ool''lllllccccccc:::::;.
- ;lll. .':cccc:::::::;;;;'
- :lcc:'',..';::::;;;;;;;,,.
- :cccc::::;...';;;;;,,,,,,.
- ,::::::;;;,'. ..',,,,'''.
- ........ ......
-EOF
- ;;
-
- "Redcore"*)
- set_colors 1
- read -rd '' ascii_data <<'EOF'
-${c1} RRRRRRRRR
- RRRRRRRRRRRRR
- RRRRRRRRRR RRRRR
- RRRRRRRRRRRRRRRRRRRRRRRRRRR
- RRRRRRR RRR RRR RRRRRRRR
-RRRRR RR RRRRRRRRR
-RRRR RR RRRRRRRR RR RRRRRR
-RRRR R RRRRRRRRRRRRRR RR RRRRR
-RRRR R RRRRRRRRRRRRRRRRRR R RRRRR
-RRRR RRRRRRRRRRRRRRRRRRR R RRRR
- RRR RRRRRRRRRRRRRRRRRRRR R RRRR
- RRR RRRRRRRRRRRRRRRRRRRR RRRR
- RR RRRRRRRRRRRRRRRRRRR RRR
- RR RRRRRRRRRRRRRRRRR RRR
- RR RRRRRRRRRRRRRR RR
- R RRRR RR
-EOF
- ;;
-
- "redhat_old" | "rhel_old"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} `.-..........`
- `////////::.`-/.
- -: ....-////////.
- //:-::///////////`
- `--::: `-://////////////:
- //////- ``.-:///////// .`
- `://////:-.` :///////::///:`
- .-/////////:---/////////////:
- .-://////////////////////.
-${c2} yMN+`.-${c1}::///////////////-`
-${c2} .-`:NMMNMs` `..-------..`
- MN+/mMMMMMhoooyysshsss
-MMM MMMMMMMMMMMMMMyyddMMM+
- MMMM MMMMMMMMMMMMMNdyNMMh` hyhMMM
- MMMMMMMMMMMMMMMMyoNNNMMM+. MMMMMMMM
- MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM
-EOF
- ;;
-
- "Redhat"* | "Red Hat"* | "rhel"*)
- set_colors 1
- read -rd '' ascii_data <<'EOF'
-${c1} .MMM..:MMMMMMM
- MMMMMMMMMMMMMMMMMM
- MMMMMMMMMMMMMMMMMMMM.
- MMMMMMMMMMMMMMMMMMMMMM
- ,MMMMMMMMMMMMMMMMMMMMMM:
- MMMMMMMMMMMMMMMMMMMMMMMM
- .MMMM' MMMMMMMMMMMMMMMMMMMMMM
- MMMMMM `MMMMMMMMMMMMMMMMMMMM.
-MMMMMMMM MMMMMMMMMMMMMMMMMM .
-MMMMMMMMM. `MMMMMMMMMMMMM' MM.
-MMMMMMMMMMM. MMMM
-`MMMMMMMMMMMMM. ,MMMMM.
- `MMMMMMMMMMMMMMMMM. ,MMMMMMMM.
- MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
- MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:
- MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
- `MMMMMMMMMMMMMMMMMMMMMMMM:
- ``MMMMMMMMMMMMMMMMM'
-EOF
- ;;
-
- "Refracted Devuan"* | "Refracted_Devuan"*)
- set_colors 8 7
- read -rd '' ascii_data <<'EOF'
-${c2} A
- VW
- VVW\\
- .yWWW\\
- ,;,,u,;yy;;v;uyyyyyyy ,WWWWW^
- *WWWWWWWWWWWWWWWW/ $VWWWWw ,
- ^*%WWWWWWVWWX $WWWW** ,yy
- , "**WWW/' **' ,yy/WWW*`
- &WWWWwy `*` <,ywWW%VWWW*
- yWWWWWWWWWW* ., "**WW%W
- ,&WWWWWM*"` ,y/ &WWWww ^*
- XWWX*^ ,yWWWW09 .WWWWWWWWwy,
- *` &WWWWWM WWWWWWWWWWWWWww,
- (WWWWW` /#####WWW***********
- ^WWWW
- VWW
- Wh.
- V/
-EOF
- ;;
-
- "Regata"*)
- set_colors 7 1 4 5 3 2
- read -rd '' ascii_data <<'EOF'
-${c1} ddhso+++++osydd
- dho/.`hh${c2}.:/+/:.${c1}hhh`:+yd
- do-hhhhhh${c2}/sssssss+`${c1}hhhhh./yd
- h/`hhhhhhh${c2}-sssssssss:${c1}hhhhhhhh-yd
- do`hhhhhhhhh${c2}`ossssssso.${c1}hhhhhhhhhh/d
- d/hhhhhhhhhhhh${c2}`/ossso/.${c1}hhhhhhhhhhhh.h
- /hhhhhhhhhhhh${c3}`-/osyso/-`${c1}hhhhhhhhhhhh.h
-shh${c4}-/ooo+-${c1}hhh${c3}:syyso+osyys/`${c1}hhh${c5}`+oo`${c1}hhh/
-h${c4}`ohhhhhhho`${c3}+yyo.${c1}hhhhh${c3}.+yyo`${c5}.sssssss.${c1}h`h
-s${c4}:hhhhhhhhho${c3}yys`${c1}hhhhhhh${c3}.oyy/${c5}ossssssso-${c1}hs
-s${c4}.yhhhhhhhy/${c3}yys`${c1}hhhhhhh${c3}.oyy/${c5}ossssssso-${c1}hs
-hh${c4}./syyys+.${c1} ${c3}+yy+.${c1}hhhhh${c3}.+yyo`${c5}.ossssso/${c1}h`h
-shhh${c4}``.`${c1}hhh${c3}`/syyso++oyys/`${c1}hhh${c5}`+++-`${c1}hh:h
-d/hhhhhhhhhhhh${c3}`-/osyso+-`${c1}hhhhhhhhhhhh.h
- d/hhhhhhhhhhhh${c6}`/ossso/.${c1}hhhhhhhhhhhh.h
- do`hhhhhhhhh${c6}`ossssssso.${c1}hhhhhhhhhh:h
- h/`hhhhhhh${c6}-sssssssss:${c1}hhhhhhhh-yd
- h+.hhhhhh${c6}+sssssss+${c1}hhhhhh`/yd
- dho:.hhh${c6}.:+++/.${c1}hhh`-+yd
- ddhso+++++osyhd
-EOF
- ;;
-
- "Regolith"*)
- set_colors 1
- read -rd '' ascii_data <<'EOF'
-${c1}
- ``....```
- `.:/++++++/::-.`
- -/+++++++:.`
- -++++++++:`
- `/++++++++-
- `/++++++++. -/+/
- /++++++++/ `` .:+++:.
- -+++++++++/ ./++++:+++/-`
- :+++++++++/ `+++++++/-`
- :++++++++++` .-/+++++++`
- `:++++++++++/``.-/++++:-:::-` `
- `:+++++++++++++++++/:.` ./`
-:++/-:+++++++++/:-.. -/+.
-+++++++++/::-...:/+++/-..````..-/+++.
-`......``.::/+++++++++++++++++++++/.
- -/+++++++++++++++++++++/.
- .:/+++++++++++++++/-`
- `.-:://////:-.
-EOF
- ;;
-
- "rocky_small"*)
- set_colors 2
- read -rd '' ascii_data <<'EOF'
-${c1} `-/+++++++++/-.`
- `-+++++++++++++++++-`
-.+++++++++++++++++++++.
--+++++++++++++++++++++++.
-+++++++++++++++/-/+++++++
-+++++++++++++/. ./+++++
-+++++++++++:. ./+++
-+++++++++:` `:/:` .:/
--++++++:` .:+++++:`
- .+++-` ./+++++++++:`
- `-` ./+++++++++++-
- -+++++++++:-.`
-EOF
- ;;
-
- "rocky"*)
- set_colors 35
- read -rd '' ascii_data <<'EOF'
-${c1} __wgliliiligw_,
- _williiiiiiliilililw,
- _%iiiiiilililiiiiiiiiiii_
- .Qliiiililiiiiiiililililiilm.
- _iiiiiliiiiiililiiiiiiiiiiliil,
- .lililiiilililiiiilililililiiiii,
-_liiiiiiliiiiiiiliiiiiF{iiiiiilili,
-jliililiiilililiiili@` ~ililiiiiiL
-iiiliiiiliiiiiiili>` ~liililii
-liliiiliiilililii` -9liiiil
-iiiiiliiliiiiii~ "4lili
-4ililiiiiilil~| -w, )4lf
--liiiiililiF' _liig, )'
- )iiiliii@` _QIililig,
- )iiii>` .Qliliiiililw
- )<>~ .mliiiiiliiiiiil,
- _gllilililiililii~
- giliiiiiiiiiiiiT`
- -^~$ililili@~~'
-EOF
- ;;
-
- "Rosa"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ROSAROSAROSAROSAR
- ROSA AROS
- ROS SAROSAROSAROSAR AROS
- RO ROSAROSAROSAROSAROSAR RO
- ARO AROSAROSAROSARO AROS ROS
- ARO ROSAROS OSAR ROSA ROS
- RO AROSA ROSAROSAROSA ROSAR RO
-RO ROSAR ROSAROSAROSAR R ROSARO RO
-RO ROSA AROSAROSAROSA AR ROSARO AR
-RO AROS ROSAROSAROSA ROS AROSARO AR
-RO AROS ROSAROSARO ROSARO ROSARO AR
-RO ROS AROSAROS ROSAROSA AROSAR AR
-RO ROSA ROS ROSAROSAR ROSARO RO
- RO ROS AROSAROSAROSA ROSARO AR
- ARO ROSA ROSAROSAROS AROSAR ARO
- ARO OROSA R ROSAROS ROS
- RO AROSAROS AROSAROSAR RO
- AROS AROSAROSAROSARO AROS
- ROSA SARO
- ROSAROSAROSAROSAR
-EOF
- ;;
-
- "sabotage"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} .|'''.| | '||''|. ..|''||
- ||.. ' ||| || || .|' ||
- ''|||. | || ||'''|. || ||
-. '|| .''''|. || || '|. ||
-|'....|' .|. .||. .||...|' ''|...|'
-
-|''||''| | ..|'''.| '||''''|
- || ||| .|' ' || .
- || | || || .... ||''|
- || .''''|. '|. || ||
- .||. .|. .||. ''|...'| .||.....|
-EOF
- ;;
-
- "Sabayon"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ...........
- .. ..
- .. ..
- .. ${c2}o ${c1}..
- .. ${c2}:W' ${c1}..
- .. ${c2}.d. ${c1}..
-:. ${c2}.KNO ${c1}.:
-:. ${c2}cNNN. ${c1}.:
-: ${c2}dXXX, ${c1}:
-: ${c2}. dXXX, .cd, ${c1}:
-: ${c2}'kc .. dKKK. ,ll;:' ${c1}:
-: ${c2}.xkkxc;..dkkkc',cxkkl ${c1}:
-:. ${c2}.,cdddddddddddddo:. ${c1}.:
- .. ${c2}:lllllll: ${c1}..
- .. ${c2}',,,,, ${c1}..
- .. ..
- .. ..
- ...............
-EOF
- ;;
-
- "Sailfish"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c1} _a@b
- _#b (b
- _@@ @_ _,
- _#^@ _#*^^*gg,aa@^^
- #- @@^ _a@^^
- @_ *g#b
- ^@_ ^@_
- ^@_ @
- @(b (b
- #b(b#^
- _@_#@^
- _a@a*^
- ,a@*^
-EOF
- ;;
-
- "SalentOS"*)
- set_colors 2 1 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} ``..``
- .-:+oshdNMMMMMMNdhyo+:-.`
- -oydmMMMMMMMMMMMMMMMMMMMMMMMMMMNdhs/
-${c4} +hdddm${c1}NMMMMMMMMMMMMMMMMMMMMMMMMN${c4}mdddh+`
-${c2}`MMMMMN${c4}mdddddm${c1}MMMMMMMMMMMM${c4}mdddddm${c3}NMMMMM-
-${c2} mMMMMMMMMMMMN${c4}ddddhyyhhddd${c3}NMMMMMMMMMMMM`
-${c2} dMMMMMMMMMMMMMMMMM${c4}oo${c3}MMMMMMMMMMMMMMMMMN`
-${c2} yMMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMd
-${c2} +MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMy
-${c2} :MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMo
-${c2} .MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM/
-${c2} `NMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM-
-${c2} mMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMN`
-${c2} hMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMm
-${c2} /MMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMy
-${c2} .+hMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMms:
-${c2} `:smMMMMMMMMM${c4}hh${c3}MMMMMMMMMNh+.
-${c2} .+hMMMMMM${c4}hh${c3}MMMMMMdo:
-${c2} `:smMM${c4}yy${c3}MMNy/`
- ${c2}.- ${c4}`${c3}:.
-EOF
- ;;
-
- "Scientific"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} =/;;/-
- +: //
- /; /;
- -X H.
-.//;;;:;;-, X= :+ .-;:=;:;#;.
-M- ,=;;;#:, ,:#;;:=, ,@
-:# :#.=/++++/=.$= #=
- ,#; #/:+/;,,/++:+/ ;+.
- ,+/. ,;@+, ,#H;, ,/+,
- ;+;;/= @. ${c3}.H${c2}#${c3}#X ${c1}-X :///+;
- ;+=;;;.@, ${c2}.X${c3}M${c2}@$. ${c1}=X.//;=#/.
- ,;: :@#= =$H: .+#-
- ,#= #;-///==///-// =#,
-;+ :#-;;;:;;;;-X- +:
-@- .-;;;;M- =M/;;;-. -X
- :;;::;;-. #- :+ ,-;;-;:==
- ,X H.
- ;/ #=
- // +;
- '////'
-EOF
- ;;
-
- "Septor"*)
- set_colors 4 7 4
- read -rd '' ascii_data <<'EOF'
-${c1}ssssssssssssssssssssssssssssssssssssssss
-ssssssssssssssssssssssssssssssssssssssss
-ssssssssssssssssssssssssssssssssssssssss
-ssssssssssssssssssssssssssssssssssssssss
-ssssssssss${c2};okOOOOOOOOOOOOOOko;${c1}ssssssssss
-sssssssss${c2}oNWWWWWWWWWWWWWWWWWWNo${c1}sssssssss
-ssssssss${c2}:WWWWWWWWWWWWWWWWWWWWWW:${c1}ssssssss
-ssssssss${c2}lWWWWWk${c1}ssssssssss${c2}lddddd:${c1}ssssssss
-ssssssss${c2}cWWWWWNKKKKKKKKKKKKOx:${c1}ssssssssss
-${c3}yy${c1}sssssss${c2}OWWWWWWWWWWWWWWWWWWWWx${c1}sssssss${c3}yy
-yyyyyyyyyy${c2}:kKNNNNNNNNNNNNWWWWWW:${c3}yyyyyyyy
-yyyyyyyy${c2}sccccc;${c3}yyyyyyyyyy${c2}kWWWWW:${c3}yyyyyyyy
-yyyyyyyy${c2}:WWWWWWNNNNNNNNNNWWWWWW;${c3}yyyyyyyy
-yyyyyyyy${c2}.dWWWWWWWWWWWWWWWWWWWNd${c3}yyyyyyyyy
-yyyyyyyyyy${c2}sdO0KKKKKKKKKKKK0Od;${c3}yyyyyyyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-EOF
- ;;
-
- "Serene"*)
- set_colors 6 6
- read -rd '' ascii_data <<'EOF'
-${c1} __---''''''---__
- . .
- : :
- - _______----_-
- s __----''' __----
- __h_ _-' _-' h
- '-._''--.._ ; _-' y
- : ''-._ '-._/ _-' :
- y ':_ _--'' y
- m .--'' '-._.;' m
- m : : m
- y '.._ '-__ y
- : '--._ '''----___ :
- y '--._ ''-- _ y
- h '--._ : h
- s __'; vs
- - __..--'' -
- :_..--'' :
- . _ .
- `''---______---''-``
-EOF
- ;;
-
- "SharkLinux"*)
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c1} `:shd/
- `:yNMMMMs
- `-smMMMMMMN.
- .+dNMMMMMMMMs
- .smNNMMMMMMMMm`
- .sNNNNNNNMMMMMM/
- `omNNNNNNNMMMMMMm
- /dNNNNNNNNMMMMMMM+
- .yNNNNNNNNNMMMMMMMN`
- +mNNNNNNNNNMMMMMMMMh
- .hNNNNNNNNNNMMMMMMMMMs
- +mMNNNNNNNNMMMMMMMMMMMs
- .hNMMNNNNMMMMMMMMMMMMMMMd
- .oNNNNNNNNNNMMMMMMMMMMMMMMMo
- `:+syyssoo++++ooooossssssssssso:
-EOF
- ;;
-
- "Siduction"*)
- set_colors 4 4
- read -rd '' ascii_data <<'EOF'
-${c1} _aass,
- jQh: =$w
- QWmwawQW
- )$QQQQ@( ..
- _a_a. ~??^ syDY?Sa,
- _mW>-<$c jWmi imm.
- ]QQwayQE 4QQmgwmQQ`
- ?WWQWP' -9QQQQQ@'._aas,
- _a%is. .adYYs,. -"?!` aQB*~^3$c
-_Qh;.nm .QWc. {QL ]QQp;..vmQ/
-"QQmmQ@ -QQQggmQP ]QQWmggmQQ(
- -???" "$WQQQY` __, ?QQQQQQW!
- _yZ!?q, - .yWY!!Sw, "???^
- .QQa_=qQ mQm>..vmm
- $QQWQQP $QQQgmQQ@
- "???" _aa, -9WWQQWY`
- _mB>~)$a -~~
- mQms_vmQ.
- ]WQQQQQP
- -?T??"
-EOF
- ;;
-
- "slackware_small"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ________
- / ______|
- | |______
- \\______ \\
- ______| |
-| |________/
-|____________
-EOF
- ;;
-
- "Slackware"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} :::::::
- :::::::::::::::::::
- :::::::::::::::::::::::::
- ::::::::${c2}cllcccccllllllll${c1}::::::
- :::::::::${c2}lc dc${c1}:::::::
- ::::::::${c2}cl clllccllll oc${c1}:::::::::
- :::::::::${c2}o lc${c1}::::::::${c2}co oc${c1}::::::::::
- ::::::::::${c2}o cccclc${c1}:::::${c2}clcc${c1}::::::::::::
- :::::::::::${c2}lc cclccclc${c1}:::::::::::::
-::::::::::::::${c2}lcclcc lc${c1}::::::::::::
-::::::::::${c2}cclcc${c1}:::::${c2}lccclc oc${c1}:::::::::::
-::::::::::${c2}o l${c1}::::::::::${c2}l lc${c1}:::::::::::
- :::::${c2}cll${c1}:${c2}o clcllcccll o${c1}:::::::::::
- :::::${c2}occ${c1}:${c2}o clc${c1}:::::::::::
- ::::${c2}ocl${c1}:${c2}ccslclccclclccclclc${c1}:::::::::::::
- :::${c2}oclcccccccccccccllllllllllllll${c1}:::::
- ::${c2}lcc1lcccccccccccccccccccccccco${c1}::::
- ::::::::::::::::::::::::::::::::
- ::::::::::::::::::::::::::::
- ::::::::::::::::::::::
- ::::::::::::
-EOF
- ;;
-
- "SliTaz"*)
- set_colors 3 3
- read -rd '' ascii_data <<'EOF'
-${c1} @ @( @
- @@ @@ @ @/
- @@ @@ @@ @@
- @@ %@@ @@ @@
- @@ %@@@ @@@@@. @@@@ @@
- @@@ @@@@ @@@@@@@ &@@@ @@@
- @@@@@@@ %@@@@@@@@@@@@ &@@@% @@@@@@@/
- ,@@@@@@@@@@@@@@@@@@@@@@@@@
- .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/
-@@@@@@. @@@@@@@@@@@@@@@@@@@@@ /@@@@@@
-@@ @@@@@ @@@@@@@@@@@@, @@@@@ @@@
-@@ @@@@. @@@@@@@@@@@@@% #@@@@ @@.
-@@ ,@@ @@@@@@@@@@@@@ @@@ @@
-@ @@. @@@@@@@@@@@@@ @@@ *@
-@ @@ @@@@@@@@@@@@ @@ @
- @ @@@@@@@@@. #@
- @ ,@@@@@ @
-EOF
- ;;
-
- "SmartOS"*)
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1}yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyys oyyyyyyyyyyyyyyyy
-yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
-yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
-yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
-yyyys yyyyyyyyy oyyyyyyyyyyyyyyyy
-yyyys yyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyyy syyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyy syyyy
-yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
-yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
-yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy
-yyyyyyyyyyyyyyyy syyyyyyyyy syyyy
-yyyyyyyyyyyyyyyy yyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-EOF
- ;;
-
- "SkiffOS"*)
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c2}
- ,@@@@@@@@@@@w,_
- ${c2}====~~~,,.${c2}A@@@@@@@@@@@@@@@@@W,_
- ${c1}`||||||||||||||L{${c2}"@$@@@@@@@@B"
- ${c1}`|||||||||||||||||||||L{${c2}"$D
- ${c2}@@@@@@@@@@@@@@@@@@@@@${c1}_||||}==,
- ${c2}*@@@@@@@@@@@@@@@@@@@@@@@@@p${c1}||||==,
- ${c1}`'||LLL{{""${c2}@$B@@@@@@@@@@@@@@@p${c1}||
- ${c1}`~=|||||||||||L"${c2}$@@@@@@@@@@@
- ${c1}````'"""""""${c2}'""""""""
-EOF
- ;;
-
- "Solus"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} -```````````
- `-+/------------.`
- .---:mNo---------------.
- .-----yMMMy:---------------.
- `------oMMMMMm/----------------`
- .------/MMMMMMMN+----------------.
- .------/NMMMMMMMMm-+/--------------.
-`------/NMMMMMMMMMN-:mh/-------------`
-.-----/NMMMMMMMMMMM:-+MMd//oso/:-----.
------/NMMMMMMMMMMMM+--mMMMh::smMmyo:--
-----+NMMMMMMMMMMMMMo--yMMMMNo-:yMMMMd/.
-.--oMMMMMMMMMMMMMMMy--yMMMMMMh:-yMMMy-`
-`-sMMMMMMMMMMMMMMMMh--dMMMMMMMd:/Ny+y.
-`-/+osyhhdmmNNMMMMMm-/MMMMMMMmh+/ohm+
- .------------:://+-/++++++${c1}oshddys:
- -hhhhyyyyyyyyyyyhhhhddddhysssso-
- `:ossssssyysssssssssssssssso:`
- `:+ssssssssssssssssssss+-
- `-/+ssssssssssso+/-`
- `.-----..`
-EOF
- ;;
-
- "Source Mage"* | "Source_Mage"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} :ymNMNho.
-.+sdmNMMMMMMMMMMy`
-.-::/yMMMMMMMMMMMm-
- sMMMMMMMMMMMm/
- /NMMMMMMMMMMMMMm:
- .MMMMMMMMMMMMMMMMM:
- `MMMMMMMMMMMMMMMMMN.
- NMMMMMMMMMMMMMMMMMd
- mMMMMMMMMMMMMMMMMMMo
- hhMMMMMMMMMMMMMMMMMM.
- .`/MMMMMMMMMMMMMMMMMs
- :mMMMMMMMMMMMMMMMN`
- `sMMMMMMMMMMMMMMM+
- /NMMMMMMMMMMMMMN`
- oMMMMMMMMMMMMM+
- ./sd.-hMMMMMMMMmmN`
- ./+oyyyh- `MMMMMMMMMmNh
- sMMMMMMMMMmmo
- `NMMMMMMMMMd:
- -dMMMMMMMMMo
- -shmNMMms.
-EOF
- ;;
-
- "Sparky"*)
- set_colors 1 7
- read -rd '' ascii_data <<'EOF'
-${c1}
- . `-:-`
- .o` .-///-`
- `oo` .:/++:.
- os+` -/+++:` ``.........```
- /ys+`./+++/-.-::::::----......``
- `syyo`++o+--::::-::/+++/-``
- -yyy+.+o+`:/:-:sdmmmmmmmmdy+-`
-::-` :yyy/-oo.-+/`ymho++++++oyhdmdy/`
-`/yy+-`.syyo`+o..o--h..osyhhddhs+//osyy/`
- -ydhs+-oyy/.+o.-: ` ` :/::+ydhy+```-os-
- .sdddy::syo--/:. `.:dy+-ohhho ./:
- :yddds/:+oo+//:-`- /+ +hy+.shhy: ``
- `:ydmmdysooooooo-.ss`/yss--oyyo
- `./ossyyyyo+:-/oo:.osso- .oys
- ``..-------::////.-oooo/ :so
- `...----::::::::--.`/oooo: .o:
- ``````` ++o+:` `:`
- ./+/-` `
- `-:-.
- ``
-EOF
- ;;
-
- "Star"*)
- set_colors 7
- read -rd '' ascii_data <<'EOF'
-${c1} ./
- `yy-
- `y.`y`
- `` s- .y `
- +h//:..` +/ /o ``..:/so
- /o``.-::/:/+ o/://::-.`+o`
- :s` `. .` `s/
- .y. .s-
- `y- :s`
- .-//. /+:.
- .:/:. .:/:.
--+o:. .:+:.
--///++///:::` .-::::///+so-
- ``..o/ d-....```
- s. `/. d
- h .+o-+o- h.
- h -o/` `/o: s:
- -s/o:` `:o/+/
- /s- -yo
-EOF
- ;;
-
- "SteamOS"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} .,,,,.
- .,'onNMMMMMNNnn',.
- .'oNMANKMMMMMMMMMMMNNn'.
- .'ANMMMMMMMXKNNWWWPFFWNNMNn.
- ;NNMMMMMMMMMMNWW'' ,.., 'WMMM,
- ;NMMMMV+##+VNWWW' .+;'':+, 'WMW,
-,VNNWP+${c2}######${c1}+WW, ${c2}+: ${c1}:+, +MMM,
-'${c2}+#############, +. ,+' ${c1}+NMMM
-${c2} '*#########*' '*,,*' ${c1}.+NMMMM.
-${c2} `'*###*' ,.,;###${c1}+WNM,
-${c2} .,;;, .;##########${c1}+W
-${c2},',. '; ,+##############'
- '###+. :,. .,; ,###############'
- '####.. `'' .,###############'
- '#####+++################'
- '*##################*'
- ''*##########*''
- ''''''
-EOF
- ;;
-
- "sunos_small" | "solaris_small")
- set_colors 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} . .; .
- . :; :: ;: .
- .;. .. .. .;.
-.. .. .. ..
- .;, ,;.
-EOF
- ;;
-
- "SunOS" | "Solaris")
- set_colors 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} `- `
- `-- `+- .:
- .+: `++: -/+- .
- `.::` -++/``:::`./+/ `.-/.
- `++/-`.` ` /++:`
- `` ./:` .: `..`.-
-``./+/:- -+++:-
- -/+` :.
-EOF
- ;;
-
- "openSUSE Leap"* | "openSUSE_Leap"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c2} `-++:`
- ./oooooo/-
- `:oooooooooooo:.
- -+oooooooooooooooo+-`
- ./oooooooooooooooooooooo/-
- :oooooooooooooooooooooooooo:
- ` `-+oooooooooooooooooooo/- `
- `:oo/- .:ooooooooooooooo+:` `-+oo/.
-`/oooooo:. -/oooooooooo/. ./oooooo/.
- `:+ooooo+-` `:+oooo+- `:oooooo+:`
- .:oooooo/. .::` -+oooooo/.
- -/oooooo:. ./oooooo+-
- `:+ooooo+-:+oooooo:`
- ./oooooooooo/.
- -/oooo+:`
- `:/.
-EOF
- ;;
-
- "t2"*)
- set_colors 7 4
- read -rd '' ascii_data <<'EOF'
-${c2}
-TTTTTTTTTT
- tt ${c1}222${c2}
- tt ${c1}2 2${c2}
- tt ${c1}2${c2}
- tt ${c1}2${c2}
- tt ${c1}22222${c2}
-EOF
- ;;
-
- "openSUSE Tumbleweed"* | "openSUSE_Tumbleweed"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c2} ......
- .,cdxxxoc,. .:kKMMMNWMMMNk:.
- cKMMN0OOOKWMMXo. ; ;0MWk:. .:OMMk.
- ;WMK;. .lKMMNM, :NMK, .OMW;
- cMW; 'WMMMN ,XMK, oMM'
-.MMc ..;l. xMN: KM0
-'MM. 'NMO oMM
-.MM, .kMMl xMN
- KM0 .kMM0. .dl:,.. .WMd
- .XM0. ,OMMK, OMMMK. .XMK
- oWMO:. .;xNMMk, NNNMKl. .xWMx
- :ONMMNXMMMKx; . ,xNMWKkxllox0NMWk,
- ..... .:dOOXXKOxl,
-EOF
- ;;
-
- "opensuse_small" | "suse_small"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} _______
-__| __ \\
- / .\\ \\
- \\__/ |
- _______|
- \\_______
-__________/
-EOF
- ;;
-
- "openSUSE"* | "open SUSE"* | "SUSE"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c2} .;ldkO0000Okdl;.
- .;d00xl:^''''''^:ok00d;.
- .d00l' 'o00d.
- .d0Kd'${c1} Okxol:;,. ${c2}:O0d.
- .OK${c1}KKK0kOKKKKKKKKKKOxo:, ${c2}lKO.
- ,0K${c1}KKKKKKKKKKKKKKK0P^${c2},,,${c1}^dx:${c2} ;00,
-.OK${c1}KKKKKKKKKKKKKKKk'${c2}.oOPPb.${c1}'0k.${c2} cKO.
-:KK${c1}KKKKKKKKKKKKKKK: ${c2}kKx..dd ${c1}lKd${c2} 'OK:
-dKK${c1}KKKKKKKKKOx0KKKd ${c2}^0KKKO' ${c1}kKKc${c2} dKd
-dKK${c1}KKKKKKKKKK;.;oOKx,..${c2}^${c1}..;kKKK0.${c2} dKd
-:KK${c1}KKKKKKKKKK0o;...^cdxxOK0O/^^' ${c2}.0K:
- kKK${c1}KKKKKKKKKKKKK0x;,,......,;od ${c2}lKk
- '0K${c1}KKKKKKKKKKKKKKKKKKKK00KKOo^ ${c2}c00'
- 'kK${c1}KKOxddxkOO00000Okxoc;'' ${c2}.dKk'
- l0Ko. .c00l'
- 'l0Kk:. .;xK0l'
- 'lkK0xl:;,,,,;:ldO0kl'
- '^:ldxkkkkxdl:^'
-EOF
- ;;
- "parch"* | "Parch"* | "PARCH"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-
-
- ${c1} ,:lodddd.
- .:clooood.
- ;clllooooc
- ;cclllllloo
- .cccccllllll
- . ,cccclllll
- ':::;; ccccclll;
- .:::cccccccccccll;
- ;::::ccccllllllcll:
- .;::::cccclllloool::;
- ;;;::::cccclllolc::::;.
- ;;;::::cccclllccc:::::;.
- ;;;::::cccclccccc::::::;.
- ;;;;::::::llcccccc:::::'
- ;;;;:; ,clllccccccc::
- .;; .cllllllcccccc::;::::'
- .'''''''''',:lddoooolll
- '.....'''',cdddooooollll
- ........':oddddoooolllllc
- ....';ldddddooooolllllc:
- ,cdddddddooooollllccc
- :ddddddoooolllllccc
- ;ddooooolllllcc.
- :ooollllc.
- c'
-
-
-EOF
- ;;
-
- "SwagArch"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} .;ldkOKXXNNNNXXK0Oxoc,.
- ,lkXMMNK0OkkxkkOKWMMMMMMMMMM;
- 'K0xo ..,;:c:. `'lKMMMMM0
- .lONMMMMMM' `lNMk'
-${c2} ;WMMMMMMMMMO. ${c1}....::...
-${c2} OMMMMMMMMMMMMKl. ${c1}.,;;;;;ccccccc,
-${c2} `0MMMMMMMMMMMMMM0: ${c1}.. .ccccccc.
-${c2} 'kWMMMMMMMMMMMMMNo. ${c1}.,:' .ccccccc.
-${c2} `c0MMMMMMMMMMMMMN,${c1},:c; :cccccc:
-${c2} ckl. `lXMMMMMMMMMX${c1}occcc:.. ;ccccccc.
-${c2}dMMMMXd, `OMMMMMMWk${c1}ccc;:''` ,ccccccc:
-${c2}XMMMMMMMWKkxxOWMMMMMNo${c1}ccc; .cccccccc.
-${c2} `':ldxO0KXXXXXK0Okdo${c1}cccc. :cccccccc.
- :ccc:' `cccccccc:,
- ''
-EOF
- ;;
-
- "Tails"*)
- set_colors 5 7
- read -rd '' ascii_data <<'EOF'
-${c1} ``
- ./yhNh
-syy/Nshh `:o/
-N:dsNshh █ `ohNMMd
-N-/+Nshh `yMMMMd
-N-yhMshh yMMMMd
-N-s:hshh █ yMMMMd so//.
-N-oyNsyh yMMMMd d Mms.
-N:hohhhd:. yMMMMd syMMM+
-Nsyh+-..+y+- yMMMMd :mMM+
-+hy- -ss/`yMMMM `+d+
- :sy/. ./yNMMMMm ``
- .+ys- `:+hNMMMMMMy/`
- `hNmmMMMMMMMMMMMMdo.
- dMMMMMMMMMMMMMMMMMNh:
- +hMMMMMMMMMMMMMMMMMmy.
- -oNMMMMMMMMMMmy+.`
- `:yNMMMds/.`
- .//`
-EOF
- ;;
-
- "Trisquel"*)
- set_colors 4 6
- read -rd '' ascii_data <<'EOF'
-${c1} ▄▄▄▄▄▄
- ▄█████████▄
- ▄▄▄▄▄▄ ████▀ ▀████
- ▄██████████▄ ████▀ ▄▄ ▀███
- ▄███▀▀ ▀▀████ ███▄ ▄█ ███
-▄███ ▄▄▄ ████▄ ▀██████ ▄███
-███ █▀▀██▄ █████▄ ▀▀ ▄████
-▀███ ███ ███████▄▄ ▄▄██████
-${c1} ▀███▄ ▄███ █████████████${c2}████▀
-${c1} ▀█████████ ███████${c2}███▀▀▀
- ▀▀███▀▀ ██████▀▀
- ██████▀ ▄▄▄▄
- █████▀ ████████
- █████ ███▀ ▀███
- ████▄ ██▄▄▄ ███
- █████▄ ▀▀ ▄██
- ██████▄▄▄████
- ▀▀█████▀▀
-EOF
- ;;
-
- "Ubuntu Cinnamon"* | "Ubuntu-Cinnamon"*)
- set_colors 1 7
- read -rd '' ascii_data <<'EOF'
-${c1} .-/+oooooooo+/-.
- `:+oooooooooooooooooo+:`
- -+oooooooooooooooooooooooo+-
- .ooooooooooooooooooo${c2}:ohNd${c1}oooooo.
- /oooooooooooo${c2}:/+oo++:/ohNd${c1}ooooooo/
- +oooooooooo${c2}:osNdhyyhdNNh+:+${c1}oooooooo+
- /ooooooooo${c2}/dN/${c1}ooooooooo${c2}/sNNo${c1}ooooooooo/
-.ooooooooo${c2}oMd:${c1}oooooooooooo${c2}:yMy${c1}ooooooooo.
-+ooooo${c2}:+o/Md${c1}oooooo${c2}:sm/${c1}oo/ooo${c2}yMo${c1}oooooooo+
-ooo${c2}:sdMdosMo${c1}ooooo${c2}oNMd${c1}//${c2}dMd+${c1}o${c2}:so${c1}ooooooooo
-oooo${c2}+ymdosMo${c1}ooo${c2}+mMm${c1}+/${c2}hMMMMMh+hs${c1}ooooooooo
-+oooooo${c2}:${c1}:${c2}/Nm:${c1}/${c2}hMNo${c1}:y${c2}MMMMMMMMMM+${c1}oooooooo+
-.ooooooooo${c2}/NNMNy${c1}:o${c2}NMMMMMMMMMMo${c1}ooooooooo.
-/oooooooooo${c2}:yh:${c1}+m${c2}MMMMMMMMMMd/${c1}ooooooooo/
- +oooooooooo${c2}+${c1}/h${c2}mMMMMMMNds//o${c1}oooooooo+
- /oooooooooooo${c2}+:////:o/ymMd${c1}ooooooo/
- .oooooooooooooooooooo${c2}/sdh${c1}oooooo.
- -+oooooooooooooooooooooooo+-
- `:+oooooooooooooooooo+:`
- .-/+oooooooo+/-.
-EOF
- ;;
-
- "Ubuntu Budgie"* | "Ubuntu-Budgie"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c2} ./oydmMMMMMMmdyo/.
- :smMMMMMMMMMMMhs+:++yhs:
- `omMMMMMMMMMMMN+` `odo`
- /NMMMMMMMMMMMMN- `sN/
- `hMMMMmhhmMMMMMMh sMh`
- .mMmo- /yMMMMm` `MMm.
- mN/ yMMMMMMMd- MMMm
-oN- oMMMMMMMMMms+//+o+: :MMMMo
-m/ +NMMMMMMMMMMMMMMMMm. :NMMMMm
-M` .NMMMMMMMMMMMMMMMNodMMMMMMM
-M- sMMMMMMMMMMMMMMMMMMMMMMMMM
-mm` mMMMMMMMMMNdhhdNMMMMMMMMMm
-oMm/ .dMMMMMMMMh: :dMMMMMMMo
- mMMNyo/:/sdMMMMMMMMM+ sMMMMMm
- .mMMMMMMMMMMMMMMMMMs `NMMMm.
- `hMMMMMMMMMMM.oo+. `MMMh`
- /NMMMMMMMMMo sMN/
- `omMMMMMMMMy. :dmo`
- :smMMMMMMMh+-` `.:ohs:
- ./oydmMMMMMMdhyo/.
-EOF
- ;;
-
- "Ubuntu-GNOME"*)
- set_colors 4 5 7 6
- read -rd '' ascii_data <<'EOF'
-${c3} ./o.
- .oooooooo
- .oooo```soooo
- .oooo` `soooo
- .ooo` ${c4}.o.${c3} `\/ooo.
- :ooo ${c4}:oooo.${c3} `\/ooo.
- sooo ${c4}`ooooo${c3} \/oooo
- \/ooo ${c4}`soooo${c3} `ooooo
- `soooo ${c4}`\/ooo${c3} `soooo
-${c4}./oo ${c3}`\/ooo ${c4}`/oooo.${c3} `/ooo
-${c4}`\/ooo. ${c3}`/oooo. ${c4}`/oooo.${c3} ``
-${c4} `\/ooo. ${c3}/oooo ${c4}/ooo`
-${c4} `ooooo ${c3}`` ${c4}.oooo
-${c4} `soooo. .oooo`
- `\/oooooooooo`
- ``\/oo``
-EOF
- ;;
-
- "Ubuntu MATE"* | "Ubuntu-MATE"*)
- set_colors 2 7
- read -rd '' ascii_data <<'EOF'
-${c1} .:/+oossssoo+/:.`
- `:+ssssssssssssssssss+:`
- -+sssssssssssssss${c2}y${c1}ssssssss+-
- .osssssssssssss${c2}yy${c1}ss${c2}mMmh${c1}ssssssso.
- /sssssssss${c2}ydmNNNmmd${c1}s${c2}mMMMMNdy${c1}sssss/
- `+ssssssss${c2}hNNdy${c1}sssssss${c2}mMMMMNdy${c1}ssssss+`
- +sssssss${c2}yNNh${c1}ss${c2}hmNNNNm${c1}s${c2}mMmh${c1}s${c2}ydy${c1}sssssss+
--sssss${c2}y${c1}ss${c2}Nm${c1}ss${c2}hNNh${c1}ssssss${c2}y${c1}s${c2}hh${c1}ss${c2}mMy${c1}sssssss-
-+ssss${c2}yMNdy${c1}ss${c2}hMd${c1}ssssssssss${c2}hMd${c1}ss${c2}NN${c1}sssssss+
-sssss${c2}yMMMMMmh${c1}sssssssssssss${c2}NM${c1}ss${c2}dMy${c1}sssssss
-sssss${c2}yMMMMMmhy${c1}ssssssssssss${c2}NM${c1}ss${c2}dMy${c1}sssssss
-+ssss${c2}yMNdy${c1}ss${c2}hMd${c1}ssssssssss${c2}hMd${c1}ss${c2}NN${c1}sssssss+
--sssss${c2}y${c1}ss${c2}Nm${c1}ss${c2}hNNh${c1}ssssssss${c2}dh${c1}ss${c2}mMy${c1}sssssss-
- +sssssss${c2}yNNh${c1}ss${c2}hmNNNNm${c1}s${c2}mNmh${c1}s${c2}ymy${c1}sssssss+
- +ssssssss${c2}hNNdy${c1}sssssss${c2}mMMMMmhy${c1}ssssss+
- /sssssssss${c2}ydmNNNNmd${c1}s${c2}mMMMMNdh${c1}sssss/
- .osssssssssssss${c2}yy${c1}ss${c2}mMmdy${c1}sssssso.
- -+sssssssssssssss${c2}y${c1}ssssssss+-
- `:+ssssssssssssssssss+:`
- .:/+oossssoo+/:.
-
-EOF
- ;;
-
- "ubuntu_old")
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} ./+o+-
-${c2} yyyyy- ${c1}-yyyyyy+
-${c2} ${c2}://+//////${c1}-yyyyyyo
-${c3} .++ ${c2}.:/++++++/-${c1}.+sss/`
-${c3} .:++o: ${c2}/++++++++/:--:/-
-${c3} o:+o+:++.${c2}`..```.-/oo+++++/
-${c3} .:+o:+o/.${c2} `+sssoo+/
-${c2} .++/+:${c3}+oo+o:`${c2} /sssooo.
-${c2}/+++//+:${c3}`oo+o${c2} /::--:.
-${c2}+/+o+++${c3}`o++o${c1} ++////.
-${c2} .++.o+${c3}++oo+:`${c1} /dddhhh.
-${c3} .+.o+oo:.${c1} `oddhhhh+
-${c3} +.++o+o`${c1}`-````.:ohdhhhhh+
-${c3} `:o+++ ${c1}`ohhhhhhhhyo++os:
-${c3} .o:${c1}`.syhhhhhhh/${c3}.oo++o`
-${c1} /osyyyyyyo${c3}++ooo+++/
-${c1} ````` ${c3}+oo+++o:
-${c3} `oo++.
-EOF
- ;;
-
- "Ubuntu Studio"* | "Ubuntu-Studio")
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} ..-::::::-.`
- `.:+++++++++++${c2}ooo${c1}++:.`
- ./+++++++++++++${c2}sMMMNdyo${c1}+/.
- .++++++++++++++++${c2}oyhmMMMMms${c1}++.
- `/+++++++++${c2}osyhddddhys${c1}+${c2}osdMMMh${c1}++/`
- `+++++++++${c2}ydMMMMNNNMMMMNds${c1}+${c2}oyyo${c1}++++`
- +++++++++${c2}dMMNhso${c1}++++${c2}oydNMMmo${c1}++++++++`
- :+${c2}odmy${c1}+++${c2}ooysoohmNMMNmyoohMMNs${c1}+++++++:
- ++${c2}dMMm${c1}+${c2}oNMd${c1}++${c2}yMMMmhhmMMNs+yMMNo${c1}+++++++
-`++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMs${c1}++++${c2}sMMN${c1}++${c2}NMMs${c1}+++++++.
-`++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMo${c1}++++${c2}sMMN${c1}++${c2}mMMs${c1}+++++++.
- ++${c2}dMMd${c1}+${c2}oNMm${c1}++${c2}yMMNdhhdMMMs${c1}+y${c2}MMNo${c1}+++++++
- :+${c2}odmy${c1}++${c2}oo${c1}+${c2}ss${c1}+${c2}ohNMMMMmho${c1}+${c2}yMMMs${c1}+++++++:
- +++++++++${c2}hMMmhs+ooo+oshNMMms${c1}++++++++
- `++++++++${c2}oymMMMMNmmNMMMMmy+oys${c1}+++++`
- `/+++++++++${c2}oyhdmmmmdhso+sdMMMs${c1}++/
- ./+++++++++++++++${c2}oyhdNMMMms${c1}++.
- ./+++++++++++++${c2}hMMMNdyo${c1}+/.
- `.:+++++++++++${c2}sso${c1}++:.
- ..-::::::-..
-EOF
- ;;
-
- "ubuntu_small")
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} _
- ---(_)
- _/ --- \\
-(_) | |
- \\ --- _/
- ---(_)
-EOF
- ;;
-
- "Ubuntu"* | "i3buntu"*)
- set_colors 1 7 3
- read -rd '' ascii_data <<'EOF'
-${c1} .-/+oossssoo+\-.
- ´:+ssssssssssssssssss+:`
- -+ssssssssssssssssssyyssss+-
- .ossssssssssssssssss${c2}dMMMNy${c1}sssso.
- /sssssssssss${c2}hdmmNNmmyNMMMMh${c1}ssssss\
- +sssssssss${c2}hm${c1}yd${c2}MMMMMMMNddddy${c1}ssssssss+
- /ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhmNMMMNh${c1}ssssssss\
-.ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss.
-+ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+
-oss${c2}yNMMMNyMMh${c1}ssssssssssssss${c2}hmmmh${c1}ssssssso
-oss${c2}yNMMMNyMMh${c1}sssssssssssssshmmmh${c1}ssssssso
-+ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+
-.ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss.
- \ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhdNMMMNh${c1}ssssssss/
- +sssssssss${c2}dm${c1}yd${c2}MMMMMMMMddddy${c1}ssssssss+
- \sssssssssss${c2}hdmNNNNmyNMMMMh${c1}ssssss/
- .ossssssssssssssssss${c2}dMMMNy${c1}sssso.
- -+sssssssssssssssss${c2}yyy${c1}ssss+-
- `:+ssssssssssssssssss+:`
- .-\+oossssoo+/-.
-EOF
- ;;
-
- "Univention"*)
- set_colors 1 7
- read -rd '' ascii_data <<'EOF'
-${c1} ./osssssssssssssssssssssso+-
- `ohhhhhhhhhhhhhhhhhhhhhhhhhhhhy:
- shhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh-
- `-//${c2}sssss${c1}/hhhhhhhhhhhhhh+${c2}s${c1}.hhhhhhhhh+
- .ohhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sss${c1}+hhhhhhh+
-.yhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}ssss${c1}:hhhhhh+
-+hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+
-+hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+
-+hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+
-+hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+
-+hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+
-+hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+
-+hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+
-+hhhhhy${c2}ssssss${c1}+yhhhhhhhhhhy/${c2}ssssss${c1}yhhhhh+
-+hhhhhh:${c2}sssssss${c1}:hhhhhhh+${c2}.ssssssss${c1}yhhhhy.
-+hhhhhhh+`${c2}ssssssssssssssss${c1}hh${c2}sssss${c1}yhhho`
-+hhhhhhhhhs+${c2}ssssssssssss${c1}+hh+${c2}sssss${c1}/:-`
--hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhho
- :yhhhhhhhhhhhhhhhhhhhhhhhhhhhh+`
- -+ossssssssssssssssssssss+:`
-EOF
- ;;
-
- "Venom"*)
- set_colors 8 4
- read -rd '' ascii_data <<'EOF'
-${c1} ::::::: :::::::
- mMMMMMMm dMMMMMMm
- /MMMMMMMo +MMMMMMM/
- yMMMMMMN mMMMMMMy
- NMMMMMMs oMMMMMMm
- +MMMMMMN: NMMMMMM+
- hMMMMMMy sMMMMMMy
- :NMMMMMM::NMMMMMN:
- oMMMMMMyyMMMMMM+
- dMMMMMMMMMMMMh
- /MMMMMMMMMMMN:
- sMMMMMMMMMMo
- mMMMMMMMMd
- +MMMMMMMN:
- ::::::
-EOF
- ;;
-
- "void_small")
- set_colors 2 8
- read -rd '' ascii_data <<'EOF'
-${c1} _______
- _ \\______ -
-| \\ ___ \\ |
-| | / \ | |
-| | \___/ | |
-| \\______ \\_|
- -_______\\
-EOF
- ;;
-
- "Void"*)
- set_colors 2 8
- read -rd '' ascii_data <<'EOF'
-${c1} __.;=====;.__
- _.=+==++=++=+=+===;.
- -=+++=+===+=+=+++++=_
- . -=:`` `--==+=++==.
- _vi, ` --+=++++:
- .uvnvi. _._ -==+==+.
- .vvnvnI` .;==|==;. :|=||=|.
-${c2}+QmQQm${c1}pvvnv; ${c2}_yYsyQQWUUQQQm #QmQ#${c1}:${c2}QQQWUV$QQm.
-${c2} -QQWQW${c1}pvvo${c2}wZ?.wQQQE${c1}==<${c2}QWWQ/QWQW.QQWW${c1}(: ${c2}jQWQE
-${c2} -$QQQQmmU' jQQQ@${c1}+=<${c2}QWQQ)mQQQ.mQQQC${c1}+;${c2}jWQQ@'
-${c2} -$WQ8Y${c1}nI: ${c2}QWQQwgQQWV${c1}`${c2}mWQQ.jQWQQgyyWW@!
-${c1} -1vvnvv. `~+++` ++|+++
- +vnvnnv, `-|===
- +vnvnvns. . :=-
- -Invnvvnsi..___..=sv=. `
- +Invnvnvnnnnnnnnvvnn;.
- ~|Invnvnvvnvvvnnv}+`
- -~|{*l}*|~
-EOF
-
- ;;
-
- "VNux"*)
- set_colors 11 8 15 1 7
- read -rd '' ascii_data <<'EOF'
-${c1} `
- ^[XOx~.
- ^_nwdbbkp0ti'
-
-${c2} _j>!vC1,,
- ${c4},${c2} ,CY${c3}O${c2}t${c3}O${c2}1(l;"
-`${c4}~-{r(1I${c2} ^${c1}/zmwJuc:${c2}I^
-'${c4}?)|${c1}U${c4}/}-${c2} ^${c3}f${c1}OCLLOw${c3}_${c2},;
- ,${c4}i,``. ${c2}",${c3}k%ooW@$d"${c2}I,'
- ' ;^${c3}u$$$$$$$$^<${c2}:^
- ` .>>${c3}($$${c5}$@@@@$$${c3}$nl${c2}[::
- `!}?${c3}B$${c5}%&WMMW&%$${c3}$1}-${c2}}":
- ^?j${c3}Z$${c5}WMMWWWWMMW$${c3}ofc${c2};;`
- <~x&${c3}$${c5}&MWWWWWWWWp${c3}-${c5}l>[<
-${c1} 'ljmwn${c2}~tk8${c5}MWWWWM8O${c2}X${c1}r${c2}+]nC${c1}[
-!JZqwwdX${c2}:^C8${c5}#MMMM@${c2}X${c1}Odpdpq0<
- ^x00J("
- ^"
-EOF
-
- ;;
-
- "LangitKetujuh"*)
- set_colors 7 4
- read -rd '' ascii_data <<'EOF'
-${c1}
- L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L
- 'L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L
- L7L. 'L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L
- L7L7L7L L7L7L7L
- L7L7L7L L7L7L7L
- L7L7L7L L7L7L7L7L7L7L7L7L7L7L7L
- L7L7L7L 'L7L7L7L7L7L7L7L7L7L
- L7L7L7L 'L7L7L7L7L7L7L7L
- L7L7L7L L7L7L7L
- L7L7L7L L7L7L7L
- L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L. 'L7L
- L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L.
- L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L
-${c2}
-EOF
- ;;
-
- "semc"*)
- set_colors 2 8 1
- read -rd '' ascii_data <<'EOF'
-${c1} /\
- ______/ \
- / |()| ${c2}E M C
-${c1} | (-- | |
- \ \ | |
-.----) | |__|
-|_______/ / ${c3}"${c1} \
- ${c3}"
- "
-EOF
-
- ;;
-
- "Obarun"*)
- set_colors 6 6 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} ,;::::;
- ;cooolc;,
- ,coool;
- ,loool,
- loooo;
- :ooool
- cooooc ,:ccc;
- looooc :oooooool
- cooooo ;oooooooooo,
- :ooooo; :ooooooooooo
- oooooo oooooooooooc
- :oooooo :ooooooooool
- loooooo ;oooooooool
- looooooc .coooooooc
- cooooooo: ,;co;
- ,ooooooool; ,:loc
- cooooooooooooloooooc
- ;ooooooooooooool;
- ;looooooolc;
-EOF
- ;;
-
- *"[Windows 11]"*|*"on Windows 11"*|\
- "Windows 11"* |"windows11")
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1}
-################ ################
-################ ################
-################ ################
-################ ################
-################ ################
-################ ################
-################ ################
-
-################ ################
-################ ################
-################ ################
-################ ################
-################ ################
-################ ################
-################ ################
-EOF
- ;;
-
- *"[Windows 10]"*|*"on Windows 10"*|"Windows 8"*|\
- "Windows 10"* |"windows10"|"windows8")
- set_colors 6 7
- read -rd '' ascii_data <<'EOF'
-${c1} ..,
- ....,,:;+ccllll
- ...,,+:; cllllllllllllllllll
-,cclllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-llllllllllllll lllllllllllllllllll
-`'ccllllllllll lllllllllllllllllll
- `' \\*:: :ccllllllllllllllll
- ````''*::cll
- ``
-EOF
- ;;
-
- "Windows"*)
- set_colors 1 2 4 3
- read -rd '' ascii_data <<'EOF'
-${c1} ,.=:!!t3Z3z.,
- :tt:::tt333EE3
-${c1} Et:::ztt33EEEL${c2} @Ee., ..,
-${c1} ;tt:::tt333EE7${c2} ;EEEEEEttttt33#
-${c1} :Et:::zt333EEQ.${c2} $EEEEEttttt33QL
-${c1} it::::tt333EEF${c2} @EEEEEEttttt33F
-${c1} ;3=*^```"*4EEV${c2} :EEEEEEttttt33@.
-${c3} ,.=::::!t=., ${c1}`${c2} @EEEEEEtttz33QF
-${c3} ;::::::::zt33)${c2} "4EEEtttji3P*
-${c3} :t::::::::tt33.${c4}:Z3z..${c2} ``${c4} ,..g.
-${c3} i::::::::zt33F${c4} AEEEtttt::::ztF
-${c3} ;:::::::::t33V${c4} ;EEEttttt::::t3
-${c3} E::::::::zt33L${c4} @EEEtttt::::z3F
-${c3}{3=*^```"*4E3)${c4} ;EEEtttt:::::tZ`
-${c3} `${c4} :EEEEtttt::::z7
- "VEzjt:;;z>*`
-EOF
- ;;
-
- "Xubuntu"*)
- set_colors 4 7 1
- read -rd '' ascii_data <<'EOF'
-${c1} `.:/ossyyyysso/:.
- `.yyyyyyyyyyyyyyyyyyyy.`
- `yyyyyyyyyyyyyyyyyyyyyyyyyy`
- `yyyyyyyyyyyyyyyyyyyy${c2}::${c1}yyyyyyyy`
- .yyyyyyyyyyy${c2}/+:${c1}yyyyyyy${c2}ds${c1}yyy${c2}+y${c1}yyyy.
- yyyyyyy${c2}:o/${c1}yy${c2}dMMM+${c1}yyyyy${c2}/M+${c1}y${c2}:hM+${c1}yyyyyy
- yyyyyyy${c2}+MMMy${c1}y${c2}mMMMh${c1}yyyyy${c2}yM::mM+${c1}yyyyyyyy
-`yyyyyyy${c2}+MMMMysMMMd${c1}yyyyy${c2}dh:mN+${c1}yyyyyyyyy`
-yyyyyyyy${c2}:NMMMMmMMMMmmdhyy+/y:${c1}yyyyyyyyyyy
-yyyyyyyy${c2}+MMMMMMMMMMMMMMMMMMNho:${c1}yyyyyyyyy
-yyyyyyyy${c2}mMMMMMMMMMMMMMMMMMMMMMMy${c1}yyyyyyyy
-yyyyyyy${c2}+MMMMMMMMMMMMMMMMMMMMMMMM/${c1}yyyyyyy
-`yyyyyy${c2}sMMMMMMMMMMMMMMMMMMMMMMmo${c1}yyyyyyy`
- yyyyyy${c2}oMMMMMMMMMMMMMMMMMMMmy+${c1}yyyyyyyyy
- yyyyy${c2}:mMMMMMMMMMMMMMMNho/${c1}yyyyyyyyyyy
- .yyyy${c2}:yNMMMMMMMNdyo:${c1}yyyyyyyyyyyyy.
- `yyyyyy${c2}:/++/::${c1}yyyyyyyyyyyyyyyyy`
- `yyyyyyyyyyyyyyyyyyyyyyyyyy`
- `.yyyyyyyyyyyyyyyyyyyy.`
- `.:/oosyyyysso/:.`
-EOF
- ;;
- "IRIX"*)
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c1} ./ohmNd/ +dNmho/-
- `:+ydNMMMMMMMM.-MMMMMMMMMdyo:.
- `hMMMMMMNhs/sMMM-:MMM+/shNMMMMMMh`
- -NMMMMMmo-` /MMM-/MMM- `-omMMMMMN.
- `.`-+hNMMMMMNhyMMM-/MMMshmMMMMMmy+...`
-+mMNds:-:sdNMMMMMMMyyMMMMMMMNdo:.:sdMMm+
-dMMMMMMmy+.-/ymNMMMMMMMMNmy/-.+hmMMMMMMd
-oMMMMmMMMMNds:.+MMMmmMMN/.-odNMMMMmMMMM+
-.MMMM-/ymMMMMMmNMMy..hMMNmMMMMMmy/-MMMM.
- hMMM/ `/dMMMMMMMN////NMMMMMMMd/. /MMMh
- /MMMdhmMMMmyyMMMMMMMMMMMMhymMMMmhdMMM:
- `mMMMMNho//sdMMMMM//NMMMMms//ohNMMMMd
- `/so/:+ymMMMNMMMM` mMMMMMMMmh+::+o/`
- `yNMMNho-yMMMM` NMMMm.+hNMMNh`
- -MMMMd: oMMMM. NMMMh :hMMMM-
- -yNMMMmooMMMM- NMMMyomMMMNy-
- .omMMMMMMMM-`NMMMMMMMmo.
- `:hMMMMMM. NMMMMMh/`
- .odNm+ /dNms.
-EOF
- ;;
- "Zorin"*)
- set_colors 4 6
- read -rd '' ascii_data <<'EOF'
-${c1} `osssssssssssssssssssso`
- .osssssssssssssssssssssso.
- .+oooooooooooooooooooooooo+.
-
-
- `::::::::::::::::::::::. .:`
- `+ssssssssssssssssss+:.` `.:+ssso`
-.ossssssssssssssso/. `-+ossssssso.
-ssssssssssssso/-` `-/osssssssssssss
-.ossssssso/-` .-/ossssssssssssssso.
- `+sss+:. `.:+ssssssssssssssssss+`
- `:. .::::::::::::::::::::::`
-
-
- .+oooooooooooooooooooooooo+.
- -osssssssssssssssssssssso-
- `osssssssssssssssssssso`
-EOF
- ;;
-
- *)
- case $kernel_name in
- *"BSD")
- set_colors 1 7 4 3 6
- read -rd '' ascii_data <<'EOF'
-${c1} , ,
- /( )`
- \ \___ / |
- /- _ `-/ '
- (${c2}/\/ \ ${c1}\ /\
- ${c2}/ / | ` ${c1}\
- ${c3}O O ${c2}) ${c1}/ |
- ${c2}`-^--'${c1}`< '
- (_.) _ ) /
- `.___/` /
- `-----' /
-${c4}<----. __ / __ \
-${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====|
-<----' ${c1}`--' `.__,' \
- | |
- \ / /\
- ${c5}______${c1}( (_ / \______/
- ${c5},' ,-----' |
- `--{__________)
-EOF
- ;;
-
- "Darwin")
- set_colors 2 3 1 1 5 4
- read -rd '' ascii_data <<'EOF'
-${c1} c.'
- ,xNMM.
- .OMMMMo
- lMMM"
- .;loddo:. .olloddol;.
- cKMMMMMMMMMMNWMMMMMMMMMM0:
-${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd.
- XMMMMMMMMMMMMMMMMMMMMMMMX.
-${c3};MMMMMMMMMMMMMMMMMMMMMMMM:
-:MMMMMMMMMMMMMMMMMMMMMMMM:
-${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX.
- kMMMMMMMMMMMMMMMMMMMMMMMMWd.
- ${c5}'XMMMMMMMMMMMMMMMMMMMMMMMMMMk
- 'XMMMMMMMMMMMMMMMMMMMMMMMMK.
- ${c6}kMMMMMMMMMMMMMMMMMMMMMMd
- ;KMMMMMMMWXXWMMMMMMMk.
- "cooc*" "*coo'"
-EOF
- ;;
-
- "GNU"*)
- set_colors fg 7
- read -rd '' ascii_data <<'EOF'
-${c1} _-`````-, ,- '- .
- .' .- - | | - -. `.
- /.' / `. \
-:/ : _... ..._ `` :
-:: : /._ .`:'_.._\. || :
-:: `._ ./ ,` : \ . _.'' .
-`:. / | -. \-. \\_ /
- \:._ _/ .' .@) \@) ` `\ ,.'
- _/,--' .- .\,-.`--`.
- ,'/'' (( \ ` )
- /'/' \ `-' (
- '/'' `._,-----'
- ''/' .,---'
- ''/' ;:
- ''/'' ''/
- ''/''/''
- '/'/'
- `;
-EOF
- ;;
-
- "Linux")
- set_colors fg 8 3
- read -rd '' ascii_data <<'EOF'
-${c2} #####
-${c2} #######
-${c2} ##${c1}O${c2}#${c1}O${c2}##
-${c2} #${c3}#####${c2}#
-${c2} ##${c1}##${c3}###${c1}##${c2}##
-${c2} #${c1}##########${c2}##
-${c2} #${c1}############${c2}##
-${c2} #${c1}############${c2}###
-${c3} ##${c2}#${c1}###########${c2}##${c3}#
-${c3}######${c2}#${c1}#######${c2}#${c3}######
-${c3}#######${c2}#${c1}#####${c2}#${c3}#######
-${c3} #####${c2}#######${c3}#####
-EOF
- ;;
- "Profelis SambaBOX"* | "SambaBOX"*)
- set_colors 3 6
- read -rd '' ascii_data <<'EOF'
-${c1}
- #
- *////#####
- /////////#########(
- .((((((///// ,####(#(((((
- /#######(((* (#(((((((((.
-//((#(#(#, ((##( ,((((((//
-////// #(##########( //////
-////// ((#(#(#(#(##########(/////////
-/////( (((((((#########(##((((((/////
-/(((#( ((((/
-####(# ((###
-#########(((/////////(((((((((, (#(#(
-########( /////////(((((((* #####
-####///, *////((( (((((((
-./////////// .//(((((((((
- ///////////, *(/////((((*
- ,/(((((((((##########/.
- .((((((#######
- ((##*
-EOF
- ;;
-
- "SunOS")
- set_colors 3 7
- read -rd '' ascii_data <<'EOF'
-${c1} `- `
- `-- `+- .:
- .+: `++: -/+- .
- `.::` -++/``:::`./+/ `.-/.
- `++/-`.` ` /++:`
- `` ./:` .: `..`.-
-``./+/:- -+++:-
- -/+` :.
-EOF
- ;;
-
- "IRIX"*)
- set_colors 4 7
- read -rd '' ascii_data <<'EOF'
-${c1} ./ohmNd/ +dNmho/-
- `:+ydNMMMMMMMM.-MMMMMMMMMdyo:.
- `hMMMMMMNhs/sMMM-:MMM+/shNMMMMMMh`
- -NMMMMMmo-` /MMM-/MMM- `-omMMMMMN.
- `.`-+hNMMMMMNhyMMM-/MMMshmMMMMMmy+...`
-+mMNds:-:sdNMMMMMMMyyMMMMMMMNdo:.:sdMMm+
-dMMMMMMmy+.-/ymNMMMMMMMMNmy/-.+hmMMMMMMd
-oMMMMmMMMMNds:.+MMMmmMMN/.-odNMMMMmMMMM+
-.MMMM-/ymMMMMMmNMMy..hMMNmMMMMMmy/-MMMM.
- hMMM/ `/dMMMMMMMN////NMMMMMMMd/. /MMMh
- /MMMdhmMMMmyyMMMMMMMMMMMMhymMMMmhdMMM:
- `mMMMMNho//sdMMMMM//NMMMMms//ohNMMMMd
- `/so/:+ymMMMNMMMM` mMMMMMMMmh+::+o/`
- `yNMMNho-yMMMM` NMMMm.+hNMMNh`
- -MMMMd: oMMMM. NMMMh :hMMMM-
- -yNMMMmooMMMM- NMMMyomMMMNy-
- .omMMMMMMMM-`NMMMMMMMmo.
- `:hMMMMMM. NMMMMMh/`
- .odNm+ /dNms.
-EOF
- ;;
-
- esac
- ;;
- esac
-
- # Overwrite distro colors if '$ascii_colors' doesn't
- # equal 'distro'.
- [[ ${ascii_colors[0]} != distro ]] && {
- color_text=off
- set_colors "${ascii_colors[@]}"
- }
-}
-
main() {
cache_uname
get_os
-
- # Load default config.
- eval "$config"
-
+ get_default_config
get_args "$@"
- [[ $verbose != on ]] && exec 2>/dev/null
- get_simple "$@"
+ [[ "$verbose" != "on" ]] && exec 2>/dev/null
get_distro
get_bold
- get_distro_ascii
- [[ $stdout == on ]] && stdout
+ get_distro_colors
+ [[ "$stdout" == "on" ]] && stdout
# Minix doesn't support these sequences.
- [[ $TERM != minix && $stdout != on ]] && {
+ if [[ "$TERM" != "minix" && "$stdout" != "on" ]]; then
# If the script exits for any reason, unhide the cursor.
- trap 'printf "\e[?25h\e[?7h"' EXIT
+ trap 'printf "\033[?25h\033[?7h"' EXIT
# Hide the cursor and disable line wrap.
- printf '\e[?25l\e[?7l'
- }
+ printf "\033[?25l\033[?7l"
+ fi
image_backend
- get_cache_dir
old_functions
+ get_cache_dir
print_info
dynamic_prompt
# w3m-img: Draw the image a second time to fix
# rendering issues in specific terminal emulators.
- [[ $image_backend == *w3m* ]] && display_image
- [[ $image_backend == *ueberzug* ]] && display_image
+ [[ "$image_backend" == *w3m* ]] && display_image
- # Add neofetch info to verbose output.
- err "Neofetch command: $0 $*"
- err "Neofetch version: $version"
+ # Take a screenshot.
+ [[ "$scrot" == "on" ]] && take_scrot
- [[ $verbose == on ]] && printf '%b\033[m' "$err" >&2
+ # Show error messages.
+ [[ "$verbose" == "on" ]] && printf "%b" "$err" >&2
# If `--loop` was used, constantly redraw the image.
- while [[ $image_loop == on && $image_backend == w3m ]]; do
- display_image
- sleep 1
- done
+ while [[ "$image_loop" == "on" && "$image_backend" == "w3m" ]]; do display_image; sleep 1s; done
return 0
}
diff --git a/neofetch.1 b/neofetch.1
index 72cd4e93..160b9905 100644
--- a/neofetch.1
+++ b/neofetch.1
@@ -1,10 +1,10 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3.
-.TH NEOFETCH "1" "April 2021" "Neofetch 7.1.0" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
+.TH NEOFETCH "1" "September 2017" "Neofetch 3.3.0" "User Commands"
.SH NAME
Neofetch \- A fast, highly customizable system info script
.SH SYNOPSIS
.B neofetch
-\fI\,func_name --option "value" --option "value"\/\fR
+\fI\,--option "value" --option "value"\/\fR
.SH DESCRIPTION
Neofetch is a CLI system information tool written in BASH. Neofetch
displays information about your system next to an image, your OS logo,
@@ -14,38 +14,12 @@ NOTE: Every launch flag has a config option.
.SH OPTIONS
.SS "INFO:"
.TP
-func_name
-Specify a function name (second part of info() from config) to
-quickly display only that function's information.
-.IP
-Example: neofetch uptime \fB\-\-uptime_shorthand\fR tiny
-.IP
-Example: neofetch uptime disk wm memory
-.IP
-This can be used in bars and scripts like so:
-.IP
-memory="$(neofetch memory)"; memory="${memory##*: }"
-.IP
-For multiple outputs at once (each line of info in an array):
-.IP
-IFS=$'\en' read \fB\-d\fR "" \fB\-ra\fR info < <(neofetch memory uptime wm)
-.IP
-info=("${info[@]##*: }")
-.TP
\fB\-\-disable\fR infoname
Allows you to disable an info line from appearing
-in the output. 'infoname' is the function name from the
-\&'print_info()' function inside the config file.
-For example: 'info "Memory" memory' would be '\-\-disable memory'
+in the output.
.IP
NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu'
.TP
-\fB\-\-title_fqdn\fR on/off
-Hide/Show Fully Qualified Domain Name in title.
-.TP
-\fB\-\-package_managers\fR on/off
-Hide/Show Package Manager names . (on, tiny, off)
-.TP
\fB\-\-os_arch\fR on/off
Hide/Show OS architecture.
.TP
@@ -83,7 +57,7 @@ NOTE: For FreeBSD and NetBSD\-based systems, you need to enable
coretemp kernel module. This only supports newer Intel processors.
.TP
\fB\-\-distro_shorthand\fR on/off
-Shorten the output of distro (on, tiny, off)
+Shorten the output of distro (tiny, on, off)
.IP
NOTE: This option won't work in Windows (Cygwin)
.TP
@@ -93,7 +67,7 @@ Shorten the output of kernel
NOTE: This option won't work in BSDs (except PacBSD and PC\-BSD)
.TP
\fB\-\-uptime_shorthand\fR on/off
-Shorten the output of uptime (on, tiny, off)
+Shorten the output of uptime (tiny, on, off)
.TP
\fB\-\-refresh_rate\fR on/off
Whether to display the refresh rate of each monitor
@@ -107,9 +81,6 @@ Which GPU to display. (all, dedicated, integrated)
.IP
NOTE: This only supports Linux.
.TP
-\fB\-\-de_version\fR on/off
-Show/Hide Desktop Environment version
-.TP
\fB\-\-gtk_shorthand\fR on/off
Shorten output of gtk theme/icons
.TP
@@ -133,43 +104,25 @@ NOTE: Multiple values can be given. (\fB\-\-disk_show\fR '/' '/dev/sdc1')
.TP
\fB\-\-disk_subtitle\fR type
What information to append to the Disk subtitle.
-Takes: name, mount, dir, none
+Takes: name, mount, dir
.IP
\&'name' shows the disk's name (sda1, sda2, etc)
.IP
\&'mount' shows the disk's mount point (/, \fI\,/mnt/Local\/\fP Disk, etc)
.IP
\&'dir' shows the basename of the disks's path. (/, Local Disk, etc)
-.IP
-\&'none' shows only 'Disk' or the configured title.
-.TP
-\fB\-\-disk_percent\fR on/off
-Hide/Show disk percent.
.TP
\fB\-\-ip_host\fR url
URL to query for public IP
.TP
-\fB\-\-ip_timeout\fR int
-Public IP timeout (in seconds).
-.TP
-\fB\-\-ip_interface\fR value
-Interface(s) to use for local IP
-.TP
-\fB\-\-song_format\fR format
-Print the song data in a specific format (see config file).
-.TP
\fB\-\-song_shorthand\fR on/off
-Print the Artist/Album/Title on separate lines.
+Print the Artist/Title on separate lines
.TP
-\fB\-\-memory_percent\fR on/off
-Display memory percentage.
+\fB\-\-install_time\fR on/off
+Enable/Disable showing the time in Install Date output.
.TP
-\fB\-\-memory_unit\fR kib/mib/gib
-Memory output unit.
-.TP
-\fB\-\-music_player\fR player\-name
-Manually specify a player to use.
-Available values are listed in the config file
+\fB\-\-install_time_format\fR 12h/24h
+Set time format in Install Date to be 12 hour or 24 hour.
.SS "TEXT FORMATTING:"
.TP
\fB\-\-colors\fR x x x x x x
@@ -184,17 +137,11 @@ Character to use when underlining title
.TP
\fB\-\-bold\fR on/off
Enable/Disable bold text
-.TP
-\fB\-\-separator\fR string
-Changes the default ':' separator to the specified string.
.SS "COLOR BLOCKS:"
.TP
\fB\-\-color_blocks\fR on/off
Enable/Disable the color blocks
.TP
-\fB\-\-col_offset\fR auto/num
-Left\-padding of color blocks
-.TP
\fB\-\-block_width\fR num
Width of color blocks in spaces
.TP
@@ -218,6 +165,10 @@ Length in spaces to make the bars.
Colors to make the bar.
Set in this order: elapsed, total
.TP
+\fB\-\-cpu_display\fR mode
+Bar mode.
+Possible values: bar, infobar, barinfo, off
+.TP
\fB\-\-memory_display\fR mode
Bar mode.
Possible values: bar, infobar, barinfo, off
@@ -233,18 +184,16 @@ Possible values: bar, infobar, barinfo, off
.TP
\fB\-\-backend\fR backend
Which image backend to use.
-Possible values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a',
-\&'iterm2', 'off', 'sixel', 'tycat', 'w3m', 'kitty', 'viu'
+Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off',
+\&'sixel', 'tycat', 'w3m'
.TP
\fB\-\-source\fR source
Which image or ascii file to use.
Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img',
-\&'/path/to/ascii', '/path/to/dir/', 'command output' [ascii]
+\&'/path/to/ascii', '/path/to/dir/'
.TP
\fB\-\-ascii\fR source
Shortcut to use 'ascii' backend.
-.IP
-NEW: neofetch \fB\-\-ascii\fR "$(fortune | cowsay \fB\-W\fR 30)"
.TP
\fB\-\-caca\fR source
Shortcut to use 'caca' backend.
@@ -252,24 +201,12 @@ Shortcut to use 'caca' backend.
\fB\-\-catimg\fR source
Shortcut to use 'catimg' backend.
.TP
-\fB\-\-chafa\fR source
-Shortcut to use 'chafa' backend.
-.TP
\fB\-\-iterm2\fR source
Shortcut to use 'iterm2' backend.
.TP
\fB\-\-jp2a\fR source
Shortcut to use 'jp2a' backend.
.TP
-\fB\-\-kitty\fR source
-Shortcut to use 'kitty' backend.
-.TP
-\fB\-\-pot\fR source
-Shortcut to use 'pot' backend.
-.TP
-\fB\-\-pixterm\fR source
-Shortcut to use 'pixterm' backend.
-.TP
\fB\-\-sixel\fR source
Shortcut to use 'sixel' backend.
.TP
@@ -282,14 +219,8 @@ Shortcut to use 'tycat' backend.
\fB\-\-w3m\fR source
Shortcut to use 'w3m' backend.
.TP
-\fB\-\-ueberzug\fR source
-Shortcut to use 'ueberzug' backend
-.TP
-\fB\-\-viu\fR source
-Shortcut to use 'viu' backend
-.TP
\fB\-\-off\fR
-Shortcut to use 'off' backend (Disable ascii art).
+Shortcut to use 'off' backend.
.IP
NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img',
\&'/path/to/ascii', '/path/to/dir/'
@@ -300,51 +231,18 @@ Colors to print the ascii art
.TP
\fB\-\-ascii_distro\fR distro
Which Distro's ascii art to print
-.TP
-NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS,
-Antergos, antiX, "AOSC OS", "AOSC OS/Retro", Apricity, ArchCraft,
-ArcoLinux, ArchBox, ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch,
-Artix, Arya, Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight,
-bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
-Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
-Container_Linux, CRUX, Cucumber, dahlia, Debian, Deepin, DesaOS,
-Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary,
-EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
-FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
-gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, HydroOS,
-Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
-KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE,
-Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui,
-Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
-Netrunner, Nitrux, NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD,
-openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt,
-osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parch, Parsix,
-TrueOS,Parch,PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
-Proxmox, Puppy, PureOS, Qubes, Quibian, Radix, Raspbian, Reborn_OS,
-Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith, Rosa,
-sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
-SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, SmartOS,
-Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
-t2, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
-Ubuntu\-Cinnamon, Ubuntu\-Budgie, Ubuntu\-GNOME, Ubuntu\-MATE,
-Ubuntu\-Studio, Ubuntu, Univention, Venom, Void, VNux, semc, Obarun,
-windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
.IP
-NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
+NOTE: Arch and Ubuntu have 'old' logo variants.
.IP
-NOTE: Use '{distro name}_old' to use the old logos.
+NOTE: Use 'arch_old' or 'ubuntu_old' to use the old logos.
.IP
NOTE: Ubuntu has flavor variants.
.TP
-NOTE: Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu\-GNOME,
-Ubuntu\-Studio, Ubuntu\-Mate or Ubuntu\-Budgie to use the flavors.
+NOTE: Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu\-GNOME',
+\&'Ubuntu\-Studio' or 'Ubuntu\-Budgie' to use the flavors.
.TP
-NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
-CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
-Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
-Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
-Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
-postmarketOS, and Void have a smaller logo variant.
+NOTE: Alpine, Arch, CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS,
+OpenBSD, and Void have a smaller logo variant.
.IP
NOTE: Use '{distro name}_small' to use the small variants.
.TP
@@ -353,6 +251,8 @@ Whether or not to bold the ascii logo.
.TP
\fB\-L\fR, \fB\-\-logo\fR
Hide the info text and only show the ascii logo.
+.IP
+Possible values: bar, infobar, barinfo, off
.SS "IMAGE:"
.TP
\fB\-\-loop\fR
@@ -363,9 +263,6 @@ in some terminals emulators when using image mode.
How to size the image.
Possible values: auto, 00px, 00%, none
.TP
-\fB\-\-catimg_size\fR 1/2
-Change the resolution of catimg.
-.TP
\fB\-\-crop_mode\fR mode
Which crop mode to use
Takes the values: normal, fit, fill
@@ -395,6 +292,19 @@ closer to the left side.
.TP
\fB\-\-clean\fR
Delete cached files and thumbnails.
+.SS "SCREENSHOT:"
+.TP
+\fB\-s\fR, \fB\-\-scrot\fR \fI\,/path/to/img\/\fP
+Take a screenshot, if path is left empty the screenshot function will use $scrot_dir and $scrot_name.
+.TP
+\fB\-su\fR, \fB\-\-upload\fR \fI\,/path/to/img\/\fP
+Same as \fB\-\-scrot\fR but uploads the scrot to a website.
+.TP
+\fB\-\-image_host\fR imgur/teknik
+Website to upload scrots to.
+.TP
+\fB\-\-scrot_cmd\fR cmd
+Screenshot program to launch
.SS "OTHER:"
.TP
\fB\-\-config\fR \fI\,/path/to/config\/\fP
@@ -403,12 +313,6 @@ Specify a path to a custom config file
\fB\-\-config\fR none
Launch the script without a config file
.TP
-\fB\-\-no_config\fR
-Don't create the user config file.
-.TP
-\fB\-\-print_config\fR
-Print the default config file to stdout.
-.TP
\fB\-\-stdout\fR
Turn off all colors and disables any ASCII/image backend.
.TP
@@ -427,5 +331,29 @@ Display a verbose log for error reporting.
.TP
\fB\-\-gen\-man\fR
Generate a manpage for Neofetch in your PWD. (Requires GNU help2man)
+.SH AUTHOR
+Written by Dylan Araps with help from the following people:
+.PP
+https://github.com/dylanaraps/neofetch/contributors
.SH "REPORTING BUGS"
Report bugs to https://github.com/dylanaraps/neofetch/issues
+.SH COPYRIGHT
+Copyright \(co 2016\-2017 Dylan Araps
+.PP
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+.PP
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+.PP
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.