diff --git a/.travis.yml b/.travis.yml index 388082b0..f313c14a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,6 @@ language: bash sudo: required -addons: - apt: - sources: - - debian-sid - packages: - - shellcheck - os: - linux - osx @@ -16,12 +9,15 @@ before_install: - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install screenresolution; fi +install: + # Install a custom version of shellcheck instead of Travis CI's default + - scversion="latest" # or "v0.4.7", or "latest" + - wget "https://storage.googleapis.com/shellcheck/shellcheck-${scversion}.linux.x86_64.tar.xz" + - tar --xz -xvf "shellcheck-${scversion}.linux.x86_64.tar.xz" + - shellcheck() { "shellcheck-${scversion}/shellcheck" "$@"; } + script: - - 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 + - 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 diff --git a/CHANGELOG.md b/CHANGELOG.md index c7cb1023..6835f367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,2940 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + + +## [6.0.1] - N/A + +- **ascii**: Fixed bug causing files to not work. +- **ascii**: Fixed bug causing files named `ascii` to not load. +- **term_font** [kitty]: Fixed bug with empty config. +- **get_cols**: Variables are now local. [**@asantam**](https://github.com/asantam) +- **man_page**: More consistent arg documentation. [**@xPMo**](https://github.com/xPMo) + + +## [6.0.0] - 2019-01-08 + +logo + +This release fixes a wide range of bugs and adds some neat new features. +Scroll down to "highlights" to see the bigger changes from this release. +A big thank you to @konimex, @iandrewt and the contributors below who +kept development going during my absence. + +Expect a minor bug fix release sometime this week as I'm sure new bugs +will come up. I've done extensive testing but things always slip through. + +**Contributors** + +[**@konimex**](https://github.com/konimex), [**@iandrewt**](https://github.com/iandrewt), [**@arisinfenix**](https://github.com/arisinfenix), [**@xPMo**](https://github.com/xPMo), [**@nero**](https://github.com/nero), [**@alyssais**](https://github.com/alyssais), +[**@plgruener**](https://github.com/plgruener), [**@StarryTony**](https://github.com/StarryTony), [**@julianaito**](https://github.com/julianaito), [**@HolyStephano**](https://github.com/HolyStephano), +[**@nikitenich**](https://github.com/nikitenich), [**@Appadeia**](https://github.com/Appadeia), [**@marlonn**](https://github.com/marlonn), [**@Snuggle**](https://github.com/dylanaraps/neofetch/commits?author=Snuggle), [**@Phuurl**](https://github.com/Phuurl), [**@erikdubois**](https://github.com/erikdubois) + + +**Breaking Changes** + +- **Config**: Removed `get_line_break()`. + - Alternative: `prin '\n'` + - Rationale: fix a bug that's been lingering for a couple of years now. + +**OS** + +- Added support for Bedrock Linux. [**@paradigm**](https://github.com/paradigm) +- Added support for Namib GNU/Linux. [**@arisinfenix**](https://github.com/arisinfenix) +- Added support for Reborn OS. [**@iandrewt**](https://github.com/iandrewt) +- Added support for OpenMandriva Lx. [**@konimex**](https://github.com/konimex) +- Added support for Star. [**@arisinfenix**](https://github.com/arisinfenix) +- Added support for BlueLight OS. +- Added support for Huayra Linux. +- Added support for Pentoo. + +**Highlights** + +[ASCII] Added support for command output. You can now use whatever +terminal commands you like as the ASCII art. + +```sh +# Use fortune and cowsay as ascii art. +neofetch --ascii "$(fortune|cowsay -W 30)" + +# use figlet as ascii art. +neofetch --ascii "$(figlet -w 30 hello world)" +``` + +scrot + +Added a new "simple" mode. You can now use neofetch for scripting +by getting it to output individual info functions in plain text. + +```sh +# Example: +neofetch uptime --uptime_shorthand tiny +> uptime: 32m + +# Example: +neofetch uptime disk wm memory +> uptime: 33 mins +> disk (/): 212G / 235G (96%) +> wm: Openbox +> memory: 1215MiB / 7881MiB + +# 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): +# Much faster than running neofetch multiple times. +IFS=$'\n' read -d "" -ra info < <(neofetch memory uptime wm) +info=("${info[@]##*: }") +``` + +Added new image backend [chafa](https://hpjansson.org/chafa/) (`--chafa`) +which displays images in the terminal using unicode characters. + +```sh +neofetch --chafa ~/Pictures/meow.jpg +``` + +scrot + + +**Info** + +- **Color Blocks**: Fixed issue where disabling blocks caused an extra newline to appear. +- **Color Blocks**: Color blocks now have their padding built in. No more need for `get_line_break()`. +- **Song**: Added snippet to display music player. + - `[[ $player ]] && prin "Music Player" "$player"` + - NOTE: Must have `info "Song" song` enabled. +- **Song**: Added support for Netease Cloud. +- **Song**: Fixed issues in various players. [**@arisinfenix**](https://github.com/arisinfenix) [**@xPMo**](https://github.com/xPMo) +- **Song**: Fixed issues with non-English tags. +- **Song**: Fixed issues with broken newlines. +- **Song**: Fixed issues with Deadbeef. +- **Song**: Fixed issues with `qmmp`. +- **Song**: Removed `gpmdp-remote` support (unmaintained/no longer works). +- **Shell**: Fixed output for mksh [**@nero**](https://github.com/nero) +- **Packages**: Added support for `scoop`. [**@Phuurl**](https://github.com/Phuurl) +- **Packages**: Added support for `puyo`. [**@Appadeia**](https://github.com/Appadeia) +- **Packages**: Added support for `spm`. [**@Appadeia**](https://github.com/author=Appadeia) +- **Packages** [macOS]: Added detection of Nix [**@alyssais**](https://github.com/alyssais) +- **Packages**: Fixed packages from pkginfo (pkgutils) not appearing in CRUX/Janus Linux. +- **Terminal Font**: Added support for Yakuake [**@plgruener**](https://github.com/plgruener) +- **Terminal Font** [Kitty]: Use `kitty --debug-config` to get font information. +- **Memory** [Solaris]: Updated memory detection to use pages. [**@konimex**](https://github.com/konimex) +- **Memory**: Added option to show memory percentage (`--memory_percent`). +- **Model** [OpenBSD]: Added vmm (OpenBSD hypervisor) support [**@julianaito**](https://github.com/julianaito) +- **Model** [macOS]: Added VirtualSMC as a new FakeSMC alternative for Hackintosh. [**@nikitenich**](https://github.com/nikitenich) +- **WM**: Added detection for FVWM. [**@julianaito**](https://github.com/julianaito) +- **WM** [OpenBSD]: Added a new `ps_flags` to correctly detect non-EWMH WMs. [**@julianaito**](https://github.com/julianaito) +- **Disk** [OpenBSD]: Added a separate disk array creation using `awk` since one cannot directly use `/dev/...` unless being root or in the `operator` group. [**@julianaito**](https://github.com/julianaito) +- **Battery** [OpenBSD]: Improve charge `%` and add status. **Charlène** +- **GPU** [AMD]: Remove unnecessary check. +- **Public IP**: Added configurable timeout to requests. +- **Resolution**: If resolution is not found, don't print anything. + +**ASCII** + +- Fixed issues with various ASCII arts (namely the `_small` ones). +- Added support for command output. + - `neofetch --ascii "$(fortune|cowsay -W 30)"` + - `neofetch --ascii "$(figlet -w 30 hello world)"` +- Added small ArcoLinux logo. [**@erikdubois**](https://github.com/erikdubois) +- Added new Lubuntu logo. [**@marlonn**](https://github.com/marlonn) +- Fixed a bug where ASCII logo changes the terminal foreground color. [**@plgruener**](https://github.com/plgruener) +- Fixed a bug when files named `auto` or `ascii` exist. +- Do not parse file as ASCII if the source is an image file. + +**Image** + +- Added new image backend [chafa](https://hpjansson.org/chafa/) (`--chafa`). +- **w3m**: Fixed issues with URxvt and internal borders. +- **w3m**: Fixed issues with URxvt and cursor position. +- **w3m**: Fixed issue with `bash 3`. +- **macOS**: Unset IFS to get window size. [**@StarryTony**](https://github.com/StarryTony) +- **Kitty**: Use `kitty +kitten icat` instead of the deprecated `kitty icat`. [**@HolyStephano**](https://github.com/HolyStephano) +- **Kitty**: Update docs. [**@Snuggle**](https://github.com/dylanaraps/neofetch/commits?author=Snuggle) +- Thumbnails are high quality again. +- Cached thumbnails are now stored with PATH to prevent collision issues. + +## [5.0.0] - 2018-06-18 + +logo + +A lot of the script has been rewritten and all lint errors have been resolved. There's probably a few bugs so the version number has been bumped to `5.0`. Expect a minor release in the coming days to fix any bugs that come up. Thanks to everyone who contributed to this release. + +**Contributors** + +- [**@arisinfenix**](https://github.com/arisinfenix) +- [**@iandrewt**](https://github.com/iandrewt) +- [**@konimex**](https://github.com/konimex) +- [**@MindTooth**](https://github.com/MindTooth) + +**Operating System** + +- Added support for Condres OS. [**@arisinfenix**](https://github.com/arisinfenix) +- Added support for RedCore Linux. [**@arisinfenix**](https://github.com/arisinfenix) +- Added support for Regata OS. [**@arisinfenix**](https://github.com/arisinfenix) +- Added support for ClearOS. [**@arisinfenix**](https://github.com/arisinfenix) +- Added support for PureOS. +- Added support for Kibojoe Linux. +- Added support for SharkLinux. +- Added support for Linux Lite. +- Added support for macOS 10.14 Mojave. [**@iandrewt**](https://github.com/iandrewt) + +**General** + +- **output**: Added `--json` to output the info in `json`. +- **cursor**: Fixed prompt location issues after Neofetch is run. +- **macOS**: Fixed neofetch launching XQuartz. +- **misc**: Removed `uppercase()`. +- **misc**: Removed all instances of `export`. +- **misc**: Removed all deprecated options and functions. +- **info**: Removed `get_install_date()`. + +**Ascii** + +- Fixed a bug causing Windows 7 ASCII art to not display. +- Simplified ASCII art handling. +- Updated Funtoo ASCII art. + +**Image** + +- Improved performance of image handling. +- Removed `catimg` support (*It didn’t allow us to specify height so we + couldn’t accurately place the cursor*). +- Fixed `tycat`, `sixel` and `kitty icat` image sizes. +- Simplified `w3m-img` code. + +**Screenshot** + +See: https://github.com/dylanaraps/neofetch/issues/1001 + +- Removed screenshot functionality. +- Removed screenshot upload functionality. + +**Info** + +- **cpu**: Remove extra call to `uname`. +- **cpu**: Simplify core calculation. +- **disk**: Clean up. +- **font**: Fix iTerm2 checking for 2 extra profiles that don't exist. [**@iandrewt**](https://github.com/iandrewt") +- **gpu**: Fixed ATI/AMD branding issue. +- **gpu**: Removed `glxinfo` usage (*too slow*). +- **packages**: Added support for `flatpak`. [**@konimex**](https://github.com/konimex) +- **packages**: Added support for `snap`. [**@konimex**](https://github.com/konimex) +- **packages**: Added used package managers to output (`Packages: 900 + (pacman, snap)`). +- **packages**: Fixed issues with `pacman` 5.1. +- **packages**: Fixed issues with `dpkg`. +- **packages**: Removed `find` usage. +- **packages**: Removed `ls` usage. +- **packages**: Removed `wc -l` usage. +- **song**: Added support for `gmusicbrowser`. [**@arisinfenix**](https://github.com/arisinfenix) +- **song**: Added support for `SMPlayer`. [**@arisinfenix**](https://github.com/arisinfenix) +- **song**: Added support for `Dragon Player`. [**@arisinfenix**](https://github.com/arisinfenix) +- **song**: Fixed song detection on macOS. +- **song**: Fixed song output on systems using `C` locale. +- **song**: Added `mpc_args` to send additional arguments to `mpc`. +- **term\_font**: Clean up of config file handling. +- **resolution**: Added support for `xwininfo`. + +## [4.0.2] - 2018-05-19 + +### This fixes default config issues on Android, AIX, HP-UX and possibly others. + +- [config] Fixed `/dev/stdin` error. +- [config] Added `--print_config` to display the default config file. +- [macOS] Fixed xquartz issue. + +## [4.0.1] - 2018-05-18 + +### Note: This release is only required for those running `bash <3.3`. + +- [config] Fixed issue with default config in bash3. +- [packages] Simplified code. +- [term] Fixed macOS issue. +- [term] Fixed `tmux` issue. + + +## [4.0.0] - 2018-05-17 + +

logo

