Compare commits
325 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8616ff0504 | |||
| dde9443ec7 | |||
| b6f0a80bb1 | |||
| a758b4ba04 | |||
| 700f651378 | |||
| 77614b635f | |||
| fdd3ef970d | |||
| e49ed7d080 | |||
| a1149ab68b | |||
| 6390ed10c4 | |||
| 810b380e47 | |||
| 1274e977c3 | |||
| 38fb44cb8e | |||
| 90c94044f4 | |||
| 5bf7fbf2b4 | |||
| 23a1b10467 | |||
| 0dae7ca3f9 | |||
| e23eb980d3 | |||
| 7171494e95 | |||
| c00848fd79 | |||
| 717ff369c0 | |||
| ff44ea6185 | |||
| 969a7c668c | |||
| bd5d76167e | |||
| f57ad70a20 | |||
| a3da5b6c59 | |||
| 3cbb20c899 | |||
| 0a9ac6a351 | |||
| 75ed187e72 | |||
| cd4849f0b8 | |||
| 0960024e71 | |||
| 7411ec87e7 | |||
| d8f49a2ea2 | |||
| 101d798c0a | |||
| 330de73df3 | |||
| 4e11d21401 | |||
| cb5635908f | |||
| fbbe3b1c93 | |||
| 774598fcb3 | |||
| 8abfb0c876 | |||
| 7a6628d387 | |||
| 09185e5a41 | |||
| 6efd890526 | |||
| 05cf31fc14 | |||
| 220b528c72 | |||
| 038d976b39 | |||
| 60609dfb7e | |||
| 610e06fcd9 | |||
| 49003c859f | |||
| 10bf2fce08 | |||
| 8a091f4d01 | |||
| 10b331052d | |||
| 8751faab2e | |||
| 0a1e97cd92 | |||
| 7e59c362be | |||
| 3e8c103479 | |||
| 5be5aa1b51 | |||
| 08f75415eb | |||
| 02b6e9d72d | |||
| 59b9dc6e1a | |||
| 0f302eea60 | |||
| 7c7cba2346 | |||
| f989ec0d20 | |||
| e72fe4d934 | |||
| 7f48e4cd43 | |||
| bc89c50427 | |||
| 7c93a0df1c | |||
| 8b67e539b5 | |||
| 7c16e15cea | |||
| 79e0a8360b | |||
| d2347cefb1 | |||
| cda96dda4e | |||
| 3dde4bcdef | |||
| 0811acab58 | |||
| f14324ffce | |||
| 1ba7b339c9 | |||
| 8987b0b15f | |||
| 4f12d97e40 | |||
| c3beb21966 | |||
| 078af21630 | |||
| 4e7724ecf8 | |||
| 624bd97045 | |||
| 45ea478414 | |||
| 9e001c530f | |||
| d850e4c91e | |||
| 376268f79e | |||
| b955a61ac5 | |||
| c099c9e5f7 | |||
| 7b62c80881 | |||
| d6b33ae3e9 | |||
| 9da32dab4b | |||
| cf0202fd7c | |||
| 8a01ce491b | |||
| fd2248daec | |||
| ab23dc3c2b | |||
| 58a82c2b5e | |||
| d0fda1ef0d | |||
| 82c37a28d3 | |||
| b7c8937c4e | |||
| 996f894d07 | |||
| d8ce41a212 | |||
| 712cf097f4 | |||
| 92ae4b4316 | |||
| 31f50d38ee | |||
| eef75c9b46 | |||
| cbbd6cba2b | |||
| 881534987b | |||
| f54c45fbd0 | |||
| 239bb8e458 | |||
| e44040b2aa | |||
| 042ec7a33c | |||
| 215c7bf361 | |||
| d79432b1f5 | |||
| 59fa4e5ecc | |||
| 8a4a96634c | |||
| 170e1148a9 | |||
| b4494cab21 | |||
| a8352d1fef | |||
| 1456660797 | |||
| 872cccb6f4 | |||
| 67915c332e | |||
| 935c45495d | |||
| b883f5b83b | |||
| 7a1b4b76d4 | |||
| affd1a2d63 | |||
| 1798734f17 | |||
| 7aa6f33f34 | |||
| 92d8c50268 | |||
| d338e82ca5 | |||
| bed98253b4 | |||
| 6e64957f7f | |||
| 80b79d7dbb | |||
| f7aa3ea8ed | |||
| 25ca95df8a | |||
| fa52cd42c2 | |||
| 7001d873b9 | |||
| b100e35bc7 | |||
| 3124ec0b3e | |||
| 6911087eab | |||
| 45f224d9dd | |||
| 206fa8d726 | |||
| 1e1cddc58f | |||
| b9773b989d | |||
| 8f8ecb7b94 | |||
| e96ff8e8aa | |||
| 10a2367077 | |||
| 5966bd0c22 | |||
| 64b7e11392 | |||
| ec172fb47a | |||
| 95f8168a0c | |||
| dbea0c04e2 | |||
| fd2dfb80ce | |||
| 821b3069be | |||
| d3377f5cf3 | |||
| dd944cb5a5 | |||
| 8500873387 | |||
| e0d05b4643 | |||
| 80c15d9d51 | |||
| bc7339969f | |||
| d9a31fd78e | |||
| d31c87796f | |||
| c52d9dca66 | |||
| 48dc7eee76 | |||
| edf62e98e3 | |||
| 0837ac87cf | |||
| 71dd40ecb9 | |||
| 69738f06e8 | |||
| 05801ca9d2 | |||
| 42a6a55c9e | |||
| d1b69b7852 | |||
| ccecf6424d | |||
| af1a3857eb | |||
| c431695eee | |||
| 3cc8a6cf01 | |||
| a732d37157 | |||
| dce75a7d6d | |||
| 3f220b5270 | |||
| 900820ffee | |||
| 7559fc516a | |||
| e3c799ae9e | |||
| 664b7c2e30 | |||
| 2fb6f214eb | |||
| 086705ff07 | |||
| 783a006abf | |||
| b0b4ef9d80 | |||
| 6c665d9c6c | |||
| 078ff79c16 | |||
| e31d3df4c6 | |||
| 2a84f63fd5 | |||
| 39e5dd0471 | |||
| 503cc3ec98 | |||
| 3f4b5b2a1f | |||
| 1d9fac6f1f | |||
| c176e6ffae | |||
| eeead8d7c3 | |||
| 9cf4b6cdcb | |||
| 42ca4dd5bd | |||
| 1f55b8d2e8 | |||
| 002a10466f | |||
| 8278b92e12 | |||
| 2850674070 | |||
| bd0415884a | |||
| e07241349d | |||
| 93d7b8b881 | |||
| 3b781bc84f | |||
| a656531726 | |||
| a4b05891b9 | |||
| 4894c472e6 | |||
| 371e660a39 | |||
| e184c99055 | |||
| 5b307d53cc | |||
| 4daff3b04d | |||
| 9d48719fb9 | |||
| 26495b59cd | |||
| 78397b27a2 | |||
| 6357e8909f | |||
| 09ea0c3356 | |||
| d610559b01 | |||
| e1494bf07d | |||
| ea4b11a6a1 | |||
| 42973cc700 | |||
| 210c002c61 | |||
| e30df6c719 | |||
| 48884c419b | |||
| ca9edf4e3f | |||
| 64a997ed0a | |||
| 32631d9217 | |||
| 350cb26755 | |||
| 0c730cad1a | |||
| 22622767d8 | |||
| d201644dc5 | |||
| 9778ebf3cf | |||
| 769580314c | |||
| 8d9d8a487e | |||
| 283125f7c5 | |||
| e9fc94096e | |||
| 50420c8044 | |||
| 9ab2b511d7 | |||
| c4027dd91e | |||
| c3176656ef | |||
| 16024267d0 | |||
| 7a7955e58a | |||
| 2dac990718 | |||
| e7b92d9e57 | |||
| b7f1655472 | |||
| 47c32f07d7 | |||
| 97cbdecb5e | |||
| a351a7c731 | |||
| 4be8be3a61 | |||
| a60aa8ee41 | |||
| e12efe5535 | |||
| 2de5282b9c | |||
| a2b6df6d9e | |||
| 8cd70044a1 | |||
| d797a8c28a | |||
| 44b3eb7b56 | |||
| aac56be0c1 | |||
| 3253d4cbcc | |||
| 256759ce08 | |||
| 45d88a346c | |||
| 6e58b2b217 | |||
| c6c297a3b5 | |||
| f3b8a26d0e | |||
| b0b9c65d0c | |||
| 82bd8c1c4e | |||
| b53bd3a1c5 | |||
| 315037c32f | |||
| 3f7b6aa3e2 | |||
| c779230f0b | |||
| 6a393986ac | |||
| 4dc28cd65d | |||
| bd9a01e334 | |||
| 983b4bed75 | |||
| 201dc17c9d | |||
| c26bf9fb4a | |||
| b97f562780 | |||
| d561057cd8 | |||
| 7254d787cd | |||
| 7b3b51a5ce | |||
| 0d8ff614c9 | |||
| 2250f05cca | |||
| 9cdf849193 | |||
| 765b03643d | |||
| f04bca3045 | |||
| 0e0613588e | |||
| c392685004 | |||
| 34006a6f75 | |||
| 3aa5a6d99e | |||
| 31578af72b | |||
| f2fefb5379 | |||
| 6b43063ca1 | |||
| ef29fa6e57 | |||
| 15c2b33575 | |||
| ca0e3edcfa | |||
| 5a9ac6ee95 | |||
| 3ed56a46b3 | |||
| 6ff0b0a28b | |||
| 1e2ccf07a8 | |||
| 3e383f68f1 | |||
| 4f519e3aae | |||
| 116f038d86 | |||
| d1fac5df1d | |||
| f85fd46f63 | |||
| 4f49053c8f | |||
| 0f5a329522 | |||
| e68bb3dd2e | |||
| 1456af01ba | |||
| 4917191cdb | |||
| 5d9b77c9b0 | |||
| 0a4a58c1fb | |||
| 118be2c6e6 | |||
| a0221c51ff | |||
| ddd8dad7ef | |||
| e407d5bad1 | |||
| d2ea94a15d | |||
| 1b5dcdf7bc | |||
| cb32928102 | |||
| 86e266e5b7 | |||
| 10cf43e53a | |||
| 4141531b22 | |||
| 0e7799ff7e | |||
| 9281ae5ed1 | |||
| e64b4d29f9 | |||
| 00e0343150 | |||
| e5d28f28c6 |
@@ -0,0 +1,68 @@
|
||||
name: 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
|
||||
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
name: 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' <README.md)>temp_CHANGELOG.md
|
||||
|
||||
- name: Publish release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
bodyFile: "temp_CHANGELOG.md"
|
||||
tag: ${{ env.BUILDVER }}
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
@@ -0,0 +1,24 @@
|
||||
name: 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
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
language: bash
|
||||
sudo: required
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
before_install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install screenresolution; fi
|
||||
|
||||
script:
|
||||
- time ./neofetch --travis -v
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck -e SC2244 -e SC2243 neofetch; fi
|
||||
# Check for lines longer than 100 chars.
|
||||
- if grep '.\{102\}' neofetch; then (exit 1); else (exit 0); fi
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
neofetch with pride flags <3
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/22280294/162614541-af2b4660-f1f7-4287-b978-1aa2266ac70f.png" width="60%">
|
||||
<img alt="screenshot" src="https://user-images.githubusercontent.com/22280294/197708447-ddee6db2-1017-48f2-b507-8ddf85acef0d.png">
|
||||
|
||||
### Running Updated Original Neofetch
|
||||
|
||||
@@ -12,6 +12,7 @@ This repo also serves as an updated version of the original `neofetch` since the
|
||||
* Method 2: `npx neowofetch`
|
||||
* Method 3: `bash <(curl -sL neowofetch.hydev.org)`
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
### Method 1: Install using Python pip (Recommended)
|
||||
@@ -26,9 +27,20 @@ pip install hyfetch
|
||||
|
||||
Currently, these distributions have existing packages for HyFetch:
|
||||
|
||||
* ArchLinux: `yay -S hyfetch` (Thanks to @ Aleksana)
|
||||
* Nix: `nix-env -i hyfetch` (Thanks to @ YisuiDenghua)
|
||||
* Guix: `guix install hyfetch` (Thanks to @ WammKD)
|
||||
* Arch Linux: `paru -S hyfetch` or `yay -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa))
|
||||
* Nix: `nix-env -i hyfetch` (Thanks to [@YisuiDenghua](https://github.com/YisuiDenghua))
|
||||
* Guix: `guix install hyfetch` (Thanks to [@WammKD](https://github.com/WammKD))
|
||||
|
||||
### 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
|
||||
|
||||
@@ -36,6 +48,9 @@ When you run `hyfetch` for the first time, it will prompt you to choose a color
|
||||
|
||||
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`
|
||||
@@ -48,6 +63,18 @@ Feel free to experiment with it!
|
||||
|
||||

