Compare commits
589 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b7c8937c4e | |||
| 996f894d07 | |||
| d8ce41a212 | |||
| 712cf097f4 | |||
| 92ae4b4316 | |||
| 31f50d38ee | |||
| eef75c9b46 | |||
| cbbd6cba2b | |||
| 881534987b | |||
| f54c45fbd0 | |||
| 239bb8e458 | |||
| e44040b2aa | |||
| 215c7bf361 | |||
| d79432b1f5 | |||
| 59fa4e5ecc | |||
| 8a4a96634c | |||
| 170e1148a9 | |||
| b4494cab21 | |||
| a8352d1fef | |||
| 1456660797 | |||
| 872cccb6f4 | |||
| 67915c332e | |||
| 935c45495d | |||
| b883f5b83b | |||
| 7a1b4b76d4 | |||
| affd1a2d63 | |||
| 1798734f17 | |||
| 7aa6f33f34 | |||
| 92d8c50268 | |||
| d338e82ca5 | |||
| bed98253b4 | |||
| 6e64957f7f | |||
| 80b79d7dbb | |||
| f7aa3ea8ed | |||
| 25ca95df8a | |||
| fa52cd42c2 | |||
| 7001d873b9 | |||
| b100e35bc7 | |||
| 3124ec0b3e | |||
| 6911087eab | |||
| 45f224d9dd | |||
| 206fa8d726 | |||
| 1e1cddc58f | |||
| b9773b989d | |||
| 8f8ecb7b94 | |||
| e96ff8e8aa | |||
| 10a2367077 | |||
| 5966bd0c22 | |||
| 64b7e11392 | |||
| ec172fb47a | |||
| 95f8168a0c | |||
| dbea0c04e2 | |||
| fd2dfb80ce | |||
| 821b3069be | |||
| d3377f5cf3 | |||
| dd944cb5a5 | |||
| 8500873387 | |||
| e0d05b4643 | |||
| 80c15d9d51 | |||
| bc7339969f | |||
| d9a31fd78e | |||
| d31c87796f | |||
| c52d9dca66 | |||
| 48dc7eee76 | |||
| edf62e98e3 | |||
| 0837ac87cf | |||
| 71dd40ecb9 | |||
| 69738f06e8 | |||
| 05801ca9d2 | |||
| 42a6a55c9e | |||
| d1b69b7852 | |||
| ccecf6424d | |||
| af1a3857eb | |||
| c431695eee | |||
| 3cc8a6cf01 | |||
| a732d37157 | |||
| dce75a7d6d | |||
| 3f220b5270 | |||
| 900820ffee | |||
| 7559fc516a | |||
| e3c799ae9e | |||
| 664b7c2e30 | |||
| 2fb6f214eb | |||
| 086705ff07 | |||
| 783a006abf | |||
| b0b4ef9d80 | |||
| 6c665d9c6c | |||
| 078ff79c16 | |||
| e31d3df4c6 | |||
| 2a84f63fd5 | |||
| 39e5dd0471 | |||
| 503cc3ec98 | |||
| 3f4b5b2a1f | |||
| 1d9fac6f1f | |||
| c176e6ffae | |||
| eeead8d7c3 | |||
| 9cf4b6cdcb | |||
| 42ca4dd5bd | |||
| 1f55b8d2e8 | |||
| 002a10466f | |||
| 8278b92e12 | |||
| 2850674070 | |||
| bd0415884a | |||
| e07241349d | |||
| 93d7b8b881 | |||
| 3b781bc84f | |||
| a656531726 | |||
| a4b05891b9 | |||
| 4894c472e6 | |||
| 371e660a39 | |||
| e184c99055 | |||
| 5b307d53cc | |||
| 4daff3b04d | |||
| 9d48719fb9 | |||
| 26495b59cd | |||
| 78397b27a2 | |||
| 6357e8909f | |||
| 09ea0c3356 | |||
| d610559b01 | |||
| e1494bf07d | |||
| ea4b11a6a1 | |||
| 42973cc700 | |||
| 210c002c61 | |||
| e30df6c719 | |||
| 48884c419b | |||
| ca9edf4e3f | |||
| 64a997ed0a | |||
| 32631d9217 | |||
| 350cb26755 | |||
| 0c730cad1a | |||
| 22622767d8 | |||
| d201644dc5 | |||
| 9778ebf3cf | |||
| 769580314c | |||
| 8d9d8a487e | |||
| 283125f7c5 | |||
| e9fc94096e | |||
| 50420c8044 | |||
| 9ab2b511d7 | |||
| c4027dd91e | |||
| c3176656ef | |||
| 16024267d0 | |||
| 7a7955e58a | |||
| 2dac990718 | |||
| e7b92d9e57 | |||
| b7f1655472 | |||
| 47c32f07d7 | |||
| 97cbdecb5e | |||
| a351a7c731 | |||
| 4be8be3a61 | |||
| a60aa8ee41 | |||
| e12efe5535 | |||
| 2de5282b9c | |||
| a2b6df6d9e | |||
| 8cd70044a1 | |||
| d797a8c28a | |||
| 44b3eb7b56 | |||
| aac56be0c1 | |||
| 8ed15d3b86 | |||
| 178ab554f2 | |||
| c327254320 | |||
| ffef851527 | |||
| 40d2950278 | |||
| 562fdc34e2 | |||
| a2addf730b | |||
| 21e36f9a11 | |||
| 19d15500d3 | |||
| 045357947c | |||
| 28dcc8af33 | |||
| 541874fac6 | |||
| ec277cac28 | |||
| c780fe634c | |||
| 7e37a1beda | |||
| 08380091d2 | |||
| 56793169e3 | |||
| 94107d4786 | |||
| c7123903a2 | |||
| 029cad082f | |||
| 04d43aadd2 | |||
| efa5b390b7 | |||
| 4322f06d11 | |||
| e2707dab83 | |||
| 1c1c057dad | |||
| b12f35fb0b | |||
| 7d1ff19b61 | |||
| 6a0754a0bd | |||
| f48d8b197b | |||
| c4ff2ebada | |||
| 66d00789e5 | |||
| 186b059459 | |||
| 87e920c3de | |||
| bb758237da | |||
| 4a3cb2b16b | |||
| af8138a35f | |||
| b313147a8d | |||
| 19590d73b6 | |||
| d13d737954 | |||
| 6fdc2a651e | |||
| 62dbb4a406 | |||
| 497caf0bd3 | |||
| acbe251430 | |||
| 312db60001 | |||
| 4e64260a27 | |||
| 59bfd6accd | |||
| ad3dca54c5 | |||
| 54dbc35c2d | |||
| 2bd5553a77 | |||
| 64f96bfbec | |||
| 6086ea7c18 | |||
| 3ff1e38e0b | |||
| 759373bb25 | |||
| 55b9efe916 | |||
| de1eaf8882 | |||
| ae2be9e70c | |||
| 128d870151 | |||
| fbd327f0e9 | |||
| d46db67af0 | |||
| 405f55d56e | |||
| 7b3f12fa8c | |||
| 09e2c49e91 | |||
| 7d26a8e60c | |||
| 2af034697c | |||
| 52cd1af890 | |||
| 4f38fd1f57 | |||
| a1e99aa0d3 | |||
| 5cab401189 | |||
| 42d6aa490a | |||
| ce5e7f174d | |||
| 63bbbff129 | |||
| 8102cd3a62 | |||
| 302e2bfe44 | |||
| efb61b60f6 | |||
| aee6a60bf6 | |||
| acca0f72cf | |||
| 1c192f1230 | |||
| beb26c3357 | |||
| 071ba1b002 | |||
| 8262573b0c | |||
| 9c2e731311 | |||
| 3b5c470806 | |||
| e6f91a36a7 | |||
| 037bff7968 | |||
| 600d7c8928 | |||
| 4dc001447b | |||
| f22d4ad5ea | |||
| 619df5a2cf | |||
| 9735178c19 | |||
| 0501a60ed2 | |||
| beafa6a98f | |||
| 8ef523174b | |||
| 93947b090a | |||
| 30df722ab0 | |||
| 94c1f63f56 | |||
| d2211a09c4 | |||
| bcb179101a | |||
| ac1164946b | |||
| 0b0eafbd07 | |||
| 7a7e710d34 | |||
| cbf2e8dfb1 | |||
| bc1c43a5d0 | |||
| ee1403df0e | |||
| 496523a9cf | |||
| fac3268754 | |||
| 0494744261 | |||
| f1396670a0 | |||
| 8b02b49884 | |||
| 4abad16e71 | |||
| c097f817c6 | |||
| 61b4b6b0e5 | |||
| 0c179db68d | |||
| 43c4d0d5ee | |||
| 8ed610c76f | |||
| 72dec6443d | |||
| cc779d0af5 | |||
| 3bba6063e3 | |||
| df3f1ebf7a | |||
| a917a9a693 | |||
| 2a6939c11b | |||
| be19e044d4 | |||
| 66ad0f7297 | |||
| 694725c56e | |||
| 7da4db9474 | |||
| b220933ec6 | |||
| cc29a0fff1 | |||
| 6417752e23 | |||
| 69907f6f8b | |||
| ac7be6d3d1 | |||
| a73f05e388 | |||
| 4e9455d2d6 | |||
| cb4cc5ba74 | |||
| b648c5dbec | |||
| cebeae9e85 | |||
| 24104e1696 | |||
| 39fde11d17 | |||
| 62c044cab3 | |||
| 84528b7c0f | |||
| 512d40f4de | |||
| 39474d5dfd | |||
| 17a28c0495 | |||
| de0d381ee2 | |||
| 4835bbba40 | |||
| e35db2b838 | |||
| 9c187da44a | |||
| 2c70ad2444 | |||
| d2d1c0aab4 | |||
| 957e280bed | |||
| 0d5cb3da51 | |||
| 2f0d3db477 | |||
| 5d6f9c45d6 | |||
| 22f7dbb6ec | |||
| 255e1d3f99 | |||
| b32bfea28d | |||
| 9dfbeeb3fe | |||
| 92623417f9 | |||
| 47e8a4b6ae | |||
| ce787650ff | |||
| f38da1da7b | |||
| aa2a46c307 | |||
| 249d88968a | |||
| 47ad86c1b3 | |||
| 3358918a96 | |||
| d210e8b717 | |||
| 2a0e05e228 | |||
| f80262b615 | |||
| 7aa46cb623 | |||
| 2a4242c57a | |||
| 8d3a3cc7f0 | |||
| eb76b2f474 | |||
| c9ed8e2088 | |||
| bee34b6262 | |||
| f4b91ddb9a | |||
| 348c6d4dcc | |||
| d9a46c97c8 | |||
| 82b874549a | |||
| 06d299f2f7 | |||
| cd0f55cd92 | |||
| 5f31542362 | |||
| edd5d39f73 | |||
| 73bf1e7fdf | |||
| a511742239 | |||
| abed2f36e0 | |||
| 2209e46014 | |||
| cde50f3893 | |||
| a51b3d29b9 | |||
| d4edbf1b9e | |||
| de253afcf4 | |||
| 946f6b7070 | |||
| 7703bfcbb0 | |||
| 36cc71b08e | |||
| 2a6ca41dcf | |||
| 55483a179d | |||
| 993cfbc627 | |||
| de2dda0382 | |||
| fabeccc310 | |||
| 3db30bd5ad | |||
| a83126e500 | |||
| c5a59756aa | |||
| dabf15d34f | |||
| b4bc49d1d7 | |||
| b68e0ccf52 | |||
| 143bfd2db7 | |||
| 2e20d4e529 | |||
| 66ff8d06d9 | |||
| 887f766464 | |||
| 85eaad14f2 | |||
| a797188d45 | |||
| 96382e7ba0 | |||
| 7682408554 | |||
| 9e85fbc151 | |||
| 10408af1a2 | |||
| 23814863f1 | |||
| 8d65521fad | |||
| 0014925ed0 | |||
| d876efec64 | |||
| b9e713f9e2 | |||
| d7b63beb4f | |||
| aa3804e4cb | |||
| afdb162d6e | |||
| 42cda441f1 | |||
| d11796ef02 | |||
| 59f5fd5651 | |||
| a1d687d3bd | |||
| 7bd96e422f | |||
| d1f601048b | |||
| 3b2fb773d3 | |||
| fed771d930 | |||
| 8930f921b4 | |||
| 5de1bf65e4 | |||
| b46d0e96f4 | |||
| 1c67333b45 | |||
| 5e26a44c19 | |||
| 865dea5dc3 | |||
| d5eea9a8ef | |||
| 365aedafe6 | |||
| 399fcd3c64 | |||
| 299adb8e4d | |||
| f86792356e | |||
| 892ed4e141 | |||
| 5364e22f39 | |||
| 6d77ebc7a7 | |||
| 1eab4bb157 | |||
| d59e4a64d3 | |||
| 0dd67146d7 | |||
| 46b7771f2c | |||
| 002697b49a | |||
| 9a77c39170 | |||
| bcc504190a | |||
| c9cf67d363 | |||
| 256759ce08 | |||
| 45d88a346c | |||
| 6e58b2b217 | |||
| c6c297a3b5 | |||
| f3b8a26d0e | |||
| b0b9c65d0c | |||
| 82bd8c1c4e | |||
| b53bd3a1c5 | |||
| 315037c32f | |||
| 93cc60f776 | |||
| 3f7b6aa3e2 | |||
| c779230f0b | |||
| 6a393986ac | |||
| 273e6abc38 | |||
| 6078e70cd8 | |||
| b744be3255 | |||
| e97c64e7c2 | |||
| c4eb4ec778 | |||
| 707eac5087 | |||
| 69129587cb | |||
| b572e5d35f | |||
| 86af5598c6 | |||
| d7273909f6 | |||
| 7b4f209ebe | |||
| 46d00666e2 | |||
| 1cffe3556a | |||
| 07d94eec8b | |||
| 62469e6f52 | |||
| 2c8261dc9a | |||
| 3219547c92 | |||
| b0bc4e64a9 | |||
| c2f2fb6bd8 | |||
| 37b8def5cd | |||
| 4dc28cd65d | |||
| 27d711cc61 | |||
| 333e04ef45 | |||
| 4a1c69cb7a | |||
| 7c5b92a05b | |||
| 9d1251bcf1 | |||
| e4fecc6733 | |||
| a6ac4b4117 | |||
| 23a94fd389 | |||
| 276d02440a | |||
| 34ac93d6c3 | |||
| 4efe946bfd | |||
| 54300031f9 | |||
| e95c8ebe5f | |||
| 89e716160d | |||
| 25d63b6494 | |||
| 7c40c7c1de | |||
| ee8d01ed2a | |||
| fa90bac6b2 | |||
| 20a0584264 | |||
| 4fa3aef4d6 | |||
| bd9a01e334 | |||
| 983b4bed75 | |||
| 8a975dc9f8 | |||
| ae7c2d7854 | |||
| 75619edf01 | |||
| 8967ab4200 | |||
| 3383b88d35 | |||
| 950fb1dfbf | |||
| 8a6cb79bae | |||
| a0f1be4247 | |||
| 096d1092c3 | |||
| 58509bf20b | |||
| 5739b9cc72 | |||
| 51bb342e8e | |||
| 69df231e17 | |||
| b9cff7c1e5 | |||
| 8662a2fe4c | |||
| 8f2976ffe4 | |||
| e6a11ca7cc | |||
| 32fece816f | |||
| 74b4347df5 | |||
| a20c67a86b | |||
| 97a2dd7325 | |||
| cce4866681 | |||
| 42d72fd13e | |||
| 50516dcf67 | |||
| 8dab8c93e3 | |||
| e2a0d4113a | |||
| fe1507b218 | |||
| 2558cc250d | |||
| 2dff8b0026 | |||
| 2e61633a7a | |||
| d3af666f21 | |||
| 201dc17c9d | |||
| c26bf9fb4a | |||
| b35ca2c919 | |||
| 30b2887d58 | |||
| b97f562780 | |||
| d561057cd8 | |||
| 8231693c0f | |||
| 6cddcd3f74 | |||
| f964e1d62b | |||
| bc2a8e60db | |||
| fcae0110e4 | |||
| f3078a7cd4 | |||
| 58d96e21d4 | |||
| 0e4f5e5541 | |||
| 3c961e38bf | |||
| 2a81916124 | |||
| 2bbc06a27f | |||
| 49725192b4 | |||
| c4630ee215 | |||
| da1970edd5 | |||
| 7254d787cd | |||
| 4e479dcdbb | |||
| 4705f50bfc | |||
| 533e5d86d8 | |||
| 7b3b51a5ce | |||
| 6dec6c756d | |||
| 978314980d | |||
| f58ba59b0b | |||
| e719ccbcae | |||
| c7fcbd9c32 | |||
| b611400e3b | |||
| 86021d96c7 | |||
| 0df597d38c | |||
| 8480ef541a | |||
| d2637a3588 | |||
| 815b755e48 | |||
| 0d8ff614c9 | |||
| 2250f05cca | |||
| 088f48b9e9 | |||
| 9cdf849193 | |||
| ec15b100e1 | |||
| faa7b14bfa | |||
| 8e27e79b93 | |||
| 765b03643d | |||
| f04bca3045 | |||
| 0e0613588e | |||
| c392685004 | |||
| 34006a6f75 | |||
| 3aa5a6d99e | |||
| cddaff7299 | |||
| 48630bbda5 | |||
| 31578af72b | |||
| 2c3841012e | |||
| 413c32e55d | |||
| d5e232d4f0 | |||
| f2fefb5379 | |||
| 6b43063ca1 | |||
| ef29fa6e57 | |||
| 15c2b33575 | |||
| ca0e3edcfa | |||
| 5a9ac6ee95 | |||
| 3ed56a46b3 | |||
| 6ff0b0a28b | |||
| 1e2ccf07a8 | |||
| 3e383f68f1 | |||
| 4f519e3aae | |||
| 116f038d86 | |||
| d1fac5df1d | |||
| f85fd46f63 | |||
| 4f49053c8f | |||
| 0f5a329522 | |||
| e68bb3dd2e | |||
| 1456af01ba | |||
| 4917191cdb | |||
| 5d9b77c9b0 | |||
| 0a4a58c1fb | |||
| 118be2c6e6 | |||
| a0221c51ff | |||
| ddd8dad7ef | |||
| e407d5bad1 | |||
| d2ea94a15d | |||
| 1b5dcdf7bc | |||
| cb32928102 | |||
| 86e266e5b7 | |||
| 10cf43e53a | |||
| 4141531b22 | |||
| 0e7799ff7e | |||
| 2131948855 | |||
| 3643275e44 | |||
| 9281ae5ed1 | |||
| e64b4d29f9 | |||
| 00e0343150 | |||
| e5d28f28c6 | |||
| b0877d4874 |
@@ -0,0 +1,68 @@
|
||||
name: arch_package
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: archlinux
|
||||
options: --privileged
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup
|
||||
|
||||
steps:
|
||||
- name: Prepare environment
|
||||
run: |
|
||||
pacman -Syu --needed --noconfirm base-devel git openssh
|
||||
sed -i '/E_ROOT/d' /usr/bin/makepkg
|
||||
|
||||
- name: Import AUR key
|
||||
run: |
|
||||
mkdir ~/.ssh && chmod 700 ~/.ssh
|
||||
echo '${{secrets.AUR_SSH_PRIVATE_KEY}}' >> ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
ssh-keyscan -H aur.archlinux.org >> /etc/ssh/ssh_known_hosts
|
||||
|
||||
- name: Clone from AUR
|
||||
run: |
|
||||
export GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa'
|
||||
git clone ssh://aur@aur.archlinux.org/hyfetch.git
|
||||
|
||||
- name: Upgrade PKGBUILD
|
||||
run: |
|
||||
cd hyfetch
|
||||
sed -i "/^pkgver=/cpkgver=${{github.ref_name}}" PKGBUILD
|
||||
sed -i "/^pkgrel=/cpkgrel=1" PKGBUILD
|
||||
|
||||
- name: Makepkg
|
||||
run: |
|
||||
cd hyfetch
|
||||
yes | makepkg -si
|
||||
|
||||
- name: Test hyfetch
|
||||
run: |
|
||||
hyfetch --test-print
|
||||
|
||||
- name: Upload binaries to release
|
||||
uses: shogo82148/actions-upload-release-asset@v1
|
||||
with:
|
||||
upload_url: ${{ github.event.release.upload_url }}
|
||||
asset_path: hyfetch/hyfetch*.pkg.tar.*
|
||||
|
||||
- name: set git info
|
||||
run: |
|
||||
git config --global user.name "Aleksana BOT"
|
||||
git config --global user.email "me@aleksana.moe"
|
||||
|
||||
- name: Update PKGBUILD to AUR
|
||||
run: |
|
||||
cd hyfetch
|
||||
rm -r .SRCINFO && makepkg --printsrcinfo >.SRCINFO
|
||||
git stage . && git commit -m "BOT: upgrade to ${{github.ref_name}}"
|
||||
export GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa'
|
||||
git push
|
||||
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
name: release
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "release/*"
|
||||
|
||||
jobs:
|
||||
testing:
|
||||
name: testing release
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ !startsWith(github.event.head_commit.message,'release') }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Get tags
|
||||
run: git fetch --all --tags
|
||||
|
||||
- name: Get version
|
||||
run: |
|
||||
BRANCH=$(git symbolic-ref --short HEAD)
|
||||
VER=${BRANCH#*release/}
|
||||
if [[ $(git tag | grep ${VER}rc) ]];then
|
||||
TAGS=$(git tag | grep ${VER}rc | awk 'END {print}')
|
||||
REL=${TAGS##*rc}
|
||||
let REL++
|
||||
else
|
||||
REL=1
|
||||
fi
|
||||
echo "BUILDVER=${VER}rc${REL}" >> $GITHUB_ENV
|
||||
|
||||
- name: Update versions
|
||||
run: |
|
||||
sed -i "/^ *VERSION = /cVERSION = '${{ env.BUILDVER }}'" hyfetch/constants.py
|
||||
|
||||
- name: Making tags
|
||||
run: |
|
||||
git config user.name github-actions
|
||||
git config user.email github-actions@github.com
|
||||
git stage .
|
||||
git commit -m "tagged unstable ${{ env.BUILDVER }}"
|
||||
git tag --force ${{ env.BUILDVER }}
|
||||
|
||||
- name: Upload changes
|
||||
run: |
|
||||
git pull && git push && git push --tags
|
||||
|
||||
- name: Deploy to PYPI
|
||||
uses: casperdcl/deploy-pypi@v2
|
||||
with:
|
||||
password: ${{ secrets.PYPI_API_TOKEN }}
|
||||
pip: wheel -w dist/ --no-deps .
|
||||
|
||||
release:
|
||||
name: formal release
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ startsWith(github.event.head_commit.message,'release') }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Get version
|
||||
run: |
|
||||
BRANCH=$(git symbolic-ref --short HEAD)
|
||||
echo "BUILDVER=${BRANCH#*release/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Update package.json
|
||||
uses: jossef/action-set-json-field@v2
|
||||
with:
|
||||
file: package.json
|
||||
field: version
|
||||
value: ${{ env.BUILDVER }}
|
||||
|
||||
- name: Update neofetch version
|
||||
run: |
|
||||
REVISION=$(expr $(git rev-list --count HEAD neofetch) - 2902)
|
||||
sed -i "/^ *version=/cversion=7.4.0r${REVISION}" neofetch
|
||||
|
||||
- name: Update other versions
|
||||
run: |
|
||||
sed -i "/^ *VERSION = /cVERSION = '${{ env.BUILDVER }}'" hyfetch/constants.py
|
||||
sed -i "/^ *### Unpublished/c### ${{ env.BUILDVER }}" README.md
|
||||
|
||||
- name: Make final tags
|
||||
run: |
|
||||
git config user.name github-actions
|
||||
git config user.email github-actions@github.com
|
||||
git stage . && git commit -m "tagged stable ${{ env.BUILDVER }}"
|
||||
git tag --force ${{ env.BUILDVER }}
|
||||
|
||||
- name: Merge branch and push
|
||||
run: |
|
||||
parent=$(git show-branch \
|
||||
| grep -F '*' \
|
||||
| grep -v "$(git rev-parse --abbrev-ref HEAD)" \
|
||||
| head -n1 \
|
||||
| sed 's/.*\[\(.*\)\].*/\1/' \
|
||||
| sed 's/[\^~].*//')
|
||||
git checkout ${parent}
|
||||
git merge release/${{ env.BUILDVER }} --allow-unrelated-histories
|
||||
git pull --all && git push --all && git push --tags
|
||||
|
||||
- name: Generate changelog from README
|
||||
run: (sed '0,/^ *### ${{ env.BUILDVER }}/d;/^ *#/,$d' <README.md)>temp_CHANGELOG.md
|
||||
|
||||
- name: Publish release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
bodyFile: "temp_CHANGELOG.md"
|
||||
tag: ${{ env.BUILDVER }}
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
@@ -0,0 +1,24 @@
|
||||
name: Shellcheck
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
# Shellcheck
|
||||
check:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install shellcheck
|
||||
run: sudo apt-get update && sudo apt-get install -y shellcheck
|
||||
|
||||
- name: Run shellcheck
|
||||
run: |
|
||||
shellcheck -V
|
||||
shellcheck neofetch
|
||||
./neofetch
|
||||
@@ -115,3 +115,4 @@ dmypy.json
|
||||
|
||||
# Custom
|
||||
.idea
|
||||
._*
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
language: bash
|
||||
sudo: required
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
before_install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install screenresolution; fi
|
||||
|
||||
script:
|
||||
- time ./neofetch --travis -v
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then shellcheck -e SC2244 -e SC2243 neofetch; fi
|
||||
# Check for lines longer than 100 chars.
|
||||
- if grep '.\{102\}' neofetch; then (exit 1); else (exit 0); fi
|
||||
@@ -2,7 +2,15 @@
|
||||
|
||||
neofetch with pride flags <3
|
||||
|
||||

|
||||
<img src="https://user-images.githubusercontent.com/22280294/162614541-af2b4660-f1f7-4287-b978-1aa2266ac70f.png" width="60%">
|
||||
|
||||
### Running Updated Original Neofetch
|
||||
|
||||
This repo also serves as an updated version of the original `neofetch` since the upstream [dylanaraps/neofetch](https://github.com/dylanaraps/neofetch) doesn't seem to be maintained anymore (as of Jul 30, 2022, the original repo hasn't merged a pull request for 6 months). If you only want to use the updated neofetch without pride flags, you can use the `neofetch` script from this repo. To prevent command name conflict, I call it `neowofetch` :)
|
||||
|
||||
* Method 1: `pip install hyfetch` then run `neowofetch`
|
||||
* Method 2: `npx neowofetch`
|
||||
* Method 3: `bash <(curl -sL neowofetch.hydev.org)`
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -19,23 +27,22 @@ pip install hyfetch
|
||||
Currently, these distributions have existing packages for HyFetch:
|
||||
|
||||
* ArchLinux: `yay -S hyfetch` (Thanks to @ Aleksana)
|
||||
* Guix: [In progress](https://issues.guix.gnu.org/54847#8-lineno27)
|
||||
* Nix: `nix-env -i hyfetch` (Thanks to @ YisuiDenghua)
|
||||
* Guix: `guix install hyfetch` (Thanks to @ WammKD)
|
||||
|
||||
## Usage
|
||||
|
||||
When you run `hyfetch` for the first time, it will prompt you to choose a color system and a preset. Just follow the prompt, and everything should work (hopefully). If something doesn't work, feel free to submit an issue!
|
||||
|
||||
If you want to use the updated `neofetch` without LGBTQ flags, check out [this section](https://github.com/hykilpikonna/hyfetch#running-updated-original-neofetch)
|
||||
|
||||
#### Q: How do I change my config?
|
||||
|
||||
A: Use `hyfetch -c`
|
||||
|
||||
#### Q: What do I do if the color is too dark/light for my theme?
|
||||
|
||||
A: You can try setting the colors' "lightness" using the `--c-set-l` parameter. The value should be between 0 and 1. For example, if you are using dark theme and the rainbow flag is too dark to display, you can type:
|
||||
|
||||
```sh
|
||||
hyfetch -p rainbow --c-set-l 0.8
|
||||
```
|
||||
A: You can try setting the colors' "lightness" in the configuration menu. The value should be between 0 and 1. For example, if you are using dark theme and the rainbow flag is too dark to display, you can set lightness to 0.7.
|
||||
|
||||
Feel free to experiment with it!
|
||||
|
||||
@@ -43,10 +50,255 @@ Feel free to experiment with it!
|
||||
|
||||
## Change Log
|
||||
|
||||
### About Notation
|
||||
|
||||
Updates to HyFetch begins with the emoji 🌈
|
||||
Updates to `neowofetch` begins with the emoji 🖼️
|
||||
|
||||
### TODO
|
||||
|
||||
* [ ] Add interactive configurator for adjusting brightness
|
||||
* [ ] Add configuration to emphasize certain parts of the original ASCII art (to make icons like Fedora and Ubuntu look nicer)
|
||||
* [ ] Allow left-right arrow keys for pagination
|
||||
* [ ] Implement light/dark background detection based on https://github.com/muesli/termenv
|
||||
|
||||
<!-- CHANGELOG STARTS HERE --->
|
||||
|
||||
### 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 ([dylanaraps#2180](https://github.com/dylanaraps/neofetch/pull/2180))
|
||||
* 🖼️ Distro - Add NekOS ([dylanaraps#2186](https://github.com/dylanaraps/neofetch/pull/2186))
|
||||
* 🖼️ Distro - Add astOS ([dylanaraps#2185](https://github.com/dylanaraps/neofetch/pull/2185))
|
||||
* 🖼️ Distro - Fix ChromeOS identification ([dylanaraps#1949](https://github.com/dylanaraps/neofetch/pull/1949))
|
||||
* 🖼️ WM - Add Hyprland to the list of wayland wms ([dylanaraps#2190](https://github.com/dylanaraps/neofetch/pull/2190))
|
||||
* 🖼️ Env - Add Java, Python, Node version detection (can be enabled in config)
|
||||
* 🖼️ Bug Fix - Fix hostname detection when `inetutils` is not installed
|
||||
* 🖼️ Bug Fix - Fix empty brackets displayed when no theme is found ([dylanaraps#1713](https://github.com/dylanaraps/neofetch/pull/1713))
|
||||
* 🖼️ Bug Fix - Fix `$` escape bug in `strip_escape_codes()` ([dylanaraps#1543](https://github.com/dylanaraps/neofetch/pull/1543))
|
||||
* 🖼️ Bug Fix - Fix backslash escape bug in `strip_escape_codes()` ([dylanaraps#1543](https://github.com/dylanaraps/neofetch/pull/1543))
|
||||
* 🖼️ Bug Fix - Fix CPU detection on ARM QEMU
|
||||
|
||||
### 1.4.0
|
||||
|
||||
* 🌈 Add finsexual flag (#12)
|
||||
* 🚀 Addressed a total of 128 currently open pull requests from neofetch
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Meta Changes</summary>
|
||||
|
||||
* Meta - Fixed shellcheck warnings in `neowofetch`
|
||||
* Meta - Moved shellcheck from travis to GitHub Actions
|
||||
* Meta - Created a script to automatically generate distro list
|
||||
* Colors - Allow RGB colors in neofetch `--ascii_colors` argument ([dylanaraps#1726](https://github.com/dylanaraps/neofetch/pull/1726))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Distro/OS Support Changes</summary>
|
||||
|
||||
* Distro - Update Ubuntu logo ([dylanaraps#2125](https://github.com/dylanaraps/neofetch/pull/2125))
|
||||
* Distro - Add Exodia OS Predator ([dylanaraps#2174](https://github.com/dylanaraps/neofetch/pull/2174))
|
||||
* Distro - Add Parch ([dylanaraps#2045](https://github.com/dylanaraps/neofetch/pull/2045))
|
||||
* Distro - Add VzLinux ([dylanaraps#1971](https://github.com/dylanaraps/neofetch/pull/1971))
|
||||
* Distro - Add Twister OS ([dylanaraps#1890](https://github.com/dylanaraps/neofetch/pull/1890))
|
||||
* Distro - Add BlackPantherOS ([dylanaraps#1761](https://github.com/dylanaraps/neofetch/pull/1761))
|
||||
* Distro - Add TorizonCore ([dylanaraps#1744](https://github.com/dylanaraps/neofetch/pull/1744))
|
||||
* Distro - Add KrassOS ([dylanaraps#1631](https://github.com/dylanaraps/neofetch/pull/1631))
|
||||
* Distro - Add Synology DSM ([dylanaraps#1666](https://github.com/dylanaraps/neofetch/pull/1666))
|
||||
* Distro - Add MatuusOS ([dylanaraps#1902](https://github.com/dylanaraps/neofetch/pull/1902))
|
||||
* Distro - Add HarDClanZ Linux ([dylanaraps#1797](https://github.com/dylanaraps/neofetch/pull/1797))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Device Support Changes</summary>
|
||||
|
||||
* Host - Identify iMac, Mac mini, Mac Pro Models ([dylanaraps#1944](https://github.com/dylanaraps/neofetch/pull/1944))
|
||||
* Host - Identify FreeBSD host model ([dylanaraps#1588](https://github.com/dylanaraps/neofetch/pull/1588))
|
||||
* Font - Better font matching for st ([dylanaraps#1877](https://github.com/dylanaraps/neofetch/pull/1877))
|
||||
* Theme - Use XSETTINGS to get theme without a DE ([dylanaraps#1831](https://github.com/dylanaraps/neofetch/pull/1831))
|
||||
* Theme - Add QT theme detection ([dylanaraps#1713](https://github.com/dylanaraps/neofetch/pull/1713))
|
||||
* Theme - Add LeftWM theme detection ([dylanaraps#1963](https://github.com/dylanaraps/neofetch/pull/1963))
|
||||
* Cursor - Add cursor theme detection ([dylanaraps#1149](https://github.com/dylanaraps/neofetch/pull/1149))
|
||||
* Terminal - Improve NixOS terminal identification ([dylanaraps#1134](https://github.com/dylanaraps/neofetch/pull/1134))
|
||||
* Terminal - Use `/proc/.../cmdline` instead of `.../comm` ([dylanaraps#2034](https://github.com/dylanaraps/neofetch/pull/2034))
|
||||
* Packages - Improve scoop/choco package count ([dylanaraps#1642](https://github.com/dylanaraps/neofetch/pull/1642))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Bug Fixes</summary>
|
||||
|
||||
* Bug Fix - Fix prepended `=` for kitty ([dylanaraps#2116](https://github.com/dylanaraps/neofetch/pull/2116))
|
||||
* Bug Fix - Hide domain in hostname by default ([dylanaraps#2095](https://github.com/dylanaraps/neofetch/pull/2095))
|
||||
* Bug Fix - Respect TMPDIR if it exists ([dylanaraps#1891](https://github.com/dylanaraps/neofetch/pull/1891))
|
||||
* Bug Fix - Fix terminal size over slow connection ([dylanaraps#1895](https://github.com/dylanaraps/neofetch/pull/1895))
|
||||
* Bug Fix - Fix GPU detection for bumblebee dual-GPU ([dylanaraps#1131](https://github.com/dylanaraps/neofetch/pull/1131))
|
||||
* Bug Fix - Strip colors in ASCII length calculation ([dylanaraps#1543](https://github.com/dylanaraps/neofetch/pull/1543))
|
||||
|
||||
</details>
|
||||
|
||||
### 1.3.0
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Ascii Art Changes</summary>
|
||||
|
||||
* Ascii - Improve Trisquel ([dylanaraps#1946](https://github.com/dylanaraps/neofetch/pull/1946))
|
||||
* Ascii - Improve LangitKetujuh ([dylanaraps#1948](https://github.com/dylanaraps/neofetch/pull/1948))
|
||||
* Ascii - Improve Artix small ([dylanaraps#1872](https://github.com/dylanaraps/neofetch/pull/1872))
|
||||
* Ascii - Update Archcraft ([dylanaraps#1919](https://github.com/dylanaraps/neofetch/pull/1919))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Distro/OS Support Changes</summary>
|
||||
|
||||
* OS - Support Old macOS 10.4 and 10.5 ([dylanaraps#2151](https://github.com/dylanaraps/neofetch/pull/2151))
|
||||
* OS - Identify Hackintosh VM ([dylanaraps#2005](https://github.com/dylanaraps/neofetch/pull/2005))
|
||||
* Distro - Fix model detection for Ubuntu Touch ([dylanaraps#2167](https://github.com/dylanaraps/neofetch/pull/2167))
|
||||
* Distro - Add EncryptOS ([dylanaraps#2158](https://github.com/dylanaraps/neofetch/pull/2158))
|
||||
* Distro - Add BigLinux ([dylanaraps#2061](https://github.com/dylanaraps/neofetch/pull/2061))
|
||||
* Distro - Add AmogOS ([dylanaraps#1904](https://github.com/dylanaraps/neofetch/pull/1904))
|
||||
* Distro - Add CutefishOS ([dylanaraps#2054](https://github.com/dylanaraps/neofetch/pull/2054))
|
||||
* Distro - Add PearOS ([dylanaraps#2049](https://github.com/dylanaraps/neofetch/pull/2049))
|
||||
* Distro - Add FusionX ([dylanaraps#2011](https://github.com/dylanaraps/neofetch/pull/2011))
|
||||
* Distro - Add Q4OS ([dylanaraps#1973](https://github.com/dylanaraps/neofetch/pull/1973))
|
||||
* Distro - Add CachyOS ([dylanaraps#2026](https://github.com/dylanaraps/neofetch/pull/2026))
|
||||
* Distro - Add Soda Linux ([dylanaraps#2023](https://github.com/dylanaraps/neofetch/pull/2023))
|
||||
* Distro - Add Elive Linux ([dylanaraps#1957](https://github.com/dylanaraps/neofetch/pull/1957))
|
||||
* Distro - Add Uos ([dylanaraps#1991](https://github.com/dylanaraps/neofetch/pull/1991))
|
||||
* Distro - Add MassOS ([dylanaraps#1947](https://github.com/dylanaraps/neofetch/pull/1947))
|
||||
* Distro - Add CalinixOS ([dylanaraps#1988](https://github.com/dylanaraps/neofetch/pull/1988))
|
||||
* Distro - Add Kaisen Linux ([dylanaraps#1958](https://github.com/dylanaraps/neofetch/pull/1958))
|
||||
* Distro - Add yiffOS ([dylanaraps#1920](https://github.com/dylanaraps/neofetch/pull/1920))
|
||||
* Distro - Add Sulin ([dylanaraps#1896](https://github.com/dylanaraps/neofetch/pull/1896))
|
||||
* Distro - Add Wii Linux ([dylanaraps#1929](https://github.com/dylanaraps/neofetch/pull/1929))
|
||||
* Distro - Add Linspire ([dylanaraps#1905](https://github.com/dylanaraps/neofetch/pull/1905))
|
||||
* Distro - Add Ubuntu Kylin ([dylanaraps#1974](https://github.com/dylanaraps/neofetch/pull/1974))
|
||||
* Distro - Add OPNsense ([dylanaraps#1055](https://github.com/dylanaraps/neofetch/pull/1055))
|
||||
* Distro - Improve BSD machine arch detection ([dylanaraps#2015](https://github.com/dylanaraps/neofetch/pull/2015))
|
||||
* Distro - Improve Manjaro version detection ([dylanaraps#1879](https://github.com/dylanaraps/neofetch/pull/1879))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Device Support Changes</summary>
|
||||
|
||||
* Terminal - Add Fig ([dylanaraps#2077](https://github.com/dylanaraps/neofetch/pull/2077))
|
||||
* Terminal - Identify font for Apple Terminal ([dylanaraps#2017](https://github.com/dylanaraps/neofetch/pull/2017))
|
||||
* CPU - Identify core count for Apple M1 ([dylanaraps#2038](https://github.com/dylanaraps/neofetch/pull/2038))
|
||||
* GPU - Identify OpenCL GPU without PCIe ([dylanaraps#1928](https://github.com/dylanaraps/neofetch/pull/1928))
|
||||
* Host - Identify MacBook & Update iDevice models ([dylanaraps#1944](https://github.com/dylanaraps/neofetch/pull/1944))
|
||||
* Battery - Identify power adapter for MacBooks ([dylanaraps#1945](https://github.com/dylanaraps/neofetch/pull/1945))
|
||||
* DE - Identify KF5 and Qt versions for Plasma ([dylanaraps#2019](https://github.com/dylanaraps/neofetch/pull/2019))
|
||||
* Packages - Improve GUIX package detection ([dylanaraps#2021](https://github.com/dylanaraps/neofetch/pull/2021))
|
||||
* Packages - Add `pm` and `cargo` ([dylanaraps#1876](https://github.com/dylanaraps/neofetch/pull/1876))
|
||||
* Network - Identify network capabilities ([dylanaraps#1511](https://github.com/dylanaraps/neofetch/pull/1511))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Bug Fixes</summary>
|
||||
|
||||
* Bug Fix - Fix `col_offset` ([dylanaraps#2042](https://github.com/dylanaraps/neofetch/pull/2042))
|
||||
* Bug Fix - Prioritize `/etc/os-release` ([dylanaraps#2067](https://github.com/dylanaraps/neofetch/pull/2067))
|
||||
* Bug Fix - Ignore case when counting `.appimage` ([dylanaraps#2006](https://github.com/dylanaraps/neofetch/pull/2006))
|
||||
* Bug Fix - Fix BSD freezing if pkg is not bootstrapped ([dylanaraps#2014](https://github.com/dylanaraps/neofetch/pull/2014))
|
||||
* Bug Fix - Fix wrong icon theme ([dylanaraps#1873](https://github.com/dylanaraps/neofetch/pull/1873))
|
||||
|
||||
</details>
|
||||
|
||||
### 1.2.0
|
||||
|
||||
* 🚀 Take over `neofetch` with `neowofetch`
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Ascii Art Changes</summary>
|
||||
|
||||
* Ascii - Add uwuntu ([#9](https://github.com/hykilpikonna/hyfetch/pull/9)) (use it with `hyfetch --test-distro uwuntu` or `neowofetch --ascii_distro uwuntu`)
|
||||
* Ascii - Better Void ascii art ([#10](https://github.com/hykilpikonna/hyfetch/pull/10))
|
||||
* Ascii - Update old NixOS logo for compatibility ([dylanaraps#2114](https://github.com/dylanaraps/neofetch/pull/2114))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Distro/OS Support Changes</summary>
|
||||
|
||||
* OS - Identify macOS 13 Ventura ([#8](https://github.com/hykilpikonna/hyfetch/pull/8))
|
||||
* OS - Windows 11 Fluent ([dylanaraps#2109](https://github.com/dylanaraps/neofetch/pull/2109))
|
||||
* Distro - Add Asahi Linux ([dylanaraps#2079](https://github.com/dylanaraps/neofetch/pull/2079))
|
||||
* Distro - Add CenterOS ([dylanaraps#2097](https://github.com/dylanaraps/neofetch/pull/2097))
|
||||
* Distro - Add Finnix ([dylanaraps#2099](https://github.com/dylanaraps/neofetch/pull/2099))
|
||||
* Distro - Add Miracle Linux ([dylanaraps#2085](https://github.com/dylanaraps/neofetch/pull/2085))
|
||||
* Distro - Add Univalent ([dylanaraps#2162](https://github.com/dylanaraps/neofetch/pull/2162))
|
||||
* Distro - Add NomadBSD ([dylanaraps#2147](https://github.com/dylanaraps/neofetch/pull/2147))
|
||||
* Distro - Add GrapheneOS ([dylanaraps#2146](https://github.com/dylanaraps/neofetch/pull/2146))
|
||||
* Distro - Add ShastraOS ([dylanaraps#2149](https://github.com/dylanaraps/neofetch/pull/2149))
|
||||
* Distro - Add Ubuntu Touch ([dylanaraps#2167](https://github.com/dylanaraps/neofetch/pull/2167))
|
||||
* Distro - Add Ubuntu Sway ([dylanaraps#2136](https://github.com/dylanaraps/neofetch/pull/2136))
|
||||
* Distro - Add Orchid Linux ([dylanaraps#2144](https://github.com/dylanaraps/neofetch/pull/2144))
|
||||
* Distro - Add AOSC OS/Retro ([dylanaraps#2124](https://github.com/dylanaraps/neofetch/pull/2124))
|
||||
* Distro - Add Ultramarine Linux ([dylanaraps#2115](https://github.com/dylanaraps/neofetch/pull/2115))
|
||||
* Distro - Improve NixOS version detection ([dylanaraps#2157](https://github.com/dylanaraps/neofetch/pull/2157))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Device/Program Support Changes</summary>
|
||||
|
||||
* Terminal - Add Termux ([dylanaraps#1923](https://github.com/dylanaraps/neofetch/pull/1923))
|
||||
* CPU - Add loongarch64 ([dylanaraps#2140](https://github.com/dylanaraps/neofetch/pull/2140))
|
||||
* CPU - Identify CPU name for ARM / RISCV ([dylanaraps#2139](https://github.com/dylanaraps/neofetch/pull/2139))
|
||||
* Battery - Fix file not found ([dylanaraps#2130](https://github.com/dylanaraps/neofetch/pull/2130))
|
||||
* GPU - Identify open-kernal Nvidia driver version ([dylanaraps#2128](https://github.com/dylanaraps/neofetch/pull/2128))
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>🖼️ Bug Fixes</summary>
|
||||
|
||||
* Bug Fix - Fix broken fedora output ([dylanaraps#2084](https://github.com/dylanaraps/neofetch/pull/2084))
|
||||
|
||||
</details>
|
||||
|
||||
<img width="200px" src="https://user-images.githubusercontent.com/22280294/181790059-47aa6f80-be99-4e67-8fa5-5c02b02842c6.png" align="right">
|
||||
|
||||
### 1.1.3rc1
|
||||
|
||||
* 🌈 Add foreground-background color arrangement to make Fedora and Ubuntu look nicer
|
||||
* 🌈 Allow typing abbreviations in flag selection
|
||||
* 🌈 Fix: Duplicate random color arrangements are appearing in selection screen
|
||||
* 🌈 Fix: Inconsistant color arrangement when saved to config file
|
||||
|
||||
### 1.1.2
|
||||
|
||||
* Add more flags ([#5](https://github.com/hykilpikonna/hyfetch/pull/5))
|
||||
* Removed `numpy` dependency that was used in 1.1.0
|
||||
|
||||
<img width="200px" src="https://user-images.githubusercontent.com/22280294/180901539-014f036e-c926-4470-ac72-a6d6dcf30672.png" align="right">
|
||||
|
||||
### 1.1.0
|
||||
|
||||
* Refactored a lot of things
|
||||
* Added Beiyang flag xD
|
||||
* Added interactive configurator for brightness adjustment
|
||||
* Added dark/light mode selection
|
||||
* Added color bar preview for RGB/8bit mode selection
|
||||
* Added random color arrangement feature (for NixOS)
|
||||
|
||||
### 1.0.7
|
||||
|
||||
* Fix: Make config path not on init but when it's actually needed.
|
||||
|
||||
### 1.0.6
|
||||
|
||||
* Remove `hypy_utils` dependency to make packaging easier.
|
||||
|
||||
### 1.0.5
|
||||
|
||||
@@ -100,6 +352,7 @@ The information by default is displayed alongside your operating system's logo.
|
||||
|
||||
You can further configure Neofetch to display exactly what you want it to. Through the use of command-line flags and the configuration file you can change existing information outputs or add your own custom ones.
|
||||
|
||||
|
||||
Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX and Haiku. If your favourite operating system is unsupported: Open up an issue and support will be added.
|
||||
|
||||
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
rec {
|
||||
hyfetch = python3Packages.buildPythonPackage rec {
|
||||
pname = "HyFetch";
|
||||
version = "1.0.7";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-3/6/3EtTqHXTMuRIo2nclIxYSzOFvQegR29OJsKMQU4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
typing-extensions
|
||||
setuptools
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "neofetch with pride flags <3";
|
||||
longDescription = ''
|
||||
HyFetch is a command-line system information tool fork of neofetch.
|
||||
HyFetch displays information about your system next to your OS logo
|
||||
in ASCII representation. The ASCII representation is then colored in
|
||||
the pattern of the pride flag of your choice. The main purpose of
|
||||
HyFetch is to be used in screenshots to show other users what
|
||||
operating system or distribution you are running, what theme or
|
||||
icon set you are using, etc.
|
||||
'';
|
||||
homepage = "https://github.com/hykilpikonna/HyFetch";
|
||||
license = licenses.mit;
|
||||
mainProgram = "hyfetch";
|
||||
};
|
||||
};
|
||||
}
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
from __future__ import annotations
|
||||
from . import main
|
||||
|
||||
from . import main, constants
|
||||
|
||||
__version__ = '1.0.5'
|
||||
__version__ = constants.VERSION
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
from hyfetch import main
|
||||
|
||||
if __name__ == '__main__':
|
||||
main.run()
|
||||
@@ -0,0 +1,76 @@
|
||||
"""
|
||||
This version of color_scale is a special version made without numpy dependency. The numpy version
|
||||
would be faster, but numpy is 11 MB large. In comparison, hyfetch 1.0.7 is only 105 kB, so it's not
|
||||
a good idea to depend on numpy.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from .color_util import RGB
|
||||
|
||||
|
||||
def create_gradient_hex(colors: list[str], resolution: int = 300) -> list[RGB]:
|
||||
"""
|
||||
Create gradient array from hex
|
||||
"""
|
||||
colors = [RGB.from_hex(s) for s in colors]
|
||||
return create_gradient(colors, resolution)
|
||||
|
||||
|
||||
def create_gradient(colors: list[RGB], resolution: int) -> list[RGB]:
|
||||
"""
|
||||
Create gradient array
|
||||
|
||||
Usage: arr[ratio / len(arr)] = Scaled gradient color at that point
|
||||
"""
|
||||
result = []
|
||||
|
||||
# Create gradient mapping
|
||||
for i in range(len(colors) - 1):
|
||||
c1 = colors[i]
|
||||
c2 = colors[i + 1]
|
||||
bi = i * resolution
|
||||
|
||||
for ri in range(resolution):
|
||||
ratio = ri / resolution
|
||||
r = int(c2.r * ratio + c1.r * (1 - ratio))
|
||||
g = int(c2.g * ratio + c1.g * (1 - ratio))
|
||||
b = int(c2.b * ratio + c1.b * (1 - ratio))
|
||||
result.append(RGB(r, g, b))
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def get_raw(gradient: list[RGB], ratio: float) -> RGB:
|
||||
"""
|
||||
:param gradient: Gradient array (2d)
|
||||
:param ratio: Between 0-1
|
||||
:return: RGB subarray (1d, has 3 values)
|
||||
"""
|
||||
if ratio == 1:
|
||||
return gradient[-1]
|
||||
|
||||
i = int(ratio * len(gradient))
|
||||
return gradient[i]
|
||||
|
||||
|
||||
class Scale:
|
||||
colors: list[RGB]
|
||||
rgb: list[RGB]
|
||||
|
||||
def __init__(self, scale: list[str], resolution: int = 300):
|
||||
self.colors = [RGB.from_hex(s) for s in scale]
|
||||
self.rgb = create_gradient(self.colors, resolution)
|
||||
|
||||
def __call__(self, ratio: float) -> RGB:
|
||||
"""
|
||||
:param ratio: Between 0-1
|
||||
"""
|
||||
return get_raw(self.rgb, ratio)
|
||||
|
||||
|
||||
def test_color_scale():
|
||||
scale = Scale(['#232323', '#4F1879', '#B43A78', '#F98766', '#FCFAC0'])
|
||||
|
||||
colors = 100
|
||||
for i in range(colors + 1):
|
||||
print(scale(i / colors).to_ansi_rgb(False), end=' ')
|
||||
+80
-5
@@ -1,10 +1,69 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import colorsys
|
||||
from typing import NamedTuple
|
||||
from typing import NamedTuple, Callable, Optional
|
||||
|
||||
from typing_extensions import Literal
|
||||
|
||||
from .constants import GLOBAL_CFG
|
||||
|
||||
AnsiMode = Literal['default', 'ansi', '8bit', 'rgb']
|
||||
LightDark = Literal['light', 'dark']
|
||||
|
||||
|
||||
MINECRAFT_COLORS = ["&0/\033[0;30m", "&1/\033[0;34m", "&2/\033[0;32m", "&3/\033[0;36m", "&4/\033[0;31m",
|
||||
"&5/\033[0;35m", "&6/\033[0;33m", "&7/\033[0;37m", "&8/\033[1;30m", "&9/\033[1;34m",
|
||||
"&a/\033[1;32m", "&b/\033[1;36m", "&c/\033[1;31m", "&d/\033[1;35m", "&e/\033[1;33m",
|
||||
"&f/\033[1;37m",
|
||||
"&r/\033[0m", "&l/\033[1m", "&o/\033[3m", "&n/\033[4m", "&-/\n"]
|
||||
MINECRAFT_COLORS = [(r[:2], r[3:]) for r in MINECRAFT_COLORS]
|
||||
|
||||
|
||||
def color(msg: str) -> str:
|
||||
"""
|
||||
Replace extended minecraft color codes in string
|
||||
:param msg: Message with minecraft color codes
|
||||
:return: Message with escape codes
|
||||
"""
|
||||
for code, esc in MINECRAFT_COLORS:
|
||||
msg = msg.replace(code, esc)
|
||||
|
||||
while '&gf(' in msg or '&gb(' in msg:
|
||||
i = msg.index('&gf(') if '&gf(' in msg else msg.index('&gb(')
|
||||
end = msg.index(')', i)
|
||||
code = msg[i + 4:end]
|
||||
fore = msg[i + 2] == 'f'
|
||||
|
||||
if code.startswith('#'):
|
||||
rgb = tuple(int(code.lstrip('#')[i:i+2], 16) for i in (0, 2, 4))
|
||||
else:
|
||||
code = code.replace(',', ' ').replace(';', ' ').replace(' ', ' ')
|
||||
rgb = tuple(int(c) for c in code.split(' '))
|
||||
|
||||
msg = msg[:i] + RGB(*rgb).to_ansi(foreground=fore) + msg[end + 1:]
|
||||
|
||||
return msg
|
||||
|
||||
|
||||
def printc(msg: str):
|
||||
"""
|
||||
Print with color
|
||||
:param msg: Message with minecraft color codes
|
||||
"""
|
||||
print(color(msg + '&r'))
|
||||
|
||||
|
||||
def clear_screen(title: str = ''):
|
||||
"""
|
||||
Clear screen using ANSI escape codes
|
||||
"""
|
||||
if not GLOBAL_CFG.debug:
|
||||
print('\033[2J\033[H', end='')
|
||||
|
||||
if title:
|
||||
print()
|
||||
printc(title)
|
||||
print()
|
||||
|
||||
|
||||
def redistribute_rgb(r: int, g: int, b: int) -> tuple[int, int, int]:
|
||||
@@ -99,7 +158,9 @@ class RGB(NamedTuple):
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def to_ansi(self, mode: AnsiMode, foreground: bool = True):
|
||||
def to_ansi(self, mode: AnsiMode | None = None, foreground: bool = True):
|
||||
if not mode:
|
||||
mode = GLOBAL_CFG.color_mode
|
||||
if mode == 'rgb':
|
||||
return self.to_ansi_rgb(foreground)
|
||||
if mode == '8bit':
|
||||
@@ -116,12 +177,26 @@ class RGB(NamedTuple):
|
||||
"""
|
||||
return RGB(*redistribute_rgb(*[v * multiplier for v in self]))
|
||||
|
||||
def set_light(self, light: int) -> 'RGB':
|
||||
def set_light(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'RGB':
|
||||
"""
|
||||
Set HSL lightness value
|
||||
|
||||
:param light: Lightness value
|
||||
:param light: Lightness value (0-1)
|
||||
:param at_least: Set the lightness to at least this value (no change if greater)
|
||||
:param at_most: Set the lightness to at most this value (no change if lesser)
|
||||
:return: New color (original isn't modified)
|
||||
"""
|
||||
# Convert to HSL
|
||||
h, l, s = colorsys.rgb_to_hls(*[v / 255.0 for v in self])
|
||||
return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(h, light, s)])
|
||||
|
||||
# Modify light value
|
||||
if at_least is None and at_most is None:
|
||||
l = light
|
||||
else:
|
||||
if at_most:
|
||||
l = min(l, light)
|
||||
if at_least:
|
||||
l = max(l, light)
|
||||
|
||||
# Convert back to RGB
|
||||
return RGB(*[round(v * 255.0) for v in colorsys.hls_to_rgb(h, l, s)])
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from typing_extensions import Literal
|
||||
|
||||
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
||||
VERSION = '1.4.1'
|
||||
|
||||
|
||||
TEST_ASCII = r"""
|
||||
### |\___/| ###
|
||||
### ) ( ###
|
||||
## =\ /= ##
|
||||
#### )===( ####
|
||||
### / \ ###
|
||||
### | | ###
|
||||
## / {txt} \ ##
|
||||
## \ / ##
|
||||
_/\_\_ _/_/\_
|
||||
|##| ( ( |##|
|
||||
|##| ) ) |##|
|
||||
|##| (_( |##|""".strip('\n')
|
||||
|
||||
TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n'))
|
||||
DEFAULT_DARK_L = 0.
|
||||
|
||||
|
||||
@dataclass
|
||||
class GlobalConfig:
|
||||
# Global color mode default to 8-bit for compatibility
|
||||
color_mode: str
|
||||
override_distro: str | None
|
||||
debug: bool
|
||||
is_light: bool
|
||||
|
||||
def light_dark(self) -> Literal['light', 'dark']:
|
||||
return 'light' if self.is_light else 'dark'
|
||||
|
||||
def default_lightness(self, term: Literal['light', 'dark'] | None = None) -> float:
|
||||
if term is None:
|
||||
term = self.light_dark()
|
||||
return 0.65 if term.lower() == 'dark' else 0.4
|
||||
|
||||
|
||||
GLOBAL_CFG = GlobalConfig(color_mode='8bit', override_distro=None, debug=False, is_light=False)
|
||||
|
||||
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('*', '')
|
||||
|
||||
|
||||
+306
-74
@@ -3,27 +3,18 @@ from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
import random
|
||||
import re
|
||||
from itertools import permutations
|
||||
import traceback
|
||||
from typing import Iterable
|
||||
from math import ceil
|
||||
|
||||
from hypy_utils import printc, json_stringify, color
|
||||
|
||||
from .color_util import AnsiMode
|
||||
from .neofetch_util import run_neofetch
|
||||
from .presets import PRESETS, ColorProfile
|
||||
|
||||
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
||||
CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
preset: str
|
||||
mode: AnsiMode
|
||||
|
||||
def save(self):
|
||||
CONFIG_PATH.write_text(json_stringify(self), 'utf-8')
|
||||
from .color_util import printc, color, clear_screen
|
||||
from .constants import *
|
||||
from .models import Config
|
||||
from .neofetch_util import *
|
||||
from .presets import PRESETS
|
||||
|
||||
|
||||
def check_config() -> Config:
|
||||
@@ -36,56 +27,56 @@ def check_config() -> Config:
|
||||
:return: Config object
|
||||
"""
|
||||
if CONFIG_PATH.is_file():
|
||||
return Config(**json.loads(CONFIG_PATH.read_text('utf-8')))
|
||||
try:
|
||||
return Config.from_dict(json.loads(CONFIG_PATH.read_text('utf-8')))
|
||||
except KeyError:
|
||||
return create_config()
|
||||
|
||||
return create_config()
|
||||
|
||||
|
||||
def literal_input(prompt: str, options: Iterable[str], default: str) -> str:
|
||||
def literal_input(prompt: str, options: Iterable[str], default: str, show_ops: bool = True) -> str:
|
||||
"""
|
||||
Ask the user to provide an input among a list of options
|
||||
|
||||
:param prompt: Input prompt
|
||||
:param options: Options
|
||||
:param default: Default option
|
||||
:param show_ops: Show options
|
||||
:return: Selection
|
||||
"""
|
||||
options = list(options)
|
||||
lows = [o.lower() for o in options]
|
||||
|
||||
op_text = '|'.join([f'&l&n{o}&r' if o == default else o for o in options])
|
||||
printc(f'{prompt} ({op_text})')
|
||||
selection = input('> ') or default
|
||||
while not selection.lower() in lows:
|
||||
if show_ops:
|
||||
op_text = '|'.join([f'&l&n{o}&r' if o == default else o for o in options])
|
||||
printc(f'{prompt} ({op_text})')
|
||||
else:
|
||||
printc(f'{prompt} (default: {default})')
|
||||
|
||||
def find_selection(sel: str):
|
||||
if not sel:
|
||||
return None
|
||||
|
||||
# Find exact match
|
||||
if sel in lows:
|
||||
return options[lows.index(sel)]
|
||||
|
||||
# Find starting abbreviation
|
||||
for i, op in enumerate(lows):
|
||||
if op.startswith(sel):
|
||||
return options[i]
|
||||
|
||||
return None
|
||||
|
||||
selection = input('> ').lower() or default
|
||||
while not find_selection(selection):
|
||||
print(f'Invalid selection! {selection} is not one of {"|".join(options)}')
|
||||
selection = input('> ') or default
|
||||
selection = input('> ').lower() or default
|
||||
|
||||
print()
|
||||
|
||||
return options[lows.index(selection)]
|
||||
|
||||
|
||||
def center_text(txt: str, spaces: int) -> str:
|
||||
"""
|
||||
Put the text in the center in a defined space
|
||||
|
||||
>>> center_text('meow', 9)
|
||||
' meow '
|
||||
|
||||
:param txt: Text
|
||||
:param spaces: Total space of the text
|
||||
:return: Text with length spaces
|
||||
"""
|
||||
spaces -= len(txt)
|
||||
|
||||
if spaces % 2 == 1:
|
||||
spaces -= 1
|
||||
txt += ' '
|
||||
|
||||
while spaces > 0:
|
||||
spaces -= 2
|
||||
txt = f' {txt} '
|
||||
|
||||
return txt
|
||||
return find_selection(selection)
|
||||
|
||||
|
||||
def create_config() -> Config:
|
||||
@@ -94,35 +85,231 @@ def create_config() -> Config:
|
||||
|
||||
:return: Config object (automatically stored)
|
||||
"""
|
||||
# Select color system
|
||||
# TODO: Demo of each color system
|
||||
color_system = literal_input('Which &acolor &bsystem &rdo you want to use?',
|
||||
['8bit', 'rgb'], 'rgb')
|
||||
asc = get_distro_ascii()
|
||||
asc_width, asc_lines = ascii_size(asc)
|
||||
title = 'Welcome to &b&lhy&f&lfetch&r! Let\'s set up some colors first.'
|
||||
clear_screen(title)
|
||||
|
||||
# Print preset
|
||||
print('Available presets:\n')
|
||||
spacing = max(max(len(k) for k in PRESETS.keys()), 30)
|
||||
##############################
|
||||
# 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
|
||||
clear_screen(title)
|
||||
term_len, term_lines = term_size()
|
||||
try:
|
||||
# Demonstrate RGB with a gradient. This requires numpy
|
||||
from .color_scale import Scale
|
||||
|
||||
scale2 = Scale(['#12c2e9', '#c471ed', '#f7797d'])
|
||||
_8bit = [scale2(i / term_len).to_ansi_8bit(False) for i in range(term_len)]
|
||||
_rgb = [scale2(i / term_len).to_ansi_rgb(False) for i in range(term_len)]
|
||||
|
||||
printc('&f' + ''.join(c + t for c, t in zip(_8bit, '8bit Color Testing'.center(term_len))))
|
||||
printc('&f' + ''.join(c + t for c, t in zip(_rgb, 'RGB Color Testing'.center(term_len))))
|
||||
|
||||
print()
|
||||
printc(f'&a1. Which &bcolor system &ado you want to use?')
|
||||
printc(f'(If you can\'t see colors under "RGB Color Testing", please choose 8bit)')
|
||||
print()
|
||||
color_system = literal_input('Your choice?', ['8bit', 'rgb'], 'rgb')
|
||||
|
||||
except ModuleNotFoundError:
|
||||
# Numpy not found, skip gradient test, use fallback
|
||||
color_system = literal_input('Which &acolor &bsystem &rdo you want to use?',
|
||||
['8bit', 'rgb'], 'rgb')
|
||||
|
||||
# Override global color mode
|
||||
GLOBAL_CFG.color_mode = color_system
|
||||
title += f'\n&e1. Selected color mode: &r{color_system}'
|
||||
|
||||
##############################
|
||||
# 2. Select light/dark mode
|
||||
clear_screen(title)
|
||||
light_dark = literal_input(f'2. Is your terminal in &gf(#85e7e9)light mode&r or &gf(#c471ed)dark mode&r?',
|
||||
['light', 'dark'], 'dark')
|
||||
is_light = light_dark == 'light'
|
||||
GLOBAL_CFG.is_light = is_light
|
||||
title += f'\n&e2. Light/Dark: &r{light_dark}'
|
||||
|
||||
##############################
|
||||
# 3. Choose preset
|
||||
# Create flags = [[lines]]
|
||||
flags = []
|
||||
spacing = max(max(len(k) for k in PRESETS.keys()), 20)
|
||||
for name, preset in PRESETS.items():
|
||||
flags.append([preset.color_text(' ' * spacing, foreground=False),
|
||||
'&0' + preset.color_text(center_text(name, spacing), foreground=False),
|
||||
preset.color_text(' ' * spacing, foreground=False)])
|
||||
flags_per_row = 3
|
||||
while flags:
|
||||
current = flags[:flags_per_row]
|
||||
flags = flags[flags_per_row:]
|
||||
for line in range(len(current[0])):
|
||||
printc(' '.join(flag[line] for flag in current))
|
||||
flag = preset.color_text(' ' * spacing, foreground=False)
|
||||
flags.append([name.center(spacing), flag, flag, flag])
|
||||
|
||||
# Calculate flags per row
|
||||
flags_per_row = term_size()[0] // (spacing + 2)
|
||||
row_per_page = max(1, (term_size()[1] - 13) // 5)
|
||||
num_pages = ceil(len(flags) / (flags_per_row * row_per_page))
|
||||
|
||||
# Create pages
|
||||
pages = []
|
||||
for i in range(num_pages):
|
||||
page = []
|
||||
for j in range(row_per_page):
|
||||
page.append(flags[:flags_per_row])
|
||||
flags = flags[flags_per_row:]
|
||||
if not flags:
|
||||
break
|
||||
pages.append(page)
|
||||
|
||||
def print_flag_page(page: list[list[list[str]]], page_num: int):
|
||||
clear_screen(title)
|
||||
printc('&a3. Let\'s choose a flag!')
|
||||
printc('Available flag presets:')
|
||||
print(f'Page: {page_num + 1} of {num_pages}')
|
||||
print()
|
||||
for i in page:
|
||||
print_flag_row(i)
|
||||
print()
|
||||
|
||||
def print_flag_row(current: list[list[str]]):
|
||||
[printc(' '.join(line)) for line in zip(*current)]
|
||||
print()
|
||||
|
||||
page = 0
|
||||
while True:
|
||||
print_flag_page(pages[page], page)
|
||||
|
||||
tmp = PRESETS['rainbow'].set_light_dl_def(light_dark).color_text('preset')
|
||||
opts = list(PRESETS.keys())
|
||||
if page < num_pages - 1:
|
||||
opts.append('next')
|
||||
if page > 0:
|
||||
opts.append('prev')
|
||||
print("Enter 'next' to go to the next page and 'prev' to go to the previous page.")
|
||||
preset = literal_input(f'Which {tmp} do you want to use? ', opts, 'rainbow', show_ops=False)
|
||||
if preset == 'next':
|
||||
page += 1
|
||||
elif preset == 'prev':
|
||||
page -= 1
|
||||
else:
|
||||
_prs = PRESETS[preset]
|
||||
title += f'\n&e3. Selected flag: &r{_prs.color_text(preset)}'
|
||||
break
|
||||
|
||||
#############################
|
||||
# 4. Dim/lighten colors
|
||||
clear_screen(title)
|
||||
printc(f'&a4. Let\'s adjust the color brightness!')
|
||||
printc(f'The colors might be a little bit too {"bright" if is_light else "dark"} for {light_dark} mode.')
|
||||
print()
|
||||
tmp = PRESETS['rainbow'].color_text('preset')
|
||||
preset = literal_input(f'Which {tmp} do you want to use?', PRESETS.keys(), 'rainbow')
|
||||
|
||||
# Print cats
|
||||
num_cols = term_size()[0] // (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()
|
||||
printc(f'Which brightness level look the best? (Default: left blank = {GLOBAL_CFG.default_lightness(light_dark):.2f} for {light_dark} mode)')
|
||||
lightness = input('> ').strip().lower() or None
|
||||
|
||||
# Parse lightness
|
||||
if not lightness or lightness in ['unset', 'none']:
|
||||
lightness = None
|
||||
break
|
||||
|
||||
try:
|
||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
|
||||
assert 0 <= lightness <= 1
|
||||
break
|
||||
|
||||
except Exception:
|
||||
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
|
||||
|
||||
if lightness:
|
||||
_prs = _prs.set_light_dl(lightness, light_dark)
|
||||
title += f'\n&e4. Brightness: &r{f"{lightness:.2f}" if lightness else "unset"}'
|
||||
|
||||
#############################
|
||||
# 5. Color arrangement
|
||||
color_alignment = None
|
||||
fore_back = get_fore_back()
|
||||
|
||||
# Calculate amount of row/column that can be displayed on screen
|
||||
ascii_per_row = term_size()[0] // (asc_width + 2)
|
||||
ascii_rows = max(1, (term_size()[1] - 8) // asc_lines)
|
||||
|
||||
# Displays horizontal and vertical arrangements in the first iteration, but hide them in
|
||||
# later iterations
|
||||
hv_arrangements = [
|
||||
('Horizontal', ColorAlignment('horizontal', fore_back=fore_back)),
|
||||
('Vertical', ColorAlignment('vertical'))
|
||||
]
|
||||
arrangements = hv_arrangements.copy()
|
||||
|
||||
# Loop for random rolling
|
||||
while True:
|
||||
clear_screen(title)
|
||||
|
||||
# Random color schemes
|
||||
pis = list(range(len(_prs.unique_colors().colors)))
|
||||
slots = len(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
||||
while len(pis) < slots:
|
||||
pis += pis
|
||||
perm = {p[:slots] for p in permutations(pis)}
|
||||
random_count = ascii_per_row * ascii_rows - len(arrangements)
|
||||
if random_count > len(perm):
|
||||
choices = perm
|
||||
else:
|
||||
choices = random.sample(perm, random_count)
|
||||
choices = [{i + 1: n for i, n in enumerate(c)} for c in choices]
|
||||
arrangements += [(f'random{i}', ColorAlignment('custom', r)) for i, r in enumerate(choices)]
|
||||
asciis = [[*ca.recolor_ascii(asc, _prs).split('\n'), k.center(asc_width)] for k, ca in arrangements]
|
||||
|
||||
while asciis:
|
||||
current = asciis[:ascii_per_row]
|
||||
asciis = asciis[ascii_per_row:]
|
||||
|
||||
# Print by row
|
||||
[printc(' '.join(line)) for line in zip(*current)]
|
||||
print()
|
||||
|
||||
printc(f'&a5. Let\'s choose a color arrangement!')
|
||||
printc(f'You can choose standard horizontal or vertical alignment, or use one of the random color schemes.')
|
||||
print('You can type "roll" to randomize again.')
|
||||
print()
|
||||
choice = literal_input(f'Your choice?', ['horizontal', 'vertical', 'roll'] + [f'random{i}' for i in range(random_count)], 'horizontal')
|
||||
|
||||
if choice == 'roll':
|
||||
arrangements = []
|
||||
continue
|
||||
|
||||
# Save choice
|
||||
arrangement_index = {k.lower(): ca for k, ca in hv_arrangements + arrangements}
|
||||
if choice in arrangement_index:
|
||||
color_alignment = arrangement_index[choice]
|
||||
else:
|
||||
print('Invalid choice.')
|
||||
continue
|
||||
|
||||
break
|
||||
|
||||
title += f'\n&e5. Color Alignment: &r{color_alignment}'
|
||||
|
||||
# Create config
|
||||
c = Config(preset, color_system)
|
||||
clear_screen(title)
|
||||
c = Config(preset, color_system, light_dark, lightness, color_alignment)
|
||||
|
||||
# Save config
|
||||
print()
|
||||
save = literal_input(f'Save config?', ['y', 'n'], 'y')
|
||||
if save == 'y':
|
||||
c.save()
|
||||
@@ -131,8 +318,14 @@ def create_config() -> Config:
|
||||
|
||||
|
||||
def run():
|
||||
# Optional: Import readline
|
||||
try:
|
||||
import readline
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
|
||||
# Create CLI
|
||||
hyfetch = color('&b&lhy&f&lfetch&r')
|
||||
hyfetch = color('&b&lhyfetch&r')
|
||||
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'))
|
||||
|
||||
parser.add_argument('-c', '--config', action='store_true', help=color(f'Configure {hyfetch}'))
|
||||
@@ -140,9 +333,34 @@ def run():
|
||||
parser.add_argument('-m', '--mode', help=f'Color mode', choices=['8bit', 'rgb'])
|
||||
parser.add_argument('--c-scale', dest='scale', help=f'Lighten colors by a multiplier', type=float)
|
||||
parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float)
|
||||
parser.add_argument('-V', '--version', dest='version', action='store_true', help=f'Check version')
|
||||
parser.add_argument('--debug', action='store_true', help=f'Debug mode')
|
||||
parser.add_argument('--test-distro', help=f'Test for a specific distro')
|
||||
parser.add_argument('--test-print', action='store_true', help=f'Test print distro ascii art only')
|
||||
parser.add_argument('--ask-exit', action='store_true', help=f'Ask before exitting')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.version:
|
||||
print(f'Version is {VERSION}')
|
||||
return
|
||||
|
||||
# Ensure git bash for windows
|
||||
ensure_git_bash()
|
||||
check_windows_cmd()
|
||||
|
||||
# Test distro ascii art
|
||||
if args.test_distro:
|
||||
print(f'Setting distro to {args.test_distro}')
|
||||
GLOBAL_CFG.override_distro = args.test_distro
|
||||
|
||||
if args.debug:
|
||||
GLOBAL_CFG.debug = True
|
||||
|
||||
if args.test_print:
|
||||
print(get_distro_ascii())
|
||||
return
|
||||
|
||||
# Load config
|
||||
config = check_config()
|
||||
|
||||
@@ -156,13 +374,27 @@ def run():
|
||||
if args.mode:
|
||||
config.mode = args.mode
|
||||
|
||||
# Override global color mode
|
||||
GLOBAL_CFG.color_mode = config.mode
|
||||
GLOBAL_CFG.is_light = config.light_dark == 'light'
|
||||
|
||||
# Get preset
|
||||
preset = PRESETS.get(config.preset)
|
||||
|
||||
# Lighten
|
||||
if args.scale:
|
||||
preset = ColorProfile([c.lighten(args.scale) for c in preset.colors])
|
||||
preset = preset.lighten(args.scale)
|
||||
if args.light:
|
||||
preset = ColorProfile([c.set_light(args.light) for c in preset.colors])
|
||||
preset = preset.set_light_raw(args.light)
|
||||
if config.lightness:
|
||||
preset = preset.set_light_dl(config.lightness)
|
||||
|
||||
# Run
|
||||
run_neofetch(preset, config.mode)
|
||||
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...')
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
from typing_extensions import Literal
|
||||
|
||||
from .color_util import AnsiMode, LightDark
|
||||
from .constants import CONFIG_PATH
|
||||
from .neofetch_util import ColorAlignment
|
||||
from .serializer import json_stringify, from_dict
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
preset: str
|
||||
mode: AnsiMode
|
||||
light_dark: LightDark = 'dark'
|
||||
lightness: float | None = None
|
||||
color_align: ColorAlignment = ColorAlignment('horizontal')
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d: dict):
|
||||
d['color_align'] = ColorAlignment.from_dict(d['color_align'])
|
||||
return from_dict(cls, d)
|
||||
|
||||
def save(self):
|
||||
CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True)
|
||||
CONFIG_PATH.write_text(json_stringify(self), 'utf-8')
|
||||
+265
-17
@@ -1,15 +1,139 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import inspect
|
||||
import os
|
||||
import platform
|
||||
import re
|
||||
import shlex
|
||||
import subprocess
|
||||
import sys
|
||||
import zipfile
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from subprocess import check_output
|
||||
from tempfile import TemporaryDirectory
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
import pkg_resources
|
||||
from typing_extensions import Literal
|
||||
|
||||
from .color_util import AnsiMode
|
||||
from hyfetch.color_util import color
|
||||
from .constants import GLOBAL_CFG, MINGIT_URL
|
||||
from .presets import ColorProfile
|
||||
from .serializer import from_dict
|
||||
|
||||
RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}')
|
||||
|
||||
|
||||
def term_size() -> tuple[int, int]:
|
||||
"""
|
||||
Get terminal size
|
||||
:return:
|
||||
"""
|
||||
try:
|
||||
return os.get_terminal_size().columns, os.get_terminal_size().lines
|
||||
except Exception:
|
||||
return 100, 20
|
||||
|
||||
|
||||
def ascii_size(asc: str) -> tuple[int, int]:
|
||||
"""
|
||||
Get distro ascii width, height ignoring color code
|
||||
|
||||
:param asc: Distro ascii
|
||||
:return: Width, Height
|
||||
"""
|
||||
return max(len(line) for line in re.sub(RE_NEOFETCH_COLOR, '', asc).split('\n')), len(asc.split('\n'))
|
||||
|
||||
|
||||
def normalize_ascii(asc: str) -> str:
|
||||
"""
|
||||
Make sure every line are the same width
|
||||
"""
|
||||
w = ascii_size(asc)[0]
|
||||
return '\n'.join(line + ' ' * (w - ascii_size(line)[0]) for line in asc.split('\n'))
|
||||
|
||||
|
||||
def fill_starting(asc: str) -> str:
|
||||
"""
|
||||
Fill the missing starting placeholders.
|
||||
|
||||
E.g. "${c1}...\n..." -> "${c1}...\n${c1}..."
|
||||
"""
|
||||
new = []
|
||||
last = ''
|
||||
for line in asc.split('\n'):
|
||||
new.append(last + line)
|
||||
|
||||
# Line has color placeholders
|
||||
matches = RE_NEOFETCH_COLOR.findall(line)
|
||||
if len(matches) > 0:
|
||||
# Get the last placeholder for the next line
|
||||
last = matches[-1]
|
||||
|
||||
return '\n'.join(new)
|
||||
|
||||
|
||||
@dataclass
|
||||
class ColorAlignment:
|
||||
mode: Literal['horizontal', 'vertical', 'custom']
|
||||
|
||||
# custom_colors[ascii color index] = unique color index in preset
|
||||
custom_colors: dict[int, int] = ()
|
||||
|
||||
# Foreground/background ascii color index
|
||||
fore_back: tuple[int, int] = ()
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d: dict):
|
||||
return from_dict(cls, d)
|
||||
|
||||
def recolor_ascii(self, asc: str, preset: ColorProfile) -> str:
|
||||
"""
|
||||
Use the color alignment to recolor an ascii art
|
||||
|
||||
:return Colored ascii, Uncolored lines
|
||||
"""
|
||||
asc = fill_starting(asc)
|
||||
|
||||
if self.fore_back and self.mode in ['horizontal', 'vertical']:
|
||||
fore, back = self.fore_back
|
||||
|
||||
# Replace foreground colors
|
||||
asc = asc.replace(f'${{c{fore}}}', color('&0' if GLOBAL_CFG.is_light else '&f'))
|
||||
lines = asc.split('\n')
|
||||
|
||||
# Add new colors
|
||||
if self.mode == 'horizontal':
|
||||
colors = preset.with_length(len(lines))
|
||||
asc = '\n'.join([l.replace(f'${{c{back}}}', colors[i].to_ansi()) + color('&r') for i, l in enumerate(lines)])
|
||||
else:
|
||||
raise NotImplementedError()
|
||||
|
||||
# Remove existing colors
|
||||
asc = re.sub(RE_NEOFETCH_COLOR, '', asc)
|
||||
|
||||
elif self.mode in ['horizontal', 'vertical']:
|
||||
# Remove existing colors
|
||||
asc = re.sub(RE_NEOFETCH_COLOR, '', asc)
|
||||
lines = asc.split('\n')
|
||||
|
||||
# Add new colors
|
||||
if self.mode == 'horizontal':
|
||||
colors = preset.with_length(len(lines))
|
||||
asc = '\n'.join([colors[i].to_ansi() + l + color('&r') for i, l in enumerate(lines)])
|
||||
else:
|
||||
asc = '\n'.join(preset.color_text(line) + color('&r') for line in lines)
|
||||
|
||||
else:
|
||||
preset = preset.unique_colors()
|
||||
|
||||
# Apply colors
|
||||
color_map = {ai: preset.colors[pi].to_ansi() for ai, pi in self.custom_colors.items()}
|
||||
for ascii_i, c in color_map.items():
|
||||
asc = asc.replace(f'${{c{ascii_i}}}', c)
|
||||
|
||||
return asc
|
||||
|
||||
|
||||
def get_command_path() -> str:
|
||||
@@ -18,29 +142,127 @@ def get_command_path() -> str:
|
||||
|
||||
:return: Command path
|
||||
"""
|
||||
return pkg_resources.resource_filename(__name__, 'scripts/neofetch_mod.sh')
|
||||
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 get_distro_ascii() -> str:
|
||||
def ensure_git_bash() -> Path:
|
||||
"""
|
||||
Get the distro ascii
|
||||
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'{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:
|
||||
"""
|
||||
Get the distro ascii of the current distro. Or if distro is specified, get the specific distro's
|
||||
ascii art instead.
|
||||
|
||||
:return: Distro ascii
|
||||
"""
|
||||
return check_output([get_command_path(), "print_ascii"]).decode().strip()
|
||||
if not distro and GLOBAL_CFG.override_distro:
|
||||
distro = GLOBAL_CFG.override_distro
|
||||
if GLOBAL_CFG.debug:
|
||||
print(distro)
|
||||
print(GLOBAL_CFG)
|
||||
cmd = 'print_ascii'
|
||||
if distro:
|
||||
os.environ['CUSTOM_DISTRO'] = distro
|
||||
cmd = 'print_custom_ascii'
|
||||
|
||||
asc = run_command(cmd, True)
|
||||
|
||||
# Unescape backslashes here because backslashes are escaped in neofetch for printf
|
||||
asc = asc.replace('\\\\', '\\')
|
||||
|
||||
return normalize_ascii(asc)
|
||||
|
||||
|
||||
def run_neofetch(preset: ColorProfile, mode: AnsiMode):
|
||||
# Get existing ascii
|
||||
def get_distro_name():
|
||||
return run_command('ascii_distro_name', True)
|
||||
|
||||
|
||||
def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
||||
"""
|
||||
Run neofetch with colors
|
||||
|
||||
:param preset: Color palette
|
||||
:param alignment: Color alignment settings
|
||||
"""
|
||||
asc = get_distro_ascii()
|
||||
w, h = ascii_size(asc)
|
||||
asc = alignment.recolor_ascii(asc, preset)
|
||||
|
||||
# Remove existing colors
|
||||
asc = re.sub('\\${.*?}', '', asc)
|
||||
|
||||
# Add new colors
|
||||
lines = asc.split('\n')
|
||||
colors = preset.with_length(len(lines))
|
||||
asc = '\n'.join([colors[i].to_ansi(mode) + l for i, l in enumerate(lines)])
|
||||
# Escape backslashes here because backslashes are escaped in neofetch for printf
|
||||
asc = asc.replace('\\', '\\\\')
|
||||
|
||||
# Write temp file
|
||||
with TemporaryDirectory() as tmp_dir:
|
||||
@@ -49,6 +271,32 @@ def run_neofetch(preset: ColorProfile, mode: AnsiMode):
|
||||
path.write_text(asc)
|
||||
|
||||
# Call neofetch with the temp file
|
||||
os.environ['ascii_len'] = str(max(len(l) for l in lines))
|
||||
os.environ['ascii_lines'] = str(len(lines))
|
||||
os.system(get_command_path() + f' --ascii --source {path.absolute()} --ascii-colors')
|
||||
os.environ['ascii_len'] = str(w)
|
||||
os.environ['ascii_lines'] = str(h)
|
||||
|
||||
run_command(f'--ascii --source {path.absolute()} --ascii-colors')
|
||||
|
||||
|
||||
def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
"""
|
||||
Get recommended foreground-background configuration for distro, or None if the distro ascii is
|
||||
not suitable for fore-back configuration.
|
||||
|
||||
:return:
|
||||
"""
|
||||
if not distro and GLOBAL_CFG.override_distro:
|
||||
distro = GLOBAL_CFG.override_distro
|
||||
if not distro:
|
||||
distro = get_distro_name().lower()
|
||||
for k, v in fore_back.items():
|
||||
if distro.startswith(k.lower()):
|
||||
return v
|
||||
return None
|
||||
|
||||
|
||||
# Foreground-background recommendation
|
||||
fore_back = {
|
||||
'fedora': (2, 1),
|
||||
'ubuntu': (2, 1),
|
||||
}
|
||||
|
||||
|
||||
+257
-7
@@ -1,8 +1,20 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Iterable
|
||||
|
||||
from typing_extensions import Literal
|
||||
|
||||
from .color_util import RGB
|
||||
from .color_util import RGB, LightDark
|
||||
from .constants import GLOBAL_CFG
|
||||
|
||||
|
||||
def remove_duplicates(seq: Iterable) -> list:
|
||||
"""
|
||||
Remove duplicate items from a sequence while preserving the order
|
||||
"""
|
||||
seen = set()
|
||||
seen_add = seen.add
|
||||
return [x for x in seq if not (x in seen or seen_add(x))]
|
||||
|
||||
|
||||
class ColorProfile:
|
||||
@@ -17,7 +29,6 @@ class ColorProfile:
|
||||
else:
|
||||
self.colors = colors
|
||||
|
||||
|
||||
def with_weights(self, weights: list[int]) -> list[RGB]:
|
||||
"""
|
||||
Map colors based on weights
|
||||
@@ -76,11 +87,59 @@ class ColorProfile:
|
||||
result += '\033[0m'
|
||||
result += t
|
||||
else:
|
||||
result += colors[i].to_ansi_rgb(foreground) + t
|
||||
result += colors[i].to_ansi(foreground=foreground) + t
|
||||
|
||||
result += '\033[0m'
|
||||
return result
|
||||
|
||||
def lighten(self, multiplier: float) -> ColorProfile:
|
||||
"""
|
||||
Lighten the color profile by a multiplier
|
||||
|
||||
:param multiplier: Multiplier
|
||||
:return: Lightened color profile (original isn't modified)
|
||||
"""
|
||||
return ColorProfile([c.lighten(multiplier) for c in self.colors])
|
||||
|
||||
def set_light_raw(self, light: float, at_least: bool | None = None, at_most: bool | None = None) -> 'ColorProfile':
|
||||
"""
|
||||
Set HSL lightness value
|
||||
|
||||
:param light: Lightness value (0-1)
|
||||
:param at_least: Set the lightness to at least this value (no change if greater)
|
||||
:param at_most: Set the lightness to at most this value (no change if lesser)
|
||||
:return: New color profile (original isn't modified)
|
||||
"""
|
||||
return ColorProfile([c.set_light(light, at_least, at_most) for c in self.colors])
|
||||
|
||||
def set_light_dl(self, light: float, term: LightDark = GLOBAL_CFG.light_dark()):
|
||||
"""
|
||||
Set HSL lightness value with respect to dark/light terminals
|
||||
|
||||
:param light: Lightness value (0-1)
|
||||
:param term: Terminal color (can be "dark" or "light")
|
||||
:return: New color profile (original isn't modified)
|
||||
"""
|
||||
assert term.lower() in ['light', 'dark']
|
||||
at_least, at_most = (True, None) if term.lower() == 'dark' else (None, True)
|
||||
return self.set_light_raw(light, at_least, at_most)
|
||||
|
||||
def set_light_dl_def(self, term: LightDark | None = None):
|
||||
"""
|
||||
Set default lightness with respect to dark/light terminals
|
||||
|
||||
:param term: Terminal color (can be "dark" or "light")
|
||||
:return: New color profile (original isn't modified)
|
||||
"""
|
||||
return self.set_light_dl(GLOBAL_CFG.default_lightness(term), term)
|
||||
|
||||
def unique_colors(self) -> ColorProfile:
|
||||
"""
|
||||
Create another color profile with only the unique colors
|
||||
"""
|
||||
return ColorProfile(remove_duplicates(self.colors))
|
||||
|
||||
|
||||
PRESETS: dict[str, ColorProfile] = {
|
||||
'rainbow': ColorProfile([
|
||||
'#E50000',
|
||||
@@ -98,12 +157,14 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#F6AAB7',
|
||||
'#55CDFD'
|
||||
]),
|
||||
|
||||
'nonbinary': ColorProfile([
|
||||
'#FCF431',
|
||||
'#FCFCFC',
|
||||
'#9D59D2',
|
||||
'#282828'
|
||||
]),
|
||||
|
||||
'agender': ColorProfile([
|
||||
'#000000',
|
||||
'#BABABA',
|
||||
@@ -113,11 +174,13 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#BABABA',
|
||||
'#000000'
|
||||
]),
|
||||
|
||||
'queer': ColorProfile([
|
||||
'#B57FDD',
|
||||
'#FFFFFF',
|
||||
'#49821E'
|
||||
]),
|
||||
|
||||
'genderfluid': ColorProfile([
|
||||
'#FE76A2',
|
||||
'#FFFFFF',
|
||||
@@ -131,11 +194,37 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#9B4F96',
|
||||
'#0038A8'
|
||||
]),
|
||||
|
||||
'pansexual': ColorProfile([
|
||||
'#FF1C8D',
|
||||
'#FFD700',
|
||||
'#1AB3FF'
|
||||
]),
|
||||
|
||||
'polysexual': ColorProfile([
|
||||
'#F714BA',
|
||||
'#01D66A',
|
||||
'#1594F6',
|
||||
]),
|
||||
|
||||
# omnisexual sorced from https://www.flagcolorcodes.com/omnisexual
|
||||
'omnisexual': ColorProfile([
|
||||
'#FE9ACE',
|
||||
'#FF53BF',
|
||||
'#200044',
|
||||
'#6760FE',
|
||||
'#8EA6FF',
|
||||
]),
|
||||
|
||||
# gay men sourced from https://www.flagcolorcodes.com/gay-men
|
||||
'gay-men': ColorProfile([
|
||||
'#078D70',
|
||||
'#98E8C1',
|
||||
'#FFFFFF',
|
||||
'#7BADE2',
|
||||
'#3D1A78'
|
||||
]),
|
||||
|
||||
'lesbian': ColorProfile([
|
||||
'#D62800',
|
||||
'#FF9B56',
|
||||
@@ -143,12 +232,24 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#D462A6',
|
||||
'#A40062'
|
||||
]),
|
||||
|
||||
# abrosexual used colorpicker to source from
|
||||
# https://fyeahaltpride.tumblr.com/post/151704251345/could-you-guys-possibly-make-an-abrosexual-pride
|
||||
'abrosexual': ColorProfile([
|
||||
'#46D294',
|
||||
'#A3E9CA',
|
||||
'#FFFFFF',
|
||||
'#F78BB3',
|
||||
'#EE1766',
|
||||
]),
|
||||
|
||||
'asexual': ColorProfile([
|
||||
'#000000',
|
||||
'#A4A4A4',
|
||||
'#FFFFFF',
|
||||
'#810081'
|
||||
]),
|
||||
|
||||
'aromantic': ColorProfile([
|
||||
'#3BA740',
|
||||
'#A8D47A',
|
||||
@@ -156,6 +257,36 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#ABABAB',
|
||||
'#000000'
|
||||
]),
|
||||
|
||||
# aroace1 sourced from https://flag.library.lgbt/flags/aroace/
|
||||
'aroace1': ColorProfile([
|
||||
'#E28C00',
|
||||
'#ECCD00',
|
||||
'#FFFFFF',
|
||||
'#62AEDC',
|
||||
'#203856'
|
||||
]),
|
||||
|
||||
'aroace2': ColorProfile([
|
||||
'#000000',
|
||||
'#810081',
|
||||
'#A4A4A4',
|
||||
'#FFFFFF',
|
||||
'#A8D47A',
|
||||
'#3BA740'
|
||||
]),
|
||||
|
||||
'aroace3': ColorProfile([
|
||||
'#3BA740',
|
||||
'#A8D47A',
|
||||
'#FFFFFF',
|
||||
'#ABABAB',
|
||||
'#000000',
|
||||
'#A4A4A4',
|
||||
'#FFFFFF',
|
||||
'#810081'
|
||||
]),
|
||||
|
||||
# below sourced from https://www.flagcolorcodes.com/flags/pride
|
||||
# goto f"https://www.flagcolorcodes.com/{preset}" for info
|
||||
# todo: sane sorting
|
||||
@@ -163,6 +294,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#99D9EA',
|
||||
'#7F7F7F'
|
||||
]),
|
||||
|
||||
'intergender': ColorProfile([
|
||||
# todo: use weighted spacing
|
||||
'#900DC2',
|
||||
@@ -171,6 +303,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#900DC2',
|
||||
'#900DC2',
|
||||
]),
|
||||
|
||||
'greygender': ColorProfile([
|
||||
'#B3B3B3',
|
||||
'#B3B3B3',
|
||||
@@ -181,6 +314,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#535353',
|
||||
'#535353',
|
||||
]),
|
||||
|
||||
'akiosexual': ColorProfile([
|
||||
'#F9485E',
|
||||
'#FEA06A',
|
||||
@@ -188,6 +322,52 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#FFFFFF',
|
||||
'#000000',
|
||||
]),
|
||||
|
||||
# bigender sourced from https://www.flagcolorcodes.com/bigender
|
||||
'bigender': ColorProfile([
|
||||
'#C479A2',
|
||||
'#EDA5CD',
|
||||
'#D6C7E8',
|
||||
'#FFFFFF',
|
||||
'#D6C7E8',
|
||||
'#9AC7E8',
|
||||
'#6D82D1',
|
||||
]),
|
||||
|
||||
# demigender yellow sourced from https://lgbtqia.fandom.com/f/p/4400000000000041031
|
||||
# other colors sourced from demiboy and demigirl flags
|
||||
'demigender': ColorProfile([
|
||||
'#7F7F7F',
|
||||
'#C4C4C4',
|
||||
'#FBFF75',
|
||||
'#FFFFFF',
|
||||
'#FBFF75',
|
||||
'#C4C4C4',
|
||||
'#7F7F7F',
|
||||
]),
|
||||
|
||||
# demiboy sourced from https://www.flagcolorcodes.com/demiboy
|
||||
'demiboy': ColorProfile([
|
||||
'#7F7F7F',
|
||||
'#C4C4C4',
|
||||
'#9DD7EA',
|
||||
'#FFFFFF',
|
||||
'#9DD7EA',
|
||||
'#C4C4C4',
|
||||
'#7F7F7F',
|
||||
]),
|
||||
|
||||
# demigirl sourced from https://www.flagcolorcodes.com/demigirl
|
||||
'demigirl': ColorProfile([
|
||||
'#7F7F7F',
|
||||
'#C4C4C4',
|
||||
'#FDADC8',
|
||||
'#FFFFFF',
|
||||
'#FDADC8',
|
||||
'#C4C4C4',
|
||||
'#7F7F7F',
|
||||
]),
|
||||
|
||||
'transmasculine': ColorProfile([
|
||||
'#FF8ABD',
|
||||
'#CDF5FE',
|
||||
@@ -197,6 +377,30 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#CDF5FE',
|
||||
'#FF8ABD',
|
||||
]),
|
||||
|
||||
# transfeminine used colorpicker to source from https://www.deviantart.com/pride-flags/art/Trans-Woman-Transfeminine-1-543925985
|
||||
# linked from https://gender.fandom.com/wiki/Transfeminine
|
||||
'transfeminine': ColorProfile([
|
||||
'#73DEFF',
|
||||
'#FFE2EE',
|
||||
'#FFB5D6',
|
||||
'#FF8DC0',
|
||||
'#FFB5D6',
|
||||
'#FFE2EE',
|
||||
'#73DEFF',
|
||||
]),
|
||||
|
||||
# genderfaun sourced from https://www.flagcolorcodes.com/genderfaun
|
||||
'genderfaun': ColorProfile([
|
||||
'#FCD689',
|
||||
'#FFF09B',
|
||||
'#FAF9CD',
|
||||
'#FFFFFF',
|
||||
'#8EDED9',
|
||||
'#8CACDE',
|
||||
'#9782EC',
|
||||
]),
|
||||
|
||||
'demifaun': ColorProfile([
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
@@ -212,25 +416,57 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
]),
|
||||
|
||||
# genderfae sourced from https://www.flagcolorcodes.com/genderfae
|
||||
'genderfae': ColorProfile([
|
||||
'#97C3A5',
|
||||
'#C3DEAE',
|
||||
'#F9FACD',
|
||||
'#FFFFFF',
|
||||
'#FCA2C4',
|
||||
'#DB8AE4',
|
||||
'#A97EDD',
|
||||
]),
|
||||
|
||||
# demifae used colorpicker to source form https://www.deviantart.com/pride-flags/art/Demifae-870194777
|
||||
'demifae': ColorProfile([
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
'#C5C5C5',
|
||||
'#C5C5C5',
|
||||
'#97C3A4',
|
||||
'#C4DEAE',
|
||||
'#FFFFFF',
|
||||
'#FCA2C5',
|
||||
'#AB7EDF',
|
||||
'#C5C5C5',
|
||||
'#C5C5C5',
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
]),
|
||||
|
||||
'neutrois': ColorProfile([
|
||||
'#FFFFFF',
|
||||
'#1F9F00',
|
||||
'#000000'
|
||||
]),
|
||||
'biromantic alt 2': ColorProfile([
|
||||
|
||||
'biromantic1': ColorProfile([
|
||||
'#8869A5',
|
||||
'#D8A7D8',
|
||||
'#FFFFFF',
|
||||
'#FDB18D',
|
||||
'#151638',
|
||||
]),
|
||||
'biromantic alt 2': ColorProfile([
|
||||
|
||||
'biromantic2': ColorProfile([
|
||||
'#740194',
|
||||
'#AEB1AA',
|
||||
'#FFFFFF',
|
||||
'#AEB1AA',
|
||||
'#740194',
|
||||
]),
|
||||
|
||||
'autoromantic': ColorProfile([ # symbol interpreted
|
||||
'#99D9EA',
|
||||
'#99D9EA',
|
||||
@@ -247,8 +483,9 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
]),
|
||||
|
||||
# i didn't expect this one to work. cool!
|
||||
'boyflux alt 2': ColorProfile([
|
||||
'boyflux2': ColorProfile([
|
||||
'#E48AE4',
|
||||
'#9A81B4',
|
||||
'#55BFAB',
|
||||
@@ -281,5 +518,18 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#5276D4',
|
||||
]),
|
||||
|
||||
|
||||
'beiyang': ColorProfile([
|
||||
'#DF1B12',
|
||||
'#FFC600',
|
||||
'#01639D',
|
||||
'#FFFFFF',
|
||||
'#000000',
|
||||
]),
|
||||
"finsexual": ColorProfile([
|
||||
"#B18EDF",
|
||||
"#D7B1E2",
|
||||
"#F7CDE9",
|
||||
"#F39FCE",
|
||||
"#EA7BB3",
|
||||
]),
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import dataclasses
|
||||
import inspect
|
||||
import json
|
||||
from datetime import datetime, date
|
||||
|
||||
|
||||
class EnhancedJSONEncoder(json.JSONEncoder):
|
||||
"""
|
||||
An improvement to the json.JSONEncoder class, which supports:
|
||||
encoding for dataclasses, encoding for datetime, and sets
|
||||
"""
|
||||
|
||||
def default(self, o: object) -> object:
|
||||
|
||||
# Support encoding dataclasses
|
||||
# https://stackoverflow.com/a/51286749/7346633
|
||||
if dataclasses.is_dataclass(o):
|
||||
return dataclasses.asdict(o)
|
||||
|
||||
# Support encoding datetime
|
||||
if isinstance(o, (datetime, date)):
|
||||
return o.isoformat()
|
||||
|
||||
# Support for sets
|
||||
# https://stackoverflow.com/a/8230505/7346633
|
||||
if isinstance(o, set):
|
||||
return list(o)
|
||||
|
||||
return super().default(o)
|
||||
|
||||
|
||||
def json_stringify(obj: object, indent: int | None = None) -> str:
|
||||
"""
|
||||
Serialize json string with support for dataclasses and datetime and sets and with custom
|
||||
configuration.
|
||||
Preconditions:
|
||||
- obj != None
|
||||
:param obj: Objects
|
||||
:param indent: Indent size or none
|
||||
:return: Json strings
|
||||
"""
|
||||
return json.dumps(obj, indent=indent, cls=EnhancedJSONEncoder, ensure_ascii=False)
|
||||
|
||||
|
||||
def from_dict(cls, d: dict):
|
||||
return cls(**{k: v for k, v in d.items() if k in inspect.signature(cls).parameters})
|
||||
+63
-48
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3.
|
||||
.TH NEOFETCH "1" "April 2021" "Neofetch 7.1.0" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH NEOFETCH "1" "September 2022" "Neofetch 7.3.1" "User Commands"
|
||||
.SH NAME
|
||||
Neofetch \- A fast, highly customizable system info script
|
||||
Neofetch \- manual page for Neofetch 7.3.1
|
||||
.SH SYNOPSIS
|
||||
.B neofetch
|
||||
\fI\,func_name --option "value" --option "value"\/\fR
|
||||
@@ -44,7 +44,7 @@ NOTE: You can supply multiple args. eg. 'neofetch \fB\-\-disable\fR cpu gpu'
|
||||
Hide/Show Fully Qualified Domain Name in title.
|
||||
.TP
|
||||
\fB\-\-package_managers\fR on/off
|
||||
Hide/Show Package Manager names . (on, tiny, off)
|
||||
Hide/Show Package Manager names. (on, tiny, off)
|
||||
.TP
|
||||
\fB\-\-os_arch\fR on/off
|
||||
Hide/Show OS architecture.
|
||||
@@ -301,52 +301,55 @@ Colors to print the ascii art
|
||||
\fB\-\-ascii_distro\fR distro
|
||||
Which Distro's ascii art to print
|
||||
.TP
|
||||
NOTE: AIX, Hash, Alpine, AlterLinux, Amazon, Anarchy, Android, instantOS,
|
||||
Antergos, antiX, "AOSC OS", "AOSC OS/Retro", Apricity, ArchCraft,
|
||||
ArcoLinux, ArchBox, ARCHlabs, ArchStrike, XFerience, ArchMerge, Arch,
|
||||
Artix, Arya, Bedrock, Bitrig, BlackArch, BLAG, BlankOn, BlueLight,
|
||||
bonsai, BSD, BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
|
||||
Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, Condres,
|
||||
Container_Linux, CRUX, Cucumber, dahlia, Debian, Deepin, DesaOS,
|
||||
Devuan, DracOS, DarkOs, Itc, DragonFly, Drauger, Elementary,
|
||||
EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
|
||||
FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
|
||||
gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, HydroOS,
|
||||
Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, Korora,
|
||||
KSLinux, Kubuntu, LEDE, LaxerOS, LibreELEC, LFS, Linux_Lite, LMDE,
|
||||
Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, Manjaro, TeArch, Maui,
|
||||
Mer, Minix, LinuxMint, Live_Raizo, MX_Linux, Namib, Neptune, NetBSD,
|
||||
Netrunner, Nitrux, NixOS, Nurunner, NuTyX, OBRevenge, OpenBSD,
|
||||
openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, OpenWrt,
|
||||
osmc, Oracle, OS Elbrus, PacBSD, Parabola, Pardus, Parrot, Parsix,
|
||||
TrueOS, PCLinuxOS, Pengwin, Peppermint, Pisi, popos, Porteus, PostMarketOS,
|
||||
Proxmox, Puppy, PureOS, Qubes, Quibian, Radix, Raspbian, Reborn_OS,
|
||||
Redstar, Redcore, Redhat, Refracted_Devuan, Regata, Regolith, Rosa,
|
||||
sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
|
||||
SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, SmartOS,
|
||||
Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
|
||||
t2, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
|
||||
Ubuntu\-Cinnamon, Ubuntu\-Budgie, Ubuntu\-GNOME, Ubuntu\-MATE,
|
||||
Ubuntu\-Studio, Ubuntu, Univention, Venom, Void, VNux, semc, Obarun,
|
||||
windows10, Windows7, Xubuntu, Zorin, and IRIX have ascii logos.
|
||||
.IP
|
||||
NOTE: Arch, Ubuntu, Redhat, Fedora and Dragonfly have 'old' logo variants.
|
||||
.IP
|
||||
NOTE: Use '{distro name}_old' to use the old logos.
|
||||
.IP
|
||||
NOTE: Ubuntu has flavor variants.
|
||||
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
||||
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
||||
Apricity, Arch, ArchBox, Archcraft, ARCHlabs, ArchMerge, ArchStrike,
|
||||
ArcoLinux, Artix, Arya, Asahi, AsteroidOS, astOS, Bedrock, BigLinux,
|
||||
Bitrig, BlackArch, blackPanther, BLAG, BlankOn, BlueLight, Bodhi,
|
||||
bonsai, BSD, BunsenLabs, Cachy OS, Calculate, CalinixOS, Carbs, CBLMariner, CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau,
|
||||
ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover,
|
||||
Condres, Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
||||
CutefishOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS,
|
||||
Devuan, DracOS, DragonFly, Drauger, Elementary, Elive, EncryptOS,
|
||||
EndeavourOS, Endless, EuroLinux, Exherbo, Exodia Predator OS,
|
||||
Fedora, Feren, Finnix, FreeBSD, FreeMiNT, Frugalware, Funtoo,
|
||||
GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU,
|
||||
GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HarDClanZ, Hash,
|
||||
Huayra, HydroOS, Hyperbola, iglunix, instantOS, IRIX, Itc,
|
||||
januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora,
|
||||
KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC,
|
||||
Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old, Live Raizo,
|
||||
LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS, Mandriva, Manjaro,
|
||||
MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX, Namib,
|
||||
Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD, Nurunner,
|
||||
NuTyX, Obarun, OBRevenge, Open Source Media Center, OpenBSD,
|
||||
openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage,
|
||||
openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt, OPNsense,
|
||||
Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch, Pardus, Parrot,
|
||||
Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Pisi,
|
||||
PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX,
|
||||
Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix,
|
||||
Raspbian, ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted
|
||||
Devuan, Regata, Regolith, rocky, Rosa, Sabayon, sabotage, Sailfish,
|
||||
SalentOS, Scientific, semc, Septor, Serene, SharkLinux, ShastraOS,
|
||||
Siduction, SkiffOS, Slackware, SliTaz, SmartOS, Soda, Solus, Source
|
||||
Mage, Sparky, Star, SteamOS, Sulin, SunOS, SwagArch, t2, Tails,
|
||||
TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie,
|
||||
Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu
|
||||
Sway, Ubuntu Touch, Ubuntu\-GNOME, ubuntu_old02, Ultramarine Linux,
|
||||
Univalent, Univention, Uos, uwuntu, Venom, VNux, Void, VzLinux, wiilinux\-ngx, Windows, Windows 10, Windows 11, XFerience, Xubuntu,
|
||||
yiffOS, Zorin have ascii logos.
|
||||
.TP
|
||||
NOTE: Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu\-GNOME,
|
||||
Ubuntu\-Studio, Ubuntu\-Mate or Ubuntu\-Budgie to use the flavors.
|
||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||
have 'old' logo variants, use {distro}_old to use them.
|
||||
.TP
|
||||
NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
|
||||
CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
|
||||
Artix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
|
||||
Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
|
||||
Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
|
||||
postmarketOS, and Void have a smaller logo variant.
|
||||
.IP
|
||||
NOTE: Use '{distro name}_small' to use the small variants.
|
||||
NOTE: alpine, android, aoscosretro, arch, arcolinux, artix,
|
||||
CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
||||
fedora, freebsd, gentoo, guix, haiku, hyperbola, linuxlite,
|
||||
linuxmint, mac, mageia, manjaro, mx, netbsd, nixos, openbsd,
|
||||
opensuse, orchid, parabola, popos, postmarketos, pureos, Raspbian,
|
||||
rocky, slackware, sunos, ubuntu, void have 'small' logo variants,
|
||||
use {distro}_small to use them.
|
||||
.TP
|
||||
\fB\-\-ascii_bold\fR on/off
|
||||
Whether or not to bold the ascii logo.
|
||||
@@ -429,3 +432,15 @@ Display a verbose log for error reporting.
|
||||
Generate a manpage for Neofetch in your PWD. (Requires GNU help2man)
|
||||
.SH "REPORTING BUGS"
|
||||
Report bugs to https://github.com/dylanaraps/neofetch/issues
|
||||
.SH "SEE ALSO"
|
||||
The full documentation for
|
||||
.B Neofetch
|
||||
is maintained as a Texinfo manual. If the
|
||||
.B info
|
||||
and
|
||||
.B Neofetch
|
||||
programs are properly installed at your site, the command
|
||||
.IP
|
||||
.B info Neofetch
|
||||
.PP
|
||||
should give you access to the complete manual.
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "neowofetch",
|
||||
"version": "1.4.1",
|
||||
"description": "Updated neofetch",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/hykilpikonna/neofetch.git"
|
||||
},
|
||||
"bin": {
|
||||
"neowofetch": "neofetch"
|
||||
},
|
||||
"keywords": [
|
||||
"neofetch",
|
||||
"screenfetch"
|
||||
],
|
||||
"author": "dylanaraps",
|
||||
"contributors": [
|
||||
"Azalea Gui <me@hydev.org> (https://github.com/hykilpikonna)"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/hykilpikonna/neofetch/issues"
|
||||
},
|
||||
"homepage": "https://github.com/hykilpikonna/neofetch#readme"
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import hyfetch
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
import pathlib
|
||||
|
||||
from setuptools import setup
|
||||
@@ -8,7 +9,7 @@ import hyfetch
|
||||
HERE = pathlib.Path(__file__).parent
|
||||
|
||||
# The text of the README file
|
||||
README = (HERE / "README.md").read_text()
|
||||
README = (HERE / "README.md").read_text('utf-8')
|
||||
|
||||
# This call to setup() does all the work
|
||||
setup(
|
||||
@@ -32,10 +33,17 @@ setup(
|
||||
packages=['hyfetch'],
|
||||
package_data={'hyfetch': ['hyfetch/*']},
|
||||
include_package_data=True,
|
||||
install_requires=['setuptools', 'hypy_utils>=1.0.6', 'typing_extensions'],
|
||||
install_requires=[
|
||||
# Universal dependencies
|
||||
'setuptools', 'typing_extensions',
|
||||
|
||||
# Windows dependencies
|
||||
'psutil ; platform_system=="Windows"',
|
||||
],
|
||||
entry_points={
|
||||
"console_scripts": [
|
||||
"hyfetch=hyfetch.main:run",
|
||||
]
|
||||
},
|
||||
scripts=['hyfetch/scripts/neowofetch']
|
||||
)
|
||||
|
||||
Executable
+102
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import os
|
||||
import shlex
|
||||
from subprocess import check_output
|
||||
|
||||
import pyperclip
|
||||
import requests
|
||||
from github import Github
|
||||
|
||||
upstream = 'dylanaraps/neofetch'
|
||||
my_fork = 'hykilpikonna/hyfetch'
|
||||
my_base = 'master'
|
||||
|
||||
http = requests.Session()
|
||||
if 'GH_TOKEN' in os.environ:
|
||||
print('Token loaded')
|
||||
http.headers['Authorization'] = f'token {os.environ["GH_TOKEN"]}'
|
||||
|
||||
|
||||
def copy_comment():
|
||||
# Get commit SHA
|
||||
sha = check_output(shlex.split('git rev-parse --short HEAD')).decode().strip()
|
||||
|
||||
# Copy comment to clipboard
|
||||
comment = f"""
|
||||
Thank you for your contribution!
|
||||
|
||||
This PR is [merged into hyfetch](https://github.com/hykilpikonna/hyfetch/commit/{sha}) since this repo (dylanaraps/neofetch) seems no longer maintained.
|
||||
|
||||
[HyFetch](https://github.com/hykilpikonna/hyfetch) is a fork of neofetch with LGBTQ pride flags, but the repo also maintains an updated version of the original neofetch, addressing many pull requests that are not merged in the original repo.
|
||||
|
||||
Read the ["Running Updated Original Neofetch" section](https://github.com/hykilpikonna/hyfetch#running-updated-original-neofetch) for more info!
|
||||
"""
|
||||
pyperclip.copy(comment.strip())
|
||||
print()
|
||||
print('Done!')
|
||||
print('Comment response copied to clipboard.')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='Helper for accepting upstream pull requests')
|
||||
parser.add_argument('pull', type=int, help='Pull request number')
|
||||
args = parser.parse_args()
|
||||
pr = args.pull
|
||||
|
||||
print(f'Accepting pull request {pr}...')
|
||||
|
||||
# Fetch original pr's information
|
||||
info = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json()
|
||||
user = info['user']['login']
|
||||
|
||||
# Fetch commit information
|
||||
commits = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
||||
author = commits[0]['commit']['author']
|
||||
|
||||
# Create commit message
|
||||
title = info["title"].replace('"', '\\"')
|
||||
msg = (f'-m "[PR] {upstream}#{pr} from {user} - {title}" '
|
||||
f'-m "Upstream PR: https://github.com/{upstream}/pull/{pr} \n'
|
||||
f'Thanks to @{user}\n\n'
|
||||
f'Co-authored-by: {author["name"]} <{author["email"]}>"')
|
||||
|
||||
# head could be null, if the pr repo is deleted
|
||||
if info['head'] is None or info['head']['repo'] is None:
|
||||
print(f'Original repo is deleted. Please manually merge.')
|
||||
input('Press any key to continue when the changes are made...')
|
||||
|
||||
# Commit with merge
|
||||
print()
|
||||
print('Committing merge...')
|
||||
os.system(f'git commit -a {msg}')
|
||||
|
||||
# Automatically merge
|
||||
else:
|
||||
head = info['head']['repo']['full_name']
|
||||
head_br = info['head']['ref']
|
||||
head_lbl = info['head']['label']
|
||||
print()
|
||||
print('Original Pull Request Info:')
|
||||
print('> State:', info['state'])
|
||||
print('> Title:', info['title'])
|
||||
print('> User:', user)
|
||||
print('> Created:', info['created_at'])
|
||||
print('> Head:', head, head_br, head_lbl)
|
||||
|
||||
# Fetch head branch
|
||||
print()
|
||||
print('Fetching head branch...')
|
||||
os.system(f'git fetch https://github.com/{head} {head_br}')
|
||||
|
||||
# Merge head branch
|
||||
print()
|
||||
print('Merging fetch_head...')
|
||||
os.system(f'git merge FETCH_HEAD --no-ff --no-edit {msg}')
|
||||
|
||||
# Push
|
||||
print()
|
||||
print('Pushing...')
|
||||
os.system('git push')
|
||||
|
||||
copy_comment()
|
||||
Regular → Executable
+3
-4
@@ -1,6 +1,5 @@
|
||||
from hypy_utils import printc
|
||||
|
||||
from hyfetch.color_util import RGB
|
||||
from hyfetch.color_scale import test_color_scale
|
||||
from hyfetch.color_util import RGB, printc
|
||||
from hyfetch.neofetch_util import get_command_path, run_neofetch
|
||||
from hyfetch.presets import PRESETS
|
||||
|
||||
@@ -35,6 +34,6 @@ def test_rgb_8bit_conversion():
|
||||
print()
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_rgb_8bit_conversion()
|
||||
test_color_scale()
|
||||
Executable
+155
@@ -0,0 +1,155 @@
|
||||
#!/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'])
|
||||
|
||||
|
||||
def deploy():
|
||||
"""
|
||||
Deploy release to pip and npm
|
||||
"""
|
||||
print('Deploying to pypi...')
|
||||
subprocess.check_call(['bash', './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
|
||||
""")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user