Compare commits
210 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 673d995618 | |||
| 1097435501 | |||
| 78f4f061f4 | |||
| f909b3c3b8 | |||
| b4944599c5 | |||
| 21cffcc4f4 | |||
| 8d9d4407a3 | |||
| 0e93f5484f | |||
| f9c7c570a1 | |||
| 6f443a23a6 | |||
| ed3bb65824 | |||
| 3770e58e66 | |||
| e0d7c4885a | |||
| e5a7eb2d24 | |||
| ece7cb1f8f | |||
| 43aecc70fe | |||
| f93315a7ad | |||
| cde4914c19 | |||
| e8c7266671 | |||
| bce73f6836 | |||
| 5012c996f2 | |||
| c00568d413 | |||
| d56f083dbc | |||
| b7f6e4f306 | |||
| 619c9d2224 | |||
| d57463b0d3 | |||
| ca13eb22e7 | |||
| a52c49380d | |||
| ba2001cc64 | |||
| e07895c614 | |||
| 3d6427b936 | |||
| 943c3025e5 | |||
| 67cf02c964 | |||
| 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 | |||
| 3253d4cbcc |
@@ -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 }}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
neofetch with pride flags <3
|
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
|
### Running Updated Original Neofetch
|
||||||
|
|
||||||
@@ -10,7 +10,9 @@ This repo also serves as an updated version of the original `neofetch` since the
|
|||||||
|
|
||||||
* Method 1: `pip install hyfetch` then run `neowofetch`
|
* Method 1: `pip install hyfetch` then run `neowofetch`
|
||||||
* Method 2: `npx neowofetch`
|
* Method 2: `npx neowofetch`
|
||||||
* Method 3: `bash <(curl -sL neowofetch.hydev.org)`
|
* Method 3: `P="$HOME/.local/bin/neowofetch" curl -L nf.hydev.org -o $P && chmod +x $P`
|
||||||
|
* Method 4: Run without install `bash <(curl -sL nf.hydev.org)`
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
@@ -26,9 +28,20 @@ pip install hyfetch
|
|||||||
|
|
||||||
Currently, these distributions have existing packages for HyFetch:
|
Currently, these distributions have existing packages for HyFetch:
|
||||||
|
|
||||||
* ArchLinux: `yay -S hyfetch` (Thanks to @ Aleksana)
|
* Arch Linux: `paru -S hyfetch` or `yay -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa))
|
||||||
* Nix: `nix-env -i hyfetch` (Thanks to @ YisuiDenghua)
|
* Nix: `nix-env -i hyfetch` (Thanks to [@YisuiDenghua](https://github.com/YisuiDenghua))
|
||||||
* Guix: `guix install hyfetch` (Thanks to @ WammKD)
|
* 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
|
## Usage
|
||||||
|
|
||||||
@@ -36,6 +49,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)
|
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?
|
#### Q: How do I change my config?
|
||||||
|
|
||||||
A: Use `hyfetch -c`
|
A: Use `hyfetch -c`
|
||||||
@@ -48,6 +64,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
|
## Change Log
|
||||||
|
|
||||||
### About Notation
|
### About Notation
|
||||||
@@ -57,10 +85,79 @@ Updates to `neowofetch` begins with the emoji 🖼️
|
|||||||
|
|
||||||
### TODO
|
### TODO
|
||||||
|
|
||||||
* [ ] Paginate flags
|
* [ ] (Important!) Refactor flag storage & coloring to support non-stride patterns
|
||||||
* [ ] Implement light/dark background detection based on https://github.com/muesli/termenv
|
* [ ] Config menu: Allow left-right arrow keys for pagination
|
||||||
|
|
||||||
### Unpublished 1.4.0
|
<!-- CHANGELOG STARTS HERE --->
|
||||||
|
|
||||||
|
### 1.4.4
|
||||||
|
|
||||||
|
Note: You can install the latest nightly version by using:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
||||||
|
```
|
||||||
|
|
||||||
|
* 🌈 Fix Python 3.11 compatibility (#35)
|
||||||
|
* 🌈 Fix many overflow problems when screen is too small
|
||||||
|
* 🖼️ Distro - Add Enso ([dylanaraps#2233](https://github.com/dylanaraps/neofetch/pull/2233))
|
||||||
|
* 🖼️ Memory - Optimize and fix memory unit conversion ([dylanaraps#2225](https://github.com/dylanaraps/neofetch/pull/2225))
|
||||||
|
* 🖼️ DE - Add dwl window manager ([dylanaraps#2234](https://github.com/dylanaraps/neofetch/pull/2234))
|
||||||
|
* 🖼️ DE - Fix XDG session detection for X11 ([dylanaraps#2232](https://github.com/dylanaraps/neofetch/pull/2232))
|
||||||
|
* 🖼️ CPU - Fix model detection for loongson (#34)
|
||||||
|
|
||||||
|
### 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)
|
* 🌈 Add finsexual flag (#12)
|
||||||
* 🚀 Addressed a total of 128 currently open pull requests from neofetch
|
* 🚀 Addressed a total of 128 currently open pull requests from neofetch
|
||||||
|
|||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from . import main
|
from . import main, constants
|
||||||
|
|
||||||
__version__ = main.VERSION
|
__version__ = constants.VERSION
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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
|
from __future__ import annotations
|
||||||
|
|
||||||
import colorsys
|
import colorsys
|
||||||
from typing import NamedTuple, Callable, Optional
|
from dataclasses import dataclass, astuple
|
||||||
|
|
||||||
from typing_extensions import Literal
|
from typing_extensions import Literal
|
||||||
|
|
||||||
from .constants import GLOBAL_CFG
|
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)
|
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
|
r: int
|
||||||
g: int
|
g: int
|
||||||
b: int
|
b: int
|
||||||
|
|
||||||
|
def __iter__(self):
|
||||||
|
return iter(astuple(self))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_hex(cls, hex: str) -> "RGB":
|
def from_hex(cls, hex: str) -> "RGB":
|
||||||
"""
|
"""
|
||||||
@@ -100,9 +116,7 @@ class RGB(NamedTuple):
|
|||||||
:param hex: Hex color code
|
:param hex: Hex color code
|
||||||
:return: RGB object
|
:return: RGB object
|
||||||
"""
|
"""
|
||||||
while hex.startswith('#'):
|
hex = hex.lstrip("#")
|
||||||
hex = hex[1:]
|
|
||||||
|
|
||||||
r = int(hex[0:2], 16)
|
r = int(hex[0:2], 16)
|
||||||
g = int(hex[2:4], 16)
|
g = int(hex[2:4], 16)
|
||||||
b = int(hex[4:6], 16)
|
b = int(hex[4:6], 16)
|
||||||
@@ -177,6 +191,10 @@ class RGB(NamedTuple):
|
|||||||
"""
|
"""
|
||||||
return RGB(*redistribute_rgb(*[v * multiplier for v in self]))
|
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':
|
def set_light(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'RGB':
|
||||||
"""
|
"""
|
||||||
Set HSL lightness value
|
Set HSL lightness value
|
||||||
@@ -187,16 +205,19 @@ class RGB(NamedTuple):
|
|||||||
:return: New color (original isn't modified)
|
:return: New color (original isn't modified)
|
||||||
"""
|
"""
|
||||||
# Convert to HSL
|
# Convert to HSL
|
||||||
h, l, s = colorsys.rgb_to_hls(*[v / 255.0 for v in self])
|
hsl = self.hsl()
|
||||||
|
|
||||||
# Modify light value
|
# Modify light value
|
||||||
if at_least is None and at_most is None:
|
if at_least is None and at_most is None:
|
||||||
l = light
|
hsl.l = light
|
||||||
else:
|
else:
|
||||||
if at_most:
|
if at_most:
|
||||||
l = min(l, light)
|
hsl.l = min(hsl.l, light)
|
||||||
if at_least:
|
if at_least:
|
||||||
l = max(l, light)
|
hsl.l = max(hsl.l, light)
|
||||||
|
|
||||||
# Convert back to RGB
|
# 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
|
from typing_extensions import Literal
|
||||||
|
|
||||||
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
||||||
VERSION = '1.4.0'
|
VERSION = '1.4.4'
|
||||||
|
|
||||||
# Obtain terminal size
|
|
||||||
try:
|
|
||||||
TERM_LEN = os.get_terminal_size().columns
|
|
||||||
except Exception:
|
|
||||||
TERM_LEN = 40
|
|
||||||
|
|
||||||
TEST_ASCII = r"""
|
TEST_ASCII = r"""
|
||||||
### |\___/| ###
|
### |\___/| ###
|
||||||
@@ -32,6 +27,7 @@ _/\_\_ _/_/\_
|
|||||||
TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n'))
|
TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n'))
|
||||||
DEFAULT_DARK_L = 0.
|
DEFAULT_DARK_L = 0.
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class GlobalConfig:
|
class GlobalConfig:
|
||||||
# Global color mode default to 8-bit for compatibility
|
# 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)
|
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('*', '')
|
||||||
|
|
||||||
|
|
||||||
+192
-97
@@ -4,14 +4,17 @@ from __future__ import annotations
|
|||||||
import argparse
|
import argparse
|
||||||
import json
|
import json
|
||||||
import random
|
import random
|
||||||
import re
|
import traceback
|
||||||
from itertools import permutations
|
from itertools import permutations
|
||||||
|
from math import ceil
|
||||||
from typing import Iterable
|
from typing import Iterable
|
||||||
|
|
||||||
from .color_util import printc, color, clear_screen
|
from . import termenv
|
||||||
from .constants import CONFIG_PATH, VERSION, TERM_LEN, TEST_ASCII_WIDTH, TEST_ASCII, GLOBAL_CFG
|
from .color_scale import Scale
|
||||||
|
from .color_util import printc, color, clear_screen, AnsiMode
|
||||||
|
from .constants import *
|
||||||
from .models import Config
|
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
|
from .presets import PRESETS
|
||||||
|
|
||||||
|
|
||||||
@@ -83,53 +86,86 @@ def create_config() -> Config:
|
|||||||
|
|
||||||
:return: Config object (automatically stored)
|
: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)
|
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
|
# 1. Select color system
|
||||||
try:
|
def select_color_system():
|
||||||
# Demonstrate RGB with a gradient. This requires numpy
|
if det_ansi == 'rgb':
|
||||||
from .color_scale import Scale
|
return 'rgb', 'Detected color mode'
|
||||||
|
|
||||||
|
clear_screen(title)
|
||||||
|
term_len, term_lines = term_size()
|
||||||
|
|
||||||
scale2 = Scale(['#12c2e9', '#c471ed', '#f7797d'])
|
scale2 = Scale(['#12c2e9', '#c471ed', '#f7797d'])
|
||||||
_8bit = [scale2(i / TERM_LEN).to_ansi_8bit(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)]
|
_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(_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(_rgb, 'RGB Color Testing'.center(term_len))))
|
||||||
|
|
||||||
print()
|
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)')
|
printc(f'(If you can\'t see colors under "RGB Color Testing", please choose 8bit)')
|
||||||
print()
|
print()
|
||||||
color_system = literal_input('Your choice?', ['8bit', 'rgb'], 'rgb')
|
|
||||||
|
|
||||||
except ModuleNotFoundError:
|
return literal_input('Your choice?', ['8bit', 'rgb'], 'rgb'), 'Selected color mode'
|
||||||
# Numpy not found, skip gradient test, use fallback
|
|
||||||
color_system = literal_input('Which &acolor &bsystem &rdo you want to use?',
|
|
||||||
['8bit', 'rgb'], 'rgb')
|
|
||||||
|
|
||||||
# Override global color mode
|
# Override global color mode
|
||||||
|
color_system, ttl = select_color_system()
|
||||||
GLOBAL_CFG.color_mode = 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
|
# 2. Select light/dark mode
|
||||||
clear_screen(title)
|
def select_light_dark():
|
||||||
light_dark = literal_input(f'2. Is your terminal in &gf(#85e7e9)light mode&r or &gf(#c471ed)dark mode&r?',
|
if det_bg is not None:
|
||||||
['light', 'dark'], 'dark')
|
return det_bg.is_light(), 'Detected background color'
|
||||||
is_light = light_dark == 'light'
|
|
||||||
|
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
|
GLOBAL_CFG.is_light = is_light
|
||||||
title += f'\n&e2. Light/Dark: &r{light_dark}'
|
update_title(ttl, light_dark)
|
||||||
|
|
||||||
##############################
|
##############################
|
||||||
# 3. Choose preset
|
# 3. Choose preset
|
||||||
clear_screen(title)
|
|
||||||
printc('&a3. Let\'s choose a flag!')
|
|
||||||
printc('Available flag presets:')
|
|
||||||
print()
|
|
||||||
|
|
||||||
# Create flags = [[lines]]
|
# Create flags = [[lines]]
|
||||||
flags = []
|
flags = []
|
||||||
spacing = max(max(len(k) for k in PRESETS.keys()), 20)
|
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])
|
flags.append([name.center(spacing), flag, flag, flag])
|
||||||
|
|
||||||
# Calculate flags per row
|
# Calculate flags per row
|
||||||
flags_per_row = TERM_LEN // (spacing + 2)
|
flags_per_row = term_size()[0] // (spacing + 2)
|
||||||
while flags:
|
row_per_page = max(1, (term_size()[1] - 13) // 5)
|
||||||
current = flags[:flags_per_row]
|
num_pages = ceil(len(flags) / (flags_per_row * row_per_page))
|
||||||
flags = flags[flags_per_row:]
|
|
||||||
|
|
||||||
# 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)]
|
[printc(' '.join(line)) for line in zip(*current)]
|
||||||
print()
|
print()
|
||||||
|
|
||||||
print()
|
page = 0
|
||||||
tmp = PRESETS['rainbow'].set_light_dl_def(light_dark).color_text('preset')
|
while True:
|
||||||
preset = literal_input(f'Which {tmp} do you want to use?', PRESETS.keys(), 'rainbow', show_ops=False)
|
print_flag_page(pages[page], page)
|
||||||
_prs = PRESETS[preset]
|
|
||||||
title += f'\n&e3. Selected flag: &r{_prs.color_text(preset)}'
|
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
|
# 4. Dim/lighten colors
|
||||||
clear_screen(title)
|
def select_lightness():
|
||||||
printc(f'&a4. Let\'s adjust the color brightness!')
|
clear_screen(title)
|
||||||
printc(f'The colors might be a little bit too {"bright" if is_light else "dark"} for {light_dark} mode.')
|
print_title_prompt("Let's adjust the color brightness!")
|
||||||
print()
|
printc(f'The colors might be a little bit too {"bright" if is_light else "dark"} for {light_dark} mode.')
|
||||||
|
|
||||||
# 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:
|
|
||||||
print()
|
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
|
# Print cats
|
||||||
if not lightness or lightness in ['unset', 'none']:
|
num_cols = (term_size()[0] // (TEST_ASCII_WIDTH + 2)) or 1
|
||||||
lightness = None
|
mn, mx = 0.15, 0.85
|
||||||
break
|
ratios = [col / num_cols for col in range(num_cols)]
|
||||||
|
ratios = [(r * (mx - mn) / 2 + mn) if is_light else ((r * (mx - mn) + (mx + mn)) / 2) for r in ratios]
|
||||||
|
lines = [ColorAlignment('horizontal').recolor_ascii(TEST_ASCII.replace(
|
||||||
|
'{txt}', f'{r * 100:.0f}%'.center(5)), _prs.set_light_dl(r, light_dark)).split('\n') for r in ratios]
|
||||||
|
[printc(' '.join(line)) for line in zip(*lines)]
|
||||||
|
|
||||||
try:
|
def_lightness = GLOBAL_CFG.default_lightness(light_dark)
|
||||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
|
|
||||||
assert 0 <= lightness <= 1
|
|
||||||
break
|
|
||||||
|
|
||||||
except Exception:
|
while True:
|
||||||
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
|
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:
|
# Parse lightness
|
||||||
_prs = _prs.set_light_dl(lightness, light_dark)
|
if not lightness or lightness in ['unset', 'none']:
|
||||||
title += f'\n&e4. Brightness: &r{f"{lightness:.2f}" if lightness else "unset"}'
|
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
|
# 5. Color arrangement
|
||||||
color_alignment = None
|
color_alignment = None
|
||||||
|
fore_back = get_fore_back()
|
||||||
|
|
||||||
|
# Calculate amount of row/column that can be displayed on screen
|
||||||
|
ascii_per_row = max(1, term_size()[0] // (asc_width + 2))
|
||||||
|
ascii_rows = max(1, (term_size()[1] - 8) // asc_lines)
|
||||||
|
|
||||||
|
# Displays horizontal and vertical arrangements in the first iteration, but hide them in
|
||||||
|
# later iterations
|
||||||
|
hv_arrangements = [
|
||||||
|
('Horizontal', ColorAlignment('horizontal', fore_back=fore_back)),
|
||||||
|
('Vertical', ColorAlignment('vertical'))
|
||||||
|
]
|
||||||
|
arrangements = hv_arrangements.copy()
|
||||||
|
|
||||||
|
# Loop for random rolling
|
||||||
while True:
|
while True:
|
||||||
clear_screen(title)
|
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
|
# Random color schemes
|
||||||
pis = list(range(len(_prs.unique_colors().colors)))
|
pis = list(range(len(_prs.unique_colors().colors)))
|
||||||
slots = len(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
slots = list(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
||||||
while len(pis) < slots:
|
while len(pis) < len(slots):
|
||||||
pis += pis
|
pis += pis
|
||||||
perm = {p[:slots] for p in permutations(pis)}
|
perm = {p[:len(slots)] for p in permutations(pis)}
|
||||||
random_count = ascii_per_row * 2 - 2
|
random_count = max(0, ascii_per_row * ascii_rows - len(arrangements))
|
||||||
if random_count > len(perm):
|
if random_count > len(perm):
|
||||||
choices = perm
|
choices = perm
|
||||||
else:
|
else:
|
||||||
choices = random.sample(perm, random_count)
|
choices = random.sample(sorted(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)]
|
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]
|
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)]
|
[printc(' '.join(line)) for line in zip(*current)]
|
||||||
print()
|
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.')
|
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('You can type "roll" to randomize again.')
|
||||||
print()
|
print()
|
||||||
choice = literal_input(f'Your choice?', ['horizontal', 'vertical', 'roll'] + [f'random{i}' for i in range(random_count)], 'horizontal')
|
choice = literal_input(f'Your choice?', ['horizontal', 'vertical', 'roll'] + [f'random{i}' for i in range(random_count)], 'horizontal')
|
||||||
|
|
||||||
if choice == 'roll':
|
if choice == 'roll':
|
||||||
|
arrangements = []
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Save choice
|
# 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:
|
if choice in arrangement_index:
|
||||||
color_alignment = arrangement_index[choice]
|
color_alignment = arrangement_index[choice]
|
||||||
else:
|
else:
|
||||||
@@ -247,7 +328,7 @@ def create_config() -> Config:
|
|||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
title += f'\n&e5. Color Alignment: &r{color_alignment}'
|
update_title('Color alignment', color_alignment)
|
||||||
|
|
||||||
# Create config
|
# Create config
|
||||||
clear_screen(title)
|
clear_screen(title)
|
||||||
@@ -263,6 +344,12 @@ def create_config() -> Config:
|
|||||||
|
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
|
# Optional: Import readline
|
||||||
|
try:
|
||||||
|
import readline
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
pass
|
||||||
|
|
||||||
# Create CLI
|
# Create CLI
|
||||||
hyfetch = color('&b&lhyfetch&r')
|
hyfetch = color('&b&lhyfetch&r')
|
||||||
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'))
|
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('--debug', action='store_true', help=f'Debug mode')
|
||||||
parser.add_argument('--test-distro', help=f'Test for a specific distro')
|
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('--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()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@@ -283,6 +371,10 @@ def run():
|
|||||||
print(f'Version is {VERSION}')
|
print(f'Version is {VERSION}')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Ensure git bash for windows
|
||||||
|
ensure_git_bash()
|
||||||
|
check_windows_cmd()
|
||||||
|
|
||||||
# Test distro ascii art
|
# Test distro ascii art
|
||||||
if args.test_distro:
|
if args.test_distro:
|
||||||
print(f'Setting distro to {args.test_distro}')
|
print(f'Setting distro to {args.test_distro}')
|
||||||
@@ -295,12 +387,8 @@ def run():
|
|||||||
print(get_distro_ascii())
|
print(get_distro_ascii())
|
||||||
return
|
return
|
||||||
|
|
||||||
# Load config
|
# Load config or create config
|
||||||
config = check_config()
|
config = create_config() if args.config else check_config()
|
||||||
|
|
||||||
# Reset config
|
|
||||||
if args.config:
|
|
||||||
config = create_config()
|
|
||||||
|
|
||||||
# Param overwrite config
|
# Param overwrite config
|
||||||
if args.preset:
|
if args.preset:
|
||||||
@@ -315,13 +403,20 @@ def run():
|
|||||||
# Get preset
|
# Get preset
|
||||||
preset = PRESETS.get(config.preset)
|
preset = PRESETS.get(config.preset)
|
||||||
|
|
||||||
# Lighten
|
# Lighten (args > config)
|
||||||
if args.scale:
|
if args.scale:
|
||||||
preset = preset.lighten(args.scale)
|
preset = preset.lighten(args.scale)
|
||||||
if args.light:
|
elif args.light:
|
||||||
preset = preset.set_light_raw(args.light)
|
preset = preset.set_light_raw(args.light)
|
||||||
if config.lightness:
|
else:
|
||||||
preset = preset.set_light_dl(config.lightness)
|
preset = preset.set_light_dl(config.lightness or GLOBAL_CFG.default_lightness())
|
||||||
|
|
||||||
# Run
|
# 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...')
|
||||||
|
|||||||
+2
-4
@@ -1,8 +1,6 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
from typing_extensions import Literal
|
|
||||||
|
|
||||||
from .color_util import AnsiMode, LightDark
|
from .color_util import AnsiMode, LightDark
|
||||||
from .constants import CONFIG_PATH
|
from .constants import CONFIG_PATH
|
||||||
@@ -16,7 +14,7 @@ class Config:
|
|||||||
mode: AnsiMode
|
mode: AnsiMode
|
||||||
light_dark: LightDark = 'dark'
|
light_dark: LightDark = 'dark'
|
||||||
lightness: float | None = None
|
lightness: float | None = None
|
||||||
color_align: ColorAlignment = ColorAlignment('horizontal')
|
color_align: ColorAlignment = field(default_factory=lambda: ColorAlignment('horizontal'))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, d: dict):
|
def from_dict(cls, d: dict):
|
||||||
|
|||||||
+114
-17
@@ -4,23 +4,38 @@ import inspect
|
|||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import re
|
import re
|
||||||
|
import shlex
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import zipfile
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from subprocess import check_output
|
from subprocess import check_output
|
||||||
from tempfile import TemporaryDirectory
|
from tempfile import TemporaryDirectory
|
||||||
|
from urllib.request import urlretrieve
|
||||||
|
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
from typing_extensions import Literal
|
from typing_extensions import Literal
|
||||||
|
|
||||||
from hyfetch.color_util import color
|
from hyfetch.color_util import color
|
||||||
from .constants import GLOBAL_CFG
|
from .constants import GLOBAL_CFG, MINGIT_URL
|
||||||
from .presets import ColorProfile
|
from .presets import ColorProfile
|
||||||
from .serializer import from_dict
|
from .serializer import from_dict
|
||||||
|
|
||||||
RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}')
|
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]:
|
def ascii_size(asc: str) -> tuple[int, int]:
|
||||||
"""
|
"""
|
||||||
Get distro ascii width, height ignoring color code
|
Get distro ascii width, height ignoring color code
|
||||||
@@ -127,7 +142,83 @@ def get_command_path() -> str:
|
|||||||
|
|
||||||
:return: Command path
|
: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:
|
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
|
os.environ['CUSTOM_DISTRO'] = distro
|
||||||
cmd = 'print_custom_ascii'
|
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():
|
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):
|
def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
||||||
@@ -165,6 +261,9 @@ def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
|||||||
w, h = ascii_size(asc)
|
w, h = ascii_size(asc)
|
||||||
asc = alignment.recolor_ascii(asc, preset)
|
asc = alignment.recolor_ascii(asc, preset)
|
||||||
|
|
||||||
|
# Escape backslashes here because backslashes are escaped in neofetch for printf
|
||||||
|
asc = asc.replace('\\', '\\\\')
|
||||||
|
|
||||||
# Write temp file
|
# Write temp file
|
||||||
with TemporaryDirectory() as tmp_dir:
|
with TemporaryDirectory() as tmp_dir:
|
||||||
tmp_dir = Path(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_len'] = str(w)
|
||||||
os.environ['ascii_lines'] = str(h)
|
os.environ['ascii_lines'] = str(h)
|
||||||
|
|
||||||
if platform.system() != 'Windows':
|
run_command(f'--ascii --source {path.absolute()} --ascii-colors')
|
||||||
os.system(f'{get_command_path()} --ascii --source {path.absolute()} --ascii-colors')
|
|
||||||
|
|
||||||
else:
|
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
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
|
distro = GLOBAL_CFG.override_distro
|
||||||
if not distro:
|
if not distro:
|
||||||
distro = get_distro_name().lower()
|
distro = get_distro_name().lower()
|
||||||
|
distro = distro.lower().replace(' ', '-')
|
||||||
for k, v in fore_back.items():
|
for k, v in fore_back.items():
|
||||||
if distro.startswith(k.lower()):
|
if distro == k.lower():
|
||||||
return v
|
return v
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@@ -210,5 +299,13 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
|||||||
fore_back = {
|
fore_back = {
|
||||||
'fedora': (2, 1),
|
'fedora': (2, 1),
|
||||||
'ubuntu': (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),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+62
-1
@@ -112,7 +112,7 @@ class ColorProfile:
|
|||||||
"""
|
"""
|
||||||
return ColorProfile([c.set_light(light, at_least, at_most) for c in self.colors])
|
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
|
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")
|
:param term: Terminal color (can be "dark" or "light")
|
||||||
:return: New color profile (original isn't modified)
|
:return: New color profile (original isn't modified)
|
||||||
"""
|
"""
|
||||||
|
term = term or GLOBAL_CFG.light_dark()
|
||||||
assert term.lower() in ['light', 'dark']
|
assert term.lower() in ['light', 'dark']
|
||||||
at_least, at_most = (True, None) if term.lower() == 'dark' else (None, True)
|
at_least, at_most = (True, None) if term.lower() == 'dark' else (None, True)
|
||||||
return self.set_light_raw(light, at_least, at_most)
|
return self.set_light_raw(light, at_least, at_most)
|
||||||
@@ -532,4 +533,64 @@ PRESETS: dict[str, ColorProfile] = {
|
|||||||
"#F39FCE",
|
"#F39FCE",
|
||||||
"#EA7BB3",
|
"#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
|
||||||
|
|
||||||
|
|
||||||
+50
-35
@@ -1,7 +1,7 @@
|
|||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||||
.TH NEOFETCH "1" "August 2022" "Neofetch 7.3.0" "User Commands"
|
.TH NEOFETCH "1" "November 2022" "Neofetch 7.3.4" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Neofetch \- manual page for Neofetch 7.3.0
|
Neofetch \- manual page for Neofetch 7.3.4
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B neofetch
|
.B neofetch
|
||||||
\fI\,func_name --option "value" --option "value"\/\fR
|
\fI\,func_name --option "value" --option "value"\/\fR
|
||||||
@@ -164,9 +164,12 @@ Print the Artist/Album/Title on separate lines.
|
|||||||
\fB\-\-memory_percent\fR on/off
|
\fB\-\-memory_percent\fR on/off
|
||||||
Display memory percentage.
|
Display memory percentage.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-memory_unit\fR kib/mib/gib
|
\fB\-\-memory_unit\fR (k/m/g/t)ib
|
||||||
Memory output unit.
|
Memory output unit.
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-\-memory_precision\fR integer
|
||||||
|
Change memory output precision. (???0, default=2)
|
||||||
|
.TP
|
||||||
\fB\-\-music_player\fR player\-name
|
\fB\-\-music_player\fR player\-name
|
||||||
Manually specify a player to use.
|
Manually specify a player to use.
|
||||||
Available values are listed in the config file
|
Available values are listed in the config file
|
||||||
@@ -303,49 +306,52 @@ Which Distro's ascii art to print
|
|||||||
.TP
|
.TP
|
||||||
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
||||||
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
||||||
Apricity, Arch, ArchBox, Archcraft, ARCHlabs, ArchMerge, ArchStrike,
|
Apricity, Arch, ArchBox, Archcraft, ARCHlabs, ArchStrike, ArcoLinux,
|
||||||
ArcoLinux, Artix, Arya, Asahi, AsteroidOS, Bedrock, BigLinux,
|
Artix, Arya, Asahi, AsteroidOS, astOS, Bedrock, BigLinux, Bitrig,
|
||||||
Bitrig, BlackArch, blackPanther, BLAG, BlankOn, BlueLight, Bodhi,
|
BlackArch, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai,
|
||||||
bonsai, BSD, BunsenLabs, Cachy OS, Calculate, CalinixOS, Carbs, CBLMariner, CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, Chrom,
|
BSD, BunsenLabs, Cachy OS, Calculate, CalinixOS, Carbs, CBL\-Mariner,
|
||||||
Cleanjaro, Clear Linux OS, ClearOS, Clover, Condres, Container Linux
|
CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS,
|
||||||
by CoreOS, CRUX, Crystal Linux, Cucumber, CutefishOS, CyberOS,
|
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres,
|
||||||
dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DracOS,
|
Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
||||||
DragonFly, Drauger, Elementary, Elive, EncryptOS, EndeavourOS,
|
CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS,
|
||||||
Endless, EuroLinux, Exherbo, Exodia Predator OS, Fedora, Feren,
|
Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian, Elementary,
|
||||||
Finnix, FreeBSD, FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda,
|
Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux, Exherbo,
|
||||||
Gentoo, glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS,
|
Exodia Predator OS, Fedora, Feren, Finnix, FreeBSD, FreeMiNT,
|
||||||
Grombyang, Guix, Haiku, HarDClanZ, Hash, Huayra, HydroOS, Hyperbola,
|
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,
|
iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE,
|
||||||
Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh,
|
Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh,
|
||||||
LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux Lite, Linux Mint,
|
LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux Lite, Linux Mint,
|
||||||
Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia,
|
Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia,
|
||||||
MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix,
|
MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix,
|
||||||
MIRACLE LINUX, MX, Namib, Neptune, NetBSD, Netrunner, Nitrux, NixOS,
|
MIRACLE LINUX, MX, Namib, Neptune, NetBSD, Netrunner, Nitrux, NixOS,
|
||||||
NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, Open Source Media
|
NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source
|
||||||
Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva,
|
Media Center, OpenBSD, openEuler, OpenIndiana, openmamba,
|
||||||
OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt,
|
OpenMandriva, OpenStage, openSUSE, openSUSE Leap, openSUSE
|
||||||
OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch,
|
Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus, PacBSD,
|
||||||
Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
|
Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS,
|
||||||
Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS,
|
Pengwin, Pentoo, Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus,
|
||||||
Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes,
|
PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS,
|
||||||
Qubyt, Quibian, Radix, Raspbian, Reborn OS, Red Star, Redcore,
|
Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS,
|
||||||
Redhat, Refracted Devuan, Regata, Regolith, rocky, Rosa, Sabayon,
|
Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith,
|
||||||
sabotage, Sailfish, SalentOS, Scientific, semc, Septor, Serene,
|
rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Scientific,
|
||||||
SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware, SliTaz,
|
semc, Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS,
|
||||||
SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS, Sulin,
|
Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star,
|
||||||
SunOS, SwagArch, t2, Tails, TeArch, TorizonCore, Trisquel, Twister,
|
SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch,
|
||||||
Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE,
|
TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu
|
||||||
Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu\-GNOME,
|
Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway,
|
||||||
ubuntu_old02, Ultramarine Linux, Univalent, Univention, Uos, uwuntu,
|
Ubuntu Touch, Ubuntu\-GNOME, ubuntu_old02, Ultramarine Linux,
|
||||||
Venom, VNux, Void, VzLinux, wii\-linux\-ngx, Windows, Windows 10,
|
Univalent, Univention, Uos, uwuntu, Vanilla, Venom, VNux, Void,
|
||||||
Windows 11, XFerience, Xubuntu, yiffOS, Zorin have ascii logos.
|
VzLinux, wii\-linux\-ngx, Windows, Windows 10, Windows 11, XFerience,
|
||||||
|
Xubuntu, yiffOS, Zorin have ascii logos.
|
||||||
.TP
|
.TP
|
||||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||||
have 'old' logo variants, use {distro}_old to use them.
|
have 'old' logo variants, use {distro}_old to use them.
|
||||||
.TP
|
.TP
|
||||||
NOTE: alpine, android, aoscosretro, arch, arcolinux, artix,
|
NOTE: alpine, android, aoscosretro, arch, arcolinux, artix,
|
||||||
CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
||||||
fedora, freebsd, gentoo, guix, haiku, hyperbola, linuxlite,
|
fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||||
linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd,
|
linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd,
|
||||||
opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian,
|
opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian,
|
||||||
rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
|
rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
|
||||||
@@ -412,9 +418,18 @@ Don't create the user config file.
|
|||||||
\fB\-\-print_config\fR
|
\fB\-\-print_config\fR
|
||||||
Print the default config file to stdout.
|
Print the default config file to stdout.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-stdout\fR
|
\fB\-\-stdout\fR=\fI\,on\/\fR
|
||||||
Turn off all colors and disables any ASCII/image backend.
|
Turn off all colors and disables any ASCII/image backend.
|
||||||
.TP
|
.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
|
\fB\-\-help\fR
|
||||||
Print this text and exit
|
Print this text and exit
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "neowofetch",
|
"name": "neowofetch",
|
||||||
"version": "1.4.0",
|
"version": "1.4.4",
|
||||||
"description": "Updated neofetch",
|
"description": "Updated neofetch",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -3,18 +3,18 @@ import pathlib
|
|||||||
|
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
import hyfetch
|
import hyfetch.constants
|
||||||
|
|
||||||
# The directory containing this file
|
# The directory containing this file
|
||||||
HERE = pathlib.Path(__file__).parent
|
HERE = pathlib.Path(__file__).parent
|
||||||
|
|
||||||
# The text of the README file
|
# 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
|
# This call to setup() does all the work
|
||||||
setup(
|
setup(
|
||||||
name="HyFetch",
|
name="HyFetch",
|
||||||
version=hyfetch.__version__,
|
version=hyfetch.constants.VERSION,
|
||||||
description="neofetch with flags <3",
|
description="neofetch with flags <3",
|
||||||
long_description=README,
|
long_description=README,
|
||||||
long_description_content_type="text/markdown",
|
long_description_content_type="text/markdown",
|
||||||
@@ -33,7 +33,13 @@ setup(
|
|||||||
packages=['hyfetch'],
|
packages=['hyfetch'],
|
||||||
package_data={'hyfetch': ['hyfetch/*']},
|
package_data={'hyfetch': ['hyfetch/*']},
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
install_requires=['setuptools', 'typing_extensions'],
|
install_requires=[
|
||||||
|
# Universal dependencies
|
||||||
|
'setuptools', 'typing_extensions',
|
||||||
|
|
||||||
|
# Windows dependencies
|
||||||
|
'psutil ; platform_system=="Windows"',
|
||||||
|
],
|
||||||
entry_points={
|
entry_points={
|
||||||
"console_scripts": [
|
"console_scripts": [
|
||||||
"hyfetch=hyfetch.main:run",
|
"hyfetch=hyfetch.main:run",
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Theme:
|
||||||
|
done_char: str
|
||||||
|
todo_char: str
|
||||||
|
prefix: str = ''
|
||||||
|
suffix: str = ''
|
||||||
|
done_len: int = 1
|
||||||
|
todo_len: int = 1
|
||||||
|
|
||||||
|
|
||||||
|
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 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 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__':
|
||||||
|
# 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'))
|
||||||
@@ -12,6 +12,11 @@ upstream = 'dylanaraps/neofetch'
|
|||||||
my_fork = 'hykilpikonna/hyfetch'
|
my_fork = 'hykilpikonna/hyfetch'
|
||||||
my_base = 'master'
|
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():
|
def copy_comment():
|
||||||
# Get commit SHA
|
# Get commit SHA
|
||||||
@@ -42,11 +47,11 @@ if __name__ == '__main__':
|
|||||||
print(f'Accepting pull request {pr}...')
|
print(f'Accepting pull request {pr}...')
|
||||||
|
|
||||||
# Fetch original pr's information
|
# Fetch original pr's information
|
||||||
info = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json()
|
info = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json()
|
||||||
user = info['user']['login']
|
user = info['user']['login']
|
||||||
|
|
||||||
# Fetch commit information
|
# Fetch commit information
|
||||||
commits = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
commits = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
||||||
author = commits[0]['commit']['author']
|
author = commits[0]['commit']['author']
|
||||||
|
|
||||||
# Create commit message
|
# Create commit message
|
||||||
|
|||||||
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}
|
||||||
|
.#.
|
||||||
|
*%@@@%*
|
||||||
|
.,,,,,(&@@@@@@@&/,,,,,.
|
||||||
|
,#@@@@@@@@@@@@@@@@@@@@@#.
|
||||||
|
,#@@@@@@@&#///#&@@@@@@@#.
|
||||||
|
,/%&@@@@@%/, .,(%@@@@@&#/.
|
||||||
|
*#&@@@@@@#,. .*#@@@@@@&#,
|
||||||
|
.&@@@@@@@@@( .(@@@@@@@@@&&.
|
||||||
|
#@@@@@@@@@@( )@@@@@@@@@@@#
|
||||||
|
°@@@@@@@@@@( .(@@@@@@@@@@@°
|
||||||
|
*%@@@@@@@(. ,#@@@@@@@%*
|
||||||
|
,(&@@@@@@%*. ./%@@@@@@%(,
|
||||||
|
,#@@@@@@@&(***(&@@@@@@@#.
|
||||||
|
,#@@@@@@@@@@@@@@@@@@@@@#.
|
||||||
|
,*****#&@@@@@@@&(*****,
|
||||||
|
,/%@@@%/.
|
||||||
|
,#,
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
from hyfetch.distro import AsciiArt
|
||||||
|
|
||||||
|
darkos = AsciiArt(match=r'''"DarkOs"''', color='1 6 5 3 2', ascii=r"""
|
||||||
|
|
||||||
|
${c3}⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⠋⡆⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡆⢀⣤⢛⠛⣠⣿⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣿⠟⣡⠊⣠⣾⣿⠃⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣯⣿⠀⠊⣤⣿⣿⣿⠃⣴⣧⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⡟⣠⣶⣿⣿⣿⢋⣤⠿⠛⠉⢁⣭⣽⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c4} ⠀⠀⠀⠀⠀⠀ ⠀⣠⠖⡭⢉⣿⣯⣿⣯⣿⣿⣿⣟⣧⠛⢉⣤⣶⣾⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c5}⠀⠀⠀⠀⠀⠀⠀⠀⣴⣫⠓⢱⣯⣿⢿⠋⠛⢛⠟⠯⠶⢟⣿⣯⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c2}⠀⠀⠀⠀⠀⠀⢀⡮⢁⣴⣿⣿⣿⠖⣠⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠛⠛⢿⣶⣄⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c3}⠀⠀⠀⠀⢀⣤⣷⣿⣿⠿⢛⣭⠒⠉⠀⠀⠀⣀⣀⣄⣤⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c1}⠀⢀⣶⠏⠟⠝⠉⢀⣤⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c6}⢴⣯⣤⣶⣿⣿⣿⣿⣿⡿⣿⣯⠉⠉⠉⠉⠀⠀⠀⠈⣿⡀⣟⣿⣿⢿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c5}⠀⠀⠀⠉⠛⣿⣧⠀⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠃⣿⣿⣯⣿⣦⡀⠀⠉⠻⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c3}⠀⠀⠀⠀⠀⠀⠉⢿⣮⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⣯⠉⠉⠛⢿⣿⣷⣄⠀⠈⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c2}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠀⠀⠀⠀⠀⢀⢡⠃⣾⣿⣿⣦⠀⠀⠀⠙⢿⣿⣤⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋⢿⣄⠀⠀⠀⠈⡄⠙⣶⣈⡄⠀⠀⠀⠀⠀⠀
|
||||||
|
${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀
|
||||||
|
${c4}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c3}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
from hyfetch.distro import AsciiArt
|
||||||
|
|
||||||
|
darwin = AsciiArt(match=r'''"Darwin"''', color='2 3 1 1 5 4', ascii=r"""
|
||||||
|
${c1} c.'
|
||||||
|
,xNMM.
|
||||||
|
.OMMMMo
|
||||||
|
lMMM"
|
||||||
|
.;loddo:. .olloddol;.
|
||||||
|
cKMMMMMMMMMMNWMMMMMMMMMM0:
|
||||||
|
${c2} .KMMMMMMMMMMMMMMMMMMMMMMMWd.
|
||||||
|
XMMMMMMMMMMMMMMMMMMMMMMMX.
|
||||||
|
${c3};MMMMMMMMMMMMMMMMMMMMMMMM:
|
||||||
|
:MMMMMMMMMMMMMMMMMMMMMMMM:
|
||||||
|
${c4}.MMMMMMMMMMMMMMMMMMMMMMMMX.
|
||||||
|
kMMMMMMMMMMMMMMMMMMMMMMMMWd.
|
||||||
|
${c5}'XMMMMMMMMMMMMMMMMMMMMMMMMMMk
|
||||||
|
'XMMMMMMMMMMMMMMMMMMMMMMMMK.
|
||||||
|
${c6}kMMMMMMMMMMMMMMMMMMMMMMd
|
||||||
|
;KMMMMMMMWXXWMMMMMMMk.
|
||||||
|
"cooc*" "*coo'"
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
from hyfetch.distro import AsciiArt
|
||||||
|
|
||||||
|
debian = AsciiArt(match=r'''"Debian"*''', color='1 7 3', ascii=r"""
|
||||||
|
${c2} _,met$$$$$gg.
|
||||||
|
,g$$$$$$$$$$$$$$$P.
|
||||||
|
,g$$P" \"""Y$$.".
|
||||||
|
,$$P' `$$$.
|
||||||
|
',$$P ,ggs. `$$b:
|
||||||
|
`d$$' ,$P"' ${c1}.${c2} $$$
|
||||||
|
$$P d$' ${c1},${c2} $$P
|
||||||
|
$$: $$. ${c1}-${c2} ,d$$'
|
||||||
|
$$; Y$b._ _,d$P'
|
||||||
|
Y$$. ${c1}`.${c2}`"Y$$$$P"'
|
||||||
|
${c2} `$$b ${c1}"-.__
|
||||||
|
${c2} `Y$$
|
||||||
|
`Y$$.
|
||||||
|
`$$b.
|
||||||
|
`Y$$b.
|
||||||
|
`"Y$b._
|
||||||
|
`\"""
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
from hyfetch.distro import AsciiArt
|
||||||
|
|
||||||
|
debian_small = AsciiArt(match=r'''"debian_small"''', color='1 7 3', ascii=r"""
|
||||||
|
${c1} _____
|
||||||
|
/ __ \\
|
||||||
|
| / |
|
||||||
|
| \\___-
|
||||||
|
-_
|
||||||
|
--_
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
from hyfetch.distro import AsciiArt
|
||||||
|
|
||||||
|
deepin = AsciiArt(match=r'''"Deepin"*''', color='2 7', ascii=r"""
|
||||||
|
${c1} ............
|
||||||
|
.';;;;;. .,;,.
|
||||||
|
.,;;;;;;;. ';;;;;;;.
|
||||||
|
.;::::::::' .,::;;,''''',.
|
||||||
|
,'.:::::::: .;;'. ';
|
||||||
|
;' 'cccccc, ,' :: '.. .:
|
||||||
|
,, :ccccc. ;: .c, '' :. ,;
|
||||||
|
.l. cllll' ., .lc :; .l' l.
|
||||||
|
.c :lllc ;cl: .l' .ll. :'
|
||||||
|
.l 'looc. . ,o: 'oo' c,
|
||||||
|
.o. .:ool::coc' .ooo' o.
|
||||||
|
:: ..... .;dddo ;c
|
||||||
|
l:... .';lddddo. ,o
|
||||||
|
lxxxxxdoolllodxxxxxxxxxc :l
|
||||||
|
,dxxxxxxxxxxxxxxxxxxl. 'o,
|
||||||
|
,dkkkkkkkkkkkkko;. .;o;
|
||||||
|
.;okkkkkdl;. .,cl:.
|
||||||
|
.,:cccccccc:,.
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
from hyfetch.distro import AsciiArt
|
||||||
|
|
||||||
|
desaos = AsciiArt(match=r'''"DesaOS"''', color='2 7', ascii=r"""
|
||||||
|
${c1}███████████████████████
|
||||||
|
███████████████████████
|
||||||
|
███████████████████████
|
||||||
|
███████████████████████
|
||||||
|
████████ ███████
|
||||||
|
████████ ███████
|
||||||
|
████████ ███████
|
||||||
|
████████ ███████
|
||||||
|
████████ ███████
|
||||||
|
████████ ███████
|
||||||
|
████████ ███████
|
||||||
|
██████████████████████████████
|
||||||
|
██████████████████████████████
|
||||||
|
████████████████████████
|
||||||
|
████████████████████████
|
||||||
|
████████████████████████
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
from hyfetch.distro import AsciiArt
|
||||||
|
|
||||||
|
devuan = AsciiArt(match=r'''"Devuan"*''', color='5 7', ascii=r"""
|
||||||
|
${c1} ..,,;;;::;,..
|
||||||
|
`':ddd;:,.
|
||||||
|
`'dPPd:,.
|
||||||
|
`:b$$b`.
|
||||||
|
'P$$$d`
|
||||||
|
.$$$$$`
|
||||||
|
;$$$$$P
|
||||||
|
.:P$$$$$$`
|
||||||
|
.,:b$$$$$$$;'
|
||||||
|
.,:dP$$$$$$$$b:'
|
||||||
|
.,:;db$$$$$$$$$$Pd'`
|
||||||
|
,db$$$$$$$$$$$$$$b:'`
|
||||||
|
:$$$$$$$$$$$$b:'`
|
||||||
|
`$$$$$bd:''`
|
||||||
|
`'''`
|
||||||
|
""")
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user