pax_global_header00006660000000000000000000000064147062661650014527gustar00rootroot0000000000000052 comment=cf56c60006dab1215108e9bc5b2b8295a8c44d69 hyfetch-1.99.0/000077500000000000000000000000001470626616500132615ustar00rootroot00000000000000hyfetch-1.99.0/.gitattributes000066400000000000000000000001021470626616500161450ustar00rootroot00000000000000# Auto detect text files and perform LF normalization * text=auto hyfetch-1.99.0/.github/000077500000000000000000000000001470626616500146215ustar00rootroot00000000000000hyfetch-1.99.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001470626616500170045ustar00rootroot00000000000000hyfetch-1.99.0/.github/ISSUE_TEMPLATE/content_request.md000066400000000000000000000007321470626616500225520ustar00rootroot00000000000000--- name: Content Request about: Suggest supporting new flags, distros, package managers, etc. title: '' labels: 'content-request' assignees: '' --- ### Describe the content Describe the content you would like to see added to HyFetch. ### Links Please include relevant links to the content. e.g. For distros, include a link to the distro's official website, download link, or development repository. ### Additional context Add any other context about the problem here. hyfetch-1.99.0/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000011451470626616500225320ustar00rootroot00000000000000--- name: Feature Request about: Suggest a new idea for this project title: '' labels: 'feature-request' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. hyfetch-1.99.0/.github/ISSUE_TEMPLATE/hf_bug.md000066400000000000000000000013221470626616500205560ustar00rootroot00000000000000--- name: HyFetch Bug Report about: Create a report for coloring related bugs. title: '' labels: 'hyfetch' assignees: '' --- ### Describe the bug A clear and concise description of what the bug is. - [ ] Does this issue still occur in the master branch? (**Required**) ### Expected behavior A clear and concise description of what you expected to happen. ### Screenshots Please include a screenshot of your system information if the specific system environment is relevant to the bug. If applicable, add screenshots to help explain your problem. ### Config file Please paste the content of `~/.config/hyfetch.json` below: ```json "(here)" ``` ### Additional context Add any other context about the problem here. hyfetch-1.99.0/.github/ISSUE_TEMPLATE/nf_bug.md000066400000000000000000000015061470626616500205700ustar00rootroot00000000000000--- name: Neofetch Bug Report about: Create a report for system-information related bugs. title: '' labels: 'neofetch' assignees: '' --- ### Describe the bug A clear and concise description of what the bug is. - [ ] Does this issue still occur in the master branch? (**Required**) ### Expected behavior A clear and concise description of what you expected to happen. ### Screenshots Please include a screenshot of your system information if the specific system environment is relevant to the bug. If applicable, add screenshots to help explain your problem. ### Config file 1. Run `cp ~/.config/neofetch/config.conf conf.txt` 2. Drag `conf.txt` here to upload it. ### Verbose log 1. Run `neofetch -vv 2> neofetch.log` 2. Drag `neofetch.log` here to upload it. ### Additional context Add any other context about the problem here. hyfetch-1.99.0/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000010261470626616500204210ustar00rootroot00000000000000 ### Description Describe the goals that the pull request accomplishes. ### Relevant Links If there are related issues, please link them here. Please also include links relevant to the changes. e.g. For new distros, include a link to the distro's official website, download link, or development repository. ### Screenshots If applicable, please include screenshots before and after your changes. ### Additional context Add any other context about the problem or changes here. hyfetch-1.99.0/.github/workflows/000077500000000000000000000000001470626616500166565ustar00rootroot00000000000000hyfetch-1.99.0/.github/workflows/arch_package.yml000066400000000000000000000034541470626616500217770ustar00rootroot00000000000000name: arch_package on: release: types: [created] jobs: build: runs-on: ubuntu-latest container: image: archlinux options: --privileged volumes: - /sys/fs/cgroup:/sys/fs/cgroup steps: - name: Prepare environment run: | pacman -Syu --needed --noconfirm base-devel git openssh sed -i '/E_ROOT/d' /usr/bin/makepkg - name: Import AUR key run: | mkdir ~/.ssh && chmod 700 ~/.ssh echo '${{secrets.AUR_SSH_PRIVATE_KEY}}' >> ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H aur.archlinux.org >> /etc/ssh/ssh_known_hosts - name: Clone from AUR run: | export GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git clone ssh://aur@aur.archlinux.org/hyfetch.git - name: Upgrade PKGBUILD run: | cd hyfetch sed -i "/^pkgver=/cpkgver=${{github.ref_name}}" PKGBUILD sed -i "/^pkgrel=/cpkgrel=1" PKGBUILD - name: Makepkg run: | cd hyfetch yes | makepkg -si - name: Test hyfetch run: | hyfetch --test-print - name: Upload binaries to release uses: shogo82148/actions-upload-release-asset@v1 with: upload_url: ${{ github.event.release.upload_url }} asset_path: hyfetch/hyfetch*.pkg.tar.* - name: set git info run: | git config --global user.name "Aleksana BOT" git config --global user.email "me@aleksana.moe" - name: Update PKGBUILD to AUR run: | cd hyfetch rm -r .SRCINFO && makepkg --printsrcinfo >.SRCINFO git stage . && git commit -m "BOT: upgrade to ${{github.ref_name}}" export GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git push hyfetch-1.99.0/.github/workflows/release.yml000066400000000000000000000070671470626616500210330ustar00rootroot00000000000000name: release on: push: branches: - "release/*" jobs: testing: name: testing release runs-on: ubuntu-latest if: ${{ !startsWith(github.event.head_commit.message,'release') }} steps: - name: Checkout repo uses: actions/checkout@v3 - name: Get tags run: git fetch --all --tags - name: Get version run: | BRANCH=$(git symbolic-ref --short HEAD) VER=${BRANCH#*release/} if [[ $(git tag | grep ${VER}rc) ]];then TAGS=$(git tag | grep ${VER}rc | awk 'END {print}') REL=${TAGS##*rc} let REL++ else REL=1 fi echo "BUILDVER=${VER}rc${REL}" >> $GITHUB_ENV - name: Update versions run: | sed -i "/^ *VERSION = /cVERSION = '${{ env.BUILDVER }}'" hyfetch/constants.py - name: Making tags run: | git config user.name github-actions git config user.email github-actions@github.com git stage . git commit -m "tagged unstable ${{ env.BUILDVER }}" git tag --force ${{ env.BUILDVER }} - name: Upload changes run: | git pull && git push && git push --tags - name: Deploy to PYPI uses: casperdcl/deploy-pypi@v2 with: password: ${{ secrets.PYPI_API_TOKEN }} pip: wheel -w dist/ --no-deps . release: name: formal release runs-on: ubuntu-latest if: ${{ startsWith(github.event.head_commit.message,'release') }} steps: - name: Checkout repo uses: actions/checkout@v3 with: fetch-depth: 0 - name: Get version run: | BRANCH=$(git symbolic-ref --short HEAD) echo "BUILDVER=${BRANCH#*release/}" >> $GITHUB_ENV - name: Update package.json uses: jossef/action-set-json-field@v2 with: file: package.json field: version value: ${{ env.BUILDVER }} - name: Update neofetch version run: | REVISION=$(expr $(git rev-list --count HEAD neofetch) - 2902) sed -i "/^ *version=/cversion=7.4.0r${REVISION}" neofetch - name: Update other versions run: | sed -i "/^ *VERSION = /cVERSION = '${{ env.BUILDVER }}'" hyfetch/constants.py sed -i "/^ *### Unpublished/c### ${{ env.BUILDVER }}" README.md - name: Make final tags run: | git config user.name github-actions git config user.email github-actions@github.com git stage . && git commit -m "tagged stable ${{ env.BUILDVER }}" git tag --force ${{ env.BUILDVER }} - name: Merge branch and push run: | parent=$(git show-branch \ | grep -F '*' \ | grep -v "$(git rev-parse --abbrev-ref HEAD)" \ | head -n1 \ | sed 's/.*\[\(.*\)\].*/\1/' \ | sed 's/[\^~].*//') git checkout ${parent} git merge release/${{ env.BUILDVER }} --allow-unrelated-histories git pull --all && git push --all && git push --tags - name: Generate changelog from README run: (sed '0,/^ *### ${{ env.BUILDVER }}/d;/^ *#/,$d' temp_CHANGELOG.md - name: Publish release uses: ncipollo/release-action@v1 with: bodyFile: "temp_CHANGELOG.md" tag: ${{ env.BUILDVER }} token: ${{ secrets.GH_TOKEN }} hyfetch-1.99.0/.github/workflows/shellcheck.yml000066400000000000000000000007141470626616500215100ustar00rootroot00000000000000name: Shellcheck on: push: branches: [ "master" ] pull_request: branches: [ "master" ] workflow_dispatch: jobs: # Shellcheck check: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: Install shellcheck run: sudo apt-get update && sudo apt-get install -y shellcheck - name: Run shellcheck run: | shellcheck -V shellcheck neofetch ./neofetch hyfetch-1.99.0/.gitignore000066400000000000000000000025721470626616500152570ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # Custom .idea ._* webhook-log start_moderation.sh gh_moderator.toml moderator-data hyfetch/githyfetch-1.99.0/.vscode/000077500000000000000000000000001470626616500146225ustar00rootroot00000000000000hyfetch-1.99.0/.vscode/launch.json000066400000000000000000000006731470626616500167750ustar00rootroot00000000000000{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: Module", "type": "python", "request": "launch", "module": "hyfetch", "justMyCode": true } ] }hyfetch-1.99.0/CONTRIBUTING.md000066400000000000000000000074451470626616500155240ustar00rootroot00000000000000# 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 ;; ``` hyfetch-1.99.0/LICENSE.md000066400000000000000000000020731470626616500146670ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2015-2023 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. hyfetch-1.99.0/MANIFEST.in000066400000000000000000000003031470626616500150130ustar00rootroot00000000000000include hyfetch/scripts/* recursive-exclude tools * recursive-exclude .github * recursive-exclude .vscode * exclude .gitignore exclude .gitattributes exclude package.json exclude CONTRIBUTING.mdhyfetch-1.99.0/README.md000066400000000000000000001352021470626616500145430ustar00rootroot00000000000000# HyFetch neofetch with pride flags <3 screenshot ### Running Updated Original Neofetch This repo also serves as an updated version of the original `neofetch` since the upstream [dylanaraps/neofetch](https://github.com/dylanaraps/neofetch) isn't maintained anymore and has been archived. If you only want to use the updated neofetch without pride flags, you can use the `neofetch` script from this repo. To prevent command name conflict, I call it `neowofetch` :) * Method 1: `pip install -U hyfetch` then run `neowofetch` * Method 2: `npx neowofetch` * Method 3: `P="$HOME/.local/bin/neowofetch" && curl -L nf.hydev.org -o "$P" && chmod +x "$P"` * Method 4: Run without install `bash <(curl -sL nf.hydev.org)` ## Installation ### Method 1: Install using Python pip (Recommended) Install Python >= 3.7 first. Then, just do: ```sh pip install -U hyfetch # or pipx install hyfetch ``` ### Method 2: Install using system package manager Currently, these distributions have existing packages for HyFetch: * Universal [Lure.sh](https://lure.sh/): `lure in hyfetch` (Thanks to [@Elara6331](https://github.com/Elara6331)) * Arch Linux: `sudo pacman -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa) and [@Antiz96](https://github.com/Antiz96)) * Fedora Linux: `sudo dnf install hyfetch` (packaged by [@topazus](http://github.com/topazus)) * Nix: `nix-env -i hyfetch` (Thanks to [@YisuiDenghua](https://github.com/YisuiDenghua)) * Nix Profile: `nix profile install nixpkgs#hyfetch` * Guix: `guix install hyfetch` (Thanks to [@WammKD](https://github.com/WammKD)) * Slackware: `sbopkg -b hyfetch` [Slackbuild](https://slackbuilds.org/repository/15.0/desktop/hyfetch/?search=hyfetch) (Thanks to [@bittin](https://github.com/bittin) and Urchlay) * Homebrew: `brew install hyfetch` (Thanks to [@catumin](https://github.com/catumin) and [@osalbahr](https://github.com/osalbahr)) * openSUSE Tumbleweed: `zypper in python311-hyfetch` (Thanks to [@catumin](https://github.com/catumin)) * Gentoo: `emerge --ask app-misc/hyfetch` (Thanks to [@catumin](https://github.com/catumin)) * Debian and Ubuntu `apt install hyfetch` (for Debian flavor >= [Trixie](https://packages.debian.org/trixie/hyfetch), Ubuntu flavor >= [Noble](https://packages.ubuntu.com/noble/hyfetch)) (Thanks to [@catumin](https://github.com/catumin)) [![Packaging status](https://repology.org/badge/vertical-allrepos/hyfetch.svg?columns=4&exclude_unsupported=1)](https://repology.org/project/hyfetch/versions) ### Method 3: Install the latest developmental version using git Install Python >= 3.7 first. Then run the following commands: ```sh git clone https://github.com/hykilpikonna/hyfetch.git cd hyfetch pip install . ``` ## Usage When you run `hyfetch` for the first time, it will prompt you to choose a color system and a preset. Just follow the prompt, and everything should work (hopefully). If something doesn't work, feel free to submit an issue! If you want to use the updated `neofetch` without LGBTQ flags, check out [this section](https://github.com/hykilpikonna/hyfetch#running-updated-original-neofetch) ## Questions and answers #### Q: How do I change my config? A: Use `hyfetch -c` #### Q: What do I do if the color is too dark/light for my theme? A: You can try setting the colors' "lightness" in the configuration menu. The value should be between 0 and 1. For example, if you are using dark theme and the rainbow flag is too dark to display, you can set lightness to 0.7. Feel free to experiment with it! ![image](https://user-images.githubusercontent.com/22280294/162614553-eb758e4e-1936-472c-8ca7-b601c696c6eb.png) #### Q: Why do you use pride flag's coloring? I don't think it looks nice at all. A: The core idea behind HyFetch coloring isn't just to make logos look nicer, it's about representation and identity. While it's okay to assess the visual appeal, you also need to understand that the LGBTQ+ flag colors serves a much deeper purpose than just aesthetics. For many in the LGBTQ+ community, these flags symbolize their identity, struggles, and pride. Integrating these symbols into a showcase of the tech specs they share can provide a sense of empowerment. It's combining their enthusiasm for their favorite distro / hardware with their LGBTQ+ identity. Also, by including flag coloring along with the updated neofetch, we're also broadcasting a wider message about the importance of inclusivity and representation. It's not just a design choice, it's a statement that promotes awareness and understanding toward the LGBTQ+ community. #### Q: When I use `hyfetch` or `neowofetch` in my MotD, no art displays. How do I get the art back? A: Most likely, the `stdout` detection is set to auto and is removing the ascii art and colors. To change this, you can: set `args` in your hyfetch.json to `"--stdout=off"`, add `--stdout=off` to the `neowofetch` command in your motd script, or set the option in $HOME/.config/(neofetch|neowofetch)/config.conf to off. #### Q: How can I run HyFetch on Windows? A: Install Python > 3.7 and Git > 2.42.0 first. Then, either open Git Bash terminal or install a terminal emulator that can display RGB colors (the default Windows cmd.exe cannot, but the new [Windows Terminal](https://apps.microsoft.com/detail/9N0DX20HK701?hl=en-US&gl=US) can). Then, run `pip install hyfetch` and run `hyfetch`. ## Contributing To make changes to our codebase, you first need to create a fork by clicking the "Fork" button on the top right. Then, you can clone your fork of the source code using `git clone https://github.com/{your username}/hyfetch.git`. After making changes to the source code, you can run `python -m hyfetch` in the root directory of your repo to test out your changes. If they work correctly, you can commit and push these changes using git command or Github Desktop. Then, you can create a pull request on Github so that it can go into our next release! You can also install your version locally by running `pip install .` in the repo root. ## Change Log ### About Notation Updates to HyFetch begins with the emoji 🌈 Updates to `neowofetch` begins with the emoji 🖼️ ### TODO * [ ] (Important!) Refactor flag storage & coloring to support non-stride patterns * [ ] Config menu: Allow left-right arrow keys for pagination ### Nightly Note: You can install the latest nightly version by using: ```sh pip install git+https://github.com/hykilpikonna/hyfetch.git@master ``` ### 1.99.0 This version would be the last version of HyFetch on Python as we migrate to Rust (Huge thanks to everyone on [#317](https://github.com/hykilpikonna/hyfetch/pull/317)!). It will also be an effort to start a transition that phases out the neowofetch/neofetch backend in favor of FastFetch, since the time needed to maintain the NF backend currently exceed our capacity. If you are willing to help maintaining it, please let us know! * 🌈 **Improve Windows support** * 🌈 **Include FastFetch into HyFetch PyPI package** * 🌈 Detached our fork from neofetch * 🌈 Build architecture-specific wheels for PyPI * 🌈 Add plural flag (bc8499e2) * 🌈 Add genderflux and girlflux flags ([#263](https://github.com/hykilpikonna/hyfetch/pull/263)) * 🌈 Add Fraysexual flag ([#277](https://github.com/hykilpikonna/hyfetch/pull/277)) * 🌈 Add Xenogender flag ([#309](https://github.com/hykilpikonna/hyfetch/pull/309)) * 🌈 Add Caninekin flag ([#318](https://github.com/hykilpikonna/hyfetch/pull/318)) * 🌈 Add Kenochoric, veldian, solian, lunian flags ([#331](https://github.com/hykilpikonna/hyfetch/pull/331)) * 🌈 Add Polyamorous, sapphic, androgyne, interprogress, progress, intersex, equal-rights, drag, neofluid, genderqueer, and pronoun flags ([#342](https://github.com/hykilpikonna/hyfetch/pull/342)) * 🌈 Add Gilbert Baker's original rainbow flag ([#284](https://github.com/hykilpikonna/hyfetch/pull/284)) * 🌈 Add Queer subculture flags ([#302](https://github.com/hykilpikonna/hyfetch/pull/302)) * 🌈 Add random flag option ([#334](https://github.com/hykilpikonna/hyfetch/pull/334)) * 🌈 Fix distro logo triple-quotation mark escaping ([#222](https://github.com/hykilpikonna/hyfetch/pull/222)) * 🌈 Fix Windows encoding issue on non-English systems ([#294](https://github.com/hykilpikonna/hyfetch/pull/294)) * 🌈 Fix termux compatibility ([#286](https://github.com/hykilpikonna/hyfetch/pull/286)) * 🌈 Fix term background detection not resetting properly ([#298](https://github.com/hykilpikonna/hyfetch/pull/298)) * 🌈 Make typing-extensions optional ([#299](https://github.com/hykilpikonna/hyfetch/pull/299)) * 🌈 Remove setuptools dependency ([#325](https://github.com/hykilpikonna/hyfetch/pull/325)) * 🌈 Allow lightness value without a '%' sign in config prompt ([#307](https://github.com/hykilpikonna/hyfetch/pull/307)) * 🌈 Fix Windows 7 and Python 3.7.0 support. * 🖼 OS - Update Apple hardware ID list ([#256](https://github.com/hykilpikonna/hyfetch/pull/256)) * 🖼 OS - Remove Lilu detection for hackintosh ([#310](https://github.com/hykilpikonna/hyfetch/pull/310)) * 🖼 OS - Support host info on PowerPC Macs ([#341](https://github.com/hykilpikonna/hyfetch/pull/341)) * 🖼 DE - Show Kinfo for Plasma 6 ([#269](https://github.com/hykilpikonna/hyfetch/pull/269)) * 🖼 GPU - Fix GPU not displaying in Haiku (dylanaraps#2448) * 🖼 GPU - List all intel GPU as detected ([#348](https://github.com/hykilpikonna/hyfetch/pull/348)) * 🖼 Distro - Add eweOS ([#252](https://github.com/hykilpikonna/hyfetch/pull/252)) * 🖼 Distro - Add Fedora Immutable distros (dylanaraps#2434) * 🖼 Distro - Add Macaroni OS (dylanaraps#2424) * 🖼 Distro - Add Ironclad OS ([#219](https://github.com/hykilpikonna/hyfetch/pull/219)) * 🖼 Distro - Add Chimera Linux ([#285](https://github.com/hykilpikonna/hyfetch/pull/285)) * 🖼 Distro - Add Tatra (dylanaraps#2439) * 🖼 Distro - Add Furreto Linux ([#290](https://github.com/hykilpikonna/hyfetch/pull/290)) * 🖼 Distro - Add BlackMesa ([#316](https://github.com/hykilpikonna/hyfetch/pull/316)) * 🖼 Distro - Add Magix ([#338](https://github.com/hykilpikonna/hyfetch/pull/338)) * 🖼 Distro - Add Mauna ([#343](https://github.com/hykilpikonna/hyfetch/pull/343)) * 🖼 Distro - Add Arkane Linux ([#321](https://github.com/hykilpikonna/hyfetch/pull/321)) * 🖼 Distro - Add Linux From Scratch ([#336](https://github.com/hykilpikonna/hyfetch/pull/336)) * 🖼 Distro - Fix debian version on Ubuntu ([#195](https://github.com/hykilpikonna/hyfetch/pull/195)) * 🖼 Ascii - Update PikaOS logo ([#231](https://github.com/hykilpikonna/hyfetch/pull/231)) * 🖼 Ascii - Add Fedora unicode logo ([#238](https://github.com/hykilpikonna/hyfetch/pull/238)) * 🖼 Ascii - Fix colors not reverting properly ([#314](https://github.com/hykilpikonna/hyfetch/pull/314)) * 🖼 Ascii - Fix AmogOS backslash escape ([#339](https://github.com/hykilpikonna/hyfetch/pull/339)) * 🖼 Ascii - Add colorful NixOS logo ([#311](https://github.com/hykilpikonna/hyfetch/pull/311)) * 🖼 Terminal - Fix terminal emulator selection ([#220](https://github.com/hykilpikonna/hyfetch/pull/220)) * 🖼 Terminal - Fix terminal font info for yakuake ([#235](https://github.com/hykilpikonna/hyfetch/pull/235)) * 🖼 Terminal - Add Apple Terminal ([#272](https://github.com/hykilpikonna/hyfetch/pull/272)) * 🖼 Editor - Display neovim version ([#267](https://github.com/hykilpikonna/hyfetch/pull/267)) * 🖼 Package - Add an option to hide some package managers ([#257](https://github.com/hykilpikonna/hyfetch/pull/257)) * 🖼 Package - Add "AM" application manager ([#234](https://github.com/hykilpikonna/hyfetch/pull/234)) * 🖼 Package - Fix npm list count mismatch ([#240](https://github.com/hykilpikonna/hyfetch/pull/240)) * 🖼 Package - Add pnpm ([#288](https://github.com/hykilpikonna/hyfetch/pull/288)) * 🖼 Package - Add pkgx.sh ([#265](https://github.com/hykilpikonna/hyfetch/pull/265)) * 🖼 Package - Add pip, bonsai, rad, radula, birb ([#337](https://github.com/hykilpikonna/hyfetch/pull/337)) * 🖼 Package - Add MacPorts for Linux support ([#340](https://github.com/hykilpikonna/hyfetch/pull/340)) * 🖼 Package - Use XDG path for Nix package counting ([#255](https://github.com/hykilpikonna/hyfetch/pull/255)) * 🖼 Package - Fix short package count ([#305](https://github.com/hykilpikonna/hyfetch/pull/305)) * 🖼 Song - Add Cider player ([#245](https://github.com/hykilpikonna/hyfetch/pull/245)) * 🖼 Network - Fix network speed detection on macOS ([#360](https://github.com/hykilpikonna/hyfetch/pull/360)) ### 1.4.11 * 🌈 Add ability to set backend args in hyfetch config file ([#181](https://github.com/hykilpikonna/hyfetch/pull/181)) * 🌈 Update makefile to be able to install hyfetch ([#174](https://github.com/hykilpikonna/hyfetch/pull/174)) * 🌈 Fix config file argument ([#177](https://github.com/hykilpikonna/hyfetch/pull/177)) * 🌈 Support pipx installation ([#188](https://github.com/hykilpikonna/hyfetch/pull/188), [#192](https://github.com/hykilpikonna/hyfetch/pull/192)) * 🌈 Create package for Debian, OpenSUSE, Homebrew, Gentoo, and lure.sh ([#184](https://github.com/hykilpikonna/hyfetch/pull/184), [#194](https://github.com/hykilpikonna/hyfetch/pull/194), [#207](https://github.com/hykilpikonna/hyfetch/pull/207), [#206](https://github.com/hykilpikonna/hyfetch/pull/206)) Huge thanks to @catumin! * 🖼 DE - Fix DE empty bracket in macOS ([#172](https://github.com/hykilpikonna/hyfetch/pull/172)) * 🖼 OS - Disable Hackintosh check on arm64 processors ([dylanaraps#2396](https://github.com/dylanaraps/neofetch/pull/2396)) * 🖼 OS - Add Windows NT ([#217](https://github.com/hykilpikonna/hyfetch/pull/217)) * 🖼 Distro - Fixed Kubuntu recognized as Ubuntu ([dylanaraps#2411](https://github.com/dylanaraps/neofetch/pull/2411)) * 🖼 Distro - Use /etc/debian_version to get .x on Debian ([#191](https://github.com/hykilpikonna/hyfetch/pull/191)) * 🖼 Distro - Add LainOS ([#190](https://github.com/hykilpikonna/hyfetch/pull/190)) * 🖼 Distro - Add aerOS ([dylanaraps#2360](https://github.com/dylanaraps/neofetch/pull/2360)) * 🖼 Distro - Add Xenia ([#197](https://github.com/hykilpikonna/hyfetch/pull/197)) * 🖼 Distro - Add EndeavourOS Small Option ([dylanaraps#2391](https://github.com/dylanaraps/neofetch/pull/2391)) * 🖼 Distro - Add AZOS ([dylanaraps#2339](https://github.com/dylanaraps/neofetch/pull/2339)) * 🖼 Distro - Add MainsailOS ([dylanaraps#2407](https://github.com/dylanaraps/neofetch/pull/2407)) * 🖼 Distro - Add Interix ([dylanaraps#2409](https://github.com/dylanaraps/neofetch/pull/2409)) * 🖼 Distro - Add Peropesis Linux ([dylanaraps#2414](https://github.com/dylanaraps/neofetch/pull/2414)) * 🖼 Distro - Add Adélie Linux ([#218](https://github.com/hykilpikonna/hyfetch/pull/218)) * 🖼 Distro - Add Xray_OS ([dylanaraps#2413](https://github.com/dylanaraps/neofetch/pull/2413)) * 🖼 Ascii - Update AOSC logo ([#185](https://github.com/hykilpikonna/hyfetch/pull/185)) * 🖼 Ascii - Update phyOS logo ([#211](https://github.com/hykilpikonna/hyfetch/pull/211)) * 🖼 Ascii - Update Parch logo ([dylanaraps#2045](https://github.com/dylanaraps/neofetch/pull/2045)) * 🖼 Ascii - Add linux_small ([dylanaraps#2417](https://github.com/dylanaraps/neofetch/pull/2417)) * 🖼 Bug Fix - Fix color blocks for bash !=3 & <5 ([#170](https://github.com/hykilpikonna/hyfetch/pull/170)) * 🖼 Bug Fix - Use sed -r instead of -E when using GNU sed ([#171](https://github.com/hykilpikonna/hyfetch/pull/171)) * 🖼 Resolution - Improved MacOS resolution detection ([dylanaraps#2356](https://github.com/dylanaraps/neofetch/pull/2356)) * 🖼 Terminal - Add support for alacritty's new config format ([#202](https://github.com/hykilpikonna/hyfetch/pull/202)) * 🖼 Terminal - Check for newer xfce4-term config ([#214](https://github.com/hykilpikonna/hyfetch/pull/214)) * 🖼 Package - Add support for npm global packages ([#215](https://github.com/hykilpikonna/hyfetch/pull/215)) ### 1.4.10 * 🌈 Add support for qwqfetch backend ([#148](https://github.com/hykilpikonna/hyfetch/pull/148)) * 🌈 Add nonhuman-unity flag ([#139](https://github.com/hykilpikonna/hyfetch/pull/139)) * 🌈 Add gynesexual, androsexual flags ([#157](https://github.com/hykilpikonna/hyfetch/pull/157)) * 🌈 Add option to disable pride month animation ([#134](https://github.com/hykilpikonna/hyfetch/pull/134)) * 🌈 Make ^C error message less aggressive (?) * 🌈 Fix: Should not assume ~/.config is writable ([#136](https://github.com/hykilpikonna/hyfetch/pull/136)) * 🌈 Fix: Foreground-background arrangement not detected ([#154](https://github.com/hykilpikonna/hyfetch/pull/154)) * 🖼 OS - Update macOS version name list ([#140](https://github.com/hykilpikonna/hyfetch/pull/140)) * 🖼 Ascii - Improve color removal ([#161](https://github.com/hykilpikonna/hyfetch/pull/161)) * 🖼 Ascii - Fix reset character performance ([#158](https://github.com/hykilpikonna/hyfetch/pull/158)) * 🖼 Distro - Smoothen the Tumbleweed logo ([dylanaraps#2342](https://github.com/dylanaraps/neofetch/pull/2342)) * 🖼 Distro - Update RebornOS logo ([dylanaraps#2358](https://github.com/dylanaraps/neofetch/pull/2358)) * 🖼 Distro - Update Venom Linux logo ([#166](https://github.com/hykilpikonna/hyfetch/pull/166)) * 🖼 Distro - Add Windows 95 ASCII logo ([dylanaraps#2346](https://github.com/dylanaraps/neofetch/pull/2346)) * 🖼 Distro - Add ParchLinux ([dylanaraps#2045](https://github.com/dylanaraps/neofetch/pull/2045)) * 🖼 Distro - Add OpenKylin ([dylanaraps#2341](https://github.com/dylanaraps/neofetch/pull/2341)) * 🖼 Distro - Add EvolutionOS ([dylanaraps#2350](https://github.com/dylanaraps/neofetch/pull/2350)) * 🖼 Distro - Add Salix ([dylanaraps#2357](https://github.com/dylanaraps/neofetch/pull/2357)) * 🖼 Distro - Add Panwah ([dylanaraps#2355](https://github.com/dylanaraps/neofetch/pull/2355)) * 🖼 Distro - Add PhyOS ([#142](https://github.com/hykilpikonna/hyfetch/pull/142)) * 🖼 Distro - Add Athena OS ([#130](https://github.com/hykilpikonna/hyfetch/pull/130)) * 🖼 Distro - Add Meowix ([#159](https://github.com/hykilpikonna/hyfetch/pull/159)) * 🖼 Distro - Add Slackel ([#167](https://github.com/hykilpikonna/hyfetch/pull/167)) * 🖼 Distro - Support *Wrt variants ([dylanaraps#2352](https://github.com/dylanaraps/neofetch/pull/2352)) * 🖼 Version - Fix a typo that broke OS detection on WSL ([#155](https://github.com/hykilpikonna/hyfetch/pull/155)) * 🖼 Packages - Implement --package_separate flag ([#135](https://github.com/hykilpikonna/hyfetch/pull/135)) * 🖼 Packages - Separate flatpak-system and flatpak-user ([#135](https://github.com/hykilpikonna/hyfetch/pull/135)) * 🖼 Packages - Add steam as a package manager ([#152](https://github.com/hykilpikonna/hyfetch/pull/152)) * 🖼 Packages - Add squirrel package manager ([#153](https://github.com/hykilpikonna/hyfetch/pull/153)) * 🖼 Packages - Make cargo run on all systems ([#146](https://github.com/hykilpikonna/hyfetch/pull/146)) * 🖼 Packages - Fix cargo package count ([#144](https://github.com/hykilpikonna/hyfetch/pull/144)) * 🖼 Packages - Add Devbox package manager ([#137](https://github.com/hykilpikonna/hyfetch/pull/137)) * 🖼 Packages - Fix phantom package when pm command fails ([#145](https://github.com/hykilpikonna/hyfetch/pull/145)) * 🖼 Packages - Update scratch package manager ([#165](https://github.com/hykilpikonna/hyfetch/pull/165)) * 🖼 Editor - Better version detection * 🖼 Resolution - Improve macOS resolution detection ([dylanaraps#2356](https://github.com/dylanaraps/neofetch/pull/2356)) * 🖼 Resolution - Add resolution lookup for iOS ([#164](https://github.com/hykilpikonna/hyfetch/pull/164)) * 🖼 Desktop - Display global KDE Plasma theme ([#163](https://github.com/hykilpikonna/hyfetch/pull/163)) * 🖼 IP - Improve macOS local IP detection ([dylanaraps#2362](https://github.com/dylanaraps/neofetch/pull/2362)) * 🖼 IP - Fix macOS route hangs on reverse DNS lookup * 🖼 Config - Allow specifying default config to copy to ~/.config ([#133](https://github.com/hykilpikonna/hyfetch/pull/133)) ### 1.4.9 * 🌈 Add pride month easter-egg animation! ⭐️ * 🌈 Autocompletion for bash, zsh, tcsh ([#96](https://github.com/hykilpikonna/hyfetch/pull/96)) * 🌈 Add nix profile installation method ([#114](https://github.com/hykilpikonna/hyfetch/pull/114)) * 🌈 Add experimental color overlay function for more accurate lightness adjusting (using `--c-overlay`) * 🌈 Allow neofetch argument passthrough (using `--args='...'`) * 🌈 Show recommended terminal size ([#129](https://github.com/hykilpikonna/hyfetch/pull/129)) * 🌈 Update issue & pull request templates * 🖼 Hostname - Fix FQDN substitution * 🖼 Version - Fix Windows version detection ([dylanaraps#2309](https://github.com/dylanaraps/neofetch/pull/2309)) * 🖼 Packages - Fix winget stuck on agreement ([#82](https://github.com/hykilpikonna/hyfetch/pull/82)) * 🖼 Distro - Fix Windows text encoding ([#115](https://github.com/hykilpikonna/hyfetch/pull/115)) * 🖼 Distro - Add Astra Linux ([dylanaraps#2313](https://github.com/dylanaraps/neofetch/pull/2313)) * 🖼 Distro - Add FemboyOS ([#121](https://github.com/hykilpikonna/hyfetch/pull/121)) * 🖼 Distro - Add Nobara Linux ([dylanaraps#2326](https://github.com/dylanaraps/neofetch/pull/2326)) * 🖼 Font - Fix Konsole ppid detection ([#116](https://github.com/hykilpikonna/hyfetch/pull/116)) * 🖼 Font - Fix Konsole terminal font detection ([#127](https://github.com/hykilpikonna/hyfetch/pull/127)) * 🖼 Image - Optimize sixel image display ([dylanaraps#2316](https://github.com/dylanaraps/neofetch/pull/2316)) ### 1.4.8 * 🌈 Improved Windows git bash detection ([#99](https://github.com/hykilpikonna/hyfetch/pull/99)) * 🌈 Improved color formatting codes ([#101](https://github.com/hykilpikonna/hyfetch/pull/101)) * 🌈 Allow specifying distro in config ([#102](https://github.com/hykilpikonna/hyfetch/pull/102)) * 🌈 Allow specifying custom ascii files ([#104](https://github.com/hykilpikonna/hyfetch/pull/104)) * 🌈 Add omniromantic and pangender flags ([#106](https://github.com/hykilpikonna/hyfetch/pull/106)) * 🌈 Now officially packaged for ArchLinux Community & Slackware! ([#112](https://github.com/hykilpikonna/hyfetch/pull/112) | [#109](https://github.com/hykilpikonna/hyfetch/pull/109)) * 🖼 Host - Update Apple device model detection. ([#111](https://github.com/hykilpikonna/hyfetch/pull/111)) * 🖼 Distro - Add Salient OS. ([dylanaraps#2301](https://github.com/dylanaraps/neofetch/pull/2301)) * 🖼 Distro - Add PikaOS. ([#105](https://github.com/hykilpikonna/hyfetch/pull/105)) * 🖼 Distro - Add Archcraft minimal variant. ([#108](https://github.com/hykilpikonna/hyfetch/pull/108)) * 🖼 Distro - Update Vanilla logo. ([#98](https://github.com/hykilpikonna/hyfetch/pull/98)) * 🖼 Distro - ChromeOS version improvements. ([dylanaraps#2305](https://github.com/dylanaraps/neofetch/pull/2305)) * 🖼 CPU - Improved multi-cpu ARM chip detection. ([#97](https://github.com/hykilpikonna/hyfetch/pull/97)) * 🖼 Packages - Support pipx package manager. ([#107](https://github.com/hykilpikonna/hyfetch/pull/107)) ### 1.4.7 * 🌈 Better Windows compatibility ([#45](https://github.com/hykilpikonna/hyfetch/pull/45), [#84](https://github.com/hykilpikonna/hyfetch/pull/84), [#87](https://github.com/hykilpikonna/hyfetch/pull/87), [#89](https://github.com/hykilpikonna/hyfetch/pull/89)) * 🌈 Add gendervoid flags ([#81](https://github.com/hykilpikonna/hyfetch/pull/81)) * 🌈 Fix ASCII extractor escape sequence generation ([#90](https://github.com/hykilpikonna/hyfetch/pull/90), [#91](https://github.com/hykilpikonna/hyfetch/pull/91)) * 🖼 Distro - Add CuteOS ([dylanaraps#2291](https://github.com/dylanaraps/neofetch/pull/2291)) * 🖼 Distro - Add Floflis ([dylanaraps#2289](https://github.com/dylanaraps/neofetch/pull/2289)) * 🖼 Distro - Add ArseLinux ([dylanaraps#2295](https://github.com/dylanaraps/neofetch/pull/2295)) * 🖼 Distro - Better Solaris support ([dylanaraps#2293](https://github.com/dylanaraps/neofetch/pull/2293)) * 🖼 Packages - Fix scoop package manager for Windows ([#93](https://github.com/hykilpikonna/hyfetch/pull/93)) * 🖼 Packages - Add Evox package manager for Stock Linux ([#95](https://github.com/hykilpikonna/hyfetch/pull/95)) * 🖼 WM - Fix false positive wm process name detection ([#88](https://github.com/hykilpikonna/hyfetch/pull/88), [#94](https://github.com/hykilpikonna/hyfetch/pull/94)) * 🖼 Misc - Added BIOS and bluetooth detection ### 1.4.6 * 🌈 Add compatibility for FastFetch version `>1.8.0` ([#62](https://github.com/hykilpikonna/hyfetch/pull/62)) * 🖼 Distro - Add Aperture Science ascii art ([#61](https://github.com/hykilpikonna/hyfetch/pull/61)) * 🖼 Distro - Add RhaymOS ([dylanaraps#2274](https://github.com/dylanaraps/neofetch/pull/2274)) * 🖼 Editor - Add editor information detection ([dylanaraps#2271](https://github.com/dylanaraps/neofetch/pull/2271)) * 🖼 Packages - Fix empty cargo directory ([#58](https://github.com/hykilpikonna/hyfetch/pull/58)) * 🖼 Terminal - Display gnome-console instead of kgx ([dylanaraps#2277](https://github.com/dylanaraps/neofetch/pull/2277)) * 🖼 Terminal - Fix terminal detection with new get_process_name function * 🖼 CPU - Detect ISA string on RISC-V CPUs ([#60](https://github.com/hykilpikonna/hyfetch/pull/60)) * 🖼 Song - Fix CMUS player song detection on macOS ([#55](https://github.com/hykilpikonna/hyfetch/pull/55)) * 🖼 Network - Fix macOS network detection ([#56](https://github.com/hykilpikonna/hyfetch/pull/56)) * 🖼 Misc - Change LICENSE year to 2023 ([#59](https://github.com/hykilpikonna/hyfetch/pull/59)) ### 1.4.5 * 🌈 **Support using FastFetch as a HyFetch backend** (`hyfetch -b fastfetch`) * 🌈 Add config file argument ([#48](https://github.com/hykilpikonna/hyfetch/pull/48)) * 🌈 Fix problems caused by color detection on Windows ([#16](https://github.com/hykilpikonna/hyfetch/pull/16)) * 🌈 Support pure-python distro detection for FastFetch * 🖼️ Distro - Add Aster Linux ([dylanaraps#2251](https://github.com/dylanaraps/neofetch/pull/2251)) * 🖼️ Distro - Add Hybrid Linux ([dylanaraps#2239](https://github.com/dylanaraps/neofetch/pull/2239)) * 🖼️ Distro - Add UrukOS ([dylanaraps#2258](https://github.com/dylanaraps/neofetch/pull/2258)) * 🖼️ Distro - Add Project Sasanqua ([dylanaraps#2264](https://github.com/dylanaraps/neofetch/pull/2264)) * 🖼️ Distro - Add Kali small variant ([dylanaraps#2242](https://github.com/dylanaraps/neofetch/pull/2242)) * 🖼️ Distro - Fix CachyOS matching ([dylanaraps#2026](https://github.com/dylanaraps/neofetch/pull/2026)) * 🖼 WM - Fix wm detection with `fuser` ([#39](https://github.com/hykilpikonna/hyfetch/pull/39)) * 🖼️ Memory - Make memory unit decimal calculation more accurate ([#52](https://github.com/hykilpikonna/hyfetch/pull/52)) * 🖼 Packages - Fix squirrel (Stock Linux) package count detection ([#39](https://github.com/hykilpikonna/hyfetch/pull/39)) * 🖼 Packages - Support cargo bin environment variable ([#49](https://github.com/hykilpikonna/hyfetch/pull/49)) * 🖼 Packages - Add tea.xyz package manager (issue [dylanaraps#2235](https://github.com/dylanaraps/neofetch/pull/2235)) ### 1.4.4 * 🌈 Fix Python 3.11 compatibility ([#35](https://github.com/hykilpikonna/hyfetch/pull/35)) * 🌈 Fix many overflow problems when screen is too small * 🖼️ Distro - Add Enso ([dylanaraps#2233](https://github.com/dylanaraps/neofetch/pull/2233)) * 🖼️ Memory - Optimize and fix memory unit conversion ([dylanaraps#2225](https://github.com/dylanaraps/neofetch/pull/2225)) * 🖼️ DE - Add dwl window manager ([dylanaraps#2234](https://github.com/dylanaraps/neofetch/pull/2234)) * 🖼️ DE - Fix XDG session detection for X11 ([dylanaraps#2232](https://github.com/dylanaraps/neofetch/pull/2232)) * 🖼️ CPU - Fix model detection for loongson ([#34](https://github.com/hykilpikonna/hyfetch/pull/34)) ### 1.4.3 * 🌈 **Auto detect terminal background color & rgb support** * 🌈 **Optimize experience on light-themed terminals** * 🌈 Fix bugs with lightness and light-mode config not applying * 🌈 Fix color alignment for distros with first color ≠ `${c1}` (e.g. Ubuntu Budgie) * 🌈 Add unlabeled flags ([#25](https://github.com/hykilpikonna/hyfetch/pull/25)) * 🌈 Add gender nonconforming & femboy & tomboy flags ([#32](https://github.com/hykilpikonna/hyfetch/pull/32)) * 🌈 Fix jailbreak iOS shell `killed: 9` issue caused by ld signature check. * 🖼️ Distro - Add garuda_small ([dylanaraps#2215](https://github.com/dylanaraps/neofetch/pull/2215)) * 🖼️ Distro - Add Cobalt Linux ([dylanaraps#2213](https://github.com/dylanaraps/neofetch/pull/2213)) * 🖼️ Distro - Add VanillaOS ([dylanaraps#2222](https://github.com/dylanaraps/neofetch/pull/2222)) * 🖼️ Distro - Surround macOS build number in parentheses ([#28](https://github.com/hykilpikonna/hyfetch/pull/28)) * 🖼️ Misc - Auto select stdout mode based on tty detection ([#31](https://github.com/hykilpikonna/hyfetch/pull/31)) * 🖼️ Bug Fix - Fix cols coloring reset for bash 3.2 ([#24](https://github.com/hykilpikonna/hyfetch/pull/24)) ### 1.4.2 * 🌈 Detailed runnning/contributing instructions in README.md ([#21](https://github.com/hykilpikonna/hyfetch/pull/21)) * 🖼️ Distro - Add Stock Linux ([#23](https://github.com/hykilpikonna/hyfetch/pull/23)) * 🖼️ Distro - Add DietPi ([dylanaraps#1706](https://github.com/dylanaraps/neofetch/pull/1706)) * 🖼️ Distro - Add OmniOS illumos ([dylanaraps#2196](https://github.com/dylanaraps/neofetch/pull/2196)) * 🖼️ Distro - Add Droidian ([dylanaraps#2201](https://github.com/dylanaraps/neofetch/pull/2201)) * 🖼️ Distro - Add HamoniKR ([dylanaraps#2210](https://github.com/dylanaraps/neofetch/pull/2210)) * 🖼️ Song - Add support for TIDAL HiFi ([#22](https://github.com/hykilpikonna/hyfetch/pull/22)) * 🖼️ CPU - Detect multiple CPU models for ARM * 🖼️ Misc - Better defaults: Show RAM in GiB, RAM percentage, CPU speed rounding, refresh rate * 🖼️ Bug Fix - Fix bash 5.2 column cut off issue ([#24](https://github.com/hykilpikonna/hyfetch/pull/24)) ### 1.4.1 * 🌈 Paginate flags ([#14](https://github.com/hykilpikonna/hyfetch/pull/14)) * 🌈 Add release workflow ([#15](https://github.com/hykilpikonna/hyfetch/pull/15)) * 🌈 Create automatic release script * 🌈 Config page - Give warning when terminal size is too small * 🌈 Config page - Optimize color arrangement selection on small screens * 🌈 Add experimental Windows support (very unstable at the moment) * 🖼️ Distro - Add ravynOS ([dylanaraps#2182](https://github.com/dylanaraps/neofetch/pull/2182)) * 🖼️ Distro - Add ChonkySealOS ([dylanaraps#2180](https://github.com/dylanaraps/neofetch/pull/2180)) * 🖼️ Distro - Add GhostBSD ([TheSudoer#18](https://github.com/hykilpikonna/hyfetch/pull/18)) * 🖼️ Distro - Add NekOS ([dylanaraps#2186](https://github.com/dylanaraps/neofetch/pull/2186)) * 🖼️ Distro - Add astOS ([dylanaraps#2185](https://github.com/dylanaraps/neofetch/pull/2185)) * 🖼️ Distro - Fix ChromeOS identification ([dylanaraps#1949](https://github.com/dylanaraps/neofetch/pull/1949)) * 🖼️ WM - Add Hyprland to the list of wayland wms ([dylanaraps#2190](https://github.com/dylanaraps/neofetch/pull/2190)) * 🖼️ Env - Add Java, Python, Node version detection (can be enabled in config) * 🖼️ Bug Fix - Fix hostname detection when `inetutils` is not installed * 🖼️ Bug Fix - Fix empty brackets displayed when no theme is found ([dylanaraps#1713](https://github.com/dylanaraps/neofetch/pull/1713)) * 🖼️ Bug Fix - Fix `$` escape bug in `strip_escape_codes()` ([dylanaraps#1543](https://github.com/dylanaraps/neofetch/pull/1543)) * 🖼️ Bug Fix - Fix backslash escape bug in `strip_escape_codes()` ([dylanaraps#1543](https://github.com/dylanaraps/neofetch/pull/1543)) * 🖼️ Bug Fix - Fix CPU detection on ARM QEMU ### 1.4.0 * 🌈 Add finsexual flag ([#12](https://github.com/hykilpikonna/hyfetch/pull/12)) * 🚀 Addressed a total of 128 currently open pull requests from neofetch
🖼️ Meta Changes * Meta - Fixed shellcheck warnings in `neowofetch` * Meta - Moved shellcheck from travis to GitHub Actions * Meta - Created a script to automatically generate distro list * Colors - Allow RGB colors in neofetch `--ascii_colors` argument ([dylanaraps#1726](https://github.com/dylanaraps/neofetch/pull/1726))
🖼️ Distro/OS Support Changes * Distro - Update Ubuntu logo ([dylanaraps#2125](https://github.com/dylanaraps/neofetch/pull/2125)) * Distro - Add Exodia OS Predator ([dylanaraps#2174](https://github.com/dylanaraps/neofetch/pull/2174)) * Distro - Add Parch ([dylanaraps#2045](https://github.com/dylanaraps/neofetch/pull/2045)) * Distro - Add VzLinux ([dylanaraps#1971](https://github.com/dylanaraps/neofetch/pull/1971)) * Distro - Add Twister OS ([dylanaraps#1890](https://github.com/dylanaraps/neofetch/pull/1890)) * Distro - Add BlackPantherOS ([dylanaraps#1761](https://github.com/dylanaraps/neofetch/pull/1761)) * Distro - Add TorizonCore ([dylanaraps#1744](https://github.com/dylanaraps/neofetch/pull/1744)) * Distro - Add KrassOS ([dylanaraps#1631](https://github.com/dylanaraps/neofetch/pull/1631)) * Distro - Add Synology DSM ([dylanaraps#1666](https://github.com/dylanaraps/neofetch/pull/1666)) * Distro - Add MatuusOS ([dylanaraps#1902](https://github.com/dylanaraps/neofetch/pull/1902)) * Distro - Add HarDClanZ Linux ([dylanaraps#1797](https://github.com/dylanaraps/neofetch/pull/1797))
🖼️ Device Support Changes * Host - Identify iMac, Mac mini, Mac Pro Models ([dylanaraps#1944](https://github.com/dylanaraps/neofetch/pull/1944)) * Host - Identify FreeBSD host model ([dylanaraps#1588](https://github.com/dylanaraps/neofetch/pull/1588)) * Font - Better font matching for st ([dylanaraps#1877](https://github.com/dylanaraps/neofetch/pull/1877)) * Theme - Use XSETTINGS to get theme without a DE ([dylanaraps#1831](https://github.com/dylanaraps/neofetch/pull/1831)) * Theme - Add QT theme detection ([dylanaraps#1713](https://github.com/dylanaraps/neofetch/pull/1713)) * Theme - Add LeftWM theme detection ([dylanaraps#1963](https://github.com/dylanaraps/neofetch/pull/1963)) * Cursor - Add cursor theme detection ([dylanaraps#1149](https://github.com/dylanaraps/neofetch/pull/1149)) * Terminal - Improve NixOS terminal identification ([dylanaraps#1134](https://github.com/dylanaraps/neofetch/pull/1134)) * Terminal - Use `/proc/.../cmdline` instead of `.../comm` ([dylanaraps#2034](https://github.com/dylanaraps/neofetch/pull/2034)) * Packages - Improve scoop/choco package count ([dylanaraps#1642](https://github.com/dylanaraps/neofetch/pull/1642))
🖼️ Bug Fixes * Bug Fix - Fix prepended `=` for kitty ([dylanaraps#2116](https://github.com/dylanaraps/neofetch/pull/2116)) * Bug Fix - Hide domain in hostname by default ([dylanaraps#2095](https://github.com/dylanaraps/neofetch/pull/2095)) * Bug Fix - Respect TMPDIR if it exists ([dylanaraps#1891](https://github.com/dylanaraps/neofetch/pull/1891)) * Bug Fix - Fix terminal size over slow connection ([dylanaraps#1895](https://github.com/dylanaraps/neofetch/pull/1895)) * Bug Fix - Fix GPU detection for bumblebee dual-GPU ([dylanaraps#1131](https://github.com/dylanaraps/neofetch/pull/1131)) * Bug Fix - Strip colors in ASCII length calculation ([dylanaraps#1543](https://github.com/dylanaraps/neofetch/pull/1543))
### 1.3.0
🖼️ Ascii Art Changes * Ascii - Improve Trisquel ([dylanaraps#1946](https://github.com/dylanaraps/neofetch/pull/1946)) * Ascii - Improve LangitKetujuh ([dylanaraps#1948](https://github.com/dylanaraps/neofetch/pull/1948)) * Ascii - Improve Artix small ([dylanaraps#1872](https://github.com/dylanaraps/neofetch/pull/1872)) * Ascii - Update Archcraft ([dylanaraps#1919](https://github.com/dylanaraps/neofetch/pull/1919))
🖼️ Distro/OS Support Changes * OS - Support Old macOS 10.4 and 10.5 ([dylanaraps#2151](https://github.com/dylanaraps/neofetch/pull/2151)) * OS - Identify Hackintosh VM ([dylanaraps#2005](https://github.com/dylanaraps/neofetch/pull/2005)) * Distro - Fix model detection for Ubuntu Touch ([dylanaraps#2167](https://github.com/dylanaraps/neofetch/pull/2167)) * Distro - Add EncryptOS ([dylanaraps#2158](https://github.com/dylanaraps/neofetch/pull/2158)) * Distro - Add BigLinux ([dylanaraps#2061](https://github.com/dylanaraps/neofetch/pull/2061)) * Distro - Add AmogOS ([dylanaraps#1904](https://github.com/dylanaraps/neofetch/pull/1904)) * Distro - Add CutefishOS ([dylanaraps#2054](https://github.com/dylanaraps/neofetch/pull/2054)) * Distro - Add PearOS ([dylanaraps#2049](https://github.com/dylanaraps/neofetch/pull/2049)) * Distro - Add FusionX ([dylanaraps#2011](https://github.com/dylanaraps/neofetch/pull/2011)) * Distro - Add Q4OS ([dylanaraps#1973](https://github.com/dylanaraps/neofetch/pull/1973)) * Distro - Add CachyOS ([dylanaraps#2026](https://github.com/dylanaraps/neofetch/pull/2026)) * Distro - Add Soda Linux ([dylanaraps#2023](https://github.com/dylanaraps/neofetch/pull/2023)) * Distro - Add Elive Linux ([dylanaraps#1957](https://github.com/dylanaraps/neofetch/pull/1957)) * Distro - Add Uos ([dylanaraps#1991](https://github.com/dylanaraps/neofetch/pull/1991)) * Distro - Add MassOS ([dylanaraps#1947](https://github.com/dylanaraps/neofetch/pull/1947)) * Distro - Add CalinixOS ([dylanaraps#1988](https://github.com/dylanaraps/neofetch/pull/1988)) * Distro - Add Kaisen Linux ([dylanaraps#1958](https://github.com/dylanaraps/neofetch/pull/1958)) * Distro - Add yiffOS ([dylanaraps#1920](https://github.com/dylanaraps/neofetch/pull/1920)) * Distro - Add Sulin ([dylanaraps#1896](https://github.com/dylanaraps/neofetch/pull/1896)) * Distro - Add Wii Linux ([dylanaraps#1929](https://github.com/dylanaraps/neofetch/pull/1929)) * Distro - Add Linspire ([dylanaraps#1905](https://github.com/dylanaraps/neofetch/pull/1905)) * Distro - Add Ubuntu Kylin ([dylanaraps#1974](https://github.com/dylanaraps/neofetch/pull/1974)) * Distro - Add OPNsense ([dylanaraps#1055](https://github.com/dylanaraps/neofetch/pull/1055)) * Distro - Improve BSD machine arch detection ([dylanaraps#2015](https://github.com/dylanaraps/neofetch/pull/2015)) * Distro - Improve Manjaro version detection ([dylanaraps#1879](https://github.com/dylanaraps/neofetch/pull/1879))
🖼️ Device Support Changes * Terminal - Add Fig ([dylanaraps#2077](https://github.com/dylanaraps/neofetch/pull/2077)) * Terminal - Identify font for Apple Terminal ([dylanaraps#2017](https://github.com/dylanaraps/neofetch/pull/2017)) * CPU - Identify core count for Apple M1 ([dylanaraps#2038](https://github.com/dylanaraps/neofetch/pull/2038)) * GPU - Identify OpenCL GPU without PCIe ([dylanaraps#1928](https://github.com/dylanaraps/neofetch/pull/1928)) * Host - Identify MacBook & Update iDevice models ([dylanaraps#1944](https://github.com/dylanaraps/neofetch/pull/1944)) * Battery - Identify power adapter for MacBooks ([dylanaraps#1945](https://github.com/dylanaraps/neofetch/pull/1945)) * DE - Identify KF5 and Qt versions for Plasma ([dylanaraps#2019](https://github.com/dylanaraps/neofetch/pull/2019)) * Packages - Improve GUIX package detection ([dylanaraps#2021](https://github.com/dylanaraps/neofetch/pull/2021)) * Packages - Add `pm` and `cargo` ([dylanaraps#1876](https://github.com/dylanaraps/neofetch/pull/1876)) * Network - Identify network capabilities ([dylanaraps#1511](https://github.com/dylanaraps/neofetch/pull/1511))
🖼️ Bug Fixes * Bug Fix - Fix `col_offset` ([dylanaraps#2042](https://github.com/dylanaraps/neofetch/pull/2042)) * Bug Fix - Prioritize `/etc/os-release` ([dylanaraps#2067](https://github.com/dylanaraps/neofetch/pull/2067)) * Bug Fix - Ignore case when counting `.appimage` ([dylanaraps#2006](https://github.com/dylanaraps/neofetch/pull/2006)) * Bug Fix - Fix BSD freezing if pkg is not bootstrapped ([dylanaraps#2014](https://github.com/dylanaraps/neofetch/pull/2014)) * Bug Fix - Fix wrong icon theme ([dylanaraps#1873](https://github.com/dylanaraps/neofetch/pull/1873))
### 1.2.0 * 🚀 Take over `neofetch` with `neowofetch`
🖼️ Ascii Art Changes * Ascii - Add uwuntu ([#9](https://github.com/hykilpikonna/hyfetch/pull/9)) (use it with `hyfetch --test-distro uwuntu` or `neowofetch --ascii_distro uwuntu`) * Ascii - Better Void ascii art ([#10](https://github.com/hykilpikonna/hyfetch/pull/10)) * Ascii - Update old NixOS logo for compatibility ([dylanaraps#2114](https://github.com/dylanaraps/neofetch/pull/2114))
🖼️ Distro/OS Support Changes * OS - Identify macOS 13 Ventura ([#8](https://github.com/hykilpikonna/hyfetch/pull/8)) * OS - Windows 11 Fluent ([dylanaraps#2109](https://github.com/dylanaraps/neofetch/pull/2109)) * Distro - Add Asahi Linux ([dylanaraps#2079](https://github.com/dylanaraps/neofetch/pull/2079)) * Distro - Add CenterOS ([dylanaraps#2097](https://github.com/dylanaraps/neofetch/pull/2097)) * Distro - Add Finnix ([dylanaraps#2099](https://github.com/dylanaraps/neofetch/pull/2099)) * Distro - Add Miracle Linux ([dylanaraps#2085](https://github.com/dylanaraps/neofetch/pull/2085)) * Distro - Add Univalent ([dylanaraps#2162](https://github.com/dylanaraps/neofetch/pull/2162)) * Distro - Add NomadBSD ([dylanaraps#2147](https://github.com/dylanaraps/neofetch/pull/2147)) * Distro - Add GrapheneOS ([dylanaraps#2146](https://github.com/dylanaraps/neofetch/pull/2146)) * Distro - Add ShastraOS ([dylanaraps#2149](https://github.com/dylanaraps/neofetch/pull/2149)) * Distro - Add Ubuntu Touch ([dylanaraps#2167](https://github.com/dylanaraps/neofetch/pull/2167)) * Distro - Add Ubuntu Sway ([dylanaraps#2136](https://github.com/dylanaraps/neofetch/pull/2136)) * Distro - Add Orchid Linux ([dylanaraps#2144](https://github.com/dylanaraps/neofetch/pull/2144)) * Distro - Add AOSC OS/Retro ([dylanaraps#2124](https://github.com/dylanaraps/neofetch/pull/2124)) * Distro - Add Ultramarine Linux ([dylanaraps#2115](https://github.com/dylanaraps/neofetch/pull/2115)) * Distro - Improve NixOS version detection ([dylanaraps#2157](https://github.com/dylanaraps/neofetch/pull/2157))
🖼️ Device/Program Support Changes * Terminal - Add Termux ([dylanaraps#1923](https://github.com/dylanaraps/neofetch/pull/1923)) * CPU - Add loongarch64 ([dylanaraps#2140](https://github.com/dylanaraps/neofetch/pull/2140)) * CPU - Identify CPU name for ARM / RISCV ([dylanaraps#2139](https://github.com/dylanaraps/neofetch/pull/2139)) * Battery - Fix file not found ([dylanaraps#2130](https://github.com/dylanaraps/neofetch/pull/2130)) * GPU - Identify open-kernal Nvidia driver version ([dylanaraps#2128](https://github.com/dylanaraps/neofetch/pull/2128))
🖼️ Bug Fixes * Bug Fix - Fix broken fedora output ([dylanaraps#2084](https://github.com/dylanaraps/neofetch/pull/2084))
### 1.1.3rc1 * 🌈 Add foreground-background color arrangement to make Fedora and Ubuntu look nicer * 🌈 Allow typing abbreviations in flag selection * 🌈 Fix: Duplicate random color arrangements are appearing in selection screen * 🌈 Fix: Inconsistant color arrangement when saved to config file ### 1.1.2 * Add more flags ([#5](https://github.com/hykilpikonna/hyfetch/pull/5)) * Removed `numpy` dependency that was used in 1.1.0 ### 1.1.0 * Refactored a lot of things * Added Beiyang flag xD * Added interactive configurator for brightness adjustment * Added dark/light mode selection * Added color bar preview for RGB/8bit mode selection * Added random color arrangement feature (for NixOS) ### 1.0.7 * Fix: Make config path not on init but when it's actually needed. ### 1.0.6 * Remove `hypy_utils` dependency to make packaging easier. ### 1.0.5 * Fix terminal emulator detection ([PR [#2](https://github.com/hykilpikonna/hyfetch/pull/2)](https://github.com/hykilpikonna/hyfetch/pull/2)) ### 1.0.4 * Add more flags ([PR [#1](https://github.com/hykilpikonna/hyfetch/pull/1)](https://github.com/hykilpikonna/hyfetch/pull/1)) ### 1.0.3 * Fix missing dependency for setuptools ### 1.0.2 * Implement RGB to 8bit conversion * Add support for Python 3.7 and 3.8 ### 1.0.1 * Included 11 flag presets * Ability to lighten colors with `--c-set-l ` * Command-line flag chooser * Supports Python >= 3.9 ## More Screenshots ![image](https://user-images.githubusercontent.com/22280294/162614578-3b878abb-2a32-4427-997e-f90b3f5cfd7c.png) ![image](https://user-images.githubusercontent.com/22280294/162661621-f1c61338-7857-4d3f-9fe3-c6b635d68c38.png) ## Original Readme from Neofetch Below

logo

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

Packaging status

neofetch 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. 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. 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. neofetch You can further configure Neofetch to display exactly what you want it to. Through the use of command-line flags and the configuration file you can change existing information outputs or add your own custom ones. Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX and Haiku. If your favourite operating system is unsupported: Open up an issue and support will be added. ### More: \[[Dependencies](https://github.com/dylanaraps/neofetch/wiki/Dependencies)\] \[[Installation](https://github.com/dylanaraps/neofetch/wiki/Installation)\] \[[Wiki](https://github.com/dylanaraps/neofetch/wiki)\] hyfetch-1.99.0/docs/000077500000000000000000000000001470626616500142115ustar00rootroot00000000000000hyfetch-1.99.0/docs/hyfetch.1000066400000000000000000000107401470626616500157270ustar00rootroot00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .TH VERSION "1" "October 2024" "Version is 1.99.0" "User Commands" .SH NAME Version \- manual page for Version is 1.99.0 .SH DESCRIPTION usage: hyfetch [\-h] [\-c] [\-C CONFIG_FILE] .IP [\-p {rainbow,transgender,nonbinary,xenogender,agender,queer,genderfluid,bisexual,pansexual,polysexual,omnisexual,omniromantic,gay\-men,lesbian,abrosexual,asexual,aromantic,aroace1,aroace2,aroace3,autosexual,intergender,greygender,akiosexual,bigender,demigender,demiboy,demigirl,transmasculine,transfeminine,genderfaun,demifaun,genderfae,demifae,neutrois,biromantic1,biromantic2,autoromantic,boyflux2,girlflux,genderflux,finsexual,unlabeled1,unlabeled2,pangender,pangender.contrast,gendernonconforming1,gendernonconforming2,femboy,tomboy,gynesexual,androsexual,gendervoid,voidgirl,voidboy,nonhuman\-unity,plural,fraysexual,bear,butch,leather,otter,twink,kenochoric,veldian,solian,lunian,polyam,sapphic,androgyne,interprogress,progress,intersex,old\-polyam,equal\-rights,drag,pronounfluid,pronounflux,exipronoun,neopronoun,neofluid,genderqueer,beiyang,burger,baker,caninekin,random}] [\-m {8bit,rgb}] [\-b {qwqfetch,neofetch,fastfetch,fastfetch\-old}] [\-\-args ARGS] [\-\-c\-scale SCALE] [\-\-c\-set\-l LIGHT] [\-\-c\-overlay] [\-V] [\-\-june] [\-\-debug] [\-\-distro DISTRO] [\-\-ascii\-file ASCII_FILE] [\-\-print\-font\-logo] .PP hyfetch \- neofetch with flags <3 .SS "options:" .TP \fB\-h\fR, \fB\-\-help\fR show this help message and exit .TP \fB\-c\fR, \fB\-\-config\fR Configure hyfetch .TP \fB\-C\fR CONFIG_FILE, \fB\-\-config\-file\fR CONFIG_FILE Use another config file .TP \fB\-p\fR {rainbow,transgender,nonbinary,xenogender,agender,queer,genderfluid,bisexual,pansexual,polysexual,omnisexual,omniromantic,gay\-men,lesbian,abrosexual,asexual,aromantic,aroace1,aroace2,aroace3,autosexual,intergender,greygender,akiosexual,bigender,demigender,demiboy,demigirl,transmasculine,transfeminine,genderfaun,demifaun,genderfae,demifae,neutrois,biromantic1,biromantic2,autoromantic,boyflux2,girlflux,genderflux,finsexual,unlabeled1,unlabeled2,pangender,pangender.contrast,gendernonconforming1,gendernonconforming2,femboy,tomboy,gynesexual,androsexual,gendervoid,voidgirl,voidboy,nonhuman\-unity,plural,fraysexual,bear,butch,leather,otter,twink,kenochoric,veldian,solian,lunian,polyam,sapphic,androgyne,interprogress,progress,intersex,old\-polyam,equal\-rights,drag,pronounfluid,pronounflux,exipronoun,neopronoun,neofluid,genderqueer,beiyang,burger,baker,caninekin,random}, \fB\-\-preset\fR {rainbow,transgender,nonbinary,xenogender,agender,queer,genderfluid,bisexual,pansexual,polysexual,omnisexual,omniromantic,gay\-men,lesbian,abrosexual,asexual,aromantic,aroace1,aroace2,aroace3,autosexual,intergender,greygender,akiosexual,bigender,demigender,demiboy,demigirl,transmasculine,transfeminine,genderfaun,demifaun,genderfae,demifae,neutrois,biromantic1,biromantic2,autoromantic,boyflux2,girlflux,genderflux,finsexual,unlabeled1,unlabeled2,pangender,pangender.contrast,gendernonconforming1,gendernonconforming2,femboy,tomboy,gynesexual,androsexual,gendervoid,voidgirl,voidboy,nonhuman\-unity,plural,fraysexual,bear,butch,leather,otter,twink,kenochoric,veldian,solian,lunian,polyam,sapphic,androgyne,interprogress,progress,intersex,old\-polyam,equal\-rights,drag,pronounfluid,pronounflux,exipronoun,neopronoun,neofluid,genderqueer,beiyang,burger,baker,caninekin,random} Use preset .TP \fB\-m\fR {8bit,rgb}, \fB\-\-mode\fR {8bit,rgb} Color mode .TP \fB\-b\fR {qwqfetch,neofetch,fastfetch,fastfetch\-old}, \fB\-\-backend\fR {qwqfetch,neofetch,fastfetch,fastfetch\-old} Choose a *fetch backend .TP \fB\-\-args\fR ARGS Additional arguments pass\-through to backend .TP \fB\-\-c\-scale\fR SCALE Lighten colors by a multiplier .TP \fB\-\-c\-set\-l\fR LIGHT Set lightness value of the colors .TP \fB\-\-c\-overlay\fR Use experimental overlay color adjusting instead of HSL lightness .TP \fB\-V\fR, \fB\-\-version\fR Check version .TP \fB\-\-june\fR Show pride month easter egg .TP \fB\-\-debug\fR Debug mode .TP \fB\-\-distro\fR DISTRO, \fB\-\-test\-distro\fR DISTRO Test for a specific distro .TP \fB\-\-ascii\-file\fR ASCII_FILE Use a specific file for the ascii art .TP \fB\-\-print\-font\-logo\fR Print the Font Logo / Nerd Font icon of your distro and exit .SH "SEE ALSO" The full documentation for .B Version is maintained as a Texinfo manual. If the .B info and .B Version programs are properly installed at your site, the command .IP .B info Version .PP should give you access to the complete manual. hyfetch-1.99.0/docs/neofetch.1000066400000000000000000000347301470626616500160750ustar00rootroot00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .TH NEOFETCH "1" "October 2024" "Neofetch 7.98.0" "User Commands" .SH NAME Neofetch \- manual page for Neofetch 7.98.0 .SH SYNOPSIS .B neofetch \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, or any ASCII file of your choice. .PP NOTE: Every launch flag has a config option. .SH OPTIONS .SS "INFO:" .TP func_name Specify a function name (second part of info() from config) to quickly display only that function's information. .IP Example: neofetch uptime \fB\-\-uptime_shorthand\fR tiny .IP Example: neofetch uptime disk wm memory .IP This can be used in bars and scripts like so: .IP memory="$(neofetch memory)"; memory="${memory##*: }" .IP For multiple outputs at once (each line of info in an array): .IP IFS=$'\en' read \fB\-d\fR "" \fB\-ra\fR info < <(neofetch memory uptime wm) .IP info=("${info[@]##*: }") .TP \fB\-\-disable\fR infoname Allows you to disable an info line from appearing in the output. 'infoname' is the function name from the \&'print_info()' function inside the config file. For example: 'info "Memory" memory' would be '\-\-disable memory' .IP NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu' .TP \fB\-\-title_fqdn\fR on/off Hide/Show Fully Qualified Domain Name in title. .TP \fB\-\-package_managers\fR on/off Hide/Show Package Manager names. (on, tiny, off) .TP \fB\-\-package_separate\fR on/off Whether to separate system/user modes for supported package managers .TP \fB\-\-package_minimal\fR Reduce output of packages list by not showing programming language package managers or Steam games .TP \fB\-\-os_arch\fR on/off Hide/Show OS architecture. .TP \fB\-\-speed_type\fR type Change the type of cpu speed to display. Possible values: current, min, max, bios, scaling_current, scaling_min, scaling_max .IP NOTE: This only supports Linux with cpufreq. .TP \fB\-\-speed_shorthand\fR on/off Whether or not to show decimals in CPU speed. .TP NOTE: This flag is not supported in systems with CPU speed less than 1 GHz. .TP \fB\-\-cpu_brand\fR on/off Enable/Disable CPU brand in output. .TP \fB\-\-cpu_cores\fR type Whether or not to display the number of CPU cores Possible values: logical, physical, off .IP NOTE: 'physical' doesn't work on BSD. .TP \fB\-\-cpu_speed\fR on/off Hide/Show cpu speed. .TP \fB\-\-cpu_temp\fR C/F/off Hide/Show cpu temperature. .IP NOTE: This only works on Linux and BSD. .TP NOTE: For FreeBSD and NetBSD\-based systems, you need to enable coretemp kernel module. This only supports newer Intel processors. .TP \fB\-\-distro_shorthand\fR on/off Shorten the output of distro (on, tiny, off) .IP NOTE: This option won't work in Windows (Cygwin) .TP \fB\-\-kernel_shorthand\fR on/off 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 (on, tiny, off) .TP \fB\-\-refresh_rate\fR on/off Whether to display the refresh rate of each monitor Unsupported on Windows .TP \fB\-\-gpu_brand\fR on/off Enable/Disable GPU brand in output. (AMD/NVIDIA/Intel) .TP \fB\-\-gpu_type\fR type Which GPU to display. (all, dedicated, integrated) .IP NOTE: This only supports Linux. .TP \fB\-\-de_version\fR on/off Show/Hide Desktop Environment version .TP \fB\-\-gtk_shorthand\fR on/off Shorten output of gtk theme/icons .TP \fB\-\-gtk2\fR on/off Enable/Disable gtk2 theme/font/icons output .TP \fB\-\-gtk3\fR on/off Enable/Disable gtk3 theme/font/icons output .TP \fB\-\-shell_path\fR on/off Enable/Disable showing $SHELL path .TP \fB\-\-shell_version\fR on/off Enable/Disable showing $SHELL version .TP \fB\-\-editor_path\fR on/off Enable/Disable showing $EDITOR path .TP \fB\-\-editor_version\fR on/off Enable/Disable showing $EDITOR version .TP \fB\-\-disk_show\fR value Which disks to display. Possible values: '/', '/dev/sdXX', '/path/to/mount point' .IP NOTE: Multiple values can be given. (\fB\-\-disk_show\fR '/' '/dev/sdc1') .TP \fB\-\-disk_subtitle\fR type What information to append to the Disk subtitle. Takes: name, mount, dir, none .IP \&'name' shows the disk's name (sda1, sda2, etc) .IP \&'mount' shows the disk's mount point (/, \fI\,/mnt/Local\/\fP Disk, etc) .IP \&'dir' shows the basename of the disks's path. (/, Local Disk, etc) .IP \&'none' shows only 'Disk' or the configured title. .TP \fB\-\-disk_percent\fR on/off Hide/Show disk percent. .TP \fB\-\-ip_host\fR url URL to query for public IP .TP \fB\-\-ip_timeout\fR int Public IP timeout (in seconds). .TP \fB\-\-ip_interface\fR value Interface(s) to use for local IP .TP \fB\-\-song_format\fR format Print the song data in a specific format (see config file). .TP \fB\-\-song_shorthand\fR on/off Print the Artist/Album/Title on separate lines. .TP \fB\-\-memory_percent\fR on/off Display memory percentage. .TP \fB\-\-memory_unit\fR (k/m/g/t)ib Memory output unit. .TP \fB\-\-memory_precision\fR integer Change memory output precision. (???0, default=2) .TP \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 Changes the text colors in this order: title, @, underline, subtitle, colon, info .TP \fB\-\-underline\fR on/off Enable/Disable the underline. .TP \fB\-\-underline_char\fR char Character to use when underlining title .TP \fB\-\-bold\fR on/off Enable/Disable bold text .TP \fB\-\-separator\fR string Changes the default ':' separator to the specified string. .SS "COLOR BLOCKS:" .TP \fB\-\-color_blocks\fR on/off Enable/Disable the color blocks .TP \fB\-\-col_offset\fR auto/num Left\-padding of color blocks .TP \fB\-\-block_width\fR num Width of color blocks in spaces .TP \fB\-\-block_height\fR num Height of color blocks in lines .TP \fB\-\-block_range\fR num num Range of colors to print as blocks .SS "BARS:" .TP \fB\-\-bar_char\fR 'elapsed char' 'total char' Characters to use when drawing bars. .TP \fB\-\-bar_border\fR on/off Whether or not to surround the bar with '[]' .TP \fB\-\-bar_length\fR num Length in spaces to make the bars. .TP \fB\-\-bar_colors\fR num num Colors to make the bar. Set in this order: elapsed, total .TP \fB\-\-memory_display\fR mode Bar mode. Possible values: bar, infobar, barinfo, off .TP \fB\-\-battery_display\fR mode Bar mode. Possible values: bar, infobar, barinfo, off .TP \fB\-\-disk_display\fR mode Bar mode. Possible values: bar, infobar, barinfo, off .SS "IMAGE BACKEND:" .TP \fB\-\-backend\fR backend Which image backend to use. Possible values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', \&'iterm2', 'off', 'sixel', 'tycat', 'w3m', 'kitty', 'viu' .TP \fB\-\-source\fR source Which image or ascii file to use. Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img', \&'/path/to/ascii', '/path/to/dir/', 'command output' [ascii] .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. .TP \fB\-\-chafa\fR source Shortcut to use 'chafa' backend. .TP \fB\-\-iterm2\fR source Shortcut to use 'iterm2' backend. .TP \fB\-\-jp2a\fR source Shortcut to use 'jp2a' backend. .TP \fB\-\-kitty\fR source Shortcut to use 'kitty' backend. .TP \fB\-\-pot\fR source Shortcut to use 'pot' backend. .TP \fB\-\-pixterm\fR source Shortcut to use 'pixterm' backend. .TP \fB\-\-sixel\fR source Shortcut to use 'sixel' backend. .TP \fB\-\-termpix\fR source Shortcut to use 'termpix' backend. .TP \fB\-\-tycat\fR source Shortcut to use 'tycat' backend. .TP \fB\-\-w3m\fR source Shortcut to use 'w3m' backend. .TP \fB\-\-ueberzug\fR source Shortcut to use 'ueberzug' backend .TP \fB\-\-viu\fR source Shortcut to use 'viu' backend .TP \fB\-\-off\fR Shortcut to use 'off' backend (Disable ascii art). .IP NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', \&'/path/to/ascii', '/path/to/dir/' .SS "ASCII:" .TP \fB\-\-ascii_colors\fR x x x x x x Colors to print the ascii art .TP \fB\-\-ascii_distro\fR distro Which Distro's ascii art to print .TP NOTE: Ad??lie, aerOS, Afterglow, AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy, Android, Antergos, antiX, AOSC OS, Aperio GNU/Linux, Aperture, Apricity, Arch, ArchBox, Archcraft, archcraft_ascii, archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux, Arkane, ArseLinux, Artix, Arya, Asahi, AsteroidOS, astOS, Astra Linux, Athena, azos, Bedrock, BigLinux, BigLinux_large, Bitrig, BlackArch, BlackMesa, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD, BunsenLabs, CachyOS, Calculate, CalinixOS, Carbs, CBL\-Mariner, CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, Chimera, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres, Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber, CutefishOS, CuteOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DietPi, digital UNIX, DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux, EvolutionOS, eweOS, Exherbo, Exodia Predator OS, Fedora, Fedora Kinoite, Fedora Sericea, Fedora Silverblue, Fedora_unicode, FemboyOS, Feren, Finnix, Floflis, FreeBSD, FreeMiNT, Frugalware, Funtoo, Furreto, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS, Hyperbola, iglunix, instantOS, Interix, IRIX, Ironclad, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LainOS, LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old, LinuxFromScratch, Live Raizo, LMDE, Lubuntu, Lunar, mac, MacaroniOS, Mageia, Magix, MagpieOS, MainsailOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mauna, Meowix, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune, NetBSD, Netrunner, Nitrux, NixOS, nixos_colorful, Nobara, NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media Center, OpenBSD, openEuler, OpenIndiana, openKylin, openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Panwah, Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Peropesis, phyOS, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Salix, Sasanqua, Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackel, Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, Tatra, TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu\-GNOME, ubuntu_old02, Ultramarine Linux, unicodearch, Univalent, Univention, Uos, UrukOS, uwuntu, Vanilla, Venom, VNux, Void, VzLinux, wii\-linux\-ngx, Windows, Windows 10, Windows 11, Windows95, Wrt, Xenia, Xenia2, XFerience, Xray_OS, Xubuntu, yiffOS, Zorin have ascii logos. .TP NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu have 'old' logo variants, use {distro}_old to use them. .TP NOTE: alpine, android, arch, arcolinux, artix, CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary, endeavouros, fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, kali, Linux, linuxlite, linuxmint, mac, mageia, MainsailOS, manjaro, mx, netbsd, nixos, openbsd, opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian, rocky, slackware, sunos, ubuntu, venom, void have \&'small' logo variants, use {distro}_small to use them. .IP NOTE: Fedora has immutable spins with unique logos (except Onyx). .TP NOTE: Change this to Silverblue, Kinoite, Sericea, or CoreOS to use the spins. .TP \fB\-\-ascii_bold\fR on/off 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. .SS "IMAGE:" .TP \fB\-\-loop\fR Redraw the image constantly until Ctrl+C is used. This fixes issues in some terminals emulators when using image mode. .TP \fB\-\-size\fR 00px | \fB\-\-size\fR 00% How to size the image. Possible values: auto, 00px, 00%, none .TP \fB\-\-catimg_size\fR 1/2 Change the resolution of catimg. .TP \fB\-\-crop_mode\fR mode Which crop mode to use Takes the values: normal, fit, fill .TP \fB\-\-crop_offset\fR value Change the crop offset for normal mode. Possible values: northwest, north, northeast, west, center, east, southwest, south, southeast .TP \fB\-\-xoffset\fR px How close the image will be to the left edge of the window. This only works with w3m. .TP \fB\-\-yoffset\fR px How close the image will be to the top edge of the window. This only works with w3m. .TP \fB\-\-bg_color\fR color Background color to display behind transparent image. This only works with w3m. .TP \fB\-\-gap\fR num Gap between image and text. .TP NOTE: \fB\-\-gap\fR can take a negative value which will move the text closer to the left side. .TP \fB\-\-clean\fR Delete cached files and thumbnails. .SS "OTHER:" .TP \fB\-\-config\fR \fI\,/path/to/config\/\fP Specify a path to a custom config file .TP \fB\-\-config\fR none Launch the script without a config file .TP \fB\-\-no_config\fR Don't create the user config file. .TP \fB\-\-print_config\fR Print the default config file to stdout. .TP \fB\-\-stdout\fR=\fI\,on\/\fR Turn off all colors and disables any ASCII/image backend. .TP \fB\-\-stdout\fR=\fI\,off\/\fR Enable the colored output and ASCII/image backend .TP \fB\-\-stdout\fR=\fI\,auto\/\fR Let the program decide basing on the output type (default behavior) .TP \fB\-\-stdout\fR Equivalent to '\-\-stdout=on', for backward compatibility .TP \fB\-\-help\fR Print this text and exit .TP \fB\-\-version\fR Show neofetch version .TP \fB\-v\fR Display error messages. .TP \fB\-vv\fR Display a verbose log for error reporting. .SS "DEVELOPER:" .TP \fB\-\-gen\-man\fR Generate a manpage for Neofetch in your PWD. (Requires GNU help2man) .SH "REPORTING BUGS" Report bugs to https://github.com/dylanaraps/neofetch/issues .SH "SEE ALSO" The full documentation for .B Neofetch is maintained as a Texinfo manual. If the .B info and .B Neofetch programs are properly installed at your site, the command .IP .B info Neofetch .PP should give you access to the complete manual. hyfetch-1.99.0/get-logo.sh000077500000000000000000000001171470626616500153340ustar00rootroot00000000000000#!/usr/bin/env bash cd /ws/Others/hyfetch python3 -m hyfetch --print-font-logo hyfetch-1.99.0/hyfetch/000077500000000000000000000000001470626616500147135ustar00rootroot00000000000000hyfetch-1.99.0/hyfetch/__init__.py000066400000000000000000000002171470626616500170240ustar00rootroot00000000000000from __future__ import annotations from . import main, constants __version__ = constants.VERSION if __name__ == '__main__': main.run() hyfetch-1.99.0/hyfetch/__main__.py000066400000000000000000000003301470626616500170010ustar00rootroot00000000000000from . import main from .color_util import printc if __name__ == '__main__': try: main.run() except KeyboardInterrupt: printc('&cThe program is interrupted by ^C, exiting...') exit(0)hyfetch-1.99.0/hyfetch/__version__.py000066400000000000000000000000231470626616500175410ustar00rootroot00000000000000VERSION = '1.99.0' hyfetch-1.99.0/hyfetch/color_scale.py000066400000000000000000000040171470626616500175540ustar00rootroot00000000000000""" This version of color_scale is a special version made without numpy dependency. The numpy version would be faster, but numpy is 11 MB large. In comparison, hyfetch 1.0.7 is only 105 kB, so it's not a good idea to depend on numpy. """ from __future__ import annotations from .color_util import RGB def create_gradient_hex(colors: list[str], resolution: int = 300) -> list[RGB]: """ Create gradient array from hex """ colors = [RGB.from_hex(s) for s in colors] return create_gradient(colors, resolution) def create_gradient(colors: list[RGB], resolution: int) -> list[RGB]: """ Create gradient array Usage: arr[ratio / len(arr)] = Scaled gradient color at that point """ result = [] # Create gradient mapping for i in range(len(colors) - 1): c1 = colors[i] c2 = colors[i + 1] bi = i * resolution for ri in range(resolution): ratio = ri / resolution r = int(c2.r * ratio + c1.r * (1 - ratio)) g = int(c2.g * ratio + c1.g * (1 - ratio)) b = int(c2.b * ratio + c1.b * (1 - ratio)) result.append(RGB(r, g, b)) return result def get_raw(gradient: list[RGB], ratio: float) -> RGB: """ :param gradient: Gradient array (2d) :param ratio: Between 0-1 :return: RGB subarray (1d, has 3 values) """ if ratio == 1: return gradient[-1] i = int(ratio * len(gradient)) return gradient[i] class Scale: colors: list[RGB] rgb: list[RGB] def __init__(self, scale: list[str], resolution: int = 300): self.colors = [RGB.from_hex(s) for s in scale] self.rgb = create_gradient(self.colors, resolution) def __call__(self, ratio: float) -> RGB: """ :param ratio: Between 0-1 """ return get_raw(self.rgb, ratio) def test_color_scale(): scale = Scale(['#232323', '#4F1879', '#B43A78', '#F98766', '#FCFAC0']) colors = 100 for i in range(colors + 1): print(scale(i / colors).to_ansi_rgb(False), end=' ') hyfetch-1.99.0/hyfetch/color_util.py000066400000000000000000000166651470626616500174560ustar00rootroot00000000000000from __future__ import annotations import colorsys from dataclasses import dataclass, astuple from .constants import GLOBAL_CFG from .types import * MINECRAFT_COLORS = [ # Minecraft formatting codes # ========================== "&0/\033[38;5;0m", "&1/\033[38;5;4m", "&2/\033[38;5;2m", "&3/\033[38;5;6m", "&4/\033[38;5;1m", "&5/\033[38;5;5m", "&6/\033[38;5;3m", "&7/\033[38;5;7m", "&8/\033[38;5;8m", "&9/\033[38;5;12m", "&a/\033[38;5;10m", "&b/\033[38;5;14m", "&c/\033[38;5;9m", "&d/\033[38;5;13m", "&e/\033[38;5;11m", "&f/\033[38;5;15m", "&l/\033[1m", # Enable bold text "&o/\033[3m", # Enable italic text "&n/\033[4m", # Enable underlined text "&k/\033[8m", # Enable hidden text "&m/\033[9m", # Enable strikethrough text "&r/\033[0m", # Reset everything # Extended codes (not officially in Minecraft) # ============================================ "&-/\n", # Line break "&~/\033[39m", # Reset text color "&*/\033[49m", # Reset background color "&L/\033[22m", # Disable bold text "&O/\033[23m", # Disable italic text "&N/\033[24m", # Disable underlined text "&K/\033[28m", # Disable hidden text "&M/\033[29m", # Disable strikethrough text ] MINECRAFT_COLORS = [(r[:2], r[3:]) for r in MINECRAFT_COLORS] def color(msg: str) -> str: """ Replace extended minecraft color codes in string :param msg: Message with minecraft color codes :return: Message with escape codes """ for code, esc in MINECRAFT_COLORS: msg = msg.replace(code, esc) while '&gf(' in msg or '&gb(' in msg: i = msg.index('&gf(') if '&gf(' in msg else msg.index('&gb(') end = msg.index(')', i) code = msg[i + 4:end] fore = msg[i + 2] == 'f' if code.startswith('#'): rgb = tuple(int(code.lstrip('#')[i:i+2], 16) for i in (0, 2, 4)) else: code = code.replace(',', ' ').replace(';', ' ').replace(' ', ' ') rgb = tuple(int(c) for c in code.split(' ')) msg = msg[:i] + RGB(*rgb).to_ansi(foreground=fore) + msg[end + 1:] return msg def printc(msg: str): """ Print with color :param msg: Message with minecraft color codes """ print(color(msg + '&r')) def clear_screen(title: str = ''): """ Clear screen using ANSI escape codes """ if not GLOBAL_CFG.debug: print('\033[2J\033[H', end='') if title: print() printc(title) print() def redistribute_rgb(r: int, g: int, b: int) -> tuple[int, int, int]: """ Redistribute RGB after lightening Credit: https://stackoverflow.com/a/141943/7346633 """ threshold = 255.999 m = max(r, g, b) if m <= threshold: return int(r), int(g), int(b) total = r + g + b if total >= 3 * threshold: return int(threshold), int(threshold), int(threshold) x = (3 * threshold - total) / (3 * m - total) gray = threshold - x * m return int(gray + x * r), int(gray + x * g), int(gray + x * b) @dataclass(unsafe_hash=True) class HSL: h: float s: float l: float def __iter__(self): return iter(astuple(self)) def rgb(self) -> RGB: return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(self.h, self.l, self.s)]) @dataclass(unsafe_hash=True) class RGB: r: int g: int b: int def __iter__(self): return iter(astuple(self)) @classmethod def from_hex(cls, hex: str) -> "RGB": """ Create color from hex code >>> RGB.from_hex('#FFAAB7') RGB(r=255, g=170, b=183) :param hex: Hex color code :return: RGB object """ hex = hex.lstrip("#") r = int(hex[0:2], 16) g = int(hex[2:4], 16) b = int(hex[4:6], 16) return cls(r, g, b) def to_ansi_rgb(self, foreground: bool = True) -> str: """ Convert RGB to ANSI TrueColor (RGB) Escape Code. This uses the 24-bit color encoding (an uint8 for each color value), and supports 16 million colors. However, not all terminal emulators support this escape code. (For example, IntelliJ debug console doesn't support it). Currently, we do not know how to detect whether a terminal environment supports ANSI RGB. If you have any thoughts, feel free to submit an issue on our Github page! :param foreground: Whether the color is for foreground text or background color :return: ANSI RGB escape code like \033[38;2;255;100;0m """ c = '38' if foreground else '48' return f'\033[{c};2;{self.r};{self.g};{self.b}m' def to_ansi_8bit(self, foreground: bool = True) -> str: """ Convert RGB to ANSI 8bit 256 Color Escape Code. This encoding supports 256 colors in total. :return: ANSI 256 escape code like \033[38;5;206m' """ r, g, b = self.r, self.g, self.b sep = 42.5 while True: if r < sep or g < sep or b < sep: gray = r < sep and g < sep and b < sep break sep += 42.5 if gray: color = 232 + (r + g + b) / 33 else: color = 16 + int(r / 256. * 6) * 36 + int(g / 256. * 6) * 6 + int(b / 256. * 6) c = '38' if foreground else '48' return f'\033[{c};5;{int(color)}m' def to_ansi_16(self, foreground: bool = True) -> str: """ Convert RGB to ANSI 16 Color Escape Code :return: ANSI 16 escape code """ raise NotImplementedError() def to_ansi(self, mode: AnsiMode | None = None, foreground: bool = True): if not mode: mode = GLOBAL_CFG.color_mode if mode == 'rgb': return self.to_ansi_rgb(foreground) if mode == '8bit': return self.to_ansi_8bit(foreground) if mode == 'ansi': return self.to_ansi_16(foreground) def lighten(self, multiplier: float) -> 'RGB': """ Lighten the color by a multiplier :param multiplier: Multiplier :return: Lightened color (original isn't modified) """ return RGB(*redistribute_rgb(*[v * multiplier for v in self])) def hsl(self) -> HSL: h, l, s = colorsys.rgb_to_hls(*[v / 255.0 for v in self]) return HSL(h, s, l) def set_light(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'RGB': """ Set HSL lightness value :param light: Lightness value (0-1) :param at_least: Set the lightness to at least this value (no change if greater) :param at_most: Set the lightness to at most this value (no change if lesser) :return: New color (original isn't modified) """ # Convert to HSL hsl = self.hsl() # Modify light value if at_least is None and at_most is None: hsl.l = light else: if at_most: hsl.l = min(hsl.l, light) if at_least: hsl.l = max(hsl.l, light) # Convert back to RGB return hsl.rgb() def is_light(self): return self.hsl().l > 0.5 def overlay(self, color: 'RGB', alpha: float) -> 'RGB': """ Overlay a color on top of this color :param color: Overlay color :param alpha: Overlay alpha :return: New color (original isn't modified) """ return RGB(*[round((1 - alpha) * v1 + alpha * v2) for v1, v2 in zip(self, color)]) hyfetch-1.99.0/hyfetch/constants.py000066400000000000000000000024401470626616500173010ustar00rootroot00000000000000from __future__ import annotations import os import platform from dataclasses import dataclass from pathlib import Path from .types import LightDark from .__version__ import VERSION CONFIG_PATH = Path.home() / '.config/hyfetch.json' TEST_ASCII = r""" ### |\___/| ### ### ) ( ### ## =\ /= ## #### )===( #### ### / \ ### ### | | ### ## / {txt} \ ## ## \ / ## _/\_\_ _/_/\_ |##| ( ( |##| |##| ) ) |##| |##| (_( |##|""".strip('\n') TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n')) DEFAULT_DARK_L = 0. IS_WINDOWS = platform.system() == 'Windows' CACHE_PATH = Path(os.getenv("LOCALAPPDATA") or os.getenv("XDG_CACHE_HOME") or Path.home() / '.cache') / 'hyfetch' @dataclass class GlobalConfig: # Global color mode default to 8-bit for compatibility color_mode: str override_distro: str | None debug: bool is_light: bool use_overlay: bool def light_dark(self) -> LightDark: return 'light' if self.is_light else 'dark' def default_lightness(self, term: LightDark | None = None) -> float: if term is None: term = self.light_dark() return 0.65 if term.lower() == 'dark' else 0.4 GLOBAL_CFG = GlobalConfig(color_mode='8bit', override_distro=None, debug=False, is_light=False, use_overlay=True) hyfetch-1.99.0/hyfetch/data/000077500000000000000000000000001470626616500156245ustar00rootroot00000000000000hyfetch-1.99.0/hyfetch/data/font_logos.json000066400000000000000000000045221470626616500206730ustar00rootroot00000000000000{ "Alma": "", "Alpine": "", "AOSC OS": "", "Apple": "", "Archcraft": "", "ArchLabs": "", "Arch": "", "Arco": "", "Arduino": "", "Artix": "", "Awesome WM": "", "Big": "", "bspwm": "", "Budgie": "", "CentOS": "", "Cinnamon": "", "Codeberg": "", "CoreOS": "", "Crystal": "", "Debian": "", "Deepin": "", "Devuan": "", "Docker": "", "dwm": "", "elementary OS": "", "Endeavour OS": "", "Enlightenment": "", "F-droid": "", "Fedora": "", "Fedora (inverse)": "", "Ferris": "", "Flathub": "", "Fluxbox": "", "Forgejo": "", "FOSDEM": "", "FreeBSD": "", "FreeCAD": "", "freedesktop.org": "", "Garuda": "", "Gentoo": "", "GIMP": "", "Gitea": "", "GNOME": "", "GNU Guix": "", "GTK": "", "Hyperbola -libre": "", "Hyprland": "", "i3": "", "illumos": "", "Inkscape": "", "JWM": "", "Kali": "", "KDE": "", "KDE Neon": "", "KDE Plasma": "", "Kdenlive": "", "KiCad": "", "Krita": "", "Kubuntu": "", "Kubuntu (inverse)": "", "Mint": "", "Mint (inverse)": "", "Loc-OS": "", "LXDE": "", "LXLE": "", "LXQt": "", "Mageia": "", "Mandriva": "", "Manjaro": "", "MATE": "", "mpv": "", "MX": "", "Neovim": "", "NixOS": "", "Octoprint": "", "OpenBSD": "", "OpenSCAD": "", "OpenSUSE": "", "OSH": "", "OSHWA": "", "OSI": "", "Parabola -libre": "", "Parrot OS": "", "Pop!_OS": "", "PostmarketOS": "", "Prusa Slicer": "", "Puppy": "", "Qt": "", "Qtile": "", "QubesOS": "", "Raspberry pi": "", "Red Hat": "", "RepRap": "", "RISC-V": "", "Rocky": "", "Sabayon": "", "Slackware": "", "Slackware (inverse)": "", "Snappy": "", "Solus": "", "Sway": "", "Tails": "", "Thunderbird": "", "Tor Browser": "", "Trisquel": "", "Tux": "", "Ubuntu": "", "Ubuntu (inverse)": "", "Vanilla OS": "", "Void": "", "VS Codium": "", "Wayland": "", "Wikimedia": "", "Xero": "", "XFCE": "", "Xmonad": "", "Xorg": "", "Zorin OS": "", "Windows": "\uE62A" }hyfetch-1.99.0/hyfetch/distros/000077500000000000000000000000001470626616500164025ustar00rootroot00000000000000hyfetch-1.99.0/hyfetch/distros/__init__.py000066400000000000000000000007761470626616500205250ustar00rootroot00000000000000from __future__ import annotations import string class AsciiArt: name: str match: str color: str ascii: str def __init__(self, match: str, color: str, ascii: str, name: str | None = None): self.match = match self.color = color self.ascii = ascii self.name = name or self.get_friendly_name() def get_friendly_name(self) -> str: return self.match.split("|")[0].strip(string.punctuation + '* ') \ .replace('"', '').replace('*', '') hyfetch-1.99.0/hyfetch/distros/adelie.py000066400000000000000000000011261470626616500201770ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt adelie = AsciiArt(match=r'''"Adélie"* | "Adelie"*''', color='4 7 6', ascii=r""" ${c1} ${c3} ,-^-___ ${c3} /\\\/// ${c2}refined.${c1} /\\\\// ${c2}reliable.${c1} /\\\/// ${c2}ready.${c1} /\\/////\ __///\\\\/////\ ${c3} _//////\\\\\\\//// ${c1} ///////${c3}\\\\\\\\\\// //////${c1}\\\\\/ /////\\\\\/ /////${c3}\\\\/ /\\///\\\/ /\\\/${c1}\\/ /\\\\// ////// /// ${c3}\\\\\ """) hyfetch-1.99.0/hyfetch/distros/aeros.py000066400000000000000000000022141470626616500200640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt aeros = AsciiArt(match=r'''"aerOS"*''', color='fg 0 0 0', ascii=r""" ${c1} ooo OOO OOO ooo oOO OOo oOO OOo oOO OOo oOO OOo oOO OOo oOO OOo OOo OOo OOo OOo OOo OOo oOO OOo oOO OOo oOO OOo oOO OOo oO OOo oOO OOo oOO OOo ooo OOO OOO ooo """) hyfetch-1.99.0/hyfetch/distros/afterglow.py000066400000000000000000000014101470626616500207420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt afterglow = AsciiArt(match=r'''"Afterglow"*''', color='5 1 3 4', ascii=r""" ${c2} . ${c1}. ${c2}.{! ${c1}.L! ${c2}J@||* ${c1}gJJJJL` ${c2}g@FFS" ${c1},@FFFJF`${c2}_g@@LLP` ${c1}_@FFFFF`${c2}_@@@@@P` ${c4}. ${c1}J@@@LLF ${c2}_@@@@@P` ${c4}.J! ${c1}g@@@@@" ${c2}_@@@@@P`${c3}. ${c4}.L|||* ${c1}g@@@@M" ${c2}"VP`${c3}.L! ${c4}<@JJJJ` ${c1}"@N" ${c3}:||||! ${c4}JFFFFS" ${c3}.{JJ||F`${c4}_gFFFF@' ${c3}.@FJJJF`${c4},@LFFFF` ${c3}_@FFFFF ${c4}VLLLP` ${c3}J@@LL@" ${c4}`" ${c3}V@@" """) hyfetch-1.99.0/hyfetch/distros/aix.py000066400000000000000000000016161470626616500175410ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt aix = AsciiArt(match=r'''"AIX"*''', color='2 7', ascii=r""" ${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/- """) hyfetch-1.99.0/hyfetch/distros/almalinux.py000066400000000000000000000017771470626616500207620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt almalinux = AsciiArt(match=r'''"AlmaLinux"*''', color='1 3 4 2 6', ascii=r""" ${c1} 'c:. ${c1} lkkkx, .. ${c2}.. ,cc, ${c1} okkkk:ckkx' ${c2}.lxkkx.okkkkd ${c1} .:llcokkx' ${c2}:kkkxkko:xkkd, ${c1} .xkkkkdood: ${c2};kx, .lkxlll; ${c1} xkkx. ${c2}xk' xkkkkk: ${c1} 'xkx. ${c2}xd .....,. ${c3} .. ${c1}:xkl' ${c2}:c ..''.. ${c3} .dkx' ${c1}.:ldl:'. ${c2}' ${c4}':lollldkkxo; ${c3} .''lkkko' ${c4}ckkkx. ${c3}'xkkkd:kkd. .. ${c5};' ${c4}:kkxo. ${c3},xkkkd;kk' ,d; ${c5}ld. ${c4}':dkd::cc, ${c3} .,,.;xkko'.';lxo. ${c5}dx, ${c4}:kkk'xkkkkc ${c3} 'dkkkkkxo:. ${c5};kx ${c4}.kkk:;xkkd. ${c3} ..... ${c5}.;dk:. ${c5}lkk. ${c4}:;, ${c5}:kkkkkkkdoxkkx ,c,,;;;:xkkd. ;kkkkl... ;kkkkl ,od; """) hyfetch-1.99.0/hyfetch/distros/alpine.py000066400000000000000000000016551470626616500202330ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt alpine = AsciiArt(match=r'''"Alpine"*''', color='4 5 7 6', ascii=r""" ${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. """) hyfetch-1.99.0/hyfetch/distros/alpine_small.py000066400000000000000000000004341470626616500214150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt alpine_small = AsciiArt(match=r'''"alpine_small"''', color='4 7', ascii=r""" ${c1} /\ /\ /${c2}/ ${c1}\ \ /${c2}/ ${c1}\ \ /${c2}// ${c1}\ \ ${c2}// ${c1}\ \ \ """) hyfetch-1.99.0/hyfetch/distros/alter.py000066400000000000000000000015211470626616500200620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt alter = AsciiArt(match=r'''"Alter"*''', color='6 6', ascii=r""" ${c1} %, ^WWWw 'wwwwww !wwwwwwww #`wwwwwwwww @wwwwwwwwwwww wwwwwwwwwwwwwww wwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwww, w~1i.wwwwwwwwwwwwwwwww, 3~:~1lli.wwwwwwwwwwwwwwww. :~~:~?ttttzwwwwwwwwwwwwwwww #<~:~~~~?llllltO-.wwwwwwwwwww #~:~~:~:~~?ltlltlttO-.wwwwwwwww @~:~~:~:~:~~(zttlltltlOda.wwwwwww @~:~~: ~:~~:~:(zltlltlO a,wwwwww 8~~:~~:~~~~:~~~~_1ltltu ,www 5~~:~~:~~:~~:~~:~~~_1ltq N,, g~:~~:~~~:~~:~~:~:~~~~1q N, """) hyfetch-1.99.0/hyfetch/distros/amazon.py000066400000000000000000000016121470626616500202410ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt amazon = AsciiArt(match=r'''"Amazon"*''', color='3 7', ascii=r""" ${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+:` """) hyfetch-1.99.0/hyfetch/distros/amogos.py000066400000000000000000000013641470626616500202450ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt amogos = AsciiArt(match=r'''"AmogOS"*''', color='15 6', ascii=r""" ${c1} ___________ / \ / ${c2}______${c1} \ / ${c2}/ \${c1} \ | ${c2}( )${c1} \ / ${c2}\______/${c1} | | | / \ | | | | / | | | | _______ | ____/ / \ | / | | | | / ____/ | \_________/ / | \ __/ \_______/ """) hyfetch-1.99.0/hyfetch/distros/anarchy.py000066400000000000000000000032421470626616500204020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt anarchy = AsciiArt(match=r'''"Anarchy"*''', color='7 4', ascii=r""" ${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} """) hyfetch-1.99.0/hyfetch/distros/android.py000066400000000000000000000012731470626616500203770ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt android = AsciiArt(match=r'''"Android"*''', color='2 7', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/android_small.py000066400000000000000000000004451470626616500215670ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt android_small = AsciiArt(match=r'''"android_small"*''', color='2 7', ascii=r""" ${c1} ;, ,; ';,.-----.,;' ,' ', / O O \ | | '-----------------' """) hyfetch-1.99.0/hyfetch/distros/antergos.py000066400000000000000000000020561470626616500206010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt antergos = AsciiArt(match=r'''"Antergos"*''', color='4 6', ascii=r""" ${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+:.` """) hyfetch-1.99.0/hyfetch/distros/antix.py000066400000000000000000000010171470626616500200760ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt antix = AsciiArt(match=r'''"antiX"*''', color='1 7 3', ascii=r""" ${c1} \ , - ~ ^ ~ - \ / , ' \ ' , / , \ '/ , \ / , ,___, \/ , / | _ _ _|_ o /\ , |, | / |/ | | | / \ , \,_/\_/ | |_/|_/|_/_/ \, , / ,\ , / , ' \ ' - , _ _ _ , ' """) hyfetch-1.99.0/hyfetch/distros/aosc_os.py000066400000000000000000000015041470626616500204020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt aosc_os = AsciiArt(match=r'''"AOSC OS"*''', color='4 0 1 3', ascii=r''' ${c2} __ ${c2}gpBBBBBBBBBP ${c2}_gBBBBBBBBBRP ${c2}4BBBBBBBBRP ${c4},_____ ${c2}`"" ${c4}_g@@@@@@@@@@@@@%g> ${c4}__@@@@@@@@@@@@@@@@P" ${c1}___ ${c4}_g@@@@@@@@@@@@@@@N"` ${c1}_gN@@@@@N^ ${c4}_w@@@@@@@@@@@@@@@@P" ${c1}_g@@@@@@@P" ${c4}_g@@@@@@@@@@@@@@@N"` ${c1}VMNN@NNNM^` ${c4}^MMM@@@@@@@@@@@MP" ${c3},ggppww__ ${c4}`""""" ${c3}_wNNNNNNNNNNNNNNNNNNN ${c3}_gBNNNNNNNNNNNNNNNNNP" ${c3}_wNNNNNNNNNNNNNNNNNNMP` ${c3}_gBNNNNNNNNNNNNNNNNNP" ${c3}_wNNNNNNNNNNNNNNNNNNNM^ ${c3}""Y^^MNNNNNNNNNNNNP` ${c3}`""""""" ''') hyfetch-1.99.0/hyfetch/distros/aperio_gnu_linux.py000066400000000000000000000003561470626616500223270ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt aperio_gnu_linux = AsciiArt(match=r'''"Aperio GNU/Linux"*''', color='255', ascii=r""" ${c2} _.._ _ ._.. _ (_][_)(/,[ |(_) | GNU/Linux """) hyfetch-1.99.0/hyfetch/distros/aperture.py000066400000000000000000000016171470626616500206100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt aperture = AsciiArt(match=r'''"Aperture"*''', color='6 6 7 1', ascii=r""" ${c1} .,-:;//;:=, . :H@@@MM@M#H/.,+%;, ,/X+ +M@@M@MM%=,-%HMMM@X/, -+@MM; $M@@MH+-,;XMMMM@MMMM@+- ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/. ,%MM@@MH ,@%= .---=-=:=,. =@#@@@MX., -%HX$$%%%:; =-./@M@M$ .;@MMMM@MM: X@/ -$MM/ . +MM@@@M$ ,@M@H: :@: . =X#@@@@- ,@@@MMX, . /H- ;@M@M= .H@@@@M@+, %MM+..%#$. /MMMM@MMH/. XM@MH; =; /%+%$XHH@$= , .H@@@@MX, .=--------. -%H.,@@@@@MX, .%MM@@@HHHXX$$$%+- .:$MMX =M@@MM%. =XMMM@MM@MM#H;,-+HMM@M+ /MMMX= =%@M@M#@$-.=$@MM@@@M; %M%= ,:+$+-,/H#MMMMMMM@= =, =++%%%%+/:-. """) hyfetch-1.99.0/hyfetch/distros/apricity.py000066400000000000000000000012351470626616500206010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt apricity = AsciiArt(match=r'''"Apricity"*''', color='4 7 1', ascii=r""" ${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+/-` """) hyfetch-1.99.0/hyfetch/distros/arch.py000066400000000000000000000014161470626616500176730ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arch = AsciiArt(match=r'''"Arch"*''', color='6 6 7 1', ascii=r""" ${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: `++:. `-/+/ .` `/ """) hyfetch-1.99.0/hyfetch/distros/arch_old.py000066400000000000000000000013711470626616500205310ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arch_old = AsciiArt(match=r'''"arch_old"''', color='6 7 1', ascii=r""" ${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' '! """) hyfetch-1.99.0/hyfetch/distros/arch_small.py000066400000000000000000000004111470626616500210550ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arch_small = AsciiArt(match=r'''"arch_small"''', color='6 7 1', ascii=r""" ${c1} /\ / \ /\ \ ${c2} / \ / ,, \ / | | -\ /_-'' ''-_\ """) hyfetch-1.99.0/hyfetch/distros/archbox.py000066400000000000000000000016211470626616500204020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt archbox = AsciiArt(match=r'''"ArchBox"*''', color='2 7 1', ascii=r""" ${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/-` """) hyfetch-1.99.0/hyfetch/distros/archcraft.py000066400000000000000000000056711470626616500207220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt archcraft = AsciiArt(match=r'''"Archcraft"*''', color='6 1 2 3 4 5', ascii=r""" ${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢰⡆${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢠⣿⣿⡄${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢀⣾⣿⣿⣿⡀${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣷⡀${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⣿⣷${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢼⣿⣿⣿⣿⣿⣿⣿⣿⣧${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣤⣈⠻⢿⣿⣿⣿⣿⣿⣿⣧${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣿⣿⣿⣿⣮⣿⣿⣿⣿⣿⣿⣿⣧${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⡿⣿⣿⡟${c6}⠄⠄${c1}⠸⣿⣿⡿⣿⣿⣿⣿⣿⣷⡀${c6}⠄⠄⠄⠄⠄⠄⠄⠄ ${c1}⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⡏${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠈⣿⣿⣿⣿⣿⣷⡀${c1}⠄⠄⠄⠄⠄⠄⠄ ${c2}⠄⠄⠄⠄⠄⠄${c1}⢀⣼⣿⣿⣿⣿⣿⣿⡗${c2}⠄⠄⠄${c1}⢀⣠⣤⣀⠄⠄⠄${c1}⠸⣿⣿⣿⣿⣿⣿⣷⡀${c2}⠄⠄⠄⠄⠄⠄ ${c3}⠄⠄⠄⠄⠄${c1}⢀⣾⣿⣿⣿⣿⣿⡏⠁${c3}⠄⠄⠄${c1}⢠⣿⣿⣿⣿⡇${c3}⠄⠄⠄⠄${c1}⢙⣿⣿⣻⠿⣿⣷⡀${c3}⠄⠄⠄⠄⠄ ${c4}⠄⠄⠄⠄${c1}⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀${c4}⠄⠄⠄${c1}⠻⣿⣿⡿⠃${c4}⠄⠄⠄${c1}⢀⣼⣿⣿⣿⣿⣦⣌⠙⠄${c4}⠄⠄⠄⠄ ${c5}⠄⠄⠄${c1}⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀${c5}⠄⠄⠄ ${c6}⠄⠄${c1}⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄${c6}⠄⠄ ${c1}⠄${c1}⣠⣿⣿⣿⣿⠿⠛⠋⠁${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠉⠙⠻⢿⣿⣿⣿⣿⣆${c1}⠄ ${c1}⡰⠟⠛⠉⠁${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠉⠙⠛⠿⢆ """) hyfetch-1.99.0/hyfetch/distros/archcraft_ascii.py000066400000000000000000000015161470626616500220640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt archcraft_ascii = AsciiArt(match=r'''"archcraft_ascii"*''', color='6 1 2 3 4 5', ascii=r""" ${c1} -o\ :ooo: .ooooo. ooooooo. +oooooooo. -oooooooooo. --:-+oooooooo. yooo+=+sooooooo. yoooooosooooooooo. y+ooooooooooooooooo. yoooooooooooooooooooo` yoooooo+oo= :oo++ooooo` :oooooo. +ooooo- -ooooooo. .::. +ooosoo= -oooooo` .oooo` +os-=o= =ooooooo=: `oo+ :=ooo=--`. +ooooooooos. .=sooooooo+- .+osossos+-` `-+osososs+. :sss+=-:` `:-=+ssss: :=-:` `-=+: """) hyfetch-1.99.0/hyfetch/distros/archcraft_minimal.py000066400000000000000000000026051470626616500224220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt archcraft_minimal = AsciiArt(match=r'''"archcraft_minimal"*''', color='6 1 2 3 4 5', ascii=r""" ${c1} ⢰⡆ ⢠⣿⣿⡄ ⢀⣾⣿⣿⣿⡀ ⣼⣿⣿⣿⣿⣷⡀ ⣼⣿⣿⣿⣿⣿⣿⣷ ⢼⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣰⣤⣈⠻⢿⣿⣿⣿⣿⣿⣿⣧ ⣰⣿⣿⣿⣿⣮⣿⣿⣿⣿⣿⣿⣿⣧ ⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣼⣿⣿⣿⣿⣿⡿⣿⣿⡟ ⠸⣿⣿⡿⣿⣿⣿⣿⣿⣷⡀ ⣼⣿⣿⣿⣿⣿⡏ ⠈⣿⣿⣿⣿⣿⣷⡀ ⢀⣼⣿⣿⣿⣿⣿⣿⡗ ⢀⣠⣤⣀ ⠸⣿⣿⣿⣿⣿⣿⣷⡀ ⢀⣾⣿⣿⣿⣿⣿⡏⠁ ⢠⣿⣿⣿⣿⡇ ⢙⣿⣿⣻⠿⣿⣷⡀ ⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀ ⠻⣿⣿⡿⠃ ⢀⣼⣿⣿⣿⣿⣦⣌⠙ ⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏ ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀ ⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁ ⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄ ⣠⣿⣿⣿⣿⠿⠛⠋⠁ ⠉⠙⠻⢿⣿⣿⣿⣿⣆ ⡰⠟⠛⠉⠁ ⠉⠙⠛⠿⢆ """) hyfetch-1.99.0/hyfetch/distros/archlabs.py000066400000000000000000000020061470626616500205310ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt archlabs = AsciiArt(match=r'''"ARCHlabs"*''', color='6 6 7 1', ascii=r""" ${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; .,'. .',. """) hyfetch-1.99.0/hyfetch/distros/archmerge.py000066400000000000000000000014341470626616500207130ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt archmerge = AsciiArt(match=r'''"ArchMerge"*''', color='6 6 7 1', ascii=r""" ${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. """) hyfetch-1.99.0/hyfetch/distros/archstrike.py000066400000000000000000000016271470626616500211210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt archstrike = AsciiArt(match=r'''"ArchStrike"*''', color='8 6', ascii=r""" ${c1} * **. **** ****** ******* ** ******* **** ******* ${c1}****${c2}_____${c1}***${c2}/${c1}* ***${c2}/${c1}*******${c2}//${c1}*** **${c2}/${c1}********${c2}///${c1}*${c2}/${c1}** **${c2}/${c1}*******${c2}////${c1}***${c2}/${c1}** **${c2}/${c1}****${c2}//////.,${c1}****${c2}/${c1}** ***${c2}/${c1}*****${c2}/////////${c1}**${c2}/${c1}*** ****${c2}/${c1}**** ${c2}/////${c1}***${c2}/${c1}**** ******${c2}/${c1}*** ${c2}//// ${c1}**${c2}/${c1}****** ********${c2}/${c1}* ${c2}/// ${c1}*${c2}/${c1}******** ,****** ${c2}// ______ / ${c1}******, """) hyfetch-1.99.0/hyfetch/distros/arcolinux.py000066400000000000000000000015541470626616500207650ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arcolinux = AsciiArt(match=r'''"ArcoLinux"*''', color='7 4', ascii=r""" ${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} """) hyfetch-1.99.0/hyfetch/distros/arcolinux_small.py000066400000000000000000000006221470626616500221500ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arcolinux_small = AsciiArt(match=r'''"arcolinux_small"*''', color='7 4', ascii=r""" ${c2} A ooo ooooo ooooooo ooooooooo ooooo ooooo ooooo ooooo ooooo ooooo ooooo ${c1}${c2} ooooo ${c1}${c2} ooooo ${c1}${c2} """) hyfetch-1.99.0/hyfetch/distros/arkane.py000066400000000000000000000020021470626616500202070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arkane = AsciiArt(match=r'''"Arkane"*''', color='7 130 237', ascii=r""" ${c3} .:.. ..:::...... ${c2}.${c3} .${c2}.${c3}..... ${c2}+=${c3}...${c2}==${c3}.... ......:.${c1}:-${c2}:${c3}..${c1}+*${c2}=${c3}.... ${c2}:----::${c3}...... ${c2}.=***##*+=: ${c3}.. ${c2}=${c1}***######*${c2}= ${c2}.${c1}-*######+ ${c2}:+${c1}###%%%###${c3}: ${c2}-+*${c1}########+${c3}. ${c2}=++*${c1}#######${c3}- ${c2}-+=+**${c1}*####${c3}= ${c3}.${c2}-=++==***${c1}##*${c1}- ${c2}-++++++==++++= .-+++**+++=+===${c3}. ${c2}:---===++++=-=--${c3}. ${c2}-===============${c3}-==--: ${c2}.-==+++***++*${c1}*#########${c3}=:::. ${c2}.-=++++*++++**${c1}#######%%###${c3}= ${c2}.:==++++++**${c1}#############${c3}: ${c2}.${c3}-+*++*+++==${c1}###${c3}+ -${c1}*+${c3}: """) hyfetch-1.99.0/hyfetch/distros/arselinux.py000066400000000000000000000033311470626616500207660ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arselinux = AsciiArt(match=r'''"ArseLinux"*''', color='4 7', ascii=r""" ${c1} ⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⣴⣶⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣄⠀⠀⠀⠀⣼⠟⠁⠀⠀⢀⣀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⢀⣤⡀⠀⠀⠀⠉⢻⣷⡄⠀⠀⠁⠀⢀⣤⣾⡿⠟⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣿⠏⠀⠀⠀⠀⠀⠀⠹⣿⡄⠀⠀⠀⠙⠉⠁⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⡄⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠀⠀⠀⠠⣶⣶⣶⡶ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⢠⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠂⠀⠀⠀⠀⠀⢀⣾⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠇⠀⠀⠀⠀⠀⣠⣾⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣇⣀⣀⣀⣠⣴⣾⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⣤⣤⣴⣶⣾⠿⠟⣿⡏⠙⠛⠛⠛⠋⠉⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⡄⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠇⠀⠀⠀⠀⠀⠀⠘⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ """) hyfetch-1.99.0/hyfetch/distros/artix.py000066400000000000000000000014101470626616500200770ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt artix = AsciiArt(match=r'''"Artix"*''', color='6 6 7 1', ascii=r""" ${c1} ' 'o' 'ooo' 'ooxoo' 'ooxxxoo' 'oookkxxoo' 'oiioxkkxxoo' ':;:iiiioxxxoo' `'.;::ioxxoo' '-. `':;jiooo' 'oooio-.. `'i:io' 'ooooxxxxoio:,. `'-;' 'ooooxxxxxkkxoooIi:-. `' 'ooooxxxxxkkkkxoiiiiiji' 'ooooxxxxxkxxoiiii:'` .i' 'ooooxxxxxoi:::'` .;ioxo' 'ooooxooi::'` .:iiixkxxo' 'ooooi:'` `'';ioxxo' 'i:'` '':io' '` `' """) hyfetch-1.99.0/hyfetch/distros/artix_small.py000066400000000000000000000006711470626616500212770ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt artix_small = AsciiArt(match=r'''"artix_small"*''', color='6 6 7 1', ascii=r""" ${c1} ' 'A' 'ooo' 'ookxo' `ookxxo' '. `ooko' 'ooo`. `oo' 'ooxxxoo`. `' 'ookxxxkooo.` . 'ookxxkoo'` .'oo' 'ooxoo'` .:ooxxo' 'io'` `'oo' '` `' """) hyfetch-1.99.0/hyfetch/distros/arya.py000066400000000000000000000014551470626616500177150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt arya = AsciiArt(match=r'''"Arya"*''', color='2 1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/asahi.py000066400000000000000000000020361470626616500200420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt asahi = AsciiArt(match=r'''"Asahi"*''', color='3 2 1 8 7 6 4', ascii=r""" ${c1} ## ${c2}** ${c1}*####${c2}****. ${c1}###${c2}, ${c3}...,${c1}/#${c3},,,.. ${c3}/*,,,,,,,,${c1}*${c3},........${c4},, ${c3},((((((//*,,,,,,,,${c4},...... ${c3}((((((((((((((${c5}%..${c4}.......... ${c3},(((((((((((((((${c5}@@(${c4}............ ${c3}(((((((((((((((((${c5}@@@@/${c4}............ ${c3},((((((((((((((((((${c5}@@@@@&*${c4}........... ${c3}((((((((((((((((((((${c5}@@@@@@@&${c4},........... ${c3}(((((((((((((((((((((${c5}@@@${c6}&%&${c5}@@@%${c4},.......... ${c3}/(((((((((((((((((((${c5}@@@${c6}&%%&${c5}@@@@(${c4}........ ${c3},((((((((((((((((${c5}@@@${c6}&&${c5}@@&/&@@@/${c4}.. ${c3}/((((((((((((${c5}@@@@@@/${c4}.../&& ${c3}.(((((((((${c5}@@@@(${c4}.... ${c3}/(((((${c5}@@#${c4}... ${c3}.((${c4}&, """) hyfetch-1.99.0/hyfetch/distros/asteroidos.py000066400000000000000000000014521470626616500211320ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt asteroidos = AsciiArt(match=r'''"AsteroidOS"*''', color='160 208 202 214', ascii=r""" ${c1} *** ${c1} ***** ${c1} ********** ${c1} *************** ${c1} *///****////****////. ${c2} (/////// /////// ///////( ${c2} /(((((//* //, //((((((. ${c2} ((((((((((( ((( (((((((( ${c2} *((((((((((((((((((((((( (((((((( ${c3} (((((#(((((((#((((( ((#((((( ${c3} (#(#(#####(#(#, ####(#(# ${c3} ######### ######## ${c3} /######## ######## ${c4} #######%####### ${c4} (#%%%%%%%# ${c4} %%%%% ${c4} %%% """) hyfetch-1.99.0/hyfetch/distros/astos.py000066400000000000000000000016311470626616500201060ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt astos = AsciiArt(match=r'''"astOS"*''', color='8', ascii=r""" ${c1} oQA#$%UMn H 9 G # 6 % ?#M#%KW3" // \\ // \\ // \\ // \\ n%@$DK&ML .0O3#@&M_ P # 8 W H U G # B N O @ C&&#%HNAR 'WS3QMHB" // \\ \\ // \\ \\ // \\ \\ // \\ \\ uURF$##Bv nKWB$%ABc aM@3R@D@b 8 M @ O # % % & G U @ @ & @ # % % # !HGN@MNCf t&$9#%HQr ?@G#6S@QP """) hyfetch-1.99.0/hyfetch/distros/astra_linux.py000066400000000000000000000030721470626616500213070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt astra_linux = AsciiArt(match=r'''"Astra Linux"*''', color='160 231', ascii=r""" ${c1} AA ${c1} AaaA ${c1} Aa${c2}/\${c1}aA ${c1} Aa${c2}/${c1}aa${c2}\${c1}aA ${c1} Aa${c2}/${c1}aAAa${c2}\${c1}aA ${c1} aA${c2}/${c1}aaAAaa${c2}\${c1}Aa ${c1} aA${c2}/${c1}aaAAAAaa${c2}\${c1}Aa ${c1} aaaaaaAAAAa${c2}/${c1}aaAAAAAAaa${c2}\${c1}aAAAAaaaaa ${c1} aAAa${c2}-----${c1}aaaaaAAAAAAAAAAaaaaa${c2}-----${c1}aAAa ${c1} aAA${c2}\ ${c1}aAAAAAAAAAAAAAAAAAAAAAAa${c2} /${c1}AAa ${c1} aAa${c2}\${c1}aAAA${c2}\${c1}AAAA${c2}\${c1}AAAA${c2}\${c1}AAA${c2}\${c1}AAa${c2}/${c1}aAa ${c1} aAa${c2}\${c1}aA${c2}\\${c1}AAA${c2}\\${c1}AAA${c2}\\${c1}AA${c2}\\/${c1}aAa ${c1} aAA${c2}\${c1}aA${c2}\\${c1}AAA${c2}\\${c1}AAA${c2}\\${c1}Aa${c2}/${c1}AAa ${c1} aA${c2}\${c1}aA${c2}\\${c1}AAA${c2}\\${c1}AAA${c2}\\/${c1}Aa ${c1} aA${c2}/${c1}AA${c2}\\\${c1}AA${c2}\\\${c1}AA${c2}\\\${c1}Aa ${c1} aA${c2}/\${c1}AAa${c2}\\\${c1}Aa${c2}\\\${c1}Aa${c2}\\\${c1}Aa ${c1} aA${c2}/\\${c1}AAa${c2}\\/\${c1}a${c2}\\\${c1}Aa${c2}\\${c1}Aa ${c1} aA${c2}/${c1}a${c2}\\\${c1}Aa${c2}\/${c1}AA${c2}\\\\\${c1}Aa${c2}\\${c1}Aa ${c1} aA${c2}/${c1}aA${c2}\\/${c1}aAa aAa${c2}\\\${c1}Aa${c2}\${c1}Aa ${c1} aA${c2}/\${c1}A${c2}\/${c1}Aa aA${c2}\\${c1}A${c2}\\${c1}Aa ${c1} A${c2}|/${c1}aaAa aAaa${c2}\|${c1}A ${c1} aAaa aaAa """) hyfetch-1.99.0/hyfetch/distros/athena.py000066400000000000000000000020351470626616500202140ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt athena = AsciiArt(match=r'''"Athena"*''', color='7 3', ascii=r""" ${c1} . .. ${c1} :####: ####. ${c1} .################ ${c1} :################## ${c1}.###################. ${c1}######## ####### ${c1}####### ${c2}####${c1} ##### ${c1}:#######. #### ${c1} ######### ${c2}#${c1} ## # ${c1} ####### ${c2}##${c1} #### ${c1}######## ${c2}####${c1} ####### ${c1}######## ${c2}#####${c1} ######## ${c1}######## ${c2}#######${c1} ####### ${c1} ####### ${c2}########${c1} ####### ${c1} ######## ${c2}#########${c1} ###### ${c1} ######## ${c2}#########${c1} ##### ${c1} ####### ${c2}#########${c1} #### ${c1} ####### ${c2}#########${c1} ## ${c1} ####### ${c2}########${c1} ## ${c1} ###### ${c2}########${c1} # ${c1} ### ${c2}#######${c1} ${c1} ${c2}######${c1} ${c1} ${c2}####${c1} ${c1} ${c2}##${c1} """) hyfetch-1.99.0/hyfetch/distros/azos.py000066400000000000000000000024571470626616500177400ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt azos = AsciiArt(match=r'''"azos"*''', color='6 1', ascii=r""" ${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} ((((( """) hyfetch-1.99.0/hyfetch/distros/bedrock.py000066400000000000000000000016561470626616500203750ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt bedrock = AsciiArt(match=r'''"Bedrock"*''', color='8 7', ascii=r""" ${c1}-------------------------------------- -------------------------------------- -------------------------------------- ---${c2}\\\\\\\\\\\\${c1}----------------------- ----${c2}\\\ \\\${c1}---------------------- -----${c2}\\\ \\\${c1}--------------------- ------${c2}\\\ \\\\\\\\\\\\\\\\\${c1}------ -------${c2}\\\ \\\${c1}----- --------${c2}\\\ \\\${c1}---- ---------${c2}\\\ ______ \\\${c1}--- ----------${c2}\\\ ///${c1}--- -----------${c2}\\\ ///${c1}---- ------------${c2}\\\ ///${c1}----- -------------${c2}\\\////////////////${c1}------ -------------------------------------- -------------------------------------- -------------------------------------- """) hyfetch-1.99.0/hyfetch/distros/biglinux.py000066400000000000000000000016101470626616500205730ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt biglinux = AsciiArt(match=r'''"BigLinux"*''', color='6 11 4', ascii=r""" ${c1} ... :OWMMMNd. :NMMMMMMMMWc okkl. kMMMMMW0xdOWMl : xMMMMMW. kMMMMNc lW. :x NMMMMMO ,MMMM0. 'l Xx "lkk" kMMMX .okx, ${c2}.MX .cc;. .xXKx. KMMM: .OMMMMMl :MM' 'KMMMMWK: 0MMMMk xMMM. lWMMMMMMM' cMMN:;xMMMMk::MMO oMMMMX .XMM. .KMMMWOOMMMd 'MMMMMMMMN, NMMx OMMMMl .kM0OMMMMk. ;MMd xMMMMMMd .MMMW :NMMMd .ckKKx' KMc dWMNd. oMMMN lkNMX, oM. ;. ;MMMMx "MM:. cO ${c3} .X. oMMMMW. l. dMk:..;xWMMMMW, kMMMMMMMMMMX. :XMMMMMMK: ':MM:" Made in Brazil """) hyfetch-1.99.0/hyfetch/distros/biglinux_large.py000066400000000000000000000033111470626616500217450ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt biglinux_large = AsciiArt(match=r'''"BigLinux_large"*''', color='2 3 4 7', ascii=r""" ${c4} ${c3}.cd0KXXX${c4}0${c3}x; ${c3}.oXM${c4}M${c3}MMMMMMMMMWo ${c2}... ${c3}dWMMMM${c4}M${c3}MMMMMMMMMMN, ${c2}c0WMMMW0: ${c3}.XMMMM${c4}M${c3}MMMKdc;,;cxNMM: ${c1}x, ${c2}.XMMMMMMMMM: ${c3}'W${c3}MMMMMMWo. ;KW. ${c1}dM. ${c2}.WMMMMMMMM0 ${c3}N${c3}MMMM${c4}M${c3}Mk. dd ${c1}.MM. ${c2}.lOKXKOl. ${c3}oMMMMMMd .l${c4}x${c3}kd: . ${c1}kMM: .'.. ${c2}:xOOxc. ${c3}O${c4}M${c3}MMMM0 lXMMMMM${c4}M${c3}N; ${c1}WMM0 lKMMMMMW0o. ${c2}KMMMMMMN. ${c3}xMM${c4}M${c3}M, .dWMMMMMMMMMM; ${c1}.MMMMx .oWMMMMMMOl0MMX; ${c2}NMMMMMMM; ${c3}.NMMMM. .dWMMMM${c4}M${c3}MMMMMMMN ${c1}.MMMMMNOKMMMMMMMk. 'MMMMx ${c2};MMMMMMMO ${c3}.KMMMl .oWMMMMMWk:,lWMMMM. ${c1}xMMMMMMMMMMMMk. .MMMMMc ${c2}'XMMMMMMx ${c3}:0MMNMMMM${c4}M${c3}MWx. .WM${c4}M${c3}M. ${c1}0MMMMMMMMWx. :MMMMMK ${c2}cKMMMMMX: ${c3},ok0K0x:. oMMN ${c1}oNMMMM0c. .NMMMMMO ${c2}.lOWMMMX: ${c3}.M${c4}M${c3}o ${c1}c. .'. .KMMMMMM: ${c2}.';clc. ${c3}MN ${c1}:N; cWMMMMMMO ${c3}.W; ${c1}0M0: 'dNMMMMMMM0 ${c3}', ${c1}0MMMX0O0XMMMMMMMMMMo ${c1}oWMMMMMMMMMMMMMMk. ${c1}.oXMMMMMMMMW0c. ${c1}.;ccc:,. """) hyfetch-1.99.0/hyfetch/distros/bitrig.py000066400000000000000000000006301470626616500202330ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt bitrig = AsciiArt(match=r'''"Bitrig"*''', color='2 7', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/blackarch.py000066400000000000000000000017751470626616500207000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt blackarch = AsciiArt(match=r'''"BlackArch"*''', color='1 1 0 1', ascii=r""" ${c3} 00 11 ====${c1} .${c3}//${c1} `o${c3}//${c1}: `+o${c3}//${c1}o: `+oo${c3}//${c1}oo: -+oo${c3}//${c1}oo+: `/:-:+${c3}//${c1}ooo+: `/+++++${c3}//${c1}+++++: `/++++++${c3}//${c1}++++++: `/+++o${c2}ooo${c3}//${c2}ooo${c1}oooo/` ${c2} ${c1}./${c2}ooosssso${c3}//${c2}osssssso${c1}+` ${c2} .oossssso-`${c3}//${c1}`/ossssss+` -osssssso. ${c3}//${c1} :ssssssso. :osssssss/ ${c3}//${c1} osssso+++. /ossssssss/ ${c3}//${c1} +ssssooo/- `/ossssso+/:- ${c3}//${c1} -:/+osssso+- `+sso+:-` ${c3}//${c1} `.-/+oso: `++:. ${c3}//${c1} `-/+/ .` ${c3}/${c1} `/ """) hyfetch-1.99.0/hyfetch/distros/blackmesa.py000066400000000000000000000016321470626616500207000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt blackmesa = AsciiArt(match=r'''"BlackMesa"''', color='1', ascii=r""" ${c1} .-;+$XHHHHHHX$+;-. ,;X@@X%/;=----=:/%X@@X/, =$@@%=. .=+H@X: -XMX: =XMX= /@@: =H@+ %@X, .$@$ +@X. $@% -@@, .@@= %@% +@$ H@: :@H H@: :HHHHHHHHHHHHHHHHHHX, =@H %@% ;@M@@@@@@@@@@@@@@@@@H- +@$ =@@, :@@@@@@@@@@@@@@@@@@@@@= .@@: +@X :@@@@@@@@@@@@@@@M@@@@@@:%@% $@$, ;@@@@@@@@@@@@@@@@@M@@@@@@$. +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+ =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X= :$@@@@@@@@@@@@@@@@@@@M@@@@$: ,;$@@@@@@@@@@@@@@@@@@X/- .-;+$XXHHHHHX$+;-. """) hyfetch-1.99.0/hyfetch/distros/blackpanther.py000066400000000000000000000051071470626616500214150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt blackpanther = AsciiArt(match=r'''"blackPanther"* | 'blackpanther'*''', color='1 11 12', ascii=r""" ${c3} ........ .,»╔╗╗╬▄▄╫█▀▓▄▄╬╗╗g≈,. ,j╗╬╣▓▓███████▌;»╙▀▀▀▀█▄▄╗j, .≈╗╬▓██▀▀▀▀▀╠╙░░»»;:`${c2}``>${c1}▄ ${c3}▐ ▓╫╗⌂, .j╬▓█▀▒░░░░░░░░░»»»;:```` ╙▀█▌╬░, ;╗▓█▄▄███████▀░░»»»»;```` ╓▄▄█▄▄φ ██▌Ñ>. .j╣█████▀▀░░░░░░░░»»╓▄▄¿``▄███████/▄████▓╬U. .j╣▓██▀ÜÑ╦╦░░░░░░▐█@▄████⌐▐███████████████▓╬H. «╫▓█▀░ÑÑ╩╦░░░░░░░░▀██████M"▀███████████████▓╫░ :]╣█▌ÑÑÑÑ▄▄██▀░░░░»»██████████████████████████Ñ~ »╫▓█╫ÑÑ▄███▀░░░░░»»▐██████████████████████████▌░ `j╣█▌Ñ╬████░░░░░░░»»▐████████████████████████▌▐█U` `/╫█▌▄███▌░░░░░░░»»»;▀██████████████▀████████w▐█░` ;╟█▌███▌░░░░░░░▄▄»»;:`▀▀████████▀Ü▄████████▌ ▐▌>` `]▓████░░░░░░░░██⌂;:````╓▄▄µp╓▄▄██████████▀ ,█M` "╠╣██▌░░░░░░░»██▌;```` ╙▀██████████████M █▀" "╟╣█░░░░░░░░»███⌂``` ▐▀████████▀░ █▌░` "╩█▄░░░░░░»»▀███ `` └└` ,█▀"` `░▀█▄░░░»»»»████@ .▄█Ü` `╙▀█▄@»»»;`▀███▌¿ ,▄▀Ñ"` `"╨▀█▄▄▄░`▐█████▄, ,▄▄▀▀░` `"╙╩▀▀▀▀████████▓▌▌▌▀▀▀╨"`` ``""░╚╨╝╝╝╝╨╨░""`` """) hyfetch-1.99.0/hyfetch/distros/blag.py000066400000000000000000000011271470626616500176620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt blag = AsciiArt(match=r'''"BLAG"*''', color='5 7', ascii=r""" ${c1} d ,MK: xMMMX: .NMMMMMX; lMMMMMMMM0clodkO0KXWW: KMMMMMMMMMMMMMMMMMMX' .;d0NMMMMMMMMMMMMMMMMMMK. .;dONMMMMMMMMMMMMMMMMMMMMMMx 'dKMMMMMMMMMMMMMMMMMMMMMMMMl .:xKWMMMMMMMMMMMMMMMMMMM0. .:xNMMMMMMMMMMMMMMMMMK. lMMMMMMMMMMMMMMMMMMK. ,MMMMMMMMWkOXWMMMMMM0 .NMMMMMNd. `':ldko OMMMK: oWk, ;: """) hyfetch-1.99.0/hyfetch/distros/blankon.py000066400000000000000000000020111470626616500203720ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt blankon = AsciiArt(match=r'''"BlankOn"*''', color='1 7 3', ascii=r""" ${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+. """) hyfetch-1.99.0/hyfetch/distros/bluelight.py000066400000000000000000000021161470626616500207330ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt bluelight = AsciiArt(match=r'''"BlueLight"*''', color='7 4', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/bodhi.py000066400000000000000000000022221470626616500200370ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt bodhi = AsciiArt(match=r'''"Bodhi"*''', color='7 11 2', ascii=r""" ${c1}| ${c2},,mmKKKKKKKKWm,, ${c1}' ${c2},aKKP${c1}LL**********|L*${c2}TKp, ${c1}t ${c2}aKP${c1}L**``` ```**L${c2}*Kp IX${c1}EL${c3}L,wwww, ${c1}``*||${c2}Kp ,#P${c1}L|${c3}KKKpPP@IPPTKmw, ${c1}`*||${c2}K ,K${c1}LL*${c3}{KKKKKKPPb$KPhpKKPKp ${c1}`||${c2}K #${c1}PL ${c3}!KKKKKKPhKPPP$KKEhKKKKp ${c1}`||${c2}K !H${c1}L* ${c3}1KKKKKKKphKbPKKKKKK$KKp ${c1}`|I${c2}W $${c1}bL ${c3}KKKKKKKKBQKhKbKKKKKKKK ${c1}|I${c2}N $${c1}bL ${c3}!KKKKKKKKKKNKKKKKKKPP` ${c1}|I${c2}b TH${c1}L* ${c3}TKKKKKK##KKKN@KKKK^ ${c1}|I${c2}M K@${c1}L ${c3}*KKKKKKKKKKKEKE5 ${c1}||${c2}K `NL${c1}L ${c3}`KKKKKKKKKK"```|L ${c1}||${c2}#P `K@${c1}LL ${c3}`"**"` ${c1}'. :||${c2}#P Yp${c1}LL ${c1}' |L${c2}$M` `Tp${c1}pLL, ,|||${c2}p'L "Kpp${c1}LL++,., ,,|||$${c2}#K* ${c1}'. ${c2}`"MKWpppppppp#KM"` ${c1}`h, """) hyfetch-1.99.0/hyfetch/distros/bonsai.py000066400000000000000000000011021470626616500202210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt bonsai = AsciiArt(match=r'''"bonsai"*''', color='6 2 3', ascii=r""" ${c2} ,####, ${c2}#######, ${c2},#####, ${c2}#####',# ${c2}'###### ${c2}''###'${c3}';,,,'${c2}###' ${c3} ,; '''' ${c3} ;;; ${c2},#####, ${c3} ;;;' ,,;${c2};;### ${c3} ';;;;''${c2}'####' ${c3} ;;; ${c3} ,.;;';'',,, ${c3} ' ' ${c1} # # O ##, ,##,',##, ,## ,#, , # # # # #''# #,, # # # '#' '##' # # ,,# '##;, # """) hyfetch-1.99.0/hyfetch/distros/bsd.py000066400000000000000000000013521470626616500175250ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt bsd = AsciiArt(match=r'''*"BSD"''', color='1 7 4 3 6', ascii=r""" ${c1} , , /( )` \ \___ / | /- _ `-/ ' (${c2}/\/ \ ${c1}\ /\ ${c2}/ / | ` ${c1}\ ${c3}O O ${c2}) ${c1}/ | ${c2}`-^--'${c1}`< ' (_.) _ ) / `.___/` / `-----' / ${c4}<----. __ / __ \ ${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====| <----' ${c1}`--' `.__,' \ | | \ / /\ ${c5}______${c1}( (_ / \______/ ${c5},' ,-----' | `--{__________) """) hyfetch-1.99.0/hyfetch/distros/bunsenlabs.py000066400000000000000000000007571470626616500211210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt bunsenlabs = AsciiArt(match=r'''"BunsenLabs"*''', color='fg 7', ascii=r""" ${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. -/ """) hyfetch-1.99.0/hyfetch/distros/cachyos.py000066400000000000000000000031211470626616500204020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cachyos = AsciiArt(match=r'''"CachyOS"*''', color='2 8 6', ascii=r""" ${c3} ${c2}.${c3}-------------------------: ${c3} .${c1}+=${c3}========================. ${c3} :${c1}++${c3}===${c1}++===${c3}===============- :${c1}++${c3}- ${c3} :${c1}*++${c3}====${c1}+++++==${c3}===========- .==: ${c3} -${c1}*+++${c3}=====${c1}+***++=${c3}=========: ${c3} =${c1}*++++=${c3}=======------------: ${c3} =${c1}*+++++=${c3}====- ${c2}...${c3} ${c3} .${c1}+*+++++${c3}=-===: .${c1}=+++=${c3}: ${c3} :${c1}++++${c3}=====-==: -***${c1}**${c3}+ ${c3} :${c1}++=${c3}=======-=. .=+**+${c2}.${c3} ${c3}.${c1}+${c3}==========-. ${c2}.${c3} ${c3} :${c1}+++++++${c3}====- ${c2}.${c3}--==-${c2}.${c3} ${c3} :${c1}++${c3}==========. ${c2}:${c1}+++++++${c3}${c2}: ${c3} .-===========. =*****+*+ ${c3} .-===========: .+*****+: ${c3} -=======${c1}++++${c3}:::::::::::::::::::::::::-: ${c2}.${c3}---: ${c3} :======${c1}++++${c3}====${c1}+++******************=. ${c3} :=====${c1}+++${c3}==========${c1}++++++++++++++*- ${c3} .====${c1}++${c3}==============${c1}++++++++++*- ${c3} .===${c1}+${c3}==================${c1}+++++++: ${c3} .-=======================${c1}+++: ${c3} ${c2}.......................... """) hyfetch-1.99.0/hyfetch/distros/calculate.py000066400000000000000000000020541470626616500207120ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt calculate = AsciiArt(match=r'''"Calculate"*''', color='7 3', ascii=r""" ${c1} ...... ,,+++++++,. .,,,....,,,${c2}+**+,,.${c1} ............,${c2}++++,,,${c1} ............... ......,,,........ .....+*#####+,,,*+. .....,*###############,..,,,,,,.. ......,*#################*..,,,,,..,,,.. .,,....*####################+***+,,,,...,++, .,,..,..*#####################*, ,+,.+*..*#######################. ,+,,+*+..,########################* .,++++++. ..+##**###################+ ..... ..+##***#################*. .,.*#*****##############*. ..,,*********#####****+. ${c2}.,++*****+++${c1}*****************${c2}+++++,.${c1} ${c2},++++++**+++++${c1}***********${c2}+++++++++,${c1} ${c2}.,,,,++++,.. .,,,,,.....,+++,.,,${c1} """) hyfetch-1.99.0/hyfetch/distros/calinixos.py000066400000000000000000000075721470626616500207600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt calinixos = AsciiArt(match=r'''"CalinixOS"''', color='4 5 4 4 4 4', ascii=r""" ${c2} ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⠤⠔⠒⠒⠋⠉⠉⠉⠉⠓⠒⠒⠦⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠒⠉⣁⣠⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣄⣈⠙⠲⢤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠴⠋⢁⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡈⠑⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⣠⠞⢁⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⢀⠞⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠋⠉⠁⠀⠀⠀⠀⠈⠉⠙⠛⠿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠈⢢⡀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⡰⠃⣠⣾⣿⣿⣿⣿⣿⣿⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⢿⡿⠁⠀⠀⠀⠀⠀⠀⠙⣄⠀⠀⠀⠀ ⠀⠀⠀⡼⠁⣴⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀ ⠀⠀⡼⠀⣼⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠀⠀ ⠀⣰⠁⣸⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀ ⢀⡇⢠⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀ ⢸⠀⣸⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄ ⣼⠀⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⡇⠀⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢛⣿⣿⣿⣿⣿⣿⣿⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⢻⠀⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⢸⡀⢹⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃ ⠀⣇⠘⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠀ ⠀⠸⡄⢹⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃⠀ ⠀⠀⢳⡀⢻⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠀⠀ ⠀⠀⠀⠳⡀⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣷⣄⡀⠀⠀⠀⠀⢠⠏⠀⠀⠀ ⠀⠀⠀⠀⠙⣄⠙⢿⣿⣿⣿⣿⣿⣿⣷⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣦⡀⠀⡰⠃⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠈⠢⡈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣄⣀⡀⠀⠀⠀⠀⢀⣀⣠⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣠⠞⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠈⠢⡈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⣡⠞⠁⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢤⡈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⣁⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠢⢄⣉⠙⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠋⣉⡤⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠓⠒⠢⠤⠤⠤⠤⠤⠤⠤⠤⠖⠒⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ """) hyfetch-1.99.0/hyfetch/distros/calinixos_small.py000066400000000000000000000030571470626616500221420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt calinixos_small = AsciiArt(match=r'''"CalinixOS_small"*''', color='4 5 4 4 4 4', ascii=r""" ${c2} ⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠐⣂⣈⣩⣭⣭⣍⣀⣐⠀⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⡀⠔⣨⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣅⠢⡀⠀⠀⠀⠀⠀ ⠀⠀⠀⠠⢊⣴⣾⣿⣿⣿⣿⠿⠟⠛⠛⠛⠛⠻⠿⣿⣿⣿⣿⠃⠀⠠⡀⠀⠀⠀ ⠀⠀⡐⢡⣾⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠁⠀⠀⠀⠈⢆⠀⠀ ⠀⡘⢰⣿⣿⣿⡟⠁⠀⠀⢀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀ ⢠⢠⣿⣿⣿⡟⠀⠀⠀⠀⠀⠙⠿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡀ ⡄⢸⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁ ⡇⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣹⣿⣿⣿⣷⠄⠀⠀⠀⠀⠀⠀⠀⠀ ⠃⢸⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⡀ ⠘⡘⣿⣿⣿⣧⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠁ ⠀⠡⠸⣿⣿⣿⣧⡀⠀⠀⠀⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⢀⠆⠀ ⠀⠀⠡⡘⢿⣿⣿⣿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣷⣦⡀⢀⠊⠀⠀ ⠀⠀⠀⠈⠊⡻⢿⣿⣿⣿⣿⣶⣤⣤⣤⣤⣤⣤⣶⣿⣿⣿⣿⡿⢟⠕⠁⠀⠀⠀ ⠀⠀⠀⠀⠀⠈⠢⢙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⡩⠐⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠂⠭⠉⠙⣛⣛⠋⠉⠭⠐⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ """) hyfetch-1.99.0/hyfetch/distros/carbs.py000066400000000000000000000010321470626616500200420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt carbs = AsciiArt(match=r'''"Carbs"*''', color='4 5 4 4 4 4', ascii=r""" ${c2} .......... ..,;:ccccccc:;'.. ..,clllc:;;;;;:cllc,. .,cllc,... ..';;'. .;lol;.. .. .,lol;. .coo:. .'lol,. .,lol,. .,lol,. 'col;. .:ooc'. .'col:. .'cllc'.. .''. ..:lolc,'.......',cll,. ..;cllllccccclllc;'. ...',;;;;;;,,... ..... """) hyfetch-1.99.0/hyfetch/distros/cbl_mariner.py000066400000000000000000000013411470626616500212300ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cbl_mariner = AsciiArt(match=r'''"CBL-Mariner"*''', color='6', ascii=r""" ${c1} . :- . :==. .=: :===: -==: :-===: .====: :-====- -=====: -====== :=======: -======. .=========: -======: -==========. -======- -===========. :======- :===========. :=======. .-==========. :=======: -==========. :=======- :==========. :=======- .-========- :--------. :========- ..:::--=========- ..::---================-=- """) hyfetch-1.99.0/hyfetch/distros/celos.py000066400000000000000000000021321470626616500200570ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt celos = AsciiArt(match=r'''"CelOS"*''', color='4 6 0 5', ascii=r""" ${c4} .,cmmmmmmmmmmmc,. .,cmMMMMMMMMMMMMMMMMMMMMmc. .cMMMMMMMMMMMMMMMMMMMMMMMMMMMmc. .cMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc. ,:MMM ${c3}####################################${c4} cMMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmc. .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM. .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc "******************************MMMMMMMMMMMMMc: ${c3}#################################### ${c4}MMMMMMMMMMMMMc "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" 'MMMMMMMMM*******************************: \"MMMMMM ${c3}##################################### ${c4}`:MMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmm; `"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" `":MMMMMMMMMMMMMMMMMMMMMMMMM;' `":MMMMMMMMMMMMMMMMMMM:" "************" """) hyfetch-1.99.0/hyfetch/distros/center.py000066400000000000000000000007451470626616500202420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt center = AsciiArt(match=r'''"Center"*''', color='7 7', ascii=r""" ${c2} . o, . d, . ';' ..d;.. .cl' .:; 'oldO,.oo. ..,:,xKXxoo;'. ,;;;;;ldxkONMMMXxkxc;;;;;. .....':oddXWMNOxlcl:...... .:dlxk0c;:. . :d:.,xcld,.,:. ;l, .l; ';' .o; l, """) hyfetch-1.99.0/hyfetch/distros/centos.py000066400000000000000000000017111470626616500202470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt centos = AsciiArt(match=r'''"CentOS"*''', color='3 2 4 5 7', ascii=r""" ${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' '' """) hyfetch-1.99.0/hyfetch/distros/centos_small.py000066400000000000000000000005301470626616500214350ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt centos_small = AsciiArt(match=r'''"centos_small"*''', color='3 2 4 5 7', ascii=r""" ${c2} ____${c1}^${c4}____ ${c2} |\ ${c1}|${c4} /| ${c2} | \ ${c1}|${c4} / | ${c4}<---- ${c3}----> ${c3} | / ${c2}|${c1} \ | ${c3} |/__${c2}|${c1}__\| ${c2} v """) hyfetch-1.99.0/hyfetch/distros/chakra.py000066400000000000000000000013371470626616500202110ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt chakra = AsciiArt(match=r'''"Chakra"*''', color='4 5 7 6', ascii=r""" ${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' "''" """) hyfetch-1.99.0/hyfetch/distros/chaletos.py000066400000000000000000000016211470626616500205560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt chaletos = AsciiArt(match=r'''"ChaletOS"*''', color='4 7 1', ascii=r""" ${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+:`` """) hyfetch-1.99.0/hyfetch/distros/chapeau.py000066400000000000000000000015021470626616500203600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt chapeau = AsciiArt(match=r'''"Chapeau"*''', color='2 7', ascii=r""" ${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}////////// `////////////////. -////////- """) hyfetch-1.99.0/hyfetch/distros/chimera.py000066400000000000000000000016211470626616500203640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt chimera = AsciiArt(match=r'''"Chimera"*''', color='1 5 4 1', ascii=r""" ${c3}ddddddddddddddc ${c1},cc: ${c3}ddddddddddddddc ${c1},cc: ${c3}ddddddddddddddd ${c1},cc: ${c3}ddddddddddddl:' ${c1},cc: ${c3}dddddddddl' ${c1}..;cc: ${c3}dddddddo. ${c1},:cccccc: ${c3}ddddddl ${c1},ccc:''''' ${c3}dddddo. ${c1};ccc. ............ .ccc. cccccccccccc ${c2}...... ${c1}.ccc. .ccc''''''''' ${c2}OOOOOk. ${c1};ccc. .ccc; ...... ${c2}OOOOOOd ${c1}'ccc:,....,:ccc' ${c4}coooooo ${c2}OOOOOOOx. ${c1}':cccccccc:' ${c4}.looooooo ${c2}OOOOOOOOOd, ${c1}`'''` ${c4}.coooooooo ${c2}OOOOOOOOOOOOdc,. ${c4}..,coooooooooooo ${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo ${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo ${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo """) hyfetch-1.99.0/hyfetch/distros/chonkysealos.py000066400000000000000000000016651470626616500214660ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt chonkysealos = AsciiArt(match=r'''"ChonkySealOS"*''', color='7', ascii=r""" ${c1} .-/-. .:-=++****++=-:. .:=+*##%%%%%%%%%%##*+=:. :=*#%%%%%%%%%%%%%%%%%%%%#*=: :=*#%%%%%%%%%%%%%%%%%%%%%%%%#*=. -+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+- =+#%%%%@@@@@@@%%%%%%%@@@@@@@%%%%%#+= =+#@%%%%*+=-==*%%%%%%%#+====*%%%%%@#+= :+*%%%%@* +@%%%@# -@%%%%%*+: =+#%%%%%%#+====*###%%##*=--=+*%%%%%%%#+= +*%%%%%%%@@##%%%%*=::=#%%%##%@%%%%%%%%*+ +*%%%%%%%@**@%%%%%@==@%%%%%@+#%%%%%%%%*+ =+#%%%%%%@#*@%%%%%%**%%%%%@%+%%%%%%%%#+= :+*%%%%%%%@#*####**###*####*%@%%%%%%%*+: =+#@%%%%%%@%%%%%%%@@%%%%%%%%%%%%%%@#+= =+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+= -+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%*+- .=*#%%%%%%%%%%%%%%%%%%%%%%%%#*=. :=*##%%%%%%%%%%%%%%%%%%##*=: .:=+*##%%%%%%%%%%##*+=:. .:-=++****++=-:. """) hyfetch-1.99.0/hyfetch/distros/chrom.py000066400000000000000000000020021470626616500200560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt chrom = AsciiArt(match=r'''"Chrom"*''', color='2 1 3 4 7', ascii=r""" ${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:. """) hyfetch-1.99.0/hyfetch/distros/cleanjaro.py000066400000000000000000000014701470626616500207140ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cleanjaro = AsciiArt(match=r'''"Cleanjaro"*''', color='7 7', ascii=r""" ${c1}███████▌ ████████████████ ███████▌ ████████████████ ███████▌ ████████████████ ███████▌ ███████▌ ███████▌ ███████▌ ███████▌ █████████████████████████ █████████████████████████ █████████████████████████ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ """) hyfetch-1.99.0/hyfetch/distros/cleanjaro_small.py000066400000000000000000000006511470626616500221040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cleanjaro_small = AsciiArt(match=r'''"cleanjaro_small"*''', color='7 7', ascii=r""" ${c1}█████ ██████████ █████ ██████████ █████ █████ █████ ████████████████ ████████████████ """) hyfetch-1.99.0/hyfetch/distros/clear_linux_os.py000066400000000000000000000013601470626616500217620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt clear_linux_os = AsciiArt(match=r'''"Clear Linux OS"* | "Clear_Linux"*''', color='4 3 7 6', ascii=r""" ${c1} BBB BBBBBBBBB BBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBB BBBBBBBBBBB BBB BBBBBBBB${c2}YYYYY ${c1} BBBBBBBB${c2}YYYYYY ${c1} BBBBBBBB${c2}YYYYYYY ${c1} BBBBBBBBB${c2}YYYYY${c3}W ${c4} GG${c1}BBBBBBBY${c2}YYYY${c3}WWW ${c4} GGG${c1}BBBBBBB${c2}YY${c3}WWWWWWWW ${c4} GGGGGG${c1}BBBBBB${c3}WWWWWWWW ${c4} GGGGGGGG${c1}BBBB${c3}WWWWWWWW ${c4}GGGGGGGGGGG${c1}BBB${c3}WWWWWWW ${c4}GGGGGGGGGGGGG${c1}B${c3}WWWWWW ${c4}GGGGGGGG${c3}WWWWWWWWWWW ${c4}GG${c3}WWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWW WWWWWWWWWW WWW """) hyfetch-1.99.0/hyfetch/distros/clearos.py000066400000000000000000000016051470626616500204060ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt clearos = AsciiArt(match=r'''"ClearOS"*''', color='2', ascii=r""" ${c1} `.--::::::--.` .-:////////////////:-. `-////////////////////////-` -////////////////////////////- `//////////////-..-//////////////` ./////////////: ://///////////. `//////:..-////: :////-..-//////` ://////` -///:.``.:///-` ://///: `///////:. -////////-` `:///////` .//:--////:. -////-` `:////--://. ./: .////:. --` `:////- :/. `//-` .////:. `:////- `-//` :///-` .////:. `:////- `-///: `/////-` -///: :///- `-/////` `//////- `///: :///` .//////` `:////: `///: :///` -////:` .://: `///: :///` -//:. .:: `///: :///` -:. `///: :///` `... ...` """) hyfetch-1.99.0/hyfetch/distros/clover.py000066400000000000000000000015471470626616500202550ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt clover = AsciiArt(match=r'''"Clover"*''', color='2 6', ascii=r""" ${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` """) hyfetch-1.99.0/hyfetch/distros/cobalt.py000066400000000000000000000015671470626616500202310ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cobalt = AsciiArt(match=r'''"Cobalt"*''', color='33 33 59 31 8', ascii=r""" ${c1} /// ${c1} ,////////////// ${c1} /////////////////////////////// ${c1} ///////////////${c5}***********${c1}////// ////${c5}***********************${c1}///// /////${c5}***********************${c1}//// //////${c5},,,,,,,,,,,,,,,,,,,,,,${c1}/// //////${c5},,,,,,,,,,,,,,,,,,,,,,,,,${c1}///// /////${c5},,,,,,,,,,,,,,,,,,,,,,,,,,,,${c1}///// ${c4} *****${c3},,,,,,,,,,,,,,,,,,,,,,,,,,,,,${c4}***** ******${c3},,,,,,,,,,,,,,,,,,,,,,,,,,,,${c4}***** *******${c3},,,,,,,,,,,,,,,,,,,,,,,,,${c4}****** *******${c3}......................${c4}******* ******${c3}....${c4}*********************** **************************** ***** """) hyfetch-1.99.0/hyfetch/distros/condres.py000066400000000000000000000021211470626616500204050ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt condres = AsciiArt(match=r'''"Condres"*''', color='2 3 6', ascii=r""" ${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}`:/:--------.```````` """) hyfetch-1.99.0/hyfetch/distros/container_linux_by_coreos.py000066400000000000000000000021441470626616500242220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt container_linux_by_coreos = AsciiArt(match=r'''"Container Linux by CoreOS"* | "Container_Linux"* | "Fedora CoreOS" | "CoreOS"*''', color='4 7 1', ascii=r""" ${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:;.. ..... """) hyfetch-1.99.0/hyfetch/distros/crux.py000066400000000000000000000013541470626616500177400ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt crux = AsciiArt(match=r'''"CRUX"*''', color='4 5 7 6', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/crux_small.py000066400000000000000000000005241470626616500211260ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt crux_small = AsciiArt(match=r'''"crux_small" | KISS*''', color='4 5 7 6', ascii=r""" ${c1} ___ (${c3}.· ${c1}| (${c2}<> ${c1}| / ${c3}__ ${c1}\ ( ${c3}/ \ ${c1}/| ${c2}_${c1}/\ ${c3}__)${c1}/${c2}_${c1}) ${c2}\/${c1}-____${c2}\/ """) hyfetch-1.99.0/hyfetch/distros/crystal_linux.py000066400000000000000000000015011470626616500216510ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt crystal_linux = AsciiArt(match=r'''*"Crystal Linux"*''', color='13 5', ascii=r""" ${c1} mysssym ${c1} mysssym ${c1} mysssym ${c1} mysssym ${c1} mysssyd ${c1} mysssyd N ${c1} mysssyd mysym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysym dysssym ${c1} N dysssym ${c1} dysssym ${c1} dysssym ${c1} dysssym ${c1} dysssym ${c1} dysssym """) hyfetch-1.99.0/hyfetch/distros/cucumber.py000066400000000000000000000021201470626616500205540ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cucumber = AsciiArt(match=r'''*"Cucumber"*''', color='2 3', ascii=r""" ${c1} `.-://++++++//:-.` `:/+//${c2}::--------${c1}:://+/:` -++/:${c2}----..........----${c1}:/++- .++:${c2}---...........-......---${c1}:++. /+:${c2}---....-::/:/--//:::-....---${c1}:+/ `++:${c2}--.....:---::/--/::---:.....--${c1}:++` /+:${c2}--.....--.--::::-/::--.--.....--${c1}:+/ -o:${c2}--.......-:::://--/:::::-.......--${c1}:o- /+:${c2}--...-:-::---:::..:::---:--:-...--${c1}:+/ o/:${c2}-...-:.:.-/:::......::/:.--.:-...-${c1}:/o o/${c2}--...::-:/::/:-......-::::::-/-...-${c1}:/o /+:${c2}--..-/:/:::--:::..:::--::////-..--${c1}:+/ -o:${c2}--...----::/:::/--/:::::-----...--${c1}:o- /+:${c2}--....://:::.:/--/:.::://:....--${c1}:+/ `++:${c2}--...-:::.--.:..:.--.:/:-...--${c1}:++` /+:${c2}---....----:-..-:----....---${c1}:+/ .++:${c2}---..................---${c1}:++. -/+/:${c2}----..........----${c1}:/+/- `:/+//${c2}::--------:::${c1}/+/:` `.-://++++++//:-.` """) hyfetch-1.99.0/hyfetch/distros/cutefishos.py000066400000000000000000000007761470626616500211420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cutefishos = AsciiArt(match=r'''"CutefishOS"*''', color='6 7 4', ascii=r""" ${c1} ___ww___ _ _wwMMM@M^^^^MMMMww_ M0w_ _wMMM~~ ~~MMm_ ~MMy _ww0M~ ~MMy ~MMMM~ o "MM ${c3} jw0M~~MMMw_ _wMM' wMM~ ~~MMmw__ __w0M~ ~ ~~MM0MmwwwwwwwwwMMM~ ~~~~^^~~~ """) hyfetch-1.99.0/hyfetch/distros/cuteos.py000066400000000000000000000013241470626616500202560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cuteos = AsciiArt(match=r'''"CuteOS"*''', color='33 50 57', ascii=r""" ${c2} ${c3}1ua${c2} ${c3}MMM1ua${c2} ${c1}MM${c2}EE ${c3} MMMMM1uazE${c2} ${c1}MM ${c2}EEEE ${c3}M1MM1uazzEn ${c2}EEEE MME EEEEE ${c3}MMM uazEno ${c2}EEEE EEEEE${c1}MMMMMMEno~; ${c2}EE E${c2} EE ${c1}MMMMMMMM~;;E ${c2}MMMMM M ${c2} E ${c1}MMMMMMMMM ${c2} E E ${c2} ${c1}MMMMMMMMMMM ${c1}MMMMMMMMM ${c2}EE ${c1} MM1MMMM ${c2}EEE ${c1} MMMMM MMM M """) hyfetch-1.99.0/hyfetch/distros/cyberos.py000066400000000000000000000014371470626616500204270ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt cyberos = AsciiArt(match=r'''"CyberOS"*''', color='50 32 57', ascii=r""" ${c3} !M$EEEEEEEEEEEP .MMMMM000000Nr. ${c3}&MMMMMM${c2}MMMMMMMMMMMMM9 ${c3}~MMM${c1}MMMM${c2}MMMMMMMMMMMMC ${c1}" ${c3}M${c1}MMMMMMM${c2}MMMMMMMMMMs ${c1}iM${c2}MMM&&${c1}MMMMMMMM${c2}MMMMMMMM\ ${c1}BMMM${c2}MMMMM${c1}MMMMMMM${c2}MMMMMM${c3}" ${c1}9MMMMM${c2}MMMMMMM${c1}MMMM${c2}MMMM${c3}MMMf- ${c2}sMMMMMMMM${c1}MM${c2}M${c3}MMMMMMMMM3_ ${c2}+ffffffff${c1}P${c3}MMMMMMMMMMMM0 ${c2}CMMMMMMMMMMM }MMMMMMMMM ~MMMMMMM "RMMMM .PMB """) hyfetch-1.99.0/hyfetch/distros/dahlia.py000066400000000000000000000013261470626616500202000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt dahlia = AsciiArt(match=r'''"dahlia"*''', color='1 7 3', ascii=r""" ${c1} .#. *%@@@%* .,,,,,(&@@@@@@@&/,,,,,. ,#@@@@@@@@@@@@@@@@@@@@@#. ,#@@@@@@@&#///#&@@@@@@@#. ,/%&@@@@@%/, .,(%@@@@@&#/. *#&@@@@@@#,. .*#@@@@@@&#, .&@@@@@@@@@( .(@@@@@@@@@&&. #@@@@@@@@@@( )@@@@@@@@@@@# °@@@@@@@@@@( .(@@@@@@@@@@@° *%@@@@@@@(. ,#@@@@@@@%* ,(&@@@@@@%*. ./%@@@@@@%(, ,#@@@@@@@&(***(&@@@@@@@#. ,#@@@@@@@@@@@@@@@@@@@@@#. ,*****#&@@@@@@@&(*****, ,/%@@@%/. ,#, """) hyfetch-1.99.0/hyfetch/distros/darkos.py000066400000000000000000000053421470626616500202430ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt darkos = AsciiArt(match=r'''"DarkOs"''', color='1 6 5 3 2', ascii=r""" ${c3}⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⠋⡆⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡆⢀⣤⢛⠛⣠⣿⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣿⠟⣡⠊⣠⣾⣿⠃⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣯⣿⠀⠊⣤⣿⣿⣿⠃⣴⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⡟⣠⣶⣿⣿⣿⢋⣤⠿⠛⠉⢁⣭⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c4} ⠀⠀⠀⠀⠀⠀ ⠀⣠⠖⡭⢉⣿⣯⣿⣯⣿⣿⣿⣟⣧⠛⢉⣤⣶⣾⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⣴⣫⠓⢱⣯⣿⢿⠋⠛⢛⠟⠯⠶⢟⣿⣯⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c2}⠀⠀⠀⠀⠀⠀⢀⡮⢁⣴⣿⣿⣿⠖⣠⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠛⠛⢿⣶⣄⠀⠀⠀⠀⠀⠀⠀ ${c3}⠀⠀⠀⠀⢀⣤⣷⣿⣿⠿⢛⣭⠒⠉⠀⠀⠀⣀⣀⣄⣤⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀ ${c1}⠀⢀⣶⠏⠟⠝⠉⢀⣤⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c6}⢴⣯⣤⣶⣿⣿⣿⣿⣿⡿⣿⣯⠉⠉⠉⠉⠀⠀⠀⠈⣿⡀⣟⣿⣿⢿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠉⠛⣿⣧⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠃⣿⣿⣯⣿⣦⡀⠀⠉⠻⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c3}⠀⠀⠀⠀⠀⠀⠉⢿⣮⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⣯⠉⠉⠛⢿⣿⣷⣄⠀⠈⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀ ${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠀⠀⠀⠀⠀⢀⢡⠃⣾⣿⣿⣦⠀⠀⠀⠙⢿⣿⣤⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀ ${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋⢿⣄⠀⠀⠀⠈⡄⠙⣶⣈⡄⠀⠀⠀⠀⠀⠀ ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀ ${c4}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c3}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ """) hyfetch-1.99.0/hyfetch/distros/darwin.py000066400000000000000000000012301470626616500202340ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt darwin = AsciiArt(match=r'''"Darwin"''', color='2 3 1 1 5 4', ascii=r""" ${c1} c.' ,xNMM. .OMMMMo lMMM" .;loddo:. .olloddol;. cKMMMMMMMMMMNWMMMMMMMMMM0: ${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd. XMMMMMMMMMMMMMMMMMMMMMMMX. ${c3};MMMMMMMMMMMMMMMMMMMMMMMM: :MMMMMMMMMMMMMMMMMMMMMMMM: ${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX. kMMMMMMMMMMMMMMMMMMMMMMMMWd. ${c5}'XMMMMMMMMMMMMMMMMMMMMMMMMMMk 'XMMMMMMMMMMMMMMMMMMMMMMMMK. ${c6}kMMMMMMMMMMMMMMMMMMMMMMd ;KMMMMMMMWXXWMMMMMMMk. "cooc*" "*coo'" """) hyfetch-1.99.0/hyfetch/distros/debian.py000066400000000000000000000010741470626616500202000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt debian = AsciiArt(match=r'''"Debian"*''', color='1 7 3', ascii=r''' ${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._ `""" ''') hyfetch-1.99.0/hyfetch/distros/debian_small.py000066400000000000000000000003411470626616500213640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt debian_small = AsciiArt(match=r'''"debian_small"''', color='1 7 3', ascii=r""" ${c1} _____ / __ \ | / | | \___- -_ --_ """) hyfetch-1.99.0/hyfetch/distros/deepin.py000066400000000000000000000014331470626616500202210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt deepin = AsciiArt(match=r'''"Deepin"*''', color='2 7', ascii=r""" ${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:,. """) hyfetch-1.99.0/hyfetch/distros/desaos.py000066400000000000000000000023721470626616500202360ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt desaos = AsciiArt(match=r'''"DesaOS"''', color='2 7', ascii=r""" ${c1}███████████████████████ ███████████████████████ ███████████████████████ ███████████████████████ ████████ ███████ ████████ ███████ ████████ ███████ ████████ ███████ ████████ ███████ ████████ ███████ ████████ ███████ ██████████████████████████████ ██████████████████████████████ ████████████████████████ ████████████████████████ ████████████████████████ """) hyfetch-1.99.0/hyfetch/distros/devuan.py000066400000000000000000000010431470626616500202340ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt devuan = AsciiArt(match=r'''"Devuan"*''', color='5 7', ascii=r""" ${c1} ..,,;;;::;,.. `':ddd;:,. `'dPPd:,. `:b$$b`. 'P$$$d` .$$$$$` ;$$$$$P .:P$$$$$$` .,:b$$$$$$$;' .,:dP$$$$$$$$b:' .,:;db$$$$$$$$$$Pd'` ,db$$$$$$$$$$$$$$b:'` :$$$$$$$$$$$$b:'` `$$$$$bd:''` `'''` """) hyfetch-1.99.0/hyfetch/distros/dietpi.py000066400000000000000000000015121470626616500202310ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt dietpi = AsciiArt(match=r'''"DietPi"*''', color='2 0', ascii=r""" ${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}@%@@@@@@@@+ #@@@@@@@@@@@@@@@@@@@@@@# -#@@@@@@@@@@@@@@@@@@#- -*%@@@@@@@@@@%*- .+%@@@@%+. """) hyfetch-1.99.0/hyfetch/distros/digital_unix.py000066400000000000000000000007351470626616500214410ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt digital_unix = AsciiArt(match=r'''"digital UNIX"*''', color='1 6 7', ascii=r""" ${c1} +-+-+-+-+-+-+-+ |${c3}d${c1}|${c3}i${c1}|${c3}g${c1}|${c3}i${c1}|${c3}t${c1}|${c3}a${c1}|${c3}l${c1}| +-+-+-+-+-+-+-+ ${c2} _ _ _ _ _______ __ | | | | \ | |_ _\ \ / / | | | | \| | | | \ V / | | | | . ` | | | > < | |__| | |\ |_| |_ / . \ \____/|_| \_|_____/_/ \_\ """) hyfetch-1.99.0/hyfetch/distros/distro_detector.py000066400000000000000000001242561470626616500221630ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from __future__ import annotations from . import AsciiArt def detect(name: str) -> AsciiArt | None: if not name: return None name = name.lower() if name.startswith('adélie') or name.startswith('adelie'): from .adelie import adelie return adelie if name.startswith('aix'): from .aix import aix return aix if name.startswith('aperio gnu/linux'): from .aperio_gnu_linux import aperio_gnu_linux return aperio_gnu_linux if name.startswith('aperture'): from .aperture import aperture return aperture if name.startswith('asahi'): from .asahi import asahi return asahi if name.startswith('hash'): from .hash import hash return hash if name.startswith('hardclanz'): from .hardclanz import hardclanz return hardclanz if name.startswith('almalinux'): from .almalinux import almalinux return almalinux if name.startswith('exodia predator os') or name.startswith('exodia-predator') or name.startswith('predator'): from .exodia_predator_os import exodia_predator_os return exodia_predator_os if name == 'alpine_small': from .alpine_small import alpine_small return alpine_small if name.startswith('alpine'): from .alpine import alpine return alpine if name.startswith('alter'): from .alter import alter return alter if name.startswith('amazon'): from .amazon import amazon return amazon if name.startswith('amogos'): from .amogos import amogos return amogos if name.startswith('anarchy'): from .anarchy import anarchy return anarchy if name.startswith('android_small'): from .android_small import android_small return android_small if name.startswith('android'): from .android import android return android if name.startswith('arselinux'): from .arselinux import arselinux return arselinux if name.startswith('instantos'): from .instantos import instantos return instantos if name.startswith('antergos'): from .antergos import antergos return antergos if name.startswith('antix'): from .antix import antix return antix if name.startswith('afterglow'): from .afterglow import afterglow return afterglow if name.startswith('aosc os'): from .aosc_os import aosc_os return aosc_os if name.startswith('apricity'): from .apricity import apricity return apricity if name.startswith('archcraft_ascii'): from .archcraft_ascii import archcraft_ascii return archcraft_ascii if name.startswith('archcraft_minimal'): from .archcraft_minimal import archcraft_minimal return archcraft_minimal if name.startswith('archcraft'): from .archcraft import archcraft return archcraft if name.startswith('arcolinux_small'): from .arcolinux_small import arcolinux_small return arcolinux_small if name.startswith('arcolinux'): from .arcolinux import arcolinux return arcolinux if name.startswith('arkane'): from .arkane import arkane return arkane if name == 'arch_small': from .arch_small import arch_small return arch_small if name == 'arch_old': from .arch_old import arch_old return arch_old if name.startswith('archbox'): from .archbox import archbox return archbox if name.startswith('archlabs'): from .archlabs import archlabs return archlabs if name.startswith('archstrike'): from .archstrike import archstrike return archstrike if name.startswith('astos'): from .astos import astos return astos if (name.startswith('xferience') or name.endswith('xferience')): from .xferience import xferience return xferience if name.startswith('stock linux'): from .stock_linux import stock_linux return stock_linux if name.startswith('archmerge'): from .archmerge import archmerge return archmerge if name.startswith('aeros'): from .aeros import aeros return aeros if name.startswith('arch'): from .arch import arch return arch if name.startswith('unicodearch'): from .unicodearch import unicodearch return unicodearch if name.startswith('artix_small'): from .artix_small import artix_small return artix_small if name.startswith('artix'): from .artix import artix return artix if name.startswith('cobalt'): from .cobalt import cobalt return cobalt if name.startswith('arya'): from .arya import arya return arya if name.startswith('asteroidos'): from .asteroidos import asteroidos return asteroidos if name.startswith('athena'): from .athena import athena return athena if name.startswith('azos'): from .azos import azos return azos if name.startswith('bedrock'): from .bedrock import bedrock return bedrock if name.startswith('biglinux_large'): from .biglinux_large import biglinux_large return biglinux_large if name.startswith('biglinux'): from .biglinux import biglinux return biglinux if name.startswith('bitrig'): from .bitrig import bitrig return bitrig if name.startswith('blackarch'): from .blackarch import blackarch return blackarch if name == 'blackmesa': from .blackmesa import blackmesa return blackmesa if name.startswith('blackpanther') or name.startswith('blackpanther'): from .blackpanther import blackpanther return blackpanther if name.startswith('matuusos'): from .matuusos import matuusos return matuusos if name.startswith('blag'): from .blag import blag return blag if name.startswith('blankon'): from .blankon import blankon return blankon if name.startswith('bluelight'): from .bluelight import bluelight return bluelight if name.startswith('bodhi'): from .bodhi import bodhi return bodhi if name.startswith('bonsai'): from .bonsai import bonsai return bonsai if name == 'bsd': from .bsd import bsd return bsd if name.startswith('bunsenlabs'): from .bunsenlabs import bunsenlabs return bunsenlabs if name.startswith('cachyos'): from .cachyos import cachyos return cachyos if name.startswith('calculate'): from .calculate import calculate return calculate if name.startswith('carbs'): from .carbs import carbs return carbs if name == 'calinixos': from .calinixos import calinixos return calinixos if name.startswith('calinixos_small'): from .calinixos_small import calinixos_small return calinixos_small if name.startswith('cbl-mariner'): from .cbl_mariner import cbl_mariner return cbl_mariner if name.startswith('celos'): from .celos import celos return celos if name.startswith('centos_small'): from .centos_small import centos_small return centos_small if name.startswith('centos'): from .centos import centos return centos if name.startswith('center'): from .center import center return center if name.startswith('chakra'): from .chakra import chakra return chakra if name.startswith('chaletos'): from .chaletos import chaletos return chaletos if name.startswith('chapeau'): from .chapeau import chapeau return chapeau if name.startswith('chimera'): from .chimera import chimera return chimera if name.startswith('chonkysealos'): from .chonkysealos import chonkysealos return chonkysealos if name.startswith('chrom'): from .chrom import chrom return chrom if name.startswith('cleanjaro_small'): from .cleanjaro_small import cleanjaro_small return cleanjaro_small if name.startswith('cleanjaro'): from .cleanjaro import cleanjaro return cleanjaro if name.startswith('clearos'): from .clearos import clearos return clearos if name.startswith('clear linux os') or name.startswith('clear_linux'): from .clear_linux_os import clear_linux_os return clear_linux_os if name.startswith('clover'): from .clover import clover return clover if name.startswith('condres'): from .condres import condres return condres if name.startswith('container linux by coreos') or name.startswith('container_linux') or name == 'fedora coreos' or name.startswith('coreos'): from .container_linux_by_coreos import container_linux_by_coreos return container_linux_by_coreos if name == 'crux_small' or name.startswith('kiss'): from .crux_small import crux_small return crux_small if name.startswith('crux'): from .crux import crux return crux if (name.startswith('crystal linux') or name.endswith('crystal linux')): from .crystal_linux import crystal_linux return crystal_linux if (name.startswith('cucumber') or name.endswith('cucumber')): from .cucumber import cucumber return cucumber if name.startswith('cutefishos'): from .cutefishos import cutefishos return cutefishos if name.startswith('cuteos'): from .cuteos import cuteos return cuteos if name.startswith('cyberos'): from .cyberos import cyberos return cyberos if name.startswith('dahlia'): from .dahlia import dahlia return dahlia if name == 'debian_small': from .debian_small import debian_small return debian_small if name.startswith('debian'): from .debian import debian return debian if name.startswith('digital unix'): from .digital_unix import digital_unix return digital_unix if name.startswith('droidian'): from .droidian import droidian return droidian if name.startswith('deepin'): from .deepin import deepin return deepin if name.startswith('openkylin'): from .openkylin import openkylin return openkylin if name == 'desaos': from .desaos import desaos return desaos if name.startswith('devuan'): from .devuan import devuan return devuan if name.startswith('dietpi'): from .dietpi import dietpi return dietpi if name.startswith('dracos'): from .dracos import dracos return dracos if name == 'darkos': from .darkos import darkos return darkos if name.startswith('itc'): from .itc import itc return itc if name.startswith('dragonfly_old'): from .dragonfly_old import dragonfly_old return dragonfly_old if name.startswith('dragonfly_small'): from .dragonfly_small import dragonfly_small return dragonfly_small if name.startswith('dragonfly'): from .dragonfly import dragonfly return dragonfly if name.startswith('drauger'): from .drauger import drauger return drauger if name.startswith('elementary_small'): from .elementary_small import elementary_small return elementary_small if name.startswith('elementary'): from .elementary import elementary return elementary if name.startswith('elive'): from .elive import elive return elive if name.startswith('endeavouros_small'): from .endeavouros_small import endeavouros_small return endeavouros_small if name.startswith('endeavouros'): from .endeavouros import endeavouros return endeavouros if name.startswith('encryptos'): from .encryptos import encryptos return encryptos if name.startswith('endless'): from .endless import endless return endless if name.startswith('enso'): from .enso import enso return enso if name.startswith('eurolinux'): from .eurolinux import eurolinux return eurolinux if name.startswith('evolutionos'): from .evolutionos import evolutionos return evolutionos if name.startswith('eweos'): from .eweos import eweos return eweos if name.startswith('exherbo'): from .exherbo import exherbo return exherbo if name == 'fedora_small': from .fedora_small import fedora_small return fedora_small if name.startswith('fedora_old') or name.startswith('rfremix'): from .fedora_old import fedora_old return fedora_old if name == 'fedora_unicode': from .fedora_unicode import fedora_unicode return fedora_unicode if name == 'fedora silverblue' or name.startswith('silverblue'): from .fedora_silverblue import fedora_silverblue return fedora_silverblue if name.startswith('fedora kinoite') or name.startswith('kinoite'): from .fedora_kinoite import fedora_kinoite return fedora_kinoite if name.startswith('fedora sericea') or name.startswith('sericea'): from .fedora_sericea import fedora_sericea return fedora_sericea if name.startswith('fedora'): from .fedora import fedora return fedora if name.startswith('feren'): from .feren import feren return feren if name.startswith('femboyos'): from .femboyos import femboyos return femboyos if name.startswith('finnix'): from .finnix import finnix return finnix if name.startswith('furreto'): from .furreto import furreto return furreto if name == 'freebsd_small': from .freebsd_small import freebsd_small return freebsd_small if name.startswith('freebsd') or name.startswith('hardenedbsd'): from .freebsd import freebsd return freebsd if name.startswith('freemint'): from .freemint import freemint return freemint if name.startswith('frugalware'): from .frugalware import frugalware return frugalware if name.startswith('funtoo'): from .funtoo import funtoo return funtoo if name.startswith('galliumos'): from .galliumos import galliumos return galliumos if name == 'garuda_small': from .garuda_small import garuda_small return garuda_small if name.startswith('garuda'): from .garuda import garuda return garuda if name == 'gentoo_small': from .gentoo_small import gentoo_small return gentoo_small if name.startswith('gentoo'): from .gentoo import gentoo return gentoo if name.startswith('pentoo'): from .pentoo import pentoo return pentoo if name.startswith('glaucus'): from .glaucus import glaucus return glaucus if name.startswith('gnewsense'): from .gnewsense import gnewsense return gnewsense if name.startswith('gnome'): from .gnome import gnome return gnome if name == 'gnu': from .gnu import gnu return gnu if name.startswith('gobolinux'): from .gobolinux import gobolinux return gobolinux if name.startswith('grapheneos'): from .grapheneos import grapheneos return grapheneos if name.startswith('grombyang'): from .grombyang import grombyang return grombyang if name.startswith('guix_small'): from .guix_small import guix_small return guix_small if name.startswith('guix'): from .guix import guix return guix if name.startswith('haiku_small'): from .haiku_small import haiku_small return haiku_small if name.startswith('haiku'): from .haiku import haiku return haiku if name.startswith('hamonikr'): from .hamonikr import hamonikr return hamonikr if name.startswith('huayra'): from .huayra import huayra return huayra if name.startswith('hydroos'): from .hydroos import hydroos return hydroos if name.startswith('hyperbola_small'): from .hyperbola_small import hyperbola_small return hyperbola_small if name.startswith('hyperbola'): from .hyperbola import hyperbola return hyperbola if name.startswith('hybrid'): from .hybrid import hybrid return hybrid if name.startswith('iglunix') or name.startswith('iglu'): from .iglunix import iglunix return iglunix if name.startswith('interix'): from .interix import interix return interix if name.startswith('ironclad'): from .ironclad import ironclad return ironclad if name.startswith('januslinux') or name.startswith('janus') or name.startswith('ataraxia linux') or name.startswith('ataraxia'): from .januslinux import januslinux return januslinux if name.startswith('kaisen'): from .kaisen import kaisen return kaisen if name == 'kali_small' or name == 'kalilinux_small' or name == 'kali_linux_small': from .kali_small import kali_small return kali_small if name.startswith('kali'): from .kali import kali return kali if name.startswith('kaos'): from .kaos import kaos return kaos if name.startswith('kde'): from .kde import kde return kde if name.startswith('kibojoe'): from .kibojoe import kibojoe return kibojoe if name.startswith('kogaion'): from .kogaion import kogaion return kogaion if name.startswith('korora'): from .korora import korora return korora if name.startswith('kslinux'): from .kslinux import kslinux return kslinux if name.startswith('kubuntu'): from .kubuntu import kubuntu return kubuntu if name.startswith('lainos'): from .lainos import lainos return lainos if name.startswith('lede'): from .lede import lede return lede if name == 'langitketujuh_old': from .langitketujuh_old import langitketujuh_old return langitketujuh_old if name.startswith('langitketujuh'): from .langitketujuh import langitketujuh return langitketujuh if name.startswith('laxeros'): from .laxeros import laxeros return laxeros if name.startswith('libreelec'): from .libreelec import libreelec return libreelec if name == 'linux': from .linux import linux return linux if name == 'linuxfromscratch' or name.endswith('lfs') or name == 'linux-from-scratch' or name == 'linux_from_scratch': from .linuxfromscratch import linuxfromscratch return linuxfromscratch if name == 'linux_small': from .linux_small import linux_small return linux_small if name.startswith('linuxlite_small'): from .linuxlite_small import linuxlite_small return linuxlite_small if name.startswith('linux lite') or name.startswith('linux_lite'): from .linux_lite import linux_lite return linux_lite if name.startswith('lmde'): from .lmde import lmde return lmde if name.startswith('lubuntu'): from .lubuntu import lubuntu return lubuntu if name.startswith('lunar'): from .lunar import lunar return lunar if name.startswith('macaronios') or name.startswith('macaroni os'): from .macaronios import macaronios return macaronios if name == 'mac"*"_small': from .mac_small import mac_small return mac_small if name.startswith('mac') or name == 'darwin': from .mac import mac return mac if name.startswith('mageia_small'): from .mageia_small import mageia_small return mageia_small if name.startswith('mageia'): from .mageia import mageia return mageia if name.startswith('magix'): from .magix import magix return magix if name.startswith('magpieos'): from .magpieos import magpieos return magpieos if name.startswith('mainsailos_small'): from .mainsailos_small import mainsailos_small return mainsailos_small if name.startswith('mainsailos'): from .mainsailos import mainsailos return mainsailos if name.startswith('mandriva') or name.startswith('mandrake'): from .mandriva import mandriva return mandriva if name.startswith('manjaro_small'): from .manjaro_small import manjaro_small return manjaro_small if name.startswith('manjaro'): from .manjaro import manjaro return manjaro if name.startswith('massos'): from .massos import massos return massos if name.startswith('tearch'): from .tearch import tearch return tearch if name.startswith('maui'): from .maui import maui return maui if name.startswith('mauna'): from .mauna import mauna return mauna if name.startswith('meowix'): from .meowix import meowix return meowix if name.startswith('mer'): from .mer import mer return mer if name.startswith('minix'): from .minix import minix return minix if name.startswith('miracle linux') or name.startswith('miracle_linux'): from .miracle_linux import miracle_linux return miracle_linux if name.startswith('linspire') or name.startswith('freespire') or name.startswith('lindows'): from .linspire import linspire return linspire if name.startswith('linuxmint_small'): from .linuxmint_small import linuxmint_small return linuxmint_small if name.startswith('linux mint old') or name.startswith('linuxmintold') or name.startswith('mint_old'): from .linux_mint_old import linux_mint_old return linux_mint_old if name.startswith('linux mint') or name.startswith('linuxmint') or name.startswith('mint'): from .linux_mint import linux_mint return linux_mint if name.startswith('live raizo') or name.startswith('live_raizo'): from .live_raizo import live_raizo return live_raizo if name.startswith('mx_small'): from .mx_small import mx_small return mx_small if name.startswith('mx'): from .mx import mx return mx if name.startswith('namib'): from .namib import namib return namib if name.startswith('nekos'): from .nekos import nekos return nekos if name.startswith('neptune'): from .neptune import neptune return neptune if name.startswith('netbsd_small'): from .netbsd_small import netbsd_small return netbsd_small if name.startswith('netbsd'): from .netbsd import netbsd return netbsd if name.startswith('netrunner'): from .netrunner import netrunner return netrunner if name.startswith('nitrux'): from .nitrux import nitrux return nitrux if name == 'nixos_small': from .nixos_small import nixos_small return nixos_small if name.startswith('nixos_old'): from .nixos_old import nixos_old return nixos_old if name.startswith('nixos_colorful'): from .nixos_colorful import nixos_colorful return nixos_colorful if name.startswith('nixos'): from .nixos import nixos return nixos if name.startswith('nobara'): from .nobara import nobara return nobara if name.startswith('nomadbsd'): from .nomadbsd import nomadbsd return nomadbsd if name.startswith('ghostbsd'): from .ghostbsd import ghostbsd return ghostbsd if name.startswith('nurunner'): from .nurunner import nurunner return nurunner if name.startswith('nutyx'): from .nutyx import nutyx return nutyx if name.startswith('obrevenge'): from .obrevenge import obrevenge return obrevenge if name.startswith('omnios'): from .omnios import omnios return omnios if name == 'openbsd_small': from .openbsd_small import openbsd_small return openbsd_small if name.startswith('openbsd'): from .openbsd import openbsd return openbsd if name.startswith('openeuler'): from .openeuler import openeuler return openeuler if name.startswith('openindiana'): from .openindiana import openindiana return openindiana if name.startswith('openmamba'): from .openmamba import openmamba return openmamba if name.startswith('openmandriva'): from .openmandriva import openmandriva return openmandriva if name.startswith('openstage'): from .openstage import openstage return openstage if (name.startswith('wrt') or name.endswith('wrt')): from .wrt import wrt return wrt if name.startswith('open source media center') or name == 'osmc': from .open_source_media_center import open_source_media_center return open_source_media_center if name.startswith('opnsense'): from .opnsense import opnsense return opnsense if name.startswith('oracle'): from .oracle import oracle return oracle if name.startswith('orchid_small'): from .orchid_small import orchid_small return orchid_small if name.startswith('orchid'): from .orchid import orchid return orchid if name.startswith('os elbrus'): from .os_elbrus import os_elbrus return os_elbrus if name.startswith('pacbsd'): from .pacbsd import pacbsd return pacbsd if name.startswith('panwah'): from .panwah import panwah return panwah if name.startswith('parabola_small'): from .parabola_small import parabola_small return parabola_small if name.startswith('parabola'): from .parabola import parabola return parabola if name.startswith('pardus'): from .pardus import pardus return pardus if name.startswith('parrot'): from .parrot import parrot return parrot if name.startswith('parsix'): from .parsix import parsix return parsix if name.startswith('pcbsd') or name.startswith('trueos'): from .pcbsd import pcbsd return pcbsd if name.startswith('pclinuxos'): from .pclinuxos import pclinuxos return pclinuxos if name.startswith('pearos'): from .pearos import pearos return pearos if name.startswith('pengwin'): from .pengwin import pengwin return pengwin if name.startswith('peppermint'): from .peppermint import peppermint return peppermint if name.startswith('pisi'): from .pisi import pisi return pisi if name.startswith('pikaos'): from .pikaos import pikaos return pikaos if name.startswith('phyos'): from .phyos import phyos return phyos if name.startswith('pnm linux') or name.startswith('whpnm linux'): from .pnm_linux import pnm_linux return pnm_linux if name.startswith('popos_small') or name.startswith('pop_os_small'): from .popos_small import popos_small return popos_small if name.startswith('pop!_os') or name.startswith('popos') or name.startswith('pop_os'): from .pop__os import pop__os return pop__os if name.startswith('porteus'): from .porteus import porteus return porteus if name == 'postmarketos_small': from .postmarketos_small import postmarketos_small return postmarketos_small if name.startswith('postmarketos'): from .postmarketos import postmarketos return postmarketos if name.startswith('puffos'): from .puffos import puffos return puffos if name.startswith('proxmox'): from .proxmox import proxmox return proxmox if name.startswith('puppy') or name.startswith('quirky werewolf') or name.startswith('precise puppy'): from .puppy import puppy return puppy if name.startswith('pureos_small'): from .pureos_small import pureos_small return pureos_small if name.startswith('pureos'): from .pureos import pureos return pureos if name.startswith('peropesis'): from .peropesis import peropesis return peropesis if name.startswith('q4os'): from .q4os import q4os return q4os if name.startswith('qubes'): from .qubes import qubes return qubes if name.startswith('qubyt'): from .qubyt import qubyt return qubyt if name.startswith('quibian'): from .quibian import quibian return quibian if name.startswith('radix'): from .radix import radix return radix if name.startswith('raspbian_small'): from .raspbian_small import raspbian_small return raspbian_small if name.startswith('raspbian'): from .raspbian import raspbian return raspbian if name == 'ravynos': from .ravynos import ravynos return ravynos if name.startswith('reborn os') or name.startswith('reborn'): from .reborn_os import reborn_os return reborn_os if name.startswith('red star') or name.startswith('redstar'): from .red_star import red_star return red_star if name.startswith('redcore'): from .redcore import redcore return redcore if name == 'redhat_old' or name.startswith('rhel_old'): from .redhat_old import redhat_old return redhat_old if name.startswith('redhat') or name.startswith('red hat') or name.startswith('rhel'): from .redhat import redhat return redhat if name.startswith('refracted devuan') or name.startswith('refracted_devuan'): from .refracted_devuan import refracted_devuan return refracted_devuan if name.startswith('regata'): from .regata import regata return regata if name.startswith('regolith'): from .regolith import regolith return regolith if name.startswith('rhaymos'): from .rhaymos import rhaymos return rhaymos if name.startswith('rocky_small'): from .rocky_small import rocky_small return rocky_small if name.startswith('rocky'): from .rocky import rocky return rocky if name.startswith('rosa'): from .rosa import rosa return rosa if name.startswith('astra linux'): from .astra_linux import astra_linux return astra_linux if name.startswith('sabotage'): from .sabotage import sabotage return sabotage if name.startswith('sabayon'): from .sabayon import sabayon return sabayon if name.startswith('sailfish'): from .sailfish import sailfish return sailfish if name.startswith('salentos'): from .salentos import salentos return salentos if name.startswith('shastraos'): from .shastraos import shastraos return shastraos if name.startswith('sasanqua'): from .sasanqua import sasanqua return sasanqua if name.startswith('salient os') or name.startswith('salientos') or name.startswith('salientos'): from .salient_os import salient_os return salient_os if name.startswith('salix'): from .salix import salix return salix if name.startswith('scientific'): from .scientific import scientific return scientific if name.startswith('septor'): from .septor import septor return septor if name.startswith('serene'): from .serene import serene return serene if name.startswith('sharklinux'): from .sharklinux import sharklinux return sharklinux if name.startswith('siduction'): from .siduction import siduction return siduction if name.startswith('slackel'): from .slackel import slackel return slackel if name.startswith('slackware_small'): from .slackware_small import slackware_small return slackware_small if name.startswith('slackware'): from .slackware import slackware return slackware if name.startswith('slitaz'): from .slitaz import slitaz return slitaz if name.startswith('smartos'): from .smartos import smartos return smartos if name.startswith('skiffos'): from .skiffos import skiffos return skiffos if name.startswith('solus'): from .solus import solus return solus if name.startswith('sulin'): from .sulin import sulin return sulin if name.startswith('source mage') or name.startswith('source_mage'): from .source_mage import source_mage return source_mage if name.startswith('sparky'): from .sparky import sparky return sparky if name.startswith('star'): from .star import star return star if name.startswith('steamos'): from .steamos import steamos return steamos if name == 'sunos_small' or name == 'solaris_small': from .sunos_small import sunos_small return sunos_small if name == 'sunos' or name == 'solaris': from .sunos import sunos return sunos if name.startswith('opensuse leap') or name.startswith('opensuse_leap'): from .opensuse_leap import opensuse_leap return opensuse_leap if name.startswith('t2'): from .t2 import t2 return t2 if name.startswith('opensuse tumbleweed') or name.startswith('opensuse_tumbleweed'): from .opensuse_tumbleweed import opensuse_tumbleweed return opensuse_tumbleweed if name == 'opensuse_small' or name.startswith('suse_small'): from .opensuse_small import opensuse_small return opensuse_small if name.startswith('opensuse') or name.startswith('open suse') or name.startswith('suse'): from .opensuse import opensuse return opensuse if name.startswith('parch') or name.startswith('parch') or name.startswith('parch'): from .parch import parch return parch if name.startswith('swagarch'): from .swagarch import swagarch return swagarch if name.startswith('tails'): from .tails import tails return tails if name.startswith('torizoncore'): from .torizoncore import torizoncore return torizoncore if name.startswith('trisquel'): from .trisquel import trisquel return trisquel if name.startswith('twister'): from .twister import twister return twister if name.startswith('ubuntu cinnamon') or name.startswith('ubuntu-cinnamon'): from .ubuntu_cinnamon import ubuntu_cinnamon return ubuntu_cinnamon if name.startswith('ubuntu budgie') or name.startswith('ubuntu-budgie'): from .ubuntu_budgie import ubuntu_budgie return ubuntu_budgie if name.startswith('ubuntu-gnome'): from .ubuntu_gnome import ubuntu_gnome return ubuntu_gnome if name.startswith('ubuntu kylin') or name.startswith('ubuntu-kylin'): from .ubuntu_kylin import ubuntu_kylin return ubuntu_kylin if name.startswith('ubuntu touch'): from .ubuntu_touch import ubuntu_touch return ubuntu_touch if name.startswith('ubuntu mate') or name.startswith('ubuntu-mate'): from .ubuntu_mate import ubuntu_mate return ubuntu_mate if name == 'ubuntu_old02': from .ubuntu_old02 import ubuntu_old02 return ubuntu_old02 if name.startswith('ubuntu studio') or name == 'ubuntu-studio': from .ubuntu_studio import ubuntu_studio return ubuntu_studio if name.startswith('ubuntu sway') or name == 'ubuntu-sway': from .ubuntu_sway import ubuntu_sway return ubuntu_sway if name == 'ubuntu_small': from .ubuntu_small import ubuntu_small return ubuntu_small if name.startswith('ubuntu_old') or name.startswith('i3buntu'): from .ubuntu_old import ubuntu_old return ubuntu_old if name.startswith('floflis'): from .floflis import floflis return floflis if name.startswith('ubuntu'): from .ubuntu import ubuntu return ubuntu if name.startswith('ultramarine linux') or name.startswith('ultramarine'): from .ultramarine_linux import ultramarine_linux return ultramarine_linux if name.startswith('univalent'): from .univalent import univalent return univalent if name.startswith('uos'): from .uos import uos return uos if name.startswith('univention'): from .univention import univention return univention if name.startswith('uwuntu'): from .uwuntu import uwuntu return uwuntu if name.startswith('urukos'): from .urukos import urukos return urukos if name.startswith('venom_small'): from .venom_small import venom_small return venom_small if name.startswith('venom'): from .venom import venom return venom if name == 'void_small': from .void_small import void_small return void_small if name.startswith('void'): from .void import void return void if name.startswith('vnux'): from .vnux import vnux return vnux if name.startswith('vzlinux'): from .vzlinux import vzlinux return vzlinux if name.startswith('yiffos'): from .yiffos import yiffos return yiffos if name.startswith('semc'): from .semc import semc return semc if name.startswith('vanilla'): from .vanilla import vanilla return vanilla if name.startswith('obarun'): from .obarun import obarun return obarun if (name.startswith('wii-linux-ngx') or name.endswith('wii-linux-ngx')) or (name.startswith('whiite-linux') or name.endswith('whiite-linux')) or (name.startswith('gc-linux') or name.endswith('gc-linux')): from .wii_linux_ngx import wii_linux_ngx return wii_linux_ngx if (name.startswith('[windows 11]') or name.endswith('[windows 11]')) or (name.startswith('on windows 11') or name.endswith('on windows 11')) or name.startswith('windows 11') or name == 'windows11': from .windows_11 import windows_11 return windows_11 if (name.startswith('[windows 10]') or name.endswith('[windows 10]')) or (name.startswith('on windows 10') or name.endswith('on windows 10')) or name.startswith('windows 8') or name.startswith('windows 10') or name == 'windows10' or name == 'windows8': from .windows_10 import windows_10 return windows_10 if name == 'windows95': from .windows95 import windows95 return windows95 if name.startswith('windows'): from .windows import windows return windows if name.startswith('xray_os'): from .xray_os import xray_os return xray_os if name.startswith('xubuntu'): from .xubuntu import xubuntu return xubuntu if name.startswith('soda'): from .soda import soda return soda if name.startswith('krassos') or name.startswith('krass'): from .krassos import krassos return krassos if name.startswith('irix'): from .irix import irix return irix if name.startswith('xenia2'): from .xenia2 import xenia2 return xenia2 if name.startswith('xenia'): from .xenia import xenia return xenia if name.startswith('tatra'): from .tatra import tatra return tatra if name.startswith('zorin'): from .zorin import zorin return zorin if name.endswith('bsd'): from .bsd import bsd return bsd if name == 'darwin': from .darwin import darwin return darwin if name.startswith('gnu'): from .gnu import gnu return gnu if name == 'linux': from .linux import linux return linux if name.startswith('profelis sambabox') or name.startswith('sambabox'): from .profelis_sambabox import profelis_sambabox return profelis_sambabox if name == 'sunos': from .sunos import sunos return sunos hyfetch-1.99.0/hyfetch/distros/dracos.py000066400000000000000000000010231470626616500202230ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt dracos = AsciiArt(match=r'''"DracOS"*''', color='1 7 3', ascii=r""" ${c1} `-:/- -os: -os/` :sy+-` `/yyyy+. `+yyyyo- `/yyyys: `:osssoooo++- +yyyyyy/` ./yyyyyyo yo`:syyyy+. -oyyy+ +- :yyyyyo- `:sy: `. `/yyyyys: ./o/.` .oyyso+oo:` :+oo+//::::///:-.` `.` """) hyfetch-1.99.0/hyfetch/distros/dragonfly.py000066400000000000000000000012261470626616500207420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt dragonfly = AsciiArt(match=r'''"DragonFly"*''', color='1 7 3', ascii=r""" ${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} | | | | | | | | | | | | `|' """) hyfetch-1.99.0/hyfetch/distros/dragonfly_old.py000066400000000000000000000015411470626616500216000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt dragonfly_old = AsciiArt(match=r'''"dragonfly_old"*''', color='1 7 3', ascii=r""" ${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} /=\ \=/ ^ """) hyfetch-1.99.0/hyfetch/distros/dragonfly_small.py000066400000000000000000000004361470626616500221340ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt dragonfly_small = AsciiArt(match=r'''"dragonfly_small"*''', color='1 7 3', ascii=r""" ${c2} ,${c1}_${c2}, ('-_${c1}|${c2}_-') >--${c1}|${c2}--< (_-'${c1}|${c2}'-_) ${c1}| | | """) hyfetch-1.99.0/hyfetch/distros/drauger.py000066400000000000000000000012641470626616500204100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt drauger = AsciiArt(match=r'''"Drauger"*''', color='1 7', ascii=r""" ${c1} -``- `:+``+:` `/++``++/. .++/. ./++. :++/` `/++: `/++: :++/` ./+/- -/+/. -++/. ./++- :++:` `:++: `/++- -++/` ./++. ./+/. -++/` `/++- :++:` `:++: `/++- -++/` .:-.`..............................`.-:. `.-/++++++++++++++++++++++++++++++++/-.` """) hyfetch-1.99.0/hyfetch/distros/droidian.py000066400000000000000000000010211470626616500205370ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt droidian = AsciiArt(match=r'''"Droidian"*''', color='2 10', ascii=r""" ${c2} _,met$$$$$gg. ,g$$$$$$$$$$$$$$$$P. ,$$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._ """) hyfetch-1.99.0/hyfetch/distros/elementary.py000066400000000000000000000013511470626616500211210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt elementary = AsciiArt(match=r'''"Elementary"*''', color='4 7 1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/elementary_small.py000066400000000000000000000004011470626616500223040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt elementary_small = AsciiArt(match=r'''"elementary_small"*''', color='4 7 1', ascii=r""" ${c2} _______ / ____ \ / | / /\ |__\ / / | \ /__/ / \_______/ """) hyfetch-1.99.0/hyfetch/distros/elive.py000066400000000000000000000021241470626616500200570ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt elive = AsciiArt(match=r'''"Elive"*''', color='7 6 6', ascii=r""" ${c1} *@${c2},,&(%%%..%*. ${c1}(@${c2}&%/##############((/${c1}*, ${c2}@${c1}@&${c2}#########${c1}*..../${c2}########%${c1}*.. ${c2}@${c1}&${c2}#%%%%%. ${c3},.${c1},${c2}%%%%%%. /%${c2}(%%%%. ${c1}(${c2}%%%%#. /${c1}*${c2}%%##,. .,%%###, ,####. ,${c1}*${c2}#%${c1}#${c3}/,(/ ${c2}/${c1}#${c2}###, ((###/ ,,##########${c1}(${c3}/(# ${c2}%####, %#(((${c1}. .${c1}./${c2}((((((((((((((${c1}(${c2}#/${c3}*.. ${c3}*.${c2}(((${c1}/ ${c2}%#///${c1}. ${c3}***${c2}.*///////////// ${c3}#${c2}#////* ${c3}***${c2}.*/////. ${c3}(${c2}(***** ${c3}*** ${c2},*****.. ..${c1}*${c2}*****.. *${c1}%${c2}/****. .,,*******,${c3},,../##(${c2}%&${c1}&${c2}#******${c1},${c2}. ,*${c1},${c2},,,,,,,,,,,,,,,,,,,${c1},${c2}.. *//${c1}/,,${c2},,,,,,,${c1},..${c2} """) hyfetch-1.99.0/hyfetch/distros/encryptos.py000066400000000000000000000011401470626616500207760ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt encryptos = AsciiArt(match=r'''"EncryptOS"*''', color='2 5 6', ascii=r""" ${c2} ******* ${c2} *** **. ${c2} ** ** ${c2} ** ** ${c2} ***************** ${c2} ,,,,,,,,,,,,,,,,*** ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,,,,,,,,,,,,,, ${c2} ,,,,,,,,,,,,. """) hyfetch-1.99.0/hyfetch/distros/endeavouros.py000066400000000000000000000016141470626616500213100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt endeavouros = AsciiArt(match=r'''"EndeavourOS"*''', color='1 5 4', ascii=r""" ${c1} ./${c2}o${c3}. ${c1} ./${c2}sssso${c3}- ${c1} `:${c2}osssssss+${c3}- ${c1} `:+${c2}sssssssssso${c3}/. ${c1} `-/o${c2}ssssssssssssso${c3}/. ${c1} `-/+${c2}sssssssssssssssso${c3}+:` ${c1} `-:/+${c2}sssssssssssssssssso${c3}+/. ${c1} `.://o${c2}sssssssssssssssssssso${c3}++- ${c1} .://+${c2}ssssssssssssssssssssssso${c3}++: ${c1} .:///o${c2}ssssssssssssssssssssssssso${c3}++: ${c1} `:////${c2}ssssssssssssssssssssssssssso${c3}+++. ${c1}`-////+${c2}ssssssssssssssssssssssssssso${c3}++++- ${c1} `..-+${c2}oosssssssssssssssssssssssso${c3}+++++/` ./++++++++++++++++++++++++++++++/:. `:::::::::::::::::::::::::------`` """) hyfetch-1.99.0/hyfetch/distros/endeavouros_small.py000066400000000000000000000006341470626616500225010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt endeavouros_small = AsciiArt(match=r'''"endeavouros_small"*''', color='1 5 4', ascii=r""" ${c1} /${c2}o${c3}. ${c1} :${c2}sssso${c3}- ${c1} :${c2}ossssssso${c3}: ${c1} /${c2}ssssssssssso${c3}+ ${c1} -+${c2}ssssssssssssssso${c3}+ ${c1} //${c2}osssssssssssssso${c3}+- `+++++++++++++++-` """) hyfetch-1.99.0/hyfetch/distros/endless.py000066400000000000000000000016331470626616500204140ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt endless = AsciiArt(match=r'''"Endless"*''', color='1 7', ascii=r""" ${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+:` """) hyfetch-1.99.0/hyfetch/distros/enso.py000066400000000000000000000015521470626616500177230ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt enso = AsciiArt(match=r'''"Enso"*''', color='8 7', ascii=r""" ${c1} .:--==--:. :=*#%%%%%%%#####*+-. .+%%%%%%%%%%%%###%%#*##*: .*%%%%%%%%%#+==-==++*####*##- =%%%%%%%#=: .-+**#***. *%%%%%%#- ++*#**. +%%%%%%+ -*+#** :%%%%%%* .*+**= *%%%%%%: --#*# %%%%%%% +++#. %%%%%%%. ++=*. *%%%%%%+ .-+*+ :%%%%%%%- -:*+: =%%%%%%%*. :.*+- +%%%%%%%%*- :*=- =%%%%%%%%%%#+=: =+=: .+%%%%%%%%%%%%%. .-==: .=#%%%%%%%%%%= ..:--:. .-+#%%%%%+ """) hyfetch-1.99.0/hyfetch/distros/eurolinux.py000066400000000000000000000013451470626616500210110ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt eurolinux = AsciiArt(match=r'''"EuroLinux"*''', color='4 7', ascii=r""" ${c1} __ -wwwWWWWWWWWWwww- -WWWWWWWWWWWWWWWWWWw- \WWWWWWWWWWWWWWWWWWW- _Ww `WWWWWWWWWWWWWWWWWWWw -W${c2}E${c1}Www -WWWWWWWWW- _WW${c2}U${c1}WWWW- _WWWWWWWW _WW${c2}R${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW- wWW${c2}O${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWW${c2}L${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw WWW${c2}I${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWww- wWW${c2}N${c1}WWWWw WW${c2}U${c1}WWWWWWw wW${c2}X${c1}WWWWWWWWww wWWWWWWWWWWWWWWWw wWWWWWWWWWWWWWWWw WWWWWWWWWWWWWw wWWWWWWWw """) hyfetch-1.99.0/hyfetch/distros/evolutionos.py000066400000000000000000000014731470626616500213470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt evolutionos = AsciiArt(match=r'''"EvolutionOS"*''', color='4 7', ascii=r""" ${c1}\e[1;32m dddddddddddddddddddddddd .dddd''''''''''''''''''''''dddd. dd: dddddddddddddddddddd; dd: dd: ldl:'''''''''''''''' dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: ddddddd; ddddd; dd: dd: ldl: ''''''' ''''' dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: ddddddddddddddd; dd: dddd:.''' ''''''''''''''' dddd: dddddddddddddddddddddddddd;;' '''''''''''''''''''''''''\e[0m """) hyfetch-1.99.0/hyfetch/distros/eweos.py000066400000000000000000000015521470626616500201010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt eweos = AsciiArt(match=r'''"eweOS"*''', color='7 11 9 8 1', ascii=r""" ${c2} #####%%% ${c2} ##%%${c3}////${c2}%%%%%${c3}/// ${c2} #%%%%${c3}////((((////${c2}% ${c1} *@@@@@@@${c3}/${c5},,,${c3}/////${c5},,,${c2}%${c1}@@@@@@@ ${c1} .@@@@@@@@@@@${c3}////////${c2}%%%${c1}@@@@@@@@@@@@ ${c1} @@@${c4}...${c1}@@@@@@${c3}////${c2}%%${c3}////${c1}@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@ @@@@@@ ${c1} @@@ @@@ """) hyfetch-1.99.0/hyfetch/distros/exherbo.py000066400000000000000000000021611470626616500204100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt exherbo = AsciiArt(match=r'''"Exherbo"*''', color='4 7 1', ascii=r""" ${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' """) hyfetch-1.99.0/hyfetch/distros/exodia_predator_os.py000066400000000000000000000022071470626616500226270ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt exodia_predator_os = AsciiArt(match=r'''"Exodia Predator OS"* | "exodia-predator"* | "Predator"*''', color='5 5', ascii=r""" ${c1}- : ${c1}+: :+ ${c1}++. .++ ${c1}+++ : . +++ ${c1}+++= .+ + =+++ ${c1}++++- ++ += -++++ ${c1}++++++- -++ ++- -++++++ ${c1}++++++++: .+++ +++. :++++++++ ${c1}++++++++++: ++++ ++++ :++++++++++ ${c1}+++++++++++==++++ ++++=++++++=+++++ ${c1}+++++.:++++++++++ ++++++++++:.+++++ ${c1}+++++. .+++++++++ +++++++++. .+++++ ${c1}+++++: ++++++++ ++++++++ :+++++ ${c1}++++++- =+++++++ +++++++= -++++++ ${c1} :+++++= =+++++++ +++++++= =+++++: ${c1} :+++= =+++++++ +++++++= =+++: ${c1} -+= =+++++++ +++++++= ++- ${c1} : =++++++- -++++++= : ${c1} =++++- -++++= ${c1} =++= =++= ${c1} =++ ++= ${c1} =+. .+= ${c1} =- -= ${c1} : : """) hyfetch-1.99.0/hyfetch/distros/fedora.py000066400000000000000000000020011470626616500202050ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt fedora = AsciiArt(match=r'''"Fedora"*''', color='12 7', ascii=r""" ${c1} .',;::::;,'. .';:cccccccccccc:;,. .;cccccccccccccccccccccc;. .:cccccccccccccccccccccccccc:. .;ccccccccccccc;${c2}.:dddl:.${c1};ccccccc;. .:ccccccccccccc;${c2}OWMKOOXMWd${c1};ccccccc:. .:ccccccccccccc;${c2}KMMc${c1};cc;${c2}xMMc${c1};ccccccc:. ,cccccccccccccc;${c2}MMM.${c1};cc;${c2};WW:${c1};cccccccc, :cccccccccccccc;${c2}MMM.${c1};cccccccccccccccc: :ccccccc;${c2}oxOOOo${c1};${c2}MMM0OOk.${c1};cccccccccccc: cccccc;${c2}0MMKxdd:${c1};${c2}MMMkddc.${c1};cccccccccccc; ccccc;${c2}XM0'${c1};cccc;${c2}MMM.${c1};cccccccccccccccc' ccccc;${c2}MMo${c1};ccccc;${c2}MMW.${c1};ccccccccccccccc; ccccc;${c2}0MNc.${c1}ccc${c2}.xMMd${c1};ccccccccccccccc; cccccc;${c2}dNMWXXXWM0:${c1};cccccccccccccc:, cccccccc;${c2}.:odl:.${c1};cccccccccccccc:,. :cccccccccccccccccccccccccccc:'. .:cccccccccccccccccccccc:;,.. '::cccccccccccccc::;,. """) hyfetch-1.99.0/hyfetch/distros/fedora_kinoite.py000066400000000000000000000015401470626616500217360ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt fedora_kinoite = AsciiArt(match=r'''"Fedora Kinoite"* | "Kinoite"*''', color='12 7', ascii=r""" ${c1} ,clll:.${c2} .,::::::::::::' ${c1}:ooooooo${c2} .;:::::::::::::: ${c1}looooooo${c2} ,:::::::::::::::' ${c1}looooooo${c2} .:::::::::::::::: ${c1}looooooo${c2} ;:::::::::::::::. ${c1}looooooo${c2} .:::::::::::::::: ${c1}looooool${c2};;;;,:::::::::::::::: ${c1}looool${c2}::, .:::::::::::::: ${c1}looooc${c2}:: ;:: ${c1}looooc${c2}::;. .::; ${c1}loooool${c2}:::::::::::. ${c1}looooooo${c2}. .::::::' ${c1}looooooo${c2} .::::::,;,.. ${c1}looooooo${c2} :::;' ';:;. ${c1}looooooo${c2} ::: ::: ${c1}cooooooo${c2} .::' '::. ${c1}.ooooc ${c2} ::, ,:: '''' """) hyfetch-1.99.0/hyfetch/distros/fedora_old.py000066400000000000000000000015541470626616500210570ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt fedora_old = AsciiArt(match=r'''"Fedora_old"* | "RFRemix"*''', color='4 7 1', ascii=r""" ${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}-------------:: :---------------------:// """) hyfetch-1.99.0/hyfetch/distros/fedora_sericea.py000066400000000000000000000014531470626616500217120ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt fedora_sericea = AsciiArt(match=r'''"Fedora Sericea"* | "Sericea"*''', color='12 7', ascii=r""" ${c1} :oooo, .',' .';;;.;oooooooolooooo' coooooooooooooooooooooooolc' .':oooooooooooo${c2}ll${c1}ooooooooooooool .oooooooooooooooo${c2}ll${c1}oooooooooooo${c2}l${c1}ool ooooooooooooooooo${c2}ll${c1}ooooooooooo${c2}ll${c1}oo' oooo${c2}l${c1}oooooooooo${c2}lll${c1}ooooooooo${c2}lll${c1}oo .ooooo${c2}lll${c1}ooooo${c2}lll${c1}ooooooooo${c2}lll${c1}ool .ooooooo${c2}lll${c1}oo${c2}llll${c1}oooo${c2}lllll${c1}ooooo: 'oooooooo${c2}llllllllllll${c1}oooooooo' .c,.oo${c2}lllll${c1}oooooooo.${c2} 'll; 'll. lll lll ;ll, .l: """) hyfetch-1.99.0/hyfetch/distros/fedora_silverblue.py000066400000000000000000000023251470626616500224520ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt fedora_silverblue = AsciiArt(match=r'''"Fedora Silverblue" | "Silverblue"*''', color='4 7 12', ascii=r""" ${c1} .;ooooooooooooooooooooooooooo. ${c1} ,dddddddddddddddddddddddddddddd'${c3}; ${c1} lddddddddddddddddddddddddddddd'${c3};;; ${c1}ddddd${c2},XXX.${c1}ddddd${c2},XXX.${c1}dddd'${c2},XXX.${c3};;;;; ${c1}ddddd${c2}XX${c1}x${c2}XX${c1}ddddd${c2}XX${c1}x${c2}XX${c1}ddd'${c2},XX${c3}x${c2}XX${c3};;;;; ${c1}ddddd${c2}'XXX'${c1}ddddd${c2}'XXX'${c1}dd'${c2}XXXXXX'${c3};;;;; ${c1}dddddd${c2};X;${c1}ddddddd${c2};X:${c1}d'${c2}XXX${c3};;;;;;;;;;; ${c1}dddddd${c2};X;${c1}ddddddd${c2};X:${c2}XXX${c3};;;;;;;;;;;;; ${c1}dddddd${c2};X;${c1}dddddd'${c2};XXX,,,,,,XXX.${c3};;;;; ${c1}dddddd${c2};X;${c1}dddd'${c2}XXXX${c2}XXXXXXXXX${c3}x${c2}XX${c3};;;;; ${c1}dddddd${c2};X;${c1}dd'${c2}XXX${c3};;;;;;;;;;;${c2}XXX${c3};;;;;; ${c1}dddddd${c2};X;${c1}'${c2}XXX${c3};;;;;;;;;;;;;;;;;;;;;; ${c1}dddddd${c2};XXXXX,,,,,,,,,,,,,;XXX:${c3};;;;; ${c1}dddddd${c2}:XXXXXXXXXXXXXXXXXXXX${c3}x${c2}XX${c3};;;;; ${c1}ddddd'${c3};;;;;;;;;;;;;;;;;;;${c2}'XXX'${c3};;;;' ${c1}ddd'${c3};;;;;;;;;;;;;;;;;;;;;;;;;;;;; ${c1}o'${c3};;;;;;;;;;;;;;;;;;;;;;;;;;;;' """) hyfetch-1.99.0/hyfetch/distros/fedora_small.py000066400000000000000000000004541470626616500214070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt fedora_small = AsciiArt(match=r'''"fedora_small"''', color='12', ascii=r""" ${c1} ,'''''. | ,. | | | '_' ,....| |.. .' ,_;| ..' | | | | | ',_,' | '. ,' ''''' """) hyfetch-1.99.0/hyfetch/distros/fedora_unicode.py000066400000000000000000000037741470626616500217350ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt fedora_unicode = AsciiArt(match=r'''"Fedora_unicode"''', color='12 7', ascii=r""" ${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}██████████████████▀ ████████████████████████████████▀ ▀█████████████████████████████▀ ▀█████████████████████████▀ """) hyfetch-1.99.0/hyfetch/distros/femboyos.py000066400000000000000000000017351470626616500206050ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt femboyos = AsciiArt(match=r'''"FemboyOS"*''', color='4', ascii=r""" ${c1}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWKkxkKWMMMMMMMMMMMMMMMMMMMMWKkxkKWMM MMMMXo. .;xKWMMMMMMMMMMMMMMMMMMXo. .oXMM MMWXx,..'..oXMMMMMMMMMMMMMMMMWKx, .lXMM MMNo. .cOc.,xKWMMMMMMMMMMMMWXx;.....cXMM MMXl..;kKl. .oXMMMMMMMMMMWKx;..,ok:.'o0W WKx,.cKWNk;..lXMMMMMMMMWKx;..,o0NXl. .oN No. .lXMMWKc.,dKWMMMMMMNo..;d0NWMNx,..lX Nk:,:kNMMMNk:,ckNMMMMMMNxcxXWMMMMMN0ockN MWNNNWMMMMMWNNNWMMMMMMMMWWWMMMMMMMMMWWWM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMNXKXNWMMMMMMMMMMMWNKOKWMMMMMMMMMM MMMMMMWKdccxXMMMMMMMMMMW0o'.oXMMMMMMMMMM MMMMMMMNO:.'o0NKkkkkkOXXo. .lXMMMMMMMMMM MMMMMMMMNx,..;o;. .:o,..;kNMMMMMMMMMM MMMMMMMMMNO: ... .cKWMMMMMMMMMMM MMMMMMMMMMNx,. .;dk:. .;kNMMMMMMMMMMMM MMMMMMMMMMMN0ocxXWNkl:,:xXWMMMMMMMMMMMMM MMMMMMMMMMMMMWNWMMMWWNNNWMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM """) hyfetch-1.99.0/hyfetch/distros/feren.py000066400000000000000000000012141470626616500200510ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt feren = AsciiArt(match=r'''"Feren"*''', color='4 7 1', ascii=r""" ${c1} `----------` :+ooooooooo+. -o+oooooooooo+- ..`/+++++++++++/...````````````````` .++++++++++++++++++++++++++/////- ++++++++++++++++++++++++++++++++//:` -++++++++++++++++++++++++++++++/-` ++++++++++++++++++++++++++++:. -++++++++++++++++++++++++/. +++++++++++++++++++++/-` -++++++++++++++++++//-` .:+++++++++++++//////- .:++++++++//////////- `-++++++---:::://///. `.:///+++. ` `......... """) hyfetch-1.99.0/hyfetch/distros/finnix.py000066400000000000000000000012731470626616500202520ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt finnix = AsciiArt(match=r'''"Finnix"*''', color='4 7 7', ascii=r""" ${c1} ,,:;;;;:,, ,;*%S########S%*;, ;?#################S?: :%######################?: +##########################; +############################; :#############.**,#############, *###########+ +###########+ ?########## ${c3}Finnix${c1} ##########* *###########, ,###########+ :#############%..%#############, *############################+ *##########################+ ;S######################%: ,+%##################%; :+?S##########S?+: ,:;++++;:, """) hyfetch-1.99.0/hyfetch/distros/floflis.py000066400000000000000000000041021470626616500204070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt floflis = AsciiArt(match=r'''"Floflis"*''', color='1 7 3', ascii=r""" \e[96m ,▄▄▄▌▓▓███▓▓▌▄▄▄, ,▄▒▓███████████████████▓▄▄ ▄▓███████████████████████████▌ ▓███████████████████████████████ , ╙▓████████████████████████████▀ ▄ ╓█▓▄ ╙▀▓████████████████████▀▀` ,▄██▓ ╓█████▌▄, '▀▀▀▀▓▓▓▓▓▓▀▀Å╙` ▄▄▓█████▌ ██████████▓▌▄ , ▄▓███████████▄ ╢████████████▓ ║████▓▓███▌ ╣█████████████▓ ▓█████████████ ▐█████████▀ ▓██████████████ ▓█████████████ ▐█████████▄ ███████████████ ▀████████████▌ ║█████████▌ ▀█████████████▌ ████████████M ▓██████████ ▐█████████████⌐ ▀██████████▌ ▐███████████▌ ▀███████████▌ ╙▓█████▓ ▓██████████████▄ ▀███████▀ ╝▓██▀ ╓▓████████████████▓ ▀▓██▀ ,▄████████████████████▌, ╝▀████████████████████▓▀' `╙▀▀▓▓███████▓▀▀╩' """) hyfetch-1.99.0/hyfetch/distros/freebsd.py000066400000000000000000000014071470626616500203700ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt freebsd = AsciiArt(match=r'''FreeBSD*|HardenedBSD*''', color='1 7 3', ascii=r""" ${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}`:` .-- `--. .---.....----. """) hyfetch-1.99.0/hyfetch/distros/freebsd_small.py000066400000000000000000000004071470626616500215570ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt freebsd_small = AsciiArt(match=r'''"freebsd_small"''', color='1 7 3', ascii=r""" ${c1}/\,-'''''-,/\ \_) (_/ | | | | ; ; '-_____-' """) hyfetch-1.99.0/hyfetch/distros/freemint.py000066400000000000000000000011401470626616500205610ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt freemint = AsciiArt(match=r'''"FreeMiNT"*''', color='7', ascii=r""" ${c1} ## ## ######### #### ## #### #### ## #### #### ## ## #### #### ## ## #### #### ## ## ## #### ###### ###### ## ## #### #### ################ #### ## #### ## #### ###### ## ## #### #### ## ## ## ## ## #### #### ## ## ## """) hyfetch-1.99.0/hyfetch/distros/frugalware.py000066400000000000000000000023041470626616500211120ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt frugalware = AsciiArt(match=r'''"Frugalware"*''', color='4 7 1', ascii=r""" ${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 .-:+++` """) hyfetch-1.99.0/hyfetch/distros/funtoo.py000066400000000000000000000010701470626616500202640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt funtoo = AsciiArt(match=r'''"Funtoo"*''', color='5 7', ascii=r""" ${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;. """) hyfetch-1.99.0/hyfetch/distros/furreto.py000066400000000000000000000021331470626616500204410ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt furreto = AsciiArt(match=r'''"Furreto"*''', color='211 255 225 199', ascii=r""" ${c1} ${c1}.xOOko .odd, o${c3}X${c2}WWK${c3}O${c1}OOO. 'O${c3}N${c2}WW${c3}0${c1}kkk. .k0${c3}XKO${c1}OOOOOcOO${c2}NWN${c1}OOOOO. xOOOOOOOOOkkOOOOOOOOO; .O0OkkocxO000000kcdk0OO0OOkx k${c3}W${c2}MX${c1}kkkkloxkkkx; :dxxxxddc... 'kO0OOOOOkc .cl:..kk0KK0Okc ;kOOO0000xd. dO00000Oo .xkO${c3}N${c2}MM${c3}X${c1}OOOO .dddxkOOOkddc.k${c3}K${c2}NWW${c3}N${c1}000000l.ddk${c2}00${c1}00OOOO. 'dd:;ddddd;.d${c3}K${c2}MMM${c3}W${c1}K00KKK0O::ddxkO00Oko .okxkOKK0kkOO00KKOxxlodddddddl .00OOkkkkkkkkOOO00OOOO0O; .dddl 'kkkkkxxkkkkkkkOOkxdxkxxddd. cddddddddxxkkkkk${c4}xddddddddddo 'ddddddodddddddddddddddddddc .ddddddodddddddddodddddddc .odddo. .kOOkkk; lkKWNkkkxc kkxkkkkkkx. ,,..xxx. """) hyfetch-1.99.0/hyfetch/distros/galliumos.py000066400000000000000000000020001470626616500207400ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt galliumos = AsciiArt(match=r'''"GalliumOS"*''', color='4 7 1', ascii=r""" ${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/:-...................................: """) hyfetch-1.99.0/hyfetch/distros/garuda.py000066400000000000000000000015771470626616500202310ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt garuda = AsciiArt(match=r'''"Garuda"*''', color='7 7 3 7 2 4', ascii=r""" ${c3} .%;888:8898898: x;XxXB%89b8:b8%b88: .8Xxd 8X:. .8Xx; 8x:. .tt8x ${c6}.d${c3} x88; .@8x8; ${c6}.db:${c3} xx@; ${c4},tSXX° .bbbbbbbbbbbbbbbbbbbB8x@; .SXxx bBBBBBBBBBBBBBBBBBBBbSBX8; ,888S pd! 8X88/ q GBB. ${c5}x%88 d888@8@X@X@X88X@@XX@@X@8@X. dxXd dB8b8b8B8B08bB88b998888b88x. dxx8o .@@;. dx88 .t@x. d:SS@8ba89aa67a853Sxxad. .d988999889889899dd. """) hyfetch-1.99.0/hyfetch/distros/garuda_small.py000066400000000000000000000004301470626616500214040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt garuda_small = AsciiArt(match=r'''"garuda_small"''', color='7 7 3 7 2 4', ascii=r""" ${c3} .----. .' ${c6},${c3} '. ${c4} .' ${c6}'${c3}-----| '${c5}. -----, '.____.' """) hyfetch-1.99.0/hyfetch/distros/gentoo.py000066400000000000000000000015701470626616500202520ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt gentoo = AsciiArt(match=r'''"Gentoo"*''', color='5 7', ascii=r""" ${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}.` `-//////:--. """) hyfetch-1.99.0/hyfetch/distros/gentoo_small.py000066400000000000000000000003741470626616500214430ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt gentoo_small = AsciiArt(match=r'''"gentoo_small"''', color='5 7', ascii=r""" ${c1} _-----_ ( \ \ 0 \ ${c2} \ ) / _/ ( _- \____- """) hyfetch-1.99.0/hyfetch/distros/ghostbsd.py000066400000000000000000000005531470626616500205740ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ghostbsd = AsciiArt(match=r'''"GhostBSD"*''', color='4', ascii=r""" ${c1} ,gggggg. ,agg9* .g) .agg* ._.,gg* ,gga* (ggg*' ,ga* ,ga* ,ga' .ag* ,ga' .agga' 9g' .agg'g*,a 'gggg*',gga' .gg*' .gga* .gga* (ga* """) hyfetch-1.99.0/hyfetch/distros/glaucus.py000066400000000000000000000011041470626616500204130ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt glaucus = AsciiArt(match=r'''"glaucus"*''', color='5', ascii=r""" ${c1} ,, ,d88P ,d8P ,ad8888* ,888P d88888* ,,ad8888P* d d888P a88888P* ,ad8888888* .d8 d8888: d888888* ,d888888P* .888; 88888b d8888888b8888888P d8888J888888a88888888888888P* ,d 88888888888888888888888888P ,,d8* 888888888888888888888888888888888* *8888888888888888888888888888888* Y888888888P* `*``*888888888888* *^888^* *Y888P** """) hyfetch-1.99.0/hyfetch/distros/gnewsense.py000066400000000000000000000013111470626616500207460ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt gnewsense = AsciiArt(match=r'''"gNewSense"*''', color='4 5 7 6', ascii=r""" ${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+' """) hyfetch-1.99.0/hyfetch/distros/gnome.py000066400000000000000000000015161470626616500200640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt gnome = AsciiArt(match=r'''"GNOME"*''', color='4', ascii=r""" ${c1} ,@@@@@@@@, @@@@@@ @@@@@@@@@@@@ ,@@. @@@@@@@ *@@@@@@@@@@@@ @@@@@% @@@@@@( @@@@@@@@@@@& @@@@@@ @@@@* @@@@@@@@@# @@@@* @@@@, *@@@@@% @@@@@. @@@@# @@@@@@@@@@@@@@@@ ,@@@@@@@@@@@@@@@@@@@@@@@, ,@@@@@@@@@@@@@@@@@@@@@@@@@@& .@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@( @@@@@@@@@@@@@@@@@@@@% @@@@@@@@@@@@@@@@ @@@@@@@@@@@@* @@@@@@@@/ &@@@@@@@@@@ @@@@@@@@@* @@@@@@@@@@@, @@@@@@@@@* ,@@@@@@@@@@@@@@@@@@@@& &@@@@@@@@@@@@@@ ... """) hyfetch-1.99.0/hyfetch/distros/gnu.py000066400000000000000000000012631470626616500175470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt gnu = AsciiArt(match=r'''"GNU"*''', color='fg 7', ascii=r""" ${c1} _-`````-, ,- '- . .' .- - | | - -. `. /.' / `. \ :/ : _... ..._ `` : :: : /._ .`:'_.._\. || : :: `._ ./ ,` : \ . _.'' . `:. / | -. \-. \_ / \:._ _/ .' .@) \@) ` `\ ,.' _/,--' .- .\,-.`--`. ,'/'' (( \ ` ) /'/' \ `-' ( '/'' `._,-----' ''/' .,---' ''/' ;: ''/'' ''/ ''/''/'' '/'/' `; """) hyfetch-1.99.0/hyfetch/distros/gobolinux.py000066400000000000000000000004721470626616500207650ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt gobolinux = AsciiArt(match=r'''"GoboLinux"*''', color='5 4 6 2', ascii=r""" ${c1} _____ _ / ____| | | | | __ ___ | |__ ___ | | |_ |/ _ \| '_ \ / _ \ | |__| | (_) | |_) | (_) | \_____|\___/|_.__/ \___/ """) hyfetch-1.99.0/hyfetch/distros/grapheneos.py000066400000000000000000000017551470626616500211170ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt grapheneos = AsciiArt(match=r'''"GrapheneOS"*''', color='7 4', ascii=r""" ${c1} B? G~ G~& G!^:^?# &^.:::.J &PG& #G5JJ7~^~?JY5B& #PG B5JJPGJ77YG5JYP# && &B5JYPGJ7?YG5JYP# &Y..::.:P& &?..::.:G #!::::? B~::::J B~J# B!?# !P 75 !P 75 !5 7Y &Y~:^!P &J~:^!P P..::.:B Y..::.:# #PYJJ~^^!JJYP# &B5YJ?~^^!JJYG# &YYG# && #PYJ5G5??JGGYJ5G& && #PYP B^.::..7& J::::^G #Y^G& B~ G! # """) hyfetch-1.99.0/hyfetch/distros/grombyang.py000066400000000000000000000016011470626616500207370ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt grombyang = AsciiArt(match=r'''"Grombyang"*''', color='4 2 1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/guix.py000066400000000000000000000006721470626616500177350ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt guix = AsciiArt(match=r'''"Guix"*''', color='3 7 6 1 8', ascii=r""" ${c1} .. `. `--..```..` `..```..--` .-:///-:::. `-:::///:-. ````.:::` `:::.```` -//:` -::- ://: -::- `///- .:::` -+++-:::. :+/:::- `-....` """) hyfetch-1.99.0/hyfetch/distros/guix_small.py000066400000000000000000000004411470626616500211170ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt guix_small = AsciiArt(match=r'''"guix_small"*''', color='3 7 6 1 8', ascii=r""" ${c1}|.__ __.| |__ \ / __| \ \ / / \ \ / / \ \ / / \ \/ / \__/ """) hyfetch-1.99.0/hyfetch/distros/haiku.py000066400000000000000000000011471470626616500200600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt haiku = AsciiArt(match=r'''"Haiku"*''', color='1 3 7 2', ascii=r''' ${c3} MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM${c4} .ciO| /YMMMMM*" ${c3} MMMM${c4} .cOMMMMM|/MMMMM/` , ,iMM|/MMMMMMMMMMMMMMM* `*.__,-cMMMMMMMMMMMMMMMMM/`${c3}.MMM MM${c4}MMMMMMM/`:MMM/ ${c3}MMMM MMMM MMMM MMMM MMMM """" """" ''') hyfetch-1.99.0/hyfetch/distros/haiku_small.py000066400000000000000000000004531470626616500212470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt haiku_small = AsciiArt(match=r'''"haiku_small"*''', color='2 8', ascii=r""" ${c1} ,^, / \ *--_ ; ; _--* \ '" "' / '. .' .-'" "'-. '-.__. .__.-' |_| """) hyfetch-1.99.0/hyfetch/distros/hamonikr.py000066400000000000000000000020521470626616500205630ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt hamonikr = AsciiArt(match=r'''"HamoniKR"*''', color='4 7 99 1 3 7', ascii=r""" ${c1} cO0Ox. .ldddddddo. .lddddddddddo 'lddddddddddddc ,oddddddddddddd; 'ldddddddddddddo. .oddddddddddddddc. ,dddddddddddddddo. ,ccoooooooocoddooo: ,cooooooooooooooooop ${c3} c000x. ${c1}.cooooooooooooooopcllll${c3} .cddddddo. ${c1}coooooooooooooop' .qlll.${c3} .ddoooooooo; ${c1}cooooooooooc; ${c3}'qlllp. .ddoooooooooo; ${c1}.cooooooc; ${c3}'lllbc...coooooooooooo; ${c1} .cooc' ${c3}.llllcoooooooooooooo. .coooooooooooooop: .coooooooooooooop' .cooooooooooooop. .cooooooooooooop. .coooooooooooop. .cooooooooooop. .cooooooooop. .cooooop' """) hyfetch-1.99.0/hyfetch/distros/hardclanz.py000066400000000000000000000021701470626616500207220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt hardclanz = AsciiArt(match=r'''"HarDClanZ"*''', color='4 7 1', ascii=r""" ${c1} ........::::.... ::################::.. :########################:. :######**###################: :###${c2}&&&&^${c1}############ ${c2}&${c1}#######: :#${c2}&&&&&${c1}.:##############:${c2}^&o${c1}`:###: :#${c2}&&&&${c1}.:#################:.${c2}&&&${c1}`###: :##${c2}&^${c1}:######################:${c2}^&&${c1}::##: :#############################:${c2}&${c1}:##:: :##########${c2}@@${c1}###########${c2}@@${c1}#####:.###: :#########${c2}@@${c3}o${c2}@@${c1}#########${c2}@@${c3}o${c2}@@${c1}########: :#######:${c2}@@${c3}o${c5}0${c3}o${c2}@@@@${c1}###${c2}@@@@${c3}o${c5}0${c3}o${c2}@@${c1}######: : :######:${c2}@@@${c3}o${c2}@@@@@@${c1}V${c2}@@@@@@${c3}o${c2}@@@${c1}######: :#####:${c2}@@@@@@@@@@@@@@@@@@@${c1}:####; :####:.${c2}@@@@@@@@@@@@@@@@${c1}:#####: `:####:.${c2}@@@@@@@@@@@@@@${c1}:#####: ``:##:.${c2}@@@@@@@@@@@@${c1}^## # : : ## ${c2}\@@@;@@@/ ${c1}:: # : ${c2} VVV """) hyfetch-1.99.0/hyfetch/distros/hash.py000066400000000000000000000006711470626616500177030ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt hash = AsciiArt(match=r'''"Hash"*''', color='123', ascii=r""" ${c1} + ###### + ### ###### ### ##### ###### ##### ###### ###### ###### ####### '"###### '"######## ####### ###### ######## ####### ###### ######## ###### '"###### '"###### ##### ###### ##### ### ###### ### ~ ###### ~ """) hyfetch-1.99.0/hyfetch/distros/huayra.py000066400000000000000000000013631470626616500202500ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt huayra = AsciiArt(match=r'''"Huayra"*''', color='4 7', ascii=r""" ${c2} ` . . ` `` - . . `.` -` `. - `` .` ..`-`-` + - / .` ``` .--.+--`+:- :/.` .-``.` -+/so::h:.d-`./:`.` :hNhyMomy:os-...-. ```` .dhsshNmNhoo+:-``.``` ${c1}`ohy:-${c2}NMds+::-.`` ````${c1}.hNN+`${c2}mMNho/:-....```` ````` `../dmNhoo+/:..`` ```` .dh++o/:....` .+s/` `/s-.-.:.`` ```` ::` `::`..` .` `.. `` """) hyfetch-1.99.0/hyfetch/distros/hybrid.py000066400000000000000000000016261470626616500202420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt hybrid = AsciiArt(match=r'''"Hybrid"*''', color='4 12', ascii=r""" ${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}######## """) hyfetch-1.99.0/hyfetch/distros/hydroos.py000066400000000000000000000007361470626616500204510ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt hydroos = AsciiArt(match=r'''"HydroOS"*''', color='1 2 3 4 5', ascii=r""" ${c1} _ _ _ ____ _____ | | | | | | / __ \ / ____| | |__| |_ _ __| |_ __ ___ | | | | (___ | __ | | | |/ _` | '__/ _ \| | | |\___ \ | | | | |_| | (_| | | | (_) | |__| |____) | |_| |_|\__, |\__,_|_| \___/ \____/|_____/ __/ | |___/ """) hyfetch-1.99.0/hyfetch/distros/hyperbola.py000066400000000000000000000012651470626616500207450ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt hyperbola = AsciiArt(match=r'''"Hyperbola"*''', color='8', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/hyperbola_small.py000066400000000000000000000004051470626616500221300ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt hyperbola_small = AsciiArt(match=r'''"hyperbola_small"*''', color='8', ascii=r""" ${c1} |`__.`/ \____/ .--. / \ / ___ \ / .` `.\ /.` `.\ """) hyfetch-1.99.0/hyfetch/distros/iglunix.py000066400000000000000000000005551470626616500204400ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt iglunix = AsciiArt(match=r'''"iglunix"*|"iglu"*''', color='8', ascii=r""" ${c1} | | | | | ________ | /\ | \ / \ | \ | / \ \ | / \________\ \ / / \ / / \ / / \/________/ """) hyfetch-1.99.0/hyfetch/distros/instantos.py000066400000000000000000000014751470626616500210050ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt instantos = AsciiArt(match=r'''"instantOS"*''', color='4 6', ascii=r""" ${c1} 'cx0XWWMMWNKOd:'. .;kNMMMMMMMMMMMMMWNKd' 'kNMMMMMMWNNNWMMMMMMMMXo. ,0MMMMMW0o;'..,:dKWMMMMMWx. OMMMMMXl. .xNMMMMMNo WMMMMNl .kWWMMMMO' MMMMMX; oNWMMMMK, NMMMMWo .OWMMMMMK, kWMMMMNd. ,kWMMMMMMK, 'kWMMMMWXxl:;;:okNMMMMMMMMK, .oXMMMMMMMWWWMMMMMMMMMMMMK, 'oKWMMMMMMMMMMMMMMMMMMMK, .;lxOKXXXXXXXXXXXXXXXO;...... ................,d0000000kd:. .kMMMMMMMMMW0; .kMMMMMMMMMMMX .xMMMMMMMMMMMW cXMMMMMMMMMM0 :0WMMMMMMNx, .o0NMWNOc. """) hyfetch-1.99.0/hyfetch/distros/interix.py000066400000000000000000000015751470626616500204460ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt interix = AsciiArt(match=r'''"Interix"*''', color='1 7 4 0 3', ascii=r""" ${c1} .${c3}. ${c1} 75${c3}G! ${c1} ^?PG${c3}&&J. ${c1} :!5GPP${c3}&&&B! ${c1} :YPPPPP${c3}&&&&&Y: ${c1} !5PPPPPP${c3}&&&&&&B! ${c1} :?PPPPPPPP${c3}&&&&&&&&Y~ ${c1} !5PPPPPPPPP${c3}###&&&&&&B7 ${c1} :?PPPP5555555${c3}B####&&&&&&5: ${c1} ~5PPPP555YJ${c5}7!~7?${c3}5B###&&&&&B?. ${c1} .:JPPPP5555Y${c5}?^....:^?${c3}G####&&&&&5: ${c1} 75PPP555555Y${c5}7:....:^!${c3}5#####&&&&&B7. ${c1} :JPPPP${c2}555555YY?${c5}~::::^~${c2}7YPGBB###${c3}&&&&&5^ ${c1}75${c2}GGPPPPPP555555YJ?77??YYYYYY55PPGGB#${c3}&B? ${c2}~!!7JY5PGGBBBBBBBBGGGGGGGBGGGGGP5YJ?7~~~ .::^~7?JYPGBB#BGPYJ?7!7^:. ..:^... """) hyfetch-1.99.0/hyfetch/distros/irix.py000066400000000000000000000015421470626616500177310ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt irix = AsciiArt(match=r'''"IRIX"*''', color='4 7', ascii=r""" ${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. """) hyfetch-1.99.0/hyfetch/distros/ironclad.py000066400000000000000000000010251470626616500205450ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ironclad = AsciiArt(match=r'''"Ironclad"*''', color='5 7 0', ascii=r""" ${c3} &#BGPPPPPG#& B5?77!!?YJJ7!7YBB& &G5YJ77!7JYYYYYBPJ&PY# #PYYYYYY?!?YYYYY7?7JP5JJ B?YYYYYY7!!7JYYYYJ!!?JJJ5 && B7?J?77?7!!!!!77777!7Y5YYBBPGGG& G77?YBB!!!!!!!!!!!!!JYJ??7JYJJY# PYPPG& J777JB?!7JJ???!!!7?JYYYYYPJ!7JB GYYG #JJJJJ??7!!!JYYY5PGB&GB& #Y!?GB5YYJY5PG###& GJJP """) hyfetch-1.99.0/hyfetch/distros/itc.py000066400000000000000000000012161470626616500175330ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt itc = AsciiArt(match=r'''"Itc"*''', color='1', ascii=r""" ${c1}....................-==============+... ${c1}....................-==============:... ${c1}...:===========-....-==============:... ${c1}...-===========:....-==============-... ${c1}....*==========+........-::********-... ${c1}....*===========+.:*====**==*+-.-...... ${c1}....:============*+-..--:+**====*---... ${c1}......::--........................::... ${c1}..+-:+-.+::*:+::+:-++::++-.:-.*.:++:++. ${c1}..:-:-++++:-::--:+::-::.:++-++:++--:-:. ⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ """) hyfetch-1.99.0/hyfetch/distros/januslinux.py000066400000000000000000000021351470626616500211550ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt januslinux = AsciiArt(match=r'''"januslinux"*|"janus"*|"Ataraxia Linux"*|"Ataraxia"*''', color='4 5 6 2', ascii=r""" ${c1} 'l: loooooo loooo coooool looooooooooooooooooool looooooooooooooooo lool cooo coooooooloooooooo clooooo ;lood cloooo :loooocooo cloo loooo loooo :ooooool loooo looo cooooo cooooo looooooooooooo ;loooooo ${c2}looooooc ${c1}looooooooo loo cloooooool ${c2}looooc ${c1} cooo cooooooooooo ${c2}looolooooool ${c1} cooo: ${c2}coooooooooooooooooool loooooooooooolc: loooc; cooo: loooooooooooc ;oool looooooo: coool olc, looooc ,, coooooc loc :oooool, coool:, looool:, looool: ooooooooooooooo: cooolc .ooooooooooool """) hyfetch-1.99.0/hyfetch/distros/kaisen.py000066400000000000000000000014601470626616500202270ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kaisen = AsciiArt(match=r'''"Kaisen"*''', color='1 7 3', ascii=r""" ${c1} ` `:+oyyho. `+:`sdddddd/ `+` :ho oyo++ohds-` .ho :dd. .: `sddddddhhyso+/- ody.ddd-:yd- +hysssyhddddddddho` yddddddhddd` ` `--` -+hddddddh. hddy-+dddddy+ohh/..+sddddy/:::+ys :ddd/sdddddddddd- oddddddd ` `yddddddddddddddd/ /ddddddd/ :. :ydddddddddddddddddo..sddddddy/` odhdddddddo- `ddddh+-``....-+hdddddds. -ddddddhd: /dddo -ydddddddhdddddddd- /hdy:o - `:sddds .`./hdddddddddddddo `/- `+hddyosy+ :dddddddy-.-od/ :sydds -hddddddd` / .+shd- `:ohddddddddd` `:+ooooooooooooo: """) hyfetch-1.99.0/hyfetch/distros/kali.py000066400000000000000000000016661470626616500177050ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kali = AsciiArt(match=r'''"Kali"*''', color='4 8', ascii=r""" ${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 .' . """) hyfetch-1.99.0/hyfetch/distros/kali_small.py000066400000000000000000000006261470626616500210700ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kali_small = AsciiArt(match=r'''"kali_small" | "kalilinux_small" | "kali_linux_small"''', color='4 8', ascii=r""" ${c1} -#. # @### -###### @######### =##. .##### ## ## ## ## ## # ## @### ##. ### ##% ##- -##% -* :*##+ :*#* -# @ : """) hyfetch-1.99.0/hyfetch/distros/kaos.py000066400000000000000000000012051470626616500177070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kaos = AsciiArt(match=r'''"KaOS"*''', color='4 7 1', ascii=r""" ${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.. """) hyfetch-1.99.0/hyfetch/distros/kde.py000066400000000000000000000015341470626616500175220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kde = AsciiArt(match=r'''"KDE"*''', color='2 7', ascii=r""" ${c1} `..---+/---..` `---.`` `` `.---.` .--.` `` `-:-. `:/: `.----//----.` :/- .:. `---` `--.` .:` .:` `--` .:- `:. `/ `:. `.-::-.` -:` `/` /. /. `:++++++++:` .: .: `/ .: `+++++++++++/ /` `+` /+` -- .++++++++++++` :. .+: `/ .: `+++++++++++/ /` `+` /` /. `:++++++++:` .: .: ./ `:. `.:::-.` -:` `/` .:` `--` .:- `:. .:. `---` `--.` .:` `:/: `.----//----.` :/- .-:.` `` `-:-. `---.`` `` `.---.` `..---+/---..` """) hyfetch-1.99.0/hyfetch/distros/kibojoe.py000066400000000000000000000013311470626616500203740ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kibojoe = AsciiArt(match=r'''"Kibojoe"*''', color='2 7 4', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/kogaion.py000066400000000000000000000013061470626616500204030ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kogaion = AsciiArt(match=r'''"Kogaion"*''', color='4 7 1', ascii=r""" ${c1} ;; ,; ;;; ,;; ,;;;; ;;;; ,;;;;;;;; ;;;; ;;;;;;;;;;; ;;;;; ,;;;;;;;;;;;; ';;;;;, ;;;;;;;;;;;;;;, ';;;;;;; ;;;;;;;;;;;;;;;;;, ';;;;; ; ';;;;;;;;;;;;;;;;;;, ;;; ;;;, ';;;;;;;;;;;;;;;;;;;,;; ;;;;;, ';;;;;;;;;;;;;;;;;;, ;;;;;;;;, ';;;;;;;;;;;;;;;;, ;;;;;;;;;;;;, ';;;;;;;;;;;;;; ';;;;;;;;;;;;; ';;;;;;;;;;;;; ';;;;;;;;;;;;;, ';;;;;;;;;;; ';;;;;;;;;;;;; ;;;;;;;;;; ';;;;;;;;;;;; ;;;;;;;; ';;;;;;;; ;;;;;; ';;;;; ;;;; ';;; ;; """) hyfetch-1.99.0/hyfetch/distros/korora.py000066400000000000000000000014661470626616500202600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt korora = AsciiArt(match=r'''"Korora"*''', color='4 7 1', ascii=r""" ${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}` ``````````` """) hyfetch-1.99.0/hyfetch/distros/krassos.py000066400000000000000000000025351470626616500204460ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt krassos = AsciiArt(match=r'''"KrassOS"* | "Krass"*''', color='4 7', ascii=r""" ${c1} ${c2}**@@@@@@@@@@@* ${c2},@@@@%${c1}(((((((((((((${c2}%@@@@, ${c2}#@@&${c1}(((((((((((((((((((((((${c2}&@@% ${c2}@@&${c1}(((((((((((((((((((((((((((((${c2}@@@ ${c2}@@&${c1}(((((((((((((((((((((((((((((((((${c2}&@@ ${c2}.@@${c1}(((((((((((((((((((((((((((((((((((((${c2}@@. ${c2}@@${c1}(((((((((((((((((((((((((((((((((((((((${c2}@@ ${c2}@@#${c1}(((((((((((((((((((((((((((((${c2}%@@@@@@@#${c1}(#${c2}@@ ${c2}.@@${c1}((((((((((((((((${c2}#%@@@@@@@@@&%#${c1}((((${c2}%@&${c1}((((${c2}@@. ${c2}.@@${c1}(((((((/(${c2}&@@@@@@%${c1}(/((((((((((((((${c2}@@/${c1}(((((${c2}@@. ${c2}.@@${c1}(///////////////////////////////${c2}@${c1}(///////${c2}@@ ${c2}%@#${c1}/////////////////////////////(${c2}#${c1}////////${c2}%@% ${c2} @@${c1}(///////////////////////////${c2}%${c1}/////////(${c2}@@ ${c2}@@#${c1}***********************************${c2}%@@ ${c2}*@@${c1}********************************${c2}/@@/ ${c2},@@#${c1}***************************${c2}%@@* ${c2}@@@&${c1}********************${c2}/@@@@ ${c2}&@@@@&${c1}(//***//(${c2}&@@@@& ${c1} ${c2}**@@@@@@@@@@@* """) hyfetch-1.99.0/hyfetch/distros/kslinux.py000066400000000000000000000006501470626616500204520ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kslinux = AsciiArt(match=r'''"KSLinux"*''', color='4 7 1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/kubuntu.py000066400000000000000000000022501470626616500204500ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt kubuntu = AsciiArt(match=r'''"Kubuntu"*''', color='4 7 1', ascii=r""" ${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/:.` """) hyfetch-1.99.0/hyfetch/distros/lainos.py000066400000000000000000000026041470626616500202430ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt lainos = AsciiArt(match=r'''"LainOS"*''', color='4 14 7 2 3 5', ascii=r""" ${c2} /==\ \==/ ${c1} · · · · · · · · · · · · · · · · · · · · ${c2}.-======-.${c1}· · · · ${c2} .::.${c1} ·${c2}.-============-.${c1}· ${c2}.::. .:==:${c1}· ${c2}.:===:'${c1}. ·· .${c2}':===:.${c1} ·${c2}:==:. .:===:${c1} · ${c2}:===.${c1} · ${c3}.--.${c1} · ${c2}.===:${c1} · ${c2}:===:. :===:${c1}· · ${c2}:===.${c1} · ${c3}.:====:.${c1} · ${c2}.===:${c1} · ·${c2}:===: (===:${c1}· · ${c2}:===-${c1} · ${c3}:======:${c1} · ${c2}-===:${c1} · ·${c2}:===) :===:${c1}· · ${c2}:===.${c1} · ${c3}':====:'${c1} · ${c2}.===:${c1} · ·${c2}:===: ':===:${c1} · ${c2}:===.${c1} · ${c3}'--'${c1} · ${c2}.===:${c1} · ${c2}:===:' ':==:${c1}· ${c2}':===:.${c1}' ·· '${c2}.:===:'${c1} ·${c2}:==:' '::'${c1} · ${c2}'===-. .-==='${c1} · ${c2}'::' ${c2}/==\${c1} · · · ${c2}:=== ===:${c1} · · · ${c2}/==\ \==/${c1} · · ·${c2}:===${c1} ·${c2}===:${c1}· · · ${c2}\==/${c2} .-. ${c1}· ${c2}:===${c1}· ${c2}===:${c1} ·${c2} ${c2}.-. .===. .=== ===. .===. .======== ========. ''''' ''''' """) hyfetch-1.99.0/hyfetch/distros/langitketujuh.py000066400000000000000000000011511470626616500216300ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt langitketujuh = AsciiArt(match=r'''"LangitKetujuh"*''', color='4 2', ascii=r""" ${c1} . 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMML7 MM. 'MMMMMMMMMMMMMMMMMMMMMMMMMMML7L7 MMMMMM MMMMMMML7L7L7L7L7L7L7L7L7L7 L7MMMM L7L7L7 L7L7MM 'L7L7L7L7L7L7L7L7L7L: L7L7L7 'L7L7L7L7L7L7L::: L7L7L7 'L7L7L7:::::: :7L7L7 :::::: ::L7L7L7L7L7L7L7L7L7L::::::. :::::: :::::7L7L7L7L7L7:::::::::::::::. ':: :::::::::::::::::::::::::::::::::::. ' ${c2} """) hyfetch-1.99.0/hyfetch/distros/langitketujuh_old.py000066400000000000000000000014431470626616500224720ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt langitketujuh_old = AsciiArt(match=r'''"LangitKetujuh_old"''', color='7 4', ascii=r""" ${c1} L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L 'L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L L7L. 'L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L7L7L7L7L7L7L7L7L L7L7L7L 'L7L7L7L7L7L7L7L7L7L L7L7L7L 'L7L7L7L7L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L. 'L7L L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L. L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L ${c2} """) hyfetch-1.99.0/hyfetch/distros/laxeros.py000066400000000000000000000014361470626616500204350ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt laxeros = AsciiArt(match=r'''"LaxerOS"*''', color='7 4', ascii=r""" ${c2} /. `://:- `//////: .////////:` -//////////:` -/////////////` :///////////////. `://////.```-//////- `://///:` .//////- `//////: `//////: .//////- `://///:` -//////- `://///:` -//////. ://////` ://////` -//////. `/////:` ./////: .-::-` .:::-` .:://////////////////////////////////::. //////////////////////////////////////// .:////////////////////////////////////:. """) hyfetch-1.99.0/hyfetch/distros/lede.py000066400000000000000000000005001470626616500176600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt lede = AsciiArt(match=r'''"LEDE"*''', color='4 7 1', ascii=r""" ${c1} _________ / /\ / LE / \ / DE / \ /________/ LE \ \ \ DE / \ LE \ / \ DE \ / \________\/ """) hyfetch-1.99.0/hyfetch/distros/libreelec.py000066400000000000000000000022141470626616500207010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt libreelec = AsciiArt(match=r'''"LibreELEC"*''', color='2 3 7 14 13', ascii=r""" ${c1} :+ooo/. ${c2}./ooo+: ${c1} :+ooooooo/. ${c2}./ooooooo+: ${c1} :+ooooooooooo:${c2}:ooooooooooo+: ${c1} :+ooooooooooo+- ${c2}-+ooooooooooo+: ${c1} :+ooooooooooo+- ${c3}-- ${c2}-+ooooooooooo+: ${c1}.+ooooooooooo+- ${c3}:+oo+: ${c2}-+ooooooooooo+- ${c1}-+ooooooooo+- ${c3}:+oooooo+: ${c2}-+oooooooooo- ${c1} :+ooooo+- ${c3}:+oooooooooo+: ${c2}-+oooooo: ${c1} :+o+- ${c3}:+oooooooooooooo+: ${c2}-+oo: ${c4} ./ ${c3}:oooooooooooooooooo: ${c5}/. ${c4} ./oo+: ${c3}-+oooooooooooooo+- ${c5}:+oo/. ${c4} ./oooooo+: ${c3}-+oooooooooo+- ${c5}:+oooooo/. ${c4}-oooooooooo+: ${c3}-+oooooo+- ${c5}:+oooooooooo- ${c4}.+ooooooooooo+: ${c3}-+oo+- ${c5}:+ooooooooooo+. ${c4} -+ooooooooooo+: ${c3}.. ${c5}:+ooooooooooo+- ${c4} -+ooooooooooo+: ${c5}:+ooooooooooo+- ${c4} -+oooooooooo+:${c5}:+oooooooooo+- ${c4} -+oooooo+: ${c5}:+oooooo+- ${c4} -+oo+: ${c5}:+oo+- ${c4} .. ${c5}.. """) hyfetch-1.99.0/hyfetch/distros/linspire.py000066400000000000000000000017721470626616500206100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linspire = AsciiArt(match=r'''"Linspire"* | "Freespire"* | "Lindows"*''', color='4 2', ascii=r""" ${c2} __^ ${c2} __/ \ ${c2} MMy dMy __/ \ ${c2} dMMy MMy ${c1}MM${c2} \ ${c2} MMMy ,, ${c1}dMMMMn ${c2}\ ${c2} dMMy dMM dMMMMMMy ${c1}dMM MM dMMMMMy dMM MM.nMMM dMMMMMM ${c1}MMM ${c2}MMy MMy MMy ${c1}dMM MMy MMy MMy MMy dy dMy ${c1}MMM ${c2}dMM dMM MMy ${c1}dMMMMy dMM dMM dMM dMM dMMMMMMM ${c2} dMMy MMy MMy MMy ${c1}dMMy MM MMy MMy MMy dMM ${c2}dMMy dMM dMM dMM ${c1}dMM MMy dMMMMMy dMM dMM MMy MM ${c2}MMMMMMMMMM MMy MMy MMy ${c1}dMMMyyy MMy MMy MMy dMMMMMMy ${c2} ${c1}dy """) hyfetch-1.99.0/hyfetch/distros/linux.py000066400000000000000000000011151470626616500201110ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linux = AsciiArt(match=r'''"Linux"''', color='fg 8 3', ascii=r""" ${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}##### """) hyfetch-1.99.0/hyfetch/distros/linux_lite.py000066400000000000000000000010111470626616500211210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linux_lite = AsciiArt(match=r'''"Linux Lite"* | "Linux_Lite"*''', color='3 7', ascii=r""" ${c1} ,xXc .l0MMMMMO .kNMMMMMWMMMN, KMMMMMMKMMMMMMo 'MMMMMMNKMMMMMM: kMMMMMMOMMMMMMO .MMMMMMX0MMMMMW. oMMMMMMxWMMMMM: WMMMMMNkMMMMMO :MMMMMMOXMMMMW .0MMMMMxMMMMM; :;cKMMWxMMMMO 'MMWMMXOMMMMl kMMMMKOMMMMMX: .WMMMMKOWMMM0c lMMMMMWO0MNd:' oollXMKXoxl;. ':. .: .' .. . """) hyfetch-1.99.0/hyfetch/distros/linux_mint.py000066400000000000000000000020441470626616500211420ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linux_mint = AsciiArt(match=r'''"Linux Mint"* | "LinuxMint"* | "mint"*''', color='2 7', ascii=r""" ${c2} ...-:::::-... ${c2} .-MMMMMMMMMMMMMMM-. .-MMMM${c1}`..-:::::::-..`${c2}MMMM-. .:MMMM${c1}.:MMMMMMMMMMMMMMM:.${c2}MMMM:. -MMM${c1}-M---MMMMMMMMMMMMMMMMMMM.${c2}MMM- `:MMM${c1}:MM` :MMMM:....::-...-MMMM:${c2}MMM:` :MMM${c1}:MMM` :MM:` `` `` `:MMM:${c2}MMM: .MMM${c1}.MMMM` :MM. -MM. .MM- `MMMM.${c2}MMM. :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM: :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM:${c2}MMM: :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM: .MMM${c1}.MMMM` :MM:--:MM:--:MM: `MMMM.${c2}MMM. :MMM${c1}:MMM- `-MMMMMMMMMMMM-` -MMM-${c2}MMM: :MMM${c1}:MMM:` `:MMM:${c2}MMM: .MMM${c1}.MMMM:--------------:MMMM.${c2}MMM. '-MMMM${c1}.-MMMMMMMMMMMMMMM-.${c2}MMMM-' '.-MMMM${c1}``--:::::--``${c2}MMMM-.' ${c2} '-MMMMMMMMMMMMM-' ${c2} ``-:::::-`` """) hyfetch-1.99.0/hyfetch/distros/linux_mint_old.py000066400000000000000000000015721470626616500220050ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linux_mint_old = AsciiArt(match=r'''"Linux Mint Old"* | "LinuxMintOld"* | "mint_old"*''', color='2 7', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/linux_small.py000066400000000000000000000005401470626616500213020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linux_small = AsciiArt(match=r'''"Linux_small"''', color='fg 8 3', ascii=r""" ${c2} ___ ${c2} (${c1}.. ${c2}| ${c2} (${c3}<> ${c2}| ${c2} / ${c1}__ ${c2}\ ${c2} ( ${c1}/ \ ${c2}/| ${c3}_${c2}/\ ${c1}__)${c2}/${c3}_${c2}) ${c3}\/${c2}-____${c3}\/ """) hyfetch-1.99.0/hyfetch/distros/linuxfromscratch.py000066400000000000000000000023251470626616500223510ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linuxfromscratch = AsciiArt(match=r'''"LinuxFromScratch" | *"LFS" | "linux-from-scratch" | "linux_from_scratch"''', color='fg 8 3', ascii=r""" ${c2} .:@:. ${c2} :@@@@@@@: ${c2} @@@@@@@@@- ${c2} .:%. @@@@@@@@@+. @% ${c2} *@@@%+: :@@@@@@@%=: .=%@@@@@@= ${c2} :@@@@@@##@@@@@@@@@%*+%@%+@@@@@@@+ ${c2} @@#${c1}####${c2}+@@@@@@@%:${c1}######${c2}=@@@@@@@@@- ${c2} *@%${c1}######${c2}.@@@@@#${c1}#########${c2}-@@@@@@@@#. ${c2} %@-${c1}#${c2}.@${c1}=${c2}:${c1}##${c2}+@@@@-${c1}###${c2}%@${c1}:${c2}=${c1}###${c2}*@#*+=-+#: ${c2} @@.${c1}#${c2}@@*${c1}=${c2}:${c1}#${c2}-%%**-${c1}##${c2}%@@%${c1}*${c2}*${c1}###${c2}#=- ${c2} @@-${c1}#${c2}@@@@+.-${c3}...${c2}:=.${c1}#${c2}%@@@@%${c1}###${c2}#- ${c2} %@%${c1}##${c2}*#:${c3}.o.....o...${c2}-%@+${c1}###${c2}#@+ -: ${c2} +@@*${c1}#${c3}....................${c2}+@@@@@@@@+ ${c2} @%:${c3}....................._:${c2}@@@@@@@=. ${c2} .=:${c3}...............__*-=`.${c2}=@@@@@@#=. ${c2} :+:${c3}....:==*__*-=`:..==-:${c2}#@@@@@%+: ${c2} .--=-: ${c3}+..::.....-: ${c2}=%@*=: ${c2} :........- ${c2} .:...--. """) hyfetch-1.99.0/hyfetch/distros/linuxlite_small.py000066400000000000000000000004231470626616500221600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linuxlite_small = AsciiArt(match=r'''"linuxlite_small"*''', color='3 7', ascii=r""" ${c1} /\ / \ / ${c2}/ ${c1}/ > ${c2}/ ${c1}/ \ ${c2}\ ${c1}\ \_${c2}\${c1}_\ ${c2} \ """) hyfetch-1.99.0/hyfetch/distros/linuxmint_small.py000066400000000000000000000005071470626616500221750ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt linuxmint_small = AsciiArt(match=r'''"linuxmint_small"*''', color='2 7', ascii=r""" ${c1} ___________ |_ \ | ${c2}| _____ ${c1}| | ${c2}| | | | ${c1}| | ${c2}| | | | ${c1}| | ${c2}\__${c2}___/ ${c1}| \_________/ """) hyfetch-1.99.0/hyfetch/distros/live_raizo.py000066400000000000000000000013461470626616500211230ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt live_raizo = AsciiArt(match=r'''"Live Raizo"* | "Live_Raizo"*''', color='3', ascii=r""" ${c1} `......` -+shmNMMMMMMNmhs/. :smMMMMMmmhyyhmmMMMMMmo- -hMMMMd+:. `----` .:odMMMMh- `hMMMN+. .odNMMMMMMNdo. .yMMMMs` hMMMd. -dMMMMmdhhdNMMMNh` .mMMMh oMMMm` :MMMNs.:sddy:-sMMMN- `NMMM+ mMMMs dMMMo sMMMMMMd yMMMd sMMMm ----` .---` oNMMMMMh `---. .---- .sMMy: /MM/ +dMMms. hMMMMMMN `dMMMMMMm: .+ss+sMNysMMoomMd+ss+. +MMMMMMN` +MM/ hMMMMMNs sMMMMMMm-hNMMMd-hMMMMMMd :yddh+`hMMMMMMN :yddy/` .hMMMMd: `..` """) hyfetch-1.99.0/hyfetch/distros/lmde.py000066400000000000000000000013121470626616500176720ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt lmde = AsciiArt(match=r'''"LMDE"*''', color='2 7', ascii=r""" ${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}:+-. `--.`` """) hyfetch-1.99.0/hyfetch/distros/lubuntu.py000066400000000000000000000022601470626616500204520ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt lubuntu = AsciiArt(match=r'''"Lubuntu"*''', color='4 7 1', ascii=r""" ${c1} `.:/ossyyyysso/:. `.:yyyyyyyyyyyyyyyyyy:.` .:yyyyyyyyyyyyyyyyyyyyyyyy:. .:yyyyyyyyyyyyyyyyyyyyyyyyyyyy:. -yyyyyyyyyyyyyy${c2}+hNMMMNh+${c1}yyyyyyyyy- :yy${c2}mNy+${c1}yyyyyyyy${c2}+Nmso++smMdhyysoo+${c1}yy: -yy${c2}+MMMmmy${c1}yyyyyy${c2}hh${c1}yyyyyyyyyyyyyyyyyyy- .yyyy${c2}NMN${c1}yy${c2}shhs${c1}yyy${c2}+o${c1}yyyyyyyyyyyyyyyyyyyy. :yyyy${c2}oNM+${c1}yyyy${c2}+sso${c1}yyyyyyy${c2}ss${c1}yyyyyyyyyyyyy: :yyyyy${c2}+dNs${c1}yyyyyyy${c2}++${c1}yyyyy${c2}oN+${c1}yyyyyyyyyyyy: :yyyyy${c2}oMMmhysso${c1}yyyyyyyyyy${c2}mN+${c1}yyyyyyyyyyy: :yyyyyy${c2}hMm${c1}yyyyy${c2}+++${c1}yyyyyyy${c2}+MN${c1}yyyyyyyyyyy: .yyyyyyy${c2}ohmy+${c1}yyyyyyyyyyyyy${c2}NMh${c1}yyyyyyyyyy. -yyyyyyyyyy${c2}++${c1}yyyyyyyyyyyy${c2}MMh${c1}yyyyyyyyy- :yyyyyyyyyyyyyyyyyyyyy${c2}+mMN+${c1}yyyyyyyy: -yyyyyyyyyyyyyyyyy${c2}+sdMMd+${c1}yyyyyyyy- .:yyyyyyyyy${c2}hmdmmNMNdy+${c1}yyyyyyyy:. .:yyyyyyy${c2}my${c1}yyyyyyyyyyyyyyy:. `.:yyyy${c2}s${c1}yyyyyyyyyyyyy:.` `.:/oosyyyysso/:.` """) hyfetch-1.99.0/hyfetch/distros/lunar.py000066400000000000000000000011161470626616500200740ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt lunar = AsciiArt(match=r'''"Lunar"*''', color='4 7 3', ascii=r""" ${c1}`-. `-. -ohys/-` `:+shy/` -omNNdyo/` :+shmNNy/` ${c3} - /mMmo hMMMN` .NMMs ${c1} -:+oooo+//: ${c3}/MN${c1}. -///oooo+/-` /:.` ${c3}/${c1} `.:/` ${c3} __ | | _ _ ___ ___ ___ | |__| | | | .'| _| |_____|___|_|_|__,|_| """) hyfetch-1.99.0/hyfetch/distros/mac.py000066400000000000000000000012351470626616500175150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mac = AsciiArt(match=r'''"mac"* | "Darwin"''', color='2 3 1 1 5 4', ascii=r""" ${c1} c.' ,xNMM. .OMMMMo lMM" .;loddo:. .olloddol;. cKMMMMMMMMMMNWMMMMMMMMMM0: ${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd. XMMMMMMMMMMMMMMMMMMMMMMMX. ${c3};MMMMMMMMMMMMMMMMMMMMMMMM: :MMMMMMMMMMMMMMMMMMMMMMMM: ${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX. kMMMMMMMMMMMMMMMMMMMMMMMMWd. ${c5}'XMMMMMMMMMMMMMMMMMMMMMMMMMMk 'XMMMMMMMMMMMMMMMMMMMMMMMMK. ${c6}kMMMMMMMMMMMMMMMMMMMMMMd ;KMMMMMMMWXXWMMMMMMMk. "cooc*" "*coo'" """) hyfetch-1.99.0/hyfetch/distros/mac_small.py000066400000000000000000000004451470626616500207070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mac_small = AsciiArt(match=r'''"mac"*"_small"''', color='2 3 1 5 4', ascii=r""" ${c1} .:' _ :'_ ${c2} .'`_`-'_``. :________.-' ${c3}:_______: :_______: ${c4} :_______`-; ${c5} `._.-._.' """) hyfetch-1.99.0/hyfetch/distros/macaronios.py000066400000000000000000000032441470626616500211120ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt macaronios = AsciiArt(match=r'''"MacaroniOS"* | "Macaroni OS"*''', color='2 3 15 14', ascii=r""" ${c2} -=+++==--::.. .-+++==-:. .:--:-=++==-:. :=*+=--==+***######**+-: .---:-===-----===+++==-:.. :=+=--=+*****+++*****#%%%#- .=*********+++========+++++=--:. .:-=+++++++=-:.. .=*=::. :-=-. .:::---===+++++++++++*******++====+**+++=-:. :+*-.. .. -++ ..:--==+***********=:. -*= . :+. . ${c3}...${c2} .:--===:. .++ .*: . ${c3}:+#%%@@%%#=: ${c2}-- ${c2}-= ${c3}-#@@@@@@@@@@@@#: ${c2}. ${c3}:*%@%%@@@@@@@@@@@%+ .:--====-:. :*%%%%%%%%%@@@@@@@@@*. :=*#%%%%@@@@@%#+- .*%%%%%%%%%%%%%@@#+--=- -*%%%%%%%%%%%@@@@@%#= -#%%%%%%%%%%%%%#: :+: :+%*#%%%%%%%%%%%%%%%%%*. +%%%%%%%%%%%%%%: .#*: *+-*%%%%%%%%%%%%%%%%%+ +%%%%%%%%%%%%%# . . . :%%%%%%%%%%%%%%%%%#. =#%%%%%%%%%%%%# . . =%%%%%%%%%%%%%%%%%*. .*%%%%%%%%%%%%%* : =%%%%%%%%%%%%%%%%%#- :#%%%%%%%%%%%%%#=.... .=*%%%%%%%%%%%%%%%%%%*: :*%@@%%%%%%%%%%%%#+. :+#%%%%%%%%%%%%%#*- =*%%@@%%%%%%%#*- .-=+**##**+=: :=*######+=: """) hyfetch-1.99.0/hyfetch/distros/mageia.py000066400000000000000000000011361470626616500202000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mageia = AsciiArt(match=r'''"Mageia"*''', color='6 7', ascii=r""" ${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,. """) hyfetch-1.99.0/hyfetch/distros/mageia_small.py000066400000000000000000000003531470626616500213700ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mageia_small = AsciiArt(match=r'''"mageia_small"*''', color='6 7', ascii=r""" ${c1} * * ** ${c2} /\__/\ / \ \ / \____/ """) hyfetch-1.99.0/hyfetch/distros/magix.py000066400000000000000000000014161470626616500200630ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt magix = AsciiArt(match=r'''"Magix"*''', color='206 39', ascii=r""" ${c2} @ @@--=====@@ @@--==@@ @@====+@ @-@@ @==@ @=@ @=@${c1} @=@ @-==== @=@${c2} @=@${c1} @-===@==++@===+@${c2} @=@${c1} @--====@@=====+@${c2} -=@${c1} @--==========++@${c2} ==${c1} @--==========++@${c2} @=@ @==${c1} @--=======@==++@${c2} @=+@ @==${c1} @-==========++${c2} @=@ @==${c1} @-=======@=%${c2} @=@ @==${c1} @@@@@@${c2} @=@ @====@@@ @@===+% @@=====@@==++++@@ =#@=@ @==@++@ @@@ """) hyfetch-1.99.0/hyfetch/distros/magpieos.py000066400000000000000000000016021470626616500205570ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt magpieos = AsciiArt(match=r'''"MagpieOS"*''', color='2 1 3 5', ascii=r""" ${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. """) hyfetch-1.99.0/hyfetch/distros/mainsailos.py000066400000000000000000000014731470626616500211200ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mainsailos = AsciiArt(match=r'''"MainsailOS"*''', color='1', ascii=r""" ${c1} - *%: :%%%# =%%%%%- *%%%%%%# :#%%%%%%%#. -%%%%%%%%+ *%%%%%%%%- : .#%%%%%%%#. *%= -%%%%%%%%+ :#%%%* +%%%%%%%%- =%%%%%%#. .#%%%%%%%#. *%%%%%%%%: -%%%%%%%%* :#%%%%%%%#. +%%%%%%%%- =%%%%%%%%+ :%*. .#%%%%%%%#: *%%%%%%%%- +%%%%*: :%%%%%%%%* :#%%%%%%%#. .*%%%%%%%* +%%%%%%%%= -%%%%%%%%+ :%%%%%%%%* .#%%%%%%%%: *%%%%%%%%- =%%%%%%%%= """) hyfetch-1.99.0/hyfetch/distros/mainsailos_small.py000066400000000000000000000004441470626616500223050ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mainsailos_small = AsciiArt(match=r'''"MainsailOS_small"*''', color='1', ascii=r""" ${c1} -: +%* .#%%+ -%%%: += +%%#..#%%- .#%%+ -%%%- += -%%%- +%%#..#%%+ """) hyfetch-1.99.0/hyfetch/distros/mandriva.py000066400000000000000000000014331470626616500205560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mandriva = AsciiArt(match=r'''"Mandriva"* | "Mandrake"*''', color='4 3', ascii=r""" ${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}` """) hyfetch-1.99.0/hyfetch/distros/manjaro.py000066400000000000000000000023371470626616500204100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt manjaro = AsciiArt(match=r'''"Manjaro"*''', color='2 7', ascii=r""" ${c1}██████████████████ ████████ ██████████████████ ████████ ██████████████████ ████████ ██████████████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ """) hyfetch-1.99.0/hyfetch/distros/manjaro_small.py000066400000000000000000000004361470626616500215760ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt manjaro_small = AsciiArt(match=r'''"manjaro_small"*''', color='2 7', ascii=r""" ${c1}||||||||| |||| ||||||||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| """) hyfetch-1.99.0/hyfetch/distros/massos.py000066400000000000000000000012741470626616500202650ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt massos = AsciiArt(match=r'''"MassOS"*''', color='7', ascii=r""" ${c1} -+++/+++osyyhdmNNMMMMNdy/ /MMMMMMMMMMMMMMMMMMMMMMMMm. /MMMMMMMMMMMMMMMMMMMMMMMMMm /MMMMMMMMMMMMMMMMMMMMMMMMMM: :ddddddddhddddddddhdddddddd/ /NNNNNNNm:NNNNNNNN-NNNNNNNNo /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs :MMMMMMMN:MMMMMMMM-MMMMMMMMs dMMMMMMN:MMMMMMMM-MMMMMMMMs `yNMMMMN:MMMMMMMM-MMMMMMMMs `:+oss.ssssssss.ssssssss/ """) hyfetch-1.99.0/hyfetch/distros/matuusos.py000066400000000000000000000052331470626616500206370ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt matuusos = AsciiArt(match=r'''"MatuusOS"*''', color='9 11 0', ascii=r""" ${c2} ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░▒▓▓████▓▒▒░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░▒▓████████████▓░░░░░░░░░░░░░░ ░░░░░░░░░░░░▓████████████████▒░░░░░░░░░░░░ ░░░░░░░░░░░▓██████████████████▒░░░░░░░░░░░ ░░░░░░░░░░▓████▒▓███████▓▓█████░░░░░░░░░░░ ░░░░░░░░░░██████▓░▓████▒░██████▓░░░░░░░░░░ ░░░░░░░░░▒███████▓░▒▓▒░░████████░░░░░░░░░░ ░░░░░░░░░▒█████████▒░░░█████████░░░░░░░░░░ ░░░░░░░░░░██████████▓▒██████████░░░░░░░░░░ ░░░░░░░░░░▓████████████████████▒░░░░░░░░░░ ░░░░░░░░░░░███████████████████▓░░░░░░░░░░░ ░░░░░░░░░░░░█████████████████▓░░░░░░░░░░░░ ░░░░░░░░░░░░░▓██████████████▒░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░▒▓████████▓░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ """) hyfetch-1.99.0/hyfetch/distros/maui.py000066400000000000000000000015771470626616500177210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt maui = AsciiArt(match=r'''"Maui"*''', color='6 7', ascii=r""" ${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+:. `.-://////:-.` """) hyfetch-1.99.0/hyfetch/distros/mauna.py000066400000000000000000000012711470626616500200560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mauna = AsciiArt(match=r'''"Mauna"*''', color='4 6', ascii=r""" ${c1} .. :-=++++=-: .-+*+ -********* **= =***= +******+ =---=+*. +**** +****+ :-=++*++=-- =****= **** :+***********+: +****+ *** ${c2}.-- ${c1}+******- =*****: *- ${c2}:+=: ${c1}=*****: ${c2}. ${c1}+*****: : ${c2}-+++ ${c1}:****= ${c2}-+ ${c1}:*****+ ${c2}- ++++ ${c1}:***- ${c2}-++=: ${c1}=+****: ${c2}:++ +++++ ${c1}**+ ${c2} +++++= ${c1}-====-${c2}++++: +++++ ${c1}*+ ${c2} .=++++++++++++++: ${c2}+++++= ${c1}. ${c2} .=+++++++++= :=+++++= .:::--- -+++++++- :-==++==-. """) hyfetch-1.99.0/hyfetch/distros/meowix.py000066400000000000000000000012061470626616500202630ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt meowix = AsciiArt(match=r'''"Meowix"*''', color='1 3 3 4', ascii=r""" ${c1} #${c2}% ${c3}&${c4}* ${c1} ##${c2}%% ${c3}&&${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%%${c3}&& ${c4}** ${c1} ## ${c2}%% ${c4}** ${c1} ## ${c4}** ${c1}## ${c4}** """) hyfetch-1.99.0/hyfetch/distros/mer.py000066400000000000000000000020611470626616500175360ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mer = AsciiArt(match=r'''"Mer"*''', color='4 7 1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/minix.py000066400000000000000000000014571470626616500201070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt minix = AsciiArt(match=r'''"Minix"*''', color='1 7 3', ascii=r""" ${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-` """) hyfetch-1.99.0/hyfetch/distros/miracle_linux.py000066400000000000000000000010421470626616500216040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt miracle_linux = AsciiArt(match=r'''"MIRACLE LINUX"* | "MIRACLE_LINUX"*''', color='29', ascii=r""" ${c1} ,A .### .#' .#### .#. r##: :#### ####. +###; :#### ######C :####: #### ,######".#. .# :####. :### #####'.#####. ##: `####. ### ###'.########+. #### `####::## ##'.#######+' ####+.`###i## #',####:' `+###MI`##### 'l###:' `+####+`### ;#E' `+###:## #' `:### ' '## '; """) hyfetch-1.99.0/hyfetch/distros/mx.py000066400000000000000000000015321470626616500174010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mx = AsciiArt(match=r'''"MX"*''', color='4 6 7', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/mx_small.py000066400000000000000000000003671470626616500205760ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt mx_small = AsciiArt(match=r'''"mx_small"*''', color='4 6 7', ascii=r""" ${c3} \\ / \\/ \\ /\/ \\ / \ /\ / \/ \ /__________\ """) hyfetch-1.99.0/hyfetch/distros/namib.py000066400000000000000000000016371470626616500200510ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt namib = AsciiArt(match=r'''"Namib"*''', color='1', ascii=r""" ${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+:. """) hyfetch-1.99.0/hyfetch/distros/nekos.py000066400000000000000000000017741470626616500201040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nekos = AsciiArt(match=r'''"NekOS"*''', color='3 7 1', ascii=r""" ${c1} @@@@@ @@@@@@@@@. @@@@@@@@ @@@ @@@@@@@@@@@ @@. @@@@@@@@@@@@@ . @@@@@@@@@@@@@@@@@ , @@@@@@@@@@@@@@@@@@@ @@@@@${c2}///${c1}@@@@@@@${c2}///${c1}@@@ @@@@${c2}/***${c1}@@@@@@@${c2}**//${c1}@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@ @@@/ /@@@@@@@@@/ /@@@ @@@@@@ @@@${c3}██${c1}@@@@ @@@@@@ @@@@@@/ /@${c2}██${c3}██${c2}██${c1}@@/ /@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ ##########%%%% ##########%% %% @ @@@#######@@%%% @@@ @@@@####@@@@ % @@@ @@@@@@@#@@@@@@@ @@@ @@@@@@@@@@@@@@@ @@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ """) hyfetch-1.99.0/hyfetch/distros/neptune.py000066400000000000000000000014441470626616500204350ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt neptune = AsciiArt(match=r'''"Neptune"*''', color='7', ascii=r""" ${c1} ./+sydddddddys/-. .+ymNNdyooo/:+oooymNNmy/` `/hNNh/.` `-+dNNy:` /mMd/. .++.:oy/ .+mMd- `sMN/ oMMmdy+. `oNNo `hMd. `/ymy/. :NMo oMN- `/dMd: /MM- `mMy -dMN+` mMs .MMo -NMM/ yMs dMh mMMMo:` `NMo /MM/ /ymMMMm- sMN. +Mm: .hMMd` oMN/ +mNs. `yNd/` -dMm- .yMNs: `/.` `/yNNo` .odNNy+-` .:ohNNd/. -+ymNNmdyyyyyyydmNNmy+. `-//sssssss//. """) hyfetch-1.99.0/hyfetch/distros/netbsd.py000066400000000000000000000011011470626616500202240ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt netbsd = AsciiArt(match=r'''"NetBSD"*''', color='5 7', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/netbsd_small.py000066400000000000000000000005031470626616500214210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt netbsd_small = AsciiArt(match=r'''"netbsd_small"*''', color='5 7', ascii=r""" ${c2}\\${c1}\`-______,----__ ${c2} \\ ${c1}__,---\`_ ${c2} \\ ${c1}\`.____ ${c2} \\${c1}-______,----\`- ${c2} \\ \\ \\ """) hyfetch-1.99.0/hyfetch/distros/netrunner.py000066400000000000000000000016401470626616500207750ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt netrunner = AsciiArt(match=r'''"Netrunner"*''', color='4 7 1', ascii=r""" ${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+-` """) hyfetch-1.99.0/hyfetch/distros/nitrux.py000066400000000000000000000007701470626616500203110ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nitrux = AsciiArt(match=r'''"Nitrux"*''', color='4', ascii=r""" ${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+- """) hyfetch-1.99.0/hyfetch/distros/nixos.py000066400000000000000000000034411470626616500201160ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nixos = AsciiArt(match=r'''"NixOS"*''', color='4 6', ascii=r""" ${c1} ▗▄▄▄ ${c2}▗▄▄▄▄ ▄▄▄▖ ${c1} ▜███▙ ${c2}▜███▙ ▟███▛ ${c1} ▜███▙ ${c2}▜███▙▟███▛ ${c1} ▜███▙ ${c2}▜██████▛ ${c1} ▟█████████████████▙ ${c2}▜████▛ ${c1}▟▙ ${c1} ▟███████████████████▙ ${c2}▜███▙ ${c1}▟██▙ ${c2} ▄▄▄▄▖ ▜███▙ ${c1}▟███▛ ${c2} ▟███▛ ▜██▛ ${c1}▟███▛ ${c2} ▟███▛ ▜▛ ${c1}▟███▛ ${c2}▟███████████▛ ${c1}▟██████████▙ ${c2}▜██████████▛ ${c1}▟███████████▛ ${c2} ▟███▛ ${c1}▟▙ ▟███▛ ${c2} ▟███▛ ${c1}▟██▙ ▟███▛ ${c2} ▟███▛ ${c1}▜███▙ ▝▀▀▀▀ ${c2} ▜██▛ ${c1}▜███▙ ${c2}▜██████████████████▛ ${c2} ▜▛ ${c1}▟████▙ ${c2}▜████████████████▛ ${c1} ▟██████▙ ${c2}▜███▙ ${c1} ▟███▛▜███▙ ${c2}▜███▙ ${c1} ▟███▛ ▜███▙ ${c2}▜███▙ ${c1} ▝▀▀▀ ▀▀▀▀▘ ${c2}▀▀▀▘ """) hyfetch-1.99.0/hyfetch/distros/nixos_colorful.py000066400000000000000000000035311470626616500220230ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nixos_colorful = AsciiArt(match=r'''"nixos_colorful"*''', color='4 6 4 6 4 6', ascii=r""" ${c1} ▗▄▄▄ ${c2}▗▄▄▄▄ ▄▄▄▖ ${c1} ▜███▙ ${c2}▜███▙ ▟███▛ ${c1} ▜███▙ ${c2}▜███▙▟███▛ ${c1} ▜███▙ ${c2}▜██████▛ ${c1} ▟█████████████████▙ ${c2}▜████▛ ${c3}▟▙ ${c1} ▟███████████████████▙ ${c2}▜███▙ ${c3}▟██▙ ${c6} ▄▄▄▄▖ ${c2}▜███▙ ${c3}▟███▛ ${c6} ▟███▛ ${c2}▜██▛ ${c3}▟███▛ ${c6} ▟███▛ ${c2}▜▛ ${c3}▟███▛ ${c6}▟███████████▛ ${c3}▟██████████▙ ${c6}▜██████████▛ ${c3}▟███████████▛ ${c6} ▟███▛ ${c5}▟▙ ${c3}▟███▛ ${c6} ▟███▛ ${c5}▟██▙ ${c3}▟███▛ ${c6} ▟███▛ ${c5}▜███▙ ${c3}▝▀▀▀▀ ${c6} ▜██▛ ${c5}▜███▙ ${c4}▜██████████████████▛ ${c6} ▜▛ ${c5}▟████▙ ${c4}▜████████████████▛ ${c5} ▟██████▙ ${c4}▜███▙ ${c5} ▟███▛▜███▙ ${c4}▜███▙ ${c5} ▟███▛ ▜███▙ ${c4}▜███▙ ${c5} ▝▀▀▀ ▀▀▀▀▘ ${c4}▀▀▀▘ """) hyfetch-1.99.0/hyfetch/distros/nixos_old.py000066400000000000000000000040221470626616500207500ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nixos_old = AsciiArt(match=r'''"nixos_old"*''', color='4 6', ascii=r""" ${c1} ____ ${c2}_______ ____ ${c1} /####\ ${c2}\######\ /####\ ${c1} ######\ ${c2}\######\ /#####/ ${c1} \######\ ${c2}\######\ /#####/ ${c1} \######\ ${c2}\######\/#####/ ${c1}/\ ${c1} \######\ ${c2}\###########/ ${c1}/##\ ${c1} ________\######\______${c2}\#########/ ${c1}/####\ ${c1} /#######################${c2}\#######/ ${c1}/###### ${c1} /#########################${c2}\######\ ${c1}/######/ ${c1} /###########################${c2}\######\ ${c1}/######/ ${c1} ¯¯¯¯¯¯¯¯¯¯¯¯${c2}/######/${c1}¯¯¯¯¯¯¯¯¯${c2}\######${c1}/######/ ${c2} /######/ ${c2}\####${c1}/######/________ ${c2} _____________/######/ ${c2}\##${c1}/################\ ${c2} /###################/ ${c2}\${c1}/##################\ ${c2} \##################/${c1}\ /###################/ ${c2} \################/${c1}##\ /######/¯¯¯¯¯¯¯¯¯¯¯¯¯ ${c2} ¯¯¯¯¯¯¯¯/######/${c1}####\ /######/ ${c2} /######/${c1}######\${c2}_________${c1}/######/${c2}____________ ${c2} /######/ ${c1}\######\${c2}###########################/ ${c2} /######/ ${c1}\######\${c2}#########################/ ${c2} ######/ ${c1}/#######\${c2}#######################/ ${c2} \####/ ${c1}/#########\${c2}¯¯¯¯¯¯\######\¯¯¯¯¯¯¯¯ ${c2} \##/ ${c1}/###########\${c2} \######\ ${c2} \/ ${c1}/#####/\######\${c2} \######\ ${c1} ${c1}/#####/ \######\${c2} \######\ ${c1} ${c1}/#####/ \######\${c2} \###### ${c1} ${c1}\####/ \######\${c2} \####/ ${c1} ${c1}¯¯¯¯ ¯¯¯¯¯¯¯${c2} ¯¯¯¯ """) hyfetch-1.99.0/hyfetch/distros/nixos_small.py000066400000000000000000000004131470626616500213020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nixos_small = AsciiArt(match=r'''"nixos_small"''', color='4 6', ascii=r""" ${c1} \\ \\ // ==\\__\\/ // // \\// ==// //== //\\___// // /\\ \\== // \\ \\ """) hyfetch-1.99.0/hyfetch/distros/nobara.py000066400000000000000000000044671470626616500202310ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nobara = AsciiArt(match=r'''"Nobara"*''', color='"#999999" "#d80a0a" "#e5b90b"', ascii=r""" ${c1} ⢀⣤⣴⣶⣶⣶⣦⣤⡀⠀⣀⣠⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠉⠁⠀⠀⠉⠉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀${c3}⢀⣀⣀⡀${c1}⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀${c3}⢠⣾⣿⣿⣿⣿⣷⡄${c1}⠀⠀⠀⠻⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀${c3}⣿⣿⣿⣿⣿⣿⣿⡇${c1}⠀⠀⠀⠀⠀⣀⣀⣬⣽⣿⣿⣿⣿⣿⣿⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀${c3}⠈⠻⢿⣿⣿⡿⠟⠁${c1}⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠉⠛⠛⢿⣿⣿⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀ ${c2} ⠘⢿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀ ${c2} ⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠉⠁ """) hyfetch-1.99.0/hyfetch/distros/nomadbsd.py000066400000000000000000000007611470626616500205470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nomadbsd = AsciiArt(match=r'''"NomadBSD"*''', color='4', ascii=r""" ${c1} _======__ (===============\ (===================\ _ _---__ (= ====- (= ====== (== ====== (== ====== (==\ \=-_ _=/ /====/ (==\ \========/ /====/ /====-_ (==\ \=====/ /==/ /===-- /================/ /===- \===========/ """) hyfetch-1.99.0/hyfetch/distros/nurunner.py000066400000000000000000000013751470626616500206360ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nurunner = AsciiArt(match=r'''"Nurunner"*''', color='4', ascii=r""" ${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. """) hyfetch-1.99.0/hyfetch/distros/nutyx.py000066400000000000000000000015631470626616500201500ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt nutyx = AsciiArt(match=r'''"NuTyX"*''', color='4 1', ascii=r""" ${c1} . . ... ... .... .........--. ..-++-----....--++++++---. .-++++++-. .-++++++++++++-----.. .--... .++..-+++--.....-++++++++++--.. . .-+-. .**- .... ..-+----.. .+++. .*+. + -++-----. .+++++- ++. .*+. .....-+++-----. -+++-++. .+. .-+***++***++--++++. . -+-. -- -. -*- ...... ..--. .-. .+- . -+. . .+- +. -- -- -+----. .- -++-.+. . .++. -- +. ----. . .+. .. - . . """) hyfetch-1.99.0/hyfetch/distros/obarun.py000066400000000000000000000012471470626616500202460ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt obarun = AsciiArt(match=r'''"Obarun"*''', color='6 6 7 1', ascii=r""" ${c1} ,;::::; ;cooolc;, ,coool; ,loool, loooo; :ooool cooooc ,:ccc; looooc :oooooool cooooo ;oooooooooo, :ooooo; :ooooooooooo oooooo oooooooooooc :oooooo :ooooooooool loooooo ;oooooooool looooooc .coooooooc cooooooo: ,;co; ,ooooooool; ,:loc cooooooooooooloooooc ;ooooooooooooool; ;looooooolc; """) hyfetch-1.99.0/hyfetch/distros/obrevenge.py000066400000000000000000000010601470626616500207250ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt obrevenge = AsciiArt(match=r'''"OBRevenge"*''', color='1 7 3', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/omnios.py000066400000000000000000000007511470626616500202630ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt omnios = AsciiArt(match=r'''"OmniOS"*''', color='15 3 8', ascii=r""" ${c1} ____ __ __ _ _ _ / __ \ | \/ || \ | || | | | | || || \| || | | |__| || |\/| || , `${c2}_${c1}||${c2}_${c1}| ${c2}____${c1} \____/ |_| |_||_|\${c2}/ __ \ / ___| | | | ||(__ ${c3}community${c2} | |__| | ___)| ${c3}edition${c2} \____/ |____/ """) hyfetch-1.99.0/hyfetch/distros/open_source_media_center.py000066400000000000000000000017021470626616500237740ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt open_source_media_center = AsciiArt(match=r'''"Open Source Media Center"* | "osmc"''', color='4 7 1', ascii=r""" ${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+- """) hyfetch-1.99.0/hyfetch/distros/openbsd.py000066400000000000000000000017621470626616500204140ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openbsd = AsciiArt(match=r'''"OpenBSD"*''', color='3 7 6 1 8', ascii=r""" ${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 | `. ` |/`. `-. `._) / .-.\ \ ( `\ `.\ """) hyfetch-1.99.0/hyfetch/distros/openbsd_small.py000066400000000000000000000004521470626616500215770ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openbsd_small = AsciiArt(match=r'''"openbsd_small"''', color='3 7 6 1 8', ascii=r""" ${c1} _____ \- -/ \_/ \ | ${c2}O O${c1} | |_ < ) 3 ) / \ / /-_____-\ """) hyfetch-1.99.0/hyfetch/distros/openeuler.py000066400000000000000000000022751470626616500207600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openeuler = AsciiArt(match=r'''"openEuler"*''', color='4 7 1', ascii=r""" ${c1} `.cc.` ``.cccccccc..` `.cccccccccccccccc.` ``.cccccccccccccccccccccc.`` `..cccccccccccccccccccccccccccc..` `.ccccccccccccccc${c2}/++/${c1}ccccccccccccccccc.` .ccccccccccccccc${c2}mNMMNdo+oso+${c1}ccccccccccc. .cccccccccc${c2}/++odms+//+mMMMMm/:+syso/${c1}cccc .ccccccccc${c2}yNNMMMs:::/::+o+/:${c1}c${c2}dMMMMMm${c1}cccc .ccccccc${c2}:+NmdyyhNNmNNNd:${c1}ccccc${c1}${c2}:oyyyo:${c1}cccc .ccc${c2}:ohdmMs:${c1}cccc${c2}+mNMNmy${c1}ccccccccccccccccc .cc${c2}/NMMMMMo////:${c1}c${c2}:///:${c1}cccccccccccccccccc .cc${c2}:syysyNMNNNMNy${c1}ccccccccccccccccccccccc .cccccccc${c2}+MMMMMNy${c1}c${c2}:/+++/${c1}cccccccccccccccc .ccccccccc${c2}ohhhs/${c1}c${c2}omMMMMNh${c1}ccccccccccccccc .ccccccccccccccc${c2}:MMMMMMMM/${c1}cccccccccccccc .cccccccccccccccc${c2}sNNNNNd+${c1}cccccccccccccc. `..cccccccccccccccc${c2}/+/:${c1}cccccccccccccc..` ``.cccccccccccccccccccccccccccc.`` `.cccccccccccccccccccccc.` ``.cccccccccccccc.`` `.cccccccc.` `....` """) hyfetch-1.99.0/hyfetch/distros/openindiana.py000066400000000000000000000013711470626616500212430ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openindiana = AsciiArt(match=r'''"OpenIndiana"*''', color='4 7 1', ascii=r""" ${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+/-.` """) hyfetch-1.99.0/hyfetch/distros/openkylin.py000066400000000000000000000012721470626616500207660ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openkylin = AsciiArt(match=r'''"openKylin"*''', color='2 7', ascii=r""" ${c1} /KKK] KKKKKKK` ]KKKK\ KKKKK/ /KKKKKKKKK\ KKKK/ ,KKKKKKKKKKKK^ ,]KKK =KKK` /KKKKKKOOOOOO` ,KKKKKK =KK /` [\OOOOOOO\ \KKKKK =K ,OOOOOOO` ,KKKKK =^ \OOOOOO ,KKKK ^ OOOOOO^ *KKK^ =OOOOO^ OOKK^ OOOOOO^ \OOOK\ /OOOOOO` OOOOOO] ,OOOOOOO^ ,OOOOOOOO\] ,[OOOOOOOOO/ \OOOOOOOOOOOOOOOOOOOOO` [OOOOOOOOOOOOOOOO/` ,[OOOOOOOOO] """) hyfetch-1.99.0/hyfetch/distros/openmamba.py000066400000000000000000000017361470626616500207220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openmamba = AsciiArt(match=r'''"openmamba"*''', color='7 2', ascii=r""" ${c1} ````` .-/+ooooooooo+/:-` ./ooooooooooooooooooo+:. -+oooooooooooooooooooooooo+- .+ooooooooo+/:---::/+ooooooooo+. :oooooooo/-` `-/oo${c2}s´${c1}oooo.${c2}s´${c1} :ooooooo/` `${c2}sNds${c1}ooo${c2}sNds${c1} -ooooooo- ${c2}:dmy${c1}ooo${c2}:dmy${c1} +oooooo: :oooooo- .ooooooo .://:` :oooooo+ ./+o+:` -ooooooo` `oooooo+ `ooooooo: /oooooo+ -ooooooo: :ooooooo. :ooooooo+. .+ooooooo: :oooooooo+-` `-+oooooooo: .+ooooooooo+/::::://oooooooooo+. -+oooooooooooooooooooooooo+- .:ooooooooooooooooooo+:. `-:/ooooooooo+/:.` `````` """) hyfetch-1.99.0/hyfetch/distros/openmandriva.py000066400000000000000000000017471470626616500214500ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openmandriva = AsciiArt(match=r'''"OpenMandriva"*''', color='4', ascii=r""" ${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+:-` ``....`` """) hyfetch-1.99.0/hyfetch/distros/openstage.py000066400000000000000000000012661470626616500207460ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt openstage = AsciiArt(match=r'''"OpenStage"*''', color='2', ascii=r""" ${c1} /(/ .(((((((, /(((((((((/ .(((((/,/(((((, *(((((* ,(((((/ (((((* .*/(( *((((/ (//(/* /((((* ((((((((((, . /((((* (((((((((((((. ((. *((((/ ,(((((((( ,(((/ (((((/ ** ,((((((* /(((((. .(((((/ //(((* *(((((/ .(((((, ((/ .(((((/. .(((((, /((((* ,(((((((/ ,((((( /(((((((((((((((((((/. /(((((((((/ /(((((((((((((((((, /(((((((((((/ */(((((//*. */((/(/(/* """) hyfetch-1.99.0/hyfetch/distros/opensuse.py000066400000000000000000000017471470626616500206260ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt opensuse = AsciiArt(match=r'''"openSUSE"* | "open SUSE"* | "SUSE"*''', color='2 7', ascii=r""" ${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:^' """) hyfetch-1.99.0/hyfetch/distros/opensuse_leap.py000066400000000000000000000013121470626616500216130ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt opensuse_leap = AsciiArt(match=r'''"openSUSE Leap"* | "openSUSE_Leap"*''', color='2 7', ascii=r""" ${c2} `-++:` ./oooooo/- `:oooooooooooo:. -+oooooooooooooooo+-` ./oooooooooooooooooooooo/- :oooooooooooooooooooooooooo: ` `-+oooooooooooooooooooo/- ` `:oo/- .:ooooooooooooooo+:` `-+oo/. `/oooooo:. -/oooooooooo/. ./oooooo/. `:+ooooo+-` `:+oooo+- `:oooooo+:` .:oooooo/. .::` -+oooooo/. -/oooooo:. ./oooooo+- `:+ooooo+-:+oooooo:` ./oooooooooo/. -/oooo+:` `:/. """) hyfetch-1.99.0/hyfetch/distros/opensuse_small.py000066400000000000000000000004271470626616500220100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt opensuse_small = AsciiArt(match=r'''"opensuse_small" | "suse_small"*''', color='2 7', ascii=r""" ${c1} _______ __| __ \ / .\ \ \__/ | _______| \_______ __________/ """) hyfetch-1.99.0/hyfetch/distros/opensuse_tumbleweed.py000066400000000000000000000015561470626616500230410ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt opensuse_tumbleweed = AsciiArt(match=r'''"openSUSE Tumbleweed"* | "openSUSE_Tumbleweed"*''', color='2 7', ascii=r""" ${c2} ...... .,cdxxxoc,. .:kKMMMNWMMMNk:. cKMMN0OOOKWMMXo. A ;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' OMMM7' .XMK *WMO:. .;xNMMk' NNNMKl. .xWMx ^ONMMNXMMMKx; V 'xNMWKkxllox0NMWk' ''''' ':dOOXXKOxl' """) hyfetch-1.99.0/hyfetch/distros/opnsense.py000066400000000000000000000020351470626616500206060ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt opnsense = AsciiArt(match=r'''"OPNsense"*''', color='7 202', ascii=r""" ${c1} .''''''''''''''''''''''''''''''''''' oocc:::::::::::::::::::::::::::::::cox ;00; o0O .,:' .;;;;;;;;;;;;;;;;;;;;;;;;;; ;:, .',;;cxOOOOOOOOOOOOOOOOOOOOOOOkd:;;,.. .,cll:' ':llc,. ,;;:okxdxd: :dxdxko:;;, .xxxx0XNNK0O. .O0KNNX0xxxx. ,${c2}cc:${c1},. .,${c2}:cc${c1}, ........;${c2}ccc:${c1};. .;${c2}:ccc${c1};........ ${c2}ccccccccccccccc ccccccccccccccc${c1} ........;${c2}ccc:${c1};. .;${c2}:ccc${c1};........ ,${c2}cc:${c1},. .,${c2}:cc${c1}, .xxxx0XNNK0O. .O0KNNX0xxxx. ,;;:okxdxd: :dxdxko:;;, .,cll:' ':llc,. .,,;,ckOOOOOOOOOOOOOOOOOOOOOOOOx;,;,'. .:l' ........................... ;:; lOk' cdd ;lccccccccccccccccccccccccccccccccccc:. """) hyfetch-1.99.0/hyfetch/distros/oracle.py000066400000000000000000000010411470626616500202150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt oracle = AsciiArt(match=r'''"Oracle"*''', color='1 7 3', ascii=r""" ${c1} `-/+++++++++++++++++/-.` `/syyyyyyyyyyyyyyyyyyyyyyys/. :yyyyo/-...............-/oyyyy/ /yyys- .oyyy+ .yyyy` `syyy- :yyyo /yyy/ .yyyy` `syyy- /yyys. .oyyyo /yyyyo:-...............-:oyyyy/` `/syyyyyyyyyyyyyyyyyyyyyyys+. `.:/+ooooooooooooooo+/:.` """) hyfetch-1.99.0/hyfetch/distros/orchid.py000066400000000000000000000030051470626616500202220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt orchid = AsciiArt(match=r'''"orchid"*''', color='255 127 127', ascii=r""" ${c2} .==. .-${c3}#${c1}@@${c3}#${c2}-. .-${c3}##${c1}@@@@${c3}##${c2}-. .-${c3}##${c1}@@@@@@@@${c3}##${c2}-. :*${c1}@@@@@${c3}####${c1}@@@@@${c2}*: ..:*${c1}@@@@${c2}==--==${c1}@@@@${c2}*:.. .-*${c1}%%${c3}#${c2}==${c3}#${c1}@@${c3}#${c2}====${c3}#${c1}@@${c3}#${c2}==${c3}#${c1}%%${c2}*-. .-${c3}#${c1}@@@@@${c3}##${c2}==${c3}#${c1}@@${c2}++${c1}@@${c3}##${c2}==${c3}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c2}#${c1}@@@${c3}#${c2}++#====${c3}#${c2}++#${c1}@@@${c2}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c3}#${c2}-==**${c3}###${c2}+:--:+${c3}###${c2}**==-${c3}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c3}#${c2}-==**${c3}###${c2}+:--:+${c3}###${c2}**==-${c3}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c2}#${c1}@@@${c3}#${c2}++#====${c3}#${c2}++#${c1}@@@${c2}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c3}##${c2}==${c3}#${c1}@@${c2}++${c1}@@${c3}##${c2}==${c3}#${c1}@@@@@${c3}#${c2}-. .-*${c1}%%${c3}#${c2}==${c3}#${c1}@@${c3}#${c2}====${c3}#${c1}@@${c3}#${c2}==${c3}#${c1}%%${c2}*-. ..:*${c1}@@@@${c2}==--==${c1}@@@@${c2}*:.. :*${c1}@@@@@${c3}####${c1}@@@@@${c2}*: .-${c3}##${c1}@@@@@@@@${c3}##${c2}-. .-${c3}##${c1}@@@@${c3}##${c2}-. .-${c3}#${c1}@@${c3}#${c2}-. .==. """) hyfetch-1.99.0/hyfetch/distros/orchid_small.py000066400000000000000000000015721470626616500214210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt orchid_small = AsciiArt(match=r'''"orchid_small"*''', color='255 127', ascii=r""" ${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}#- :##: """) hyfetch-1.99.0/hyfetch/distros/os_elbrus.py000066400000000000000000000020471470626616500207540ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt os_elbrus = AsciiArt(match=r'''"OS Elbrus"*''', color='4 7 3', ascii=r""" ${c1} ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ ██ ██ ██ ███████ ███████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ ███████ ██ ██ ██ ██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██ ██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ ██ ██ ███████████████████████████ """) hyfetch-1.99.0/hyfetch/distros/pacbsd.py000066400000000000000000000021431470626616500202100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pacbsd = AsciiArt(match=r'''"PacBSD"*''', color='1 7 3', ascii=r""" ${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+/:. """) hyfetch-1.99.0/hyfetch/distros/panwah.py000066400000000000000000000023541470626616500202360ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt panwah = AsciiArt(match=r'''"Panwah"*''', color='7 1 0', ascii=r""" ${c1} HHH HAAAH HHH HAAAAH HAAAH HAAAAAAH HAAAAH HAAAAAAH HAAAAAH HAAAAAAAAH${c2}WWWWWWWWWWWWWWWW ${c1}HAAAAAH$ HAAAAAAAAH${c2}WWWWWWWWWWWWWWWWWWWW${c1} HAAAAAH HAA${c2}WWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}AAAAAH${c2} WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}WAH${c2} WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWW${c1}AAA${c2}WWWW WWWWWWWWWWWWWWWWWWWWWWWWWWW WWWW${c1}AAA${c2}WWWWW WWWWWWW WWWWWWWWWWWWWWW WW${c1}AAA${c2}WWWWWWWWWWWWWWWWW WWWWW${c1}AAA${c2}WWWWWWWW ${c1}AAA${c2}WWWWW${c1}OOOOOOOOOOO${C2}WWWWWWWWWWW${c1}AAA${c2}WWWWWW ${c1}OOOO${c3}GGGGGGG${c1}OOOO${c2}WWWWWWWWWW${c1}AAA${c2}WWWW ${c1}OOO${c3}GGGGGGG${c1}OOO${c2}WWWWWWWWWWWW${c1}AAA${c2}W ${c1}OOOOOOOOO """) hyfetch-1.99.0/hyfetch/distros/parabola.py000066400000000000000000000013161470626616500205360ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt parabola = AsciiArt(match=r'''"Parabola"*''', color='5 7', ascii=r""" ${c1} `.-. `. `.` `:++. `-+o+. `` `:+/. `:+/. `-+oooo+ ``-::-.:+/. `:+/. `-+oooooo+ `.-:///- ..` .-. `-+oooooooo- `..-..` `+ooooooooo: `` :oooooooo/ `ooooooo: `oooooo: -oooo+. +ooo/` -ooo- `+o/. /+- //` -. """) hyfetch-1.99.0/hyfetch/distros/parabola_small.py000066400000000000000000000004111470626616500217210ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt parabola_small = AsciiArt(match=r'''"parabola_small"*''', color='5 7', ascii=r""" ${c1} __ __ __ _ .`_//_//_/ / `. / .` / .` /.` /` """) hyfetch-1.99.0/hyfetch/distros/parch.py000066400000000000000000000017421470626616500200550ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt parch = AsciiArt(match=r'''"parch"* | "Parch"* | "PARCH"*''', color='4 7 1', ascii=r""" ${c1} ,:lodddd. .:clooood. ;clllooooc ;cclllllloo .cccccllllll . ,cccclllll ':::;; ccccclll; .:::cccccccccccll; ;::::ccccllllllcll: .;::::cccclllloool::; ;;;::::cccclllolc::::;. ;;;::::cccclllccc:::::;. ;;;::::cccclccccc::::::;. ;;;;::::::llcccccc:::::' ;;;;:; ,clllccccccc:: .;; .cllllllcccccc::;::::' .'''''''''',:lddoooolll '.....'''',cdddooooollll ........':oddddoooolllllc ....';ldddddooooolllllc: ,cdddddddooooollllccc :ddddddoooolllllccc ;ddooooolllllcc. :ooollllc. c' """) hyfetch-1.99.0/hyfetch/distros/pardus.py000066400000000000000000000015231470626616500202530ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pardus = AsciiArt(match=r'''"Pardus"*''', color='3 7 6 1 8', ascii=r""" ${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- : -+ `..` +- """) hyfetch-1.99.0/hyfetch/distros/parrot.py000066400000000000000000000016021470626616500202620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt parrot = AsciiArt(match=r'''"Parrot"*''', color='6 7', ascii=r""" ${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: -+ - """) hyfetch-1.99.0/hyfetch/distros/parsix.py000066400000000000000000000022171470626616500202640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt parsix = AsciiArt(match=r'''"Parsix"*''', color='3 1 7 8', ascii=r""" ${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}`.::-` """) hyfetch-1.99.0/hyfetch/distros/pcbsd.py000066400000000000000000000021521470626616500200470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pcbsd = AsciiArt(match=r'''"PCBSD"* | "TrueOS"*''', color='1 7 3', ascii=r""" ${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+++++++++++/- """) hyfetch-1.99.0/hyfetch/distros/pclinuxos.py000066400000000000000000000015701470626616500210030ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pclinuxos = AsciiArt(match=r'''"PCLinuxOS"*''', color='4 7 1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/pearos.py000066400000000000000000000013501470626616500202440ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pearos = AsciiArt(match=r'''"pearOS"*''', color='2 3 1 1 5 4', ascii=r""" \e[0;32m .+yh sMMMo sMMN+ +o: \e[0m \e[93m ./oyyys+. :dMMMMMMMMMm/ :MMMMMMMMMMMMMy yMMMMMMMMMMMMMN \e[0m \e[31m mMMMMMMMMMMMMs` yMMMMMMMMMMMMo -mMMMMMMMMMMMMM` oMMMMMMMMMMMMMMM` \e[0m \e[95m oMMMMMMMMMMMMMMMMy .MMMMMMMMMMMMMMMMMMy` +MMMMMMMMMMMMMMMMMMMMy/` /MMMMMMMMMMMMMMMMMMMMMMMNds \e[0m \e[34m `mMMMMMMMMMMMMMMMMMMMMMMMM/ .mMMMMMMMMMMMMMMMMMMMMMM+ `oNMMMMMMMMMMMMMMMMMMd- `+hMMMMMMMMMMMMMms- -/osyhhyso:. \e[0m """) hyfetch-1.99.0/hyfetch/distros/pengwin.py000066400000000000000000000012701470626616500204230ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pengwin = AsciiArt(match=r'''"Pengwin"*''', color='5 5 13', ascii=r""" ${c3} ...` ${c3} `-///:-` ${c3} .+${c2}ssys${c3}/ ${c3} +${c2}yyyyy${c3}o ${c2} ${c2} -yyyyyy: ${c2} `.:/+ooo+/:` -yyyyyy+ ${c2} `:oyyyyyys+:-.`syyyyyy: ${c2} .syyyyyyo-` .oyyyyyyo ${c2} `syyyyyy `-+yyyyyyy/` ${c2} /yyyyyy+ -/osyyyyyyo/. ${c2} +yyyyyy- `.-:::-.` ${c2} .yyyyyy- ${c3} :${c2}yyyyy${c3}o ${c3} .+${c2}ooo${c3}+ ${c3} `.::/:. """) hyfetch-1.99.0/hyfetch/distros/pentoo.py000066400000000000000000000020621470626616500202600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pentoo = AsciiArt(match=r'''"Pentoo"*''', color='5 7', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/peppermint.py000066400000000000000000000031111470626616500211330ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt peppermint = AsciiArt(match=r'''"Peppermint"*''', color='1 15 3', ascii=r""" ${c1} PPPPPPPPPPPPPP ${c1} PPPP${c2}MMMMMMM${c1}PPPPPPPPPPP ${c1} PPPP${c2}MMMMMMMMMM${c1}PPPPPPPP${c2}MM${c1}PP ${c1} PPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP${c2}MMMMM${c1}PP ${c1} PPPPPPPPPPPP${c2}MMMMMM${c1}PPPPPPP${c2}MMMMMMM${c1}PP ${c1} PPPPPPPPPPPP${c2}MMMMMMM${c1}PPPP${c2}M${c1}P${c2}MMMMMMMMM${c1}PP ${c1} PP${c2}MMMM${c1}PPPPPPPPPP${c2}MMM${c1}PPPPP${c2}MMMMMMM${c1}P${c2}MM${c1}PPPP ${c1} P${c2}MMMMMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPP${c2}MMMMMM${c1}PPPPPPPP ${c1} P${c2}MMMMMMMMMMMM${c1}PPPPP${c2}MM${c1}PP${c2}M${c1}P${c2}MM${c1}P${c2}MM${c1}PPPPPPPPPPP ${c1} P${c2}MMMMMMMMMMMMMMMM${c1}PP${c2}M${c1}P${c2}MMM${c1}PPPPPPPPPPPPPPPP ${c1} P${c2}MMM${c1}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP${c2}MMMMM${c1}P ${c1} PPPPPPPPPPPPPPPP${c2}MMM${c1}P${c2}M${c1}P${c2}MMMMMMMMMMMMMMMM${c1}PP ${c1} PPPPPPPPPPP${c2}MM${c1}P${c2}MM${c1}PPPP${c2}MM${c1}PPPPP${c2}MMMMMMMMMMM${c1}PP ${c1} PPPPPPPP${c2}MMMMMM${c1}PPPPP${c2}MM${c1}PPPPPP${c2}MMMMMMMMM${c1}PP ${c1} PPPP${c2}MM${c1}P${c2}MMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPPPPPPP${c2}MMMM${c1}PP ${c1} PP${c2}MMMMMMMMM${c1}P${c2}M${c1}PPPP${c2}MMMMMM${c1}PPPPPPPPPPPPP ${c1} PP${c2}MMMMMMM${c1}PPPPPPP${c2}MMMMMM${c1}PPPPPPPPPPPP ${c1} PP${c2}MMMM${c1}PPPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP ${c1} PP${c2}MM${c1}PPPPPPPP${c2}MMMMMMMMMM${c1}PPPP ${c1} PPPPPPPPPP${c2}MMMMMMMM${c1}PPPP ${c1} PPPPPPPPPPPPPP """) hyfetch-1.99.0/hyfetch/distros/peropesis.py000066400000000000000000000006371470626616500207730ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt peropesis = AsciiArt(match=r'''"Peropesis"*''', color='4 7 1', ascii=r""" ${c1}#### #### #### ### #### #### #### # #### # # # # # # # # # # # # # #### ### #### # # #### ### # # # # # # # # # # # # # # # #### # # ### # #### #### # #### """) hyfetch-1.99.0/hyfetch/distros/phyos.py000066400000000000000000000013011470626616500201110ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt phyos = AsciiArt(match=r'''"phyOS"*''', color='33 33 7 1', ascii=r""" ${c1}.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.^^^^^. :777777777777777777777777777777^~7777: .~~~~~~~~~~~~~~~~~~~~~^~7777!:!777!. ~7!!!!!!!!!!!!!!!!!^:!777~^!777~ ^77777!!!!!!!!!7!^^7777^^7777^ ^7777~.~~~~^. .~7777^~7777: :!777~^!777~. !777!:~777!: .!777!:~777!:~77~:!777!. ~777!^~7777:^~^!777~ ^7777^^7777^^7777^ :7777~^!7777777: .!777!:!7777!. .~777!:~77~. ~7777^~~ ^7777. :77: .. """) hyfetch-1.99.0/hyfetch/distros/pikaos.py000066400000000000000000000031171470626616500202440ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pikaos = AsciiArt(match=r'''"PikaOS"*''', color='11', ascii=r""" ${c1} '',,, ,,,d, ',, ,,' ', ,. ., ' . . ' . .. oddddkdlc:;,.. .. . ............lllc, . . ....................: . . . .................... '. ..........'o........d0XX0. ....lllllllcOOOcllllll............cxlxc...;okkkx. ..................................';lc'...lo. .'''''''''''''.....................,;,....... ',,,,,,,,,,,,,,,,''...............dkkkd...... ',,,,,,,,,,,,,,,,,,,'............;okkkd;.... .,,,,,,,,,,,,,,,,,,,,,............;cll;..... ,,,,,,,,,,,,,,,,,,,,'....................:d, ,,,,,,,,,,,,,,,,,,,....................oxxx: .,,,,,,,,,,,,,,,,,'..................oxxxxx. . .,,,,,,,,,,,,,,'.......... ,oxxxxxxx . .;,,,,,,,,,,,,'.. 'cxxxxxxxxx, :dl:,'',,'.... .;lxxxxxxxxxd; ,codol:;'. ...,;cldxxxxxxxxxoc. .:cxxxxxdlccccc:ccldxxxxxxxxxxxxxx::. .'::dxxxxxxxxxxxxxxxxxxxxxxxd::'. ..,::cdxxxxxxxxxxxxxdc::,.. ...,;:::::::;,... """) hyfetch-1.99.0/hyfetch/distros/pisi.py000066400000000000000000000020161470626616500177170ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pisi = AsciiArt(match=r'''"Pisi"*''', color='12 7 6 1 8', ascii=r""" ${c1} \Fv/!- `:?lzC ${c1} Q!::=zFx! ${c2}`;v6WBCicl;` ${c1},vCC\!::#. ${c1} ,%:::,'` ${c2}+#%@@FQ@@. ,cF%i${c1}``-',::a? ${c1} +m:,'```${c2}}3,/@@Q\@@ "af-${c1} `-'"7f =o'.` ${c2}/m' :Q@:Qg ,kl${c1} `.|o :k` '${c2}$+ 'Narm >d,${c1} ii #`${c2}!p. `C , 'd+${c1} %' ${c2} !0m `6Kv =a m+ !A !\L|: :|L\! $: .8` Q''%Q#' '#Q%''Q `0- :6 E|.6QQu uQQ6.|E p: i{ \jts9? ?9stj\ u\ |a` -''. `e> ,m+ ${c1}'^ !`${c2}s@@@@a${c1}'"`+`${c2} >e' !3|${c1}`|=>>r- ${c2}'U%:${c1} '>>>=:`\3! 'xopE| ${c2}`'${c1} `ledoz- `;=>>+`${c2}`^llci/|==|/iclc;`${c1}'>>>>: `^`+~ ${c2}````${c1} !!-^ """) hyfetch-1.99.0/hyfetch/distros/pnm_linux.py000066400000000000000000000022401470626616500207630ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pnm_linux = AsciiArt(match=r'''"PNM Linux"* | "WHPNM Linux"*''', color='33 9 15 202', ascii=r""" ${c1} ``.---..` `--` ``.---........-:.${c2}-::`${c1} ${c2}./::-${c1}........${c2}--::.````${c1} ${c2}.:://:::${c1}----${c2}::::-..${c1} ..${c2}--:::::--::::++-${c1}.` ${c2}`-:-`${c1} .-ohy+::${c2}-:::${c1}/sdmdd:.${c2} `-:- .-:::${c1}...${c3}sNNmds$y${c1}o/+${c3}sy+NN$m${c1}d+.`${c2}-:::-. `.-:-${c1}./${c3}dN${c1}()${c3}yyooosd${c1}()${c3}$m${c1}dy${c2}-.::-.`${c1} ${c2}`.${c1}-...-${c3}+hNdyyyyyydmy${c1}:......${c2}`${c1} ``..--.....-${c3}yNNm${c4}hssssh${c3}mmdo${c1}.........``` `-:://:.....${c3}hNNNNN${c4}mddm${c3}NNNmds${c1}.....//::--` ```.:-...${c3}oNNNNNNNNNNNNNNmd/${c1}...:-.``` .....${c3}hNNNNNNNNNNNNNNmds${c1}....` --...${c3}hNNNNNNNNNNNNNNmdo${c1}..... .:...${c3}/NNNNNNNNNNNNNNdd${c1}:....` `-...${c3}+mNNNNNNNNNNNmh${c1}:...-. ${c4}.:+o+/:-${c1}:+oo+///++o+/:-${c4}:/+ooo/:. ${c4}+oo/:o- +oooooso.` ${c4}.` ` `/ .-//- """) hyfetch-1.99.0/hyfetch/distros/pop__os.py000066400000000000000000000022301470626616500204070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pop__os = AsciiArt(match=r'''"Pop!_OS"* | "popos"* | "pop_os"*''', color='6 7', ascii=r""" ${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}///// /////////////////////////// ///////////////////// ///////////// """) hyfetch-1.99.0/hyfetch/distros/popos_small.py000066400000000000000000000004741470626616500213110ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt popos_small = AsciiArt(match=r'''"popos_small"* | "pop_os_small"*''', color='6 7', ascii=r""" ${c1}______ \ _ \ __ \ \ \ \ / / \ \_\ \ / / \ ___\ /_/ \ \ _ __\_\__(_)_ (___________)` """) hyfetch-1.99.0/hyfetch/distros/porteus.py000066400000000000000000000012351470626616500204560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt porteus = AsciiArt(match=r'''"Porteus"*''', color='6 7', ascii=r""" ${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` .+: ` """) hyfetch-1.99.0/hyfetch/distros/postmarketos.py000066400000000000000000000012641470626616500215120ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt postmarketos = AsciiArt(match=r'''"PostMarketOS"*''', color='2 7', ascii=r""" ${c1} /\ / \ / \ / \ / \ / \ \ \ /\ \____ \ / \____ \ \ / / \ \ / / \ ___\ / / \ / ____ / / \/ / \ / / __________/ \ / \ \ \ / \ \ \ / / / \ /___________/ /____________________\ """) hyfetch-1.99.0/hyfetch/distros/postmarketos_small.py000066400000000000000000000005051470626616500226770ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt postmarketos_small = AsciiArt(match=r'''"postmarketos_small"''', color='2 7', ascii=r""" ${c1} /\ / \ / \ \__ \ /\__ \ _\ / / \/ __ / / ____/ \ / \ \ \ /_____/ /________\ """) hyfetch-1.99.0/hyfetch/distros/profelis_sambabox.py000066400000000000000000000015721470626616500224600ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt profelis_sambabox = AsciiArt(match=r'''"Profelis SambaBOX"* | "SambaBOX"*''', color='3 6', ascii=r""" ${c1} # *////##### /////////#########( .((((((///// ,####(#((((( /#######(((* (#(((((((((. //((#(#(#, ((##( ,((((((// ////// #(##########( ////// ////// ((#(#(#(#(##########(///////// /////( (((((((#########(##((((((///// /(((#( ((((/ ####(# ((### #########(((/////////(((((((((, (#(#( ########( /////////(((((((* ##### ####///, *////((( ((((((( ./////////// .//((((((((( ///////////, *(/////((((* ,/(((((((((##########/. .((((((####### ((##* """) hyfetch-1.99.0/hyfetch/distros/proxmox.py000066400000000000000000000021311470626616500204650ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt proxmox = AsciiArt(match=r'''"Proxmox"*''', color='7 202', ascii=r""" ${c1} .://:` `://:. `hMMMMMMd/ /dMMMMMMh` `sMMMMMMMd: :mMMMMMMMs` ${c2}`-/+oo+/:${c1}`.yMMMMMMMh- -hMMMMMMMy.`${c2}:/+oo+/-` `:oooooooo/${c1}`-hMMMMMMMyyMMMMMMMh-`${c2}/oooooooo:` `/oooooooo:${c1}`:mMMMMMMMMMMMMm:`${c2}:oooooooo/` ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/. .+ooooooo+-${c1}`oNMMMMNo`${c2}-+ooooooo+. -+ooooooo/.${c1}`sMMs`${c2}./ooooooo+- :oooooooo/${c1}`..`${c2}/oooooooo: :oooooooo/`${c1}..${c2}`/oooooooo: -+ooooooo/.`${c1}sMMs${c2}`./ooooooo+- .+ooooooo+-`${c1}oNMMMMNo${c2}`-+ooooooo+. ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/. `/oooooooo:`${c1}:mMMMMMMMMMMMMm:${c2}`:oooooooo/` `:oooooooo/`${c1}-hMMMMMMMyyMMMMMMMh-${c2}`/oooooooo:` `-/+oo+/:`${c1}.yMMMMMMMh- -hMMMMMMMy.${c2}`:/+oo+/-` ${c1} `sMMMMMMMm: :dMMMMMMMs` `hMMMMMMd/ /dMMMMMMh` `://:` `://:` """) hyfetch-1.99.0/hyfetch/distros/puffos.py000066400000000000000000000010051470626616500202520ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt puffos = AsciiArt(match=r'''"PuffOS"*''', color='3', ascii=r''' ${c1} _,..._,m, ,/' '""; / ". ,'mmmMMMMmm. \ _/-"^^^^^"""%#%mm, ; ,m,_,' "###) ;, (###% \#/ ;##mm. ^#/ __ ___ ; (######) ; //.\ //.\ ; \####/ _; (#\"// \"/#) ; ,/ @##\ \##/ = `"=" ,;mm/ `\##>.____,...,____,<####@ ''') hyfetch-1.99.0/hyfetch/distros/puppy.py000066400000000000000000000014751470626616500201400ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt puppy = AsciiArt(match=r'''"Puppy"* | "Quirky Werewolf"* | "Precise Puppy"*''', color='4 7', ascii=r""" ${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+/:-. """) hyfetch-1.99.0/hyfetch/distros/pureos.py000066400000000000000000000012251470626616500202710ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pureos = AsciiArt(match=r'''"PureOS"*''', color='2 7 7', ascii=r""" ${c1}dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd dNm//////////////////////////////////mNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNm//////////////////////////////////mNd dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd """) hyfetch-1.99.0/hyfetch/distros/pureos_small.py000066400000000000000000000004241470626616500214610ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt pureos_small = AsciiArt(match=r'''"pureos_small"*''', color='2 7 7', ascii=r""" ${c1} _____________ | _________ | | | | | | | | | | |_________| | |_____________| """) hyfetch-1.99.0/hyfetch/distros/q4os.py000066400000000000000000000015771470626616500176540ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt q4os = AsciiArt(match=r'''"Q4OS"*''', color='4 1', ascii=r""" ${c1} .:***** :=====. ${c1}.:******** :========. ${c1} .*********** :===========. ${c1}.:************ :============- ${c1} .************** :============== ${c1} :*************** :=============== ${c1}:**************. :=============== ${c1}.*************: .=============. ${c1}*************. .============: ${c1}:############. ${c2}:==: ${c1}:##############. ${c2}:======: ${c1}:################ ${c2}.==========: ${c1}:############### ${c2}.===========: ${c1}:############## ${c2}.===========: ${c1}:############# ${c2}.=========: ${c1}:########### ${c2}.=====: ${c1}.######### ${c2}.=: ${c1}.##### """) hyfetch-1.99.0/hyfetch/distros/qubes.py000066400000000000000000000016621470626616500201000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt qubes = AsciiArt(match=r'''"Qubes"*''', color='4 5 7 6', ascii=r""" ${c1} `..--..` `.----------.` `..----------------..` `.------------------------.`` `..-------------....-------------..` .::----------..`` ``..----------:+: :////:----..` `..---:/ossso :///////:` `/osssssso :///////: /ssssssso :///////: /ssssssso :///////: /ssssssso :///////: /ssssssso :///////: /ssssssso :////////-` .:sssssssso :///////////-.` `-/osssssssssso `//////////////:-```.:+ssssssssssssso- .-://////////////sssssssssssssso/-` `.:///////////sssssssssssssso:. .-:///////ssssssssssssssssss/` `.:////ssss+/+ssssssssssss. `--//- `-/osssso/. """) hyfetch-1.99.0/hyfetch/distros/qubyt.py000066400000000000000000000017571470626616500201320ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt qubyt = AsciiArt(match=r'''"Qubyt"*''', color='4 5 0 4', ascii=r""" ${c1} ########################${c2}(${c3}ooo ${c1} ########################${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}##${c3}o ${c2}((((${c3}ooo ${c1}###${c2}(${c3}ooo o${c2}((${c1}### ${c3}oooooo ${c1}###${c2}(${c3}ooo oo${c2}((${c1}###${c3}o ${c1}###${c2}(${c3}ooo ooo${c2}((${c1}### ${c1}################${c2}(${c3}oo oo${c2}((((${c3}o ${c2}(((((((((((((((((${c3}ooo ooooo oooooooooooooooooo o """) hyfetch-1.99.0/hyfetch/distros/quibian.py000066400000000000000000000015341470626616500204070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt quibian = AsciiArt(match=r'''"Quibian"*''', color='3 7', ascii=r""" ${c1} `.--::::::::--.` `.-:::-..`` ``..-::-.` .::::-` .${c2}+${c1}:`` `.-::.` .::::.` -::::::-` `.::. `-:::-` -:::::::::--..`` .::` `::::- .${c2}oy${c1}:::::::---.```.: `::` -:::: `.-:::::::::::-.``` `:: .::::.`-:::::::::::::. `:. -::::.::::::::::::::: -: ::::::::::::::::::::` `: :::::::::::::::::::- `: ::::::::::::::::::: -- .:::::::::::::::::` `:` `::::::::::::::::: -` .:::::::::::::::- -` `::::::::::::::- `.` .::::::::::::- `` `.--:::::-. """) hyfetch-1.99.0/hyfetch/distros/radix.py000066400000000000000000000010321470626616500200570ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt radix = AsciiArt(match=r'''"Radix"*''', color='1 2', ascii=r""" ${c2} .:oyhdmNo `/yhyoosdms` -o+/ohmmho- ..`.:/:-` `.--:::-.``${c1} .+ydNMMMMMMNmhs:` `omMMMMMMMMMMMMMMNh- oNMMMNmddhhyyhhhddmy. mMMMMNmmddhhysoo+/:-` yMMMMMMMMMMMMMMMMNNh. -dmmmmmNNMMMMMMMMMMs` -+oossyhmMMMMMMMMd- `sNMMMMMMMMMMMMMm: `yMMMMMMNmdhhhh: `sNMMMMMNmmho. `+mMMMMMMMy. .yNMMMm+` `:yd+. """) hyfetch-1.99.0/hyfetch/distros/raspbian.py000066400000000000000000000016341470626616500205570ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt raspbian = AsciiArt(match=r'''"Raspbian"*''', color='2 1', ascii=r""" ${c1} `.::///+:/-. --///+//-:`` `+oooooooooooo: `+oooooooooooo: /oooo++//ooooo: ooooo+//+ooooo. `+ooooooo:-:oo- +o+::/ooooooo: `:oooooooo+`` `.oooooooo+- `:++ooo/. :+ooo+/.` ${c2}...` `.----.` ``.. .::::-``:::::::::.`-:::-` -:::-` .:::::::-` `-:::- `::. `.--.` `` `.---.``.::` .::::::::` -::::::::` ` .::` .:::::::::- `::::::::::``::. -:::` ::::::::::. ::::::::::.`:::- :::: -::::::::. `-:::::::: :::: -::- .-:::-.``....``.-::-. -::- .. `` .::::::::. `..`.. -:::-` -::::::::::` .:::::` :::::::` -::::::::::` :::::::. .::::::: -::::::::. :::::::: `-:::::` ..--.` ::::::. `...` `...--..` `...` .:::::::::: `.-::::-` """) hyfetch-1.99.0/hyfetch/distros/raspbian_small.py000066400000000000000000000004651470626616500217500ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt raspbian_small = AsciiArt(match=r'''"Raspbian_small"*''', color='2 1', ascii=r""" ${c1} .. ,. :oo: .:oo: 'o\o o/o: ${c2} :: . :: . :: :: ::: ::: :: :' '',.'' ': ::: :::: ::: ':, '' ,:' ' ~::~ ' """) hyfetch-1.99.0/hyfetch/distros/ravynos.py000066400000000000000000000015651470626616500204640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ravynos = AsciiArt(match=r'''"ravynOS"''', color='15', ascii=r""" ${c1} ..oooo.. .o$$$$$$$$$$$$$$o. od$$$$$$$$$$$$$$$$$$$$$o o$$$$$$$$$$$$$$$$$$$$$$$$$$o .$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. d$$$$$$$$$********$$$$$$$$$$$$$$$b d$$$$$$$* °****?$$$$$$$$b $$$$$$* °$$$$$$$ d$$** .oo$$$$$$$$b *° o$$$$$$$$$$$$$$ o$$$$$$$$$$$$$$$$ o$$$$$$$$$$$$$$$$$P *$$$$$$$$$$$$$$$$$ ?$$$$$$$$$$$$$$P $$$$$$$$$$$$$P $$$$$$$$$$$$P ?$$$$$$$$$$* $$$$$$$*° d$$$$*° ° """) hyfetch-1.99.0/hyfetch/distros/reborn_os.py000066400000000000000000000032251470626616500207460ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt reborn_os = AsciiArt(match=r'''"Reborn OS"* | "Reborn"*''', color='0 4 6', ascii=r""" ${c1} .======================. ${c1}.#${c2}#*********${c1}%%${c2}*********#${c1}%: ${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%- ${c1}-%${c2}************${c1}%%${c2}************${c1}%= ${c1}+%${c2}******${c1}%%#####${c1}%%#####%%${c2}******${c1}%+ ${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%* ${c1}*%${c2}*#${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##. ${c1}.##${c2}*****${c1}#%%%#${c3}*++${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%. ${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%: ${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%- ${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%= ${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%- ${c1}.##${c2}*****${c1}#%%%#${c3}*+*${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%: ${c1}.##${c2}**${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##. ${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%* ${c1}+%${c2}******${c1}%%#####%%#####%%${c2}******${c1}%* ${c1}-%${c2}************${c1}%%${c2}************${c1}%= ${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%- ${c1}:%${c2}#*********${c1}%%${c2}*********#${c1}%: ${c1}.======================. """) hyfetch-1.99.0/hyfetch/distros/red_star.py000066400000000000000000000014311470626616500205560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt red_star = AsciiArt(match=r'''"Red Star"* | "Redstar"*''', color='1 7 3', ascii=r""" ${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::::;...';;;;;,,,,,,. ,::::::;;;,'. ..',,,,'''. ........ ...... """) hyfetch-1.99.0/hyfetch/distros/redcore.py000066400000000000000000000013251470626616500204000ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt redcore = AsciiArt(match=r'''"Redcore"*''', color='1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/redhat.py000066400000000000000000000014751470626616500202320ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt redhat = AsciiArt(match=r'''"Redhat"* | "Red Hat"* | "rhel"*''', color='1', ascii=r""" ${c1} .MMM..:MMMMMMM MMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMM. MMMMMMMMMMMMMMMMMMMMMM ,MMMMMMMMMMMMMMMMMMMMMM: MMMMMMMMMMMMMMMMMMMMMMMM .MMMM' MMMMMMMMMMMMMMMMMMMMMM MMMMMM `MMMMMMMMMMMMMMMMMMMM. MMMMMMMM MMMMMMMMMMMMMMMMMM . MMMMMMMMM. `MMMMMMMMMMMMM' MM. MMMMMMMMMMM. MMMM `MMMMMMMMMMMMM. ,MMMMM. `MMMMMMMMMMMMMMMMM. ,MMMMMMMM. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM `MMMMMMMMMMMMMMMMMMMMMMMM: ``MMMMMMMMMMMMMMMMM' """) hyfetch-1.99.0/hyfetch/distros/redhat_old.py000066400000000000000000000013541470626616500210640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt redhat_old = AsciiArt(match=r'''"redhat_old" | "rhel_old"*''', color='1 7 3', ascii=r""" ${c1} `.-..........` `////////::.`-/. -: ....-////////. //:-::///////////` `--::: `-://////////////: //////- ``.-:///////// .` `://////:-.` :///////::///:` .-/////////:---/////////////: .-://////////////////////. ${c2} yMN+`.-${c1}::///////////////-` ${c2} .-`:NMMNMs` `..-------..` MN+/mMMMMMhoooyysshsss MMM MMMMMMMMMMMMMMyyddMMM+ MMMM MMMMMMMMMMMMMNdyNMMh` hyhMMM MMMMMMMMMMMMMMMMyoNNNMMM+. MMMMMMMM MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM """) hyfetch-1.99.0/hyfetch/distros/refracted_devuan.py000066400000000000000000000013671470626616500222640ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt refracted_devuan = AsciiArt(match=r'''"Refracted Devuan"* | "Refracted_Devuan"*''', color='8 7', ascii=r""" ${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/ """) hyfetch-1.99.0/hyfetch/distros/regata.py000066400000000000000000000023061470626616500202200ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt regata = AsciiArt(match=r'''"Regata"*''', color='7 1 4 5 3 2', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/regolith.py000066400000000000000000000014011470626616500205650ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt regolith = AsciiArt(match=r'''"Regolith"*''', color='1', ascii=r""" ${c1} ``....``` `.:/++++++/::-.` -/+++++++:.` -++++++++:` `/++++++++- `/++++++++. -/+/ /++++++++/ `` .:+++:. -+++++++++/ ./++++:+++/-` :+++++++++/ `+++++++/-` :++++++++++` .-/+++++++` `:++++++++++/``.-/++++:-:::-` ` `:+++++++++++++++++/:.` ./` :++/-:+++++++++/:-.. -/+. +++++++++/::-...:/+++/-..````..-/+++. `......``.::/+++++++++++++++++++++/. -/+++++++++++++++++++++/. .:/+++++++++++++++/-` `.-:://////:-. """) hyfetch-1.99.0/hyfetch/distros/rhaymos.py000066400000000000000000000011341470626616500204350ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt rhaymos = AsciiArt(match=r'''"RhaymOS"*''', color='1', ascii=r""" ${c1} ### ##### ####### /######## ############# ########### ,########### #### ####(.. #### #### ####* ########## #### ##### ##### (#### #### ########### ########### #### ######### ########## ################################### ##################################### ####################################### """) hyfetch-1.99.0/hyfetch/distros/rocky.py000066400000000000000000000014151470626616500201040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt rocky = AsciiArt(match=r'''"rocky"*''', color='35', ascii=r""" ${c1} __wgliliiligw_, _williiiiiiliilililw, _%iiiiiilililiiiiiiiiiii_ .Qliiiililiiiiiiililililiilm. _iiiiiliiiiiililiiiiiiiiiiliil, .lililiiilililiiiilililililiiiii, _liiiiiiliiiiiiiliiiiiF{iiiiiilili, jliililiiilililiiili@` ~ililiiiiiL iiiliiiiliiiiiiili>` ~liililii liliiiliiilililii` -9liiiil iiiiiliiliiiiii~ "4lili 4ililiiiiilil~| -w, )4lf -liiiiililiF' _liig, )' )iiiliii@` _QIililig, )iiii>` .Qliliiiililw )<>~ .mliiiiiliiiiiil, _gllilililiililii~ giliiiiiiiiiiiiT` -^~$ililili@~~' """) hyfetch-1.99.0/hyfetch/distros/rocky_small.py000066400000000000000000000007201470626616500212720ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt rocky_small = AsciiArt(match=r'''"rocky_small"*''', color='2', ascii=r""" ${c1} `-/+++++++++/-.` `-+++++++++++++++++-` .+++++++++++++++++++++. -+++++++++++++++++++++++. +++++++++++++++/-/+++++++ +++++++++++++/. ./+++++ +++++++++++:. ./+++ +++++++++:` `:/:` .:/ -++++++:` .:+++++:` .+++-` ./+++++++++:` `-` ./+++++++++++- -+++++++++:-.` """) hyfetch-1.99.0/hyfetch/distros/rosa.py000066400000000000000000000016051470626616500177220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt rosa = AsciiArt(match=r'''"Rosa"*''', color='4 7 1', ascii=r""" ${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 """) hyfetch-1.99.0/hyfetch/distros/sabayon.py000066400000000000000000000015561470626616500204170ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt sabayon = AsciiArt(match=r'''"Sabayon"*''', color='4 7 1', ascii=r""" ${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}.. .. .. .. .. ............... """) hyfetch-1.99.0/hyfetch/distros/sabotage.py000066400000000000000000000010621470626616500205400ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt sabotage = AsciiArt(match=r'''"sabotage"*''', color='4 7 1', ascii=r""" ${c2} .|'''.| | '||''|. ..|''|| ||.. ' ||| || || .|' || ''|||. | || ||'''|. || || . '|| .''''|. || || '|. || |'....|' .|. .||. .||...|' ''|...|' |''||''| | ..|'''.| '||''''| || ||| .|' ' || . || | || || .... ||''| || .''''|. '|. || || .||. .|. .||. ''|...'| .||.....| """) hyfetch-1.99.0/hyfetch/distros/sailfish.py000066400000000000000000000006721470626616500205630ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt sailfish = AsciiArt(match=r'''"Sailfish"*''', color='4 5 7 6', ascii=r""" ${c1} _a@b _#b (b _@@ @_ _, _#^@ _#*^^*gg,aa@^^ #- @@^ _a@^^ @_ *g#b ^@_ ^@_ ^@_ @ @(b (b #b(b#^ _@_#@^ _a@a*^ ,a@*^ """) hyfetch-1.99.0/hyfetch/distros/salentos.py000066400000000000000000000022271470626616500206070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt salentos = AsciiArt(match=r'''"SalentOS"*''', color='2 1 3 7', ascii=r""" ${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}:. """) hyfetch-1.99.0/hyfetch/distros/salient_os.py000066400000000000000000000016371470626616500211230ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt salient_os = AsciiArt(match=r'''"Salient OS"* | "SalientOS"* | "salientos"*''', color='6 6 7 1', ascii=r""" ${c1} 00xxxx0 00xxxxxx0 0xxxxxxxxx 000000 0xxxxxxxxxx xxxxxxxxxx0 0xxxxxxxxxxx0 xxxxxxxxxxxxx0 0xxxxxxxxxxxx0 0xxxxxxxxxxxxxx0 0xxxxxxxxxxxxx0 0xxxxxxxxxxxxxxx0 0xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxxxx0 0xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx 0xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxx 0xxxxxxxxxxxxxxxxxx0 0xxxxxxxxxxxx0 0xxxxxxxxxxxxxxxxxx xxxxxxxxxxx0 0xxxxxxxxxxxxxxxxx xxxxxxxxxx0 0xxxxxxxxxxxxxxxx xxxxxxxxx0 0xxxxxxxxxxxx0 0xxxxxxx0 0xxxxxxx0 xxxxxx0 0xxx00 x00 """) hyfetch-1.99.0/hyfetch/distros/salix.py000066400000000000000000000015151470626616500200760ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt salix = AsciiArt(match=r'''"Salix"*''', color='2', ascii=r''' ${c1} __s_aaaaaaaaauuoXSSSSSSSS: ._xSSSSSSSSSSSSSSSSSSSSSSSSSS: _aSSSSSSSSSSSSSSSSSSSSSSSSSSSSS: _xSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS: nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS} nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}` XSSSSSSSSSSSSSSSSSSSSSSSSSSSS"` SSSSSSSSSSSSSSSSSSSSSSSSS!"` -""""""""""""""""""""""` ''') hyfetch-1.99.0/hyfetch/distros/sasanqua.py000066400000000000000000000017561470626616500206010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt sasanqua = AsciiArt(match=r'''"Sasanqua"*''', color='5 1 5', ascii=r""" ${c1} __,_ _╕⌐≡µ,√* º≡, ñ "' ░ ╞) _, ▒ __ _,,,_ _Ñ╜^≡µ ≡' 1µ╕º^el "%µ ∩' K Yµ& 1l ╞) ▒ √" ^Ü 1" `1µ Γ ║h _¿▒∞√;, ^≡, K ^u_ ⌐* ╙¥ ╓Ñ ⌠ º≡u,, ║I Å Ü _∩" ║µ_¿╝" Yu_ ▒ ╙º≡_ ║l1µ ║l , Y∞µ___≡ª Γl ╓hⁿ╖I 1l Ñ ╓Ñ Ñ ¥,___≡1l ╓Ñ ¿╕ª Ü ╙L ¿¿∩ª ╓P ª≡,__ *ⁿ┤ⁿÑⁿ^µ √ª ⁿ≡,,__√╝* "ⁿⁿ*" """) hyfetch-1.99.0/hyfetch/distros/scientific.py000066400000000000000000000015751470626616500211040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt scientific = AsciiArt(match=r'''"Scientific"*''', color='4 7 1', ascii=r""" ${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. ;/ #= // +; '////' """) hyfetch-1.99.0/hyfetch/distros/semc.py000066400000000000000000000005221470626616500177020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt semc = AsciiArt(match=r'''"semc"*''', color='2 8 1', ascii=r""" ${c1} /\ ______/ \ / |()| ${c2}E M C ${c1} | (-- | | \ \ | | .----) | |__| |_______/ / ${c3}"${c1} \ ${c3}" " """) hyfetch-1.99.0/hyfetch/distros/septor.py000066400000000000000000000021561470626616500202740ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt septor = AsciiArt(match=r'''"Septor"*''', color='4 7 4', ascii=r""" ${c1}ssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssss ssssssssss${c2};okOOOOOOOOOOOOOOko;${c1}ssssssssss sssssssss${c2}oNWWWWWWWWWWWWWWWWWWNo${c1}sssssssss ssssssss${c2}:WWWWWWWWWWWWWWWWWWWWWW:${c1}ssssssss ssssssss${c2}lWWWWWk${c1}ssssssssss${c2}lddddd:${c1}ssssssss ssssssss${c2}cWWWWWNKKKKKKKKKKKKOx:${c1}ssssssssss ${c3}yy${c1}sssssss${c2}OWWWWWWWWWWWWWWWWWWWWx${c1}sssssss${c3}yy yyyyyyyyyy${c2}:kKNNNNNNNNNNNNWWWWWW:${c3}yyyyyyyy yyyyyyyy${c2}sccccc;${c3}yyyyyyyyyy${c2}kWWWWW:${c3}yyyyyyyy yyyyyyyy${c2}:WWWWWWNNNNNNNNNNWWWWWW;${c3}yyyyyyyy yyyyyyyy${c2}.dWWWWWWWWWWWWWWWWWWWNd${c3}yyyyyyyyy yyyyyyyyyy${c2}sdO0KKKKKKKKKKKK0Od;${c3}yyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy """) hyfetch-1.99.0/hyfetch/distros/serene.py000066400000000000000000000017051470626616500202400ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt serene = AsciiArt(match=r'''"Serene"*''', color='6 6', ascii=r""" ${c1} __---''''''---__ . . : : - _______----_- s __----''' __---- __h_ _-' _-' h '-._''--.._ ; _-' y : ''-._ '-._/ _-' : y ':_ _--'' y m .--'' '-._.;' m m : : m y '.._ '-__ y : '--._ '''----___ : y '--._ ''-- _ y h '--._ : h s __'; vs - __..--'' - :_..--'' : . _ . `''---______---''-`` """) hyfetch-1.99.0/hyfetch/distros/sharklinux.py000066400000000000000000000012521470626616500211440ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt sharklinux = AsciiArt(match=r'''"SharkLinux"*''', color='4 7', ascii=r""" ${c1} `:shd/ `:yNMMMMs `-smMMMMMMN. .+dNMMMMMMMMs .smNNMMMMMMMMm` .sNNNNNNNMMMMMM/ `omNNNNNNNMMMMMMm /dNNNNNNNNMMMMMMM+ .yNNNNNNNNNMMMMMMMN` +mNNNNNNNNNMMMMMMMMh .hNNNNNNNNNNMMMMMMMMMs +mMNNNNNNNNMMMMMMMMMMMs .hNMMNNNNMMMMMMMMMMMMMMMd .oNNNNNNNNNNMMMMMMMMMMMMMMMo `:+syyssoo++++ooooossssssssssso: """) hyfetch-1.99.0/hyfetch/distros/shastraos.py000066400000000000000000000014361470626616500207670ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt shastraos = AsciiArt(match=r'''"ShastraOS"*''', color='6', ascii=r""" ${c1} ..,;;,'. ':oo. ;o: :o, ol .oo ..';co: ooo',;:looo; .;lddl cx .xl .c:' dd xx xx ,d; .xd cx. xx dd. cx: .xo xx ,x: 'xl xx cx' .xl xd, xx .xd dx. .xo:xx xx .xx 'c xx:.'lx: ..,;cxxxo .';:codxxl lxo cd. 'xo :o, 'ld .oc'...';lo """) hyfetch-1.99.0/hyfetch/distros/siduction.py000066400000000000000000000014461470626616500207620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt siduction = AsciiArt(match=r'''"Siduction"*''', color='4 4', ascii=r""" ${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??" """) hyfetch-1.99.0/hyfetch/distros/skiffos.py000066400000000000000000000011061470626616500204160ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt skiffos = AsciiArt(match=r'''"SkiffOS"*''', color='4 7', ascii=r''' ${c2} ,@@@@@@@@@@@w,_ ${c2}====~~~,,.${c2}A@@@@@@@@@@@@@@@@@W,_ ${c1}`||||||||||||||L{${c2}"@$@@@@@@@@B" ${c1}`|||||||||||||||||||||L{${c2}"$D ${c2}@@@@@@@@@@@@@@@@@@@@@${c1}_||||}==, ${c2}*@@@@@@@@@@@@@@@@@@@@@@@@@p${c1}||||==, ${c1}`'||LLL{{""${c2}@$B@@@@@@@@@@@@@@@p${c1}|| ${c1}`~=|||||||||||L"${c2}$@@@@@@@@@@@ ${c1}````'"""""""${c2}'"""""""" ''') hyfetch-1.99.0/hyfetch/distros/slackel.py000066400000000000000000000015361470626616500203770ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt slackel = AsciiArt(match=r'''"Slackel"*''', color='3', ascii=r''' ${c1} _aawmmmmmwwaaaaas,,,_. .ammmmm###mmmmmmm###BQmm##mws .am###mmBmBmBmBmBmBmmmmm#mmmm#2 3${c2}WWWWWQWQQwwQw${c1}cii|i|ii= =lii|ii|n${c2}QWWWQ${c1}|)i${c2}|i${c1}%i|]${c2}TQWWWWm${c1}|ii|i|i= .li|i|i|m${c2}WWWQV${c1}|ii${c2}wmD${c1}|iiii|${c2}TWWWWm${c1}|i|iiii, =iii${c2}www|$WQWk${c1}|i${c2}aWWWD${c1}|i|i|ii]${c2}QQWQk${c1}|ii|i|= iii${c2}QWWWQz$WW${c1}|i${c2}jQQWQm${c1}w|ii${c2}wW${c1}k|${c2}TTTTY${c1}i|i|iii iiI${c2}QWQWWtyQQ${c1}|i|${c2}$WWWWWQWk${c1}||i|i|ii||i|ii|i <|i|${c2}TTT|mQQWz${c1}|i${c2}3D${c1}]C|${c2}nD$W${c1}|ii${c2}vWWWWk${c1}||ii|i> -|ii|i|i${c2}WWWQw${c1}|${c2}Tt${c1}|i3${c2}T${c1}|${c2}T${c1}|i|${c2}nQWQWDk${c1}|ii|ii` <|i|iii|${c2}VWQWWQ${c1}|i|i|||ii${c2}wmWWQWD${c1}||ii|ii+ <|ii|i|i]${c2}$W@${c1}tv${c2}QQQWQQQWWTTHT${c1}1|iii|i|> <|i|ii|ii||v${c2}QWWWQWWW@vmWWWm${c1}|i|i|i> -<|i|ii|ii|i|${c2}TTTTTT${c1}|]${c2}QQWWWC${c1}|ii>` -<|i|ii|i|ii|i|i|ii3${c2}TTT${c1}t|i>` ~<|ii|ii|iiiii|i|||i>~ -~~<|ii|i||i>~~` """) hyfetch-1.99.0/hyfetch/distros/ubuntu_mate.py000066400000000000000000000026061470626616500213100ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ubuntu_mate = AsciiArt(match=r'''"Ubuntu MATE"* | "Ubuntu-MATE"*''', color='2 7', ascii=r""" ${c1} .:/+oossssoo+/:.` `:+ssssssssssssssssss+:` -+sssssssssssssss${c2}y${c1}ssssssss+- .osssssssssssss${c2}yy${c1}ss${c2}mMmh${c1}ssssssso. /sssssssss${c2}ydmNNNmmd${c1}s${c2}mMMMMNdy${c1}sssss/ `+ssssssss${c2}hNNdy${c1}sssssss${c2}mMMMMNdy${c1}ssssss+` +sssssss${c2}yNNh${c1}ss${c2}hmNNNNm${c1}s${c2}mMmh${c1}s${c2}ydy${c1}sssssss+ -sssss${c2}y${c1}ss${c2}Nm${c1}ss${c2}hNNh${c1}ssssss${c2}y${c1}s${c2}hh${c1}ss${c2}mMy${c1}sssssss- +ssss${c2}yMNdy${c1}ss${c2}hMd${c1}ssssssssss${c2}hMd${c1}ss${c2}NN${c1}sssssss+ sssss${c2}yMMMMMmh${c1}sssssssssssss${c2}NM${c1}ss${c2}dMy${c1}sssssss sssss${c2}yMMMMMmhy${c1}ssssssssssss${c2}NM${c1}ss${c2}dMy${c1}sssssss +ssss${c2}yMNdy${c1}ss${c2}hMd${c1}ssssssssss${c2}hMd${c1}ss${c2}NN${c1}sssssss+ -sssss${c2}y${c1}ss${c2}Nm${c1}ss${c2}hNNh${c1}ssssssss${c2}dh${c1}ss${c2}mMy${c1}sssssss- +sssssss${c2}yNNh${c1}ss${c2}hmNNNNm${c1}s${c2}mNmh${c1}s${c2}ymy${c1}sssssss+ +ssssssss${c2}hNNdy${c1}sssssss${c2}mMMMMmhy${c1}ssssss+ /sssssssss${c2}ydmNNNNmd${c1}s${c2}mMMMMNdh${c1}sssss/ .osssssssssssss${c2}yy${c1}ss${c2}mMmdy${c1}sssssso. -+sssssssssssssss${c2}y${c1}ssssssss+- `:+ssssssssssssssssss+:` .:/+oossssoo+/:. """) hyfetch-1.99.0/hyfetch/distros/ubuntu_old.py000066400000000000000000000022401470626616500211320ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ubuntu_old = AsciiArt(match=r'''"Ubuntu_old"* | "i3buntu"*''', color='1 7 3', ascii=r""" ${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+/-. """) hyfetch-1.99.0/hyfetch/distros/ubuntu_old02.py000066400000000000000000000017351470626616500213040ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ubuntu_old02 = AsciiArt(match=r'''"ubuntu_old02"''', color='1 7 3', ascii=r""" ${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++. """) hyfetch-1.99.0/hyfetch/distros/ubuntu_small.py000066400000000000000000000006261470626616500214720ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ubuntu_small = AsciiArt(match=r'''"ubuntu_small"''', color='1', ascii=r""" ${c1} ..;,; .,;,. .,lool: .ooooo, ;oo;: .coool. .... ''' ,l; :oooo, 'oo. looooc :oo' '::' ,oo: ,., .... co, lo:;. :oooo; . ':ooo; cooooc ''' '''' """) hyfetch-1.99.0/hyfetch/distros/ubuntu_studio.py000066400000000000000000000024501470626616500216660ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ubuntu_studio = AsciiArt(match=r'''"Ubuntu Studio"* | "Ubuntu-Studio"''', color='6 7', ascii=r""" ${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}++:. ..-::::::-.. """) hyfetch-1.99.0/hyfetch/distros/ubuntu_sway.py000066400000000000000000000025011470626616500213370ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ubuntu_sway = AsciiArt(match=r'''"Ubuntu Sway"* | "Ubuntu-Sway"''', color='6 7', ascii=r""" ${c1} .-/+oossssoo+\-. ´:+ssssssssssssssssss+:` -+ssssssssssssssssss${c2}yy${c1}ssss+- .ossssssssssssssssss${c2}dMMMNyy${c1}ssso. /sssssssssss${c2}hdmmNNmmyNMMMMh${c1}ssssss\ +sssssssss${c2}hm${c1}ydMMMMMMMNdd${c2}ddy${c1}ssssssss+ /ssssssss${c2}hN${c1}MM${c2}M${c1}yh${c2}hyyyyhmNM${c1}MM${c2}Nh${c1}ssssssss\ .ssssssss${c2}dM${c1}MM${c2}Nh${c1}ssssssssss${c2}hN${c1}MM${c2}Md${c1}ssssssss. +sss${c2}yyyyyN${c1}MM${c2}Ny${c1}ssssssssssss${c2}yN${c1}MM${c2}My${c1}sssssss+ ossy${c2}NMMMNy${c1}MM${c2}h${c1}ssssssssssssss${c2}hm${c1}mm${c2}h${c1}ssssssso ossy${c2}NMMMNy${c1}MM${c2}h${c1}sssssssssssssshmmmh${c1}ssssssso +sss${c2}yyyyyN${c1}MM${c2}Ny${c1}ssssssssssss${c2}yN${c1}MM${c2}My${c1}sssssss+ .ssssssss${c2}dM${c1}MM${c2}Nh${c1}ssssssssss${c2}hN${c1}MM${c2}Md${c1}ssssssss. \ssssssss${c2}hN${c1}MM${c2}M${c1}yh${c2}hyyyyhdNM${c1}M${c2}MNh${c1}ssssssss/ +sssssssss${c2}dm${c1}ydMMMMMMMMdd${c2}ddy${c1}ssssssss+ \sssssssssss${c2}hdmNNNNmyNMMMMh${c1}ssssss/ .ossssssssssssssssss${c2}dMMMNyy${c1}ssso. -+sssssssssssssssss${c2}yy${c1}sss+- `:+ssssssssssssssssss+:` .-\+oossssoo+/-. """) hyfetch-1.99.0/hyfetch/distros/ubuntu_touch.py000066400000000000000000000006321470626616500215010ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ubuntu_touch = AsciiArt(match=r'''"Ubuntu Touch"*''', color='3 7', ascii=r""" ${c1} ############### ## ## ## ${c2}##${c1} ${c2}##${c1} ## ## ${c2}##${c1} ${c2}#${c1} ${c2}#${c1} ${c2}##${c1} ## ## ${c2}###${c1} ## ## ## ############### """) hyfetch-1.99.0/hyfetch/distros/ultramarine_linux.py000066400000000000000000000020521470626616500225150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt ultramarine_linux = AsciiArt(match=r'''"Ultramarine Linux"* | "ultramarine"*''', color='4 7', ascii=r""" ${c1} .cd0NNNNNNNXOdc. .:xKNNNNNNNNNNNNNNNNKd;. ,dXNNNNNNNNNNNNNNNNNNNNNNNd, 'ONNNNNNNNNNNNNNNNNNNNNNNNNNNNO' .xNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNk. .0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0. .0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0. dNNNNNNNNNNNNWWWWWWWWNNNNNNNNNNNNNNNNNNd NNNNNNNNNNNNNW${c2}MMMMMMMM${c1}WWNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNW${c2}MMMMMMMMM${c1}WWNNNNNNNNNNNNNN NNNNNNNNNNNNNNW${c2}MMMMMMMMMMMM${c1}WNNNNNNNNNNNN NNNNNNNNNNWWW${c2}MMMMMMMMMMMMMMMM${c1}WWWNNNNNNNX oNWWWW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WWWNNo OW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WO .OW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WO. lNW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WNl .dNW${c2}MMMMMMMMMMMMMMMMMMMMMMMM${c1}WNd. .cKW${c2}MMMMMMMMMMMMMMMMMMMM${c1}WKc. 'oOXWWW${c2}MMMMMMMM${c1}WWWXOl. ;lkXNNNNNNXkl' """) hyfetch-1.99.0/hyfetch/distros/unicodearch.py000066400000000000000000000023751470626616500212470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt unicodearch = AsciiArt(match=r'''"unicodearch"*''', color='6 6 7 1', ascii=r""" ${c1} ▄ ▟█▙ ▟███▙ ▟█████▙ ▟███████▙ ▂▔▀▜██████▙ ▟██▅▂▝▜█████▙ ▟█████████████▙ ▟███████████████▙ ▟█████████████████▙ ▟███████████████████▙ ▟█████████▛▀▀▜████████▙ ▟████████▛ ▜███████▙ ▟█████████ ████████▙ ▟██████████ █████▆▅▄▃▂ ▟██████████▛ ▜█████████▙ ▟██████▀▀▀ ▀▀██████▙ ▟███▀▘ ▝▀███▙ ▟▛▀ ▀▜▙ """) hyfetch-1.99.0/hyfetch/distros/univalent.py000066400000000000000000000014601470626616500207620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt univalent = AsciiArt(match=r'''"Univalent"*''', color='6 6', ascii=r""" ${c1} UUUUUUU UUUUUUU UUUUUUU UUUUUUU UUUUUUU A UUUUUUU UUUUUUU A|A UUUUUUU UUUUUUU A | A UUUUUUU UUUUUUU A | A UUUUUUU UUUUUUU A| | |A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUUAAAAAAAAAAAUUUUUUU UUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUU """) hyfetch-1.99.0/hyfetch/distros/univention.py000066400000000000000000000023341470626616500211540ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt univention = AsciiArt(match=r'''"Univention"*''', color='1 7', ascii=r""" ${c1} ./osssssssssssssssssssssso+- `ohhhhhhhhhhhhhhhhhhhhhhhhhhhhy: shhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh- `-//${c2}sssss${c1}/hhhhhhhhhhhhhh+${c2}s${c1}.hhhhhhhhh+ .ohhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sss${c1}+hhhhhhh+ .yhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}ssss${c1}:hhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}ssssss${c1}+yhhhhhhhhhhy/${c2}ssssss${c1}yhhhhh+ +hhhhhh:${c2}sssssss${c1}:hhhhhhh+${c2}.ssssssss${c1}yhhhhy. +hhhhhhh+`${c2}ssssssssssssssss${c1}hh${c2}sssss${c1}yhhho` +hhhhhhhhhs+${c2}ssssssssssss${c1}+hh+${c2}sssss${c1}/:-` -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhho :yhhhhhhhhhhhhhhhhhhhhhhhhhhhh+` -+ossssssssssssssssssssss+:` """) hyfetch-1.99.0/hyfetch/distros/uos.py000066400000000000000000000021031470626616500175560ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt uos = AsciiArt(match=r'''"Uos"*''', color='1 7 3', ascii=r""" ${c1} ....... .............. ...................... ............................. uuuuuu uuuuuu ooooooooooo ssssssssss u::::u u::::u oo:::::::::::oo ss::::::::::s u::::u u::::u o:::::::::::::::oss:::::::::::::s u::::u u::::u o:::::ooooo:::::os::::::ssss:::::s u::::u u::::u o::::o o::::o s:::::s ssssss u::::u u::::u o::::o o::::o s::::::s u::::u u::::u o::::o o::::o s::::::s u:::::uuuu:::::u o::::o o::::ossssss s:::::s u:::::::::::::::uuo:::::ooooo:::::os:::::ssss::::::s u:::::::::::::::uo:::::::::::::::os::::::::::::::s uu::::::::uu:::u oo:::::::::::oo s:::::::::::ss uuuuuuuu uuuu ooooooooooo sssssssssss ............................. ..................... ............. ...... """) hyfetch-1.99.0/hyfetch/distros/urukos.py000066400000000000000000000022041470626616500203020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt urukos = AsciiArt(match=r'''"UrukOS"*''', color='12 12 7 12 4', ascii=r""" ${c3} :${c4}:::::::::::::: ${c5}. ${c3}=#${c4}*============. ${c5}:#: ${c3}=##%${c4}+----------. ${c5}.###: ${c3}=####. ${c5}.####: ${c3}=####. ${c5}.####: ${c3}=###*. .=${c4}--------. ${c5}####: ${c3}=####. .*#+${c4}======- ${c5}####: ${c3}=###*. .*###+${c4}====- ${c5}####: ${c3}=###*. .*#####+${c4}==- ${c5}####: ${c3}=###*. .*#######+${c4}: ${c5}####: ${c3}=###*. .*#######+${c4}: ${c5}####: ${c3}=###*. .*#####+${c4}==- ${c5}####: ${c3}=###*. .*###+${c4}====- ${c5}####: ${c3}=####. .*#+${c4}======- ${c5}####: ${c3}=###*. .=${c4}--------. ${c5}.####: ${c3}=####. ${c5}.####: ${c3}=####. ${c5}.####: ${c3}=###+${c4}--------------${c5}####: ${c3}=#+${c4}=================-${c5}: ${c3}:${c4}::::::::::::::::::. """) hyfetch-1.99.0/hyfetch/distros/uwuntu.py000066400000000000000000000022231470626616500203220ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt uwuntu = AsciiArt(match=r'''"uwuntu"*''', color='225 206 52', ascii=r""" ${c1} && &&&&&&&& , *&&&&&& &&&&&&&&( &%%%%&&&& &&&&&&&&&&&& ,&&&&& %%${c2}%%%%&&${c1}&&& ,&&&&&&&&&&&&&, %&&&$&&&%%$%%%. &%%%${c2}%&&&&&${c1}&&# &, &&&&&&${c2}&&&&&&&%%%${c1}%% &%%&&${c2}&&&&${c1}&&&( &&&${c2}&&&&&&%${c1}%%% &&&&&${c2}&&&${c1}&% *&&${c2}&&&&&${c1}&&% &&&/ &&&&${c3}\${c1}& ,${c3}/${c1}*.** %&&&&&&&& &&&${c3}⟩${c1}., *.${c3}⟨${c1} %&&&&&&&& &&${c3}/${c1}.. ${c3}/ \${c1} ..${c3}\${c1}(&&&&&& #&&&#%%%%.%%%( ${c3}\_/\_/${c1} (%%%.%%%%/ /%%%%%%%&&* ,&&&%%%%%%& &&&&&&&& &&&&&&&&&&& (&&&&& &&&&&&&&&&& ${c2}%%${c1} & &&&&&&&&&&&& &&&&&&& ${c2}%%%${c1} #&&&&&&# &&&&&&&&& ${c2}%%%%% %%${c1} #&&&&&( ${c2}&%. %%%${c1} ${c2}%%%%%%% """) hyfetch-1.99.0/hyfetch/distros/vanilla.py000066400000000000000000000017701470626616500204070ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt vanilla = AsciiArt(match=r'''"Vanilla"*''', color='11 15', ascii=r""" ${c1} .OO. .OOOO. .OO${c2}II${c1}OO. IOOO${c2}II${c1}OOOI .OOOO${c2}II${c1}OOOO. ............IOOOO${c2}II${c1}OOOOI............ OOOOOOOOOOOOOOOOOO${c2}II${c1}OOOOOOOOOOOOOOOOOO OOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOO OOOOO${c2}III${c1}OOOOOOOO${c2}II${c1}OOOOOOOO${c2}III${c1}OOOOO OOOOOOO${c2}IIII${c1}OO${c2}I....I${c1}OO${c2}IIII${c1}OOOOOOO OOOOOOOOOO${c2}II.. ..II${c1}OOOOOOOOOO OOOOOOO${c2}II. .II${c1}OOOOOOO OOOOOO${c2}II:......:II${c1}OOOOOO OOOOOOOOO${c2}IIIIIIII${c1}OOOOOOOOO OOOOOO${c2}II${c1}OOOOOOOOOOOO${c2}II${c1}OOOOOO OOOO${c2}II${c1}OOOOOOOI IOOOOOO${c2}II${c1}OOOO IOO${c2}II${c1}OOOOOOOO: :OOOOOOOO${c2}II${c1}OOI IOOOOOOOOOOII IIOOOOOOOOOOI """) hyfetch-1.99.0/hyfetch/distros/venom.py000066400000000000000000000013571470626616500201060ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt venom = AsciiArt(match=r'''"Venom"*''', color='8 4', ascii=r""" ${c1} `-` -yys+/-` `oyyyyy: /osyyyyso+:. /yyyyy+`+yyyyyyyyyys/. .-yyyyys.:+//+oyyyyyyyo. `oy/`oyyyyy/ ./syyyyy: syyys`:yyyyyo` :yyyyy: /yyyyo .syyyyy- .yyyyy. yyyyy. +yyyyy/ /yyyy/ `yyyyy :yyyyys` -yyyyo yyyyy. `syyyyy- /yyyy/ /yyyyo /yyyyy+ .yyyyy. syyyys. -yyyyys.:yyyy: `oyyyyyo-` `oyyyyy:.sy: :syyyyyyso+/++`/yyyyyo`` -oyyyyyyyyyyy-.syyyys. -/+osyyyyso.`+yyyyy/ .-/+syo` `. """) hyfetch-1.99.0/hyfetch/distros/venom_small.py000066400000000000000000000005711470626616500212730ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt venom_small = AsciiArt(match=r'''"venom_small"*''', color='8 4', ascii=r""" ${c1} ++** *===**====+* *====* +===+ *==*+===* *===* *===* *===+ *===* *===* +===+ *===* *===* +===* *===* *===* *===+*==* +===+ *===+=* *+====**===* **++ """) hyfetch-1.99.0/hyfetch/distros/vnux.py000066400000000000000000000016451470626616500177620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt vnux = AsciiArt(match=r'''"VNux"*''', color='11 8 15 1 7', ascii=r""" ${c1} ` ^[XOx~. ^_nwdbbkp0ti' ${c2} _j>!vC1,, ${c4},${c2} ,CY${c3}O${c2}t${c3}O${c2}1(l;" `${c4}~-{r(1I${c2} ^${c1}/zmwJuc:${c2}I^ '${c4}?)|${c1}U${c4}/}-${c2} ^${c3}f${c1}OCLLOw${c3}_${c2},; ,${c4}i,``. ${c2}",${c3}k%ooW@$d"${c2}I,' ' ;^${c3}u$$$$$$$$^<${c2}:^ ` .>>${c3}($$${c5}$@@@@$$${c3}$nl${c2}[:: `!}?${c3}B$${c5}%&WMMW&%$${c3}$1}-${c2}}": ^?j${c3}Z$${c5}WMMWWWWMMW$${c3}ofc${c2};;` <~x&${c3}$${c5}&MWWWWWWWWp${c3}-${c5}l>[< ${c1} 'ljmwn${c2}~tk8${c5}MWWWWM8O${c2}X${c1}r${c2}+]nC${c1}[ !JZqwwdX${c2}:^C8${c5}#MMMM@${c2}X${c1}Odpdpq0< ^x00J(" ^" """) hyfetch-1.99.0/hyfetch/distros/void.py000066400000000000000000000032501470626616500177150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt void = AsciiArt(match=r'''"Void"*''', color='8 2 7', ascii=r""" ${c1} .......... .::::::::::::::::::.. ..:::::::::::::::::::::::::. '::::::::::::::::::::::::::::. ':::::'' '':::::::::::::. ${c3} .. ${c1}' '':::::::::. ${c3} .||. ${c1}'::::::::: ${c3} .|||||. ${c1}':::::::: ${c3} .|||||||: ${c1}:::::::: ${c3} |||||||: ${c1}.::::::::. :::::::: ${c2} ######${c3}||||||' ${c2}##^ v##########v${c1}::. ${c2}##### #############v ${c2} ######${c3}||||| ${c2}##^ v####${c1}::::::${c2}####v${c1}::${c2}##### #####${c1}:::::${c2}##### ${c2} ######${c3}||${c2}##^ #####${c1}::::::${c2}#####${c1}::${c2}##### #####${c1}:::::${c2}###### ${c2} ######^${c3}|| ${c2}#####${c1}:::::${c2}####^${c1}::${c2}##### #####${c1}:::::${c2}#####^ ${c2} ##^${c3}||||| ${c2}^###########^${c1}:::${c2}##### ##############^ ${c3} |||||||: ${c1}'::::::::' .:::::::: ${c3} '|||||||: ${c1}.::::::::' ${c3} '|||||||:. ${c1}':::::: ${c3} '||||||||:. ${c1}'::: ${c3} ':|||||||||. . ${c1}' ${c3} '|||||||||||:... ...:||||. ${c3} ':||||||||||||||||||||||||||. ${c3} ':|||||||||||||||||||||||'' ${c3} '':||||||||||||||:'' ${c3} '''''' """) hyfetch-1.99.0/hyfetch/distros/void_small.py000066400000000000000000000004121470626616500211020ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt void_small = AsciiArt(match=r'''"void_small"''', color='2 8', ascii=r""" ${c1} _______ _ \______ - | \ ___ \ | | | / \ | | | | \___/ | | | \______ \_| -_______\ """) hyfetch-1.99.0/hyfetch/distros/vzlinux.py000066400000000000000000000016311470626616500204740ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt vzlinux = AsciiArt(match=r'''"VzLinux"*''', color='1 7 3', ascii=r""" ${c2} ${c1}.::::::::.${c2} `/////` ${c1}:zzzzzzzz${c2} ://///- VVVVVu` ${c1}-zzz`${c2} /VVVVV. `dVVVVV ${c1}.zzz`${c2} :VVVVV: `VVVVVo ${c1}zzz${c2} -VVVVV/ .VVVVV\ ${c1}zzz/${c2} .VVVVV+ -VVVVV: ${c1}zzzzzzzzz${c2} .dVVVVs \VVVVV- ${c1}`````````${c2} VVVVVV +VVVVV. sVVVVu` oVVVVd` +VVVVd` VVVVVV /VVVVV. `uVVVVs -VVVVV- `dVVVV+ .VVVVV/ .VVVVV\ `dVVVV+ -VVVVV-`uVVVVo :VVVVVVVVVVV \VVVVVVVVu oVVVVVVd` sVVVVV. ----. """) hyfetch-1.99.0/hyfetch/distros/wii_linux_ngx.py000066400000000000000000000023671470626616500216470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt wii_linux_ngx = AsciiArt(match=r'''*"wii-linux-ngx"*|*"whiite-linux"*| *"gc-linux"*''', color='6 7', ascii=r""" ${c1}''''''' `~;:` -'''''' ~kQ@@g\ ,EQ@@g/ h@@@@@@' o@@@@@9` `@@@@@@D `@@@@@@@= @@@@@@@? '@@@@@@X o@@@@@@@D v@@@@@@: R@@@@@@, D@@@@@@_ t@@@@@@' _@@@@@@@@@; `Q@@@@@U ;fmo/- ;fmo/- `Q@@@@@m d@@@@@@@@@N 7@@@@@@' L@@@@@@' :@@@@@&@@@@@| `Q@@@@@Z :]]]]]v :]]]]]v Q@@@@@X R@@@@Q`g@@@@Q f@@@@@Q- z@@@@@Q v@@@@@Q r@@@@@@~ ;@@@@@/ ;@@@@@L `@@@@@@/ z@@@@@Q v@@@@@Q d@@@@@q M@@@@# H@@@@Q ]@@@@@Q z@@@@@Q v@@@@@Q ,@@@@@@, >@@@@@; _@@@@@c `@@@@@@> z@@@@@Q v@@@@@Q X@@@@@U Q@@@@R Z@@@@Q`{@@@@@N z@@@@@Q v@@@@@Q .@@@@@@S@@@@@: -@@@@@e@@@@@@: z@@@@@Q v@@@@@Q {@@@@@@@@@@U t@@@@@@@@@@e z@@@@@Q v@@@@@Q `Q@@@@@@@@@' `Q@@@@@@@@@- z@@@@@Q v@@@@@Q :@@@@@@@@| ;@@@@@@@@= z@@@@@Q v@@@@@Q '2#@@Q6: ,eQ@@QZ~ /QQQQQg \QQQQQN """) hyfetch-1.99.0/hyfetch/distros/windows.py000066400000000000000000000015071470626616500204510ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt windows = AsciiArt(match=r'''"Windows"*''', color='1 2 4 3', ascii=r""" ${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>*` """) hyfetch-1.99.0/hyfetch/distros/windows95.py000066400000000000000000000021271470626616500206260ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt windows95 = AsciiArt(match=r'''"Windows95"''', color='6 4 3 2 1 0', ascii=r''' ${c6} ___ .--=+++++=-:. . _ *%@@@@@@@@@@@@@@* *:+:.__ :+* @@@ @"${c5}_*&%${c6}@@${c4}%&&&*${c6}"@@@ "+.-#+ +%* " _ ${c5}++&&&%${c6}@@${c4}%&&&&&#${c6}@@ ${c5} " , ${c6}%@@ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@ ${c5} * oo *# ${c6}" _ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@ ${c5} " , ${c6}%@@ ${c5}&&&&"${c6}@@@@#*${c4}"&&&${c6}@@ .${c5} * oo *# ${c6}" _ %@@@@@@@@@@@@@@@@ *:+:.__ :=* %@@ @"${c1}**&%${c6}@@${c3}%&&&*${c6}"@@@ "+.-#+ +%* " _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@ ${c1} " , ${c6}%@@ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@ ${c1} * oo *# ${c6}" _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@ ${c1} " , ${c6}%@@ ${c1}&&*"${c6}%@@@@@@${c3}"*%&${c6}@@ .${c1} * oo *# ${c6}" _ @@@@@@@@@@@@@@@@@ *:+:.__ :+# @@@ @%#=+""""""+==%#@ "+.-#+ +%* %+" " ":@ " " ''') hyfetch-1.99.0/hyfetch/distros/windows_10.py000066400000000000000000000016111470626616500207450ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt windows_10 = AsciiArt(match=r'''*"[Windows 10]"*|*"on Windows 10"*|"Windows 8"*| "Windows 10"* |"windows10"|"windows8"''', color='6 7', ascii=r""" ${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 `` """) hyfetch-1.99.0/hyfetch/distros/windows_11.py000066400000000000000000000013241470626616500207470ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt windows_11 = AsciiArt(match=r'''*"[Windows 11]"*|*"on Windows 11"*| "Windows 11"* |"windows11"''', color='4 6', ascii=r""" ${c1} ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ """) hyfetch-1.99.0/hyfetch/distros/wrt.py000066400000000000000000000005521470626616500175720ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt wrt = AsciiArt(match=r'''*"Wrt"*''', color='4 7 1', ascii=r""" ${c1} _______ | |.-----.-----.-----. | - || _ | -__| | |_______|| __|_____|__|__| |__| ________ __ | | | |.----.| |_ | | | || _|| _| |________||__| |____| """) hyfetch-1.99.0/hyfetch/distros/xenia.py000066400000000000000000000025711470626616500200650ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt xenia = AsciiArt(match=r'''"Xenia"*''', color='#55CDFD' '#F6AAB7' '#FFFFFF', ascii=r""" ${c3} !${c3}`${c3} @ ${c3} @${c3}```${c3}b @@@@@ ${c3} @${c3}`````${c3}@ @/${c3}@@@@ ${c3} @@${c3}``'))))))))))C@@ ${c3} @@@){)))))()))))))) ${c3} @r))))@${c1}oooo${c3})))))h)))[ ${c3} rr)))j${c1}oooooo${c3}(x${c1}ooooo${c3}$@) ${c3} rrrxr))r/l;${c1},,,${c3}z@{${c1},,,,,${c3}@@ ${c3} rr ) ${c2}v${c3} @;@rx ${c3} rrr) ${c2}\__^__/${c3} ji ${c3} rj]. . r ${c3}[[${c2}]]${c1}11111111111111111] ${c2}]${c3}[[[${c2}]]][${c1}11111111111111111< ${c2}]${c3}[[[[[${c2}]]]]]]]]]]]]]]${c1}-111111[ ${c2}]-${c3}[[[[[[;${c2}]]]]]]]]]]]]]]]]${c1} 1 ${c2}]]${c3}[[[[[[[[[[[${c2}]]]]]]]]]]]]] ${c1}1${c2}]][${c3}[[[[[[[[[[[[[${c2}<]]]]]]]]] ${c1}11${c2}]]]${c3}[[[[[[[[[[[[[[[${c2}]]]]]]] ${c1}111${c2}]]]]'${c3}[[[[[[[[[[[[[[${c2}]]]] ${c1}111-${c2}]]]]]${c3}[[[[[[[[[[[[[${c2}]] ${c1}11111${c2}]]]]]_${c3}[[[[[[[[[[${c2}] ${c1}11111${c2}]]]i${c3}[[[[[[[[ ${c1}1111${c2}]]+${c3}[[[[[[^ ${c1}11 ${c2}]]${c3}[[[[[[ ${c1}11 +${c2}]${c3}[[[[ ${c1}1 ${c2}]${c3}[[ ` """) hyfetch-1.99.0/hyfetch/distros/xenia2.py000066400000000000000000000025551470626616500201510ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt xenia2 = AsciiArt(match=r'''"Xenia2"*''', color='#55CDFD' '#F6AAB7' '#FFFFFF', ascii=r""" ${c2} ,c. .c; ${c2} .${c1}KMMMk${c2}.... ....${c1}kMMMK${c2}. ${c2} .${c1}WMMMMMX${c2}..... .....${c1}KMMMMMW. ${c1} XMMMMMMM0${c2}..... ....${c1}OMMMMMMMN ${c1} dMMMMMMMMM;${c2}.... ..... ....,${c1}MMMMMMMMMd ${c1} WMMMMMMMMMl;${c3}okKKKKKKKKKOo${c1};cMMMMMMMMMM ${c1} 'MMMMMMMNX${c2}K0${c3}KKKKKKKKKKKKKKK${c2}0K${c1}XNMMMMMMM; ${c1} oMMMMMMM${c2}Oxo${c3}KKKKKKKKKKKKKKKKK${c2}oxO${c1}MMMMMMMd ${c1} dMMMMMMM${c2}dxxx${c3}KKKKKKKKKKKKKKK${c2}xxxd${c1}NMMMMMMk ${c1} :MMMMX0${c2}xxxxxx${c3}0KKKKKKKK0KK0${c2}xxxxxx0${c1}XMMMMc ${c1} MMMO${c2}xxxxxxxxdx${c3}kdd${c2}0x0${c3}ddk${c2}xdxxxxxxxx${c1}OMMM ${c1} ;${c2}xxkxddxxxxdodxxxxdxdxxxxdodxxxxddxkxx${c1}; ${c1}dxd${c2}KMMMWXo${c1}'.....'${c2}cdxxxdc${c1}'.....'${c2}lXWMMMX${c1}dxd ${c1}cxd${c2}XMMMN${c1},..........${c2}dxd${c1}'.........'${c2}XMMMN${c1}dxl ${c1} .xx${c2}WMMl${c1}...''....'.;k:.'....''...${c2}lMMW${c1}xx. ${c1}..:kXMMx..'....''..kMk..''....'..xMMXkc.. ${c1} dMMMMMMd.....'...xMMMx...''....dMMMMMMx ${c1} kMMMMWOoc:coOkolllokOoc:coOWMMMMO ${c1} .MMMMMMMMl${c2}...${c1}lNMMMMMMM. ${c1} KMMMMMMX${c2}l${c1}KMMMMMMX ${c1} .MMMMMMMMM. """) hyfetch-1.99.0/hyfetch/distros/xferience.py000066400000000000000000000014621470626616500207270ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt xferience = AsciiArt(match=r'''*"XFerience"*''', color='6 6 7 1', ascii=r""" ${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++/-` `.-//++++++//:-.` `````` """) hyfetch-1.99.0/hyfetch/distros/xray_os.py000066400000000000000000000031161470626616500204410ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt xray_os = AsciiArt(match=r'''"Xray_OS"*''', color='15 14 16 24', ascii=r""" ${c1} ${c1}rrrrrraaaaaaaaaaaayyyy ${c1}xxrrrrrrrraaaaaaaaaaaayyyyyyyyy ${c1}xxxxxrrrrrrrraaaaaaaaaaaayyyyyyy${c3}yyyyy${c2}yyyyyyyyyy ${c1}xxxxxxxrrrrrrrraaaaa ${c2}aaaaayyyyyyyyyyyyyyyyyyy ${c1}xxxxxx${c3}xxx${c1}rrrrrrrraaaa ${c2}aaaaaaayyyyyyyyyyyyyyyyy ${c1}xxxxxx${c3}xxxxxr${c1}rrrrrrraa ${c2}aaaaaaaaay${c3}yyyyyyyyy${c2}yyyy ${c1}yy ${c1}xxxxxxx${c3}xxx${c1}xxrrrrrrrra ${c2}aaaaaaaaa${c3}ayyyyyyyyyyyy${c1}yyyyyy ${c1}xxxxxxxxxxxxrrrrrrrr ${c2}aaaaaaaaaaa${c3}yyyyyyyyyyyy${c1}yyyyyyy ${c1}xxxxxxxxxxxxxrrrrrr ${c2}raaaaaaaaaaaayyy${c3}yyyyyyyy${c1}yyyyyy${c1}yyy ${c1}xxxxxxxxxxxxxrrrrr ${c2}rraaaaaaaaaaaayyyyy${c3}yy${c2}yyyyyy ${c1}yyyyyy ${c1}xxxxxxxx${c3}xxxx${c1}xrrrrr${c2}rr${c3}raaaaaaa${c2}aaaaayyyyyyyyyy ${c1}yyyyyyyyy ${c1}xxxxxxx${c3}xxxx${c1}xxrrrrrrr${c3}raaaaaa${c2}aaaaaayyyyyyy ${c1}yyyyyyyyyyyy ${c1}xxxxxxx${c3}xxx${c1}xxxrrrrrrrr${c3}aaaaaa${c2}aaaaaayyyy ${c1}yyyyyyyyyyyyyy ${c1}xxxxxxxxxxxxrrrrrrrra ${c2}aaaaaaaaaay ${c1}yyyyyyyyyyyyyyyy ${c1}xxxxxxxxxxxrrrrrrr ${c2}aaaaaaaaaaaayyyy${c1}yyyyyyyyyyyyy ${c1}xxxxxxx${c3}xxxrr${c1}rrrr ${c2}raaaaaaaaaaaa ${c1}yyyyyyyyyyyyyyy ${c1}xxxxxxxxrrrr ${c2}rrraaaaaaaaa ${c1}aayyyyyyyyyyyyyy ${c1}xxxxxxrrrrrrr ${c2}aaaaaa ${c1}aaaayyyyyyyyyyyy ${c1}xxxrrrrrr ${c2}raaa ${c1}aaaaaaayyyyyyyyy ${c1}rrrr ${c2}rr ${c1}aaaaaaaaaayyyyyy ${c2}r ${c1}aaaaaaaaaa """) hyfetch-1.99.0/hyfetch/distros/xubuntu.py000066400000000000000000000021641470626616500204710ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt xubuntu = AsciiArt(match=r'''"Xubuntu"*''', color='4 7 1', ascii=r""" ${c1} `.:/ossyyyysso/:. `.yyyyyyyyyyyyyyyyyyyy.` `yyyyyyyyyyyyyyyyyyyyyyyyyy` `yyyyyyyyyyyyyyyyyyyy${c2}::${c1}yyyyyyyy` .yyyyyyyyyyy${c2}/+:${c1}yyyyyyy${c2}ds${c1}yyy${c2}+y${c1}yyyy. yyyyyyy${c2}:o/${c1}yy${c2}dMMM+${c1}yyyyy${c2}/M+${c1}y${c2}:hM+${c1}yyyyyy yyyyyyy${c2}+MMMy${c1}y${c2}mMMMh${c1}yyyyy${c2}yM::mM+${c1}yyyyyyyy `yyyyyyy${c2}+MMMMysMMMd${c1}yyyyy${c2}dh:mN+${c1}yyyyyyyyy` yyyyyyyy${c2}:NMMMMmMMMMmmdhyy+/y:${c1}yyyyyyyyyyy yyyyyyyy${c2}+MMMMMMMMMMMMMMMMMMNho:${c1}yyyyyyyyy yyyyyyyy${c2}mMMMMMMMMMMMMMMMMMMMMMMy${c1}yyyyyyyy yyyyyyy${c2}+MMMMMMMMMMMMMMMMMMMMMMMM/${c1}yyyyyyy `yyyyyy${c2}sMMMMMMMMMMMMMMMMMMMMMMmo${c1}yyyyyyy` yyyyyy${c2}oMMMMMMMMMMMMMMMMMMMmy+${c1}yyyyyyyyy yyyyy${c2}:mMMMMMMMMMMMMMMNho/${c1}yyyyyyyyyyy .yyyy${c2}:yNMMMMMMMNdyo:${c1}yyyyyyyyyyyyy. `yyyyyy${c2}:/++/::${c1}yyyyyyyyyyyyyyyyy` `yyyyyyyyyyyyyyyyyyyyyyyyyy` `.yyyyyyyyyyyyyyyyyyyy.` `.:/oosyyyysso/:.` """) hyfetch-1.99.0/hyfetch/distros/yiffos.py000066400000000000000000000015471470626616500202620ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt yiffos = AsciiArt(match=r'''"yiffOS"*''', color='93 92', ascii=r""" ${c1} NK NxKXW WOlcoXW 0olccloxNW XxllllllloxOKNW Nklllllllllllodk0XWW N0dllllllllllllllodxOKNW WKxlllllllllllllllllllooxOKN WKdllllllllllllllooooooooooooo Nxllllllllllllllloooooooooo${c2}oooo ${c1} XXNOolllllllllllloooooooooo${c2}oooooo ${c1} WX0xolllllllllllooooooooooo${c2}oooooooo ${c1} XWN0xolllllllllloooooooo${c2}ooooooooooooo ${c1} Kkdolllllllooooddddd${c2}doooooooooooddo ${c1} K00XNW${c2} WX0xdooooooddddddd WXOxdoooooodddd WXOxdddddddd NX0ddd WN0d """) hyfetch-1.99.0/hyfetch/distros/zorin.py000066400000000000000000000012161470626616500201150ustar00rootroot00000000000000# This file is automatically generated. Please do not modify. from . import AsciiArt zorin = AsciiArt(match=r'''"Zorin"*''', color='4 6', ascii=r""" ${c1} `osssssssssssssssssssso` .osssssssssssssssssssssso. .+oooooooooooooooooooooooo+. `::::::::::::::::::::::. .:` `+ssssssssssssssssss+:.` `.:+ssso` .ossssssssssssssso/. `-+ossssssso. ssssssssssssso/-` `-/osssssssssssss .ossssssso/-` .-/ossssssssssssssso. `+sss+:. `.:+ssssssssssssssssss+` `:. .::::::::::::::::::::::` .+oooooooooooooooooooooooo+. -osssssssssssssssssssssso- `osssssssssssssssssssso` """) hyfetch-1.99.0/hyfetch/font_logo.py000066400000000000000000000022131470626616500172510ustar00rootroot00000000000000import json from pathlib import Path from hyfetch.constants import CACHE_PATH from hyfetch.neofetch_util import get_distro_name def get_font_logo() -> str: cache = CACHE_PATH / 'font_logo_cache.txt' if cache.exists(): return cache.read_text('utf-8') font_logos: dict[str, str] = json.loads((Path(__file__).parent / 'data/font_logos.json').read_text('utf-8')) font_logos = {k.lower(): v for k, v in font_logos.items()} # Get the distro distro = get_distro_name().lower() # Find most likely distro by containing string for k in font_logos.keys(): if k in distro: distro = k # If not found, try matching partial string (by splitting with " ") if not distro: for k in font_logos.keys(): if any(x in distro for x in k.split(' ')): distro = k # If still not found, give up if not distro: raise ValueError(f'No font logo found for distro: {distro}. The supported logos are in https://github.com/Lukas-W/font-logos') logo = font_logos[distro] cache.parent.mkdir(parents=True, exist_ok=True) cache.write_text(logo) return logo hyfetch-1.99.0/hyfetch/main.py000077500000000000000000000416771470626616500162330ustar00rootroot00000000000000#!/usr/bin/env python3 from __future__ import annotations import argparse import datetime import importlib.util import json import random import traceback from itertools import permutations from math import ceil from . import termenv, neofetch_util, pride_month from .color_scale import Scale from .color_util import clear_screen from .constants import * from .font_logo import get_font_logo from .models import Config from .neofetch_util import * from .presets import PRESETS def check_config(path) -> Config: """ Check if the configuration exists. Return the config object if it exists. If not, call the config creator :return: Config object """ if path.is_file(): try: return Config.from_dict(json.loads(path.read_text('utf-8'))) except KeyError: return create_config() return create_config() def create_config() -> Config: """ Create config interactively :return: Config object (automatically stored) """ # Detect terminal environment (doesn't work on Windows) det_bg = termenv.get_background_color() det_ansi = termenv.detect_ansi_mode() asc = get_distro_ascii() asc_width, asc_lines = ascii_size(asc) logo = color("&l&bhyfetch&~&L" if det_bg is None or det_bg.is_light() else "&l&bhy&ffetch&~&L") title = f'Welcome to {logo} Let\'s set up some colors first.' clear_screen(title) option_counter = 1 def update_title(k: str, v: str): nonlocal title, option_counter if not k.endswith(":"): k += ':' title += f"\n&e{option_counter}. {k.ljust(30)} &~{v}" option_counter += 1 def print_title_prompt(prompt: str): printc(f'&a{option_counter}. {prompt}') ############################## # 0. Check term size try: term_len, term_lines = os.get_terminal_size().columns, os.get_terminal_size().lines term_len_min = 2 * asc_width + 4 term_lines_min = 30 if term_len < term_len_min or term_lines < term_lines_min: printc(f'&cWarning: Your terminal is too small ({term_len} * {term_lines}). \n' f'Please resize it to at least ({term_len_min} * {term_lines_min}) for better experience.') input('Press enter to ignore...') except: # print('Warning: We cannot detect your terminal size.') pass ############################## # 1. Select color system def select_color_system(): if det_ansi == 'rgb': return 'rgb', 'Detected color mode' clear_screen(title) term_len, term_lines = term_size() scale2 = Scale(['#12c2e9', '#c471ed', '#f7797d']) _8bit = [scale2(i / term_len).to_ansi_8bit(False) for i in range(term_len)] _rgb = [scale2(i / term_len).to_ansi_rgb(False) for i in range(term_len)] printc('&f' + ''.join(c + t for c, t in zip(_8bit, '8bit Color Testing'.center(term_len)))) printc('&f' + ''.join(c + t for c, t in zip(_rgb, 'RGB Color Testing'.center(term_len)))) print() print_title_prompt('Which &bcolor system &ado you want to use?') printc(f'(If you can\'t see colors under "RGB Color Testing", please choose 8bit)') print() return literal_input('Your choice?', ['8bit', 'rgb'], 'rgb'), 'Selected color mode' # Override global color mode color_system, ttl = select_color_system() GLOBAL_CFG.color_mode = color_system update_title(ttl, color_system) ############################## # 2. Select light/dark mode def select_light_dark(): if det_bg is not None: return det_bg.is_light(), 'Detected background color' clear_screen(title) inp = literal_input(f'2. Is your terminal in &blight mode&~ or &4dark mode&~?', ['light', 'dark'], 'dark') return inp == 'light', 'Selected background color' is_light, ttl = select_light_dark() light_dark = 'light' if is_light else 'dark' GLOBAL_CFG.is_light = is_light update_title(ttl, light_dark) ############################## # 3. Choose preset # Create flags = [[lines]] flags = [] spacing = max(max(len(k) for k in PRESETS.keys()), 20) for name, preset in PRESETS.items(): flag = preset.color_text(' ' * spacing, foreground=False) flags.append([name.center(spacing), flag, flag, flag]) # Calculate flags per row flags_per_row = term_size()[0] // (spacing + 2) row_per_page = max(1, (term_size()[1] - 13) // 5) num_pages = ceil(len(flags) / (flags_per_row * row_per_page)) # Create pages pages = [] for i in range(num_pages): page = [] for j in range(row_per_page): page.append(flags[:flags_per_row]) flags = flags[flags_per_row:] if not flags: break pages.append(page) def print_flag_page(page: list[list[list[str]]], page_num: int): clear_screen(title) print_title_prompt("Let's choose a flag!") printc('Available flag presets:') print(f'Page: {page_num + 1} of {num_pages}') print() for i in page: print_flag_row(i) print() def print_flag_row(current: list[list[str]]): [printc(' '.join(line)) for line in zip(*current)] print() page = 0 while True: print_flag_page(pages[page], page) tmp = PRESETS['rainbow'].set_light_dl_def(light_dark).color_text('preset') opts = list(PRESETS.keys()) if page < num_pages - 1: opts.append('next') if page > 0: opts.append('prev') print("Enter 'next' to go to the next page and 'prev' to go to the previous page.") preset = literal_input(f'Which {tmp} do you want to use? ', opts, 'rainbow', show_ops=False) if preset == 'next': page += 1 elif preset == 'prev': page -= 1 else: _prs = PRESETS[preset] update_title('Selected flag', _prs.set_light_dl_def(light_dark).color_text(preset)) break ############################# # 4. Dim/lighten colors def select_lightness(): clear_screen(title) print_title_prompt("Let's adjust the color brightness!") printc(f'The colors might be a little bit too {"bright" if is_light else "dark"} for {light_dark} mode.') print() # Print cats num_cols = (term_size()[0] // (TEST_ASCII_WIDTH + 2)) or 1 mn, mx = 0.15, 0.85 ratios = [col / num_cols for col in range(num_cols)] ratios = [(r * (mx - mn) / 2 + mn) if is_light else ((r * (mx - mn) + (mx + mn)) / 2) for r in ratios] lines = [ColorAlignment('horizontal').recolor_ascii(TEST_ASCII.replace( '{txt}', f'{r * 100:.0f}%'.center(5)), _prs.set_light_dl(r, light_dark)).split('\n') for r in ratios] [printc(' '.join(line)) for line in zip(*lines)] def_lightness = GLOBAL_CFG.default_lightness(light_dark) while True: print() printc(f'Which brightness level looks the best? (Default: {def_lightness * 100:.0f}% for {light_dark} mode)') lightness = input('> ').strip().lower() or None # Parse lightness if not lightness or lightness in ['unset', 'none']: return def_lightness try: if lightness.endswith('%') or int(lightness) > 1: lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else int(lightness) / 100 else: lightness = float(lightness) assert 0 <= lightness <= 1 return lightness except Exception: printc('&cUnable to parse lightness value, please enter a lightness value such as 45%, .45, or 45') lightness = select_lightness() _prs = _prs.set_light_dl(lightness, light_dark) update_title('Selected Brightness', f"{lightness:.2f}") ############################# # 5. Color arrangement color_alignment = None fore_back = get_fore_back() # Calculate amount of row/column that can be displayed on screen ascii_per_row = max(1, term_size()[0] // (asc_width + 2)) ascii_rows = max(1, (term_size()[1] - 8) // asc_lines) # Displays horizontal and vertical arrangements in the first iteration, but hide them in # later iterations hv_arrangements = [ ('Horizontal', ColorAlignment('horizontal', fore_back=fore_back)), ('Vertical', ColorAlignment('vertical')) ] arrangements = hv_arrangements.copy() # Loop for random rolling while True: clear_screen(title) # Random color schemes pis = list(range(len(_prs.unique_colors().colors))) slots = list(set(map(int, re.findall('(?<=\\${c)[0-9](?=})', asc)))) while len(pis) < len(slots): pis += pis perm = {p[:len(slots)] for p in permutations(pis)} random_count = max(0, ascii_per_row * ascii_rows - len(arrangements)) if random_count > len(perm): choices = perm else: choices = random.sample(sorted(perm), random_count) choices = [{slots[i]: n for i, n in enumerate(c)} for c in choices] arrangements += [(f'random{i}', ColorAlignment('custom', r)) for i, r in enumerate(choices)] asciis = [[*ca.recolor_ascii(asc, _prs).split('\n'), k.center(asc_width)] for k, ca in arrangements] while asciis: current = asciis[:ascii_per_row] asciis = asciis[ascii_per_row:] # Print by row [printc(' '.join(line)) for line in zip(*current)] print() print_title_prompt("Let's choose a color arrangement!") printc(f'You can choose standard horizontal or vertical alignment, or use one of the random color schemes.') print('You can type "roll" to randomize again.') print() choice = literal_input(f'Your choice?', ['horizontal', 'vertical', 'roll'] + [f'random{i}' for i in range(random_count)], 'horizontal') if choice == 'roll': arrangements = [] continue # Save choice arrangement_index = {k.lower(): ca for k, ca in hv_arrangements + arrangements} if choice in arrangement_index: color_alignment = arrangement_index[choice] else: print('Invalid choice.') continue break update_title('Color alignment', color_alignment) ############################## # 6. Select *fetch backend def select_backend(): clear_screen(title) print_title_prompt('Select a *fetch backend') # Check if fastfetch is installed ff_path = fastfetch_path() # Check if qwqfetch is installed (if the qwqfetch module can be imported) has_qwqfetch = importlib.util.find_spec('qwqfetch') is not None printc('- &bneofetch&r: Written in bash, &nbest compatibility&r on Unix systems') printc('- &bfastfetch&r: Written in C, &nbest performance&r ' + ('&c(Not installed)' if ff_path is None else f'&a(Installed at {ff_path})')) printc('- &bqwqfetch&r: Pure python, &nminimal dependencies&r ' + ('&c(Not installed)' if not has_qwqfetch else '')) print() # Use fastfetch as the default backend if it is installed def_backend = 'neofetch' if ff_path is None else 'fastfetch' return literal_input('Your choice?', ['neofetch', 'fastfetch', 'qwqfetch'], def_backend) backend = select_backend() update_title('Selected backend', backend) # Create config clear_screen(title) c = Config(preset, color_system, light_dark, lightness, color_alignment, backend) # Save config print() save = literal_input(f'Save config?', ['y', 'n'], 'y') if save == 'y': c.save() return c def create_parser() -> argparse.ArgumentParser: # Create CLI hyfetch = color('&l&bhyfetch&~&L') parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'), prog="hyfetch") parser.add_argument('-c', '--config', action='store_true', help=color(f'Configure hyfetch')) parser.add_argument('-C', '--config-file', dest='config_file', default=CONFIG_PATH, help=f'Use another config file') parser.add_argument('-p', '--preset', help=f'Use preset', choices=list(PRESETS.keys()) + ['random']) parser.add_argument('-m', '--mode', help=f'Color mode', choices=['8bit', 'rgb']) parser.add_argument('-b', '--backend', help=f'Choose a *fetch backend', choices=['qwqfetch', 'neofetch', 'fastfetch', 'fastfetch-old']) parser.add_argument('--args', help=f'Additional arguments pass-through to backend') parser.add_argument('--c-scale', dest='scale', help=f'Lighten colors by a multiplier', type=float) parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float) parser.add_argument('--c-overlay', action='store_true', dest='overlay', help=f'Use experimental overlay color adjusting instead of HSL lightness') parser.add_argument('-V', '--version', dest='version', action='store_true', help=f'Check version') parser.add_argument('--june', action='store_true', help=f'Show pride month easter egg') parser.add_argument('--debug', action='store_true', help=f'Debug mode') parser.add_argument('--distro', '--test-distro', dest='distro', help=f'Test for a specific distro') parser.add_argument('--ascii-file', help='Use a specific file for the ascii art') parser.add_argument('--print-font-logo', action='store_true', help='Print the Font Logo / Nerd Font icon of your distro and exit') # Hidden debug arguments # --test-print: Print the ascii distro and exit parser.add_argument('--test-print', action='store_true', help=argparse.SUPPRESS) # --ask-exit: Ask for input before exiting parser.add_argument('--ask-exit', action='store_true', help=argparse.SUPPRESS) return parser def run(): # Optional: Import readline try: import readline except ModuleNotFoundError: pass # On Windows: Try to fix color rendering if not in git bash if IS_WINDOWS: import colorama colorama.just_fix_windows_console() parser = create_parser() args = parser.parse_args() # Use a custom distro GLOBAL_CFG.override_distro = args.distro GLOBAL_CFG.use_overlay = args.overlay if args.version: print(f'Version is {VERSION}') return # Ensure git bash for windows ensure_git_bash() check_windows_cmd() if args.debug: GLOBAL_CFG.debug = True if args.test_print: print(get_distro_ascii()) return if args.print_font_logo: print(get_font_logo()) return # Check if user provided alternative config path if not args.config_file == CONFIG_PATH: args.config_file = Path(os.path.abspath(args.config_file)) # If provided file does not exist use default config if not args.config_file.is_file(): args.config_file = CONFIG_PATH # Load config or create config config = create_config() if args.config else check_config(args.config_file) # Check if it's June (pride month) now = datetime.datetime.now() june_path = CACHE_PATH / f'animation-displayed-{now.year}' if now.month == 6 and now.year not in config.pride_month_shown and not june_path.is_file() and os.isatty(sys.stdout.fileno()): args.june = True if args.june and not config.pride_month_disable: pride_month.start_animation() print() print("Happy pride month!") print("(You can always view the animation again with `hyfetch --june`)") print() if not june_path.is_file(): june_path.parent.mkdir(parents=True, exist_ok=True) june_path.touch() # Use a custom distro GLOBAL_CFG.override_distro = args.distro or config.distro # Param overwrite config if args.preset: config.preset = args.preset if args.mode: config.mode = args.mode if args.backend: config.backend = args.backend if args.args: config.args = args.args # Random preset if config.preset == 'random': config.preset = random.choice(list(PRESETS.keys())) # Override global color mode GLOBAL_CFG.color_mode = config.mode GLOBAL_CFG.is_light = config.light_dark == 'light' # Get preset preset = PRESETS.get(config.preset) # Lighten (args > config) if args.scale: preset = preset.lighten(args.scale) elif args.light: preset = preset.set_light_raw(args.light) else: preset = preset.set_light_dl(config.lightness or GLOBAL_CFG.default_lightness()) # Run try: asc = get_distro_ascii() if not args.ascii_file else Path(args.ascii_file).read_text("utf-8") asc = config.color_align.recolor_ascii(asc, preset) neofetch_util.run(asc, config.backend, config.args or '') except Exception as e: print(f'Error: {e}') traceback.print_exc() if args.ask_exit: input('Press any key to exit...') hyfetch-1.99.0/hyfetch/models.py000066400000000000000000000020111470626616500165420ustar00rootroot00000000000000from __future__ import annotations from dataclasses import dataclass, field from .constants import CONFIG_PATH from .neofetch_util import ColorAlignment from .serializer import json_stringify, from_dict from .types import AnsiMode, LightDark, BackendLiteral @dataclass class Config: preset: str mode: AnsiMode light_dark: LightDark = 'dark' lightness: float | None = None color_align: ColorAlignment = field(default_factory=lambda: ColorAlignment('horizontal')) backend: BackendLiteral = "neofetch" args: str | None = None distro: str | None = None pride_month_shown: list[int] = field(default_factory=list) # This is deprecated, see issue #136 pride_month_disable: bool = False @classmethod def from_dict(cls, d: dict): d['color_align'] = ColorAlignment.from_dict(d['color_align']) return from_dict(cls, d) def save(self): CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True) CONFIG_PATH.write_text(json_stringify(self, indent=4), 'utf-8') hyfetch-1.99.0/hyfetch/neofetch_util.py000066400000000000000000000310211470626616500201120ustar00rootroot00000000000000from __future__ import annotations import os import platform import re import shlex import shutil import subprocess import sys from dataclasses import dataclass from pathlib import Path from subprocess import check_output from tempfile import TemporaryDirectory from typing import Iterable from .color_util import color, printc from .constants import GLOBAL_CFG, IS_WINDOWS from .distros import distro_detector from .presets import ColorProfile from .serializer import from_dict from .types import BackendLiteral, ColorAlignMode RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}') SRC = Path(__file__).parent def literal_input(prompt: str, options: Iterable[str], default: str, show_ops: bool = True) -> str: """ Ask the user to provide an input among a list of options :param prompt: Input prompt :param options: Options :param default: Default option :param show_ops: Show options :return: Selection """ options = list(options) lows = [o.lower() for o in options] if show_ops: op_text = '|'.join([f'&l&n{o}&L&N' if o == default else o for o in options]) printc(f'{prompt} ({op_text})') else: printc(f'{prompt} (default: {default})') def find_selection(sel: str): if not sel: return None # Find exact match if sel in lows: return options[lows.index(sel)] # Find starting abbreviation for i, op in enumerate(lows): if op.startswith(sel): return options[i] return None selection = input('> ').lower() or default while not find_selection(selection): print(f'Invalid selection! {selection} is not one of {"|".join(options)}') selection = input('> ').lower() or default print() return find_selection(selection) def term_size() -> tuple[int, int]: """ Get terminal size :return: """ try: return os.get_terminal_size().columns, os.get_terminal_size().lines except Exception: return 100, 20 def ascii_size(asc: str) -> tuple[int, int]: """ Get distro ascii width, height ignoring color code :param asc: Distro ascii :return: Width, Height """ return max(len(line) for line in re.sub(RE_NEOFETCH_COLOR, '', asc).split('\n')), len(asc.split('\n')) def normalize_ascii(asc: str) -> str: """ Make sure every line are the same width """ w = ascii_size(asc)[0] return '\n'.join(line + ' ' * (w - ascii_size(line)[0]) for line in asc.split('\n')) def fill_starting(asc: str) -> str: """ Fill the missing starting placeholders. E.g. "${c1}...\n..." -> "${c1}...\n${c1}..." """ new = [] last = '' for line in asc.split('\n'): new.append(last + line) # Line has color placeholders matches = RE_NEOFETCH_COLOR.findall(line) if len(matches) > 0: # Get the last placeholder for the next line last = matches[-1] return '\n'.join(new) @dataclass class ColorAlignment: mode: ColorAlignMode # custom_colors[ascii color index] = unique color index in preset custom_colors: dict[int, int] = () # Foreground/background ascii color index fore_back: tuple[int, int] = () @classmethod def from_dict(cls, d: dict): ca = from_dict(cls, d) # Backward compatibility if type(ca.custom_colors) is not dict: if type(ca.custom_colors) is list: ca.custom_colors = {i + 1: v for i, v in enumerate(ca.custom_colors)} else: ca.custom_colors = {} # Fixup: Keys must json serialize as str, so we convert them back to int. ca.custom_colors = {int(k): v for k, v in ca.custom_colors.items()} return ca def recolor_ascii(self, asc: str, preset: ColorProfile) -> str: """ Use the color alignment to recolor an ascii art :return Colored ascii, Uncolored lines """ asc = fill_starting(asc) if self.fore_back and self.mode in ['horizontal', 'vertical']: fore, back = self.fore_back # Replace foreground colors asc = asc.replace(f'${{c{fore}}}', color('&0' if GLOBAL_CFG.is_light else '&f')) lines = asc.split('\n') # Add new colors if self.mode == 'horizontal': colors = preset.with_length(len(lines)) asc = '\n'.join([l.replace(f'${{c{back}}}', colors[i].to_ansi()) + color('&~&*') for i, l in enumerate(lines)]) else: raise NotImplementedError() # Remove existing colors asc = re.sub(RE_NEOFETCH_COLOR, '', asc) elif self.mode in ['horizontal', 'vertical']: # Remove existing colors asc = re.sub(RE_NEOFETCH_COLOR, '', asc) lines = asc.split('\n') # Add new colors if self.mode == 'horizontal': colors = preset.with_length(len(lines)) asc = '\n'.join([colors[i].to_ansi() + l + color('&~&*') for i, l in enumerate(lines)]) else: asc = '\n'.join(preset.color_text(line) + color('&~&*') for line in lines) else: preset = preset.unique_colors() # Apply colors color_map = {ai: preset.colors[pi].to_ansi() for ai, pi in self.custom_colors.items()} for ascii_i, c in color_map.items(): asc = asc.replace(f'${{c{ascii_i}}}', c) return asc def if_file(f: str | Path) -> Path | None: """ Return the file if the file exists, or return none. Useful for chaining 'or's """ f = Path(f) if f.is_file(): return f return None def get_command_path() -> str: """ Get the absolute path of the neofetch command :return: Command path """ cmd_path = (if_file(SRC.parent / 'neofetch') or if_file(SRC / 'scripts/neowofetch')) if not cmd_path: printc("&cError: Neofetch script cannot be found") exit(127) return str(cmd_path) def ensure_git_bash() -> Path: """ Ensure git bash installation for windows :returns git bash path """ if not IS_WINDOWS: return Path('/usr/bin/bash') # Bundled git bash git_path = (if_file(SRC / 'git/bin/bash.exe') or if_file("C:/Program Files/Git/bin/bash.exe") or if_file("C:/Program Files (x86)/Git/bin/bash.exe")) if not git_path.is_file(): printc("&cError: Git Bash installation not found") sys.exit(127) return git_path def check_windows_cmd(): """ Check if this script is running under cmd.exe. If so, launch an external window with git bash since cmd doesn't support RGB colors. """ # if IS_WINDOWS: # import psutil # # TODO: This line does not correctly identify cmd prompts... # if psutil.Process(os.getppid()).name().lower().strip() == 'cmd.exe': # print("cmd.exe doesn't support RGB colors, restarting in MinTTY...") # cmd = f'"{ensure_git_bash().parent.parent / "usr/bin/mintty.exe"}" -s 110,40 -e python -m hyfetch --ask-exit' # os.system(cmd) # sys.exit(0) def run_neofetch_cmd(args: str, pipe: bool = False) -> str | None: """ Run neofetch command """ if platform.system() != 'Windows': bash = ['/usr/bin/env', 'bash'] if Path('/usr/bin/env').is_file() else [shutil.which('bash')] full_cmd = [*bash, get_command_path(), *shlex.split(args)] else: cmd = get_command_path().replace("\\", "/").replace("C:/", "/c/") args = args.replace('\\', '/').replace('C:/', '/c/') full_cmd = [ensure_git_bash(), cmd, *shlex.split(args)] full_cmd = [str(c) for c in full_cmd] if pipe: return check_output(full_cmd).decode().strip() else: subprocess.run(full_cmd) def get_distro_ascii(distro: str | None = None) -> str: """ Get the distro ascii of the current distro. Or if distro is specified, get the specific distro's ascii art instead. :return: Distro ascii """ if not distro and GLOBAL_CFG.override_distro: distro = GLOBAL_CFG.override_distro if GLOBAL_CFG.debug: print(distro) print(GLOBAL_CFG) # Try new pure-python detection method det = distro_detector.detect(distro or get_distro_name()) if det is not None: return normalize_ascii(det.ascii) if GLOBAL_CFG.debug: printc(f"&cError: Cannot find distro {distro}") # Old detection method that calls neofetch cmd = 'print_ascii' if distro: cmd += f' --ascii_distro {distro}' asc = run_neofetch_cmd(cmd, True) # Unescape backslashes here because backslashes are escaped in neofetch for printf asc = asc.replace('\\\\', '\\') return normalize_ascii(asc) def get_distro_name(): return run_neofetch_cmd('ascii_distro_name', True) def run(asc: str, backend: BackendLiteral, args: str = ''): if backend == "neofetch": return run_neofetch(asc, args) if backend == "fastfetch": return run_fastfetch(asc, args) if backend == "fastfetch-old": return run_fastfetch(asc, args, legacy=True) if backend == "qwqfetch": return run_qwqfetch(asc, args) def run_qwqfetch(asc: str, args: str = ''): """ Run qwqfetch with colors :param asc: Ascii art :param args: Additional arguments to pass to qwqfetch """ asc = asc.replace('\\', '\\\\') # call qwqfetch to print string try: import qwqfetch # distro_detector only return a bash variable # so we use qwqfetch builtin distro detector print(qwqfetch.get_ascres(asc)) except ImportError as e: # module not found etc print("qwqfetch is not installed. Install it by executing:") # use print to output hint directly print("pip install git+https://github.com/nexplorer-3e/qwqfetch") # TODO: public repo exit(127) def run_neofetch(asc: str, args: str = ''): """ Run neofetch with colors :param asc: Ascii art :param args: Additional arguments to pass to neofetch """ # Escape backslashes here because backslashes are escaped in neofetch for printf asc = asc.replace('\\', '\\\\') # Write temp file with TemporaryDirectory() as tmp_dir: tmp_dir = Path(tmp_dir) path = tmp_dir / 'ascii.txt' path.write_text(asc, 'utf-8') # Call neofetch with the temp file if args: args = ' ' + args run_neofetch_cmd(f'--ascii --source {path.absolute()} --ascii-colors' + args) def fastfetch_path() -> Path | None: return (shutil.which('fastfetch') or if_file(SRC / 'fastfetch/usr/bin/fastfetch') or if_file(SRC / 'fastfetch/fastfetch') or if_file(SRC / 'fastfetch/fastfetch.exe')) def run_fastfetch(asc: str, args: str = '', legacy: bool = False): """ Run neofetch with colors :param asc: Ascii art :param args: Additional arguments to pass to fastfetch :param legacy: Set true when using fastfetch < 1.8.0 """ # Find fastfetch binary ff_path = fastfetch_path() if not ff_path: printc("&cError: fastfetch binary is not found. Please install fastfetch first.") exit(127) # Write temp file with TemporaryDirectory() as tmp_dir: tmp_dir = Path(tmp_dir) path = tmp_dir / 'ascii.txt' path.write_text(asc, 'utf-8') # Call fastfetch with the temp file proc = subprocess.run([str(ff_path), '--raw' if legacy else '--file-raw', str(path.absolute()), *shlex.split(args)]) if proc.returncode == 144: printc("&6Error code 144 detected: Please upgrade fastfetch to >=1.8.0 or use the 'fastfetch-old' backend") def get_fore_back(distro: str | None = None) -> tuple[int, int] | None: """ Get recommended foreground-background configuration for distro, or None if the distro ascii is not suitable for fore-back configuration. :return: """ if not distro and GLOBAL_CFG.override_distro: distro = GLOBAL_CFG.override_distro if not distro: distro = get_distro_name().lower() distro = distro.lower().replace(' ', '-') for k, v in fore_back.items(): if distro.startswith(k.lower()): return v return None # Foreground-background recommendation fore_back = { 'fedora': (2, 1), 'kubuntu': (2, 1), 'lubuntu': (2, 1), 'xubuntu': (2, 1), 'ubuntu-cinnamon': (2, 1), 'ubuntu-kylin': (2, 1), 'ubuntu-mate': (2, 1), 'ubuntu-studio': (2, 1), 'ubuntu-sway': (2, 1), 'ultramarine': (2, 1), } hyfetch-1.99.0/hyfetch/presets.py000066400000000000000000000520761470626616500167640ustar00rootroot00000000000000from __future__ import annotations from typing import Iterable from .color_util import RGB from .constants import GLOBAL_CFG from .types import LightDark, ColorSpacing def remove_duplicates(seq: Iterable) -> list: """ Remove duplicate items from a sequence while preserving the order """ seen = set() seen_add = seen.add return [x for x in seq if not (x in seen or seen_add(x))] class ColorProfile: raw: list[str] colors: list[RGB] spacing: ColorSpacing = 'equal' def __init__(self, colors: list[str] | list[RGB]): if isinstance(colors[0], str): self.raw = colors self.colors = [RGB.from_hex(c) for c in colors] else: self.colors = colors def with_weights(self, weights: list[int]) -> list[RGB]: """ Map colors based on weights :param weights: Weights of each color (weights[i] = how many times color[i] appears) :return: """ return [c for i, w in enumerate(weights) for c in [self.colors[i]] * w] def with_length(self, length: int) -> list[RGB]: """ Spread to a specific length of text :param length: Length of text :return: List of RGBs of the length """ preset_len = len(self.colors) center_i = preset_len // 2 # How many copies of each color should be displayed at least? repeats = length // preset_len weights = [repeats] * preset_len # How many extra space left? extras = length % preset_len # If there is an even space left, extend the center by one space if extras % 2 == 1: extras -= 1 weights[center_i] += 1 # Add weight to border until there's no space left (extras must be even at this point) border_i = 0 while extras > 0: extras -= 2 weights[border_i] += 1 weights[-(border_i + 1)] += 1 border_i += 1 return self.with_weights(weights) def color_text(self, txt: str, foreground: bool = True, space_only: bool = False) -> str: """ Color a text :param txt: Text :param foreground: Whether the foreground text show the color or the background block :param space_only: Whether to only color spaces :return: Colored text """ colors = self.with_length(len(txt)) result = '' for i, t in enumerate(txt): if space_only and t != ' ': if i > 0 and txt[i - 1] == ' ': result += '\033[39;49m' result += t else: result += colors[i].to_ansi(foreground=foreground) + t result += '\033[39;49m' return result def lighten(self, multiplier: float) -> ColorProfile: """ Lighten the color profile by a multiplier :param multiplier: Multiplier :return: Lightened color profile (original isn't modified) """ return ColorProfile([c.lighten(multiplier) for c in self.colors]) def set_light_raw(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'ColorProfile': """ Set HSL lightness value :param light: Lightness value (0-1) :param at_least: Set the lightness to at least this value (no change if greater) :param at_most: Set the lightness to at most this value (no change if lesser) :return: New color profile (original isn't modified) """ return ColorProfile([c.set_light(light, at_least, at_most) for c in self.colors]) def set_light_dl(self, light: float, term: LightDark | None = None): """ Set HSL lightness value with respect to dark/light terminals :param light: Lightness value (0-1) :param term: Terminal color (can be "dark" or "light") :return: New color profile (original isn't modified) """ if GLOBAL_CFG.use_overlay: return self.overlay_dl(light, term) term = term or GLOBAL_CFG.light_dark() assert term.lower() in ['light', 'dark'] at_least, at_most = (True, None) if term.lower() == 'dark' else (None, True) return self.set_light_raw(light, at_least, at_most) def overlay_raw(self, color: RGB, alpha: float) -> 'ColorProfile': """ Overlay a color on top of the color profile :param color: Color to overlay :param alpha: Alpha value (0-1) :return: New color profile (original isn't modified) """ return ColorProfile([c.overlay(color, alpha) for c in self.colors]) def overlay_dl(self, light: float, term: LightDark | None = None): """ Same as set_light_dl except that this function uses RGB overlaying instead of HSL lightness change """ term = term or GLOBAL_CFG.light_dark() assert term.lower() in ['light', 'dark'] # If it's light bg, overlay black, else overlay white overlay_color = RGB.from_hex('#000000' if term.lower() == 'light' else '#FFFFFF') return self.overlay_raw(overlay_color, abs(light - 0.5) * 2) def set_light_dl_def(self, term: LightDark | None = None): """ Set default lightness with respect to dark/light terminals :param term: Terminal color (can be "dark" or "light") :return: New color profile (original isn't modified) """ return self.set_light_dl(GLOBAL_CFG.default_lightness(term), term) def unique_colors(self) -> ColorProfile: """ Create another color profile with only the unique colors """ return ColorProfile(remove_duplicates(self.colors)) PRESETS: dict[str, ColorProfile] = { 'rainbow': ColorProfile([ '#E50000', '#FF8D00', '#FFEE00', '#028121', '#004CFF', '#770088' ]), 'transgender': ColorProfile([ '#55CDFD', '#F6AAB7', '#FFFFFF', '#F6AAB7', '#55CDFD' ]), 'nonbinary': ColorProfile([ '#FCF431', '#FCFCFC', '#9D59D2', '#282828' ]), # xenogender sourced from https://commons.wikimedia.org/wiki/File:Xenogender_pride_flag.svg 'xenogender': ColorProfile([ '#FF6692', '#FF9A98', '#FFB883', '#FBFFA8', '#85BCFF', '#9D85FF', '#A510FF' ]), 'agender': ColorProfile([ '#000000', '#BABABA', '#FFFFFF', '#BAF484', '#FFFFFF', '#BABABA', '#000000' ]), 'queer': ColorProfile([ '#B57FDD', '#FFFFFF', '#49821E' ]), 'genderfluid': ColorProfile([ '#FE76A2', '#FFFFFF', '#BF12D7', '#000000', '#303CBE' ]), 'bisexual': ColorProfile([ '#D60270', '#9B4F96', '#0038A8' ]), 'pansexual': ColorProfile([ '#FF1C8D', '#FFD700', '#1AB3FF' ]), 'polysexual': ColorProfile([ '#F714BA', '#01D66A', '#1594F6', ]), # omnisexual sorced from https://www.flagcolorcodes.com/omnisexual 'omnisexual': ColorProfile([ '#FE9ACE', '#FF53BF', '#200044', '#6760FE', '#8EA6FF', ]), 'omniromantic': ColorProfile([ '#FEC8E4', '#FDA1DB', '#89739A', '#ABA7FE', '#BFCEFF', ]), # gay men sourced from https://www.flagcolorcodes.com/gay-men 'gay-men': ColorProfile([ '#078D70', '#98E8C1', '#FFFFFF', '#7BADE2', '#3D1A78' ]), 'lesbian': ColorProfile([ '#D62800', '#FF9B56', '#FFFFFF', '#D462A6', '#A40062' ]), # abrosexual used colorpicker to source from # https://fyeahaltpride.tumblr.com/post/151704251345/could-you-guys-possibly-make-an-abrosexual-pride 'abrosexual': ColorProfile([ '#46D294', '#A3E9CA', '#FFFFFF', '#F78BB3', '#EE1766', ]), 'asexual': ColorProfile([ '#000000', '#A4A4A4', '#FFFFFF', '#810081' ]), 'aromantic': ColorProfile([ '#3BA740', '#A8D47A', '#FFFFFF', '#ABABAB', '#000000' ]), # aroace1 sourced from https://flag.library.lgbt/flags/aroace/ 'aroace1': ColorProfile([ '#E28C00', '#ECCD00', '#FFFFFF', '#62AEDC', '#203856' ]), 'aroace2': ColorProfile([ '#000000', '#810081', '#A4A4A4', '#FFFFFF', '#A8D47A', '#3BA740' ]), 'aroace3': ColorProfile([ '#3BA740', '#A8D47A', '#FFFFFF', '#ABABAB', '#000000', '#A4A4A4', '#FFFFFF', '#810081' ]), # below sourced from https://www.flagcolorcodes.com/flags/pride # goto f"https://www.flagcolorcodes.com/{preset}" for info # todo: sane sorting 'autosexual': ColorProfile([ '#99D9EA', '#7F7F7F' ]), 'intergender': ColorProfile([ # todo: use weighted spacing '#900DC2', '#900DC2', '#FFE54F', '#900DC2', '#900DC2', ]), 'greygender': ColorProfile([ '#B3B3B3', '#B3B3B3', '#FFFFFF', '#062383', '#062383', '#FFFFFF', '#535353', '#535353', ]), 'akiosexual': ColorProfile([ '#F9485E', '#FEA06A', '#FEF44C', '#FFFFFF', '#000000', ]), # bigender sourced from https://www.flagcolorcodes.com/bigender 'bigender': ColorProfile([ '#C479A2', '#EDA5CD', '#D6C7E8', '#FFFFFF', '#D6C7E8', '#9AC7E8', '#6D82D1', ]), # demigender yellow sourced from https://lgbtqia.fandom.com/f/p/4400000000000041031 # other colors sourced from demiboy and demigirl flags 'demigender': ColorProfile([ '#7F7F7F', '#C4C4C4', '#FBFF75', '#FFFFFF', '#FBFF75', '#C4C4C4', '#7F7F7F', ]), # demiboy sourced from https://www.flagcolorcodes.com/demiboy 'demiboy': ColorProfile([ '#7F7F7F', '#C4C4C4', '#9DD7EA', '#FFFFFF', '#9DD7EA', '#C4C4C4', '#7F7F7F', ]), # demigirl sourced from https://www.flagcolorcodes.com/demigirl 'demigirl': ColorProfile([ '#7F7F7F', '#C4C4C4', '#FDADC8', '#FFFFFF', '#FDADC8', '#C4C4C4', '#7F7F7F', ]), 'transmasculine': ColorProfile([ '#FF8ABD', '#CDF5FE', '#9AEBFF', '#74DFFF', '#9AEBFF', '#CDF5FE', '#FF8ABD', ]), # transfeminine used colorpicker to source from https://www.deviantart.com/pride-flags/art/Trans-Woman-Transfeminine-1-543925985 # linked from https://gender.fandom.com/wiki/Transfeminine 'transfeminine': ColorProfile([ '#73DEFF', '#FFE2EE', '#FFB5D6', '#FF8DC0', '#FFB5D6', '#FFE2EE', '#73DEFF', ]), # genderfaun sourced from https://www.flagcolorcodes.com/genderfaun 'genderfaun': ColorProfile([ '#FCD689', '#FFF09B', '#FAF9CD', '#FFFFFF', '#8EDED9', '#8CACDE', '#9782EC', ]), 'demifaun': ColorProfile([ '#7F7F7F', '#7F7F7F', '#C6C6C6', '#C6C6C6', '#FCC688', '#FFF19C', '#FFFFFF', '#8DE0D5', '#9682EC', '#C6C6C6', '#C6C6C6', '#7F7F7F', '#7F7F7F', ]), # genderfae sourced from https://www.flagcolorcodes.com/genderfae 'genderfae': ColorProfile([ '#97C3A5', '#C3DEAE', '#F9FACD', '#FFFFFF', '#FCA2C4', '#DB8AE4', '#A97EDD', ]), # demifae used colorpicker to source form https://www.deviantart.com/pride-flags/art/Demifae-870194777 'demifae': ColorProfile([ '#7F7F7F', '#7F7F7F', '#C5C5C5', '#C5C5C5', '#97C3A4', '#C4DEAE', '#FFFFFF', '#FCA2C5', '#AB7EDF', '#C5C5C5', '#C5C5C5', '#7F7F7F', '#7F7F7F', ]), 'neutrois': ColorProfile([ '#FFFFFF', '#1F9F00', '#000000' ]), 'biromantic1': ColorProfile([ '#8869A5', '#D8A7D8', '#FFFFFF', '#FDB18D', '#151638', ]), 'biromantic2': ColorProfile([ '#740194', '#AEB1AA', '#FFFFFF', '#AEB1AA', '#740194', ]), 'autoromantic': ColorProfile([ # symbol interpreted '#99D9EA', '#99D9EA', '#3DA542', '#7F7F7F', '#7F7F7F', ]), # i didn't expect this one to work. cool! 'boyflux2': ColorProfile(ColorProfile([ '#E48AE4', '#9A81B4', '#55BFAB', '#FFFFFF', '#A8A8A8', '#81D5EF', '#69ABE5', '#5276D4', ]).with_weights([1, 1, 1, 1, 1, 5, 5, 5])), # sourced from https://commons.wikimedia.org/wiki/File:Girlflux_Pride_Flag.jpg "girlflux": ColorProfile([ "f9e6d7", "f2526c", "bf0311", "e9c587", "bf0311", "f2526c", "f9e6d7", ]), # sourced from https://www.deviantart.com/pride-flags/art/Genderflux-1-543925589 "genderflux": ColorProfile([ "f47694", "f2a2b9", "cecece", "7ce0f7", "3ecdf9", "fff48d", ]), "finsexual": ColorProfile([ "#B18EDF", "#D7B1E2", "#F7CDE9", "#F39FCE", "#EA7BB3", ]), 'unlabeled1': ColorProfile([ '#EAF8E4', '#FDFDFB', '#E1EFF7', '#F4E2C4' ]), 'unlabeled2': ColorProfile([ '#250548', '#FFFFFF', '#F7DCDA', '#EC9BEE', '#9541FA', '#7D2557' ]), 'pangender': ColorProfile([ '#FFF798', '#FEDDCD', '#FFEBFB', '#FFFFFF', '#FFEBFB', '#FEDDCD', '#FFF798', ]), 'pangender.contrast': ColorProfile([ '#ffe87f', '#fcbaa6', '#fbc9f3', '#FFFFFF', '#fbc9f3', '#fcbaa6', '#ffe87f', ]), 'gendernonconforming1': ColorProfile( ColorProfile([ '#50284d', '#96467b', '#5c96f7', '#ffe6f7', '#5c96f7', '#96467b', '#50284d' ]).with_weights([ 4, 1, 1, 1, 1, 1, 4 ]) ), 'gendernonconforming2': ColorProfile([ '#50284d', '#96467b', '#5c96f7', '#ffe6f7', '#5c96f7', '#96467b', '#50284d' ]), 'femboy': ColorProfile([ "#d260a5", "#e4afcd", "#fefefe", "#57cef8", "#fefefe", "#e4afcd", "#d260a5" ]), 'tomboy': ColorProfile([ "#2f3fb9", "#613a03", "#fefefe", "#f1a9b7", "#fefefe", "#613a03", "#2f3fb9" ]), 'gynesexual': ColorProfile([ "#F4A9B7", "#903F2B", "#5B953B", ]), 'androsexual': ColorProfile([ "#01CCFF", "#603524", "#B799DE", ]), # gendervoid and related flags sourced from: https://gender.fandom.com/wiki/Gendervoid 'gendervoid': ColorProfile([ "#081149", "#4B484B", "#000000", "#4B484B", "#081149" ]), 'voidgirl': ColorProfile([ "#180827", "#7A5A8B", "#E09BED", "#7A5A8B", "#180827" ]), 'voidboy': ColorProfile([ "#0B130C", "#547655", "#66B969", "#547655", "#0B130C" ]), # used https://twitter.com/foxbrained/status/1667621855518236674/photo/1 as source and colorpicked 'nonhuman-unity': ColorProfile([ "#177B49", "#FFFFFF", "#593C90" ]), # used https://pluralpedia.org/w/Plurality#/media/File:Plural-Flag-1.jpg as source and colorpicked 'plural': ColorProfile([ "#2D0625", "#543475", "#7675C3", "#89C7B0", "#F3EDBD", ]), # sampled from https://es.m.wikipedia.org/wiki/Archivo:Fraysexual_flag.jpg 'fraysexual': ColorProfile([ '#226CB5', '#94E7DD', '#FFFFFF', '#636363', ]), # Queer Subcultures # sourced from https://commons.wikimedia.org/wiki/File:Bear_Brotherhood_flag.svg 'bear': ColorProfile([ '#623804', '#D56300', '#FEDD63', '#FEE6B8', '#FFFFFF', '#555555', ]), # colorpicked from https://commons.wikimedia.org/wiki/File:Butch_Flag.png 'butch': ColorProfile([ '#D72800', '#F17623', '#FF9C56', '#FFFDF6', '#FFCE89', '#FEAF02', '#A37000', ]), # colorpicked from https://commons.wikimedia.org/wiki/File:Leather,_Latex,_and_BDSM_pride_-_Light.svg 'leather': ColorProfile([ '#000000', '#252580', '#000000', '#252580', '#FFFFFF', '#252580', '#000000', '#252580', '#000000', ]), # colorpicked from https://commons.wikimedia.org/wiki/File:Official_Otter_Pride_Flag_by_Bearbackgear.jpg 'otter': ColorProfile([ '#263881', '#5C9DC9', '#FFFFFF', '#3A291D', '#5C9DC9', '#263881', ]), # colorpicked from https://commons.wikimedia.org/wiki/File:Twink_Pride_Flag_(proposed).svg 'twink': ColorProfile([ '#FFB2FF', '#FFFFFF', '#FFFF81', ]), 'kenochoric': ColorProfile([ '#000000', '#2E1569', '#824DB7', '#C7A1D6', ]), 'veldian': ColorProfile([ '#D182A8', '#FAF6E0', '#69ACBE', '#5D448F', '#3A113E', ]), 'solian': ColorProfile([ '#FFF8ED', '#FFE7A8', '#F1B870', '#A56058', '#46281E', ]), 'lunian': ColorProfile([ '#2F0E62', '#6F41B1', '#889FDF', '#7DDFD5', '#D2F2E2', ]), # Start of Extras by Jaida Corvera # polyamorous flag colors pulled from https://polyamproud.com/flag 'polyam': ColorProfile([ "#FFFFFF", "#FCBF00", "#009FE3", "#E50051", "#340C46", ]), 'sapphic': ColorProfile([ "#FD8BA8", "#FBF2FF", "#C76BC5", "#FDD768", "#C76BC5", "#FBF2FF", "#FD8BA8" ]), 'androgyne': ColorProfile([ "#FE007F", "#9832FF", "#00B8E7", ]), 'interprogress': ColorProfile([ "#FFD800", "#7902AA", "#FFFFFF", "#FFAFC8", "#74D7EE", "#613915", "#000000", '#E50000', '#FF8D00', '#FFEE00', '#028121', '#004CFF', '#770088' ]), 'progress': ColorProfile([ "#FFFFFF", "#FFAFC8", "#74D7EE", "#613915", "#000000", '#E50000', '#FF8D00', '#FFEE00', '#028121', '#004CFF', '#770088' ]), 'intersex': ColorProfile([ "#FFD800", "#FFD800", "#7902AA", "#FFD800", "#FFD800" ]), 'old-polyam': ColorProfile([ "#0000FF", "#FF0000", "#FFFF00", "#FF0000", "#000000" ]), 'equal-rights': ColorProfile([ "#0000FF", "#0000FF", "#FFFF00", "#0000FF", "#0000FF", "#FFFF00", "#0000FF", "#0000FF" ]), 'drag': ColorProfile([ "#CC67FF", "#FFFFFF", "#FFA3E3", "#FFFFFF", "#3366FF" ]), # Pronoun Flags 'pronounfluid': ColorProfile([ "#ffb3f9", "#ffffff", "#d1fdcb", "#c7b0ff", "#000000", "#b8ccff" ]), 'pronounflux': ColorProfile([ "#fdb3f8", "#b6ccfa", "#18ddd3", "#64ff89", "#ff7690", "#ffffff" ]), 'exipronoun': ColorProfile([ "#1c3d34", "#ffffff", "#321848", "#000000" ]), 'neopronoun': ColorProfile([ "#bcec64", "#ffffff", "#38077a" ]), 'neofluid': ColorProfile([ "#ffeca0", "#ffffff", "#ffeca0", "#38087a", "#bcec64" ]), 'genderqueer': ColorProfile([ "#b57edc", "#b57edc", "#ffffff", "#ffffff", "#4a8123", "#4a8123" ]), # Meme flags 'beiyang': ColorProfile([ '#DF1B12', '#FFC600', '#01639D', '#FFFFFF', '#000000', ]), 'burger': ColorProfile([ '#F3A26A', '#498701', '#FD1C13', '#7D3829', '#F3A26A', ]), # colors from Gilbert Baker's original 1978 flag design # used https://gilbertbaker.com/rainbow-flag-color-meanings/ as source and colorpicked 'baker': ColorProfile([ '#F23D9E', '#F80A24', '#F78022', '#F9E81F', '#1E972E', '#1B86BC', '#243897', '#6F0A82', ]), # this is 4 all the dogs, from zombpawcoins on tumblr! 'caninekin': ColorProfile([ '#2d2822', '#543d25', '#9c754d', '#e8dac2', '#cfad8c', '#b77b55', '#954e31' ]) } hyfetch-1.99.0/hyfetch/pride_month.py000066400000000000000000000076421470626616500176060ustar00rootroot00000000000000import math from time import sleep from hyfetch import presets from hyfetch.color_util import RGB, color, printc from hyfetch.constants import IS_WINDOWS from hyfetch.neofetch_util import term_size from hyfetch.presets import PRESETS def key_pressed(): if IS_WINDOWS: import msvcrt return msvcrt.kbhit() # Non-blocking check for key press else: import select import sys return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []) def start_animation(): text = r""" .======================================================. | . . .__ . . . , . | | | |__| _.._ ._ . [__)._.* _| _ |\/| _ ._ -+-|_ | | | | |(_][_)[_)\_| | [ |(_](/, | |(_)[ ) | [ ) * | | | | ._| | '======================================================'""".strip("\n") text_lines = text.split("\n") text_height = len(text_lines) text_width = len(text_lines[0]) notice = "Press enter to continue" speed = 2 frame_delay = 1 / 25 colors: list[RGB] = [] frame = 0 w, h = term_size() blocks = 9 block_width = w // blocks text_start_y = h // 2 - text_height // 2 text_end_y = text_start_y + text_height text_start_x = w // 2 - text_width // 2 text_end_x = text_start_x + text_width notice_start_x = w - len(notice) - 1 notice_end_x = w - 1 notice_y = h - 1 # Add everything in PRESETS to colors colors = [c for preset in PRESETS.values() for c in preset.colors] black = RGB(0, 0, 0) fg = RGB.from_hex("#FFE09B") def draw_frame(): buf = "" # Loop over the height for y in range(h): # Print the starting color buf += colors[((frame + y) // block_width) % len(colors)].to_ansi_rgb(foreground=False) buf += fg.to_ansi_rgb(foreground=True) # Loop over the width x = 0 while x < w: idx = frame + x + y + int(math.sin(y + 0.5 * frame) * 2) y_text = text_start_y <= y < text_end_y border = 1 + int(not (y == text_start_y or y == text_end_y - 1)) # If it's a switching point if idx % block_width == 0 or x == text_start_x - border or x == text_end_x + border \ or x == notice_start_x - 1 or x == notice_end_x + 1: # Print the color at the current frame c = colors[(idx // block_width) % len(colors)] if (y_text and text_start_x - border <= x < text_end_x + border) \ or (y == notice_y and notice_start_x - 1 <= x < notice_end_x + 1): # buf += c.set_light(0.3).to_ansi_rgb(foreground=False) buf += c.overlay(black, 0.5).to_ansi_rgb(foreground=False) else: buf += c.to_ansi_rgb(foreground=False) # If text should be printed, print text if y_text and text_start_x <= x < text_end_x: # Add white background buf += text_lines[y - text_start_y][x - text_start_x] elif y == notice_y and notice_start_x <= x < notice_end_x: buf += notice[x - notice_start_x] else: buf += ' ' x += 1 # New line if it isn't the last line if y != h - 1: buf += color('&r\n') print(buf, end='', flush=True) try: while 1: # Clear the screen print("\033[2J\033[H", end="") draw_frame() frame += speed sleep(frame_delay) if key_pressed(): break except KeyboardInterrupt: pass # Clear the screen printc("&r") print("\033[2J\033[H", end="", flush=True) if __name__ == '__main__': start_animation() hyfetch-1.99.0/hyfetch/scripts/000077500000000000000000000000001470626616500164025ustar00rootroot00000000000000hyfetch-1.99.0/hyfetch/scripts/autocomplete.bash000066400000000000000000000131641470626616500217470ustar00rootroot00000000000000# AUTOMATICALLY GENERATED by `shtab` _shtab_hyfetch_option_strings=('-h' '--help' '-c' '--config' '-C' '--config-file' '-p' '--preset' '-m' '--mode' '-b' '--backend' '--c-scale' '--c-set-l' '-V' '--version' '--debug' '--distro' '--test-distro' '--ascii-file') _shtab_hyfetch__p_choices=('rainbow' 'transgender' 'nonbinary' 'agender' 'queer' 'genderfluid' 'bisexual' 'pansexual' 'polysexual' 'omnisexual' 'omniromantic' 'gay-men' 'lesbian' 'abrosexual' 'asexual' 'aromantic' 'aroace1' 'aroace2' 'aroace3' 'autosexual' 'intergender' 'greygender' 'akiosexual' 'bigender' 'demigender' 'demiboy' 'demigirl' 'transmasculine' 'transfeminine' 'genderfaun' 'demifaun' 'genderfae' 'demifae' 'neutrois' 'biromantic1' 'biromantic2' 'autoromantic' 'boyflux2' 'finsexual' 'unlabeled1' 'unlabeled2' 'pangender' 'gendernonconforming1' 'gendernonconforming2' 'femboy' 'tomboy' 'gendervoid' 'voidgirl' 'voidboy' 'plural' 'beiyang' 'burger' 'caninekin') _shtab_hyfetch___preset_choices=('rainbow' 'transgender' 'nonbinary' 'agender' 'queer' 'genderfluid' 'bisexual' 'pansexual' 'polysexual' 'omnisexual' 'omniromantic' 'gay-men' 'lesbian' 'abrosexual' 'asexual' 'aromantic' 'aroace1' 'aroace2' 'aroace3' 'autosexual' 'intergender' 'greygender' 'akiosexual' 'bigender' 'demigender' 'demiboy' 'demigirl' 'transmasculine' 'transfeminine' 'genderfaun' 'demifaun' 'genderfae' 'demifae' 'neutrois' 'biromantic1' 'biromantic2' 'autoromantic' 'boyflux2' 'finsexual' 'unlabeled1' 'unlabeled2' 'pangender' 'gendernonconforming1' 'gendernonconforming2' 'femboy' 'tomboy' 'gendervoid' 'voidgirl' 'voidboy' 'plural' 'beiyang' 'burger' 'caninekin') _shtab_hyfetch__m_choices=('8bit' 'rgb') _shtab_hyfetch___mode_choices=('8bit' 'rgb') _shtab_hyfetch__b_choices=('neofetch' 'fastfetch' 'fastfetch-old') _shtab_hyfetch___backend_choices=('neofetch' 'fastfetch' 'fastfetch-old') _shtab_hyfetch__h_nargs=0 _shtab_hyfetch___help_nargs=0 _shtab_hyfetch__c_nargs=0 _shtab_hyfetch___config_nargs=0 _shtab_hyfetch__V_nargs=0 _shtab_hyfetch___version_nargs=0 _shtab_hyfetch___debug_nargs=0 _shtab_hyfetch___test_print_nargs=0 _shtab_hyfetch___ask_exit_nargs=0 # $1=COMP_WORDS[1] _shtab_compgen_files() { compgen -f -- $1 # files } # $1=COMP_WORDS[1] _shtab_compgen_dirs() { compgen -d -- $1 # recurse into subdirs } # $1=COMP_WORDS[1] _shtab_replace_nonword() { echo "${1//[^[:word:]]/_}" } # set default values (called for the initial parser & any subparsers) _set_parser_defaults() { local subparsers_var="${prefix}_subparsers[@]" sub_parsers=${!subparsers_var} local current_option_strings_var="${prefix}_option_strings[@]" current_option_strings=${!current_option_strings_var} completed_positional_actions=0 _set_new_action "pos_${completed_positional_actions}" true } # $1=action identifier # $2=positional action (bool) # set all identifiers for an action's parameters _set_new_action() { current_action="${prefix}_$(_shtab_replace_nonword $1)" local current_action_compgen_var=${current_action}_COMPGEN current_action_compgen="${!current_action_compgen_var}" local current_action_choices_var="${current_action}_choices[@]" current_action_choices="${!current_action_choices_var}" local current_action_nargs_var="${current_action}_nargs" if [ -n "${!current_action_nargs_var}" ]; then current_action_nargs="${!current_action_nargs_var}" else current_action_nargs=1 fi current_action_args_start_index=$(( $word_index + 1 )) current_action_is_positional=$2 } # Notes: # `COMPREPLY`: what will be rendered after completion is triggered # `completing_word`: currently typed word to generate completions for # `${!var}`: evaluates the content of `var` and expand its content as a variable # hello="world" # x="hello" # ${!x} -> ${hello} -> "world" _shtab_hyfetch() { local completing_word="${COMP_WORDS[COMP_CWORD]}" COMPREPLY=() prefix=_shtab_hyfetch word_index=0 _set_parser_defaults word_index=1 # determine what arguments are appropriate for the current state # of the arg parser while [ $word_index -ne $COMP_CWORD ]; do local this_word="${COMP_WORDS[$word_index]}" if [[ -n $sub_parsers && " ${sub_parsers[@]} " =~ " ${this_word} " ]]; then # valid subcommand: add it to the prefix & reset the current action prefix="${prefix}_$(_shtab_replace_nonword $this_word)" _set_parser_defaults fi if [[ " ${current_option_strings[@]} " =~ " ${this_word} " ]]; then # a new action should be acquired (due to recognised option string or # no more input expected from current action); # the next positional action can fill in here _set_new_action $this_word false fi if [[ "$current_action_nargs" != "*" ]] && \ [[ "$current_action_nargs" != "+" ]] && \ [[ "$current_action_nargs" != *"..." ]] && \ (( $word_index + 1 - $current_action_args_start_index >= \ $current_action_nargs )); then $current_action_is_positional && let "completed_positional_actions += 1" _set_new_action "pos_${completed_positional_actions}" true fi let "word_index+=1" done # Generate the completions if [[ "${completing_word}" == -* ]]; then # optional argument started: use option strings COMPREPLY=( $(compgen -W "${current_option_strings[*]}" -- "${completing_word}") ) else # use choices & compgen local IFS=$'\n' # items may contain spaces, so delimit using newline COMPREPLY=( $([ -n "${current_action_compgen}" ] \ && "${current_action_compgen}" "${completing_word}") ) unset IFS COMPREPLY+=( $(compgen -W "${current_action_choices[*]}" -- "${completing_word}") ) fi return 0 } complete -o filenames -F _shtab_hyfetch hyfetch hyfetch-1.99.0/hyfetch/scripts/autocomplete.csh000066400000000000000000000030031470626616500215760ustar00rootroot00000000000000# AUTOMATICALLY GENERATED by `shtab` complete hyfetch \ 'c/--/(mode test-distro preset config c-scale c-set-l config-file ascii-file version debug distro help backend)/' \ 'c/-/(m h V C p b c -)/' \ 'n/-p/(rainbow transgender nonbinary agender queer genderfluid bisexual pansexual polysexual omnisexual omniromantic gay-men lesbian abrosexual asexual aromantic aroace1 aroace2 aroace3 autosexual intergender greygender akiosexual bigender demigender demiboy demigirl transmasculine transfeminine genderfaun demifaun genderfae demifae neutrois biromantic1 biromantic2 autoromantic boyflux2 finsexual unlabeled1 unlabeled2 pangender gendernonconforming1 gendernonconforming2 femboy tomboy gendervoid voidgirl voidboy plural beiyang burger caninekin)/' \ 'n/--preset/(rainbow transgender nonbinary agender queer genderfluid bisexual pansexual polysexual omnisexual omniromantic gay-men lesbian abrosexual asexual aromantic aroace1 aroace2 aroace3 autosexual intergender greygender akiosexual bigender demigender demiboy demigirl transmasculine transfeminine genderfaun demifaun genderfae demifae neutrois biromantic1 biromantic2 autoromantic boyflux2 finsexual unlabeled1 unlabeled2 pangender gendernonconforming1 gendernonconforming2 femboy tomboy gendervoid voidgirl voidboy plural beiyang burger caninekin)/' \ 'n/-m/(8bit rgb)/' \ 'n/--mode/(8bit rgb)/' \ 'n/-b/(neofetch fastfetch fastfetch-old)/' \ 'n/--backend/(neofetch fastfetch fastfetch-old)/' \ 'p/*/()/' hyfetch-1.99.0/hyfetch/scripts/autocomplete.zsh000066400000000000000000000036571470626616500216440ustar00rootroot00000000000000#compdef hyfetch # AUTOMATICALLY GENERATED by `shtab` _shtab_hyfetch_commands() { local _commands=( ) _describe 'hyfetch commands' _commands } _shtab_hyfetch_options=( "(- : *)"{-h,--help}"[show this help message and exit]" {-c,--config}"[Configure hyfetch]" {-C,--config-file}"[Use another config file]:config_file:" {-p,--preset}"[Use preset]:preset:(rainbow transgender nonbinary agender queer genderfluid bisexual pansexual polysexual omnisexual omniromantic gay-men lesbian abrosexual asexual aromantic aroace1 aroace2 aroace3 autosexual intergender greygender akiosexual bigender demigender demiboy demigirl transmasculine transfeminine genderfaun demifaun genderfae demifae neutrois biromantic1 biromantic2 autoromantic boyflux2 finsexual unlabeled1 unlabeled2 pangender gendernonconforming1 gendernonconforming2 femboy tomboy gendervoid voidgirl voidboy plural beiyang burger caninekin)" {-m,--mode}"[Color mode]:mode:(8bit rgb)" {-b,--backend}"[Choose a \*fetch backend]:backend:(neofetch fastfetch fastfetch-old)" "--c-scale[Lighten colors by a multiplier]:scale:" "--c-set-l[Set lightness value of the colors]:light:" {-V,--version}"[Check version]" "--debug[Debug mode]" {--distro,--test-distro}"[Test for a specific distro]:distro:" "--ascii-file[Use a specific file for the ascii art]:ascii_file:" ) _shtab_hyfetch() { local context state line curcontext="$curcontext" one_or_more='(-)*' remainder='(*)' if ((${_shtab_hyfetch_options[(I)${(q)one_or_more}*]} + ${_shtab_hyfetch_options[(I)${(q)remainder}*]} == 0)); then # noqa: E501 _shtab_hyfetch_options+=(': :_shtab_hyfetch_commands' '*::: :->hyfetch') fi _arguments -C $_shtab_hyfetch_options case $state in hyfetch) words=($line[1] "${words[@]}") (( CURRENT += 1 )) curcontext="${curcontext%:*:*}:_shtab_hyfetch-$line[1]:" case $line[1] in esac esac } typeset -A opt_args _shtab_hyfetch "$@" hyfetch-1.99.0/hyfetch/scripts/install-autocomplete.sh000077500000000000000000000026141470626616500231110ustar00rootroot00000000000000#!/usr/bin/env bash # Usage: ./install-autocomplete.sh [Uninstall] if [[ "$1" == "uninstall" ]]; then uninstall=true echo -n "Uninstalling " else echo -n "Installing " fi echo "autocomplete scripts for HyFetch..." # Stop on error set -e # Obtain path of the current bash script script_path="$(dirname "$(realpath "$0")")" # Installing for a specific shell in a specific directory if it exists install-for() { shell=$1 dir=$2 case $shell in bash) filename="hyfetch" ;; zsh) filename="_hyfetch" ;; csh) filename="hyfetch.completion.csh" ;; *) echo "Unknown shell: $shell" exit 1 ;; esac if [[ -d "$dir" ]]; then if [[ "$uninstall" ]]; then rm -f "$dir/$filename" echo "⭐ Uninstalled for $shell in $dir" else cp "$script_path/autocomplete.$shell" "$dir/$filename" echo "⭐ Installed for $shell in $dir" fi fi } # Copy files install-for bash /etc/bash_completion.d install-for bash /usr/share/bash-completion/completions install-for zsh /usr/share/zsh/functions/Completion/Unix install-for zsh /usr/share/zsh/site-functions install-for zsh /usr/share/zsh-completions install-for zsh /usr/local/share/zsh/site-functions install-for csh /etc/profile.d echo "Done!" hyfetch-1.99.0/hyfetch/scripts/neowofetch000077700000000000000000000000001470626616500226252../../neofetchustar00rootroot00000000000000hyfetch-1.99.0/hyfetch/serializer.py000066400000000000000000000025111470626616500174350ustar00rootroot00000000000000from __future__ import annotations import dataclasses import inspect import json from datetime import datetime, date class EnhancedJSONEncoder(json.JSONEncoder): """ An improvement to the json.JSONEncoder class, which supports: encoding for dataclasses, encoding for datetime, and sets """ def default(self, o: object) -> object: # Support encoding dataclasses # https://stackoverflow.com/a/51286749/7346633 if dataclasses.is_dataclass(o): return dataclasses.asdict(o) # Support encoding datetime if isinstance(o, (datetime, date)): return o.isoformat() # Support for sets # https://stackoverflow.com/a/8230505/7346633 if isinstance(o, set): return list(o) return super().default(o) def json_stringify(obj: object, indent: int | None = None) -> str: """ Serialize json string with support for dataclasses and datetime and sets and with custom configuration. Preconditions: - obj != None :param obj: Objects :param indent: Indent size or none :return: Json strings """ return json.dumps(obj, indent=indent, cls=EnhancedJSONEncoder, ensure_ascii=False) def from_dict(cls, d: dict): return cls(**{k: v for k, v in d.items() if k in inspect.signature(cls).parameters}) hyfetch-1.99.0/hyfetch/termenv.py000066400000000000000000000114271470626616500167520ustar00rootroot00000000000000from __future__ import annotations import os import platform import sys from .color_util import RGB, AnsiMode class OSCException(Exception): pass def unix_detect_ansi_mode() -> AnsiMode | None: """ Translated from Termenv's ColorProfile(): https://github.com/muesli/termenv/blob/42ca574de3e99a262e1724d2fb8daa1aea68a5b9/termenv_unix.go#L23 :return: Ansi mode """ # Check isatty attribute exist before calling it if hasattr(sys.stdout, 'isatty') and not sys.stdout.isatty(): return 'ansi' term = os.environ.get('TERM') color_term = os.environ.get('COLORTERM') if color_term == 'truecolor' or color_term == '24bit': if term.startswith('screen') and os.environ.get('TERM_PROGRAM') != 'tmux': return '8bit' return 'rgb' elif color_term == 'true' or color_term == 'yes': return '8bit' if term == 'xterm-kitty': return 'rgb' elif term == 'linux': return 'ansi' if '256color' in term: return 'rgb' if 'color' in term: return '8bit' if 'ansi' in term: return 'ansi' return None def windows_detect_ansi_mode() -> AnsiMode | None: """ Translated from Termenv's ColorProfile(): https://github.com/muesli/termenv/blob/42ca574de3e99a262e1724d2fb8daa1aea68a5b9/termenv_windows.go#L13 :return: Ansi mode """ if hasattr(sys.stdout, 'isatty') and not sys.stdout.isatty(): return 'ansi' if os.environ.get("ConEmuANSI") == "ON": return 'rgb' release, _, build = map(int, platform.version().split('.')) if build < 10586 or release < 10: # No ANSI support before Windows 10 build 10586. if os.environ.get('ANSICON'): conv = os.environ.get('ANSICON_VER') if int(conv) < 181: return 'ansi' return '8bit' return 'ansi' if build < 14931: # No true color support before build 14931. return '8bit' return 'rgb' def detect_ansi_mode() -> AnsiMode | None: system = platform.system().lower() if system.startswith("linux") or system.startswith("darwin"): return unix_detect_ansi_mode() if system.startswith("windows"): return windows_detect_ansi_mode() return None def unix_read_osc(seq: int) -> str: import termios import tty import signal from select import select # screen/tmux can't support OSC, because they can be connected to multiple # terminals concurrently. term = os.environ.get('TERM') if term.startswith("screen") or term.startswith("tmux"): raise OSCException("Screen/tmux not supported") t = sys.stdout if not t.isatty(): raise OSCException("Not a tty") fd = sys.stdin.fileno() # Set raw mode settings = termios.tcgetattr(fd) tty.setraw(sys.stdin.fileno()) # first, send OSC query, which is ignored by terminal which do not support it t.write(f"\x1b]{seq};?\x1b\\") t.flush() # stdin response timeout should be higher for ssh sessions timeout = 0.05 if (os.environ.get('SSH_TTY') or os.environ.get('SSH_SESSION')) is None else 0.5 # Wait for input to appear if not select([sys.stdin], [], [], timeout)[0]: # Reset terminal back to normal mode (previously set to raw mode) termios.tcsetattr(fd, termios.TCSADRAIN, settings) raise OSCException("No response received") # Read until termination, or if it doesn't terminate, read until 1 second passes def handler(signum, frame): raise IOError() signal.signal(signal.SIGALRM, handler) signal.setitimer(signal.ITIMER_REAL, timeout, 1) code = "" try: for _ in range(28): code += sys.stdin.read(1) # Terminate with sequence terminator [\ or bell ^G if code.endswith('\x1b\\') or code.endswith('\a'): break except IOError: pass finally: # Disable alarm signal.alarm(0) # Reset terminal back to normal mode (previously set to raw mode) termios.tcsetattr(fd, termios.TCSADRAIN, settings) # Validate output if not code: raise OSCException("No response received") start = f"\x1b]{seq};" if not code.startswith(start): raise OSCException("Received response is not an OSC response") # Strip starting code and termination code code = code.lstrip(start).rstrip("\x1b\\").rstrip('\a') return code def get_background_color() -> RGB | None: system = platform.system().lower() if system.startswith("linux") or system.startswith("darwin"): try: osc = unix_read_osc(11).lstrip("rgb:") return RGB.from_hex(''.join([v[:2] for v in osc.split('/')])) except Exception: return None if system.startswith("windows"): return None hyfetch-1.99.0/hyfetch/types.py000066400000000000000000000005301470626616500164270ustar00rootroot00000000000000try: from typing import Literal except ImportError: from typing_extensions import Literal AnsiMode = Literal['default', 'ansi', '8bit', 'rgb'] LightDark = Literal['light', 'dark'] BackendLiteral = Literal["neofetch", "fastfetch"] ColorAlignMode = Literal['horizontal', 'vertical', 'custom'] ColorSpacing = Literal['equal', 'weighted'] hyfetch-1.99.0/neofetch000077500000000000000000021273341470626616500150160ustar00rootroot00000000000000#!/usr/bin/env bash # vim: noai:ts=4:sw=4:expandtab # shellcheck source=/dev/null # shellcheck disable=2009 disable=2153 disable=2154 disable=2243 disable=2244 disable=2317 # # Neofetch: A command-line system information tool written in bash 3.2+. # https://github.com/dylanaraps/neofetch # # The MIT License (MIT) # # Copyright (c) 2015-2021 Dylan Araps # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. version=7.98.0 # Fallback to a value of '5' for shells which support bash # but do not set the 'BASH_' shell variables (osh). bash_version=${BASH_VERSINFO[0]:-5} shopt -s eval_unsafe_arith &>/dev/null sys_locale=${LANG:-C} XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-${HOME}/.config} PATH=$PATH:/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec reset='\e[0m' shopt -s nocasematch extglob # Speed up script by not using unicode. LC_ALL=C LANG=C # Fix issues with gsettings. [[ -z $GIO_EXTRA_MODULES ]] && export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/ # Use sed -r instead of sed -E if using GNU sed. [[ $(sed --version 2>/dev/null) =~ GNU ]] && gnu_sed=1 sed() { if [[ $gnu_sed ]]; then command sed "${@//-E/-r}" else command sed "$@" fi } # 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 "Editor" editor info "Resolution" resolution info "DE" de info "WM" wm info "WM Theme" wm_theme info "Theme" theme info "Icons" icons info "Cursor" cursor info "Terminal" term info "Terminal Font" term_font info "CPU" cpu info "GPU" gpu info "Memory" memory info "Network" network info "Bluetooth" bluetooth info "BIOS" bios # info "GPU Driver" gpu_driver # Linux/macOS only # info "Disk" disk # info "Battery" battery # info "Power Adapter" power_adapter # macOS only # 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 "Java" java_ver # info "Python" python_ver # info "Node" node_ver info cols } # Title # Hide/Show Fully qualified domain name. # # Default: 'off' # Values: 'on', 'off' # Flag: --title_fqdn title_fqdn="off" # Kernel # Shorten the output of the kernel function. # # Default: 'on' # Values: 'on', 'off' # Flag: --kernel_shorthand # Supports: Everything except *BSDs (except PacBSD and PC-BSD) # # Example: # on: '4.8.9-1-ARCH' # off: 'Linux 4.8.9-1-ARCH' kernel_shorthand="on" # Distro # Shorten the output of the distro function # # Default: 'off' # Values: 'on', 'tiny', 'off' # Flag: --distro_shorthand # Supports: Everything except Windows and Haiku distro_shorthand="off" # Show/Hide OS Architecture. # Show 'x86_64', 'x86' and etc in 'Distro:' output. # # Default: 'on' # Values: 'on', 'off' # Flag: --os_arch # # Example: # on: 'Arch Linux x86_64' # off: 'Arch Linux' os_arch="on" # Uptime # Shorten the output of the uptime function # # Default: 'on' # Values: 'on', 'tiny', 'off' # Flag: --uptime_shorthand # # Example: # on: '2 days, 10 hours, 3 mins' # tiny: '2d 10h 3m' # off: '2 days, 10 hours, 3 minutes' uptime_shorthand="on" # Memory # Show memory percentage in output. # # Default: 'off' # Values: 'on', 'off' # Flag: --memory_percent # # Example: # on: '1801MiB / 7881MiB (22%)' # off: '1801MiB / 7881MiB' memory_percent="on" # Change memory output unit. # # Default: 'mib' # Values: 'kib', 'mib', 'gib', 'tib' # Flag: --memory_unit # # Example: # kib '1020928KiB / 7117824KiB' # mib '1042MiB / 6951MiB' # gib: ' 0.98GiB / 6.79GiB' memory_unit="gib" # Change memory output precision. # # Default: '2' # Values: integer ≥ 0 # Flag: --memory_precision mem_precision=2 # 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" # Show separate user and system packages for supported package managers # # Default: 'on' # Values: 'on', 'off' # Flag: --package_separate # # Example: # on: '8 packages (flatpak-system), 9 packages (flatpak-user)' # off: '17 packages (flatpak)' package_separate="on" # Reduce output of packages list by not showing programming language package managers or Steam games # # Flag: --package_minimal # # Example: # default: 'Packages: 1 (npm), 991 (emerge), 3 (steam), 23 (flatpak-system)' # minimal: 'Packages: 991 (emerge), 23 (flatpak-system)' package_minimal="" # 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" # Editor # Show path to $EDITOR # # Default: 'off' # Values: 'on', 'off' # Flag: --editor_path # # Example: # on: '/opt/bin/vim' # off: 'vim' editor_path="off" # Show $EDITOR version # # Default: 'on' # Values: 'on', 'off' # Flag: '--editor_version' # # Example: # on: 'vim 9.0' # off: 'vim' editor_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="on" # 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="on" # 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" # Enable/Disable Qt Theme / Icons / Font # # Default: 'on' # Values: 'on', 'off' # Flag: --qt # # Example: # on: 'Breeze [Qt], Arc [GTK3]' # off: 'Arc [GTK3]' qt="on" # IP Address # Website to ping for the public IP # # Default: 'http://ident.me' # Values: 'url' # Flag: --ip_host public_ip_host="http://ident.me" # Public IP timeout. # # Default: '2' # Values: 'int' # Flag: --ip_timeout public_ip_timeout=2 # Local IP interface # # Default: 'auto' (interface of default route) # Values: 'auto', 'en0', 'en1' # Flag: --ip_interface local_ip_interface=('auto') # Desktop Environment # Show Desktop Environment version # # Default: 'on' # Values: 'on', 'off' # Flag: --de_version de_version="on" # Disk # Which disks to display. # The values can be any /dev/sdXX, mount point or directory. # NOTE: By default we only show the disk info for '/'. # # Default: '/' # Values: '/', '/dev/sdXX', '/path/to/drive'. # Flag: --disk_show # # Example: # disk_show=('/' '/dev/sdb1'): # 'Disk (/): 74G / 118G (66%)' # 'Disk (/mnt/Videos): 823G / 893G (93%)' # # disk_show=('/'): # 'Disk (/): 74G / 118G (66%)' # disk_show=('/') # Disk subtitle. # What to append to the Disk subtitle. # # Default: 'mount' # Values: 'mount', 'name', 'dir', 'none' # Flag: --disk_subtitle # # Example: # name: 'Disk (/dev/sda1): 74G / 118G (66%)' # 'Disk (/dev/sdb2): 74G / 118G (66%)' # # mount: 'Disk (/): 74G / 118G (66%)' # 'Disk (/mnt/Local Disk): 74G / 118G (66%)' # 'Disk (/mnt/Videos): 74G / 118G (66%)' # # dir: 'Disk (/): 74G / 118G (66%)' # 'Disk (Local Disk): 74G / 118G (66%)' # 'Disk (Videos): 74G / 118G (66%)' # # none: 'Disk: 74G / 118G (66%)' # 'Disk: 74G / 118G (66%)' # 'Disk: 74G / 118G (66%)' disk_subtitle="mount" # Disk percent. # Show/Hide disk percent. # # Default: 'on' # Values: 'on', 'off' # Flag: --disk_percent # # Example: # on: 'Disk (/): 74G / 118G (66%)' # off: 'Disk (/): 74G / 118G' disk_percent="on" # Song # Manually specify a music player. # # Default: 'auto' # Values: 'auto', 'player-name' # Flag: --music_player # # Available values for 'player-name': # # amarok # audacious # banshee # bluemindo # cider # clementine # cmus # deadbeef # deepin-music # dragon # elisa # exaile # gnome-music # gmusicbrowser # gogglesmm # guayadeque # io.elementary.music # iTunes # Music # juk # lollypop # MellowPlayer # mocp # mopidy # mpd # muine # netease-cloud-music # olivia # playerctl # pogo # pragha # qmmp # quodlibet # rhythmbox # sayonara # smplayer # spotify # strawberry # tauonmb # tomahawk # vlc # xmms2d # xnoise # yarock music_player="auto" # Format to display song information. # # Default: '%artist% - %album% - %title%' # Values: '%artist%', '%album%', '%title%' # Flag: --song_format # # Example: # default: 'Song: Jet - Get Born - Sgt Major' song_format="%artist% - %album% - %title%" # Print the Artist, Album and Title on separate lines # # Default: 'off' # Values: 'on', 'off' # Flag: --song_shorthand # # Example: # on: 'Artist: The Fratellis' # 'Album: Costello Music' # 'Song: Chelsea Dagger' # # off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' song_shorthand="off" # 'mpc' arguments (specify a host, password etc). # # Default: '' # Example: mpc_args=(-h HOST -P PASSWORD) mpc_args=() # Text Colors # Text Colors # # Default: 'distro' # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' # Flag: --colors # # Each number represents a different part of the text in # this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' # # Example: # colors=(distro) - Text is colored based on Distro colors. # colors=(4 6 1 8 8 6) - Text is colored in the order above. colors=(distro) # Text Options # Toggle bold text # # Default: 'on' # Values: 'on', 'off' # Flag: --bold bold="on" # Enable/Disable Underline # # Default: 'on' # Values: 'on', 'off' # Flag: --underline underline_enabled="on" # Underline character # # Default: '-' # Values: 'string' # Flag: --underline_char underline_char="-" # Info Separator # Replace the default separator with the specified string. # # Default: ':' # Flag: --separator # # Example: # separator="->": 'Shell-> bash' # separator=" =": 'WM = dwm' separator=":" # Color Blocks # Color block range # The range of colors to print. # # Default: '0', '15' # Values: 'num' # Flag: --block_range # # Example: # # Display colors 0-7 in the blocks. (8 colors) # neofetch --block_range 0 7 # # Display colors 0-15 in the blocks. (16 colors) # neofetch --block_range 0 15 block_range=(0 15) # Toggle color blocks # # Default: 'on' # Values: 'on', 'off' # Flag: --color_blocks color_blocks="on" # Color block width in spaces # # Default: '3' # Values: 'num' # Flag: --block_width block_width=3 # Color block height in lines # # Default: '1' # Values: 'num' # Flag: --block_height block_height=1 # Color Alignment # # Default: 'auto' # Values: 'auto', 'num' # Flag: --col_offset # # Number specifies how far from the left side of the terminal (in spaces) to # begin printing the columns, in case you want to e.g. center them under your # text. # Example: # col_offset="auto" - Default behavior of neofetch # col_offset=7 - Leave 7 spaces then print the colors col_offset="auto" # Progress Bars # Bar characters # # Default: '-', '=' # Values: 'string', 'string' # Flag: --bar_char # # Example: # neofetch --bar_char 'elapsed' 'total' # neofetch --bar_char '-' '=' bar_char_elapsed="-" bar_char_total="=" # Toggle Bar border # # Default: 'on' # Values: 'on', 'off' # Flag: --bar_border bar_border="on" # Progress bar length in spaces # Number of chars long to make the progress bars. # # Default: '15' # Values: 'num' # Flag: --bar_length bar_length=15 # Progress bar colors # When set to distro, uses your distro's logo colors. # # Default: 'distro', 'distro' # Values: 'distro', 'num' # Flag: --bar_colors # # Example: # neofetch --bar_colors 3 4 # neofetch --bar_colors distro 5 bar_color_elapsed="distro" bar_color_total="distro" # Info display # Display a bar with the info. # # Default: 'off' # Values: 'bar', 'infobar', 'barinfo', 'off' # Flags: --memory_display # --battery_display # --disk_display # # Example: # bar: '[---=======]' # infobar: 'info [---=======]' # barinfo: '[---=======] info' # off: 'info' memory_display="off" battery_display="off" disk_display="off" # Backend Settings # Image backend. # # Default: 'ascii' # Values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', 'iterm2', 'off', # 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty', 'ueberzug', # 'viu' # Flag: --backend image_backend="ascii" # Image Source # # Which image or ascii file to display. # # Default: 'auto' # Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' # 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' # Flag: --source # # NOTE: 'auto' will pick the best image source for whatever image backend is used. # In ascii mode, distro ascii art will be used and in an image mode, your # wallpaper will be used. image_source="auto" # Ascii Options # Ascii distro # Which distro's ascii art to display. # # Default: 'auto' # Values: 'auto', 'distro_name' # Flag: --ascii_distro # # NOTE: Adélie, aerOS, Afterglow, AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy, Android, # Antergos, antiX, AOSC OS, Aperio GNU/Linux, Aperture, Apricity, Arch, ArchBox, Archcraft, # archcraft_ascii, archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux, Arkane, ArseLinux, # Artix, Arya, Asahi, AsteroidOS, astOS, Astra Linux, Athena, azos, Bedrock, BigLinux, # BigLinux_large, Bitrig, BlackArch, BlackMesa, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, # bonsai, BSD, BunsenLabs, CachyOS, Calculate, CalinixOS, Carbs, CBL-Mariner, CelOS, Center, CentOS, # Chakra, ChaletOS, Chapeau, Chimera, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS, # Clover, Cobalt, Condres, Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber, CutefishOS, # CuteOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DietPi, digital UNIX, # DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS, Endless, Enso, # EuroLinux, EvolutionOS, eweOS, Exherbo, Exodia Predator OS, Fedora, Fedora Kinoite, Fedora # Sericea, Fedora Silverblue, Fedora_unicode, FemboyOS, Feren, Finnix, Floflis, FreeBSD, FreeMiNT, # Frugalware, Funtoo, Furreto, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU, # GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS, # Hyperbola, iglunix, instantOS, Interix, IRIX, Ironclad, Itc, januslinux, Kaisen, Kali, KaOS, KDE, # Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LainOS, LangitKetujuh, LaxerOS, LEDE, # LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old, LinuxFromScratch, Live Raizo, # LMDE, Lubuntu, Lunar, mac, MacaroniOS, Mageia, Magix, MagpieOS, MainsailOS, Mandriva, Manjaro, # MassOS, MatuusOS, Maui, Mauna, Meowix, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune, # NetBSD, Netrunner, Nitrux, NixOS, nixos_colorful, Nobara, NomadBSD, Nurunner, NuTyX, Obarun, # OBRevenge, OmniOS, Open Source Media Center, OpenBSD, openEuler, OpenIndiana, openKylin, # openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OPNsense, # Oracle, orchid, OS Elbrus, PacBSD, Panwah, Parabola, parch, Pardus, Parrot, Parsix, PCBSD, # PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Peropesis, phyOS, PikaOS, Pisi, PNM Linux, # Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, # Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan, # Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Salix, # Sasanqua, Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackel, # Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin, # SunOS, SwagArch, t2, Tails, Tatra, TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, # Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu- # GNOME, ubuntu_old02, Ultramarine Linux, unicodearch, Univalent, Univention, Uos, UrukOS, uwuntu, # Vanilla, Venom, VNux, Void, VzLinux, wii-linux-ngx, Windows, Windows 10, Windows 11, Windows95, # Wrt, Xenia, Xenia2, XFerience, Xray_OS, Xubuntu, yiffOS, Zorin have ascii logos. # NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu have 'old' logo variants, use # {distro}_old to use them. # NOTE: alpine, android, arch, arcolinux, artix, CalinixOS, centos, cleanjaro, crux, debian, # dragonfly, elementary, endeavouros, fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, kali, # Linux, linuxlite, linuxmint, mac, mageia, MainsailOS, manjaro, mx, netbsd, nixos, openbsd, # opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian, rocky, slackware, sunos, # ubuntu, venom, void have 'small' logo variants, use {distro}_small to use them. ascii_distro="auto" # Ascii Colors # # Default: 'distro' # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' # Flag: --ascii_colors # # Example: # ascii_colors=(distro) - Ascii is colored based on Distro colors. # ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. ascii_colors=(distro) # Bold ascii logo # Whether or not to bold the ascii logo. # # Default: 'on' # Values: 'on', 'off' # Flag: --ascii_bold ascii_bold="on" # Image Options # Image loop # Setting this to on will make neofetch redraw the image constantly until # Ctrl+C is pressed. This fixes display issues in some terminal emulators. # # Default: 'off' # Values: 'on', 'off' # Flag: --loop image_loop="off" # Thumbnail directory # # Default: '~/.cache/thumbnails/neofetch' # Values: 'dir' thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" # Crop mode # # Default: 'normal' # Values: 'normal', 'fit', 'fill' # Flag: --crop_mode # # See this wiki page to learn about the fit and fill options. # https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F crop_mode="normal" # Crop offset # Note: Only affects 'normal' crop mode. # # Default: 'center' # Values: 'northwest', 'north', 'northeast', 'west', 'center' # 'east', 'southwest', 'south', 'southeast' # Flag: --crop_offset crop_offset="center" # Image size # The image is half the terminal width by default. # # Default: 'auto' # Values: 'auto', '00px', '00%', 'none' # Flags: --image_size # --size image_size="auto" # Catimg block size. # Control the resolution of catimg. # # Default: '2' # Values: '1', '2' # Flags: --catimg_size catimg_size="2" # Gap between image and text # # Default: '3' # Values: 'num', '-num' # Flag: --gap gap=3 # Image offsets # Only works with the w3m backend. # # Default: '0' # Values: 'px' # Flags: --xoffset # --yoffset yoffset=0 xoffset=0 # Image background color # Only works with the w3m backend. # # Default: '' # Values: 'color', 'blue' # Flag: --bg_color background_color= # Misc Options # Stdout mode # If enabled, turn off all colors and disables image backend (ASCII/Image). # Useful for piping into another command. # Default: 'auto' # Values: 'auto', 'on', 'off' stdout="auto" EOF # If /etc/neofetch/default.conf exist, set config variable to its content if [[ -f /etc/neofetch/default.conf ]]; then config="$(< /etc/neofetch/default.conf)" fi # DETECT INFORMATION get_os() { # $kernel_name is set in a function called cache_uname and is # just the output of "uname -s". case $kernel_name in Darwin) os=$darwin_name ;; SunOS) case $(uname -o 2>/dev/null) in illumos) os=illumos ;; *) os=Solaris ;; esac ;; Haiku) os=Haiku ;; MINIX) os=MINIX ;; AIX) os=AIX ;; IRIX*) os=IRIX ;; FreeMiNT) os=FreeMiNT ;; Interix) os=Interix ;; Ironclad) os=Ironclad;; OSF1) os=digitalUNIX ;; Linux|GNU*) os=Linux ;; *BSD|DragonFly|Bitrig) os=BSD ;; CYGWIN*|MSYS*|MINGW*|Windows_NT) os=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 exit 1 ;; esac } get_distro() { [[ $distro ]] && return case $os in Ironclad) distro=Ironclad ;; Linux|BSD|MINIX) if [[ -f /bedrock/etc/bedrock-release && -z $BEDROCK_RESTRICT ]]; then case $distro_shorthand in on|tiny) distro="Bedrock Linux" ;; *) distro=$(< /bedrock/etc/bedrock-release) esac elif [[ -f /System/Library/CoreServices/SystemVersion.plist ]]; then os=ravynOS ascii_distro="ravynOS" case $distro_shorthand in tiny) distro="$darwin_name" ;; on) distro="$darwin_name $osx_version" ;; *) distro="$darwin_name $darwin_family $osx_version" esac elif [[ -f /etc/redstar-release ]]; then case $distro_shorthand in on|tiny) distro="Red Star OS" ;; *) distro="Red Star OS $(awk -F'[^0-9*]' '$0=$2' /etc/redstar-release)" esac elif [[ -f /etc/KrassOS.version ]]; then case $distro_shorthand in on|tiny) distro="KrassOS" ;; *) distro="KrassOS $(awk '/release/{print $2}' /etc/KrassOS.version)" esac elif [[ -f /etc/armbian-release ]]; then . /etc/armbian-release distro="Armbian $DISTRIBUTION_CODENAME (${VERSION:-})" elif [[ -f /etc/manjaro-release ]]; then case $distro_shorthand in on|tiny) distro="Manjaro Linux" ;; *) distro="Manjaro Linux $(lsb_release -src)" esac elif [[ -f /etc/siduction-version ]]; then case $distro_shorthand in on|tiny) distro=Siduction ;; *) distro="Siduction ($(lsb_release -sic))" esac elif [[ -f /etc/q4os_version ]]; then case $distro_shorthand in on|tiny) distro="Q4OS" ;; *) distro="Q4OS $(cat /etc/q4os_version)" esac elif [[ -f /etc/mcst_version ]]; then case $distro_shorthand in on|tiny) distro="OS Elbrus" ;; *) distro="OS Elbrus $(< /etc/mcst_version)" esac elif [[ -f /etc/NIXOS ]]; then case $distro_shorthand in on) distro="NixOS $(nixos-version | awk '{print substr($1,0,5),$2}')" ;; tiny) distro="NixOS" ;; *) distro="NixOS $(nixos-version)" ;; esac elif [[ -f /etc/linspire-version ]]; then case $distro_shorthand in on|tiny) distro="Linspire" ;; *) distro="Linspire $(awk '/Version/ {print $2}' /etc/linspire-version)" esac elif [[ -f /etc/lindowsos-version ]]; then case $distro_shorthand in on|tiny) distro="LindowsOS" ;; *) distro="$(awk '/Version/ {print $2,$3}' /etc/lindowsos-version)" esac elif [[ -f /etc/astra_version ]]; then distro="Astra Linux" distro_version="$(sed -nr 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p' < /etc/astra_version)" if [[ $distro_version == "2.12"* ]]; then distro_codename="ALCE" else distro_codename="ALSE" fi case $distro_shorthand in on|tiny) ;; *) distro="${distro} ${distro_version} ${distro_codename}" esac elif type -p pveversion >/dev/null; then case $distro_shorthand in on|tiny) distro="Proxmox VE" ;; *) distro=$(pveversion) distro=${distro#pve-manager/} distro="Proxmox VE ${distro%/*}" esac elif type -p twistver >/dev/null; then if [[ -f /etc/armbian-release ]]; then . /etc/armbian-release case $distro_shorthand in on) distro="$( twistver ) (Armbian ${VERSION})" ;; tiny) distro="$( twistver ) (Armbian)" ;; off) distro="$( twistver ) (Armbian ${VERSION} ${DISTRIBUTION_CODENAME})" ;; esac else . /etc/os-release case $distro_shorthand in on) distro="$( twistver ) ($NAME ${VERSION_ID})" ;; tiny) distro="$( twistver ) ($NAME)" ;; off) distro="$( twistver ) (${PRETTY_NAME}})" ;; esac fi elif type -p anise >/dev/null; then for file in /etc/lsb-release /etc/os-release ; do source "$file" done case $distro_shorthand in on|tiny) distro="${NAME:-${DISTRIB_DESCRIPTION:-MacaroniOS}}" ;; *) distro="${NAME:-${DISTRIB_DESCRIPTION:-MacaroniOS}} ${VERSION:-${DISTRIB_RELEASE}}" esac elif type -p lsb_release >/dev/null; then # Debian does not include .x versions in /etc/os-version, but does in debian_version # So if that file exists, and we are not *buntu, build name from there if [[ -f /etc/debian_version ]] && [[ $(lsb_release -si) != *"buntu"* ]] && [[ $(lsb_release -si) != *"neon"* ]]; then . /etc/os-release case $distro_shorthand in on) distro="${NAME}" ;; tiny) distro="$(lsb_release -si)" ;; *) distro="${NAME} $(< /etc/debian_version) (${VERSION_CODENAME})" ;; esac else case $distro_shorthand in on) lsb_flags=-si ;; tiny) lsb_flags=-si ;; *) lsb_flags=-sd ;; esac distro=$(lsb_release "$lsb_flags") fi elif [[ -f /etc/os-release || \ -f /usr/lib/os-release || \ -f /etc/openwrt_release || \ -f /etc/lsb-release ]]; then # Source the os-release file for file in /etc/lsb-release /etc/os-release \ /usr/lib/os-release /etc/openwrt_release; do source "$file" && break done # Format the distro name. case $distro_shorthand in on) distro="${NAME:-${DISTRIB_ID}} ${VERSION_ID:-${DISTRIB_RELEASE}}" ;; tiny) distro="${NAME:-${DISTRIB_ID:-${TAILS_PRODUCT_NAME}}}" ;; off) distro="${PRETTY_NAME:-${DISTRIB_DESCRIPTION}} ${UBUNTU_CODENAME}" ;; esac # Workaround for NomadBSD. [[ $distro = "FreeBSD"* ]] && [[ -f /usr/bin/nomadbsd-sysinfo ]] && distro=NomadBSD elif [[ -f /etc/GoboLinuxVersion ]]; then case $distro_shorthand in on|tiny) distro=GoboLinux ;; *) distro="GoboLinux $(< /etc/GoboLinuxVersion)" esac elif [[ -f /etc/SDE-VERSION ]]; then distro="$(< /etc/SDE-VERSION)" case $distro_shorthand in on|tiny) distro="${distro% *}" ;; esac elif type -p crux >/dev/null; then distro=$(crux) case $distro_shorthand in on) distro=${distro//version} ;; tiny) distro=${distro//version*} esac elif type -p tazpkg >/dev/null; then distro="SliTaz $(< /etc/slitaz-release)" elif type -p kpt >/dev/null && \ type -p kpm >/dev/null; then distro=KSLinux elif [[ -d /system/app/ && -d /system/priv-app ]]; then distro="Android $(getprop ro.build.version.release)" elif [[ -f /etc/vzlinux-release ]]; then distro='VzLinux' # 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 grep -q CHROMEOS /etc/lsb-release; then distro='Chrome OS' elif type -p guix >/dev/null; then case $distro_shorthand in on|tiny) distro="Guix System" ;; *) distro="Guix System $(guix -V | awk 'NR==1{printf $4}')" esac # Display whether using '-current' or '-release' on OpenBSD. elif [[ $kernel_name = OpenBSD ]] ; then read -ra kernel_info <<< "$(sysctl -n kern.version)" distro=${kernel_info[*]:0:2} elif [[ -f /etc/VERSION ]]; then # Source the DSM VERSION file source /etc/VERSION distro="Synology DSM ${productversion}-${buildnumber} Update ${smallfixnumber}" elif compgen -G "/usr/bin/*peropesis*" > /dev/null; then distro="Peropesis" else for release_file in /etc/*-release; do distro+=$(< "$release_file") done if [[ -z $distro ]]; then case $distro_shorthand in on|tiny) distro=$kernel_name ;; *) distro="$kernel_name $kernel_version" ;; esac distro=${distro/DragonFly/DragonFlyBSD} # Workarounds for some BSD based distros. [[ -f /etc/os-release ]] && distro=Enso [[ -f /etc/pcbsd-lang ]] && distro=PCBSD [[ -f /etc/trueos-lang ]] && distro=TrueOS [[ -f /etc/pacbsd-release ]] && distro=PacBSD [[ -f /etc/hbsd-update.conf ]] && distro=HardenedBSD # /etc/pacbsd-release is an empty file [[ -f "/etc/pacbsd-release" ]] && distro="PacBSD" # For OPNsense if [[ -f "/usr/local/opnsense/version/opnsense" ]]; then case "$distro_shorthand" in "on" | "tiny") distro="OPNsense" ;; *) distro=$(<"/usr/local/opnsense/version/opnsense") distro="OPNsense ${distro%-*}" esac fi fi fi # Gets the windows tag caption (ie `Microsoft Windows 11 Pro Insider Preview`) # # Then removes the `Microsoft` and `Windows` part and gets the current # version of Windows (old code reported Windows 10 even if host runs Windows 11). # # Finally, we decline it in three versions : # # - The `on` version (ie `[Windows 11.0.25330]`) # - The `tiny` version (ie `Windows 11`) # - The `any` version (ie `on Windows 11 Pro Insider Preview`) if [[ $(< /proc/version) == *Microsoft* || $kernel_version == *Microsoft* ]]; then windows_version_verbose=$(reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -v ProductName | grep REG_) windows_version_verbose=$(trim "${windows_version_verbose/ProductName}") windows_version_verbose=$(trim "${windows_version_verbose/REG_SZ}") buildnumber=$(reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -v CurrentBuildNumber | grep REG_) windows_version_verbose=$(trim "${windows_version_verbose/Windows}") windows_buildnumber=$(reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -v CurrentBuildNumber | grep REG_) windows_buildnumber=${buildnumber/CurrentBuildNumber} windows_buildnumber=${buildnumber/REG_SZ} if [[ "$windows_version_verbose" == *"10"* ]] && (( windows_buildnumber >= 22000 )); then windows_version_verbose=${windows_version_verbose/10/11} fi windows_version_current=${windows_version_verbose//[^[:digit:]]/} windows_version_number_long=$(wmic.exe os get Version) windows_version_number_long=$(trim "${windows_version_number_long/Version}") windows_version_number_long=$(trim "${windows_version_number_long}") windows_version_number_long="${windows_version_current}${windows_version_number_long:2}" case $distro_shorthand in on) distro+=" [Windows $windows_version_number_long]" ;; tiny) distro=" Windows $windows_version_current" ;; *) distro+=" on Windows $windows_version_verbose" ;; esac # Chrome OS doesn't conform to the /etc/*-release standard. # While the file is a series of variables they can't be sourced # by the shell since the values aren't quoted. elif [[ -f /etc/lsb-release && $(< /etc/lsb-release) == *CHROMEOS* ]]; then distro='Chrome OS' elif [[ $(< /proc/version) == *chrome-bot* || -f /dev/cros_ec ]]; then # gets chrome os version from /etc/lsb-release. # totally not written by chatgpt :trolley: cros_version=$(grep -oE 'CHROMEOS_RELEASE_CHROME_MILESTONE=([0-9]+)' /etc/lsb-release | cut -d= -f2) [[ $distro != *Chrome* ]] && case $distro_shorthand in on) distro="Chrome OS $cros_version" ;; tiny) distro="Chrome OS" ;; *) distro="Chrome OS $cros_version $distro" ;; esac fi distro=$(trim_quotes "$distro") distro=${distro/NAME=} if [[ -f /usr/bin/system-image-cli ]]; then local ut_ota ut_ota=$(system-image-cli -i | awk '/version tag:/ { print $3 }'); distro="Ubuntu Touch $ut_ota"; # There's a weird UT bug where the HOSTNAME is set to android. HOSTNAME=$(hostname); fi # Get Ubuntu flavor. if [[ $distro == "Ubuntu"* ]]; then case $XDG_CONFIG_DIRS in *"studio"*) distro=${distro/Ubuntu/Ubuntu Studio} ;; *"kde"*) distro=${distro/Ubuntu/Kubuntu} ;; *"plasma"*) distro=${distro/Ubuntu/Kubuntu} ;; *"mate"*) distro=${distro/Ubuntu/Ubuntu MATE} ;; *"xubuntu"*) distro=${distro/Ubuntu/Xubuntu} ;; *"Lubuntu"*) distro=${distro/Ubuntu/Lubuntu} ;; *"budgie"*) distro=${distro/Ubuntu/Ubuntu Budgie} ;; *"cinnamon"*) distro=${distro/Ubuntu/Ubuntu Cinnamon} ;; *"ubuntusway"*) distro=${distro/Ubuntu/Ubuntu Sway} ;; *"ukui"*) distro=${distro/Ubuntu/Ubuntu Kylin} ;; esac if [[ -f /etc/floflis-release ]]; then distro="Floflis" fi fi # Get Fedora immutable spin. if [[ $distro == "Fedora"* ]]; then case $VARIANT in "CoreOS" | "Kinoite" | "Sericea" | "Silverblue") case $distro_shorthand in on) distro="Fedora $VARIANT $VERSION_ID" ;; tiny) distro="$VARIANT";; *) distro="Fedora $VARIANT $OSTREE_VERSION" ;; esac ;; esac fi ;; "Mac OS X"|"macOS") case $osx_version in 10.4*) codename="Mac OS X Tiger" ;; 10.5*) codename="Mac OS X Leopard" ;; 10.6*) codename="Mac OS X Snow Leopard" ;; 10.7*) codename="Mac OS X Lion" ;; 10.8*) codename="OS X Mountain Lion" ;; 10.9*) codename="OS X Mavericks" ;; 10.10*) codename="OS X Yosemite" ;; 10.11*) codename="OS X El Capitan" ;; 10.12*) codename="macOS Sierra" ;; 10.13*) codename="macOS High Sierra" ;; 10.14*) codename="macOS Mojave" ;; 10.15*) codename="macOS Catalina" ;; 10.16*) codename="macOS Big Sur" ;; 11.*) codename="macOS Big Sur" ;; 12.*) codename="macOS Monterey" ;; 13.*) codename="macOS Ventura" ;; 14.*) codename="macOS Sonoma" ;; *) codename="macOS" ;; esac distro="$codename $osx_version ($osx_build)" case $distro_shorthand in on) distro=${distro/ ${osx_build}} ;; tiny) case $osx_version in 10.[4-7]*) distro=${distro/${codename}/Mac OS X} ;; 10.[8-9]*|10.1[0-1]*) distro=${distro/${codename}/OS X} ;; 10.1[2-6]*|11.0*) distro=${distro/${codename}/macOS} ;; esac distro=${distro/ ${osx_build}} ;; esac ;; "iPhone OS") distro="iOS $osx_version" # "uname -m" doesn't print architecture on iOS. os_arch=off ;; Windows) distro=$(reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -v ProductName | grep REG_) distro=${distro/ProductName} distro=${distro/REG_SZ} buildnumber=$(reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -v CurrentBuildNumber | grep REG_) buildnumber=${buildnumber/CurrentBuildNumber} buildnumber=${buildnumber/REG_SZ} # If the value of "ProductName" obtained is Windows 10 and the value of "CurrentBuildNumber" is greater than 22000, then the actual operating system version is Windows 11. if [[ "$distro" == *"Windows 10"* ]] && (( buildnumber >= 22000 )); then distro=${distro/Windows 10/Windows 11} fi ;; Solaris|illumos) case $distro_shorthand in on|tiny) distro=$(awk 'NR==1 {print $1,$3}' /etc/release) ;; *) distro=$(awk 'NR==1 {print $1,$2,$3}' /etc/release) ;; esac distro=${distro/\(*} ;; Haiku) distro=Haiku ;; AIX) distro="AIX $(oslevel)" ;; IRIX) distro="IRIX ${kernel_version}" ;; FreeMiNT) distro=FreeMiNT ;; Interix) distro="Interix ${kernel_version}" ;; digitalUNIX) distro="digital UNIX ${kernel_version}" ;; esac distro=${distro//Enterprise Server} [[ $distro ]] || distro="$os (Unknown)" # Get OS architecture. case $os in Solaris|illumos|AIX|Haiku|IRIX|FreeMiNT|BSD|digitalUNIX) machine_arch=$(uname -p) ;; *) machine_arch=$kernel_machine ;; esac [[ $os_arch == on ]] && \ distro+=" $machine_arch" [[ ${ascii_distro:-auto} == auto ]] && \ ascii_distro=$(trim "$distro") } get_bios() { DMI="/sys/devices/virtual/dmi/id" # TODO: Add more platform support for bios detection case $os in Linux) if [[ -f "$DMI/bios_vendor" ]]; then bios="$(< $DMI/bios_vendor)" if [[ -f "$DMI/bios_release" ]]; then bios+=" $(< $DMI/bios_release)" fi if [[ -f "$DMI/bios_date" ]]; then bios+=" ($(< $DMI/bios_date))" fi fi ;; esac } get_model() { case $os in Linux) if [[ -d /android/system/ || -d /system/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 model=$(< /sys/devices/virtual/dmi/id/product_name) model+=" $(< /sys/devices/virtual/dmi/id/product_version)" elif [[ -f /sys/devices/virtual/dmi/id/board_vendor || -f /sys/devices/virtual/dmi/id/board_name ]]; then model=$(< /sys/devices/virtual/dmi/id/board_vendor) model+=" $(< /sys/devices/virtual/dmi/id/board_name)" elif [[ -f /sys/firmware/devicetree/base/model ]]; then model=$(< /sys/firmware/devicetree/base/model) elif [[ -f /tmp/sysinfo/model ]]; then model=$(< /tmp/sysinfo/model) fi ;; "Mac OS X"|"macOS"|"ravynOS") if [ "$(arch)" != "arm64" ] && [[ $(kextstat | grep -F -e "FakeSMC" -e "VirtualSMC") != "" ]]; then model="Hackintosh (SMBIOS: $(sysctl -n hw.model))" else if [[ $osx_version == 10.[4-5]* ]]; then model="$(system_profiler SPHardwareDataType | grep Machine\ Name:)" model=${model/Machine\ Name\:/} model="$model ($(sysctl -n hw.model))" else model=$(sysctl -n hw.model) fi case $model in Mac14,15): "MacBook Air (15-inch, M2, 2023)" ;; Mac14,14): "Mac Studio (M2 Ultra, 2023)" ;; Mac14,13): "Mac Studio (M2 Max, 2023)" ;; Mac14,8): "Mac Pro (2023)" ;; Mac14,6 | Mac14,10): "MacBook Pro (16-inch, 2023)" ;; Mac14,5 | Mac14,9): "MacBook Pro (14-inch, 2023)" ;; Mac14,12 | Mac14,3): "Mac mini (2023)" ;; Mac14,7): "MacBook Pro (13-inch, M2, 2022)" ;; Mac14,2): "MacBook Air (M2, 2022)" ;; Mac13,1): "Mac Studio (M1 Max, 2022)" ;; Mac13,2): "Mac Studio (M1 Ultra, 2022)" ;; MacBookPro18,[3-4]): "MacBook Pro (14-inch, 2021)" ;; MacBookPro18,[1-2]): "MacBook Pro (16-inch, 2021)" ;; MacBookPro17,1): "MacBook Pro (13-inch, M1, 2020)" ;; MacBookPro16,4): "MacBook Pro (16-inch, 2019)" ;; MacBookPro16,3): "MacBook Pro (13-inch, 2020, Two Thunderbolt 3 ports)" ;; MacBookPro16,2): "MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)" ;; MacBookPro16,1): "MacBook Pro (16-inch, 2019)" ;; MacBookPro15,4): "MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)" ;; MacBookPro15,3): "MacBook Pro (15-inch, 2019)" ;; MacBookPro15,2): "MacBook Pro (13-inch, 2018/2019, Four Thunderbolt 3 ports)" ;; MacBookPro15,1): "MacBook Pro (15-inch, 2018/2019)" ;; MacBookPro14,3): "MacBook Pro (15-inch, 2017)" ;; MacBookPro14,2): "MacBook Pro (13-inch, 2017, Four Thunderbolt 3 ports)" ;; MacBookPro14,1): "MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)" ;; MacBookPro13,3): "MacBook Pro (15-inch, 2016)" ;; MacBookPro13,2): "MacBook Pro (13-inch, 2016, Four Thunderbolt 3 ports)" ;; MacBookPro13,1): "MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)" ;; MacBookPro12,1): "MacBook Pro (Retina, 13-inch, Early 2015)" ;; MacBookPro11,[4-5]): "MacBook Pro (Retina, 15-inch, Mid 2015)" ;; MacBookPro11,[2-3]): "MacBook Pro (Retina, 15-inch, Late 2013/Mid 2014)" ;; MacBookPro11,1): "MacBook Pro (Retina, 13-inch, Late 2013/Mid 2014)" ;; MacBookPro10,2): "MacBook Pro (Retina, 13-inch, Late 2012/Early 2013)" ;; MacBookPro10,1): "MacBook Pro (Retina, 15-inch, Mid 2012/Early 2013)" ;; MacBookPro9,2): "MacBook Pro (13-inch, Mid 2012)" ;; MacBookPro9,1): "MacBook Pro (15-inch, Mid 2012)" ;; MacBookPro8,3): "MacBook Pro (17-inch, 2011)" ;; MacBookPro8,2): "MacBook Pro (15-inch, 2011)" ;; MacBookPro8,1): "MacBook Pro (13-inch, 2011)" ;; MacBookPro7,1): "MacBook Pro (13-inch, Mid 2010)" ;; MacBookPro6,2): "MacBook Pro (15-inch, Mid 2010)" ;; MacBookPro6,1): "MacBook Pro (17-inch, Mid 2010)" ;; MacBookPro5,5): "MacBook Pro (13-inch, Mid 2009)" ;; MacBookPro5,3): "MacBook Pro (15-inch, Mid 2009)" ;; MacBookPro5,2): "MacBook Pro (17-inch, Mid/Early 2009)" ;; MacBookPro5,1): "MacBook Pro (15-inch, Late 2008)" ;; MacBookPro4,1): "MacBook Pro (17/15-inch, Early 2008)" ;; MacBookAir10,1): "MacBook Air (M1, 2020)" ;; MacBookAir9,1): "MacBook Air (Retina, 13-inch, 2020)" ;; MacBookAir8,2): "MacBook Air (Retina, 13-inch, 2019)" ;; MacBookAir8,1): "MacBook Air (Retina, 13-inch, 2018)" ;; MacBookAir7,2): "MacBook Air (13-inch, Early 2015/2017)" ;; MacBookAir7,1): "MacBook Air (11-inch, Early 2015)" ;; MacBookAir6,2): "MacBook Air (13-inch, Mid 2013/Early 2014)" ;; MacBookAir6,1): "MacBook Air (11-inch, Mid 2013/Early 2014)" ;; MacBookAir5,2): "MacBook Air (13-inch, Mid 2012)" ;; MacBookAir5,1): "MacBook Air (11-inch, Mid 2012)" ;; MacBookAir4,2): "MacBook Air (13-inch, Mid 2011)" ;; MacBookAir4,1): "MacBook Air (11-inch, Mid 2011)" ;; MacBookAir3,2): "MacBook Air (13-inch, Late 2010)" ;; MacBookAir3,1): "MacBook Air (11-inch, Late 2010)" ;; MacBookAir2,1): "MacBook Air (Mid 2009)" ;; MacBook10,1): "MacBook (Retina, 12-inch, 2017)" ;; MacBook9,1): "MacBook (Retina, 12-inch, Early 2016)" ;; MacBook8,1): "MacBook (Retina, 12-inch, Early 2015)" ;; MacBook7,1): "MacBook (13-inch, Mid 2010)" ;; MacBook6,1): "MacBook (13-inch, Late 2009)" ;; MacBook5,2): "MacBook (13-inch, Early/Mid 2009)" ;; Macmini9,1): "Mac mini (M1, 2020)" ;; Macmini8,1): "Mac mini (2018)" ;; Macmini7,1): "Mac mini (Mid 2014)" ;; Macmini6,[1-2]): "Mac mini (Late 2012)" ;; Macmini5,[1-2]): "Mac mini (Mid 2011)" ;; Macmini4,1): "MacPromini (Mid 2010)" ;; Macmini3,1): "Mac mini (Early/Late 2009)" ;; MacPro7,1): "Mac Pro (2019)" ;; MacPro6,1): "Mac Pro (Late 2013)" ;; MacPro5,1): "Mac Pro (Mid 2010 - Mid 2012)" ;; MacPro4,1): "Mac Pro (Early 2009)" ;; iMac21,[1-2]): "iMac (24-inch, M1, 2021)" ;; iMac20,[1-2]): "iMac (Retina 5K, 27-inch, 2020)" ;; iMac19,[1-2]): "iMac (Retina 4K, 21.5-inch, 2019)" ;; iMacPro1,1): "iMac Pro (2017)" ;; iMac18,3): "iMac (Retina 5K, 27-inch, 2017)" ;; iMac18,2): "iMac (Retina 4K, 21.5-inch, 2017)" ;; iMac18,1): "iMac (21.5-inch, 2017)" ;; iMac17,1): "iMac (Retina 5K, 27-inch, Late 2015)" ;; iMac16,2): "iMac (Retina 4K, 21.5-inch, Late 2015)" ;; iMac16,1): "iMac (21.5-inch, Late 2015)" ;; iMac15,1): "iMac (Retina 5K, 27-inch, Late 2014 - Mid 2015)" ;; iMac14,4): "iMac (21.5-inch, Mid 2014)" ;; iMac14,2): "iMac (27-inch, Late 2013)" ;; iMac14,1): "iMac (21.5-inch, Late 2013)" ;; iMac13,2): "iMac (27-inch, Late 2012)" ;; iMac13,1): "iMac (21.5-inch, Late 2012)" ;; iMac12,2): "iMac (27-inch, Mid 2011)" ;; iMac12,1): "iMac (21.5-inch, Mid 2011)" ;; iMac11,3): "iMac (27-inch, Mid 2010)" ;; iMac11,2): "iMac (21.5-inch, Mid 2010)" ;; iMac10,1): "iMac (27/21.5-inch, Late 2009)" ;; iMac9,1): "iMac (24/20-inch, Early 2009)" ;; PowerMac12,1): "iMac G5 (20/17-inch, iSight)" ;; PowerMac11,2): "Power Macintosh G5" ;; PowerMac8,2): "iMac G5 (20/17-inch, ALS)" ;; PowerMac8,1): "iMac G5 (20/17-inch)" ;; PowerMac7,[2-3]): "Power Macintosh G5 (PCI/PCI-X)" ;; PowerMac6,4): "eMac G4" ;; PowerMac6,3): "iMac G4 (20/17/15-inch, USB 2.0)" ;; PowerMac6,1): "iMac G4 (17-inch, Flat Panel)" ;; PowerMac5,1): "Power Macintosh G4 Cube" ;; PowerMac4,5): "iMac G4 (17-inch, Flat Panel)" ;; PowerMac4,4): "eMac G4" ;; PowerMac4,1): "iMac G3" ;; PowerMac3,6): "Power Macintosh G4 (MDD/FW800)" ;; PowerMac3,5): "Power Macintosh G4 (Quicksilver)" ;; PowerMac3,4): "Power Macintosh G4 (Digital Audio)" ;; PowerMac3,3): "Power Macintosh G4 (Gigabit)" ;; PowerMac3,1): "Power Macintosh G4 (AGP)" ;; PowerBook6,8 | PowerBook6,4 | PowerBook6,1): "PowerBook G4 (17/15/12-inch, Al)" ;; PowerBook6,7 | PowerBook6,5 | PowerBook6,3): "iBook G4 (14/12-inch)" ;; PowerBook6,2): "PowerBook G4 (12-inch, DVI - Al)" ;; PowerBook5,[8-9]): "PowerBook G4 (17/15-inch, DLSD/HR - Al)" ;; PowerBook5,[3-7] | PowerBook5,1): "PowerBook G4 (17/15/12-inch, Al)" ;; PowerBook5,2): "PowerBook G4 (15-inch, FW800 - Al)" ;; PowerBook4,[1-3]): "iBook G3" ;; PowerBook3,5): "PowerBook G4 (Ti)" ;; PowerBook3,4): "PowerBook G4 (DVI - Ti)" ;; PowerBook3,3): "PowerBook G4 (Gigabit - Ti)" ;; PowerBook3,2): "PowerBook G4 (Original - Ti)" ;; *): "$model" ;; esac model=$_ fi ;; "iPhone OS") case $kernel_machine in iPad1,1): "iPad" ;; iPad1,2): "iPad 3G" ;; iPad2,[1-4]): "iPad 2" ;; iPad3,[1-3]): "iPad 3" ;; iPad3,[4-6]): "iPad 4" ;; iPad6,1[1-2]): "iPad 5" ;; iPad7,[5-6]): "iPad 6" ;; iPad7,1[1-2]): "iPad 7" ;; iPad11,[6-7]): "iPad 8" ;; iPad12,[1-2]): "iPad 9" ;; iPad13,1[8-9]): "iPad 10" ;; iPad4,[1-3]): "iPad Air" ;; iPad5,[3-4]): "iPad Air 2" ;; iPad11,[3-4]): "iPad Air 3" ;; iPad13,[1-2]): "iPad Air 4" ;; iPad13,1[6-7]): "iPad Air 5" ;; iPad6,[7-8]): "iPad Pro 12.9-inch" ;; iPad6,[3-4]): "iPad Pro 9.7-inch" ;; iPad7,[1-2]): "iPad Pro 12.9-inch (2nd generation)" ;; iPad7,[3-4]): "iPad Pro 10.5-inch" ;; iPad8,[1-4]): "iPad Pro 11-inch" ;; iPad8,[5-8]): "iPad Pro 12.9-inch (3rd generation)" ;; iPad8,9 | iPad8,10): "iPad Pro 11-inch (2nd generation)" ;; iPad8,1[1-2]): "iPad Pro 12.9-inch (4th generation)" ;; iPad13,[4-7]): "iPad Pro 11-inch (3rd generation)" ;; iPad13,[8-9]): "iPad Pro 12.9-inch (5th generation)" ;; iPad13,1[0-1]): "iPad Pro 12.9-inch (5th generation)" ;; iPad14,[3-4]): "iPad Pro 11-inch (4th generation)" ;; iPad14,[5-6]): "iPad Pro 12.9-inch (6th generation)" ;; iPad2,[5-7]): "iPad mini" ;; iPad4,[4-6]): "iPad mini 2" ;; iPad4,[7-9]): "iPad mini 3" ;; iPad5,[1-2]): "iPad mini 4" ;; iPad11,[1-2]): "iPad mini 5" ;; iPad14,[1-2]): "iPad mini 6" ;; iPhone1,1): "iPhone" ;; iPhone1,2): "iPhone 3G" ;; iPhone2,1): "iPhone 3GS" ;; iPhone3,[1-3]): "iPhone 4" ;; iPhone4,1): "iPhone 4S" ;; iPhone5,[1-2]): "iPhone 5" ;; iPhone5,[3-4]): "iPhone 5c" ;; iPhone6,[1-2]): "iPhone 5s" ;; iPhone7,2): "iPhone 6" ;; iPhone7,1): "iPhone 6 Plus" ;; iPhone8,1): "iPhone 6s" ;; iPhone8,2): "iPhone 6s Plus" ;; iPhone8,4): "iPhone SE" ;; iPhone9,[13]): "iPhone 7" ;; iPhone9,[24]): "iPhone 7 Plus" ;; iPhone10,[14]): "iPhone 8" ;; iPhone10,[25]): "iPhone 8 Plus" ;; iPhone10,[36]): "iPhone X" ;; iPhone11,2): "iPhone XS" ;; iPhone11,[46]): "iPhone XS Max" ;; iPhone11,8): "iPhone XR" ;; iPhone12,1): "iPhone 11" ;; iPhone12,3): "iPhone 11 Pro" ;; iPhone12,5): "iPhone 11 Pro Max" ;; iPhone12,8): "iPhone SE 2020" ;; iPhone13,1): "iPhone 12 Mini" ;; iPhone13,2): "iPhone 12" ;; iPhone13,3): "iPhone 12 Pro" ;; iPhone13,4): "iPhone 12 Pro Max" ;; iPhone14,2): "iPhone 13 Pro" ;; iPhone14,3): "iPhone 13 Pro Max" ;; iPhone14,4): "iPhone 13 Mini" ;; iPhone14,5): "iPhone 13" ;; iPhone14,6): "iPhone SE 2022" ;; iPhone14,7): "iPhone 14" ;; iPhone14,8): "iPhone 14 Plus" ;; iPhone15,2): "iPhone 14 Pro" ;; iPhone15,3): "iPhone 14 Pro Max" ;; iPod1,1): "iPod touch" ;; iPod2,1): "iPod touch 2G" ;; iPod3,1): "iPod touch 3G" ;; iPod4,1): "iPod touch 4G" ;; iPod5,1): "iPod touch 5G" ;; iPod7,1): "iPod touch 6G" ;; iPod9,1): "iPod touch 7G" ;; esac model=$_ ;; BSD|MINIX) if [[ $kernel_name = "FreeBSD" ]]; then model=$(kenv smbios.system.version) else model=$(sysctl -n hw.vendor hw.product) fi ;; Windows) model=$(wmic computersystem get manufacturer,model) model=${model/Manufacturer} model=${model/Model} ;; Solaris|illumos) model=$(prtconf -b | awk -F':' '/banner-name/ {printf $2}') if virt=$(/usr/bin/uname -V) && [[ "$virt" != "non-virtualized" ]]; then model="${model:-$(uname -i)} (${virt})" fi ;; AIX) model=$(/usr/bin/uname -M) ;; FreeMiNT) model=$(sysctl -n hw.model) model=${model/ (_MCH *)} ;; Interix) model="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe computersystem get manufacturer,model)" model="${model/Manufacturer}" model="${model/Model}" ;; esac # Remove dummy OEM info. model=${model//To be filled by O.E.M.} model=${model//To Be Filled*} model=${model//OEM*} model=${model//Not Applicable} model=${model//System Product Name} model=${model//System Version} model=${model//Undefined} model=${model//Default string} model=${model//Not Specified} model=${model//Type1ProductConfigId} model=${model//INVALID} model=${model//All Series} model=${model//�} case $model in "Standard PC"*) model="KVM/QEMU (${model})" ;; OpenBSD*) model="vmm ($model)" ;; esac } get_title() { user=${USER:-$(id -un || printf %s "${HOME/*\/}")} case $title_fqdn in on) case $os in illumos|Solaris) hostname=$(hostname) domainname=$(domainname) [[ -n "$domainname" ]] && hostname+=".$domainname" ;; *) hostname=$(hostname -f) ;; esac ;; *) hostname=${HOSTNAME:-$(hostname)} hostname=${hostname%%.*} ;; esac title=${title_color}${bold}${user}${at_color}@${title_color}${bold}${hostname} length=$((${#user} + ${#hostname} + 1)) } get_kernel() { # Since these OS are integrated systems, it's better to skip this function altogether [[ $os =~ (AIX|IRIX) ]] && return # Haiku uses 'uname -v' and not - 'uname -r'. [[ $os == Haiku ]] && { kernel=$(uname -v) return } # In Windows 'uname' may return the info of GNUenv thus use wmic for OS kernel. [[ $os == Windows ]] && { kernel=$(wmic os get Version) kernel=${kernel/Version} return } [[ $os == Solaris ]] && { ver=$(uname -v) case $ver in 11.[0123]) ;; *) kernel=${ver} ;; esac return } # In Interix the Kernel version is commonly comprised of the host OS build number, # OS architecture and Interix build number [[ $os == Interix ]] && { kernel="$(uname -r) $(uname -m) $(uname -v)" return } case $kernel_shorthand in on) kernel=$kernel_version ;; off) kernel="$kernel_name $kernel_version" ;; esac # Hide kernel info if it's identical to the distro info. [[ $os =~ (BSD|MINIX) && $distro == *"$kernel_name"* ]] && case $distro_shorthand in on|tiny) kernel=$kernel_version ;; *) unset kernel ;; esac } get_uptime() { # Get uptime in seconds. case $os in Ironclad) s=$(uptime -s) ;; Linux|Windows|MINIX) if [[ -r /proc/uptime ]]; then s=$(< /proc/uptime) s=${s/.*} else boot=$(date -d"$(uptime -s)" +%s) now=$(date +%s) s=$((now - boot)) fi ;; "Mac OS X"|"macOS"|"ravynOS"|"iPhone OS"|BSD|FreeMiNT) boot=$(sysctl -n kern.boottime) boot=${boot/\{ sec = } boot=${boot/,*} # Get current date in seconds. now=$(date +%s) s=$((now - boot)) ;; Solaris|illumos) boot=$(kstat -p unix:0:system_misc:boot_time | awk '{print $2}') now=$(date +%s) s=$((now - boot)) ;; AIX|IRIX) t=$(LC_ALL=POSIX ps -o etime= -p 1) [[ $t == *-* ]] && { d=${t%%-*}; t=${t#*-}; } [[ $t == *:*:* ]] && { h=${t%%:*}; t=${t#*:}; } h=${h#0} t=${t#0} s=$((${d:-0}*86400 + ${h:-0}*3600 + ${t%%:*}*60 + ${t#*:})) ;; Interix) t="$(LC_ALL=POSIX ps -o etime= -p 0)" t="${t%%.*}" [[ $t == *-* ]] && { d=${t%%-*}; t=${t#*-}; } [[ $t == *:*:* ]] && { h=${t%%:*}; t=${t#*:}; } h="${h#0}" t="${t#0}" s="$((${d:-0}*86400 + ${h:-0}*3600 + ${t%%:*}*60 + ${t#*:}))" ;; Haiku) s=$(($(system_time) / 1000000)) ;; esac d="$((s / 60 / 60 / 24)) days" h="$((s / 60 / 60 % 24)) hours" m="$((s / 60 % 60)) minutes" # Remove plural if < 2. ((${d/ *} == 1)) && d=${d/s} ((${h/ *} == 1)) && h=${h/s} ((${m/ *} == 1)) && m=${m/s} # Hide empty fields. ((${d/ *} == 0)) && unset d ((${h/ *} == 0)) && unset h ((${m/ *} == 0)) && unset m # Add "(!)" if more than 100 days ((${d/ *} > 100)) && d="${d}(!)" uptime=${d:+$d, }${h:+$h, }$m uptime=${uptime%', '} uptime=${uptime:-$s seconds} # Make the output of uptime smaller. case $uptime_shorthand in on) uptime=${uptime/ minutes/ mins} uptime=${uptime/ minute/ min} uptime=${uptime/ seconds/ secs} ;; tiny) uptime=${uptime/ days/d} uptime=${uptime/ day/d} uptime=${uptime/ hours/h} uptime=${uptime/ hour/h} uptime=${uptime/ minutes/m} uptime=${uptime/ minute/m} uptime=${uptime/ seconds/s} uptime=${uptime//,} ;; esac } get_packages() { # to adjust the number of pkgs per pkg manager pkgs_h=0 # has: Check if package manager installed. # dir: Count files or dirs in a glob. # pac: If packages > 0, log package manager name. # tot: Count lines in command output. has() { type -p "$1" >/dev/null && manager=$1; } # globbing is intentional here # shellcheck disable=SC2206 dir() { pkgs=($@); [[ ! -e ${pkgs[0]} ]] && return; ((packages+=${#pkgs[@]})); pac "$((${#pkgs[@]}-pkgs_h))"; } pac() { (($1 > 0)) && { managers+=("$1 (${manager})"); manager_string+="${manager}, "; }; } tot() { IFS=$'\n' read -d "" -ra pkgs <<< "$("$@")"; ((packages+=${#pkgs[@]})); pac "$((${#pkgs[@]}-pkgs_h))"; } # Similar with tot but do nothing if the command fails tot-safe() { if pkgs="$("$@")"; then pkgs=$(echo "$pkgs" | wc -l) ((packages+=pkgs)) pac "$((pkgs-pkgs_h))"; fi } # Redefine tot() and dir() for Bedrock Linux. [[ -f /bedrock/etc/bedrock-release && $PATH == */bedrock/cross/* ]] && { br_strata=$(brl list) tot() { IFS=$'\n' read -d "" -ra pkgs <<< "$(for s in ${br_strata}; do strat -r "$s" "$@"; done)" ((packages+="${#pkgs[@]}")) pac "$((${#pkgs[@]}-pkgs_h))"; } dir() { local pkgs=() # globbing is intentional here # shellcheck disable=SC2206 for s in ${br_strata}; do pkgs+=(/bedrock/strata/$s/$@); done ((packages+=${#pkgs[@]})) pac "$((${#pkgs[@]}-pkgs_h))" } } # Programming language package managers. if [[ -z "$package_minimal" ]]; then has pipx && tot pipx list --short has pip && tot pip freeze has cargo && _cargopkgs="$(cargo install --list | grep -v '^ ')" && tot echo "$_cargopkgs" # Special case for npm: If has npm, we should list folders under node_modules instead of using npm list. # This is because npm list is very slow (2s) if has npm; then # Try to apply heuristics to find the global directory. if [[ -d /usr/lib/node_modules ]]; then dir /usr/lib/node_modules/*/ elif [[ -d /usr/local/lib/node_modules ]]; then dir /usr/local/lib/node_modules/*/ else # If neither exist, use npm root -g to get the global directory. # (still ~10x faster than npm list) npm_global="$(npm root -g)" [[ -d "$npm_global" ]] && dir "$npm_global"/*/ # This may not work in WSL2 (if npm is installed on Windows, not WSL). # However, if npm is not installed on this WSL subsystem, it doesn't really count # as a package manager for this subsystem, so let's ignore this case. fi fi # Relatively the same for pnpm if has pnpm; then # Try to apply heuristics to find the global directory. PNPM_P="local/share/pnpm/global/5/node_modules" if [[ -d "$HOME/.$PNPM_P" ]]; then dir "$HOME/.$PNPM_P"/*/ elif [[ -d "/usr/$PNPM_P" ]]; then dir "/usr/$PNPM"/*/ else # If neither exist, use pnpm root -g to get the global directory. pnpm_global="$(pnpm root -g)" [[ -d "$pnpm_global" ]] && dir "$pnpm_global"/*/ fi fi fi if has pkgx && [[ -d "$HOME/.local/bin" ]]; then # https://github.com/pkgxdev/pkgx/issues/985#issuecomment-2080999008 _pkgxpkgs="$(grep -rIhoP 'exec pkgx \+\K[^ ]+' "$HOME/.local/bin" | sort -u)" tot echo "$_pkgxpkgs" unset _pkgxpkgs fi # OS-specific package managers. case $os in Linux|BSD|"iPhone OS"|Solaris|illumos|Interix) # Package Manager Programs. has kiss && tot kiss l has cpt-list && tot cpt-list has pacman-key && tot pacman -Qq --color never has click && tot click list has dpkg && tot dpkg-query -f '.\n' -W has xbps-query && tot xbps-query -l has apk && tot apk info has opkg && tot opkg list-installed has pacman-g2 && tot pacman-g2 -Q has lvu && tot lvu installed has tce-status && tot tce-status -i has pkg_info && tot pkg_info has pkgin && tot pkgin list has tazpkg && pkgs_h=6 tot tazpkg list && ((packages-=6)) has sorcery && tot gaze installed has alps && tot alps showinstalled has butch && tot butch list has swupd && tot swupd bundle-list --quiet has pisi && tot pisi li has pacstall && tot pacstall -L has bulge && tot bulge list has pm && tot-safe pm list packages has evox && tot cat /var/evox/packages/DB has squirrel && tot ls -w 1 /var/packages has anise && tot anise s --installed has am && pac "$(am -f --less)" # Bonsai refers to the now archived repo https://github.com/mitchweaver/bonsai has bonsai && tot bonsai list # Rad refers to https://github.com/glaucuslinux/rad has rad && tot rad -cl # Rad was previously called 'Radula', some systems may still have the old name. has radula && tot radula -cl # https://github.com/birb-linux/birb has birb && tot birb --list-installed has port && pkgs_h=1 tot port installed && ((packages-=1)) # Using the dnf package cache is much faster than rpm. if has dnf && type -p sqlite3 >/dev/null && [[ -f /var/cache/dnf/packages.db ]]; then pac "$(sqlite3 /var/cache/dnf/packages.db "SELECT count(pkg) FROM installed")" else has rpm && tot rpm -qa fi # 'mine' conflicts with minesweeper games. [[ -f /etc/SDE-VERSION ]] && has mine && tot mine -q # Counting files/dirs. # Variables need to be unquoted here. Only Bedrock Linux is affected. # $br_prefix is fixed and won't change based on user input so this is safe either way. # shellcheck disable=SC2086 { shopt -s nullglob has brew && dir "$(brew --cellar)/* $(brew --caskroom)/*" has emerge && dir "/var/db/pkg/*/*" has Compile && dir "/Programs/*/" has eopkg && dir "/var/lib/eopkg/package/*" has inary && dir "/var/lib/inary/package/*" has tekel && dir "/data/app/$USER/* /data/app/system/*" has crew && dir "${CREW_PREFIX:-/usr/local}/etc/crew/meta/*.filelist" has pkgtool && dir "/var/log/packages/*" has scratch && dir "/var/lib/scratchpkg/db/*" has kagami && dir "/var/lib/kagami/pkgs/*" has cave && dir "/var/db/paludis/repositories/cross-installed/*/data/*/ \ /var/db/paludis/repositories/installed/data/*/" has hardman && dir "/var/hpkg/packages/*" shopt -u nullglob } if [[ -z "$package_minimal" ]]; then # Steam games STEAM_P=".local/share/Steam/steamapps/common" if [[ -d "$HOME/$STEAM_P" ]]; then manager=steam && dir "$HOME/$STEAM_P/*/" elif [[ -d "$HOME/.var/app/com.valvesoftware.Steam/$STEAM_P" ]]; then manager=steam && dir "$HOME/.var/app/com.valvesoftware.Steam/$STEAM_P/*/" elif [[ -d "$HOME/.steam/steam/steamapps/common" ]]; then manager=steam && dir "$HOME/.steam/steam/steamapps/common/*/" fi fi # Other (Needs complex command) has kpm-pkg && ((packages+=$(kpm --get-selections | grep -cv deinstall$))) nix-user-pkgs() { if [ -d ~/.nix-profile ]; then nix-store -qR ~/.nix-profile elif [ -d "$XDG_STATE_HOME/nix/profile" ]; then nix-store -qR "$XDG_STATE_HOME/nix/profile" fi nix-store -qR /etc/profiles/per-user/"$USER" } # Separate system and user packages if [[ $package_separate == on ]]; then has guix && { manager=guix-system && tot guix package -p /run/current-system/profile -I manager=guix-user && tot guix package -I manager=guix-home && tot guix package -p ~/.guix-home/profile -I } has nix-store && { manager=nix-system && tot nix-store -qR /run/current-system/sw manager=nix-user && tot nix-user-pkgs manager=nix-default && tot nix-store -qR /nix/var/nix/profiles/default } has flatpak && { manager=flatpak-system && tot flatpak list --system manager=flatpak-user && tot flatpak list --user } else has guix && { guix-all() { guix package -p /run/current-system/profile -I guix package -I guix package -p ~/.guix-home/profile -I } manager=guix && tot guix-all } has nix-store && { nix-all() { nix-user-pkgs nix-store -qR /run/current-system/sw nix-store -qR /nix/var/nix/profiles/default } manager=nix && tot nix-all } has flatpak && { manager=flatpak && tot flatpak list } fi # pkginfo is also the name of a python package manager which is painfully slow. # TODO: Fix this somehow. has pkginfo && tot pkginfo -i case $os-$kernel_name in BSD-FreeBSD|BSD-DragonFly) has pkg && tot pkg info /dev/null && \ pkgs_h=1 tot snap list && ((packages-=1)) # Get AppImageLauncher Application directory, # See: https://github.com/TheAssassin/AppImageLauncher/wiki/Configuration#settings-file manager=appimage && has appimaged || [ -f "$HOME"/.config/appimagelauncher.cfg ] && if [ -f "$HOME"/.config/appimagelauncher.cfg ]; then ALDIR=$(grep "destination" "$HOME/.config/appimagelauncher.cfg" --color=never | sed 's/^.*= //') # shellcheck disable=SC2010 [ "$(ls -w 1 "$ALDIR" | grep -ic "AppImage")" = "0" ] && unset ALDIR fi && if find "$HOME"/.local/bin/ -type f -name '*.[Aa]pp[Ii]mage' -print -quit | grep -q .; then AIDIR="$HOME/.local/bin" fi && dir "$AIDIR/*.[Aa]pp[Ii]mage \ $ALDIR/*.[Aa]pp[Ii]mage" # Has devbox & is initialized has devbox && [[ "$(devbox global list)" != *"not activated"* ]] && tot devbox global list ;; "Mac OS X"|"macOS"|MINIX) has port && pkgs_h=1 tot port installed && ((packages-=1)) has brew && dir "$(brew --cellar)/* $(brew --caskroom)/*" has pkgin && tot pkgin list has dpkg && tot dpkg-query -f '.\n' -W has nix-store && { nix-user-pkgs() { nix-store -qR ~/.nix-profile nix-store -qR /etc/profiles/per-user/"$USER" } manager=nix-system && tot nix-store -qR /run/current-system/sw manager=nix-user && tot nix-user-pkgs } ;; AIX|FreeMiNT) has lslpp && ((packages+=$(lslpp -J -l -q | grep -cv '^#'))) has rpm && tot rpm -qa ;; Windows) case $kernel_name in CYGWIN*) has cygcheck && tot cygcheck -cd ;; MSYS*) has pacman && tot pacman -Qq --color never ;; esac ProgramData=$(cygpath --folder 0x0023 2>/dev/null) if [[ -z "$ProgramData" ]]; then mount=$(awk '/^C:\s/ {print $2}' /proc/mounts 2>/dev/null) ProgramData="${mount:-/cygdrive/c}/ProgramData" fi # scoop list adds a few extra lines to be fancy, an easy fix is to just remove the first 4 lines. I dont know a better way to do this. has scoop && pkgs_h=4 tot scoop list # Count chocolatey packages. # [[ -d /c/ProgramData/chocolatey/lib ]] && \ # dir /c/ProgramData/chocolatey/lib/* # has choco && tot choco list --localonly has choco && dir "$ProgramData"/chocolatey/lib/* # Count winget has winget && tot winget list --accept-source-agreements ;; Haiku) has pkgman && dir /boot/system/package-links/* packages=${packages/pkgman/depot} ;; IRIX) manager=swpkg pkgs_h=3 tot versions -b && ((packages-=3)) ;; esac # Count the total number of packages. total_packages=0 for manager_info in "${managers[@]}"; do count=$(echo "$manager_info" | awk '{print $1}') total_packages=$((total_packages + count)) done if ((packages == 0)); then unset packages elif [[ $package_managers == on ]]; then # List individual package manager counts printf -v packages '%s, ' "${managers[@]}" packages=${packages%,*} elif [[ $package_managers == tiny ]]; then # Show total count with package manager names packages="$total_packages (${manager_string%,*})" else # Default to showing just the total count packages="$total_packages" fi packages=${packages/pacman-key/pacman} } get_shell() { case $shell_path in on) shell="$SHELL " ;; off) shell="${SHELL##*/} " ;; esac [[ $shell_version != on ]] && return case ${shell_name:=${SHELL##*/}} in bash) [[ $BASH_VERSION ]] || BASH_VERSION=$("$SHELL" -c "printf %s \"\$BASH_VERSION\"") shell+=${BASH_VERSION/-*} ;; sh|ash|dash|es) ;; *ksh) shell+=$("$SHELL" -c "printf %s \"\$KSH_VERSION\"") shell=${shell/ * KSH} shell=${shell/version} ;; osh) if [[ $OIL_VERSION ]]; then shell+=$OIL_VERSION else shell+=$("$SHELL" -c "printf %s \"\$OIL_VERSION\"") fi ;; tcsh) shell+=$("$SHELL" -c "printf %s \$tcsh") ;; yash) shell+=$("$SHELL" --version 2>&1) shell=${shell/ $shell_name} shell=${shell/ Yet another shell} shell=${shell/Copyright*} ;; nu) shell+=$("$SHELL" -c "version | get version") shell=${shell/ $shell_name} ;; *) shell+=$("$SHELL" --version 2>&1) shell=${shell/ $shell_name} ;; esac # Remove unwanted info. shell=${shell/, version} shell=${shell/xonsh\//xonsh } shell=${shell/options*} shell=${shell/\(*\)} } get_editor() { local editor_full_path="${VISUAL:-$EDITOR}" # in case neither is set just return [[ -z "$editor_full_path" ]] && return # Actually obtain the full path editor_full_path="$(command -v "${editor_full_path}" 2>/dev/null)" # Resolve symlink and get the original name [[ -L "$editor_full_path" ]] && editor_full_path="$(readlink -f "$editor_full_path")" case $editor_path in on) editor="${editor_full_path} " ;; off) editor="${editor_full_path##*/} " ;; esac # in case editor version is not demanded don't bother parsing it [[ $editor_version != on ]] && return # Obtain editor version case ${editor_name:=${editor_full_path##*/}} in nano|vim|nvim|micro|emacs) editor_v=$("$editor_full_path" --version 2>&1) ;; kak) editor_v=$("$editor_full_path" -version 2>&1) ;; ne) editor_v=$("$editor_full_path" -h 2>&1) ;; esac editor_v="${editor_v/$'\n'*}" editor_v="${editor_v/Version: }" # Only show editor name if the version string doesn't contain it echo "$editor_v" | grep -i "$editor_name" &> /dev/null && editor_name="" editor=${editor_name}${editor_v:+ }${editor_v} # remove some common unwanted info from version strings editor=${editor/, version} editor=${editor/options*} editor=${editor/\(*\)} } get_de() { # If function was run, stop here. ((de_run == 1)) && return case $os in "Mac OS X"|"macOS") de=Aqua ;; "ravynOS") de=Magma ;; Windows) case $distro in *"Windows 10"*|*"Windows 11"*) de=Fluent ;; *"Windows 8"*) de=Metro ;; *) de=Aero ;; esac ;; FreeMiNT) freemint_wm=(/proc/*) case ${freemint_wm[*]} in *thing*) de=Thing ;; *jinnee*) de=Jinnee ;; *tera*) de=Teradesk ;; *neod*) de=NeoDesk ;; *zdesk*) de=zDesk ;; *mdesk*) de=mDesk ;; esac ;; *) ((wm_run != 1)) && get_wm # Temporary support for Regolith Linux if [[ $DESKTOP_SESSION == *regolith ]]; then de=Regolith # Added support Fly for Astra Linux elif [[ $DESKTOP_SESSION == fly ]]; then de=Fly elif [[ $XDG_CURRENT_DESKTOP ]]; then de=${XDG_CURRENT_DESKTOP/X\-} de=${de/Budgie:GNOME/Budgie} de=${de/:Unity7:ubuntu} elif [[ $DESKTOP_SESSION ]]; then de=${DESKTOP_SESSION##*/} de=${de/trinity/Trinity} elif [[ $GNOME_DESKTOP_SESSION_ID ]]; then de=GNOME 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 discards the DE value. [[ $de == "$wm" ]] && { unset -v de; return; } ;; esac # Fallback to using xprop. [[ $DISPLAY && -z $de ]] && type -p xprop &>/dev/null && \ de=$(xprop -root | awk '/KDE_SESSION_VERSION|^_MUFFIN|xfce4|xfce5/') # Format strings. case $de in KDE_SESSION_VERSION*) de=KDE${de/* = } ;; *xfce4*) de=Xfce4 ;; *xfce5*) de=Xfce5 ;; *xfce*) de=Xfce ;; *mate*) de=MATE ;; *GNOME*) de=GNOME ;; *MUFFIN*) de=Cinnamon ;; esac ((${KDE_SESSION_VERSION:-0} >= 4)) && de=${de/KDE/Plasma} ((${KDE_SESSION_VERSION:-0} >= 6)) && de=${de/Plasma/Plasma6} if [[ $de_version == on && $de ]]; then case $de in Plasma6*) de_ver=$(plasmashell --version) kf_ver=$(kinfo) qt_ver=${kf_ver/Kernel*} qt_ver=${qt_ver/*:} qt_ver=$(trim "$qt_ver") kf_ver=${kf_ver/Qt*} kf_ver=${kf_ver/*:} kf_ver=$(trim "$kf_ver") ;; Plasma*) de_ver=$(plasmashell --version) kf_ver=$(kf5-config --version) qt_ver=${kf_ver/KDE*} qt_ver=${qt_ver/Qt:} qt_ver=$(trim "$qt_ver") kf_ver=${kf_ver/kf5*} kf_ver=${kf_ver/*:} kf_ver=$(trim "$kf_ver") ;; MATE*) de_ver=$(mate-session --version) ;; Xfce*) de_ver=$(xfce4-session --version) ;; GNOME*) de_ver=$(gnome-shell --version) ;; Cinnamon*) de_ver=$(cinnamon --version) ;; Deepin*) de_ver=$(awk -F'=' '/MajorVersion/ {print $2}' /etc/os-version) ;; Budgie*) de_ver=$(budgie-desktop --version) ;; Cutefish*) de_ver=$(awk -F'=' '/Version/ {print $2}' /etc/cutefish) ;; LXQt*) de_ver=$(lxqt-session --version) ;; Lumina*) de_ver=$(lumina-desktop --version 2>&1) ;; Trinity*) de_ver=$(tde-config --version) ;; Unity*) de_ver=$(unity --version) ;; esac de_ver=${de_ver/*TDE:} de_ver=${de_ver/tde-config*} de_ver=${de_ver/liblxqt*} de_ver=${de_ver/Copyright*} de_ver=${de_ver/)*} de_ver=${de_ver/* } de_ver=${de_ver//\"} de+=" $de_ver" [[ $de == "Plasma"* ]] && de="Plasma $de_ver [KF $kf_ver] [Qt $qt_ver]" fi # TODO: # - New config option + flag: --de_display_server on/off ? # - Add display of X11, Arcan and anything else relevant. [[ $de ]] && [[ -n $XDG_SESSION_TYPE ]] && de+=" (${XDG_SESSION_TYPE})" de_run=1 } get_wm() { # If function was run, stop here. ((wm_run == 1)) && return case $kernel_name in *OpenBSD*) ps_flags=(x -c) ;; *) ps_flags=(-e) ;; esac if [[ -O "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}" ]]; then if tmp_pid="$(lsof -t "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}" 2>&1)" || tmp_pid="$(fuser "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}" 2>&1)"; then tmp_pid="$(trim "${tmp_pid##*:}")" wm="$(ps -p "${tmp_pid}" -ho comm=)" else # lsof may not exist, or may need root on some systems. Similarly fuser. # On those systems we search for a list of known window managers, this can mistakenly # match processes for another user or session and will miss unlisted window managers. wm=$(ps "${ps_flags[@]}" | grep -m 1 -o -F \ -e ^arcan$ \ -e ^asc$ \ -e ^clayland$ \ -e ^dwc$ \ -e ^dwl$ \ -e ^fireplace$ \ -e ^gnome-shell$ \ -e ^greenfield$ \ -e ^grefsen$ \ -e ^hikari$ \ -e ^Hyprland$ \ -e ^kwin$ \ -e ^lipstick$ \ -e ^maynard$ \ -e ^mazecompositor$ \ -e ^motorcar$ \ -e ^orbital$ \ -e ^orbment$ \ -e ^perceptia$ \ -e ^river$ \ -e ^rustland$ \ -e ^sway$ \ -e ^ulubis$ \ -e ^velox$ \ -e ^wavy$ \ -e ^way-cooler$ \ -e ^wayfire$ \ -e ^wayhouse$ \ -e ^westeros$ \ -e ^westford$ \ -e ^weston$ ) fi elif [[ $DISPLAY && $os != "Mac OS X" && $os != "macOS" && $os != FreeMiNT ]]; then # non-EWMH WMs. wm=$(ps "${ps_flags[@]}" | grep -m 1 -o \ -e "[s]owm" \ -e "[c]atwm" \ -e "[f]vwm" \ -e "[d]wm" \ -e "[2]bwm" \ -e "[m]onsterwm" \ -e "[t]inywm" \ -e "[x]11fs" \ -e "[x]monad") [[ -z $wm ]] && type -p xprop &>/dev/null && { id=$(xprop -root -notype _NET_SUPPORTING_WM_CHECK) id=${id##* } wm=$(xprop -id "$id" -notype -len 100 -f _NET_WM_NAME 8t) wm=${wm/*WM_NAME = } wm=${wm/\"} wm=${wm/\"*} } else case $os in "Mac OS X"|"macOS") ps_line=$(ps -e | grep -o \ -e "[S]pectacle" \ -e "[A]methyst" \ -e "[k]wm" \ -e "[c]hun[k]wm" \ -e "[y]abai" \ -e "[R]ectangle") case $ps_line in *chunkwm*) wm=chunkwm ;; *kwm*) wm=Kwm ;; *yabai*) wm=yabai ;; *Amethyst*) wm=Amethyst ;; *Spectacle*) wm=Spectacle ;; *Rectangle*) wm=Rectangle ;; *) wm="Quartz Compositor" ;; esac ;; Windows) wm=$( tasklist | grep -Fom 1 \ -e bugn \ -e Windawesome \ -e blackbox \ -e emerge \ -e litestep ) [[ $wm == blackbox ]] && wm="bbLean (Blackbox)" wm=${wm:+$wm, }DWM.exe ;; FreeMiNT) freemint_wm=(/proc/*) case ${freemint_wm[*]} in *xaaes* | *xaloader*) wm=XaAES ;; *myaes*) wm=MyAES ;; *naes*) wm=N.AES ;; geneva) wm=Geneva ;; *) wm="Atari AES" ;; esac ;; esac fi # Rename window managers to their proper values. [[ $wm == *WINDOWMAKER* ]] && wm=wmaker [[ $wm == *GNOME*Shell* ]] && wm=Mutter wm_run=1 } get_wm_theme() { ((wm_run != 1)) && get_wm ((de_run != 1)) && get_de case $wm in E16) wm_theme=$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg") ;; Sawfish) wm_theme=$(awk -F '\\(quote|\\)' '/default-frame-style/ {print $(NF-4)}' \ "$HOME/.sawfish/custom") ;; Cinnamon|Muffin|"Mutter (Muffin)") detheme=$(gsettings get org.cinnamon.theme name) wm_theme=$(gsettings get org.cinnamon.desktop.wm.preferences theme) wm_theme="$detheme ($wm_theme)" ;; Compiz|Mutter|Gala) if type -p gsettings >/dev/null; then wm_theme=$(gsettings get org.gnome.shell.extensions.user-theme name) [[ ${wm_theme//\'} ]] || \ wm_theme=$(gsettings get org.gnome.desktop.wm.preferences theme) elif type -p gconftool-2 >/dev/null; then wm_theme=$(gconftool-2 -g /apps/metacity/general/theme) fi ;; Metacity*) if [[ $de == Deepin ]]; then wm_theme=$(gsettings get com.deepin.wrap.gnome.desktop.wm.preferences theme) elif [[ $de == MATE ]]; then wm_theme=$(gsettings get org.mate.Marco.general theme) else wm_theme=$(gconftool-2 -g /apps/metacity/general/theme) fi ;; E17|Enlightenment) if type -p eet >/dev/null; then wm_theme=$(eet -d "$HOME/.e/e/config/standard/e.cfg" config |\ awk '/value \"file\" string.*.edj/ {print $4}') wm_theme=${wm_theme##*/} wm_theme=${wm_theme%.*} fi ;; Fluxbox) [[ -f $HOME/.fluxbox/init ]] && wm_theme=$(awk -F "/" '/styleFile/ {print $NF}' "$HOME/.fluxbox/init") ;; IceWM*) [[ -f $HOME/.icewm/theme ]] && wm_theme=$(awk -F "[\",/]" '!/#/ {print $2}' "$HOME/.icewm/theme") ;; Openbox) case $de in LXDE*) ob_file="lxde-rc" ;; LXQt*) ob_file="lxqt-rc" ;; *) ob_file="rc" ;; esac ob_file=$XDG_CONFIG_HOME/openbox/$ob_file.xml [[ -f $ob_file ]] && wm_theme=$(awk '// {while (getline n) {if (match(n, //)) {l=n; exit}}} END {split(l, a, "[<>]"); print a[3]}' "$ob_file") ;; PekWM) [[ -f $HOME/.pekwm/config ]] && wm_theme=$(awk -F "/" '/Theme/{gsub(/\"/,""); print $NF}' "$HOME/.pekwm/config") ;; Xfwm4) [[ -f $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml ]] && wm_theme=$(xfconf-query -c xfwm4 -p /general/theme) ;; KWin*) kde_config_dir kwinrc=$kde_config_dir/kwinrc 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" ]] || wm_theme=$(awk '/library=org.kde/ { gsub(/library=org.kde./,"",$0); print $0; exit }' "$kwinrc") [[ $wm_theme ]] || 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=} ;; "Quartz Compositor") global_preferences=$HOME/Library/Preferences/.GlobalPreferences.plist wm_theme=$(PlistBuddy -c "Print AppleInterfaceStyle" "$global_preferences") wm_theme_color=$(PlistBuddy -c "Print AppleAccentColor" "$global_preferences") [[ "$wm_theme" ]] || wm_theme=Light case $wm_theme_color in -1) wm_theme_color=Graphite ;; 0) wm_theme_color=Red ;; 1) wm_theme_color=Orange ;; 2) wm_theme_color=Yellow ;; 3) wm_theme_color=Green ;; 5) wm_theme_color=Purple ;; 6) wm_theme_color=Pink ;; *) wm_theme_color=Blue ;; esac wm_theme="$wm_theme_color ($wm_theme)" ;; *Explorer) path=/proc/registry/HKEY_CURRENT_USER/Software/Microsoft path+=/Windows/CurrentVersion/Themes/CurrentTheme wm_theme=$(head -n1 "$path") wm_theme=${wm_theme##*\\} wm_theme=${wm_theme%.*} ;; Blackbox|bbLean*) 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=${wm_theme##*\\} wm_theme=${wm_theme%.*} ;; LeftWM*) if command -v leftwm-theme &> /dev/null then wm_theme=$(leftwm-theme status | grep "Your current theme" | sed -e 's/Your current theme is //g' -e 's/\,.*$//g') fi ;; fly-wm) fly_config_file if grep -q 'DecorTheme' "${fly_config_file}" 2>/dev/null; then wm_theme=$(awk -F'=' '/^DecorTheme/{print $2}' "${fly_config_file}") fi if [ -z "$wm_theme" ] || [ "$wm_theme" = "Not Found" ]; then wm_theme=Default fi ;; esac wm_theme=$(trim_quotes "$wm_theme") } get_cpu() { case $os in "Ironclad") cpu="$(cpuinfo -n) ($(cpuinfo -c)) @ $(cpuinfo -f)" ;; "Linux" | "MINIX" | "Windows") # Get CPU name. cpu_file="/proc/cpuinfo" case $kernel_machine in "frv" | "hppa" | "m68k" | "openrisc" | "or"* | "powerpc" | "ppc"* | "sparc"*) cpu="$(awk -F':' '/^cpu\t|^CPU/ {printf $2; exit}' "$cpu_file")" ;; "s390"*) cpu="$(awk -F'=' '/machine/ {print $4; exit}' "$cpu_file")" ;; "ia64" | "m32r") cpu="$(awk -F':' '/model/ {print $2; exit}' "$cpu_file")" [[ -z "$cpu" ]] && cpu="$(awk -F':' '/family/ {printf $2; exit}' "$cpu_file")" ;; "riscv"* | "rv"*) cpu_uarch="$(awk -F':' '/uarch/ {print $2; exit}' "$cpu_file")" # RISC-V ISA string example: "rv64imafdch_zicsr_zifencei". cpu_isa="$(awk -F':' '/isa/ {print $2; exit}' "$cpu_file")" # The _z parts are not important for CPU showcasing, so we remove them. cpu_isa="${cpu_isa%%_*}" # Then we replace "imafd" with "g" since "g" is a shorthand. cpu_isa="${cpu_isa/imafd/g}" # The final ISA output of the above example is "rv64gch". cpu="$cpu_uarch $cpu_isa" ;; "arm"* | "aarch64") if [[ $(trim "$distro") == Android* ]]; then # Android roms have modified cpuinfo that shows CPU model as a string cpu="$(awk -F':' '/Hardware/ {print $2; exit}' "$cpu_file")" else # ARM linux displays binary model code in cpuinfo, which needs to be decoded with lscpu if ! command -v python3 &> /dev/null; then cpu="$(lscpu | awk -F': ' '/Vendor ID/ {print $2; exit}' ) $(lscpu | awk -F': ' '/Model name/ {print $2; exit}')" else # Sometimes there are multiple CPU models (e.g. RK3399 has 4 A53 and 2 A72 cores) # However, I don't know how to implement this in awk, so I'll use python for now read -r -d '' py_script << END from subprocess import check_output def find(lines, label): for ln in lines: if ln.strip().startswith(label): t = ln.split(label)[-1].strip() return None if t == '-' else t return None if __name__ == '__main__': lscpu = check_output('lscpu').decode() vendor_id = find(lscpu.split('\n'), 'Vendor ID:') or None cpus = [] for model_desc in lscpu.split('Model name:'): lines = model_desc.split('\n') model = lines[0].strip() cores = find(lines, 'Core(s) per socket:') or find(lines, 'Core(s) per cluster:') if cores is None: continue cores = int(cores) cores *= int(find(lines, 'Socket(s):') or find(lines, 'Cluster(s):') or "1") if cores == -1: continue mhz = float(find(lines, 'CPU max MHz:') or find(lines, 'CPU min MHz:') or "0") speed = f'@ {mhz / 1000:.2f} GHz' if mhz > 0 else '' cpus.append(f'{vendor_id} {model} ({cores}) {speed}') print('\n'.join(cpus)) END tmp_cpus=$(python3 -c "$py_script") while IFS= read -r line; do prin "${subtitle:+${subtitle}}" "$line" done <<< "$tmp_cpus" return fi fi ;; esac # If cpu is not detected on a platform-specific bases, fallback to cpuinfo method [[ -z "$cpu" ]] && cpu="$(awk -F '\\s*: | @' '/model name|Model|uarch|Hardware|Processor|^cpu model|chip type|^cpu type/ { print $2; exit}' "$cpu_file")" [[ -z "$cpu" ]] && cpu="$(awk -F '\\s*: | @' '/Hardware/ {print $2; exit}' "$cpu_file")" speed_dir="/sys/devices/system/cpu/cpu0/cpufreq" # Select the right temperature file. for temp_dir in /sys/class/hwmon/*; do [[ "$(< "${temp_dir}/name")" =~ (cpu_thermal|coretemp|fam15h_power|k10temp) ]] && { temp_dirs=("$temp_dir"/temp*_input) temp_dir=${temp_dirs[0]} break } done # If on a Raspberry Pi... if grep -q "Raspberry Pi" /proc/device-tree/model; then temp_dir=/sys/class/thermal/thermal_zone0/temp fi # Get CPU speed. if [[ -d "$speed_dir" ]]; then # Fallback to bios_limit if $speed_type fails. speed="$(< "${speed_dir}/${speed_type}")" ||\ speed="$(< "${speed_dir}/bios_limit")" ||\ speed="$(< "${speed_dir}/scaling_max_freq")" ||\ speed="$(< "${speed_dir}/cpuinfo_max_freq")" speed="$((speed / 1000))" else case $kernel_machine in "sparc"*) # SPARC systems use a different file to expose clock speed information. speed_file="/sys/devices/system/cpu/cpu0/clock_tick" speed="$(($(< "$speed_file") / 1000000))" ;; *) speed="$(awk -F ': |\\.' '/cpu MHz|^clock/ {printf $2; exit}' "$cpu_file")" speed="${speed/MHz}" ;; esac fi # Get CPU temp. [[ -f "$temp_dir" ]] && deg="$(($(< "$temp_dir") * 100 / 10000))" # Get CPU cores. case $kernel_machine in "sparc"*) case $cpu_cores in # SPARC systems doesn't expose detailed topology information in # /proc/cpuinfo so I have to use lscpu here. "logical" | "on") cores="$(lscpu | awk -F ': *' '/^CPU\(s\)/ {print $2}')" ;; "physical") cores="$(lscpu | awk -F ': *' '/^Core\(s\) per socket/ {print $2}')" sockets="$(lscpu | awk -F ': *' '/^Socket\(s\)/ {print $2}')" cores="$((sockets * cores))" ;; esac ;; *) sockets="$(grep "physical id" /proc/cpuinfo | sort -u | wc -l)" case $cpu_cores in "logical" | "on") cores="$(grep -c "^processor" "$cpu_file")" ;; "physical") cores="$(awk '/^core id/&&!a[$0]++{++i} END {print i}' "$cpu_file")" ;; esac ;; esac ;; "Mac OS X"|"macOS") if [[ $osx_version == 10.[4-5]* ]]; then cpu="$(system_profiler SPHardwareDataType | grep CPU\ Type)" cpu="${cpu/CPU\ Type\:/}" speed="$(system_profiler SPHardwareDataType | grep CPU\ Speed)" speed="${speed/CPU\ Speed\:/}" speed="${speed/ MHz/}" speed="${speed/ GHz/}" cores="$(system_profiler SPHardwareDataType | grep Number\ Of\ CPUs)" cores="${cores/Number\ Of\ CPUs\:/}" else cpu="$(sysctl -n machdep.cpu.brand_string)" fi # Get CPU cores. case $cpu_cores in "logical" | "on") cores="$(sysctl -n hw.logicalcpu_max)" ;; "physical") cores="$(sysctl -n hw.physicalcpu_max)" ;; esac ;; "iPhone OS") 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] | "iPad6,1"[12]): "Apple A9 (2) @ 1.85GHz" ;; "iPhone9,"[1-4] | "iPad7,"[5-6] | "iPad7,1"[1-2]): "Apple A10 Fusion (4) @ 2.34GHz" ;; "iPhone10,"[1-6]): "Apple A11 Bionic (6) @ 2.39GHz" ;; "iPhone11,"[2468] | "iPad11,"[1-4] | "iPad11,"[6-7]): "Apple A12 Bionic (6) @ 2.49GHz" ;; "iPhone12,"[1358]): "Apple A13 Bionic (6) @ 2.65GHz" ;; "iPhone13,"[1-4] | "iPad13,"[1-2]): "Apple A14 Bionic (6) @ 3.00GHz" ;; "iPhone14,"[2-8]): "Apple A15 Bionic (6) @ 3.23GHz" ;; "iPhone15,"[2-3]): "Apple A16 Bionic (6) @ 3.46GHz" ;; "iPad12,"[1-2]): "Apple A13 Bionic (6) @ 2.65GHz" ;; "iPad13,"[4-9]): "Apple M1 (8) @ 3.19GHz" ;; "iPad13,1"[0-1]): "Apple M1 (8) @ 3.19GHz" ;; "iPad13,1"[6-7]): "Apple M1 (8) @ 3.19GHz" ;; "iPad13,1"[8-9]): "Apple A14 Bionic (6) @ 3.00GHz" ;; "iPad14,"[1-2]): "Apple A15 Bionic (6) @ 3.23GHz" ;; "iPad14,"[3-6]): "Apple M2 (8) @ 3.49GHz" ;; "iPod2,1"): "Samsung S5L8720 (1) @ 533MHz" ;; "iPod3,1"): "Samsung S5L8922 (1) @ 600MHz" ;; "iPod7,1"): "Apple A8 (2) @ 1.1GHz" ;; "iPod9,1"): "Apple A10 Fusion (4) @ 1.64GHz" ;; "iPad1,"[1-2]): "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" ;; "iPad7,"[1-4]): "Apple A10X Fusion (6) @ 2.39GHz" ;; "iPad8,"[1-8]): "Apple A12X Bionic (8) @ 2.49GHz" ;; "iPad8,9" | "iPad8,1"[0-2]): "Apple A12Z Bionic (8) @ 2.49GHz" ;; esac cpu="$_" ;; "BSD") # Get CPU name. cpu="$(sysctl -n hw.model)" cpu="${cpu/[0-9]\.*}" cpu="${cpu/ @*}" # Get CPU speed. speed="$(sysctl -n hw.cpuspeed)" [[ -z "$speed" ]] && speed="$(sysctl -n hw.clockrate)" # Get CPU cores. case $kernel_name in "OpenBSD"*) [[ "$(sysctl -n hw.smt)" == "1" ]] && smt="on" || smt="off" ncpufound="$(sysctl -n hw.ncpufound)" ncpuonline="$(sysctl -n hw.ncpuonline)" cores="${ncpuonline}/${ncpufound},\\xc2\\xa0SMT\\xc2\\xa0${smt}" ;; *) cores="$(sysctl -n hw.ncpu)" ;; esac # Get CPU temp. case $kernel_name in "FreeBSD"* | "DragonFly"* | "NetBSD"*) deg="$(sysctl -n dev.cpu.0.temperature)" deg="${deg/C}" ;; "OpenBSD"* | "Bitrig"*) deg="$(sysctl hw.sensors | \ awk -F'=|degC' '/(ksmn|adt|lm|cpu)0.temp0/ {printf("%2.1f", $2); exit}')" ;; esac ;; "Solaris" | "illumos") # Get CPU name. cpu="$(psrinfo -pv)" cpu="${cpu//*$'\n'}" cpu="${cpu/[0-9]\.*}" cpu="${cpu/ @*}" cpu="${cpu/\(portid*}" # Get CPU speed. speed="$(psrinfo -v | awk '/operates at/ {print $6; exit}')" # Get CPU cores. case $cpu_cores in "logical" | "on") cores="$(kstat -m cpu_info | grep -c -F "chip_id")" ;; "physical") cores="$(psrinfo -p)" ;; esac ;; "Haiku") # Get CPU name. cpu="$(sysinfo -cpu | awk -F '\\"' '/CPU #0/ {print $2}')" cpu="${cpu/@*}" # Get CPU speed. speed="$(sysinfo -cpu | awk '/running at/ {print $NF; exit}')" speed="${speed/MHz}" # Get CPU cores. cores="$(sysinfo -cpu | grep -c -F 'CPU #')" ;; "AIX") # Get CPU name. cpu="$(lsattr -El proc0 -a type | awk '{printf $2}')" # Get CPU speed. speed="$(prtconf -s | awk -F':' '{printf $2}')" speed="${speed/MHz}" # Get CPU cores. case $cpu_cores in "logical" | "on") cores="$(lparstat -i | awk -F':' '/Online Virtual CPUs/ {printf $2}')" ;; "physical") cores="$(lparstat -i | awk -F':' '/Active Physical CPUs/ {printf $2}')" ;; esac ;; "IRIX") # Get CPU name. cpu="$(hinv -c processor | awk -F':' '/CPU:/ {printf $2}')" # Get CPU speed. speed="$(hinv -c processor | awk '/MHZ/ {printf $2}')" # 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)" ;; "Interix") cpu="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe cpu get Name)" cpu="${cpu/Name}" speed="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe cpu get CurrentClockSpeed)" speed="${speed/CurrentClockSpeed}" cores="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe cpu get NumberOfCores)" cores="${cores/NumberOfCores}" ;; esac # Remove un-needed patterns from cpu output. cpu="${cpu//(TM)}" cpu="${cpu//(tm)}" cpu="${cpu//(R)}" cpu="${cpu//(r)}" cpu="${cpu//CPU}" cpu="${cpu//Processor}" cpu="${cpu//Dual-Core}" cpu="${cpu//Quad-Core}" cpu="${cpu//Six-Core}" cpu="${cpu//Eight-Core}" cpu="${cpu//[1-9][0-9]-Core}" cpu="${cpu//[0-9]-Core}" cpu="${cpu//, * Compute Cores}" 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:]]}" speed="${speed//[[:space:]]}" # Remove CPU brand from the output. if [[ "$cpu_brand" == "off" ]]; then cpu="${cpu/AMD }" cpu="${cpu/Intel }" cpu="${cpu/Core? Duo }" cpu="${cpu/Qualcomm }" fi # Add CPU cores to the output. [[ "$cpu_cores" != "off" && "$cores" ]] && \ case $os in "Mac OS X"|"macOS") if [[ $(uname -m) == 'arm64' ]]; then cpu="$cpu ($cores)" else cpu="${cpu/@/(${cores}) @}" fi ;; *) # If socket information is present and more than 1, display cpu count first if [[ $sockets ]] && [[ $sockets -gt 1 ]]; then cpu="${sockets}x $cpu ($((cores / sockets)))" else cpu="$cpu ($cores)" fi ;; esac # Add CPU speed to the output. if [[ "$cpu_speed" != "off" && "$speed" ]]; then if (( speed < 1000 )); then cpu="$cpu @ ${speed}MHz" else [[ "$speed_shorthand" == "on" ]] && speed="$((speed / 100))" speed="${speed:0:1}.${speed:1}" cpu="$cpu @ ${speed}GHz" fi fi # Add CPU temp to the output. if [[ "$cpu_temp" != "off" && "$deg" ]]; then deg="${deg//.}" # Convert to Fahrenheit if enabled [[ "$cpu_temp" == "F" ]] && deg="$((deg * 90 / 50 + 320))" # Format the output deg="[${deg/${deg: -1}}.${deg: -1}°${cpu_temp:-C}]" cpu="$cpu $deg" fi } get_gpu() { case $os in "Linux") # Read GPUs into array. gpu_cmd="$(lspci -mm | awk -F '\"|\" \"|\\(' \ '/"Display|"3D|"VGA/ { a[$0] = $1 " " $3 " " ($(NF-1) ~ /^$|^Device [[:xdigit:]]+$/ ? $4 : $(NF-1)) } END { for (i in a) { if (!seen[a[i]]++) { sub("^[^ ]+ ", "", a[i]); print a[i] } }}')" if [[ "$gpu_cmd" == "" ]]; then gpu_cmd="$(glxinfo -B | grep -F 'OpenGL renderer string')" gpu_cmd="${gpu_cmd/OpenGL renderer string: }" fi IFS=$'\n' read -d "" -ra gpus <<< "$gpu_cmd" for gpu in "${gpus[@]}"; do # GPU shorthand tests. [[ "$gpu_type" == "dedicated" && "$gpu" == *Intel* ]] || \ [[ "$gpu_type" == "integrated" && ! "$gpu" == *Intel* ]] && \ { unset -v gpu; continue; } case $gpu in *"Advanced"*) brand="${gpu/*AMD*ATI*/AMD ATI}" brand="${brand:-${gpu/*AMD*/AMD}}" brand="${brand:-${gpu/*ATI*/ATi}}" gpu="${gpu/\[AMD\/ATI\] }" gpu="${gpu/\[AMD\] }" gpu="${gpu/OEM }" gpu="${gpu/Advanced Micro Devices, Inc.}" gpu="${gpu/*\[}" gpu="${gpu/\]*}" gpu="$brand $gpu" ;; *"NVIDIA"*) gpu="${gpu/*NVIDIA}" gpu="${gpu/*\[}" gpu="${gpu/\]*}" gpu="NVIDIA $gpu" ;; *"Intel"*) gpu="${gpu/*Intel/Intel}" 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" ;; *"MCST"*) gpu="${gpu/*MCST*MGA2*/MCST MGA2}" ;; *"VirtualBox"*) gpu="VirtualBox Graphics Adapter" ;; *) continue ;; esac if [[ "$gpu_brand" == "off" ]]; then gpu="${gpu/AMD }" gpu="${gpu/NVIDIA }" gpu="${gpu/Intel }" fi prin "${subtitle:+${subtitle}${gpu_name}}" "$gpu" done return ;; "Mac OS X"|"macOS") if [[ -f "${cache_dir}/neofetch/gpu" ]]; then source "${cache_dir}/neofetch/gpu" else if [[ $(uname -m) == 'arm64' ]]; then chipset=$(system_profiler SPDisplaysDataType | awk '/Chipset Model/ { printf "%s %s %s", $3, $4, $5 }') cores=$(system_profiler SPDisplaysDataType | awk '/Total Number of Cores/ { printf "%d", $5 }') gpu="${chipset} (${cores})" else gpu="$(system_profiler SPDisplaysDataType |\ awk -F': ' '/^\ *Chipset Model:/ {printf $2 ", "}')" gpu="${gpu//\/ \$}" gpu="${gpu%,*}" fi cache "gpu" "$gpu" fi ;; "iPhone OS") case $kernel_machine in "iPhone1,"[1-2]): "PowerVR MBX Lite 3D" ;; "iPhone2,1" | "iPhone3,"[1-3] | "iPod3,1" | "iPod4,1" | "iPad1,"[1-2]): "PowerVR SGX535" ;; "iPhone4,1" | "iPad2,"[1-7] | "iPod5,1"): "PowerVR SGX543MP2" ;; "iPhone5,"[1-4]): "PowerVR SGX543MP3" ;; "iPhone6,"[1-2] | "iPad4,"[1-9]): "PowerVR G6430" ;; "iPhone7,"[1-2] | "iPod7,1" | "iPad5,"[1-2]): "PowerVR GX6450" ;; "iPhone8,"[1-4] | "iPad6,1"[12]): "PowerVR GT7600" ;; "iPhone9,"[1-4] | "iPad7,"[5-6]): "PowerVR GT7600 Plus" ;; "iPhone10,"[1-6]): "Apple Designed GPU (A11)" ;; "iPhone11,"[2468] | "iPad11,"[123467]): "Apple Designed GPU (A12)" ;; "iPhone12,"[1358] | "iPad12,"[12]): "Apple Designed GPU (A13)" ;; "iPhone13,"[1234] | "iPad13,"[12]): "Apple Designed GPU (A14)" ;; "iPad3,"[1-3]): "PowerVR SGX534MP4" ;; "iPad3,"[4-6]): "PowerVR SGX554MP4" ;; "iPad5,"[3-4]): "PowerVR GXA6850" ;; "iPad6,"[3-8]): "PowerVR 7XT" ;; "iPad8,"[1-8]): "Apple Designed GPU (A12X)" ;; "iPad8,9" | "iPad8,1"[0-2]): "Apple Designed GPU (A12Z)" ;; "iPad13,"[4-9] | "iPad13,1"[0-1]): "Apple Designed GPU (M1)" ;; "iPad14,"[1-2]): "Apple Designed GPU (A15)" ;; "iPad14,"[3-6]): "Apple Designed GPU (M2)" ;; "iPod1,1" | "iPod2,1") : "PowerVR MBX Lite" ;; esac gpu="$_" ;; "Windows") wmic path Win32_VideoController get caption | while read -r line; do line=$(trim "$line") case $line in *Caption*|'') continue ;; *) prin "${subtitle:+${subtitle}${gpu_name}}" "$line" ;; esac done ;; "Interix") /dev/fs/C/Windows/System32/wbem/WMIC.exe path Win32_VideoController get caption | while read -r line; do line=$(trim "$line") case $line in *Caption*|'') continue ;; *) prin "${subtitle:+${subtitle}${gpu_name}}" "$line" ;; esac done ;; "Haiku") gpu="$(listdev | grep -A2 -F 'device Display controller' |\ awk -F':' '/device [^D]/ {print $2}')" ;; *) case $kernel_name in "FreeBSD"* | "DragonFly"*) gpu="$(pciconf -lv | grep -B 4 -F "VGA" | grep -F "device")" gpu="${gpu/*device*= }" gpu="$(trim_quotes "$gpu")" ;; *) gpu="$(glxinfo -B | grep -F 'OpenGL renderer string')" gpu="${gpu/OpenGL renderer string: }" ;; esac ;; esac if [[ "$gpu_brand" == "off" ]]; then gpu="${gpu/AMD}" gpu="${gpu/NVIDIA}" gpu="${gpu/Intel}" fi } get_memory() { case $os in "Linux" | "Windows") # MemUsed = Memtotal + Shmem - MemFree - Buffers - Cached - SReclaimable # Source: https://github.com/KittyKatt/screenFetch/issues/386#issuecomment-249312716 while IFS=":" read -r a b; do case $a in "MemTotal") ((mem_used+=${b/kB})); mem_total="${b/kB}" ;; "Shmem") ((mem_used+=${b/kB})) ;; "MemFree" | "Buffers" | "Cached" | "SReclaimable") mem_used="$((mem_used-${b/kB}))" ;; # Available since Linux 3.14rc (34e431b0ae398fc54ea69ff85ec700722c9da773). # If detected this will be used over the above calculation for mem_used. "MemAvailable") mem_avail=${b/kB} ;; esac done < /proc/meminfo [[ $mem_avail ]] && mem_used=$((mem_total - mem_avail)) ;; "Mac OS X" | "macOS" | "iPhone OS") hw_pagesize="$(sysctl -n hw.pagesize)" mem_total="$(($(sysctl -n hw.memsize) / 1024))" pages_app="$(($(sysctl -n vm.page_pageable_internal_count) - $(sysctl -n vm.page_purgeable_count)))" pages_wired="$(vm_stat | awk '/ wired/ { print $4 }')" pages_compressed="$(vm_stat | awk '/ occupied/ { printf $5 }')" pages_compressed="${pages_compressed:-0}" mem_used="$(((pages_app + ${pages_wired//.} + ${pages_compressed//.}) * hw_pagesize / 1024))" ;; "BSD" | "MINIX" | "ravynOS") # Mem total. case $kernel_name in "NetBSD"*) mem_total="$(($(sysctl -n hw.physmem64) / 1024))" ;; *) mem_total="$(($(sysctl -n hw.physmem) / 1024))" ;; esac # Mem free. case $kernel_name in "NetBSD"*) mem_free="$(awk -F ':|kB' '/MemFree:/ {printf $2}' /proc/meminfo)" ;; "FreeBSD"* | "DragonFly"*) hw_pagesize="$(sysctl -n hw.pagesize)" mem_inactive="$(($(sysctl -n vm.stats.vm.v_inactive_count) * hw_pagesize))" mem_unused="$(($(sysctl -n vm.stats.vm.v_free_count) * hw_pagesize))" mem_cache="$(($(sysctl -n vm.stats.vm.v_cache_count) * hw_pagesize))" mem_free="$(((mem_inactive + mem_unused + mem_cache) / 1024))" ;; "MINIX") mem_free="$(top -d 1 | awk -F ',' '/^Memory:/ {print $2}')" mem_free=$(("${mem_free/M Free}" * 1024)) ;; "OpenBSD"*) ;; *) mem_free="$(vmstat | awk 'END {printf $5}')" ;; esac # Mem used. case $kernel_name in "OpenBSD"*) mem_used="$(vmstat | awk 'END {printf $3}')" mem_used=$(("${mem_used/M}" * 1024)) ;; *) mem_used="$((mem_total - mem_free))" ;; esac ;; "Solaris" | "illumos" | "AIX") hw_pagesize="$(pagesize)" case $os in "Solaris" | "illumos") 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))" mem_free="$((pages_free * hw_pagesize / 1024))" mem_used="$((mem_total - mem_free))" ;; "Haiku") mem_total="$(($(sysinfo -mem | awk -F '\\/ |)' '{print $2; exit}') / 1024))" mem_used="$(sysinfo -mem | awk -F '\\/|)' '{print $2; exit}')" mem_used="$((${mem_used/max} / 1024))" ;; "IRIX") IFS=$'\n' read -d "" -ra mem_cmd <<< "$(pmem)" IFS=" " read -ra mem_stat <<< "${mem_cmd[0]}" mem_total="${mem_stat[3]}" mem_free="${mem_stat[5]}" mem_used="$((mem_total - mem_free))" ;; "FreeMiNT") mem="$(awk -F ':|kB' '/MemTotal:|MemFree:/ {printf $2, " "}' /kern/meminfo)" mem_free="${mem/* }" mem_total="${mem/$mem_free}" mem_used="$((mem_total - mem_free))" ;; "Interix") mem_total="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe computersystem get TotalPhysicalMemory)" mem_total="${mem_total//[[:space:]]}" mem_total="${mem_total/TotalPhysicalMemory}" mem_total="$((mem_total / 1024 / 1024))" mem_free="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe os get FreePhysicalMemory)" mem_free="${mem_free//[[:space:]]}" mem_free="${mem_free/FreePhysicalMemory}" mem_free="$((mem_free / 1024))" mem_used="$((mem_total - mem_free))" ;; "Ironclad") mem_free="$(( $(showmem -f) * 1000 ))" mem_used="$(( $(showmem -u) * 1000 ))" mem_total="$(( $(showmem -t) * 1000 ))" esac [[ "$memory_percent" == "on" ]] && ((mem_perc=mem_used * 100 / mem_total)) # Creates temp variables: mem_unit_divider, mem_unit_multiplier mem_unit_divider=1 mem_unit_multiplier=$((10 ** mem_precision)) # Keep a copy of the original kibibyte values because progress bar needs them mu_kib="$mem_used" mt_kib="$mem_total" case $memory_unit in tib) mem_label=TiB mem_unit_divider=$((1024 * 1024 * 1024)) ;; gib) mem_label=GiB mem_unit_divider=$((1024 * 1024)) ;; kib) ;; *) mem_label=MiB mem_unit_divider=1024 ;; esac # Uses temp variables from above: mem_unit_divider, mem_unit_multiplier if test "$mem_unit_divider" -ge 1; then case ${mem_precision} in 0) mem_used="$((mem_used / mem_unit_divider))" mem_total="$((mem_total / mem_unit_divider))" ;; *) mem_used="$((mem_used / mem_unit_divider)).$(printf "%0*d" "${mem_precision}" \ $((mem_used % mem_unit_divider * mem_unit_multiplier / mem_unit_divider)))" mem_total="$((mem_total / mem_unit_divider)).$(printf "%0*d" "${mem_precision}" \ $((mem_total % mem_unit_divider * mem_unit_multiplier / mem_unit_divider)))" ;; esac fi memory="${mem_used} ${mem_label:-KiB} / ${mem_total} ${mem_label:-KiB} ${mem_perc:+(${mem_perc}%)}" # Bars. case $memory_display in "bar") memory="$(bar "${mu_kib}" "${mt_kib}")" ;; "infobar") memory="${memory} $(bar "${mu_kib}" "${mt_kib}")" ;; "barinfo") memory="$(bar "${mu_kib}" "${mt_kib}")${info_color} ${memory}" ;; esac } get_network() { case $os in "Linux") while IFS= read -r i; do # List all operational, physical devices if [ "$(cat "$i/operstate")" = "up" ] && [ -e "$i/device" ]; then if [ ! -e "$i/phy80211" ]; then networks+="$(cat "$i/speed")" else networks+="Wifi" phy="$(cat "$i/phy80211/name")" (iw "$phy" info | grep -qF 'VHT Capabilities') && networks+='6' fi networks+=$'\n' fi done < <(find /sys/class/net/ -type l) ;; "Mac OS X"|"macOS") ActiveNetwork=$(route get default | grep interface | awk '{print $2}') ActiveNetworkName=$(networksetup -listallhardwareports | grep -B 1 "$ActiveNetwork" | awk '/Hardware Port/{print}'| awk '{print $3}') if [[ $ActiveNetworkName == "Wi-Fi" ]]; then temp_plist="/tmp/neofetch_system_profiler_SPAirPortDataType.xml" # PlistBuddy doesn't support reading from /dev/stdin system_profiler -detailLevel basic -xml SPAirPortDataType > "$temp_plist" PhyMode="$(PlistBuddy -c "Print 0:_items:0:spairport_airport_interfaces:0:spairport_current_network_information:spairport_network_phymode" "$temp_plist")" 2>/dev/null LinkSpeed="$(PlistBuddy -c "Print 0:_items:0:spairport_airport_interfaces:0:spairport_current_network_information:spairport_network_rate" "$temp_plist")" 2>/dev/null [ -n "$LinkSpeed" ] && LinkSpeed="$LinkSpeed Mbps" else LinkSpeed="$(ifconfig "$ActiveNetwork" | awk '/media/{print}' | sed -E "s/.*\((.*)\).*/\1/")" fi network="$ActiveNetwork: $ActiveNetworkName" [ -n "$PhyMode" ] && network+=" ($PhyMode)" [ -n "$LinkSpeed" ] && network+=" @ $LinkSpeed" ;; esac while IFS=' ' read -r n i; do if [ -n "$i" ]; then [ "$n" -gt 1 ] && network+="${n}x " if [ "$i" = "Wifi" ]; then network+="Wifi; " elif [ "$i" = "Wifi6" ]; then network+="Wifi6; " elif [ "$i" = "-1" ]; then network+="Unknown; " elif [ "${i%000}" = "$i" ]; then network+="$i Mbps; " elif [ "$i" = "2500" ]; then network+="2.5 Gbps; " else network+="${i%000} Gbps; " fi fi done < <(sort -rn <<<"$networks" | uniq -c) if [ -n "$network" ]; then network="${network%; }" fi } get_bluetooth() { # Find bluetooth using lsusb if command -v lsusb &> /dev/null; then bluetooth="$(lsusb | cut -c34- | grep -i bluetooth)" fi # Remove "Bluetooth" suffix bluetooth="${bluetooth%[Bb]luetooth}" } get_song() { players=( "amarok" "audacious" "banshee" "bluemindo" "cider" "clementine" "cmus" "deadbeef" "deepin-music" "dragon" "elisa" "exaile" "gnome-music" "gmusicbrowser" "gogglesmm" "guayadeque" "io.elementary.music" "iTunes" "Music" "juk" "lollypop" "MellowPlayer" "mocp" "mopidy" "mpd" "muine" "netease-cloud-music" "olivia" "plasma-browser-integration" "playerctl" "pogo" "pragha" "qmmp" "quodlibet" "rhythmbox" "sayonara" "smplayer" "spotify" "Spotify" "strawberry" "tauonmb" "tomahawk" "tidal-hifi" "vlc" "xmms2d" "xnoise" "yarock" ) printf -v players "|%s" "${players[@]}" player="$(ps aux | awk -v pattern="(${players:1})" \ '!/ awk / && !/iTunesHelper/ && match($0,pattern){print substr($0,RSTART,RLENGTH); exit}')" [[ "$music_player" && "$music_player" != "auto" ]] && player="$music_player" get_song_dbus() { # Multiple players use an almost identical dbus command to get the information. # This function saves us using the same command throughout the function. song="$(\ dbus-send --print-reply --dest=org.mpris.MediaPlayer2."${1}" /org/mpris/MediaPlayer2 \ org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' \ string:'Metadata' |\ awk -F '"' 'BEGIN {RS=" entry"}; /"xesam:artist"/ {a = $4} /"xesam:album"/ {b = $4} /"xesam:title"/ {t = $4} END {print a " \n" b " \n" t}' )" } case ${player/*\/} in "mocp"*) song="$(mocp -Q '%artist \n%album \n%song')" ;; "deadbeef"*) song="$(deadbeef --nowplaying-tf '%artist% \\n%album% \\n%title%')" ;; "qmmp"*) song="$(qmmp --nowplaying '%p \n%a \n%t')" ;; "gnome-music"*) get_song_dbus "GnomeMusic" ;; "lollypop"*) get_song_dbus "Lollypop" ;; "clementine"*) get_song_dbus "clementine" ;; "juk"*) get_song_dbus "juk" ;; "bluemindo"*) get_song_dbus "Bluemindo" ;; "guayadeque"*) get_song_dbus "guayadeque" ;; "yarock"*) get_song_dbus "yarock" ;; "deepin-music"*) get_song_dbus "DeepinMusic" ;; "tomahawk"*) get_song_dbus "tomahawk" ;; "elisa"*) get_song_dbus "elisa" ;; "sayonara"*) get_song_dbus "sayonara" ;; "audacious"*) get_song_dbus "audacious" ;; "vlc"*) get_song_dbus "vlc" ;; "gmusicbrowser"*) get_song_dbus "gmusicbrowser" ;; "pragha"*) get_song_dbus "pragha" ;; "amarok"*) get_song_dbus "amarok" ;; "dragon"*) get_song_dbus "dragonplayer" ;; "smplayer"*) get_song_dbus "smplayer" ;; "rhythmbox"*) get_song_dbus "rhythmbox" ;; "strawberry"*) get_song_dbus "strawberry" ;; "gogglesmm"*) get_song_dbus "gogglesmm" ;; "xnoise"*) get_song_dbus "xnoise" ;; "tauonmb"*) get_song_dbus "tauon" ;; "tidal-hifi"*) get_song_dbus "tidal-hifi" ;; "olivia"*) get_song_dbus "olivia" ;; "exaile"*) get_song_dbus "exaile" ;; "cider"*) get_song_dbus "cider2" ;; "netease-cloud-music"*) get_song_dbus "netease-cloud-music" ;; "plasma-browser-integration"*) get_song_dbus "plasma-browser-integration" ;; "io.elementary.music"*) get_song_dbus "Music" ;; "MellowPlayer"*) get_song_dbus "MellowPlayer3" ;; "mpd"* | "mopidy"*) song="$(mpc -f '%artist% \n%album% \n%title%' current "${mpc_args[@]}")" ;; "xmms2d"*) song="$(xmms2 current -f "\${artist}"$' \n'"\${album}"$' \n'"\${title}")" ;; "cmus"*) # NOTE: cmus >= 2.8.0 supports mpris2 song="$(cmus-remote -Q | awk '/tag artist/ {$1=$2=""; a=$0} /tag album / {$1=$2=""; b=$0} /tag title/ {$1=$2=""; t=$0} END {print a " \n" b " \n" t}')" ;; "spotify"*) case $os in "Linux") get_song_dbus "spotify" ;; "Mac OS X"|"macOS") song="$(osascript -e 'tell application "Spotify" to artist of current track as¬ string & "\n" & album of current track as¬ string & "\n" & name of current track as string')" ;; esac ;; "itunes"*) song="$(osascript -e 'tell application "iTunes" to artist of current track as¬ string & "\n" & album of current track as¬ string & "\n" & name of current track as string')" ;; "music"*) song="$(osascript -e 'tell application "Music" to artist of current track as¬ string & "\n" & album of current track as¬ string & "\n" & name of current track as string')" ;; "banshee"*) song="$(banshee --query-artist --query-album --query-title |\ awk -F':' '/^artist/ {a=$2} /^album/ {b=$2} /^title/ {t=$2} END {print a " \n" b " \n"t}')" ;; "muine"*) song="$(dbus-send --print-reply --dest=org.gnome.Muine /org/gnome/Muine/Player \ org.gnome.Muine.Player.GetCurrentSong | awk -F':' '/^artist/ {a=$2} /^album/ {b=$2} /^title/ {t=$2} END {print a " \n" b " \n" t}')" ;; "quodlibet"*) song="$(dbus-send --print-reply --dest=net.sacredchao.QuodLibet \ /net/sacredchao/QuodLibet net.sacredchao.QuodLibet.CurrentSong |\ awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4} /"title"/ {t=$4} END {print a " \n" b " \n" t}')" ;; "pogo"*) song="$(dbus-send --print-reply --dest=org.mpris.pogo /Player \ org.freedesktop.MediaPlayer.GetMetadata | awk -F'"' 'BEGIN {RS=" entry"}; /"artist"/ {a=$4} /"album"/ {b=$4} /"title"/ {t=$4} END {print a " \n" b " \n" t}')" ;; "playerctl"*) song="$(playerctl metadata --format '{{ artist }} \n{{ album }} \n{{ title }}')" ;; *) mpc &>/dev/null && song="$(mpc -f '%artist% \n%album% \n%title%' current)" || return ;; esac IFS=$'\n' read -d "" -r artist album title <<< "${song//'\n'/$'\n'}" # Make sure empty tags are truly empty. artist="$(trim "$artist")" album="$(trim "$album")" title="$(trim "$title")" # 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 } get_resolution() { case $os in "Mac OS X"|"macOS") resolution="" temp_plist="/tmp/neofetch_system_profiler_SPDisplaysDataType.xml" # PlistBuddy doesn't support reading from /dev/stdin if system_profiler SPDisplaysDataType -xml > $temp_plist; then for ((gpu=0; gpu<999; gpu++)); do if PlistBuddy -c "print 0:_items:${gpu}" $temp_plist &> /dev/null; then for ((display=0; display<999; display++)); do if spdisplays_resolution="$(PlistBuddy -c "print 0:_items:${gpu}:spdisplays_ndrvs:${display}:_spdisplays_resolution" $temp_plist)" 2>/dev/null; then spdisplays_resolution="${spdisplays_resolution//.[0-9][0-9]/}" if spdisplays_pixels="$(PlistBuddy -c "print 0:_items:${gpu}:spdisplays_ndrvs:${display}:_spdisplays_pixels" $temp_plist)" 2>/dev/null; then scaled_x="$(echo "$spdisplays_resolution" | awk '{print $1}')" output_x="$(echo "$spdisplays_pixels" | awk '{print $1}')" (( scale_factor=output_x/scaled_x )) if [[ $scale_factor -gt 1 ]]; then if [[ "$spdisplays_resolution" == *"@"* ]]; then spdisplays_resolution="${spdisplays_resolution// @/ @${scale_factor}x @}" else spdisplays_resolution="${spdisplays_resolution} @ ${scale_factor}x" fi fi fi spdisplays_resolution="${spdisplays_resolution// x /x}" [[ $gpu -gt 0 || $display -gt 0 ]] && resolution+=", " resolution+="${spdisplays_resolution}" else break fi done else break fi done if [[ "$refresh_rate" == "off" ]]; then resolution="${resolution/ @ [0-9][0-9][0.9]Hz}" resolution="${resolution/ @ [0-9][0.9]Hz}" resolution="${resolution/ @ [0-9]Hz}" else resolution="${resolution// @ 0Hz}" fi rm $temp_plist fi ;; "iPhone OS") case $kernel_machine in "iPhone1,"[1-2] | "iPhone2,1" | "iPod"[1-3]",1"): "320x480" ;; "iPhone3,"[1-3] | "iPhone4,1" | "iPod4,1"): "640x960" ;; "iPhone5,"[1-4] | "iPhone6,"[1-2] | "iPhone8,4" | "iPod"[5-7]",1" | "iPod9,1"): "640x1136" ;; "iPad1,"[1-2] | "iPad2,"[1-7]): "768x1024" ;; "iPhone10,1" | "iPhone10,4" | "iPhone9,1" | "iPhone9,3" | "iPhone8,1" | "iPhone7,2" | "iPhone12,8" | "iPhone14,6"): "750x1334" ;; "iPhone11,8" | "iPhone12,1"): "828x1792" ;; "iPhone7,1" | "iPhone8,2" | "iPhone9,2" | "iPhone9,4" | "iPhone10,2"): "1080x1920" ;; "iPhone13,1" | "iPhone14,4"): "1080x2340" ;; "iPhone10,3" | "iPhone10,6" | "iPhone11,2" | "iPhone12,3"): "1125x2436" ;; "iPhone13,"[2-3] | "iPhone14,2" | "iPhone14,5" | "iPhone14,7"): "1170x2532" ;; "iPhone15,2"): "1179x2556" ;; "iPad4,"[1-9] | "iPad3,"[1-6] | "iPad6,"[3-4] | "iPad6,1"[1-2] | "iPad5,"[1-4] | "iPad7,"[5-6] | "iPad11,"[1-2]): "1536x2048" ;; "iPhone11,4" | "iPhone11,6" | "iPhone12,5"): "1242x2688" ;; "iPad14,"[1-2]): "1488x2266" ;; "iPad7,1"[1-2] | "iPad11,"[6-7] | "iPad12,"[1-2]): "1620x2160" ;; "iPhone13,4" | "iPhone14,3" | "iPhone14,8"): "1284x2778" ;; "iPhone15,3"): "1290x2796" ;; "iPad11,"[3-4] | "iPad7,"[3-4]): "1668x2224" ;; "iPad13,"[1-2] | "iPad13,1"[6-9]): "1640x2360" ;; "iPad8,"[1-4] | "iPad8,"[9-10] | "iPad13,"[4-7] | "iPad14,"[3-6]): "1668x2388" ;; "iPad6,"[7-8] | "iPad7,"[1-2] | "iPad8,"[5-8] | "iPad8,1"[1-2] | "iPad13,"[8-9] | "iPad13,1"[0-1] | "iPad14,"[5-6]): "2048x2732" ;; esac resolution="$_" ;; "Windows") IFS=$'\n' read -d "" -ra sw \ <<< "$(wmic path Win32_VideoController get CurrentHorizontalResolution)" IFS=$'\n' read -d "" -ra sh \ <<< "$(wmic path Win32_VideoController get CurrentVerticalResolution)" sw=("${sw[@]//CurrentHorizontalResolution}") sh=("${sh[@]//CurrentVerticalResolution}") for ((mn = 0; mn < ${#sw[@]}; mn++)) { [[ ${sw[mn]//[[:space:]]} && ${sh[mn]//[[:space:]]} ]] && resolution+="${sw[mn]//[[:space:]]}x${sh[mn]//[[:space:]]}, " } resolution=${resolution%,} ;; "Haiku") resolution="$(screenmode | awk -F ' |, ' 'END{printf $2 "x" $3 " @ " $6 $7}')" [[ "$refresh_rate" == "off" ]] && resolution="${resolution/ @*}" ;; "FreeMiNT") # Need to block X11 queries ;; *) if type -p xrandr >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then case $refresh_rate in "on") resolution="$(xrandr --nograb --current |\ awk 'match($0,/[0-9]*\.[0-9]*\*/) { printf $1 " @ " substr($0,RSTART,RLENGTH) "Hz, "}')" ;; "off") resolution="$(xrandr --nograb --current |\ awk -F 'connected |\\+|\\(' \ '/ connected.*[0-9]+x[0-9]+\+/ && $2 {printf $2 ", "}')" resolution="${resolution/primary, }" resolution="${resolution/primary }" ;; esac resolution="${resolution//\*}" elif type -p xwininfo >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then read -r w h \ <<< "$(xwininfo -root | awk -F':' '/Width|Height/ {printf $2}')" resolution="${w}x${h}" elif type -p xdpyinfo >/dev/null && [[ $DISPLAY && -z $WAYLAND_DISPLAY ]]; then resolution="$(xdpyinfo | awk '/dimensions:/ {printf $2}')" elif [[ -d /sys/class/drm ]]; then for dev in /sys/class/drm/*/modes; do read -r single_resolution _ < "$dev" [[ $single_resolution ]] && resolution="${single_resolution}, ${resolution}" done fi ;; esac resolution="${resolution%%,}" resolution="${resolution%%, }" [[ -z "${resolution/x}" ]] && resolution= } get_style() { # Fix weird output when the function is run multiple times. unset qt_theme gtk2_theme gtk3_theme theme path if [[ "$DISPLAY" && $os != "Mac OS X" && $os != "macOS" ]]; then # Get DE if user has disabled the function. ((de_run != 1)) && get_de # Remove version from '$de'. [[ $de_version == on ]] && de=${de/ *} # Check for DE Theme. case $de in "KDE"* | "Plasma"*) kde_config_dir if [[ -f "${kde_config_dir}/kdeglobals" ]]; then kde_config_file="${kde_config_dir}/kdeglobals" qt_theme="$(grep "^${kde}" "$kde_config_file")" qt_theme="${qt_theme/*=}" if [[ "$kde" == "widgetStyle" ]] && grep -q "\[Theme\]" "$HOME/.config/plasmarc"; then kde_theme="$(awk '/name=/ {gsub(/name=/,"",$0);print $0;exit}' "$HOME/.config/plasmarc")" else kde_theme="$(grep "^${kde}" "$kde_config_file")" kde_theme="${kde_theme/*=}" fi if [[ "$kde" == "font" ]]; then kde_font_size="${kde_theme#*,}" kde_font_size="${kde_font_size/,*}" kde_theme="${kde_theme/,*} ${kde_theme/*,} ${kde_font_size}" fi if [[ "$kde" == "cursorTheme" ]]; then if [[ -f "${kde_config_dir}/kcminputrc" ]]; then kde_config_file="${kde_config_dir}/kcminputrc" elif [[ -f "${kde_config_dir}/startupconfig" ]]; then kde="cursortheme" kde_config_file="${kde_config_dir}/startupconfig" fi kde_theme="$(grep "${kde}" "$kde_config_file")" kde_theme="${kde_theme/*=}" fi #kde_theme="$kde_theme [KDE], " else err "Theme: KDE config files not found, skipping." fi ;; *"Cinnamon"*) if type -p gsettings >/dev/null; then gtk3_theme="$(gsettings get org.cinnamon.desktop.interface "$gsettings")" gtk2_theme="$gtk3_theme" fi ;; "Gnome"* | "Unity"* | "Budgie"*) if type -p gsettings >/dev/null; then gtk3_theme="$(gsettings get org.gnome.desktop.interface "$gsettings")" gtk2_theme="$gtk3_theme" elif type -p gconftool-2 >/dev/null; then gtk2_theme="$(gconftool-2 -g /desktop/gnome/interface/"$gconf")" fi ;; "Mate"*) gtk3_theme="$(gsettings get org.mate.interface "$gsettings")" gtk2_theme="$gtk3_theme" ;; "Xfce"*) type -p xfconf-query >/dev/null && \ gtk2_theme="$(xfconf-query -c xsettings -p "$xfconf")" ;; "Trinity") tde_config_dir if [[ -f "${tde_config_dir}/kdeglobals" ]]; then tde_config_file="${tde_config_dir}/kdeglobals" qt_theme="$(grep "^${kde}" "$tde_config_file")" qt_theme="${qt_theme/*=}" else err "Theme: TDE config files not found, skipping." fi ;; "LXQt"*) shopt -s nullglob if ! qt_theme=$(awk -F "=" -v r="^$lxqt" ' $1~r { theme=$2 } END { print theme } ' {/etc/xdg,/etc/xdg/*,"$XDG_CONFIG_HOME"}/lxqt/lxqt.con?); then err "Theme: Can't read LXQt config files. Unsetting Qt theme." unset qt_theme fi shopt -u nullglob ;; "Fly") fly_config_file if [[ $fly == "ColorScheme" ]]; then fly_theme="$( basename "$( awk -F '=' '/^'"${fly}"'/{print $2}' "${HOME}/.fly/paletterc" )" )" if [[ $wm_theme == "Default" && $fly_theme != *"FlyDefault"* ]]; then fly_theme=$(awk -F '=' '/^'"${fly}"'/{print $2}'\ "${HOME}/.config/fly-admin-themerc") fi elif [[ $fly == "IconTheme" ]]; then fly_theme=$(awk -F '=' '/^'"${fly}"'/{print $2}' "${fly_config_file}") elif [[ $fly == "DefaultFont" ]]; then fly_theme=$(awk -F'=' '/^'"${fly}"'/\ {gsub(/"/, "", $2); \ sub(/-.*/, "", $2); \ print $2}' "${fly_config_file}") fi fly_theme+=" [$de], " ;; esac # Check for general GTK2 Theme. if [[ -z "$gtk2_theme" ]]; then if [[ -n "$GTK2_RC_FILES" ]]; then IFS=: read -ra rc_files <<< "$GTK2_RC_FILES" gtk2_theme="$(grep "^[^#]*${name}" "${rc_files[@]}")" elif [[ -f "${HOME}/.gtkrc-2.0" ]]; then gtk2_theme="$(grep "^[^#]*${name}" "${HOME}/.gtkrc-2.0")" elif [[ -f "/etc/gtk-2.0/gtkrc" ]]; then gtk2_theme="$(grep "^[^#]*${name}" /etc/gtk-2.0/gtkrc)" elif [[ -f "/usr/share/gtk-2.0/gtkrc" ]]; then gtk2_theme="$(grep "^[^#]*${name}" /usr/share/gtk-2.0/gtkrc)" fi gtk2_theme="${gtk2_theme/*${name}*=}" fi # Check for general GTK3 Theme. if [[ -z "$gtk3_theme" ]] && type -p dump_xsettings >/dev/null; then gtk3_theme="$(dump_xsettings | sed -n "s,^${xfconf#/} ,,p")" fi if [[ -z "$gtk3_theme" ]]; then if [[ -f "${XDG_CONFIG_HOME}/gtk-3.0/settings.ini" ]]; then gtk3_theme="$(grep "^[^#]*$name" "${XDG_CONFIG_HOME}/gtk-3.0/settings.ini")" elif type -p gsettings >/dev/null; then gtk3_theme="$(gsettings get org.gnome.desktop.interface "$gsettings")" elif [[ -f "/etc/gtk-3.0/settings.ini" ]]; then gtk3_theme="$(grep "^[^#]*$name" /etc/gtk-3.0/settings.ini)" elif [[ -f "/usr/share/gtk-3.0/settings.ini" ]]; then gtk3_theme="$(grep "^[^#]*$name" /usr/share/gtk-3.0/settings.ini)" fi gtk3_theme="${gtk3_theme/${name}*=}" fi # Handle Qt5ct platform theme if [[ "$QT_QPA_PLATFORMTHEME" == 'qt5ct' && -f "${XDG_CONFIG_HOME}/qt5ct/qt5ct.conf" ]]; then qt_theme="$(grep "^${qt5ct}" "${XDG_CONFIG_HOME}/qt5ct/qt5ct.conf")" qt_theme="${qt_theme/*=}" # Reformat font, since qt5ct stores fonts in binary format if [[ "$qt5ct" == "general" ]]; then # Trim quotes and parentheses qt_theme="${qt_theme#'"'}" qt_theme="${qt_theme%'"'}" qt_theme="${qt_theme#@Variant(}" qt_theme="${qt_theme%)}" # Read font name qt5ct_font_name="${qt_theme#*@}" qt5ct_font_name="${qt5ct_font_name%%@*}" # Interpret backslashes qt5ct_font_name="$(printf "%b" "$qt5ct_font_name")" qt5ct_font_name="${qt5ct_font_name//[[:cntrl:]]}" # trim control characters # Get font size # Tread carefully, Qt sometimes uses @ in binary data local pre_size="${qt_theme#*@}" local pre_size="${pre_size#*@}" # Need to declare array and manually handle the second byte # (workaround for `od` without --endian) IFS=' ' local raw_size=( "$(printf "%b" "${pre_size}" | od -An -tu1 -N2)" ) # Split the upper 4 bits (exponent) the lower 12. local lowers=$(( ((raw_size[0]%16)<<8) + (raw_size[1]) )) local upper4=$((raw_size[0]>>4 )) qt5ct_font_size=$(( (2**(upper4+1)) + (lowers>>(11-upper4)) )) qt_theme="$qt5ct_font_name, $qt5ct_font_size" fi fi # Forced Qt theme through environment variables - Apply only if handling widget style! [[ "$kde" == "widgetStyle" && "$qt_theme" ]] && qt_theme="${QT_STYLE_OVERRIDE:-"$qt_theme"}" # Reformat Qt fonts if [[ "$kde" == "font" && "$qt_theme" ]]; then qt_font_size="${qt_theme#*,}" qt_font_size="${qt_font_size/,*}" qt_theme="${qt_theme/,*}, ${qt_font_size}" fi # Trim whitespace. gtk2_theme="$(trim "$gtk2_theme")" gtk3_theme="$(trim "$gtk3_theme")" qt_theme="$(trim "$qt_theme")" kde_theme="$(trim "$kde_theme")" # Remove quotes. gtk2_theme="$(trim_quotes "$gtk2_theme")" gtk3_theme="$(trim_quotes "$gtk3_theme")" qt_theme="$(trim_quotes "$qt_theme")" kde_theme="$(trim_quotes "$kde_theme")" # Handle Qt theme engines that load external themes case "$qt_theme" in 'Kvantum') if kvantum_theme="$(grep '^theme' "${XDG_CONFIG_HOME}/Kvantum/kvantum.kvconfig")"; then qt_theme="$kvantum_theme" qt_theme="${qt_theme/*=}" fi ;; *'gtk2') qt_theme="$gtk2_theme" ;; esac # Toggle visibility of GTK themes. [[ "$gtk2" == "off" ]] && unset gtk2_theme [[ "$gtk3" == "off" ]] && unset gtk3_theme [[ "$qt" == "off" ]] && unset qt_theme # TODO: kde theme visibility # Format the string based on which themes exist. # append_theme theme toolkit append_theme() { if [[ "$1" ]]; then if [[ "$1" == "$cur_theme" ]]; then theme+="/$2" else theme+="], $1 [$2" cur_theme="$1" fi fi } theme='' local cur_theme='' append_theme "$kde_theme" 'KDE' append_theme "$fly_theme" 'Fly' append_theme "$qt_theme" 'Qt' append_theme "$gtk2_theme" 'GTK2' append_theme "$gtk3_theme" 'GTK3' # Final string. if [[ -n "$theme" ]]; then theme+=']' theme="${theme#'], '}" theme="${theme/'GTK2/GTK3'/'GTK2/3'}" theme="${theme%, }" fi # Make the output shorter by removing "[GTKX]" from the string. if [[ "$gtk_shorthand" == "on" ]]; then theme="${theme// '['*']'}" fi fi } get_theme() { name="gtk-theme-name" gsettings="gtk-theme" gconf="gtk_theme" xfconf="/Net/ThemeName" kde="widgetStyle" lxqt="style" qt5ct="style=" # There is a property called 'stylesheets'. fly="ColorScheme" get_style } get_icons() { name="gtk-icon-theme-name" gsettings="icon-theme" gconf="icon_theme" xfconf="/Net/IconThemeName" kde="Theme" lxqt="icon_theme" qt5ct="icon_theme" fly="IconTheme" get_style icons="$theme" } get_font() { name="gtk-font-name" gsettings="font-name" gconf="font_theme" xfconf="/Gtk/FontName" kde="font" lxqt="font" qt5ct="general" fly="DefaultFont" get_style font="$theme" } get_cursor() { name="gtk-cursor-theme-name" gsettings="cursor-theme" gconf="cursor_theme" xfconf="/Gtk/CursorThemeName" kde="cursorTheme" get_style cursor="$theme" } get_java_ver() { if command -v java &> /dev/null; then java_ver=$(java -version 2>&1) java_ver=${java_ver%\"*} java_ver=${java_ver#*\"} fi } get_python_ver() { if command -v python &> /dev/null; then python_ver=$(python -VVV) python_ver=${python_ver//$'\n'/} python_ver=${python_ver//\(+([^\)])\)} python_ver=$(echo "$python_ver" | awk '$1=$1') fi } get_node_ver() { if command -v node &> /dev/null; then node_ver=$(node --version) node_ver=${node_ver#v} fi } get_term() { # If function was run, stop here. ((term_run == 1)) && return # Workaround for macOS systems that # don't support the block below. case $TERM_PROGRAM in "iTerm.app") term="iTerm2" ;; "Terminal.app"|"Apple_Terminal") term="Apple Terminal" ;; "Hyper") term="HyperTerm" ;; *) term="${TERM_PROGRAM/\.app}" ;; esac # Most likely TosWin2 on FreeMiNT - quick check [[ "$TERM" == "tw52" || "$TERM" == "tw100" ]] && term="TosWin2" [[ "$SSH_CONNECTION" ]] && term="$SSH_TTY" [[ "$WT_SESSION" ]] && term="Windows Terminal" # Check $PPID for terminal emulator. while [[ -z "$term" ]]; do parent="$(get_ppid "$parent")" [[ -z "$parent" ]] && break name="$(get_process_name "$parent")" case ${name##*/} in "${SHELL/*\/}"|*"sh"|"screen"|"su"*|"newgrp"|"hyfetch") ;; "login"*|*"Login"*|"init"|"(init)") term="$(tty)" ;; "ruby"|"1"|"tmux"*|"systemd"|"sshd"*|"python"*|\ "USER"*"PID"*|"kdeinit"*|"launchd"*|"bwrap") break ;; "."*"-wrap"*) [[ $name =~ \.(.*)-wrap.* ]] && term=${BASH_REMATCH[1]} ;; "gnome-terminal-"*) term="gnome-terminal" ;; "kgx") term="gnome-console" ;; "cutefish-terminal"*) term="cutefish-terminal" ;; "urxvtd") term="urxvt" ;; *"nvim") term="Neovim Terminal" ;; *"NeoVimServer"*) term="VimR Terminal" ;; *) # Fix issues with long process names on Linux. [[ $os == Linux ]] && term=$(realpath "/proc/$parent/exe") term="${name##*/}" # Fix wrapper names in Nix. [[ $term == .*-wrapped ]] && { term="${term#.}" term="${term%-wrapped}" } ;; esac done [[ $FIG_TERM == "1" ]] && term="$term + Fig" # Termux sets TERMUX_VERSION. Put this after the PPID check because this is # also set if using a terminal on an X server. [[ (-z "$term" && "$TERMUX_VERSION") || $term == "com.termux" ]] && term="Termux ${TERMUX_VERSION}" # Log that the function was run. term_run=1 } get_term_font() { ((term_run != 1)) && get_term case $term in "alacritty"*) # Alacritty switched to TOML for it's config the first version # with that will take a long time to be in repos and gain adoption. shopt -s nullglob confs_yaml=({$XDG_CONFIG_HOME,$HOME}/{alacritty,}/{.,}alacritty.ym?) confs_toml=({$XDG_CONFIG_HOME,$HOME}/{alacritty,}/{.,}alacritty.tom?) shopt -u nullglob if [[ -f "${confs_toml[0]}" ]]; then term_font="$(awk -F' *= *' '/^\[.*\]$/{section=substr($0, 2, length-2)} section == "font.normal" && $1 == "family"{sub(/^"/,"", $2); sub(/"$/, "", $2); print $2}' "${confs_toml[0]}")" elif [[ -f "${confs_yaml[0]}" ]]; then term_font="$(awk '/normal:/ {while (!/family:/ || /#/) {if (!getline) {exit}} print; exit}' "${confs_yaml[0]}")" else return fi term_font="${term_font/*family:}" term_font="${term_font/$'\n'*}" term_font="${term_font/\#*}" term_font="${term_font//\"}" ;; "Apple_Terminal"*) term_font="$(osascript </dev/null || { err "Disk requires 'df' to function. Install 'df' to get disk info."; return; } df_version=$(df --version 2>&1) case $df_version in *IMitv*) df_flags=(-P -g) ;; # AIX *befhikm*) df_flags=(-P -k) ;; # IRIX *hiklnP*) df_flags=(-h) ;; # OpenBSD *Tracker*) # Haiku err "Your version of df cannot be used due to the non-standard flags" return ;; *) df_flags=(-P -h) ;; esac # Create an array called 'disks' where each element is a separate line from # df's output. We then unset the first element which removes the column titles. IFS=$'\n' read -d "" -ra disks <<< "$(df "${df_flags[@]}" "${disk_show[@]:-/}")" unset "disks[0]" # Stop here if 'df' fails to print disk info. [[ ${disks[*]} ]] || { err "Disk: df failed to print the disks, make sure the disk_show array is set properly." return } for disk in "${disks[@]}"; do # Create a second array and make each element split at whitespace this time. IFS=" " read -ra disk_info <<< "$disk" disk_perc=${disk_info[${#disk_info[@]} - 2]/\%} case $disk_percent in off) disk_perc= esac case $df_version in *befhikm*) disk=$((disk_info[${#disk_info[@]} - 4] / 1024 / 1024))G disk+=" / " disk+=$((disk_info[${#disk_info[@]} - 5] / 1024/ 1024))G disk+=${disk_perc:+ ($disk_perc%)} ;; *) disk=${disk_info[${#disk_info[@]} - 4]/i} disk+=" / " disk+=${disk_info[${#disk_info[@]} - 5]/i} disk+=${disk_perc:+ ($disk_perc%)} ;; esac case $disk_subtitle in name) disk_sub=${disk_info[*]::${#disk_info[@]} - 5} ;; dir) disk_sub=${disk_info[${#disk_info[@]} - 1]/*\/} disk_sub=${disk_sub:-${disk_info[${#disk_info[@]} - 1]}} ;; none) ;; *) disk_sub=${disk_info[${#disk_info[@]} - 1]} ;; esac case $disk_display in bar) disk="$(bar "$disk_perc" "100")" ;; infobar) disk+=" $(bar "$disk_perc" "100")" ;; barinfo) disk="$(bar "$disk_perc" "100")${info_color} $disk" ;; perc) disk="${disk_perc}% $(bar "$disk_perc" "100")" ;; esac # Append '(disk mount point)' to the subtitle. if [[ "$subtitle" ]]; then prin "$subtitle${disk_sub:+ ($disk_sub)}" "$disk" else prin "$disk_sub" "$disk" fi done } get_power_adapter() { case $os in "Mac OS X"|"macOS") power_adapter="$(pmset -g ac | awk '/Wattage/ {print $3}')" [[ "$power_adapter" ]] || power_adapter="not connected" ;; *) power_adapter="unknown" ;; esac } get_battery() { case $os in "Linux") # We use 'prin' here so that we can do multi battery support # with a single battery per line. for bat in "/sys/class/power_supply/"{BAT,axp288_fuel_gauge,CMB}*; do [[ -f ${bat}/capacity && -f ${bat}/status ]] || continue capacity="$(< "${bat}/capacity")" status="$(< "${bat}/status")" if [[ "$capacity" ]]; then battery="${capacity}% [${status}]" case $battery_display in "bar") battery="$(bar "$capacity" 100)" ;; "infobar") battery+=" $(bar "$capacity" 100)" ;; "barinfo") battery="$(bar "$capacity" 100)${info_color} ${battery}" ;; esac bat="${bat/*axp288_fuel_gauge}" prin "${subtitle:+${subtitle}${bat: -1}}" "$battery" fi done return ;; "BSD") case $kernel_name in "FreeBSD"* | "DragonFly"*) battery="$(acpiconf -i 0 | awk -F ':\t' '/Remaining capacity/ {print $2}')" battery_state="$(acpiconf -i 0 | awk -F ':\t\t\t' '/State/ {print $2}')" ;; "NetBSD"*) battery="$(envstat | awk '\\(|\\)' '/charge:/ {print $2}')" battery="${battery/\.*/%}" ;; "OpenBSD"* | "Bitrig"*) battery0full="$(sysctl -n hw.sensors.acpibat0.watthour0\ hw.sensors.acpibat0.amphour0)" battery0full="${battery0full%% *}" 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/\.}))%" ;; esac ;; "Mac OS X"|"macOS") battery="$(pmset -g batt | grep -o '[0-9]*%')" state="$(pmset -g batt | awk '/;/ {print $4}')" [[ "$state" == "charging;" ]] && battery_state="charging" ;; "Windows") battery="$(wmic Path Win32_Battery get EstimatedChargeRemaining)" battery="${battery/EstimatedChargeRemaining}" battery="$(trim "$battery")%" state="$(wmic /NameSpace:'\\root\WMI' Path BatteryStatus get Charging)" state="${state/Charging}" [[ "$state" == *TRUE* ]] && battery_state="charging" ;; "Interix") battery="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe Path Win32_Battery get EstimatedChargeRemaining)" battery="${battery/EstimatedChargeRemaining}" battery="$(trim "$battery")%" state="$(/dev/fs/C/Windows/System32/wbem/WMIC.exe /NameSpace:'\\root\WMI' Path BatteryStatus get Charging)" state="${state/Charging}" [[ "$state" == *TRUE* ]] && battery_state="charging" ;; "Haiku") battery0full="$(awk -F '[^0-9]*' 'NR==2 {print $4}' /dev/power/acpi_battery/0)" battery0now="$(awk -F '[^0-9]*' 'NR==5 {print $4}' /dev/power/acpi_battery/0)" battery="$((battery0full * 100 / battery0now))%" ;; esac [[ "$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}" ;; esac } get_local_ip() { case $os in "Linux" | "BSD" | "Solaris" | "illumos" | "AIX" | "IRIX") if [[ "${local_ip_interface[0]}" == "auto" ]]; then local_ip="$(ip route get 1 | awk -F'src' '{print $2; exit}')" local_ip="${local_ip/uid*}" [[ "$local_ip" ]] || local_ip="$(ifconfig -a | awk '/broadcast/ {print $2; exit}')" else for interface in "${local_ip_interface[@]}"; do local_ip="$(ip addr show "$interface" 2> /dev/null | awk '/inet / {print $2; exit}')" local_ip="${local_ip/\/*}" [[ "$local_ip" ]] || local_ip="$(ifconfig "$interface" 2> /dev/null | awk '/broadcast/ {print $2; exit}')" if [[ -n "$local_ip" ]]; then prin "$interface" "$local_ip" else err "Local IP: Could not detect local ip for $interface" fi done fi ;; "MINIX") local_ip="$(ifconfig | awk '{printf $3; exit}')" ;; "Mac OS X" | "macOS" | "iPhone OS") if [[ "${local_ip_interface[0]}" == "auto" ]]; then interface="$(route -n get 1 | awk -F': ' '/interface/ {printf $2; exit}')" local_ip="$(ifconfig "$interface" | grep "inet " | awk '{print $2}')" else for interface in "${local_ip_interface[@]}"; do local_ip="$(ifconfig "$interface" | grep "inet " | awk '{print $2}')" if [[ -n "$local_ip" ]]; then prin "$interface" "$local_ip" else err "Local IP: Could not detect local ip for $interface" fi done fi ;; "Windows" | "Interix") local_ip="$(ipconfig | awk -F ': ' '/IPv4 Address/ {printf $2 ", "}')" local_ip="${local_ip%\,*}" ;; "Haiku") local_ip="$(ifconfig | awk -F ': ' '/Bcast/ {print $2}')" local_ip="${local_ip/, Bcast}" ;; esac } get_public_ip() { if [[ -z "$public_ip_host" ]] && type -p dig >/dev/null; then public_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com)" [[ "$public_ip" =~ ^\; ]] && unset public_ip fi if [[ -z "$public_ip_host" ]] && [[ -z "$public_ip" ]] && type -p drill >/dev/null; then public_ip="$(drill myip.opendns.com @resolver1.opendns.com | \ awk '/^myip\./ && $3 == "IN" {print $5}')" fi if [[ -z "$public_ip" ]] && type -p curl >/dev/null; then public_ip="$(curl -L --max-time "$public_ip_timeout" -w '\n' "$public_ip_host")" fi if [[ -z "$public_ip" ]] && type -p wget >/dev/null; then public_ip="$(wget -T "$public_ip_timeout" -qO- "$public_ip_host")" fi } get_users() { users="$(who | awk '!seen[$1]++ {printf $1 ", "}')" users="${users%\,*}" } get_locale() { locale="$sys_locale" } get_gpu_driver() { case $os in "Linux") gpu_driver="$(lspci -nnk | awk -F ': ' \ '/Display|3D|VGA/{nr[NR+2]}; NR in nr && $1~"nel driv" {printf $2 ", "}')" gpu_driver="${gpu_driver%, }" if [[ "$gpu_driver" == *"nvidia"* ]]; then gpu_driver="$(< /sys/module/nvidia/version)" gpu_driver="NVIDIA ${gpu_driver/ *}" fi ;; "Mac OS X"|"macOS") 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" # Generate the string. for ((block_range[0]; block_range[0]<=block_range[1]; block_range[0]++)); do case ${block_range[0]} in [0-7]) printf -v blocks '%b\e[3%bm\e[4%bm%b' \ "$blocks" "${block_range[0]}" "${block_range[0]}" "$block_width" ;; *) printf -v blocks2 '%b\e[38;5;%bm\e[48;5;%bm%b' \ "$blocks2" "${block_range[0]}" "${block_range[0]}" "$block_width" ;; esac done # Workaround for bright background colors in the Linux framebuffer console. (( block_range[1] < 16 )) && [[ "$TERM" == "linux" ]] && printf -v blocks2 '\e[5m%b\e[25m' "$blocks2" # Convert height into spaces. printf -v block_spaces "%${block_height}s" # Convert the spaces into rows of blocks. if [ "${BASH_VERSION%%.*}" -lt 5 ]; then [[ "$blocks" ]] && cols+="${block_spaces// /${blocks}nl}" [[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}nl}" else [[ "$blocks" ]] && cols+="${block_spaces// /${blocks}\[39;49mnl}" [[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}\[0mnl}" fi # Determine the horizontal offset of the blocks. case $col_offset in "auto") block_offset="$text_padding" ;; *) block_offset="$col_offset" ;; esac # Add newlines to the string. cols=${cols%%nl} cols=${cols//nl/ [${block_offset}C${zws}} # Add block height to info height. ((info_height+=block_range[1]>7?block_height+2:block_height+1)) printf '\n\e[%bC%b\n' "$block_offset" "${zws}${cols}" fi unset -v blocks blocks2 cols # Tell info() that we printed manually. prin=1 } # IMAGES image_backend() { [[ "$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") print_ascii ;; "off") image_backend="off" ;; "caca" | "catimg" | "chafa" | "jp2a" | "iterm2" | "termpix" |\ "tycat" | "w3m" | "sixel" | "pixterm" | "kitty" | "pot", | "ueberzug" |\ "viu") get_image_source [[ ! -f "$image" ]] && { to_ascii "Image: '$image_source' doesn't exist, falling back to ascii mode." return } [[ "$image_backend" == "ueberzug" ]] && wait=true; get_window_size ((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 } printf '\e[2J\e[H' get_image_size make_thumbnail 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', 'chafa', 'jp2a', 'iterm2', 'kitty', 'off', 'sixel', 'pot', 'pixterm', 'termpix', 'tycat', 'w3m', 'viu')" err "Image: Falling back to ascii mode." print_ascii ;; esac # Set cursor position next image/ascii. [[ "$image_backend" != "off" ]] && printf '\e[%sA\e[9999999D' "${lines:-0}" } # From pull request #1220, this is a fast way to strip character codes strip_escape_codes() { local input="${1//\"/\\\"}" output="" i char within_code=0 for ((i=0; i < ${#input}; ++i)); do char="${input:i:1}" if (( within_code == 1 )); then case "${char}" in [a-zA-Z]) within_code=0 ;; esac continue fi if [[ "${char}" == $'\e' ]]; then within_code=1 continue fi output+="${char}" done eval "$2='${output}'" } 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. LC_ALL="$sys_locale" # Calculate size of ascii file in line length / line count. if [ -n "$ascii_len" ] && [ -n "$ascii_lines" ] then lines=$ascii_lines else # shellcheck disable=SC2162 # Reading without -r here is intentional. See https://github.com/dylanaraps/neofetch/pull/1543 while IFS=$'\n' read line; do line=${line//█/ } # Fast method to strip codes strip_escape_codes "${line}" line # Use patterns to replace color codes that the above line did not catch line=${line//\\033\[*([0-9;])[JKmsu]/} line="$(printf %b "$line" | sed -E 's/'"$(printf %b '\x1B')"'\[*[0-9;]+[JKmsu]//g')" ((++lines,${#line}>ascii_len)) && ascii_len="${#line}" done <<< "${ascii_data//\$\{??\}}" fi # Fallback if file not found. ((lines==1)) && { lines= ascii_len= image_source=auto get_distro_ascii print_ascii return } # Colors. ascii_data="${ascii_data//\$\{c1\}/$c1}" ascii_data="${ascii_data//\$\{c2\}/$c2}" ascii_data="${ascii_data//\$\{c3\}/$c3}" ascii_data="${ascii_data//\$\{c4\}/$c4}" ascii_data="${ascii_data//\$\{c5\}/$c5}" ascii_data="${ascii_data//\$\{c6\}/$c6}" ((text_padding=ascii_len+gap)) printf '%b\n' "$ascii_data${reset}" LC_ALL=C } get_image_source() { case $image_source in "auto" | "wall" | "wallpaper") get_wallpaper ;; *) # Get the absolute path. image_source="$(get_full_path "$image_source")" if [[ -d "$image_source" ]]; then shopt -s nullglob files=("${image_source%/}"/*.{png,jpg,jpeg,jpe,gif,svg}) shopt -u nullglob image="${files[RANDOM % ${#files[@]}]}" else image="$image_source" fi ;; esac err "Image: Using image '$image'" } get_wallpaper() { case $os in "Mac OS X"|"macOS") image="$(osascript </dev/null && [[ -f "${HOME}/.cache/wal/wal" ]] && \ { image="$(< "${HOME}/.cache/wal/wal")"; return; } case $de in "MATE"*) image="$(gsettings get org.mate.background picture-filename)" ;; "Xfce"*) image="$(xfconf-query -c xfce4-desktop -p \ "/backdrop/screen0/monitor0/workspace0/last-image")" ;; "Cinnamon"*) image="$(gsettings get org.cinnamon.desktop.background picture-uri)" image="$(decode_url "$image")" ;; "GNOME"*) image="$(gsettings get org.gnome.desktop.background picture-uri)" image="$(decode_url "$image")" ;; "Plasma"*) image=$XDG_CONFIG_HOME/plasma-org.kde.plasma.desktop-appletsrc image=$(awk -F '=' '$1 == "Image" { print $2 }' "$image") ;; "Cutefish"*) image="$XDG_CONFIG_HOME/cutefishos/theme.conf" image="$(awk -F '=' '$1 == "Wallpaper" {print $2}' "$image")" ;; "LXQt"*) image="$XDG_CONFIG_HOME/pcmanfm-qt/lxqt/settings.conf" image="$(awk -F '=' '$1 == "Wallpaper" {print $2}' "$image")" ;; *) if type -p feh >/dev/null && [[ -f "${HOME}/.fehbg" ]]; then image="$(awk -F\' '/feh/ {printf $(NF-1)}' "${HOME}/.fehbg")" elif type -p setroot >/dev/null && \ [[ -f "${XDG_CONFIG_HOME}/setroot/.setroot-restore" ]]; then image="$(awk -F\' '/setroot/ {printf $(NF-1)}' \ "${XDG_CONFIG_HOME}/setroot/.setroot-restore")" elif type -p nitrogen >/dev/null; then image="$(awk -F'=' '/file/ {printf $2;exit;}' \ "${XDG_CONFIG_HOME}/nitrogen/bg-saved.cfg")" else image="$(gsettings get org.gnome.desktop.background picture-uri)" image="$(decode_url "$image")" fi ;; esac # Strip un-needed info from the path. image="${image/file:\/\/}" image="$(trim_quotes "$image")" ;; esac # If image is an xml file, don't use it. [[ "${image/*\./}" == "xml" ]] && image="" } get_w3m_img_path() { # Find w3m-img path. shopt -s nullglob w3m_paths=({/usr/{local/,},~/.nix-profile/}{lib,libexec,lib64,libexec64}/w3m/w3mi*) shopt -u nullglob [[ -x "${w3m_paths[0]}" ]] && \ { w3m_img_path="${w3m_paths[0]}"; return; } err "Image: w3m-img wasn't found on your system" } get_window_size() { # This functions gets the current window size in # pixels. # # We first try to use the escape sequence "\033[14t" # to get the terminal window size in pixels. If this # fails we then fallback to using "xdotool" or other # programs. # Tmux has a special way of reading escape sequences # so we have to use a slightly different sequence to # get the terminal size. if [[ "$image_backend" == "tycat" ]]; then printf '%b' '\e}qs\000' elif [[ -z $VTE_VERSION ]]; then case ${TMUX:-null} in "null") printf '%b' '\e[14t' ;; *) printf '%b' '\ePtmux;\e\e[14t\e\\ ' ;; esac fi # The escape codes above print the desired output as # user input so we have to use read to store the out # -put as a variable. # The 3 second timeout is required for slow/remote # sessions. # # False positive. # shellcheck disable=2141 IFS=';t' read -d t -t 3 -sra term_size unset IFS # 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]}" fi # Get terminal width/height. if (( "${term_width:-0}" < 50 )) && [[ "$DISPLAY" && $os != "Mac OS X" && $os != "macOS" ]]; then if type -p xdotool &>/dev/null; then IFS=$'\n' read -d "" -ra win \ <<< "$(xdotool getactivewindow getwindowgeometry --shell %1)" term_width="${win[3]/WIDTH=}" term_height="${win[4]/HEIGHT=}" elif type -p xwininfo &>/dev/null; then # Get the focused window's ID. if type -p xdo &>/dev/null; then current_window="$(xdo id)" elif type -p xprop &>/dev/null; then current_window="$(xprop -root _NET_ACTIVE_WINDOW)" current_window="${current_window##* }" elif type -p xdpyinfo &>/dev/null; then current_window="$(xdpyinfo | grep -F "focus:")" current_window="${current_window/*window }" current_window="${current_window/,*}" fi # If the ID was found get the window size. if [[ "$current_window" ]]; then term_size=("$(xwininfo -id "$current_window")") term_width="${term_size[0]#*Width: }" term_width="${term_width/$'\n'*}" term_height="${term_size[0]/*Height: }" term_height="${term_height/$'\n'*}" fi fi fi term_width="${term_width:-0}" } 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") image_size="$((columns * font_width / 2))" term_height="$((term_height - term_height / 4))" ((term_height < image_size)) && \ image_size="$term_height" ;; *"%") percent="${image_size/\%}" image_size="$((percent * term_width / 100))" (((percent * term_height / 50) < image_size)) && \ image_size="$((percent * term_height / 100))" ;; "none") # Get image size so that we can do a better crop. read -r width height <<< "$(identify -format "%w %h" "$image")" while ((width >= (term_width / 2) || height >= term_height)); do ((width=width/2,height=height/2)) done crop_mode="none" ;; *) image_size="${image_size/px}" ;; esac # Check for terminal padding. [[ "$image_backend" == "w3m" ]] && term_padding width="${width:-$image_size}" height="${height:-$image_size}" text_padding="$(((width + padding + xoffset) / font_width + gap))" } make_thumbnail() { # Name the thumbnail using variables so we can # use it later. image_name="${crop_mode}-${crop_offset}-${width}-${height}-${image//\/}" # Handle file extensions. case ${image##*.} in "eps"|"pdf"|"svg"|"gif"|"png") image_name+=".png" ;; *) image_name+=".jpg" ;; esac # Create the thumbnail dir if it doesn't exist. mkdir -p "${thumbnail_dir:=${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch}" if [[ ! -f "${thumbnail_dir}/${image_name}" ]]; then # Get image size so that we can do a better crop. [[ -z "$size" ]] && { read -r og_width og_height <<< "$(identify -format "%w %h" "$image")" ((og_height > og_width)) && size="$og_width" || size="$og_height" } case $crop_mode in "fit") c="$(convert "$image" \ -colorspace srgb \ -format "%[pixel:p{0,0}]" info:)" convert \ -background none \ "$image" \ -trim +repage \ -gravity south \ -background "$c" \ -extent "${size}x${size}" \ -scale "${width}x${height}" \ "${thumbnail_dir}/${image_name}" ;; "fill") convert \ -background none \ "$image" \ -trim +repage \ -scale "${width}x${height}^" \ -extent "${width}x${height}" \ "${thumbnail_dir}/${image_name}" ;; "none") cp "$image" "${thumbnail_dir}/${image_name}" ;; *) convert \ -background none \ "$image" \ -strip \ -gravity "$crop_offset" \ -crop "${size}x${size}+0+0" \ -scale "${width}x${height}" \ "${thumbnail_dir}/${image_name}" ;; esac fi # The final image. 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" ;; "ueberzug") if [ "$wait" = true ];then wait=false; else ueberzug layer --parser bash 0< <( declare -Ap ADD=(\ [action]="add"\ [identifier]="neofetch"\ [x]=$xoffset [y]=$yoffset\ [path]=$image\ ) read -rs ) fi ;; "catimg") catimg -w "$((width*catimg_size / font_width))" -r "$catimg_size" "$image" ;; "chafa") chafa --stretch --size="$((width / font_width))x$((height / font_height))" "$image" ;; "jp2a") jp2a \ --colors \ --width="$((width / font_width))" \ --height="$((height / font_height))" \ "$image" ;; "kitty") kitty +kitten icat \ --align left \ --place "$((width/font_width))x$((height/font_height))@${xoffset}x${yoffset}" \ "$image" ;; "pot") pot \ "$image" \ --size="$((width / font_width))x$((height / font_height))" ;; "pixterm") pixterm \ -tc "$((width / font_width))" \ -tr "$((height / font_height))" \ "$image" ;; "sixel") img2sixel -I \ -w "$width" \ -h "$height" \ "$image" ;; "termpix") termpix \ --width "$((width / font_width))" \ --height "$((height / font_height))" \ "$image" ;; "iterm2") 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" ]] && printf -v iterm_cmd '\ePtmux;\e%b\e'\\ "$iterm_cmd" printf '%b\a\n' "$iterm_cmd" ;; "tycat") tycat \ -g "${width}x${height}" \ "$image" ;; "viu") viu \ -t -w "$((width / font_width))" -h "$((height / font_height))" \ "$image" ;; "w3m") get_w3m_img_path zws='\xE2\x80\x8B\x20' # Add a tiny delay to fix issues with images not # appearing in specific terminal emulators. ((bash_version>3)) && sleep 0.05 printf '%b\n%s;\n%s\n' "0;1;$xoffset;$yoffset;$width;$height;;;;;$image" 3 4 |\ "${w3m_img_path:-false}" -bg "$background_color" &>/dev/null ;; esac } to_ascii() { err "$1" image_backend="ascii" print_ascii # Set cursor position next image/ascii. printf '\e[%sA\e[9999999D' "${lines:-0}" } to_off() { err "$1" image_backend="off" text_padding= } # TEXT FORMATTING info() { # Save subtitle value. [[ "$2" ]] && subtitle="$1" # Make sure that $prin is unset. unset -v prin # Call the function. "get_${2:-$1}" # If the get_func function called 'prin' directly, stop here. [[ "$prin" ]] && return # Update the variable. if [[ "$2" ]]; then output="$(trim "${!2}")" else output="$(trim "${!1}")" fi if [[ "$2" && "${output// }" ]]; then prin "$1" "$output" elif [[ "${output// }" ]]; then prin "$output" else err "Info: Couldn't detect ${1}." fi unset -v subtitle } 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//$'\e[0m'}")" length="$(strip_sequences "$string")" length="${#length}" # Format the output. string="${string/:/${reset}${colon_color}${separator:=:}${info_color}}" string="${subtitle_color}${bold}${string}" # Print the info. printf '%b\n' "${text_padding:+\e[${text_padding}C}${zws}${string//\\n}${reset} " # Calculate info height. ((++info_height)) # Log that prin was used. prin=1 } get_underline() { [[ "$underline_enabled" == "on" ]] && { printf -v underline "%${length}s" printf '%b%b\n' "${text_padding:+\e[${text_padding}C}${zws}${underline_color}" \ "${underline// /$underline_char}${reset} " } ((++info_height)) length= prin=1 } get_bold() { case $ascii_bold in "on") ascii_bold='\e[1m' ;; "off") ascii_bold="" ;; esac case $bold in "on") bold='\e[1m' ;; "off") bold="" ;; esac } trim() { set -f # shellcheck disable=2048,2086 set -- $* printf '%s\n' "${*//[[:space:]]/}" set +f } trim_quotes() { trim_output="${1//\'}" trim_output="${trim_output//\"}" printf "%s" "$trim_output" } strip_sequences() { strip="${1//$'\e'\[*([0-9])*(;*([0-9]))m}" strip="${strip//\\e\[*([0-9])*(;*([0-9]))m}" printf '%s\n' "$strip" } # COLORS set_colors() { c1="$(color "$1")${ascii_bold}" c2="$(color "$2")${ascii_bold}" c3="$(color "$3")${ascii_bold}" c4="$(color "$4")${ascii_bold}" c5="$(color "$5")${ascii_bold}" c6="$(color "$6")${ascii_bold}" [[ "$color_text" != "off" ]] && set_text_colors "$@" } set_text_colors() { if [[ "${colors[0]}" == "distro" ]]; then title_color="$(color "$1")" at_color="$reset" underline_color="$reset" subtitle_color="$(color "$2")" colon_color="$reset" info_color="$reset" # If the ascii art uses 8 as a color, make the text the fg. ((${1:-1} == 8)) && title_color="$reset" ((${2:-7} == 8)) && subtitle_color="$reset" # If the second color is white use the first for the subtitle. ((${2:-7} == 7)) && subtitle_color="$(color "$1")" ((${1:-1} == 7)) && title_color="$reset" else title_color="$(color "${colors[0]}")" at_color="$(color "${colors[1]}")" underline_color="$(color "${colors[2]}")" subtitle_color="$(color "${colors[3]}")" colon_color="$(color "${colors[4]}")" info_color="$(color "${colors[5]}")" fi # Bar colors. if [[ "$bar_color_elapsed" == "distro" ]]; then bar_color_elapsed="$(color fg)" else bar_color_elapsed="$(color "$bar_color_elapsed")" fi if [[ "$bar_color_total" == "distro" ]]; then bar_color_total="$(color fg)" else bar_color_total="$(color "$bar_color_total")" fi } color() { case $1 in [0-7]) printf '%b\e[3%sm' "$reset" "$1" ;; "fg") printf '%b' "$reset" ;; "#"*) local rgb="${1//#}" rgb="$((0x$rgb))" printf '\e[38;2;%b;%b;%bm' "$((rgb >> 16))" "$(((rgb >> 8) & 0xff))" "$((rgb & 0xff))" ;; *) printf '\e[38;5;%bm' "$1" ;; esac } # OTHER stdout() { image_backend="off" unset subtitle_color colon_color info_color underline_color bold title_color at_color \ text_padding zws reset color_blocks bar_color_elapsed bar_color_total \ c1 c2 c3 c4 c5 c6 c7 c8 } err() { err+="$(color 1)[!]${reset} $1 " } get_full_path() { # This function finds the absolute path from a relative one. # 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; } ! cd "${1%/*}" && { err "Error: Directory '${1%/*}' doesn't exist or is inaccessible" err " Check that the directory exists or try another directory." exit 1 } local full_dir="${1##*/}" # Iterate down a (possible) chain of symlinks. while [[ -L "$full_dir" ]]; do full_dir="$(readlink "$full_dir")" cd "${full_dir%/*}" || exit full_dir="${full_dir##*/}" done # Final directory. full_dir="$(pwd -P)/${1/*\/}" [[ -e "$full_dir" ]] && printf '%s\n' "$full_dir" } get_user_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 source "${XDG_CONFIG_HOME}/neofetch/config.conf" err "Config: Sourced user config. (${XDG_CONFIG_HOME}/neofetch/config.conf)" elif [[ -f "${XDG_CONFIG_HOME}/neofetch/config" ]]; then source "${XDG_CONFIG_HOME}/neofetch/config" err "Config: Sourced user config. (${XDG_CONFIG_HOME}/neofetch/config)" elif [[ -z "$no_config" ]]; then config_file="${XDG_CONFIG_HOME}/neofetch/config.conf" # The config file doesn't exist, create it. mkdir -p "${XDG_CONFIG_HOME}/neofetch/" printf '%s\n' "$config" > "$config_file" fi } bar() { # Get the values. elapsed="$(($1 * bar_length / $2))" # Create the bar with spaces. printf -v prog "%${elapsed}s" printf -v total "%$((bar_length - elapsed))s" # Set the colors and swap the spaces for $bar_char_. bar+="${bar_color_elapsed}${prog// /${bar_char_elapsed}}" bar+="${bar_color_total}${total// /${bar_char_total}}" # Borders. [[ "$bar_border" == "on" ]] && \ bar="$(color fg)[${bar}$(color fg)]" printf "%b" "${bar}${info_color}" } cache() { if [[ "$2" ]]; then mkdir -p "${cache_dir}/neofetch" printf "%s" "${1/*-}=\"$2\"" > "${cache_dir}/neofetch/${1/*-}" fi } get_cache_dir() { if [[ "$TMPDIR" ]]; then cache_dir="$TMPDIR" else cache_dir="/tmp" fi } kde_config_dir() { # If the user is using KDE get the KDE # configuration directory. if [[ "$kde_config_dir" ]]; then return elif type -p kf5-config &>/dev/null; then kde_config_dir="$(kf5-config --path config)" elif type -p kde4-config &>/dev/null; then kde_config_dir="$(kde4-config --path config)" elif type -p kde-config &>/dev/null; then kde_config_dir="$(kde-config --path config)" elif [[ -d "${HOME}/.kde4" ]]; then kde_config_dir="${HOME}/.kde4/share/config" elif [[ -d "${HOME}/.kde3" ]]; then kde_config_dir="${HOME}/.kde3/share/config" fi kde_config_dir="${kde_config_dir/$'/:'*}" } tde_config_dir() { if [[ "$tde_config_dir" ]]; then return elif type -p tde-config &>/dev/null; then tde_config_dir="$(tde-config --path config)" elif [[ -d "${HOME}/.configtde" ]]; then tde_config_dir="${HOME}/.configtde" fi tde_config_dir="${tde_config_dir/$'/:'*}" } fly_config_file() { # Return main path the fly config file fly_config_file=${HOME}/.fly/theme/current.themerc } term_padding() { # Get terminal padding to properly align cursor. [[ -z "$term" ]] && get_term case $term in urxvt*|rxvt-unicode) [[ $xrdb ]] || xrdb=$(xrdb -query) [[ $xrdb != *internalBorder:* ]] && return padding=${xrdb/*internalBorder:} padding=${padding/$'\n'*} [[ $padding =~ ^[0-9]+$ ]] || padding= ;; esac } dynamic_prompt() { [[ "$image_backend" == "off" ]] && { printf '\n'; return; } [[ "$image_backend" != "ascii" ]] && ((lines=(height + yoffset) / font_height + 1)) [[ "$image_backend" == "w3m" ]] && ((lines=lines + padding / font_height + 1)) # If the ascii art is taller than the info. ((lines=lines>info_height?lines-info_height+1:1)) 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. IFS=" " read -ra uname <<< "$(uname -srm)" kernel_name="${uname[0]}" kernel_version="${uname[1]}" kernel_machine="${uname[2]}" if [[ "$kernel_name" == "Darwin" ]] || [[ "$kernel_name" == "FreeBSD" && -f /System/Library/CoreServices/SystemVersion.plist ]]; then # macOS can report incorrect versions unless this is 0. # https://github.com/dylanaraps/neofetch/issues/1607 export SYSTEM_VERSION_COMPAT=0 IFS=$'\n' read -d "" -ra sw_vers <<< "$(awk -F'<|>' '/key|string/ {print $3}' \ "/System/Library/CoreServices/SystemVersion.plist")" for ((i=0;i<${#sw_vers[@]};i+=2)) { case ${sw_vers[i]} in ProductName) darwin_name=${sw_vers[i+1]} ;; ProductFamily) darwin_family=${sw_vers[i+1]} ;; ProductVersion) osx_version=${sw_vers[i+1]} ;; ProductBuildVersion) osx_build=${sw_vers[i+1]} ;; esac } fi } get_ppid() { # Get parent process ID of PID. case $os in "Windows") ppid="$(ps -p "${1:-$PPID}" | awk '{printf $2}')" ppid="${ppid/PPID}" ;; "Linux") ppid="$(grep -i -F "PPid:" "/proc/${1:-$PPID}/status")" ppid="$(trim "${ppid/PPid:}")" ;; *) ppid="$(ps -p "${1:-$PPID}" -o ppid=)" ;; esac printf "%s" "$ppid" } get_process_name() { # Get PID name. case $os in "Windows") name="$(ps -p "${1:-$PPID}" | awk '{printf $8}')" name="${name/COMMAND}" name="${name/*\/}" ;; "Linux") read -rd $'\00' name < "/proc/${1:-$PPID}/cmdline" ;; *) name="$(ps -p "${1:-$PPID}" -o comm=)" ;; esac printf "%s" "$name" } decode_url() { decode="${1//+/ }" printf "%b" "${decode//%/\\x}" } # FINISH UP usage() { printf "%s" "\ 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, or any ASCII file of your choice. NOTE: Every launch flag has a config option. Options: INFO: func_name Specify a function name (second part of info() from config) to quickly display only that function's information. Example: neofetch uptime --uptime_shorthand tiny Example: neofetch uptime disk wm memory This can be used in bars and scripts like so: memory=\"\$(neofetch memory)\"; memory=\"\${memory##*: }\" For multiple outputs at once (each line of info in an array): IFS=\$'\\n' read -d \"\" -ra info < <(neofetch memory uptime wm) info=(\"\${info[@]##*: }\") --disable infoname Allows you to disable an info line from appearing in the output. 'infoname' is the function name from the 'print_info()' function inside the config file. For example: 'info \"Memory\" memory' would be '--disable memory' NOTE: You can supply multiple args. eg. 'neofetch --disable cpu gpu' --title_fqdn on/off Hide/Show Fully Qualified Domain Name in title. --package_managers on/off Hide/Show Package Manager names. (on, tiny, off) --package_separate on/off Whether to separate system/user modes for supported package managers --package_minimal Reduce output of packages list by not showing programming language package managers or Steam games --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, scaling_current, scaling_min, scaling_max NOTE: This only supports Linux with cpufreq. --speed_shorthand on/off Whether or not to show decimals in CPU speed. NOTE: This flag is not supported in systems with CPU speed less than 1 GHz. --cpu_brand on/off Enable/Disable CPU brand in output. --cpu_cores type Whether or not to display the number of CPU cores Possible values: logical, physical, off NOTE: 'physical' doesn't work on BSD. --cpu_speed on/off Hide/Show cpu speed. --cpu_temp C/F/off Hide/Show cpu temperature. 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. --distro_shorthand on/off Shorten the output of distro (on, tiny, off) NOTE: This option won't work in Windows (Cygwin) --kernel_shorthand on/off Shorten the output of kernel NOTE: This option won't work in BSDs (except PacBSD and PC-BSD) --uptime_shorthand on/off Shorten the output of uptime (on, tiny, off) --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) --gpu_type type Which GPU to display. (all, dedicated, integrated) NOTE: This only supports Linux. --de_version on/off Show/Hide Desktop Environment version --gtk_shorthand on/off Shorten output of gtk theme/icons --gtk2 on/off Enable/Disable gtk2 theme/font/icons output --gtk3 on/off Enable/Disable gtk3 theme/font/icons output --shell_path on/off Enable/Disable showing \$SHELL path --shell_version on/off Enable/Disable showing \$SHELL version --editor_path on/off Enable/Disable showing \$EDITOR path --editor_version on/off Enable/Disable showing \$EDITOR version --disk_show value Which disks to display. Possible values: '/', '/dev/sdXX', '/path/to/mount point' NOTE: Multiple values can be given. (--disk_show '/' '/dev/sdc1') --disk_subtitle type What information to append to the Disk subtitle. Takes: name, mount, dir, none 'name' shows the disk's name (sda1, sda2, etc) 'mount' shows the disk's mount point (/, /mnt/Local Disk, etc) 'dir' shows the basename of the disks's path. (/, Local Disk, etc) 'none' shows only 'Disk' or the configured title. --disk_percent on/off Hide/Show disk percent. --ip_host url URL to query for public IP --ip_timeout int Public IP timeout (in seconds). --ip_interface value Interface(s) to use for local IP --song_format format Print the song data in a specific format (see config file). --song_shorthand on/off Print the Artist/Album/Title on separate lines. --memory_percent on/off Display memory percentage. --memory_unit (k/m/g/t)ib Memory output unit. --memory_precision integer Change memory output precision. (≥0, default=2) --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: title, @, underline, subtitle, colon, info --underline on/off Enable/Disable the underline. --underline_char char Character to use when underlining title --bold on/off Enable/Disable bold text --separator string Changes the default ':' separator to the specified string. COLOR BLOCKS: --color_blocks on/off Enable/Disable the color blocks --col_offset auto/num Left-padding of color blocks --block_width num Width of color blocks in spaces --block_height num Height of color blocks in lines --block_range num num Range of colors to print as blocks BARS: --bar_char 'elapsed char' 'total char' Characters to use when drawing bars. --bar_border on/off Whether or not to surround the bar with '[]' --bar_length num Length in spaces to make the bars. --bar_colors num num Colors to make the bar. Set in this order: elapsed, total --memory_display mode Bar mode. Possible values: bar, infobar, barinfo, off --battery_display mode Bar mode. Possible values: bar, infobar, barinfo, off --disk_display mode Bar mode. Possible values: bar, infobar, barinfo, off IMAGE BACKEND: --backend backend Which image backend to use. Possible values: 'ascii', 'caca', 'catimg', 'chafa', 'jp2a', 'iterm2', 'off', 'sixel', 'tycat', 'w3m', 'kitty', 'viu' --source source Which image or ascii file to use. Possible values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/', 'command output' [ascii] --ascii source Shortcut to use 'ascii' backend. NEW: neofetch --ascii \"\$(fortune | cowsay -W 30)\" --caca source Shortcut to use 'caca' backend. --catimg source Shortcut to use 'catimg' backend. --chafa source Shortcut to use 'chafa' backend. --iterm2 source Shortcut to use 'iterm2' backend. --jp2a source Shortcut to use 'jp2a' backend. --kitty source Shortcut to use 'kitty' backend. --pot source Shortcut to use 'pot' backend. --pixterm source Shortcut to use 'pixterm' backend. --sixel source Shortcut to use 'sixel' backend. --termpix source Shortcut to use 'termpix' backend. --tycat source Shortcut to use 'tycat' backend. --w3m source Shortcut to use 'w3m' backend. --ueberzug source Shortcut to use 'ueberzug' backend --viu source Shortcut to use 'viu' backend --off Shortcut to use 'off' backend (Disable ascii art). NOTE: 'source; can be any of the following: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' ASCII: --ascii_colors x x x x x x Colors to print the ascii art --ascii_distro distro Which Distro's ascii art to print NOTE: Adélie, aerOS, Afterglow, AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy, Android, Antergos, antiX, AOSC OS, Aperio GNU/Linux, Aperture, Apricity, Arch, ArchBox, Archcraft, archcraft_ascii, archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux, Arkane, ArseLinux, Artix, Arya, Asahi, AsteroidOS, astOS, Astra Linux, Athena, azos, Bedrock, BigLinux, BigLinux_large, Bitrig, BlackArch, BlackMesa, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD, BunsenLabs, CachyOS, Calculate, CalinixOS, Carbs, CBL-Mariner, CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, Chimera, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres, Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber, CutefishOS, CuteOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DietPi, digital UNIX, DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux, EvolutionOS, eweOS, Exherbo, Exodia Predator OS, Fedora, Fedora Kinoite, Fedora Sericea, Fedora Silverblue, Fedora_unicode, FemboyOS, Feren, Finnix, Floflis, FreeBSD, FreeMiNT, Frugalware, Funtoo, Furreto, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS, Hyperbola, iglunix, instantOS, Interix, IRIX, Ironclad, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LainOS, LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old, LinuxFromScratch, Live Raizo, LMDE, Lubuntu, Lunar, mac, MacaroniOS, Mageia, Magix, MagpieOS, MainsailOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mauna, Meowix, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune, NetBSD, Netrunner, Nitrux, NixOS, nixos_colorful, Nobara, NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media Center, OpenBSD, openEuler, OpenIndiana, openKylin, openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Panwah, Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Peropesis, phyOS, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Salix, Sasanqua, Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackel, Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, Tatra, TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu-GNOME, ubuntu_old02, Ultramarine Linux, unicodearch, Univalent, Univention, Uos, UrukOS, uwuntu, Vanilla, Venom, VNux, Void, VzLinux, wii-linux-ngx, Windows, Windows 10, Windows 11, Windows95, Wrt, Xenia, Xenia2, XFerience, Xray_OS, Xubuntu, yiffOS, Zorin have ascii logos. NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu have 'old' logo variants, use {distro}_old to use them. NOTE: alpine, android, arch, arcolinux, artix, CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary, endeavouros, fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, kali, Linux, linuxlite, linuxmint, mac, mageia, MainsailOS, manjaro, mx, netbsd, nixos, openbsd, opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian, rocky, slackware, sunos, ubuntu, venom, void have 'small' logo variants, use {distro}_small to use them. NOTE: Fedora has immutable spins with unique logos (except Onyx). NOTE: Change this to Silverblue, Kinoite, Sericea, or CoreOS to use the spins. --ascii_bold on/off Whether or not to bold the ascii logo. -L, --logo Hide the info text and only show the ascii logo. IMAGE: --loop Redraw the image constantly until Ctrl+C is used. This fixes issues in some terminals emulators when using image mode. --size 00px | --size 00% How to size the image. Possible values: auto, 00px, 00%, none --catimg_size 1/2 Change the resolution of catimg. --crop_mode mode Which crop mode to use Takes the values: normal, fit, fill --crop_offset value Change the crop offset for normal mode. Possible values: northwest, north, northeast, west, center, east, southwest, south, southeast --xoffset px How close the image will be to the left edge of the window. This only works with w3m. --yoffset px How close the image will be to the top edge of the window. This only works with w3m. --bg_color color Background color to display behind transparent image. This only works with w3m. --gap num Gap between image and text. NOTE: --gap can take a negative value which will move the text closer to the left side. --clean Delete cached files and thumbnails. OTHER: --config /path/to/config Specify a path to a custom config file --config none Launch the script without a config file --no_config Don't create the user config file. --print_config Print the default config file to stdout. --stdout=on Turn off all colors and disables any ASCII/image backend. --stdout=off Enable the colored output and ASCII/image backend --stdout=auto Let the program decide basing on the output type (default behavior) --stdout Equivalent to '--stdout=on', for backward compatibility --help Print this text and exit --version Show neofetch version -v Display error messages. -vv Display a verbose log for error reporting. DEVELOPER: --gen-man Generate a manpage for Neofetch in your PWD. (Requires GNU help2man) Report bugs to https://github.com/dylanaraps/neofetch/issues " exit 1 } get_args() { # Check the commandline flags early for '--config'. [[ "$*" != *--config* && "$*" != *--no_config* ]] && get_user_config while [[ "$1" ]]; do case $1 in # Info "--title_fqdn") title_fqdn="$2" ;; "--package_managers") package_managers="$2" ;; "--package_separate") package_separate="$2" ;; "--package_minimal") package_minimal="1" ;; "--os_arch") os_arch="$2" ;; "--cpu_cores") cpu_cores="$2" ;; "--cpu_speed") cpu_speed="$2" ;; "--speed_type") speed_type="$2" ;; "--speed_shorthand") speed_shorthand="$2" ;; "--distro_shorthand") distro_shorthand="$2" ;; "--kernel_shorthand") kernel_shorthand="$2" ;; "--uptime_shorthand") uptime_shorthand="$2" ;; "--cpu_brand") cpu_brand="$2" ;; "--gpu_brand") gpu_brand="$2" ;; "--gpu_type") gpu_type="$2" ;; "--refresh_rate") refresh_rate="$2" ;; "--de_version") de_version="$2" ;; "--gtk_shorthand") gtk_shorthand="$2" ;; "--gtk2") gtk2="$2" ;; "--gtk3") gtk3="$2" ;; "--qt") qt="$2" ;; "--shell_path") shell_path="$2" ;; "--shell_version") shell_version="$2" ;; "--editor_path") editor_path="$2" ;; "--editor_version") editor_version="$2" ;; "--ip_host") public_ip_host="$2" ;; "--ip_timeout") public_ip_timeout="$2" ;; "--ip_interface") unset local_ip_interface for arg in "$@"; do case "$arg" in "--ip_interface") ;; "-"*) break ;; *) local_ip_interface+=("$arg") ;; esac done ;; "--song_format") song_format="$2" ;; "--song_shorthand") song_shorthand="$2" ;; "--music_player") music_player="$2" ;; "--memory_percent") memory_percent="$2" ;; "--memory_unit") memory_unit="$2" ;; "--memory_precision") mem_precision="$2" ;; "--cpu_temp") cpu_temp="$2" [[ "$cpu_temp" == "on" ]] && cpu_temp="C" ;; "--disk_subtitle") disk_subtitle="$2" ;; "--disk_percent") disk_percent="$2" ;; "--disk_show") unset disk_show for arg in "$@"; do case $arg in "--disk_show") ;; "-"*) break ;; *) disk_show+=("$arg") ;; esac done ;; "--disable") for func in "$@"; do case $func in "--disable") continue ;; "-"*) break ;; *) ((bash_version >= 4)) && func="${func,,}" unset -f "get_$func" ;; esac done ;; # Text Colors "--colors") unset colors for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do case $arg in "-"*) break ;; *) colors+=("$arg") ;; esac done colors+=(7 7 7 7 7 7) ;; # Text Formatting "--underline") underline_enabled="$2" ;; "--underline_char") underline_char="$2" ;; "--bold") bold="$2" ;; "--separator") separator="$2" ;; # Color Blocks "--color_blocks") color_blocks="$2" ;; "--block_range") block_range=("$2" "$3") ;; "--block_width") block_width="$2" ;; "--block_height") block_height="$2" ;; "--col_offset") col_offset="$2" ;; # Bars "--bar_char") bar_char_elapsed="$2" bar_char_total="$3" ;; "--bar_border") bar_border="$2" ;; "--bar_length") bar_length="$2" ;; "--bar_colors") bar_color_elapsed="$2" bar_color_total="$3" ;; "--memory_display") memory_display="$2" ;; "--battery_display") battery_display="$2" ;; "--disk_display") disk_display="$2" ;; # Image backend "--backend") image_backend="$2" ;; "--source") image_source="$2" ;; "--ascii" | "--caca" | "--catimg" | "--chafa" | "--jp2a" | "--iterm2" | "--off" |\ "--pot" | "--pixterm" | "--sixel" | "--termpix" | "--tycat" | "--w3m" | "--kitty" |\ "--ueberzug" | "--viu") image_backend="${1/--}" case $2 in "-"* | "") ;; *) image_source="$2" ;; esac ;; # Image options "--loop") image_loop="on" ;; "--image_size" | "--size") image_size="$2" ;; "--catimg_size") catimg_size="$2" ;; "--crop_mode") crop_mode="$2" ;; "--crop_offset") crop_offset="$2" ;; "--xoffset") xoffset="$2" ;; "--yoffset") yoffset="$2" ;; "--background_color" | "--bg_color") background_color="$2" ;; "--gap") gap="$2" ;; "--clean") [[ -d "$thumbnail_dir" ]] && rm -rf "$thumbnail_dir" rm -rf "$cache_dir/neofetch/" exit ;; "--ascii_colors") unset ascii_colors for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do case $arg in "-"*) break ;; *) ascii_colors+=("$arg") esac done ascii_colors+=(7 7 7 7 7 7) ;; "--ascii_distro") image_backend="ascii" ascii_distro="$2" ;; "--ascii_bold") ascii_bold="$2" ;; "--logo" | "-L") image_backend="ascii" print_info() { printf '\n'; } ;; # Other "--config") case $2 in "none" | "off" | "") ;; *) config_file="$(get_full_path "$2")" get_user_config ;; esac ;; "--no_config") no_config="on" ;; "--stdout") stdout="on" ;; "--stdout=on") stdout="on" ;; "--stdout=off") stdout="off" ;; "--stdout=auto") stdout="auto" ;; "-v") verbose="on" ;; "--print_config") printf '%s\n' "$config"; exit ;; "-vv") set -x; verbose="on" ;; "--help") usage ;; "--version") printf '%s\n' "Neofetch $version" exit 1 ;; "--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 "Network" network info "Bluetooth" bluetooth info "BIOS" bios info "Disk" disk info "Battery" battery info "Power Adapter" power_adapter info "Font" font info "Song" song info "Local IP" local_ip info "Public IP" public_ip info "Users" users info cols # Testing. prin "prin" prin "prin" "prin" # Testing no subtitles. info uptime info disk } refresh_rate="on" shell_version="on" memory_display="infobar" disk_display="infobar" cpu_temp="C" # Known implicit unused variables. mpc_args=() printf '%s\n' "$kernel $icons $font $cursor $battery $locale ${mpc_args[*]}" ;; esac shift done } get_simple() { while [[ "$1" ]]; do [[ "$(type -t "get_$1")" == "function" ]] && { get_distro stdout simple=1 info "$1" "$1" } shift done ((simple)) && exit } old_functions() { # Removed functions for backwards compatibility. get_line_break() { :; } get_cpu_usage() { :; } } get_distro_ascii() { # This function gets the distro ascii art and colors. # # $ascii_distro is the same as $distro. case $(trim "$ascii_distro") in "Adélie"* | "Adelie"*) set_colors 4 7 6 read -rd '' ascii_data <<'EOF' ${c1} ${c3} ,-^-___ ${c3} /\\\\\\/// ${c2}refined.${c1} /\\\\\\\\// ${c2}reliable.${c1} /\\\\\\/// ${c2}ready.${c1} /\\\\/////\\ __///\\\\\\\\/////\\ ${c3} _//////\\\\\\\\\\\\\\//// ${c1} ///////${c3}\\\\\\\\\\\\\\\\\\\\// //////${c1}\\\\\\\\\\/ /////\\\\\\\\\\/ /////${c3}\\\\\\\\/ /\\\\///\\\\\\/ /\\\\\\/${c1}\\\/ /\\\\\\\\// ////// /// ${c3}\\\\\\\\\\ EOF ;; "AIX"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} `:+ssssossossss+-` .oys///oyhddddhyo///sy+. /yo:+hNNNNNNNNNNNNNNNNh+:oy/ :h/:yNNNNNNNNNNNNNNNNNNNNNNy-+h: `ys.yNNNNNNNNNNNNNNNNNNNNNNNNNNy.ys `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oh h+-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.oy /d`mNNNNNNN/::mNNNd::m+:/dNNNo::dNNNd`m: h//NNNNNNN: . .NNNh mNo od. -dNNNNN:+y N.sNNNNNN+ -N/ -NNh mNNd. sNNNNNNNo-m N.sNNNNNs +oo /Nh mNNs` ` /mNNNNNNo-m h//NNNNh ossss` +h md- .hm/ `sNNNNN:+y :d`mNNN+/yNNNNNd//y//h//oNNNNy//sNNNd`m- yo-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNm.ss `h+-mNNNNNNNNNNNNNNNNNNNNNNNNNNNNm-oy sy.yNNNNNNNNNNNNNNNNNNNNNNNNNNs.yo :h+-yNNNNNNNNNNNNNNNNNNNNNNs-oh- :ys:/yNNNNNNNNNNNNNNNmy/:sy: .+ys///osyhhhhys+///sy+. -/osssossossso/- EOF ;; "Aperio GNU/Linux"*) set_colors 255 read -rd '' ascii_data <<'EOF' ${c2} _.._ _ ._.. _ (_][_)(/,[ |(_) | GNU/Linux EOF ;; "Aperture"*) set_colors 6 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} .,-:;//;:=, . :H@@@MM@M#H/.,+%;, ,/X+ +M@@M@MM%=,-%HMMM@X/, -+@MM; $M@@MH+-,;XMMMM@MMMM@+- ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/. ,%MM@@MH ,@%= .---=-=:=,. =@#@@@MX., -%HX$$%%%:; =-./@M@M$ .;@MMMM@MM: X@/ -$MM/ . +MM@@@M$ ,@M@H: :@: . =X#@@@@- ,@@@MMX, . /H- ;@M@M= .H@@@@M@+, %MM+..%#$. /MMMM@MMH/. XM@MH; =; /%+%$XHH@$= , .H@@@@MX, .=--------. -%H.,@@@@@MX, .%MM@@@HHHXX$$$%+- .:$MMX =M@@MM%. =XMMM@MM@MM#H;,-+HMM@M+ /MMMX= =%@M@M#@$-.=$@MM@@@M; %M%= ,:+$+-,/H#MMMMMMM@= =, =++%%%%+/:-. EOF ;; "Asahi"*) set_colors 3 2 1 8 7 6 4 read -rd '' ascii_data <<'EOF' ${c1} ## ${c2}** ${c1}*####${c2}****. ${c1}###${c2}, ${c3}...,${c1}/#${c3},,,.. ${c3}/*,,,,,,,,${c1}*${c3},........${c4},, ${c3},((((((//*,,,,,,,,${c4},...... ${c3}((((((((((((((${c5}%..${c4}.......... ${c3},(((((((((((((((${c5}@@(${c4}............ ${c3}(((((((((((((((((${c5}@@@@/${c4}............ ${c3},((((((((((((((((((${c5}@@@@@&*${c4}........... ${c3}((((((((((((((((((((${c5}@@@@@@@&${c4},........... ${c3}(((((((((((((((((((((${c5}@@@${c6}&%&${c5}@@@%${c4},.......... ${c3}/(((((((((((((((((((${c5}@@@${c6}&%%&${c5}@@@@(${c4}........ ${c3},((((((((((((((((${c5}@@@${c6}&&${c5}@@&/&@@@/${c4}.. ${c3}/((((((((((((${c5}@@@@@@/${c4}.../&& ${c3}.(((((((((${c5}@@@@(${c4}.... ${c3}/(((((${c5}@@#${c4}... ${c3}.((${c4}&, EOF ;; "Hash"*) set_colors 123 read -rd '' ascii_data <<'EOF' ${c1} + ###### + ### ###### ### ##### ###### ##### ###### ###### ###### ####### '"###### '"######## ####### ###### ######## ####### ###### ######## ###### '"###### '"###### ##### ###### ##### ### ###### ### ~ ###### ~ EOF ;; "HarDClanZ"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} ........::::.... ::################::.. :########################:. :######**###################: :###${c2}&&&&^${c1}############ ${c2}&${c1}#######: :#${c2}&&&&&${c1}.:##############:${c2}^&o${c1}`:###: :#${c2}&&&&${c1}.:#################:.${c2}&&&${c1}`###: :##${c2}&^${c1}:######################:${c2}^&&${c1}::##: :#############################:${c2}&${c1}:##:: :##########${c2}@@${c1}###########${c2}@@${c1}#####:.###: :#########${c2}@@${c3}o${c2}@@${c1}#########${c2}@@${c3}o${c2}@@${c1}########: :#######:${c2}@@${c3}o${c5}0${c3}o${c2}@@@@${c1}###${c2}@@@@${c3}o${c5}0${c3}o${c2}@@${c1}######: : :######:${c2}@@@${c3}o${c2}@@@@@@${c1}V${c2}@@@@@@${c3}o${c2}@@@${c1}######: :#####:${c2}@@@@@@@@@@@@@@@@@@@${c1}:####; :####:.${c2}@@@@@@@@@@@@@@@@${c1}:#####: `:####:.${c2}@@@@@@@@@@@@@@${c1}:#####: ``:##:.${c2}@@@@@@@@@@@@${c1}^## # : : ## ${c2}\@@@;@@@/ ${c1}:: # : ${c2} VVV EOF ;; "AlmaLinux"*) set_colors 1 3 4 2 6 read -rd '' ascii_data <<'EOF' ${c1} 'c:. ${c1} lkkkx, .. ${c2}.. ,cc, ${c1} okkkk:ckkx' ${c2}.lxkkx.okkkkd ${c1} .:llcokkx' ${c2}:kkkxkko:xkkd, ${c1} .xkkkkdood: ${c2};kx, .lkxlll; ${c1} xkkx. ${c2}xk' xkkkkk: ${c1} 'xkx. ${c2}xd .....,. ${c3} .. ${c1}:xkl' ${c2}:c ..''.. ${c3} .dkx' ${c1}.:ldl:'. ${c2}' ${c4}':lollldkkxo; ${c3} .''lkkko' ${c4}ckkkx. ${c3}'xkkkd:kkd. .. ${c5};' ${c4}:kkxo. ${c3},xkkkd;kk' ,d; ${c5}ld. ${c4}':dkd::cc, ${c3} .,,.;xkko'.';lxo. ${c5}dx, ${c4}:kkk'xkkkkc ${c3} 'dkkkkkxo:. ${c5};kx ${c4}.kkk:;xkkd. ${c3} ..... ${c5}.;dk:. ${c5}lkk. ${c4}:;, ${c5}:kkkkkkkdoxkkx ,c,,;;;:xkkd. ;kkkkl... ;kkkkl ,od; EOF ;; "Exodia Predator OS"* | "exodia-predator"* | "Predator"*) set_colors 5 5 read -rd '' ascii_data <<'EOF' ${c1}- : ${c1}+: :+ ${c1}++. .++ ${c1}+++ : . +++ ${c1}+++= .+ + =+++ ${c1}++++- ++ += -++++ ${c1}++++++- -++ ++- -++++++ ${c1}++++++++: .+++ +++. :++++++++ ${c1}++++++++++: ++++ ++++ :++++++++++ ${c1}+++++++++++==++++ ++++=++++++=+++++ ${c1}+++++.:++++++++++ ++++++++++:.+++++ ${c1}+++++. .+++++++++ +++++++++. .+++++ ${c1}+++++: ++++++++ ++++++++ :+++++ ${c1}++++++- =+++++++ +++++++= -++++++ ${c1} :+++++= =+++++++ +++++++= =+++++: ${c1} :+++= =+++++++ +++++++= =+++: ${c1} -+= =+++++++ +++++++= ++- ${c1} : =++++++- -++++++= : ${c1} =++++- -++++= ${c1} =++= =++= ${c1} =++ ++= ${c1} =+. .+= ${c1} =- -= ${c1} : : EOF ;; "alpine_small") set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} /\\ /\\ /${c2}/ ${c1}\\ \\ /${c2}/ ${c1}\\ \\ /${c2}// ${c1}\\ \\ ${c2}// ${c1}\\ \\ \\ EOF ;; "Alpine"*) set_colors 4 5 7 6 read -rd '' ascii_data <<'EOF' ${c1} .hddddddddddddddddddddddh. :dddddddddddddddddddddddddd: /dddddddddddddddddddddddddddd/ +dddddddddddddddddddddddddddddd+ `sdddddddddddddddddddddddddddddddds` `ydddddddddddd++hdddddddddddddddddddy` .hddddddddddd+` `+ddddh:-sdddddddddddh. hdddddddddd+` `+y: .sddddddddddh ddddddddh+` `//` `.` -sddddddddd ddddddh+` `/hddh/` `:s- -sddddddd ddddh+` `/+/dddddh/` `+s- -sddddd ddd+` `/o` :dddddddh/` `oy- .yddd hdddyo+ohddyosdddddddddho+oydddy++ohdddh .hddddddddddddddddddddddddddddddddddddh. `yddddddddddddddddddddddddddddddddddy` `sdddddddddddddddddddddddddddddddds` +dddddddddddddddddddddddddddddd+ /dddddddddddddddddddddddddddd/ :dddddddddddddddddddddddddd: .hddddddddddddddddddddddh. EOF ;; "Alter"*) set_colors 6 6 read -rd '' ascii_data <<'EOF' ${c1} %, ^WWWw 'wwwwww !wwwwwwww #`wwwwwwwww @wwwwwwwwwwww wwwwwwwwwwwwwww wwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwww, w~1i.wwwwwwwwwwwwwwwww, 3~:~1lli.wwwwwwwwwwwwwwww. :~~:~?ttttzwwwwwwwwwwwwwwww #<~:~~~~?llllltO-.wwwwwwwwwww #~:~~:~:~~?ltlltlttO-.wwwwwwwww @~:~~:~:~:~~(zttlltltlOda.wwwwwww @~:~~: ~:~~:~:(zltlltlO a,wwwwww 8~~:~~:~~~~:~~~~_1ltltu ,www 5~~:~~:~~:~~:~~:~~~_1ltq N,, g~:~~:~~~:~~:~~:~:~~~~1q N, EOF ;; "Amazon"*) set_colors 3 7 read -rd '' ascii_data <<'EOF' ${c1} `-/oydNNdyo:.` `.:+shmMMMMMMMMMMMMMMmhs+:.` -+hNNMMMMMMMMMMMMMMMMMMMMMMNNho- .`` -/+shmNNMMMMMMNNmhs+/- ``. dNmhs+:. `.:/oo/:.` .:+shmNd dMMMMMMMNdhs+:.. ..:+shdNMMMMMMMd dMMMMMMMMMMMMMMNds odNMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd .:+ydNMMMMMMMMMMMh yMMMMMMMMMMMNdy+:. `.:+shNMMMMMh yMMMMMNhs+:`` `-+shy shs+:` EOF ;; "AmogOS"*) set_colors 15 6 read -rd '' ascii_data <<'EOF' ${c1} ___________ / \\ / ${c2}______${c1} \\ / ${c2}/ \\${c1} \\ | ${c2}( )${c1} \\ / ${c2}\\______/${c1} | | | / \\ | | | | / | | | | _______ | ____/ / \\ | / | | | | / ____/ | \\_________/ / | \\ __/ \\_______/ EOF ;; "Anarchy"*) set_colors 7 4 read -rd '' ascii_data <<'EOF' ${c2}..${c1} ${c2}..${c1} ${c2}:..${c1} ${c2}:+++.${c1} .:::++${c2}++++${c1}+::. .:+######${c2}++++${c1}######+:. .+#########${c2}+++++${c1}##########:. .+##########${c2}+++++++${c1}##${c2}+${c1}#########+. +###########${c2}+++++++++${c1}############: +##########${c2}++++++${c1}#${c2}++++${c1}#${c2}+${c1}###########+ +###########${c2}+++++${c1}###${c2}++++${c1}#${c2}+${c1}###########+ :##########${c2}+${c1}#${c2}++++${c1}####${c2}++++${c1}#${c2}+${c1}############: ###########${c2}+++++${c1}#####${c2}+++++${c1}#${c2}+${c1}###${c2}++${c1}######+ .##########${c2}++++++${c1}#####${c2}++++++++++++${c1}#######. .##########${c2}+++++++++++++++++++${c1}###########. #####${c2}++++++++++++++${c1}###${c2}++++++++${c1}#########+ :###${c2}++++++++++${c1}#########${c2}+++++++${c1}#########: +######${c2}+++++${c1}##########${c2}++++++++${c1}#######+ +####${c2}+++++${c1}###########${c2}+++++++++${c1}#####+ :##${c2}++++++${c1}############${c2}++++++++++${c1}##: .${c2}++++++${c1}#############${c2}++++++++++${c1}+. :${c2}++++${c1}###############${c2}+++++++${c1}:: .${c2}++. .:+${c1}##############${c2}+++++++${c1}.. ${c2}.:.${c1} ..::++++++::..:${c2}++++${c1}+. ${c2}.${c1} ${c2}.:+++${c1}. ${c2}.:${c1}: ${c2}..${c1} ${c2}..${c1} EOF ;; "android_small"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} ;, ,; ';,.-----.,;' ,' ', / O O \\ | | '-----------------' EOF ;; "Android"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} -o o- +hydNNNNdyh+ +mMMMMMMMMMMMMm+ `dMM${c2}m:${c1}NMMMMMMN${c2}:m${c1}MMd` hMMMMMMMMMMMMMMMMMMh .. yyyyyyyyyyyyyyyyyyyy .. .mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm. :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: :MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: -MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM- +yy+ MMMMMMMMMMMMMMMMMMMM +yy+ mMMMMMMMMMMMMMMMMMMm `/++MMMMh++hMMMM++/` MMMMo oMMMM MMMMo oMMMM oNMm- -mMNs EOF ;; "ArseLinux"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} ⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⣴⣶⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣄⠀⠀⠀⠀⣼⠟⠁⠀⠀⢀⣀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⢀⣤⡀⠀⠀⠀⠉⢻⣷⡄⠀⠀⠁⠀⢀⣤⣾⡿⠟⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣿⠏⠀⠀⠀⠀⠀⠀⠹⣿⡄⠀⠀⠀⠙⠉⠁⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⡄⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠀⠀⠀⠠⣶⣶⣶⡶ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⢠⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠂⠀⠀⠀⠀⠀⢀⣾⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠇⠀⠀⠀⠀⠀⣠⣾⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣇⣀⣀⣀⣠⣴⣾⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⣤⣤⣴⣶⣾⠿⠟⣿⡏⠙⠛⠛⠛⠋⠉⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⡄⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠇⠀⠀⠀⠀⠀⠀⠘⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ EOF ;; "instantOS"*) set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c1} 'cx0XWWMMWNKOd:'. .;kNMMMMMMMMMMMMMWNKd' 'kNMMMMMMWNNNWMMMMMMMMXo. ,0MMMMMW0o;'..,:dKWMMMMMWx. OMMMMMXl. .xNMMMMMNo WMMMMNl .kWWMMMMO' MMMMMX; oNWMMMMK, NMMMMWo .OWMMMMMK, kWMMMMNd. ,kWMMMMMMK, 'kWMMMMWXxl:;;:okNMMMMMMMMK, .oXMMMMMMMWWWMMMMMMMMMMMMK, 'oKWMMMMMMMMMMMMMMMMMMMK, .;lxOKXXXXXXXXXXXXXXXO;...... ................,d0000000kd:. .kMMMMMMMMMW0; .kMMMMMMMMMMMX .xMMMMMMMMMMMW cXMMMMMMMMMM0 :0WMMMMMMNx, .o0NMWNOc. EOF ;; "Antergos"*) set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c2} `.-/::/-`` .-/osssssssso/. :osyysssssssyyys+- `.+yyyysssssssssyyyyy+. `/syyyyyssssssssssyyyyys-` `/yhyyyyysss${c1}++${c2}ssosyyyyhhy/` .ohhhyyyys${c1}o++/+o${c2}so${c1}+${c2}syy${c1}+${c2}shhhho. .shhhhys${c1}oo++//+${c2}sss${c1}+++${c2}yyy${c1}+s${c2}hhhhs. -yhhhhs${c1}+++++++o${c2}ssso${c1}+++${c2}yyy${c1}s+o${c2}hhddy: -yddhhy${c1}o+++++o${c2}syyss${c1}++++${c2}yyy${c1}yooy${c2}hdddy- .yddddhs${c1}o++o${c2}syyyyys${c1}+++++${c2}yyhh${c1}sos${c2}hddddy` `odddddhyosyhyyyyyy${c1}++++++${c2}yhhhyosddddddo .dmdddddhhhhhhhyyyo${c1}+++++${c2}shhhhhohddddmmh. ddmmdddddhhhhhhhso${c1}++++++${c2}yhhhhhhdddddmmdy dmmmdddddddhhhyso${c1}++++++${c2}shhhhhddddddmmmmh -dmmmdddddddhhys${c1}o++++o${c2}shhhhdddddddmmmmd- .smmmmddddddddhhhhhhhhhdddddddddmmmms. `+ydmmmdddddddddddddddddddmmmmdy/. `.:+ooyyddddddddddddyyso+:.` EOF ;; "antiX"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} \ , - ~ ^ ~ - \ / , ' \ ' , / , \ '/ , \ / , ,___, \/ , / | _ _ _|_ o /\ , |, | / |/ | | | / \ , \,_/\_/ | |_/|_/|_/_/ \, , / ,\ , / , ' \ ' - , _ _ _ , ' EOF ;; "Afterglow"*) set_colors 5 1 3 4 read -rd '' ascii_data <<'EOF' ${c2} . ${c1}. ${c2}.{! ${c1}.L! ${c2}J@||* ${c1}gJJJJL` ${c2}g@FFS" ${c1},@FFFJF`${c2}_g@@LLP` ${c1}_@FFFFF`${c2}_@@@@@P` ${c4}. ${c1}J@@@LLF ${c2}_@@@@@P` ${c4}.J! ${c1}g@@@@@" ${c2}_@@@@@P`${c3}. ${c4}.L|||* ${c1}g@@@@M" ${c2}"VP`${c3}.L! ${c4}<@JJJJ` ${c1}"@N" ${c3}:||||! ${c4}JFFFFS" ${c3}.{JJ||F`${c4}_gFFFF@' ${c3}.@FJJJF`${c4},@LFFFF` ${c3}_@FFFFF ${c4}VLLLP` ${c3}J@@LL@" ${c4}`" ${c3}V@@" EOF ;; "AOSC OS"*) set_colors 4 0 1 3 read -rd '' ascii_data <<'EOF' ${c2} __ ${c2}gpBBBBBBBBBP ${c2}_gBBBBBBBBBRP ${c2}4BBBBBBBBRP ${c4},_____ ${c2}`"" ${c4}_g@@@@@@@@@@@@@%g> ${c4}__@@@@@@@@@@@@@@@@P" ${c1}___ ${c4}_g@@@@@@@@@@@@@@@N"` ${c1}_gN@@@@@N^ ${c4}_w@@@@@@@@@@@@@@@@P" ${c1}_g@@@@@@@P" ${c4}_g@@@@@@@@@@@@@@@N"` ${c1}VMNN@NNNM^` ${c4}^MMM@@@@@@@@@@@MP" ${c3},ggppww__ ${c4}`""""" ${c3}_wNNNNNNNNNNNNNNNNNNN ${c3}_gBNNNNNNNNNNNNNNNNNP" ${c3}_wNNNNNNNNNNNNNNNNNNMP` ${c3}_gBNNNNNNNNNNNNNNNNNP" ${c3}_wNNNNNNNNNNNNNNNNNNNM^ ${c3}""Y^^MNNNNNNNNNNNNP` ${c3}`""""""" EOF ;; "Apricity"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} ./o- ``...`` `:. -/: `-+ymNMMMMMNmho-` :sdNNm/ `+dMMMMMMMMMMMMMMMmo` sh:.:::- /mMMMMMMMMMMMMMMMMMMMm/`sNd/ oMMMMMMMMMMMMMMMMMMMMMMMs -` :MMMMMMMMMMMMMMMMMMMMMMMMM/ NMMMMMMMMMMMMMMMMMMMMMMMMMd MMMMMMMmdmMMMMMMMMMMMMMMMMd MMMMMMy` .mMMMMMMMMMMMmho:` MMMMMMNo/sMMMMMMMNdy+-.`-/ MMMMMMMMMMMMNdy+:.`.:ohmm: MMMMMMMmhs+-.`.:+ymNMMMy. MMMMMM/`.-/ohmNMMMMMMy- MMMMMMNmNNMMMMMMMMmo. MMMMMMMMMMMMMMMms:` MMMMMMMMMMNds/. dhhyys+/-` EOF ;; "archcraft_ascii"*) set_colors 6 1 2 3 4 5 read -rd '' ascii_data <<'EOF' ${c1} -o\ :ooo: .ooooo. ooooooo. +oooooooo. -oooooooooo. --:-+oooooooo. yooo+=+sooooooo. yoooooosooooooooo. y+ooooooooooooooooo. yoooooooooooooooooooo` yoooooo+oo= :oo++ooooo` :oooooo. +ooooo- -ooooooo. .::. +ooosoo= -oooooo` .oooo` +os-=o= =ooooooo=: `oo+ :=ooo=--`. +ooooooooos. .=sooooooo+- .+osossos+-` `-+osososs+. :sss+=-:` `:-=+ssss: :=-:` `-=+: EOF ;; "archcraft_minimal"*) set_colors 6 1 2 3 4 5 read -rd '' ascii_data <<'EOF' ${c1} ⢰⡆ ⢠⣿⣿⡄ ⢀⣾⣿⣿⣿⡀ ⣼⣿⣿⣿⣿⣷⡀ ⣼⣿⣿⣿⣿⣿⣿⣷ ⢼⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣰⣤⣈⠻⢿⣿⣿⣿⣿⣿⣿⣧ ⣰⣿⣿⣿⣿⣮⣿⣿⣿⣿⣿⣿⣿⣧ ⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⣼⣿⣿⣿⣿⣿⡿⣿⣿⡟ ⠸⣿⣿⡿⣿⣿⣿⣿⣿⣷⡀ ⣼⣿⣿⣿⣿⣿⡏ ⠈⣿⣿⣿⣿⣿⣷⡀ ⢀⣼⣿⣿⣿⣿⣿⣿⡗ ⢀⣠⣤⣀ ⠸⣿⣿⣿⣿⣿⣿⣷⡀ ⢀⣾⣿⣿⣿⣿⣿⡏⠁ ⢠⣿⣿⣿⣿⡇ ⢙⣿⣿⣻⠿⣿⣷⡀ ⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀ ⠻⣿⣿⡿⠃ ⢀⣼⣿⣿⣿⣿⣦⣌⠙ ⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏ ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀ ⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁ ⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄ ⣠⣿⣿⣿⣿⠿⠛⠋⠁ ⠉⠙⠻⢿⣿⣿⣿⣿⣆ ⡰⠟⠛⠉⠁ ⠉⠙⠛⠿⢆ EOF ;; "Archcraft"*) set_colors 6 1 2 3 4 5 read -rd '' ascii_data <<'EOF' ${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢰⡆${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢠⣿⣿⡄${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢀⣾⣿⣿⣿⡀${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣷⡀${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⣿⣷${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢼⣿⣿⣿⣿⣿⣿⣿⣿⣧${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣤⣈⠻⢿⣿⣿⣿⣿⣿⣿⣧${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣿⣿⣿⣿⣮⣿⣿⣿⣿⣿⣿⣿⣧${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧${c3}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧${c4}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄ ${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⡿⣿⣿⡟${c6}⠄⠄${c1}⠸⣿⣿⡿⣿⣿⣿⣿⣿⣷⡀${c6}⠄⠄⠄⠄⠄⠄⠄⠄ ${c1}⠄⠄⠄⠄⠄⠄⠄⠄${c1}⣼⣿⣿⣿⣿⣿⡏${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠈⣿⣿⣿⣿⣿⣷⡀${c1}⠄⠄⠄⠄⠄⠄⠄ ${c2}⠄⠄⠄⠄⠄⠄${c1}⢀⣼⣿⣿⣿⣿⣿⣿⡗${c2}⠄⠄⠄${c1}⢀⣠⣤⣀⠄⠄⠄${c1}⠸⣿⣿⣿⣿⣿⣿⣷⡀${c2}⠄⠄⠄⠄⠄⠄ ${c3}⠄⠄⠄⠄⠄${c1}⢀⣾⣿⣿⣿⣿⣿⡏⠁${c3}⠄⠄⠄${c1}⢠⣿⣿⣿⣿⡇${c3}⠄⠄⠄⠄${c1}⢙⣿⣿⣻⠿⣿⣷⡀${c3}⠄⠄⠄⠄⠄ ${c4}⠄⠄⠄⠄${c1}⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀${c4}⠄⠄⠄${c1}⠻⣿⣿⡿⠃${c4}⠄⠄⠄${c1}⢀⣼⣿⣿⣿⣿⣦⣌⠙⠄${c4}⠄⠄⠄⠄ ${c5}⠄⠄⠄${c1}⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀${c5}⠄⠄⠄ ${c6}⠄⠄${c1}⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄${c6}⠄⠄ ${c1}⠄${c1}⣠⣿⣿⣿⣿⠿⠛⠋⠁${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠉⠙⠻⢿⣿⣿⣿⣿⣆${c1}⠄ ${c1}⡰⠟⠛⠉⠁${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠉⠙⠛⠿⢆ 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 ;; "Arkane"*) set_colors 7 130 237 read -rd '' ascii_data <<'EOF' ${c3} .:.. ..:::...... ${c2}.${c3} .${c2}.${c3}..... ${c2}+=${c3}...${c2}==${c3}.... ......:.${c1}:-${c2}:${c3}..${c1}+*${c2}=${c3}.... ${c2}:----::${c3}...... ${c2}.=***##*+=: ${c3}.. ${c2}=${c1}***######*${c2}= ${c2}.${c1}-*######+ ${c2}:+${c1}###%%%###${c3}: ${c2}-+*${c1}########+${c3}. ${c2}=++*${c1}#######${c3}- ${c2}-+=+**${c1}*####${c3}= ${c3}.${c2}-=++==***${c1}##*${c1}- ${c2}-++++++==++++= .-+++**+++=+===${c3}. ${c2}:---===++++=-=--${c3}. ${c2}-===============${c3}-==--: ${c2}.-==+++***++*${c1}*#########${c3}=:::. ${c2}.-=++++*++++**${c1}#######%%###${c3}= ${c2}.:==++++++**${c1}#############${c3}: ${c2}.${c3}-+*++*+++==${c1}###${c3}+ -${c1}*+${c3}: EOF ;; "arch_small") set_colors 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} /\\ / \\ /\\ \\ ${c2} / \\ / ,, \\ / | | -\\ /_-'' ''-_\\ EOF ;; "arch_old") set_colors 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} __ _=(SDGJT=_ _GTDJHGGFCVS) ,GTDJGGDTDFBGX0 ${c1} JDJDIJHRORVFSBSVL${c2}-=+=,_ ${c1} IJFDUFHJNXIXCDXDSV,${c2} "DEBL ${c1} [LKDSDJTDU=OUSCSBFLD.${c2} '?ZWX, ${c1} ,LMDSDSWH' `DCBOSI${c2} DRDS], ${c1} SDDFDFH' !YEWD,${c2} )HDROD ${c1} !KMDOCG &GSU|${c2}\_GFHRGO\' ${c1} HKLSGP'${c2} __${c1}\TKM0${c2}\GHRBV)' ${c1}JSNRVW'${c2} __+MNAEC${c1}\IOI,${c2}\BN' ${c1}HELK['${c2} __,=OFFXCBGHC${c1}\FD) ${c1}?KGHE ${c2}\_-#DASDFLSV='${c1} 'EF 'EHTI !H `0F' '! EOF ;; "ArchBox"*) set_colors 2 7 1 read -rd '' ascii_data <<'EOF' ${c1} ...:+oh/:::.. ..-/oshhhhhh` `::::-. .:/ohhhhhhhhhhhh` `-::::. .+shhhhhhhhhhhhhhhhh` `.::-. /`-:+shhhhhhhhhhhhhh` .-/+shh / .:/ohhhhhhhhh` .:/ohhhhhhhh / `-:+shhh` ..:+shhhhhhhhhhhh / .:ohhhhhhhhhhhhhhhhhhh / `hhhhhhhhhhhhhhhhhhhh / `hhhhhhhhhhhhhhhhhhhh / `hhhhhhhhhhhhhhhhhhhh / `hhhhhhhhhhhhhhhhhhhh / .+o+ `hhhhhhhhhhhhhhhhhhhh / -hhhhh `hhhhhhhhhhhhhhhhhhhh / ohhhhho `hhhhhhhhhhhhhhhhhhhh /:::+`hhhhoos` `hhhhhhhhhhhhhhhhhs+` `--/:` /: `hhhhhhhhhhhho/- -/:. `hhhhhhs+:-` ::::/ho/-` EOF ;; "ARCHlabs"*) set_colors 6 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} 'c' 'kKk, .dKKKx. .oKXKXKd. .l0XXXXKKo. c0KXXXXKX0l. :0XKKOxxOKX0l. :OXKOc. .c0XX0l. :OK0o. ${c4}...${c1}'dKKX0l. :OX0c ${c4};xOx'${c1}'dKXX0l. :0KKo.${c4}.o0XXKd'.${c1}lKXX0l. c0XKd.${c4}.oKXXXXKd..${c1}oKKX0l. .c0XKk;${c4}.l0K0OO0XKd..${c1}oKXXKo. .l0XXXk:${c4},dKx,.'l0XKo.${c1}.kXXXKo. .o0XXXX0d,${c4}:x; .oKKx'${c1}.dXKXXKd. .oKXXXXKK0c.${c4};. :00c'${c1}cOXXXXXKd. .dKXXXXXXXXk,${c4}. cKx'${c1}'xKXXXXXXKx' 'xKXXXXK0kdl:. ${c4}.ok; ${c1}.cdk0KKXXXKx' 'xKK0koc,.. ${c4}'c, ${c1} ..,cok0KKk, ,xko:'. ${c4}.. ${c1} .':okx; .,'. .',. EOF ;; "ArchStrike"*) set_colors 8 6 read -rd '' ascii_data <<'EOF' ${c1} * **. **** ****** ******* ** ******* **** ******* ${c1}****${c2}_____${c1}***${c2}/${c1}* ***${c2}/${c1}*******${c2}//${c1}*** **${c2}/${c1}********${c2}///${c1}*${c2}/${c1}** **${c2}/${c1}*******${c2}////${c1}***${c2}/${c1}** **${c2}/${c1}****${c2}//////.,${c1}****${c2}/${c1}** ***${c2}/${c1}*****${c2}/////////${c1}**${c2}/${c1}*** ****${c2}/${c1}**** ${c2}/////${c1}***${c2}/${c1}**** ******${c2}/${c1}*** ${c2}//// ${c1}**${c2}/${c1}****** ********${c2}/${c1}* ${c2}/// ${c1}*${c2}/${c1}******** ,****** ${c2}// ______ / ${c1}******, EOF ;; "astOS"*) set_colors 8 read -rd '' ascii_data <<'EOF' ${c1} oQA#$%UMn H 9 G # 6 % ?#M#%KW3" // \\\ // \\\ // \\\ // \\\ n%@$DK&ML .0O3#@&M_ P # 8 W H U G # B N O @ C&&#%HNAR 'WS3QMHB" // \\\ \\\ // \\\ \\\ // \\\ \\\ // \\\ \\\ uURF$##Bv nKWB$%ABc aM@3R@D@b 8 M @ O # % % & G U @ @ & @ # % % # !HGN@MNCf t&$9#%HQr ?@G#6S@QP 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 ;; "Stock Linux"*) set_colors 4 7 read -rd '' ascii_data << 'EOF' ${c1} #G5J5G# &BPYJJJJJJJYPB& &#G5JJJJJJY5YJJJJJJ5G#& #G5YJJJJJY5G#& &#G5YJJJJJY5G# BPYJJJJJJJ5B& &BPYJJJJJJYPB JJJJJJJJJJY5G#& &BPYJJJJJ JJJJJJJJJJJJJJY5G# &JJJJJ PYJJJJJJJJJJJJJJJJYPB& GYJJJ &BPYJJJJJJJJJJJJJJJJ5PB& &BP #G5YJJJJJJJJJJJJJJJY5G# PB& &BP5JJJJJJJJJJJJJJJJYPB& JJJYG &BPYJJJJJJJJJJJJJJJJYP JJJJJ& #G5YJJJJJJJJJJJJJJ JJJJJYPB& &#G5YJJJJJJJJJJ BPYJJJJJJYPB& &B5JJJJJJJYPB #G5YJJJJJY5G#& &#G5YJJJJJY5G# &#G5JJJJJJY5YJJJJJJ5G#& &BPYJJJJJJJYPB& #G5J5G# 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 ;; "aerOS"*) set_colors fg 0 0 0 read -rd '' ascii_data <<'EOF' ${c1} ooo OOO OOO ooo oOO OOo oOO OOo oOO OOo oOO OOo oOO OOo oOO OOo OOo OOo OOo OOo OOo OOo oOO OOo oOO OOo oOO OOo oOO OOo oO OOo oOO OOo oOO OOo ooo OOO OOO ooo 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 ;; "unicodearch"*) set_colors 6 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} ▄ ▟█▙ ▟███▙ ▟█████▙ ▟███████▙ ▂▔▀▜██████▙ ▟██▅▂▝▜█████▙ ▟█████████████▙ ▟███████████████▙ ▟█████████████████▙ ▟███████████████████▙ ▟█████████▛▀▀▜████████▙ ▟████████▛ ▜███████▙ ▟█████████ ████████▙ ▟██████████ █████▆▅▄▃▂ ▟██████████▛ ▜█████████▙ ▟██████▀▀▀ ▀▀██████▙ ▟███▀▘ ▝▀███▙ ▟▛▀ ▀▜▙ EOF ;; "artix_small"*) set_colors 6 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} ' 'A' 'ooo' 'ookxo' `ookxxo' '. `ooko' 'ooo`. `oo' 'ooxxxoo`. `' 'ookxxxkooo.` . 'ookxxkoo'` .'oo' 'ooxoo'` .:ooxxo' 'io'` `'oo' '` `' EOF ;; "Artix"*) set_colors 6 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} ' 'o' 'ooo' 'ooxoo' 'ooxxxoo' 'oookkxxoo' 'oiioxkkxxoo' ':;:iiiioxxxoo' `'.;::ioxxoo' '-. `':;jiooo' 'oooio-.. `'i:io' 'ooooxxxxoio:,. `'-;' 'ooooxxxxxkkxoooIi:-. `' 'ooooxxxxxkkkkxoiiiiiji' 'ooooxxxxxkxxoiiii:'` .i' 'ooooxxxxxoi:::'` .;ioxo' 'ooooxooi::'` .:iiixkxxo' 'ooooi:'` `'';ioxxo' 'i:'` '':io' '` `' EOF ;; "Cobalt"*) set_colors 33 33 59 31 8 read -rd '' ascii_data <<'EOF' ${c1} /// ${c1} ,////////////// ${c1} /////////////////////////////// ${c1} ///////////////${c5}***********${c1}////// ////${c5}***********************${c1}///// /////${c5}***********************${c1}//// //////${c5},,,,,,,,,,,,,,,,,,,,,,${c1}/// //////${c5},,,,,,,,,,,,,,,,,,,,,,,,,${c1}///// /////${c5},,,,,,,,,,,,,,,,,,,,,,,,,,,,${c1}///// ${c4} *****${c3},,,,,,,,,,,,,,,,,,,,,,,,,,,,,${c4}***** ******${c3},,,,,,,,,,,,,,,,,,,,,,,,,,,,${c4}***** *******${c3},,,,,,,,,,,,,,,,,,,,,,,,,${c4}****** *******${c3}......................${c4}******* ******${c3}....${c4}*********************** **************************** ***** EOF ;; "Arya"*) set_colors 2 1 read -rd '' ascii_data <<'EOF' ${c1} `oyyy/${c2}-yyyyyy+ ${c1} -syyyy/${c2}-yyyyyy+ ${c1} .syyyyy/${c2}-yyyyyy+ ${c1} :yyyyyy/${c2}-yyyyyy+ ${c1} `/ :yyyyyy/${c2}-yyyyyy+ ${c1} .+s :yyyyyy/${c2}-yyyyyy+ ${c1} .oys :yyyyyy/${c2}-yyyyyy+ ${c1} -oyys :yyyyyy/${c2}-yyyyyy+ ${c1} :syyys :yyyyyy/${c2}-yyyyyy+ ${c1} /syyyys :yyyyyy/${c2}-yyyyyy+ ${c1} +yyyyyys :yyyyyy/${c2}-yyyyyy+ ${c1} .oyyyyyyo. :yyyyyy/${c2}-yyyyyy+ --------- ${c1} .syyyyyy+` :yyyyyy/${c2}-yyyyy+-+syyyyyyyy ${c1} -syyyyyy/ :yyyyyy/${c2}-yyys:.syyyyyyyyyy ${c1}:syyyyyy/ :yyyyyy/${c2}-yyo.:syyyyyyyyyyy EOF ;; "AsteroidOS"*) set_colors 160 208 202 214 read -rd '' ascii_data <<'EOF' ${c1} *** ${c1} ***** ${c1} ********** ${c1} *************** ${c1} *///****////****////. ${c2} (/////// /////// ///////( ${c2} /(((((//* //, //((((((. ${c2} ((((((((((( ((( (((((((( ${c2} *((((((((((((((((((((((( (((((((( ${c3} (((((#(((((((#((((( ((#((((( ${c3} (#(#(#####(#(#, ####(#(# ${c3} ######### ######## ${c3} /######## ######## ${c4} #######%####### ${c4} (#%%%%%%%# ${c4} %%%%% ${c4} %%% EOF ;; "Athena"*) set_colors 7 3 read -rd '' ascii_data <<'EOF' ${c1} . .. ${c1} :####: ####. ${c1} .################ ${c1} :################## ${c1}.###################. ${c1}######## ####### ${c1}####### ${c2}####${c1} ##### ${c1}:#######. #### ${c1} ######### ${c2}#${c1} ## # ${c1} ####### ${c2}##${c1} #### ${c1}######## ${c2}####${c1} ####### ${c1}######## ${c2}#####${c1} ######## ${c1}######## ${c2}#######${c1} ####### ${c1} ####### ${c2}########${c1} ####### ${c1} ######## ${c2}#########${c1} ###### ${c1} ######## ${c2}#########${c1} ##### ${c1} ####### ${c2}#########${c1} #### ${c1} ####### ${c2}#########${c1} ## ${c1} ####### ${c2}########${c1} ## ${c1} ###### ${c2}########${c1} # ${c1} ### ${c2}#######${c1} ${c1} ${c2}######${c1} ${c1} ${c2}####${c1} ${c1} ${c2}##${c1} EOF ;; "azos"*) set_colors 6 1 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} //////// ///////// ${c2} ((((((((( @(((((((( ${c1} //////// ///////// ${c2} &(((((((( @(((((((( ${c1} //////// ////// ${c2} @(((( @(((((((( ${c1} //////// ${c2} @(((((((( ${c1} //////// ${c2} @(((((((( ${c1} ///// ${c2} ((((( 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 ;; "BigLinux_large"*) set_colors 2 3 4 7 read -rd '' ascii_data <<'EOF' ${c4} ${c3}.cd0KXXX${c4}0${c3}x; ${c3}.oXM${c4}M${c3}MMMMMMMMMWo ${c2}... ${c3}dWMMMM${c4}M${c3}MMMMMMMMMMN, ${c2}c0WMMMW0: ${c3}.XMMMM${c4}M${c3}MMMKdc;,;cxNMM: ${c1}x, ${c2}.XMMMMMMMMM: ${c3}'W${c3}MMMMMMWo. ;KW. ${c1}dM. ${c2}.WMMMMMMMM0 ${c3}N${c3}MMMM${c4}M${c3}Mk. dd ${c1}.MM. ${c2}.lOKXKOl. ${c3}oMMMMMMd .l${c4}x${c3}kd: . ${c1}kMM: .'.. ${c2}:xOOxc. ${c3}O${c4}M${c3}MMMM0 lXMMMMM${c4}M${c3}N; ${c1}WMM0 lKMMMMMW0o. ${c2}KMMMMMMN. ${c3}xMM${c4}M${c3}M, .dWMMMMMMMMMM; ${c1}.MMMMx .oWMMMMMMOl0MMX; ${c2}NMMMMMMM; ${c3}.NMMMM. .dWMMMM${c4}M${c3}MMMMMMMN ${c1}.MMMMMNOKMMMMMMMk. 'MMMMx ${c2};MMMMMMMO ${c3}.KMMMl .oWMMMMMWk:,lWMMMM. ${c1}xMMMMMMMMMMMMk. .MMMMMc ${c2}'XMMMMMMx ${c3}:0MMNMMMM${c4}M${c3}MWx. .WM${c4}M${c3}M. ${c1}0MMMMMMMMWx. :MMMMMK ${c2}cKMMMMMX: ${c3},ok0K0x:. oMMN ${c1}oNMMMM0c. .NMMMMMO ${c2}.lOWMMMX: ${c3}.M${c4}M${c3}o ${c1}c. .'. .KMMMMMM: ${c2}.';clc. ${c3}MN ${c1}:N; cWMMMMMMO ${c3}.W; ${c1}0M0: 'dNMMMMMMM0 ${c3}', ${c1}0MMMX0O0XMMMMMMMMMMo ${c1}oWMMMMMMMMMMMMMMk. ${c1}.oXMMMMMMMMW0c. ${c1}.;ccc:,. EOF ;; "BigLinux"*) set_colors 6 11 4 read -rd '' ascii_data <<'EOF' ${c1} ... :OWMMMNd. :NMMMMMMMMWc okkl. kMMMMMW0xdOWMl : xMMMMMW. kMMMMNc lW. :x NMMMMMO ,MMMM0. 'l Xx "lkk" kMMMX .okx, ${c2}.MX .cc;. .xXKx. KMMM: .OMMMMMl :MM' 'KMMMMWK: 0MMMMk xMMM. lWMMMMMMM' cMMN:;xMMMMk::MMO oMMMMX .XMM. .KMMMWOOMMMd 'MMMMMMMMN, NMMx OMMMMl .kM0OMMMMk. ;MMd xMMMMMMd .MMMW :NMMMd .ckKKx' KMc dWMNd. oMMMN lkNMX, oM. ;. ;MMMMx "MM:. cO ${c3} .X. oMMMMW. l. dMk:..;xWMMMMW, kMMMMMMMMMMX. :XMMMMMMK: ':MM:" Made in Brazil EOF ;; "Bitrig"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} `hMMMMN+ -MMo-dMd` oMN- oMN` yMd /NM: .mMmyyhMMs :NMMMhsmMh +MNhNNoyMm- hMd.-hMNMN: mMmsssmMMMo .MMdyyhNMMMd oMN.`/dMddMN` yMm/hNm+./MM/ .dMMMmo.``.NMo :NMMMNmmmmmMMh /MN/-------oNN: hMd. .dMh sm/ /ms EOF ;; "BlackArch"*) set_colors 1 1 0 1 read -rd '' ascii_data <<'EOF' ${c3} 00 11 ====${c1} .${c3}//${c1} `o${c3}//${c1}: `+o${c3}//${c1}o: `+oo${c3}//${c1}oo: -+oo${c3}//${c1}oo+: `/:-:+${c3}//${c1}ooo+: `/+++++${c3}//${c1}+++++: `/++++++${c3}//${c1}++++++: `/+++o${c2}ooo${c3}//${c2}ooo${c1}oooo/` ${c2} ${c1}./${c2}ooosssso${c3}//${c2}osssssso${c1}+` ${c2} .oossssso-`${c3}//${c1}`/ossssss+` -osssssso. ${c3}//${c1} :ssssssso. :osssssss/ ${c3}//${c1} osssso+++. /ossssssss/ ${c3}//${c1} +ssssooo/- `/ossssso+/:- ${c3}//${c1} -:/+osssso+- `+sso+:-` ${c3}//${c1} `.-/+oso: `++:. ${c3}//${c1} `-/+/ .` ${c3}/${c1} `/ EOF ;; "BlackMesa") set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} .-;+$XHHHHHHX$+;-. ,;X@@X%/;=----=:/%X@@X/, =$@@%=. .=+H@X: -XMX: =XMX= /@@: =H@+ %@X, .$@$ +@X. $@% -@@, .@@= %@% +@$ H@: :@H H@: :HHHHHHHHHHHHHHHHHHX, =@H %@% ;@M@@@@@@@@@@@@@@@@@H- +@$ =@@, :@@@@@@@@@@@@@@@@@@@@@= .@@: +@X :@@@@@@@@@@@@@@@M@@@@@@:%@% $@$, ;@@@@@@@@@@@@@@@@@M@@@@@@$. +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+ =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X= :$@@@@@@@@@@@@@@@@@@@M@@@@$: ,;$@@@@@@@@@@@@@@@@@@X/- .-;+$XXHHHHHX$+;-. EOF ;; "blackPanther"* | 'blackpanther'*) set_colors 1 11 12 read -rd '' ascii_data <<'EOF' ${c3} ........ .,»╔╗╗╬▄▄╫█▀▓▄▄╬╗╗g≈,. ,j╗╬╣▓▓███████▌;»╙▀▀▀▀█▄▄╗j, .≈╗╬▓██▀▀▀▀▀╠╙░░»»;:`${c2}``>${c1}▄ ${c3}▐ ▓╫╗⌂, .j╬▓█▀▒░░░░░░░░░»»»;:```` ╙▀█▌╬░, ;╗▓█▄▄███████▀░░»»»»;```` ╓▄▄█▄▄φ ██▌Ñ>. .j╣█████▀▀░░░░░░░░»»╓▄▄¿``▄███████/▄████▓╬U. .j╣▓██▀ÜÑ╦╦░░░░░░▐█@▄████⌐▐███████████████▓╬H. «╫▓█▀░ÑÑ╩╦░░░░░░░░▀██████M"▀███████████████▓╫░ :]╣█▌ÑÑÑÑ▄▄██▀░░░░»»██████████████████████████Ñ~ »╫▓█╫ÑÑ▄███▀░░░░░»»▐██████████████████████████▌░ `j╣█▌Ñ╬████░░░░░░░»»▐████████████████████████▌▐█U` `/╫█▌▄███▌░░░░░░░»»»;▀██████████████▀████████w▐█░` ;╟█▌███▌░░░░░░░▄▄»»;:`▀▀████████▀Ü▄████████▌ ▐▌>` `]▓████░░░░░░░░██⌂;:````╓▄▄µp╓▄▄██████████▀ ,█M` "╠╣██▌░░░░░░░»██▌;```` ╙▀██████████████M █▀" "╟╣█░░░░░░░░»███⌂``` ▐▀████████▀░ █▌░` "╩█▄░░░░░░»»▀███ `` └└` ,█▀"` `░▀█▄░░░»»»»████@ .▄█Ü` `╙▀█▄@»»»;`▀███▌¿ ,▄▀Ñ"` `"╨▀█▄▄▄░`▐█████▄, ,▄▄▀▀░` `"╙╩▀▀▀▀████████▓▌▌▌▀▀▀╨"`` ``""░╚╨╝╝╝╝╨╨░""`` EOF ;; "MatuusOS"*) set_colors 9 11 0 read -rd '' ascii_data <<'EOF' ${c2} ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░▒▓▓████▓▒▒░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░▒▓████████████▓░░░░░░░░░░░░░░ ░░░░░░░░░░░░▓████████████████▒░░░░░░░░░░░░ ░░░░░░░░░░░▓██████████████████▒░░░░░░░░░░░ ░░░░░░░░░░▓████▒▓███████▓▓█████░░░░░░░░░░░ ░░░░░░░░░░██████▓░▓████▒░██████▓░░░░░░░░░░ ░░░░░░░░░▒███████▓░▒▓▒░░████████░░░░░░░░░░ ░░░░░░░░░▒█████████▒░░░█████████░░░░░░░░░░ ░░░░░░░░░░██████████▓▒██████████░░░░░░░░░░ ░░░░░░░░░░▓████████████████████▒░░░░░░░░░░ ░░░░░░░░░░░███████████████████▓░░░░░░░░░░░ ░░░░░░░░░░░░█████████████████▓░░░░░░░░░░░░ ░░░░░░░░░░░░░▓██████████████▒░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░▒▓████████▓░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ EOF ;; "BLAG"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} d ,MK: xMMMX: .NMMMMMX; lMMMMMMMM0clodkO0KXWW: KMMMMMMMMMMMMMMMMMMX' .;d0NMMMMMMMMMMMMMMMMMMK. .;dONMMMMMMMMMMMMMMMMMMMMMMx 'dKMMMMMMMMMMMMMMMMMMMMMMMMl .:xKWMMMMMMMMMMMMMMMMMMM0. .:xNMMMMMMMMMMMMMMMMMK. lMMMMMMMMMMMMMMMMMMK. ,MMMMMMMMWkOXWMMMMMM0 .NMMMMMNd. `':ldko OMMMK: oWk, ;: EOF ;; "BlankOn"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c2} `./ohdNMMMMNmho+.` ${c1} .+oo:` ${c2} -smMMMMMMMMMMMMMMMMmy-` ${c1}`yyyyy+ ${c2} `:dMMMMMMMMMMMMMMMMMMMMMMd/` ${c1}`yyyyys ${c2} .hMMMMMMMNmhso/++symNMMMMMMMh- ${c1}`yyyyys ${c2} -mMMMMMMms-` -omMMMMMMN-${c1}.yyyyys ${c2}.mMMMMMMy. .yMMMMMMm:${c1}yyyyys ${c2}sMMMMMMy `sMMMMMMh${c1}yyyyys ${c2}NMMMMMN: .NMMMMMN${c1}yyyyys ${c2}MMMMMMm. NMMMMMN${c1}yyyyys ${c2}hMMMMMM+ /MMMMMMN${c1}yyyyys ${c2}:NMMMMMN: :mMMMMMM+${c1}yyyyys ${c2} oMMMMMMNs- .sNMMMMMMs.${c1}yyyyys ${c2} +MMMMMMMNho:.` `.:ohNMMMMMMNo ${c1}`yyyyys ${c2} -hMMMMMMMMNNNmmNNNMMMMMMMMh- ${c1}`yyyyys ${c2} :yNMMMMMMMMMMMMMMMMMMNy:` ${c1}`yyyyys ${c2} .:sdNMMMMMMMMMMNds/. ${c1}`yyyyyo ${c2} `.:/++++/:.` ${c1}:oys+. EOF ;; "BlueLight"*) set_colors 7 4 read -rd '' ascii_data <<'EOF' ${c1} oMMNMMMMMMMMMMMMMMMMMMMMMM oMMMMMMMMMMMMMMMMMMMMMMMMM oMMMMMMMMMMMMMMMMMMMMMMMMM oMMMMMMMMMMMMMMMMMMMMMMMMM -+++++++++++++++++++++++mM${c2} ```````````````````````..${c1}dM${c2} ```````````````````````....${c1}dM${c2} ```````````````````````......${c1}dM${c2} ```````````````````````........${c1}dM${c2} ```````````````````````..........${c1}dM${c2} ```````````````````````............${c1}dM${c2} .::::::::::::::::::::::-..............${c1}dM${c2} `-+yyyyyyyyyyyyyyyyyyyo............${c1}+mMM${c2} -+yyyyyyyyyyyyyyyyo..........${c1}+mMMMM${c2} ./syyyyyyyyyyyyo........${c1}+mMMMMMM${c2} ./oyyyyyyyyyo......${c1}+mMMMMMMMM${c2} omdyyyyyyo....${c1}+mMMMMMMMMMM${c2} ${c1}oMMM${c2}mdhyyo..${c1}+mMMMMMMMMMMMM oNNNNNNm${c2}dso${c1}mMMMMMMMMMMMMMM EOF ;; "Bodhi"*) set_colors 7 11 2 read -rd '' ascii_data <<'EOF' ${c1}| ${c2},,mmKKKKKKKKWm,, ${c1}' ${c2},aKKP${c1}LL**********|L*${c2}TKp, ${c1}t ${c2}aKP${c1}L**``` ```**L${c2}*Kp IX${c1}EL${c3}L,wwww, ${c1}``*||${c2}Kp ,#P${c1}L|${c3}KKKpPP@IPPTKmw, ${c1}`*||${c2}K ,K${c1}LL*${c3}{KKKKKKPPb$KPhpKKPKp ${c1}`||${c2}K #${c1}PL ${c3}!KKKKKKPhKPPP$KKEhKKKKp ${c1}`||${c2}K !H${c1}L* ${c3}1KKKKKKKphKbPKKKKKK$KKp ${c1}`|I${c2}W $${c1}bL ${c3}KKKKKKKKBQKhKbKKKKKKKK ${c1}|I${c2}N $${c1}bL ${c3}!KKKKKKKKKKNKKKKKKKPP` ${c1}|I${c2}b TH${c1}L* ${c3}TKKKKKK##KKKN@KKKK^ ${c1}|I${c2}M K@${c1}L ${c3}*KKKKKKKKKKKEKE5 ${c1}||${c2}K `NL${c1}L ${c3}`KKKKKKKKKK"```|L ${c1}||${c2}#P `K@${c1}LL ${c3}`"**"` ${c1}'. :||${c2}#P Yp${c1}LL ${c1}' |L${c2}$M` `Tp${c1}pLL, ,|||${c2}p'L "Kpp${c1}LL++,., ,,|||$${c2}#K* ${c1}'. ${c2}`"MKWpppppppp#KM"` ${c1}`h, EOF ;; "bonsai"*) set_colors 6 2 3 read -rd '' ascii_data <<'EOF' ${c2} ,####, ${c2}#######, ${c2},#####, ${c2}#####',# ${c2}'###### ${c2}''###'${c3}';,,,'${c2}###' ${c3} ,; '''' ${c3} ;;; ${c2},#####, ${c3} ;;;' ,,;${c2};;### ${c3} ';;;;''${c2}'####' ${c3} ;;; ${c3} ,.;;';'',,, ${c3} ' ' ${c1} # # O ##, ,##,',##, ,## ,#, , # # # # #''# #,, # # # '#' '##' # # ,,# '##;, # EOF ;; "BSD") set_colors 1 7 4 3 6 read -rd '' ascii_data <<'EOF' ${c1} , , /( )` \ \___ / | /- _ `-/ ' (${c2}/\/ \ ${c1}\ /\ ${c2}/ / | ` ${c1}\ ${c3}O O ${c2}) ${c1}/ | ${c2}`-^--'${c1}`< ' (_.) _ ) / `.___/` / `-----' / ${c4}<----. __ / __ \ ${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====| <----' ${c1}`--' `.__,' \ | | \ / /\ ${c5}______${c1}( (_ / \______/ ${c5},' ,-----' | `--{__________) EOF ;; "BunsenLabs"*) set_colors fg 7 read -rd '' ascii_data <<'EOF' ${c1} `++ -yMMs `yMMMMN` -NMMMMMMm. :MMMMMMMMMN- .NMMMMMMMMMMM/ yMMMMMMMMMMMMM/ `MMMMMMNMMMMMMMN. -MMMMN+ /mMMMMMMy -MMMm` `dMMMMMM `MMN. .NMMMMM. hMy yMMMMM` -Mo +MMMMN /o +MMMMs +MMMN` hMMM: `NMM/ +MN: mh. -/ EOF ;; "CachyOS"*) set_colors 2 8 6 read -rd '' ascii_data <<'EOF' ${c3} ${c2}.${c3}-------------------------: ${c3} .${c1}+=${c3}========================. ${c3} :${c1}++${c3}===${c1}++===${c3}===============- :${c1}++${c3}- ${c3} :${c1}*++${c3}====${c1}+++++==${c3}===========- .==: ${c3} -${c1}*+++${c3}=====${c1}+***++=${c3}=========: ${c3} =${c1}*++++=${c3}=======------------: ${c3} =${c1}*+++++=${c3}====- ${c2}...${c3} ${c3} .${c1}+*+++++${c3}=-===: .${c1}=+++=${c3}: ${c3} :${c1}++++${c3}=====-==: -***${c1}**${c3}+ ${c3} :${c1}++=${c3}=======-=. .=+**+${c2}.${c3} ${c3}.${c1}+${c3}==========-. ${c2}.${c3} ${c3} :${c1}+++++++${c3}====- ${c2}.${c3}--==-${c2}.${c3} ${c3} :${c1}++${c3}==========. ${c2}:${c1}+++++++${c3}${c2}: ${c3} .-===========. =*****+*+ ${c3} .-===========: .+*****+: ${c3} -=======${c1}++++${c3}:::::::::::::::::::::::::-: ${c2}.${c3}---: ${c3} :======${c1}++++${c3}====${c1}+++******************=. ${c3} :=====${c1}+++${c3}==========${c1}++++++++++++++*- ${c3} .====${c1}++${c3}==============${c1}++++++++++*- ${c3} .===${c1}+${c3}==================${c1}+++++++: ${c3} .-=======================${c1}+++: ${c3} ${c2}.......................... EOF ;; "Calculate"*) set_colors 7 3 read -rd '' ascii_data <<'EOF' ${c1} ...... ,,+++++++,. .,,,....,,,${c2}+**+,,.${c1} ............,${c2}++++,,,${c1} ............... ......,,,........ .....+*#####+,,,*+. .....,*###############,..,,,,,,.. ......,*#################*..,,,,,..,,,.. .,,....*####################+***+,,,,...,++, .,,..,..*#####################*, ,+,.+*..*#######################. ,+,,+*+..,########################* .,++++++. ..+##**###################+ ..... ..+##***#################*. .,.*#*****##############*. ..,,*********#####****+. ${c2}.,++*****+++${c1}*****************${c2}+++++,.${c1} ${c2},++++++**+++++${c1}***********${c2}+++++++++,${c1} ${c2}.,,,,++++,.. .,,,,,.....,+++,.,,${c1} EOF ;; "Carbs"*) set_colors 4 5 4 4 4 4 read -rd '' ascii_data <<'EOF' ${c2} .......... ..,;:ccccccc:;'.. ..,clllc:;;;;;:cllc,. .,cllc,... ..';;'. .;lol;.. .. .,lol;. .coo:. .'lol,. .,lol,. .,lol,. 'col;. .:ooc'. .'col:. .'cllc'.. .''. ..:lolc,'.......',cll,. ..;cllllccccclllc;'. ...',;;;;;;,,... ..... EOF ;; "CalinixOS") # set_colors 4 5 4 4 4 4 set_colors 5 4 read -rd '' ascii_data <<'EOF' ${c2} ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⠤⠔⠒⠒⠋⠉⠉⠉⠉⠓⠒⠒⠦⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠒⠉⣁⣠⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣄⣈⠙⠲⢤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠴⠋⢁⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡈⠑⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⣠⠞⢁⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⢀⠞⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠋⠉⠁⠀⠀⠀⠀⠈⠉⠙⠛⠿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠈⢢⡀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⡰⠃⣠⣾⣿⣿⣿⣿⣿⣿⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⢿⡿⠁⠀⠀⠀⠀⠀⠀⠙⣄⠀⠀⠀⠀ ⠀⠀⠀⡼⠁⣴⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀ ⠀⠀⡼⠀⣼⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠀⠀ ⠀⣰⠁⣸⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀ ⢀⡇⢠⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀ ⢸⠀⣸⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄ ⣼⠀⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⡇⠀⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢛⣿⣿⣿⣿⣿⣿⣿⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⢻⠀⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⢸⡀⢹⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃ ⠀⣇⠘⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠀ ⠀⠸⡄⢹⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃⠀ ⠀⠀⢳⡀⢻⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠀⠀ ⠀⠀⠀⠳⡀⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣷⣄⡀⠀⠀⠀⠀⢠⠏⠀⠀⠀ ⠀⠀⠀⠀⠙⣄⠙⢿⣿⣿⣿⣿⣿⣿⣷⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣦⡀⠀⡰⠃⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠈⠢⡈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣄⣀⡀⠀⠀⠀⠀⢀⣀⣠⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣠⠞⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠈⠢⡈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⣡⠞⠁⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢤⡈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⣁⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠢⢄⣉⠙⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠋⣉⡤⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠓⠒⠢⠤⠤⠤⠤⠤⠤⠤⠤⠖⠒⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ EOF ;; "CalinixOS_small"*) # set_colors 4 5 4 4 4 4 set_colors 5 4 read -rd '' ascii_data <<'EOF' ${c2} ⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠐⣂⣈⣩⣭⣭⣍⣀⣐⠀⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⡀⠔⣨⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣅⠢⡀⠀⠀⠀⠀⠀ ⠀⠀⠀⠠⢊⣴⣾⣿⣿⣿⣿⠿⠟⠛⠛⠛⠛⠻⠿⣿⣿⣿⣿⠃⠀⠠⡀⠀⠀⠀ ⠀⠀⡐⢡⣾⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠁⠀⠀⠀⠈⢆⠀⠀ ⠀⡘⢰⣿⣿⣿⡟⠁⠀⠀⢀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀ ⢠⢠⣿⣿⣿⡟⠀⠀⠀⠀⠀⠙⠿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡀ ⡄⢸⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁ ⡇⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣹⣿⣿⣿⣷⠄⠀⠀⠀⠀⠀⠀⠀⠀ ⠃⢸⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⡀ ⠘⡘⣿⣿⣿⣧⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠁ ⠀⠡⠸⣿⣿⣿⣧⡀⠀⠀⠀⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⢀⠆⠀ ⠀⠀⠡⡘⢿⣿⣿⣿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣷⣦⡀⢀⠊⠀⠀ ⠀⠀⠀⠈⠊⡻⢿⣿⣿⣿⣿⣶⣤⣤⣤⣤⣤⣤⣶⣿⣿⣿⣿⡿⢟⠕⠁⠀⠀⠀ ⠀⠀⠀⠀⠀⠈⠢⢙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⡩⠐⠁⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠂⠭⠉⠙⣛⣛⠋⠉⠭⠐⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ EOF ;; "CBL-Mariner"*) set_colors 6 read -rd '' ascii_data <<'EOF' ${c1} . :- . :==. .=: :===: -==: :-===: .====: :-====- -=====: -====== :=======: -======. .=========: -======: -==========. -======- -===========. :======- :===========. :=======. .-==========. :=======: -==========. :=======- :==========. :=======- .-========- :--------. :========- ..:::--=========- ..::---================-=- EOF ;; "CelOS"*) set_colors 4 6 0 5 read -rd '' ascii_data <<'EOF' ${c4} .,cmmmmmmmmmmmc,. .,cmMMMMMMMMMMMMMMMMMMMMmc. .cMMMMMMMMMMMMMMMMMMMMMMMMMMMmc. .cMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc. ,:MMM ${c3}####################################${c4} cMMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmc. .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM. .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMc "******************************MMMMMMMMMMMMMc: ${c3}#################################### ${c4}MMMMMMMMMMMMMc "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" 'MMMMMMMMM*******************************: \"MMMMMM ${c3}##################################### ${c4}`:MMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmm; `"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" `":MMMMMMMMMMMMMMMMMMMMMMMMM;' `":MMMMMMMMMMMMMMMMMMM:" "************" EOF ;; "centos_small"*) set_colors 3 2 4 5 7 read -rd '' ascii_data <<'EOF' ${c2} ____${c1}^${c4}____ ${c2} |\\ ${c1}|${c4} /| ${c2} | \\ ${c1}|${c4} / | ${c4}<---- ${c3}----> ${c3} | / ${c2}|${c1} \\ | ${c3} |/__${c2}|${c1}__\\| ${c2} v EOF ;; "CentOS"*) set_colors 3 2 4 5 7 read -rd '' ascii_data <<'EOF' ${c1} .. .PLTJ. <><><><> ${c2}KKSSV' 4KKK ${c1}LJ${c4} KKKL.'VSSKK ${c2}KKV' 4KKKKK ${c1}LJ${c4} KKKKAL 'VKK ${c2}V' ' 'VKKKK ${c1}LJ${c4} KKKKV' ' 'V ${c2}.4MA.' 'VKK ${c1}LJ${c4} KKV' '.4Mb. ${c4} . ${c2}KKKKKA.' 'V ${c1}LJ${c4} V' '.4KKKKK ${c3}. ${c4} .4D ${c2}KKKKKKKA.'' ${c1}LJ${c4} ''.4KKKKKKK ${c3}FA. ${c4} ${c4} 'VD ${c3}KKKKKKKK'.. ${c2}LJ ${c1}..'KKKKKKKK ${c3}FV ${c4} ' ${c3}VKKKKK'. .4 ${c2}LJ ${c1}K. .'KKKKKV ${c3}' ${c3} 'VK'. .4KK ${c2}LJ ${c1}KKA. .'KV' ${c3}A. . .4KKKK ${c2}LJ ${c1}KKKKA. . .4 ${c3}KKA. 'KKKKK ${c2}LJ ${c1}KKKKK' .4KK ${c3}KKSSA. VKKK ${c2}LJ ${c1}KKKV .4SSKK ${c2} <><><><> 'MKKM' '' EOF ;; "Center"*) set_colors 7 7 read -rd '' ascii_data <<'EOF' ${c2} . o, . d, . ';' ..d;.. .cl' .:; 'oldO,.oo. ..,:,xKXxoo;'. ,;;;;;ldxkONMMMXxkxc;;;;;. .....':oddXWMNOxlcl:...... .:dlxk0c;:. . :d:.,xcld,.,:. ;l, .l; ';' .o; l, 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 ;; "Chimera"*) set_colors 1 5 4 1 read -rd '' ascii_data <<'EOF' ${c3}ddddddddddddddc ${c1},cc: ${c3}ddddddddddddddc ${c1},cc: ${c3}ddddddddddddddd ${c1},cc: ${c3}ddddddddddddl:' ${c1},cc: ${c3}dddddddddl' ${c1}..;cc: ${c3}dddddddo. ${c1},:cccccc: ${c3}ddddddl ${c1},ccc:''''' ${c3}dddddo. ${c1};ccc. ............ .ccc. cccccccccccc ${c2}...... ${c1}.ccc. .ccc''''''''' ${c2}OOOOOk. ${c1};ccc. .ccc; ...... ${c2}OOOOOOd ${c1}'ccc:,....,:ccc' ${c4}coooooo ${c2}OOOOOOOx. ${c1}':cccccccc:' ${c4}.looooooo ${c2}OOOOOOOOOd, ${c1}`'''` ${c4}.coooooooo ${c2}OOOOOOOOOOOOdc,. ${c4}..,coooooooooooo ${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo ${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo ${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo EOF ;; "ChonkySealOS"*) set_colors 7 read -rd '' ascii_data <<'EOF' ${c1} .-/-. .:-=++****++=-:. .:=+*##%%%%%%%%%%##*+=:. :=*#%%%%%%%%%%%%%%%%%%%%#*=: :=*#%%%%%%%%%%%%%%%%%%%%%%%%#*=. -+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+- =+#%%%%@@@@@@@%%%%%%%@@@@@@@%%%%%#+= =+#@%%%%*+=-==*%%%%%%%#+====*%%%%%@#+= :+*%%%%@* +@%%%@# -@%%%%%*+: =+#%%%%%%#+====*###%%##*=--=+*%%%%%%%#+= +*%%%%%%%@@##%%%%*=::=#%%%##%@%%%%%%%%*+ +*%%%%%%%@**@%%%%%@==@%%%%%@+#%%%%%%%%*+ =+#%%%%%%@#*@%%%%%%**%%%%%@%+%%%%%%%%#+= :+*%%%%%%%@#*####**###*####*%@%%%%%%%*+: =+#@%%%%%%@%%%%%%%@@%%%%%%%%%%%%%%@#+= =+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#+= -+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%*+- .=*#%%%%%%%%%%%%%%%%%%%%%%%%#*=. :=*##%%%%%%%%%%%%%%%%%%##*=: .:=+*##%%%%%%%%%%##*+=:. .:-=++****++=-:. EOF ;; "Chrom"*) set_colors 2 1 3 4 7 read -rd '' ascii_data <<'EOF' ${c2} .,:loool:,. .,coooooooooooooc,. .,lllllllllllllllllllll,. ;ccccccccccccccccccccccccc; ${c1} '${c2}ccccccccccccccccccccccccccccc. ${c1} ,oo${c2}c::::::::okO${c5}000${c3}0OOkkkkkkkkkkk: ${c1}.ooool${c2};;;;:x${c5}K0${c4}kxxxxxk${c5}0X${c3}K0000000000. ${c1}:oooool${c2};,;O${c5}K${c4}ddddddddddd${c5}KX${c3}000000000d ${c1}lllllool${c2};l${c5}N${c4}dllllllllllld${c5}N${c3}K000000000 ${c1}lllllllll${c2}o${c5}M${c4}dccccccccccco${c5}W${c3}K000000000 ${c1};cllllllllX${c5}X${c4}c:::::::::c${c5}0X${c3}000000000d ${c1}.ccccllllllO${c5}Nk${c4}c;,,,;cx${c5}KK${c3}0000000000. ${c1} .cccccclllllxOO${c5}OOO${c1}Okx${c3}O0000000000; ${c1} .:ccccccccllllllllo${c3}O0000000OOO, ${c1} ,:ccccccccclllcd${c3}0000OOOOOOl. ${c1} '::ccccccccc${c3}dOOOOOOOkx:. ${c1} ..,::cccc${c3}xOOOkkko;. ${c1} ..,:${c3}dOkxl:. EOF ;; "cleanjaro_small"*) set_colors 7 7 read -rd '' ascii_data <<'EOF' ${c1}█████ ██████████ █████ ██████████ █████ █████ █████ ████████████████ ████████████████ EOF ;; "Cleanjaro"*) set_colors 7 7 read -rd '' ascii_data <<'EOF' ${c1}███████▌ ████████████████ ███████▌ ████████████████ ███████▌ ████████████████ ███████▌ ███████▌ ███████▌ ███████▌ ███████▌ █████████████████████████ █████████████████████████ █████████████████████████ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ EOF ;; "ClearOS"*) set_colors 2 read -rd '' ascii_data <<'EOF' ${c1} `.--::::::--.` .-:////////////////:-. `-////////////////////////-` -////////////////////////////- `//////////////-..-//////////////` ./////////////: ://///////////. `//////:..-////: :////-..-//////` ://////` -///:.``.:///-` ://///: `///////:. -////////-` `:///////` .//:--////:. -////-` `:////--://. ./: .////:. --` `:////- :/. `//-` .////:. `:////- `-//` :///-` .////:. `:////- `-///: `/////-` -///: :///- `-/////` `//////- `///: :///` .//////` `:////: `///: :///` -////:` .://: `///: :///` -//:. .:: `///: :///` -:. `///: :///` `... ...` EOF ;; "Clear Linux OS"* | "Clear_Linux"*) set_colors 4 3 7 6 read -rd '' ascii_data <<'EOF' ${c1} BBB BBBBBBBBB BBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBB BBBBBBBBBBB BBB BBBBBBBB${c2}YYYYY ${c1} BBBBBBBB${c2}YYYYYY ${c1} BBBBBBBB${c2}YYYYYYY ${c1} BBBBBBBBB${c2}YYYYY${c3}W ${c4} GG${c1}BBBBBBBY${c2}YYYY${c3}WWW ${c4} GGG${c1}BBBBBBB${c2}YY${c3}WWWWWWWW ${c4} GGGGGG${c1}BBBBBB${c3}WWWWWWWW ${c4} GGGGGGGG${c1}BBBB${c3}WWWWWWWW ${c4}GGGGGGGGGGG${c1}BBB${c3}WWWWWWW ${c4}GGGGGGGGGGGGG${c1}B${c3}WWWWWW ${c4}GGGGGGGG${c3}WWWWWWWWWWW ${c4}GG${c3}WWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWW WWWWWWWWWW WWW EOF ;; "Clover"*) set_colors 2 6 read -rd '' ascii_data <<'EOF' ${c1} `omo``omo` `oNMMMNNMMMNo` `oNMMMMMMMMMMMMNo` oNMMMMMMMMMMMMMMMMNo `sNMMMMMMMMMMMMMMNs` `omo` `sNMMMMMMMMMMNs` `omo` `oNMMMNo` `sNMMMMMMNs` `oNMMMNo` `oNMMMMMMMNo` `oNMMNs` `oNMMMMMMMNo` oNMMMMMMMMMMMNo` `sy` `oNMMMMMMMMMMMNo `sNMMMMMMMMMMMMNo.${c2}oNNs${c1}.oNMMMMMMMMMMMMNs` `oNMMMMMMMMMMMMNs.${c2}oNNs${c1}.oNMMMMMMMMMMMMNo` oNMMMMMMMMMMMNs` `sy` `oNMMMMMMMMMMMNo `oNMMMMMMMNs` `oNMMNo` `oNMMMMMMMNs` `oNMMMNs` `sNMMMMMMNs` `oNMMMNs` `oNs` `sNMMMMMMMMMMNs` `oNs` `sNMMMMMMMMMMMMMMNs` +NMMMMMMMMMMMMMMMMNo `oNMMMMMMMMMMMMNo` `oNMMMNNMMMNs` `omo``oNs` EOF ;; "Condres"*) set_colors 2 3 6 read -rd '' ascii_data <<'EOF' ${c1}syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+${c3}.+. ${c1}`oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+${c3}:++. ${c2}/o${c1}+oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/${c3}oo++. ${c2}/y+${c1}syyyyyyyyyyyyyyyyyyyyyyyyyyyyy${c3}+ooo++. ${c2}/hy+${c1}oyyyhhhhhhhhhhhhhhyyyyyyyyy${c3}+oo+++++. ${c2}/hhh+${c1}shhhhhdddddhhhhhhhyyyyyyy${c3}+oo++++++. ${c2}/hhdd+${c1}oddddddddddddhhhhhyyyys${c3}+oo+++++++. ${c2}/hhddd+${c1}odmmmdddddddhhhhyyyy${c3}+ooo++++++++. ${c2}/hhdddmo${c1}odmmmdddddhhhhhyyy${c3}+oooo++++++++. ${c2}/hdddmmms${c1}/dmdddddhhhhyyys${c3}+oooo+++++++++. ${c2}/hddddmmmy${c1}/hdddhhhhyyyyo${c3}+oooo++++++++++: ${c2}/hhdddmmmmy${c1}:yhhhhyyyyy+${c3}+oooo+++++++++++: ${c2}/hhddddddddy${c1}-syyyyyys+${c3}ooooo++++++++++++: ${c2}/hhhddddddddy${c1}-+yyyy+${c3}/ooooo+++++++++++++: ${c2}/hhhhhdddddhhy${c1}./yo:${c3}+oooooo+++++++++++++/ ${c2}/hhhhhhhhhhhhhy${c1}:-.${c3}+sooooo+++++++++++///: ${c2}:sssssssssssso++${c1}${c3}`:/:--------.```````` EOF ;; "Container Linux by CoreOS"* | "Container_Linux"* | "Fedora CoreOS" | "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" | KISS*) set_colors 4 5 7 6 read -rd '' ascii_data <<'EOF' ${c1} ___ (${c3}.· ${c1}| (${c2}<> ${c1}| / ${c3}__ ${c1}\\ ( ${c3}/ \\ ${c1}/| ${c2}_${c1}/\\ ${c3}__)${c1}/${c2}_${c1}) ${c2}\/${c1}-____${c2}\/ EOF ;; "CRUX"*) set_colors 4 5 7 6 read -rd '' ascii_data <<'EOF' ${c1} odddd oddxkkkxxdoo ddcoddxxxdoool xdclodod olol xoc xdd olol xdc ${c2}k00${c1}Okdlol xxd${c2}kOKKKOkd${c1}ldd xdco${c2}xOkdlo${c1}dldd ddc:cl${c2}lll${c1}oooodo odxxdd${c3}xkO000kx${c1}ooxdo oxdd${c3}x0NMMMMMMWW0od${c1}kkxo oooxd${c3}0WMMMMMMMMMW0o${c1}dxkx docldkXW${c3}MMMMMMMWWN${c1}Odolco xx${c2}dx${c1}kxxOKN${c3}WMMWN${c1}0xdoxo::c ${c2}xOkkO${c1}0oo${c3}odOW${c2}WW${c1}XkdodOxc:l ${c2}dkkkxkkk${c3}OKX${c2}NNNX0Oxx${c1}xc:cd ${c2} odxxdx${c3}xllod${c2}ddooxx${c1}dc:ldo ${c2} lodd${c1}dolccc${c2}ccox${c1}xoloo EOF ;; *"Crystal Linux"*) set_colors 13 5 read -rd '' ascii_data <<'EOF' ${c1} mysssym ${c1} mysssym ${c1} mysssym ${c1} mysssym ${c1} mysssyd ${c1} mysssyd N ${c1} mysssyd mysym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysssyd dysssym ${c1} mysym dysssym ${c1} N dysssym ${c1} dysssym ${c1} dysssym ${c1} dysssym ${c1} dysssym ${c1} dysssym EOF ;; *"Cucumber"*) set_colors 2 3 read -rd '' ascii_data <<'EOF' ${c1} `.-://++++++//:-.` `:/+//${c2}::--------${c1}:://+/:` -++/:${c2}----..........----${c1}:/++- .++:${c2}---...........-......---${c1}:++. /+:${c2}---....-::/:/--//:::-....---${c1}:+/ `++:${c2}--.....:---::/--/::---:.....--${c1}:++` /+:${c2}--.....--.--::::-/::--.--.....--${c1}:+/ -o:${c2}--.......-:::://--/:::::-.......--${c1}:o- /+:${c2}--...-:-::---:::..:::---:--:-...--${c1}:+/ o/:${c2}-...-:.:.-/:::......::/:.--.:-...-${c1}:/o o/${c2}--...::-:/::/:-......-::::::-/-...-${c1}:/o /+:${c2}--..-/:/:::--:::..:::--::////-..--${c1}:+/ -o:${c2}--...----::/:::/--/:::::-----...--${c1}:o- /+:${c2}--....://:::.:/--/:.::://:....--${c1}:+/ `++:${c2}--...-:::.--.:..:.--.:/:-...--${c1}:++` /+:${c2}---....----:-..-:----....---${c1}:+/ .++:${c2}---..................---${c1}:++. -/+/:${c2}----..........----${c1}:/+/- `:/+//${c2}::--------:::${c1}/+/:` `.-://++++++//:-.` EOF ;; "CutefishOS"*) set_colors 6 7 4 read -rd '' ascii_data <<'EOF' ${c1} ___ww___ _ _wwMMM@M^^^^MMMMww_ M0w_ _wMMM~~ ~~MMm_ ~MMy _ww0M~ ~MMy ~MMMM~ o "MM ${c3} jw0M~~MMMw_ _wMM' wMM~ ~~MMmw__ __w0M~ ~ ~~MM0MmwwwwwwwwwMMM~ ~~~~^^~~~ EOF ;; "CuteOS"*) set_colors 33 50 57 read -rd '' ascii_data <<'EOF' ${c2} ${c3}1ua${c2} ${c3}MMM1ua${c2} ${c1}MM${c2}EE ${c3} MMMMM1uazE${c2} ${c1}MM ${c2}EEEE ${c3}M1MM1uazzEn ${c2}EEEE MME EEEEE ${c3}MMM uazEno ${c2}EEEE EEEEE${c1}MMMMMMEno~; ${c2}EE E${c2} EE ${c1}MMMMMMMM~;;E ${c2}MMMMM M ${c2} E ${c1}MMMMMMMMM ${c2} E E ${c2} ${c1}MMMMMMMMMMM ${c1}MMMMMMMMM ${c2}EE ${c1} MM1MMMM ${c2}EEE ${c1} MMMMM MMM M EOF ;; "CyberOS"*) set_colors 50 32 57 read -rd '' ascii_data <<'EOF' ${c3} !M$EEEEEEEEEEEP .MMMMM000000Nr. ${c3}&MMMMMM${c2}MMMMMMMMMMMMM9 ${c3}~MMM${c1}MMMM${c2}MMMMMMMMMMMMC ${c1}" ${c3}M${c1}MMMMMMM${c2}MMMMMMMMMMs ${c1}iM${c2}MMM&&${c1}MMMMMMMM${c2}MMMMMMMM\\ ${c1}BMMM${c2}MMMMM${c1}MMMMMMM${c2}MMMMMM${c3}" ${c1}9MMMMM${c2}MMMMMMM${c1}MMMM${c2}MMMM${c3}MMMf- ${c2}sMMMMMMMM${c1}MM${c2}M${c3}MMMMMMMMM3_ ${c2}+ffffffff${c1}P${c3}MMMMMMMMMMMM0 ${c2}CMMMMMMMMMMM }MMMMMMMMM ~MMMMMMM "RMMMM .PMB EOF ;; "dahlia"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} .#. *%@@@%* .,,,,,(&@@@@@@@&/,,,,,. ,#@@@@@@@@@@@@@@@@@@@@@#. ,#@@@@@@@&#///#&@@@@@@@#. ,/%&@@@@@%/, .,(%@@@@@&#/. *#&@@@@@@#,. .*#@@@@@@&#, .&@@@@@@@@@( .(@@@@@@@@@&&. #@@@@@@@@@@( )@@@@@@@@@@@# °@@@@@@@@@@( .(@@@@@@@@@@@° *%@@@@@@@(. ,#@@@@@@@%* ,(&@@@@@@%*. ./%@@@@@@%(, ,#@@@@@@@&(***(&@@@@@@@#. ,#@@@@@@@@@@@@@@@@@@@@@#. ,*****#&@@@@@@@&(*****, ,/%@@@%/. ,#, EOF ;; "debian_small") set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} _____ / __ \\ | / | | \\___- -_ --_ EOF ;; "Debian"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c2} _,met$$$$$gg. ,g$$$$$$$$$$$$$$$P. ,g$$P" """Y$$.". ,$$P' `$$$. ',$$P ,ggs. `$$b: `d$$' ,$P"' ${c1}.${c2} $$$ $$P d$' ${c1},${c2} $$P $$: $$. ${c1}-${c2} ,d$$' $$; Y$b._ _,d$P' Y$$. ${c1}`.${c2}`"Y$$$$P"' ${c2} `$$b ${c1}"-.__ ${c2} `Y$$ `Y$$. `$$b. `Y$$b. `"Y$b._ `""" EOF ;; "digital UNIX"*) set_colors 1 6 7 read -rd '' ascii_data <<'EOF' ${c1} +-+-+-+-+-+-+-+ |${c3}d${c1}|${c3}i${c1}|${c3}g${c1}|${c3}i${c1}|${c3}t${c1}|${c3}a${c1}|${c3}l${c1}| +-+-+-+-+-+-+-+ ${c2} _ _ _ _ _______ __ | | | | \\ | |_ _\\ \\ / / | | | | \\| | | | \\ V / | | | | . ` | | | > < | |__| | |\\ |_| |_ / . \\ \\____/|_| \\_|_____/_/ \\_\\ EOF ;; "Droidian"*) set_colors 2 10 read -rd '' ascii_data <<'EOF' ${c2} _,met$$$$$gg. ,g$$$$$$$$$$$$$$$$P. ,$$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 ;; "openKylin"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} /KKK] KKKKKKK` ]KKKK\ KKKKK/ /KKKKKKKKK\ KKKK/ ,KKKKKKKKKKKK^ ,]KKK =KKK` /KKKKKKOOOOOO` ,KKKKKK =KK /` [\OOOOOOO\ \KKKKK =K ,OOOOOOO` ,KKKKK =^ \OOOOOO ,KKKK ^ OOOOOO^ *KKK^ =OOOOO^ OOKK^ OOOOOO^ \OOOK\ /OOOOOO` OOOOOO] ,OOOOOOO^ ,OOOOOOOO\] ,[OOOOOOOOO/ \OOOOOOOOOOOOOOOOOOOOO` [OOOOOOOOOOOOOOOO/` ,[OOOOOOOOO] 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 ;; "DietPi"*) set_colors 2 0 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}#${c2}%@%%%%@%@@@@. +@@@@@@@@@${c1}%${c2}=*+${c1}%${c2}@%@@@@@@@@+ #@@@@@@@@@@@@@@@@@@@@@@# -#@@@@@@@@@@@@@@@@@@#- -*%@@@@@@@@@@%*- .+%@@@@%+. EOF ;; "DracOS"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} `-:/- -os: -os/` :sy+-` `/yyyy+. `+yyyyo- `/yyyys: `:osssoooo++- +yyyyyy/` ./yyyyyyo yo`:syyyy+. -oyyy+ +- :yyyyyo- `:sy: `. `/yyyyys: ./o/.` .oyyso+oo:` :+oo+//::::///:-.` `.` EOF ;; "DarkOs") set_colors 1 6 5 3 2 read -rd '' ascii_data <<'EOF' ${c3}⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⠋⡆⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡆⢀⣤⢛⠛⣠⣿⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣿⠟⣡⠊⣠⣾⣿⠃⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣯⣿⠀⠊⣤⣿⣿⣿⠃⣴⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⡟⣠⣶⣿⣿⣿⢋⣤⠿⠛⠉⢁⣭⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c4} ⠀⠀⠀⠀⠀⠀ ⠀⣠⠖⡭⢉⣿⣯⣿⣯⣿⣿⣿⣟⣧⠛⢉⣤⣶⣾⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⣴⣫⠓⢱⣯⣿⢿⠋⠛⢛⠟⠯⠶⢟⣿⣯⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c2}⠀⠀⠀⠀⠀⠀⢀⡮⢁⣴⣿⣿⣿⠖⣠⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠛⠛⢿⣶⣄⠀⠀⠀⠀⠀⠀⠀ ${c3}⠀⠀⠀⠀⢀⣤⣷⣿⣿⠿⢛⣭⠒⠉⠀⠀⠀⣀⣀⣄⣤⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀ ${c1}⠀⢀⣶⠏⠟⠝⠉⢀⣤⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c6}⢴⣯⣤⣶⣿⣿⣿⣿⣿⡿⣿⣯⠉⠉⠉⠉⠀⠀⠀⠈⣿⡀⣟⣿⣿⢿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠉⠛⣿⣧⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠃⣿⣿⣯⣿⣦⡀⠀⠉⠻⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c3}⠀⠀⠀⠀⠀⠀⠉⢿⣮⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⣯⠉⠉⠛⢿⣿⣷⣄⠀⠈⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀ ${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠀⠀⠀⠀⠀⢀⢡⠃⣾⣿⣿⣦⠀⠀⠀⠙⢿⣿⣤⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀ ${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋⢿⣄⠀⠀⠀⠈⡄⠙⣶⣈⡄⠀⠀⠀⠀⠀⠀ ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀ ${c4}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c3}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ EOF ;; "Itc"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1}....................-==============+... ${c1}....................-==============:... ${c1}...:===========-....-==============:... ${c1}...-===========:....-==============-... ${c1}....*==========+........-::********-... ${c1}....*===========+.:*====**==*+-.-...... ${c1}....:============*+-..--:+**====*---... ${c1}......::--........................::... ${c1}..+-:+-.+::*:+::+:-++::++-.:-.*.:++:++. ${c1}..:-:-++++:-::--:+::-::.:++-++:++--:-:. ⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ EOF ;; "dragonfly_old"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} .-. ${c3} ()${c1}I${c3}() ${c1} "==.__:-:__.==" "==.__/~|~\__.==" "==._( Y )_.==" ${c2}.-'~~""~=--...,__${c1}\/|\/${c2}__,...--=~""~~'-. ( ..=${c1}\\=${c1}/${c2}=.. ) `'-. ,.-"`;${c1}/=\\${c2};"-.,_ .-'` `~"-=-~` .-~` ${c1}|=|${c2} `~-. `~-=-"~` .-~` /${c1}|=|${c2}\ `~-. .~` / ${c1}|=|${c2} \ `~. .-~` .' ${c1}|=|${c2} `. `~-. (` _,.-="` ${c1} |=|${c2} `"=-.,_ `) `~"~"` ${c1} |=|${c2} `"~"~` ${c1} /=\\ \\=/ ^ EOF ;; "dragonfly_small"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c2} ,${c1}_${c2}, ('-_${c1}|${c2}_-') >--${c1}|${c2}--< (_-'${c1}|${c2}'-_) ${c1}| | | EOF ;; "DragonFly"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c2},--, ${c1}| ${c2},--, ${c2}| `-, ${c1},^, ${c2},-' | ${c2} `, `-, ${c3}(/ \) ${c2},-' ,' ${c2} `-, `-,${c1}/ \${c2},-' ,-' ${c2} `------${c1}( )${c2}------' ${c2} ,----------${c1}( )${c2}----------, ${c2} | _,-${c1}( )${c2}-,_ | ${c2} `-,__,-' ${c1}\ /${c2} `-,__,-' ${c1} | | | | | | | | | | | | `|' EOF ;; "Drauger"*) set_colors 1 7 read -rd '' ascii_data <<'EOF' ${c1} -``- `:+``+:` `/++``++/. .++/. ./++. :++/` `/++: `/++: :++/` ./+/- -/+/. -++/. ./++- :++:` `:++: `/++- -++/` ./++. ./+/. -++/` `/++- :++:` `:++: `/++- -++/` .:-.`..............................`.-:. `.-/++++++++++++++++++++++++++++++++/-.` EOF ;; "elementary_small"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} _______ / ____ \\ / | / /\\ |__\\ / / | \\ /__/ / \\_______/ EOF ;; "Elementary"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} eeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeee eeeee eeeeeeeeeeee eeeee eeee eeeee eee eeee eeee eeee eee eeee eee eee eee eee eee eee eee eee ee eee eeee eeee ee eee eeeee eeeeee ee eee eeeee eeeee ee eee eeee eeeeee eeeee eee eee eeeeeeeeee eeeeee eee eeeeeeeeeeeeeeeeeeeeeeee eeeee eeeeeeee eeeeeeeeeeee eeee eeeee eeeee eeeeeee eeeeeee eeeeeeeeeeeeeeeee EOF ;; "Elive"*) set_colors 7 6 6 read -rd '' ascii_data <<'EOF' ${c1} *@${c2},,&(%%%..%*. ${c1}(@${c2}&%/##############((/${c1}*, ${c2}@${c1}@&${c2}#########${c1}*..../${c2}########%${c1}*.. ${c2}@${c1}&${c2}#%%%%%. ${c3},.${c1},${c2}%%%%%%. /%${c2}(%%%%. ${c1}(${c2}%%%%#. /${c1}*${c2}%%##,. .,%%###, ,####. ,${c1}*${c2}#%${c1}#${c3}/,(/ ${c2}/${c1}#${c2}###, ((###/ ,,##########${c1}(${c3}/(# ${c2}%####, %#(((${c1}. .${c1}./${c2}((((((((((((((${c1}(${c2}#/${c3}*.. ${c3}*.${c2}(((${c1}/ ${c2}%#///${c1}. ${c3}***${c2}.*///////////// ${c3}#${c2}#////* ${c3}***${c2}.*/////. ${c3}(${c2}(***** ${c3}*** ${c2},*****.. ..${c1}*${c2}*****.. *${c1}%${c2}/****. .,,*******,${c3},,../##(${c2}%&${c1}&${c2}#******${c1},${c2}. ,*${c1},${c2},,,,,,,,,,,,,,,,,,,${c1},${c2}.. *//${c1}/,,${c2},,,,,,,${c1},..${c2} EOF ;; "endeavouros_small"*) set_colors 1 5 4 read -rd '' ascii_data <<'EOF' ${c1} /${c2}o${c3}. ${c1} :${c2}sssso${c3}- ${c1} :${c2}ossssssso${c3}: ${c1} /${c2}ssssssssssso${c3}+ ${c1} -+${c2}ssssssssssssssso${c3}+ ${c1} //${c2}osssssssssssssso${c3}+- `+++++++++++++++-` EOF ;; "EndeavourOS"*) set_colors 1 5 4 read -rd '' ascii_data <<'EOF' ${c1} ./${c2}o${c3}. ${c1} ./${c2}sssso${c3}- ${c1} `:${c2}osssssss+${c3}- ${c1} `:+${c2}sssssssssso${c3}/. ${c1} `-/o${c2}ssssssssssssso${c3}/. ${c1} `-/+${c2}sssssssssssssssso${c3}+:` ${c1} `-:/+${c2}sssssssssssssssssso${c3}+/. ${c1} `.://o${c2}sssssssssssssssssssso${c3}++- ${c1} .://+${c2}ssssssssssssssssssssssso${c3}++: ${c1} .:///o${c2}ssssssssssssssssssssssssso${c3}++: ${c1} `:////${c2}ssssssssssssssssssssssssssso${c3}+++. ${c1}`-////+${c2}ssssssssssssssssssssssssssso${c3}++++- ${c1} `..-+${c2}oosssssssssssssssssssssssso${c3}+++++/` ./++++++++++++++++++++++++++++++/:. `:::::::::::::::::::::::::------`` EOF ;; "EncryptOS"*) set_colors 2 5 6 read -rd '' ascii_data <<'EOF' ${c2} ******* ${c2} *** **. ${c2} ** ** ${c2} ** ** ${c2} ***************** ${c2} ,,,,,,,,,,,,,,,,*** ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,, ,,,,,,, ${c2} ,,,,,,,,,,,,,,,,,,, ${c2} ,,,,,,,,,,,,. 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 ;; "Enso"*) set_colors 8 7 read -rd '' ascii_data <<'EOF' ${c1} .:--==--:. :=*#%%%%%%%#####*+-. .+%%%%%%%%%%%%###%%#*##*: .*%%%%%%%%%#+==-==++*####*##- =%%%%%%%#=: .-+**#***. *%%%%%%#- ++*#**. +%%%%%%+ -*+#** :%%%%%%* .*+**= *%%%%%%: --#*# %%%%%%% +++#. %%%%%%%. ++=*. *%%%%%%+ .-+*+ :%%%%%%%- -:*+: =%%%%%%%*. :.*+- +%%%%%%%%*- :*=- =%%%%%%%%%%#+=: =+=: .+%%%%%%%%%%%%%. .-==: .=#%%%%%%%%%%= ..:--:. .-+#%%%%%+ EOF ;; "EuroLinux"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} __ -wwwWWWWWWWWWwww- -WWWWWWWWWWWWWWWWWWw- \WWWWWWWWWWWWWWWWWWW- _Ww `WWWWWWWWWWWWWWWWWWWw -W${c2}E${c1}Www -WWWWWWWWW- _WW${c2}U${c1}WWWW- _WWWWWWWW _WW${c2}R${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW- wWW${c2}O${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWW${c2}L${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw WWW${c2}I${c1}WWWWWWWWWWWWWWWWWWWWWWWWWWWWww- wWW${c2}N${c1}WWWWw WW${c2}U${c1}WWWWWWw wW${c2}X${c1}WWWWWWWWww wWWWWWWWWWWWWWWWw wWWWWWWWWWWWWWWWw WWWWWWWWWWWWWw wWWWWWWWw EOF ;; "EvolutionOS"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1}\e[1;32m dddddddddddddddddddddddd .dddd''''''''''''''''''''''dddd. dd: dddddddddddddddddddd; dd: dd: ldl:'''''''''''''''' dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: ddddddd; ddddd; dd: dd: ldl: ''''''' ''''' dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: dd: dd: ldl: ddddddddddddddd; dd: dddd:.''' ''''''''''''''' dddd: dddddddddddddddddddddddddd;;' '''''''''''''''''''''''''\e[0m EOF ;; "eweOS"*) set_colors 7 11 9 8 1 read -rd '' ascii_data <<'EOF' ${c2} #####%%% ${c2} ##%%${c3}////${c2}%%%%%${c3}/// ${c2} #%%%%${c3}////((((////${c2}% ${c1} *@@@@@@@${c3}/${c5},,,${c3}/////${c5},,,${c2}%${c1}@@@@@@@ ${c1} .@@@@@@@@@@@${c3}////////${c2}%%%${c1}@@@@@@@@@@@@ ${c1} @@@${c4}...${c1}@@@@@@${c3}////${c2}%%${c3}////${c1}@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@@@@@@@@@@@@@@@@@@ ${c1} @@@@@@ @@@@@@ ${c1} @@@ @@@ EOF ;; "Exherbo"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} , OXo. NXdX0: .cok0KXNNXXK0ko:. KX '0XdKMMK;.xMMMk, .0MMMMMXx; ... 'NO..xWkMMx kMMM cMMMMMX,NMWOxOXd. cNMk NK .oXM. OMMMMO. 0MMNo kW. lMc o: ., .oKNk; ;NMMWlxW' ;Mc .. .,,' .0M${c1}g;${c2}WMN'dWMMMMMMO XX ,WMMMMW. cM${c1}cfli${c2}WMKlo. .kMk .Mo .WM${c1}GD${c2}MW. XM${c1}WO0${c2}MMk oMl ,M: ,XMMWx::,''oOK0x; NM. 'Ml ,kNKOxxxxxkkO0XXKOd:. oMk NK .0Nxc${c3}:::::::::::::::${c2}fkKNk, .MW ,Mo .NXc${c3}::${c2}qXWXb${c3}::::::::::${c2}oo${c3}::${c2}lNK. .MW ;Wo oMd${c3}:::${c2}oNMNP${c3}::::::::${c2}oWMMMx${c3}:${c2}c0M; lMO 'NO;W0c${c3}:::::::::::::::${c2}dMMMMO${c3}::${c2}lMk .WM' xWONXdc${c3}::::::::::::::${c2}oOOo${c3}::${c2}lXN. ,WMd 'KWWNXXK0Okxxo,${c3}:::::::${c2},lkKNo xMMO :XMNxl,';:lodxkOO000Oxc. .oWMMo 'dXMMXkl;,. .,o0MMNo' ':d0XWMMMMWNNNNMMMNOl' ':okKXWNKkl' EOF ;; "fedora_small") set_colors 12 read -rd '' ascii_data <<'EOF' ${c1} ,'''''. | ,. | | | '_' ,....| |.. .' ,_;| ..' | | | | | ',_,' | '. ,' ''''' EOF ;; "Fedora_old"* | "RFRemix"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} /:-------------:\\ :-------------------:: :-----------${c2}/shhOHbmp${c1}---:\\ /-----------${c2}omMMMNNNMMD ${c1}---: :-----------${c2}sMMMMNMNMP${c1}. ---: :-----------${c2}:MMMdP${c1}------- ---\\ ,------------${c2}:MMMd${c1}-------- ---: :------------${c2}:MMMd${c1}------- .---: :---- ${c2}oNMMMMMMMMMNho${c1} .----: :-- .${c2}+shhhMMMmhhy++${c1} .------/ :- -------${c2}:MMMd${c1}--------------: :- --------${c2}/MMMd${c1}-------------; :- ------${c2}/hMMMy${c1}------------: :--${c2} :dMNdhhdNMMNo${c1}------------; :---${c2}:sdNMMMMNds:${c1}------------: :------${c2}:://:${c1}-------------:: :---------------------:// EOF ;; "Fedora_unicode") set_colors 12 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}██████████████ ██████${c2} ${c1}██████${c2} ${c1}██████████████████ ██████${c2} ${c1}███████${c2} ${c1}██████████████████ ██████${c2} ${c1}███${c2} ${c1}███████████████████ ███████${c2} ${c1}██████████████████▀ █████████${c2} ${c1}██████████████████▀ ████████████████████████████████▀ ▀█████████████████████████████▀ ▀█████████████████████████▀ EOF ;; "Fedora Silverblue" | "Silverblue"*) set_colors 4 7 12 read -rd '' ascii_data <<'EOF' ${c1} .;ooooooooooooooooooooooooooo. ${c1} ,dddddddddddddddddddddddddddddd'${c3}; ${c1} lddddddddddddddddddddddddddddd'${c3};;; ${c1}ddddd${c2},XXX.${c1}ddddd${c2},XXX.${c1}dddd'${c2},XXX.${c3};;;;; ${c1}ddddd${c2}XX${c1}x${c2}XX${c1}ddddd${c2}XX${c1}x${c2}XX${c1}ddd'${c2},XX${c3}x${c2}XX${c3};;;;; ${c1}ddddd${c2}'XXX'${c1}ddddd${c2}'XXX'${c1}dd'${c2}XXXXXX'${c3};;;;; ${c1}dddddd${c2};X;${c1}ddddddd${c2};X:${c1}d'${c2}XXX${c3};;;;;;;;;;; ${c1}dddddd${c2};X;${c1}ddddddd${c2};X:${c2}XXX${c3};;;;;;;;;;;;; ${c1}dddddd${c2};X;${c1}dddddd'${c2};XXX,,,,,,XXX.${c3};;;;; ${c1}dddddd${c2};X;${c1}dddd'${c2}XXXX${c2}XXXXXXXXX${c3}x${c2}XX${c3};;;;; ${c1}dddddd${c2};X;${c1}dd'${c2}XXX${c3};;;;;;;;;;;${c2}XXX${c3};;;;;; ${c1}dddddd${c2};X;${c1}'${c2}XXX${c3};;;;;;;;;;;;;;;;;;;;;; ${c1}dddddd${c2};XXXXX,,,,,,,,,,,,,;XXX:${c3};;;;; ${c1}dddddd${c2}:XXXXXXXXXXXXXXXXXXXX${c3}x${c2}XX${c3};;;;; ${c1}ddddd'${c3};;;;;;;;;;;;;;;;;;;${c2}'XXX'${c3};;;;' ${c1}ddd'${c3};;;;;;;;;;;;;;;;;;;;;;;;;;;;; ${c1}o'${c3};;;;;;;;;;;;;;;;;;;;;;;;;;;;' EOF ;; "Fedora Kinoite"* | "Kinoite"*) set_colors 12 7 read -rd '' ascii_data <<'EOF' ${c1} ,clll:.${c2} .,::::::::::::' ${c1}:ooooooo${c2} .;:::::::::::::: ${c1}looooooo${c2} ,:::::::::::::::' ${c1}looooooo${c2} .:::::::::::::::: ${c1}looooooo${c2} ;:::::::::::::::. ${c1}looooooo${c2} .:::::::::::::::: ${c1}looooool${c2};;;;,:::::::::::::::: ${c1}looool${c2}::, .:::::::::::::: ${c1}looooc${c2}:: ;:: ${c1}looooc${c2}::;. .::; ${c1}loooool${c2}:::::::::::. ${c1}looooooo${c2}. .::::::' ${c1}looooooo${c2} .::::::,;,.. ${c1}looooooo${c2} :::;' ';:;. ${c1}looooooo${c2} ::: ::: ${c1}cooooooo${c2} .::' '::. ${c1}.ooooc ${c2} ::, ,:: '''' EOF ;; "Fedora Sericea"* | "Sericea"*) set_colors 12 7 read -rd '' ascii_data <<'EOF' ${c1} :oooo, .',' .';;;.;oooooooolooooo' coooooooooooooooooooooooolc' .':oooooooooooo${c2}ll${c1}ooooooooooooool .oooooooooooooooo${c2}ll${c1}oooooooooooo${c2}l${c1}ool ooooooooooooooooo${c2}ll${c1}ooooooooooo${c2}ll${c1}oo' oooo${c2}l${c1}oooooooooo${c2}lll${c1}ooooooooo${c2}lll${c1}oo .ooooo${c2}lll${c1}ooooo${c2}lll${c1}ooooooooo${c2}lll${c1}ool .ooooooo${c2}lll${c1}oo${c2}llll${c1}oooo${c2}lllll${c1}ooooo: 'oooooooo${c2}llllllllllll${c1}oooooooo' .c,.oo${c2}lllll${c1}oooooooo.${c2} 'll; 'll. lll lll ;ll, .l: EOF ;; "Fedora"*) set_colors 12 7 read -rd '' ascii_data <<'EOF' ${c1} .',;::::;,'. .';:cccccccccccc:;,. .;cccccccccccccccccccccc;. .:cccccccccccccccccccccccccc:. .;ccccccccccccc;${c2}.:dddl:.${c1};ccccccc;. .:ccccccccccccc;${c2}OWMKOOXMWd${c1};ccccccc:. .:ccccccccccccc;${c2}KMMc${c1};cc;${c2}xMMc${c1};ccccccc:. ,cccccccccccccc;${c2}MMM.${c1};cc;${c2};WW:${c1};cccccccc, :cccccccccccccc;${c2}MMM.${c1};cccccccccccccccc: :ccccccc;${c2}oxOOOo${c1};${c2}MMM0OOk.${c1};cccccccccccc: cccccc;${c2}0MMKxdd:${c1};${c2}MMMkddc.${c1};cccccccccccc; ccccc;${c2}XM0'${c1};cccc;${c2}MMM.${c1};cccccccccccccccc' ccccc;${c2}MMo${c1};ccccc;${c2}MMW.${c1};ccccccccccccccc; ccccc;${c2}0MNc.${c1}ccc${c2}.xMMd${c1};ccccccccccccccc; cccccc;${c2}dNMWXXXWM0:${c1};cccccccccccccc:, cccccccc;${c2}.:odl:.${c1};cccccccccccccc:,. :cccccccccccccccccccccccccccc:'. .:cccccccccccccccccccccc:;,.. '::cccccccccccccc::;,. EOF ;; "Feren"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} `----------` :+ooooooooo+. -o+oooooooooo+- ..`/+++++++++++/...````````````````` .++++++++++++++++++++++++++/////- ++++++++++++++++++++++++++++++++//:` -++++++++++++++++++++++++++++++/-` ++++++++++++++++++++++++++++:. -++++++++++++++++++++++++/. +++++++++++++++++++++/-` -++++++++++++++++++//-` .:+++++++++++++//////- .:++++++++//////////- `-++++++---:::://///. `.:///+++. ` `......... EOF ;; "FemboyOS"*) set_colors 4 read -rd '' ascii_data <<'EOF' ${c1}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWKkxkKWMMMMMMMMMMMMMMMMMMMMWKkxkKWMM MMMMXo. .;xKWMMMMMMMMMMMMMMMMMMXo. .oXMM MMWXx,..'..oXMMMMMMMMMMMMMMMMWKx, .lXMM MMNo. .cOc.,xKWMMMMMMMMMMMMWXx;.....cXMM MMXl..;kKl. .oXMMMMMMMMMMWKx;..,ok:.'o0W WKx,.cKWNk;..lXMMMMMMMMWKx;..,o0NXl. .oN No. .lXMMWKc.,dKWMMMMMMNo..;d0NWMNx,..lX Nk:,:kNMMMNk:,ckNMMMMMMNxcxXWMMMMMN0ockN MWNNNWMMMMMWNNNWMMMMMMMMWWWMMMMMMMMMWWWM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMNXKXNWMMMMMMMMMMMWNKOKWMMMMMMMMMM MMMMMMWKdccxXMMMMMMMMMMW0o'.oXMMMMMMMMMM MMMMMMMNO:.'o0NKkkkkkOXXo. .lXMMMMMMMMMM MMMMMMMMNx,..;o;. .:o,..;kNMMMMMMMMMM MMMMMMMMMNO: ... .cKWMMMMMMMMMMM MMMMMMMMMMNx,. .;dk:. .;kNMMMMMMMMMMMM MMMMMMMMMMMN0ocxXWNkl:,:xXWMMMMMMMMMMMMM MMMMMMMMMMMMMWNWMMMWWNNNWMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM EOF ;; "Finnix"*) set_colors 4 7 7 read -rd '' ascii_data <<'EOF' ${c1} ,,:;;;;:,, ,;*%S########S%*;, ;?#################S?: :%######################?: +##########################; +############################; :#############.**,#############, *###########+ +###########+ ?########## ${c3}Finnix${c1} ##########* *###########, ,###########+ :#############%..%#############, *############################+ *##########################+ ;S######################%: ,+%##################%; :+?S##########S?+: ,:;++++;:, EOF ;; "Furreto"*) set_colors 211 255 225 199 read -rd '' ascii_data <<'EOF' ${c1} ${c1}.xOOko .odd, o${c3}X${c2}WWK${c3}O${c1}OOO. 'O${c3}N${c2}WW${c3}0${c1}kkk. .k0${c3}XKO${c1}OOOOOcOO${c2}NWN${c1}OOOOO. xOOOOOOOOOkkOOOOOOOOO; .O0OkkocxO000000kcdk0OO0OOkx k${c3}W${c2}MX${c1}kkkkloxkkkx; :dxxxxddc... 'kO0OOOOOkc .cl:..kk0KK0Okc ;kOOO0000xd. dO00000Oo .xkO${c3}N${c2}MM${c3}X${c1}OOOO .dddxkOOOkddc.k${c3}K${c2}NWW${c3}N${c1}000000l.ddk${c2}00${c1}00OOOO. 'dd:;ddddd;.d${c3}K${c2}MMM${c3}W${c1}K00KKK0O::ddxkO00Oko .okxkOKK0kkOO00KKOxxlodddddddl .00OOkkkkkkkkOOO00OOOO0O; .dddl 'kkkkkxxkkkkkkkOOkxdxkxxddd. cddddddddxxkkkkk${c4}xddddddddddo 'ddddddodddddddddddddddddddc .ddddddodddddddddodddddddc .odddo. .kOOkkk; lkKWNkkkxc kkxkkkkkkx. ,,..xxx. EOF ;; "freebsd_small") set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1}/\\,-'''''-,/\\ \\_) (_/ | | | | ; ; '-_____-' EOF ;; FreeBSD*|HardenedBSD*) set_colors 1 7 3 [[ $ascii_distro == *HardenedBSD* ]] && set_colors 4 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"*) set_colors 7 read -rd '' ascii_data <<'EOF' ${c1} ## ## ######### #### ## #### #### ## #### #### ## ## #### #### ## ## #### #### ## ## ## #### ###### ###### ## ## #### #### ################ #### ## #### ## #### ###### ## ## #### #### ## ## ## ## ## #### #### ## ## ## EOF ;; "Frugalware"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} `++/::-.` /o+++++++++/::-.` `o+++++++++++++++o++/::-.` /+++++++++++++++++++++++oo++/:-.`` .o+ooooooooooooooooooosssssssso++oo++/:-` ++osoooooooooooosssssssssssssyyo+++++++o: -o+ssoooooooooooosssssssssssssyyo+++++++s` o++ssoooooo++++++++++++++sssyyyyo++++++o: :o++ssoooooo${c2}/-------------${c1}+syyyyyo+++++oo `o+++ssoooooo${c2}/-----${c1}+++++ooosyyyyyyo++++os: /o+++ssoooooo${c2}/-----${c1}ooooooosyyyyyyyo+oooss .o++++ssooooos${c2}/------------${c1}syyyyyyhsosssy- ++++++ssooooss${c2}/-----${c1}+++++ooyyhhhhhdssssso -s+++++syssssss${c2}/-----${c1}yyhhhhhhhhhhhddssssy. sooooooyhyyyyyh${c2}/-----${c1}hhhhhhhhhhhddddyssy+ :yooooooyhyyyhhhyyyyyyhhhhhhhhhhdddddyssy` yoooooooyhyyhhhhhhhhhhhhhhhhhhhddddddysy/ -ysooooooydhhhhhhhhhhhddddddddddddddddssy .-:/+osssyyyysyyyyyyyyyyyyyyyyyyyyyyssy: ``.-/+oosysssssssssssssssssssssss ``.:/+osyysssssssssssssh. `-:/+osyyssssyo .-:+++` EOF ;; "Funtoo"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} .dKXXd . :XXl;:. .OXo .'OXO'' .''''''''''''''''''''':XNd..'oco.lco, xXXXXXX, cXXXNNNXXXXNNXXXXXXXXNNNNKOOK; d0O .k kXX xXo KNNN0 KNN. 'xXNo :c; 'cc. kXX xNo KNNN0 KNN. :xxxx. 'NNo kXX xNo loooc KNN. oNNNN. 'NNo kXX xN0:. KNN' oNNNX' ,XNk kXX xNNXNNNNNNNNXNNNNNNNNXNNOxXNX0Xl ... ......................... .;cc;. EOF ;; "GalliumOS"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1}sooooooooooooooooooooooooooooooooooooo+: yyooooooooooooooooooooooooooooooooo+/::: yyysoooooooooooooooooooooooooooo+/:::::: yyyyyoooooooooooooooooooooooo+/::::::::: yyyyyysoooooooooooooooooo++/:::::::::::: yyyyyyysoooooooooooooo++/::::::::::::::: yyyyyyyyysoooooo${c2}sydddys${c1}+/::::::::::::::: yyyyyyyyyysooo${c2}smMMMMMMMNd${c1}+:::::::::::::: yyyyyyyyyyyyo${c2}sMMMMMMMMMMMN${c1}/::::::::::::: yyyyyyyyyyyyy${c2}dMMMMMMMMMMMM${c1}o//::::::::::: yyyyyyyyyyyyy${c2}hMMMMMMMMMMMm${c1}--//:::::::::: yyyyyyyyyyyyyy${c2}hmMMMMMMMNy${c1}:..-://:::::::: yyyyyyyyyyyyyyy${c2}yyhhyys+:${c1}......://::::::: yyyyyyyyyyyyyyys+:--...........-///::::: yyyyyyyyyyyys+:--................://:::: yyyyyyyyyo+:-.....................-//::: yyyyyyo+:-..........................://: yyyo+:-..............................-// o/:-...................................: EOF ;; "garuda_small") set_colors 7 7 3 7 2 4 read -rd '' ascii_data <<'EOF' ${c3} .----. .' ${c6},${c3} '. ${c4} .' ${c6}'${c3}-----| '${c5}. -----, '.____.' EOF ;; "Garuda"*) set_colors 7 7 3 7 2 4 read -rd '' ascii_data <<'EOF' ${c3} .%;888:8898898: x;XxXB%89b8:b8%b88: .8Xxd 8X:. .8Xx; 8x:. .tt8x ${c6}.d${c3} x88; .@8x8; ${c6}.db:${c3} xx@; ${c4},tSXX° .bbbbbbbbbbbbbbbbbbbB8x@; .SXxx bBBBBBBBBBBBBBBBBBBBbSBX8; ,888S pd! 8X88/ q GBB. ${c5}x%88 d888@8@X@X@X88X@@XX@@X@8@X. dxXd dB8b8b8B8B08bB88b998888b88x. dxx8o .@@;. dx88 .t@x. d:SS@8ba89aa67a853Sxxad. .d988999889889899dd. EOF ;; "gentoo_small") set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} _-----_ ( \\ \ 0 \\ ${c2} \ ) / _/ ( _- \____- EOF ;; "Gentoo"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} -/oyddmdhs+:. -o${c2}dNMMMMMMMMNNmhy+${c1}-` -y${c2}NMMMMMMMMMMMNNNmmdhy${c1}+- `o${c2}mMMMMMMMMMMMMNmdmmmmddhhy${c1}/` om${c2}MMMMMMMMMMMN${c1}hhyyyo${c2}hmdddhhhd${c1}o` .y${c2}dMMMMMMMMMMd${c1}hs++so/s${c2}mdddhhhhdm${c1}+` oy${c2}hdmNMMMMMMMN${c1}dyooy${c2}dmddddhhhhyhN${c1}d. :o${c2}yhhdNNMMMMMMMNNNmmdddhhhhhyym${c1}Mh .:${c2}+sydNMMMMMNNNmmmdddhhhhhhmM${c1}my /m${c2}MMMMMMNNNmmmdddhhhhhmMNh${c1}s: `o${c2}NMMMMMMMNNNmmmddddhhdmMNhs${c1}+` `s${c2}NMMMMMMMMNNNmmmdddddmNMmhs${c1}/. /N${c2}MMMMMMMMNNNNmmmdddmNMNdso${c1}:` +M${c2}MMMMMMNNNNNmmmmdmNMNdso${c1}/- yM${c2}MNNNNNNNmmmmmNNMmhs+/${c1}-` /h${c2}MMNNNNNNNNMNdhs++/${c1}-` `/${c2}ohdmmddhys+++/:${c1}.` `-//////:--. EOF ;; "Pentoo"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c2} `:oydNNMMMMNNdyo:` :yNMMMMMMMMMMMMMMMMNy: :dMMMMMMMMMMMMMMMMMMMMMMd: oMMMMMMMho/-....-/ohMMMMMMMo oMMMMMMy. .yMMMMMMo .MMMMMMo oMMMMMM. +MMMMMm mMMMMM+ oMMMMMh hMMMMMo //hMMMMMm//${c1}`${c2} ${c1}`${c2}////mMMMMMh// MMMMMMMMMMM${c1}/${c2} ${c1}/o/`${c2} ${c1}.${c2}smMMMMMMMMMMM MMMMMMMMMMm ${c1}`NMN:${c2} ${c1}.${c2}yMMMMMMMMMM MMMMMMMMMMMh${c1}:.${c2} dMMMMMMMMM MMMMMMMMMMMMMy${c1}.${c2} ${c1}-${c2}NMMMMMMMMM MMMMMMMMMMMd:${c1}`${c2} ${c1}-${c2}yNMMMMMMMMMM MMMMMMMMMMh${c1}`${c2} ${c1}./${c2}hNMMMMMMMMMMMM MMMMMMMMMM${c1}s${c2} ${c1}.:${c2}ymMMMMMMMMMMMMMMM MMMMMMMMMMN${c1}s:..-/${c2}ohNMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM EOF ;; "glaucus"*) set_colors 5 read -rd '' ascii_data <<'EOF' ${c1} ,, ,d88P ,d8P ,ad8888* ,888P d88888* ,,ad8888P* d d888P a88888P* ,ad8888888* .d8 d8888: d888888* ,d888888P* .888; 88888b d8888888b8888888P d8888J888888a88888888888888P* ,d 88888888888888888888888888P ,,d8* 888888888888888888888888888888888* *8888888888888888888888888888888* Y888888888P* `*``*888888888888* *^888^* *Y888P** EOF ;; "gNewSense"*) set_colors 4 5 7 6 read -rd '' ascii_data <<'EOF' ${c1} ..,,,,.. .oocchhhhhhhhhhccoo. .ochhlllllllc hhhhhh ollllllhhco. ochlllllllllll hhhllllllhhh lllllllllllhco .cllllllllllllll hlllllo +hllh llllllllllllllc. ollllllllllhco'' hlllllo +hllh ``ochllllllllllo hllllllllc' hllllllllllllh `cllllllllh ollllllh +llllllllllll+ hllllllo `cllllh. ohllllllho .hllllc' ochllc. ++++ .cllhco `+occooo+. .+ooocco+' `+oo++++ ++++oo+' EOF ;; "GNOME"*) set_colors 4 read -rd '' ascii_data <<'EOF' ${c1} ,@@@@@@@@, @@@@@@ @@@@@@@@@@@@ ,@@. @@@@@@@ *@@@@@@@@@@@@ @@@@@% @@@@@@( @@@@@@@@@@@& @@@@@@ @@@@* @@@@@@@@@# @@@@* @@@@, *@@@@@% @@@@@. @@@@# @@@@@@@@@@@@@@@@ ,@@@@@@@@@@@@@@@@@@@@@@@, ,@@@@@@@@@@@@@@@@@@@@@@@@@@& .@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@( @@@@@@@@@@@@@@@@@@@@% @@@@@@@@@@@@@@@@ @@@@@@@@@@@@* @@@@@@@@/ &@@@@@@@@@@ @@@@@@@@@* @@@@@@@@@@@, @@@@@@@@@* ,@@@@@@@@@@@@@@@@@@@@& &@@@@@@@@@@@@@@ ... EOF ;; "GNU") set_colors fg 7 read -rd '' ascii_data <<'EOF' ${c1} _-`````-, ,- '- . .' .- - | | - -. `. /.' / `. \ :/ : _... ..._ `` : :: : /._ .`:'_.._\. || : :: `._ ./ ,` : \ . _.'' . `:. / | -. \-. \\_ / \:._ _/ .' .@) \@) ` `\ ,.' _/,--' .- .\,-.`--`. ,'/'' (( \ ` ) /'/' \ `-' ( '/'' `._,-----' ''/' .,---' ''/' ;: ''/'' ''/ ''/''/'' '/'/' `; EOF ;; "GoboLinux"*) set_colors 5 4 6 2 read -rd '' ascii_data <<'EOF' ${c1} _____ _ / ____| | | | | __ ___ | |__ ___ | | |_ |/ _ \| '_ \ / _ \ | |__| | (_) | |_) | (_) | \_____|\___/|_.__/ \___/ EOF ;; "GrapheneOS"*) set_colors 7 4 read -rd '' ascii_data <<'EOF' ${c1} B? G~ G~& G!^:^?# &^.:::.J &PG& #G5JJ7~^~?JY5B& #PG B5JJPGJ77YG5JYP# && &B5JYPGJ7?YG5JYP# &Y..::.:P& &?..::.:G #!::::? B~::::J B~J# B!?# !P 75 !P 75 !5 7Y &Y~:^!P &J~:^!P P..::.:B Y..::.:# #PYJJ~^^!JJYP# &B5YJ?~^^!JJYG# &YYG# && #PYJ5G5??JGGYJ5G& && #PYP B^.::..7& J::::^G #Y^G& B~ G! # EOF ;; "Grombyang"*) set_colors 4 2 1 read -rd '' ascii_data <<'EOF' ${c1} eeeeeeeeeeee eeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeee eeeee ${c2}.o+ ${c1}eeee eeee ${c2}`ooo/ ${c1}eeee eeee ${c2}`+oooo: ${c1}eeee eee ${c2}`+oooooo: ${c1}eee eee ${c2}-+oooooo+: ${c1}eee ee ${c2}`/:oooooooo+: ${c1}ee ee ${c2}`/+ +++ +: ${c1}ee ee ${c2}+o+\ ${c1}ee eee ${c2}+o+\ ${c1}eee eee ${c2}// \\ooo/ \\\ ${c1}eee eee ${c2}//++++oooo++++\\\ ${c1}eee eeee ${c2}::::++oooo+::::: ${c1}eeee eeeee ${c3}Grombyang OS ${c1} eeee eeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeee EOF ;; "guix_small"*) set_colors 3 7 6 1 8 read -rd '' ascii_data <<'EOF' ${c1}|.__ __.| |__ \\ / __| \\ \\ / / \\ \\ / / \\ \\ / / \\ \\/ / \\__/ EOF ;; "Guix"*) set_colors 3 7 6 1 8 read -rd '' ascii_data <<'EOF' ${c1} .. `. `--..```..` `..```..--` .-:///-:::. `-:::///:-. ````.:::` `:::.```` -//:` -::- ://: -::- `///- .:::` -+++-:::. :+/:::- `-....` EOF ;; "haiku_small"*) set_colors 2 8 read -rd '' ascii_data <<'EOF' ${c1} ,^, / \\ *--_ ; ; _--* \\ '" "' / '. .' .-'" "'-. '-.__. .__.-' |_| EOF ;; "Haiku"*) set_colors 1 3 7 2 read -rd '' ascii_data <<'EOF' ${c3} MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM${c4} .ciO| /YMMMMM*" ${c3} MMMM${c4} .cOMMMMM|/MMMMM/` , ,iMM|/MMMMMMMMMMMMMMM* `*.__,-cMMMMMMMMMMMMMMMMM/`${c3}.MMM MM${c4}MMMMMMM/`:MMM/ ${c3}MMMM MMMM MMMM MMMM MMMM """" """" EOF ;; "HamoniKR"*) set_colors 4 7 99 1 3 7 read -rd '' ascii_data <<'EOF' ${c1} cO0Ox. .ldddddddo. .lddddddddddo 'lddddddddddddc ,oddddddddddddd; 'ldddddddddddddo. .oddddddddddddddc. ,dddddddddddddddo. ,ccoooooooocoddooo: ,cooooooooooooooooop ${c3} c000x. ${c1}.cooooooooooooooopcllll${c3} .cddddddo. ${c1}coooooooooooooop' .qlll.${c3} .ddoooooooo; ${c1}cooooooooooc; ${c3}'qlllp. .ddoooooooooo; ${c1}.cooooooc; ${c3}'lllbc...coooooooooooo; ${c1} .cooc' ${c3}.llllcoooooooooooooo. .coooooooooooooop: .coooooooooooooop' .cooooooooooooop. .cooooooooooooop. .coooooooooooop. .cooooooooooop. .cooooooooop. .cooooop' EOF ;; "Huayra"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c2} ` . . ` `` - . . `.` -` `. - `` .` ..`-`-` + - / .` ``` .--.+--`+:- :/.` .-``.` -+/so::h:.d-`./:`.` :hNhyMomy:os-...-. ```` .dhsshNmNhoo+:-``.``` ${c1}`ohy:-${c2}NMds+::-.`` ````${c1}.hNN+`${c2}mMNho/:-....```` ````` `../dmNhoo+/:..`` ```` .dh++o/:....` .+s/` `/s-.-.:.`` ```` ::` `::`..` .` `.. `` EOF ;; "HydroOS"*) set_colors 1 2 3 4 5 read -rd '' ascii_data <<'EOF' ${c1} _ _ _ ____ _____ | | | | | | / __ \ / ____| | |__| |_ _ __| |_ __ ___ | | | | (___ | __ | | | |/ _` | '__/ _ \| | | |\___ \ | | | | |_| | (_| | | | (_) | |__| |____) | |_| |_|\__, |\__,_|_| \___/ \____/|_____/ __/ | |___/ EOF ;; "hyperbola_small"*) set_colors 8 read -rd '' ascii_data <<'EOF' ${c1} |`__.`/ \____/ .--. / \\ / ___ \\ / .` `.\\ /.` `.\\ EOF ;; "Hyperbola"*) set_colors 8 read -rd '' ascii_data <<'EOF' ${c1} WW KX W WO0W NX0O NOO0NW WNXK0OOKW W0OOOOOOOOOOOOKN N0OOOOOOO0KXW WNXXXNW NXK00000KN WNK0OOOOOOOOOO0W NK0OOOOOOOOOOOOOO0W X0OOOOOOO00KK00OOOOOK X0OOOO0KNWW WX0OO0W X0OO0XNW KOOW N00KNW KOW NKXN W0W WW W EOF ;; "Hybrid"*) set_colors 4 12 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}///// ${c2}###### ${c1}///// ${c2}###### ${c1}///// ${c2}###### ${c1}///// ${c2}######### ${c1}////& ${c2}######## EOF ;; "iglunix"*|"iglu"*) set_colors 8 read -rd '' ascii_data <<'EOF' ${c1} | | | | | ________ | /\ | \ / \ | \ | / \ \ | / \________\ \ / / \ / / \ / / \/________/ EOF ;; "Interix"*) set_colors 1 7 4 0 3 read -rd '' ascii_data <<'EOF' ${c1} .${c3}. ${c1} 75${c3}G! ${c1} ^?PG${c3}&&J. ${c1} :!5GPP${c3}&&&B! ${c1} :YPPPPP${c3}&&&&&Y: ${c1} !5PPPPPP${c3}&&&&&&B! ${c1} :?PPPPPPPP${c3}&&&&&&&&Y~ ${c1} !5PPPPPPPPP${c3}###&&&&&&B7 ${c1} :?PPPP5555555${c3}B####&&&&&&5: ${c1} ~5PPPP555YJ${c5}7!~7?${c3}5B###&&&&&B?. ${c1} .:JPPPP5555Y${c5}?^....:^?${c3}G####&&&&&5: ${c1} 75PPP555555Y${c5}7:....:^!${c3}5#####&&&&&B7. ${c1} :JPPPP${c2}555555YY?${c5}~::::^~${c2}7YPGBB###${c3}&&&&&5^ ${c1}75${c2}GGPPPPPP555555YJ?77??YYYYYY55PPGGB#${c3}&B? ${c2}~!!7JY5PGGBBBBBBBBGGGGGGGBGGGGGP5YJ?7~~~ .::^~7?JYPGBB#BGPYJ?7!7^:. ..:^... EOF ;; "Ironclad"*) set_colors 5 7 0 read -rd '' ascii_data <<'EOF' ${c3} &#BGPPPPPG#& B5?77!!?YJJ7!7YBB& &G5YJ77!7JYYYYYBPJ&PY# #PYYYYYY?!?YYYYY7?7JP5JJ B?YYYYYY7!!7JYYYYJ!!?JJJ5 && B7?J?77?7!!!!!77777!7Y5YYBBPGGG& G77?YBB!!!!!!!!!!!!!JYJ??7JYJJY# PYPPG& J777JB?!7JJ???!!!7?JYYYYYPJ!7JB GYYG #JJJJJ??7!!!JYYY5PGB&GB& #Y!?GB5YYJY5PG###& GJJP EOF ;; "januslinux"*|"janus"*|"Ataraxia Linux"*|"Ataraxia"*) set_colors 4 5 6 2 read -rd '' ascii_data <<'EOF' ${c1} 'l: loooooo loooo coooool looooooooooooooooooool looooooooooooooooo lool cooo coooooooloooooooo clooooo ;lood cloooo :loooocooo cloo loooo loooo :ooooool loooo looo cooooo cooooo looooooooooooo ;loooooo ${c2}looooooc ${c1}looooooooo loo cloooooool ${c2}looooc ${c1} cooo cooooooooooo ${c2}looolooooool ${c1} cooo: ${c2}coooooooooooooooooool loooooooooooolc: loooc; cooo: loooooooooooc ;oool looooooo: coool olc, looooc ,, coooooc loc :oooool, coool:, looool:, looool: ooooooooooooooo: cooolc .ooooooooooool EOF ;; "Kaisen"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} ` `:+oyyho. `+:`sdddddd/ `+` :ho oyo++ohds-` .ho :dd. .: `sddddddhhyso+/- ody.ddd-:yd- +hysssyhddddddddho` yddddddhddd` ` `--` -+hddddddh. hddy-+dddddy+ohh/..+sddddy/:::+ys :ddd/sdddddddddd- oddddddd ` `yddddddddddddddd/ /ddddddd/ :. :ydddddddddddddddddo..sddddddy/` odhdddddddo- `ddddh+-``....-+hdddddds. -ddddddhd: /dddo -ydddddddhdddddddd- /hdy:o - `:sddds .`./hdddddddddddddo `/- `+hddyosy+ :dddddddy-.-od/ :sydds -hddddddd` / .+shd- `:ohddddddddd` `:+ooooooooooooo: EOF ;; "kali_small" | "kalilinux_small" | "kali_linux_small") set_colors 4 8 read -rd '' ascii_data <<'EOF' ${c1} -#. # @### -###### @######### =##. .##### ## ## ## ## ## # ## @### ##. ### ##% ##- -##% -* :*##+ :*#* -# @ : 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 ;; "LainOS"*) set_colors 4 14 7 2 3 5 read -rd '' ascii_data <<'EOF' ${c2} /==\\ \\==/ ${c1} · · · · · · · · · · · · · · · · · · · · ${c2}.-======-.${c1}· · · · ${c2} .::.${c1} ·${c2}.-============-.${c1}· ${c2}.::. .:==:${c1}· ${c2}.:===:'${c1}. ·· .${c2}':===:.${c1} ·${c2}:==:. .:===:${c1} · ${c2}:===.${c1} · ${c3}.--.${c1} · ${c2}.===:${c1} · ${c2}:===:. :===:${c1}· · ${c2}:===.${c1} · ${c3}.:====:.${c1} · ${c2}.===:${c1} · ·${c2}:===: (===:${c1}· · ${c2}:===-${c1} · ${c3}:======:${c1} · ${c2}-===:${c1} · ·${c2}:===) :===:${c1}· · ${c2}:===.${c1} · ${c3}':====:'${c1} · ${c2}.===:${c1} · ·${c2}:===: ':===:${c1} · ${c2}:===.${c1} · ${c3}'--'${c1} · ${c2}.===:${c1} · ${c2}:===:' ':==:${c1}· ${c2}':===:.${c1}' ·· '${c2}.:===:'${c1} ·${c2}:==:' '::'${c1} · ${c2}'===-. .-==='${c1} · ${c2}'::' ${c2}/==\\${c1} · · · ${c2}:=== ===:${c1} · · · ${c2}/==\\ \\==/${c1} · · ·${c2}:===${c1} ·${c2}===:${c1}· · · ${c2}\\==/${c2} .-. ${c1}· ${c2}:===${c1}· ${c2}===:${c1} ·${c2} ${c2}.-. .===. .=== ===. .===. .======== ========. ''''' ''''' EOF ;; "LEDE"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} _________ / /\ / LE / \ / DE / \ /________/ LE \ \ \ DE / \ LE \ / \ DE \ / \________\/ EOF ;; "LangitKetujuh_old") set_colors 7 4 read -rd '' ascii_data <<'EOF' ${c1} L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L 'L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L L7L. 'L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L7L7L7L7L7L7L7L7L L7L7L7L 'L7L7L7L7L7L7L7L7L7L L7L7L7L 'L7L7L7L7L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L. 'L7L L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L. L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L7L ${c2} EOF ;; "LangitKetujuh"*) set_colors 4 2 read -rd '' ascii_data <<'EOF' ${c1} . 'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMML7 MM. 'MMMMMMMMMMMMMMMMMMMMMMMMMMML7L7 MMMMMM MMMMMMML7L7L7L7L7L7L7L7L7L7 L7MMMM L7L7L7 L7L7MM 'L7L7L7L7L7L7L7L7L7L: L7L7L7 'L7L7L7L7L7L7L::: L7L7L7 'L7L7L7:::::: :7L7L7 :::::: ::L7L7L7L7L7L7L7L7L7L::::::. :::::: :::::7L7L7L7L7L7:::::::::::::::. ':: :::::::::::::::::::::::::::::::::::. ' ${c2} EOF ;; "LaxerOS"*) set_colors 7 4 read -rd '' ascii_data <<'EOF' ${c2} /. `://:- `//////: .////////:` -//////////:` -/////////////` :///////////////. `://////.```-//////- `://///:` .//////- `//////: `//////: .//////- `://///:` -//////- `://///:` -//////. ://////` ://////` -//////. `/////:` ./////: .-::-` .:::-` .:://////////////////////////////////::. //////////////////////////////////////// .:////////////////////////////////////:. EOF ;; "LibreELEC"*) set_colors 2 3 7 14 13 read -rd '' ascii_data <<'EOF' ${c1} :+ooo/. ${c2}./ooo+: ${c1} :+ooooooo/. ${c2}./ooooooo+: ${c1} :+ooooooooooo:${c2}:ooooooooooo+: ${c1} :+ooooooooooo+- ${c2}-+ooooooooooo+: ${c1} :+ooooooooooo+- ${c3}-- ${c2}-+ooooooooooo+: ${c1}.+ooooooooooo+- ${c3}:+oo+: ${c2}-+ooooooooooo+- ${c1}-+ooooooooo+- ${c3}:+oooooo+: ${c2}-+oooooooooo- ${c1} :+ooooo+- ${c3}:+oooooooooo+: ${c2}-+oooooo: ${c1} :+o+- ${c3}:+oooooooooooooo+: ${c2}-+oo: ${c4} ./ ${c3}:oooooooooooooooooo: ${c5}/. ${c4} ./oo+: ${c3}-+oooooooooooooo+- ${c5}:+oo/. ${c4} ./oooooo+: ${c3}-+oooooooooo+- ${c5}:+oooooo/. ${c4}-oooooooooo+: ${c3}-+oooooo+- ${c5}:+oooooooooo- ${c4}.+ooooooooooo+: ${c3}-+oo+- ${c5}:+ooooooooooo+. ${c4} -+ooooooooooo+: ${c3}.. ${c5}:+ooooooooooo+- ${c4} -+ooooooooooo+: ${c5}:+ooooooooooo+- ${c4} -+oooooooooo+:${c5}:+oooooooooo+- ${c4} -+oooooo+: ${c5}:+oooooo+- ${c4} -+oo+: ${c5}:+oo+- ${c4} .. ${c5}.. EOF ;; "Linux") set_colors fg 8 3 read -rd '' ascii_data <<'EOF' ${c2} ##### ${c2} ####### ${c2} ##${c1}O${c2}#${c1}O${c2}## ${c2} #${c3}#####${c2}# ${c2} ##${c1}##${c3}###${c1}##${c2}## ${c2} #${c1}##########${c2}## ${c2} #${c1}############${c2}## ${c2} #${c1}############${c2}### ${c3} ##${c2}#${c1}###########${c2}##${c3}# ${c3}######${c2}#${c1}#######${c2}#${c3}###### ${c3}#######${c2}#${c1}#####${c2}#${c3}####### ${c3} #####${c2}#######${c3}##### EOF ;; "LinuxFromScratch" | *"LFS" | "linux-from-scratch" | "linux_from_scratch") set_colors fg 8 3 read -rd '' ascii_data <<'EOF' ${c2} .:@:. ${c2} :@@@@@@@: ${c2} @@@@@@@@@- ${c2} .:%. @@@@@@@@@+. @% ${c2} *@@@%+: :@@@@@@@%=: .=%@@@@@@= ${c2} :@@@@@@##@@@@@@@@@%*+%@%+@@@@@@@+ ${c2} @@#${c1}####${c2}+@@@@@@@%:${c1}######${c2}=@@@@@@@@@- ${c2} *@%${c1}######${c2}.@@@@@#${c1}#########${c2}-@@@@@@@@#. ${c2} %@-${c1}#${c2}.@${c1}=${c2}:${c1}##${c2}+@@@@-${c1}###${c2}%@${c1}:${c2}=${c1}###${c2}*@#*+=-+#: ${c2} @@.${c1}#${c2}@@*${c1}=${c2}:${c1}#${c2}-%%**-${c1}##${c2}%@@%${c1}*${c2}*${c1}###${c2}#=- ${c2} @@-${c1}#${c2}@@@@+.-${c3}...${c2}:=.${c1}#${c2}%@@@@%${c1}###${c2}#- ${c2} %@%${c1}##${c2}*#:${c3}.o.....o...${c2}-%@+${c1}###${c2}#@+ -: ${c2} +@@*${c1}#${c3}....................${c2}+@@@@@@@@+ ${c2} @%:${c3}....................._:${c2}@@@@@@@=. ${c2} .=:${c3}...............__*-=`.${c2}=@@@@@@#=. ${c2} :+:${c3}....:==*__*-=`:..==-:${c2}#@@@@@%+: ${c2} .--=-: ${c3}+..::.....-: ${c2}=%@*=: ${c2} :........- ${c2} .:...--. EOF ;; "Linux_small") set_colors fg 8 3 read -rd '' ascii_data << 'EOF' ${c2} ___ ${c2} (${c1}.. ${c2}| ${c2} (${c3}<> ${c2}| ${c2} / ${c1}__ ${c2}\\ ${c2} ( ${c1}/ \\ ${c2}/| ${c3}_${c2}/\\ ${c1}__)${c2}/${c3}_${c2}) ${c3}\/${c2}-____${c3}\/ EOF ;; "linuxlite_small"*) set_colors 3 7 read -rd '' ascii_data <<'EOF' ${c1} /\\ / \\ / ${c2}/ ${c1}/ > ${c2}/ ${c1}/ \\ ${c2}\\ ${c1}\\ \\_${c2}\\${c1}_\\ ${c2} \\ EOF ;; "Linux Lite"* | "Linux_Lite"*) set_colors 3 7 read -rd '' ascii_data <<'EOF' ${c1} ,xXc .l0MMMMMO .kNMMMMMWMMMN, KMMMMMMKMMMMMMo 'MMMMMMNKMMMMMM: kMMMMMMOMMMMMMO .MMMMMMX0MMMMMW. oMMMMMMxWMMMMM: WMMMMMNkMMMMMO :MMMMMMOXMMMMW .0MMMMMxMMMMM; :;cKMMWxMMMMO 'MMWMMXOMMMMl kMMMMKOMMMMMX: .WMMMMKOWMMM0c lMMMMMWO0MNd:' oollXMKXoxl;. ':. .: .' .. . EOF ;; "LMDE"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c2} `.-::---.. ${c1} .:++++ooooosssoo:. .+o++::. `.:oos+. ${c1} :oo:.` -+oo${c2}: ${c1} ${c2}`${c1}+o/` .${c2}::::::${c1}-. .++-${c2}` ${c1}${c2}`${c1}/s/ .yyyyyyyyyyo: +o-${c2}` ${c1}${c2}`${c1}so .ss ohyo` :s-${c2}: ${c1}${c2}`${c1}s/ .ss h m myy/ /s`${c2}` ${c1}`s: `oo s m Myy+-o:` `oo :+sdoohyoydyso/. :o. .:////////++: ${c1} `/++ ${c2}-:::::- ${c1} ${c2}`${c1}++- ${c1} ${c2}`${c1}/+- ${c1} ${c2}.${c1}+/. ${c1} ${c2}.${c1}:+-. `--.`` EOF ;; "Lubuntu"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} `.:/ossyyyysso/:. `.:yyyyyyyyyyyyyyyyyy:.` .:yyyyyyyyyyyyyyyyyyyyyyyy:. .:yyyyyyyyyyyyyyyyyyyyyyyyyyyy:. -yyyyyyyyyyyyyy${c2}+hNMMMNh+${c1}yyyyyyyyy- :yy${c2}mNy+${c1}yyyyyyyy${c2}+Nmso++smMdhyysoo+${c1}yy: -yy${c2}+MMMmmy${c1}yyyyyy${c2}hh${c1}yyyyyyyyyyyyyyyyyyy- .yyyy${c2}NMN${c1}yy${c2}shhs${c1}yyy${c2}+o${c1}yyyyyyyyyyyyyyyyyyyy. :yyyy${c2}oNM+${c1}yyyy${c2}+sso${c1}yyyyyyy${c2}ss${c1}yyyyyyyyyyyyy: :yyyyy${c2}+dNs${c1}yyyyyyy${c2}++${c1}yyyyy${c2}oN+${c1}yyyyyyyyyyyy: :yyyyy${c2}oMMmhysso${c1}yyyyyyyyyy${c2}mN+${c1}yyyyyyyyyyy: :yyyyyy${c2}hMm${c1}yyyyy${c2}+++${c1}yyyyyyy${c2}+MN${c1}yyyyyyyyyyy: .yyyyyyy${c2}ohmy+${c1}yyyyyyyyyyyyy${c2}NMh${c1}yyyyyyyyyy. -yyyyyyyyyy${c2}++${c1}yyyyyyyyyyyy${c2}MMh${c1}yyyyyyyyy- :yyyyyyyyyyyyyyyyyyyyy${c2}+mMN+${c1}yyyyyyyy: -yyyyyyyyyyyyyyyyy${c2}+sdMMd+${c1}yyyyyyyy- .:yyyyyyyyy${c2}hmdmmNMNdy+${c1}yyyyyyyy:. .:yyyyyyy${c2}my${c1}yyyyyyyyyyyyyyy:. `.:yyyy${c2}s${c1}yyyyyyyyyyyyy:.` `.:/oosyyyysso/:.` EOF ;; "Lunar"*) set_colors 4 7 3 read -rd '' ascii_data <<'EOF' ${c1}`-. `-. -ohys/-` `:+shy/` -omNNdyo/` :+shmNNy/` ${c3} - /mMmo hMMMN` .NMMs ${c1} -:+oooo+//: ${c3}/MN${c1}. -///oooo+/-` /:.` ${c3}/${c1} `.:/` ${c3} __ | | _ _ ___ ___ ___ | |__| | | | .'| _| |_____|___|_|_|__,|_| EOF ;; "MacaroniOS"* | "Macaroni OS"*) set_colors 2 3 15 14 read -rd '' ascii_data <<'EOF' ${c2} -=+++==--::.. .-+++==-:. .:--:-=++==-:. :=*+=--==+***######**+-: .---:-===-----===+++==-:.. :=+=--=+*****+++*****#%%%#- .=*********+++========+++++=--:. .:-=+++++++=-:.. .=*=::. :-=-. .:::---===+++++++++++*******++====+**+++=-:. :+*-.. .. -++ ..:--==+***********=:. -*= . :+. . ${c3}...${c2} .:--===:. .++ .*: . ${c3}:+#%%@@%%#=: ${c2}-- ${c2}-= ${c3}-#@@@@@@@@@@@@#: ${c2}. ${c3}:*%@%%@@@@@@@@@@@%+ .:--====-:. :*%%%%%%%%%@@@@@@@@@*. :=*#%%%%@@@@@%#+- .*%%%%%%%%%%%%%@@#+--=- -*%%%%%%%%%%%@@@@@%#= -#%%%%%%%%%%%%%#: :+: :+%*#%%%%%%%%%%%%%%%%%*. +%%%%%%%%%%%%%%: .#*: *+-*%%%%%%%%%%%%%%%%%+ +%%%%%%%%%%%%%# . . . :%%%%%%%%%%%%%%%%%#. =#%%%%%%%%%%%%# . . =%%%%%%%%%%%%%%%%%*. .*%%%%%%%%%%%%%* : =%%%%%%%%%%%%%%%%%#- :#%%%%%%%%%%%%%#=.... .=*%%%%%%%%%%%%%%%%%%*: :*%@@%%%%%%%%%%%%#+. :+#%%%%%%%%%%%%%#*- =*%%@@%%%%%%%#*- .-=+**##**+=: :=*######+=: EOF ;; "mac"*"_small") set_colors 2 3 1 5 4 read -rd '' ascii_data <<'EOF' ${c1} .:' _ :'_ ${c2} .'`_`-'_``. :________.-' ${c3}:_______: :_______: ${c4} :_______`-; ${c5} `._.-._.' EOF ;; "mac"* | "Darwin") set_colors 2 3 1 1 5 4 read -rd '' ascii_data <<'EOF' ${c1} c.' ,xNMM. .OMMMMo lMM" .;loddo:. .olloddol;. cKMMMMMMMMMMNWMMMMMMMMMM0: ${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd. XMMMMMMMMMMMMMMMMMMMMMMMX. ${c3};MMMMMMMMMMMMMMMMMMMMMMMM: :MMMMMMMMMMMMMMMMMMMMMMMM: ${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX. kMMMMMMMMMMMMMMMMMMMMMMMMWd. ${c5}'XMMMMMMMMMMMMMMMMMMMMMMMMMMk 'XMMMMMMMMMMMMMMMMMMMMMMMMK. ${c6}kMMMMMMMMMMMMMMMMMMMMMMd ;KMMMMMMMWXXWMMMMMMMk. "cooc*" "*coo'" EOF ;; "mageia_small"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} * * ** ${c2} /\\__/\\ / \\ \\ / \\____/ EOF ;; "Mageia"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} .°°. °° .°°. .°°°. °° . . °°° .°°°. .°°°. '___' ${c2} .${c1}'___' ${c2} . :dkxc;'. ..,cxkd; .dkk. kkkkkkkkkk .kkd. .dkk. ';cloolc;. .kkd ckk. .kk; xO: cOd xO: lOd lOO. .OO: .k00. .00x .k00; ;00O. .lO0Kc;,,,,,,;c0KOc. ;d00KKKKKK00d; .,KKKK,. EOF ;; "Magix"*) set_colors 206 39 read -rd '' ascii_data <<'EOF' ${c2} @ @@--=====@@ @@--==@@ @@====+@ @-@@ @==@ @=@ @=@${c1} @=@ @-==== @=@${c2} @=@${c1} @-===@==++@===+@${c2} @=@${c1} @--====@@=====+@${c2} -=@${c1} @--==========++@${c2} ==${c1} @--==========++@${c2} @=@ @==${c1} @--=======@==++@${c2} @=+@ @==${c1} @-==========++${c2} @=@ @==${c1} @-=======@=%${c2} @=@ @==${c1} @@@@@@${c2} @=@ @====@@@ @@===+% @@=====@@==++++@@ =#@=@ @==@++@ @@@ 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 ;; "MainsailOS_small"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} -: +%* .#%%+ -%%%: += +%%#..#%%- .#%%+ -%%%- += -%%%- +%%#..#%%+ EOF ;; "MainsailOS"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} - *%: :%%%# =%%%%%- *%%%%%%# :#%%%%%%%#. -%%%%%%%%+ *%%%%%%%%- : .#%%%%%%%#. *%= -%%%%%%%%+ :#%%%* +%%%%%%%%- =%%%%%%#. .#%%%%%%%#. *%%%%%%%%: -%%%%%%%%* :#%%%%%%%#. +%%%%%%%%- =%%%%%%%%+ :%*. .#%%%%%%%#: *%%%%%%%%- +%%%%*: :%%%%%%%%* :#%%%%%%%#. .*%%%%%%%* +%%%%%%%%= -%%%%%%%%+ :%%%%%%%%* .#%%%%%%%%: *%%%%%%%%- =%%%%%%%%= EOF ;; "Mandriva"* | "Mandrake"*) set_colors 4 3 read -rd '' ascii_data <<'EOF' ${c2} `` `-. ${c1} ` ${c2}.--- ${c1} -/ ${c2}-::--` ${c1} `++ ${c2}`----...```-:::::. ${c1} `os. ${c2}.::::::::::::::-``` ` ` ${c1} +s+ ${c2}.::::::::::::::::---...--` ${c1}-ss: ${c2}`-::::::::::::::::-.``.`` ${c1}/ss- ${c2}.::::::::::::-.`` ` ${c1}+ss: ${c2}.::::::::::::- ${c1}/sso ${c2}.::::::-::::::- ${c1}.sss/ ${c2}-:::-.` .::::: ${c1} /sss+. ${c2}..`${c1} `--` ${c2}.::: ${c1} -ossso+/:://+/-` ${c2}.:` ${c1} -/+ooo+/-. ${c2}` EOF ;; "manjaro_small"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1}||||||||| |||| ||||||||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| EOF ;; "Manjaro"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1}██████████████████ ████████ ██████████████████ ████████ ██████████████████ ████████ ██████████████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ ████████ EOF ;; "MassOS"*) set_colors 7 read -rd '' ascii_data <<'EOF' ${c1} -+++/+++osyyhdmNNMMMMNdy/ /MMMMMMMMMMMMMMMMMMMMMMMMm. /MMMMMMMMMMMMMMMMMMMMMMMMMm /MMMMMMMMMMMMMMMMMMMMMMMMMM: :ddddddddhddddddddhdddddddd/ /NNNNNNNm:NNNNNNNN-NNNNNNNNo /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs /MMMMMMMN:MMMMMMMM-MMMMMMMMs :MMMMMMMN:MMMMMMMM-MMMMMMMMs dMMMMMMN:MMMMMMMM-MMMMMMMMs `yNMMMMN:MMMMMMMM-MMMMMMMMs `:+oss.ssssssss.ssssssss/ EOF ;; "TeArch"*) set_colors 39 7 1 read -rd '' ascii_data <<'EOF' ${c1} @@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@ @@@@@ @@@@@ @@ @@ @% @@ @ @ @@@@@@@@@@@@@@@@@@@@@@@@ @@ .@@@@@@@@@@@@/@@@@@@@@@@@@ @@@@@@@@@@@@///@@@@@@@@@@@@ @@@@@@@@@@@@@((((@@@@@@@@@@@@ @@@@@@@@@@@#(((((((#@@@@@@@@@@@ @@@@@@@@@@@#//////////@@@@@@@@@@& @@@@@@@@@@////@@@@@////@@@@@@@@@@ @@@@@@@@//////@@@@@/////@@@@@@@@@ @@@@@@@//@@@@@@@@@@@@@@@//@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ .@@@@@@@@@@@@@@@@@@@@@@@@@ @ @@@@@@ @@@. @@@@@@@ @@@@@@@&@@@@@@@# #@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@ EOF ;; "Maui"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} `.-://////:--` .:/oooooooooooooooo+:. `:+ooooooooooooooooooooooo:` `:oooooooooooooooooooooooooooo/` ..```-oooooo/-`` `:oooooo+:.` `-- :. +oo+-` /ooo/` -/ -o. `o+- +o/` -o: `oo` ::` :o/ `+. .+o` /oo. /o+ . -+oo- ` /oo/ `ooo/ +o- /ooo+` .+ooo. :ooo+ ++ .+oooo: -oooo+ `oooo+ :. .oooooo` :ooooo- :oooo: ` .oooooo: :ooooo+ `ooo+-` .+oooooo` -oooooo: `o/- +oooooo: .ooooooo. /ooooooo` /ooooooo/ .. `:oooooooo/:::/ooooooooo+:--:/:` `:+oooooooooooooooooooooo+:` .:+oooooooooooooooo+:. `.-://////:-.` EOF ;; "Mauna"*) 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} .=++++++++++++++: ${c2}+++++= ${c1}. ${c2} .=+++++++++= :=+++++= .:::--- -+++++++- :-==++==-. EOF ;; "Meowix"*) set_colors 1 3 3 4 read -rd '' ascii_data <<'EOF' ${c1} #${c2}% ${c3}&${c4}* ${c1} ##${c2}%% ${c3}&&${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%%${c3}&& ${c4}** ${c1} ## ${c2}%% ${c4}** ${c1} ## ${c4}** ${c1}## ${c4}** 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 ;; "MIRACLE LINUX"* | "MIRACLE_LINUX"*) set_colors 29 read -rd '' ascii_data <<'EOF' ${c1} ,A .### .#' .#### .#. r##: :#### ####. +###; :#### ######C :####: #### ,######".#. .# :####. :### #####'.#####. ##: `####. ### ###'.########+. #### `####::## ##'.#######+' ####+.`###i## #',####:' `+###MI`##### 'l###:' `+####+`### ;#E' `+###:## #' `:### ' '## '; EOF ;; "Linspire"* | "Freespire"* | "Lindows"*) set_colors 4 2 read -rd '' ascii_data <<'EOF' ${c2} __^ ${c2} __/ \\ ${c2} MMy dMy __/ \\ ${c2} dMMy MMy ${c1}MM${c2} \\ ${c2} MMMy ,, ${c1}dMMMMn ${c2}\\ ${c2} dMMy dMM dMMMMMMy ${c1}dMM MM dMMMMMy dMM MM.nMMM dMMMMMM ${c1}MMM ${c2}MMy MMy MMy ${c1}dMM MMy MMy MMy MMy dy dMy ${c1}MMM ${c2}dMM dMM MMy ${c1}dMMMMy dMM dMM dMM dMM dMMMMMMM ${c2} dMMy MMy MMy MMy ${c1}dMMy MM MMy MMy MMy dMM ${c2}dMMy dMM dMM dMM ${c1}dMM MMy dMMMMMy dMM dMM MMy MM ${c2}MMMMMMMMMM MMy MMy MMy ${c1}dMMMyyy MMy MMy MMy dMMMMMMy ${c2} ${c1}dy EOF ;; "linuxmint_small"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} ___________ |_ \\ | ${c2}| _____ ${c1}| | ${c2}| | | | ${c1}| | ${c2}| | | | ${c1}| | ${c2}\\__${c2}___/ ${c1}| \\_________/ EOF ;; "Linux Mint Old"* | "LinuxMintOld"* | "mint_old"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1}MMMMMMMMMMMMMMMMMMMMMMMMMmds+. MMm----::-://////////////oymNMd+` MMd ${c2}/++ ${c1}-sNMd: MMNso/` ${c2}dMM `.::-. .-::.` ${c1}.hMN: ddddMMh ${c2}dMM :hNMNMNhNMNMNh: ${c1}`NMm NMm ${c2}dMM .NMN/-+MMM+-/NMN` ${c1}dMM NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM NMm ${c2}dMM -MMm `MMM dMM. ${c1}dMM NMm ${c2}dMM .mmd `mmm yMM. ${c1}dMM NMm ${c2}dMM` ..` ... ydm. ${c1}dMM hMM- ${c2}+MMd/-------...-:sdds ${c1}dMM -NMm- ${c2}:hNMNNNmdddddddddy/` ${c1}dMM -dMNs-${c2}``-::::-------.`` ${c1}dMM `/dMNmy+/:-------------:/yMMM ./ydNMMMMMMMMMMMMMMMMMMMMM .MMMMMMMMMMMMMMMMMMM EOF ;; "Linux Mint"* | "LinuxMint"* | "mint"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c2} ...-:::::-... ${c2} .-MMMMMMMMMMMMMMM-. .-MMMM${c1}`..-:::::::-..`${c2}MMMM-. .:MMMM${c1}.:MMMMMMMMMMMMMMM:.${c2}MMMM:. -MMM${c1}-M---MMMMMMMMMMMMMMMMMMM.${c2}MMM- `:MMM${c1}:MM` :MMMM:....::-...-MMMM:${c2}MMM:` :MMM${c1}:MMM` :MM:` `` `` `:MMM:${c2}MMM: .MMM${c1}.MMMM` :MM. -MM. .MM- `MMMM.${c2}MMM. :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM: :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM:${c2}MMM: :MMM${c1}:MMMM` :MM. -MM- .MM: `MMMM-${c2}MMM: .MMM${c1}.MMMM` :MM:--:MM:--:MM: `MMMM.${c2}MMM. :MMM${c1}:MMM- `-MMMMMMMMMMMM-` -MMM-${c2}MMM: :MMM${c1}:MMM:` `:MMM:${c2}MMM: .MMM${c1}.MMMM:--------------:MMMM.${c2}MMM. '-MMMM${c1}.-MMMMMMMMMMMMMMM-.${c2}MMMM-' '.-MMMM${c1}``--:::::--``${c2}MMMM-.' ${c2} '-MMMMMMMMMMMMM-' ${c2} ``-:::::-`` EOF ;; "Live Raizo"* | "Live_Raizo"*) set_colors 3 read -rd '' ascii_data <<'EOF' ${c1} `......` -+shmNMMMMMMNmhs/. :smMMMMMmmhyyhmmMMMMMmo- -hMMMMd+:. `----` .:odMMMMh- `hMMMN+. .odNMMMMMMNdo. .yMMMMs` hMMMd. -dMMMMmdhhdNMMMNh` .mMMMh oMMMm` :MMMNs.:sddy:-sMMMN- `NMMM+ mMMMs dMMMo sMMMMMMd yMMMd sMMMm ----` .---` oNMMMMMh `---. .---- .sMMy: /MM/ +dMMms. hMMMMMMN `dMMMMMMm: .+ss+sMNysMMoomMd+ss+. +MMMMMMN` +MM/ hMMMMMNs sMMMMMMm-hNMMMd-hMMMMMMd :yddh+`hMMMMMMN :yddy/` .hMMMMd: `..` EOF ;; "mx_small"*) set_colors 4 6 7 read -rd '' ascii_data <<'EOF' ${c3} \\\\ / \\\\/ \\\\ /\\/ \\\\ / \\ /\\ / \\/ \\ /__________\\ EOF ;; "MX"*) set_colors 4 6 7 read -rd '' ascii_data <<'EOF' ${c3}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMMMMMMMM MMMMMMMMMMNs..yMMMMMMMMMMMMMm: +NMMMMMMM MMMMMMMMMN+ :mMMMMMMMMMNo` -dMMMMMMMM MMMMMMMMMMMs. `oNMMMMMMh- `sNMMMMMMMMM MMMMMMMMMMMMN/ -hMMMN+ :dMMMMMMMMMMM MMMMMMMMMMMMMMh- +ms. .sMMMMMMMMMMMMM MMMMMMMMMMMMMMMN+` ` +NMMMMMMMMMMMMMM MMMMMMMMMMMMMMNMMd: .dMMMMMMMMMMMMMMM MMMMMMMMMMMMm/-hMd- `sNMMMMMMMMMMMMM MMMMMMMMMMNo` -` :h/ -dMMMMMMMMMMMM MMMMMMMMMd: /NMMh- `+NMMMMMMMMMM MMMMMMMNo` :mMMN+` `-hMMMMMMMM MMMMMMh. `oNMMd: `/mMMMMMM MMMMm/ -hMd- `sNMMMM MMNs` - :dMMM Mm: `oMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM EOF ;; "Namib"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} .:+shysyhhhhysyhs+:. -/yyys syyy/- -shy yhs- -yhs shy- +hy yh+ +ds sd+ /ys so sy/ sh smMMNdyo hs yo ymMMMMNNMMNho oy N ydMMMNNMMMMMMMMMmy N N shmMMMMNNMMMMMMMMMMMMMNy N yo ooshmNMMMNNNNMMMMMMMMMMMMMMMMMms oy sd yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy ds /ys sy/ +ds sd+ +hy yh+ -yhs shy- -shy yhs- -/yyys syyy/- .:+shysyhyhhysyhs+:. EOF ;; "NekOS"*) set_colors 3 7 1 read -rd '' ascii_data <<'EOF' ${c1} @@@@@ @@@@@@@@@. @@@@@@@@ @@@ @@@@@@@@@@@ @@. @@@@@@@@@@@@@ . @@@@@@@@@@@@@@@@@ , @@@@@@@@@@@@@@@@@@@ @@@@@${c2}///${c1}@@@@@@@${c2}///${c1}@@@ @@@@${c2}/***${c1}@@@@@@@${c2}**//${c1}@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@ @@@/ /@@@@@@@@@/ /@@@ @@@@@@ @@@${c3}██${c1}@@@@ @@@@@@ @@@@@@/ /@${c2}██${c3}██${c2}██${c1}@@/ /@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ ##########%%%% ##########%% %% @ @@@#######@@%%% @@@ @@@@####@@@@ % @@@ @@@@@@@#@@@@@@@ @@@ @@@@@@@@@@@@@@@ @@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ EOF ;; "Neptune"*) set_colors 7 read -rd '' ascii_data <<'EOF' ${c1} ./+sydddddddys/-. .+ymNNdyooo/:+oooymNNmy/` `/hNNh/.` `-+dNNy:` /mMd/. .++.:oy/ .+mMd- `sMN/ oMMmdy+. `oNNo `hMd. `/ymy/. :NMo oMN- `/dMd: /MM- `mMy -dMN+` mMs .MMo -NMM/ yMs dMh mMMMo:` `NMo /MM/ /ymMMMm- sMN. +Mm: .hMMd` oMN/ +mNs. `yNd/` -dMm- .yMNs: `/.` `/yNNo` .odNNy+-` .:ohNNd/. -+ymNNmdyyyyyyydmNNmy+. `-//sssssss//. EOF ;; "netbsd_small"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c2}\\\\${c1}\`-______,----__ ${c2} \\\\ ${c1}__,---\`_ ${c2} \\\\ ${c1}\`.____ ${c2} \\\\${c1}-______,----\`- ${c2} \\\\ \\\\ \\\\ EOF ;; "NetBSD"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} `-/oshdmNMNdhyo+:-` ${c2}y${c1}/s+:-`` `.-:+oydNMMMMNhs/-`` ${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMNdhmNMMMmdhs+/-` ${c2}-m+${c1}NMMMMMMMMMMMMMMMMMMMMmy+:` ${c2}-N/${c1}dMMMMMMMMMMMMMMMds:` ${c2}-N/${c1}hMMMMMMMMMmho:` ${c2}-N/${c1}-:/++/:.` ${c2} :M+ :Mo :Ms :Ms :Ms :Ms :Ms :Ms :Ms :Ms EOF ;; "Netrunner"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} .:oydmMMMMMMmdyo:` -smMMMMMMMMMMMMMMMMMMds- +mMMMMMMMMMMMMMMMMMMMMMMMMd+ /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/ `hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy` .mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd` dMMMMMMMMMMMMMMMMMMMMMMNdhmMMMMMMMMMMh +MMMMMMMMMMMMMNmhyo+/-. -MMMMMMMMMMMM/ mMMMMMMMMd+:.` `mMMMMMMMMMMMMd MMMMMMMMMMMdy/. yMMMMMMMMMMMMMM MMMMMMMMMMMMMMMNh+` +MMMMMMMMMMMMMMM mMMMMMMMMMMMMMMMMMs -NMMMMMMMMMMMMMMd +MMMMMMMMMMMMMMMMMN. `mMMMMMMMMMMMMMMM/ dMMMMMMMMMMMMMMMMMy hMMMMMMMMMMMMMMMh `dMMMMMMMMMMMMMMMMM-+MMMMMMMMMMMMMMMd` `hMMMMMMMMMMMMMMMMmMMMMMMMMMMMMMMMy /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm: +dMMMMMMMMMMMMMMMMMMMMMMMMd/ -odMMMMMMMMMMMMMMMMMMdo- `:+ydmNMMMMNmhy+-` EOF ;; "Nitrux"*) set_colors 4 read -rd '' ascii_data <<'EOF' ${c1}`:/. `/yo `/yo `/yo .+:. `/yo .sys+:.` `/yo `-/sys+:.` `/yo ./sss+:.` `/yo .:oss+:-` `/yo ./o///:-` `/yo `.-:///////:` `/yo `.://///++//-`` `/yo `.-:////++++/-` `/yo `-://///++o+/-` `/yo `-/+o+++ooo+/-` `/s+:+oooossso/.` `//+sssssso:. `+syyyy+:` :+s+- EOF ;; "nixos_small") set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c1} \\\\ \\\\ // ==\\\\__\\\\/ // // \\\\// ==// //== //\\\\___// // /\\\\ \\\\== // \\\\ \\\\ EOF ;; "nixos_old"*) set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c1} ____ ${c2}_______ ____ ${c1} /####\ ${c2}\######\ /####\ ${c1} ######\ ${c2}\######\ /#####/ ${c1} \######\ ${c2}\######\ /#####/ ${c1} \######\ ${c2}\######\/#####/ ${c1}/\ ${c1} \######\ ${c2}\###########/ ${c1}/##\ ${c1} ________\######\______${c2}\#########/ ${c1}/####\ ${c1} /#######################${c2}\#######/ ${c1}/###### ${c1} /#########################${c2}\######\ ${c1}/######/ ${c1} /###########################${c2}\######\ ${c1}/######/ ${c1} ¯¯¯¯¯¯¯¯¯¯¯¯${c2}/######/${c1}¯¯¯¯¯¯¯¯¯${c2}\######${c1}/######/ ${c2} /######/ ${c2}\####${c1}/######/________ ${c2} _____________/######/ ${c2}\##${c1}/################\ ${c2} /###################/ ${c2}\${c1}/##################\ ${c2} \##################/${c1}\ /###################/ ${c2} \################/${c1}##\ /######/¯¯¯¯¯¯¯¯¯¯¯¯¯ ${c2} ¯¯¯¯¯¯¯¯/######/${c1}####\ /######/ ${c2} /######/${c1}######\${c2}_________${c1}/######/${c2}____________ ${c2} /######/ ${c1}\######\${c2}###########################/ ${c2} /######/ ${c1}\######\${c2}#########################/ ${c2} ######/ ${c1}/#######\${c2}#######################/ ${c2} \####/ ${c1}/#########\${c2}¯¯¯¯¯¯\######\¯¯¯¯¯¯¯¯ ${c2} \##/ ${c1}/###########\${c2} \######\ ${c2} \/ ${c1}/#####/\######\${c2} \######\ ${c1} ${c1}/#####/ \######\${c2} \######\ ${c1} ${c1}/#####/ \######\${c2} \###### ${c1} ${c1}\####/ \######\${c2} \####/ ${c1} ${c1}¯¯¯¯ ¯¯¯¯¯¯¯${c2} ¯¯¯¯ EOF ;; "nixos_colorful"*) set_colors 4 6 4 6 4 6 read -rd '' ascii_data <<'EOF' ${c1} ▗▄▄▄ ${c2}▗▄▄▄▄ ▄▄▄▖ ${c1} ▜███▙ ${c2}▜███▙ ▟███▛ ${c1} ▜███▙ ${c2}▜███▙▟███▛ ${c1} ▜███▙ ${c2}▜██████▛ ${c1} ▟█████████████████▙ ${c2}▜████▛ ${c3}▟▙ ${c1} ▟███████████████████▙ ${c2}▜███▙ ${c3}▟██▙ ${c6} ▄▄▄▄▖ ${c2}▜███▙ ${c3}▟███▛ ${c6} ▟███▛ ${c2}▜██▛ ${c3}▟███▛ ${c6} ▟███▛ ${c2}▜▛ ${c3}▟███▛ ${c6}▟███████████▛ ${c3}▟██████████▙ ${c6}▜██████████▛ ${c3}▟███████████▛ ${c6} ▟███▛ ${c5}▟▙ ${c3}▟███▛ ${c6} ▟███▛ ${c5}▟██▙ ${c3}▟███▛ ${c6} ▟███▛ ${c5}▜███▙ ${c3}▝▀▀▀▀ ${c6} ▜██▛ ${c5}▜███▙ ${c4}▜██████████████████▛ ${c6} ▜▛ ${c5}▟████▙ ${c4}▜████████████████▛ ${c5} ▟██████▙ ${c4}▜███▙ ${c5} ▟███▛▜███▙ ${c4}▜███▙ ${c5} ▟███▛ ▜███▙ ${c4}▜███▙ ${c5} ▝▀▀▀ ▀▀▀▀▘ ${c4}▀▀▀▘ EOF ;; "NixOS"*) set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c1} ▗▄▄▄ ${c2}▗▄▄▄▄ ▄▄▄▖ ${c1} ▜███▙ ${c2}▜███▙ ▟███▛ ${c1} ▜███▙ ${c2}▜███▙▟███▛ ${c1} ▜███▙ ${c2}▜██████▛ ${c1} ▟█████████████████▙ ${c2}▜████▛ ${c1}▟▙ ${c1} ▟███████████████████▙ ${c2}▜███▙ ${c1}▟██▙ ${c2} ▄▄▄▄▖ ▜███▙ ${c1}▟███▛ ${c2} ▟███▛ ▜██▛ ${c1}▟███▛ ${c2} ▟███▛ ▜▛ ${c1}▟███▛ ${c2}▟███████████▛ ${c1}▟██████████▙ ${c2}▜██████████▛ ${c1}▟███████████▛ ${c2} ▟███▛ ${c1}▟▙ ▟███▛ ${c2} ▟███▛ ${c1}▟██▙ ▟███▛ ${c2} ▟███▛ ${c1}▜███▙ ▝▀▀▀▀ ${c2} ▜██▛ ${c1}▜███▙ ${c2}▜██████████████████▛ ${c2} ▜▛ ${c1}▟████▙ ${c2}▜████████████████▛ ${c1} ▟██████▙ ${c2}▜███▙ ${c1} ▟███▛▜███▙ ${c2}▜███▙ ${c1} ▟███▛ ▜███▙ ${c2}▜███▙ ${c1} ▝▀▀▀ ▀▀▀▀▘ ${c2}▀▀▀▘ EOF ;; "Nobara"*) set_colors "#999999" "#d80a0a" "#e5b90b" read -rd '' ascii_data <<'EOF' ${c1} ⢀⣤⣴⣶⣶⣶⣦⣤⡀⠀⣀⣠⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠉⠁⠀⠀⠉⠉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀${c3}⢀⣀⣀⡀${c1}⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀${c3}⢠⣾⣿⣿⣿⣿⣷⡄${c1}⠀⠀⠀⠻⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀${c3}⣿⣿⣿⣿⣿⣿⣿⡇${c1}⠀⠀⠀⠀⠀⣀⣀⣬⣽⣿⣿⣿⣿⣿⣿⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀${c3}⠈⠻⢿⣿⣿⡿⠟⠁${c1}⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀ ${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠉⠛⠛⢿⣿⣿⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀ ${c2} ⠘⢿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀ ${c2} ⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠉⠁ EOF ;; "NomadBSD"*) set_colors 4 read -rd '' ascii_data <<'EOF' ${c1} _======__ (===============\\ (===================\\ _ _---__ (= ====- (= ====== (== ====== (== ====== (==\\ \\=-_ _=/ /====/ (==\\ \\========/ /====/ /====-_ (==\\ \\=====/ /==/ /===-- /================/ /===- \\===========/ EOF ;; "GhostBSD"*) set_colors 4 read -rd '' ascii_data <<'EOF' ${c1} ,gggggg. ,agg9* .g) .agg* ._.,gg* ,gga* (ggg*' ,ga* ,ga* ,ga' .ag* ,ga' .agga' 9g' .agg'g*,a 'gggg*',gga' .gg*' .gga* .gga* (ga* 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 ;; "OmniOS"*) set_colors 15 3 8 read -rd '' ascii_data <<'EOF' ${c1} ____ __ __ _ _ _ / __ \ | \/ || \ | || | | | | || || \| || | | |__| || |\/| || , `${c2}_${c1}||${c2}_${c1}| ${c2}____${c1} \____/ |_| |_||_|\${c2}/ __ \ / ___| | | | ||(__ ${c3}community${c2} | |__| | ___)| ${c3}edition${c2} \____/ |____/ EOF ;; "openbsd_small") set_colors 3 7 6 1 8 read -rd '' ascii_data <<'EOF' ${c1} _____ \\- -/ \\_/ \\ | ${c2}O O${c1} | |_ < ) 3 ) / \\ / /-_____-\\ EOF ;; "OpenBSD"*) set_colors 3 7 6 1 8 read -rd '' ascii_data <<'EOF' ${c3} _ (_) ${c1} | . ${c1} . |L /| . ${c3} _ ${c1} _ . |\ _| \--+._/| . ${c3}(_) ${c1} / ||\| Y J ) / |/| ./ J |)'( | ` F`.'/ ${c3} _ ${c1} -<| F __ .-< ${c3}(_) ${c1} | / .-'${c3}. ${c1}`. /${c3}-. ${c1}L___ J \\ < ${c3}\ ${c1} | | ${c5}O${c3}\\${c1}|.-' ${c3} _ ${c1} _J \\ .- \\${c3}/ ${c5}O ${c3}| ${c1}| \\ |${c1}F ${c3}(_) ${c1} '-F -<_. \\ .-' `-' L__ __J _ _. >-' ${c1})${c4}._. ${c1}|-' ${c1} `-|.' /_. ${c4}\_| ${c1} F /.- . _.< /' /.' .' `\\ /L /' |/ _.-'-\\ /'J ___.---'\| |\ .--' V | `. ` |/`. `-. `._) / .-.\\ \\ ( `\\ `.\\ EOF ;; "openEuler"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} `.cc.` ``.cccccccc..` `.cccccccccccccccc.` ``.cccccccccccccccccccccc.`` `..cccccccccccccccccccccccccccc..` `.ccccccccccccccc${c2}/++/${c1}ccccccccccccccccc.` .ccccccccccccccc${c2}mNMMNdo+oso+${c1}ccccccccccc. .cccccccccc${c2}/++odms+//+mMMMMm/:+syso/${c1}cccc .ccccccccc${c2}yNNMMMs:::/::+o+/:${c1}c${c2}dMMMMMm${c1}cccc .ccccccc${c2}:+NmdyyhNNmNNNd:${c1}ccccc${c1}${c2}:oyyyo:${c1}cccc .ccc${c2}:ohdmMs:${c1}cccc${c2}+mNMNmy${c1}ccccccccccccccccc .cc${c2}/NMMMMMo////:${c1}c${c2}:///:${c1}cccccccccccccccccc .cc${c2}:syysyNMNNNMNy${c1}ccccccccccccccccccccccc .cccccccc${c2}+MMMMMNy${c1}c${c2}:/+++/${c1}cccccccccccccccc .ccccccccc${c2}ohhhs/${c1}c${c2}omMMMMNh${c1}ccccccccccccccc .ccccccccccccccc${c2}:MMMMMMMM/${c1}cccccccccccccc .cccccccccccccccc${c2}sNNNNNd+${c1}cccccccccccccc. `..cccccccccccccccc${c2}/+/:${c1}cccccccccccccc..` ``.cccccccccccccccccccccccccccc.`` `.cccccccccccccccccccccc.` ``.cccccccccccccc.`` `.cccccccc.` `....` EOF ;; "OpenIndiana"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} .sy/ .yh+ ${c1}-+syyyo+- ${c2} /+. ${c1}+ddo/---/sdh/ ${c2} ym- ${c1}`hm+ `sms${c2} ym-```````.-. ${c1}sm+ sm/ ${c2} ym- +s ${c1}hm. /mo ${c2} ym- /h ${c1}omo ym: ${c2} ym- `os` ${c1}smo` .ym+ ${c2} ym- .os- `` ${c1}:ymy+///oyms- ${c2} ym- .+s+. ..` ${c1}`:+oo+/-` ${c2} -//oyo- -:` .:oys/. +- `./oyys/. h+` `.-:+oyyyo/-` `/ossssysso+/-.` EOF ;; "openmamba"*) set_colors 7 2 read -rd '' ascii_data <<'EOF' ${c1} ````` .-/+ooooooooo+/:-` ./ooooooooooooooooooo+:. -+oooooooooooooooooooooooo+- .+ooooooooo+/:---::/+ooooooooo+. :oooooooo/-` `-/oo${c2}s´${c1}oooo.${c2}s´${c1} :ooooooo/` `${c2}sNds${c1}ooo${c2}sNds${c1} -ooooooo- ${c2}:dmy${c1}ooo${c2}:dmy${c1} +oooooo: :oooooo- .ooooooo .://:` :oooooo+ ./+o+:` -ooooooo` `oooooo+ `ooooooo: /oooooo+ -ooooooo: :ooooooo. :ooooooo+. .+ooooooo: :oooooooo+-` `-+oooooooo: .+ooooooooo+/::::://oooooooooo+. -+oooooooooooooooooooooooo+- .:ooooooooooooooooooo+:. `-:/ooooooooo+/:.` `````` EOF ;; "OpenMandriva"*) set_colors 4 read -rd '' ascii_data <<'EOF' ${c1} `````` `-:/+++++++//:-.` .:+++oooo+/:.`` `` `:+ooooooo+:. `-:/++++++/:.` -+oooooooo:` `-++o+/::::://+o+/- `/ooooooooo- -+oo/.` `-/oo+. `+ooooooooo. :os/` .+so: +sssssssss/ :ss/ `+ss- :ssssssssss` sss` .sso ossssssssss `yyo sys `sssssssssss` `yys `yys `sssssssssss: +yy/ +yy: oyyyyyyyyyys. `oyy/` `+yy+ :yyyyyyyyyyyo. `+yhs:. `./shy/ oyyyyyyyyyyys:` .oyhys+:----/+syhy+. ` `syyyyyyyyyyyyo-` .:osyhhhhhyys+:``.:` `oyyyyyyyyyyyyys+-`` `.----.```./oo. /yhhhhhhhhhhhhhhyso+//://+osyhy/` `/yhhhhhhhhhhhhhhhhhhhhhhhhy/` `:oyhhhhhhhhhhhhhhhhhhyo:` .:+syhhhhhhhhys+:-` ``....`` EOF ;; "OpenStage"*) set_colors 2 read -rd '' ascii_data <<'EOF' ${c1} /(/ .(((((((, /(((((((((/ .(((((/,/(((((, *(((((* ,(((((/ (((((* .*/(( *((((/ (//(/* /((((* ((((((((((, . /((((* (((((((((((((. ((. *((((/ ,(((((((( ,(((/ (((((/ ** ,((((((* /(((((. .(((((/ //(((* *(((((/ .(((((, ((/ .(((((/. .(((((, /((((* ,(((((((/ ,((((( /(((((((((((((((((((/. /(((((((((/ /(((((((((((((((((, /(((((((((((/ */(((((//*. */((/(/(/* EOF ;; *"Wrt"*) 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 ;; "OPNsense"*) set_colors 7 202 read -rd '' ascii_data <<'EOF' ${c1} .''''''''''''''''''''''''''''''''''' oocc:::::::::::::::::::::::::::::::cox ;00; o0O .,:' .;;;;;;;;;;;;;;;;;;;;;;;;;; ;:, .',;;cxOOOOOOOOOOOOOOOOOOOOOOOkd:;;,.. .,cll:' ':llc,. ,;;:okxdxd: :dxdxko:;;, .xxxx0XNNK0O. .O0KNNX0xxxx. ,${c2}cc:${c1},. .,${c2}:cc${c1}, ........;${c2}ccc:${c1};. .;${c2}:ccc${c1};........ ${c2}ccccccccccccccc ccccccccccccccc${c1} ........;${c2}ccc:${c1};. .;${c2}:ccc${c1};........ ,${c2}cc:${c1},. .,${c2}:cc${c1}, .xxxx0XNNK0O. .O0KNNX0xxxx. ,;;:okxdxd: :dxdxko:;;, .,cll:' ':llc,. .,,;,ckOOOOOOOOOOOOOOOOOOOOOOOOx;,;,'. .:l' ........................... ;:; lOk' cdd ;lccccccccccccccccccccccccccccccccccc:. 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 ;; "orchid_small"*) set_colors 255 127 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}#- :##: EOF ;; "orchid"*) set_colors 255 127 127 read -rd '' ascii_data <<'EOF' ${c2} .==. .-${c3}#${c1}@@${c3}#${c2}-. .-${c3}##${c1}@@@@${c3}##${c2}-. .-${c3}##${c1}@@@@@@@@${c3}##${c2}-. :*${c1}@@@@@${c3}####${c1}@@@@@${c2}*: ..:*${c1}@@@@${c2}==--==${c1}@@@@${c2}*:.. .-*${c1}%%${c3}#${c2}==${c3}#${c1}@@${c3}#${c2}====${c3}#${c1}@@${c3}#${c2}==${c3}#${c1}%%${c2}*-. .-${c3}#${c1}@@@@@${c3}##${c2}==${c3}#${c1}@@${c2}++${c1}@@${c3}##${c2}==${c3}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c2}#${c1}@@@${c3}#${c2}++#====${c3}#${c2}++#${c1}@@@${c2}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c3}#${c2}-==**${c3}###${c2}+:--:+${c3}###${c2}**==-${c3}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c3}#${c2}-==**${c3}###${c2}+:--:+${c3}###${c2}**==-${c3}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c2}#${c1}@@@${c3}#${c2}++#====${c3}#${c2}++#${c1}@@@${c2}#${c1}@@@@@${c3}#${c2}-. .-${c3}#${c1}@@@@@${c3}##${c2}==${c3}#${c1}@@${c2}++${c1}@@${c3}##${c2}==${c3}#${c1}@@@@@${c3}#${c2}-. .-*${c1}%%${c3}#${c2}==${c3}#${c1}@@${c3}#${c2}====${c3}#${c1}@@${c3}#${c2}==${c3}#${c1}%%${c2}*-. ..:*${c1}@@@@${c2}==--==${c1}@@@@${c2}*:.. :*${c1}@@@@@${c3}####${c1}@@@@@${c2}*: .-${c3}##${c1}@@@@@@@@${c3}##${c2}-. .-${c3}##${c1}@@@@${c3}##${c2}-. .-${c3}#${c1}@@${c3}#${c2}-. .==. EOF ;; "OS Elbrus"*) set_colors 4 7 3 read -rd '' ascii_data <<'EOF' ${c1} ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ ██ ██ ██ ███████ ███████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ ███████ ██ ██ ██ ██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██ ██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ ██ ██ ███████████████████████████ EOF ;; "PacBSD"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} :+sMs. `:ddNMd- -o--` -sMMMMh: `+N+`` yMMMMMs` .....-/-... `mNh/ yMMMMMmh+-`:sdmmmmmmMmmmmddy+-``./ddNMMm yNMMNMMMMNdyyNNMMMMMMMMMMMMMMMhyshNmMMMm :yMMMMMMMMMNdooNMMMMMMMMMMMMMMMMNmy:mMMd +MMMMMMMMMmy:sNMMMMMMMMMMMMMMMMMMMmshs- :hNMMMMMMN+-+MMMMMMMMMMMMMMMMMMMMMMMs. .omysmNNhy/+yNMMMMMMMMMMNMMMMMMMMMNdNNy- /hMM:::::/hNMMMMMMMMMMMm/-yNMMMMMMN.mMNh` .hMMMMdhdMMMMMMMMMMMMMMmo `sMMMMMMN mMMm- :dMMMMMMMMMMMMMMMMMMMMMdo+ oMMMMMMN`smMNo` /dMMMMMMMMMMMMMMMMMMMMMNd/` :yMMMMMN:-hMMM. :dMMMMMMMMMMMMMMMMMMMMMNh` oMMMMMMNo/dMNN` :hMMMMMMMMMMMMMMMMMMMMMMNs--sMMMMMMMNNmy++` sNMMMMMMMMMMMMMMMMMMMMMMMmmNMMMMMMNho::o. :yMMMMMMMMMMMMMNho+sydNNNNNNNmysso/` -// /dMMMMMMMMMMMMMs- ````````..`` .oMMMMMMMMMMMMNs` ./y:` +dNMMNMMMMMMMmy` ``./ys. `/hMMMMMMMMMMMNo-`` `.+yy+-` `-/hmNMNMMMMMMmmddddhhy/-` `-+oooyMMMdsoo+/:. EOF ;; "Panwah"*) set_colors 7 1 0 read -rd '' ascii_data <<'EOF' ${c1} HHH HAAAH HHH HAAAAH HAAAH HAAAAAAH HAAAAH HAAAAAAH HAAAAAH HAAAAAAAAH${c2}WWWWWWWWWWWWWWWW ${c1}HAAAAAH$ HAAAAAAAAH${c2}WWWWWWWWWWWWWWWWWWWW${c1} HAAAAAH HAA${c2}WWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}AAAAAH${c2} WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}WAH${c2} WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWW${c1}AAA${c2}WWWW WWWWWWWWWWWWWWWWWWWWWWWWWWW WWWW${c1}AAA${c2}WWWWW WWWWWWW WWWWWWWWWWWWWWW WW${c1}AAA${c2}WWWWWWWWWWWWWWWWW WWWWW${c1}AAA${c2}WWWWWWWW ${c1}AAA${c2}WWWWW${c1}OOOOOOOOOOO${C2}WWWWWWWWWWW${c1}AAA${c2}WWWWWW ${c1}OOOO${c3}GGGGGGG${c1}OOOO${c2}WWWWWWWWWW${c1}AAA${c2}WWWW ${c1}OOO${c3}GGGGGGG${c1}OOO${c2}WWWWWWWWWWWW${c1}AAA${c2}W ${c1}OOOOOOOOO EOF ;; "parabola_small"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} __ __ __ _ .`_//_//_/ / `. / .` / .` /.` /` EOF ;; "Parabola"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} `.-. `. `.` `:++. `-+o+. `` `:+/. `:+/. `-+oooo+ ``-::-.:+/. `:+/. `-+oooooo+ `.-:///- ..` .-. `-+oooooooo- `..-..` `+ooooooooo: `` :oooooooo/ `ooooooo: `oooooo: -oooo+. +ooo/` -ooo- `+o/. /+- //` -. EOF ;; "Pardus"*) set_colors 3 7 6 1 8 read -rd '' ascii_data <<'EOF' ${c1} .smNdy+- `.:/osyyso+:.` -+ydmNs. /Md- -/ymMdmNNdhso/::/oshdNNmdMmy/. :dM/ mN. oMdyy- -y `-dMo .Nm .mN+` sMy hN+ -: yMs `+Nm. `yMMddMs.dy `+` sMddMMy` +MMMo .` . oMMM+ `NM/ `````.` `.````` +MN` yM+ `.-:yhomy ymohy:-.` +My yM: yo oy :My +Ms .N` `N. +h sM+ `MN - -::::::- : :o:+`NM` yM/ sh -dMMMMd- ho +y+My .dNhsohMh-//: /mm/ ://-yMyoshNd` `-ommNMm+:/. oo ./:+mMNmmo:` `/o+.-somNh- :yy: -hNmos-.+o/` ./` .s/`s+sMdd+``+ddMs+s`/s. `/. : -y. -hNmddmNy. .y- : -+ `..` +- EOF ;; "Parrot"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} `:oho/-` `mMMMMMMMMMMMNmmdhy- dMMMMMMMMMMMMMMMMMMs` +MMsohNMMMMMMMMMMMMMm/ .My .+dMMMMMMMMMMMMMh. + :NMMMMMMMMMMMMNo `yMMMMMMMMMMMMMm: /NMMMMMMMMMMMMMy` .hMMMMMMMMMMMMMN+ ``-NMMMMMMMMMd- /MMMMMMMMMMMs` mMMMMMMMsyNMN/ +MMMMMMMo :sNh. `NMMMMMMm -o/ oMMMMMMM. `NMMMMMM+ +MMd/NMh mMm -mN` /MM `h: dM` . :M- d: -+ - EOF ;; "Parsix"*) set_colors 3 1 7 8 read -rd '' ascii_data <<'EOF' ${c2}-/+/:. ${c2}.syssssys. ${c1}.--. ${c2}ssssssssso${c1} ..--. :++++++: ${c2}+ssssssss+${c1} ./++/+++: /+++++++++.${c2}.yssooooy`${c1}-+///////o- /++++++++++.${c2}+soooos:${c1}:+////////+- :+++++////o-${c2}oooooo-${c1}+/////////- `-/++//++-${c4}.-----.-${c1}:+/////:- ${c3}-://::--${c1}-:/:${c4}.--.````.--.${c1}:::-${c3}--::::::. ${c3}-/:::::::://:${c4}.:-` `-:${c3}`:/:::::::--/- ${c3}/::::::::::/-${c4}--. .-.${c3}-/://///::::/ ${c3}-/:::::::::/:${c4}`:-. .-:${c3}`:///////////- `${c3}-::::--${c1}.-://.${c4}---....---${c1}`:+/:-${c3}--::::-` ${c1}-/+///+o/-${c4}.----.${c1}.:oo+++o+. ${c1}-+/////+++o:${c2}syyyyy.${c1}o+++++++++: ${c1}.+////+++++-${c2}+sssssy+${c1}.++++++++++\ ${c1}.+:/++++++.${c2}.yssssssy-${c1}`+++++++++: ${c1}:/+++++- ${c2}+sssssssss ${c1}-++++++- ${c1}`--` ${c2}+sssssssso ${c1}`--` ${c2}+sssssy+` ${c2}`.::-` EOF ;; "PCBSD"* | "TrueOS"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} .. s. +y yN -MN `. :NMs `m .yMMm` `No `-/+++sdMMMNs+-`+Ms `:oo+-` .yMMMMy` `-+oNMh -oo- +NMMMM/ oMMh- .s+` ` oMMMMM/ - oMMMhy. +s`- :: :MMMMMd -o `mMMMy`s+ y+ h .Ny+oNMMMMMN/ sh+NMMMMo +y s+ .ds -NMMMMMMMMMMNdhdNMMMMMMh` +s -h .NM` `hMMMMMMMMMMMMMMNMMNy: h- y- hMN` hMMmMMMMMMMMMNsdMNs. -y m` mMMy` oMMNoNMMMMMMo` sMMMo `m m` :NMMMdyydMMMMo+MdMMMs sMMMd` `m h- `+ymMMMMMMMM--M+hMMN/ +MMMMy -h :y `.sMMMMM/ oMM+.yMMNddNMMMMMm y: y: `s dMMN- .MMMM/ :MMMMMMMMMMh :y `h: `mdmMMM/ yMMMMs sMMMMMMMMN- :h` so -NMMMN /mmd+ `dMMMMMMMm- os :y: `yMMM` `+NMMMMMMNo`:y: /s+`.omy /NMMMMMNh/.+s: .+oo:-. /mdhs+::oo+. -/o+++++++++++/- EOF ;; "PCLinuxOS"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} mhhhyyyyhhhdN dyssyhhhhhhhhhhhssyhN Nysyhhyo/:-.....-/oyhhhssd Nsshhy+. `/shhysm dohhy/ -shhsy dohhs` /hhys N+hho ${c2}+ssssss+- .+syhys+ ${c1}/hhsy ohhh` ${c2}ymmo++hmm+`smmy/::+y` ${c1}shh+ +hho ${c2}ymm- /mmy+mms ${c1}:hhod /hh+ ${c2}ymmhhdmmh.smm/ ${c1}.hhsh +hhs ${c2}ymm+::-` /mmy` ` ${c1}/hh+m yyhh- ${c2}ymm- /dmdyosyd` ${c1}`yhh+ ohhy` ${c2}://` -/+++/- ${c1}ohhom N+hhy- `shhoh sshho. `+hhyom dsyhhs/. `:ohhhoy dysyhhhso///://+syhhhssh dhyssyhhhhhhyssyyhN mddhdhdmN EOF ;; "pearOS"*) set_colors 2 3 1 1 5 4 read -rd '' ascii_data <<'EOF' \e[0;32m .+yh sMMMo sMMN+ +o: \e[0m \e[93m ./oyyys+. :dMMMMMMMMMm/ :MMMMMMMMMMMMMy yMMMMMMMMMMMMMN \e[0m \e[31m mMMMMMMMMMMMMs` yMMMMMMMMMMMMo -mMMMMMMMMMMMMM` oMMMMMMMMMMMMMMM` \e[0m \e[95m oMMMMMMMMMMMMMMMMy .MMMMMMMMMMMMMMMMMMy` +MMMMMMMMMMMMMMMMMMMMy/` /MMMMMMMMMMMMMMMMMMMMMMMNds \e[0m \e[34m `mMMMMMMMMMMMMMMMMMMMMMMMM/ .mMMMMMMMMMMMMMMMMMMMMMM+ `oNMMMMMMMMMMMMMMMMMMd- `+hMMMMMMMMMMMMMms- -/osyhhyso:. \e[0m EOF ;; "Pengwin"*) set_colors 5 5 13 read -rd '' ascii_data <<'EOF' ${c3} ...` ${c3} `-///:-` ${c3} .+${c2}ssys${c3}/ ${c3} +${c2}yyyyy${c3}o ${c2} ${c2} -yyyyyy: ${c2} `.:/+ooo+/:` -yyyyyy+ ${c2} `:oyyyyyys+:-.`syyyyyy: ${c2} .syyyyyyo-` .oyyyyyyo ${c2} `syyyyyy `-+yyyyyyy/` ${c2} /yyyyyy+ -/osyyyyyyo/. ${c2} +yyyyyy- `.-:::-.` ${c2} .yyyyyy- ${c3} :${c2}yyyyy${c3}o ${c3} .+${c2}ooo${c3}+ ${c3} `.::/:. EOF ;; "Peppermint"*) set_colors 1 15 3 read -rd '' ascii_data <<'EOF' ${c1} PPPPPPPPPPPPPP ${c1} PPPP${c2}MMMMMMM${c1}PPPPPPPPPPP ${c1} PPPP${c2}MMMMMMMMMM${c1}PPPPPPPP${c2}MM${c1}PP ${c1} PPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP${c2}MMMMM${c1}PP ${c1} PPPPPPPPPPPP${c2}MMMMMM${c1}PPPPPPP${c2}MMMMMMM${c1}PP ${c1} PPPPPPPPPPPP${c2}MMMMMMM${c1}PPPP${c2}M${c1}P${c2}MMMMMMMMM${c1}PP ${c1} PP${c2}MMMM${c1}PPPPPPPPPP${c2}MMM${c1}PPPPP${c2}MMMMMMM${c1}P${c2}MM${c1}PPPP ${c1} P${c2}MMMMMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPP${c2}MMMMMM${c1}PPPPPPPP ${c1} P${c2}MMMMMMMMMMMM${c1}PPPPP${c2}MM${c1}PP${c2}M${c1}P${c2}MM${c1}P${c2}MM${c1}PPPPPPPPPPP ${c1} P${c2}MMMMMMMMMMMMMMMM${c1}PP${c2}M${c1}P${c2}MMM${c1}PPPPPPPPPPPPPPPP ${c1} P${c2}MMM${c1}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP${c2}MMMMM${c1}P ${c1} PPPPPPPPPPPPPPPP${c2}MMM${c1}P${c2}M${c1}P${c2}MMMMMMMMMMMMMMMM${c1}PP ${c1} PPPPPPPPPPP${c2}MM${c1}P${c2}MM${c1}PPPP${c2}MM${c1}PPPPP${c2}MMMMMMMMMMM${c1}PP ${c1} PPPPPPPP${c2}MMMMMM${c1}PPPPP${c2}MM${c1}PPPPPP${c2}MMMMMMMMM${c1}PP ${c1} PPPP${c2}MM${c1}P${c2}MMMMMMM${c1}PPPPPP${c2}MM${c1}PPPPPPPPPP${c2}MMMM${c1}PP ${c1} PP${c2}MMMMMMMMM${c1}P${c2}M${c1}PPPP${c2}MMMMMM${c1}PPPPPPPPPPPPP ${c1} PP${c2}MMMMMMM${c1}PPPPPPP${c2}MMMMMM${c1}PPPPPPPPPPPP ${c1} PP${c2}MMMM${c1}PPPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP ${c1} PP${c2}MM${c1}PPPPPPPP${c2}MMMMMMMMMM${c1}PPPP ${c1} PPPPPPPPPP${c2}MMMMMMMM${c1}PPPP ${c1} PPPPPPPPPPPPPP EOF ;; "Pisi"*) set_colors 12 7 6 1 8 read -rd '' ascii_data <<'EOF' ${c1} \Fv/!- `:?lzC ${c1} Q!::=zFx! ${c2}`;v6WBCicl;` ${c1},vCC\!::#. ${c1} ,%:::,'` ${c2}+#%@@FQ@@. ,cF%i${c1}``-',::a? ${c1} +m:,'```${c2}}3,/@@Q\@@ "af-${c1} `-'"7f =o'.` ${c2}/m' :Q@:Qg ,kl${c1} `.|o :k` '${c2}$+ 'Narm >d,${c1} ii #`${c2}!p. `C , 'd+${c1} %' ${c2} !0m `6Kv =a m+ !A !\L|: :|L\! $: .8` Q''%Q#' '#Q%''Q `0- :6 E|.6QQu uQQ6.|E p: i{ \jts9? ?9stj\ u\ |a` -''. `e> ,m+ ${c1}'^ !`${c2}s@@@@a${c1}'"`+`${c2} >e' !3|${c1}`|=>>r- ${c2}'U%:${c1} '>>>=:`\3! 'xopE| ${c2}`'${c1} `ledoz- `;=>>+`${c2}`^llci/|==|/iclc;`${c1}'>>>>: `^`+~ ${c2}````${c1} !!-^ EOF ;; "PikaOS"*) set_colors 11 read -rd '' ascii_data <<'EOF' ${c1} '',,, ,,,d, ',, ,,' ', ,. ., ' . . ' . .. oddddkdlc:;,.. .. . ............lllc, . . ....................: . . . .................... '. ..........'o........d0XX0. ....lllllllcOOOcllllll............cxlxc...;okkkx. ..................................';lc'...lo. .'''''''''''''.....................,;,....... ',,,,,,,,,,,,,,,,''...............dkkkd...... ',,,,,,,,,,,,,,,,,,,'............;okkkd;.... .,,,,,,,,,,,,,,,,,,,,,............;cll;..... ,,,,,,,,,,,,,,,,,,,,'....................:d, ,,,,,,,,,,,,,,,,,,,....................oxxx: .,,,,,,,,,,,,,,,,,'..................oxxxxx. . .,,,,,,,,,,,,,,'.......... ,oxxxxxxx . .;,,,,,,,,,,,,'.. 'cxxxxxxxxx, :dl:,'',,'.... .;lxxxxxxxxxd; ,codol:;'. ...,;cldxxxxxxxxxoc. .:cxxxxxdlccccc:ccldxxxxxxxxxxxxxx::. .'::dxxxxxxxxxxxxxxxxxxxxxxxd::'. ..,::cdxxxxxxxxxxxxxdc::,.. ...,;:::::::;,... EOF ;; "phyOS"*) set_colors 33 33 7 1 read -rd '' ascii_data <<'EOF' ${c1}.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.^^^^^. :777777777777777777777777777777^~7777: .~~~~~~~~~~~~~~~~~~~~~^~7777!:!777!. ~7!!!!!!!!!!!!!!!!!^:!777~^!777~ ^77777!!!!!!!!!7!^^7777^^7777^ ^7777~.~~~~^. .~7777^~7777: :!777~^!777~. !777!:~777!: .!777!:~777!:~77~:!777!. ~777!^~7777:^~^!777~ ^7777^^7777^^7777^ :7777~^!7777777: .!777!:!7777!. .~777!:~77~. ~7777^~~ ^7777. :77: .. EOF ;; "PNM Linux"* | "WHPNM Linux"*) set_colors 33 9 15 202 read -rd '' ascii_data <<'EOF' ${c1} ``.---..` `--` ``.---........-:.${c2}-::`${c1} ${c2}./::-${c1}........${c2}--::.````${c1} ${c2}.:://:::${c1}----${c2}::::-..${c1} ..${c2}--:::::--::::++-${c1}.` ${c2}`-:-`${c1} .-ohy+::${c2}-:::${c1}/sdmdd:.${c2} `-:- .-:::${c1}...${c3}sNNmds$y${c1}o/+${c3}sy+NN$m${c1}d+.`${c2}-:::-. `.-:-${c1}./${c3}dN${c1}()${c3}yyooosd${c1}()${c3}$m${c1}dy${c2}-.::-.`${c1} ${c2}`.${c1}-...-${c3}+hNdyyyyyydmy${c1}:......${c2}`${c1} ``..--.....-${c3}yNNm${c4}hssssh${c3}mmdo${c1}.........``` `-:://:.....${c3}hNNNNN${c4}mddm${c3}NNNmds${c1}.....//::--` ```.:-...${c3}oNNNNNNNNNNNNNNmd/${c1}...:-.``` .....${c3}hNNNNNNNNNNNNNNmds${c1}....` --...${c3}hNNNNNNNNNNNNNNmdo${c1}..... .:...${c3}/NNNNNNNNNNNNNNdd${c1}:....` `-...${c3}+mNNNNNNNNNNNmh${c1}:...-. ${c4}.:+o+/:-${c1}:+oo+///++o+/:-${c4}:/+ooo/:. ${c4}+oo/:o- +oooooso.` ${c4}.` ` `/ .-//- EOF ;; "popos_small"* | "pop_os_small"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1}______ \\ _ \\ __ \\ \\ \\ \\ / / \\ \\_\\ \\ / / \\ ___\\ /_/ \\ \\ _ __\\_\\__(_)_ (___________)` EOF ;; "Pop!_OS"* | "popos"* | "pop_os"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} ///////////// ///////////////////// ///////${c2}*767${c1}//////////////// //////${c2}7676767676*${c1}////////////// /////${c2}76767${c1}//${c2}7676767${c1}////////////// /////${c2}767676${c1}///${c2}*76767${c1}/////////////// ///////${c2}767676${c1}///${c2}76767${c1}.///${c2}7676*${c1}/////// /////////${c2}767676${c1}//${c2}76767${c1}///${c2}767676${c1}//////// //////////${c2}76767676767${c1}////${c2}76767${c1}///////// ///////////${c2}76767676${c1}//////${c2}7676${c1}////////// ////////////,${c2}7676${c1},///////${c2}767${c1}/////////// /////////////*${c2}7676${c1}///////${c2}76${c1}//////////// ///////////////${c2}7676${c1}//////////////////// ///////////////${c2}7676${c1}///${c2}767${c1}//////////// //////////////////////${c2}'${c1}//////////// //////${c2}.7676767676767676767,${c1}////// /////${c2}767676767676767676767${c1}///// /////////////////////////// ///////////////////// ///////////// EOF ;; "Porteus"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} `.-:::-.` -+ydmNNNNNNNmdy+- .+dNmdhs+//////+shdmdo. .smmy+-` ./sdy: `omdo. `.-/+osssso+/-` `+dy. `yms. `:shmNmdhsoo++osyyo-``oh. hm/ .odNmds/.` ``.....:::-+s /m: `+dNmy:` `./oyhhhhyyooo++so ys `yNmy- .+hmmho:-.` ``` s: yNm+` .smNd+. `` /Nm: +dNd+` yN+ `smNy. dm oNNy` hy -mNm. +y oNNo `y` sNN: `: +NN: ` .mNo /mm` /my` .sy` .+: ` EOF ;; "postmarketos_small") set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} /\\ / \\ / \\ \\__ \\ /\\__ \\ _\\ / / \\/ __ / / ____/ \\ / \\ \\ \\ /_____/ /________\\ EOF ;; "PostMarketOS"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} /\\ / \\ / \\ / \\ / \\ / \\ \\ \\ /\\ \\____ \\ / \\____ \\ \\ / / \\ \\ / / \\ ___\\ / / \\ / ____ / / \\/ / \\ / / __________/ \\ / \\ \\ \\ / \\ \\ \\ / / / \\ /___________/ /____________________\\ EOF ;; "PuffOS"*) set_colors 3 read -rd '' ascii_data <<'EOF' ${c1} _,..._,m, ,/' '""; / ". ,'mmmMMMMmm. \ _/-"^^^^^"""%#%mm, ; ,m,_,' "###) ;, (###% \#/ ;##mm. ^#/ __ ___ ; (######) ; //.\\ //.\\ ; \####/ _; (#\"// \\"/#) ; ,/ @##\ \##/ = `"=" ,;mm/ `\##>.____,...,____,<####@ EOF ;; "Proxmox"*) set_colors 7 202 read -rd '' ascii_data <<'EOF' ${c1} .://:` `://:. `hMMMMMMd/ /dMMMMMMh` `sMMMMMMMd: :mMMMMMMMs` ${c2}`-/+oo+/:${c1}`.yMMMMMMMh- -hMMMMMMMy.`${c2}:/+oo+/-` `:oooooooo/${c1}`-hMMMMMMMyyMMMMMMMh-`${c2}/oooooooo:` `/oooooooo:${c1}`:mMMMMMMMMMMMMm:`${c2}:oooooooo/` ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/. .+ooooooo+-${c1}`oNMMMMNo`${c2}-+ooooooo+. -+ooooooo/.${c1}`sMMs`${c2}./ooooooo+- :oooooooo/${c1}`..`${c2}/oooooooo: :oooooooo/`${c1}..${c2}`/oooooooo: -+ooooooo/.`${c1}sMMs${c2}`./ooooooo+- .+ooooooo+-`${c1}oNMMMMNo${c2}`-+ooooooo+. ./ooooooo+-${c1} +NMMMMMMMMN+ ${c2}-+ooooooo/. `/oooooooo:`${c1}:mMMMMMMMMMMMMm:${c2}`:oooooooo/` `:oooooooo/`${c1}-hMMMMMMMyyMMMMMMMh-${c2}`/oooooooo:` `-/+oo+/:`${c1}.yMMMMMMMh- -hMMMMMMMy.${c2}`:/+oo+/-` ${c1} `sMMMMMMMm: :dMMMMMMMs` `hMMMMMMd/ /dMMMMMMh` `://:` `://:` EOF ;; "Puppy"* | "Quirky Werewolf"* | "Precise Puppy"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} `-/osyyyysosyhhhhhyys+- -ohmNNmh+/hMMMMMMMMNNNNd+dMMMMNM+ yMMMMNNmmddo/NMMMNNNNNNNNNo+NNNNNy .NNNNNNmmmddds:MMNNNNNNNNNNNh:mNNN/ -NNNdyyyhdmmmd`dNNNNNmmmmNNmdd/os/ .Nm+shddyooo+/smNNNNmmmmNh. :mmd. NNNNy:` ./hmmmmmmmNNNN: hNMh NMN- -++- +NNNNNNNNNNm+..-sMMMM- .MMo oNNNNo hNNNNNNNNmhdNNNMMMMM+ .MMs /NNNN/ dNmhs+:-` yMMMMMMMM+ mMM+ .. `sNN+. hMMMMhhMMM- +MMMmo:...:sNMMMMMms:` hMMMMm.hMMy yMMMMMMMMMMMNdMMMMMM::/+o+//dMMd` sMMMMMMMMMMN+:oyyo:sMMMNNMMMNy` :mMMMMMMMMMMMmddNMMMMMMMMmh/ /dMMMMMMMMMMMMMMMMMMNdy/` .+hNMMMMMMMMMNmdhs/. .:/+ooo+/:-. EOF ;; "pureos_small"*) set_colors 2 7 7 read -rd '' ascii_data <<'EOF' ${c1} _____________ | _________ | | | | | | | | | | |_________| | |_____________| EOF ;; "PureOS"*) set_colors 2 7 7 read -rd '' ascii_data <<'EOF' ${c1}dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd dNm//////////////////////////////////mNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNd dNm//////////////////////////////////mNd dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd EOF ;; "Peropesis"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1}#### #### #### ### #### #### #### # #### # # # # # # # # # # # # # #### ### #### # # #### ### # # # # # # # # # # # # # # # #### # # ### # #### #### # #### EOF ;; "Q4OS"*) set_colors 4 1 read -rd '' ascii_data <<'EOF' ${c1} .:***** :=====. ${c1}.:******** :========. ${c1} .*********** :===========. ${c1}.:************ :============- ${c1} .************** :============== ${c1} :*************** :=============== ${c1}:**************. :=============== ${c1}.*************: .=============. ${c1}*************. .============: ${c1}:############. ${c2}:==: ${c1}:##############. ${c2}:======: ${c1}:################ ${c2}.==========: ${c1}:############### ${c2}.===========: ${c1}:############## ${c2}.===========: ${c1}:############# ${c2}.=========: ${c1}:########### ${c2}.=====: ${c1}.######### ${c2}.=: ${c1}.##### EOF ;; "Qubes"*) set_colors 4 5 7 6 read -rd '' ascii_data <<'EOF' ${c1} `..--..` `.----------.` `..----------------..` `.------------------------.`` `..-------------....-------------..` .::----------..`` ``..----------:+: :////:----..` `..---:/ossso :///////:` `/osssssso :///////: /ssssssso :///////: /ssssssso :///////: /ssssssso :///////: /ssssssso :///////: /ssssssso :////////-` .:sssssssso :///////////-.` `-/osssssssssso `//////////////:-```.:+ssssssssssssso- .-://////////////sssssssssssssso/-` `.:///////////sssssssssssssso:. .-:///////ssssssssssssssssss/` `.:////ssss+/+ssssssssssss. `--//- `-/osssso/. EOF ;; "Qubyt"*) set_colors 4 5 0 4 read -rd '' ascii_data <<'EOF' ${c1} ########################${c2}(${c3}ooo ${c1} ########################${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}###${c2}(${c3}ooo ${c1}##${c3}o ${c2}((((${c3}ooo ${c1}###${c2}(${c3}ooo o${c2}((${c1}### ${c3}oooooo ${c1}###${c2}(${c3}ooo oo${c2}((${c1}###${c3}o ${c1}###${c2}(${c3}ooo ooo${c2}((${c1}### ${c1}################${c2}(${c3}oo oo${c2}((((${c3}o ${c2}(((((((((((((((((${c3}ooo ooooo oooooooooooooooooo o EOF ;; "Quibian"*) set_colors 3 7 read -rd '' ascii_data <<'EOF' ${c1} `.--::::::::--.` `.-:::-..`` ``..-::-.` .::::-` .${c2}+${c1}:`` `.-::.` .::::.` -::::::-` `.::. `-:::-` -:::::::::--..`` .::` `::::- .${c2}oy${c1}:::::::---.```.: `::` -:::: `.-:::::::::::-.``` `:: .::::.`-:::::::::::::. `:. -::::.::::::::::::::: -: ::::::::::::::::::::` `: :::::::::::::::::::- `: ::::::::::::::::::: -- .:::::::::::::::::` `:` `::::::::::::::::: -` .:::::::::::::::- -` `::::::::::::::- `.` .::::::::::::- `` `.--:::::-. EOF ;; "Radix"*) set_colors 1 2 read -rd '' ascii_data <<'EOF' ${c2} .:oyhdmNo `/yhyoosdms` -o+/ohmmho- ..`.:/:-` `.--:::-.``${c1} .+ydNMMMMMMNmhs:` `omMMMMMMMMMMMMMMNh- oNMMMNmddhhyyhhhddmy. mMMMMNmmddhhysoo+/:-` yMMMMMMMMMMMMMMMMNNh. -dmmmmmNNMMMMMMMMMMs` -+oossyhmMMMMMMMMd- `sNMMMMMMMMMMMMMm: `yMMMMMMNmdhhhh: `sNMMMMMNmmho. `+mMMMMMMMy. .yNMMMm+` `:yd+. EOF ;; "Raspbian_small"*) set_colors 2 1 read -rd '' ascii_data <<'EOF' ${c1} .. ,. :oo: .:oo: 'o\\o o/o: ${c2} :: . :: . :: :: ::: ::: :: :' '',.'' ': ::: :::: ::: ':, '' ,:' ' ~::~ ' EOF ;; "Raspbian"*) set_colors 2 1 read -rd '' ascii_data <<'EOF' ${c1} `.::///+:/-. --///+//-:`` `+oooooooooooo: `+oooooooooooo: /oooo++//ooooo: ooooo+//+ooooo. `+ooooooo:-:oo- +o+::/ooooooo: `:oooooooo+`` `.oooooooo+- `:++ooo/. :+ooo+/.` ${c2}...` `.----.` ``.. .::::-``:::::::::.`-:::-` -:::-` .:::::::-` `-:::- `::. `.--.` `` `.---.``.::` .::::::::` -::::::::` ` .::` .:::::::::- `::::::::::``::. -:::` ::::::::::. ::::::::::.`:::- :::: -::::::::. `-:::::::: :::: -::- .-:::-.``....``.-::-. -::- .. `` .::::::::. `..`.. -:::-` -::::::::::` .:::::` :::::::` -::::::::::` :::::::. .::::::: -::::::::. :::::::: `-:::::` ..--.` ::::::. `...` `...--..` `...` .:::::::::: `.-::::-` EOF ;; "ravynOS") set_colors 15 read -rd '' ascii_data <<'EOF' ${c1} ..oooo.. .o$$$$$$$$$$$$$$o. od$$$$$$$$$$$$$$$$$$$$$o o$$$$$$$$$$$$$$$$$$$$$$$$$$o .$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$. d$$$$$$$$$********$$$$$$$$$$$$$$$b d$$$$$$$* °****?$$$$$$$$b $$$$$$* °$$$$$$$ d$$** .oo$$$$$$$$b *° o$$$$$$$$$$$$$$ o$$$$$$$$$$$$$$$$ o$$$$$$$$$$$$$$$$$P *$$$$$$$$$$$$$$$$$ ?$$$$$$$$$$$$$$P $$$$$$$$$$$$$P $$$$$$$$$$$$P ?$$$$$$$$$$* $$$$$$$*° d$$$$*° ° EOF ;; "Reborn OS"* | "Reborn"*) set_colors 0 4 6 read -rd '' ascii_data <<'EOF' ${c1} .======================. ${c1}.#${c2}#*********${c1}%%${c2}*********#${c1}%: ${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%- ${c1}-%${c2}************${c1}%%${c2}************${c1}%= ${c1}+%${c2}******${c1}%%#####${c1}%%#####%%${c2}******${c1}%+ ${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%* ${c1}*%${c2}*#${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##. ${c1}.##${c2}*****${c1}#%%%#${c3}*++${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%. ${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%: ${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%- ${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%= ${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%- ${c1}.##${c2}*****${c1}#%%%#${c3}*+*${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%: ${c1}.##${c2}**${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##. ${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%* ${c1}+%${c2}******${c1}%%#####%%#####%%${c2}******${c1}%* ${c1}-%${c2}************${c1}%%${c2}************${c1}%= ${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%- ${c1}:%${c2}#*********${c1}%%${c2}*********#${c1}%: ${c1}.======================. EOF ;; "Red Star"* | "Redstar"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} .. .oK0l :0KKKKd. .xKO0KKKKd ,Od' .d0000l .c;. .'''... ..'. .,:cloddxxxkkkkOOOOkkkkkkkkxxxxxxxxxkkkx: ;kOOOOOOOkxOkc'...',;;;;,,,'',;;:cllc:,. .okkkkd,.lko .......',;:cllc:;,,'''''. .cdo. :xd' cd:. ..';'',,,'',,;;;,'. . .ddl.;doooc'..;oc;'..';::;,'. coo;.oooolllllllcccc:'. . .ool''lllllccccccc:::::;. ;lll. .':cccc:::::::;;;;' :lcc:'',..';::::;;;;;;;,,. :cccc::::;...';;;;;,,,,,,. ,::::::;;;,'. ..',,,,'''. ........ ...... EOF ;; "Redcore"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} RRRRRRRRR RRRRRRRRRRRRR RRRRRRRRRR RRRRR RRRRRRRRRRRRRRRRRRRRRRRRRRR RRRRRRR RRR RRR RRRRRRRR RRRRR RR RRRRRRRRR RRRR RR RRRRRRRR RR RRRRRR RRRR R RRRRRRRRRRRRRR RR RRRRR RRRR R RRRRRRRRRRRRRRRRRR R RRRRR RRRR RRRRRRRRRRRRRRRRRRR R RRRR RRR RRRRRRRRRRRRRRRRRRRR R RRRR RRR RRRRRRRRRRRRRRRRRRRR RRRR RR RRRRRRRRRRRRRRRRRRR RRR RR RRRRRRRRRRRRRRRRR RRR RR RRRRRRRRRRRRRR RR R RRRR RR EOF ;; "redhat_old" | "rhel_old"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} `.-..........` `////////::.`-/. -: ....-////////. //:-::///////////` `--::: `-://////////////: //////- ``.-:///////// .` `://////:-.` :///////::///:` .-/////////:---/////////////: .-://////////////////////. ${c2} yMN+`.-${c1}::///////////////-` ${c2} .-`:NMMNMs` `..-------..` MN+/mMMMMMhoooyysshsss MMM MMMMMMMMMMMMMMyyddMMM+ MMMM MMMMMMMMMMMMMNdyNMMh` hyhMMM MMMMMMMMMMMMMMMMyoNNNMMM+. MMMMMMMM MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM EOF ;; "Redhat"* | "Red Hat"* | "rhel"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} .MMM..:MMMMMMM MMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMM. MMMMMMMMMMMMMMMMMMMMMM ,MMMMMMMMMMMMMMMMMMMMMM: MMMMMMMMMMMMMMMMMMMMMMMM .MMMM' MMMMMMMMMMMMMMMMMMMMMM MMMMMM `MMMMMMMMMMMMMMMMMMMM. MMMMMMMM MMMMMMMMMMMMMMMMMM . MMMMMMMMM. `MMMMMMMMMMMMM' MM. MMMMMMMMMMM. MMMM `MMMMMMMMMMMMM. ,MMMMM. `MMMMMMMMMMMMMMMMM. ,MMMMMMMM. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM `MMMMMMMMMMMMMMMMMMMMMMMM: ``MMMMMMMMMMMMMMMMM' EOF ;; "Refracted Devuan"* | "Refracted_Devuan"*) set_colors 8 7 read -rd '' ascii_data <<'EOF' ${c2} A VW VVW\\ .yWWW\\ ,;,,u,;yy;;v;uyyyyyyy ,WWWWW^ *WWWWWWWWWWWWWWWW/ $VWWWWw , ^*%WWWWWWVWWX $WWWW** ,yy , "**WWW/' **' ,yy/WWW*` &WWWWwy `*` <,ywWW%VWWW* yWWWWWWWWWW* ., "**WW%W ,&WWWWWM*"` ,y/ &WWWww ^* XWWX*^ ,yWWWW09 .WWWWWWWWwy, *` &WWWWWM WWWWWWWWWWWWWww, (WWWWW` /#####WWW*********** ^WWWW VWW Wh. V/ EOF ;; "Regata"*) set_colors 7 1 4 5 3 2 read -rd '' ascii_data <<'EOF' ${c1} ddhso+++++osydd dho/.`hh${c2}.:/+/:.${c1}hhh`:+yd do-hhhhhh${c2}/sssssss+`${c1}hhhhh./yd h/`hhhhhhh${c2}-sssssssss:${c1}hhhhhhhh-yd do`hhhhhhhhh${c2}`ossssssso.${c1}hhhhhhhhhh/d d/hhhhhhhhhhhh${c2}`/ossso/.${c1}hhhhhhhhhhhh.h /hhhhhhhhhhhh${c3}`-/osyso/-`${c1}hhhhhhhhhhhh.h shh${c4}-/ooo+-${c1}hhh${c3}:syyso+osyys/`${c1}hhh${c5}`+oo`${c1}hhh/ h${c4}`ohhhhhhho`${c3}+yyo.${c1}hhhhh${c3}.+yyo`${c5}.sssssss.${c1}h`h s${c4}:hhhhhhhhho${c3}yys`${c1}hhhhhhh${c3}.oyy/${c5}ossssssso-${c1}hs s${c4}.yhhhhhhhy/${c3}yys`${c1}hhhhhhh${c3}.oyy/${c5}ossssssso-${c1}hs hh${c4}./syyys+.${c1} ${c3}+yy+.${c1}hhhhh${c3}.+yyo`${c5}.ossssso/${c1}h`h shhh${c4}``.`${c1}hhh${c3}`/syyso++oyys/`${c1}hhh${c5}`+++-`${c1}hh:h d/hhhhhhhhhhhh${c3}`-/osyso+-`${c1}hhhhhhhhhhhh.h d/hhhhhhhhhhhh${c6}`/ossso/.${c1}hhhhhhhhhhhh.h do`hhhhhhhhh${c6}`ossssssso.${c1}hhhhhhhhhh:h h/`hhhhhhh${c6}-sssssssss:${c1}hhhhhhhh-yd h+.hhhhhh${c6}+sssssss+${c1}hhhhhh`/yd dho:.hhh${c6}.:+++/.${c1}hhh`-+yd ddhso+++++osyhd EOF ;; "Regolith"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} ``....``` `.:/++++++/::-.` -/+++++++:.` -++++++++:` `/++++++++- `/++++++++. -/+/ /++++++++/ `` .:+++:. -+++++++++/ ./++++:+++/-` :+++++++++/ `+++++++/-` :++++++++++` .-/+++++++` `:++++++++++/``.-/++++:-:::-` ` `:+++++++++++++++++/:.` ./` :++/-:+++++++++/:-.. -/+. +++++++++/::-...:/+++/-..````..-/+++. `......``.::/+++++++++++++++++++++/. -/+++++++++++++++++++++/. .:/+++++++++++++++/-` `.-:://////:-. EOF ;; "RhaymOS"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} ### ##### ####### /######## ############# ########### ,########### #### ####(.. #### #### ####* ########## #### ##### ##### (#### #### ########### ########### #### ######### ########## ################################### ##################################### ####################################### EOF ;; "rocky_small"*) set_colors 2 read -rd '' ascii_data <<'EOF' ${c1} `-/+++++++++/-.` `-+++++++++++++++++-` .+++++++++++++++++++++. -+++++++++++++++++++++++. +++++++++++++++/-/+++++++ +++++++++++++/. ./+++++ +++++++++++:. ./+++ +++++++++:` `:/:` .:/ -++++++:` .:+++++:` .+++-` ./+++++++++:` `-` ./+++++++++++- -+++++++++:-.` EOF ;; "rocky"*) set_colors 35 read -rd '' ascii_data <<'EOF' ${c1} __wgliliiligw_, _williiiiiiliilililw, _%iiiiiilililiiiiiiiiiii_ .Qliiiililiiiiiiililililiilm. _iiiiiliiiiiililiiiiiiiiiiliil, .lililiiilililiiiilililililiiiii, _liiiiiiliiiiiiiliiiiiF{iiiiiilili, jliililiiilililiiili@` ~ililiiiiiL iiiliiiiliiiiiiili>` ~liililii liliiiliiilililii` -9liiiil iiiiiliiliiiiii~ "4lili 4ililiiiiilil~| -w, )4lf -liiiiililiF' _liig, )' )iiiliii@` _QIililig, )iiii>` .Qliliiiililw )<>~ .mliiiiiliiiiiil, _gllilililiililii~ giliiiiiiiiiiiiT` -^~$ililili@~~' EOF ;; "Rosa"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} ROSAROSAROSAROSAR ROSA AROS ROS SAROSAROSAROSAR AROS RO ROSAROSAROSAROSAROSAR RO ARO AROSAROSAROSARO AROS ROS ARO ROSAROS OSAR ROSA ROS RO AROSA ROSAROSAROSA ROSAR RO RO ROSAR ROSAROSAROSAR R ROSARO RO RO ROSA AROSAROSAROSA AR ROSARO AR RO AROS ROSAROSAROSA ROS AROSARO AR RO AROS ROSAROSARO ROSARO ROSARO AR RO ROS AROSAROS ROSAROSA AROSAR AR RO ROSA ROS ROSAROSAR ROSARO RO RO ROS AROSAROSAROSA ROSARO AR ARO ROSA ROSAROSAROS AROSAR ARO ARO OROSA R ROSAROS ROS RO AROSAROS AROSAROSAR RO AROS AROSAROSAROSARO AROS ROSA SARO ROSAROSAROSAROSAR EOF ;; "Astra Linux"*) if [[ $ascii_distro == *"ALCE"* ]]; then set_colors 160 231 else set_colors 32 231 fi read -rd '' ascii_data <<'EOF' ${c1} AA ${c1} AaaA ${c1} Aa${c2}/\\${c1}aA ${c1} Aa${c2}/${c1}aa${c2}\\${c1}aA ${c1} Aa${c2}/${c1}aAAa${c2}\\${c1}aA ${c1} aA${c2}/${c1}aaAAaa${c2}\\${c1}Aa ${c1} aA${c2}/${c1}aaAAAAaa${c2}\\${c1}Aa ${c1} aaaaaaAAAAa${c2}/${c1}aaAAAAAAaa${c2}\\${c1}aAAAAaaaaa ${c1} aAAa${c2}-----${c1}aaaaaAAAAAAAAAAaaaaa${c2}-----${c1}aAAa ${c1} aAA${c2}\ ${c1}aAAAAAAAAAAAAAAAAAAAAAAa${c2} /${c1}AAa ${c1} aAa${c2}\\${c1}aAAA${c2}\\${c1}AAAA${c2}\\${c1}AAAA${c2}\\${c1}AAA${c2}\\${c1}AAa${c2}/${c1}aAa ${c1} aAa${c2}\\${c1}aA${c2}\\\\${c1}AAA${c2}\\\\${c1}AAA${c2}\\\\${c1}AA${c2}\\\\/${c1}aAa ${c1} aAA${c2}\\${c1}aA${c2}\\\\${c1}AAA${c2}\\\\${c1}AAA${c2}\\\\${c1}Aa${c2}/${c1}AAa ${c1} aA${c2}\\${c1}aA${c2}\\\\${c1}AAA${c2}\\\\${c1}AAA${c2}\\\\/${c1}Aa ${c1} aA${c2}/${c1}AA${c2}\\\\\\${c1}AA${c2}\\\\\\${c1}AA${c2}\\\\\\${c1}Aa ${c1} aA${c2}/\\${c1}AAa${c2}\\\\\\${c1}Aa${c2}\\\\\\${c1}Aa${c2}\\\\\\${c1}Aa ${c1} aA${c2}/\\\\${c1}AAa${c2}\\\\/\\${c1}a${c2}\\\\\\${c1}Aa${c2}\\\\${c1}Aa ${c1} aA${c2}/${c1}a${c2}\\\\\\${c1}Aa${c2}\\/${c1}AA${c2}\\\\\\\\\\${c1}Aa${c2}\\\\${c1}Aa ${c1} aA${c2}/${c1}aA${c2}\\\\/${c1}aAa aAa${c2}\\\\\\${c1}Aa${c2}\\${c1}Aa ${c1} aA${c2}/\\${c1}A${c2}\\/${c1}Aa aA${c2}\\\\${c1}A${c2}\\\\${c1}Aa ${c1} A${c2}|/${c1}aaAa aAaa${c2}\\|${c1}A ${c1} aAaa aaAa EOF ;; "sabotage"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} .|'''.| | '||''|. ..|''|| ||.. ' ||| || || .|' || ''|||. | || ||'''|. || || . '|| .''''|. || || '|. || |'....|' .|. .||. .||...|' ''|...|' |''||''| | ..|'''.| '||''''| || ||| .|' ' || . || | || || .... ||''| || .''''|. '|. || || .||. .|. .||. ''|...'| .||.....| EOF ;; "Sabayon"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} ........... .. .. .. .. .. ${c2}o ${c1}.. .. ${c2}:W' ${c1}.. .. ${c2}.d. ${c1}.. :. ${c2}.KNO ${c1}.: :. ${c2}cNNN. ${c1}.: : ${c2}dXXX, ${c1}: : ${c2}. dXXX, .cd, ${c1}: : ${c2}'kc .. dKKK. ,ll;:' ${c1}: : ${c2}.xkkxc;..dkkkc',cxkkl ${c1}: :. ${c2}.,cdddddddddddddo:. ${c1}.: .. ${c2}:lllllll: ${c1}.. .. ${c2}',,,,, ${c1}.. .. .. .. .. ............... EOF ;; "Sailfish"*) set_colors 4 5 7 6 read -rd '' ascii_data <<'EOF' ${c1} _a@b _#b (b _@@ @_ _, _#^@ _#*^^*gg,aa@^^ #- @@^ _a@^^ @_ *g#b ^@_ ^@_ ^@_ @ @(b (b #b(b#^ _@_#@^ _a@a*^ ,a@*^ EOF ;; "SalentOS"*) set_colors 2 1 3 7 read -rd '' ascii_data <<'EOF' ${c1} ``..`` .-:+oshdNMMMMMMNdhyo+:-.` -oydmMMMMMMMMMMMMMMMMMMMMMMMMMMNdhs/ ${c4} +hdddm${c1}NMMMMMMMMMMMMMMMMMMMMMMMMN${c4}mdddh+` ${c2}`MMMMMN${c4}mdddddm${c1}MMMMMMMMMMMM${c4}mdddddm${c3}NMMMMM- ${c2} mMMMMMMMMMMMN${c4}ddddhyyhhddd${c3}NMMMMMMMMMMMM` ${c2} dMMMMMMMMMMMMMMMMM${c4}oo${c3}MMMMMMMMMMMMMMMMMN` ${c2} yMMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMd ${c2} +MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMy ${c2} :MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMMo ${c2} .MMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM/ ${c2} `NMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMM- ${c2} mMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMN` ${c2} hMMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMm ${c2} /MMMMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMMMMy ${c2} .+hMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMms: ${c2} `:smMMMMMMMMM${c4}hh${c3}MMMMMMMMMNh+. ${c2} .+hMMMMMM${c4}hh${c3}MMMMMMdo: ${c2} `:smMM${c4}yy${c3}MMNy/` ${c2}.- ${c4}`${c3}:. EOF ;; "ShastraOS"*) set_colors 6 read -rd '' ascii_data <<'EOF' ${c1} ..,;;,'. ':oo. ;o: :o, ol .oo ..';co: ooo',;:looo; .;lddl cx .xl .c:' dd xx xx ,d; .xd cx. xx dd. cx: .xo xx ,x: 'xl xx cx' .xl xd, xx .xd dx. .xo:xx xx .xx 'c xx:.'lx: ..,;cxxxo .';:codxxl lxo cd. 'xo :o, 'ld .oc'...';lo EOF ;; "Sasanqua"*) set_colors 5 1 5 read -rd '' ascii_data <<'EOF' ${c1} __,_ _╕⌐≡µ,√* º≡, ñ "' ░ ╞) _, ▒ __ _,,,_ _Ñ╜^≡µ ≡' 1µ╕º^el "%µ ∩' K Yµ& 1l ╞) ▒ √" ^Ü 1" `1µ Γ ║h _¿▒∞√;, ^≡, K ^u_ ⌐* ╙¥ ╓Ñ ⌠ º≡u,, ║I Å Ü _∩" ║µ_¿╝" Yu_ ▒ ╙º≡_ ║l1µ ║l , Y∞µ___≡ª Γl ╓hⁿ╖I 1l Ñ ╓Ñ Ñ ¥,___≡1l ╓Ñ ¿╕ª Ü ╙L ¿¿∩ª ╓P ª≡,__ *ⁿ┤ⁿÑⁿ^µ √ª ⁿ≡,,__√╝* "ⁿⁿ*" EOF ;; "Salient OS"* | "SalientOS"* | "salientos"*) set_colors 6 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} 00xxxx0 00xxxxxx0 0xxxxxxxxx 000000 0xxxxxxxxxx xxxxxxxxxx0 0xxxxxxxxxxx0 xxxxxxxxxxxxx0 0xxxxxxxxxxxx0 0xxxxxxxxxxxxxx0 0xxxxxxxxxxxxx0 0xxxxxxxxxxxxxxx0 0xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxxxx0 0xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx 0xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxx 0xxxxxxxxxxxxxxxxxx0 0xxxxxxxxxxxx0 0xxxxxxxxxxxxxxxxxx xxxxxxxxxxx0 0xxxxxxxxxxxxxxxxx xxxxxxxxxx0 0xxxxxxxxxxxxxxxx xxxxxxxxx0 0xxxxxxxxxxxx0 0xxxxxxx0 0xxxxxxx0 xxxxxx0 0xxx00 x00 EOF ;; "Salix"*) set_colors 2 read -rd '' ascii_data <<'EOF' ${c1} __s_aaaaaaaaauuoXSSSSSSSS: ._xSSSSSSSSSSSSSSSSSSSSSSSSSS: _aSSSSSSSSSSSSSSSSSSSSSSSSSSSSS: _xSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS: nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS} nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}` XSSSSSSSSSSSSSSSSSSSSSSSSSSSS"` SSSSSSSSSSSSSSSSSSSSSSSSS!"` -""""""""""""""""""""""` EOF ;; "Scientific"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} =/;;/- +: // /; /; -X H. .//;;;:;;-, X= :+ .-;:=;:;#;. M- ,=;;;#:, ,:#;;:=, ,@ :# :#.=/++++/=.$= #= ,#; #/:+/;,,/++:+/ ;+. ,+/. ,;@+, ,#H;, ,/+, ;+;;/= @. ${c3}.H${c2}#${c3}#X ${c1}-X :///+; ;+=;;;.@, ${c2}.X${c3}M${c2}@$. ${c1}=X.//;=#/. ,;: :@#= =$H: .+#- ,#= #;-///==///-// =#, ;+ :#-;;;:;;;;-X- +: @- .-;;;;M- =M/;;;-. -X :;;::;;-. #- :+ ,-;;-;:== ,X H. ;/ #= // +; '////' EOF ;; "Septor"*) set_colors 4 7 4 read -rd '' ascii_data <<'EOF' ${c1}ssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssss ssssssssssssssssssssssssssssssssssssssss ssssssssss${c2};okOOOOOOOOOOOOOOko;${c1}ssssssssss sssssssss${c2}oNWWWWWWWWWWWWWWWWWWNo${c1}sssssssss ssssssss${c2}:WWWWWWWWWWWWWWWWWWWWWW:${c1}ssssssss ssssssss${c2}lWWWWWk${c1}ssssssssss${c2}lddddd:${c1}ssssssss ssssssss${c2}cWWWWWNKKKKKKKKKKKKOx:${c1}ssssssssss ${c3}yy${c1}sssssss${c2}OWWWWWWWWWWWWWWWWWWWWx${c1}sssssss${c3}yy yyyyyyyyyy${c2}:kKNNNNNNNNNNNNWWWWWW:${c3}yyyyyyyy yyyyyyyy${c2}sccccc;${c3}yyyyyyyyyy${c2}kWWWWW:${c3}yyyyyyyy yyyyyyyy${c2}:WWWWWWNNNNNNNNNNWWWWWW;${c3}yyyyyyyy yyyyyyyy${c2}.dWWWWWWWWWWWWWWWWWWWNd${c3}yyyyyyyyy yyyyyyyyyy${c2}sdO0KKKKKKKKKKKK0Od;${c3}yyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy EOF ;; "Serene"*) set_colors 6 6 read -rd '' ascii_data <<'EOF' ${c1} __---''''''---__ . . : : - _______----_- s __----''' __---- __h_ _-' _-' h '-._''--.._ ; _-' y : ''-._ '-._/ _-' : y ':_ _--'' y m .--'' '-._.;' m m : : m y '.._ '-__ y : '--._ '''----___ : y '--._ ''-- _ y h '--._ : h s __'; vs - __..--'' - :_..--'' : . _ . `''---______---''-`` EOF ;; "SharkLinux"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} `:shd/ `:yNMMMMs `-smMMMMMMN. .+dNMMMMMMMMs .smNNMMMMMMMMm` .sNNNNNNNMMMMMM/ `omNNNNNNNMMMMMMm /dNNNNNNNNMMMMMMM+ .yNNNNNNNNNMMMMMMMN` +mNNNNNNNNNMMMMMMMMh .hNNNNNNNNNNMMMMMMMMMs +mMNNNNNNNNMMMMMMMMMMMs .hNMMNNNNMMMMMMMMMMMMMMMd .oNNNNNNNNNNMMMMMMMMMMMMMMMo `:+syyssoo++++ooooossssssssssso: EOF ;; "Siduction"*) set_colors 4 4 read -rd '' ascii_data <<'EOF' ${c1} _aass, jQh: =$w QWmwawQW )$QQQQ@( .. _a_a. ~??^ syDY?Sa, _mW>-<$c jWmi imm. ]QQwayQE 4QQmgwmQQ` ?WWQWP' -9QQQQQ@'._aas, _a%is. .adYYs,. -"?!` aQB*~^3$c _Qh;.nm .QWc. {QL ]QQp;..vmQ/ "QQmmQ@ -QQQggmQP ]QQWmggmQQ( -???" "$WQQQY` __, ?QQQQQQW! _yZ!?q, - .yWY!!Sw, "???^ .QQa_=qQ mQm>..vmm $QQWQQP $QQQgmQQ@ "???" _aa, -9WWQQWY` _mB>~)$a -~~ mQms_vmQ. ]WQQQQQP -?T??" EOF ;; "Slackel"*) set_colors 3 read -rd '' ascii_data <<'EOF' ${c1} _aawmmmmmwwaaaaas,,,_. .ammmmm###mmmmmmm###BQmm##mws .am###mmBmBmBmBmBmBmmmmm#mmmm#2 ~,. .WMd 'XM0. ,OMMK' OMMM7' .XMK *WMO:. .;xNMMk' NNNMKl. .xWMx ^ONMMNXMMMKx; V 'xNMWKkxllox0NMWk' ''''' ':dOOXXKOxl' EOF ;; "opensuse_small" | "suse_small"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} _______ __| __ \\ / .\\ \\ \\__/ | _______| \\_______ __________/ EOF ;; "openSUSE"* | "open SUSE"* | "SUSE"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c2} .;ldkO0000Okdl;. .;d00xl:^''''''^:ok00d;. .d00l' 'o00d. .d0Kd'${c1} Okxol:;,. ${c2}:O0d. .OK${c1}KKK0kOKKKKKKKKKKOxo:, ${c2}lKO. ,0K${c1}KKKKKKKKKKKKKKK0P^${c2},,,${c1}^dx:${c2} ;00, .OK${c1}KKKKKKKKKKKKKKKk'${c2}.oOPPb.${c1}'0k.${c2} cKO. :KK${c1}KKKKKKKKKKKKKKK: ${c2}kKx..dd ${c1}lKd${c2} 'OK: dKK${c1}KKKKKKKKKOx0KKKd ${c2}^0KKKO' ${c1}kKKc${c2} dKd dKK${c1}KKKKKKKKKK;.;oOKx,..${c2}^${c1}..;kKKK0.${c2} dKd :KK${c1}KKKKKKKKKK0o;...^cdxxOK0O/^^' ${c2}.0K: kKK${c1}KKKKKKKKKKKKK0x;,,......,;od ${c2}lKk '0K${c1}KKKKKKKKKKKKKKKKKKKK00KKOo^ ${c2}c00' 'kK${c1}KKOxddxkOO00000Okxoc;'' ${c2}.dKk' l0Ko. .c00l' 'l0Kk:. .;xK0l' 'lkK0xl:;,,,,;:ldO0kl' '^:ldxkkkkxdl:^' EOF ;; "parch"* | "Parch"* | "PARCH"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} ,:lodddd. .:clooood. ;clllooooc ;cclllllloo .cccccllllll . ,cccclllll ':::;; ccccclll; .:::cccccccccccll; ;::::ccccllllllcll: .;::::cccclllloool::; ;;;::::cccclllolc::::;. ;;;::::cccclllccc:::::;. ;;;::::cccclccccc::::::;. ;;;;::::::llcccccc:::::' ;;;;:; ,clllccccccc:: .;; .cllllllcccccc::;::::' .'''''''''',:lddoooolll '.....'''',cdddooooollll ........':oddddoooolllllc ....';ldddddooooolllllc: ,cdddddddooooollllccc :ddddddoooolllllccc ;ddooooolllllcc. :ooollllc. c' EOF ;; "SwagArch"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} .;ldkOKXXNNNNXXK0Oxoc,. ,lkXMMNK0OkkxkkOKWMMMMMMMMMM; 'K0xo ..,;:c:. `'lKMMMMM0 .lONMMMMMM' `lNMk' ${c2} ;WMMMMMMMMMO. ${c1}....::... ${c2} OMMMMMMMMMMMMKl. ${c1}.,;;;;;ccccccc, ${c2} `0MMMMMMMMMMMMMM0: ${c1}.. .ccccccc. ${c2} 'kWMMMMMMMMMMMMMNo. ${c1}.,:' .ccccccc. ${c2} `c0MMMMMMMMMMMMMN,${c1},:c; :cccccc: ${c2} ckl. `lXMMMMMMMMMX${c1}occcc:.. ;ccccccc. ${c2}dMMMMXd, `OMMMMMMWk${c1}ccc;:''` ,ccccccc: ${c2}XMMMMMMMWKkxxOWMMMMMNo${c1}ccc; .cccccccc. ${c2} `':ldxO0KXXXXXK0Okdo${c1}cccc. :cccccccc. :ccc:' `cccccccc:, '' EOF ;; "Tails"*) set_colors 5 7 read -rd '' ascii_data <<'EOF' ${c1} `` ./yhNh syy/Nshh `:o/ N:dsNshh █ `ohNMMd N-/+Nshh `yMMMMd N-yhMshh yMMMMd N-s:hshh █ yMMMMd so//. N-oyNsyh yMMMMd d Mms. N:hohhhd:. yMMMMd syMMM+ Nsyh+-..+y+- yMMMMd :mMM+ +hy- -ss/`yMMMM `+d+ :sy/. ./yNMMMMm `` .+ys- `:+hNMMMMMMy/` `hNmmMMMMMMMMMMMMdo. dMMMMMMMMMMMMMMMMMNh: +hMMMMMMMMMMMMMMMMMmy. -oNMMMMMMMMMMmy+.` `:yNMMMds/.` .//` EOF ;; "TorizonCore"*) set_colors fg 3 4 8 5 read -rd '' ascii_data <<'EOF' ${c2} `.::-. `-://////:-. `:////////////:. `.-.` `-:///////-. ` `.://///:.` `-::-. `-://:.` .:///////////:. `-:////////:.` `.://///////:-` .:////////////:` `.-/:-` `.:///:-` ${c3}`-+o/.${c2} `.://////-. `.` `.:///////:-` `.` ${c3}`-+sssssso/.${c2} `.--. `-:///:-` -/////////////: ${c3}`+sssssssssssso-${c2} `-://///////:-` .-///////:.` `` ${c3}-/sssssssso/.${c2} ` .:///////////-. .-::.` `-://:-. ${c3}-/sso/.${c2} `.:/:-. `.://///-. `-:////////:-. ${c3}`${c2} `.:////////-. `.-. ${c1}o-${c2} -:///////////:` .:////////////:` ${c1}-o${c2} ${c1}hdho-${c2} `-://///:.` `..` `-://////:.` ${c1}-ohdh${c2} ${c1}/ydddho-${c2} `--.` `.:////:.` `-::.` ${c1}-ohdddy/${c2} ${c1}./ydddho:`${c2} `.://////////:. ${c1}`:ohdddy/.${c2} ` ${c1}`/shddho:`${c2} `.://////////:. ${c1}`:ohddds/`${c2} ` ::-` ${c1}`/shddhs:`${c2} `.:////:.` ${c1}`:shddhs/`${c2} `-:: :///:-` ${c1}`:shddhs/`${c2} `..` ${c1}`/shddhs:`${c2} `-:///- `.:///:-` ${c1}`:ohddhs/`${c2} ${c1}`/shddho:`${c2} `-:///:.` `.:///:-. ${c1}-ohdddy/.${c2} ${c1}./ydddho-${c2} .-:///-.` `.:///:-. ${c1}-+hdddy+//+ydddh+-${c2} .-://:-. `.-///:-. ${c1}-+yddddddy+-${c2} .-://:-. .-://:-. ${c1}./++/.${c2} .-///:-. .-:///:.` `.:///:-` `-:///:.````.:///:-` `-:////////:-` `-::::-` EOF ;; "Trisquel"*) set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c1} ,o$$$o. ,o$$Y"""Y$$b ,o$$$$$$o. ,$$' , Y$$b ,o$$$$$$$$$$$$o. :$ b Y$$. ,$$"' "Y$$$$o. 'b. ,b d$$$ $$' .d$$$$b '$$$$o 'Y$$$Y d$$$' $$' q' 'b '$$$$$o._ _.o$$$$' .$$,_ _,d$ ,$$$$$$$$$$$$${c2}$$$$Y' ${c1} '$$$$aaa$$$' .$$$$$$${c2}$$$$$$$$' ${c1} """" ${c2}d$$$$"' d$$$' .d$$b. $$$$ .$" 'a$. $$$$ $b $$. '$$$. '$b,,. $$$ '$$$. .$$' 'a$$$o._.o$$a' 'a$$$$a' EOF ;; "Twister"*) set_colors 2 1 4 5 7 read -rd '' ascii_data <<'EOF' ${c3}.......................${c4}.......${c5}.,:ccllllcc:.${c4}... ${c3}.......................${c5}.,;cldxkO0KXNNNWNNNX0x: ${c3}.................${c5}.,:ldkOOKK0OkkkkkOKWMMMMMMMNo ${c3}.............${c5},;coxO0Oxo::'${c4}.........${c5},oXMMMMMM0' ${c3}.........${c5},:ldkOOkc;'${c3}...${c4}.............${c5};OMMMMW0:${c4}. ${c3}.......${c5};ldkOxol:'${c3}......${c4}............${c5},dNMMX0''${c4}.. ${c3}....${c5};:oxkxl:'${c3}..........${c4}..........${c5},lOWWXx:.,'${c4}.. ${c3}..${c5},ldxkkd:'${c3}............${c5}.:c${c4}....${c5}':lkNMNOc,cdl'${c4}.. ${c3}.${c5};oxxkkkc'${c3}.........${c5}.:clc;'.';lkKNNKk;;ck00l${c4}... ${c5}.lxxxkkkxoooooddxkOOko'..cok0KOd':::o0NXd;'${c4}... ${c3}.${c5}:odxxkkOOOOOOOkdoi'..:ddxdoc:::od0NWW0c'${c4}..... ${c3}...${c5}':;gggggg;::''.......::::x0XWMMMNO.::'${c4}..... ${c3}..............${c5};......,;od0KNWMWNK0O:::do'${c4}..... ${c3}...............${c5}'cclgggggggxdll":::'XKoo,${c4}...... ${c3}.................${c5}',,,,,,,::::;ooNWMWOc'${c4}....... ${c3}..................${c5},:loxxxO0KXNNXK0ko:'${c4}........ ${c3}..................${c5}';::;oTcoggcoF":::'${c4}......... ${c3}..................${c5}':o,.:::::::::,p'${c4}........... ${c3}..................${c5};'ccdxkOOOdxlf'${c4}............. ${c3}.................${c5},l;;XgggggXP:'${c4}............... ${c3}................${c5};lco;::::::'${c4}.................. ${c3}..............${c5}.';ggggol'`${c4}..................... ${c3}.............${c5}':oo:''${c3}...${c4}....................... EOF ;; "Ubuntu Cinnamon"* | "Ubuntu-Cinnamon"*) set_colors 1 7 read -rd '' ascii_data <<'EOF' ${c1} .-/+oooooooo+/-. `:+oooooooooooooooooo+:` -+oooooooooooooooooooooooo+- .ooooooooooooooooooo${c2}:ohNd${c1}oooooo. /oooooooooooo${c2}:/+oo++:/ohNd${c1}ooooooo/ +oooooooooo${c2}:osNdhyyhdNNh+:+${c1}oooooooo+ /ooooooooo${c2}/dN/${c1}ooooooooo${c2}/sNNo${c1}ooooooooo/ .ooooooooo${c2}oMd:${c1}oooooooooooo${c2}:yMy${c1}ooooooooo. +ooooo${c2}:+o/Md${c1}oooooo${c2}:sm/${c1}oo/ooo${c2}yMo${c1}oooooooo+ ooo${c2}:sdMdosMo${c1}ooooo${c2}oNMd${c1}//${c2}dMd+${c1}o${c2}:so${c1}ooooooooo oooo${c2}+ymdosMo${c1}ooo${c2}+mMm${c1}+/${c2}hMMMMMh+hs${c1}ooooooooo +oooooo${c2}:${c1}:${c2}/Nm:${c1}/${c2}hMNo${c1}:y${c2}MMMMMMMMMM+${c1}oooooooo+ .ooooooooo${c2}/NNMNy${c1}:o${c2}NMMMMMMMMMMo${c1}ooooooooo. /oooooooooo${c2}:yh:${c1}+m${c2}MMMMMMMMMMd/${c1}ooooooooo/ +oooooooooo${c2}+${c1}/h${c2}mMMMMMMNds//o${c1}oooooooo+ /oooooooooooo${c2}+:////:o/ymMd${c1}ooooooo/ .oooooooooooooooooooo${c2}/sdh${c1}oooooo. -+oooooooooooooooooooooooo+- `:+oooooooooooooooooo+:` .-/+oooooooo+/-. EOF ;; "Ubuntu Budgie"* | "Ubuntu-Budgie"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c2} ./oydmMMMMMMmdyo/. :smMMMMMMMMMMMhs+:++yhs: `omMMMMMMMMMMMN+` `odo` /NMMMMMMMMMMMMN- `sN/ `hMMMMmhhmMMMMMMh sMh` .mMmo- /yMMMMm` `MMm. mN/ yMMMMMMMd- MMMm oN- oMMMMMMMMMms+//+o+: :MMMMo m/ +NMMMMMMMMMMMMMMMMm. :NMMMMm M` .NMMMMMMMMMMMMMMMNodMMMMMMM M- sMMMMMMMMMMMMMMMMMMMMMMMMM mm` mMMMMMMMMMNdhhdNMMMMMMMMMm oMm/ .dMMMMMMMMh: :dMMMMMMMo mMMNyo/:/sdMMMMMMMMM+ sMMMMMm .mMMMMMMMMMMMMMMMMMs `NMMMm. `hMMMMMMMMMMM.oo+. `MMMh` /NMMMMMMMMMo sMN/ `omMMMMMMMMy. :dmo` :smMMMMMMMh+-` `.:ohs: ./oydmMMMMMMdhyo/. EOF ;; "Ubuntu-GNOME"*) set_colors 4 5 7 6 read -rd '' ascii_data <<'EOF' ${c3} ./o. .oooooooo .oooo```soooo .oooo` `soooo .ooo` ${c4}.o.${c3} `\/ooo. :ooo ${c4}:oooo.${c3} `\/ooo. sooo ${c4}`ooooo${c3} \/oooo \/ooo ${c4}`soooo${c3} `ooooo `soooo ${c4}`\/ooo${c3} `soooo ${c4}./oo ${c3}`\/ooo ${c4}`/oooo.${c3} `/ooo ${c4}`\/ooo. ${c3}`/oooo. ${c4}`/oooo.${c3} `` ${c4} `\/ooo. ${c3}/oooo ${c4}/ooo` ${c4} `ooooo ${c3}`` ${c4}.oooo ${c4} `soooo. .oooo` `\/oooooooooo` ``\/oo`` EOF ;; "Ubuntu Kylin"* | "Ubuntu-Kylin"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} .__=liiiiiii=__, ._=liiliii|i|i|iiilii=_. _=iiiii|ii|i|ii|i|inwwwzii=, .=liiii|ii|ii|wwww|i${c2}3QWWWW${c1}ziii=, =lii|i|ii|i|${c2}QQQWWWWWm]QWWQD${c1}||iiii= =lii|iiivw${c2}Qm${c1}>3${c2}WWWWWQWQQwwQw${c1}cii|i|ii= =lii|ii|n${c2}QWWWQ${c1}|)i${c2}|i${c1}%i|]${c2}TQWWWWm${c1}|ii|i|i= .li|i|i|m${c2}WWWQV${c1}|ii${c2}wmD${c1}|iiii|${c2}TWWWWm${c1}|i|iiii, =iii${c2}www|$WQWk${c1}|i${c2}aWWWD${c1}|i|i|ii]${c2}QQWQk${c1}|ii|i|= iii${c2}QWWWQz$WW${c1}|i${c2}jQQWQm${c1}w|ii${c2}wW${c1}k|${c2}TTTTY${c1}i|i|iii iiI${c2}QWQWWtyQQ${c1}|i|${c2}$WWWWWQWk${c1}||i|i|ii||i|ii|i <|i|${c2}TTT|mQQWz${c1}|i${c2}3D${c1}]C|${c2}nD$W${c1}|ii${c2}vWWWWk${c1}||ii|i> -|ii|i|i${c2}WWWQw${c1}|${c2}Tt${c1}|i3${c2}T${c1}|${c2}T${c1}|i|${c2}nQWQWDk${c1}|ii|ii` <|i|iii|${c2}VWQWWQ${c1}|i|i|||ii${c2}wmWWQWD${c1}||ii|ii+ <|ii|i|i]${c2}$W@${c1}tv${c2}QQQWQQQWWTTHT${c1}1|iii|i|> <|i|ii|ii||v${c2}QWWWQWWW@vmWWWm${c1}|i|i|i> -<|i|ii|ii|i|${c2}TTTTTT${c1}|]${c2}QQWWWC${c1}|ii>` -<|i|ii|i|ii|i|i|ii3${c2}TTT${c1}t|i>` ~<|ii|ii|iiiii|i|||i>~ -~~<|ii|i||i>~~` EOF ;; "Ubuntu Touch"*) set_colors 3 7 read -rd '' ascii_data <<'EOF' ${c1} ############### ## ## ## ${c2}##${c1} ${c2}##${c1} ## ## ${c2}##${c1} ${c2}#${c1} ${c2}#${c1} ${c2}##${c1} ## ## ${c2}###${c1} ## ## ## ############### EOF ;; "Ubuntu MATE"* | "Ubuntu-MATE"*) set_colors 2 7 read -rd '' ascii_data <<'EOF' ${c1} .:/+oossssoo+/:.` `:+ssssssssssssssssss+:` -+sssssssssssssss${c2}y${c1}ssssssss+- .osssssssssssss${c2}yy${c1}ss${c2}mMmh${c1}ssssssso. /sssssssss${c2}ydmNNNmmd${c1}s${c2}mMMMMNdy${c1}sssss/ `+ssssssss${c2}hNNdy${c1}sssssss${c2}mMMMMNdy${c1}ssssss+` +sssssss${c2}yNNh${c1}ss${c2}hmNNNNm${c1}s${c2}mMmh${c1}s${c2}ydy${c1}sssssss+ -sssss${c2}y${c1}ss${c2}Nm${c1}ss${c2}hNNh${c1}ssssss${c2}y${c1}s${c2}hh${c1}ss${c2}mMy${c1}sssssss- +ssss${c2}yMNdy${c1}ss${c2}hMd${c1}ssssssssss${c2}hMd${c1}ss${c2}NN${c1}sssssss+ sssss${c2}yMMMMMmh${c1}sssssssssssss${c2}NM${c1}ss${c2}dMy${c1}sssssss sssss${c2}yMMMMMmhy${c1}ssssssssssss${c2}NM${c1}ss${c2}dMy${c1}sssssss +ssss${c2}yMNdy${c1}ss${c2}hMd${c1}ssssssssss${c2}hMd${c1}ss${c2}NN${c1}sssssss+ -sssss${c2}y${c1}ss${c2}Nm${c1}ss${c2}hNNh${c1}ssssssss${c2}dh${c1}ss${c2}mMy${c1}sssssss- +sssssss${c2}yNNh${c1}ss${c2}hmNNNNm${c1}s${c2}mNmh${c1}s${c2}ymy${c1}sssssss+ +ssssssss${c2}hNNdy${c1}sssssss${c2}mMMMMmhy${c1}ssssss+ /sssssssss${c2}ydmNNNNmd${c1}s${c2}mMMMMNdh${c1}sssss/ .osssssssssssss${c2}yy${c1}ss${c2}mMmdy${c1}sssssso. -+sssssssssssssss${c2}y${c1}ssssssss+- `:+ssssssssssssssssss+:` .:/+oossssoo+/:. EOF ;; "ubuntu_old02") set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} ./+o+- ${c2} yyyyy- ${c1}-yyyyyy+ ${c2} ${c2}://+//////${c1}-yyyyyyo ${c3} .++ ${c2}.:/++++++/-${c1}.+sss/` ${c3} .:++o: ${c2}/++++++++/:--:/- ${c3} o:+o+:++.${c2}`..```.-/oo+++++/ ${c3} .:+o:+o/.${c2} `+sssoo+/ ${c2} .++/+:${c3}+oo+o:`${c2} /sssooo. ${c2}/+++//+:${c3}`oo+o${c2} /::--:. ${c2}+/+o+++${c3}`o++o${c1} ++////. ${c2} .++.o+${c3}++oo+:`${c1} /dddhhh. ${c3} .+.o+oo:.${c1} `oddhhhh+ ${c3} +.++o+o`${c1}`-````.:ohdhhhhh+ ${c3} `:o+++ ${c1}`ohhhhhhhhyo++os: ${c3} .o:${c1}`.syhhhhhhh/${c3}.oo++o` ${c1} /osyyyyyyo${c3}++ooo+++/ ${c1} ````` ${c3}+oo+++o: ${c3} `oo++. EOF ;; "Ubuntu Studio"* | "Ubuntu-Studio") set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} ..-::::::-.` `.:+++++++++++${c2}ooo${c1}++:.` ./+++++++++++++${c2}sMMMNdyo${c1}+/. .++++++++++++++++${c2}oyhmMMMMms${c1}++. `/+++++++++${c2}osyhddddhys${c1}+${c2}osdMMMh${c1}++/` `+++++++++${c2}ydMMMMNNNMMMMNds${c1}+${c2}oyyo${c1}++++` +++++++++${c2}dMMNhso${c1}++++${c2}oydNMMmo${c1}++++++++` :+${c2}odmy${c1}+++${c2}ooysoohmNMMNmyoohMMNs${c1}+++++++: ++${c2}dMMm${c1}+${c2}oNMd${c1}++${c2}yMMMmhhmMMNs+yMMNo${c1}+++++++ `++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMs${c1}++++${c2}sMMN${c1}++${c2}NMMs${c1}+++++++. `++${c2}NMMy${c1}+${c2}hMMd${c1}+${c2}oMMMo${c1}++++${c2}sMMN${c1}++${c2}mMMs${c1}+++++++. ++${c2}dMMd${c1}+${c2}oNMm${c1}++${c2}yMMNdhhdMMMs${c1}+y${c2}MMNo${c1}+++++++ :+${c2}odmy${c1}++${c2}oo${c1}+${c2}ss${c1}+${c2}ohNMMMMmho${c1}+${c2}yMMMs${c1}+++++++: +++++++++${c2}hMMmhs+ooo+oshNMMms${c1}++++++++ `++++++++${c2}oymMMMMNmmNMMMMmy+oys${c1}+++++` `/+++++++++${c2}oyhdmmmmdhso+sdMMMs${c1}++/ ./+++++++++++++++${c2}oyhdNMMMms${c1}++. ./+++++++++++++${c2}hMMMNdyo${c1}+/. `.:+++++++++++${c2}sso${c1}++:. ..-::::::-.. EOF ;; "Ubuntu Sway"* | "Ubuntu-Sway") set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} .-/+oossssoo+\-. ´:+ssssssssssssssssss+:` -+ssssssssssssssssss${c2}yy${c1}ssss+- .ossssssssssssssssss${c2}dMMMNyy${c1}ssso. /sssssssssss${c2}hdmmNNmmyNMMMMh${c1}ssssss\ +sssssssss${c2}hm${c1}ydMMMMMMMNdd${c2}ddy${c1}ssssssss+ /ssssssss${c2}hN${c1}MM${c2}M${c1}yh${c2}hyyyyhmNM${c1}MM${c2}Nh${c1}ssssssss\ .ssssssss${c2}dM${c1}MM${c2}Nh${c1}ssssssssss${c2}hN${c1}MM${c2}Md${c1}ssssssss. +sss${c2}yyyyyN${c1}MM${c2}Ny${c1}ssssssssssss${c2}yN${c1}MM${c2}My${c1}sssssss+ ossy${c2}NMMMNy${c1}MM${c2}h${c1}ssssssssssssss${c2}hm${c1}mm${c2}h${c1}ssssssso ossy${c2}NMMMNy${c1}MM${c2}h${c1}sssssssssssssshmmmh${c1}ssssssso +sss${c2}yyyyyN${c1}MM${c2}Ny${c1}ssssssssssss${c2}yN${c1}MM${c2}My${c1}sssssss+ .ssssssss${c2}dM${c1}MM${c2}Nh${c1}ssssssssss${c2}hN${c1}MM${c2}Md${c1}ssssssss. \ssssssss${c2}hN${c1}MM${c2}M${c1}yh${c2}hyyyyhdNM${c1}M${c2}MNh${c1}ssssssss/ +sssssssss${c2}dm${c1}ydMMMMMMMMdd${c2}ddy${c1}ssssssss+ \sssssssssss${c2}hdmNNNNmyNMMMMh${c1}ssssss/ .ossssssssssssssssss${c2}dMMMNyy${c1}ssso. -+sssssssssssssssss${c2}yy${c1}sss+- `:+ssssssssssssssssss+:` .-\+oossssoo+/-. EOF ;; "ubuntu_small") set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} ..;,; .,;,. .,lool: .ooooo, ;oo;: .coool. .... ''' ,l; :oooo, 'oo. looooc :oo' '::' ,oo: ,., .... co, lo:;. :oooo; . ':ooo; cooooc ''' '''' EOF ;; "Ubuntu_old"* | "i3buntu"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c1} .-/+oossssoo+\-. ´:+ssssssssssssssssss+:` -+ssssssssssssssssssyyssss+- .ossssssssssssssssss${c2}dMMMNy${c1}sssso. /sssssssssss${c2}hdmmNNmmyNMMMMh${c1}ssssss\ +sssssssss${c2}hm${c1}yd${c2}MMMMMMMNddddy${c1}ssssssss+ /ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhmNMMMNh${c1}ssssssss\ .ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss. +ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+ oss${c2}yNMMMNyMMh${c1}ssssssssssssss${c2}hmmmh${c1}ssssssso oss${c2}yNMMMNyMMh${c1}sssssssssssssshmmmh${c1}ssssssso +ssss${c2}hhhyNMMNy${c1}ssssssssssss${c2}yNMMMy${c1}sssssss+ .ssssssss${c2}dMMMNh${c1}ssssssssss${c2}hNMMMd${c1}ssssssss. \ssssssss${c2}hNMMM${c1}yh${c2}hyyyyhdNMMMNh${c1}ssssssss/ +sssssssss${c2}dm${c1}yd${c2}MMMMMMMMddddy${c1}ssssssss+ \sssssssssss${c2}hdmNNNNmyNMMMMh${c1}ssssss/ .ossssssssssssssssss${c2}dMMMNy${c1}sssso. -+sssssssssssssssss${c2}yyy${c1}ssss+- `:+ssssssssssssssssss+:` .-\+oossssoo+/-. EOF ;; "Floflis"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' \e[96m ,▄▄▄▌▓▓███▓▓▌▄▄▄, ,▄▒▓███████████████████▓▄▄ ▄▓███████████████████████████▌ ▓███████████████████████████████ , ╙▓████████████████████████████▀ ▄ ╓█▓▄ ╙▀▓████████████████████▀▀` ,▄██▓ ╓█████▌▄, '▀▀▀▀▓▓▓▓▓▓▀▀Å╙` ▄▄▓█████▌ ██████████▓▌▄ , ▄▓███████████▄ ╢████████████▓ ║████▓▓███▌ ╣█████████████▓ ▓█████████████ ▐█████████▀ ▓██████████████ ▓█████████████ ▐█████████▄ ███████████████ ▀████████████▌ ║█████████▌ ▀█████████████▌ ████████████M ▓██████████ ▐█████████████⌐ ▀██████████▌ ▐███████████▌ ▀███████████▌ ╙▓█████▓ ▓██████████████▄ ▀███████▀ ╝▓██▀ ╓▓████████████████▓ ▀▓██▀ ,▄████████████████████▌, ╝▀████████████████████▓▀' `╙▀▀▓▓███████▓▀▀╩' EOF ;; "Ubuntu"*) set_colors 1 read -rd '' ascii_data <<'EOF' ${c1} .... .',:clooo: .:looooo:. .;looooooooc .oooooooooo' .;looooool:,''. :ooooooooooc ;looool;. 'oooooooooo, ;clool' .cooooooc. ,, ... ...... .:oo, .;clol:,. .loooo' :ooooooooo, 'ooool 'ooooooooooo. loooo. 'ooooooooool coooo. ,loooooooc. .loooo. .,;;;'. ;ooooc ... ,ooool. .cooooc. ..',,'. .cooo. ;ooooo:. ;oooooooc. :l. .coooooc,.. coooooooooo. .:ooooooolc:. .ooooooooooo' .':loooooo; ,oooooooooc ..';::c' .;loooo:' . EOF ;; "Ultramarine Linux"* | "ultramarine"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} .cd0NNNNNNNXOdc. .:xKNNNNNNNNNNNNNNNNKd;. ,dXNNNNNNNNNNNNNNNNNNNNNNNd, 'ONNNNNNNNNNNNNNNNNNNNNNNNNNNNO' .xNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNk. .0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0. .0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0. dNNNNNNNNNNNNWWWWWWWWNNNNNNNNNNNNNNNNNNd NNNNNNNNNNNNNW${c2}MMMMMMMM${c1}WWNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNW${c2}MMMMMMMMM${c1}WWNNNNNNNNNNNNNN NNNNNNNNNNNNNNW${c2}MMMMMMMMMMMM${c1}WNNNNNNNNNNNN NNNNNNNNNNWWW${c2}MMMMMMMMMMMMMMMM${c1}WWWNNNNNNNX oNWWWW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WWWNNo OW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WO .OW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WO. lNW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WNl .dNW${c2}MMMMMMMMMMMMMMMMMMMMMMMM${c1}WNd. .cKW${c2}MMMMMMMMMMMMMMMMMMMM${c1}WKc. 'oOXWWW${c2}MMMMMMMM${c1}WWWXOl. ;lkXNNNNNNXkl' EOF ;; "Univalent"*) set_colors 6 6 read -rd '' ascii_data <<'EOF' ${c1} UUUUUUU UUUUUUU UUUUUUU UUUUUUU UUUUUUU A UUUUUUU UUUUUUU A|A UUUUUUU UUUUUUU A | A UUUUUUU UUUUUUU A | A UUUUUUU UUUUUUU A| | |A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUUAAAAAAAAAAAUUUUUUU UUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUU EOF ;; "Uos"*) set_colors 1 7 3 read -rd '' ascii_data << 'EOF' ${c1} ....... .............. ...................... ............................. uuuuuu uuuuuu ooooooooooo ssssssssss u::::u u::::u oo:::::::::::oo ss::::::::::s u::::u u::::u o:::::::::::::::oss:::::::::::::s u::::u u::::u o:::::ooooo:::::os::::::ssss:::::s u::::u u::::u o::::o o::::o s:::::s ssssss u::::u u::::u o::::o o::::o s::::::s u::::u u::::u o::::o o::::o s::::::s u:::::uuuu:::::u o::::o o::::ossssss s:::::s u:::::::::::::::uuo:::::ooooo:::::os:::::ssss::::::s u:::::::::::::::uo:::::::::::::::os::::::::::::::s uu::::::::uu:::u oo:::::::::::oo s:::::::::::ss uuuuuuuu uuuu ooooooooooo sssssssssss ............................. ..................... ............. ...... EOF ;; "Univention"*) set_colors 1 7 read -rd '' ascii_data <<'EOF' ${c1} ./osssssssssssssssssssssso+- `ohhhhhhhhhhhhhhhhhhhhhhhhhhhhy: shhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh- `-//${c2}sssss${c1}/hhhhhhhhhhhhhh+${c2}s${c1}.hhhhhhhhh+ .ohhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sss${c1}+hhhhhhh+ .yhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}ssss${c1}:hhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}sssss${c1}.hhhhhhhhhhhhhh.${c2}sssss${c1}yhhhhh+ +hhhhhy${c2}ssssss${c1}+yhhhhhhhhhhy/${c2}ssssss${c1}yhhhhh+ +hhhhhh:${c2}sssssss${c1}:hhhhhhh+${c2}.ssssssss${c1}yhhhhy. +hhhhhhh+`${c2}ssssssssssssssss${c1}hh${c2}sssss${c1}yhhho` +hhhhhhhhhs+${c2}ssssssssssss${c1}+hh+${c2}sssss${c1}/:-` -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhho :yhhhhhhhhhhhhhhhhhhhhhhhhhhhh+` -+ossssssssssssssssssssss+:` EOF ;; "uwuntu"*) set_colors 225 206 52 read -rd '' ascii_data <<'EOF' ${c1} && &&&&&&&& , *&&&&&& &&&&&&&&( &%%%%&&&& &&&&&&&&&&&& ,&&&&& %%${c2}%%%%&&${c1}&&& ,&&&&&&&&&&&&&, %&&&$&&&%%$%%%. &%%%${c2}%&&&&&${c1}&&# &, &&&&&&${c2}&&&&&&&%%%${c1}%% &%%&&${c2}&&&&${c1}&&&( &&&${c2}&&&&&&%${c1}%%% &&&&&${c2}&&&${c1}&% *&&${c2}&&&&&${c1}&&% &&&/ &&&&${c3}\${c1}& ,${c3}/${c1}*.** %&&&&&&&& &&&${c3}⟩${c1}., *.${c3}⟨${c1} %&&&&&&&& &&${c3}/${c1}.. ${c3}/ \${c1} ..${c3}\${c1}(&&&&&& #&&&#%%%%.%%%( ${c3}\_/\_/${c1} (%%%.%%%%/ /%%%%%%%&&* ,&&&%%%%%%& &&&&&&&& &&&&&&&&&&& (&&&&& &&&&&&&&&&& ${c2}%%${c1} & &&&&&&&&&&&& &&&&&&& ${c2}%%%${c1} #&&&&&&# &&&&&&&&& ${c2}%%%%% %%${c1} #&&&&&( ${c2}&%. %%%${c1} ${c2}%%%%%%% EOF ;; "UrukOS"*) set_colors 12 12 7 12 4 read -rd '' ascii_data <<'EOF' ${c3} :${c4}:::::::::::::: ${c5}. ${c3}=#${c4}*============. ${c5}:#: ${c3}=##%${c4}+----------. ${c5}.###: ${c3}=####. ${c5}.####: ${c3}=####. ${c5}.####: ${c3}=###*. .=${c4}--------. ${c5}####: ${c3}=####. .*#+${c4}======- ${c5}####: ${c3}=###*. .*###+${c4}====- ${c5}####: ${c3}=###*. .*#####+${c4}==- ${c5}####: ${c3}=###*. .*#######+${c4}: ${c5}####: ${c3}=###*. .*#######+${c4}: ${c5}####: ${c3}=###*. .*#####+${c4}==- ${c5}####: ${c3}=###*. .*###+${c4}====- ${c5}####: ${c3}=####. .*#+${c4}======- ${c5}####: ${c3}=###*. .=${c4}--------. ${c5}.####: ${c3}=####. ${c5}.####: ${c3}=####. ${c5}.####: ${c3}=###+${c4}--------------${c5}####: ${c3}=#+${c4}=================-${c5}: ${c3}:${c4}::::::::::::::::::. EOF ;; "venom_small"*) set_colors 8 4 read -rd '' ascii_data <<'EOF' ${c1} ++** *===**====+* *====* +===+ *==*+===* *===* *===* *===+ *===* *===* +===+ *===* *===* +===* *===* *===* *===+*==* +===+ *===+=* *+====**===* **++ EOF ;; "Venom"*) set_colors 8 4 read -rd '' ascii_data <<'EOF' ${c1} `-` -yys+/-` `oyyyyy: /osyyyyso+:. /yyyyy+`+yyyyyyyyyys/. .-yyyyys.:+//+oyyyyyyyo. `oy/`oyyyyy/ ./syyyyy: syyys`:yyyyyo` :yyyyy: /yyyyo .syyyyy- .yyyyy. yyyyy. +yyyyy/ /yyyy/ `yyyyy :yyyyys` -yyyyo yyyyy. `syyyyy- /yyyy/ /yyyyo /yyyyy+ .yyyyy. syyyys. -yyyyys.:yyyy: `oyyyyyo-` `oyyyyy:.sy: :syyyyyyso+/++`/yyyyyo`` -oyyyyyyyyyyy-.syyyys. -/+osyyyyso.`+yyyyy/ .-/+syo` `. EOF ;; "void_small") set_colors 2 8 read -rd '' ascii_data <<'EOF' ${c1} _______ _ \\______ - | \\ ___ \\ | | | / \ | | | | \___/ | | | \\______ \\_| -_______\\ EOF ;; "Void"*) set_colors 8 2 7 read -rd '' ascii_data <<'EOF' ${c1} .......... .::::::::::::::::::.. ..:::::::::::::::::::::::::. '::::::::::::::::::::::::::::. ':::::'' '':::::::::::::. ${c3} .. ${c1}' '':::::::::. ${c3} .||. ${c1}'::::::::: ${c3} .|||||. ${c1}':::::::: ${c3} .|||||||: ${c1}:::::::: ${c3} |||||||: ${c1}.::::::::. :::::::: ${c2} ######${c3}||||||' ${c2}##^ v##########v${c1}::. ${c2}##### #############v ${c2} ######${c3}||||| ${c2}##^ v####${c1}::::::${c2}####v${c1}::${c2}##### #####${c1}:::::${c2}##### ${c2} ######${c3}||${c2}##^ #####${c1}::::::${c2}#####${c1}::${c2}##### #####${c1}:::::${c2}###### ${c2} ######^${c3}|| ${c2}#####${c1}:::::${c2}####^${c1}::${c2}##### #####${c1}:::::${c2}#####^ ${c2} ##^${c3}||||| ${c2}^###########^${c1}:::${c2}##### ##############^ ${c3} |||||||: ${c1}'::::::::' .:::::::: ${c3} '|||||||: ${c1}.::::::::' ${c3} '|||||||:. ${c1}':::::: ${c3} '||||||||:. ${c1}'::: ${c3} ':|||||||||. . ${c1}' ${c3} '|||||||||||:... ...:||||. ${c3} ':||||||||||||||||||||||||||. ${c3} ':|||||||||||||||||||||||'' ${c3} '':||||||||||||||:'' ${c3} '''''' EOF ;; "VNux"*) set_colors 11 8 15 1 7 read -rd '' ascii_data <<'EOF' ${c1} ` ^[XOx~. ^_nwdbbkp0ti' ${c2} _j>!vC1,, ${c4},${c2} ,CY${c3}O${c2}t${c3}O${c2}1(l;" `${c4}~-{r(1I${c2} ^${c1}/zmwJuc:${c2}I^ '${c4}?)|${c1}U${c4}/}-${c2} ^${c3}f${c1}OCLLOw${c3}_${c2},; ,${c4}i,``. ${c2}",${c3}k%ooW@$d"${c2}I,' ' ;^${c3}u$$$$$$$$^<${c2}:^ ` .>>${c3}($$${c5}$@@@@$$${c3}$nl${c2}[:: `!}?${c3}B$${c5}%&WMMW&%$${c3}$1}-${c2}}": ^?j${c3}Z$${c5}WMMWWWWMMW$${c3}ofc${c2};;` <~x&${c3}$${c5}&MWWWWWWWWp${c3}-${c5}l>[< ${c1} 'ljmwn${c2}~tk8${c5}MWWWWM8O${c2}X${c1}r${c2}+]nC${c1}[ !JZqwwdX${c2}:^C8${c5}#MMMM@${c2}X${c1}Odpdpq0< ^x00J(" ^" EOF ;; "VzLinux"*) set_colors 1 7 3 read -rd '' ascii_data <<'EOF' ${c2} ${c1}.::::::::.${c2} `/////` ${c1}:zzzzzzzz${c2} ://///- VVVVVu` ${c1}-zzz`${c2} /VVVVV. `dVVVVV ${c1}.zzz`${c2} :VVVVV: `VVVVVo ${c1}zzz${c2} -VVVVV/ .VVVVV\ ${c1}zzz/${c2} .VVVVV+ -VVVVV: ${c1}zzzzzzzzz${c2} .dVVVVs \VVVVV- ${c1}`````````${c2} VVVVVV +VVVVV. sVVVVu` oVVVVd` +VVVVd` VVVVVV /VVVVV. `uVVVVs -VVVVV- `dVVVV+ .VVVVV/ .VVVVV\ `dVVVV+ -VVVVV-`uVVVVo :VVVVVVVVVVV \VVVVVVVVu oVVVVVVd` sVVVVV. ----. EOF ;; "yiffOS"*) set_colors 93 92 read -rd '' ascii_data <<'EOF' ${c1} NK NxKXW WOlcoXW 0olccloxNW XxllllllloxOKNW Nklllllllllllodk0XWW N0dllllllllllllllodxOKNW WKxlllllllllllllllllllooxOKN WKdllllllllllllllooooooooooooo Nxllllllllllllllloooooooooo${c2}oooo ${c1} XXNOolllllllllllloooooooooo${c2}oooooo ${c1} WX0xolllllllllllooooooooooo${c2}oooooooo ${c1} XWN0xolllllllllloooooooo${c2}ooooooooooooo ${c1} Kkdolllllllooooddddd${c2}doooooooooooddo ${c1} K00XNW${c2} WX0xdooooooddddddd WXOxdoooooodddd WXOxdddddddd NX0ddd WN0d EOF ;; "semc"*) set_colors 2 8 1 read -rd '' ascii_data <<'EOF' ${c1} /\ ______/ \ / |()| ${c2}E M C ${c1} | (-- | | \ \ | | .----) | |__| |_______/ / ${c3}"${c1} \ ${c3}" " EOF ;; "Vanilla"*) set_colors 11 15 read -rd '' ascii_data <<'EOF' ${c1} .OO. .OOOO. .OO${c2}II${c1}OO. IOOO${c2}II${c1}OOOI .OOOO${c2}II${c1}OOOO. ............IOOOO${c2}II${c1}OOOOI............ OOOOOOOOOOOOOOOOOO${c2}II${c1}OOOOOOOOOOOOOOOOOO OOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOO OOOOO${c2}III${c1}OOOOOOOO${c2}II${c1}OOOOOOOO${c2}III${c1}OOOOO OOOOOOO${c2}IIII${c1}OO${c2}I....I${c1}OO${c2}IIII${c1}OOOOOOO OOOOOOOOOO${c2}II.. ..II${c1}OOOOOOOOOO OOOOOOO${c2}II. .II${c1}OOOOOOO OOOOOO${c2}II:......:II${c1}OOOOOO OOOOOOOOO${c2}IIIIIIII${c1}OOOOOOOOO OOOOOO${c2}II${c1}OOOOOOOOOOOO${c2}II${c1}OOOOOO OOOO${c2}II${c1}OOOOOOOI IOOOOOO${c2}II${c1}OOOO IOO${c2}II${c1}OOOOOOOO: :OOOOOOOO${c2}II${c1}OOI IOOOOOOOOOOII IIOOOOOOOOOOI EOF ;; "Obarun"*) set_colors 6 6 7 1 read -rd '' ascii_data <<'EOF' ${c1} ,;::::; ;cooolc;, ,coool; ,loool, loooo; :ooool cooooc ,:ccc; looooc :oooooool cooooo ;oooooooooo, :ooooo; :ooooooooooo oooooo oooooooooooc :oooooo :ooooooooool loooooo ;oooooooool looooooc .coooooooc cooooooo: ,;co; ,ooooooool; ,:loc cooooooooooooloooooc ;ooooooooooooool; ;looooooolc; EOF ;; *"wii-linux-ngx"*|*"whiite-linux"*|\ *"gc-linux"*) set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1}''''''' `~;:` -'''''' ~kQ@@g\ ,EQ@@g/ h@@@@@@' o@@@@@9` `@@@@@@D `@@@@@@@= @@@@@@@? '@@@@@@X o@@@@@@@D v@@@@@@: R@@@@@@, D@@@@@@_ t@@@@@@' _@@@@@@@@@; `Q@@@@@U ;fmo/- ;fmo/- `Q@@@@@m d@@@@@@@@@N 7@@@@@@' L@@@@@@' :@@@@@&@@@@@| `Q@@@@@Z :]]]]]v :]]]]]v Q@@@@@X R@@@@Q`g@@@@Q f@@@@@Q- z@@@@@Q v@@@@@Q r@@@@@@~ ;@@@@@/ ;@@@@@L `@@@@@@/ z@@@@@Q v@@@@@Q d@@@@@q M@@@@# H@@@@Q ]@@@@@Q z@@@@@Q v@@@@@Q ,@@@@@@, >@@@@@; _@@@@@c `@@@@@@> z@@@@@Q v@@@@@Q X@@@@@U Q@@@@R Z@@@@Q`{@@@@@N z@@@@@Q v@@@@@Q .@@@@@@S@@@@@: -@@@@@e@@@@@@: z@@@@@Q v@@@@@Q {@@@@@@@@@@U t@@@@@@@@@@e z@@@@@Q v@@@@@Q `Q@@@@@@@@@' `Q@@@@@@@@@- z@@@@@Q v@@@@@Q :@@@@@@@@| ;@@@@@@@@= z@@@@@Q v@@@@@Q '2#@@Q6: ,eQ@@QZ~ /QQQQQg \QQQQQN EOF ;; *"[Windows 11]"*|*"on Windows 11"*|\ "Windows 11"* |"windows11") set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c1} ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ ################ EOF ;; *"[Windows 10]"*|*"on Windows 10"*|"Windows 8"*|\ "Windows 10"* |"windows10"|"windows8") set_colors 6 7 read -rd '' ascii_data <<'EOF' ${c1} .., ....,,:;+ccllll ...,,+:; cllllllllllllllllll ,cclllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll llllllllllllll lllllllllllllllllll `'ccllllllllll lllllllllllllllllll `' \\*:: :ccllllllllllllllll ````''*::cll `` EOF ;; "Windows95") set_colors 6 4 3 2 1 0 read -rd '' ascii_data <<'EOF' ${c6} ___ .--=+++++=-:. . _ *%@@@@@@@@@@@@@@* *:+:.__ :+* @@@ @"${c5}_*&%${c6}@@${c4}%&&&*${c6}"@@@ "+.-#+ +%* " _ ${c5}++&&&%${c6}@@${c4}%&&&&&#${c6}@@ ${c5} " , ${c6}%@@ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@ ${c5} * oo *# ${c6}" _ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@ ${c5} " , ${c6}%@@ ${c5}&&&&"${c6}@@@@#*${c4}"&&&${c6}@@ .${c5} * oo *# ${c6}" _ %@@@@@@@@@@@@@@@@ *:+:.__ :=* %@@ @"${c1}**&%${c6}@@${c3}%&&&*${c6}"@@@ "+.-#+ +%* " _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@ ${c1} " , ${c6}%@@ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@ ${c1} * oo *# ${c6}" _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@ ${c1} " , ${c6}%@@ ${c1}&&*"${c6}%@@@@@@${c3}"*%&${c6}@@ .${c1} * oo *# ${c6}" _ @@@@@@@@@@@@@@@@@ *:+:.__ :+# @@@ @%#=+""""""+==%#@ "+.-#+ +%* %+" " ":@ " " 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 ;; "Xray_OS"*) set_colors 15 14 16 24 read -rd '' ascii_data <<'EOF' ${c1} ${c1}rrrrrraaaaaaaaaaaayyyy ${c1}xxrrrrrrrraaaaaaaaaaaayyyyyyyyy ${c1}xxxxxrrrrrrrraaaaaaaaaaaayyyyyyy${c3}yyyyy${c2}yyyyyyyyyy ${c1}xxxxxxxrrrrrrrraaaaa ${c2}aaaaayyyyyyyyyyyyyyyyyyy ${c1}xxxxxx${c3}xxx${c1}rrrrrrrraaaa ${c2}aaaaaaayyyyyyyyyyyyyyyyy ${c1}xxxxxx${c3}xxxxxr${c1}rrrrrrraa ${c2}aaaaaaaaay${c3}yyyyyyyyy${c2}yyyy ${c1}yy ${c1}xxxxxxx${c3}xxx${c1}xxrrrrrrrra ${c2}aaaaaaaaa${c3}ayyyyyyyyyyyy${c1}yyyyyy ${c1}xxxxxxxxxxxxrrrrrrrr ${c2}aaaaaaaaaaa${c3}yyyyyyyyyyyy${c1}yyyyyyy ${c1}xxxxxxxxxxxxxrrrrrr ${c2}raaaaaaaaaaaayyy${c3}yyyyyyyy${c1}yyyyyy${c1}yyy ${c1}xxxxxxxxxxxxxrrrrr ${c2}rraaaaaaaaaaaayyyyy${c3}yy${c2}yyyyyy ${c1}yyyyyy ${c1}xxxxxxxx${c3}xxxx${c1}xrrrrr${c2}rr${c3}raaaaaaa${c2}aaaaayyyyyyyyyy ${c1}yyyyyyyyy ${c1}xxxxxxx${c3}xxxx${c1}xxrrrrrrr${c3}raaaaaa${c2}aaaaaayyyyyyy ${c1}yyyyyyyyyyyy ${c1}xxxxxxx${c3}xxx${c1}xxxrrrrrrrr${c3}aaaaaa${c2}aaaaaayyyy ${c1}yyyyyyyyyyyyyy ${c1}xxxxxxxxxxxxrrrrrrrra ${c2}aaaaaaaaaay ${c1}yyyyyyyyyyyyyyyy ${c1}xxxxxxxxxxxrrrrrrr ${c2}aaaaaaaaaaaayyyy${c1}yyyyyyyyyyyyy ${c1}xxxxxxx${c3}xxxrr${c1}rrrr ${c2}raaaaaaaaaaaa ${c1}yyyyyyyyyyyyyyy ${c1}xxxxxxxxrrrr ${c2}rrraaaaaaaaa ${c1}aayyyyyyyyyyyyyy ${c1}xxxxxxrrrrrrr ${c2}aaaaaa ${c1}aaaayyyyyyyyyyyy ${c1}xxxrrrrrr ${c2}raaa ${c1}aaaaaaayyyyyyyyy ${c1}rrrr ${c2}rr ${c1}aaaaaaaaaayyyyyy ${c2}r ${c1}aaaaaaaaaa EOF ;; "Xubuntu"*) set_colors 4 7 1 read -rd '' ascii_data <<'EOF' ${c1} `.:/ossyyyysso/:. `.yyyyyyyyyyyyyyyyyyyy.` `yyyyyyyyyyyyyyyyyyyyyyyyyy` `yyyyyyyyyyyyyyyyyyyy${c2}::${c1}yyyyyyyy` .yyyyyyyyyyy${c2}/+:${c1}yyyyyyy${c2}ds${c1}yyy${c2}+y${c1}yyyy. yyyyyyy${c2}:o/${c1}yy${c2}dMMM+${c1}yyyyy${c2}/M+${c1}y${c2}:hM+${c1}yyyyyy yyyyyyy${c2}+MMMy${c1}y${c2}mMMMh${c1}yyyyy${c2}yM::mM+${c1}yyyyyyyy `yyyyyyy${c2}+MMMMysMMMd${c1}yyyyy${c2}dh:mN+${c1}yyyyyyyyy` yyyyyyyy${c2}:NMMMMmMMMMmmdhyy+/y:${c1}yyyyyyyyyyy yyyyyyyy${c2}+MMMMMMMMMMMMMMMMMMNho:${c1}yyyyyyyyy yyyyyyyy${c2}mMMMMMMMMMMMMMMMMMMMMMMy${c1}yyyyyyyy yyyyyyy${c2}+MMMMMMMMMMMMMMMMMMMMMMMM/${c1}yyyyyyy `yyyyyy${c2}sMMMMMMMMMMMMMMMMMMMMMMmo${c1}yyyyyyy` yyyyyy${c2}oMMMMMMMMMMMMMMMMMMMmy+${c1}yyyyyyyyy yyyyy${c2}:mMMMMMMMMMMMMMMNho/${c1}yyyyyyyyyyy .yyyy${c2}:yNMMMMMMMNdyo:${c1}yyyyyyyyyyyyy. `yyyyyy${c2}:/++/::${c1}yyyyyyyyyyyyyyyyy` `yyyyyyyyyyyyyyyyyyyyyyyyyy` `.yyyyyyyyyyyyyyyyyyyy.` `.:/oosyyyysso/:.` EOF ;; "Soda"*) set_colors 1 7 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}@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@ EOF ;; "KrassOS"* | "Krass"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} ${c2}**@@@@@@@@@@@* ${c2},@@@@%${c1}(((((((((((((${c2}%@@@@, ${c2}#@@&${c1}(((((((((((((((((((((((${c2}&@@% ${c2}@@&${c1}(((((((((((((((((((((((((((((${c2}@@@ ${c2}@@&${c1}(((((((((((((((((((((((((((((((((${c2}&@@ ${c2}.@@${c1}(((((((((((((((((((((((((((((((((((((${c2}@@. ${c2}@@${c1}(((((((((((((((((((((((((((((((((((((((${c2}@@ ${c2}@@#${c1}(((((((((((((((((((((((((((((${c2}%@@@@@@@#${c1}(#${c2}@@ ${c2}.@@${c1}((((((((((((((((${c2}#%@@@@@@@@@&%#${c1}((((${c2}%@&${c1}((((${c2}@@. ${c2}.@@${c1}(((((((/(${c2}&@@@@@@%${c1}(/((((((((((((((${c2}@@/${c1}(((((${c2}@@. ${c2}.@@${c1}(///////////////////////////////${c2}@${c1}(///////${c2}@@ ${c2}%@#${c1}/////////////////////////////(${c2}#${c1}////////${c2}%@% ${c2} @@${c1}(///////////////////////////${c2}%${c1}/////////(${c2}@@ ${c2}@@#${c1}***********************************${c2}%@@ ${c2}*@@${c1}********************************${c2}/@@/ ${c2},@@#${c1}***************************${c2}%@@* ${c2}@@@&${c1}********************${c2}/@@@@ ${c2}&@@@@&${c1}(//***//(${c2}&@@@@& ${c1} ${c2}**@@@@@@@@@@@* 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 ;; "Xenia2"*) set_colors '#55CDFD' '#F6AAB7' '#FFFFFF' read -rd '' ascii_data <<'EOF' ${c2} ,c. .c; ${c2} .${c1}KMMMk${c2}.... ....${c1}kMMMK${c2}. ${c2} .${c1}WMMMMMX${c2}..... .....${c1}KMMMMMW. ${c1} XMMMMMMM0${c2}..... ....${c1}OMMMMMMMN ${c1} dMMMMMMMMM;${c2}.... ..... ....,${c1}MMMMMMMMMd ${c1} WMMMMMMMMMl;${c3}okKKKKKKKKKOo${c1};cMMMMMMMMMM ${c1} 'MMMMMMMNX${c2}K0${c3}KKKKKKKKKKKKKKK${c2}0K${c1}XNMMMMMMM; ${c1} oMMMMMMM${c2}Oxo${c3}KKKKKKKKKKKKKKKKK${c2}oxO${c1}MMMMMMMd ${c1} dMMMMMMM${c2}dxxx${c3}KKKKKKKKKKKKKKK${c2}xxxd${c1}NMMMMMMk ${c1} :MMMMX0${c2}xxxxxx${c3}0KKKKKKKK0KK0${c2}xxxxxx0${c1}XMMMMc ${c1} MMMO${c2}xxxxxxxxdx${c3}kdd${c2}0x0${c3}ddk${c2}xdxxxxxxxx${c1}OMMM ${c1} ;${c2}xxkxddxxxxdodxxxxdxdxxxxdodxxxxddxkxx${c1}; ${c1}dxd${c2}KMMMWXo${c1}'.....'${c2}cdxxxdc${c1}'.....'${c2}lXWMMMX${c1}dxd ${c1}cxd${c2}XMMMN${c1},..........${c2}dxd${c1}'.........'${c2}XMMMN${c1}dxl ${c1} .xx${c2}WMMl${c1}...''....'.;k:.'....''...${c2}lMMW${c1}xx. ${c1}..:kXMMx..'....''..kMk..''....'..xMMXkc.. ${c1} dMMMMMMd.....'...xMMMx...''....dMMMMMMx ${c1} kMMMMWOoc:coOkolllokOoc:coOWMMMMO ${c1} .MMMMMMMMl${c2}...${c1}lNMMMMMMM. ${c1} KMMMMMMX${c2}l${c1}KMMMMMMX ${c1} .MMMMMMMMM. EOF ;; "Xenia"*) set_colors '#55CDFD' '#F6AAB7' '#FFFFFF' read -rd '' ascii_data <<'EOF' ${c3} !${c3}`${c3} @ ${c3} @${c3}```${c3}b @@@@@ ${c3} @${c3}`````${c3}@ @/${c3}@@@@ ${c3} @@${c3}``'))))))))))C@@ ${c3} @@@){)))))()))))))) ${c3} @r))))@${c1}oooo${c3})))))h)))[ ${c3} rr)))j${c1}oooooo${c3}(x${c1}ooooo${c3}$@) ${c3} rrrxr))r/l;${c1},,,${c3}z@{${c1},,,,,${c3}@@ ${c3} rr ) ${c2}v${c3} @;@rx ${c3} rrr) ${c2}\\__^__/${c3} ji ${c3} rj]. . r ${c3}[[${c2}]]${c1}11111111111111111] ${c2}]${c3}[[[${c2}]]][${c1}11111111111111111< ${c2}]${c3}[[[[[${c2}]]]]]]]]]]]]]]${c1}-111111[ ${c2}]-${c3}[[[[[[;${c2}]]]]]]]]]]]]]]]]${c1} 1 ${c2}]]${c3}[[[[[[[[[[[${c2}]]]]]]]]]]]]] ${c1}1${c2}]][${c3}[[[[[[[[[[[[[${c2}<]]]]]]]]] ${c1}11${c2}]]]${c3}[[[[[[[[[[[[[[[${c2}]]]]]]] ${c1}111${c2}]]]]'${c3}[[[[[[[[[[[[[[${c2}]]]] ${c1}111-${c2}]]]]]${c3}[[[[[[[[[[[[[${c2}]] ${c1}11111${c2}]]]]]_${c3}[[[[[[[[[[${c2}] ${c1}11111${c2}]]]i${c3}[[[[[[[[ ${c1}1111${c2}]]+${c3}[[[[[[^ ${c1}11 ${c2}]]${c3}[[[[[[ ${c1}11 +${c2}]${c3}[[[[ ${c1}1 ${c2}]${c3}[[ ` EOF ;; "Tatra"*) set_colors 4 7 read -rd '' ascii_data <<'EOF' ${c1} . .:. . .:. .^^.!.:::. .^!?J?^ .:^.^!!!~:~^. .7??77!~~^. .~^.!??77?!.^~: ..:^^7JJJ7~~^. .^~.^7???7~.~~. .7??????????! .:^:^^~^^:!^ ^: .......^!:... .!7~.::.!.::. ~BG~ :^ ^~: :!!~ ~. ?BBBB! ^?J!. .!~. :!. .JBY. .Y#BBBY?~!???J7. :^^. .. :5#B#P~P#BBP?7?55J?J7: ^P#BBBBBBBB5?7J5555J!..... !BBBBBBGBBGJ77::Y555J?77777^ ?BBBBG5JJ5PJ?!: .?Y??????77?~. .YBGPYJ??????Y?^^^^~7?????????7?!. .^^:..::::::::.....:::::::::::..:. EOF ;; "Zorin"*) set_colors 4 6 read -rd '' ascii_data <<'EOF' ${c1} `osssssssssssssssssssso` .osssssssssssssssssssssso. .+oooooooooooooooooooooooo+. `::::::::::::::::::::::. .:` `+ssssssssssssssssss+:.` `.:+ssso` .ossssssssssssssso/. `-+ossssssso. ssssssssssssso/-` `-/osssssssssssss .ossssssso/-` .-/ossssssssssssssso. `+sss+:. `.:+ssssssssssssssssss+` `:. .::::::::::::::::::::::` .+oooooooooooooooooooooooo+. -osssssssssssssssssssssso- `osssssssssssssssssssso` EOF ;; *) case $kernel_name in *"BSD") set_colors 1 7 4 3 6 read -rd '' ascii_data <<'EOF' ${c1} , , /( )` \ \___ / | /- _ `-/ ' (${c2}/\/ \ ${c1}\ /\ ${c2}/ / | ` ${c1}\ ${c3}O O ${c2}) ${c1}/ | ${c2}`-^--'${c1}`< ' (_.) _ ) / `.___/` / `-----' / ${c4}<----. __ / __ \ ${c4}<----|====${c1}O)))${c4}==${c1}) \) /${c4}====| <----' ${c1}`--' `.__,' \ | | \ / /\ ${c5}______${c1}( (_ / \______/ ${c5},' ,-----' | `--{__________) EOF ;; "Darwin") set_colors 2 3 1 1 5 4 read -rd '' ascii_data <<'EOF' ${c1} c.' ,xNMM. .OMMMMo lMMM" .;loddo:. .olloddol;. cKMMMMMMMMMMNWMMMMMMMMMM0: ${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd. XMMMMMMMMMMMMMMMMMMMMMMMX. ${c3};MMMMMMMMMMMMMMMMMMMMMMMM: :MMMMMMMMMMMMMMMMMMMMMMMM: ${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX. kMMMMMMMMMMMMMMMMMMMMMMMMWd. ${c5}'XMMMMMMMMMMMMMMMMMMMMMMMMMMk 'XMMMMMMMMMMMMMMMMMMMMMMMMK. ${c6}kMMMMMMMMMMMMMMMMMMMMMMd ;KMMMMMMMWXXWMMMMMMMk. "cooc*" "*coo'" EOF ;; "GNU"*) set_colors fg 7 read -rd '' ascii_data <<'EOF' ${c1} _-`````-, ,- '- . .' .- - | | - -. `. /.' / `. \ :/ : _... ..._ `` : :: : /._ .`:'_.._\. || : :: `._ ./ ,` : \ . _.'' . `:. / | -. \-. \\_ / \:._ _/ .' .@) \@) ` `\ ,.' _/,--' .- .\,-.`--`. ,'/'' (( \ ` ) /'/' \ `-' ( '/'' `._,-----' ''/' .,---' ''/' ;: ''/'' ''/ ''/''/'' '/'/' `; EOF ;; "Linux") set_colors fg 8 3 read -rd '' ascii_data <<'EOF' ${c2} ##### ${c2} ####### ${c2} ##${c1}O${c2}#${c1}O${c2}## ${c2} #${c3}#####${c2}# ${c2} ##${c1}##${c3}###${c1}##${c2}## ${c2} #${c1}##########${c2}## ${c2} #${c1}############${c2}## ${c2} #${c1}############${c2}### ${c3} ##${c2}#${c1}###########${c2}##${c3}# ${c3}######${c2}#${c1}#######${c2}#${c3}###### ${c3}#######${c2}#${c1}#####${c2}#${c3}####### ${c3} #####${c2}#######${c3}##### EOF ;; "Profelis SambaBOX"* | "SambaBOX"*) set_colors 3 6 read -rd '' ascii_data <<'EOF' ${c1} # *////##### /////////#########( .((((((///// ,####(#((((( /#######(((* (#(((((((((. //((#(#(#, ((##( ,((((((// ////// #(##########( ////// ////// ((#(#(#(#(##########(///////// /////( (((((((#########(##((((((///// /(((#( ((((/ ####(# ((### #########(((/////////(((((((((, (#(#( ########( /////////(((((((* ##### ####///, *////((( ((((((( ./////////// .//((((((((( ///////////, *(/////((((* ,/(((((((((##########/. .((((((####### ((##* EOF ;; "SunOS") set_colors 3 7 read -rd '' ascii_data <<'EOF' ${c1} `- ` `-- `+- .: .+: `++: -/+- . `.::` -++/``:::`./+/ `.-/. `++/-`.` ` /++:` `` ./:` .: `..`.- ``./+/:- -+++:- -/+` :. EOF ;; esac ;; esac # Overwrite distro colors if '$ascii_colors' doesn't # equal 'distro'. [[ ${ascii_colors[0]} != distro ]] && { color_text=off set_colors "${ascii_colors[@]}" } } main() { cache_uname get_os get_cache_dir # Load default config. eval "$config" get_args "$@" [[ $verbose != on ]] && exec 2>/dev/null get_simple "$@" get_distro get_bold get_distro_ascii # check if the output is a interactive terminal [[ $stdout == auto ]] && { [[ -t 1 ]] && stdout=off || stdout=on } [[ $stdout == on ]] && stdout # Minix doesn't support these sequences. [[ $TERM != minix && $stdout != on ]] && { # If the script exits for any reason, unhide the cursor. trap 'printf "\e[?25h\e[?7h"' EXIT # Hide the cursor and disable line wrap. printf '\e[?25l\e[?7l' } image_backend old_functions print_info dynamic_prompt # w3m-img: Draw the image a second time to fix # rendering issues in specific terminal emulators. [[ $image_backend == *w3m* ]] && display_image [[ $image_backend == *ueberzug* ]] && display_image # Add neofetch info to verbose output. err "Neofetch command: $0 $*" err "Neofetch version: $version" [[ $verbose == on ]] && printf '%b\033[m' "$err" >&2 # If `--loop` was used, constantly redraw the image. while [[ $image_loop == on && $image_backend == w3m ]]; do display_image sleep 1 done return 0 } get_ascii_distro_name() { get_distro echo "$ascii_distro" } get_print_ascii() { cache_uname get_os get_distro get_bold get_distro_ascii echo "$ascii_data" } main "$@" hyfetch-1.99.0/package.json000066400000000000000000000010721470626616500155470ustar00rootroot00000000000000{ "name": "neowofetch", "version": "1.99.0", "description": "Updated neofetch", "repository": { "type": "git", "url": "git+https://github.com/hykilpikonna/neofetch.git" }, "bin": { "neowofetch": "neofetch" }, "keywords": [ "neofetch", "screenfetch" ], "author": "dylanaraps", "contributors": [ "Azalea Gui (https://github.com/hykilpikonna)" ], "license": "MIT", "bugs": { "url": "https://github.com/hykilpikonna/neofetch/issues" }, "homepage": "https://github.com/hykilpikonna/neofetch#readme" }hyfetch-1.99.0/setup.py000077500000000000000000000033001470626616500147720ustar00rootroot00000000000000#!/usr/bin/env python3 from pathlib import Path from setuptools import setup, find_namespace_packages # The directory containing this file HERE = Path(__file__).parent # Load version without importing it (see issue #192 if you are confused) for l in (HERE / 'hyfetch' / '__version__.py').read_text().strip().splitlines(): exec(l) # The text of the README file README = (HERE / "README.md").read_text('utf-8') # This call to setup() does all the work setup( name="HyFetch", version=VERSION, description="neofetch with flags <3", long_description=README, long_description_content_type="text/markdown", url="https://github.com/hykilpikonna/HyFetch", author="Azalea Gui", author_email="me@hydev.org", license="MIT", classifiers=[ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ], packages=find_namespace_packages(exclude=("tools", "tools.*")), package_data={'hyfetch': ['hyfetch/*']}, include_package_data=True, install_requires=[ # Universal dependencies 'typing_extensions; python_version < "3.8"', # Windows dependencies 'psutil ; platform_system=="Windows"', 'colorama>=0.4.6 ; platform_system=="Windows"', ], entry_points={ "console_scripts": [ "hyfetch=hyfetch.main:run", ] }, scripts=['hyfetch/scripts/neowofetch'] ) hyfetch-1.99.0/tools/000077500000000000000000000000001470626616500144215ustar00rootroot00000000000000hyfetch-1.99.0/tools/2024-05-16-reddit/000077500000000000000000000000001470626616500167275ustar00rootroot00000000000000hyfetch-1.99.0/tools/2024-05-16-reddit/README.md000066400000000000000000000011401470626616500202020ustar00rootroot00000000000000### Issue #261 analysis For context, see https://github.com/hykilpikonna/hyfetch/issues/261 The files in this directory are related to the automated sentiment analysis for the Reddit comments. * `reddit.js`: JS script to crawl relevant Reddit comments. * `reddit.json`: Crawled raw data * `reddit_gpt.py`: Python script categorizing comment sentiment using GPT-4o * `reddit_opinions.json`: Categorized sentiment data These files are not really related to the functionality of hyfetch, but I'm pushing them here to make my analysis reproducible, and preserve the data in case the reddit post is deleted. hyfetch-1.99.0/tools/2024-05-16-reddit/reddit.js000066400000000000000000000012141470626616500205360ustar00rootroot00000000000000 function trimSpaces(s) { return s.replaceAll("\n", "").replace(/\s+/g, ' ').trim(); } const cmts = $("shreddit-comment") const out = [] // Parse comments from html cmts.each((i, cmt) => { const $cmt = $(cmt) // Author: slot="commentMeta" (use the first one) const author = trimSpaces($cmt.find("[slot=commentMeta]").first().text()) // Content: slot="comment" const content = trimSpaces($cmt.find("[slot=comment]").first().text()) // Upvotes: score attribute of shreddit-comment-action-row const upvotes = parseInt($cmt.find("shreddit-comment-action-row").attr("score")) out.push({ author, content, upvotes }) }) outhyfetch-1.99.0/tools/2024-05-16-reddit/reddit.json000066400000000000000000001020561470626616500211010ustar00rootroot00000000000000[ { "author": "UNH0LYM0NK • 6d ago", "content": "Theres a flag?", "upvotes": 8 }, { "author": "spicy_capybara • 6d ago", "content": "Right? I’m not sure waving a flag for a disorder is really the way to go. Especially since HS is shared by all sexuality’s including straight.", "upvotes": 11 }, { "author": "textposts_only • 6d ago", "content": "Asexuality and transgender is also shared by all sexualities including straight", "upvotes": 1 }, { "author": "Topperno • 5d ago", "content": "Yeah but being transgender is a genderqueer identity and asexuals are also an uncommon sexuality. Being cis het is not queer.", "upvotes": 0 }, { "author": "textposts_only • 5d ago", "content": "How is asexual a sexuality? Aces can still be straight or gay or what have you. There are varying degrees of asexuality. And i mentioned trans people because the poster above me did. It's simple, either we gatekeep the queer banner (stupid idea) or we let in people who are marginalized due to something they're either born with or identify with in regards to their sexuality or gender. I.e. aces, hypersexuality, queer ppl etc", "upvotes": 1 }, { "author": "Topperno • 4d ago", "content": "Ah sex addiction is a queer identity. Got it.", "upvotes": 0 }, { "author": "textposts_only • 4d ago", "content": "That's disrespectful.", "upvotes": 0 }, { "author": "Topperno • 4d ago", "content": "You said it not me. Also have you ever read the description of this subreddit. It refers to hypersexuality as sex addiction.", "upvotes": 0 }, { "author": "textposts_only • 4d ago", "content": "If you boil anything down to it's essentials, however right or not, it sounds insulting. Asexuals? Since when is not wanting to Fuck a sexuality Transgender? Since when is being another gender than the one you're mistakenly assigned with a sexuality!", "upvotes": 0 }, { "author": "Topperno • 4d ago • Edited 4d ago", "content": "Bruh. Hypersexuality, sex addiction and compulsive sexual disorder are all used by the health professionals who deal with this shit. Imagine not understanding what asexuality is but using it to make a point. Imagine not understand that LGBT is for queer sexualities and genders.", "upvotes": 1 }, { "author": "Lillian_the_flower • 6d ago • Edited 6d ago", "content": "Hs is not a gender identity or sexuality so idk why it would be part of lgbtq+. Hs is a mental disorder. There's definitely more acceptance and understanding needed and ppl need to judge it less but if you add it to a pride flag then you might as well add a flag for ocd or depression or 1000 other things that will eventually drown out the lgbtq stuff I wouldn't include it personally, it feels like the only reason they're even lumped in is because \"sexuality\" in in the name. It doesn't rrally have anything to do with lgbtq stuff imo", "upvotes": 9 }, { "author": "Key_Computer_4348 • 6d ago", "content": "Pretty much every gender identity or sexuality was considered a mental disorder until it wasn't, tbf. Gay was considered a mental disorder, trans was considered a mental disorder. They weren't considered legit sexualities or identities. And before anyone says \"yes but hypersexuality is bad for you!\", like you don't think being a gay man in 1955 was bad for your physical and mental well-being? Gay is not a mental disorder, it's just how society treated it that made it detrimental to oneself.", "upvotes": 7 }, { "author": "Lillian_the_flower • 6d ago", "content": "Just what do you think hs is? The only negative that came from being gay were due to society. Society can change however it wants and the compulsive and self destructive behavior of hs will still be bad. Hs doesn't mean high libido", "upvotes": 2 }, { "author": "Key_Computer_4348 • 5d ago", "content": "People would have said the exact same thing about a myriad of different sexualities and identities before. They would have said that it's compulsive and self destructive and tons of other negative things. Hypersexuality is most harmful because acting out the needs you have is met with hostility by society. If you're a woman with an extremely high libido who seeks out multiple partners, more than what is \"normal\", you're seen as damaged goods and crazy. If you were hypersexual in a society that actually accepted sexuality and its needs, it wouldn't be nearly as bad as it can be now. And no, hs isn't just \"high libido\", it's more complicated than that, but like other identities it's something you can't change and which is made the worst in the experience by a puritan society that sees sexuality as suspicious.", "upvotes": 2 }, { "author": "Lillian_the_flower • 5d ago", "content": "You can't agree that hs isn't just high libido and then talk about it as if it was just high libido. The problem with hs is that you feel COMPULSED to act on it despite any harm that it causes you. That harm can have nothing to do with society. Literally your entire comment talks about if we just accepted that people could fuck a lot, everything would be fine. You're the type of person that pretends hs is just high libido lol. You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. By telling people they can't change it you're trying to move them away from seeking help, why would you do that just to pretend like hs is a harmless personality quirk", "upvotes": 1 }, { "author": "Key_Computer_4348 • 5d ago", "content": "You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. Nah. You can repress it, but that's not the same as change it. There's no cure for being hypersexual, just as there isn't any cure for any sexuality. You can try and shove it down into silence with drugs and psychological methods, but that doesn't mean it's gone. It's pretty icky to me that you're like \"nooo you can't have a different perspective you must be pretending to be hs!\" I'd tell you about my own personal history and experiences and why I 100% know what I'm talking about, but not gonna divulge that in public. The harm that is caused by those compulsive feelings is very correlated to what society thinks and how it reacts to our actions. If you have an overwhelming compulsion to go out and do things that explicitly harm you, like puts your physical safety at serious risk, that's not just hypersexuality, that's hypersexuality plus something else, and mostly something else.", "upvotes": 2 }, { "author": "Lillian_the_flower • 5d ago", "content": "Show me where I said you're pretending to have hs? You're pretending that it is equivalent to having high libido or that it's just like being gay. No amount of therapy or medication will stop you from being gay. There ARE effective treatments and therapy that can help people to deal with their compulsions and better manage them for the rest of their life. Pretending like there aren't because you want hs to be the same as being gay is just incredibly selfish.", "upvotes": -1 }, { "author": "[deleted] • 5d ago", "content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs", "upvotes": null }, { "author": "Lillian_the_flower • 5d ago", "content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs", "upvotes": 0 }, { "author": "[deleted] • 5d ago", "content": "", "upvotes": null }, { "author": "Key_Computer_4348 • 5d ago", "content": "No amount of therapy or medication will stop you from being gay And no amount of therapy or medication will stop you from being hypersexual either. All it will do is dull you, it can't carve out a part of who you are. Drugs can tranquilize anyone down to the point where they are too numb to even feel, or they can impose themselves to disrupt your endocrine system, but at the end of the day, you are still you. With the drugs, now you're just buried beneath them. You're being very inconsiderate and rude with the implication that I \"want hs to be the same as being gay\". You know that's a disingenuous thing to say, because you know what I've been trying to say here and I am far from the first gal to say it. What makes hypersexuality so much worse is the same thing that has made other marginalized sexualities, such as being gay, much worse, which is our inheritance of a fundamentalist Christian world which viewed anything sexual as sinful and \"against God\". Barely 100 years ago, women were diagnosed (yes, literally clinically diagnosed by doctors and other professionals) as having being mentally ill with what they called \"hysteria\" because they had sexual desires or were inclined towards promiscuity. Women were and still are socially ostracized and mocked and bullied for the same thing still to this day. Note how that happened only to women, never to men. I really hope you do read this, and not just skim it so you can argue on the internet, because I think there's a good chance you've internalized the same fundamentalist religious and patriarchal viewpoints as I've just been describing. Sexuality is not a sickness. Being constantly horny is not a sickness. The only way it becomes a sickness is if you have strong compulsions to do things that put you in harms way, and you don't need hypersexuality to get you there either.", "upvotes": 1 }, { "author": "Lillian_the_flower • 5d ago", "content": "Idk why you're trying to talk about the therapy when you clearly have no idea about it. There are coping mechanisms and mental strategies you can learn to deal with hs compulsions. There's medication that can help you without making you a zombie. I'd say look it up but since you will write off any modern medicine because 100 years ago they gave you coke for headaches ... what is the point? Also nice accusing me of being disingenuous and then writing everything I say off as just trying to win an online argument. I can tell you're super interested in a real conversation. Im happy that you cant fathom that hs comes with real mental problems that are not caused by society and will not be fixed by society. But hs is not equal to high libido and everything you said is just about people being judged for sleeping around a lot. Its just not what hs means. I can't link you the definition because you will just write it off so idk what else there is to talk about. I just think its disgusting to come to a hs support space and discourage people from seeking help by painting the available treatment as negative as you do and gaslighting people that all their issues are from society and that they shouldn't work to fix them.", "upvotes": 3 }, { "author": "Key_Computer_4348 • 5d ago", "content": "Nah. I've gone to therapy a lot and it can be super useful. Maybe you should ask first instead of assuming? I also like drugs, both over the counter and uhh under it lol. Anyway, you're just really not listening, which is sad, because I really do think you've someone been convinced and probably still convince yourself that you're broken. Could've been nice to actually talk about this, but you didn't even address what I said at all about how society has made life shit for women and their sexuality both historically and contemporarily, which is actually a pretty important point that you should pay attention to, so idk ig there's just no way of getting through to you and having an actual conversation. I said many times that hs is not just high libido. Ik this, because I'm hs. All you do is assume and put words in my mouth. Ik the definition. No, I don't write off modern medicine. I'm a trans woman with over 4 years on HRT, trust me I love modern medicine lol. You really need to get better at listening to other people instead of just forming an unbreakable opinion based on your own worst-take guesswork.", "upvotes": 0 }, { "author": "Topperno • 5d ago", "content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Hypersexuality is not the same as being shamed for being gay and treated like an other. Hypersexuality is inward emotions coming from a compulsion that one cannot control themselves. I hate this comparison to actual lgbt identities. Like fuck off.", "upvotes": 0 }, { "author": "Key_Computer_4348 • 5d ago", "content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Uhh, yes, exactly? Meaning that how society treats us hugely changes how hypersexuality is experienced? It shows that as an example, it can be much harder for women because society doesn't accept it. This is really going over some of yalls heads lol.", "upvotes": 0 }, { "author": "Topperno • 5d ago", "content": "The description for this subreddit refers to hypersexuality as sex addiction i.e sexual compulsion. You should do some research on the negative effects of sexual compulsion on people that is not entirely caused by society before you start speaking from a place of \"education\".", "upvotes": 0 }, { "author": "Key_Computer_4348 • 5d ago", "content": "I know what the negative effects of sexual compulsion are. Do you? Because most of those negative effects are negative as a consequence of societal rejection.", "upvotes": 0 }, { "author": "Topperno • 4d ago", "content": "Yeah sure cause feeling the need to compulsively masturbate when anxious is to do with societal rejection. Having uncontrollable fantasies are societal rejection. Feeling consumed by fantasies are societal rejection.", "upvotes": 0 }, { "author": "Key_Computer_4348 • 4d ago", "content": "Masturbation is a common de-stress tool. Not just common, but harmless. Sexual fantasies are normal to have and yes, most people don't decide what they are, they're just there. Sounds more to me like you're dealing with the shame of having those desires and fantasies because it makes you feel like a freak, and that is because of societal norms of sexuality, yes.", "upvotes": 0 }, { "author": "Topperno • 4d ago • Edited 4d ago", "content": "Except when It's compulsive and unwanted. If It's not compulsive and unwanted It's not hypersexuality.", "upvotes": 0 }, { "author": "Key_Computer_4348 • 4d ago", "content": "Nobody controls when they get turned on. Obviously you can like \"schedule\" times when you want to deliberately turn yourself on ig, but arousal is usually spontaneous. I know hs isn't just \"you're horny a lot\". All I've been saying is that the condition of hypersexuality would be a lot better if society wasn't so puritanical. It makes the condition a lot worse because it makes people view themselves as freaks and compounds the condition with endless amounts of shame and self-loathing. If you can't understand that, there's nothing more to discuss.", "upvotes": 0 }, { "author": "Intercode001 • 5d ago", "content": "I feel like it's as much a \"sexuality\" as asexuality. Otherwise, what do you call asexuality? Also, some consider their hypersexuality to be an integral part of their identity, there's no question there. Language is what we make of it, that includes definitions, categories and usage.", "upvotes": 1 }, { "author": "Lillian_the_flower • 5d ago", "content": "Asexuality only tells you which people the person feels sexually attracted to -> nobody. It doesn't include any crippling mental issues that require treatment or cause immense mental distress. It also doesn't mean no libido. Just as hs doesn't just mean high libido", "upvotes": 2 }, { "author": "Other-Bumblebee2769 • 5d ago", "content": "It's obe thing to have a place to chat about this stuff... waving a flag for this is cringe af", "upvotes": 3 }, { "author": "bitchisakarma • 6d ago", "content": "Every group doesn't need a flag", "upvotes": 4 }, { "author": "ArrogjentMan • 5d ago • Edited 5d ago", "content": "Hyper-sexuality is like any other obsession/ addiction - gaming, alcohol, drug use, gambling. But also very different because it involves the entire body too and not just parts of it + the mind. So yes it can be as bad as the other things mentioned above, if they get out of hand. It can be used as an identity flag only as much as how one would use mental illnesses - OCD, Autism, ADHD, PTSD, SA trauma survivor etc. It does not need to be a pride flag or an identity flag, because it is not a sexual orientation or an identity, it is a condition/ disorder. It becomes a pride thing only when it is not accepted. Then we are forced to spread awareness about it and stand up for it with pride.", "upvotes": 4 }, { "author": "Storm141 • 5d ago", "content": "Lol", "upvotes": 2 }, { "author": "polskialt • 6d ago", "content": "accepting this pride flag would be supportive or potentially harmful to your community honestly, and it hurts to say it, I worry that when hypersexual people hook up there's a risk of things getting out of control. obviously not all the time, but the risk is there. Maybe making it easier to do that isn't the safest idea.", "upvotes": 3 }, { "author": "Topperno • 6d ago", "content": "Queer person here. Hypersexuality isn't a sexual or gender identity that's in the minority. It's a compulsive sexual behaviour that requires therapy or medical treatment. I think it would be disrespectful to queer identities to lump them in with mostly cis het people who struggle with being overly sexual in a way that effects their life.", "upvotes": 5 }, { "author": "ZookeepergameOne5236 • 6d ago", "content": "I agree. I'm bisexual and have been on Pride marches for the last cough years. Sexual and gender identity is different to compulsive and destructive behaviour. I view my HS the same way I do my alcoholism. A potentially destructive behaviour that I need to manage, not an aspect of my identity that is to be celebrated.", "upvotes": 6 }, { "author": "Topperno • 6d ago", "content": "Exactly this! Like there has been arguments over what exactly HS is but with more and recent research, it's been agreed upon that it is a form of compulsive behaviour with only negative effects. It does irk me a lot to see a lot of people on this subreddit who act like it's just having a high libido that is solved by having a lot of sex.", "upvotes": 4 }, { "author": "DumpsterFireOfLove • 6d ago", "content": "It does irk me a lot to see a lot of people on this subreddit who act like it's just having a high libido that is solved by having a lot of sex. Respectfully, this is your view, not everyone’s. Some people struggle with it, some people have accepted it. Some people are in situations where it’s a problem that is concerning, some people aren’t. It is not a one size fits all experience.", "upvotes": -1 }, { "author": "Topperno • 5d ago", "content": "Respectfully this is the view of medical professionals. If you do not have negative issues regarding your sexual behavior, that's a high sex drive not hypersexuality. Hypersexuality is also known as compulsive sexual behavior disorder, or more commonly, sex addiction. When a person has an obsessive fixation on sex, sexual acts, and sexual fantasies, they might be hypersexual. This fixation is typically so severe that it might disrupt a person’s daily functioning. Some research shows that up to 3% to 6% of people are living with some form of sexual addiction disorder or related disorders and that this condition predominantly affects men. A high sex drive is an increased sexual desire. On the other hand, hypersexuality involves out-of-control feelings and urges to have sex as well as high-frequency sexual behavior.", "upvotes": 1 }, { "author": "Lillian_the_flower • 6d ago", "content": "Yeah this is a good way to put it", "upvotes": 2 }, { "author": "DumpsterFireOfLove • 6d ago", "content": "Bi HS person weighing in here: Um, I’d like a flag. But I understand the issues that many (including myself) HS people face struggling with/accepting their hypersexuality. So I think there’s a should be a healthy debate about it. Also, my two cents: if the ACE/Aro identities are increasingly becoming an accepted part of the LGBTQ+ community, why not HS?", "upvotes": 4 }, { "author": "Topperno • 6d ago", "content": "Because hypersexuality is marked as compulsive sexual behavior that is only negative for their mental health by having unwanted sexual thoughts or engaging in unwanted sexual behaviour that a person cannot control or stop themselves from doing. It is not an identity. It also isn't inherently queer in that it doesn't say anything about who you are attracted to, only that you can't control your sexual behaviour or thoughts. Asexuality and aromantism are both an identity in that it communicate how one experiences or rather may not experience an attraction to others.", "upvotes": 3 }, { "author": "DumpsterFireOfLove • 6d ago", "content": "Yes, but you could also say the same for homosexuality, if we were having this debate back in the 70s. Homosexuality was classified as a mental illness in the DSM for a long time. And I take exception with what you’re saying about it only being a negative for someone’s mental health. Yes, it is a struggle, more so for some than for others, but yes. However, mostly a good part of that struggle is fitting into societies ideas of standard sexuality, just as many people struggled with their homosexual identity in the 70s, and still do today. If non-heterosexual identities were fully accepted in society, there would be no (or greatly lessened) struggle.", "upvotes": 1 }, { "author": "Topperno • 6d ago", "content": "Compulsive sexual behavior is sometimes called hypersexuality or sexual addiction. It's an intense focus on sexual fantasies, urges or behaviors that can't be controlled. This causes distress and problems for your health, job, relationships or other parts of your life. Compulsive sexual behavior may involve different kinds of commonly enjoyable sexual experiences. Examples include masturbation, sexual arousal by using a computer to communicate, multiple sexual partners, use of pornography or paying for sex. But when these sexual behaviors become a major, constant focus in your life, are difficult to control, cause problems in your life, or are harmful to you or others, that's likely compulsive sexual behavior. From the Mayo clinic. Symptoms Some signs that you may have compulsive sexual behavior include: You have repeated and intense sexual fantasies, urges, and behaviors that take up a lot of your time and feel as if they're beyond your control. You feel driven or have frequent urges to do certain sexual behaviors, feel a release of the tension afterward, but also feel guilt or deep regret. You've tried without success to reduce or control your sexual fantasies, urges or behavior. You use compulsive sexual behavior as an escape from other problems, such as loneliness, depression, anxiety or stress. You continue to engage in sexual behaviors in spite of them causing serious problems. These could include the possibility of getting or giving someone else a sexually transmitted infection, the loss of important relationships, trouble at work, financial issues, or legal problems. You have trouble making and keeping healthy and stable relationships. But sure this the same as being sexually attracted to the same gender or all genders or nobody at all.", "upvotes": 5 }, { "author": "DumpsterFireOfLove • 6d ago", "content": "Upvotes for the references, thank you. However, not all hypersexuality is considered compulsive sexual behavior. That’s my point. If your hypersexuality IS affecting your life negatively and is causing distress, that could be compulsive sexual behavior, and should be addressed. But if it’s NOT causing distress or problems in your life, then it is just another facet of who you are. Hypersexuality ≠ Compulsive Sexual Behavior.", "upvotes": 0 }, { "author": "John___Coyote • 5d ago", "content": "Hypersexuality = Compulsive Sexual Behavior. If sexual behavior not compulsive then ≠ hypersexuality. intrusive sexual thoughts under self control ≠hypersexual This post ≠ an attack or insult.", "upvotes": 3 }, { "author": "Topperno • 5d ago", "content": "All you're saying is you're not hypersexual and appropriating the term for your high sex drive/high libido. Kind of a shit thing to do and then turn around and try to soap box hypersexuality to people who actually suffer with it. Hypersexuality is in fact defined as compulsive sexual behaviour. The point is that it's normal sexual behaviour that is so perverse/time consuming/shame bringing that it ruins your mental health, physical health, personal relationships, work or education.", "upvotes": 2 }, { "author": "rockinvet02 • 6d ago", "content": "Are you going to include flags for all the mental health disorders or just this one?", "upvotes": 1 }, { "author": "Bessini • 6d ago", "content": "Not everything needs a flag", "upvotes": 0 }, { "author": "loyalsubjectbeliever • 6d ago", "content": "I think it deserves to be there as much as asexuality. Neither is an orientation so I can see why people may not want it there but at the same time both deserve validation and understanding. After all, is asexuality is the lack of sexuality, why including it in a group of flags dedicated to sexual orientations? It just feels, to me, like excluding it means we're less valid than other groups. Hell, some orientations even have multiple names and flags.", "upvotes": -3 }, { "author": "Topperno • 5d ago", "content": "Bruh. Imagine thinking a compulsive sexual disorder that causes real life issues is the same as a sexual identity ALSO asexuality is the lack of sexual attraction not sexuality and asexual people can still have a libido and enjoy sex. Maybe do a little bit more research before trying to compare the two.", "upvotes": -2 }, { "author": "loyalsubjectbeliever • 5d ago • Edited 5d ago", "content": "Imagine thinking that lack of sexual attraction is a sexual identity Not to mention that asexuality, homosexuality and transgender were considered illnesses too until they realized they weren't. Why are you being so aggressive?", "upvotes": 1 }, { "author": "Topperno • 4d ago", "content": "That sounds like something a straight person would say.", "upvotes": -2 }, { "author": "loyalsubjectbeliever • 4d ago", "content": "Try again, I'm bi", "upvotes": 2 }, { "author": "Topperno • 4d ago", "content": "Damn, I thought a queer person would have been less queerphobic but here we are.", "upvotes": 0 }, { "author": "loyalsubjectbeliever • 4d ago", "content": "I'm not queerphobic tho, and you're the one being aggressive as hell", "upvotes": 0 }, { "author": "Topperno • 4d ago", "content": "Imagine thinking that lack of sexual attraction is a sexual identity Not being \"queerphobic\" while saying asexuality isn't a sexual identity.", "upvotes": 0 }, { "author": "loyalsubjectbeliever • 4d ago", "content": "It's lack thereof I have literally nothing against asexuals but way I see it asexuality and hypersexuality are two sides of the same medal. If one belongs then the other should too and vice versa. Now, can we agree to disagree so you can leave me alone and stop being aggressive?", "upvotes": 0 }, { "author": "Topperno • 4d ago", "content": "Hypersexuality describes a person's inability to control their sexual behavior, arousal, impulses, or urges to the point of causing distress in their personal, work, or school life. Healthcare professionals may also refer to hypersexuality as: compulsive sexual behavior disorder. excessive sexual behavior. Compulsive sexual behavior is sometimes called hypersexuality or sexual addiction. It's an intense focus on sexual fantasies, urges or behaviors that can't be controlled. This causes distress and problems for your health, job, relationships or other parts of your life. CSBD is characterized by repetitive, poorly controlled engagement in sexual impulses, urges, and behaviors (e.g., pornography use). For a diagnosis of CSBD, these sexual behaviors should result in clinically significant distress, neglect of responsibilities, interests, and health, and cause significant impairment in critical areas of functioning. Notably, people with CSBD derive little or no satisfaction from their sexual activities and often make unsuccessful efforts to reduce or stop their behavior. Compared to Asexual – A term used to describe someone who does not experience sexual attraction toward individuals of any gender. Asexuality is a sexual orientation, and is different from celibacy, in that celibacy is the choice to refrain from engaging in sexual behaviors and does not comment on one’s sexual attractions. An asexual individual may choose to engage in sexual behaviors for various reasons even while not experiencing sexual attraction. Asexuality is an identity and sexual orientation; it is not a medical condition. Sexual attraction is not necessary for a person to be healthy. Gray-A, gray-asexual, gray-sexual are terms used to describe individuals who feel as though their sexuality falls somewhere on the spectrum of sexuality between asexuality and sexuality. Demisexual individuals are those who do not experience primary sexual attraction but may experience secondary sexual attraction after a close emotional connection has already formed.", "upvotes": 1 }, { "author": "loyalsubjectbeliever • 4d ago", "content": "Or you know what? Even better, explain to me why it belongs in lgbtq. Because arguing without being open about the possibility of being wrong is stupid. Here's my point as to why if it belongs then so does hypersexuality and vice versa: When we think about, for example, a gay man, we're thinking of someone who doesn't simply feel sexually attracted to other men, there's romantic attraction too. It's not just about sexual desire. When it comes to asexuality or hypersexuality the attraction, romantic or sexual, is completely irrelevant. An asexual person and a hypersexual person can be either straight or not. They can be cis or not. I'm pretty confident about this last part because I have acquaintances of both types. You say asexuality belongs to lgbtq, OK. Then why wouldn't hypersexuality? In this thread some say that it's just a mental disorder and to that I have a couple of counter arguments, the first one being that some people were hypersexual from a very young age, before any trauma. I have a close friend like this, so in this case too I feel pretty confident in what I'm saying. The other counter argument is that asexuality was considered a disorder not too long ago too. Same with other categories that belong to the lgbtq community. So, please explain to me why you believe that I'm wrong. My point is not: asexuals don't belong to lgbtq PERIOD. My point is: if hypersexuality doesn't belong then neither should asexuality because they are two faces of the exact same medal.", "upvotes": 0 } ]hyfetch-1.99.0/tools/2024-05-16-reddit/reddit_gpt.py000066400000000000000000000044361470626616500214350ustar00rootroot00000000000000import json from collections import Counter from pathlib import Path from openai import OpenAI client = OpenAI() if __name__ == '__main__': # Read reddit data # data = json.loads(Path('reddit.json').read_text('utf-8')) data = json.loads(Path('reddit_opinions.json').read_text('utf-8')) # Testing: Print all comments for cmt in data: print() print(f"{cmt['author']}") print(f"- {cmt['content']}") # Loop through each comment, ask GPT-4o to generate a verdict on # whether this comment support or oppose adding the flag opinions = [] for cmt in data: if 'opinion' in cmt: opinions.append(cmt) continue out = client.chat.completions.create( model="gpt-4o", messages=[ {"role": "system", "content": "You are a data analyst asked to read reddit comments on a thread collecting " "opinions on adding the Hypersexual flag into a LGBT+ system information tool."}, # One-shot learning example {"role": "user", "content": "Does the following comment support or oppose adding the flag? Please answer 'support' or 'oppose' or 'neutral'.\n\n" "Author: azaneko • 1d ago\nComment: I'd like a flag"}, {"role": "system", "content": "Support"}, # Asking the actual data {"role": "user", "content": "Does the following comment support or oppose adding the flag? Please answer 'support' or 'oppose' or 'neutral'.\n\n" f"Author: {cmt['author']}\nComment: {cmt['content']}"}, ], ) # Print the result res = out.choices[0].message.content.lower().strip() print("\n") print("Author:", cmt['author']) print("Comment:", cmt['content']) print("Opinion:", res) opinions.append({**cmt, 'opinion': res}) Path('reddit_opinions.json').write_text(json.dumps(opinions, indent=2)) # Count opinions and upvotes counter = Counter() for cmt in opinions: counter[cmt['opinion']] += cmt.get('upvotes') or 0 print("\n") print("Opinions:") for k, v in counter.items(): print(f"{k}: {v}") hyfetch-1.99.0/tools/2024-05-16-reddit/reddit_opinions.json000066400000000000000000000360061470626616500230200ustar00rootroot00000000000000[ { "author": "UNH0LYM0NK \u2022 6d ago", "content": "Theres a flag?", "upvotes": 8, "opinion": "neutral" }, { "author": "spicy_capybara \u2022 6d ago", "content": "Right? I\u2019m not sure waving a flag for a disorder is really the way to go. Especially since HS is shared by all sexuality\u2019s including straight.", "upvotes": 11, "opinion": "oppose" }, { "author": "textposts_only \u2022 6d ago", "content": "Asexuality and transgender is also shared by all sexualities including straight", "upvotes": 1, "opinion": "neutral" }, { "author": "Topperno \u2022 5d ago", "content": "Yeah but being transgender is a genderqueer identity and asexuals are also an uncommon sexuality. Being cis het is not queer.", "upvotes": 0, "opinion": "neutral" }, { "author": "textposts_only \u2022 5d ago", "content": "How is asexual a sexuality? Aces can still be straight or gay or what have you. There are varying degrees of asexuality. And i mentioned trans people because the poster above me did. It's simple, either we gatekeep the queer banner (stupid idea) or we let in people who are marginalized due to something they're either born with or identify with in regards to their sexuality or gender. I.e. aces, hypersexuality, queer ppl etc", "upvotes": 1, "opinion": "support" }, { "author": "Topperno \u2022 4d ago", "content": "Ah sex addiction is a queer identity. Got it.", "upvotes": 0, "opinion": "oppose" }, { "author": "textposts_only \u2022 4d ago", "content": "That's disrespectful.", "upvotes": 0, "opinion": "neutral" }, { "author": "Topperno \u2022 4d ago", "content": "You said it not me. Also have you ever read the description of this subreddit. It refers to hypersexuality as sex addiction.", "upvotes": 0, "opinion": "neutral" }, { "author": "textposts_only \u2022 4d ago", "content": "If you boil anything down to it's essentials, however right or not, it sounds insulting. Asexuals? Since when is not wanting to Fuck a sexuality Transgender? Since when is being another gender than the one you're mistakenly assigned with a sexuality!", "upvotes": 0, "opinion": "neutral" }, { "author": "Topperno \u2022 4d ago \u2022 Edited 4d ago", "content": "Bruh. Hypersexuality, sex addiction and compulsive sexual disorder are all used by the health professionals who deal with this shit. Imagine not understanding what asexuality is but using it to make a point. Imagine not understand that LGBT is for queer sexualities and genders.", "upvotes": 1, "opinion": "support" }, { "author": "Lillian_the_flower \u2022 6d ago \u2022 Edited 6d ago", "content": "Hs is not a gender identity or sexuality so idk why it would be part of lgbtq+. Hs is a mental disorder. There's definitely more acceptance and understanding needed and ppl need to judge it less but if you add it to a pride flag then you might as well add a flag for ocd or depression or 1000 other things that will eventually drown out the lgbtq stuff I wouldn't include it personally, it feels like the only reason they're even lumped in is because \"sexuality\" in in the name. It doesn't rrally have anything to do with lgbtq stuff imo", "upvotes": 9, "opinion": "oppose" }, { "author": "Key_Computer_4348 \u2022 6d ago", "content": "Pretty much every gender identity or sexuality was considered a mental disorder until it wasn't, tbf. Gay was considered a mental disorder, trans was considered a mental disorder. They weren't considered legit sexualities or identities. And before anyone says \"yes but hypersexuality is bad for you!\", like you don't think being a gay man in 1955 was bad for your physical and mental well-being? Gay is not a mental disorder, it's just how society treated it that made it detrimental to oneself.", "upvotes": 7, "opinion": "support" }, { "author": "Lillian_the_flower \u2022 6d ago", "content": "Just what do you think hs is? The only negative that came from being gay were due to society. Society can change however it wants and the compulsive and self destructive behavior of hs will still be bad. Hs doesn't mean high libido", "upvotes": 2, "opinion": "neutral" }, { "author": "Key_Computer_4348 \u2022 5d ago", "content": "People would have said the exact same thing about a myriad of different sexualities and identities before. They would have said that it's compulsive and self destructive and tons of other negative things. Hypersexuality is most harmful because acting out the needs you have is met with hostility by society. If you're a woman with an extremely high libido who seeks out multiple partners, more than what is \"normal\", you're seen as damaged goods and crazy. If you were hypersexual in a society that actually accepted sexuality and its needs, it wouldn't be nearly as bad as it can be now. And no, hs isn't just \"high libido\", it's more complicated than that, but like other identities it's something you can't change and which is made the worst in the experience by a puritan society that sees sexuality as suspicious.", "upvotes": 2, "opinion": "support" }, { "author": "Lillian_the_flower \u2022 5d ago", "content": "You can't agree that hs isn't just high libido and then talk about it as if it was just high libido. The problem with hs is that you feel COMPULSED to act on it despite any harm that it causes you. That harm can have nothing to do with society. Literally your entire comment talks about if we just accepted that people could fuck a lot, everything would be fine. You're the type of person that pretends hs is just high libido lol. You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. By telling people they can't change it you're trying to move them away from seeking help, why would you do that just to pretend like hs is a harmless personality quirk", "upvotes": 1, "opinion": "neutral" }, { "author": "Key_Computer_4348 \u2022 5d ago", "content": "You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. Nah. You can repress it, but that's not the same as change it. There's no cure for being hypersexual, just as there isn't any cure for any sexuality. You can try and shove it down into silence with drugs and psychological methods, but that doesn't mean it's gone. It's pretty icky to me that you're like \"nooo you can't have a different perspective you must be pretending to be hs!\" I'd tell you about my own personal history and experiences and why I 100% know what I'm talking about, but not gonna divulge that in public. The harm that is caused by those compulsive feelings is very correlated to what society thinks and how it reacts to our actions. If you have an overwhelming compulsion to go out and do things that explicitly harm you, like puts your physical safety at serious risk, that's not just hypersexuality, that's hypersexuality plus something else, and mostly something else.", "upvotes": 2, "opinion": "neutral" }, { "author": "Lillian_the_flower \u2022 5d ago", "content": "Show me where I said you're pretending to have hs? You're pretending that it is equivalent to having high libido or that it's just like being gay. No amount of therapy or medication will stop you from being gay. There ARE effective treatments and therapy that can help people to deal with their compulsions and better manage them for the rest of their life. Pretending like there aren't because you want hs to be the same as being gay is just incredibly selfish.", "upvotes": -1, "opinion": "oppose" }, { "author": "[deleted] \u2022 5d ago", "content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs", "upvotes": null, "opinion": "neutral" }, { "author": "Lillian_the_flower \u2022 5d ago", "content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs", "upvotes": 0, "opinion": "neutral" }, { "author": "[deleted] \u2022 5d ago", "content": "", "upvotes": null, "opinion": "neutral" }, { "author": "Key_Computer_4348 \u2022 5d ago", "content": "No amount of therapy or medication will stop you from being gay And no amount of therapy or medication will stop you from being hypersexual either. All it will do is dull you, it can't carve out a part of who you are. Drugs can tranquilize anyone down to the point where they are too numb to even feel, or they can impose themselves to disrupt your endocrine system, but at the end of the day, you are still you. With the drugs, now you're just buried beneath them. You're being very inconsiderate and rude with the implication that I \"want hs to be the same as being gay\". You know that's a disingenuous thing to say, because you know what I've been trying to say here and I am far from the first gal to say it. What makes hypersexuality so much worse is the same thing that has made other marginalized sexualities, such as being gay, much worse, which is our inheritance of a fundamentalist Christian world which viewed anything sexual as sinful and \"against God\". Barely 100 years ago, women were diagnosed (yes, literally clinically diagnosed by doctors and other professionals) as having being mentally ill with what they called \"hysteria\" because they had sexual desires or were inclined towards promiscuity. Women were and still are socially ostracized and mocked and bullied for the same thing still to this day. Note how that happened only to women, never to men. I really hope you do read this, and not just skim it so you can argue on the internet, because I think there's a good chance you've internalized the same fundamentalist religious and patriarchal viewpoints as I've just been describing. Sexuality is not a sickness. Being constantly horny is not a sickness. The only way it becomes a sickness is if you have strong compulsions to do things that put you in harms way, and you don't need hypersexuality to get you there either.", "upvotes": 1, "opinion": "neutral" }, { "author": "Lillian_the_flower \u2022 5d ago", "content": "Idk why you're trying to talk about the therapy when you clearly have no idea about it. There are coping mechanisms and mental strategies you can learn to deal with hs compulsions. There's medication that can help you without making you a zombie. I'd say look it up but since you will write off any modern medicine because 100 years ago they gave you coke for headaches ... what is the point? Also nice accusing me of being disingenuous and then writing everything I say off as just trying to win an online argument. I can tell you're super interested in a real conversation. Im happy that you cant fathom that hs comes with real mental problems that are not caused by society and will not be fixed by society. But hs is not equal to high libido and everything you said is just about people being judged for sleeping around a lot. Its just not what hs means. I can't link you the definition because you will just write it off so idk what else there is to talk about. I just think its disgusting to come to a hs support space and discourage people from seeking help by painting the available treatment as negative as you do and gaslighting people that all their issues are from society and that they shouldn't work to fix them.", "upvotes": 3, "opinion": "neutral" }, { "author": "Key_Computer_4348 \u2022 5d ago", "content": "Nah. I've gone to therapy a lot and it can be super useful. Maybe you should ask first instead of assuming? I also like drugs, both over the counter and uhh under it lol. Anyway, you're just really not listening, which is sad, because I really do think you've someone been convinced and probably still convince yourself that you're broken. Could've been nice to actually talk about this, but you didn't even address what I said at all about how society has made life shit for women and their sexuality both historically and contemporarily, which is actually a pretty important point that you should pay attention to, so idk ig there's just no way of getting through to you and having an actual conversation. I said many times that hs is not just high libido. Ik this, because I'm hs. All you do is assume and put words in my mouth. Ik the definition. No, I don't write off modern medicine. I'm a trans woman with over 4 years on HRT, trust me I love modern medicine lol. You really need to get better at listening to other people instead of just forming an unbreakable opinion based on your own worst-take guesswork.", "upvotes": 0, "opinion": "neutral" }, { "author": "Topperno \u2022 5d ago", "content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Hypersexuality is not the same as being shamed for being gay and treated like an other. Hypersexuality is inward emotions coming from a compulsion that one cannot control themselves. I hate this comparison to actual lgbt identities. Like fuck off.", "upvotes": 0, "opinion": "oppose" }, { "author": "Key_Computer_4348 \u2022 5d ago", "content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Uhh, yes, exactly? Meaning that how society treats us hugely changes how hypersexuality is experienced? It shows that as an example, it can be much harder for women because society doesn't accept it. This is really going over some of yalls heads lol.", "upvotes": 0, "opinion": "support" }, { "author": "Topperno \u2022 5d ago", "content": "The description for this subreddit refers to hypersexuality as sex addiction i.e sexual compulsion. You should do some research on the negative effects of sexual compulsion on people that is not entirely caused by society before you start speaking from a place of \"education\".", "upvotes": 0, "opinion": "neutral" }, { "author": "Key_Computer_4348 \u2022 5d ago", "content": "I know what the negative effects of sexual compulsion are. Do you? Because most of those negative effects are negative as a consequence of societal rejection.", "upvotes": 0, "opinion": "support" } ]hyfetch-1.99.0/tools/accept_upstream.py000077500000000000000000000067511470626616500201660ustar00rootroot00000000000000#!/usr/bin/env python3 import argparse import json import os import shlex from subprocess import check_output import pyperclip import requests from github import Github upstream = 'dylanaraps/neofetch' my_fork = 'hykilpikonna/hyfetch' my_base = 'master' http = requests.Session() if 'GH_TOKEN' in os.environ: print('Token loaded') http.headers['Authorization'] = f'token {os.environ["GH_TOKEN"]}' def copy_comment(): # Get commit SHA sha = check_output(shlex.split('git rev-parse --short HEAD')).decode().strip() # Copy comment to clipboard comment = f""" Thank you for your contribution! This PR is [merged into hyfetch](https://github.com/hykilpikonna/hyfetch/commit/{sha}) since this repo (dylanaraps/neofetch) seems no longer maintained. [HyFetch](https://github.com/hykilpikonna/hyfetch) is a fork of neofetch with LGBTQ pride flags, but the repo also maintains an updated version of the original neofetch, addressing many pull requests that are not merged in the original repo. Read the ["Running Updated Original Neofetch" section](https://github.com/hykilpikonna/hyfetch#running-updated-original-neofetch) for more info! """ pyperclip.copy(comment.strip()) print() print('Done!') print('Comment response copied to clipboard.') if __name__ == '__main__': parser = argparse.ArgumentParser(description='Helper for accepting upstream pull requests') parser.add_argument('pull', type=int, help='Pull request number') args = parser.parse_args() pr = args.pull print(f'Accepting pull request {pr}...') # Fetch original pr's information info = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json() user = info['user']['login'] # Fetch commit information commits = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json() override_author = os.environ.get("override_author") author = json.loads(override_author) if override_author else commits[-1]['commit']['author'] # Create commit message title = info["title"].replace('"', '\\"') msg = (f'-m "[PR] {upstream}#{pr} from {user} - {title}" ' f'-m "Upstream PR: https://github.com/{upstream}/pull/{pr} \n' f'Thanks to @{user}\n\n' f'Co-authored-by: {author["name"]} <{author["email"]}>"') # head could be null, if the pr repo is deleted if info['head'] is None or info['head']['repo'] is None: print(f'Original repo is deleted. Please manually merge.') input('Press any key to continue when the changes are made...') # Commit with merge print() print('Committing merge...') os.system(f'git commit -a {msg}') # Automatically merge else: head = info['head']['repo']['full_name'] head_br = info['head']['ref'] head_lbl = info['head']['label'] print() print('Original Pull Request Info:') print('> State:', info['state']) print('> Title:', info['title']) print('> User:', user) print('> Created:', info['created_at']) print('> Head:', head, head_br, head_lbl) # Fetch head branch print() print('Fetching head branch...') os.system(f'git fetch https://github.com/{head} {head_br}') # Merge head branch print() print('Merging fetch_head...') os.system(f'git merge FETCH_HEAD --no-ff --no-edit {msg}') # Push print() assert input('Push? [Enter/N]') == "" os.system('git push') copy_comment() hyfetch-1.99.0/tools/bash_ignore.txt000066400000000000000000000156661470626616500174600ustar00rootroot00000000000000git-bash.exe git-cmd.exe cmd tmp dev bin/git.exe bin/sh.exe usr/share usr/ssl usr/libexec usr/lib usr/bin/git* usr/bin/*vim* usr/bin/*ssl* usr/bin/*perl* usr/bin/*gpg* usr/bin/*ssh* usr/bin/*crypto* usr/bin/*view* usr/bin/*svn* usr/bin/ex*.exe mingw32/share mingw32/lib mingw32/etc mingw32/doc mingw32/libexec mingw32/bin/git* mingw32/bin/Git* mingw32/bin/Avalonia* mingw32/bin/xz* mingw32/bin/*ssl* mingw32/bin/scalar.exe mingw32/bin/libSkiaSharp.dll mingw32/bin/*crypto* mingw32/bin/*Microsoft.Identity* mingw32/bin/*bz* mingw32/bin/tcl* mingw32/bin/*brotli* mingw32/bin/av* mingw32/bin/pdftotext.exe mingw32/bin/libiconv-2.dll mingw32/bin/libHarfBuzzSharp.dll mingw32/bin/SkiaSharp.dll mingw32/bin/libcurl-4.dll mingw32/bin/libgmp-10.dll mingw32/bin/System.Text.Json.dll mingw32/bin/gcmcore.dll mingw32/bin/curl.exe # Automatically determined by access time usr/bin/rebase.exe usr/bin/rebaseall usr/bin/start usr/bin/column.exe usr/bin/dash.exe usr/bin/getopt.exe usr/bin/znew usr/bin/zless usr/bin/zipinfo.exe usr/bin/zipgrep usr/bin/zgrep usr/bin/zforce usr/bin/zfgrep usr/bin/zegrep usr/bin/zdiff usr/bin/zcmp usr/bin/zcat usr/bin/yes.exe usr/bin/yat2m.exe usr/bin/xxd.exe usr/bin/xgettext.exe usr/bin/xargs.exe usr/bin/winpty.exe usr/bin/wordpad usr/bin/winpty.dll usr/bin/winpty-debugserver.exe usr/bin/winpty-agent.exe usr/bin/whoami.exe usr/bin/who.exe usr/bin/which.exe usr/bin/watchgnupg.exe usr/bin/vi usr/bin/vdir.exe usr/bin/users.exe usr/bin/updatedb usr/bin/update-ca-trust usr/bin/unzipsfx.exe usr/bin/unzip.exe usr/bin/unlink.exe usr/bin/unix2mac.exe usr/bin/unix2dos.exe usr/bin/unexpand.exe usr/bin/uncompress usr/bin/umount.exe usr/bin/u2d.exe usr/bin/tzset.exe usr/bin/tty.exe usr/bin/tsort.exe usr/bin/tset.exe usr/bin/trust.exe usr/bin/truncate.exe usr/bin/true.exe usr/bin/tr.exe usr/bin/tput.exe usr/bin/touch.exe usr/bin/toe.exe usr/bin/timeout.exe usr/bin/tig.exe usr/bin/tic.exe usr/bin/test.exe usr/bin/tee.exe usr/bin/tar.exe usr/bin/tail.exe usr/bin/tac.exe usr/bin/tabs.exe usr/bin/sync.exe usr/bin/sum.exe usr/bin/stty.exe usr/bin/strace.exe usr/bin/stat.exe usr/bin/ssp.exe usr/bin/split.exe usr/bin/sleep.exe usr/bin/shuf.exe usr/bin/shred.exe usr/bin/sha512sum.exe usr/bin/sha384sum.exe usr/bin/sha256sum.exe usr/bin/sha224sum.exe usr/bin/sha1sum.exe usr/bin/sftp.exe usr/bin/sexp-conv.exe usr/bin/setmetamode.exe usr/bin/setfacl.exe usr/bin/seq.exe usr/bin/sdiff.exe usr/bin/scp.exe usr/bin/runcon.exe usr/bin/rnano.exe usr/bin/rmdir.exe usr/bin/rm.exe usr/bin/restore usr/bin/reset.exe usr/bin/regtool.exe usr/bin/recode-sr-latin.exe usr/bin/realpath.exe usr/bin/readlink.exe usr/bin/pwd.exe usr/bin/ptx.exe usr/bin/psl.exe usr/bin/psl-make-dafsa usr/bin/ps.exe usr/bin/profiler.exe usr/bin/printf.exe usr/bin/printenv.exe usr/bin/pr.exe usr/bin/pldd.exe usr/bin/pkcs1-conv.exe usr/bin/pinky.exe usr/bin/pinentry.exe usr/bin/pinentry-w32.exe usr/bin/pathchk.exe usr/bin/patch.exe usr/bin/paste.exe usr/bin/passwd.exe usr/bin/p11-kit.exe usr/bin/od.exe usr/bin/numfmt.exe usr/bin/nproc.exe usr/bin/notepad usr/bin/nohup.exe usr/bin/nl.exe usr/bin/nice.exe usr/bin/ngettext.exe usr/bin/nettle-pbkdf2.exe usr/bin/nettle-lfib-stream.exe usr/bin/nettle-hash.exe usr/bin/nano.exe usr/bin/mv.exe usr/bin/msys-z.dll usr/bin/msys-wind-0.dll usr/bin/msys-unistring-2.dll usr/bin/msys-ticw6.dll usr/bin/msys-tasn1-6.dll usr/bin/msys-sqlite3-0.dll usr/bin/msys-smartcols-1.dll usr/bin/msys-serf-1-0.dll usr/bin/msys-sasl2-3.dll usr/bin/msys-roken-18.dll usr/bin/msys-psl-5.dll usr/bin/msys-pcre2-posix-3.dll usr/bin/msys-pcre2-8-0.dll usr/bin/msys-p11-kit-0.dll usr/bin/msys-npth-0.dll usr/bin/msys-nettle-8.dll usr/bin/msys-magic-1.dll usr/bin/msys-lz4-1.dll usr/bin/msys-ksba-8.dll usr/bin/msys-krb5-26.dll usr/bin/msys-kafs-0.dll usr/bin/msys-idn2-0.dll usr/bin/msys-hx509-5.dll usr/bin/msys-hogweed-6.dll usr/bin/msys-heimntlm-0.dll usr/bin/msys-heimbase-1.dll usr/bin/msys-gssapi-3.dll usr/bin/msys-gobject-2.0-0.dll usr/bin/msys-gnutls-30.dll usr/bin/msys-gmodule-2.0-0.dll usr/bin/msys-glib-2.0-0.dll usr/bin/msys-gio-2.0-0.dll usr/bin/msys-gettextsrc-0-19-8-1.dll usr/bin/msys-gettextlib-0-19-8-1.dll usr/bin/msys-gcrypt-20.dll usr/bin/msys-fido2-1.dll usr/bin/msys-ffi-7.dll usr/bin/msys-expat-1.dll usr/bin/msys-edit-0.dll usr/bin/msys-crypt-0.dll usr/bin/msys-com_err-1.dll usr/bin/msys-cbor-0.11.dll usr/bin/msys-bz2-1.dll usr/bin/msys-assuan-0.dll usr/bin/msys-asn1-8.dll usr/bin/msys-aprutil-1-0.dll usr/bin/msys-apr-1-0.dll usr/bin/msguniq.exe usr/bin/msgunfmt.exe usr/bin/msgmerge.exe usr/bin/msginit.exe usr/bin/msggrep.exe usr/bin/msgfmt.exe usr/bin/msgfilter.exe usr/bin/msgexec.exe usr/bin/msgen.exe usr/bin/msgconv.exe usr/bin/msgcomm.exe usr/bin/msgcmp.exe usr/bin/msgcat.exe usr/bin/msgattrib.exe usr/bin/mpicalc.exe usr/bin/mount.exe usr/bin/mktemp.exe usr/bin/mkpasswd.exe usr/bin/mknod.exe usr/bin/mkgroup.exe usr/bin/mkfifo.exe usr/bin/mintty.exe usr/bin/mintheme usr/bin/minidumper.exe usr/bin/md5sum.exe usr/bin/mac2unix.exe usr/bin/lsattr.exe usr/bin/ls.exe usr/bin/logname.exe usr/bin/locate.exe usr/bin/locale.exe usr/bin/ln.exe usr/bin/link.exe usr/bin/lesskey.exe usr/bin/lessecho.exe usr/bin/less.exe usr/bin/ldh.exe usr/bin/ldd.exe usr/bin/kill.exe usr/bin/kbxutil.exe usr/bin/join.exe usr/bin/install.exe usr/bin/infotocap.exe usr/bin/infocmp.exe usr/bin/iconv.exe usr/bin/hostname.exe usr/bin/hostid.exe usr/bin/hmac256.exe usr/bin/head.exe usr/bin/gzip.exe usr/bin/gzexe usr/bin/gunzip usr/bin/gsettings.exe usr/bin/groups.exe usr/bin/gobject-query.exe usr/bin/gmondump.exe usr/bin/glib-compile-schemas.exe usr/bin/gkill.exe usr/bin/gio-querymodules.exe usr/bin/gettextize usr/bin/gettext.sh usr/bin/gettext.exe usr/bin/getflags usr/bin/getfacl.exe usr/bin/getemojis usr/bin/getconf.exe usr/bin/gencat.exe usr/bin/gdbus.exe usr/bin/gawk.exe usr/bin/gawk-5.0.0.exe usr/bin/gapplication.exe usr/bin/funzip.exe usr/bin/fold.exe usr/bin/fmt.exe usr/bin/find.exe usr/bin/file.exe usr/bin/fgrep usr/bin/false.exe usr/bin/factor.exe usr/bin/envsubst.exe usr/bin/env.exe usr/bin/egrep usr/bin/echo.exe usr/bin/dumpsexp.exe usr/bin/du.exe usr/bin/dos2unix.exe usr/bin/docx2txt.pl usr/bin/docx2txt usr/bin/dirmngr.exe usr/bin/dirmngr-client.exe usr/bin/dircolors.exe usr/bin/dir.exe usr/bin/diff3.exe usr/bin/diff.exe usr/bin/df.exe usr/bin/dd.exe usr/bin/date.exe usr/bin/d2u.exe usr/bin/cygwin-console-helper.exe usr/bin/cygcheck.exe usr/bin/cut.exe usr/bin/csplit.exe usr/bin/cp.exe usr/bin/comm.exe usr/bin/cmp.exe usr/bin/clear.exe usr/bin/cksum.exe usr/bin/chroot.exe usr/bin/chown.exe usr/bin/chmod.exe usr/bin/chgrp.exe usr/bin/chcon.exe usr/bin/chattr.exe usr/bin/cat.exe usr/bin/captoinfo.exe usr/bin/c_rehash usr/bin/bzless usr/bin/bzip2recover.exe usr/bin/bzip2.exe usr/bin/bzgrep usr/bin/bzfgrep usr/bin/bzegrep usr/bin/bzdiff usr/bin/bzcmp usr/bin/bzcat.exe usr/bin/bunzip2.exe usr/bin/bashbug usr/bin/basenc.exe usr/bin/basename.exe usr/bin/base64.exe usr/bin/base32.exe usr/bin/backup usr/bin/b2sum.exe usr/bin/autopoint usr/bin/astextplain usr/bin/arch.exe usr/bin/applygnupgdefaults usr/bin/addgnupghome usr/bin/[.exe hyfetch-1.99.0/tools/blacklist_users.csv000066400000000000000000000000351470626616500203250ustar00rootroot00000000000000Symbolic11 GentlemanMC dr03m hyfetch-1.99.0/tools/build_bash.sh000077500000000000000000000016371470626616500170630ustar00rootroot00000000000000#!/usr/bin/env bash # This script is used to build a customized Git Bash for windows pacakge that only include bash and no other unnecessary files set -e # Get script directory DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" cd "$DIR/../dist" # Get the git distribution if it doesn't exist if [ ! -f /tmp/git.tar.bz2 ]; then # NOTE: Git for Windows v2.44 is the last release to support Windows 7 and 8 URL="https://github.com/git-for-windows/git/releases/download/v2.44.0.windows.1/Git-2.44.0-32-bit.tar.bz2" echo "> Downloading git distribution" wget -q $URL -O /tmp/git.tar.bz2 fi # Unzip the git distribution to git directory # Ignore the unnecessary files # rm -rf git if [ ! -d /tmp/git ]; then mkdir -p /tmp/git echo "> Unzipping git distribution" tar -xf /tmp/git.tar.bz2 --exclude-from="$DIR/bash_ignore.txt" -C /tmp/git fi # Copy the git distribution cp -r /tmp/git ./git hyfetch-1.99.0/tools/build_fastfetch.sh000077500000000000000000000053571470626616500201200ustar00rootroot00000000000000#!/usr/bin/env bash # This script is used to build fastfetch inside a docker container. # The docker container tested is debian 10. set -e # Install required packages echo "Installing required packages..." apt-get update apt-get install --ignore-missing --no-install-recommends --no-install-suggests -y libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libosmesa6-dev ocl-icd-opencl-dev libnm-dev libpulse-dev libdrm-dev git build-essential cmake imagemagick chafa libchafa-dev ddcutil # Check if we're on debian 10 apt-get install -y lsb-release if [ "$(lsb_release -cs)" != "buster" ]; then apt-get install --ignore-missing -y libegl-dev libglx-dev directx-headers-dev # else # echo "Backporting pacakges for debian 10" # # Add Debian 11 "Bullseye" repository echo "deb http://deb.debian.org/debian/ bullseye main" > /etc/apt/sources.list.d/bullseye.list # # Set package priorities to prefer Debian 10 (Buster) except for libegl-dev and its dependencies # echo 'Package: * # Pin: release n=buster # Pin-Priority: 900 # Package: libegl-dev # Pin: release n=bullseye # Pin-Priority: 990' > /etc/apt/preferences.d/priority # apt-get update fi # Clone repo echo "Cloning fastfetch..." git clone "https://github.com/fastfetch-cli/fastfetch" cd fastfetch # Checkout the latest release tag latest_tag=$(git describe --tags "$(git rev-list --tags --max-count=1)") echo "Checking out latest tag: $latest_tag" git checkout "$latest_tag" # Backward compatibility # cmake 3.13: replace "NAME_WLE" with "NAME_WE" sed -i 's/NAME_WLE/NAME_WE/g' CMakeLists.txt # Display system information echo "System Information:" uname -a # Install linuxbrew packages # echo "Installing Linuxbrew..." # bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # /home/linuxbrew/.linuxbrew/bin/brew install imagemagick chafa ddcutil --ignore-dependencies # Configure project echo "Configuring project..." export PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr . # Build project echo "Building project..." cmake --build . --target package -j 32 # List features of fastfetch echo "Listing features of fastfetch:" ./fastfetch --list-features # Run fastfetch echo "Running fastfetch:" time ./fastfetch -c presets/ci.jsonc # Run fastfetch with JSON format echo "Running fastfetch with JSON format:" time ./fastfetch -c presets/ci.jsonc --format json # Run flashfetch echo "Running flashfetch:" time ./flashfetch # Print dependencies of fastfetch echo "Dependencies of fastfetch:" ldd fastfetch # Run tests echo "Running tests..." ctesthyfetch-1.99.0/tools/build_fastfetch_platforms.sh000077500000000000000000000023741470626616500222030ustar00rootroot00000000000000#!/bin/bash set -e # Path to store extracted binaries output_dir="dist/binaries" # Ensure output directory exists mkdir -p "$output_dir" build_platform() { container=$1 platform=$2 echo "Running build in $container for $platform" # Create a unique name for the container instance container_name="build_$platform" # Run the build script inside the Docker container docker run -it --name "$container_name" -v "$PWD/tools:/tools" -w "/w" "$container" bash /tools/build_fastfetch.sh # Extract binaries or packages produced by the build # Assuming binaries are in a specific directory, e.g., ./dist if docker cp "$container_name:/w/dist" "$output_dir/$platform"; then echo "Successfully extracted binaries for $platform" else echo "Failed to extract binaries for $platform" fi # Cleanup: Remove the container after the build docker rm "$container_name" } # Build for different platforms build_platform "amd64/debian:10-slim" "manylinux_2_28_x86_64" # build_platform "arm64v8/debian:10-slim" "manylinux_2_28_aaarch64" # build_platform "arm32v7/debian:10-slim" "manylinux_2_28_armv7l" # build_platform "riscv64/debian:sid-slim" "manylinux_2_37_riscv64" echo "Build and extraction process completed." hyfetch-1.99.0/tools/build_pkg.sh000077500000000000000000000072541470626616500167300ustar00rootroot00000000000000#!/usr/bin/env bash FASTFETCH_VERSION="2.28.0" FASTFETCH_DL="https://github.com/fastfetch-cli/fastfetch/releases/download/$FASTFETCH_VERSION/" # Get script directory DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" cd "$DIR/.." set -e # Remove the old build rm -rf dist/ rm -rf build/ # Remove git from the source code before building rm -rf hyfetch/git/ # Build python from setup.py python3 setup.py sdist bdist_wheel # Check twine check dist/*.tar.gz twine check dist/*.whl # ================= # Build for windows cd dist # Get the file name # file="$(ls | grep .whl)" use glob instead file=$(echo *-none-any.whl) # Build bash pacakge "$DIR/build_bash.sh" # Unzip the wheel echo "> Unzipping $file" rm -rf wheel unzip -qq "$file" -d wheel # Copy the git distribution to the wheel cp -r git/ wheel/hyfetch/ # Embed fastfetch binary echo "> Embedding fastfetch binary" wget -q "$FASTFETCH_DL/fastfetch-windows-i686.zip" -O fastfetch-windows.zip mkdir -p wheel/hyfetch/fastfetch bsdtar -zxf fastfetch-windows.zip -C wheel/hyfetch/fastfetch rm -rf fastfetch-windows.zip # Edit .dist-info/WHEEL "Tag: {platform}" and rehash sed -i 's/Tag: py3-none-.*/Tag: py3-none-win32/' wheel/*.dist-info/WHEEL python "$DIR/build_rehash.py" wheel # Zip to -win32.whl new_name=${file/-any/-win32} cd wheel && zip -qq -y -r "../$new_name" * && cd .. twine check "$new_name" # Zip to -win_amd64.whl # Since pypi doesn't allow two identical files with different names to be uploaded # We need to change the zip content a little bit for win_amd64 new_name=${file/-any/-win_amd64} sed -i 's/Tag: py3-none-.*/Tag: py3-none-win_amd64/' wheel/*.dist-info/WHEEL python "$DIR/build_rehash.py" wheel cd wheel && zip -qq -y -r "../$new_name" * && cd .. twine check "$new_name" # ================= # Build for linux # Now we're done with windows, delete the git folder rm -rf wheel/git function build_for_platform() { ff_platform=$1 wheel_platform=$2 echo "Building for $ff_platform" # Download the fastfetch binary wget -q "$FASTFETCH_DL/fastfetch-$ff_platform.zip" -O "fastfetch-$ff_platform.zip" # Delete the old fastfetch folder rm -rf wheel/hyfetch/fastfetch # Unzip the fastfetch binary # unzip -qq "fastfetch-$ff_platform.zip" -d wheel/hyfetch/fastfetch mkdir -p wheel/hyfetch/fastfetch bsdtar -zxf "fastfetch-$ff_platform.zip" -C wheel/hyfetch/fastfetch --strip-components 1 rm -rf "fastfetch-$ff_platform.zip" # Change the file name new_name=${file/-any/-"$wheel_platform"} # Edit WHEEL and rehash sed -i "s/Tag: py3-none-.*/Tag: py3-none-$wheel_platform/" wheel/*.dist-info/WHEEL python "$DIR/build_rehash.py" wheel # Zip the wheel to platform.whl cd wheel && zip -qq -y -r "../$new_name" * && cd .. # Check again twine check "$new_name" } # See https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/ # The official fastfetch build uses Ubuntu 20.04 with glibc 2.31 build_for_platform "linux-amd64" "manylinux_2_31_x86_64" build_for_platform "linux-aarch64" "manylinux_2_31_aarch64" build_for_platform "linux-armv7l" "manylinux_2_31_armv7l" # build_for_platform "linux-riscv64" "manylinux_2_31_riscv64" # There doesn't seem to be tags for freebsd? # build_for_platform "freebsd-amd64" "freebsd_x86_64" # build_for_platform "freebsd-aarch64" "freebsd_aarch64" build_for_platform "musl-amd64" "musllinux_1_1_x86_64" # build_for_platform "musl-aarch64" "musllinux_1_1_aarch64" # The official fastfetch build uses macOS 12.0 build_for_platform "macos-universal" "macosx_11_0_x86_64" build_for_platform "macos-universal" "macosx_11_0_arm64" # TODO: linux_riscv64 # Finally, remove temporary files rm -rf wheel git hyfetch-1.99.0/tools/build_rehash.py000066400000000000000000000050341470626616500174260ustar00rootroot00000000000000import argparse import hashlib import io from base64 import urlsafe_b64encode from pathlib import Path from typing import BinaryIO, Generator, Tuple, Any """ The read_chunks, hash_file, and rehash functions below comes from pip._internal They are copied to ensure compatibility with future python versions. https://github.com/pypa/pip/blob/612515d2e0a6ff8676c139c096a45bc28b3456f4/src/pip/_internal/operations/install/wheel.py#L80 """ def read_chunks(file: BinaryIO, size: int = io.DEFAULT_BUFFER_SIZE) -> Generator[bytes, None, None]: """Yield pieces of data from a file-like object until EOF.""" while True: chunk = file.read(size) if not chunk: break yield chunk def hash_file(path: Path, blocksize: int = 1 << 20) -> Tuple[Any, int]: """Return (hash, length) for path using hashlib.sha256()""" h = hashlib.sha256() length = 0 with open(path, "rb") as f: for block in read_chunks(f, size=blocksize): length += len(block) h.update(block) return h, length def rehash(path: Path, blocksize: int = 1 << 20) -> Tuple[str, str]: """Return (encoded_digest, length) for path using hashlib.sha256()""" h, length = hash_file(path, blocksize) digest = "sha256=" + urlsafe_b64encode(h.digest()).decode("latin1").rstrip("=") return digest, str(length) if __name__ == '__main__': agupa = argparse.ArgumentParser() agupa.add_argument("base_path", help="The path of the wheel") args = agupa.parse_args() base_path = Path(args.base_path) # Find the name of the dist-info path dist_info = next(base_path.rglob("*.dist-info")) # Delete dist_info / record record = dist_info / "RECORD" order = record.read_text().splitlines() record.unlink() # Rehash each file in the wheel processed = set() new_record = [] for file in order: file = base_path / file.split(',')[0] if file.exists(): digest, length = rehash(file) new_record.append(f"{str(file.relative_to(base_path)).replace("\\", "/")},{digest},{length}") processed.add(file) for file in base_path.rglob('*'): if file.is_file() and file not in processed: digest, length = rehash(file) new_record.append(f"{str(file.relative_to(base_path)).replace("\\", "/")},{digest},{length}") new_record.append(f"{str(dist_info.relative_to(base_path)).replace("\\", "/")}/RECORD,,") # Write the new record record.write_text('\n'.join(new_record)) print("Rehashed successfully") hyfetch-1.99.0/tools/colors_test.py000077500000000000000000000020121470626616500173310ustar00rootroot00000000000000from hyfetch.color_scale import test_color_scale from hyfetch.color_util import RGB, printc from hyfetch.neofetch_util import get_command_path from hyfetch.presets import PRESETS def print_colors_test(colors: list[RGB]): print(''.join(f'{c.to_ansi_rgb()}#' for c in colors)) def test_preset_length(): p = PRESETS.get('transgender') print_colors_test(p.with_length(9)) print_colors_test(p.with_length(6)) p = PRESETS.get('nonbinary') print_colors_test(p.with_length(7)) print_colors_test(p.with_length(6)) def test_command_path(): print(get_command_path()) def test_rgb_8bit_conversion(): for r in range(0, 255, 16): for g in range(0, 255, 16): print(RGB(r, g, 0).to_ansi_rgb(False), end=' ') printc('&*') print() for r in range(0, 255, 16): for g in range(0, 255, 16): print(RGB(r, g, 0).to_ansi_8bit(False), end=' ') printc('&*') print() if __name__ == '__main__': test_rgb_8bit_conversion() test_color_scale() hyfetch-1.99.0/tools/deploy-release.py000077500000000000000000000122601470626616500177110ustar00rootroot00000000000000#!/usr/bin/env python3 import argparse import json import os import re import shlex import stat import subprocess from pathlib import Path from packaging import version as pv from tools.list_distros import generate_help, export_distros from tools.reformat_readme import reformat_readme NEOFETCH_NEW_VERSION = "" def pre_check(): """ Check source code status before releasing. """ assert os.path.isfile('./neofetch'), './neofetch doesn\'t exist, you are running this script in the wrong directory' assert os.stat('./neofetch').st_mode & stat.S_IEXEC, 'neofetch is not executable' assert os.path.islink('./hyfetch/scripts/neowofetch'), 'neowofetch is not a symbolic link' # subprocess.check_call(shlex.split('git diff-index --quiet HEAD --')) # 'Please commit all changes before release' print('Running shellcheck... (This may take a while)') subprocess.check_call(shlex.split('shellcheck neofetch')) def edit_versions(version: str): """ Edit version numbers in hyfetch/constants.py, package.json, and README.md Also edits version number of neofetch, but the neofetch version number is separate. :param version: Version to release """ # 1. package.json print('Editing package.json...') path = Path('package.json') content = json.loads(path.read_text()) cur = pv.parse(content['version']) assert cur < pv.parse(version), 'Version did not increase' content['version'] = version path.write_text(json.dumps(content, ensure_ascii=False, indent=2)) # 2. hyfetch/constants.py print('Editing hyfetch/__version__.py...') path = Path('hyfetch/__version__.py') content = [f"VERSION = '{version}'" if l.startswith('VERSION = ') else l for l in path.read_text().split('\n')] path.write_text('\n'.join(content)) # 3. README.md print('Editing README.md...') path = Path('README.md') content = path.read_text() changelog_token = '' changelog_i = content.index(changelog_token) + len(changelog_token) content = content[:changelog_i] + f'\n\n### {version}' + content[changelog_i:] path.write_text(content) # 4. neofetch script print('Editing neofetch...') path = Path('neofetch') lines = path.read_text().replace("\t", " ").split('\n') version_i = next(i for i, l in enumerate(lines) if l.startswith('version=')) nf = pv.parse(lines[version_i].replace('version=', '')) new = pv.parse(version) nf = f'{nf.major + new.major - cur.major}.{nf.minor + new.minor - cur.minor}.{nf.micro + new.micro - cur.micro}' lines[version_i] = f"version={nf}" path.write_text('\n'.join(lines)) global NEOFETCH_NEW_VERSION NEOFETCH_NEW_VERSION = nf def finalize_neofetch(): """ Finalize current version """ # 1. Update distro list print('Updating distro list in neofetch...') path = Path('neofetch') content = path.read_text() content = re.compile(r'(?<=# Flag: --ascii_distro\n#\n).*?(?=ascii_distro=)', re.DOTALL)\ .sub(generate_help(100, '# ') + '\n', content) content = re.compile(r"""(?<=Which Distro's ascii art to print\n\n).*?{distro}_small to use them\.""", re.DOTALL)\ .sub(generate_help(100, ' ' * 32), content) path.write_text(content) # 2. Regenerate man page print('Regenerating neofetch man page...') Path('docs/neofetch.1').write_text(subprocess.check_output(['help2man', './neofetch']).decode()) Path('docs/hyfetch.1').write_text(subprocess.check_output(['help2man', 'python3 -m hyfetch']).decode()) # 3. Reformat readme links print('Reformatting readme links...') reformat_readme() def post_check(): """ Check after changes are made """ print('Running shellcheck... (This may take a while)') subprocess.check_call(shlex.split('shellcheck neofetch')) def create_release(v: str): """ Create release commit and tag """ print('Committing changes...') # 1. Add files subprocess.check_call(['git', 'add', '.']) # 2. Commit subprocess.check_call(['git', 'commit', '-m', f'[U] Release {v}']) # 3. Create tag subprocess.check_call(['git', 'tag', v]) subprocess.check_call(['git', 'tag', f'neofetch-{NEOFETCH_NEW_VERSION}']) i = input('Please check the commit is correct. Press y to continue or any other key to cancel.') assert i == 'y' # 4. Push print('Pushing commits...') subprocess.check_call(['git', 'push']) subprocess.check_call(['git', 'push', 'origin', v, f'neofetch-{NEOFETCH_NEW_VERSION}']) def deploy(): """ Deploy release to pip and npm """ print('Deploying to pypi...') subprocess.check_call(['bash', 'tools/deploy.sh']) print('Done!') print('Deploying to npm...') otp = input('Please provide 2FA OTP for NPM: ') subprocess.check_call(['npm', 'publish', '--otp', otp]) print('Done!') if __name__ == '__main__': parser = argparse.ArgumentParser(description='HyFetch Release Utility') parser.add_argument('version', help='Version to release') args = parser.parse_args() pre_check() export_distros() edit_versions(args.version) finalize_neofetch() post_check() create_release(args.version) deploy() hyfetch-1.99.0/tools/deploy.md000066400000000000000000000011611470626616500162360ustar00rootroot00000000000000### Things to do before deploying... * [x] Check file permissions (+x) * [x] Check Shellcheck (should be automatic) * [x] Update version numbers (`README.md`, `package.json`, `hyfetch/constants.py`, `neofetch`) * [x] Update distro list in neofetch help (`tools/list_distros.py`) * [x] Regenerate man page (`help2man ./neofetch > neofetch.1`) * [ ] Create an RC release and deploy to pypi, try installing and testing on many distros. * [ ] Change back to stable release, create tag, create GitHub release * [x] Formally deploy to pypi and npm (`tools/deploy.sh`, `npm publish`) * [ ] Update ArchLinux AUR and NixOS packaging hyfetch-1.99.0/tools/deploy.sh000077500000000000000000000003551470626616500162570ustar00rootroot00000000000000#!/usr/bin/env bash # Stop on error set -e # Get script directory DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" # Run build_pkg "$DIR/build_pkg.sh" # Check built files twine check dist/* twine upload dist/* hyfetch-1.99.0/tools/extract_color.py000066400000000000000000000015151470626616500176450ustar00rootroot00000000000000import re, json distro_color = {} def color(colornum): # see neofetch color() reset = "\e[0m" ascii_bold = "\e[1m" if colornum == "fg" or colornum == "7": return f"\e[37m{reset}" if colornum == "#": pass # TODO if int(colornum) >= 0 and int(colornum) < 7: return f"{reset}\e[3{colornum}m" return f"\e38;5;{colornum}m" with open("neofetch") as f: s = f.read() l = iter(s.split("\n")) for i in l: p = re.search(r'"\D+"\*\)', i) if p is None: continue distros = re.sub(r"\"|\)|\*", "", i.strip(" ")).split("|") c = next(l).strip(" ") if "set_colors" not in c: continue colors = c.split(" ")[1:] for dist in distros: distro_color[dist.strip(" ").rstrip(" ")] = colors with open("distcolor.json", "w") as f: json.dump(distro_color, f) hyfetch-1.99.0/tools/gen-autocomplete.sh000077500000000000000000000004551470626616500202340ustar00rootroot00000000000000#!/usr/bin/env bash # Echo all commands set -x shtab --shell=bash -u hyfetch.main.create_parser > hyfetch/scripts/autocomplete.bash shtab --shell=zsh -u hyfetch.main.create_parser > hyfetch/scripts/autocomplete.zsh shtab --shell=tcsh -u hyfetch.main.create_parser > hyfetch/scripts/autocomplete.csh hyfetch-1.99.0/tools/gh_moderator.example.toml000066400000000000000000000004321470626616500214210ustar00rootroot00000000000000# Secret of Github Webhook to verify the request is from Github webhook_secret = "secret" # Github token and repo to regulate gh_token = "token" gh_repo = "owner/repo" # AI harm classifier token harm_classifier_url = "https://example.com/classify" harm_classifier_token = "token" hyfetch-1.99.0/tools/gh_moderator.py000066400000000000000000000122701470626616500174470ustar00rootroot00000000000000# Start the server with: # # uvicorn tools.gh_moderator:app --reload --port 59523 # # pip install openai pygithub fastapi uvicorn hypy_utils import hashlib import hmac import json import unicodedata from datetime import datetime from pathlib import Path import openai import tomllib as toml from fastapi import FastAPI, Request, Response from github import Github from hypy_utils import write, json_stringify from hypy_utils.logging_utils import setup_logger from openai.openai_object import OpenAIObject from hyfetch.color_util import printc log = setup_logger() def read_config(): with open(Path.home() / ".config/gh_moderator.toml", "rb") as f: return toml.load(f) app = FastAPI() config = read_config() webhook_secret = bytes(config["webhook_secret"], "utf-8") gh = Github(per_page=100, login_or_token=config["gh_token"]) me = gh.get_user() repo = gh.get_repo(config["gh_repo"]) printc(f"&a[+] Logged in as {me.login}") harm_classifier_url, harm_classifier_token = config["harm_classifier_url"], config["harm_classifier_token"] script_path = Path(__file__).parent supported_events = ["issue_comment", "issues", "pull_request", "pull_request_review_comment"] ai_notice = f"If you think this is a false-positive, please contact the owner of this repo." openai.organization = config['OpenAI']['org'] openai.api_key = config['OpenAI']['key'] openai_model = config['OpenAI']['model'] def get_content(event: str, obj: dict) -> str: # Get the content of the event match event: case "issue_comment" | "pull_request_review_comment": return obj["comment"]["body"] case "issues": return obj["issue"]["title"] + "\n\n" + obj["issue"]["body"] case "pull_request": return obj["pull_request"]["title"] + "\n\n" + obj["pull_request"]["body"] def redact(event: str, obj: dict, id: str, reason: str): """ Redact the event """ printc(f"&c[!] Redacting {event} {id} for {reason}.") tail = f"\n\n> Reason: {reason}\n> {ai_notice}" redact_notice = f"[Redacted by [AI Content Moderator]({me.html_url})]{tail}" match event: case "issue_comment": # Redact the comment comment = repo.get_issue(obj["issue"]["number"]).get_comment(obj["comment"]["id"]) comment.edit(body=redact_notice) case "pull_request_review_comment": # Redact the comment comment = repo.get_pull(obj["pull_request"]["number"]).get_review_comment(obj["comment"]["id"]) comment.edit(body=redact_notice) case "issues" | "pull_request": # Close the issue iss = repo.get_issue(obj["issue"]["number"]) iss.edit(title="[Redacted]", body=redact_notice, state="closed") iss.create_comment(f"Issue closed for potentially offensive content.{tail}") iss.lock("spam") async def process_event(event: str, obj: dict, id: str): # Preliminary checks if event not in supported_events: printc(f"&7[-] Unknown event: {event}") return if obj['repository']['full_name'] != repo.full_name: printc(f"&7[-] Unknown repository: {obj['repository']['full_name']}") return blacklist_users = {v for v in (script_path / "blacklist_users.csv").read_text().split("\n") if v} actor = obj["sender"]["login"] if actor == me.login: printc(f"&7[-] Ignoring event by myself: {id} {event} by {actor}") return printc(f"&e[+] Received event: {id} {event} by {actor}") if actor in blacklist_users: redact(event, obj, id, "User is blacklisted") return # Normalize content content = unicodedata.normalize("NFKC", get_content(event, obj)) # Ask OpenAI to predict if it's offensive res: OpenAIObject = openai.Moderation.create(content, openai_model).results[0] write(f"moderator-data/openai/{id}.json", json_stringify(res)) if res.flagged: printc(f"\n&c[!] AI classified {event} {id} by {actor} as offensive !!!\n> Content: {content}\n\n") reason = " | ".join(f"{k} {res.category_scores.get(k) * 100:.0f}%" for k, v in res.categories.items() if v) redact(event, obj, id, f"Flagged by OpenAI : {reason}") return printc(f"&a[~] AI classified {event} {id} by {actor} as safe.") @app.post("/") async def handle_webhook(request: Request, response: Response): # Read headers event = request.headers.get("X-GitHub-Event") signature = request.headers.get("X-Hub-Signature") # Verify the signature body = await request.body() if not verify_signature(signature, body): response.status_code = 401 return {"message": "Invalid signature"} # Parse the event body obj = json.loads(body.decode()) # Log the request id = datetime.now().isoformat() write(f"moderator-data/webhook/{id}-{event}.json", json_stringify(obj, indent=4)) await process_event(event, obj, id) return {"message": "OK"} # Helper function to verify the signature def verify_signature(signature: str, payload: bytes) -> bool: hash_type, signature = signature.split("=") digest = hmac.new(webhook_secret, msg=payload, digestmod=getattr(hashlib, hash_type)).hexdigest() return hmac.compare_digest(digest, signature) hyfetch-1.99.0/tools/issue_fixed.py000077500000000000000000000017341470626616500173120ustar00rootroot00000000000000#!/usr/bin/env python3 import shlex from subprocess import check_output import pyperclip def copy_comment(): # Get commit SHA sha = check_output(shlex.split('git rev-parse --short HEAD')).decode().strip() # Copy comment to clipboard comment = f""" Thank you for reporting the issue! This issue is [fixed in hyfetch by commit {sha}](https://github.com/hykilpikonna/hyfetch/commit/{sha}). This repo (dylanaraps/neofetch) seems to be no longer maintained. [HyFetch](https://github.com/hykilpikonna/hyfetch) is a fork of neofetch with LGBTQ pride flags, but the repo also maintains an updated version of the original neofetch, addressing many issues and pull requests. Read the ["Running Updated Original Neofetch" section](https://github.com/hykilpikonna/hyfetch#running-updated-original-neofetch) for more info! """ pyperclip.copy(comment.strip()) print() print('Comment response copied to clipboard.') if __name__ == '__main__': copy_comment() hyfetch-1.99.0/tools/list_distros.py000077500000000000000000000126531470626616500175270ustar00rootroot00000000000000#!/usr/bin/env python3 """ List distributions supported by neofetch """ from __future__ import annotations import string import textwrap from pathlib import Path import regex import unicodedata from hypy_utils import write from hyfetch.distros import AsciiArt RE_SPLIT = regex.compile('EOF[ \n]*?;;') RE_COLORS = regex.compile("""(?<=set_colors )[\"#a-zA-Z\\d ']+(?=\n)""") def substr(s: str, start: str, end: str | None = None): """ Get substring between start and end """ start = s.index(start) + len(start) if end is None: return s[start:] return s[start:s.index(end, start)] def parse_ascii_distros() -> list[AsciiArt]: """ Parse ascii distros from neofetch script """ nf = (Path(__file__).parent.parent / 'neofetch').read_text('utf-8').replace('\t', ' ' * 4) # Get the content of "get_distro_ascii" function nf = nf[nf.index('get_distro_ascii() {\n'):] nf = nf[:nf.index('\n}\n')] # Remove trailing spaces while ' \n' in nf: nf = nf.replace(' \n', '\n') # Split by blocks blocks = [sub.strip() for b in regex.split('case .*? in\n', nf) for sub in RE_SPLIT.split(b)] # Parse blocks def parse_block(block: str) -> AsciiArt: try: # Get ascii art assert "'EOF'\n" in block art = substr(block, "'EOF'\n") # Join \ block = block.replace('\\\n', ' ') # Get switch-case matching parameter match = block.split('\n')[0].strip() assert match.endswith(')') match = match[:-1] # Get colors color = RE_COLORS.findall(block)[0].strip("'") if len(color) == 0: raise Exception(block) return AsciiArt(match, color, art) except AssertionError: pass out = [parse_block(block) for block in blocks] return [v for v in out if v] def wrap(text: str, max_len: int, leading: str): length = max_len - len(leading) lines = [line for raw in text.split('\n') for line in textwrap.wrap(raw, length) or ['']] return '\n'.join(leading + line if line else line for line in lines) def generate_help(max_len: int, leading: str): distros = sorted(list({a.get_friendly_name() for a in parse_ascii_distros()}), key=str.casefold) smalls = [d.replace('_small', '') for d in distros if d.endswith('_small')] olds = [d.replace('_old', '') for d in distros if d.endswith('_old')] distros = [d for d in distros if not d.endswith('_small') and not d.endswith('_old')] out = f"NOTE: {', '.join(distros)} have ascii logos.\n\n"\ f"NOTE: {', '.join(olds)} have 'old' logo variants, use {{distro}}_old to use them.\n\n" \ f"NOTE: {', '.join(smalls)} have 'small' logo variants, use {{distro}}_small to use them." return wrap(out, max_len, leading) def match_condition(match: str) -> str: """ Convert simple glob match condition to python """ match = [s.strip() for s in match.split("|")] conds = [] for m in match: stripped = m.strip("*'\"").lower() if '*' in stripped or '"' in stripped: print(f"TODO: Cannot properly parse: {m}") # Exact matches if m.strip("*") == m: conds.append(f"name == '{stripped}'") continue # Both sides are * if m.startswith("*") and m.endswith("*"): conds.append(f"(name.startswith('{stripped}') or name.endswith('{stripped}'))") continue # Ends with * if m.endswith("*"): conds.append(f"name.startswith('{stripped}')") continue # Starts with * if m.startswith("*"): conds.append(f"name.endswith('{stripped}')") continue return ' or '.join(conds) def export_distro(d: AsciiArt) -> str: """ Export distro to a python script """ # Escape variable name varname = d.name.lower() for s in string.punctuation + ' ': varname = varname.replace(s, '_') # Remove accents varname = unicodedata.normalize('NFKD', varname).encode('ascii', 'ignore').decode('utf-8') # Escape/unescape ascii ascii = d.ascii.replace("\\\\", "\\") quotes = '"""' if '"""' in ascii: quotes = "'''" if "'''" in ascii: print(f"TODO: Cannot escape ascii because both \"\"\" and ''' exist: {ascii}") script = f"""# This file is automatically generated. Please do not modify. from . import AsciiArt {varname} = AsciiArt(match=r'''{d.match}''', color='{d.color}', ascii=r{quotes} {ascii} {quotes}) """ write(Path(__file__).parent.parent / f'hyfetch/distros/{varname}.py', script) # Generate python script for identifying the distro return f""" if {match_condition(d.match)}: from .{varname} import {varname} return {varname} """ def export_distros(): distros = parse_ascii_distros() # print('\n'.join(d.match for d in distros)) py = """# This file is automatically generated. Please do not modify. from __future__ import annotations from . import AsciiArt def detect(name: str) -> AsciiArt | None: if not name: return None name = name.lower() """ py += '\n'.join(export_distro(d).strip('\n') for d in distros) write(Path(__file__).parent.parent / f'hyfetch/distros/distro_detector.py', py) if __name__ == '__main__': # print(generate_help(100, ' ' * 32)) # print(generate_help(100, '# ')) export_distros() hyfetch-1.99.0/tools/list_unresolved.py000077500000000000000000000051201470626616500202150ustar00rootroot00000000000000#!/usr/bin/env python3 import math import os import shlex from collections import Counter from pathlib import Path from subprocess import check_output from github import Github from github.PullRequest import PullRequest import ruamel.yaml as yaml from hypy_utils.tqdm_utils import tq, pmap, tmap def obtain_resolved(): """ Obtain a list of resolved issues. """ prefix = 'dylanaraps/neofetch#' commits = check_output(shlex.split('git log --pretty=format:"%s"')).decode().strip().split('\n') commits = [(c, c.find(prefix)) for c in commits] commits = [(c, i+len(prefix)) for c, i in commits if i != -1] return sorted([int(c[i:c.find(' ', i)]) for c, i in commits]) if __name__ == '__main__': # Obtain a list of resolved issues resolved = set(obtain_resolved()) # Read the ignore-list with open(Path(__file__).parent / "pull_request_markings.yaml") as stream: ignore_list: dict[int, str] = yaml.safe_load(stream)['IgnoreList'] ignore_list.update({r: 'merged' for r in resolved}) # Obtain a list of open issues g = Github(per_page=100, login_or_token=os.environ.get('GH_TOKEN')) repo = g.get_repo('dylanaraps/neofetch') pager = repo.get_pulls(state='all') # Filter only unresolved issues pages = list(range(math.ceil(pager.totalCount // 100) + 1)) pulls: list[list[PullRequest]] = tmap(pager.get_page, pages, desc='Crawling pull requests...', unit='page') pulls: set[PullRequest] = {p for lst in pulls for p in lst} unresolved: set[PullRequest] = {p for p in pulls if p.number not in resolved and p.number not in ignore_list} # Filter merged / closed draft = {p for p in unresolved if p.draft} unresolved -= draft merged = {p for p in unresolved if p.merged_at} unresolved -= merged closed = {p for p in unresolved if p.state == 'closed'} unresolved -= closed ignore_counter = Counter(ignore_list.values()) hyfetch_merged = ignore_counter.pop('merged') print(f'Pull Request Statistics:') print(f'> {hyfetch_merged} PRs merged by HyFetch') print('\n'.join(f'> {c} PRs closed as {v} by HyFetch' for v, c in sorted(ignore_counter.items(), key=lambda x: -x[1]))) print() print(f'> {len(draft)} PR drafts') print(f'> {len(merged)} PRs merged by neofetch') print(f'> {len(closed)} PRs closed without merging') print() print(f'> {len(unresolved)} open PRs that needs to be addressed:') print() opened = sorted(list(unresolved), key=lambda p: p.number) # Print unresolved issues print('\n'.join(f'[{p.number}] {p.title} {p.html_url}' for p in opened)) hyfetch-1.99.0/tools/pull_nerd.py000066400000000000000000000010511470626616500167540ustar00rootroot00000000000000import json from pathlib import Path import requests if __name__ == '__main__': md = requests.get("https://raw.githubusercontent.com/lukas-w/font-logos/refs/heads/master/README.md").text md = [[field.strip().strip('`').replace('Linux', '').replace('GNU/', '').strip() for field in line.split('|')[1:-1]] for line in md.splitlines() if line.startswith("|") and 'fl-' in line] md = {name: chr(int(char, 16)) for name, css, code, char, img in md} Path("font_logos.json").write_text(json.dumps(md, indent=2, ensure_ascii=False)) hyfetch-1.99.0/tools/pull_request_markings.yaml000066400000000000000000000043231470626616500217260ustar00rootroot00000000000000# Pull request that I don't plan on merging, or already merged pull request that the script didn't # detect. IgnoreList: # [2227] Fixes the broken progress bars that result from particular distro colors 2227: duplicate # [2224] Added macOS Ventura to list of macOS versions 2224: duplicate # [2205] ascii logo for jatayu 2205: bad # [2193] Added DietPi os ASCII art 2193: duplicate # [2184] Add support for redcatOS 2184: bad # [2178] Show macOS Ventura name 2178: duplicate # [2154] Added Support for Uwuntu 2154: merged # [2156] Update neofetch (for macOS 13) 2156: duplicate # [2152] created much cleaner void ascii art 2152: merged # [2150] Add macOS 13 to version name list 2150: merged # [2141] Adding soviet linux support 2141: bad # [2113] Updated Ubuntu logo 2113: duplicate # [2104] Make DE Fluent on Windows 11 2104: duplicate # [2092] Update neofetch 2092: troll # [2081] added a q4os ascii 2081: duplicate # [2078] Fixed distro detection on CentOS 6 2078: incorrect # [2057] add AmogOS (Duplicate of 1904) 2057: duplicate # [2051] Typo in comment for col_offset 2051: incorrect # [1996] set_text_color: fix color code for multi-digit ones 1996: duplicate # [1940] Added code to display battery percentage and resolution in termux on android devices 1940: bad # [1936] Added PiluX logo. 1936: deleted # [1927] improve/add model name for arm linux cpus 1927: duplicate # [1925] New OS added: CBL-Mariner 1925: duplicate # [1922] Added BugTrack asciiart 1922: bad # [1897] Change source_mage's colors. 1897: deleted # [1889] Fix Windows 11 detection 1889: duplicate # [1861] Added FriendlyOS 1861: bad # [1857] Speed up `get_packages` 1857: bad # [1852] Added Aravalli Logo 1852: deleted # [1850] neofetch: remove duplicate distro ASCII logo 1850: duplicate # [1830] Replace non-posix use of 'hostname' command with 'uname -n' 1830: deleted # [1827] Improve manjaro logo 1827: deleted # [1700] Added Xeonix by Xinux Uzbekistan support 1700: deleted # [1585] Fix for Improvement idea for multiprocessor systems, current output is unclear 1585: incorrect # [1031] Use nvidia-smi for NVIDIA GPUs 1031: incorrect hyfetch-1.99.0/tools/reformat_readme.py000077500000000000000000000012011470626616500201240ustar00rootroot00000000000000#!/usr/bin/env python3 """ This script turns readme shorthand pull request references (i.e. dylanaraps/neofetch#1946) into full GitHub pull request links. """ import regex as re from pathlib import Path RE_SHORTHAND = re.compile(r"(\w+?)/(\w+?)#(\d+)") MY_RE = re.compile(r"(?<=[^\w\[])#(\d+)") def reformat_readme(): readme = Path('README.md').read_text() readme = re.sub(RE_SHORTHAND, r'[\1#\3](https://github.com/\1/\2/pull/\3)', readme) readme = re.sub(MY_RE, r'[#\1](https://github.com/hykilpikonna/hyfetch/pull/\1)', readme) Path('README.md').write_text(readme) if __name__ == '__main__': reformat_readme()