|
||||
|
||||
|
||||
## 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
|
||||
@@ -57,8 +84,121 @@ Updates to `neowofetch` begins with the emoji 🖼️
|
||||
|
||||
### TODO
|
||||
|
||||
* [ ] Paginate flags
|
||||
* [ ] Implement light/dark background detection based on https://github.com/muesli/termenv
|
||||
* [ ] (Important!) Refactor flag storage & coloring to support non-stride patterns
|
||||
* [ ] Config menu: Allow left-right arrow keys for pagination
|
||||
|
||||
<!-- CHANGELOG STARTS HERE --->
|
||||
|
||||
### 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)
|
||||
* 🌈 Add gender nonconforming & femboy & tomboy flags (#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)
|
||||
* 🖼️ Misc - Auto select stdout mode based on tty detection (#31)
|
||||
* 🖼️ Bug Fix - Fix cols coloring reset for bash 3.2 (#24)
|
||||
|
||||
### 1.4.2
|
||||
|
||||
* 🌈 Detailed runnning/contributing instructions in README.md (#21)
|
||||
* 🖼️ Distro - Add Stock Linux (#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)
|
||||
* 🖼️ 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)
|
||||
|
||||
### 1.4.1
|
||||
|
||||
* 🌈 Paginate flags (#14)
|
||||
* 🌈 Add release workflow (#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)
|
||||
* 🚀 Addressed a total of 128 currently open pull requests from neofetch
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Meta Changes</summary>
|
||||
|
||||
* 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))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Distro/OS Support Changes</summary>
|
||||
|
||||
* 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))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Device Support Changes</summary>
|
||||
|
||||
* 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))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Bug Fixes</summary>
|
||||
|
||||
* 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))
|
||||
|
||||
</details>
|
||||
|
||||
### 1.3.0
|
||||
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from . import main
|
||||
from . import main, constants
|
||||
|
||||
__version__ = main.VERSION
|
||||
__version__ = constants.VERSION
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
from hyfetch import main
|
||||
|
||||
if __name__ == '__main__':
|
||||
main.run()
|
||||
+32
-11
@@ -1,8 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import colorsys
|
||||
from typing import NamedTuple, Callable, Optional
|
||||
|
||||
from dataclasses import dataclass, astuple
|
||||
from typing_extensions import Literal
|
||||
|
||||
from .constants import GLOBAL_CFG
|
||||
@@ -84,11 +83,28 @@ def redistribute_rgb(r: int, g: int, b: int) -> tuple[int, int, int]:
|
||||
return int(gray + x * r), int(gray + x * g), int(gray + x * b)
|
||||
|
||||
|
||||
class RGB(NamedTuple):
|
||||
@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":
|
||||
"""
|
||||
@@ -100,9 +116,7 @@ class RGB(NamedTuple):
|
||||
:param hex: Hex color code
|
||||
:return: RGB object
|
||||
"""
|
||||
while hex.startswith('#'):
|
||||
hex = hex[1:]
|
||||
|
||||
hex = hex.lstrip("#")
|
||||
r = int(hex[0:2], 16)
|
||||
g = int(hex[2:4], 16)
|
||||
b = int(hex[4:6], 16)
|
||||
@@ -177,6 +191,10 @@ class RGB(NamedTuple):
|
||||
"""
|
||||
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
|
||||
@@ -187,16 +205,19 @@ class RGB(NamedTuple):
|
||||
:return: New color (original isn't modified)
|
||||
"""
|
||||
# Convert to HSL
|
||||
h, l, s = colorsys.rgb_to_hls(*[v / 255.0 for v in self])
|
||||
hsl = self.hsl()
|
||||
|
||||
# Modify light value
|
||||
if at_least is None and at_most is None:
|
||||
l = light
|
||||
hsl.l = light
|
||||
else:
|
||||
if at_most:
|
||||
l = min(l, light)
|
||||
hsl.l = min(hsl.l, light)
|
||||
if at_least:
|
||||
l = max(l, light)
|
||||
hsl.l = max(hsl.l, light)
|
||||
|
||||
# Convert back to RGB
|
||||
return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(h, l, s)])
|
||||
return hsl.rgb()
|
||||
|
||||
def is_light(self):
|
||||
return self.hsl().l > 0.5
|
||||
|
||||
@@ -7,13 +7,8 @@ from pathlib import Path
|
||||
from typing_extensions import Literal
|
||||
|
||||
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
||||
VERSION = '1.3.0'
|
||||
VERSION = '1.4.3'
|
||||
|
||||
# Obtain terminal size
|
||||
try:
|
||||
TERM_LEN = os.get_terminal_size().columns
|
||||
except Exception:
|
||||
TERM_LEN = 40
|
||||
|
||||
TEST_ASCII = r"""
|
||||
### |\___/| ###
|
||||
@@ -32,6 +27,7 @@ _/\_\_ _/_/\_
|
||||
TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n'))
|
||||
DEFAULT_DARK_L = 0.
|
||||
|
||||
|
||||
@dataclass
|
||||
class GlobalConfig:
|
||||
# Global color mode default to 8-bit for compatibility
|
||||
@@ -50,3 +46,5 @@ class GlobalConfig:
|
||||
|
||||
|
||||
GLOBAL_CFG = GlobalConfig(color_mode='8bit', override_distro=None, debug=False, is_light=False)
|
||||
|
||||
MINGIT_URL = 'https://github.com/git-for-windows/git/releases/download/v2.37.2.windows.2/MinGit-2.37.2.2-busybox-32-bit.zip'
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import string
|
||||
|
||||
asciis: list['AsciiArt'] = []
|
||||
|
||||
|
||||
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()
|
||||
asciis.append(self)
|
||||
|
||||
def get_friendly_name(self) -> str:
|
||||
return self.match.split("|")[0].strip(string.punctuation + '* ') \
|
||||
.replace('"', '').replace('*', '')
|
||||
|
||||
|
||||
+191
-96
@@ -4,14 +4,17 @@ from __future__ import annotations
|
||||
import argparse
|
||||
import json
|
||||
import random
|
||||
import re
|
||||
import traceback
|
||||
from itertools import permutations
|
||||
from math import ceil
|
||||
from typing import Iterable
|
||||
|
||||
from .color_util import printc, color, clear_screen
|
||||
from .constants import CONFIG_PATH, VERSION, TERM_LEN, TEST_ASCII_WIDTH, TEST_ASCII, GLOBAL_CFG
|
||||
from . import termenv
|
||||
from .color_scale import Scale
|
||||
from .color_util import printc, color, clear_screen, AnsiMode
|
||||
from .constants import *
|
||||
from .models import Config
|
||||
from .neofetch_util import run_neofetch, get_distro_ascii, ColorAlignment, ascii_size, get_fore_back
|
||||
from .neofetch_util import *
|
||||
from .presets import PRESETS
|
||||
|
||||
|
||||
@@ -83,53 +86,86 @@ def create_config() -> Config:
|
||||
|
||||
:return: Config object (automatically stored)
|
||||
"""
|
||||
title = 'Welcome to &b&lhy&f&lfetch&r! Let\'s set up some colors first.'
|
||||
# Detect terminal environment
|
||||
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("&b&lhyfetch&r" if det_bg is None or det_bg.is_light() else "&b&lhy&f&lfetch&r")
|
||||
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)} &r{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
|
||||
if term_len < 2 * asc_width + 4 or term_lines < 30:
|
||||
printc(f'&cWarning: Your terminal is too small ({term_len} * {term_lines}). \n'
|
||||
f'Please resize it for better experience.')
|
||||
input('Press any key to ignore...')
|
||||
except:
|
||||
# print('Warning: We cannot detect your terminal size.')
|
||||
pass
|
||||
|
||||
##############################
|
||||
# 1. Select color system
|
||||
try:
|
||||
# Demonstrate RGB with a gradient. This requires numpy
|
||||
from .color_scale import Scale
|
||||
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)]
|
||||
_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))))
|
||||
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()
|
||||
printc(f'&a1. Which &bcolor system &ado you want to use?')
|
||||
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()
|
||||
color_system = literal_input('Your choice?', ['8bit', 'rgb'], 'rgb')
|
||||
|
||||
except ModuleNotFoundError:
|
||||
# Numpy not found, skip gradient test, use fallback
|
||||
color_system = literal_input('Which &acolor &bsystem &rdo you want to use?',
|
||||
['8bit', 'rgb'], 'rgb')
|
||||
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
|
||||
title += f'\n&e1. Selected color mode: &r{color_system}'
|
||||
update_title(ttl, color_system)
|
||||
|
||||
##############################
|
||||
# 2. Select light/dark mode
|
||||
clear_screen(title)
|
||||
light_dark = literal_input(f'2. Is your terminal in &gf(#85e7e9)light mode&r or &gf(#c471ed)dark mode&r?',
|
||||
['light', 'dark'], 'dark')
|
||||
is_light = light_dark == 'light'
|
||||
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&r or &4dark mode&r?',
|
||||
['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
|
||||
title += f'\n&e2. Light/Dark: &r{light_dark}'
|
||||
update_title(ttl, light_dark)
|
||||
|
||||
##############################
|
||||
# 3. Choose preset
|
||||
clear_screen(title)
|
||||
printc('&a3. Let\'s choose a flag!')
|
||||
printc('Available flag presets:')
|
||||
print()
|
||||
|
||||
# Create flags = [[lines]]
|
||||
flags = []
|
||||
spacing = max(max(len(k) for k in PRESETS.keys()), 20)
|
||||
@@ -138,85 +174,129 @@ def create_config() -> Config:
|
||||
flags.append([name.center(spacing), flag, flag, flag])
|
||||
|
||||
# Calculate flags per row
|
||||
flags_per_row = TERM_LEN // (spacing + 2)
|
||||
while flags:
|
||||
current = flags[:flags_per_row]
|
||||
flags = flags[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))
|
||||
|
||||
# Print by row
|
||||
# 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()
|
||||
|
||||
print()
|
||||
tmp = PRESETS['rainbow'].set_light_dl_def(light_dark).color_text('preset')
|
||||
preset = literal_input(f'Which {tmp} do you want to use?', PRESETS.keys(), 'rainbow', show_ops=False)
|
||||
_prs = PRESETS[preset]
|
||||
title += f'\n&e3. Selected flag: &r{_prs.color_text(preset)}'
|
||||
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
|
||||
clear_screen(title)
|
||||
printc(f'&a4. 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_LEN // (TEST_ASCII_WIDTH + 2)
|
||||
ratios = [col / (num_cols - 1) for col in range(num_cols)]
|
||||
ratios = [(r * 0.4 + 0.1) if is_light else (r * 0.4 + 0.5) 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)]
|
||||
|
||||
while True:
|
||||
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()
|
||||
printc(f'Which brightness level look the best? (Default: left blank = {GLOBAL_CFG.default_lightness(light_dark):.2f} for {light_dark} mode)')
|
||||
lightness = input('> ').strip().lower() or None
|
||||
|
||||
# Parse lightness
|
||||
if not lightness or lightness in ['unset', 'none']:
|
||||
lightness = None
|
||||
break
|
||||
# Print cats
|
||||
num_cols = term_size()[0] // (TEST_ASCII_WIDTH + 2)
|
||||
mn, mx = 0.15, 0.85
|
||||
ratios = [col / (num_cols - 1) 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)]
|
||||
|
||||
try:
|
||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
|
||||
assert 0 <= lightness <= 1
|
||||
break
|
||||
def_lightness = GLOBAL_CFG.default_lightness(light_dark)
|
||||
|
||||
except Exception:
|
||||
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
|
||||
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
|
||||
|
||||
if lightness:
|
||||
_prs = _prs.set_light_dl(lightness, light_dark)
|
||||
title += f'\n&e4. Brightness: &r{f"{lightness:.2f}" if lightness else "unset"}'
|
||||
# Parse lightness
|
||||
if not lightness or lightness in ['unset', 'none']:
|
||||
return def_lightness
|
||||
|
||||
try:
|
||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
|
||||
assert 0 <= lightness <= 1
|
||||
return lightness
|
||||
|
||||
except Exception:
|
||||
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
|
||||
|
||||
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 = 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)
|
||||
|
||||
asc = get_distro_ascii()
|
||||
asc_width = ascii_size(asc)[0]
|
||||
fore_back = get_fore_back()
|
||||
arrangements = [
|
||||
('Horizontal', ColorAlignment('horizontal', fore_back=fore_back)),
|
||||
('Vertical', ColorAlignment('vertical'))
|
||||
]
|
||||
ascii_per_row = TERM_LEN // (asc_width + 2)
|
||||
|
||||
# Random color schemes
|
||||
pis = list(range(len(_prs.unique_colors().colors)))
|
||||
slots = len(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
||||
while len(pis) < slots:
|
||||
slots = list(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
||||
while len(pis) < len(slots):
|
||||
pis += pis
|
||||
perm = {p[:slots] for p in permutations(pis)}
|
||||
random_count = ascii_per_row * 2 - 2
|
||||
perm = {p[:len(slots)] for p in permutations(pis)}
|
||||
random_count = ascii_per_row * ascii_rows - len(arrangements)
|
||||
if random_count > len(perm):
|
||||
choices = perm
|
||||
else:
|
||||
choices = random.sample(perm, random_count)
|
||||
choices = [{i + 1: n for i, n in enumerate(c)} for c in choices]
|
||||
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]
|
||||
|
||||
@@ -228,17 +308,18 @@ def create_config() -> Config:
|
||||
[printc(' '.join(line)) for line in zip(*current)]
|
||||
print()
|
||||
|
||||
printc(f'&a5. Let\'s choose a color arrangement!')
|
||||
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 arrangements}
|
||||
arrangement_index = {k.lower(): ca for k, ca in hv_arrangements + arrangements}
|
||||
if choice in arrangement_index:
|
||||
color_alignment = arrangement_index[choice]
|
||||
else:
|
||||
@@ -247,7 +328,7 @@ def create_config() -> Config:
|
||||
|
||||
break
|
||||
|
||||
title += f'\n&e5. Color Alignment: &r{color_alignment}'
|
||||
update_title('Color alignment', color_alignment)
|
||||
|
||||
# Create config
|
||||
clear_screen(title)
|
||||
@@ -263,6 +344,12 @@ def create_config() -> Config:
|
||||
|
||||
|
||||
def run():
|
||||
# Optional: Import readline
|
||||
try:
|
||||
import readline
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
|
||||
# Create CLI
|
||||
hyfetch = color('&b&lhyfetch&r')
|
||||
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'))
|
||||
@@ -276,6 +363,7 @@ def run():
|
||||
parser.add_argument('--debug', action='store_true', help=f'Debug mode')
|
||||
parser.add_argument('--test-distro', help=f'Test for a specific distro')
|
||||
parser.add_argument('--test-print', action='store_true', help=f'Test print distro ascii art only')
|
||||
parser.add_argument('--ask-exit', action='store_true', help=f'Ask before exitting')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -283,6 +371,10 @@ def run():
|
||||
print(f'Version is {VERSION}')
|
||||
return
|
||||
|
||||
# Ensure git bash for windows
|
||||
ensure_git_bash()
|
||||
check_windows_cmd()
|
||||
|
||||
# Test distro ascii art
|
||||
if args.test_distro:
|
||||
print(f'Setting distro to {args.test_distro}')
|
||||
@@ -295,12 +387,8 @@ def run():
|
||||
print(get_distro_ascii())
|
||||
return
|
||||
|
||||
# Load config
|
||||
config = check_config()
|
||||
|
||||
# Reset config
|
||||
if args.config:
|
||||
config = create_config()
|
||||
# Load config or create config
|
||||
config = create_config() if args.config else check_config()
|
||||
|
||||
# Param overwrite config
|
||||
if args.preset:
|
||||
@@ -315,13 +403,20 @@ def run():
|
||||
# Get preset
|
||||
preset = PRESETS.get(config.preset)
|
||||
|
||||
# Lighten
|
||||
# Lighten (args > config)
|
||||
if args.scale:
|
||||
preset = preset.lighten(args.scale)
|
||||
if args.light:
|
||||
elif args.light:
|
||||
preset = preset.set_light_raw(args.light)
|
||||
if config.lightness:
|
||||
preset = preset.set_light_dl(config.lightness)
|
||||
else:
|
||||
preset = preset.set_light_dl(config.lightness or GLOBAL_CFG.default_lightness())
|
||||
|
||||
# Run
|
||||
run_neofetch(preset, config.color_align)
|
||||
try:
|
||||
run_neofetch(preset, config.color_align)
|
||||
except Exception as e:
|
||||
print(f'Error: {e}')
|
||||
traceback.print_exc()
|
||||
|
||||
if args.ask_exit:
|
||||
input('Press any key to exit...')
|
||||
|
||||
+114
-17
@@ -4,23 +4,38 @@ import inspect
|
||||
import os
|
||||
import platform
|
||||
import re
|
||||
import shlex
|
||||
import subprocess
|
||||
import sys
|
||||
import zipfile
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from subprocess import check_output
|
||||
from tempfile import TemporaryDirectory
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
import pkg_resources
|
||||
from typing_extensions import Literal
|
||||
|
||||
from hyfetch.color_util import color
|
||||
from .constants import GLOBAL_CFG
|
||||
from .constants import GLOBAL_CFG, MINGIT_URL
|
||||
from .presets import ColorProfile
|
||||
from .serializer import from_dict
|
||||
|
||||
RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}')
|
||||
|
||||
|
||||
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
|
||||
@@ -127,7 +142,83 @@ def get_command_path() -> str:
|
||||
|
||||
:return: Command path
|
||||
"""
|
||||
return pkg_resources.resource_filename(__name__, 'scripts/neowofetch')
|
||||
cmd_path = pkg_resources.resource_filename(__name__, 'scripts/neowofetch')
|
||||
|
||||
# Windows doesn't support symbolic links, but also I can't detect symbolic links... hard-code it here for now.
|
||||
if platform.system() == 'Windows':
|
||||
return str(Path(cmd_path).parent.parent.parent / 'neofetch')
|
||||
|
||||
return cmd_path
|
||||
|
||||
|
||||
def ensure_git_bash() -> Path:
|
||||
"""
|
||||
Ensure git bash installation for windows
|
||||
|
||||
:returns git bash path
|
||||
"""
|
||||
if platform.system() == 'Windows':
|
||||
# Find installation in default path
|
||||
def_path = Path(r'C:\Program Files\Git\bin\bash.exe')
|
||||
if def_path.is_file():
|
||||
return def_path
|
||||
|
||||
# Find installation in PATH (C:\Program Files\Git\cmd should be in path)
|
||||
pth = (os.environ.get('PATH') or '').lower().split(';')
|
||||
pth = [p for p in pth if p.endswith(r'\git\cmd')]
|
||||
if pth:
|
||||
return Path(pth[0]).parent / r'bin\bash.exe'
|
||||
|
||||
# Previously downloaded portable installation
|
||||
path = Path(__file__).parent / 'min_git'
|
||||
pkg_path = path / 'package.zip'
|
||||
if path.is_dir():
|
||||
return path / r'bin\bash.exe'
|
||||
|
||||
# No installation found, download a portable installation
|
||||
print('Git installation not found. Git is required to use HyFetch/neofetch on Windows')
|
||||
print('Downloading a minimal portable package for Git...')
|
||||
urlretrieve(MINGIT_URL, pkg_path)
|
||||
print('Download finished! Extracting...')
|
||||
with zipfile.ZipFile(pkg_path, 'r') as zip_ref:
|
||||
zip_ref.extractall(path)
|
||||
print('Done!')
|
||||
return path / r'bin\bash.exe'
|
||||
|
||||
|
||||
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 platform.system() == '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_command(args: str, pipe: bool = False) -> str | None:
|
||||
"""
|
||||
Run neofetch command
|
||||
"""
|
||||
if platform.system() != 'Windows':
|
||||
full_cmd = shlex.split(f'/usr/bin/env bash {get_command_path()} {args}')
|
||||
|
||||
else:
|
||||
cmd = get_command_path().replace("\\", "/").replace("C:/", "/c/")
|
||||
args = args.replace('\\', '/').replace('C:/', '/c/')
|
||||
|
||||
full_cmd = [ensure_git_bash(), '-c', f'{cmd} {args}']
|
||||
# print(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:
|
||||
@@ -147,11 +238,16 @@ def get_distro_ascii(distro: str | None = None) -> str:
|
||||
os.environ['CUSTOM_DISTRO'] = distro
|
||||
cmd = 'print_custom_ascii'
|
||||
|
||||
return normalize_ascii(check_output([get_command_path(), cmd]).decode().strip())
|
||||
asc = run_command(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 check_output([get_command_path(), 'ascii_distro_name']).decode().strip()
|
||||
return run_command('ascii_distro_name', True)
|
||||
|
||||
|
||||
def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
||||
@@ -165,6 +261,9 @@ def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
||||
w, h = ascii_size(asc)
|
||||
asc = alignment.recolor_ascii(asc, preset)
|
||||
|
||||
# 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)
|
||||
@@ -175,18 +274,7 @@ def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
||||
os.environ['ascii_len'] = str(w)
|
||||
os.environ['ascii_lines'] = str(h)
|
||||
|
||||
if platform.system() != 'Windows':
|
||||
os.system(f'{get_command_path()} --ascii --source {path.absolute()} --ascii-colors')
|
||||
|
||||
if platform.system() == 'Windows':
|
||||
cmd = get_command_path().replace("\\", "/").replace("C:/", "/c/")
|
||||
path_str = str(path.absolute()).replace('\\', '/').replace('C:/', '/c/')
|
||||
|
||||
cmd = f'ascii_len={w} ascii_lines={h} {cmd} --ascii --source {path_str} --ascii-colors'
|
||||
full_cmd = ['C:\\Program Files\\Git\\bin\\bash.exe', '-c', cmd]
|
||||
# print(full_cmd)
|
||||
|
||||
subprocess.run(full_cmd)
|
||||
run_command(f'--ascii --source {path.absolute()} --ascii-colors')
|
||||
|
||||
|
||||
def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
@@ -200,8 +288,9 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
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()):
|
||||
if distro == k.lower():
|
||||
return v
|
||||
return None
|
||||
|
||||
@@ -210,5 +299,13 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
fore_back = {
|
||||
'fedora': (2, 1),
|
||||
'ubuntu': (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),
|
||||
}
|
||||
|
||||
|
||||
+69
-1
@@ -112,7 +112,7 @@ class ColorProfile:
|
||||
"""
|
||||
return ColorProfile([c.set_light(light, at_least, at_most) for c in self.colors])
|
||||
|
||||
def set_light_dl(self, light: float, term: LightDark = GLOBAL_CFG.light_dark()):
|
||||
def set_light_dl(self, light: float, term: LightDark | None = None):
|
||||
"""
|
||||
Set HSL lightness value with respect to dark/light terminals
|
||||
|
||||
@@ -120,6 +120,7 @@ class ColorProfile:
|
||||
:param term: Terminal color (can be "dark" or "light")
|
||||
:return: New color profile (original isn't modified)
|
||||
"""
|
||||
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)
|
||||
@@ -525,4 +526,71 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#FFFFFF',
|
||||
'#000000',
|
||||
]),
|
||||
"finsexual": ColorProfile([
|
||||
"#B18EDF",
|
||||
"#D7B1E2",
|
||||
"#F7CDE9",
|
||||
"#F39FCE",
|
||||
"#EA7BB3",
|
||||
]),
|
||||
|
||||
'unlabeled1': ColorProfile([
|
||||
'#EAF8E4',
|
||||
'#FDFDFB',
|
||||
'#E1EFF7',
|
||||
'#F4E2C4'
|
||||
]),
|
||||
|
||||
'unlabeled2': ColorProfile([
|
||||
'#250548',
|
||||
'#FFFFFF',
|
||||
'#F7DCDA',
|
||||
'#EC9BEE',
|
||||
'#9541FA',
|
||||
'#7D2557'
|
||||
]),
|
||||
|
||||
'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"
|
||||
]),
|
||||
}
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import platform
|
||||
import signal
|
||||
import sys
|
||||
import termios
|
||||
import tty
|
||||
from select import select
|
||||
|
||||
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
|
||||
"""
|
||||
if 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 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:
|
||||
# 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]:
|
||||
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
|
||||
signal.alarm(0)
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
# 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:
|
||||
try:
|
||||
osc = unix_read_osc(11).lstrip("rgb:")
|
||||
return RGB.from_hex(''.join([v[:2] for v in osc.split('/')]))
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
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'
|
||||
# gh_token = os.environ['GH_TOKEN']
|
||||
|
||||
|
||||
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 = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json()
|
||||
# print(info)
|
||||
head = info['head']['repo']['full_name']
|
||||
head_br = info['head']['ref']
|
||||
head_lbl = info['head']['label']
|
||||
user = info['user']['login']
|
||||
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 commit information
|
||||
commits = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
||||
author = commits[0]['commit']['author']
|
||||
|
||||
# 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...')
|
||||
title = info["title"].replace('"', '\\"')
|
||||
os.system(f'git merge FETCH_HEAD --no-ff --no-edit '
|
||||
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"]}>"')
|
||||
|
||||
# Push
|
||||
print()
|
||||
print('Pushing...')
|
||||
os.system('git push')
|
||||
|
||||
# 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.')
|
||||
@@ -1,48 +0,0 @@
|
||||
import shlex
|
||||
from pathlib import Path
|
||||
from subprocess import check_output
|
||||
|
||||
from github import Github
|
||||
from github.PullRequest import PullRequest
|
||||
import ruamel.yaml as yaml
|
||||
|
||||
|
||||
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 = yaml.safe_load(stream)['IgnoreList']
|
||||
|
||||
# Obtain a list of open issues
|
||||
g = Github(per_page=100)
|
||||
repo = g.get_repo('dylanaraps/neofetch')
|
||||
pager = repo.get_pulls(state='open')
|
||||
|
||||
# Filter only unresolved issues
|
||||
unresolved: list[PullRequest] = []
|
||||
for i in range(10000000):
|
||||
pulls: list[PullRequest] = pager.get_page(i)
|
||||
if len(pulls) == 0:
|
||||
break
|
||||
|
||||
unresolved += [p for p in pulls if p.number not in resolved and p.number not in ignore_list and not p.draft]
|
||||
if len(unresolved) > 50:
|
||||
break
|
||||
|
||||
unresolved.sort(key=lambda p: p.number)
|
||||
|
||||
# Print unresolved issues
|
||||
print('\n'.join(f'[{p.number}] {p.title} {p.html_url}' for p in unresolved))
|
||||
@@ -1,29 +0,0 @@
|
||||
# Pull request that I don't plan on merging, or already merged pull request that the script didn't
|
||||
# detect.
|
||||
IgnoreList:
|
||||
# [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
|
||||
# [2104] Make DE Fluent on Windows 11
|
||||
2104: duplicate
|
||||
# [2092] Update neofetch
|
||||
2092: troll
|
||||
# [2081] added a q4os ascii
|
||||
2081: duplicate
|
||||
# [2057] add AmogOS (Duplicate of 1904)
|
||||
2057: duplicate
|
||||
# [2051] Typo in comment for col_offset
|
||||
2051: incorrect
|
||||
# [1936] Added PiluX logo.
|
||||
1936: deleted
|
||||
# [1927] improve/add model name for arm linux cpus
|
||||
1927: duplicate
|
||||
# [1850] neofetch: remove duplicate distro ASCII logo
|
||||
1850: duplicate
|
||||
# [1827] Improve manjaro logo
|
||||
1827: deleted
|
||||
File diff suppressed because it is too large
Load Diff
+75
-49
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3.
|
||||
.TH NEOFETCH "1" "April 2021" "Neofetch 7.1.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH NEOFETCH "1" "October 2022" "Neofetch 7.3.3" "User Commands"
|
||||
.SH NAME
|
||||
Neofetch \- A fast, highly customizable system info script
|
||||
Neofetch \- manual page for Neofetch 7.3.3
|
||||
.SH SYNOPSIS
|
||||
.B neofetch
|
||||
\fI\,func_name --option "value" --option "value"\/\fR
|
||||
@@ -44,7 +44,7 @@ NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu'
|
||||
Hide/Show Fully Qualified Domain Name in title.
|
||||
.TP
|
||||
\fB\-\-package_managers\fR on/off
|
||||
Hide/Show Package Manager names . (on, tiny, off)
|
||||
Hide/Show Package Manager names. (on, tiny, off)
|
||||
.TP
|
||||
\fB\-\-os_arch\fR on/off
|
||||
Hide/Show OS architecture.
|
||||
@@ -301,52 +301,57 @@ Colors to print the ascii art
|
||||
\fB\-\-ascii_distro\fR distro
|
||||
Which Distro's ascii art to print
|
||||
.TP
|
||||
NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS,
|
||||
Antergos, antiX, "AOSC OS", "AOSC OS/Retro", Apricity, ArchCraft,
|
||||
ArcoLinux, ArchBox, ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch,
|
||||
Artix, Arya, Bedrock, BigLinux, Bitrig, BlackArch, BLAG, BlankOn, BlueLight,
|
||||
bonsai, BSD, BunsenLabs, "Cachy OS", Calculate, Carbs, CentOS, Chakra, ChaletOS,
|
||||
Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
|
||||
Container_Linux, CRUX, Cucumber, dahlia, Debian, Deepin, DesaOS,
|
||||
Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary,
|
||||
EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, Finnix, FreeBSD,
|
||||
FreeMiNT, Frugalware, Funtoo, FusionX, GalliumOS, Garuda, Gentoo, Pentoo,
|
||||
Glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, Huayra,
|
||||
HydroOS, Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
|
||||
KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE,
|
||||
Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui,
|
||||
Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
|
||||
Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, OBRevenge, OpenBSD,
|
||||
openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt,
|
||||
osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix,
|
||||
TrueOS, PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
|
||||
Proxmox, Puppy, PureOS, Qubes, Quibian, Radix, Raspbian, Reborn_OS,
|
||||
Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith, Rosa,
|
||||
sabotage, Sabayon, Sailfish, SalentOS, ShastraOS, Scientific, Septor,
|
||||
SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, SmartOS,
|
||||
Solus, Soda, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
|
||||
t2, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
|
||||
Ubuntu\-Cinnamon, Ubuntu\-Budgie, Ubuntu\-GNOME, Ubuntu\-MATE,
|
||||
Ubuntu\-Studio, Ubuntu, Univention, Venom, Void, VNux, semc, Obarun,
|
||||
windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
|
||||
.IP
|
||||
NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
|
||||
.IP
|
||||
NOTE: Use '{distro name}_old' to use the old logos.
|
||||
.IP
|
||||
NOTE: Ubuntu has flavor variants.
|
||||
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
||||
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
||||
Apricity, Arch, ArchBox, Archcraft, ARCHlabs, ArchStrike, ArcoLinux,
|
||||
Artix, Arya, Asahi, AsteroidOS, astOS, Bedrock, BigLinux, Bitrig,
|
||||
BlackArch, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai,
|
||||
BSD, BunsenLabs, Cachy OS, Calculate, CalinixOS, Carbs, CBL\-Mariner,
|
||||
CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS,
|
||||
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres,
|
||||
Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
||||
CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS,
|
||||
Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian, Elementary,
|
||||
Elive, EncryptOS, EndeavourOS, Endless, EuroLinux, Exherbo, Exodia
|
||||
Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT, Frugalware,
|
||||
Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense,
|
||||
GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR,
|
||||
HarDClanZ, Hash, Huayra, HydroOS, Hyperbola, iglunix, instantOS,
|
||||
IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion,
|
||||
Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE,
|
||||
LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old,
|
||||
Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS, Mandriva,
|
||||
Manjaro, MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX,
|
||||
Namib, Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD,
|
||||
Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media
|
||||
Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva,
|
||||
OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt,
|
||||
OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch,
|
||||
Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
|
||||
Peppermint, 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, rocky, Rosa,
|
||||
Sabayon, sabotage, Sailfish, SalentOS, Scientific, semc, Septor,
|
||||
Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware,
|
||||
SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS,
|
||||
Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, 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, Univalent,
|
||||
Univention, Uos, uwuntu, Vanilla, Venom, VNux, Void, VzLinux, wiilinux\-ngx, Windows, Windows 10, Windows 11, XFerience, Xubuntu,
|
||||
yiffOS, Zorin have ascii logos.
|
||||
.TP
|
||||
NOTE: Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu\-GNOME,
|
||||
Ubuntu\-Studio, Ubuntu\-Mate or Ubuntu\-Budgie to use the flavors.
|
||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||
have 'old' logo variants, use {distro}_old to use them.
|
||||
.TP
|
||||
NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
|
||||
CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
|
||||
Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
|
||||
Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
|
||||
Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
|
||||
postmarketOS, and Void have a smaller logo variant.
|
||||
.IP
|
||||
NOTE: Use '{distro name}_small' to use the small variants.
|
||||
NOTE: alpine, android, aoscosretro, arch, arcolinux, artix,
|
||||
CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
||||
fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd,
|
||||
opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian,
|
||||
rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
|
||||
use {distro}_small to use them.
|
||||
.TP
|
||||
\fB\-\-ascii_bold\fR on/off
|
||||
Whether or not to bold the ascii logo.
|
||||
@@ -409,9 +414,18 @@ Don't create the user config file.
|
||||
\fB\-\-print_config\fR
|
||||
Print the default config file to stdout.
|
||||
.TP
|
||||
\fB\-\-stdout\fR
|
||||
\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
|
||||
@@ -429,3 +443,15 @@ Display a verbose log for error reporting.
|
||||
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.
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "neowofetch",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.3",
|
||||
"description": "Updated neofetch",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -22,4 +22,4 @@
|
||||
"url": "https://github.com/hykilpikonna/neofetch/issues"
|
||||
},
|
||||
"homepage": "https://github.com/hykilpikonna/neofetch#readme"
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import hyfetch
|
||||
HERE = pathlib.Path(__file__).parent
|
||||
|
||||
# The text of the README file
|
||||
README = (HERE / "README.md").read_text()
|
||||
README = (HERE / "README.md").read_text('utf-8')
|
||||
|
||||
# This call to setup() does all the work
|
||||
setup(
|
||||
@@ -33,7 +33,13 @@ setup(
|
||||
packages=['hyfetch'],
|
||||
package_data={'hyfetch': ['hyfetch/*']},
|
||||
include_package_data=True,
|
||||
install_requires=['setuptools', 'typing_extensions'],
|
||||
install_requires=[
|
||||
# Universal dependencies
|
||||
'setuptools', 'typing_extensions',
|
||||
|
||||
# Windows dependencies
|
||||
'psutil ; platform_system=="Windows"',
|
||||
],
|
||||
entry_points={
|
||||
"console_scripts": [
|
||||
"hyfetch=hyfetch.main:run",
|
||||
|
||||
@@ -1,39 +1,68 @@
|
||||
from hyfetch.color_scale import test_color_scale
|
||||
from hyfetch.color_util import RGB, printc
|
||||
from hyfetch.neofetch_util import get_command_path, run_neofetch
|
||||
from hyfetch.presets import PRESETS
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
import time
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
from hyfetch.color_util import printc, color
|
||||
from hyfetch.neofetch_util import term_size
|
||||
|
||||
|
||||
def print_colors_test(colors: list[RGB]):
|
||||
print(''.join(f'{c.to_ansi_rgb()}#' for c in colors))
|
||||
@dataclass
|
||||
class Theme:
|
||||
done_char: str
|
||||
todo_char: str
|
||||
prefix: str = ''
|
||||
suffix: str = ''
|
||||
done_len: int = 1
|
||||
todo_len: int = 1
|
||||
|
||||
|
||||
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))
|
||||
CLASSIC_THEME = Theme('█', '.', '[', ']')
|
||||
NEW_THEME = Theme('&a━', '&c━')
|
||||
EMOJI_THEME = Theme('✅', '🕑', done_len=2, todo_len=2)
|
||||
EGG_THEME = Theme('🐣', '🥚', done_len=2, todo_len=2)
|
||||
FLOWER_THEME = Theme('🌸', '🥀', done_len=2, todo_len=2)
|
||||
|
||||
|
||||
def test_command_path():
|
||||
print(get_command_path())
|
||||
def print_progressbar(total: int, i: int, length: int | None = None, theme: Theme = EMOJI_THEME, unit=''):
|
||||
if not length:
|
||||
length = term_size()[0]
|
||||
i += 1
|
||||
|
||||
completed = f'{i * 100 / total:.0f}%'
|
||||
placeholder = 'PLACEHOLDER_BAR'
|
||||
template = f'{theme.prefix}{placeholder}{theme.suffix}&r {completed} {i}/{total}{unit}'
|
||||
|
||||
length -= len(template) - len(placeholder) + 2
|
||||
|
||||
progress = int(i / total * length)
|
||||
bar = f'{theme.done_char * (progress // theme.todo_len)}{theme.todo_char * ((length - progress) // theme.done_len)}'
|
||||
print(color(template.replace(placeholder, bar)), end='\r', flush=True)
|
||||
|
||||
|
||||
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('&r')
|
||||
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('&r')
|
||||
def download_pbar(url: str, path: Path):
|
||||
def hook(b: int, bsize: int, tsize: int):
|
||||
print_progressbar(tsize // 1024 // 1024, b * bsize // 1024 // 1024, unit=' MB')
|
||||
|
||||
if path.is_dir():
|
||||
filename = url.split('/')[-1]
|
||||
path = path / filename
|
||||
path.parent.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
urlretrieve(url, filename=path, reporthook=hook)
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_rgb_8bit_conversion()
|
||||
test_color_scale()
|
||||
# theme = {'emoji': EMOJI_THEME, 'flower': FLOWER_THEME, 'egg': EGG_THEME, 'classic': CLASSIC_THEME, 'new': NEW_THEME}
|
||||
#
|
||||
# for name, t in theme.items():
|
||||
# print(f'\n{name} theme:')
|
||||
# for i in range(100):
|
||||
# print_progressbar(100, i, theme=t)
|
||||
# time.sleep(0.015)
|
||||
# print()
|
||||
download_pbar('https://github.com/git-for-windows/git/releases/download/v2.37.2.windows.2/MinGit-2.37.2.2-busybox-64-bit.zip', Path('Downloads'))
|
||||
|
||||
Executable
+102
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
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()
|
||||
author = commits[0]['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()
|
||||
print('Pushing...')
|
||||
os.system('git push')
|
||||
|
||||
copy_comment()
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
from hyfetch.color_scale import test_color_scale
|
||||
from hyfetch.color_util import RGB, printc
|
||||
from hyfetch.neofetch_util import get_command_path, run_neofetch
|
||||
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('&r')
|
||||
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('&r')
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_rgb_8bit_conversion()
|
||||
test_color_scale()
|
||||
Executable
+156
@@ -0,0 +1,156 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import shlex
|
||||
import stat
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from packaging import version as pv
|
||||
|
||||
sys.path.append(str(Path(__file__).parent.parent))
|
||||
|
||||
from tools.list_distros import generate_help
|
||||
from tools.reformat_readme import reformat_readme
|
||||
|
||||
|
||||
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'
|
||||
|
||||
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/constants.py...')
|
||||
path = Path('hyfetch/constants.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_i = content.index('<!-- CHANGELOG STARTS HERE --->')
|
||||
version_i = content.index('###', changelog_i)
|
||||
version_end = content.index('\n', version_i)
|
||||
content = content[:version_i] + f'### {version}' + content[version_end:]
|
||||
path.write_text(content)
|
||||
|
||||
# 4. neofetch script
|
||||
print('Editing neofetch...')
|
||||
path = Path('neofetch')
|
||||
lines = path.read_text().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))
|
||||
|
||||
|
||||
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('neofetch.1').write_text(subprocess.check_output(['help2man', './neofetch']).decode())
|
||||
|
||||
# 3. Reformat readme links
|
||||
print('Reformatting readme links...')
|
||||
reformat_readme()
|
||||
|
||||
|
||||
def post_check():
|
||||
"""
|
||||
Check after changes are made
|
||||
"""
|
||||
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', 'hyfetch/constants.py', 'neofetch', 'neofetch.1', 'package.json', 'README.md'])
|
||||
|
||||
# 2. Commit
|
||||
subprocess.check_call(['git', 'commit', '-m', f'[U] Release {v}'])
|
||||
|
||||
# 3. Create tag
|
||||
subprocess.check_call(['git', 'tag', v])
|
||||
|
||||
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])
|
||||
|
||||
|
||||
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()
|
||||
edit_versions(args.version)
|
||||
finalize_neofetch()
|
||||
post_check()
|
||||
create_release(args.version)
|
||||
deploy()
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
### 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
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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/-
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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;
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
alpine_small = AsciiArt(match=r'''"alpine_small"''', color='4 7', ascii=r"""
|
||||
${c1} /\\ /\\
|
||||
/${c2}/ ${c1}\\ \\
|
||||
/${c2}/ ${c1}\\ \\
|
||||
/${c2}// ${c1}\\ \\
|
||||
${c2}// ${c1}\\ \\
|
||||
\\
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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,
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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+:`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
amogos = AsciiArt(match=r'''"AmogOS"*''', color='15 6', ascii=r"""
|
||||
${c1} ___________
|
||||
/ \
|
||||
/ ${c2}______${c1} \
|
||||
/ ${c2}/ \${c1} \
|
||||
| ${c2}( )${c1} \
|
||||
/ ${c2}\______/${c1} |
|
||||
| |
|
||||
/ \
|
||||
| |
|
||||
| |
|
||||
/ |
|
||||
| |
|
||||
| _______ |
|
||||
____/ / \ |
|
||||
/ | | |
|
||||
| / ____/ |
|
||||
\_________/ / |
|
||||
\ __/
|
||||
\_______/
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
from hyfetch.distro 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}
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
android_small = AsciiArt(match=r'''"android_small"*''', color='2 7', ascii=r"""
|
||||
${c1} ;, ,;
|
||||
';,.-----.,;'
|
||||
,' ',
|
||||
/ O O \\
|
||||
| |
|
||||
'-----------------'
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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+:.`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
antix = AsciiArt(match=r'''"antiX"*''', color='1 7 3', ascii=r"""
|
||||
${c1}
|
||||
\
|
||||
, - ~ ^ ~ - \ /
|
||||
, ' \ ' , /
|
||||
, \ '/
|
||||
, \ / ,
|
||||
,___, \/ ,
|
||||
/ | _ _ _|_ o /\ ,
|
||||
|, | / |/ | | | / \ ,
|
||||
\,_/\_/ | |_/|_/|_/_/ \,
|
||||
, / ,\
|
||||
, / , ' \
|
||||
' - , _ _ _ , '
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
aosc_os = AsciiArt(match=r'''"AOSC OS"*''', color='4 7 1', ascii=r"""
|
||||
${c2} .:+syhhhhys+:.
|
||||
.ohNMMMMMMMMMMMMMMNho.
|
||||
`+mMMMMMMMMMMmdmNMMMMMMMMm+`
|
||||
+NMMMMMMMMMMMM/ `./smMMMMMN+
|
||||
.mMMMMMMMMMMMMMMo -yMMMMMm.
|
||||
:NMMMMMMMMMMMMMMMs .hMMMMN:
|
||||
.NMMMMhmMMMMMMMMMMm+/- oMMMMN.
|
||||
dMMMMs ./ymMMMMMMMMMMNy. sMMMMd
|
||||
-MMMMN` oMMMMMMMMMMMN: `NMMMM-
|
||||
/MMMMh NMMMMMMMMMMMMm hMMMM/
|
||||
/MMMMh NMMMMMMMMMMMMm hMMMM/
|
||||
-MMMMN` :MMMMMMMMMMMMy. `NMMMM-
|
||||
dMMMMs .yNMMMMMMMMMMMNy/. sMMMMd
|
||||
.NMMMMo -/+sMMMMMMMMMMMmMMMMN.
|
||||
:NMMMMh. .MMMMMMMMMMMMMMMN:
|
||||
.mMMMMMy- NMMMMMMMMMMMMMm.
|
||||
+NMMMMMms/.` mMMMMMMMMMMMN+
|
||||
`+mMMMMMMMMNmddMMMMMMMMMMm+`
|
||||
.ohNMMMMMMMMMMMMMMNho.
|
||||
.:+syhhhhys+:.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
aosc_os_retro = AsciiArt(match=r'''"AOSC OS/Retro"*''', color='4 7 1 3', ascii=r"""
|
||||
${c2} .........
|
||||
...................
|
||||
.....................${c1}################${c2}
|
||||
.............. ....${c1}################${c2}
|
||||
.............. ...${c1}################${c2}
|
||||
............. ..${c1}****************${c2}
|
||||
............ . .${c1}****************${c2}
|
||||
........... ... ${c1}................${c2}
|
||||
.......... ..... ${c1}...............${c2}
|
||||
......... ....... ...
|
||||
.${c3}...... ${c2}.
|
||||
${c3}..... .....${c2}.... ${c4}...........
|
||||
${c3}.... ......${c2}. ${c4}...........
|
||||
${c3}... ....... ${c4}...........
|
||||
${c3}................ ${c4}***********
|
||||
${c3}................ ${c4}###########
|
||||
${c3}****************
|
||||
${c3}################
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
aoscosretro_small = AsciiArt(match=r'''"aoscosretro_small"''', color='4 7 1 3', ascii=r"""
|
||||
${c2} _____ ${c1}_____${c2}
|
||||
-' '-${c1}| |${c2}
|
||||
/ ___ ${c1}| |${c2}
|
||||
| / _ \\${c1}|_____|${c2}
|
||||
' / /_\\ \\
|
||||
\\ / _____ \\${c4}___
|
||||
${c3}|${c2}/_/ ${c3}| ${c4}| |
|
||||
${c3}| | ${c4}|___|
|
||||
${c3}|_____|
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
aperio_gnu_linux = AsciiArt(match=r'''"Aperio GNU/Linux"*''', color='255', ascii=r"""
|
||||
${c2}
|
||||
_.._ _ ._.. _
|
||||
(_][_)(/,[ |(_)
|
||||
| GNU/Linux
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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+/-`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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:
|
||||
`++:. `-/+/
|
||||
.` `/
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
from hyfetch.distro 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' '!
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
arch_small = AsciiArt(match=r'''"arch_small"''', color='6 7 1', ascii=r"""
|
||||
${c1} /\\
|
||||
/ \\
|
||||
/\\ \\
|
||||
${c2} / \\
|
||||
/ ,, \\
|
||||
/ | | -\\
|
||||
/_-'' ''-_\\
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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/-`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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}⠉⠙⠛⠿⢆
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
from hyfetch.distro 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;
|
||||
.,'. .',.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
from hyfetch.distro 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}******,
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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}
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
from hyfetch.distro 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}<oooooooo>${c2}
|
||||
ooooo ${c1}<oooooo>${c2}
|
||||
ooooo ${c1}<oooo>${c2}
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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'
|
||||
'` `'
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
from hyfetch.distro 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'
|
||||
'` `'
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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}&,
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
from hyfetch.distro 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} %%%
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
from hyfetch.distro 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}------
|
||||
--------------------------------------
|
||||
--------------------------------------
|
||||
--------------------------------------
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
from hyfetch.distro 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} `/
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
from hyfetch.distro 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 █▀"
|
||||
"╟╣█░░░░░░░░»███⌂``` ▐▀████████▀░ █▌░`
|
||||
"╩█▄░░░░░░»»▀███ `` └└` ,█▀"`
|
||||
`░▀█▄░░░»»»»████@ .▄█Ü`
|
||||
`╙▀█▄@»»»;`▀███▌¿ ,▄▀Ñ"`
|
||||
`"╨▀█▄▄▄░`▐█████▄, ,▄▄▀▀░`
|
||||
`"╙╩▀▀▀▀████████▓▌▌▌▀▀▀╨"``
|
||||
``""░╚╨╝╝╝╝╨╨░""``
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
from hyfetch.distro 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,
|
||||
;:
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
from hyfetch.distro 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+.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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,
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
##, ,##,',##, ,## ,#, ,
|
||||
# # # # #''# #,, # # #
|
||||
'#' '##' # # ,,# '##;, #
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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},' ,-----' |
|
||||
`--{__________)
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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.
|
||||
-/
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
cachy_os = AsciiArt(match=r'''"Cachy OS"*''', 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}..........................
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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}
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
calinixos = AsciiArt(match=r'''"CalinixOS"''', color='4 5 4 4 4 4', ascii=r"""
|
||||
${c2}
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⠤⠔⠒⠒⠋⠉⠉⠉⠉⠓⠒⠒⠦⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠒⠉⣁⣠⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣄⣈⠙⠲⢤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠴⠋⢁⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡈⠑⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⣠⠞⢁⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⢀⠞⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠋⠉⠁⠀⠀⠀⠀⠈⠉⠙⠛⠿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠈⢢⡀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⡰⠃⣠⣾⣿⣿⣿⣿⣿⣿⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⢿⡿⠁⠀⠀⠀⠀⠀⠀⠙⣄⠀⠀⠀⠀
|
||||
⠀⠀⠀⡼⠁⣴⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀
|
||||
⠀⠀⡼⠀⣼⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠀⠀
|
||||
⠀⣰⠁⣸⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀
|
||||
⢀⡇⢠⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀
|
||||
⢸⠀⣸⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄
|
||||
⣼⠀⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
|
||||
⡇⠀⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢛⣿⣿⣿⣿⣿⣿⣿⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
|
||||
⢻⠀⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
|
||||
⢸⡀⢹⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃
|
||||
⠀⣇⠘⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠀
|
||||
⠀⠸⡄⢹⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃⠀
|
||||
⠀⠀⢳⡀⢻⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠀⠀
|
||||
⠀⠀⠀⠳⡀⠻⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣷⣄⡀⠀⠀⠀⠀⢠⠏⠀⠀⠀
|
||||
⠀⠀⠀⠀⠙⣄⠙⢿⣿⣿⣿⣿⣿⣿⣷⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣦⡀⠀⡰⠃⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠈⠢⡈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣄⣀⡀⠀⠀⠀⠀⢀⣀⣠⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣠⠞⠁⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠈⠢⡈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⣡⠞⠁⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢤⡈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⣁⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠢⢄⣉⠙⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠋⣉⡤⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠓⠒⠢⠤⠤⠤⠤⠤⠤⠤⠤⠖⠒⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
calinixos_small = AsciiArt(match=r'''"CalinixOS_small"*''', color='4 5 4 4 4 4', ascii=r"""
|
||||
${c2}
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠐⣂⣈⣩⣭⣭⣍⣀⣐⠀⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⡀⠔⣨⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣅⠢⡀⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠠⢊⣴⣾⣿⣿⣿⣿⠿⠟⠛⠛⠛⠛⠻⠿⣿⣿⣿⣿⠃⠀⠠⡀⠀⠀⠀
|
||||
⠀⠀⡐⢡⣾⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠁⠀⠀⠀⠈⢆⠀⠀
|
||||
⠀⡘⢰⣿⣿⣿⡟⠁⠀⠀⢀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀
|
||||
⢠⢠⣿⣿⣿⡟⠀⠀⠀⠀⠀⠙⠿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡀
|
||||
⡄⢸⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁
|
||||
⡇⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣹⣿⣿⣿⣷⠄⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠃⢸⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⡀
|
||||
⠘⡘⣿⣿⣿⣧⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠁
|
||||
⠀⠡⠸⣿⣿⣿⣧⡀⠀⠀⠀⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⢀⠆⠀
|
||||
⠀⠀⠡⡘⢿⣿⣿⣿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣷⣦⡀⢀⠊⠀⠀
|
||||
⠀⠀⠀⠈⠊⡻⢿⣿⣿⣿⣿⣶⣤⣤⣤⣤⣤⣤⣶⣿⣿⣿⣿⡿⢟⠕⠁⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠈⠢⢙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⡩⠐⠁⠀⠀⠀⠀⠀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠂⠭⠉⠙⣛⣛⠋⠉⠭⠐⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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;'.
|
||||
...',;;;;;;,,...
|
||||
.....
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
cbl_mariner = AsciiArt(match=r'''"CBL-Mariner"*''', color='6', ascii=r"""
|
||||
${c1} .
|
||||
:- .
|
||||
:==. .=:
|
||||
:===: -==:
|
||||
:-===: .====:
|
||||
:-====- -=====:
|
||||
-====== :=======:
|
||||
-======. .=========:
|
||||
-======: -==========.
|
||||
-======- -===========.
|
||||
:======- :===========.
|
||||
:=======. .-==========.
|
||||
:=======: -==========.
|
||||
:=======- :==========.
|
||||
:=======- .-========-
|
||||
:--------. :========-
|
||||
..:::--=========-
|
||||
..::---================-=-
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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:"
|
||||
"************"
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
from hyfetch.distro 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,
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
from hyfetch.distro 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}<QDD ++++++++++++ ${c3}++++++++++++ GFD>
|
||||
${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'
|
||||
''
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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'
|
||||
"''"
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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+:``
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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}//////////
|
||||
`////////////////.
|
||||
-////////-
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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:.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
cleanjaro = AsciiArt(match=r'''"Cleanjaro"*''', color='7 7', ascii=r"""
|
||||
${c1}███████▌ ████████████████
|
||||
███████▌ ████████████████
|
||||
███████▌ ████████████████
|
||||
███████▌
|
||||
███████▌
|
||||
███████▌
|
||||
███████▌
|
||||
███████▌
|
||||
█████████████████████████
|
||||
█████████████████████████
|
||||
█████████████████████████
|
||||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
cleanjaro_small = AsciiArt(match=r'''"cleanjaro_small"*''', color='7 7', ascii=r"""
|
||||
${c1}█████ ██████████
|
||||
█████ ██████████
|
||||
█████
|
||||
█████
|
||||
█████
|
||||
████████████████
|
||||
████████████████
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
clearos = AsciiArt(match=r'''"ClearOS"*''', color='2', ascii=r"""
|
||||
${c1} `.--::::::--.`
|
||||
.-:////////////////:-.
|
||||
`-////////////////////////-`
|
||||
-////////////////////////////-
|
||||
`//////////////-..-//////////////`
|
||||
./////////////: ://///////////.
|
||||
`//////:..-////: :////-..-//////`
|
||||
://////` -///:.``.:///-` ://///:
|
||||
`///////:. -////////-` `:///////`
|
||||
.//:--////:. -////-` `:////--://.
|
||||
./: .////:. --` `:////- :/.
|
||||
`//-` .////:. `:////- `-//`
|
||||
:///-` .////:. `:////- `-///:
|
||||
`/////-` -///: :///- `-/////`
|
||||
`//////- `///: :///` .//////`
|
||||
`:////: `///: :///` -////:`
|
||||
.://: `///: :///` -//:.
|
||||
.:: `///: :///` -:.
|
||||
`///: :///`
|
||||
`... ...`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
from hyfetch.distro 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}`:/:--------.````````
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
container_linux_by_coreos = AsciiArt(match=r'''"Container Linux by CoreOS"* | "Container_Linux"*''', 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:;..
|
||||
.....
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
from hyfetch.distro 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}\/
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
from hyfetch.distro 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}/+/:`
|
||||
`.-://++++++//:-.`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
from hyfetch.distro 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~
|
||||
~~~~^^~~~
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
from hyfetch.distro 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
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
from hyfetch.distro import AsciiArt
|
||||
|
||||
dahlia = AsciiArt(match=r'''"dahlia"*''', color='1 7 3', ascii=r"""
|
||||
${c1}
|
||||
.#.
|
||||
*%@@@%*
|
||||
.,,,,,(&@@@@@@@&/,,,,,.
|
||||
,#@@@@@@@@@@@@@@@@@@@@@#.
|
||||
,#@@@@@@@&#///#&@@@@@@@#.
|
||||
,/%&@@@@@%/, .,(%@@@@@&#/.
|
||||
*#&@@@@@@#,. .*#@@@@@@&#,
|
||||
.&@@@@@@@@@( .(@@@@@@@@@&&.
|
||||
#@@@@@@@@@@( )@@@@@@@@@@@#
|
||||
°@@@@@@@@@@( .(@@@@@@@@@@@°
|
||||
*%@@@@@@@(. ,#@@@@@@@%*
|
||||
,(&@@@@@@%*. ./%@@@@@@%(,
|
||||
,#@@@@@@@&(***(&@@@@@@@#.
|
||||
,#@@@@@@@@@@@@@@@@@@@@@#.
|
||||
,*****#&@@@@@@@&(*****,
|
||||
,/%@@@%/.
|
||||
,#,
|
||||
""")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user