+ +This release bumps the version number up to `4.0.0` as it contains major +changes to how Neofetch is packaged and installed. + +The entirety of Neofetch is now contained within a single executable. +Everything has been in-lined. Installing Neofetch is now as easy as +downloading the script and running it. + +Those using distributions with an outdated Neofetch version in their repos +can now easily install the latest version themselves. + +Thanks to those who contributed this time around and thanks to those who +discussed proposed changes in the bug tracker and Discord. I appreciate +it. :+1: + + +## Discord + +Neofetch now has a Discord server. Come and join the discussion! + + + + ## Contributors + +- [**@aidanharris**](https://github.com/aidanharris) +- [**@DanySpin97**](https://github.com/DanySpin97) +- [**@SolitudeSF**](https://github.com/SolitudeSF) +- [**@Kayant**](https://github.com/Kayant) +- [**@robertwolter**](https://github.com/robertwolter) +- [**@TsundereBug**](https://github.com/TsundereBug) +- [**@dawidd6**](https://github.com/dawidd6) +- [**@mstraube**](https://github.com/mstraube) +- [**@iandrewt**](https://github.com/iandrewt) +- [**@MindTooth**](https://github.com/MindTooth) + + +## Operating System + +- Added support for ArcoLinux. + + +## General + +- Neofetch is now a single executable. +- Simplified `--version` output. +- Fixed theme issues by setting `GIO_EXTRA_MODULES`. + + +## Images + +- Added `wal`/`pywal` support to get the current wallpaper. +- Added `kitty` image backend. [**@SolitudeSF**](https://github.com/SolitudeSF) +- Added `setroot` wallpaper support. [**@SolitudeSF**](https://github.com/SolitudeSF) + + +## Ascii + +- Updated Android ascii art to better work on non-unicode terminals. [**@TsundereBug**](https://github.com/TsundereBug) + + +## Info + +**Song** + +- Added support for VLC. [**@mstraube**](https://github.com/mstraube) +- Added support for Sayonara. [**@mstraube**](https://github.com/mstraube) +- Added album data to song output. [**@mstraube**](https://github.com/mstraube), [**@iandrewt**](https://github.com/iandrewt) +- Added `song_format` to change the display format of the data. + - Default: `%artist% - %album% - %title%`. + +**Title** + +- Fixed unexpected backslash being inserted on some systems. + +**CPU** + +- Added temperature support for Zen processors. [**@Kayant**](https://github.com/Kayant) + +**GPU** + +- Fixed duplicate Intel GPUs. + +**Terminal Font** + +- Added support for `st`. [**@aidanharris**](https://github.com/aidanharris) +- Added support for `qterminal`. [**@mstraube**](https://github.com/mstraube) +- Fixed `kitty` font bug. [**@MindTooth**](https://github.com/MindTooth) + +**Packages** + +- Fixed package count in Exherbo. [**@DanySpin97**](https://github.com/DanySpin97) + +**Desktop Environment** + +- Fixed Unity output in Ubuntu 18.04. [**@dawidd6**](https://github.com/dawidd6) + +**Window Manager** + +- Added support for detecting `dwm`. + + +## [3.4.0] - 2018-04-05 + +This release adds support for a large number of Linux distros as well as support for the latest macOS and iOS devices. This release also contains a large number of bug fixes and some minor features. + +I'm pretty sure that this release is the largest in terms of number of contributors. Thanks to everyone who contributed this release! + +## Contributors + +- [**@yslgirl**](https://github.com/yslgirl) +- [**@iandrewt**](https://github.com/iandrewt) +- [**@chrisweeksnz**](https://github.com/chrisweeksnz) +- [**@dawidd6**](https://github.com/dawidd6) +- [**@MitchWeaver**](https://github.com/MitchWeaver) +- [**@StarryTony**](https://github.com/StarryTony) +- [**@rage311**](https://github.com/rage311) +- [**@matoro**](https://github.com/matoro) +- [**@szfcbr**](https://github.com/szfcbr) +- [**@ArmstrongJ**](https://github.com/ArmstrongJ) +- [**@robertwolter**](https://github.com/robertwolter) +- [**@JadeMatrix**](https://github.com/JadeMatrix) +- [**@MindTooth**](https://github.com/MindTooth) +- [**@aidanharris**](https://github.com/aidanharris) +- [**@khoacao96**](https://github.com/khoacao96) + ## OS +- Added support for ArchMerge. +- Added support for MagpieOS. +- Added support for PostMarketOS. +- Added support for Hyperbola GNU/Linux-libre [**@mstraube**](https://github.com/mstraube) +- 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) +- Added support for LEDE. [**@dawidd6**](https://github.com/dawidd6) +- Added support for Pop!\_OS. [**@jliles**](https://github.com/jliles) +- Added support for Lunar Linux. +- Added support for 32-bit IRIX. [**@szfcbr**](https://github.com/szfcbr) +- Added support for FreeMINT. [**@ArmstrongJ**](https://github.com/ArmstrongJ) +- Added support for Anarchy Linux. [**@robertwolter**](https://github.com/robertwolter) +- Added support for Calculate Linux. [**@robertwolter**](https://github.com/robertwolter) +- Added support for NuTyX. [**@robertwolter**](https://github.com/robertwolter) +- Added support for openSUSE Tumbleweed. [**@robertwolter**](http://github.com/robertwolter) - Fixed detection bug with Gentoo. +- Fixed detection bug with OpenWRT. [**@dawidd6**](https://github.com/dawidd6) +- Fixed detection bug with LEDE. [**@dawidd6**](https://github.com/dawidd6) +- Fixed detection bug with TrueOS. [**@dawidd6**](https://github.com/dawidd6) +- Fixed detection bug with Windows Subsystem for Linux and Crouton when an OS without lsb_release is installed. +- Fixed ChromeOS detection. + + +## General + +- Added more info to verbose mode for debugging. +- Fixed bug in prompt location calculation. +- Fixed prompt bug in OpenBSD. +- Fixed broken AppleScript blocks. [**@JadeMatrix**](https://github.com/JadeMatrix) +- Fixed function not working in bash 3. [**@JadeMatrix**](https://github.com/JadeMatrix) +- Swapped sequences from `\033` to `\e`. +- Fixed Pacman name conflict with the game. [**@MitchWeaver**](https://github.com/MitchWeaver) +- Removed the last `echo` in the script. +- Fixed typo. [**@khoacao96**](https://github.com/khoacao96) + + +## Ascii + +- Added color updates for Kubuntu logo. **Maulik Mistry** +- Added new DragonflyBSD logo. [**@MitchWeaver**](https://github.com/MitchWeaver) + + +## Images + +- [MacOS/iTerm2] Fixed thumbnail not appearing. [**@StarryTony**](https://github.com/StarryTony) +- Fixed bug with getting wallpaper from feh. +- Added `pixterm` backend. +- Don't force resolution in `catimg`. + +## Info + +**Desktop Environment** + +- Added GNOME version. +- Added support for TDE. + +**Window Manager** + +- Added support for most (*if not all*) current Wayland compositors/window manager's. +- Added support for some non-EWMH window managers. +- [macOS] Fixed `chunkwm` being detected as `Kwm`. [**@iandrewt**](https://github.com/iandrewt) + +**Window Manager Theme** + +- Fixed `sawfish` detection. +- [macOS] Now detects Light/Dark theme. [**@JadeMatrix**](https://github.com/JadeMatrix) + +**Install Date** + +- [macOS] Fixed Install Date. [**@iandrewt**](https://github.com/iandrewt) + +**Theme** + +- Fixed KDE font issue. [**@mstraube**](https://github.com/mstraube) + +**CPU** + +- [linux] Detect the correct temperature file to use. +- [windows] Removed `$temp` usage as it's an envar. +- [OpenBSD] Fixed CPU temperature that fails to appear in some systems. [**@rage311**](https://github.com/rage311) + +**GPU** + +- [linux] Added driver version to NVIDIA output. +- [linux] Added driver version to Intel output. +- [macOS] Added NVIDIA support. [**@iandrewt**](https://github.com/iandrewt) + +**Memory** + +- [OpenBSD] Fixed memory usage values. [**@rage311**](https://github.com/rage311) + +**Package Manager** + +- Added detection for Sabotage Linux's `butch` [**@MitchWeaver**](https://github.com/MitchWeaver) +- Changed `pacman` detection to fix issues in other distros. [**@MitchWeaver**](https://github.com/MitchWeaver) + +**Resolution** + +- [macOS] Fixed errors on non-retina screens. [**@iandrewt**](https://github.com/iandrewt) + +**Song** + +- Added option to manually specify the player to use. +- Added support for Elisa. [**@mstraube**](https://github.com/mstraube) +- macOS detection is now more reliable. [**@JadeMatrix**](https://github.com/JadeMatrix) + +**Model** + +- Remove more unneeded outputs. [**@konimex**](https://github.com/konimex) + +**Disk** + +- Update Haiku's detection. [**@dawidd6**](https://github.com/dawidd6) + +**Battery** + +- Fixed Windows detection. [**@matoro**](https://github.com/matoro) + +**Shell** + +- Added support for `tcsh`. [**@szfcbr**](https://github.com/szfcbr) + +**Terminal Font** + +- Added more paths for Alacritty. +- Added font support for Kitty. [**@MindTooth**](https://github.com/MindTooth) +- Fixed Kitty `font_size` regex. [**@aidanharris**](https://github.com/aidanharris) +- Added support for `XTerm.vt11.facename`. [**@aidanharris**](https://github.com/aidanharris) + + +## [3.3.0] - 2017-09-14 + +Thanks to everyone who contributed this release, I appreciate ya! + +## Contributors + +- **[@konimex](https://github.com/konimex)** +- **[@mstraube](https://github.com/mstraube)** +- **[@dominiklohmann](https://github.com/dominiklohmann)** +- **[@ybden](https://github.com/ybden)** +- **[@lexruee](https://github.com/lexruee)** +- **[@AMDmi3](https://github.com/AMDmi3)** +- **[@deadda7a](https://github.com/deadda7a)** +- **[@winneon](https://github.com/winneon)** +- **[@DamnWidget](https://github.com/DamnWidget)** + + +## General + +- Config file now has a `.conf` suffix. +- Neofetch now assumes target directories (config file and ASCII directory) at install time, this fixes problems with systems such as NixOS. +- `stdout` mode is now reimplemented. + - This mode prints the information in plain text. + - You can use it with `--stdout`. + - Example: https://gist.github.com/dylanaraps/151c205322cf3acae62661b76464a3f7 +- Fixed prompt location if color blocks are disabled. +- Make makefile more portable. **[@AMDmi3](https://github.com/AMDmi3)** + + +## Operating System + +- Added support for AryaLinux. **[@mstraube](https://github.com/mstraube)** +- Added support for Amazon Linux AMI. +- Added support for Artix Linux. **[@DamnWidget](https://github.com/DamnWidget)** +- Added support for Endless OS. +- Added support for Sabotage Linux. +- Added support for Siduction. **[@lexruee](https://github.com/lexruee)** +- Added support for Source Mage. +- Added support for Parsix GNU/Linux. **[@mstraube](https://github.com/mstraube)** +- Added support for Nurunner. **[@mstraube](https://github.com/mstraube)** +- Fixed Raspbian being detected as ChromeOS. + + +## Images + +- [w3m] Fixed w3m-img not found on NixOS. +- Added support for using all image types as input. + - Neofetch now supports `svg`, `tiff` etc. + + +## ASCII + +- Added small Debian. +- Added small FreeBSD. +- Added small macOS. +- Added small NixOS. + + +## Info + +**GPU Driver** + +- [Linux] Added a new info function (*off by default*) to display the GPU Driver currently in use. +- Add `info "GPU Driver" gpu_driver` to your config to use it. + +**CPU** + +- [Linux] Fixed inaccurate output on ARM SoC devices. +- [Linux] Fixed CPU speed not appearing on PowerPC systems. +- [NetBSD] Added support for CPU temperature. (NOTE: This only supports newer Intel processors) +- Fixed inaccurate speed output in systems with CPU speed less than 1 GHz. +- Deprecated `cpu_shorthand` in favor of `cpu_brand`. + +**GPU** + +- [Linux] Filter out duplicate entries. + +**Model** + +- Added support for QEMU/KVM. +- Renamed subtitle to `Host:`. + +**Uptime** + +- [AIX/IRIX] Fixed Neofetch crashing when calculating uptime. + +**Terminal** + +- [SSH] Fixed infinite loop if neofetch is run on non-interactive shells. + +**Terminal Font** + +- Added support for LXTerminal. **[@mstraube](https://github.com/mstraube)** +- Added support for GNUStep Terminal. **[@mstraube](https://github.com/mstraube)** +- Fixed Xfce4-terminal font output when system-wide font is used. **[@mstraube](https://github.com/mstraube)** +- Fixed MATE-Terminal issue. **[@mstraube](https://github.com/mstraube)** +- Fixed URxvt font detection failing if `.` is used. **[@winneon](https://github.com/winneon)** + +**Theme** + +- [Qt/KDE] Fixed inaccurate theme naming. **[@mstraube](https://github.com/mstraube)** +- [Qt/KDE] GTK theme is now shows as well. + +**Window Manager** + +- [macOS] Added support for `chunkwm`. **[@dominiklohmann](https://github.com/dominiklohmann)** +- Fix incorrect output when using WindowMaker. **[@mstraube](https://github.com/mstraube)** + +**Song** + +- Added support for Pogo. **[@mstraube](https://github.com/mstraube)** +- Fixed bug with players not being found. + +**Battery** + +- Added battery support for Thinkpads and other devices that use the `CMB` naming for batteries. **[@deadda7a](https://github.com/deadda7a)** + + +## Images + +- Fixed division by 0 error in XTerm. + +## Screenshot + +- Use `maim` over `scrot`. **[@ybden](https://github.com/ybden)** +- Fixed `scrot_cmd` arguments not being used. **[@winneon](https://github.com/winneon)** + + +## [3.2.0] - 2017-06-21 + +This release was long overdue and I apologise for the delay. I've been busy with study among other things. This update is smaller than usual but fixes some important bugs. + + +Thanks once again to everyone that contributed! + + +## Contributors + +- **[@MatthewCox](https://github.com/MatthewCox)** +- **[@dawidd6](https://github.com/dawidd6)** +- **[@erikdubois](https://github.com/erikdubois)** +- **[@konimex](https://github.com/konimex)** +- **[@mstraube](https://github.com/mstraube)** +- **[@Artoriuz](https://github.com/Artoriuz)** +- **[@WilsonRU](https://github.com/WilsonRU)** +- **[@Takeya-Yuki](https://github.com/Takeya-Yuki)** +- **[@iandrewt](https://github.com/iandrewt)** +- **[@LER0ever](https://github.com/LER0ever)** + + +## Operating System + +- Added support for IRIX. +- Added support for Arch XFerience. **[@mstraube](https://github.com/mstraube)** +- Added support for CloverOS. +- Added support for Maui. **[@mstraube](https://github.com/mstraube)** +- Added support for KS Linux. **[@Takeya-Yuki](https://github.com/Takeya-Yuki)** + + +## General + +- Minimum required BASH version is now 3.2. + - (Neofetch has always used 3.2+ features, I've just made it obvious now in the documentation.) +- Fixed config file not being created on first install. + + +## Images + +- [w3m] Added `--loop` flag which makes Neofetch draw the image once per second. + - This is a workaround to the images disappearing on resize and workspace switch. + - Use Ctrl+C to exit. +- [w3m] Fixed w3m-img not found on FreeBSD 12. **[@Artoriuz](https://github.com/Artoriuz)** + + +## Ascii + +- Added Ubuntu-MATE ascii art. +- Fixed ArchLabs ascii art. **[@erikdubois](https://github.com/erikdubois)** +- Updated GoboLinux ascii art. **[@WilsonRU](https://github.com/WilsonRU)** +- Fixed `--ascii_distro windows10` not working. + + +## Info + +**Distro** + +- [Solaris, AIX, Haiku] The machine architecture will now be shown properly instead of machine ID. + +**Terminal Emulator** + +- Added support for Neovim terminal emulator. **[@LER0ever](https://github.com/LER0ever)** +- Added font support for mate-terminal. **[@mstraube](https://github.com/mstraube)** +- [Termite] Fix font mismatch. **[@MatthewCox](https://github.com/MatthewCox)** +- Use `$SSH_TTY` for terminal detection if machine is connected via SSH. +- Break from loop if PPID can't be accessed/not found. + +**GPU** + +- [Linux] Fixed GPU sort. + +**Song** + +- Do not detect ibus\* or indicator\* as player. **[@dawidd6](https://github.com/dawidd6)** + +**Model** + +- Specify when running on a Hackintosh. **[@LER0ever](https://github.com/LER0ever)** + + +**Memory** + +- [FreeBSD]: Fix inaccurate free memory calculation. + + +## [3.1.0] - 2017-04-25 + +Hi, It's been quite a while since the last release. I've been extremely busy with university and I finally found some time to flag a new release. (I've been meaning to do this for a few weeks now) + +Though I haven't worked on Neofetch as much as I'd have liked, most of the changes this time round come from some familiar faces as well as some new contributors! Thanks to everyone for contributing, I appreciate it. + + +## Contributors + +- **[@konimex](https://github.com/konimex)** +- **[@mstraube](https://github.com/mstraube)** +- **[@jorgegonzalez](https://github.com/jorgegonzalez)** +- **[@ikeydoherty](https://github.com/ikeydoherty)** +- **[@eliezio](https://github.com/eliezio)** +- **[@nilesr](https://github.com/nilesr)** +- **[@dritter](https://github.com/dritter)** +- **[@HebaruSan](https://github.com/HebaruSan)** +- **[@LER0ever](https://github.com/LER0ever)** +- **[@obrevenge](https://github.com/obrevenge)** +- **[@ajjames31](https://github.com/ajjames31)** +- Eliezio Oliveira + + +## Operating System + +- Added Chrome OS Crouton support. **[@LER0ever](https://github.com/LER0ever)** +- Added support for SliTaz. **[@nilesr](https://github.com/nilesr)** +- Added support for Nitrux. **[@mstraube](https://github.com/mstraube)** +- Added support for DesaOS. +- Added support for MinGW. +- Added support for OBRevenge. **[@obrevenge](https://github.com/obrevenge)** +- Added support for ArchLabs. **[@obrevenge](https://github.com/obrevenge)** + + +## Screenshot + +The screenshot feature no longer requires any configuration before working. We no longer hardcode `${HOME}/Pictures/neofetch` as the screenshot location. Here's how the `-s` and `-su` flags now function: + +- `neofetch -s` will save a file in the current directory named: `neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png` +- `neofetch -s test.png` will save a file in the current directory called `test.png` +- `neofetch -s ~/` will save a file in `~` called `neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png` +- `neofetch -s ~/test.png` will save a file in `~` called `test.png`. + + +## ASCII + +- Arch ASCII art now uses lighter colors. +- Fixed Ubuntu-Studio ASCII setting. **[@@HebaruSan](https://github.com/HebaruSan)** +- Updated Parabola logo. **[@mstraube](https://github.com/mstraube)** +- Updated Raspbian ASCII art. + + +## Images + +- Added `libsixel` backend. +- Added `termpix` backend. +- Only use a zero width space in the `w3m` backend. +- Fixed bug causing terminal size to not be found. +- [iTerm2] Fixed images not appearing inside `tmux`. + + +## Info + +**Locale** + +- Added a new function to display system locale. (Disabled by default) + +**CPU** + +- Added option to show decimals in CPU speed. + +**Terminal Font** + +- Added \*experimental\* font detection for iTerm2. **[@dritter](https://github.com/dritter)** + +**Window Manager** + +- [MacOS] Added support for Kwm. **[@jorgegonzalez](https://github.com/jorgegonzalez)** +- [MacOS] Added support for Spectacle. **[@jorgegonzalez](https://github.com/jorgegonzalez)** +- [MacOS] Added support for Amethyst. **[@jorgegonzalez](https://github.com/jorgegonzalez)** + +**Battery** + +- Added battery support for Bay Trail devices. **[@mstraube](https://github.com/mstraube)** + +**Disk** + +- Added new option to only show dir name in subtitle. + +**Song** + +- Added support for Deepin Music. **[@mstraube](https://github.com/mstraube)** +- Added support for Tomahawk. **[@mstraube](https://github.com/mstraube)** +- Fixed Audacious song output when `dbus-send` fails. **[@mstraube](https://github.com/mstraube)** + +**Local IP** + +- [Linux] Fixed UID showing instead of Local IP on several versions/configs of iproute2. + +**Packages** + +- [eopkg] Use a faster detection method. **[@ikeydoherty](https://github.com/ikeydoherty)** + +**Resolution** + +- [macOS] Fixed `screenresolution` not appearing at all on newer versions. **[@eliezio](https://github.com/eliezio)** +- [Linux] Show decimals. + +**GPU** + +- [Linux] Hide duplicate GPU lines (Only display 1). + + +## [3.0.1] - 2017-01-30 + +This minor release fixes all of the bugs that were found in the 3.0 release. + +Thanks for all of the bug reports and contributions. :) + +## Contributors +- **[@SomaUlte](https://github.com/SomaUlte)** +- **[@jorgegonzalez](https://github.com/jorgegonzalez)** +- **[@dawidd6](https://github.com/dawidd6)** +- **[@mstraube](https://github.com/mstraube)** +- **[@YellowApple](https://github.com/YellowApple)** +- **[@siiptuo](https://github.com/siiptuo)** +- **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)** +- **[@konimex](https://github.com/konimex)** + +## Operating System +- Added support for ArchBox Linux. + +## General +- Fixed output if subtitles are disabled and `prin` is used in an info function. +- Fixed underlines not working when used with `prin`. +- Fixed HAIKU install path. **[@YellowApple](https://github.com/YellowApple)** + +## Config +- Fixed default config not found. +- Don't set locale in config file. + +## Info + +**Memory**
+- Changed memory label to `MiB` on OS that output memory in Mebibytes. + +**Shell**
+- Fixed a crash when the user has `bash 3` installed. + +**Packages**
+- Added support for Chromebrew. + +**GPU**
+- [Linux] Display detailed information about Intel GPUs. **[@SomaUlte](https://github.com/SomaUlte)** + +**Color Blocks**
+- Fixed issue with `color_blocks="off"` adding an extra newline to the output. + +**Song**
+- Don't print `$song` if it's empty and `song_shorthand` is on. **[@mstraube](https://github.com/mstraube)** +- Fixed `mpd` detection when `mpd` is on a different host. **[@dawidd6](https://github.com/dawidd6)** +- Use `get_song_dbus` for Audacious. **[@mstraube](https://github.com/mstraube)** + +**Terminal Font**
+- [Alacritty] Fixed font detection. **[@siiptuo](https://github.com/siiptuo)** + +## Images +- [iTerm2] Fixed issue with line-breaks printing spaces over the image. **[@jorgegonzalez](https://github.com/jorgegonzalez)** +- Fixed issue with images not working in Terminology. +- Fixed issue when `image_source` was set to `wall`. +- [w3m-img] Fixed issues with `w3m-img` and `tmux`. + +## Ascii +- [Windows 10] Fixed `ascii_distro` not working. +- Fixed a bug where the backend is `ascii` but the image_source is an image file. +- Fixed custom ascii files not working. +- Removed extra backslashes from OpenBSD ascii art. **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)** + +## Scrot +- Added message to let users know that a screenshot was taken. + + +## [3.0] - 2017-01-23 + +This is another large release containing over `550` commits from 7 contributors. Due to the size and large amount of changes made this release expect at least one minor release to fix any bugs that come up. + +The version number has been bumped to `3.0` due to the large amount of breaking changes introduced this update. I've added backwards compatibility for all of the new changes but there may still be some breakage. I highly recommend starting with a new config to avoid any issues that may arise. + +Neofetch now supports displaying images using `catimg`, `libcaca` and `jp2a`. See this wiki page for screenshots. https://github.com/dylanaraps/neofetch/wiki/Image-Backends + +Thanks to everyone who contributed this release, there were a lot of new faces this time around. :) + +## Contributors +- **[@konimex](https://github.com/konimex)** +- **[@iandrewt](https://github.com/iandrewt)** +- **[@jorgegonzalez](https://github.com/jorgegonzalez)** +- **[@z33ky](https://github.com/z33ky)** +- **[@mstraube](https://github.com/mstraube)** +- **[@gavinhungry](https://github.com/gavinhungry)** + +## IRC + +Neofetch now has an IRC channel at `#neofetch` on Freenode. If you have any questions, issues or ideas feel free to join the IRC channel and I'll be happy to assist you. I know that we've already got the Gitter chat but hopefully this makes things easier for those without a GitHub account. :) + +[![Freenode](https://img.shields.io/badge/%23neofetch-%20on%20Freenode-brightgreen.svg)](http://irc.lc/freenode/neofetch) + +## Collaborators + +I have given collaborator access to both **[@konimex](https://github.com/konimex)** and **[@iandrewt](https://github.com/iandrewt)**. In short this allows them to push directly to the master branch of the repo, manage the issue tracker and also merge pull requests. They've been a huge help the past year so this made sense to me. + +## OS +- Added support for AIX. +- Added support for AntiX. +- Added support for GNU/kFreeBSD. +- Added support for Gentoo FreeBSD. +- Added support for GrombyangOS. +- Added support for Joyent SmartOS. +- Added support for Mer. +- Added support for MINIX. +- Added support for MX. +- Added support for Open Source Media Center (OSMC). +- Added support for SalentOS. +- Added support for TrueOS. +- Added support for Windows (MSYS2). + +## General +- The default config file is now installed to `/etc/neofetch/config` and acts as a system-wide config file for Neofetch. Editing this file will make the changes available to all users on the system. Those packaging Neofetch **without** using the Makefile will need to make changes to support this. +- The Makefile was rewritten to remove GNU-isms. +- Removed executable permission from config files. BASH can source them even if they're un-executable. +- Travis now runs [shellcheck](https://github.com/koalaman/shellcheck) on every commit and pull request. + - We've had to exclude around 10 lint errors, see this wiki page for why we did this: + - https://github.com/dylanaraps/neofetch/wiki/Shellcheck-Exclusions +- Neofetch now supports relative path values when specifying the location to images, ascii files and config files. + - For example, `neofetch --w3m Pictures/Wallpapers/10.jpg` and `neofetch --w3m 10.jpg` now work. +- Optimize usage of `get_de()`, `get_wm()` and `get_term(). + - We were calling these multiple times, we now only run them once and check to see if they were run previously. +- Optimize info caching, only check for cache files in functions that use caching. +- The manpage is now generated using `help2man`. `help2man` parses the output of `--help` and `--version` to create a manpage. This ensures that our manpage stays 1:1 with the script documentation. We actually found a lot of outdated info in the old manpage thanks to this. + - A new flag was added called `--gen-man` which generates a neofetch manpage in your current directory. +- Delete most of `info()` and instead call `prin()`. + - This removes a lot of duplicate code between `info()` and `prin()`. +- Remove `printf` subshells and instead use `printf -v` to declare the variables. +- Fixed artifacts when using line-breaks in TTYs. +- All errors are now sent to `stderr`. +- Renamed `XFCE` --> `Xfce`. **[@gavinhungry](https://github.com/gavinhungry)** +- Cleanup `main()`. +- Renamed `old_flags()` --> `old_options()`. + +## Info + +**Shell**
+- [Fish] Fixed memory leak caused by Fish. +- Added support for `xonsh`. +- Fixed version output on `ksh`. +- Rewrote the function to remove duplicate code. + +**Uptime**
+- Moved duplicate code to a function. +- Changed `$uptime_shorthand` to `on` by default. + +**Desktop Environment**
+- Fixed issues where MATE wouldn't be detected properly. +- Added fallback to `$DESKTOP_SESSION`, `$MATE_DESKTOP_SESSION_ID` and `$GNOME_DESKTOP_SESSION_ID`. +- Hide Desktop Environment if it matches Window Manager. + +**CPU**
+- [Linux] Don't simplify `cpufreq` speed option names for no reason. +- [Linux] Fixed issues with CPU name detection for architectures other than x86/amd64/ARM. +- [NetBSD] Remove case statement in favor of 1 line test. +- Simplify check for low CPU speeds. +- Expanded `cpu_temp` to take the values `C` and `F`. This means you can now display the CPU temperature as Fahrenheit. + +**CPU Usage**
+- Added Haiku cores command. +- Updated Linux and macOS commands to the match the commands in the `get_cpu()` function. + +**GPU**
+- [Linux] Each GPU is now printed on a separate line. +- [Linux] Added `--gpu_type` / `$gpu_type` which lets you display `all`, `dedicated` or `integrated` GPUs. + +**Memory**
+- [Solaris] Fixed inaccurate used memory size. + +**Resolution**
+- [Windows] Declare variables locally to fix conflicts in other functions. + +**~~Birthday~~ Install Date**
+- Renamed `get_birthday()` -- > `get_install_date()` +- Removed all `date` command usage from `get_install_date()`. +- Added a new function called `convert_time()` which takes the time stamped `ls` output and converts it to a pretty format. The function only uses bash so its much faster than calling `date`. This makes things simple and keeps the output consistent across all Operating Systems. Example: `2016-12-06 16:58:58.000000000` --> `Tue 06 Dec 2016 4:58 PM` +- Added an option so users can choose between using 24-hour and 12-hour time format +- `get_install_date()` will detect which `ls` program is being used instead of hardcoding them per OS. + +**Disk**
+- Rewrote function from scratch. + - The function is `40` lines smaller than before and works on all [1] versions of `df` we tested on [2]. +- Added the option/flag `disk_show` which allows you to specify which disks, mount points or directories to show the disk info of. (One per line) +- Added the option/flag `disk_subtitle` which allows you to specify how we label each disk. (Mount point or Disk name) +- Removed all percentage calculation since `df` already provides us with the percentage. +- Warn the user if `df` isn't installed. +- Fixed broken output if `df` wasn't installed but the function was enabled. + +[1] The function doesn't work on Haiku since their `df` is wildly non-standard. (The output format and flags are 100% different from all of the other `df` versions floating around.) + +[2] Tested on `GNU`, `Busybox`, `BSD`, `Solaris` and `macOS` `df` versions. + +**Theme**
+- [KDE] Don't display GTK Themes if KDE is detected. +- [KDE] If `kde[0-9]-config` isn't found, try and look for `$HOME/.kde`. + +**Window Manager Theme**
+- Fixed WM Theme not detected on MATE. **[@mstraube](https://github.com/mstraube)** +- Fixed WM Theme detection on KDE. **[@mstraube](https://github.com/mstraube)** + +**Song**
+- Added support for xmms2. **[@z33ky](https://github.com/z33ky)** +- Added support for Exaile music player. **[@mstraube](https://github.com/mstraube)** +- Added support for JuK .**[@mstraube](https://github.com/mstraube)** +- Added support for Bluemindo. **[@mstraube](https://github.com/mstraube)** +- Added support for Guayadeque Player. **[@mstraube](https://github.com/mstraube)** +- Added support for Yarock. **[@mstraube](https://github.com/mstraube)** +- Added support for Qmmp. **[@mstraube](https://github.com/mstraube)** +- Added support for QuodLibet. **[@mstraube](https://github.com/mstraube)** +- Added support for Mopidy. **[@d3rrial](https://github.com/d3rrial)** +- [cmus] Simplify block and fix `artistsort` bug. +- Removed `state` detection. +- Removed duplicate `dbus-send` commands. **[@mstraube](https://github.com/mstraube)** +- Hide output if no song is playing. +- Enforce order `artist - title` in `get_song_dbus()`. **[@mstraube](https://github.com/mstraube)** + +**Terminal Font**
+- Added support for Alacritty. +- Added support for Konsole. **[@mstraube](https://github.com/mstraube)** +- Added support for Sakura Terminal. **[@mstraube](https://github.com/mstraube)** +- Added support for Pantheon Terminal. **[@mstraube](https://github.com/mstraube)** +- Added support for deepin-terminal. **[@mstraube](https://github.com/mstraube)** +- [Termite] Fixed incorrect font chosen. **[@mstraube](https://github.com/mstraube)** +- [Termite] Also look at default config. **[@mstraube](https://github.com/mstraube)** + +**Battery**
+- [MacOS] Fixed issue where battery always appears as charging. **[@jorgegonzalez](https://github.com/jorgegonzalez)** + +**Local IP**
+- [BSD and Solaris] Merged the detection to Linux. +- [Windows] Support multiple interfaces. + +**Color Blocks**
+- Use `start++` instead of adding it manually after case. **[@konimex](https://github.com/konimex)** +- Fixed bug where color blocks wouldn't respect width in TTYs. +- Cursor positioning now takes `$block_height` into account. +- Fixed all artifacts in virtual consoles. +- Merged `$start` and `$end` into an array called `block_range`. + - This makes the config option match the command-line flag `--block_range`. + +## Images +- [iTerm2] Fixed blank images. +- Fixed bug where image mode would attempt to run in a TTY. +- All of the image/ascii backend handling was rewritten. Backend and Image/File/Directory selection is universal now and should make usage easier. + - Added `catimg` backend. + - Added `caca` backend. + - Added `jp2a` backend. + - `--image` has been replaced with `--backend`. + - `--backend` takes `ascii`, `caca`, `catimg`, `jp2a`, `iterm2`, `off`, `tycat`, `w3m`. + - Shortcut flags were added for easy picking of backends. + - Each flag can take a file, image or directory as an argument. + - For example: `neofetch --w3m /path/to/img.jpg` `neofetch --ascii /path/to/file` + - `--w3m` + - `--iterm2` + - `--tycat` + - `--ascii` + - `--off` + - `--catimg` + - `--caca` + - `--jp2a` + - All image and ascii file selection has been replaced with the universal `--source`. + - The value of `--source` can be any of the following: + - `auto`, `ascii`, `wallpaper`, `/path/to/img`, `/path/to/ascii`, `/path/to/dir/`. +- Fixed bugs with image shuffle mode. + +## Wallpaper +- Decode URI filenames. + +## Ascii +- Simplified ascii file handling. + - Removed a call to `tr` for those using `bash 3`. + - Fixed distro detection issues. + - Removed the assumption that `first word in distro --> ascii file name` +- Added Ubuntu-Studio. **[@konimex](https://github.com/konimex)** +- Fixed bug causing macOS ascii art to be used on other Operating Systems. +- Display warning about 'ascii' being the new default mode. +- Removed `ascii_logo_size` in favor of `ascii_distro='{arch,crux,gentoo}_small'`. +- [PCBSD] Use TrueOS ascii art. +- Added Void Linux (small) and Alpine Linux (small). + +## Screenshot +- Use arrays for `$scrot_program` + +## Args +- Fixed bug where `neofetch --config` sourced the user config twice. +- Cleaned up config arg handling. + + +## [2.0.2] - 2016-12-07 + +This minor release fixes some issues related to new features added in 2.0. These issues weren't picked up in the time between 2.0 and 2.1 and another minor release is needed due to the Packages issue being rather important. + +These issues were fixed by reverting the GPU caching and Packages optimizations. These issues occurred because not enough testing was done before these were implemented in master. In the future I'll take more care with testing these larger changes before they hit the master branch and I apologize for there being yet another release in one week. + +I also want to apologize to those packaging Neofetch for this unexpected release. + +## Info + +**Packages**
+- Fixed issue where package output was off by one. + +**GPU**
+- Fixed bug with `--gpu_brand` not working. + +**Theme**
+- [Cinnamon] Fixed incorrect information. + + +## [2.0.1] - 2016-12-06 + +This release of Neofetch fixes some important bugs that were found after 2.0 was release. This includes: Detection issues on CentOS and Linux Mint systems, Incorrect Memory usage on BSD, Linux GPU detection issues and more. + +This release also includes a rewrite of the screenshot functions. You no longer have to set the program to use in your config. Neofetch now automatically finds and uses whatever screenshot tool is available on your machine. + +See the screenshot section below for more info. + +The `get_packages()` function was optimized. Neofetch's packages function works by detecting which package managers are installed on your system and then using a sum of those as the packages output. + +Previously the function would call `wc -l` for every package manager, instead we now call `wc -l` only once at the end of the function. + +Thanks for reporting these bugs and also suggesting these features. Don't be shy, report any bugs, annoyances or etc with Neofetch and I'll happily help you out. + +Thanks to **[@konimex](https://github.com/konimex)** for all of his contributions this release. :) + +## Contributors +- **[@konimex](https://github.com/konimex)** + +## General +- Use `$kernel_name` instead of `$distro` in some functions. **[@konimex](https://github.com/konimex)** + +## Info + +**Distro**
+- Added support for Apricity OS. +- Added support for GoboLinux. **[@konimex](https://github.com/konimex)** +- Added support for SwagArch. +- Added support for AOSC OS. +- Added support for Parrot Security. +- Fixed bug that caused Linux Mint systems to be identified as Ubuntu. +- Fixed bug that caused CentOS systems to not be detected. + +**Memory**
+- [BSD] Fixed high memory output. + +**GPU**
+- [Linux] Fixed bug where sound card was detected as GPU. + +**Packages**
+- Only call `wc -l` once at the end of the function instead of calling it once per package manager. + +**Desktop Environment**
+- Show Cinnamon version. + +## Image +- Changed default image mode to `ascii`. + - See: [Images in the terminal](https://github.com/dylanaraps/neofetch/wiki/Images-in-the-terminal#enabling-image-mode) + +## Wallpaper +- Rewrote wallpaper function. +- Prioritize DE wallpaper setters before falling back to `feh`/`nitrogen`. +- Added support for XFCE's wallpaper setter. +- Added support for Solaris and GNU Hurd. **[@konimex](https://github.com/konimex)** + +## Ascii + +![ubuntu](https://u.teknik.io/zILeY.png) +
Old Ubuntu Logo vs New Ubuntu Logo +- Updated Ubuntu logo to the latest version. + - You can use the old logo by launching neofetch with `--ascii_distro ubuntu_old` or by changing `$ascii_distro` to `ubuntu_old` in your config file. +- `--ascii_colors` no longer changes text colors. +- Added ascii art for Ubuntu-Budgie. + - You can use the ascii art by launching Neofetch with `--ascii_distro ubuntu-budgie` or by changing `$ascii_distro` to `ubuntu-budgie` in your config file. +- Fixed bug causing RFRemix to use the incorrect ascii art. + +## Screenshots + +Neofetch will now automatically find and use whatever screenshot tool is available on your system. The screenshot tool is no longer hardcoded and you don't have to edit your config file to specify what program to use. + +On Haiku and macOS, Neofetch will use the built-in tools to take screenshots. On systems with an X server Neofetch will look for and use the following programs: `scrot`, `maim`, `import (imagemagick)`, `imlib2_grab` and `gnome-screenshot`. + +The config option `scrot_cmd` and the commandline flag `--scrot_cmd` are still there for those who want to use custom flags, programs or scripts to take screenshots. +- Automatically use whatever screenshot tool is available. +- Added screenshot support to macOS +- Added screenshot support to Haiku + +## Screenshot Upload +- [teknik.io] Fixed images not uploading with the right filetype. +- Changed default image upload host to `teknik.io`. + - teknik doesn't compress images whereas imgur does. + - You can change this back to imgur by using `--image_host imgur` or by editing your config file. + + +## [2.0] - 2016-12-02 + +This is the biggest release of Neofetch in a long time. 97 files were changed with 2700~ additions to 2900~ deletions. Although the changelog isn't as interesting this time majority of the script has been rewritten, restructered and cleaned up. Every function and variable name follows a proper naming scheme and a large number of bugs were fixed. + +Since this version of Neofetch differs so much from the previous versions expect a 2.0.1 release a few days later to fix any bugs that are found after release. + +The ascii file handling was rewritten, ascii art is now stored/read as plain text! All `eval` usage was removed from Neofetch, vim fold markers/comments are no longer enforced and we now run on GNU Hurd, Haiku and more. + +When I was rewriting parts of the script I thought to myself; Neofetch is using the bash shebang and does depend on bash so why not take full advantage of the features bash has to offer? All tests were changed from `[` to `[[`, arithmetic tests now use `(())` and C style for loops are used where possible. + +All of the config file documentation was rewritten and multiple wiki pages were created to hopefully make using/configuring Neofetch easier than ever before. You can see the wiki here: [Neofetch Wiki](https://github.com/dylanaraps/neofetch/wiki) + +Some of the config options/arguments were renamed/changed and Neofetch will warn you on run if you're using deprecated options (`neofetch -v`). For this release Neofetch **will** include backwards compatibility with the old config file but I'd like to remove this stuff in ~~2.1~~ 3.0. I recommend using this release with a fresh config file so that you can make use of the new documentation. + +I say this every release; This changelog is incomplete, for a full list of changes take a look through the commit history. Neofetch now has an unspoken commit style so reading the commit history won't hurt as much as it used to. + +Thanks to all of the contributors this time around, you guys are a big help and I really appreciate your work towards making Neofetch better and better each release. :) + +## Contributors +- **[@konimex](https://github.com/konimex)** +- **[@TonCherAmi](https://github.com/TonCherAmi)** +- **[@JorgeGonzalez](https://github.com/JorgeGonzalez)** +- **[@iandrewt](https://github.com/iandrewt)** +- **[@iwamatsu](https://github.com/iwamatsu)** +- **[@Brottweiler](https://github.com/Brottweiler)** + +## Packages +- Neofetch is now in Debian's official repos. +- Neofetch is now in Ubuntu's official repos. + +## General +- All functions/variables now follow the same naming scheme. `example_func_name` +- Call `uname` once and cache the output instead of calling `uname` 4-5 times. +- Cleaned up and rewrote large chunks of the script. +- Convert math tests to correct syntax. +- Fixed `--disable` and capitalized arguments. +- Fixed issue where `bold=off` wouldn't work. +- Fixed issue where info wasn't detected properly but the subtitle was still displayed. +- Fixed issue where using `--disable func func` broke other args. +- Removed all traces of `eval` from Neofetch. +- Removed all vim fold markers and stopped enforcing folding for vim users. + - See [#431](https://github.com/dylanaraps/neofetch/pull/431) +- Rewrote all of config file documentation. +- Swap all tests from `[` to `[[`. + +## Operating System +- Added support for ChaletOS. +- Added support for DracOS. +- Added support for GNU Hurd. **[@konimex](https://github.com/konimex)** +- Added support for Haiku. **[@konimex](https://github.com/konimex)** +- Added support for Korora. **[@konimex](https://github.com/konimex)** +- Added support for Netrunner. **[@konimex](https://github.com/konimex)** +- Added support for Pardus. +- Added support for iPhone 7 and 7 Plus. + +## Ascii +- Ascii art is no longer read as a script and is now read as plain text. + - See this wiki page about the new ascii art format. + - https://github.com/dylanaraps/neofetch/wiki/Custom-Ascii-art-file-format +- Neofetch now displays your OS's ascii logo if your distro's logo isn't found. **[@konimex](https://github.com/konimex)** + - Example: [Linux] Tux is displayed if there's no distro ascii. +- `neofetch --ascii_distro x` now sets the mode to ascii for you. You no longer have to use a combination of `--ascii` and `--ascii_distro`. +- [Arch Linux] Changed default ascii colors. +- [Bunsenlabs] Changed default ascii colors. +- Fixed issue with Solarized and certain ascii art. +- Remove all duplicates from `get_distro_colors()`. +- Remove execution permission flag from ascii art files. **[@iwamatsu](https://github.com/iwamatsu)** +- Rename `colors()` to `get_distro_colors()`. +- Rename `setcolors()` to `set_colors()`. +- Update Netrunner ascii art. +- Added old arch ascii logo. **[@Brottweiler](https://github.com/Brottweiler)** + - Useable by using `--ascii_distro arch_old` or by editing the config. + +## Images +- Fixed images not appearing in st. +- Added `to_ascii()` and `to_off()`. + - These functions are used when falling back to different image modes. +- Renamed `check_old_flags()` to `old_flags()` to match `old_functions()`. +- Split `get_image()` into `get_term_size()`, `get_image_size()`, `get_image_program()` and `make_thumbnail()`. +- Use `$XDG_CACHE_HOME` as the thumbnail dir if available. + +## Wallpaper +- Added support for Cinnamon. + +## Bars +- Rename all `progress_` variables to `bar_` to match the function name. + +## Info + +**Distro**
+- [Linux] Source `/etc/*-release` files instead of having a dozen separate `awk` commands. + - We source `/etc/os-release` before falling back to `/etc/*-release`. +- Remove lsb_release detection. + - This change was made since lsb_release prints innacurate results on some distros. +- Added fallback when distro isn't found. **[@konimex](https://github.com/konimex)** + - Example: `Linux (Unknown)` + +**Packages**
+- [Solus] If `pisi` is unavailable, use `eopkg`. +- Added package detection for Lunar Linux. **[@konimex](https://github.com/konimex)** +- Added package detection for TinyCore. **[@konimex](https://github.com/konimex)** +- Remove `/usr/games` from `$PATH` to fix issues with pacman game. + +**GPU**
+- GPU is now cached till reboot. +- [Linux] Prefer dedicated GPU over integrated GPU. + +**Terminal**
+- Added support for HyperTerm. **[@JorgeGonzalez](https://github.com/JorgeGonzalez)** + +**Terminal Font**
+- Added support for HyperTerm. **[@JorgeGonzalez](https://github.com/JorgeGonzalez)** + +**CPU**
+- [BSD] Added cpu_temp support. **[@konimex](https://github.com/konimex)** + +**CPU Usage**
+- [iOS] Fixed CPU usage. + +**Shell**
+- [bash] Simplify bash version. + +**Song**
+- Added support for Clementine. **[@konimex](https://github.com/konimex)** +- Added support for GNOME Music. **[@konimex](https://github.com/konimex)** +- Added support for Lollypop. **[@konimex](https://github.com/konimex)** +- Added support for Pragha. **[@konimex](https://github.com/konimex)** + +**Public IP**
+- Cache the output of the command. **[@konimex](https://github.com/konimex)** +- [dig] Fixed connection timed out with public_ip. **[@iandrewt](https://github.com/iandrewt)** + +**Resolution**
+- [MacOS] If refresh rate is empty don't append Hz. + + +## [1.9.1] - 2016-11-04 + +This is a small release which fixes various issues found in 1.9. + +Note: Those packaging neofetch can ignore the new file: `config/travis` + +## Contributors +- **[@konimex](https://github.com/konimex)** +- **[@fornwall](https://github.com/fornwall)** +- **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)** + +## Packages +- Neofetch is now in Termux`s repos. + +## General +- [Cursor Position] Fix cursor position in URxvt when using terminal padding. +- [Termux] Fix default ascii location. **[@konimex](https://github.com/konimex)** +- [Termux] Fix default config location. **[@fornwall](https://github.com/fornwall)** +- If a function fails to detect info, let the user know in verbose mode. (`-v`) +- Removed `--test` in favor of a separate config file. Travis.ci now uses `neofetch --config travis` instead of a hacked together arg. + +## Operating System +- Added support for BlankOn Linux. + +## Images +- Fix division by 0 error. + +## Ascii +- [Tails] Update ascii art. +- [OpenBSD] Made ascii art thinner + +## Info + +**Prin**
+- Fix color breakage. +- Fix bold not working. + +**Terminal**
+- Fix whitespace error. + +**Terminal Font**
+- [Termite] Fix incorrect Termite font chosen. +- [Termite] Simplify `awk` command. +- [xfce4-terminal] Simplify `awk` command. + +**Theme**
+- [Budgie] Fix incorrect GTK Theme/Icons + +**Window Manager Theme**
+- [Budgie (Mutter)] Don't print WM Theme. + +**Memory**
+- [OpenBSD] Fixed used memory usage. **[@Head-on-a-Stick](https://github.com/Head-on-a-Stick)** + + +## [1.9] - 2016-11-01 + +This change log won't cover everything that's changed. Have a look through the commit +history for more info. + +There were a lot of major changes made to how things work in this release so I'm expecting +bugs/things not working for people. Expect a 1.9.X release. + +I'm also looking for neofetch screenshots for the Readme, see this issue: [#405](https://github.com/dylanaraps/neofetch/issues/405) + +Thanks to everyone below who contributed, it's nice to see some new faces too. :) + +## Contributors +- **[@konimex](https://github.com/konimex)** +- **[@iandrewt](https://github.com/iandrewt)** +- **[@coypoop](https://github.com/coypoop)** +- **[@ncmprhnsbl](https://github.com/ncmprhnsbl)** +- **[@koreacomputercenter](https://github.com/koreacomputercenter)** + +## General +- Added new function called `checkoldflags` which informs users about deprecated config options. +- Change all `OS X` references to `macOS`. **[@iandrewt](https://github.com/iandrewt)** +- Fix corrupted text when long lines are cut-off. +- Don't dynamically place prompt in `image=off` mode. +- Cursor Position: Fix issues when using URxvt+Padding + +## Operating System + +![android](https://u.teknik.io/4XdJy.png) +- Added support for Android. + - Dependencies: + - Required: `bash` and `busybox` + - Note: I recommend installing `termux` from the Play Store or F-Droid. Termux provides you with a fully + working Linux environment, doesn't require root acess and includes all dependencies. + - Note2: Neofetch will be packaged in `termux` thanks to **[@konimex](https://github.com/konimex)** + - PR [#351](https://github.com/termux/termux-packages/pull/531) +- Added support for Bitrig. **[@konimex](https://github.com/konimex)** +- Added support for Sparky Linux. +- Added support for Porteus. **[@ncmprhnsbl](https://github.com/ncmprhnsbl)** +- Added support for Red Star OS. **[@koreacomputercenter](https://github.com/koreacomputercenter)** + +## Packages +- Neofetch is now in Gentoo's official repos. + +## Images + +**Fixed rendering issues in URxvt when using an XFT font.** + +![scrot](https://i.sli.mg/6qp9Cg.png) + +This was first thought to be an issue between URxvt and W3m-img and I apologize for immediately closing bug reports and dismissing comments about this. + +I spent yesterday trying to fix this issue and found out that launching neofetch with `--bold off` +reduced the rendering problems. I did more digging and found out that removing all text formatting fixes the issue entirely. I later found out that adding a single unformatted character before the formatted text fixed the issue while keeping the formatting the same. + +I opened up this PR https://github.com/dylanaraps/neofetch/pull/358 which added options to enable a border between the image and the text to fix the issue. **[@konimex](https://github.com/konimex)** later commented informing me that we could just use a `zero-width space` to fix the issue and that we didn't need a new function/args/ugly border. doh + +The final fix was as simple as adding a zero-width space before the info, here's the commit. + +https://github.com/dylanaraps/neofetch/commit/3e9c3d648cb4c6f0d5fe5f0b96f9e29429af39d9 + +**Removed hard dependency on `\033[14t`** + +Neofetch no longer requires a terminal emulator that supports `\033[14t` this means that neofetch now works in Konsole. Instead of using the escape sequence users now have three options for getting the terminal size in pixels. +- `xdotool` +- `xwininfo` + `xprop` +- `xwininfo` + `xdpyinfo` + +Neofetch will detect whatever combination you have insalled and use these programs. + +Note: `\033[14t` is still supported, if images already work for you then you don't have to install anything else. +- [w3m-img] Draw the image twice to fix rendering issues in Konsole. +- [w3m-img] Fix cursor position when using `yoffset`. +- [w3m-img] Add `-bg` support with the new option `--bg_color`. + - `neofetch --bg_color blue` will make the background behind the image blue. + - Note: The background color is only visible behind transparent parts of the image. +- If the terminal width is found as `0`, fallback to ascii mode. + +## Ascii +- Bold ascii art by default. +- Fixed incorrect prompt location when using `ascii_logo_size small`. +- Fixed incorrect colors used on light terminals. +- Update Void Linux ascii art. **[@ncmprhnsbl](https://github.com/ncmprhnsbl)** +- Update Solus ascii art. + +## Info + +**Distro**
+- Expanded `distro_shorthand` to macOS, BSD and Solaris. **[@konimex](https://github.com/konimex)** +- Removed `osx_buildversion` and `osx_codename` in favour of `distro_shorthand`. **[@konimex](https://github.com/konimex)** + +**Desktop Environment**
+- [Windows] Added support for showing DE. + - Windows 8 and above: `Modern UI/Metro` + - Windows 7 and below: `Aero` + +**Window Manager**
+- [Windows] Added support for custom WMs/Shells. + - Neofetch now detects `blackbox`, `bugn`, `Windawesome`, `emerge` and `litestep`. + +**Window Manager Theme**
+- [Windows] Added support for Blackbox themes. + +**CPU**
+- Added `cpu_speed` which lets you hide/show the speed in the output. +- Expanded `cpu_cores` option by adding two new values, `logical` and `physical`. + - `logical`: Show all virtual cores (hyperthreaded). + - `physical`: Only show physical cores. +- [Linux] Added support for showing CPU temperature. + - Added new option called `cpu_temp`. + - Note: This is disabled by default and can be enabled by changing the value of `cpu_temp` in your config to `on`. +- [macOS] Print physical cores instead of hyper-threaded cores. **[@iandrewt](https://github.com/iandrewt)** +- [iOS] Rewrite CPU function. + +**GPU** +- [iOS] Rewrite GPU function. +- [Linux] Rewrite GPU function. + - Neofetch also caches the info until reboot. + +**Uptime**
+- Rewrote uptime function to use seconds since boot instead of the `uptime` command. + - Every OS/Distro now has the pretty `uptime -p` output! +- Remove `up` from output. + +**Resolution**
+- [macOS] Add @2x label for retina resolutions. **[@iandrewt](https://github.com/iandrewt)** + +**Memory**
+- [Linux] Correctly calculate used memory. + - The output should now match `conky`, `htop` and etc. + - Source: https://github.com/KittyKatt/screenFetch/issues/386#issuecomment-249312716 +- [NetBSD] Fix memory output for sizes over 4GB. **[@coypoop](https://github.com/coypoop)** + +**Shell**
+- Hide shell path by default. +- Show shell version by default. + +**Battery**
+- [Linux] Rewrote and simplified battery function. +- Removed `battery_shorthand` +- Removed `battery_num` + +**Theme Font**
+- [XFCE] Fixed incorrect font output. + +**Color Blocks**
+- Fixed `block_width` not working. +- Fixed `% s` appearing in color blocks when neofetch is run from `tty` +- Fixed `block_width` being off by one. A value of `2` made the blocks `3` wide instead of `2` wide. + +**Terminal and Terminal Font**
+- [Linux] Use `/proc/$PPID/comm` instead of parsing `ps`. +- Uppercase first letter of `termfont` output. +- Don't print broken output of busybox's `ps`. +- Remove path from output. + +**Song**
+- [macOS] Fix iTunes automatically opening. **[@iandrewt](https://github.com/iandrewt)** +- Added support for Audacious. **[@ncmprhnsbl](https://github.com/ncmprhnsbl)** +- Rewrote song function, it's now much faster/cleaner. + + +## [1.8.1] - 2016-10-04 + +This release fixes various bugs found in 1.8. + +**General**
+- Fixed issues with single args (`-s` `-su`) being treated as values for other args. + +## Info + +**GPU**
+- Added `gpu_brand` to enable/disable showing GPU brand in output. (AMD/NVIDIA/Intel) + +**DE**
+- Added Cinnamon version number to output. + +**WM Theme**
+- Fix GNOME showing wrong WM Theme. + +**Battery**
+- Fixed battery not appearing when set to `all`. + +**Terminal Font**
+- [Termite] Ignore lines starting with `;`. + +**Progress Bars**
+- Fixed progress bars displaying incorrectly in image mode. + +## Screenshot +- Added support for uploading screenshots to Imgur and Teknik. + - Adds two new identical flags `--upload` and `-su`. +- Changed default screenshot name so that it works on Windows. + +## Images + +**General**
+- Added a tiny delay before running w3m-img which suprisingly fixed all flickering issues in VTE based terminals. See [#349](https://github.com/dylanaraps/neofetch/pull/349) + +**Wallpaper**
+- Fix wallpapers with spaces in the filename from not showing up. + +## Ascii +- Added logo mode which only displays the ascii art. + - Adds two new identical flags `--logo` and `-L`. + + +## [1.8] - 2016-10-02 + +This version of neofetch is vastly different from the previous versions and this +changelog won't cover everything that's changed. Have a look through the commit +history for more info. + +There were a lot of major changes to how things work in this release so I'm expecting +bugs/things not working for people. Depending on what comes up we my release a few 1.8.X +versions. + +This changelog is a bit of a mess this time around and I apologize but it should at least +get the message across. + +Android support didn't make it into this release as it requires testing on more devices. +If you've got a device running android and would like to help test out the branch, check +out the open PR here: [#322](https://github.com/dylanaraps/neofetch/pull/322) + +This release also saw a lot more contributors which makes me really happy. Thanks to those +below for helping out. :) + +### Contributors +- **[@hashhar](https://github.com/hashhar)** +- **[@williamkray](https://github.com/williamkray)** +- **[@dar-irl](https://github.com/dar-irl)** +- **[@gabe565](https://github.com/gabe565)** +- **[@maddcoder](https://github.com/maddcoder)** +- **[@iandrewt](https://github.com/iandrewt)** +- **[@aranega](https://github.com/aranega)** +- **[@vendion](https://github.com/vendion)** +- **[@konimex](https://github.com/konimex)** +- **[@undrskr](https://github.com/undrskr)** + +### General +- Added `--version` to print the neofetch version. +- Fix issue when title and background were both color `7`. +- Fix issue with incorrect text color when `barinfo` is set. +- Fixed various Travis.ci bugs. +- Fix lint errors. +- Moved all whitespace trimming to a dedicated function. + - Neofetch will no longer have any whitespace issues in the output. + - See [trim()](https://github.com/dylanaraps/neofetch/commit/d3c87cdaacf1ea9fbf245146c910dc53b49dba08#diff-e863270127ca6116fd30e708cdc582fcR2789) +- Quote all variable/command substitutions. +- Removed `line_wrap` as having it set to `on` broke the output. +- Removed `stdout` mode since it's been broken for a while now and I don't see the + point in fixing it. +- Removed in-script config in favor of sourcing the default user config. +- Remove all instances of `! -z` since they're pointless. +- Remove all `bc` usage by simplifying math. +- Suppress `getconfig` and `getscriptdir` errors. +- Suppress `xprop` errors since it's now an optional dependency. +- The prompt is now dynamically set in image mode instead of being anchored to the
+ bottom of the window. See [#279](https://github.com/dylanaraps/neofetch/pull/279) and [#299](https://github.com/dylanaraps/neofetch/pull/299) for examples. +- The title at the top is now much more colorful. +- Moved commands near the bottom of the script to a new function called `main`. +- Use `read -s` instead of `stty -echo` and `stty +echo`. +- Use faster `$(())` syntax for index variables. +- `-v` now shows where the config files were sourced from. +- Cleanup +- Neofetch no longer clears the screen when run in ascii or image=off modes. + - You can use the old behavior by aliasing `clear && neofetch` to `neofetch`. + +### OS +- Added support for Windows 10 Linux subsystem. **[@konimex](https://github.com/konimex)** +- Added support for GuixSD. **[@konimex](https://github.com/konimex)** +- Added support for Devuan Linux. +- Added support for GalliumOS. +- Added support for Openwrt. +- Added support for PacBSD. **[@vendion](https://github.com/vendion)** +- Added support for Rosa. +- Added support for Solaris (Oracle / OpenIndiana). **[@konimex](https://github.com/konimex)** +- Added support for macOS Sierra. **[@iandrewt](https://github.com/iandrewt)** +- Fixed various iOS related issues. + +### Packages +- Added Cydia package for iOS. + - See https://github.com/dylanaraps/neofetch#ios-1 + +### Info + +**Terminal and Terminal Font**
+ +![img](https://ipfs.pics/ipfs/QmR39ScLi56Yt73pA3YWri9ayatN6mpwSTEmM8RVdeRsB1) +- Added `term` function to display current terminal emulator. [1] +- Added `termfont` function to display current terminal font. [2] + +[1] Both of these functions are enabled by default. +[2] See this wiki page for more info about the functions: [Link](https://github.com/dylanaraps/neofetch/wiki/Terminal-and-Terminal-Font-detection) + +**Model**
+- Added `model` a new function which displays your device's product vendor/name. + +![Mode](https://ipfs.pics/ipfs/Qmcy2o5xZCELxroNLHAhY96ZsrwBFR86NGDCu5e2UPVn4b) + +**Distro**
+- Added `distro_shorthand` **[@konimex](https://github.com/konimex)** + +**Title**
+- Added additional fallback which gets the current username from `$HOME`. + +**Color Blocks**
+- Added `--block_height` / `$block_height` to change the number of lines high each
+ block will be. + +![Big Blocks](https://ipfs.pics/ipfs/QmZpR8ukZNfGXkhXjTwAy3eWVRCeHdrurhgAdV5CSiTVvR) + +**Resolution**
+- [Windows] Fix resolution on Windows 10. **[@dar-irl](https://github.com/dar-irl)** +- [Mac OS X] Hide refresh rate if `0`. **[@iandrewt](https://github.com/iandrewt)** +- Fixed `xrandr` output on systems not using gawk. +- [Linux / BSD] Shortened refresh rate output. + +**Shell**
+- Show `fish` shell version. **[@maddcoder](https://github.com/maddcoder)** + +**Song**
+- Added support for Deadbeef. **[@konimex](https://github.com/konimex)** +- Added support for Amarok. **[@konimex](https://github.com/konimex)** +- Added support for Banshee. **[@konimex](https://github.com/konimex)** +- Added support for Rhythmbox. **[@konimex](https://github.com/konimex)** +- [Cmus] Prevent `tag artistsort` from showing up in song title. **[@williamkray](https://github.com/williamkray)** +- [Cmus] Fix order of music tags. **[@iandrewt](https://github.com/iandrewt)** +- [Cmus] The function now works on both OS X and Linux. +- [iTunes] Fix song not displaying. **[@iandrewt](https://github.com/iandrewt)** + +**CPU**
+- Simplify CPU Core command. + +**CPU Usage**
+- Fixed broken CPU usage output on BSD and Windows. +- Fixed misleading output on Linux / Mac OS X. +- Moved CPU Usage to its own dedicated function. + +### Image + +![terminology](https://ipfs.pics/ipfs/QmbVEUREBg4hMG22WrQ2bkt2sZZzyTEP5EEXmHRw7MHD6A) +- Added image support for terminology with `tycat`. **[@aranega](https://github.com/aranega)** [1] +- Fixed issues with lines getting drawn through images. See [#296](https://github.com/dylanaraps/neofetch/pull/296) +- Added `--crop_mode none` / `crop_mode=none` to disable cropping the images. +- Added `--size none` / `size=none` to disable resizing / cropping the images. +- Removed `image_position` +- `--image off` now behaves like the other image modes. + +[1] `tycat` is a terminology builtin that works similarly to w3m-img. Those using terminology
+now have working image support. + +##### Shuffle mode +- Fixed directory going out of bounds causing a fallback to ascii mode. **[@gabe565](https://github.com/gabe565)** +- Simplified shuffle function. +- Path no longer requires a `/` at the end. **[@aranega](https://github.com/aranega)** + +### Ascii +- Add `ascii_bold` which allows you to bold the ascii art. +- Added `--ascii_distro mac` as a shorter way of using the OS X ascii. +- Added missing `$ascii_distro` config option. +- Better `Ubuntu-GNOME` ascii art. **[@hashhar](https://github.com/hashhar)** +- Custom ascii files (`--ascii path/to/ascii_file`) now follow the same format as the + distro ascii files. See this wiki page that explains the syntax. [Link](https://github.com/dylanaraps/neofetch/wiki/Custom-Ascii-art-file-format) +- Fix a color issue with Debian's ascii logo. +- Fix an error with an unescaped char in Windows' ascii art. +- Use a pure bash solution to getting ascii size. +- Updated Solus ascii art to match new logo. **[@undrskr](https://github.com/undrskr)** + + +## [1.7] - 2016-05-14 + +Hello, sorry this release took so long. I've been extremely busy with uni and +haven't had as much time to work on neofetch. + +As always, check the `Following HEAD` wiki page for all breaking changes +this release. + +I'm also looking for some new Readme screenshots, see this github issue: **https://github.com/dylanaraps/neofetch/issues/245** + +### Contributers + +Thanks to the following people for contributing this release. +- **[@dawidd6](https://github.com/dawidd6)** +- **[@tudurom](https://github.com/tudurom)** +- **[@iandrewt](https://github.com/iandrewt)** + +### General +- Made it easier to get verbose logs. +- Added issue template for github. +- New repo for Crux. **[@tudurom](https://github.com/tudurom)** +- Added release badge to readme. **[@dawidd6](https://github.com/dawidd6)** +- Updated man page and usage with newest flags. +- Font is now enabled by default to match Screenfetch's default config. +- Fixed `bold` option not working. + +### OS / Distro Support +- Added support for Kogaion Linux. +- Added support for Apple iOS. **[@iandrewt](https://github.com/iandrewt)** + - Neofetch should now work on your iPhone, iPod and iPad. +- Added support for DragonflyBSD. +- Added support for PCBSD. + +![iOS screenshot](https://ipfs.pics/ipfs/QmYmPhwpFrxwySW2phdxH1TyQ6tCgCnxtYtbEEe3RY5TwZ) + +### Error Messages + +Neofetch now supports displaying error messages and saving a verbose log for +troubleshooting. + +![log](https://ipfs.pics/ipfs/QmeTWGKozY79zcxbrgXueyTRfQcTUe7ZmDqLv4ASgJB4G4) +- Added `-v` to print error messages to stdout. +- Added `-vv` to print a verbose log to stdout. [1] + +[1] Use `neofetch -vv 2> file` to save a verbose log for bug reporting. + +### Info +- Rewrote most BSD info functions, they're now much smaller and work on more + BSD distros. + +**prin** +- Format changes to fix issues with colons in string. This change also makes + `prin` use the same args as `info`. + +``` sh +# OLD Format +prin "Subtitle: Text goes here" + +# NEW Format +prin "Subtitle" "Text goes here" +``` + +**Title** +- Made title faster by using `$HOSTNAME` when available. + +**Underline** +- Fixed bug with `--underline on/off` not working. +- Underlining is no longer hardcoded to title length meaning you can now + underline any part of the output and the length will match. +- `$underline` was renamed to `$underline_enabled`. + +``` sh +# OLD Variable +underline="on" + +# NEW Variable +underline_enabled="on" +``` + +**Distro** +- Fix arch issues with ARM cpus. +- We now use `uname -m` to get the arch instead of hardcoding `x86`. +- Moved distro detection to a function called `getdistro`. +- Fixed issue with `ascii_distro` not working. + +**CPU** +- Fixed issues when cpu speed was < 1Ghz +- Cleanup of CPU function. +- Don't print `Dual-Core` or `Quad-Core` in CPU output. + +**GPU** +- [Linux] More GPU substitutions for AMD cards. +- Added BSD support using `glxinfo`. + +**Memory** +- [Linux / Windows] Use `memavail` if available for a more accurate output. + +**Packages** +- Package count now works when the user has multiple package managers installed. + For example, if the user has both `dpkg` and `pacman` installed the function will + add up the packages from both package managers to get a grand total. (`dpkg pkgs` + `pacman pkgs`) + +**Uptime** +- Fixed various issues with OS X and BSD. + +**Desktop Environment** +- [ Linux ] Fallback to using `xprop` if `$XDG_CURRENT_DESKTOP` is empty. +- Use `$de` instead of `$XDG_CURRENT_DESKTOP` for wallpaper and theme detection. +- Fixed xprop bug with DE detection when X wasn't running. +- Don't assume that user is using MATE if marco wm is detected. + +**Window Manager Theme** +- Fixed bug when `$de` was unset. + +**Color Blocks** +- Fixed bug when the blocks wrap a line causing a large white strip to appear. + +### Ascii +- Added KDE neon ascii art. +- Added small OpenBSD ascii art. + - Credit goes to ufetch. +- Reduced the size of NetBSD's ascii art. +- [Windows 8/8.1] Use modern windows ascii art. + +### Colors +- Fixed bug with `--colors` not working with all 256 terminal colors. +- `--colors 7` now uses the color white. [1] +- `--colors fg` now uses the foreground color. [1] + +[1] Neofetch tried to be smart before by assuming that the foreground color +would be white or black. This caused issues for those setting the foreground +color to red or etc. This change adds a new value for `--colors` and `colors=()` +called `fg` which will set the color to your foreground color. + +### Progress Bars +- The default progress bar look was changed to `[=====-----]` instead of `━━━━━━━━━━` + fix issues with older systems. +- You can now enable/disable a border around the progress bars with `progress_border`. + +``` sh +# $progress_border on +[=====-----] + +# $progress_border off +=====----- +``` +- You can now individually set the progress bar characters by using + `progress_char_elapsed` and `progress_char_total`. This means that you can + have a seperate character for the elapsed and total portions of the bar. + +``` sh +# Examples with $progress_border on + +# Elapsed: = +# Total: - +[=====-----] + +# Elapsed: . +# Total: " " +[..... ] + +# Elapsed: / +# Total: " " +[///// ] +``` + + +## [1.6] - 2016-04-01 + +# Neofetch 1.6 + +Another ~~week~~ another release of Neofetch. + +This release focused on cleanup, bug fixes and optimization. Neofetch +is now much much faster than last release and more bug free than ever +before! + +This release surprisingly didn't break much at all, see the latest entry in +the wiki page `Following HEAD`. + +https://github.com/dylanaraps/neofetch/wiki/Following-HEAD + +![scrot](https://ipfs.pics/ipfs/QmTD6cRmYfLdrvvyLfGdUfBDCzE5uYNsRpLUx7vLUFkYxM) + +### Contributors + +Thanks to the following people for contributing this release. +- **[@iandrewt](https://github.com/iandrewt)** +- **[@dawidd6](https://github.com/dawidd6)** +- **[@onodera-punpun](https://github.com/onodera-punpun)** +- **[@onespaceman](https://github.com/onespaceman)** +- **[@firstEncounter](https://github.com/firstEncounter)** +- **[@konimex](https://github.com/konimex)** + +### General +- Added Travis CI support. +- Added `--test` which is meant for testing and prints all functions. +- Cleanup of Distro, Uptime, Memory and CPU functions. +- We now use a more reliable white-space trimming substitution for CPU/GPU etc. +- Use `stty` instead of `read -s` to fix an issue with escape sequences
+ appearing in the output. +- Line wrap is now disabled by default. +- Implement base support for caching specific info. This will eventually
+ allow us to speed up the script by caching info that won't change for a
+ long period of time like the CPU/GPU. [1] +- Fixed a locale issue when `LC_ALL` is unset on the user's system. +- Change all usage of `$HOME/.config` to `$XDG_CONFIG_HOME` with a fallback to `$HOME/.config`. + +[1] You can clear the cache with `--clean`. + +### Colors + +![vs](https://ipfs.pics/ipfs/QmNVw4zm78tgBGdhDJ1FZ1aktpEtVapVtNWWMMKh5aitrZ) + +

Neofetch 1.5 vs Neofetch 1.6

+ +

Neofetch now works with bright color schemes and uses the foreground color instead of hard-coding white.

+ +
+- Fixed buggy colors in older versions of *BSD, OS X and Linux. +- The default text colors now work on bright color schemes. We no longer force
+ the color white, it's now based on your foreground color. +- Progress bars are now by default colored based on your distro's logo colors. +- Color blocks now work in older systems and in Travis CI. + +### Packages +- Neofetch is now is Void Linux's official repos. **[@konimex](https://github.com/konimex)** + +### Info +- Functions now no longer print `Unknown` when they fail, they now don't appear at all. + +**Window Manager Theme**
+- Added new `WM Theme` function to print window manager themes. + +**OS**
+- [ CRUX ] Also print the CRUX version. **[@onodera-punpun](https://github.com/onodera-punpun)** +- [ Fedora ] Fixed a weird detection bug. + +**CPU**
+- [ Windows ] Don't print CPU cores if detection fails. +- [ BSD ] Fixed extremely long output. +- Fixed broken CPU speed when source is `/proc/cpuinfo`. + +**GPU**
+- Don't show GPU output on unsupported OS. +- `Nvidia` is now displayed as `NVIDIA`. **[@firstEncounter](https://github.com/firstEncounter)** +- Intel GPUs now all appear as `Intel Integrated Graphics`. to avoid naming issues. +- [ OS X ] We now cache the GPU value. + +**Battery**
+- Show charging state in battery output. **[@dawidd6](https://github.com/dawidd6)** and **[@iandrewt](https://github.com/iandrewt)** +- [ Windows / OpenBSD ] Fix blank battery output when battery isn't found. + +**Resolution**
+- [ Windows ] Don't print resolution if detection fails. +- [ Linux / OSX / BSD ] Print refresh rate next to resolutions. +- [ Linux ] Multi monitor support using `xorg-xrandr`. +- [ Linux ] Refresh rate support using `xorg-xrandr`. +- [ OSX ] Added support for using `screenresolution` to print the output.
+ This is much faster than the default method. + +**Packages**
+- Listing homebrew packages is now super fast. **[@iandrewt](https://github.com/iandrewt)** + +**Public IP**
+- Made public IP function faster by using `dig` if available. **[@iandrewt](https://github.com/iandrewt)** +- Each source now has a timeout to avoid a hang. +- If the IP detection fails we try another method. + +**Theme**
+- Use `$GTK2_RC_FILES` if the envar is set. **[@onespaceman](https://github.com/onespaceman)** + +**Desktop Environment**
+- Added OS X detection. + +**Song**
+- [ MPD ] Fixed function when mpd is running on another PC and not your own. +- Song now displays `Not Playing` instead of `Unknown` when no music player is found. +- Added support for Google Play Music Desktop Player (adds optional dependency of [`gpmdp-bash`](https://github.com/iandrewt/gpmdp-bash)) **[@iandrewt](https://github.com/iandrewt)** + +**Disk**
+- Added new display option `perc` to display just the percentage with the progress bar. +- [ FreeBSD ] Fixed disk usage not working. + +**Memory**
+- [ OpenBSD ] Fixed completely broken memory output on OpenBSD. +- [ Linux ] Rewrote memory function so that it works on old kernel versions. + +**Uptime**
+- [ OSX / BSD ] Performance improvements. **[@iandrewt](https://github.com/iandrewt)** +- [ OpenBSD ] Fixed duplicate `up` in output. + +**Birthday**
+- Fix stray `+` sign in output. + +### Image +- Remove `shuffledir` in favor of '--image path/to/dir/' +- Use `printf` instead of `shuf` to pick a random image. +- [ OS X ] Fixed issues with wallpaper detection. +- [ OS X ] Wallpaper detection now works on a per desktop basis. +- Removed `image_backend` and instead use iterm2 mode only when iterm2 is detected. + +### Ascii +- Added ascii art for Qubes OS. +- Added ascii art for Travis CI. +- Revamped Alpine Linux's ascii art. +- Fixed missing ascii colors for Puppy Linux. +- [ OSX ] Fixed incorrect text colors. +- Sped up ascii function by dropping `wc` usage. + +### Scrot +- Fixed scrot function not using user defined options. + + +## [1.5] - 2016-03-17 + +# Neofetch 1.5 + +![Xubuntu](https://ipfs.pics/ipfs/QmWPvwW3nQoKVffHSZUu57MwCpQDZoMVTHQVwwCom2ChqM) + +### Contributers + +Thanks to the following people for helping me to improve neofetch. +- **[@iandrewt](https://github.com/iandrewt)** +- **[@konimex](https://github.com/konimex)** +- **[@CousinMachu](https://github.com/CousinMachu)** + +### General +- Remove all `echo` usage inside the script. +- More cleanup and misc bug fixes. + +### Packages +- Neofetch is now packaged for `Fedora` and `Fedora` based distros. **[@konimex](https://github.com/konimex)**. +- Added installation instructions for RHEL and CentOS. **[@konimex](https://github.com/konimex)**. +- Added stable package to the AUR. **[neofetch](https://aur.archlinux.org/packages/neofetch/)** + +### Progress Bars + +This has finally been merged to master, a big thanks to **[@iandrewt](https://github.com/iandrewt)** for helping +me finish up with this PR. + +![bars](https://ipfs.pics/ipfs/Qmbj8S7pi4CVw12XTawtRwRpLvkiZ9cxRxCUPMLQ1Nhhkb) +- Added progress bar support to CPU, Memory, Disk, Battery. +- Added `progress_char` which allows you to change the character used when drawing the bars. +- Added `progress_length` which allows you to set the max length in spaces of the bars. +- Added `progress_elapsed_color` which sets the elapsed color. +- Added `progress_total_color` which sets the total color. +- Added `--progress_colors` which takes two color values: `elapsed`, `total`. +- Added `cpu_display`, `memory_display`, `disk_display` and `battery_display` which allow you
+ to customize where or if the progress bar will appear. + - Takes these values: `info`, `bar`, `infobar`, `barinfo` + +### OS +- Added support for `SteamOS`. + +### Images +- Using `xoffset` now also moves the text over. +- Changed default gap size to `2`. +- Fixed an issue with Nitrogen and multi monitor wallpaper setups. **[@CousinMachu](https://github.com/CousinMachu)** + +### Ascii +- Kaos: Update ascii logo to the new logo. +- Added ascii logos for `Kubuntu`, `Lubuntu`, `Xubuntu` and `ubuntu-gnome`. + - You can enable them with `--ascii_distro kubuntu`, `--ascii_distro lubuntu` and etc. + +### Info + +**OS**
+- [ OSX ] Fix buildversion displaying regardless of on/off. **[@iandrewt](https://github.com/iandrewt)** +- [ OSX ] Added `osx_codename` (on by default) which prints the OSX codename. **[@iandrewt](https://github.com/iandrewt)** + +**Disk Usage**
+- Only display usage of local disks. +- Fixed disk usage progress bars when the used value was larger than the total. **[@iandrewt](https://github.com/iandrewt)** + +**Theme**
+- Added `/usr/share` as another theme directory to fix an issue with no theme being found. **[@iandrewt](https://github.com/iandrewt)** + +**CPU**
+- Added `cpu_shorthand` to shorten the output of CPU. **[@iandrewt](https://github.com/iandrewt)** + - Takes these values: `name`, `speed`, `tiny`, `on`, `off` +- Added the ability to print the CPU Usage by using `cpu_display="info"` or `--cpu_display off/on info`. +- Added `cpu_cores` to enable/disable showing the number of CPU cores in the output. **[@iandrewt](https://github.com/iandrewt)** + +**GPU**
+- Added new `tiny` option to `gpu_shorthand` to further shorten the GPU output. **[@iandrewt](https://github.com/iandrewt)** + +**Memory**
+- Fix hang on older systems. + +**Desktop Environment**
+- Fixed bug where `i3` would show up as both a DE and a WM. + +**Birthday**
+- Fixed the birthday function on OS X, it apparently wasn't working from the start. **[@iandrewt](https://github.com/iandrewt)** + +**Song**
+- [ OSX ] Added Spotify support to song. **[@iandrewt](https://github.com/iandrewt)** +- [ OSX ] Added Itunes support to song. **[@iandrewt](https://github.com/iandrewt)** +- Fix bug with `song_shorthand` and songs with more than one occurence of `-`. + +**Battery**
+- Fixed a naming error when multiple batteries are displayed. **[@iandrewt](https://github.com/iandrewt)** + +### Stdout Mode +- Fixed issues with functions that use `prin`. + + +## [1.4] - 2016-03-09 + +Lots of bugs were fixed and a lot of code was cleaned up, this changelog just lists +the major changes made to neofetch. For a full list, checkout the git commit history. + +Thanks to everyone for contributing, I appreciate it! +- Renamed `fetch` to `neofetch`. Thanks for voting. +- Neofetch now has a man page. (man neofetch) Thanks **[@konimex](https://github.com/konimex)** +- Added support for `Alpine Linux`. +- Fix issue with color blocks ending up on the same line as the prompt. + +### Packages +- Added Debian/Ubuntu package. Thanks **[@dawidd6](https://github.com/dawidd6)** +- Added Homebrew package for OS X. Thanks **[@iandrewt](https://github.com/iandrewt)** + +### Info +- Reimplement `color` function. + +**Battery**
+- Added support for NetBSD + +**Song**
+- [Linux] Added support for Spotify. + +**Birthday**
+- Added `--birthday_format` and `$birthday_format` to change the date format of the
+ birthday function. The flag uses the `date` cmd's format options so see `man date`
+ for a list. + +**Packages**
+- Fix 0 package count in Slackware. Thanks **[@h3xx](https://github.com/h3xx)** + +**GPU**
+- Added more GPU substitutions. + +Example: + +``` sh +neofetch --birthday_format "%D" +neofetch --birthday_format "%a %d %b %Y %l:%M %p" +neofetch --birthday_format "%c" +``` + +**Theme**
+- Fix incorrect theme detection on Cinnamon. + +### Ascii +- Added small ascii logo variants for Arch, Crux and Gentoo. [1] +- Added new flag/option `ascii_logo_size` that takes the values `normal` and `small`. +- Optimized all ascii art fixing all leading whitespace issues. + +[1] The small ascii art was taken from [ufetch](https://github.com/jschx/ufetch). + +Example of small ascii logo: + +![CRUX](https://ipfs.pics/ipfs/QmSpadVHtBPRBUJEiiztqkXqfhE2fuGS5t8bzsbxWUYaXA) + +### Stdout +- Don't create config file when using `--stdout`. +- Simplified stdout function. +- Reimplent `--stdout_separator` and `$stdout_separator` which allow you to change
+ the separator between the info. + +Example: + +``` sh +# Display memory, battery and disk in a single line separated by " | " +# This output can then be used in lemonbar etc. +neofetch --stdout memory battery disk --stdout_separator " | " +``` + + +## [1.3] - 2016-02-26 + +# Fetch 1.3 + +Hey guys, + +This update brought some breaking changes, see this wiki page for what you'll +need to update in your config file. + +https://github.com/dylanaraps/fetch/wiki/Following-HEAD + +We're in the middle of renaming 'fetch' to something else as there are +already other programs using the name and we don't appear in any searches. + +You can help out by voting in our poll here: + +http://strawpoll.me/6894425 +- Fetch now supports **bash 3.0+**. +- More cleanup +- The text is now by default colored according to your distro's logo. +- Removed `$*_color` variables/flags in favour of a general `$colors` + variable/flag. See my writeup here: **https://github.com/dylanaraps/fetch/pull/96** + +### Image +- You no longer need to set the font_width value, your font size + is now calculated by fetch automatically. +- Image sizing now takes terminal height into account. +- `--size` now also takes a percentage as a value, for example. + +``` sh +# Image takes up 70% of the terminal size. +fetch --size 70% + +# Size the image in pixels. +fetch --size 200px +``` + +### Packages +- Fetch now has a `crux` port. Thanks **[@ix](https://github.com/ix)**. + +### OS +- Added support for `BunsenLabs`. +- Added support for `SailfishOS`. (Untested) + +### Info +- Don't display Theme, Icons, Font or Window Manager if X isn't running. +- Added function to show currently logged in users. + +**Window Manager** +- Add support for Wayland window managers. (Hardcoded) + +**Song** +- Added `song_shorthand` which prints the Artist/Title on seperate lines. + +**Theme** +- Windows Visual Style is now a part of `getstyle`. +- Disabled theme output on OS X to fix a `gsetttings` related crash. +- Uppercase the first letter of the theme. + +**Resolution** +- Added Windows support. +- Enabled by default but only displays info if the dependency is found. + +**Battery** +- Added FreeBSD and OpenBSD support. Thanks **[@tudurom](https://github.com/tudurom)**. + +**GPU** +- Added more substitutions/ + +### Stdout + +Printing to stdout in a plaintext format for use in scripts is now +much faster and cleaner. +- Removed `--stdout_separator` (Separator is now 2 spaces) +- Removed `--stdout_subtitles` +- Removed `--stdout_title` + + +## [1.2] - 2016-02-17 + +# Fetch 1.2 + +This new release comes with a few config breaking changes, see this wiki page +for info on how you can workaround the issues. + +https://github.com/dylanaraps/fetch/wiki/Following-HEAD +- Fetch now has a **gitter** chatroom. [![Gitter](https://badges.gitter.im/dylanaraps/fetch.svg)](https://gitter.im/dylanaraps/fetch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +- Fixed text padding when the user didn't have the locale `en_US.UTF8` installed. +- Cleaned up parts of the script. + +### OS + +We now support almost all the Linux distros Screenfetch supports excluding +the distros that have been discontinued. + +Added support for these distros: +- `Puppy Linux` +- `Kali Linux` +- `openSUSE` +- `Raspbian` +- `Mageia` +- `PCLinuxOS` +- `Zorin OS` +- `Tails` +- `BLAG` +- `Void Linux` +- `Trisquel` +- `Solus` +- `Peppermint` +- `NixOS` +- `Chakra` +- `Mandriva` +- `gNewSense` +- `LMDE` +- `KaOS` +- `Sabayon` +- `Frugalware` +- `Chapeau` +- `Slackware` +- `Scientific Linux` +- `Exherbo` +- `Chrome OS` +- `Chromium OS` + +### Makefile +- Fixed makefile on OS X El Captain. +- `$PREFIX` is now also used when installing ascii art and the default config + +### Wallpaper +- Fetch now supports using `MATE` desktop's wallpapers. +- Fetch now fallsback to ascii mode if the found wallpaper is an xml file. This + fixes issues where the wallpaper set by gsettings is an xml file. + +### Info + +**Desktop Environment**: +- Added support for showing the user's DE. + +**Window Manager**: +- `xprop` is now a required dependency. See **[#79](https://github.com/dylanaraps/fetch/pull/79)**. +- Renamed 'windowmanager' to 'wm' + +**IP Address**: +- Added function to get your local IP +- Added function to get your public IP [1] +- Added `--ip_host` and `$public_ip_host` which allow you to change the website we + ping for the public IP. + +[1] Public IP requires an internet connection as we ping a website. + +**Packages**: +- Check for packages based on which package manager is installed instead of + using a hardcoded list of distros. + +**Theme**: +- Added support for getting DE theme. +- Added support for getting KDE theme. +- Renamed `getgtk` to `getstyle`. +- Dropped the `gtk` from these printinfo functions `gtktheme`, `gtkicons` + and `gtkfont`. Theme output will be blank until you make these changes: + +``` sh +# Old Naming +info "GTK Theme" gtktheme +info "Icons" gtkicons +info "Font" gtkfont + +# New Naming +info "Theme" theme +info "Icons" icons +info "Font" font +``` + +**GPU**: +- `gpu_shorthand` is now enabled by default. +- We now favor showing the dedicated GPU over the integrated one. + +**Song**: +- Added support for `MOC`. +- We now check to see if the player is running before printing anything. +- We now check playback state and show it if relevent. + +**Uptime**: +- [Linux] Fixed uptime when it's under 1 minute. + +### Ascii Art +- `--ascii_distro` now also enables ascii mode. +- Fix missing ascii art when fetch is installed in /usr/local +- Update Deepin's ascii art to their new logo + + +## [1.1] - 2016-02-06 + +# Fetch 1.1 changelog + +Over the past 10~ days over **190** more commits have been pushed to master and the +script has had some big changes. Thanks to everyone who has contributed, you've been +a big help. + +![screenfetch mode](http://i.imgur.com/nW3HiNP.png) +New screenfetch mode +- If `w3m` or `imagemagick` aren't installed we gracefully fallback to ascii mode. +- Automatically find the `w3m-img` path and fallback to ascii mode if not found. [1] +- Fix padding escape codes on BSD systems. +- Swap escape codes from `\e` to `\033` for consistency. +- We only move the cursor to the bottom of the terminal in w3m/iterm2 rendering modes. +- Cursor position is now dynamic in ascii mode based on the height of the ascii and info text. +- If images and ascii are off, don't clear the terminal +- The script now exits correctly instead of always exiting with status code `1` +- If the script exits for any reason, unhide the cursor. +- Removed duplicate blocks inside `getcpu` and `getmemory`. +- Removed `--colors` as it was apparently broken from day 1. +- Usage has been reformatted so that every flag has a value. + +[1] Setting `$w3m_img_path` will make the script look there first. + +### Image +- Added support for displaying ascii art inside of text files. +- Added "screenfetch mode" which will display your distro's ascii art next to the info. [1] +- Added `--ascii_distro` to choose which distro's ascii logo to display. +- Added `--ascii_colors` and `$ascii_colors` which allow you to change the colors of the ascii art + and distro logos. [2] +- Added `--size` and `$image_size` to set the image size in pixels. +- Rename `--shuffledir` and `$shuffledir` to `shuffle_dir`. +- Rename `--imgtempdir` and `$imgtempdir` to `thumbnail_dir` +- Removed `--split_size` and `$split_size` as they were weird and confusing to use. +- Default thumbnail directory is now `$HOME/.cache/thumbnails/fetch`. Thanks @tudurom +- If `--image` and `--ascii` are left empty we fallback to ascii distro mode. + +Example usage of ascii from file: + +``` sh +fetch --ascii "path/to/ascii" --ascii_color 2 + +``` + +[1] **[How do I enable screenfetch mode?](http://github.com/dylanaraps/fetch#how-do-i-enable-screenfetch-mode)** +[2] `ascii_colors` takes a range of colors which allows you to color every aspect of +distro and OS ascii art. For custom art the script will color the entirety of it using +the first value of `ascii_colors`. If `ascii_colors` is left empty, color will be disabled. + +### Config file +- Fetch now has a config file that you can share with people and keep between + script versions! [1] +- Added `--config` and `$config_file` to specify a custom config location. +- Added `--config off`, `--config none` and `$config` to enable / disable config files + at launch or in script. + +[1] https://github.com/dylanaraps/fetch#using-the-config-file + +### Makefile +- Fetch now has a make file due to the increasing number of files, + this allows the script to be easily installed and uninstalled on + systems it isn't packaged for yet! [1] + +[1] The script will still work just fine on its own, you'll just be missing +the distro ascii art and the automatic config creation. + +### Packages +- Fetch now has a Gentoo/Funtoo e-build courtesy of **@z1lt0id** + +### Stdout +- Added `stdout` mode which allows you to fetch info in a plain text format that works + with lemonbar and in your scripts. You can use it by launching fetch with `--stdout` to print all + functions enabled in your `printinfo` function. You can selectively print functions by passing + arguments to `--stdout` like so: + +``` sh +# Print the output of all info functions enabled in printinfo +fetch --stdout + +# Print the output of memory +fetch --stdout memory + +# Print the output of memory and disk +fetch --stdout disk + +# Print the output of all functions excluding x +fetch --stdout --disable kernel packages gtktheme + +``` +- Added `--stdout_separator` and `$stdout_separator` which takes a string and adds it + as a separator between the output. +- Added `--stdout_title` and `$stdout_title` which allow you to toggle the `title@hostname` + from appearing in the output. +- Added `--stdout_subtitles` which allow you to toggle the `Info:` titles from appearing in + the output. + +``` sh +# Hiding subtitles +fetch --stdout --stdout_subtitles off + +# Custom separator +fetch --stdout disk gpu --stdout_separator " | " + +``` + +**NOTE:** `stdout_subtitles` and `stdout_title` only work when `--stdout` is used on its own +without any args. + +### Info +- You can now display info without a subtitle. eg. `info memory` +- Added `--disable` which allows you to stop an info line from appearing at launch. +- Added `--underline` and `$underline` which allow you to toggle visibility of the + underline at launch and in your config. + +``` sh +# Stop cpu, gpu, disk and shell functions from being called +fetch --disable cpu gpu disk shell +``` + +**Kernel:** Added `--kernel_shorthand` and `$kernel_shorthand` to print less or more kernel info +**Window Manager:** Added support for `$XINITRC` +**GTK:** Fix incorrect GTK3 theme being displayed +**CPU:** `cpu_shorthand`: New substitutions +**GPU:** `[Linux]` Count the number of identical GPUs. eg. `Nvidia Geforce GTX 970 x 2` +**Memory:** `[Mac OS X]` Added wired memory to memory usage. + +**Distro:** +- Added support for showing OS architecture. eg `Arch Linux x86_64`, `Windows 7 Ultimate 64-bit` [1] +- Mac OS X: Added support for showing Max OS X build version. [2] +- Windows: Distro now displays Windows edition. eg. `Windows 7 Ultimate` + +[1] You can toggle this using `--os_arch` and `$os_arch`. +[2] You can toggle it using `--osx_buildversion` and `$osx_buildversion`. + +**Shell:** +- Added `--shell_version` and `$shell_version` to hide/show your shell's version. +- Added `--shell_path` and `$shell_path` to hide/show the path to your shell + +**Birthday:** +- Added `birthday` which prints the age of your OS install. +- Added `--birthday_shorthand` and `$birthday_shorthand` to shorten/lengthen + the output of birthday. +- Added `--birthday_time` and `$birthday_time` to show/hide the time in the output. + +**Battery:** +- Added `battery` which prints the battery usage percentage for each battery + in your system. +- Linux: Added `battery_num` which allows you to choose which battery to display, + it also takes the value `all` which will print all batteries line by line. +- Linux: Added `battery_shorthand` which when set to `on` prints each battery on the + same line like so: + +``` sh +# battery_shorthand="on" +Battery: 10%, 5%, 67% + +# battery_shorthand="off" +Battery0: 10% +Battery1: 5% +Battery2: 67% + +# If there's only a single battery in the system +# we ommit the numbered title. +Battery: 10% +``` +- **NOTE:** This currently doesn't support BSD systems as we have no one to help us test + - See **[Issue #46](https://github.com/dylanaraps/fetch/issues/46)** + + +## [1.0] - 2016-01-27 + +# Fetch 1.0 + +There have been over **260** commits to master since I last made a release +and the script is at a point now where I can say that it's feature complete +so I'm releasing 1.0. The script now supports many more OS/distros and has +had lots of bug fixes, changes and features added. + +I'm probably missing a bunch of stuff from this changelog so if i've +forgotten anything, let me know! + +I'm also slowly adding pages to the wiki so check it out! + +# Here's what's new: +- Added full support for **Windows**, **BSD** and **Mac OS X**. +- Fetch is now MIT licensed +- Dropped the `.sh` from the filename and title. +- Dropped support for `mksh` so we can support some `bash` only features. +- Cleanup of everything +- Added `--prompt_height` and `$prompt_height` to fix the script going
+ offscreen due to multi-line shell prompts. This option should be set to
+ your prompt height in lines. +- The script now supports bash **4.0**. It turns out that we only
+ supported bash **4.3** +- Restore cursor and clear screen on ctrl+c. +- Swap `tput` cmds for `ansi escape sequences` where possible. +- Added folds to make the script easier to navigate in *vim. +- Added `-F` to grep where possible for a speedup where possible. +- Fix whitespace issues with different distros. +- Remove uneeded `$` symbols. +- Remove double negative tests. +- Added note about needing `procps` or `procps-ng` for uptime support. +- Fix syntax errors in script and readme. +- All vars now use `on/off` instead of `1/0`. +- Quote things that should be quoted. + +**Linux:** +- Fix issues with `Elementary OS` and `CentOS`. + +**Mac OS X:** +- Added support for other package managers. +- Fix issue with multiple resolutions in `getresolution` + +**Windows:** +- Added `getvisualstyle` function to get the current Windows theme. +- Added `choclatey` support to package count. + +**BSD:** +- Fix tput commands not working on BSD + +## Info: + +As of commit 9daacdd the info array at the top of the script has changed +to a regular function. The benefits of this are pretty cool, you can now +use any bash syntax to customize what gets displayed. You could have an +if statment and only print window manager and gtk themes if X is running +or only show current song if there's one playing. + +You can see some examples and read more about it here: + +https://github.com/dylanaraps/fetch/wiki/Customizing-Info + +
+ +**All:** +- All functions return `Unknown` or `None` instead of printing nothing.
+ +**Title:** +- You can now color the `@` symbol in the title using `--at_color`,
+ `$at_color` and `--colors x x x x x x`. + +**OS:** +- We now check `lsb_release` before looking inside of files, this fixes
+ detection for some *buntu based distros. +- We now exit if the OS type wasn't detected. + +**Window Manager:** +- `wmctrl` is now used by default if found. + +**Uptime:** +- Added `--uptime_shorthand` and `$uptime_shorthand` to make the output
+ of `uptime` smaller and prettier. +- Added new `--uptime_shorthand` and `$uptime_shorthand` value
+ called `tiny`. This makes the output even tinier. eg. `1d 10h 32m` + +**GTK:** +- Added functions to get GTK Theme, Icons and Font +- Added `--gtk{2,3}` and `$gtk{2,3}` to enable/disable gtk2 or gtk3 from
+ being displayed. +- Added `--gtk_shorthand` and `$gtk_shorthand` to make the output of
+ `gtk*` smaller and prettier. + +**Packages:** +- Remove package version and color from `Pacman` output +- All distros are now wildcarded so that version numbers from
+ `lsb_release` are ignored. + +**CPU:** +- Added more cpu speed types to `--speed_type` and `$speed_type`. +- Use `cpufreq` when available instead of hardcoding it for specific distros. + +**GPU:** + +See **[issue #21](https://github.com/dylanaraps/fetch/issues/21)** +- Added function to get the current Graphics Card. +- Added support for VirtualBox GPU. +- Added `--gpu_shorthand` and `$gpu_shorthand` to make the output of `gpu`
+ smaller and prettier. + +**Disk:** + +See **[issue #27](https://github.com/dylanaraps/fetch/issues/27)** +- Added function to get current/total disk usage. + +**Song:** +- Added `cmus` support. + +## Images: +- Added support for **iTerm2's** image rendering. +- Added `--image_backend` and `$image_backend` to change which program
+ is used to render the images. +- The image is now displayed **before** the text, this fixes image
+ rendering issues with **vte** based terminal emulators. +- Added `$w3m_img_path` to set the location of `w3mimgdisplay`. +- Unified all image options, the new var `$image` takes these
+ values: `wall`, `shuffle`, `path/to/img.png`, `off`. +- Added `shuffle` to image modes. The script can now pick a random
+ image from a specified folder to display. You can pick the shuffle
+ directory with `--shuffle_dir` and `$shuffle_dir` +- Fixed images getting cut off at the top. +- Added image size to filename which allowed us to remove a _really_
+ slow check. + +**Wallpaper:** +- Added `nitrogen` and `gsettings` support. +- Added wallpaper support to `Mac OS X` and `Windows`. +- Fix hang when wallpaper isn't found. +- We now check to see that `feh` set the wallpaper. +- Fixed wallpapers with spaces in the filename. +- `wall` is now the default image source. + +## Screenshot: + +The script can now take a screenshot on script finish. You can use +the flags `--scrot` or `-s` to take a screenshot. + +`--scrot` and `-s` can also take a path/filename so you can choose +where and what to name the file at launch. + +If left empty `--scrot` and `-s` will use `$scrot_dir` and +`$scrot_name` when saving the screenshot. + +By default the script uses `scrot` as the screenshot program. +You can use the launch flag `--scrot_cmd` or the option `$srot_cmd` +to set the program to use to take the screenshot. + +## Wiki: + +Added `Customizing Info` page which has info/examples about +the new printinfo function. + +https://github.com/dylanaraps/fetch/wiki/Customizing-Info + +Added `Customization` which lists all options and their values. + +https://github.com/dylanaraps/fetch/wiki/Customization + + +## [0.2.1] - 2016-01-04 + +Here's what's new: +- Mac OS X support (It's done now) +- Resolution Detection (Off by default) +- Song info is now off by default. +- You can now display the image on the right with: + - `--image_position left/right` +- Fixed bug with multiple colons +- Fixed underlines not being drawn the full width. +- Functions now fallback to "Unknown" instead of printing nothing. +- `getos` now gets os type and `getdistro` gets the distro. + - This makes it even easier to add other os types. + +Here's what I'm working on: +- Finishing OpenBSD support +- Cygwin support + +Enjoy + + +## [0.2] - 2016-01-03 + +I finished my rewrite! + +## Here's what's new: +- The script is now way faster. +- You can now pick what gets displayed and where using an array + at the top of the script. This also allows you to: + - underline anything + - print custom info + - print a custom title + - add linebreaks +- Mac OS X support and a base that allows us to add other OS later. +- You can now specify split size. +- Fixed issue with 2 line prompts +- Fixed image not displaying in vte based terminals +- Move all config options to the top of the script +- Moved almost everything to a function. +- Removed wmctrl dependency +- Made variable names more consistent +- Added shell substitution for cpu output. This means + that the cpu output won't include: (tm) (r) "Processor" "CPU" +- Optimized all get\* functions +- Use variable substitution where possible as it's faster than sed/awk +- Moved crop and smart_crop to crop_mode +- Removed --size and --padding in favor of --split_size + +## Here's what I'm currently working on: +- Window support (I'm almost done) +- Option to swap the image and text around +- Imagemagick optimizations +- Cleanup of info array handling +- More info outputs. Now that it's easy to customize what's printed and + everything is a function we can add optional support for pretty much anything. + - Resolution + - GTK themes + - Terminal Font + - GPU + - IP + - etc + +## Issues: +- Uptime doesn't work in OS X yet. +- If the customizable info includes a third colon then it breaks. + +I'd love to hear your thoughts. + + +## 0.1 - 2015-12-31 + +Changelog: +- Added flag to disable bold text `--nobold` +- Added flag to disable text wrapping `--nowrap` +- Moved to using only printf instead of a mix of echo/printf +- The script now aligns the cursor to the bottom of the + terminal instead of using a hardcoded amount of newlines +- Image size and padding is now dynamic, the only difference on the user + side is that instead of setting a long line of spaces as + padding, you set your font width. This means that you set the + var once and the script will just work at any window size. +- You can disable dynamic images and go back to the old + behaviour with by using the `--size` or the in config var. + $img_auto +- Manual padding now takes a count, so `--padding 10` will pad + the text 10 spaces. +- tput is now a dependency because we need (tput cols/lines/cup) + for the dynamic images and it allows us to support more terminals. +- Color block width can now be changed with the flag `--blockwidth`. + It takes a count like `--padding` so `--blockwidth 10` will make + the color blocks 10 spaces wide. + +Let me know if you're having issues. + + +[Unreleased]: https://github.com/dylanaraps/neofetch/compare/5.0.0...HEAD +[5.0.0]: https://github.com/dylanaraps/neofetch/compare/4.0.2...5.0.0 +[4.0.2]: https://github.com/dylanaraps/neofetch/compare/4.0.1...4.0.2 +[4.0.1]: https://github.com/dylanaraps/neofetch/compare/4.0.0...4.0.1 +[4.0.0]: https://github.com/dylanaraps/neofetch/compare/3.4.0...4.0.0 +[3.4.0]: https://github.com/dylanaraps/neofetch/compare/3.3.0...3.4.0 +[3.3.0]: https://github.com/dylanaraps/neofetch/compare/3.2.0...3.3.0 +[3.2.0]: https://github.com/dylanaraps/neofetch/compare/3.1.0...3.2.0 +[3.1.0]: https://github.com/dylanaraps/neofetch/compare/3.0.1...3.1.0 +[3.0.1]: https://github.com/dylanaraps/neofetch/compare/3.0...3.0.1 +[3.0]: https://github.com/dylanaraps/neofetch/compare/2.0.2...3.0 +[2.0.2]: https://github.com/dylanaraps/neofetch/compare/2.0.1...2.0.2 +[2.0.1]: https://github.com/dylanaraps/neofetch/compare/2.0...2.0.1 +[2.0]: https://github.com/dylanaraps/neofetch/compare/1.9.1...2.0 +[1.9.1]: https://github.com/dylanaraps/neofetch/compare/1.9...1.9.1 +[1.9]: https://github.com/dylanaraps/neofetch/compare/1.8.1...1.9 +[1.8.1]: https://github.com/dylanaraps/neofetch/compare/1.8...1.8.1 +[1.8]: https://github.com/dylanaraps/neofetch/compare/1.7...1.8 +[1.7]: https://github.com/dylanaraps/neofetch/compare/1.6...1.7 +[1.6]: https://github.com/dylanaraps/neofetch/compare/1.5...1.6 +[1.5]: https://github.com/dylanaraps/neofetch/compare/1.4...1.5 +[1.4]: https://github.com/dylanaraps/neofetch/compare/1.3...1.4 +[1.3]: https://github.com/dylanaraps/neofetch/compare/1.2...1.3 +[1.2]: https://github.com/dylanaraps/neofetch/compare/1.1...1.2 +[1.1]: https://github.com/dylanaraps/neofetch/compare/1.0...1.1 +[1.0]: https://github.com/dylanaraps/neofetch/compare/0.2.1...1.0 +[0.2.1]: https://github.com/dylanaraps/neofetch/compare/0.2...0.2.1 +[0.2]: https://github.com/dylanaraps/neofetch/compare/0.1...0.2 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..f9c0191e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,151 @@ +# 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 851d9f6a..835c1789 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016-2017 Dylan Araps +Copyright (c) 2016-2018 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 99ec43b2..4adbd5f6 100644 --- a/Makefile +++ b/Makefile @@ -1,29 +1,16 @@ 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 - @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 + @cp -p neofetch $(DESTDIR)$(PREFIX)/bin/neofetch + @cp -p neofetch.1 $(DESTDIR)$(MANDIR)/man1 @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 16ad5e91..8532bd86 100644 --- a/README.md +++ b/README.md @@ -1,91 +1,27 @@ -# Neofetch +

logo

+

A command-line system information tool written in bash 3.2+

-[![Gitter](https://badges.gitter.im/dylanaraps/fetch.svg)](https://gitter.im/dylanaraps/fetch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -[![Build Status](https://travis-ci.org/dylanaraps/neofetch.svg?branch=master)](https://travis-ci.org/dylanaraps/neofetch) -[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.md) -[![Latest release](https://img.shields.io/github/release/dylanaraps/neofetch.svg)](https://github.com/dylanaraps/neofetch/releases) -[![Donate](https://img.shields.io/badge/donate-patreon-yellow.svg)](https://www.patreon.com/dyla) +

+ + + + +Packaging status +

-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 -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. +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 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 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. -For more information: +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. -**https://github.com/dylanaraps/neofetch/wiki** +neofetch -![neofetch screenshot](https://u.teknik.io/KlBsD.png) +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. -## 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** +### More: \[[Dependencies](https://github.com/dylanaraps/neofetch/wiki/Dependencies)\] \[[Installation](https://github.com/dylanaraps/neofetch/wiki/Installation)\] \[[Wiki](https://github.com/dylanaraps/neofetch/wiki)\] diff --git a/ascii/distro/aix b/ascii/distro/aix deleted file mode 100644 index 8526b7c6..00000000 --- a/ascii/distro/aix +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 8f9b8771..00000000 --- a/ascii/distro/alpine +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 9949011c..00000000 --- a/ascii/distro/alpine_small +++ /dev/null @@ -1,6 +0,0 @@ -${c1} /\\ /\\ - /${c2}/ ${c1}\\ \\ - /${c2}/ ${c1}\\ \\ -/${c2}// ${c1}\\ \\ -${c2}// ${c1}\\ \\ - \\ diff --git a/ascii/distro/amazon b/ascii/distro/amazon deleted file mode 100644 index 050c5b3a..00000000 --- a/ascii/distro/amazon +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 17e7ff30..00000000 --- a/ascii/distro/android +++ /dev/null @@ -1,13 +0,0 @@ -${c1} ╲ ▁▂▂▂▁ ╱ - ▄███████▄ - ▄██${c2} ${c1}███${c2} ${c1}██▄ - ▄███████████▄ -▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄ -██ █████████████ ██ -██ █████████████ ██ -██ █████████████ ██ -██ █████████████ ██ - █████████████ - ███████████ - ██ ██ - ██ ██ diff --git a/ascii/distro/antergos b/ascii/distro/antergos deleted file mode 100644 index 023af9bd..00000000 --- a/ascii/distro/antergos +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index c383774e..00000000 --- a/ascii/distro/antix +++ /dev/null @@ -1,13 +0,0 @@ -${c1} - \ - , - ~ ^ ~ - \ / - , ' \ ' , / - , \ '/ - , \ / , - ,___, \/ , - / | _ _ _|_ o /\ , -|, | / |/ | | | / \ , - \,_/\_/ | |_/|_/|_/_/ \, - , / ,\ - , / , ' \ - ' - , _ _ _ , ' diff --git a/ascii/distro/aosc b/ascii/distro/aosc deleted file mode 100644 index 785ba7d9..00000000 --- a/ascii/distro/aosc +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index eada9d6d..00000000 --- a/ascii/distro/apricity +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 3de103bb..00000000 --- a/ascii/distro/arch +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index dbd6cefa..00000000 --- a/ascii/distro/arch_old +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index 26757617..00000000 --- a/ascii/distro/arch_small +++ /dev/null @@ -1,7 +0,0 @@ -${c1} /\ - /^^\ - /\ \ - /${c2} __ \ - / ( ) \ - / __| |__\\\ -/// \\\\\ diff --git a/ascii/distro/arch_xferience b/ascii/distro/arch_xferience deleted file mode 100644 index f1757f92..00000000 --- a/ascii/distro/arch_xferience +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index a35a15c6..00000000 --- a/ascii/distro/archbox +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 8e0b840e..00000000 --- a/ascii/distro/archlabs +++ /dev/null @@ -1,18 +0,0 @@ -${c1} sy - h--d - d---: - :----/N - :------/N - N/----:---+ - N/---+/ :--:o - N/--:/ ::::s - +--- ::::s - N+---+ ::::s - N+----o +:o s::::s - N/----:: s:::s h:::::s - N/----:::y::::+ o::::::o - N/---::::::::::s d::::::::+N - /--::::::::::::dd::::::::::+N - :-:::/+syhd NNN N dhys+/:::/ - d::+ydN /s+/d -arc y\\. diff --git a/ascii/distro/artix b/ascii/distro/artix deleted file mode 100644 index 3ac30d3d..00000000 --- a/ascii/distro/artix +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 7d603e20..00000000 --- a/ascii/distro/arya +++ /dev/null @@ -1,15 +0,0 @@ -${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 deleted file mode 100644 index 8daebf5f..00000000 --- a/ascii/distro/bitrig +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 047444cc..00000000 --- a/ascii/distro/blag +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 43bbd786..00000000 --- a/ascii/distro/blankon +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 91c9a7ae..00000000 --- a/ascii/distro/bsd +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 93796823..00000000 --- a/ascii/distro/bunsenlabs +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index e56aa5dd..00000000 --- a/ascii/distro/centos +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 28227b92..00000000 --- a/ascii/distro/chakra +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 6473a5cc..00000000 --- a/ascii/distro/chaletos +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 6107817c..00000000 --- a/ascii/distro/chapeau +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 951bf190..00000000 --- a/ascii/distro/chrome +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 9996c77c..00000000 --- a/ascii/distro/cloveros +++ /dev/null @@ -1,20 +0,0 @@ -${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/crux b/ascii/distro/crux deleted file mode 100644 index b5af7baa..00000000 --- a/ascii/distro/crux +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 4b64001d..00000000 --- a/ascii/distro/crux_small +++ /dev/null @@ -1,7 +0,0 @@ -${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 deleted file mode 100644 index df88d079..00000000 --- a/ascii/distro/debian +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 64cbb56c..00000000 --- a/ascii/distro/debian_small +++ /dev/null @@ -1,6 +0,0 @@ - ${c1}_____ - / __ \\ -| / | -| \\___- --_ - --_ diff --git a/ascii/distro/deepin b/ascii/distro/deepin deleted file mode 100644 index a44f4dad..00000000 --- a/ascii/distro/deepin +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 81d8b55e..00000000 --- a/ascii/distro/desaos +++ /dev/null @@ -1,16 +0,0 @@ -${c1}███████████████████████ -███████████████████████ -███████████████████████ -███████████████████████ -████████ ███████ -████████ ███████ -████████ ███████ -████████ ███████ -████████ ███████ -████████ ███████ -████████ ███████ -██████████████████████████████ -██████████████████████████████ -████████████████████████ -████████████████████████ -████████████████████████ diff --git a/ascii/distro/devuan b/ascii/distro/devuan deleted file mode 100644 index 4173782f..00000000 --- a/ascii/distro/devuan +++ /dev/null @@ -1,15 +0,0 @@ -${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 deleted file mode 100644 index 3eb2a70b..00000000 --- a/ascii/distro/dracos +++ /dev/null @@ -1,13 +0,0 @@ -${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 deleted file mode 100644 index 3276d4f0..00000000 --- a/ascii/distro/dragonflybsd +++ /dev/null @@ -1,18 +0,0 @@ - ${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 deleted file mode 100644 index 8614c746..00000000 --- a/ascii/distro/elementary +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index fbff54b9..00000000 --- a/ascii/distro/endless +++ /dev/null @@ -1,21 +0,0 @@ -${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 deleted file mode 100644 index edacf81a..00000000 --- a/ascii/distro/exherbo +++ /dev/null @@ -1,22 +0,0 @@ -${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 deleted file mode 100644 index f0ba391b..00000000 --- a/ascii/distro/fedora +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 6ef67782..00000000 --- a/ascii/distro/freebsd +++ /dev/null @@ -1,15 +0,0 @@ - ${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 deleted file mode 100644 index 943c147e..00000000 --- a/ascii/distro/freebsd_small +++ /dev/null @@ -1,7 +0,0 @@ -${c1} /\\ _____ /\\ - \\_) (_/ - / \ -| | -| | - \ / - --_____-- diff --git a/ascii/distro/frugalware b/ascii/distro/frugalware deleted file mode 100644 index b11961ba..00000000 --- a/ascii/distro/frugalware +++ /dev/null @@ -1,23 +0,0 @@ -${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 deleted file mode 100644 index 13079091..00000000 --- a/ascii/distro/funtoo +++ /dev/null @@ -1,11 +0,0 @@ -${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 deleted file mode 100644 index ae9681d5..00000000 --- a/ascii/distro/galliumos +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 3bec6daa..00000000 --- a/ascii/distro/gentoo +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index a1e7a0ba..00000000 --- a/ascii/distro/gentoo_small +++ /dev/null @@ -1,7 +0,0 @@ -${c1} _-----_ -( \\ -\ 0 \\ -${c2} \ ) - / _/ -( _- -\____- diff --git a/ascii/distro/gnewsense b/ascii/distro/gnewsense deleted file mode 100644 index b98b859b..00000000 --- a/ascii/distro/gnewsense +++ /dev/null @@ -1,12 +0,0 @@ -${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 deleted file mode 100644 index e4b4c017..00000000 --- a/ascii/distro/gnu +++ /dev/null @@ -1,18 +0,0 @@ -${c1} _-`````-, ,- '- . - .' .- - | | - -. `. - /.' / `. \ -:/ : _... ..._ `` : -:: : /._ .`:'_.._\. || : -:: `._ ./ ,` : \ . _.'' . -`:. / | -. \-. \\_ / - \:._ _/ .' .@) \@) ` `\ ,.' - _/,--' .- .\,-.`--`. - ,'/'' (( \ ` ) - /'/' \ `-' ( - '/'' `._,-----' - ''/' .,---' - ''/' ;: - ''/'' ''/ - ''/''/'' - '/'/' - `; diff --git a/ascii/distro/gobolinux b/ascii/distro/gobolinux deleted file mode 100644 index 443cfbca..00000000 --- a/ascii/distro/gobolinux +++ /dev/null @@ -1,6 +0,0 @@ -${c1}_____ _ -/ ____| | | -| | __ ___ | |__ ___ -| | |_ |/ _ \| '_ \ / _ \ -| |__| | (_) | |_) | (_) | - \_____|\___/|_.__/ \___/ diff --git a/ascii/distro/grombyang b/ascii/distro/grombyang deleted file mode 100644 index 6dfbea9b..00000000 --- a/ascii/distro/grombyang +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 6d6345ec..00000000 --- a/ascii/distro/guixsd +++ /dev/null @@ -1,10 +0,0 @@ -${c1} .. `. - `--..```..` `..```..--` - .-:///-:::. `-:::///:-. - ````.:::` `:::.```` - -//:` -::- - ://: -::- - `///- .:::` - -+++-:::. - :+/:::- - `-....` diff --git a/ascii/distro/haiku b/ascii/distro/haiku deleted file mode 100644 index 56a7feb4..00000000 --- a/ascii/distro/haiku +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 57ce2121..00000000 --- a/ascii/distro/irix +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index d1e01da6..00000000 --- a/ascii/distro/kali +++ /dev/null @@ -1,21 +0,0 @@ -${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 deleted file mode 100644 index 830835e4..00000000 --- a/ascii/distro/kaos +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index 16809700..00000000 --- a/ascii/distro/kde +++ /dev/null @@ -1,19 +0,0 @@ -${c1} `..---+/---..` - `---.`` `` `.---.` - .--.` `` `-:-. - `:/: `.----//----.` :/- - .:. `---` `--.` .:` - .:` `--` .:- `:. - `/ `:. `.-::-.` -:` `/` - /. /. `:++++++++:` .: .: -`/ .: `+++++++++++/ /` `+` -/+` -- .++++++++++++` :. .+: -`/ .: `+++++++++++/ /` `+` - /` /. `:++++++++:` .: .: - ./ `:. `.:::-.` -:` `/` - .:` `--` .:- `:. - .:. `---` `--.` .:` - `:/: `.----//----.` :/- - .-:.` `` `-:-. - `---.`` `` `.---.` - `..---+/---..` diff --git a/ascii/distro/kogaion b/ascii/distro/kogaion deleted file mode 100644 index 47ed962e..00000000 --- a/ascii/distro/kogaion +++ /dev/null @@ -1,20 +0,0 @@ -${c1} ;; ,; - ;;; ,;; - ,;;;; ;;;; - ,;;;;;;;; ;;;; - ;;;;;;;;;;; ;;;;; - ,;;;;;;;;;;;; ';;;;;, - ;;;;;;;;;;;;;;, ';;;;;;; - ;;;;;;;;;;;;;;;;;, ';;;;; -; ';;;;;;;;;;;;;;;;;;, ;;; -;;;, ';;;;;;;;;;;;;;;;;;;,;; -;;;;;, ';;;;;;;;;;;;;;;;;;, -;;;;;;;;, ';;;;;;;;;;;;;;;;, -;;;;;;;;;;;;, ';;;;;;;;;;;;;; -';;;;;;;;;;;;; ';;;;;;;;;;;;; - ';;;;;;;;;;;;;, ';;;;;;;;;;; - ';;;;;;;;;;;;; ;;;;;;;;;; - ';;;;;;;;;;;; ;;;;;;;; - ';;;;;;;; ;;;;;; - ';;;;; ;;;; - ';;; ;; diff --git a/ascii/distro/korora b/ascii/distro/korora deleted file mode 100644 index 709289af..00000000 --- a/ascii/distro/korora +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index 53385bd8..00000000 --- a/ascii/distro/kslinux +++ /dev/null @@ -1,11 +0,0 @@ -${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 deleted file mode 100644 index 3f7126c1..00000000 --- a/ascii/distro/kubuntu +++ /dev/null @@ -1,20 +0,0 @@ -${c1} `.:/ossyyyysso/:. - .:oyyyyyyyyyyyyyyyyyyo:` - -oyyyyyyyo-``/yyyyyyysyyyyo- - -syyyyyyyyyy` +yyyy/` `/yyyys- - +yyys/./syyyy: ..-` /yyyyyy+ - `oyyyy: `:syys+oooo+:. .yyyyyyyyo` - +yyyyyy/ `/yyyyyyyyyyys/` /sssssyyy+ --yyyyyyyy- -syyyyyyyyyyyyyys- syyy- -oyyyyso+: .yyyyyyyyyyyyyyyyyy. `.+yyyo -yyys /yyyyyyyyyyyyyyyyyysosyyyyyyyy -yyys.` /yyyyyyyyyyyyyyyyyyyyyyyyyyyyy -oyyyyyso: .yyyyyyyyyyyyyyyyyy.`.-:/syyyo --yyyyyyyy. -syyyyyyyyyyyyyys- syyy- - +yyyyyy: `syyyyyyyyyyys/` /o+++oyyy+ - `oyyyy. -syyy++oooo+/. oyyyyyyyyo - +yyys/-oyyyys` `..` -yyyyyyy+ - -syyyyyyyyy: .syyy/` `syyyys- - -oyyyyyyy:.`-yyyyyys+syyyyo- - ./oyyyyyyyyyyyyyyyyyyo/. - `.:/oosyyyysso/:.` diff --git a/ascii/distro/linux b/ascii/distro/linux deleted file mode 100644 index f31dd29f..00000000 --- a/ascii/distro/linux +++ /dev/null @@ -1,12 +0,0 @@ -${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 deleted file mode 100644 index 5161881e..00000000 --- a/ascii/distro/lmde +++ /dev/null @@ -1,17 +0,0 @@ - ${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 deleted file mode 100644 index 9731cb3e..00000000 --- a/ascii/distro/lubuntu +++ /dev/null @@ -1,20 +0,0 @@ -${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/mac b/ascii/distro/mac deleted file mode 100644 index 3ca5ea31..00000000 --- a/ascii/distro/mac +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 24852ff1..00000000 --- a/ascii/distro/mac_small +++ /dev/null @@ -1,8 +0,0 @@ -${c1} .:' - _ :'_ -${c2} .'`_`-'_``. -:________.-' -${c3}:_______: -:_______: -${c4} :_______`-; -${c5} `._.-._.' diff --git a/ascii/distro/mageia b/ascii/distro/mageia deleted file mode 100644 index af01caba..00000000 --- a/ascii/distro/mageia +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 89fa7a2f..00000000 --- a/ascii/distro/manjaro +++ /dev/null @@ -1,14 +0,0 @@ -${c1}██████████████████ ████████ -██████████████████ ████████ -██████████████████ ████████ -██████████████████ ████████ -████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ -████████ ████████ ████████ diff --git a/ascii/distro/maui b/ascii/distro/maui deleted file mode 100644 index 1ab9c07d..00000000 --- a/ascii/distro/maui +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index a98f3eb1..00000000 --- a/ascii/distro/mer +++ /dev/null @@ -1,27 +0,0 @@ -${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 deleted file mode 100644 index a0ff143c..00000000 --- a/ascii/distro/minix +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index c7e59d99..00000000 --- a/ascii/distro/mint +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index 9fc44075..00000000 --- a/ascii/distro/mx +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 6048ee3a..00000000 --- a/ascii/distro/netbsd +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 4230bc09..00000000 --- a/ascii/distro/netrunner +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 2f49d638..00000000 --- a/ascii/distro/nitrux +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index d1a35bd2..00000000 --- a/ascii/distro/nixos +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 0917ff8e..00000000 --- a/ascii/distro/nixos_small +++ /dev/null @@ -1,7 +0,0 @@ - ${c1}\\\\ \\\\ // - ==\\\\__\\\\/ // - // \\\\// -==// //== - //\\\\___// -// /\\\\ \\\\== - // \\\\ \\\\ diff --git a/ascii/distro/nurunner b/ascii/distro/nurunner deleted file mode 100644 index e5529673..00000000 --- a/ascii/distro/nurunner +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 87b50f40..00000000 --- a/ascii/distro/obrevenge +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index d3812019..00000000 --- a/ascii/distro/openbsd +++ /dev/null @@ -1,23 +0,0 @@ - ${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 deleted file mode 100644 index bb6e646a..00000000 --- a/ascii/distro/openbsd_small +++ /dev/null @@ -1,7 +0,0 @@ -${c1} _____ - \\- -/ - \\_/ \\ - | ${c2}O O${c1} | - |_ < ) 3 ) - / \\ / - /-_____-\\ diff --git a/ascii/distro/openindiana b/ascii/distro/openindiana deleted file mode 100644 index c76d8f7b..00000000 --- a/ascii/distro/openindiana +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index ef3e8439..00000000 --- a/ascii/distro/openmandriva +++ /dev/null @@ -1,15 +0,0 @@ -${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 deleted file mode 100644 index 903068b0..00000000 --- a/ascii/distro/openwrt +++ /dev/null @@ -1,9 +0,0 @@ -${c1} _______ -| |.-----.-----.-----. -| - || _ | -__| | -|_______|| __|_____|__|__| - |__| - ________ __ -| | | |.----.| |_ -| | | || _|| _| -|________||__| |____| diff --git a/ascii/distro/oracle b/ascii/distro/oracle deleted file mode 100644 index cdd61c55..00000000 --- a/ascii/distro/oracle +++ /dev/null @@ -1,12 +0,0 @@ -${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 deleted file mode 100644 index f18c2e99..00000000 --- a/ascii/distro/osmc +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 000e93a0..00000000 --- a/ascii/distro/pacbsd +++ /dev/null @@ -1,24 +0,0 @@ -${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 deleted file mode 100644 index 33c38bd5..00000000 --- a/ascii/distro/parabola +++ /dev/null @@ -1,16 +0,0 @@ -${c1} `.-. `. - `.` `:++. `-+o+. - `` `:+/. `:+/. `-+oooo+ - ``-::-.:+/. `:+/. `-+oooooo+ - `.-:///- ..` .-. `-+oooooooo- - `..-..` `+ooooooooo: -`` :oooooooo/ - `ooooooo: - `oooooo: - -oooo+. - +ooo/` - -ooo- - `+o/. - /+- - //` - -. diff --git a/ascii/distro/pardus b/ascii/distro/pardus deleted file mode 100644 index ae817579..00000000 --- a/ascii/distro/pardus +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index af98994d..00000000 --- a/ascii/distro/parrot +++ /dev/null @@ -1,24 +0,0 @@ -${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 deleted file mode 100644 index 2753a461..00000000 --- a/ascii/distro/parsix +++ /dev/null @@ -1,21 +0,0 @@ - ${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 deleted file mode 100644 index 963d3929..00000000 --- a/ascii/distro/pclinuxos +++ /dev/null @@ -1,19 +0,0 @@ - ${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 deleted file mode 100644 index be0a953b..00000000 --- a/ascii/distro/peppermint +++ /dev/null @@ -1,19 +0,0 @@ -${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/porteus b/ascii/distro/porteus deleted file mode 100644 index 82cc7aa9..00000000 --- a/ascii/distro/porteus +++ /dev/null @@ -1,23 +0,0 @@ -${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 deleted file mode 100644 index 7cdc1c2d..00000000 --- a/ascii/distro/puppy +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 3867fa6f..00000000 --- a/ascii/distro/qubes +++ /dev/null @@ -1,21 +0,0 @@ -${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 deleted file mode 100644 index 472b74eb..00000000 --- a/ascii/distro/raspbian +++ /dev/null @@ -1,23 +0,0 @@ -${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 deleted file mode 100644 index 868521f4..00000000 --- a/ascii/distro/redhat +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index 6c15233f..00000000 --- a/ascii/distro/redstar +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 396474b5..00000000 --- a/ascii/distro/refracta +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index fcbad876..00000000 --- a/ascii/distro/rosa +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index bfd51eed..00000000 --- a/ascii/distro/sabayon +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index d4490fc8..00000000 --- a/ascii/distro/sabotage +++ /dev/null @@ -1,12 +0,0 @@ - -${c2} .|'''.| | '||''|. ..|''|| - ||.. ' ||| || || .|' || - ''|||. | || ||'''|. || || -. '|| .''''|. || || '|. || -|'....|' .|. .||. .||...|' ''|...|' - -|''||''| | ..|'''.| '||''''| - || ||| .|' ' || . - || | || || .... ||''| - || .''''|. '|. || || - .||. .|. .||. ''|...'| .||.....| diff --git a/ascii/distro/sailfishos b/ascii/distro/sailfishos deleted file mode 100644 index a7dd91b4..00000000 --- a/ascii/distro/sailfishos +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index f41ee747..00000000 --- a/ascii/distro/salentos +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 82e9553f..00000000 --- a/ascii/distro/scientific +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index c9720a60..00000000 --- a/ascii/distro/siduction +++ /dev/null @@ -1,21 +0,0 @@ -${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 deleted file mode 100644 index 9ffde3dc..00000000 --- a/ascii/distro/slackware +++ /dev/null @@ -1,21 +0,0 @@ -${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 deleted file mode 100644 index 5ee52706..00000000 --- a/ascii/distro/slitaz +++ /dev/null @@ -1,17 +0,0 @@ -${c1} @ @( @ - @@ @@ @ @/ - @@ @@ @@ @@ - @@ %@@ @@ @@ - @@ %@@@ @@@@@. @@@@ @@ - @@@ @@@@ @@@@@@@ &@@@ @@@ - @@@@@@@ %@@@@@@@@@@@@ &@@@% @@@@@@@/ - ,@@@@@@@@@@@@@@@@@@@@@@@@@ - .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/ -@@@@@@. @@@@@@@@@@@@@@@@@@@@@ /@@@@@@ -@@ @@@@@ @@@@@@@@@@@@, @@@@@ @@@ -@@ @@@@. @@@@@@@@@@@@@% #@@@@ @@. -@@ ,@@ @@@@@@@@@@@@@ @@@ @@ -@ @@. @@@@@@@@@@@@@ @@@ *@ -@ @@ @@@@@@@@@@@@ @@ @ - @ @@@@@@@@@. #@ - @ ,@@@@@ @ diff --git a/ascii/distro/smartos b/ascii/distro/smartos deleted file mode 100644 index 59cea693..00000000 --- a/ascii/distro/smartos +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index 95a7f1a1..00000000 --- a/ascii/distro/solaris +++ /dev/null @@ -1,8 +0,0 @@ -${c1} `- ` - `-- `+- .: - .+: `++: -/+- . - `.::` -++/``:::`./+/ `.-/. - `++/-`.` ` /++:` - `` ./:` .: `..`.- -``./+/:- -+++:- - -/+` :. diff --git a/ascii/distro/solus b/ascii/distro/solus deleted file mode 100644 index 75637543..00000000 --- a/ascii/distro/solus +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 39a440e8..00000000 --- a/ascii/distro/source_mage +++ /dev/null @@ -1,21 +0,0 @@ -${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 deleted file mode 100644 index 82acb5a0..00000000 --- a/ascii/distro/sparky +++ /dev/null @@ -1,21 +0,0 @@ -${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 deleted file mode 100644 index c17b16b6..00000000 --- a/ascii/distro/steamos +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index 6cc0433c..00000000 --- a/ascii/distro/suse +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index e3884f15..00000000 --- a/ascii/distro/swagarch +++ /dev/null @@ -1,15 +0,0 @@ -${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 deleted file mode 100644 index a0512bc6..00000000 --- a/ascii/distro/tails +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index 07634b83..00000000 --- a/ascii/distro/trisquel +++ /dev/null @@ -1,18 +0,0 @@ -${c1} ▄▄▄▄▄▄ - ▄█████████▄ - ▄▄▄▄▄▄ ████▀ ▀████ - ▄██████████▄ ████▀ ▄▄ ▀███ - ▄███▀▀ ▀▀████ ███▄ ▄█ ███ -▄███ ▄▄▄ ████▄ ▀██████ ▄███ -███ █▀▀██▄ █████▄ ▀▀ ▄████ -▀███ ███ ███████▄▄ ▄▄██████ -${c1} ▀███▄ ▄███ █████████████${c2}████▀ -${c1} ▀█████████ ███████${c2}███▀▀▀ - ▀▀███▀▀ ██████▀▀ - ██████▀ ▄▄▄▄ - █████▀ ████████ - █████ ███▀ ▀███ - ████▄ ██▄▄▄ ███ - █████▄ ▀▀ ▄██ - ██████▄▄▄████ - ▀▀█████▀▀ diff --git a/ascii/distro/trueos b/ascii/distro/trueos deleted file mode 100644 index 84bc618a..00000000 --- a/ascii/distro/trueos +++ /dev/null @@ -1,27 +0,0 @@ -${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 deleted file mode 100644 index db5df090..00000000 --- a/ascii/distro/ubuntu +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 1faec715..00000000 --- a/ascii/distro/ubuntu-budgie +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 096dca3d..00000000 --- a/ascii/distro/ubuntu-gnome +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index 893389fe..00000000 --- a/ascii/distro/ubuntu-mate +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 2deb270e..00000000 --- a/ascii/distro/ubuntu-studio +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index 4e3664b6..00000000 --- a/ascii/distro/ubuntu_old +++ /dev/null @@ -1,19 +0,0 @@ - -${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 deleted file mode 100644 index 2a089e63..00000000 --- a/ascii/distro/void +++ /dev/null @@ -1,18 +0,0 @@ -${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 deleted file mode 100644 index adfae49b..00000000 --- a/ascii/distro/void_small +++ /dev/null @@ -1,7 +0,0 @@ -${c1} _______ - _ \______ - -| \ ___ \ | -| | / \ | | -| | \___/ | | -| \______ \_| - -_______\ diff --git a/ascii/distro/windows b/ascii/distro/windows deleted file mode 100644 index 31564309..00000000 --- a/ascii/distro/windows +++ /dev/null @@ -1,16 +0,0 @@ -${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 deleted file mode 100644 index 62596129..00000000 --- a/ascii/distro/windows10 +++ /dev/null @@ -1,19 +0,0 @@ -${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 deleted file mode 100644 index b872562b..00000000 --- a/ascii/distro/xubuntu +++ /dev/null @@ -1,20 +0,0 @@ -${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 deleted file mode 100644 index bb051669..00000000 --- a/ascii/distro/zorin +++ /dev/null @@ -1,17 +0,0 @@ -${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 deleted file mode 100644 index e43f89f5..00000000 --- a/config/config.conf +++ /dev/null @@ -1,732 +0,0 @@ -# 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 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 deleted file mode 100644 index 0dada093..00000000 --- a/config/travis.conf +++ /dev/null @@ -1,55 +0,0 @@ -# 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 20ae3720..79653f1d 100755 --- a/neofetch +++ b/neofetch @@ -1,33 +1,813 @@ #!/usr/bin/env bash -# set -x # vim: noai:ts=4:sw=4:expandtab +# shellcheck source=/dev/null +# shellcheck disable=2009 # -# Neofetch: Simple system information script. +# Neofetch: A command-line system information tool written in bash 3.2+. # https://github.com/dylanaraps/neofetch # -# Created by Dylan Araps -# https://github.com/dylanaraps/ +# The MIT License (MIT) +# +# Copyright (c) 2016-2018 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. -# Neofetch version. -version="3.3.1-git" +version="6.0.1" 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. -export LC_ALL=C -export LANG=C - -# Add more paths to $PATH. -export PATH="/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec:${PATH}" - -# Set no case match. +PATH="${PATH}:/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec" +reset='\e[0m' shopt -s nocasematch -# Reset colors and bold. -reset="\033[0m" +# Speed up script by not using unicode. +LC_ALL=C +LANG=C + +# Fix issues with gsettings. +export GIO_EXTRA_MODULES="/usr/lib/x86_64-linux-gnu/gio/modules/" + +# 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 + + 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 + # [[ "$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 +} + + +# 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 pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + + +# 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 + + +# 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 + + +# 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 +# guayadeque +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# netease-cloud-music +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# tomahawk +# vlc +# xmms2d +# 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', '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', 'chafa', 'jp2a', 'iterm2', 'off', +# 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# 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: 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" + +# 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 # DETECT INFORMATION @@ -35,21 +815,33 @@ get_os() { # $kernel_name is set in a function called cache_uname and is # just the output of "uname -s". 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" ;; + "Darwin"): "$darwin_name" ;; + "SunOS"): "Solaris" ;; + "Haiku"): "Haiku" ;; + "MINIX"): "MINIX" ;; + "AIX"): "AIX" ;; + "IRIX"*): "IRIX" ;; + "FreeMiNT"): "FreeMiNT" ;; + + "Linux" | "GNU"*) + : "Linux" + ;; + + *"BSD" | "DragonFly" | "Bitrig") + : "BSD" + ;; + + "CYGWIN"* | "MSYS"* | "MINGW"*) + : "Windows" + ;; + *) - 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 + os="$_" } get_distro() { @@ -57,21 +849,11 @@ get_distro() { case "$os" in "Linux" | "BSD" | "MINIX") - if [[ "$(< /proc/version)" == *"Microsoft"* || - "$kernel_version" == *"Microsoft"* ]]; then + if [[ -f "/bedrock/etc/bedrock-release" && "$PATH" == */bedrock/cross/* ]]; then case "$distro_shorthand" in - "on") distro="$(lsb_release -sir) [Windows 10]" ;; - "tiny") distro="Windows 10" ;; - *) distro="$(lsb_release -sd) on Windows 10" ;; + "on" | "tiny") distro="Bedrock Linux" ;; + *) distro="$(< /bedrock/etc/bedrock-release)" esac - - 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" ;; @@ -90,7 +872,7 @@ get_distro() { "tiny") lsb_flags="-si" ;; *) lsb_flags="-sd" ;; esac - distro="$(lsb_release $lsb_flags)" + distro="$(lsb_release "$lsb_flags")" elif [[ -f "/etc/GoboLinuxVersion" ]]; then case "$distro_shorthand" in @@ -114,14 +896,23 @@ get_distro() { elif type -p tazpkg >/dev/null; then distro="SliTaz $(< /etc/slitaz-release)" - elif type -p kpm > /dev/null; then + elif type -p kpt >/dev/null && \ + type -p kpm >/dev/null; then distro="KSLinux" elif [[ -d "/system/app/" && -d "/system/priv-app" ]]; then distro="Android $(getprop ro.build.version.release)" - elif [[ -f "/etc/os-release" || -f "/usr/lib/os-release" ]]; then - files=("/etc/os-release" "/usr/lib/os-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="$(awk -F '=' '/NAME|VERSION/ {printf $2 " "}' /etc/lsb-release)" + + elif [[ -f "/etc/os-release" || \ + -f "/usr/lib/os-release" || \ + -f "/etc/openwrt_release" ]]; then + files=("/etc/os-release" "/usr/lib/os-release" "/etc/openwrt_release") # Source the os-release file for file in "${files[@]}"; do @@ -130,15 +921,10 @@ get_distro() { # Format the distro name. case "$distro_shorthand" in - "on") distro="${NAME:-${DISTRIB_ID}} ${VERSION_ID:-${DISTRIB_RELEASE}}" ;; + "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}" ;; + "off") distro="${PRETTY_NAME:-${DISTRIB_DESCRIPTION}} ${UBUNTU_CODENAME}" ;; esac - - # 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")" @@ -152,21 +938,34 @@ get_distro() { distro="${distro/DragonFly/DragonFlyBSD}" # Workarounds for FreeBSD based distros. - [[ -f "/etc/pcbsd-lang" ]] && distro="PCBSD" - [[ -f "/etc/rc.conf.trueos" ]] && distro="TrueOS" + [[ -f "/etc/pcbsd-lang" ]] && distro="PCBSD" + [[ -f "/etc/trueos-lang" ]] && distro="TrueOS" # /etc/pacbsd-release is an empty file [[ -f "/etc/pacbsd-release" ]] && distro="PacBSD" fi fi + + if [[ "$(< /proc/version)" == *Microsoft* || "$kernel_version" == *Microsoft* ]]; then + case "$distro_shorthand" in + "on") distro+=" [Windows 10]" ;; + "tiny") distro="Windows 10" ;; + *) distro+=" on Windows 10" ;; + esac + + elif [[ "$(< /proc/version)" == *chrome-bot* || -f "/dev/cros_ec" ]]; then + case "$distro_shorthand" in + "on") distro+=" [Chrome OS]" ;; + "tiny") distro="Chrome OS" ;; + *) distro+=" on Chrome OS" ;; + esac + fi + distro="$(trim_quotes "$distro")" - distro="${distro/'NAME='}" + distro="${distro/NAME=}" ;; "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" ;; @@ -177,6 +976,8 @@ get_distro() { "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" ;; *) codename="macOS" ;; esac distro="$codename $osx_version $osx_build" @@ -185,9 +986,9 @@ get_distro() { "on") distro="${distro/ ${osx_build}}" ;; "tiny") case "$osx_version" in - "10."[4-7]*) distro="${distro/${codename}/Mac OS X}" ;; + "10."[4-7]*) distro="${distro/${codename}/Mac OS X}" ;; "10."[8-9]* | "10.1"[0-1]*) distro="${distro/${codename}/OS X}" ;; - "10.12"*) distro="${distro/${codename}/macOS}" ;; + "10.1"[2-4]*) distro="${distro/${codename}/macOS}" ;; esac distro="${distro/ ${osx_build}}" ;; @@ -195,7 +996,7 @@ get_distro() { ;; "iPhone OS") - distro="iOS $(sw_vers -productVersion)" + distro="iOS $osx_version" # "uname -m" doesn't print architecture on iOS so we force it off. os_arch="off" @@ -203,22 +1004,21 @@ get_distro() { "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)" ;; + "on" | "tiny") distro="$(awk 'NR==1 {print $1,$3}' /etc/release)" ;; + *) distro="$(awk 'NR==1 {print $1,$2,$3}' /etc/release)" ;; esac distro="${distro/\(*}" ;; "Haiku") - distro="$(uname -sv | awk '{print $1 " " $2}')" + read -r name version _ < <(uname -sv) + distro="$name $version" ;; "AIX") @@ -228,6 +1028,10 @@ get_distro() { "IRIX") distro="IRIX ${kernel_version}" ;; + + "FreeMiNT") + distro="FreeMiNT" + ;; esac distro="${distro//Enterprise Server}" @@ -236,13 +1040,13 @@ get_distro() { # Get OS architecture. case "$os" in - "Solaris" | "AIX" | "Haiku" | "IRIX") machine_arch="$(uname -p)" ;; - *) machine_arch="$(uname -m)" ;; - + "Solaris" | "AIX" | "Haiku" | "IRIX" | "FreeMiNT") + machine_arch="$(uname -p)" ;; + *) 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")" @@ -254,21 +1058,21 @@ get_model() { 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/product_name || - -f /sys/devices/virtual/dmi/id/product_version ]]; then + 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_version)" - elif [[ -f /sys/firmware/devicetree/base/model ]]; then + elif [[ -f "/sys/firmware/devicetree/base/model" ]]; then model="$(< /sys/firmware/devicetree/base/model)" - elif [[ -f /tmp/sysinfo/model ]]; then + elif [[ -f "/tmp/sysinfo/model" ]]; then model="$(< /tmp/sysinfo/model)" fi ;; "Mac OS X") - if [[ "$(kextstat | grep "FakeSMC")" != "" ]]; then + if [[ "$(kextstat | grep -F -e "FakeSMC" -e "VirtualSMC")" != "" ]]; then model="Hackintosh (SMBIOS: $(sysctl -n hw.model))" else model="$(sysctl -n hw.model)" @@ -276,43 +1080,54 @@ get_model() { ;; "iPhone OS") - case "$machine_arch" in - "iPad1,1") model="iPad" ;; - "iPad2,"[1-4]) model="iPad2" ;; - "iPad3,"[1-3]) model="iPad3" ;; - "iPad3,"[4-6]) model="iPad4" ;; - "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)" ;; - "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" ;; + case "$kernel_machine" in + "iPad1,1"): "iPad" ;; + "iPad2,"[1-4]): "iPad 2" ;; + "iPad3,"[1-3]): "iPad 3" ;; + "iPad3,"[4-6]): "iPad 4" ;; + "iPad4,"[1-3]): "iPad Air" ;; + "iPad5,"[3-4]): "iPad Air 2" ;; + "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)" ;; + "iPad2,"[5-7]): "iPad mini" ;; + "iPad4,"[4-6]): "iPad mini 2" ;; + "iPad4,"[7-9]): "iPad mini 3" ;; + "iPad5,"[1-2]): "iPad mini 4" ;; - "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" ;; + "iPad6,11" | "iPad 6,12") + : "iPad 5" + ;; - "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" ;; + "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,1" | "iPhone9,3"): "iPhone 7" ;; + "iPhone9,2" | "iPhone9,4"): "iPhone 7 Plus" ;; + "iPhone10,1" | "iPhone10,4"): "iPhone 8" ;; + "iPhone10,2" | "iPhone10,5"): "iPhone 8 Plus" ;; + "iPhone10,3" | "iPhone10,6"): "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" ;; esac + model="$_" ;; "BSD" | "MINIX") @@ -332,6 +1147,10 @@ get_model() { "AIX") model="$(/usr/bin/uname -M)" ;; + + "FreeMiNT") + model="$(sysctl -n hw.model)" + ;; esac # Remove dummy OEM info. @@ -346,9 +1165,11 @@ get_model() { model="${model//Not Specified}" model="${model//Type1ProductConfigId}" model="${model//INVALID}" + model="${model//�}" case "$model" in "Standard PC"*) model="KVM/QEMU (${model})" ;; + "OpenBSD"*) model="vmm ($model)" ;; esac } @@ -372,7 +1193,7 @@ get_kernel() { if [[ "$os" =~ (BSD|MINIX) && "$distro" == *"$kernel_name"* ]]; then case "$distro_shorthand" in "on" | "tiny") kernel="$kernel_version" ;; - *) unset kernel ;; + *) unset kernel ;; esac fi } @@ -394,9 +1215,9 @@ get_uptime() { seconds="${seconds/.*}" ;; - "Mac OS X" | "iPhone OS" | "BSD") + "Mac OS X" | "iPhone OS" | "BSD" | "FreeMiNT") boot="$(sysctl -n kern.boottime)" - boot="${boot/'{ sec = '}" + boot="${boot/\{ sec = }" boot="${boot/,*}" # Get current date in seconds. @@ -423,18 +1244,15 @@ get_uptime() { hours="$((seconds / 60 / 60 % 24)) hours" mins="$((seconds / 60 % 60)) minutes" - # Format the days, hours and minutes. - strip_date() { - case "$1" in - "0 "*) unset "${1/* }" ;; - "1 "*) printf "%s" "${1/s}" ;; - *) printf "%s" "$1" ;; - esac - } + # Remove plural if < 2. + ((${days/ *} == 1)) && days="${days/s}" + ((${hours/ *} == 1)) && hours="${hours/s}" + ((${mins/ *} == 1)) && mins="${mins/s}" - days="$(strip_date "$days")" - hours="$(strip_date "$hours")" - mins="$(strip_date "$mins")" + # Hide empty fields. + ((${days/ *} == 0)) && unset days + ((${hours/ *} == 0)) && unset hours + ((${mins/ *} == 0)) && unset mins uptime="${days:+$days, }${hours:+$hours, }${mins}" uptime="${uptime%', '}" @@ -464,136 +1282,134 @@ get_uptime() { } get_packages() { - # 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="$_"; } + dir() { ((packages+=$#)); pac "$#"; } + pac() { (($1 > 0)) && { managers+=("$1 (${manager})"); manager_string+="${manager}, "; }; } + tot() { IFS=$'\n' read -d "" -ra pkgs < <("$@");((packages+="${#pkgs[@]}"));pac "${#pkgs[@]}"; } + + # Redefine tot() for Bedrock Linux. + [[ -f "/bedrock/etc/bedrock-release" && "$PATH" == */bedrock/cross/* ]] && { + tot() { + IFS=$'\n' read -d "" -ra pkgs < <(for s in $(brl list); do strat -r "$s" "$@"; done) + ((packages+="${#pkgs[@]}")) + pac "${#pkgs[@]}" + } + br_prefix="/bedrock/strata/*" + } case "$os" in "Linux" | "BSD" | "iPhone OS" | "Solaris") - type -p pacman >/dev/null && \ - packages="$(pacman -Qq --color never | wc -l)" + # Package Manager Programs. + has "pacman-key" && tot pacman -Qq --color never + has "dpkg" && tot dpkg-query -f '.\n' -W + has "rpm" && tot rpm -qa + 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 "tazpkg" && tot tazpkg list && ((packages-=6)) + has "sorcery" && tot gaze installed + has "alps" && tot alps showinstalled + has "butch" && tot butch list - type -p dpkg >/dev/null && \ - packages="$((packages+=$(dpkg --get-selections | grep -cv deinstall$)))" + # 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 + { + has "emerge" && dir ${br_prefix}/var/db/pkg/*/*/ + has "nix-env" && dir ${br_prefix}/nix/store/*/ + has "guix" && dir ${br_prefix}/gnu/store/*/ + has "Compile" && dir ${br_prefix}/Programs/*/ + has "eopkg" && dir ${br_prefix}/var/lib/eopkg/package/* + has "crew" && dir ${br_prefix}/usr/local/etc/crew/meta/*.filelist + has "pkgtool" && dir ${br_prefix}/var/log/packages/* + has "cave" && dir ${br_prefix}/var/db/paludis/repositories/cross-installed/*/data/*/ \ + ${br_prefix}/var/db/paludis/repositories/installed/data/*/ + } - type -p kpm >/dev/null && \ - packages="$((packages+=$(kpm --get-selections | grep -cv deinstall$)))" + # Other (Needs complex command) + has "kpm-pkg" && ((packages+="$(kpm --get-selections | grep -cv deinstall$)")) - type -p pkgtool >/dev/null && \ - packages="$((packages+=$(ls -1 /var/log/packages | 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 - type -p rpm >/dev/null && \ - packages="$((packages+=$(rpm -qa | wc -l)))" + case "$kernel_name" in + "FreeBSD") has "pkg" && tot pkg info ;; + *) + has "pkg" && dir /var/db/pkg/* - type -p xbps-query >/dev/null && \ - packages="$((packages+=$(xbps-query -l | wc -l)))" + ((packages == 0)) && \ + has "pkg" && tot pkg list + ;; + esac - type -p pkginfo >/dev/null && \ - packages="$((packages+=$(pkginfo -i | wc -l)))" + # 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 - 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 - - 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 + # 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 && tot snap list && ((packages-=1)) ;; "Mac OS X" | "MINIX") - [[ -d "/usr/local/bin" ]] && \ - packages="$(($(ls -l /usr/local/bin/ | grep -cv "\(../Cellar/\|brew\)") - 1))" + has "port" && tot port installed && ((packages-=1)) + has "brew" && dir /usr/local/Cellar/* + has "pkgin" && tot pkgin list + has "nix-env" && dir /nix/store/*/ + ;; - type -p port >/dev/null && \ - packages="$((packages + $(port installed | wc -l) - 1))" - - type -p brew >/dev/null && \ - packages="$((packages + $(find /usr/local/Cellar -maxdepth 1 | wc -l) - 1))" - - type -p pkgin >/dev/null && \ - packages="$((packages + $(pkgin list | wc -l)))" + "AIX"| "FreeMiNT") + has "lslpp" && ((packages+="$(lslpp -J -l -q | grep -cv '^#')")) + has "rpm" && tot rpm -qa ;; "Windows") case "$kernel_name" in - "CYGWIN"*) packages="$(cygcheck -cd | wc -l)" ;; - "MSYS"*) packages="$(pacman -Qq --color never | wc -l)" + "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" && dir ~/scoop/apps/* && ((packages-=1)) + # Count chocolatey packages. [[ -d "/cygdrive/c/ProgramData/chocolatey/lib" ]] && \ - packages="$((packages+=$(ls -1 /cygdrive/c/ProgramData/chocolatey/lib | wc -l)))" + dir /cygdrive/c/ProgramData/chocolatey/lib/* ;; "Haiku") - packages="$(ls -1 /boot/system/package-links | wc -l)" - ;; - - "AIX") - packages="$(lslpp -J -l -q | grep -cv '^#')" - packages="$((packages+=$(rpm -qa | wc -l)))" + has "pkgman" && dir /boot/system/package-links/* ;; "IRIX") - packages="$(($(versions -b | wc -l)-3))" + tot versions -b && ((packages-=3)) ;; esac - ((packages == 0)) && unset packages + 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="${packages/nix-env/nix}" } get_shell() { @@ -608,11 +1424,15 @@ get_shell() { "sh" | "ash" | "dash") ;; "mksh" | "ksh") - shell+="$("$SHELL" -c 'printf "%s" "$KSH_VERSION"')" + shell+="$("$SHELL" -c "printf %s \"\$KSH_VERSION\"")" shell="${shell/ * KSH}" shell="${shell/version}" ;; + "tcsh") + shell+="$("$SHELL" -c "printf %s \$tcsh")" + ;; + *) shell+="$("$SHELL" --version 2>&1)" shell="${shell/ "${shell_name}"}" @@ -640,12 +1460,25 @@ get_de() { 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" ;; + esac + ;; + *) ((wm_run != 1)) && get_wm if [[ "$XDG_CURRENT_DESKTOP" ]]; then - de="${XDG_CURRENT_DESKTOP/'X-'}" + de="${XDG_CURRENT_DESKTOP/X\-}" de="${de/Budgie:GNOME/Budgie}" + de="${de/:Unity7:ubuntu}" elif [[ "$DESKTOP_SESSION" ]]; then de="${DESKTOP_SESSION##*/}" @@ -655,29 +1488,39 @@ get_de() { elif [[ "$MATE_DESKTOP_SESSION_ID" ]]; then de="MATE" + + elif [[ "$TDE_FULL_SESSION" ]]; then + de="Trinity" 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 dicards the DE value. - [[ "$wm" && "$de" =~ ^$wm$ ]] && { unset -v de; return; } + [[ "$de" == "$wm" ]] && { unset -v de; return; } ;; esac # Fallback to using xprop. - [[ -n "$DISPLAY" && -z "$de" ]] && \ + [[ "$DISPLAY" && -z "$de" ]] && type -p xprop &>/dev/null && \ de="$(xprop -root | awk '/KDE_SESSION_VERSION|^_MUFFIN|xfce4|xfce5/')" # Format strings. 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" ;; + + *"MUFFIN"* | "Cinnamon") + de="$(cinnamon --version)"; de="${de:-Cinnamon}" + ;; + + *"GNOME"*) + de="$(gnome-shell --version)" + de="${de/Shell }" + ;; esac # Log that the function was run. @@ -688,44 +1531,99 @@ get_wm() { # If function was run, stop here. ((wm_run == 1)) && return - 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/\"*}" + case "$uname" in + *"OpenBSD"*) ps_flags=(x -c) ;; + *) ps_flags=(-e) ;; + esac - # Window Maker does not set _NET_WM_NAME + if [[ "$WAYLAND_DISPLAY" ]]; then + wm="$(ps "${ps_flags[@]}" | grep -m 1 -o -F \ + -e "arcan" \ + -e "asc" \ + -e "clayland" \ + -e "dwc" \ + -e "fireplace" \ + -e "greenfield" \ + -e "grefsen" \ + -e "lipstick" \ + -e "maynard" \ + -e "mazecompositor" \ + -e "motorcar" \ + -e "orbital" \ + -e "orbment" \ + -e "perceptia" \ + -e "rustland" \ + -e "sway" \ + -e "ulubis" \ + -e "velox" \ + -e "wavy" \ + -e "way-cooler" \ + -e "wayfire" \ + -e "wayhouse" \ + -e "westeros" \ + -e "westford" \ + -e "weston")" + + elif [[ "$DISPLAY" && "$os" != "Mac OS X" && "$os" != "FreeMiNT" ]]; then + if type -p xprop &>/dev/null; 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/*WM_NAME = }" + wm="${wm/\"}" + wm="${wm/\"*}" + fi + + # Rename window managers to their proper values. [[ "$wm" =~ "WINDOWMAKER" ]] && wm="wmaker" + [[ "$wm" =~ "GNOME Shell" ]] && wm="Mutter" - # Fallback for Wayland wms. - [[ "$wm" == "xwlc" ]] && \ - wm="$(ps -e | grep -m 1 -o -F -e "sway" -e "orbment" -e "velox" -e "orbital")" + # Fallback for non-EWMH WMs. + [[ -z "$wm" ]] && \ + wm="$(ps "${ps_flags[@]}" | grep -m 1 -o -F \ + -e "catwm" \ + -e "fvwm" \ + -e "dwm" \ + -e "2bwm" \ + -e "monsterwm" \ + -e "tinywm")" else case "$os" in "Mac OS X") - ps_line="$(ps -e | grep -o '[S]pectacle\|[A]methyst\|[k]wm\|[c]hunkwm')" + ps_line="$(ps -e | grep -o '[S]pectacle\|[A]methyst\|[k]wm\|[c]hun[k]wm')" case "$ps_line" in - *"kwm"*) wm="Kwm" ;; - *"chunkwm"*) wm="chunkwm" ;; - *"Amethyst"*) wm="Amethyst" ;; + *"chunkwm"*) wm="chunkwm" ;; + *"kwm"*) wm="Kwm" ;; + *"Amethyst"*) wm="Amethyst" ;; *"Spectacle"*) wm="Spectacle" ;; - *) wm="Quartz Compositor" ;; + *) wm="Quartz Compositor" ;; esac ;; "Windows") - wm="$(tasklist | grep -m 1 -o -F -e "bugn" \ - -e "Windawesome" \ - -e "blackbox" \ - -e "emerge" \ - -e "litestep")" + 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" ;; + + "FreeMiNT") + freemint_wm=(/proc/*) + case "${freemint_wm[*]}" in + *xaaes*) wm="XaAES" ;; + *myaes*) wm="MyAES" ;; + *naes*) wm="N.AES" ;; + geneva) wm="Geneva" ;; + *) wm="Atari AES" ;; + esac + ;; esac fi @@ -743,8 +1641,8 @@ get_wm_theme() { ;; "Sawfish") - wm_theme="$(awk -F ")" '/\(quote default-frame-style/ {print $2}' \ - "${HOME}/.sawfish/custom")" + wm_theme="$(awk -F '\\(quote|\\)' '/default-frame-style/ {print $(NF-4)}' \ + "${HOME}/.sawfish/custom")" ;; "Cinnamon" | "Muffin" | "Mutter (Muffin)") @@ -824,32 +1722,45 @@ get_wm_theme() { kdebugrc="${kde_config_dir}/kdebugrc" if [[ -f "$kwinrc" ]]; then - wm_theme="$(awk '/theme=/{gsub(/theme=.*qml_|theme=.*svg__/,"",$0);\ - print $0; exit}' "$kwinrc")" + wm_theme="$(awk '/theme=/ { + gsub(/theme=.*qml_|theme=.*svg__/,"",$0); + print $0; + exit + }' "$kwinrc")" [[ -z "$wm_theme" ]] && \ - wm_theme="$(awk '/library=org.kde/{gsub(/library=org.kde./,"",$0);\ - print $0; exit}' "$kwinrc")" + wm_theme="$(awk '/library=org.kde/ { + gsub(/library=org.kde./,"",$0); + print $0; + exit + }' "$kwinrc")" + [[ -z "$wm_theme" ]] && \ - wm_theme="$(awk '/PluginLib=kwin3_/{gsub(/PluginLib=kwin3_/,"",$0);\ - print $0; exit}' "$kwinrc")" + wm_theme="$(awk '/PluginLib=kwin3_/ { + gsub(/PluginLib=kwin3_/,"",$0); + print $0; + exit + }' "$kwinrc")" elif [[ -f "$kdebugrc" ]]; then wm_theme="$(awk '/(decoration)/ {gsub(/\[/,"",$1); print $1; exit}' "$kdebugrc")" fi - wm_theme="${wm_theme/'theme='}" + wm_theme="${wm_theme/theme=}" ;; "Quartz Compositor") - wm_theme="$(PlistBuddy -c "Print AppleAquaColorVariant" \ - "${HOME}/Library/Preferences/.GlobalPreferences.plist")" + global_preferences="${HOME}/Library/Preferences/.GlobalPreferences.plist" + wm_theme="$(PlistBuddy -c "Print AppleInterfaceStyle" "$global_preferences")" + wm_theme_color="$(PlistBuddy -c "Print AppleAquaColorVariant" "$global_preferences")" - if [[ -z "$wm_theme" ]] || ((wm_theme == 1)); then - wm_theme="Blue" - else - wm_theme="Graphite" - fi + [[ -z "$wm_theme" ]] && \ + wm_theme="Light" + + [[ -z "$wm_theme_color" ]] || ((wm_theme_color == 1)) && \ + wm_theme_color="Blue" + + wm_theme="${wm_theme_color:-Graphite} ($wm_theme)" ;; *"Explorer") @@ -865,29 +1776,23 @@ get_wm_theme() { path="$(wmic process get ExecutablePath | grep -F "blackbox")" path="${path//\\/\/}" - wm_theme="$(grep "^session\.styleFile:" "${path/\.exe/.rc}")" - wm_theme="${wm_theme/'session.styleFile: '}" + wm_theme="$(grep '^session\.styleFile:' "${path/\.exe/.rc}")" + wm_theme="${wm_theme/session\.styleFile: }" wm_theme="${wm_theme##*\\}" wm_theme="${wm_theme%.*}" ;; esac wm_theme="$(trim_quotes "$wm_theme")" - wm_theme="$(uppercase "$wm_theme")" } get_cpu() { - # NetBSD emulates the Linux /proc filesystem instead of using sysctl for hw - # information so we have to use this block below which temporarily sets the - # OS to "Linux" for the duration of this function. - [[ "$distro" == "NetBSD"* ]] && local os="Linux" - case "$os" in "Linux" | "MINIX" | "Windows") # Get CPU name. cpu_file="/proc/cpuinfo" - case "$machine_arch" in + case "$kernel_machine" in "frv" | "hppa" | "m68k" | "openrisc" | "or"* | "powerpc" | "ppc"* | "sparc"*) cpu="$(awk -F':' '/^cpu\t|^CPU/ {printf $2; exit}' "$cpu_file")" ;; @@ -902,16 +1807,19 @@ get_cpu() { ;; *) - cpu="$(awk -F ': | @' '/model name|Processor|^cpu model|chip type|^cpu type/\ - {printf $2; exit}' "$cpu_file")" - - [[ "$cpu" == *"processor rev"* ]] && \ - cpu="$(awk -F':' '/Hardware/ {print $2; exit}' "$cpu_file")" + cpu="$(awk -F ': | @' \ + '/model name|Hardware|Processor|^cpu model|chip type|^cpu type/ { + printf $2; exit}' "$cpu_file")" ;; esac speed_dir="/sys/devices/system/cpu/cpu0/cpufreq" - temp_dir="/sys/class/hwmon/hwmon0/temp1_input" + + # Select the right temperature file. + for temp_dir in /sys/class/hwmon/*; do + [[ "$(< "${temp_dir}/name")" =~ (coretemp|fam15h_power|k10temp) ]] && \ + { temp_dir="${temp_dir}/temp1_input"; break; } + done # Get CPU speed. if [[ -d "$speed_dir" ]]; then @@ -928,15 +1836,12 @@ get_cpu() { fi # Get CPU temp. - if [[ -f "$temp_dir" ]]; then - temp="$(< "$temp_dir")" - temp="$((temp * 100 / 10000))" - fi + [[ -f "$temp_dir" ]] && deg="$(($(< "$temp_dir") * 100 / 10000))" # Get CPU cores. case "$cpu_cores" in "logical" | "on") cores="$(grep -c "^processor" "$cpu_file")" ;; - "physical") cores="$(grep "^core id" "$cpu_file" | sort -u | wc -l)" ;; + "physical") cores="$(awk '/^core id/&&!a[$0]++{++i} END {print i}' "$cpu_file")" ;; esac ;; @@ -946,35 +1851,36 @@ get_cpu() { # Get CPU cores. case "$cpu_cores" in "logical" | "on") cores="$(sysctl -n hw.logicalcpu_max)" ;; - "physical") cores="$(sysctl -n hw.physicalcpu_max)" ;; + "physical") cores="$(sysctl -n hw.physicalcpu_max)" ;; esac ;; "iPhone OS") - case "$machine_arch" in - "iPhone1,"[1-2] | "iPod1,1") cpu="Samsung S5L8900 (1) @ 412MHz" ;; - "iPhone2,1") cpu="Samsung S5PC100 (1) @ 600MHz" ;; - "iPhone3,"[1-3] | "iPod4,1") cpu="Apple A4 (1) @ 800MHz" ;; - "iPhone4,1" | "iPod5,1") cpu="Apple A5 (2) @ 800MHz" ;; - "iPhone5,"[1-4]) cpu="Apple A6 (2) @ 1.3GHz" ;; - "iPhone6,"[1-2]) cpu="Apple A7 (2) @ 1.3GHz" ;; - "iPhone7,"[1-2]) cpu="Apple A8 (2) @ 1.4GHz" ;; - "iPhone8,"[1-4]) cpu="Apple A9 (2) @ 1.85GHz" ;; - "iPhone9,"[1-4]) cpu="Apple A10 Fusion (4) @ 2.34GHz" ;; - "iPod2,1") cpu="Samsung S5L8720 (1) @ 533MHz" ;; - "iPod3,1") cpu="Samsung S5L8922 (1) @ 600MHz" ;; - "iPod7,1") cpu="Apple A8 (2) @ 1.1GHz" ;; - "iPad1,1") cpu="Apple A4 (1) @ 1GHz" ;; - "iPad2,"[1-7]) cpu="Apple A5 (2) @ 1GHz" ;; - "iPad3,"[1-3]) cpu="Apple A5X (2) @ 1GHz" ;; - "iPad3,"[4-6]) cpu="Apple A6X (2) @ 1.4GHz" ;; - "iPad4,"[1-3]) cpu="Apple A7 (2) @ 1.4GHz" ;; - "iPad4,"[4-9]) cpu="Apple A7 (2) @ 1.4GHz" ;; - "iPad5,"[1-2]) cpu="Apple A8 (2) @ 1.5GHz" ;; - "iPad5,"[3-4]) cpu="Apple A8X (3) @ 1.5GHz" ;; - "iPad6,"[3-4]) cpu="Apple A9X (2) @ 2.16GHz" ;; - "iPad6,"[7-8]) cpu="Apple A9X (2) @ 2.26GHz" ;; + case "$kernel_machine" in + "iPhone1,"[1-2] | "iPod1,1"): "Samsung S5L8900 (1) @ 412MHz" ;; + "iPhone2,1"): "Samsung S5PC100 (1) @ 600MHz" ;; + "iPhone3,"[1-3] | "iPod4,1"): "Apple A4 (1) @ 800MHz" ;; + "iPhone4,1" | "iPod5,1"): "Apple A5 (2) @ 800MHz" ;; + "iPhone5,"[1-4]): "Apple A6 (2) @ 1.3GHz" ;; + "iPhone6,"[1-2]): "Apple A7 (2) @ 1.3GHz" ;; + "iPhone7,"[1-2]): "Apple A8 (2) @ 1.4GHz" ;; + "iPhone8,"[1-4]): "Apple A9 (2) @ 1.85GHz" ;; + "iPhone9,"[1-4]): "Apple A10 Fusion (4) @ 2.34GHz" ;; + "iPod2,1"): "Samsung S5L8720 (1) @ 533MHz" ;; + "iPod3,1"): "Samsung S5L8922 (1) @ 600MHz" ;; + "iPod7,1"): "Apple A8 (2) @ 1.1GHz" ;; + "iPad1,1"): "Apple A4 (1) @ 1GHz" ;; + "iPad2,"[1-7]): "Apple A5 (2) @ 1GHz" ;; + "iPad3,"[1-3]): "Apple A5X (2) @ 1GHz" ;; + "iPad3,"[4-6]): "Apple A6X (2) @ 1.4GHz" ;; + "iPad4,"[1-3]): "Apple A7 (2) @ 1.4GHz" ;; + "iPad4,"[4-9]): "Apple A7 (2) @ 1.4GHz" ;; + "iPad5,"[1-2]): "Apple A8 (2) @ 1.5GHz" ;; + "iPad5,"[3-4]): "Apple A8X (3) @ 1.5GHz" ;; + "iPad6,"[3-4]): "Apple A9X (2) @ 2.16GHz" ;; + "iPad6,"[7-8]): "Apple A9X (2) @ 2.26GHz" ;; esac + cpu="$_" ;; "BSD") @@ -993,12 +1899,13 @@ get_cpu() { # Get CPU temp. case "$kernel_name" in "FreeBSD"* | "DragonFly"* | "NetBSD"*) - temp="$(sysctl -n dev.cpu.0.temperature)" - temp="${temp/C}" + deg="$(sysctl -n dev.cpu.0.temperature)" + deg="${deg/C}" ;; "OpenBSD"* | "Bitrig"*) - temp="$(sysctl -n hw.sensors.lm0.temp0)" - temp="${temp/ degC}" + deg="$(sysctl hw.sensors | \ + awk -F '=| degC' '/lm0.temp|cpu0.temp/ {print $2; exit}')" + deg="${deg/00/0}" ;; esac ;; @@ -1048,7 +1955,9 @@ get_cpu() { cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')" ;; - "physical") cores="$(lparstat -i | awk -F':' '/Active Physical CPUs/ {printf $2}')" + "physical") + cores="$(lparstat -i | awk -F':' '/Active Physical CPUs/ {printf $2}')" + ;; esac ;; @@ -1062,6 +1971,11 @@ get_cpu() { # Get CPU cores. cores="$(sysconf NPROC_ONLN)" ;; + + "FreeMiNT") + cpu="$(awk -F':' '/CPU:/ {printf $2}' /kern/cpuinfo)" + speed="$(awk -F '[:.M]' '/Clocking:/ {printf $2}' /kern/cpuinfo)" + ;; esac # Remove un-needed patterns from cpu output. @@ -1076,13 +1990,14 @@ get_cpu() { cpu="${cpu//Six-Core}" cpu="${cpu//Eight-Core}" cpu="${cpu//, * Compute Cores}" - cpu="${cpu//Core}" + cpu="${cpu//Core / }" cpu="${cpu//(\"AuthenticAMD\"*)}" cpu="${cpu//with Radeon * Graphics}" cpu="${cpu//, altivec supported}" cpu="${cpu//FPU*}" cpu="${cpu//Chip Revision*}" cpu="${cpu//Technologies, Inc}" + cpu="${cpu//Core2/Core 2}" # Trim spaces from core and speed output cores="${cores//[[:space:]]}" @@ -1100,7 +2015,7 @@ get_cpu() { [[ "$cpu_cores" != "off" && "$cores" ]] && \ case "$os" in "Mac OS X") cpu="${cpu/@/(${cores}) @}" ;; - *) cpu="$cpu ($cores)" ;; + *) cpu="$cpu ($cores)" ;; esac # Add CPU speed to the output. @@ -1115,15 +2030,15 @@ get_cpu() { fi # Add CPU temp to the output. - if [[ "$cpu_temp" != "off" && "$temp" ]]; then - temp="${temp//.}" + if [[ "$cpu_temp" != "off" && "$deg" ]]; then + deg="${deg//.}" # Convert to Fahrenheit if enabled - [[ "$cpu_temp" == "F" ]] && temp="$((temp * 90 / 50 + 320))" + [[ "$cpu_temp" == "F" ]] && deg="$((deg * 90 / 50 + 320))" # Format the output - temp="[${temp/${temp: -1}}.${temp: -1}°${cpu_temp:-C}]" - cpu="$cpu $temp" + deg="[${deg/${deg: -1}}.${deg: -1}°${cpu_temp:-C}]" + cpu="$cpu $deg" fi } @@ -1140,13 +2055,17 @@ get_cpu_usage() { if [[ "$cpu_cores" != "logical" ]]; then case "$os" in "Linux" | "MINIX") cores="$(grep -c "^processor" /proc/cpuinfo)" ;; - "Mac OS X") cores="$(sysctl -n hw.logicalcpu_max)" ;; - "BSD") cores="$(sysctl -n hw.ncpu)" ;; - "Solaris") cores="$(kstat -m cpu_info | grep -c -F "chip_id")" ;; - "Haiku") cores="$(sysinfo -cpu | grep -c -F 'CPU #')" ;; - "iPhone OS") cores="${cpu/*\(}"; cores="${cores/\)*}" ;; - "AIX") cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')" ;; - "IRIX") cores="$(sysconf NPROC_ONLN)" + "Mac OS X") cores="$(sysctl -n hw.logicalcpu_max)" ;; + "BSD") cores="$(sysctl -n hw.ncpu)" ;; + "Solaris") cores="$(kstat -m cpu_info | grep -c -F "chip_id")" ;; + "Haiku") cores="$(sysinfo -cpu | grep -c -F 'CPU #')" ;; + "iPhone OS") cores="${cpu/*\(}"; cores="${cores/\)*}" ;; + "IRIX") cores="$(sysconf NPROC_ONLN)" ;; + "FreeMiNT") cores="$(sysctl -n hw.ncpu)" ;; + + "AIX") + cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')" + ;; esac fi @@ -1157,10 +2076,10 @@ get_cpu_usage() { # Print the bar. case "$cpu_display" in - "bar") cpu_usage="$(bar "$cpu_usage" 100)" ;; + "bar") cpu_usage="$(bar "$cpu_usage" 100)" ;; "infobar") cpu_usage="${cpu_usage}% $(bar "$cpu_usage" 100)" ;; "barinfo") cpu_usage="$(bar "$cpu_usage" 100)${info_color} ${cpu_usage}%" ;; - *) cpu_usage="${cpu_usage}%" ;; + *) cpu_usage="${cpu_usage}%" ;; esac } @@ -1168,31 +2087,39 @@ get_gpu() { case "$os" in "Linux") # Read GPUs into array. - IFS=$'\n' - gpus=($(lspci -mm | awk -F '\\"|\\" \\"|\\(' \ - '/"Display|"3D|"VGA/ {a[$0] = $3 " " $4} END{for(i in a) - {if(!seen[a[i]]++) print a[i]}}')) - IFS="$old_ifs" + gpu_cmd="$(lspci -mm | awk -F '\\"|\\" \\"|\\(' \ + '/"Display|"3D|"VGA/ {a[$0] = $3 " " $4} END {for(i in a) + {if(!seen[a[i]]++) print a[i]}}')" + IFS=$'\n' read -d "" -ra gpus <<< "$gpu_cmd" - # Number the GPUs if more than one exists. - ((${#gpus[@]} > 1)) && gpu_num=1 + # Remove duplicate Intel Graphics outputs. + # This fixes cases where the outputs are both + # Intel but not entirely identical. + # + # Checking the first two array elements should + # be safe since there won't be 2 intel outputs if + # there's a dedicated GPU in play. + [[ "${gpus[0]}" == *Intel* && "${gpus[1]}" == *Intel* ]] && unset -v "gpus[0]" for gpu in "${gpus[@]}"; do # GPU shorthand tests. - [[ "$gpu_type" == "dedicated" && "$gpu" =~ (i|I)ntel ]] ||\ - [[ "$gpu_type" == "integrated" && ! "$gpu" =~ (i|I)ntel ]] && \ + [[ "$gpu_type" == "dedicated" && "$gpu" == *Intel* ]] || \ + [[ "$gpu_type" == "integrated" && ! "$gpu" == *Intel* ]] && \ { unset -v gpu; continue; } case "$gpu" in *"advanced"*) - gpu="${gpu/'[AMD/ATI]' }" - gpu="${gpu/'[AMD]' }" + brand="${gpu/*AMD*ATI*/AMD ATI}" + brand="${brand:-${gpu/*AMD*/AMD}}" + brand="${brand:-${gpu/*ATI*/ATi}}" + + gpu="${gpu/\[AMD\/ATI\] }" + gpu="${gpu/\[AMD\] }" gpu="${gpu/OEM }" gpu="${gpu/Advanced Micro Devices, Inc.}" - gpu="${gpu/ \/ *}" gpu="${gpu/*\[}" gpu="${gpu/\]*}" - gpu="AMD $gpu" + gpu="$brand $gpu" ;; *"nvidia"*) @@ -1202,10 +2129,12 @@ get_gpu() { ;; *"intel"*) - gpu="$(glxinfo | grep "Device:.*Intel")" gpu="${gpu/*Intel/Intel}" - gpu="${gpu/'(R)'}" + gpu="${gpu/\(R\)}" + gpu="${gpu/Corporation}" gpu="${gpu/ \(*}" + gpu="${gpu/Integrated Graphics Controller}" + gpu="${gpu/*Xeon*/Intel HD Graphics}" [[ -z "$(trim "$gpu")" ]] && gpu="Intel Integrated Graphics" ;; @@ -1222,7 +2151,6 @@ get_gpu() { fi prin "${subtitle:+${subtitle}${gpu_name}}" "$gpu" - ((++gpu_num)) done return @@ -1235,7 +2163,7 @@ get_gpu() { else gpu="$(system_profiler SPDisplaysDataType |\ awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')" - gpu="${gpu//'/ $'}" + gpu="${gpu//\/ \$}" gpu="${gpu%,*}" cache "gpu" "$gpu" @@ -1243,35 +2171,36 @@ get_gpu() { ;; "iPhone OS") - 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" ;; + case "$kernel_machine" in + "iPhone1,"[1-2]): "PowerVR MBX Lite 3D" ;; + "iPhone5,"[1-4]): "PowerVR SGX543MP3" ;; + "iPhone8,"[1-4]): "PowerVR GT7600" ;; + "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" + : "PowerVR SGX535" ;; "iPhone4,1" | "iPad2,"[1-7] | "iPod5,1") - gpu="PowerVR SGX543MP2" + : "PowerVR SGX543MP2" ;; "iPhone6,"[1-2] | "iPad4,"[1-9]) - gpu="PowerVR G6430" + : "PowerVR G6430" ;; "iPhone7,"[1-2] | "iPod7,1" | "iPad5,"[1-2]) - gpu="PowerVR GX6450" + : "PowerVR GX6450" ;; "iPod1,1" | "iPod2,1") - gpu="PowerVR MBX Lite" + : "PowerVR MBX Lite" ;; esac + gpu="$_" ;; "Windows") @@ -1294,7 +2223,7 @@ get_gpu() { *) gpu="$(glxinfo | grep -F 'OpenGL renderer string')" - gpu="${gpu/'OpenGL renderer string: '}" + gpu="${gpu/OpenGL renderer string: }" ;; esac ;; @@ -1314,8 +2243,8 @@ get_memory() { # Source: https://github.com/KittyKatt/screenFetch/issues/386#issuecomment-249312716 while IFS=":" read -r a b; do case "$a" in - "MemTotal") mem_used="$((mem_used+=${b/kB}))"; mem_total="${b/kB}" ;; - "Shmem") mem_used="$((mem_used+=${b/kB}))" ;; + "MemTotal") ((mem_used+=${b/kB})); mem_total="${b/kB}" ;; + "Shmem") ((mem_used+=${b/kB})) ;; "MemFree" | "Buffers" | "Cached" | "SReclaimable") mem_used="$((mem_used-=${b/kB}))" ;; @@ -1328,9 +2257,10 @@ get_memory() { "Mac OS X" | "iPhone OS") mem_total="$(($(sysctl -n hw.memsize) / 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_wired="$(vm_stat | awk '/ wired/ { print $4 }')" + mem_active="$(vm_stat | awk '/ active/ { printf $3 }')" + mem_compressed="$(vm_stat | awk '/ occupied/ { printf $5 }')" + mem_compressed="${mem_compressed:-0}" mem_used="$(((${mem_wired//.} + ${mem_active//.} + ${mem_compressed//.}) * 4 / 1024))" ;; @@ -1361,19 +2291,36 @@ 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 $4}') / 1024))" ;; + "OpenBSD"*) + mem_used="$(vmstat | awk 'END {printf $3}')" + mem_used="${mem_used/M}" + ;; + *) mem_used="$((mem_total - mem_free))" ;; esac ;; - "Solaris") - mem_total="$(prtconf | awk '/Memory/ {print $3}')" - mem_free="$(($(vmstat | awk 'NR==3{printf $5}') / 1024))" + "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))" mem_used="$((mem_total - mem_free))" ;; @@ -1383,36 +2330,81 @@ get_memory() { mem_used="$((${mem_used/max} / 1024 / 1024))" ;; - "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)) + IFS=$'\n' read -d "" -ra mem_cmd <<< "$(pmem)" + IFS=" " read -ra mem_stat <<< "${mem_cmd[0]}" + 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_used="$((mem_total - mem_free))" + mem_total="$((mem_total / 1024))" + mem_used="$((mem_used / 1024))" + ;; + esac - memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB}" + + [[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total)) + + memory="${mem_used}${mem_label:-MiB} / ${mem_total}${mem_label:-MiB} ${mem_perc:+(${mem_perc}%)}" # Bars. case "$memory_display" in - "bar") memory="$(bar "${mem_used}" "${mem_total}")" ;; + "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() { - 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}')" + players=( + "amarok" + "audacious" + "banshee" + "bluemindo" + "clementine" + "cmus" + "deadbeef" + "deepin-music" + "dragon" + "elisa" + "exaile" + "gnome-music" + "gmusicbrowser" + "guayadeque" + "iTunes" + "juk" + "lollypop" + "mocp" + "mopidy" + "mpd" + "netease-cloud-music" + "pogo" + "pragha" + "qmmp" + "quodlibet" + "rhythmbox" + "sayonara" + "smplayer" + "spotify" + "Spotify" + "tomahawk" + "vlc" + "xmms2d" + "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" get_song_dbus() { # Multiple players use an almost identical dbus command to get the information. @@ -1421,42 +2413,50 @@ guayadeque|yarock|qmmp|quodlibet|deepin-music|tomahawk|pogo|elisa/ {printf $5 " 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 'string "' '/string|array/ {printf "%s",$2; next}{print ""}' |\ - awk -F '"' '/artist/ {a=$2} /title/ {t=$2} END{print a " - " t}' + awk -F '"' 'BEGIN {RS=" entry"}; /"xesam:artist"/ {a = $4} /"xesam:album"/ {b = $4} + /"xesam:title"/ {t = $4} END {print a "\n" b "\n" t}' )" } 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" ;; - - "audacious"*) - song="$(audtool current-song)" - - # Remove Album from 'Artist - Album - Title' - song="${song/-* -/-}" - - [[ -z "$song" ]] && get_song_dbus "audacious" - ;; + "mpd"*|"mopidy"*) song="$(mpc -f '%artist%\n%album%\n%title%' current "${mpc_args[@]}")" ;; + "mocp"*) song="$(mocp -Q '%artist\n%album\n%song')" ;; + "deadbeef"*) song="$(deadbeef --nowplaying-tf '%artist%\\n%album%\\n%title%')" ;; + "xmms2d"*) song="$(xmms2 current -f "\${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" ;; + "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" ;; + "netease-cloud-music"*) get_song_dbus "netease-cloud-music" ;; "cmus"*) - song="$(cmus-remote -Q | awk '/tag artist/ {$1=$2=""; print; print " - "}\ - /tag title/ {$1=$2=""; print}')" + song="$(cmus-remote -Q | awk 'BEGIN { ORS=" "}; + /tag artist/ { + $1=$2=""; sub(" ", ""); a=$0 + } + /tag album / { + $1=$2=""; sub(" ", ""); b=$0 + } + /tag title/ { + $1=$2=""; sub(" ", ""); t=$0 + } + END { print a "\n" b "\n" t }')" ;; "spotify"*) @@ -1464,66 +2464,68 @@ guayadeque|yarock|qmmp|quodlibet|deepin-music|tomahawk|pogo|elisa/ {printf $5 " "Linux") get_song_dbus "spotify" ;; "Mac OS X") - song="$(osascript -e 'tell application "Spotify" to artist of current track as \ - string & " - " & name of current track as string')" + 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')" ;; esac ;; "itunes"*) - song="$(osascript -e 'tell application "iTunes" to artist of current track as \ - string & " - " & name of current track as string')" + 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')" ;; "banshee"*) - song="$(banshee --query-artist --query-title |\ - awk -F':' '/^artist/ {a=$2} /^title/ {t=$2} END{print a " - " 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}')" + 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}')" ;; "exaile"*) + # NOTE: Exaile >= 4.0.0 will support mpris2. song="$(dbus-send --print-reply --dest=org.exaile.Exaile /org/exaile/Exaile \ - org.exaile.Exaile.Query | awk -F':|,' '{if ($6 && $4) printf $6 " -" $4}')" + org.exaile.Exaile.Query | + awk -F':|,' '{if ($6 && $8 && $4) printf $6 "\n" $8 "\n" $4}')" ;; "quodlibet"*) song="$(dbus-send --print-reply --dest=net.sacredchao.QuodLibet \ /net/sacredchao/QuodLibet net.sacredchao.QuodLibet.CurrentSong |\ - awk -F'"' '/artist/ {getline; a=$2} \ - /title/ {getline; t=$2} END{print a " - " t}')" + awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4} + /"title"/ {t=$4} END {print a "\n" b "\n" t}')" ;; "pogo"*) song="$(dbus-send --print-reply --dest=org.mpris.pogo /Player \ org.freedesktop.MediaPlayer.GetMetadata | - awk -F'"' '/string "artist"/ {getline; a=$2} /string "title"/ {getline; t=$2} \ - END{print a " - " t}')" + awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4} + /"title"/ {t=$4} END {print a "\n" b "\n" t}')" ;; - *) mpc >/dev/null 2>&1 && song="$(mpc current)" ;; + *) mpc &>/dev/null && song="$(mpc -f '%artist%\n%album%\n%title%' current)" || return ;; esac - [[ "$(trim "$song")" == "-" ]] && unset -v song + IFS=$'\n' read -d "" -r artist album title <<< "${song//'\n'/$'\n'}" - # Display Artist and Title on separate lines. - if [[ "$song_shorthand" == "on" && "$song" ]]; then - artist="${song/ -*}" - song="${song/*-}" + # Make sure empty tags are truly empty. + artist="$(trim "$artist")" + album="$(trim "$album")" + title="$(trim "$title")" - if [[ "$song" != "$artist" ]]; then - prin "Artist" "$artist" - prin "Song" "$song" - else - prin "$subtitle" "$song" - fi + # 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}" fi } @@ -1539,14 +2541,18 @@ get_resolution() { awk '/Resolution:/ {printf $2"x"$4" @ "$6"Hz, "}')" fi - scale_factor="$(PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" \ - /Library/Preferences/com.apple.windowserver.plist)" + if [[ -e "/Library/Preferences/com.apple.windowserver.plist" ]]; then + scale_factor="$(PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" \ + /Library/Preferences/com.apple.windowserver.plist)" + else + scale_factor="" + fi # If no refresh rate is empty. [[ "$resolution" == *"@ Hz"* ]] && \ resolution="${resolution//@ Hz}" - ((${scale_factor%.*} == 2)) && \ + [[ "${scale_factor%.*}" == 2 ]] && \ resolution="${resolution// @/@2x @}" if [[ "$refresh_rate" == "off" ]]; then @@ -1581,8 +2587,8 @@ get_resolution() { 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") @@ -1594,6 +2600,11 @@ get_resolution() { esac resolution="${resolution//\*}" + elif type -p xwininfo >/dev/null; then + read -r w h \ + < <(xwininfo -root | awk -F':' '/Width|Height/ {printf $2}') + resolution="${w}x${h}" + elif type -p xdpyinfo >/dev/null; then resolution="$(xdpyinfo | awk '/dimensions:/ {printf $2}')" fi @@ -1601,13 +2612,14 @@ get_resolution() { esac resolution="${resolution%,*}" + [[ -z "${resolution/x}" ]] && resolution= } get_style() { # Fix weird output when the function is run multiple times. unset gtk2_theme gtk3_theme theme path - if [[ -n "$DISPLAY" && "$os" != "Mac OS X" ]]; then + if [[ "$DISPLAY" && "$os" != "Mac OS X" ]]; then # Get DE if user has disabled the function. ((de_run != 1)) && get_de @@ -1626,7 +2638,7 @@ get_style() { kde_font_size="${kde_font_size/,*}" kde_theme="${kde_theme/,*} ${kde_theme/*,} ${kde_font_size}" fi - kde_theme="$(uppercase "$kde_theme") [KDE], " + kde_theme="$kde_theme [KDE], " else err "Theme: KDE config files not found, skipping." fi @@ -1665,11 +2677,12 @@ get_style() { if [[ -f "${GTK2_RC_FILES:-${HOME}/.gtkrc-2.0}" ]]; then gtk2_theme="$(grep "^[^#]*${name}" "${GTK2_RC_FILES:-${HOME}/.gtkrc-2.0}")" + elif [[ -f "/etc/gtk-2.0/gtkrc" ]]; then + gtk2_theme="$(grep "^[^#]*${name}" /etc/gtk-2.0/gtkrc)" + 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}*=}" @@ -1701,10 +2714,6 @@ 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 @@ -1775,32 +2784,39 @@ get_term() { # Workaround for macOS systems that # don't support the block below. case "$TERM_PROGRAM" in - "iTerm.app") term="iTerm2" ;; + "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" + # Check $PPID for terminal emulator. while [[ -z "$term" ]]; do - 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 + parent="$(get_ppid "$parent")" + [[ -z "$parent" ]] && break + name="$(get_process_name "$parent")" + + case "${name// }" in + "${SHELL/*\/}"|*"sh"|"screen"|"su"*) ;; + + "login"*|*"Login"*|"init"|"(init)") + term="$(tty)" + ;; + + "ruby"|"1"|"tmux"*|"systemd"|"sshd"*|"python"*|"USER"*"PID"*|"kdeinit"*|"launchd"*) + break + ;; + + "gnome-terminal-") term="gnome-terminal" ;; + "urxvtd") term="urxvt" ;; + *"nvim") term="Neovim Terminal" ;; + *"NeoVimServer"*) term="VimR Terminal" ;; + *) term="${name##*/}" ;; + esac done # Log that the function was run. @@ -1812,16 +2828,23 @@ get_term_font() { case "$term" in "alacritty"*) - term_font="$(awk -F ':|#' '/normal:/ {getline; print}' \ - "${XDG_CONFIG_HOME}/alacritty/alacritty.yml")" + shopt -s nullglob + confs=({$XDG_CONFIG_HOME,$HOME}/{alacritty,}/{.,}alacritty.ym?) + shopt -u nullglob + + [[ -f "${confs[0]}" ]] || return + + term_font="$(awk -F ':|#' '/normal:/ {getline; print}' "${confs[0]}")" term_font="${term_font/*family:}" term_font="${term_font/$'\n'*}" term_font="${term_font/\#*}" ;; "Apple_Terminal") - term_font="$(osascript -e 'tell application "Terminal" to \ - font name of window frontmost')" + term_font="$(osascript <TerminalFontSize/dev/null 2>&1 ||\ + type -p df &>/dev/null ||\ { err "Disk requires 'df' to function. Install 'df' to get disk info."; return; } - # Get "df" version. df_version="$(df --version 2>&1)" + case "$df_version" in - *"blocks"*) # Haiku + *"IMitv"*) df_flags=(-P -g) ;; # AIX + *"befhikm"*) df_flags=(-P -k) ;; # IRIX + *"hiklnP"*) df_flags=(-h) ;; # OpenBSD + + *"Tracker"*) # 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' - disks=($(df "${df_flags[@]}" "${disk_show[@]:-/}")) - unset 'disks[0]' - IFS="$old_ifs" + IFS=$'\n' read -d "" -ra disks <<< "$(df "${df_flags[@]}" "${disk_show[@]:-/}")" + unset "disks[0]" # Stop here if 'df' fails to print disk info. - if [[ -z "${disks[*]}" ]]; then + [[ -z "${disks[*]}" ]] && { 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. - disk_info=($disk) - disk_perc="${disk_info[4]/'%'}" + IFS=" " read -ra disk_info <<< "$disk" + disk_perc="${disk_info[4]/\%}" case "$df_version" in *"befhikm"*) disk="$((disk_info[2]/1024/1024))G / $((disk_info[1]/1024/1024))G (${disk_perc}%)" ;; - *) disk="${disk_info[2]/i} / ${disk_info[1]/i} (${disk_perc}%)" ;; + + *) + disk="${disk_info[2]/i} / ${disk_info[1]/i} (${disk_perc}%)" + ;; esac # Subtitle. case "$disk_subtitle" in - "name") disk_sub="${disk_info[0]}" ;; + "name") + disk_sub="${disk_info[0]}" + ;; + "dir") disk_sub="${disk_info[5]/*\/}" - [[ -z "$disk_sub" ]] && disk_sub="${disk_info[5]}" + disk_sub="${disk_sub:-${disk_info[5]}}" + ;; + + *) + disk_sub="${disk_info[5]}" ;; - *) disk_sub="${disk_info[5]}" ;; esac # Bar. case "$disk_display" in - "bar") disk="$(bar "$disk_perc" "100")" ;; + "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")" ;; + "perc") disk="${disk_perc}% $(bar "$disk_perc" "100")" ;; esac # Append '(disk mount point)' to the subtitle. @@ -2094,7 +3197,7 @@ get_battery() { battery="${capacity}% [${status}]" case "$battery_display" in - "bar") battery="$(bar "$capacity" 100)" ;; + "bar") battery="$(bar "$capacity" 100)" ;; "infobar") battery+=" $(bar "$capacity" 100)" ;; "barinfo") battery="$(bar "$capacity" 100)${info_color} ${battery}" ;; esac @@ -2119,12 +3222,19 @@ get_battery() { ;; "OpenBSD"* | "Bitrig"*) - battery0full="$(sysctl -n hw.sensors.acpibat0.watthour0)" - battery0full="${battery0full/ Wh*}" + battery0full="$(sysctl -n hw.sensors.acpibat0.watthour0\ + hw.sensors.acpibat0.amphour0)" + battery0full="${battery0full%% *}" - battery0now="$(sysctl -n hw.sensors.acpibat0.watthour3)" - battery0now="${battery0now/ Wh*}" + battery0now="$(sysctl -n hw.sensors.acpibat0.watthour3\ + hw.sensors.acpibat0.amphour3)" + battery0now="${battery0now%% *}" + state="$(sysctl -n hw.sensors.acpibat0.raw0)" + state="${state##? (battery }" + state="${state%)*}" + + [[ "${state}" == "charging" ]] && battery_state="charging" [[ "$battery0full" ]] && \ battery="$((100 * ${battery0now/\.} / ${battery0full/\.}))%" ;; @@ -2140,7 +3250,7 @@ get_battery() { "Windows") battery="$(wmic Path Win32_Battery get EstimatedChargeRemaining)" battery="${battery/EstimatedChargeRemaining}" - [[ "$(trim "$battery")" ]] && battery="%" + battery="$(trim "$battery")%" ;; "Haiku") @@ -2153,9 +3263,9 @@ 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}" ;; + "bar") battery="$(bar "${battery/\%*}" 100)" ;; + "infobar") battery="${battery} $(bar "${battery/\%*}" 100)" ;; + "barinfo") battery="$(bar "${battery/\%*}" 100)${info_color} ${battery}" ;; esac } @@ -2183,7 +3293,7 @@ get_local_ip() { "Haiku") local_ip="$(ifconfig | awk -F ': ' '/Bcast/ {print $2}')" - local_ip="${local_ip/', Bcast'}" + local_ip="${local_ip/, Bcast}" ;; esac } @@ -2195,11 +3305,11 @@ get_public_ip() { fi if [[ -z "$public_ip" ]] && type -p curl >/dev/null; then - public_ip="$(curl --max-time 10 -w '\n' "$public_ip_host")" + public_ip="$(curl --max-time "$public_ip_timeout" -w '\n' "$public_ip_host")" fi if [[ -z "$public_ip" ]] && type -p wget >/dev/null; then - public_ip="$(wget -T 10 -qO- "$public_ip_host")" + public_ip="$(wget -T "$public_ip_timeout" -qO- "$public_ip_host")" fi } @@ -2208,60 +3318,6 @@ 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" ;; - 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"*) # AIX ls / IRIX ls - err "Install Date doesn't work because your 'ls' doesn't support full date/time." - return - ;; - - *) 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" } @@ -2272,25 +3328,43 @@ get_gpu_driver() { gpu_driver="$(lspci -nnk | awk -F ': ' \ '/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") + if [[ "$(kextstat | grep "GeForceWeb")" != "" ]]; then + gpu_driver="NVIDIA Web Driver" + else + gpu_driver="macOS Default Graphics Driver" + fi ;; esac } get_cols() { + local blocks blocks2 cols + if [[ "$color_blocks" == "on" ]]; then # Convert the width to space chars. printf -v block_width "%${block_width}s" - # Set variables. - start="${block_range[0]}" - end="${block_range[1]}" - # 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}" ;; + 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" + ;; + + *) + printf -v blocks2 '%b\e[38;5;%bm\e[48;5;%bm%b' \ + "$blocks2" "${block_range[0]}" "${block_range[0]}" "$block_width" + ;; esac done @@ -2298,21 +3372,25 @@ get_cols() { printf -v block_spaces "%${block_height}s" # Convert the spaces into rows of blocks. - [[ "$blocks" ]] && cols+="${block_spaces// /${blocks}${reset}nl}" + [[ "$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/\\n\\033[${text_padding}C${zws}}" + cols="${cols//nl/\\n\\e[${text_padding}C${zws}}" # Add block height to info height. - info_height="$((info_height+=block_height+2))" + ((info_height+=block_range[1]>7?block_height+3:block_height+2)) - printf "%b\n" "\033[${text_padding}C${zws}${cols}" + printf '\n\e[%bC%b\n\n' "$text_padding" "${zws}${cols}" fi unset -v blocks blocks2 cols + # TosWin2 on FreeMiNT is terrible at this, + # so we'll reset colors arbitrarily. + [[ "$term" == "TosWin2" ]] && printf '\e[30;47m' + # Tell info() that we printed manually. prin=1 } @@ -2320,108 +3398,81 @@ get_cols() { # IMAGES image_backend() { - 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 + [[ "$image_backend" != "off" ]] && ! type -p convert &>/dev/null && \ + { image_backend="ascii"; err "Image: Imagemagick not found, falling back to ascii mode."; } case "${image_backend:-off}" in - "ascii") get_ascii ;; + "ascii") print_ascii ;; "off") image_backend="off" ;; - "caca" | "catimg" | "jp2a" | "iterm2" | "termpix" | "tycat" | "w3m" | "sixel") + "caca" | "chafa" | "jp2a" | "iterm2" | "termpix" |\ + "tycat" | "w3m" | "sixel" | "pixterm" | "kitty") get_image_source - if [[ ! -f "$image" ]]; then + [[ ! -f "$image" ]] && { to_ascii "Image: '$image_source' doesn't exist, falling back to ascii mode." return - fi + } - get_term_size + get_window_size - if [[ "$term_width" ]] && ((term_width >= 1)); then - clear - else + ((term_width < 1)) && { 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 + display_image || to_off "Image: $image_backend failed to display the image." ;; *) err "Image: Unknown image backend specified '$image_backend'." - err "Image: Valid backends are: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', - 'off', 'sixel', 'termpix', 'tycat', 'w3m')" + err "Image: Valid backends are: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'kitty', + 'off', 'sixel', 'pixterm', 'termpix', 'tycat', 'w3m')" err "Image: Falling back to ascii mode." - get_ascii + print_ascii ;; esac # Set cursor position next image/ascii. - [[ "$image_backend" != "off" ]] && printf "%b" "\033[${lines:-0}A\033[9999999D" + [[ "$image_backend" != "off" ]] && printf '\e[%sA\e[9999999D' "${lines:-0}" } -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; } +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" fi # Set locale to get correct padding. - export LC_ALL="$sys_locale" + LC_ALL="$sys_locale" - # Turn file into variable. + # Calculate size of ascii file in line length / line count. while IFS=$'\n' read -r line; do - print+="$line \n" - - # Calculate size of ascii file in line length / line count. - line="${line//\$\{??\}}" line="${line//\\\\/\\}" - ((${#line} > ascii_length)) && ascii_length="${#line}" - ((++lines)) - done < "$image_source" + ((++lines,${#line}>ascii_len)) && ascii_len="${#line}" + done <<< "${ascii_data//\$\{??\}}" + + # Fallback if file not found. + ((lines==1)) && { lines=; ascii_len=; image_source=auto; get_distro_ascii; print_ascii; return; } # Colors. - print="${print//'${c1}'/$c1}" - print="${print//'${c2}'/$c2}" - print="${print//'${c3}'/$c3}" - print="${print//'${c4}'/$c4}" - print="${print//'${c5}'/$c5}" - print="${print//'${c6}'/$c6}" + 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}" - # 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 + ((text_padding=ascii_len+gap)) + printf '%b\n' "$ascii_data${reset}" + LC_ALL=C } get_image_source() { @@ -2452,23 +3503,23 @@ get_image_source() { get_wallpaper() { case "$os" in "Mac OS X") - image="$(osascript -e 'tell application "System Events" to picture of current desktop')" + 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)" ;; + "MATE"*) + image="$(gsettings get org.mate.background picture-filename)" + ;; + "Xfce"*) image="$(xfconf-query -c xfce4-desktop -p \ "/backdrop/screen0/monitor0/workspace0/last-image")" @@ -2489,9 +3546,19 @@ get_wallpaper() { image="$(decode_url "$image")" ;; + "GNOME"*) + image="$(gsettings get org.gnome.desktop.background picture-uri)" + image="$(decode_url "$image")" + ;; + *) if type -p feh >/dev/null && [[ -f "${HOME}/.fehbg" ]]; then - image="$(awk -F\' '/feh/ {printf $2}' "${HOME}/.fehbg")" + 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;}' \ @@ -2505,7 +3572,7 @@ get_wallpaper() { esac # Strip un-needed info from the path. - image="${image/'file://'}" + image="${image/file:\/\/}" image="$(trim_quotes "$image")" ;; esac @@ -2516,113 +3583,71 @@ get_wallpaper() { get_w3m_img_path() { # Find w3m-img path. - if [[ -x "/usr/lib/w3m/w3mimgdisplay" ]]; then - w3m_img_path="/usr/lib/w3m/w3mimgdisplay" + shopt -s nullglob + w3m_paths=({/usr/{local/,},~/.nix-profile/}{lib,libexec,lib64,libexec64}/w3m/w3mi*) + shopt -u nullglob - elif [[ -x "/usr/libexec/w3m/w3mimgdisplay" ]]; then - w3m_img_path="/usr/libexec/w3m/w3mimgdisplay" + [[ -x "${w3m_paths[0]}" ]] && \ + { w3m_img_path="${w3m_paths[0]}"; return; } - 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 + err "Image: w3m-img wasn't found on your system" } -get_term_size() { +get_window_size() { # This functions gets the current window size in # pixels. - # - # 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. + [[ "$image_backend" == "kitty" ]] && + IFS=x read -r term_width term_height < <(kitty +kitten icat --print-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 [[ -n "$TMUX" ]]; then - printf "%b" "\033Ptmux;\033\033[14t\033\033[c\033\\" - read_flags=(-d c) + # Get terminal width/height. + if (( "${term_width:-0}" < 50 )) && [[ "$DISPLAY" && "$os" != "Mac OS X" ]]; 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=}" - 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. - IFS=";" read -s -t 1 "${read_flags[@]}" -r -a term_size - - # Split the string into height/width. - if [[ "$image_backend" == "tycat" ]]; then - term_width="$((term_size[2] * term_size[0]))" - term_height="$((term_size[3] * term_size[1]))" - - else - term_height="${term_size[1]}" - term_width="${term_size[2]/t*}" - fi - - # 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 2>&1; then + elif type -p xwininfo &>/dev/null; then # Get the focused window's ID. - if type -p xdpyinfo >/dev/null 2>&1; then - current_window="$(xdpyinfo | grep -E -o "focus:.*0x[0-9a-f]+")" + if type -p xdo &>/dev/null; then + current_window="$(xdo id)" + + elif type -p xdpyinfo &>/dev/null; then + current_window="$(xdpyinfo | grep -F "focus:")" current_window="${current_window/*window }" - elif type -p xprop >/dev/null 2>&1; then + current_window="${current_window/,*}" + + elif type -p xprop &>/dev/null; then current_window="$(xprop -root _NET_ACTIVE_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" |\ - awk -F ': ' '/Width|Height/ {printf $2 " "}')" - term_width="${term_size/ *}" - term_height="${term_size/${term_width}}" - else - term_width=0 + term_size="$(xwininfo -id "$current_window")" + term_width="${term_size#*Width: }" + term_width="${term_width/$'\n'*}" + term_height="${term_size/*Height: }" + term_height="${term_height/$'\n'*}" 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 terminal lines and columns. - term_blocks="$(stty size)" - columns="${term_blocks/* }" - lines="${term_blocks/ *}" +get_term_size() { + # Get the terminal size in cells. + read -r lines columns < <(stty size) # 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 "auto") @@ -2643,25 +3668,30 @@ get_image_size() { "none") # Get image size so that we can do a better crop. - size="$(identify -format "%w %h" "$image")" - width="${size%% *}" - height="${size##* }" + 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 + 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 / font_width + gap + xoffset/font_width))" + text_padding="$(((width + padding + xoffset) / font_width + gap))" } 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 @@ -2671,21 +3701,14 @@ make_thumbnail() { esac # Create the thumbnail dir if it doesn't exist. - mkdir -p "$thumbnail_dir" + mkdir -p "${thumbnail_dir:=${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch}" - # Check to see if the thumbnail exists before we do any cropping. - if [[ ! -f "$thumbnail_dir/$image_name" ]]; then + if [[ ! -f "${thumbnail_dir}/${image_name}" ]]; then # Get image size so that we can do a better crop. - if [[ -z "$size" ]]; then - size="$(identify -format "%w %h" "$image")" - og_width="${size%% *}" - og_height="${size##* }" - - # 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 + [[ -z "$size" ]] && { + read -r og_width og_height <<< "$(identify -format "%w %h" "$image")" + ((og_height > og_width)) && size="$og_width" || size="$og_height" + } case "$crop_mode" in "fit") @@ -2699,9 +3722,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") @@ -2709,218 +3732,126 @@ make_thumbnail() { -background none \ "$image" \ -trim +repage \ - -scale "$width"x"$height"^ \ - -extent "$width"x"$height" \ - "$thumbnail_dir/$image_name" + -scale "${width}x${height}^" \ + -extent "${width}x${height}" \ + "${thumbnail_dir}/${image_name}" + ;; + + "none") + cp "$image" "${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 \ - -quality 95 \ - -scale "$width"x"$height" \ - "$thumbnail_dir/$image_name" + -crop "${size}x${size}+0+0" \ + -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 "caca") - img2txt -W "$((width / font_width)))" \ - -H "$((height / font_height))" \ - --gamma=0.6 "$image" ||\ - to_off "Image: libcaca failed to display the image." + img2txt \ + -W "$((width / font_width))" \ + -H "$((height / font_height))" \ + --gamma=0.6 \ + "$image" ;; - "catimg") - catimg -w "$((width * 2 / font_width))" -r 0 "$image" ||\ - to_off "Image: catimg failed to display the image." + "chafa") + chafa --size="$((width / font_width))x$((height / font_height))" "$image" ;; "jp2a") - jp2a --width="$((width / font_width))" --colors "$image" ||\ - to_off "Image: jp2a failed to display the image." + 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" + ;; + + "pixterm") + pixterm \ + -tc "$((width / font_width))" \ + -tr "$((height / font_height))" \ + "$image" ;; "sixel") - img2sixel -w "$width" "$image" || to_off "Image: libsixel failed to display the image." + img2sixel \ + -w "$width" \ + -h "$height" \ + "$image" ;; "termpix") - termpix --width "$((width / font_width))" "$image" ||\ - to_off "Image: termpix failed to display the image." + termpix \ + --width "$((width / font_width))" \ + --height "$((height / font_height))" \ + "$image" ;; "iterm2") - image="$(base64 < "$image")" - iterm_cmd="\033]1337;File=width=${width}px;height=${height}px;inline=1:${image}" + printf -v iterm_cmd '\e]1337;File=width=%spx;height=%spx;inline=1:%s' \ + "$width" "$height" "$(base64 < "$image")" # Tmux requires an additional escape sequence for this to work. - [[ -n "$TMUX" ]] && iterm_cmd="\033Ptmux;\033${iterm_cmd}\033\\" + [[ -n "$TMUX" ]] && printf -v iterm_cmd '\ePtmux;\e%b\e'\\ "$iterm_cmd" - printf "%b\a\n" "$iterm_cmd" + printf '%b\a\n' "$iterm_cmd" ;; "tycat") - tycat "$image" ||\ - to_off "Image: tycat failed to display the image." + tycat \ + -g "${width}x${height}" \ + "$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. - 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" + ((BASH_VERSINFO[0]>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 ;; esac } to_ascii() { - # Log the error. err "$1" - - # This function makes neofetch fallback to ascii mode. image_backend="ascii" - - # Print the ascii art. - get_ascii + print_ascii # Set cursor position next image/ascii. - printf "%b" "\033[${lines:-0}A\033[9999999D" + printf '\e[%sA\e[9999999D' "${lines:-0}" } 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 @@ -2956,12 +3887,14 @@ 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'}")" # Log length if it doesn't exist. if [[ -z "$length" ]]; then @@ -2970,11 +3903,11 @@ prin() { fi # Format the output. - string="${string/:/${reset}${colon_color}:${info_color}}" + string="${string/:/${reset}${colon_color}${separator:=:}${info_color}}" string="${subtitle_color}${bold}${string}" # Print the info. - printf "%b\n" "${text_padding:+\033[${text_padding}C}${zws}${string}${reset}" + printf '%b\n' "${text_padding:+\e[${text_padding}C}${zws}${string//\\n}${reset} " # Calculate info height. ((++info_height)) @@ -2986,51 +3919,32 @@ prin() { get_underline() { if [[ "$underline_enabled" == "on" ]]; then printf -v underline "%${length}s" - printf "%b%b\n" "${text_padding:+\033[${text_padding}C}${zws}${underline_color}" \ - "${underline// /$underline_char}${reset}" + printf '%b%b\n' "${text_padding:+\e[${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)) - line_breaks+="\n" - - # Tell info() that we printed manually. prin=1 } get_bold() { case "$ascii_bold" in - "on") ascii_bold="\033[1m" ;; + "on") ascii_bold='\e[1m' ;; "off") ascii_bold="" ;; esac case "$bold" in - "on") bold="\033[1m" ;; + "on") bold='\e[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=2086 - builtin echo -E ${1//[[:space:]]/ } + # shellcheck disable=2048,2086 + set -- $* + printf '%s\n' "${*//[[:space:]]/}" set +f } @@ -3041,736 +3955,16 @@ trim_quotes() { } strip_sequences() { - 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}" + strip="${1//$'\e['3[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}" - printf "%s\n" "$strip" -} - -uppercase() { - ((bash_version >= 4)) && printf "%s" "${1^}" + printf '%s\n' "$strip" } # 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" - ;; - - "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" - ;; - - "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" - ;; - - "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}" @@ -3817,15 +4011,15 @@ set_text_colors() { 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")" ;; + *) bar_color_total="$(color "$bar_color_total")" ;; esac } color() { 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" ;; + [0-6]) printf '%b\e[3%sm' "$reset" "$1" ;; + 7 | "fg") printf '\e[37m%b' "$reset" ;; + *) printf '\e[38;5;%bm' "$1" ;; esac } @@ -3833,22 +4027,14 @@ color() { stdout() { image_backend="off" - 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 + 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 } err() { - err+="$(color 1)[!]\033[0m $1\n" + err+="$(color 1)[!]${reset} $1 +" } get_full_path() { @@ -3856,13 +4042,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; } - if ! cd "${1%/*}"; then + ! cd "${1%/*}" && { 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##*/}" @@ -3876,57 +4062,32 @@ get_full_path() { # Final directory. full_dir="$(pwd -P)/${1/*\/}" - [[ -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 + [[ -e "$full_dir" ]] && printf '%s\n' "$full_dir" } get_user_config() { - # Check $config_file. - if [[ -f "$config_file" ]]; then - source "$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" + # --config /path/to/config.conf + if [[ -f "$config_file" ]]; then + source "$config_file" + err "Config: Sourced user config. (${config_file})" + return elif [[ -f "${XDG_CONFIG_HOME}/neofetch/config.conf" ]]; then - config_file="${XDG_CONFIG_HOME}/neofetch/config.conf" + source "${XDG_CONFIG_HOME}/neofetch/config.conf" + err "Config: Sourced user config. (${XDG_CONFIG_HOME}/neofetch/config.conf)" - elif [[ -f "CONFDIR/config.conf" ]]; then - cp "CONFDIR/config.conf" "${XDG_CONFIG_HOME}/neofetch" - config_file="${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)" 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 + # The config file doesn't exist, create it. + printf '%s\n' "$config" > "$config_file" + fi } bar() { @@ -3958,7 +4119,7 @@ cache() { get_cache_dir() { case "$os" in "Mac OS X") cache_dir="/Library/Caches" ;; - *) cache_dir="/tmp" ;; + *) cache_dir="/tmp" ;; esac } @@ -3968,13 +4129,13 @@ kde_config_dir() { if [[ "$kde_config_dir" ]]; then return - elif type -p kf5-config >/dev/null 2>&1; then + elif type -p kf5-config &>/dev/null; then kde_config_dir="$(kf5-config --path config)" - elif type -p kde4-config >/dev/null 2>&1; then + elif type -p kde4-config &>/dev/null; then kde_config_dir="$(kde4-config --path config)" - elif type -p kde-config >/dev/null 2>&1; then + elif type -p kde-config &>/dev/null; then kde_config_dir="$(kde-config --path config)" elif [[ -d "${HOME}/.kde4" ]]; then @@ -3987,204 +4148,55 @@ kde_config_dir() { kde_config_dir="${kde_config_dir/$'/:'*}" } -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 +term_padding() { + # Get terminal padding to properly align cursor. + [[ -z "$term" ]] && get_term case "$term" in - "URxvt"*) - border="$(xrdb -query | awk -F ':' '/^(URxvt|\*).internalBorder/ {printf $2; exit}')" + urxvt*|"rxvt-unicode") + [[ -z "$xrdb" ]] && + xrdb="$(xrdb -query)" + + [[ $xrdb != *".internalBorder:"* ]] && + return + + padding="${xrdb/*.internalBorder:}" + padding="${padding/$'\n'*}" + + [[ $padding =~ ^[0-9]+$ ]] || + padding= ;; esac } dynamic_prompt() { - case "$image_backend" in - "ascii") printf "\n" ;; - "off") return ;; - *) - get_term_padding - lines="$(((border + height + yoffset) / font_height))" - image_prompt="on" - ;; - esac + [[ "$image_backend" == "off" ]] && { printf '\n'; return; } + [[ "$image_backend" != "ascii" ]] && ((lines=(height + yoffset) / font_height + 1)) + [[ "$image_backend" == "w3m" ]] && ((lines=lines + padding / font_height + 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 + # If the ascii art is taller than the info. + ((lines=lines>info_height?lines-info_height+1:1)) - # 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."; } + printf -v nlines "%${lines}s" + printf "%b" "${nlines// /\\n}" } cache_uname() { # Cache the output of uname so we don't # have to spawn it multiple times. - uname=($(uname -sr)) + IFS=" " read -ra uname <<< "$(uname -srm)" kernel_name="${uname[0]}" kernel_version="${uname[1]}" -} + kernel_machine="${uname[2]}" -convert_time() { - # Convert ls timestamp to 'Tue 06 Dec 2016 4:58 PM' format. - year="$1" - day="${3#0}" - - # 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 - ;; - *) time="$4" ;; - esac - - # Toggle showing the time. - [[ "$install_time" == "off" ]] && unset time - - # Print the install date. - printf "%s" "$week_day $day $month $year $time" + if [[ "$kernel_name" == "Darwin" ]]; then + IFS=$'\n' read -d "" -ra sw_vers < <(awk -F'<|>' '/string/ {print $3}' \ + "/System/Library/CoreServices/SystemVersion.plist") + darwin_name="${sw_vers[2]}" + osx_version="${sw_vers[3]}" + osx_build="${sw_vers[0]}" + fi } get_ppid() { @@ -4192,7 +4204,7 @@ get_ppid() { case "$os" in "Windows") ppid="$(ps -p "${1:-$PPID}" | awk '{printf $2}')" - ppid="${ppid/'PPID'}" + ppid="${ppid/PPID}" ;; "Linux") @@ -4213,7 +4225,7 @@ get_process_name() { case "$os" in "Windows") name="$(ps -p "${1:-$PPID}" | awk '{printf $8}')" - name="${name/'COMMAND'}" + name="${name/COMMAND}" name="${name/*\/}" ;; @@ -4237,7 +4249,7 @@ decode_url() { # FINISH UP usage() { printf "%s" "\ -Usage: neofetch --option \"value\" --option \"value\" +Usage: neofetch func_name --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, @@ -4248,11 +4260,31 @@ 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. + 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' NOTE: You can supply multiple args. eg. 'neofetch --disable cpu gpu' + --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, @@ -4279,7 +4311,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 (tiny, on, off) + --distro_shorthand on/off Shorten the output of distro (on, tiny, off) NOTE: This option won't work in Windows (Cygwin) @@ -4287,7 +4319,7 @@ INFO: NOTE: This option won't work in BSDs (except PacBSD and PC-BSD) - --uptime_shorthand on/off Shorten the output of uptime (tiny, on, off) + --uptime_shorthand on/off Shorten the output of uptime (on, tiny, 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) @@ -4315,10 +4347,12 @@ INFO: 'dir' shows the basename of the disks's path. (/, Local Disk, etc) --ip_host url URL to query for public IP - --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. + --ip_timeout int Public IP timeout (in seconds). + --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. + --music_player player-name Manually specify a player to use. + Available values are listed in the config file TEXT FORMATTING: --colors x x x x x x Changes the text colors in this order: @@ -4326,6 +4360,7 @@ 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 @@ -4351,21 +4386,27 @@ BARS: IMAGE BACKEND: --backend backend Which image backend to use. - Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', - 'sixel', 'tycat', 'w3m' + Possible values: 'ascii', 'caca', 'chafa', '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/' + '/path/to/ascii', '/path/to/dir/', 'command output' [ascii] + --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. + --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. - --off Shortcut to use 'off' backend. + --off Shortcut to use 'off' backend (Disable ascii art). NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' @@ -4384,15 +4425,13 @@ ASCII: 'Ubuntu-Studio' or 'Ubuntu-Budgie' to use the flavors. NOTE: Alpine, Arch, CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, - OpenBSD, and Void have a smaller logo variant. + OpenBSD, postmarketOS, 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. @@ -4417,16 +4456,10 @@ 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 + --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 @@ -4443,37 +4476,6 @@ 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* ]] && get_user_config @@ -4481,6 +4483,7 @@ get_args() { while [[ "$1" ]]; do case "$1" in # Info + "--package_managers") package_managers="$2" ;; "--os_arch") os_arch="$2" ;; "--cpu_cores") cpu_cores="$2" ;; "--cpu_speed") cpu_speed="$2" ;; @@ -4499,9 +4502,11 @@ get_args() { "--shell_path") shell_path="$2" ;; "--shell_version") shell_version="$2" ;; "--ip_host") public_ip_host="$2" ;; + "--ip_timeout") public_ip_timeout="$2" ;; + "--song_format") song_format="$2" ;; "--song_shorthand") song_shorthand="$2" ;; - "--install_time") install_time="$2" ;; - "--install_time_format") install_time_format="$2" ;; + "--music_player") music_player="$2" ;; + "--memory_percent") memory_percent="$2" ;; "--cpu_temp") cpu_temp="$2" [[ "$cpu_temp" == "on" ]] && cpu_temp="C" @@ -4514,7 +4519,7 @@ get_args() { case "$arg" in "--disk_show") ;; "-"*) break ;; - *) disk_show+=($arg) + *) disk_show+=("$arg") ;; esac done ;; @@ -4538,7 +4543,7 @@ get_args() { for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do case "$arg" in "-"*) break ;; - *) colors+=($arg) + *) colors+=("$arg") ;; esac done colors+=(7 7 7 7 7 7) @@ -4548,6 +4553,7 @@ get_args() { "--underline") underline_enabled="$2" ;; "--underline_char") underline_char="$2" ;; "--bold") bold="$2" ;; + "--separator") separator="$2" ;; # Color Blocks "--color_blocks") color_blocks="$2" ;; @@ -4576,8 +4582,8 @@ get_args() { # Image backend "--backend") image_backend="$2" ;; "--source") image_source="$2" ;; - "--ascii" | "--caca" | "--catimg" | "--jp2a" | "--iterm2" | "--off" | "--sixel" |\ - "--termpix" | "--tycat" | "--w3m") + "--ascii" | "--caca" | "--chafa" | "--jp2a" | "--iterm2" | "--off" | "--pixterm" |\ + "--sixel" | "--termpix" | "--tycat" | "--w3m" | "--kitty") image_backend="${1/--}" case "$2" in "-"* | "") ;; @@ -4606,7 +4612,7 @@ get_args() { for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do case "$arg" in "-"*) break ;; - *) ascii_colors+=($arg) + *) ascii_colors+=("$arg") esac done ascii_colors+=(7 7 7 7 7 7) @@ -4615,27 +4621,14 @@ 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() { info line_break; } + print_info() { printf '\n'; } ;; - # 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 @@ -4648,43 +4641,4185 @@ get_args() { ;; "--stdout") stdout="on" ;; "-v") verbose="on" ;; + "--print_config") printf '%s\n' "$config"; exit ;; "-vv") set -x; verbose="on" ;; "--help") usage ;; - "--version") version ;; + "--version") + printf '%s\n' "Neofetch $version" + exit 1 + ;; "--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 "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 cols + + # 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" + + # 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 compatability. + get_line_break() { :; } +} + +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 + ;; + + "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 + ;; + + "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"*) + 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 + ;; + + "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"*) + 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 + ;; + + "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 + ;; + + *"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"*) + set_colors 6 6 7 1 + read -rd '' ascii_data <<'EOF' +${c1} .' + .cc' + .cccc. + cccccc. + :ccccccc. + ;ccccccccc + .;cccccc: + .. .;cccc; + 'cccc;.. .,cc; + 'ccccccccc:'. '' + .cccccccccccccc:;. + .cccccccccccccc:,. . + ccccccccccc;'. .;cc. + cccccccc,.. ':cccccc. + :ccc:'. .';ccccc +;;.. .';: +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 + ;; + + "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 + ;; + + "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 + ;; + + "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 + ;; + + "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 + ;; + + "ClearOS"*) + set_colors 2 + read -rd '' ascii_data <<'EOF' +${c1} `.--::::::--.` + .-:////////////////:-. + `-////////////////////////-` + -////////////////////////////- + `//////////////-..-//////////////` + ./////////////: ://///////////. + `//////:..-////: :////-..-//////` + ://////` -///:.``.:///-` ://///: +`///////:. -////////-` `:///////` +.//:--////:. -////-` `:////--://. +./: .////:. --` `:////- :/. +`//-` .////:. `:////- `-//` + :///-` .////:. `:////- `-///: + `/////-` -///: :///- `-/////` + `//////- `///: :///` .//////` + `:////: `///: :///` -////:` + .://: `///: :///` -//:. + .:: `///: :///` -:. + `///: :///` + `... ...` +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"*) + 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") + 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 + ;; + + "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 + ;; + + "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}(\${c3}"${c2}/) +${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 + ;; + + "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 + ;; + + "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 + ;; + + "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"* | "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 + ;; + + "freebsd_small") + set_colors 1 7 3 + read -rd '' ascii_data <<'EOF' +${c1} /\\ _____ /\\ + \\_) (_/ + / \ +| | +| | + \ / + --_____-- +EOF + ;; + + "FreeBSD"*) + set_colors 1 7 3 + 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"*) + # Don't explicitly set colors since + # TosWin2 doesn't reset well. + 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 + ;; + + "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 + ;; + + "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 + ;; + + "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 + ;; + + "GuixSD"*) + set_colors 3 7 6 1 8 + read -rd '' ascii_data <<'EOF' +${c1} .. `. + `--..```..` `..```..--` + .-:///-:::. `-:::///:-. + ````.:::` `:::.```` + -//:` -::- + ://: -::- + `///- .:::` + -+++-:::. + :+/:::- + `-....` +EOF + ;; + + "Haiku"*) + set_colors 2 8 + read -rd '' ascii_data <<'EOF' +${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} +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 + ;; + + "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 + ;; + + "januslinux"*) + set_colors 7 + read -rd '' ascii_data <<'EOF' +${c1} ________________ +|\ \ +| \ \ +| \ \ +| \ ______________\ +| | | +| | | +| | | + \ | januslinux | + \ | | + \ | | + \|______________| +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 + ;; + + "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 + ;; + + "Linux Lite"*) + set_colors 2 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} `-mddhhhhhhhhhddmss` + ./mdhhhhhhhhhhhhhhhhhhhhhh. + :mdhhhhhhhhhhhhhhhhhhhhhhhhhhhm` + :ymhhhhhhhhhhhhhhhyyyyyyhhhhhhhhhy: + `odhyyyhhhhhhhhhy+-````./syhhhhhhhho` + `hhy..:oyhhhhhhhy-`:osso/..:/++oosyyyh` + dhhs .-/syhhhhs`shhhhhhyyyyyyyyyyyyhs +:hhhy` yso/:+syhy/yhhhhhshhhhhhhhhhhhhh: +hhhhho. +hhhys++oyyyhhhhh-yhhhhhhhhhhhhhs +hhhhhhs-`/syhhhhyssyyhhhh:-yhhhhhhhhhhhhh +hhhhhhs `:/+ossyyhyyhhhhs -yhhhhhhhhhhhh +hhhhhhy/ `syyyssyyyyhhhhhh: :yhhhhhhhhhhs +:hhhhhhyo:-/osyhhhhhhhhhhho ohhhhhhhhhh: + sdhhhhhhhyyssyyhhhhhhhhhhh+ +hhhhhhhhs + `shhhhhhhhhhhhhhhhhhhhhhy+` .yhhhhhhhh` + +sdhhhhhhhhhhhhhhhhhyo/. `/yhhhhhhhd` + `:shhhhhhhhhh+---..``.:+yyhhhhhhh: + `:mdhhhhhh/.syssyyyyhhhhhhhd:` + `+smdhhh+shhhhhhhhhhhhdm` + `sNmdddhhhhhhhddm-` +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 + OMMM0, + .;loddo:' loolloddol;. + cKMMMMMMMMMMNWMMMMMMMMMM0: +${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd. + XMMMMMMMMMMMMMMMMMMMMMMMX. +${c3};MMMMMMMMMMMMMMMMMMMMMMMM: +:MMMMMMMMMMMMMMMMMMMMMMMM: +${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX. + kMMMMMMMMMMMMMMMMMMMMMMMMWd. + ${c5}.XMMMMMMMMMMMMMMMMMMMMMMMMMMk + .XMMMMMMMMMMMMMMMMMMMMMMMMK. + ${c6}kMMMMMMMMMMMMMMMMMMMMMMd + ;KMMMMMMMWXXWMMMMMMMk. + .cooc,. .,coo:. +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"*) + 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"*) + set_colors 2 7 + 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 + ;; + + "Linux Mint"* | "LinuxMint"*) + 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 + ;; + + "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 + ;; + + "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"*) + 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 + ;; + + "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 + ;; + + "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 + ;; + + + "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 + ;; + + "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 + ;; + + "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"*) + 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 + ;; + + "Peppermint"*) + set_colors 1 7 3 + read -rd '' ascii_data <<'EOF' +${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) +EOF + ;; + + "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 + ;; + + "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"*) + 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 + ;; + + "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"*) + 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"* | "Red Hat"* | "rhel"*) + 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 + ;; + + "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 + ;; + + "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 + ;; + + "SailfishOS"*) + set_colors 4 5 7 6 + read -rd '' ascii_data <<'EOF' +${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 +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 + ;; + + "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"*) + 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 + ;; + + "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"*) + 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" | "Solaris") + set_colors 3 7 + read -rd '' ascii_data <<'EOF' +${c1} `- ` + `-- `+- .: + .+: `++: -/+- . + `.::` -++/``:::`./+/ `.-/. + `++/-`.` ` /++:` + `` ./:` .: `..`.- +``./+/:- -+++:- + -/+` :. +EOF + ;; + + "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"* | "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 + ;; + + "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-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"*) + set_colors 2 7 + read -rd '' ascii_data <<'EOF' +${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+:` +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") + 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"*) + 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 + ;; + + "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$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}*|~ +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} `-/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/-` +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 + OMMM0, + .;loddo:' loolloddol;. + 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 + ;; + + "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'. + if [[ "${ascii_colors[0]}" != "distro" ]]; then + color_text="off" + set_colors "${ascii_colors[@]}" + fi +} + main() { cache_uname get_os - get_default_config + + # Load default config. + eval "$config" + get_args "$@" + get_simple "$@" [[ "$verbose" != "on" ]] && exec 2>/dev/null get_distro get_bold - get_distro_colors + get_distro_ascii [[ "$stdout" == "on" ]] && stdout # Minix doesn't support these sequences. if [[ "$TERM" != "minix" && "$stdout" != "on" ]]; then # If the script exits for any reason, unhide the cursor. - trap 'printf "\033[?25h\033[?7h"' EXIT + trap 'printf "\e[?25h\e[?7h"' EXIT # Hide the cursor and disable line wrap. - printf "\033[?25l\033[?7l" + printf '\e[?25l\e[?7l' fi image_backend - old_functions get_cache_dir + old_functions print_info dynamic_prompt @@ -4692,14 +8827,15 @@ main() { # rendering issues in specific terminal emulators. [[ "$image_backend" == *w3m* ]] && display_image - # Take a screenshot. - [[ "$scrot" == "on" ]] && take_scrot + # Add neofetch info to verbose output. + err "Neofetch command: $0 $*" + err "Neofetch version: $version" # 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 1s; done + while [[ "$image_loop" == "on" && "$image_backend" == "w3m" ]]; do display_image; sleep 1; done return 0 } diff --git a/neofetch.1 b/neofetch.1 index 160b9905..e5733d41 100644 --- a/neofetch.1 +++ b/neofetch.1 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH NEOFETCH "1" "September 2017" "Neofetch 3.3.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.8. +.TH NEOFETCH "1" "January 2019" "Neofetch 6.0.1" "User Commands" .SH NAME Neofetch \- A fast, highly customizable system info script .SH SYNOPSIS .B neofetch -\fI\,--option "value" --option "value"\/\fR +\fI\,func_name --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,12 +14,35 @@ 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. +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' .IP NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu' .TP +\fB\-\-package_managers\fR on/tiny/off +Hide/Show Package Manager names . (on, tiny, off) +.TP \fB\-\-os_arch\fR on/off Hide/Show OS architecture. .TP @@ -56,8 +79,8 @@ NOTE: This only works on Linux and BSD. 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 (tiny, on, off) +\fB\-\-distro_shorthand\fR on/tiny/off +Shorten the output of distro (on, tiny, off) .IP NOTE: This option won't work in Windows (Cygwin) .TP @@ -66,8 +89,8 @@ Shorten the output of kernel .IP 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 (tiny, on, off) +\fB\-\-uptime_shorthand\fR on/tiny/off +Shorten the output of uptime (on, tiny, off) .TP \fB\-\-refresh_rate\fR on/off Whether to display the refresh rate of each monitor @@ -115,14 +138,21 @@ Takes: name, mount, dir \fB\-\-ip_host\fR url URL to query for public IP .TP +\fB\-\-ip_timeout\fR int +Public IP timeout (in seconds). +.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/Title on separate lines +Print the Artist/Album/Title on separate lines. .TP -\fB\-\-install_time\fR on/off -Enable/Disable showing the time in Install Date output. +\fB\-\-memory_percent\fR on/off +Display memory percentage. .TP -\fB\-\-install_time_format\fR 12h/24h -Set time format in Install Date to be 12 hour or 24 hour. +\fB\-\-music_player\fR player\-name +Manually specify a player to use. +Available values are listed in the config file .SS "TEXT FORMATTING:" .TP \fB\-\-colors\fR x x x x x x @@ -137,6 +167,9 @@ 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 @@ -184,22 +217,24 @@ Possible values: bar, infobar, barinfo, off .TP \fB\-\-backend\fR backend Which image backend to use. -Possible values: 'ascii', 'caca', 'catimg', 'jp2a', 'iterm2', 'off', -\&'sixel', 'tycat', 'w3m' +Possible values: 'ascii', 'caca', 'chafa', '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/' +\&'/path/to/ascii', '/path/to/dir/', 'command output' [ascii] .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. .TP -\fB\-\-catimg\fR source -Shortcut to use 'catimg' backend. +\fB\-\-chafa\fR source +Shortcut to use 'chafa' backend. .TP \fB\-\-iterm2\fR source Shortcut to use 'iterm2' backend. @@ -207,6 +242,12 @@ Shortcut to use 'iterm2' backend. \fB\-\-jp2a\fR source Shortcut to use 'jp2a' backend. .TP +\fB\-\-kitty\fR source +Shortcut to use 'kitty' backend. +.TP +\fB\-\-pixterm\fR source +Shortcut to use 'pixterm' backend. +.TP \fB\-\-sixel\fR source Shortcut to use 'sixel' backend. .TP @@ -220,7 +261,7 @@ Shortcut to use 'tycat' backend. Shortcut to use 'w3m' backend. .TP \fB\-\-off\fR -Shortcut to use 'off' backend. +Shortcut to use 'off' backend (Disable ascii art). .IP NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', \&'/path/to/ascii', '/path/to/dir/' @@ -251,8 +292,6 @@ 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 @@ -292,19 +331,6 @@ 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 @@ -313,6 +339,9 @@ Specify a path to a custom config file \fB\-\-config\fR none Launch the script without a 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 @@ -331,29 +360,5 @@ 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.