Compare commits
517 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cf56c60006 | |||
| a6225d698f | |||
| d5621877d5 | |||
| d5b93829fc | |||
| f3fc92dc7d | |||
| 36fc38c7a9 | |||
| 6af128fb05 | |||
| 8b3e4bba76 | |||
| 1211dc6978 | |||
| d0f911922a | |||
| c68dd7fe5b | |||
| 49b26dc7ea | |||
| f815d2bdd6 | |||
| b0b8c51d35 | |||
| 87e6092446 | |||
| fb52256729 | |||
| 5e11110c66 | |||
| a8b94f9187 | |||
| 3754aada04 | |||
| f94e788547 | |||
| a5f648a3fa | |||
| e184ed613a | |||
| f4d6b75f56 | |||
| 865850da59 | |||
| 54e0f55a08 | |||
| c969ce3a21 | |||
| afc646c679 | |||
| 6ac7f70c51 | |||
| c1fbd137a0 | |||
| 6f913b6d4a | |||
| 1077ee5142 | |||
| cec24f6bd0 | |||
| 9636c980e7 | |||
| 3866ad0249 | |||
| 1e67d65cec | |||
| a65a229b0e | |||
| 5c0662142e | |||
| 88d835f511 | |||
| ce358fc155 | |||
| d5b283e64d | |||
| a609edc505 | |||
| 753d35b56e | |||
| d309f2d8a8 | |||
| e59a0556ed | |||
| afa18885ee | |||
| 69f07aec8f | |||
| 95a6cc7f4b | |||
| 896ba8fc7d | |||
| 319afd2aa9 | |||
| 3df77e0042 | |||
| 729e81a3e2 | |||
| 3dafba3554 | |||
| 36d87c2c35 | |||
| 0f744ff815 | |||
| 0dea6eb11b | |||
| 05685de193 | |||
| 03a6802b8f | |||
| d6341d241a | |||
| 32dd56dc63 | |||
| 6732945af8 | |||
| bb6b9b1d37 | |||
| e46e78ecd5 | |||
| bbe40930c2 | |||
| 279311fea0 | |||
| 6564ca72c2 | |||
| 45347e0714 | |||
| 5b759e0986 | |||
| b5588d8259 | |||
| 3e4e679b11 | |||
| b7f2992ecd | |||
| 1f1362a0b5 | |||
| 2a01c50aa6 | |||
| 7f18d0e042 | |||
| 2307f9de20 | |||
| c185f018a4 | |||
| 9b159c7472 | |||
| ca77102be1 | |||
| 5ee89eb148 | |||
| ced109f0ea | |||
| 5051b692f0 | |||
| 07e23e2a5b | |||
| 270334a385 | |||
| df7884c2ac | |||
| a8f02e94b6 | |||
| 881833d3c9 | |||
| 207c608cd6 | |||
| ccab992c7b | |||
| e385eef74a | |||
| 820b78fb3b | |||
| 09c823d8c8 | |||
| aef326ae07 | |||
| 1139abd9c6 | |||
| 4517efc07e | |||
| 3b5b3a556b | |||
| 7534371b05 | |||
| fc98d61109 | |||
| 359226c26b | |||
| 109d7d2f01 | |||
| 33fd55e6ad | |||
| e08e864be0 | |||
| 07da5d5f4b | |||
| c2a26cf0ae | |||
| 1c1483822c | |||
| 46d38d4851 | |||
| a8c2cfb921 | |||
| d8affa54cd | |||
| 4707704330 | |||
| 882dafd11b | |||
| 9a867c6819 | |||
| bfeca1535b | |||
| b2afcb8a64 | |||
| 6e7ac1839d | |||
| 515afa90c3 | |||
| 1a3e6a8e29 | |||
| cff0fdf6d8 | |||
| 896658d5e1 | |||
| cdc0071e28 | |||
| 4ed4f19196 | |||
| 38b8173be4 | |||
| d70baebbf0 | |||
| a2abe13b86 | |||
| cd6f74931c | |||
| 1b1c90ec44 | |||
| d942de0b88 | |||
| d41a302e44 | |||
| 566011efff | |||
| 96ba35b0bf | |||
| 4c06a53c68 | |||
| 30d1e67b53 | |||
| 22c8d76193 | |||
| 36cdc6da2a | |||
| 293889b9ad | |||
| e21f9bef26 | |||
| bbe141557e | |||
| f06c3fda31 | |||
| dbe67789d8 | |||
| 6a1ba72df9 | |||
| 413a7d3681 | |||
| 18107d9601 | |||
| 5ded23e8dd | |||
| 09506aaa3c | |||
| 770ffb01a5 | |||
| 41d767fa4e | |||
| e5169705b3 | |||
| 73bb634326 | |||
| 8eadfec466 | |||
| 6816679ad9 | |||
| 2a87f1d3b4 | |||
| 6dec8c4a58 | |||
| e466389ae9 | |||
| bb5f45a71c | |||
| 3a415600d5 | |||
| 5bafa5128b | |||
| 51f0ebf3ea | |||
| c7d6c753d9 | |||
| d8bb0097c1 | |||
| 9292a602df | |||
| dbe657a05f | |||
| bb156173b5 | |||
| 9cebc9df35 | |||
| 25a64b6ce3 | |||
| 5c34876c53 | |||
| 1e30a7701f | |||
| 1c9480b764 | |||
| a385480d89 | |||
| 81f4dc90e8 | |||
| 2b6d17c559 | |||
| 6f9155fe83 | |||
| f32df6e6d0 | |||
| ece02c5d44 | |||
| d47a63d237 | |||
| be8f75df01 | |||
| bd9c0b30cf | |||
| b835eea039 | |||
| 01a01fb21b | |||
| 1bcf46aa42 | |||
| 811ec5d2d2 | |||
| dc359abe45 | |||
| be05f6984d | |||
| e6d94bf20d | |||
| f9a43fba5f | |||
| bc8499e2fb | |||
| 3ba7830824 | |||
| d914d3ea2b | |||
| 7eb4102417 | |||
| 7da1531d34 | |||
| b283b0d11d | |||
| b8115e97ae | |||
| 7c41025c55 | |||
| 98d3d9f629 | |||
| d374354cb6 | |||
| eeffb35944 | |||
| 048e2d93fd | |||
| b9db6d2cc5 | |||
| d5e3b07c1c | |||
| fd5ff6a821 | |||
| a33f85d45a | |||
| 1b89fc9531 | |||
| 2aa368ee9e | |||
| 3d6be24e9f | |||
| f2ed3e7155 | |||
| 98efa7a44d | |||
| 25ec6bbac5 | |||
| eef4153c5b | |||
| 17e02a384f | |||
| e50ec9e366 | |||
| 057f075a0e | |||
| a410eb0646 | |||
| 56796a331f | |||
| 2c33e7e37d | |||
| 8edddeaf8b | |||
| caa1547e8c | |||
| 807eed022d | |||
| b69c400fa4 | |||
| 5f266a3f16 | |||
| b740ddc3e5 | |||
| dfc3f59323 | |||
| 0c1ac93a4d | |||
| f449cfadc3 | |||
| bdb222f9f8 | |||
| 985f32e5a6 | |||
| da48f1d32c | |||
| 98a3befd4b | |||
| 09c62956a3 | |||
| 9945075de5 | |||
| 5f079cec46 | |||
| 97a31aba52 | |||
| 76f3ce2608 | |||
| 3a5ce4eb58 | |||
| 44c9a5491b | |||
| 2cbd8e440d | |||
| 4516747954 | |||
| 813b6f7173 | |||
| 937e5041c4 | |||
| f59f6f55d2 | |||
| 2ce3bb6a11 | |||
| a2fb43bfca | |||
| 9a5d8fb971 | |||
| 8ee497ad97 | |||
| 5072baf1cf | |||
| b407bc0ea4 | |||
| 78bcf1e5cc | |||
| e080924040 | |||
| c2f69d64f4 | |||
| 620bc2ca88 | |||
| ea61ca96b7 | |||
| 979e3950e9 | |||
| ce1423bfbd | |||
| f66b128caf | |||
| e63e2693c2 | |||
| 5e109afceb | |||
| 524baf9cf7 | |||
| deac271585 | |||
| b027dc4cb5 | |||
| 5b93e00b63 | |||
| d7e9ee8499 | |||
| 48da56a78e | |||
| a1e42b4f89 | |||
| 0f62374205 | |||
| 953001537f | |||
| 05bdef915a | |||
| 91ced42151 | |||
| 5d076fcea6 | |||
| ec8693322a | |||
| a6e184bd4a | |||
| d16806cb16 | |||
| bfcd8b1f67 | |||
| 81cdaa980c | |||
| 2af4aa9adc | |||
| ae4e484d65 | |||
| 1e736ae011 | |||
| f316b2b5cb | |||
| b87bb47502 | |||
| 797199dd05 | |||
| 42a275b27b | |||
| d267aaa90c | |||
| f06dea80fc | |||
| 1114fe53d4 | |||
| a214e65b08 | |||
| b24f6663ba | |||
| d91db75b4a | |||
| 294805f045 | |||
| 47dea65fa8 | |||
| 8e367e41a4 | |||
| 81134bbb34 | |||
| 0729e40e00 | |||
| 598731bf89 | |||
| afcf53f01f | |||
| c505323826 | |||
| 10b227a780 | |||
| a9d76846a9 | |||
| 73d305ac69 | |||
| d3577a8878 | |||
| 5519dd16a0 | |||
| 20e93689b6 | |||
| fca42c0390 | |||
| ce9c4aa432 | |||
| 3ebfcfd474 | |||
| d7c3475726 | |||
| 8d0393d654 | |||
| 54d82ff557 | |||
| fd96030436 | |||
| b1df896e44 | |||
| 4a053f942c | |||
| 025dff4c30 | |||
| c33c897724 | |||
| ff8f9b2879 | |||
| 6b84920587 | |||
| a5f2653675 | |||
| 5f527960e9 | |||
| d312ca97cc | |||
| c77a05809e | |||
| 74d1bb5622 | |||
| d9d9998d99 | |||
| a8f26f9e36 | |||
| 1e8fade4be | |||
| ace0245097 | |||
| 5122d08ff6 | |||
| 179fa567a3 | |||
| 1acfe273e8 | |||
| 1ff772a01b | |||
| 8182224dc7 | |||
| 57a28da23b | |||
| 4536dafa09 | |||
| c8185944dc | |||
| 4a90533097 | |||
| b353cb7247 | |||
| 4d9bbbae9c | |||
| edf2a697d9 | |||
| c7a516247a | |||
| 29cbbae974 | |||
| 98863df16d | |||
| 922a91ebb1 | |||
| e7938ea4c3 | |||
| 7491081946 | |||
| 14bde2e49b | |||
| 242eae6de0 | |||
| 53bbd3fdf8 | |||
| 5c785f0819 | |||
| 75750f12a5 | |||
| 73b39252df | |||
| b313d39366 | |||
| 116c83b513 | |||
| e33ccd3484 | |||
| 1e68f174cd | |||
| d164d4c8f6 | |||
| 445f97093a | |||
| e81f2aa6d7 | |||
| 53dec09f88 | |||
| 3d7dfc0220 | |||
| 62710fa00e | |||
| 63f37d28e3 | |||
| 8c4cbf656f | |||
| 526c97fde6 | |||
| 391ff75cd1 | |||
| df0c2be57a | |||
| 59ef6434d7 | |||
| 01821a8d7a | |||
| 65d82be06e | |||
| b5e9edfae7 | |||
| 98feca03f9 | |||
| 6167ba885b | |||
| ce2a49e9a0 | |||
| d025ece2c3 | |||
| c547ccb3c3 | |||
| 6251cb5e43 | |||
| ea42a29bbd | |||
| 0305e269e0 | |||
| cf17522d50 | |||
| 1bf2281912 | |||
| 4d39bd750f | |||
| 6db170e825 | |||
| 25df70367a | |||
| a9602f5619 | |||
| 2f69013177 | |||
| 434f5aeda8 | |||
| 988ca7993e | |||
| 1efafdfb81 | |||
| 75fd94fa61 | |||
| 08029959f3 | |||
| 9c59dc2791 | |||
| e9ae4dbb6f | |||
| 26453ea3d7 | |||
| 0385fd836d | |||
| cec8152f3d | |||
| 407387eb0b | |||
| 484f13fa39 | |||
| cf83073200 | |||
| 8e63a77335 | |||
| 05c60fddfd | |||
| 04a6744e6d | |||
| 68cf96e24a | |||
| 576facfd69 | |||
| bec385d02f | |||
| a32028755a | |||
| ebd6acd004 | |||
| 0694c10537 | |||
| 2dea4d54e0 | |||
| 5bbaf0a658 | |||
| 2f753325ae | |||
| 0d018248e5 | |||
| aa5bfe060c | |||
| 407fcd4987 | |||
| bf16e1cd47 | |||
| 9f808b99ab | |||
| dc778c3078 | |||
| 0634893733 | |||
| 0aa0a76151 | |||
| 511af9031c | |||
| db54e8990d | |||
| 673de9bb53 | |||
| 41d1446476 | |||
| 02b8e6bd5f | |||
| 356c83f057 | |||
| 38cf9502c5 | |||
| ae70359fca | |||
| ed377261a2 | |||
| a97d2805b1 | |||
| 7bfac43dd9 | |||
| 8bf694c7ba | |||
| 176f08ad0b | |||
| 2ce7a59a59 | |||
| 698afafa26 | |||
| 4b1546ccd6 | |||
| 6a023d4c91 | |||
| 40ea204223 | |||
| 31af137e97 | |||
| 914890b4b0 | |||
| 5ab2f2dcc5 | |||
| 01aed343a6 | |||
| 8389a1dee9 | |||
| a2cf60bc4c | |||
| 2577462649 | |||
| 3edca64629 | |||
| 2edf9c1304 | |||
| 50abc68f0d | |||
| 60b4b925d3 | |||
| 717b74c30b | |||
| 506f345a9d | |||
| 42d8b0d860 | |||
| cdae93479f | |||
| 82c949e5a1 | |||
| a8bcbfce09 | |||
| 43bea54532 | |||
| df11c756dd | |||
| 5f066e4ebf | |||
| ca3c887b61 | |||
| fac90ec5d3 | |||
| 4cb65c468c | |||
| 0693d6e316 | |||
| 2a312d0a7b | |||
| 8f628bb37b | |||
| 503251cbce | |||
| a37ee211f2 | |||
| 0ac2ffbba5 | |||
| dd950092a6 | |||
| bd8066407e | |||
| 6be684c26f | |||
| dba600cc89 | |||
| cdbf8a6b24 | |||
| a437957702 | |||
| bf5276bcc4 | |||
| 11f4242598 | |||
| dfe77dea5f | |||
| c47d80ae1d | |||
| 83ba569fde | |||
| 73fc473ae3 | |||
| 625f48168b | |||
| 9914ff2a55 | |||
| f20e80375a | |||
| b8ec68a943 | |||
| 1f7f76e078 | |||
| e288da8de2 | |||
| a72a49da13 | |||
| 24e1ed4617 | |||
| 01f65d91b5 | |||
| 953a09b686 | |||
| fe31b5bf34 | |||
| bf0c20b188 | |||
| c9ed3e1789 | |||
| 6d1359d8e9 | |||
| 219a7c48cc | |||
| 3b1e1385cc | |||
| c6453e2137 | |||
| 200c1a6d53 | |||
| 4225a0c453 | |||
| 4fe0890f21 | |||
| 857037fa37 | |||
| b7b2322346 | |||
| ac27543cd8 | |||
| c40cb09409 | |||
| 365abe2c80 | |||
| 2007c7c01e | |||
| 9747856f15 | |||
| 8104cd822a | |||
| 2d1abc8e30 | |||
| afb7092667 | |||
| 2cda9e9b2c | |||
| 4a16cfec9b | |||
| 9acc0c0719 | |||
| 1315d0b2a7 | |||
| 331deaf293 | |||
| 3a1ac3e25a | |||
| a6a17d102c | |||
| 9605e4036f | |||
| 088e0d484b | |||
| 9b7756c5ae | |||
| 5c22c75f72 | |||
| bac650c84a | |||
| cbe8906073 | |||
| faa1cca154 | |||
| 8ef39ffcbf | |||
| 6778fd42a5 | |||
| 4e5f51b2a2 | |||
| 1d49e6109c | |||
| 0033e31388 | |||
| c02d375d71 |
@@ -1,20 +0,0 @@
|
||||
## Description
|
||||
|
||||
If you're suggesting a new feature then just a description will suffice.
|
||||
|
||||
- [ ] Does this issue still occur in the master branch? (**Required if issue**)
|
||||
|
||||
|
||||
#### Neofetch version
|
||||
|
||||
## Screenshot
|
||||
|
||||
## Config file
|
||||
|
||||
## Verbose log
|
||||
|
||||
1. Run `neofetch -vv 2> neofetchlog`
|
||||
2. Upload the contents of `neofetchlog` to pastebin, gist or equivalent.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: Content Request
|
||||
about: Suggest supporting new flags, distros, package managers, etc.
|
||||
title: ''
|
||||
labels: 'content-request'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Describe the content
|
||||
Describe the content you would like to see added to HyFetch.
|
||||
|
||||
### Links
|
||||
Please include relevant links to the content.
|
||||
|
||||
e.g. For distros, include a link to the distro's official website, download link, or development repository.
|
||||
|
||||
### Additional context
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest a new idea for this project
|
||||
title: ''
|
||||
labels: 'feature-request'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
name: HyFetch Bug Report
|
||||
about: Create a report for coloring related bugs.
|
||||
title: ''
|
||||
labels: 'hyfetch'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Describe the bug
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
- [ ] Does this issue still occur in the master branch? (**Required**)
|
||||
|
||||
### Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
### Screenshots
|
||||
Please include a screenshot of your system information if the specific system environment is relevant to the bug.
|
||||
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
### Config file
|
||||
|
||||
Please paste the content of `~/.config/hyfetch.json` below:
|
||||
|
||||
```json
|
||||
"(here)"
|
||||
```
|
||||
|
||||
### Additional context
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
name: Neofetch Bug Report
|
||||
about: Create a report for system-information related bugs.
|
||||
title: ''
|
||||
labels: 'neofetch'
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Describe the bug
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
- [ ] Does this issue still occur in the master branch? (**Required**)
|
||||
|
||||
### Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
### Screenshots
|
||||
Please include a screenshot of your system information if the specific system environment is relevant to the bug.
|
||||
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
### Config file
|
||||
1. Run `cp ~/.config/neofetch/config.conf conf.txt`
|
||||
2. Drag `conf.txt` here to upload it.
|
||||
|
||||
### Verbose log
|
||||
1. Run `neofetch -vv 2> neofetch.log`
|
||||
2. Drag `neofetch.log` here to upload it.
|
||||
|
||||
### Additional context
|
||||
Add any other context about the problem here.
|
||||
@@ -1,10 +1,18 @@
|
||||
## Description
|
||||
|
||||
Only fill in the fields below if relevant.
|
||||
<!-- Thank you so much for contributing! ❤️ -->
|
||||
|
||||
### Description
|
||||
Describe the goals that the pull request accomplishes.
|
||||
|
||||
## Features
|
||||
### Relevant Links
|
||||
If there are related issues, please link them here.
|
||||
|
||||
## Issues
|
||||
Please also include links relevant to the changes.
|
||||
|
||||
## TODO
|
||||
e.g. For new distros, include a link to the distro's official website, download link, or development repository.
|
||||
|
||||
### Screenshots
|
||||
If applicable, please include screenshots before and after your changes.
|
||||
|
||||
### Additional context
|
||||
Add any other context about the problem or changes here.
|
||||
|
||||
+6
-1
@@ -115,4 +115,9 @@ dmypy.json
|
||||
|
||||
# Custom
|
||||
.idea
|
||||
._*
|
||||
._*
|
||||
webhook-log
|
||||
start_moderation.sh
|
||||
gh_moderator.toml
|
||||
moderator-data
|
||||
hyfetch/git
|
||||
@@ -1 +1,9 @@
|
||||
include hyfetch/scripts/*
|
||||
|
||||
recursive-exclude tools *
|
||||
recursive-exclude .github *
|
||||
recursive-exclude .vscode *
|
||||
exclude .gitignore
|
||||
exclude .gitattributes
|
||||
exclude package.json
|
||||
exclude CONTRIBUTING.md
|
||||
@@ -1,16 +0,0 @@
|
||||
PREFIX = /usr
|
||||
MANDIR = $(PREFIX)/share/man
|
||||
|
||||
all:
|
||||
@echo Run \'make install\' to install Neofetch.
|
||||
|
||||
install:
|
||||
@mkdir -p $(DESTDIR)$(PREFIX)/bin
|
||||
@mkdir -p $(DESTDIR)$(MANDIR)/man1
|
||||
@cp -p neofetch $(DESTDIR)$(PREFIX)/bin/neofetch
|
||||
@cp -p neofetch.1 $(DESTDIR)$(MANDIR)/man1
|
||||
@chmod 755 $(DESTDIR)$(PREFIX)/bin/neofetch
|
||||
|
||||
uninstall:
|
||||
@rm -rf $(DESTDIR)$(PREFIX)/bin/neofetch
|
||||
@rm -rf $(DESTDIR)$(MANDIR)/man1/neofetch.1*
|
||||
@@ -6,11 +6,11 @@ neofetch with pride flags <3
|
||||
|
||||
### 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` :)
|
||||
This repo also serves as an updated version of the original `neofetch` since the upstream [dylanaraps/neofetch](https://github.com/dylanaraps/neofetch) isn't maintained anymore and has been archived. If you only want to use the updated neofetch without pride flags, you can use the `neofetch` script from this repo. To prevent command name conflict, I call it `neowofetch` :)
|
||||
|
||||
* Method 1: `pip install hyfetch` then run `neowofetch`
|
||||
* Method 1: `pip install -U hyfetch` then run `neowofetch`
|
||||
* Method 2: `npx neowofetch`
|
||||
* Method 3: `P="$HOME/.local/bin/neowofetch" curl -L nf.hydev.org -o $P && chmod +x $P`
|
||||
* Method 3: `P="$HOME/.local/bin/neowofetch" && curl -L nf.hydev.org -o "$P" && chmod +x "$P"`
|
||||
* Method 4: Run without install `bash <(curl -sL nf.hydev.org)`
|
||||
|
||||
|
||||
@@ -21,18 +21,28 @@ This repo also serves as an updated version of the original `neofetch` since the
|
||||
Install Python >= 3.7 first. Then, just do:
|
||||
|
||||
```sh
|
||||
pip install hyfetch
|
||||
pip install -U hyfetch
|
||||
# or
|
||||
pipx install hyfetch
|
||||
```
|
||||
|
||||
### Method 2: Install using system package manager
|
||||
|
||||
Currently, these distributions have existing packages for HyFetch:
|
||||
|
||||
* Universal [Lure.sh](https://lure.sh/): `lure in hyfetch` (Thanks to [@Elara6331](https://github.com/Elara6331))
|
||||
* Arch Linux: `sudo pacman -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa) and [@Antiz96](https://github.com/Antiz96))
|
||||
* Fedora Linux: `sudo dnf install hyfetch` (packaged by [@topazus](http://github.com/topazus))
|
||||
* Nix: `nix-env -i hyfetch` (Thanks to [@YisuiDenghua](https://github.com/YisuiDenghua))
|
||||
* Nix Profile: `nix profile install nixpkgs#hyfetch`
|
||||
* Guix: `guix install hyfetch` (Thanks to [@WammKD](https://github.com/WammKD))
|
||||
* Slackware `sbopkg -b hyfetch` Slackware [Slackbuild](https://slackbuilds.org/repository/15.0/desktop/hyfetch/?search=hyfetch) (Thanks to [@bittin](https://github.com/bittin) and Urchlay)
|
||||
* Slackware: `sbopkg -b hyfetch` [Slackbuild](https://slackbuilds.org/repository/15.0/desktop/hyfetch/?search=hyfetch) (Thanks to [@bittin](https://github.com/bittin) and Urchlay)
|
||||
* Homebrew: `brew install hyfetch` (Thanks to [@catumin](https://github.com/catumin) and [@osalbahr](https://github.com/osalbahr))
|
||||
* openSUSE Tumbleweed: `zypper in python311-hyfetch` (Thanks to [@catumin](https://github.com/catumin))
|
||||
* Gentoo: `emerge --ask app-misc/hyfetch` (Thanks to [@catumin](https://github.com/catumin))
|
||||
* Debian and Ubuntu `apt install hyfetch` (for Debian flavor >= [Trixie](https://packages.debian.org/trixie/hyfetch), Ubuntu flavor >= [Noble](https://packages.ubuntu.com/noble/hyfetch)) (Thanks to [@catumin](https://github.com/catumin))
|
||||
|
||||
[](https://repology.org/project/hyfetch/versions)
|
||||
|
||||
### Method 3: Install the latest developmental version using git
|
||||
|
||||
@@ -66,6 +76,22 @@ Feel free to experiment with it!
|
||||
|
||||

|
||||
|
||||
#### Q: Why do you use pride flag's coloring? I don't think it looks nice at all.
|
||||
|
||||
A: The core idea behind HyFetch coloring isn't just to make logos look nicer, it's about representation and identity. While it's okay to assess the visual appeal, you also need to understand that the LGBTQ+ flag colors serves a much deeper purpose than just aesthetics.
|
||||
|
||||
For many in the LGBTQ+ community, these flags symbolize their identity, struggles, and pride. Integrating these symbols into a showcase of the tech specs they share can provide a sense of empowerment. It's combining their enthusiasm for their favorite distro / hardware with their LGBTQ+ identity.
|
||||
|
||||
Also, by including flag coloring along with the updated neofetch, we're also broadcasting a wider message about the importance of inclusivity and representation. It's not just a design choice, it's a statement that promotes awareness and understanding toward the LGBTQ+ community.
|
||||
|
||||
#### Q: When I use `hyfetch` or `neowofetch` in my MotD, no art displays. How do I get the art back?
|
||||
|
||||
A: Most likely, the `stdout` detection is set to auto and is removing the ascii art and colors. To change this, you can: set `args` in your hyfetch.json to `"--stdout=off"`, add `--stdout=off` to the `neowofetch` command in your motd script, or set the option in $HOME/.config/(neofetch|neowofetch)/config.conf to off.
|
||||
|
||||
#### Q: How can I run HyFetch on Windows?
|
||||
|
||||
A: Install Python > 3.7 and Git > 2.42.0 first. Then, either open Git Bash terminal or install a terminal emulator that can display RGB colors (the default Windows cmd.exe cannot, but the new [Windows Terminal](https://apps.microsoft.com/detail/9N0DX20HK701?hl=en-US&gl=US) can). Then, run `pip install hyfetch` and run `hyfetch`.
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
@@ -89,7 +115,6 @@ Updates to `neowofetch` begins with the emoji 🖼️
|
||||
|
||||
* [ ] (Important!) Refactor flag storage & coloring to support non-stride patterns
|
||||
* [ ] Config menu: Allow left-right arrow keys for pagination
|
||||
* [ ] Neofetch argument pass through
|
||||
|
||||
### Nightly
|
||||
|
||||
@@ -101,14 +126,178 @@ pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
||||
|
||||
<!-- CHANGELOG STARTS HERE --->
|
||||
|
||||
### 1.99.0
|
||||
|
||||
This version would be the last version of HyFetch on Python as we migrate to Rust (Huge thanks to everyone on [#317](https://github.com/hykilpikonna/hyfetch/pull/317)!). It will also be an effort to start a transition that phases out the neowofetch/neofetch backend in favor of FastFetch, since the time needed to maintain the NF backend currently exceed our capacity. If you are willing to help maintaining it, please let us know!
|
||||
|
||||
* 🌈 **Improve Windows support**
|
||||
* 🌈 **Include FastFetch into HyFetch PyPI package**
|
||||
* 🌈 Detached our fork from neofetch
|
||||
* 🌈 Build architecture-specific wheels for PyPI
|
||||
* 🌈 Add plural flag (bc8499e2)
|
||||
* 🌈 Add genderflux and girlflux flags ([#263](https://github.com/hykilpikonna/hyfetch/pull/263))
|
||||
* 🌈 Add Fraysexual flag ([#277](https://github.com/hykilpikonna/hyfetch/pull/277))
|
||||
* 🌈 Add Xenogender flag ([#309](https://github.com/hykilpikonna/hyfetch/pull/309))
|
||||
* 🌈 Add Caninekin flag ([#318](https://github.com/hykilpikonna/hyfetch/pull/318))
|
||||
* 🌈 Add Kenochoric, veldian, solian, lunian flags ([#331](https://github.com/hykilpikonna/hyfetch/pull/331))
|
||||
* 🌈 Add Polyamorous, sapphic, androgyne, interprogress, progress, intersex, equal-rights, drag, neofluid, genderqueer, and pronoun flags ([#342](https://github.com/hykilpikonna/hyfetch/pull/342))
|
||||
* 🌈 Add Gilbert Baker's original rainbow flag ([#284](https://github.com/hykilpikonna/hyfetch/pull/284))
|
||||
* 🌈 Add Queer subculture flags ([#302](https://github.com/hykilpikonna/hyfetch/pull/302))
|
||||
* 🌈 Add random flag option ([#334](https://github.com/hykilpikonna/hyfetch/pull/334))
|
||||
* 🌈 Fix distro logo triple-quotation mark escaping ([#222](https://github.com/hykilpikonna/hyfetch/pull/222))
|
||||
* 🌈 Fix Windows encoding issue on non-English systems ([#294](https://github.com/hykilpikonna/hyfetch/pull/294))
|
||||
* 🌈 Fix termux compatibility ([#286](https://github.com/hykilpikonna/hyfetch/pull/286))
|
||||
* 🌈 Fix term background detection not resetting properly ([#298](https://github.com/hykilpikonna/hyfetch/pull/298))
|
||||
* 🌈 Make typing-extensions optional ([#299](https://github.com/hykilpikonna/hyfetch/pull/299))
|
||||
* 🌈 Remove setuptools dependency ([#325](https://github.com/hykilpikonna/hyfetch/pull/325))
|
||||
* 🌈 Allow lightness value without a '%' sign in config prompt ([#307](https://github.com/hykilpikonna/hyfetch/pull/307))
|
||||
* 🌈 Fix Windows 7 and Python 3.7.0 support.
|
||||
* 🖼 OS - Update Apple hardware ID list ([#256](https://github.com/hykilpikonna/hyfetch/pull/256))
|
||||
* 🖼 OS - Remove Lilu detection for hackintosh ([#310](https://github.com/hykilpikonna/hyfetch/pull/310))
|
||||
* 🖼 OS - Support host info on PowerPC Macs ([#341](https://github.com/hykilpikonna/hyfetch/pull/341))
|
||||
* 🖼 DE - Show Kinfo for Plasma 6 ([#269](https://github.com/hykilpikonna/hyfetch/pull/269))
|
||||
* 🖼 GPU - Fix GPU not displaying in Haiku (dylanaraps#2448)
|
||||
* 🖼 GPU - List all intel GPU as detected ([#348](https://github.com/hykilpikonna/hyfetch/pull/348))
|
||||
* 🖼 Distro - Add eweOS ([#252](https://github.com/hykilpikonna/hyfetch/pull/252))
|
||||
* 🖼 Distro - Add Fedora Immutable distros (dylanaraps#2434)
|
||||
* 🖼 Distro - Add Macaroni OS (dylanaraps#2424)
|
||||
* 🖼 Distro - Add Ironclad OS ([#219](https://github.com/hykilpikonna/hyfetch/pull/219))
|
||||
* 🖼 Distro - Add Chimera Linux ([#285](https://github.com/hykilpikonna/hyfetch/pull/285))
|
||||
* 🖼 Distro - Add Tatra (dylanaraps#2439)
|
||||
* 🖼 Distro - Add Furreto Linux ([#290](https://github.com/hykilpikonna/hyfetch/pull/290))
|
||||
* 🖼 Distro - Add BlackMesa ([#316](https://github.com/hykilpikonna/hyfetch/pull/316))
|
||||
* 🖼 Distro - Add Magix ([#338](https://github.com/hykilpikonna/hyfetch/pull/338))
|
||||
* 🖼 Distro - Add Mauna ([#343](https://github.com/hykilpikonna/hyfetch/pull/343))
|
||||
* 🖼 Distro - Add Arkane Linux ([#321](https://github.com/hykilpikonna/hyfetch/pull/321))
|
||||
* 🖼 Distro - Add Linux From Scratch ([#336](https://github.com/hykilpikonna/hyfetch/pull/336))
|
||||
* 🖼 Distro - Fix debian version on Ubuntu ([#195](https://github.com/hykilpikonna/hyfetch/pull/195))
|
||||
* 🖼 Ascii - Update PikaOS logo ([#231](https://github.com/hykilpikonna/hyfetch/pull/231))
|
||||
* 🖼 Ascii - Add Fedora unicode logo ([#238](https://github.com/hykilpikonna/hyfetch/pull/238))
|
||||
* 🖼 Ascii - Fix colors not reverting properly ([#314](https://github.com/hykilpikonna/hyfetch/pull/314))
|
||||
* 🖼 Ascii - Fix AmogOS backslash escape ([#339](https://github.com/hykilpikonna/hyfetch/pull/339))
|
||||
* 🖼 Ascii - Add colorful NixOS logo ([#311](https://github.com/hykilpikonna/hyfetch/pull/311))
|
||||
* 🖼 Terminal - Fix terminal emulator selection ([#220](https://github.com/hykilpikonna/hyfetch/pull/220))
|
||||
* 🖼 Terminal - Fix terminal font info for yakuake ([#235](https://github.com/hykilpikonna/hyfetch/pull/235))
|
||||
* 🖼 Terminal - Add Apple Terminal ([#272](https://github.com/hykilpikonna/hyfetch/pull/272))
|
||||
* 🖼 Editor - Display neovim version ([#267](https://github.com/hykilpikonna/hyfetch/pull/267))
|
||||
* 🖼 Package - Add an option to hide some package managers ([#257](https://github.com/hykilpikonna/hyfetch/pull/257))
|
||||
* 🖼 Package - Add "AM" application manager ([#234](https://github.com/hykilpikonna/hyfetch/pull/234))
|
||||
* 🖼 Package - Fix npm list count mismatch ([#240](https://github.com/hykilpikonna/hyfetch/pull/240))
|
||||
* 🖼 Package - Add pnpm ([#288](https://github.com/hykilpikonna/hyfetch/pull/288))
|
||||
* 🖼 Package - Add pkgx.sh ([#265](https://github.com/hykilpikonna/hyfetch/pull/265))
|
||||
* 🖼 Package - Add pip, bonsai, rad, radula, birb ([#337](https://github.com/hykilpikonna/hyfetch/pull/337))
|
||||
* 🖼 Package - Add MacPorts for Linux support ([#340](https://github.com/hykilpikonna/hyfetch/pull/340))
|
||||
* 🖼 Package - Use XDG path for Nix package counting ([#255](https://github.com/hykilpikonna/hyfetch/pull/255))
|
||||
* 🖼 Package - Fix short package count ([#305](https://github.com/hykilpikonna/hyfetch/pull/305))
|
||||
* 🖼 Song - Add Cider player ([#245](https://github.com/hykilpikonna/hyfetch/pull/245))
|
||||
* 🖼 Network - Fix network speed detection on macOS ([#360](https://github.com/hykilpikonna/hyfetch/pull/360))
|
||||
|
||||
### 1.4.11
|
||||
|
||||
* 🌈 Add ability to set backend args in hyfetch config file ([#181](https://github.com/hykilpikonna/hyfetch/pull/181))
|
||||
* 🌈 Update makefile to be able to install hyfetch ([#174](https://github.com/hykilpikonna/hyfetch/pull/174))
|
||||
* 🌈 Fix config file argument ([#177](https://github.com/hykilpikonna/hyfetch/pull/177))
|
||||
* 🌈 Support pipx installation ([#188](https://github.com/hykilpikonna/hyfetch/pull/188), [#192](https://github.com/hykilpikonna/hyfetch/pull/192))
|
||||
* 🌈 Create package for Debian, OpenSUSE, Homebrew, Gentoo, and lure.sh
|
||||
([#184](https://github.com/hykilpikonna/hyfetch/pull/184), [#194](https://github.com/hykilpikonna/hyfetch/pull/194), [#207](https://github.com/hykilpikonna/hyfetch/pull/207), [#206](https://github.com/hykilpikonna/hyfetch/pull/206)) Huge thanks to @catumin!
|
||||
* 🖼 DE - Fix DE empty bracket in macOS ([#172](https://github.com/hykilpikonna/hyfetch/pull/172))
|
||||
* 🖼 OS - Disable Hackintosh check on arm64 processors ([dylanaraps#2396](https://github.com/dylanaraps/neofetch/pull/2396))
|
||||
* 🖼 OS - Add Windows NT ([#217](https://github.com/hykilpikonna/hyfetch/pull/217))
|
||||
* 🖼 Distro - Fixed Kubuntu recognized as Ubuntu ([dylanaraps#2411](https://github.com/dylanaraps/neofetch/pull/2411))
|
||||
* 🖼 Distro - Use /etc/debian_version to get .x on Debian ([#191](https://github.com/hykilpikonna/hyfetch/pull/191))
|
||||
* 🖼 Distro - Add LainOS ([#190](https://github.com/hykilpikonna/hyfetch/pull/190))
|
||||
* 🖼 Distro - Add aerOS ([dylanaraps#2360](https://github.com/dylanaraps/neofetch/pull/2360))
|
||||
* 🖼 Distro - Add Xenia ([#197](https://github.com/hykilpikonna/hyfetch/pull/197))
|
||||
* 🖼 Distro - Add EndeavourOS Small Option ([dylanaraps#2391](https://github.com/dylanaraps/neofetch/pull/2391))
|
||||
* 🖼 Distro - Add AZOS ([dylanaraps#2339](https://github.com/dylanaraps/neofetch/pull/2339))
|
||||
* 🖼 Distro - Add MainsailOS ([dylanaraps#2407](https://github.com/dylanaraps/neofetch/pull/2407))
|
||||
* 🖼 Distro - Add Interix ([dylanaraps#2409](https://github.com/dylanaraps/neofetch/pull/2409))
|
||||
* 🖼 Distro - Add Peropesis Linux ([dylanaraps#2414](https://github.com/dylanaraps/neofetch/pull/2414))
|
||||
* 🖼 Distro - Add Adélie Linux ([#218](https://github.com/hykilpikonna/hyfetch/pull/218))
|
||||
* 🖼 Distro - Add Xray_OS ([dylanaraps#2413](https://github.com/dylanaraps/neofetch/pull/2413))
|
||||
* 🖼 Ascii - Update AOSC logo ([#185](https://github.com/hykilpikonna/hyfetch/pull/185))
|
||||
* 🖼 Ascii - Update phyOS logo ([#211](https://github.com/hykilpikonna/hyfetch/pull/211))
|
||||
* 🖼 Ascii - Update Parch logo ([dylanaraps#2045](https://github.com/dylanaraps/neofetch/pull/2045))
|
||||
* 🖼 Ascii - Add linux_small ([dylanaraps#2417](https://github.com/dylanaraps/neofetch/pull/2417))
|
||||
* 🖼 Bug Fix - Fix color blocks for bash !=3 & <5 ([#170](https://github.com/hykilpikonna/hyfetch/pull/170))
|
||||
* 🖼 Bug Fix - Use sed -r instead of -E when using GNU sed ([#171](https://github.com/hykilpikonna/hyfetch/pull/171))
|
||||
* 🖼 Resolution - Improved MacOS resolution detection ([dylanaraps#2356](https://github.com/dylanaraps/neofetch/pull/2356))
|
||||
* 🖼 Terminal - Add support for alacritty's new config format ([#202](https://github.com/hykilpikonna/hyfetch/pull/202))
|
||||
* 🖼 Terminal - Check for newer xfce4-term config ([#214](https://github.com/hykilpikonna/hyfetch/pull/214))
|
||||
* 🖼 Package - Add support for npm global packages ([#215](https://github.com/hykilpikonna/hyfetch/pull/215))
|
||||
|
||||
### 1.4.10
|
||||
|
||||
* 🌈 Add support for qwqfetch backend ([#148](https://github.com/hykilpikonna/hyfetch/pull/148))
|
||||
* 🌈 Add nonhuman-unity flag ([#139](https://github.com/hykilpikonna/hyfetch/pull/139))
|
||||
* 🌈 Add gynesexual, androsexual flags ([#157](https://github.com/hykilpikonna/hyfetch/pull/157))
|
||||
* 🌈 Add option to disable pride month animation ([#134](https://github.com/hykilpikonna/hyfetch/pull/134))
|
||||
* 🌈 Make ^C error message less aggressive (?)
|
||||
* 🌈 Fix: Should not assume ~/.config is writable ([#136](https://github.com/hykilpikonna/hyfetch/pull/136))
|
||||
* 🌈 Fix: Foreground-background arrangement not detected ([#154](https://github.com/hykilpikonna/hyfetch/pull/154))
|
||||
* 🖼 OS - Update macOS version name list ([#140](https://github.com/hykilpikonna/hyfetch/pull/140))
|
||||
* 🖼 Ascii - Improve color removal ([#161](https://github.com/hykilpikonna/hyfetch/pull/161))
|
||||
* 🖼 Ascii - Fix reset character performance ([#158](https://github.com/hykilpikonna/hyfetch/pull/158))
|
||||
* 🖼 Distro - Smoothen the Tumbleweed logo ([dylanaraps#2342](https://github.com/dylanaraps/neofetch/pull/2342))
|
||||
* 🖼 Distro - Update RebornOS logo ([dylanaraps#2358](https://github.com/dylanaraps/neofetch/pull/2358))
|
||||
* 🖼 Distro - Update Venom Linux logo ([#166](https://github.com/hykilpikonna/hyfetch/pull/166))
|
||||
* 🖼 Distro - Add Windows 95 ASCII logo ([dylanaraps#2346](https://github.com/dylanaraps/neofetch/pull/2346))
|
||||
* 🖼 Distro - Add ParchLinux ([dylanaraps#2045](https://github.com/dylanaraps/neofetch/pull/2045))
|
||||
* 🖼 Distro - Add OpenKylin ([dylanaraps#2341](https://github.com/dylanaraps/neofetch/pull/2341))
|
||||
* 🖼 Distro - Add EvolutionOS ([dylanaraps#2350](https://github.com/dylanaraps/neofetch/pull/2350))
|
||||
* 🖼 Distro - Add Salix ([dylanaraps#2357](https://github.com/dylanaraps/neofetch/pull/2357))
|
||||
* 🖼 Distro - Add Panwah ([dylanaraps#2355](https://github.com/dylanaraps/neofetch/pull/2355))
|
||||
* 🖼 Distro - Add PhyOS ([#142](https://github.com/hykilpikonna/hyfetch/pull/142))
|
||||
* 🖼 Distro - Add Athena OS ([#130](https://github.com/hykilpikonna/hyfetch/pull/130))
|
||||
* 🖼 Distro - Add Meowix ([#159](https://github.com/hykilpikonna/hyfetch/pull/159))
|
||||
* 🖼 Distro - Add Slackel ([#167](https://github.com/hykilpikonna/hyfetch/pull/167))
|
||||
* 🖼 Distro - Support *Wrt variants ([dylanaraps#2352](https://github.com/dylanaraps/neofetch/pull/2352))
|
||||
* 🖼 Version - Fix a typo that broke OS detection on WSL ([#155](https://github.com/hykilpikonna/hyfetch/pull/155))
|
||||
* 🖼 Packages - Implement --package_separate flag ([#135](https://github.com/hykilpikonna/hyfetch/pull/135))
|
||||
* 🖼 Packages - Separate flatpak-system and flatpak-user ([#135](https://github.com/hykilpikonna/hyfetch/pull/135))
|
||||
* 🖼 Packages - Add steam as a package manager ([#152](https://github.com/hykilpikonna/hyfetch/pull/152))
|
||||
* 🖼 Packages - Add squirrel package manager ([#153](https://github.com/hykilpikonna/hyfetch/pull/153))
|
||||
* 🖼 Packages - Make cargo run on all systems ([#146](https://github.com/hykilpikonna/hyfetch/pull/146))
|
||||
* 🖼 Packages - Fix cargo package count ([#144](https://github.com/hykilpikonna/hyfetch/pull/144))
|
||||
* 🖼 Packages - Add Devbox package manager ([#137](https://github.com/hykilpikonna/hyfetch/pull/137))
|
||||
* 🖼 Packages - Fix phantom package when pm command fails ([#145](https://github.com/hykilpikonna/hyfetch/pull/145))
|
||||
* 🖼 Packages - Update scratch package manager ([#165](https://github.com/hykilpikonna/hyfetch/pull/165))
|
||||
* 🖼 Editor - Better version detection
|
||||
* 🖼 Resolution - Improve macOS resolution detection ([dylanaraps#2356](https://github.com/dylanaraps/neofetch/pull/2356))
|
||||
* 🖼 Resolution - Add resolution lookup for iOS ([#164](https://github.com/hykilpikonna/hyfetch/pull/164))
|
||||
* 🖼 Desktop - Display global KDE Plasma theme ([#163](https://github.com/hykilpikonna/hyfetch/pull/163))
|
||||
* 🖼 IP - Improve macOS local IP detection ([dylanaraps#2362](https://github.com/dylanaraps/neofetch/pull/2362))
|
||||
* 🖼 IP - Fix macOS route hangs on reverse DNS lookup
|
||||
* 🖼 Config - Allow specifying default config to copy to ~/.config ([#133](https://github.com/hykilpikonna/hyfetch/pull/133))
|
||||
|
||||
### 1.4.9
|
||||
|
||||
* 🌈 Add pride month easter-egg animation! ⭐️
|
||||
* 🌈 Autocompletion for bash, zsh, tcsh ([#96](https://github.com/hykilpikonna/hyfetch/pull/96))
|
||||
* 🌈 Add nix profile installation method ([#114](https://github.com/hykilpikonna/hyfetch/pull/114))
|
||||
* 🌈 Add experimental color overlay function for more accurate lightness adjusting (using `--c-overlay`)
|
||||
* 🌈 Allow neofetch argument passthrough (using `--args='...'`)
|
||||
* 🌈 Show recommended terminal size ([#129](https://github.com/hykilpikonna/hyfetch/pull/129))
|
||||
* 🌈 Update issue & pull request templates
|
||||
* 🖼 Hostname - Fix FQDN substitution
|
||||
* 🖼 Version - Fix Windows version detection ([dylanaraps#2309](https://github.com/dylanaraps/neofetch/pull/2309))
|
||||
* 🖼 Packages - Fix winget stuck on agreement ([#82](https://github.com/hykilpikonna/hyfetch/pull/82))
|
||||
* 🖼 Distro - Fix Windows text encoding ([#115](https://github.com/hykilpikonna/hyfetch/pull/115))
|
||||
* 🖼 Distro - Add Astra Linux ([dylanaraps#2313](https://github.com/dylanaraps/neofetch/pull/2313))
|
||||
* 🖼 Distro - Add FemboyOS ([#121](https://github.com/hykilpikonna/hyfetch/pull/121))
|
||||
* 🖼 Distro - Add Nobara Linux ([dylanaraps#2326](https://github.com/dylanaraps/neofetch/pull/2326))
|
||||
* 🖼 Font - Fix Konsole ppid detection ([#116](https://github.com/hykilpikonna/hyfetch/pull/116))
|
||||
* 🖼 Font - Fix Konsole terminal font detection ([#127](https://github.com/hykilpikonna/hyfetch/pull/127))
|
||||
* 🖼 Image - Optimize sixel image display ([dylanaraps#2316](https://github.com/dylanaraps/neofetch/pull/2316))
|
||||
|
||||
### 1.4.8
|
||||
|
||||
* 🌈 Improved Windows git bash detection ([#99](https://github.com/hykilpikonna/hyfetch/pull/99))
|
||||
* 🌈 Improved color formatting codes ([#101](https://github.com/hykilpikonna/hyfetch/pull/101))
|
||||
* 🌈 Allow specifying distro in config ([#102](https://github.com/hykilpikonna/hyfetch/pull/102))
|
||||
* 🌈 Allow specifying custom ascii files ([#104](https://github.com/hykilpikonna/hyfetch/pull/104))
|
||||
* 🌈 Add omniromantic and pangender ([#106](https://github.com/hykilpikonna/hyfetch/pull/106))
|
||||
* 🌈 Now officially packaged for ArchLinux Community & Slackware! ([#112](https://github.com/hykilpikonna/hyfetch/pull/112)) ([#109](https://github.com/hykilpikonna/hyfetch/pull/109))
|
||||
* 🌈 Add omniromantic and pangender flags ([#106](https://github.com/hykilpikonna/hyfetch/pull/106))
|
||||
* 🌈 Now officially packaged for ArchLinux Community & Slackware! ([#112](https://github.com/hykilpikonna/hyfetch/pull/112) | [#109](https://github.com/hykilpikonna/hyfetch/pull/109))
|
||||
* 🖼 Host - Update Apple device model detection. ([#111](https://github.com/hykilpikonna/hyfetch/pull/111))
|
||||
* 🖼 Distro - Add Salient OS. ([dylanaraps#2301](https://github.com/dylanaraps/neofetch/pull/2301))
|
||||
* 🖼 Distro - Add PikaOS. ([#105](https://github.com/hykilpikonna/hyfetch/pull/105))
|
||||
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH VERSION "1" "October 2024" "Version is 1.99.0" "User Commands"
|
||||
.SH NAME
|
||||
Version \- manual page for Version is 1.99.0
|
||||
.SH DESCRIPTION
|
||||
usage: hyfetch [\-h] [\-c] [\-C CONFIG_FILE]
|
||||
.IP
|
||||
[\-p {rainbow,transgender,nonbinary,xenogender,agender,queer,genderfluid,bisexual,pansexual,polysexual,omnisexual,omniromantic,gay\-men,lesbian,abrosexual,asexual,aromantic,aroace1,aroace2,aroace3,autosexual,intergender,greygender,akiosexual,bigender,demigender,demiboy,demigirl,transmasculine,transfeminine,genderfaun,demifaun,genderfae,demifae,neutrois,biromantic1,biromantic2,autoromantic,boyflux2,girlflux,genderflux,finsexual,unlabeled1,unlabeled2,pangender,pangender.contrast,gendernonconforming1,gendernonconforming2,femboy,tomboy,gynesexual,androsexual,gendervoid,voidgirl,voidboy,nonhuman\-unity,plural,fraysexual,bear,butch,leather,otter,twink,kenochoric,veldian,solian,lunian,polyam,sapphic,androgyne,interprogress,progress,intersex,old\-polyam,equal\-rights,drag,pronounfluid,pronounflux,exipronoun,neopronoun,neofluid,genderqueer,beiyang,burger,baker,caninekin,random}]
|
||||
[\-m {8bit,rgb}]
|
||||
[\-b {qwqfetch,neofetch,fastfetch,fastfetch\-old}] [\-\-args ARGS]
|
||||
[\-\-c\-scale SCALE] [\-\-c\-set\-l LIGHT] [\-\-c\-overlay] [\-V] [\-\-june]
|
||||
[\-\-debug] [\-\-distro DISTRO] [\-\-ascii\-file ASCII_FILE]
|
||||
[\-\-print\-font\-logo]
|
||||
.PP
|
||||
[1m[38;5;14mhyfetch[39m[22m \- neofetch with flags <3
|
||||
.SS "options:"
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
show this help message and exit
|
||||
.TP
|
||||
\fB\-c\fR, \fB\-\-config\fR
|
||||
Configure hyfetch
|
||||
.TP
|
||||
\fB\-C\fR CONFIG_FILE, \fB\-\-config\-file\fR CONFIG_FILE
|
||||
Use another config file
|
||||
.TP
|
||||
\fB\-p\fR {rainbow,transgender,nonbinary,xenogender,agender,queer,genderfluid,bisexual,pansexual,polysexual,omnisexual,omniromantic,gay\-men,lesbian,abrosexual,asexual,aromantic,aroace1,aroace2,aroace3,autosexual,intergender,greygender,akiosexual,bigender,demigender,demiboy,demigirl,transmasculine,transfeminine,genderfaun,demifaun,genderfae,demifae,neutrois,biromantic1,biromantic2,autoromantic,boyflux2,girlflux,genderflux,finsexual,unlabeled1,unlabeled2,pangender,pangender.contrast,gendernonconforming1,gendernonconforming2,femboy,tomboy,gynesexual,androsexual,gendervoid,voidgirl,voidboy,nonhuman\-unity,plural,fraysexual,bear,butch,leather,otter,twink,kenochoric,veldian,solian,lunian,polyam,sapphic,androgyne,interprogress,progress,intersex,old\-polyam,equal\-rights,drag,pronounfluid,pronounflux,exipronoun,neopronoun,neofluid,genderqueer,beiyang,burger,baker,caninekin,random}, \fB\-\-preset\fR {rainbow,transgender,nonbinary,xenogender,agender,queer,genderfluid,bisexual,pansexual,polysexual,omnisexual,omniromantic,gay\-men,lesbian,abrosexual,asexual,aromantic,aroace1,aroace2,aroace3,autosexual,intergender,greygender,akiosexual,bigender,demigender,demiboy,demigirl,transmasculine,transfeminine,genderfaun,demifaun,genderfae,demifae,neutrois,biromantic1,biromantic2,autoromantic,boyflux2,girlflux,genderflux,finsexual,unlabeled1,unlabeled2,pangender,pangender.contrast,gendernonconforming1,gendernonconforming2,femboy,tomboy,gynesexual,androsexual,gendervoid,voidgirl,voidboy,nonhuman\-unity,plural,fraysexual,bear,butch,leather,otter,twink,kenochoric,veldian,solian,lunian,polyam,sapphic,androgyne,interprogress,progress,intersex,old\-polyam,equal\-rights,drag,pronounfluid,pronounflux,exipronoun,neopronoun,neofluid,genderqueer,beiyang,burger,baker,caninekin,random}
|
||||
Use preset
|
||||
.TP
|
||||
\fB\-m\fR {8bit,rgb}, \fB\-\-mode\fR {8bit,rgb}
|
||||
Color mode
|
||||
.TP
|
||||
\fB\-b\fR {qwqfetch,neofetch,fastfetch,fastfetch\-old}, \fB\-\-backend\fR {qwqfetch,neofetch,fastfetch,fastfetch\-old}
|
||||
Choose a *fetch backend
|
||||
.TP
|
||||
\fB\-\-args\fR ARGS
|
||||
Additional arguments pass\-through to backend
|
||||
.TP
|
||||
\fB\-\-c\-scale\fR SCALE
|
||||
Lighten colors by a multiplier
|
||||
.TP
|
||||
\fB\-\-c\-set\-l\fR LIGHT
|
||||
Set lightness value of the colors
|
||||
.TP
|
||||
\fB\-\-c\-overlay\fR
|
||||
Use experimental overlay color adjusting instead of
|
||||
HSL lightness
|
||||
.TP
|
||||
\fB\-V\fR, \fB\-\-version\fR
|
||||
Check version
|
||||
.TP
|
||||
\fB\-\-june\fR
|
||||
Show pride month easter egg
|
||||
.TP
|
||||
\fB\-\-debug\fR
|
||||
Debug mode
|
||||
.TP
|
||||
\fB\-\-distro\fR DISTRO, \fB\-\-test\-distro\fR DISTRO
|
||||
Test for a specific distro
|
||||
.TP
|
||||
\fB\-\-ascii\-file\fR ASCII_FILE
|
||||
Use a specific file for the ascii art
|
||||
.TP
|
||||
\fB\-\-print\-font\-logo\fR
|
||||
Print the Font Logo / Nerd Font icon of your distro
|
||||
and exit
|
||||
.SH "SEE ALSO"
|
||||
The full documentation for
|
||||
.B Version
|
||||
is maintained as a Texinfo manual. If the
|
||||
.B info
|
||||
and
|
||||
.B Version
|
||||
programs are properly installed at your site, the command
|
||||
.IP
|
||||
.B info Version
|
||||
.PP
|
||||
should give you access to the complete manual.
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH NEOFETCH "1" "April 2023" "Neofetch 7.3.8" "User Commands"
|
||||
.TH NEOFETCH "1" "October 2024" "Neofetch 7.98.0" "User Commands"
|
||||
.SH NAME
|
||||
Neofetch \- manual page for Neofetch 7.3.8
|
||||
Neofetch \- manual page for Neofetch 7.98.0
|
||||
.SH SYNOPSIS
|
||||
.B neofetch
|
||||
\fI\,func_name --option "value" --option "value"\/\fR
|
||||
@@ -46,6 +46,12 @@ Hide/Show Fully Qualified Domain Name in title.
|
||||
\fB\-\-package_managers\fR on/off
|
||||
Hide/Show Package Manager names. (on, tiny, off)
|
||||
.TP
|
||||
\fB\-\-package_separate\fR on/off
|
||||
Whether to separate system/user modes for supported package managers
|
||||
.TP
|
||||
\fB\-\-package_minimal\fR
|
||||
Reduce output of packages list by not showing programming language package managers or Steam games
|
||||
.TP
|
||||
\fB\-\-os_arch\fR on/off
|
||||
Hide/Show OS architecture.
|
||||
.TP
|
||||
@@ -310,60 +316,72 @@ Colors to print the ascii art
|
||||
\fB\-\-ascii_distro\fR distro
|
||||
Which Distro's ascii art to print
|
||||
.TP
|
||||
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
||||
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
||||
Aperture, Apricity, Arch, ArchBox, Archcraft, archcraft_ascii,
|
||||
archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux,
|
||||
ArseLinux, Artix, Arya, Asahi, Aster, AsteroidOS, astOS, Bedrock,
|
||||
BigLinux, Bitrig, BlackArch, blackPanther, BLAG, BlankOn, BlueLight,
|
||||
Bodhi, bonsai, BSD, BunsenLabs, CachyOS, Calculate, CalinixOS,
|
||||
Carbs, CBL\-Mariner, CelOS, Center, CentOS, Chakra, ChaletOS,
|
||||
Chapeau, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS,
|
||||
Clover, Cobalt, Condres, Container Linux by CoreOS, CRUX, Crystal
|
||||
Linux, Cucumber, CutefishOS, CuteOS, CyberOS, dahlia, DarkOs,
|
||||
Darwin, Debian, Deepin, DesaOS, Devuan, DietPi, DracOS, DragonFly,
|
||||
Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS,
|
||||
Endless, Enso, EuroLinux, Exherbo, Exodia Predator OS, Fedora,
|
||||
Feren, Finnix, Floflis, FreeBSD, FreeMiNT, Frugalware, Funtoo,
|
||||
GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU,
|
||||
GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ,
|
||||
Hash, Huayra, Hybrid, 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, NekOS,
|
||||
Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD, Nurunner,
|
||||
NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media Center, OpenBSD,
|
||||
openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage,
|
||||
openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt, OPNsense,
|
||||
Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch, Pardus, Parrot,
|
||||
Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint,
|
||||
PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis
|
||||
SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt,
|
||||
Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore,
|
||||
Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, rocky, Rosa,
|
||||
Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Sasanqua,
|
||||
Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction,
|
||||
SkiffOS, Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage,
|
||||
Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2,
|
||||
Tails, TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu
|
||||
Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio,
|
||||
Ubuntu Sway, Ubuntu Touch, Ubuntu\-GNOME, ubuntu_old02, Ultramarine
|
||||
Linux, Univalent, Univention, Uos, UrukOS, uwuntu, Vanilla, Venom,
|
||||
VNux, Void, VzLinux, wii\-linux\-ngx, Windows, Windows 10, Windows 11,
|
||||
XFerience, Xubuntu, yiffOS, Zorin have ascii logos.
|
||||
NOTE: Ad??lie, aerOS, Afterglow, AIX, AlmaLinux, Alpine, Alter,
|
||||
Amazon, AmogOS, Anarchy, Android, Antergos, antiX, AOSC OS, Aperio
|
||||
GNU/Linux, Aperture, Apricity, Arch, ArchBox, Archcraft,
|
||||
archcraft_ascii, archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike,
|
||||
ArcoLinux, Arkane, ArseLinux, Artix, Arya, Asahi, AsteroidOS, astOS,
|
||||
Astra Linux, Athena, azos, Bedrock, BigLinux, BigLinux_large,
|
||||
Bitrig, BlackArch, BlackMesa, blackPanther, BLAG, BlankOn,
|
||||
BlueLight, Bodhi, bonsai, BSD, BunsenLabs, CachyOS, Calculate,
|
||||
CalinixOS, Carbs, CBL\-Mariner, CelOS, Center, CentOS, Chakra,
|
||||
ChaletOS, Chapeau, Chimera, ChonkySealOS, Chrom, Cleanjaro, Clear
|
||||
Linux OS, ClearOS, Clover, Cobalt, Condres, Container Linux by
|
||||
CoreOS, CRUX, Crystal Linux, Cucumber, CutefishOS, CuteOS, CyberOS,
|
||||
dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DietPi,
|
||||
digital UNIX, DracOS, DragonFly, Drauger, Droidian, Elementary,
|
||||
Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux,
|
||||
EvolutionOS, eweOS, Exherbo, Exodia Predator OS, Fedora, Fedora
|
||||
Kinoite, Fedora Sericea, Fedora Silverblue, Fedora_unicode,
|
||||
FemboyOS, Feren, Finnix, Floflis, FreeBSD, FreeMiNT, Frugalware,
|
||||
Funtoo, Furreto, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus,
|
||||
gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix,
|
||||
Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS,
|
||||
Hyperbola, iglunix, instantOS, Interix, IRIX, Ironclad, Itc,
|
||||
januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora,
|
||||
KrassOS, KSLinux, Kubuntu, LainOS, LangitKetujuh, LaxerOS, LEDE,
|
||||
LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old,
|
||||
LinuxFromScratch, Live Raizo, LMDE, Lubuntu, Lunar, mac, MacaroniOS,
|
||||
Mageia, Magix, MagpieOS, MainsailOS, Mandriva, Manjaro, MassOS,
|
||||
MatuusOS, Maui, Mauna, Meowix, Mer, Minix, MIRACLE LINUX, MX, Namib,
|
||||
NekOS, Neptune, NetBSD, Netrunner, Nitrux, NixOS, nixos_colorful,
|
||||
Nobara, NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open
|
||||
Source Media Center, OpenBSD, openEuler, OpenIndiana, openKylin,
|
||||
openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE Leap,
|
||||
openSUSE Tumbleweed, OPNsense, Oracle, orchid, OS Elbrus, PacBSD,
|
||||
Panwah, Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS,
|
||||
pearOS, Pengwin, Pentoo, Peppermint, Peropesis, phyOS, PikaOS, Pisi,
|
||||
PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX,
|
||||
Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix,
|
||||
Raspbian, ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted
|
||||
Devuan, Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage,
|
||||
Sailfish, SalentOS, Salient OS, Salix, Sasanqua, Scientific, semc,
|
||||
Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackel,
|
||||
Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star,
|
||||
SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, Tatra,
|
||||
TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie,
|
||||
Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu
|
||||
Sway, Ubuntu Touch, Ubuntu\-GNOME, ubuntu_old02, Ultramarine Linux,
|
||||
unicodearch, Univalent, Univention, Uos, UrukOS, uwuntu, Vanilla,
|
||||
Venom, VNux, Void, VzLinux, wii\-linux\-ngx, Windows, Windows 10,
|
||||
Windows 11, Windows95, Wrt, Xenia, Xenia2, XFerience, Xray_OS,
|
||||
Xubuntu, yiffOS, Zorin have ascii logos.
|
||||
.TP
|
||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||
have 'old' logo variants, use {distro}_old to use them.
|
||||
.TP
|
||||
NOTE: alpine, android, aoscosretro, arch, arcolinux, artix,
|
||||
CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
||||
fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, kali,
|
||||
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.
|
||||
NOTE: alpine, android, arch, arcolinux, artix, CalinixOS, centos,
|
||||
cleanjaro, crux, debian, dragonfly, elementary, endeavouros, fedora,
|
||||
freebsd, garuda, gentoo, guix, haiku, hyperbola, kali, Linux,
|
||||
linuxlite, linuxmint, mac, mageia, MainsailOS, manjaro, mx, netbsd,
|
||||
nixos, openbsd, opensuse, orchid, parabola, popos, postmarketos,
|
||||
pureos, Raspbian, rocky, slackware, sunos, ubuntu, venom, void have
|
||||
\&'small' logo variants, use {distro}_small to use them.
|
||||
.IP
|
||||
NOTE: Fedora has immutable spins with unique logos (except Onyx).
|
||||
.TP
|
||||
NOTE: Change this to Silverblue, Kinoite, Sericea, or CoreOS to use
|
||||
the spins.
|
||||
.TP
|
||||
\fB\-\-ascii_bold\fR on/off
|
||||
Whether or not to bold the ascii logo.
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
cd /ws/Others/hyfetch
|
||||
python3 -m hyfetch --print-font-logo
|
||||
+7
-2
@@ -1,4 +1,9 @@
|
||||
from hyfetch import main
|
||||
from . import main
|
||||
from .color_util import printc
|
||||
|
||||
if __name__ == '__main__':
|
||||
main.run()
|
||||
try:
|
||||
main.run()
|
||||
except KeyboardInterrupt:
|
||||
printc('&cThe program is interrupted by ^C, exiting...')
|
||||
exit(0)
|
||||
@@ -1 +1 @@
|
||||
VERSION = '1.4.8'
|
||||
VERSION = '1.99.0'
|
||||
|
||||
@@ -239,3 +239,13 @@ class RGB:
|
||||
|
||||
def is_light(self):
|
||||
return self.hsl().l > 0.5
|
||||
|
||||
def overlay(self, color: 'RGB', alpha: float) -> 'RGB':
|
||||
"""
|
||||
Overlay a color on top of this color
|
||||
|
||||
:param color: Overlay color
|
||||
:param alpha: Overlay alpha
|
||||
:return: New color (original isn't modified)
|
||||
"""
|
||||
return RGB(*[round((1 - alpha) * v1 + alpha * v2) for v1, v2 in zip(self, color)])
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import platform
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
@@ -28,6 +29,9 @@ TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n'))
|
||||
DEFAULT_DARK_L = 0.
|
||||
IS_WINDOWS = platform.system() == 'Windows'
|
||||
|
||||
CACHE_PATH = Path(os.getenv("LOCALAPPDATA") or os.getenv("XDG_CACHE_HOME") or Path.home() / '.cache') / 'hyfetch'
|
||||
|
||||
|
||||
@dataclass
|
||||
class GlobalConfig:
|
||||
# Global color mode default to 8-bit for compatibility
|
||||
@@ -35,6 +39,7 @@ class GlobalConfig:
|
||||
override_distro: str | None
|
||||
debug: bool
|
||||
is_light: bool
|
||||
use_overlay: bool
|
||||
|
||||
def light_dark(self) -> LightDark:
|
||||
return 'light' if self.is_light else 'dark'
|
||||
@@ -45,6 +50,4 @@ class GlobalConfig:
|
||||
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'
|
||||
GLOBAL_CFG = GlobalConfig(color_mode='8bit', override_distro=None, debug=False, is_light=False, use_overlay=True)
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"Alma": "",
|
||||
"Alpine": "",
|
||||
"AOSC OS": "",
|
||||
"Apple": "",
|
||||
"Archcraft": "",
|
||||
"ArchLabs": "",
|
||||
"Arch": "",
|
||||
"Arco": "",
|
||||
"Arduino": "",
|
||||
"Artix": "",
|
||||
"Awesome WM": "",
|
||||
"Big": "",
|
||||
"bspwm": "",
|
||||
"Budgie": "",
|
||||
"CentOS": "",
|
||||
"Cinnamon": "",
|
||||
"Codeberg": "",
|
||||
"CoreOS": "",
|
||||
"Crystal": "",
|
||||
"Debian": "",
|
||||
"Deepin": "",
|
||||
"Devuan": "",
|
||||
"Docker": "",
|
||||
"dwm": "",
|
||||
"elementary OS": "",
|
||||
"Endeavour OS": "",
|
||||
"Enlightenment": "",
|
||||
"F-droid": "",
|
||||
"Fedora": "",
|
||||
"Fedora (inverse)": "",
|
||||
"Ferris": "",
|
||||
"Flathub": "",
|
||||
"Fluxbox": "",
|
||||
"Forgejo": "",
|
||||
"FOSDEM": "",
|
||||
"FreeBSD": "",
|
||||
"FreeCAD": "",
|
||||
"freedesktop.org": "",
|
||||
"Garuda": "",
|
||||
"Gentoo": "",
|
||||
"GIMP": "",
|
||||
"Gitea": "",
|
||||
"GNOME": "",
|
||||
"GNU Guix": "",
|
||||
"GTK": "",
|
||||
"Hyperbola -libre": "",
|
||||
"Hyprland": "",
|
||||
"i3": "",
|
||||
"illumos": "",
|
||||
"Inkscape": "",
|
||||
"JWM": "",
|
||||
"Kali": "",
|
||||
"KDE": "",
|
||||
"KDE Neon": "",
|
||||
"KDE Plasma": "",
|
||||
"Kdenlive": "",
|
||||
"KiCad": "",
|
||||
"Krita": "",
|
||||
"Kubuntu": "",
|
||||
"Kubuntu (inverse)": "",
|
||||
"Mint": "",
|
||||
"Mint (inverse)": "",
|
||||
"Loc-OS": "",
|
||||
"LXDE": "",
|
||||
"LXLE": "",
|
||||
"LXQt": "",
|
||||
"Mageia": "",
|
||||
"Mandriva": "",
|
||||
"Manjaro": "",
|
||||
"MATE": "",
|
||||
"mpv": "",
|
||||
"MX": "",
|
||||
"Neovim": "",
|
||||
"NixOS": "",
|
||||
"Octoprint": "",
|
||||
"OpenBSD": "",
|
||||
"OpenSCAD": "",
|
||||
"OpenSUSE": "",
|
||||
"OSH": "",
|
||||
"OSHWA": "",
|
||||
"OSI": "",
|
||||
"Parabola -libre": "",
|
||||
"Parrot OS": "",
|
||||
"Pop!_OS": "",
|
||||
"PostmarketOS": "",
|
||||
"Prusa Slicer": "",
|
||||
"Puppy": "",
|
||||
"Qt": "",
|
||||
"Qtile": "",
|
||||
"QubesOS": "",
|
||||
"Raspberry pi": "",
|
||||
"Red Hat": "",
|
||||
"RepRap": "",
|
||||
"RISC-V": "",
|
||||
"Rocky": "",
|
||||
"Sabayon": "",
|
||||
"Slackware": "",
|
||||
"Slackware (inverse)": "",
|
||||
"Snappy": "",
|
||||
"Solus": "",
|
||||
"Sway": "",
|
||||
"Tails": "",
|
||||
"Thunderbird": "",
|
||||
"Tor Browser": "",
|
||||
"Trisquel": "",
|
||||
"Tux": "",
|
||||
"Ubuntu": "",
|
||||
"Ubuntu (inverse)": "",
|
||||
"Vanilla OS": "",
|
||||
"Void": "",
|
||||
"VS Codium": "",
|
||||
"Wayland": "",
|
||||
"Wikimedia": "",
|
||||
"Xero": "",
|
||||
"XFCE": "",
|
||||
"Xmonad": "",
|
||||
"Xorg": "",
|
||||
"Zorin OS": "",
|
||||
"Windows": "\uE62A"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
adelie = AsciiArt(match=r'''"Adélie"* | "Adelie"*''', color='4 7 6', ascii=r"""
|
||||
${c1} ${c3} ,-^-___
|
||||
${c3} /\\\///
|
||||
${c2}refined.${c1} /\\\\//
|
||||
${c2}reliable.${c1} /\\\///
|
||||
${c2}ready.${c1} /\\/////\
|
||||
__///\\\\/////\
|
||||
${c3} _//////\\\\\\\////
|
||||
${c1} ///////${c3}\\\\\\\\\\//
|
||||
//////${c1}\\\\\/
|
||||
/////\\\\\/
|
||||
/////${c3}\\\\/
|
||||
/\\///\\\/
|
||||
/\\\/${c1}\\/
|
||||
/\\\\//
|
||||
//////
|
||||
/// ${c3}\\\\\
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
aeros = AsciiArt(match=r'''"aerOS"*''', color='fg 0 0 0', ascii=r"""
|
||||
${c1}
|
||||
ooo OOO OOO ooo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
OOo
|
||||
OOo
|
||||
OOo
|
||||
OOo
|
||||
OOo
|
||||
OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
oO OOo
|
||||
oOO OOo
|
||||
oOO OOo
|
||||
ooo OOO OOO ooo
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
afterglow = AsciiArt(match=r'''"Afterglow"*''', color='5 1 3 4', ascii=r"""
|
||||
${c2} .
|
||||
${c1}. ${c2}.{!
|
||||
${c1}.L! ${c2}J@||*
|
||||
${c1}gJJJJL` ${c2}g@FFS"
|
||||
${c1},@FFFJF`${c2}_g@@LLP`
|
||||
${c1}_@FFFFF`${c2}_@@@@@P` ${c4}.
|
||||
${c1}J@@@LLF ${c2}_@@@@@P` ${c4}.J!
|
||||
${c1}g@@@@@" ${c2}_@@@@@P`${c3}. ${c4}.L|||*
|
||||
${c1}g@@@@M" ${c2}"VP`${c3}.L! ${c4}<@JJJJ`
|
||||
${c1}"@N" ${c3}:||||! ${c4}JFFFFS"
|
||||
${c3}.{JJ||F`${c4}_gFFFF@'
|
||||
${c3}.@FJJJF`${c4},@LFFFF`
|
||||
${c3}_@FFFFF ${c4}VLLLP`
|
||||
${c3}J@@LL@" ${c4}`"
|
||||
${c3}V@@"
|
||||
""")
|
||||
|
||||
+19
-22
@@ -2,26 +2,23 @@
|
||||
|
||||
from . 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+:.
|
||||
""")
|
||||
aosc_os = AsciiArt(match=r'''"AOSC OS"*''', color='4 0 1 3', ascii=r'''
|
||||
${c2} __
|
||||
${c2}gpBBBBBBBBBP
|
||||
${c2}_gBBBBBBBBBRP
|
||||
${c2}4BBBBBBBBRP ${c4},_____
|
||||
${c2}`"" ${c4}_g@@@@@@@@@@@@@%g>
|
||||
${c4}__@@@@@@@@@@@@@@@@P" ${c1}___
|
||||
${c4}_g@@@@@@@@@@@@@@@N"` ${c1}_gN@@@@@N^
|
||||
${c4}_w@@@@@@@@@@@@@@@@P" ${c1}_g@@@@@@@P"
|
||||
${c4}_g@@@@@@@@@@@@@@@N"` ${c1}VMNN@NNNM^`
|
||||
${c4}^MMM@@@@@@@@@@@MP" ${c3},ggppww__
|
||||
${c4}`""""" ${c3}_wNNNNNNNNNNNNNNNNNNN
|
||||
${c3}_gBNNNNNNNNNNNNNNNNNP"
|
||||
${c3}_wNNNNNNNNNNNNNNNNNNMP`
|
||||
${c3}_gBNNNNNNNNNNNNNNNNNP"
|
||||
${c3}_wNNNNNNNNNNNNNNNNNNNM^
|
||||
${c3}""Y^^MNNNNNNNNNNNNP`
|
||||
${c3}`"""""""
|
||||
''')
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . 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}################
|
||||
""")
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . 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,30 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
arkane = AsciiArt(match=r'''"Arkane"*''', color='7 130 237', ascii=r"""
|
||||
${c3} .:..
|
||||
..:::......
|
||||
${c2}.${c3} .${c2}.${c3}.....
|
||||
${c2}+=${c3}...${c2}==${c3}....
|
||||
......:.${c1}:-${c2}:${c3}..${c1}+*${c2}=${c3}....
|
||||
${c2}:----::${c3}......
|
||||
${c2}.=***##*+=: ${c3}..
|
||||
${c2}=${c1}***######*${c2}=
|
||||
${c2}.${c1}-*######+
|
||||
${c2}:+${c1}###%%%###${c3}:
|
||||
${c2}-+*${c1}########+${c3}.
|
||||
${c2}=++*${c1}#######${c3}-
|
||||
${c2}-+=+**${c1}*####${c3}=
|
||||
${c3}.${c2}-=++==***${c1}##*${c1}-
|
||||
${c2}-++++++==++++=
|
||||
.-+++**+++=+===${c3}.
|
||||
${c2}:---===++++=-=--${c3}.
|
||||
${c2}-===============${c3}-==--:
|
||||
${c2}.-==+++***++*${c1}*#########${c3}=:::.
|
||||
${c2}.-=++++*++++**${c1}#######%%###${c3}=
|
||||
${c2}.:==++++++**${c1}#############${c3}:
|
||||
${c2}.${c3}-+*++*+++==${c1}###${c3}+
|
||||
-${c1}*+${c3}:
|
||||
""")
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
aster = AsciiArt(match=r'''"Aster"*''', color='6 6', ascii=r"""
|
||||
${c1} ...''...
|
||||
${c1} .;oOXWMWNXXXNMMN0d:.
|
||||
${c1} .oXMWOo;.. ..:oO;
|
||||
${c1} ;KMWx, co,
|
||||
${c1} 'KMNl dMMW.
|
||||
${c1} oMMx xMMMMk
|
||||
${c1} xMM: dMMMMMM;
|
||||
${c1} cMMl dMMMMMMMW
|
||||
${c1} NMK xMMMx::dXMx
|
||||
${c1} ,MMl xMMN' .o.
|
||||
${c1} cMM; dMMW'
|
||||
${c1} ;MMc oMMW,
|
||||
${c1} WMK dMMW, ccccccc.
|
||||
${c1} lMMl oMMM; ooooooo.
|
||||
${c1} OMMc ...
|
||||
${c1} xMMx
|
||||
${c1} ;XMN:
|
||||
${c1} ,.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
astra_linux = AsciiArt(match=r'''"Astra Linux"*''', color='160 231', ascii=r"""
|
||||
${c1} AA
|
||||
${c1} AaaA
|
||||
${c1} Aa${c2}/\${c1}aA
|
||||
${c1} Aa${c2}/${c1}aa${c2}\${c1}aA
|
||||
${c1} Aa${c2}/${c1}aAAa${c2}\${c1}aA
|
||||
${c1} aA${c2}/${c1}aaAAaa${c2}\${c1}Aa
|
||||
${c1} aA${c2}/${c1}aaAAAAaa${c2}\${c1}Aa
|
||||
${c1} aaaaaaAAAAa${c2}/${c1}aaAAAAAAaa${c2}\${c1}aAAAAaaaaa
|
||||
${c1} aAAa${c2}-----${c1}aaaaaAAAAAAAAAAaaaaa${c2}-----${c1}aAAa
|
||||
${c1} aAA${c2}\ ${c1}aAAAAAAAAAAAAAAAAAAAAAAa${c2} /${c1}AAa
|
||||
${c1} aAa${c2}\${c1}aAAA${c2}\${c1}AAAA${c2}\${c1}AAAA${c2}\${c1}AAA${c2}\${c1}AAa${c2}/${c1}aAa
|
||||
${c1} aAa${c2}\${c1}aA${c2}\\${c1}AAA${c2}\\${c1}AAA${c2}\\${c1}AA${c2}\\/${c1}aAa
|
||||
${c1} aAA${c2}\${c1}aA${c2}\\${c1}AAA${c2}\\${c1}AAA${c2}\\${c1}Aa${c2}/${c1}AAa
|
||||
${c1} aA${c2}\${c1}aA${c2}\\${c1}AAA${c2}\\${c1}AAA${c2}\\/${c1}Aa
|
||||
${c1} aA${c2}/${c1}AA${c2}\\\${c1}AA${c2}\\\${c1}AA${c2}\\\${c1}Aa
|
||||
${c1} aA${c2}/\${c1}AAa${c2}\\\${c1}Aa${c2}\\\${c1}Aa${c2}\\\${c1}Aa
|
||||
${c1} aA${c2}/\\${c1}AAa${c2}\\/\${c1}a${c2}\\\${c1}Aa${c2}\\${c1}Aa
|
||||
${c1} aA${c2}/${c1}a${c2}\\\${c1}Aa${c2}\/${c1}AA${c2}\\\\\${c1}Aa${c2}\\${c1}Aa
|
||||
${c1} aA${c2}/${c1}aA${c2}\\/${c1}aAa aAa${c2}\\\${c1}Aa${c2}\${c1}Aa
|
||||
${c1} aA${c2}/\${c1}A${c2}\/${c1}Aa aA${c2}\\${c1}A${c2}\\${c1}Aa
|
||||
${c1} A${c2}|/${c1}aaAa aAaa${c2}\|${c1}A
|
||||
${c1} aAaa aaAa
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
athena = AsciiArt(match=r'''"Athena"*''', color='7 3', ascii=r"""
|
||||
${c1} . ..
|
||||
${c1} :####: ####.
|
||||
${c1} .################
|
||||
${c1} :##################
|
||||
${c1}.###################.
|
||||
${c1}######## #######
|
||||
${c1}####### ${c2}####${c1} #####
|
||||
${c1}:#######. ####
|
||||
${c1} ######### ${c2}#${c1} ## #
|
||||
${c1} ####### ${c2}##${c1} ####
|
||||
${c1}######## ${c2}####${c1} #######
|
||||
${c1}######## ${c2}#####${c1} ########
|
||||
${c1}######## ${c2}#######${c1} #######
|
||||
${c1} ####### ${c2}########${c1} #######
|
||||
${c1} ######## ${c2}#########${c1} ######
|
||||
${c1} ######## ${c2}#########${c1} #####
|
||||
${c1} ####### ${c2}#########${c1} ####
|
||||
${c1} ####### ${c2}#########${c1} ##
|
||||
${c1} ####### ${c2}########${c1} ##
|
||||
${c1} ###### ${c2}########${c1} #
|
||||
${c1} ### ${c2}#######${c1}
|
||||
${c1} ${c2}######${c1}
|
||||
${c1} ${c2}####${c1}
|
||||
${c1} ${c2}##${c1}
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
azos = AsciiArt(match=r'''"azos"*''', color='6 1', ascii=r"""
|
||||
${c1} ////. ${c2} (((((
|
||||
${c1} //////// ${c2} @((((((((
|
||||
${c1} //////// ${c2} @((((((((
|
||||
${c1} //////// /////// ${c2} ((((((( @((((((((
|
||||
${c1} //////// ///////// ${c2} ((((((((( @((((((((
|
||||
${c1} //////// ///////// ${c2} ((((((((( @((((((((
|
||||
${c1} //////// ///////// ////// ${c2} (((((( ((((((((( @((((((((
|
||||
${c1} //////// ///////// //////// ${c2} (((((((( ((((((((( @((((((((
|
||||
${c1} //////// ///////// //////// ${c2} (((((((( ((((((((( @((((((((
|
||||
${c1} //////// ///////// //////// ${c2} ((((((( ((((((((( @((((((((
|
||||
${c1} //////// ///////// /// ${c2} ( ((((((((( @((((((((
|
||||
${c1} //////// ///////// ${c2} ((((((((( @((((((((
|
||||
${c1} //////// ///////// ${c2} &(((((((( @((((((((
|
||||
${c1} //////// ////// ${c2} @(((( @((((((((
|
||||
${c1} //////// ${c2} @((((((((
|
||||
${c1} //////// ${c2} @((((((((
|
||||
${c1} ///// ${c2} (((((
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
biglinux_large = AsciiArt(match=r'''"BigLinux_large"*''', color='2 3 4 7', ascii=r"""
|
||||
${c4}
|
||||
${c3}.cd0KXXX${c4}0${c3}x;
|
||||
${c3}.oXM${c4}M${c3}MMMMMMMMMWo
|
||||
${c2}... ${c3}dWMMMM${c4}M${c3}MMMMMMMMMMN,
|
||||
${c2}c0WMMMW0: ${c3}.XMMMM${c4}M${c3}MMMKdc;,;cxNMM:
|
||||
${c1}x, ${c2}.XMMMMMMMMM: ${c3}'W${c3}MMMMMMWo. ;KW.
|
||||
${c1}dM. ${c2}.WMMMMMMMM0 ${c3}N${c3}MMMM${c4}M${c3}Mk. dd
|
||||
${c1}.MM. ${c2}.lOKXKOl. ${c3}oMMMMMMd .l${c4}x${c3}kd: .
|
||||
${c1}kMM: .'.. ${c2}:xOOxc. ${c3}O${c4}M${c3}MMMM0 lXMMMMM${c4}M${c3}N;
|
||||
${c1}WMM0 lKMMMMMW0o. ${c2}KMMMMMMN. ${c3}xMM${c4}M${c3}M, .dWMMMMMMMMMM;
|
||||
${c1}.MMMMx .oWMMMMMMOl0MMX; ${c2}NMMMMMMM; ${c3}.NMMMM. .dWMMMM${c4}M${c3}MMMMMMMN
|
||||
${c1}.MMMMMNOKMMMMMMMk. 'MMMMx ${c2};MMMMMMMO ${c3}.KMMMl .oWMMMMMWk:,lWMMMM.
|
||||
${c1}xMMMMMMMMMMMMk. .MMMMMc ${c2}'XMMMMMMx ${c3}:0MMNMMMM${c4}M${c3}MWx. .WM${c4}M${c3}M.
|
||||
${c1}0MMMMMMMMWx. :MMMMMK ${c2}cKMMMMMX: ${c3},ok0K0x:. oMMN
|
||||
${c1}oNMMMM0c. .NMMMMMO ${c2}.lOWMMMX: ${c3}.M${c4}M${c3}o
|
||||
${c1}c. .'. .KMMMMMM: ${c2}.';clc. ${c3}MN
|
||||
${c1}:N; cWMMMMMMO ${c3}.W;
|
||||
${c1}0M0: 'dNMMMMMMM0 ${c3}',
|
||||
${c1}0MMMX0O0XMMMMMMMMMMo
|
||||
${c1}oWMMMMMMMMMMMMMMk.
|
||||
${c1}.oXMMMMMMMMW0c.
|
||||
${c1}.;ccc:,.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
blackmesa = AsciiArt(match=r'''"BlackMesa"''', color='1', ascii=r"""
|
||||
${c1}
|
||||
.-;+$XHHHHHHX$+;-.
|
||||
,;X@@X%/;=----=:/%X@@X/,
|
||||
=$@@%=. .=+H@X:
|
||||
-XMX: =XMX=
|
||||
/@@: =H@+
|
||||
%@X, .$@$
|
||||
+@X. $@%
|
||||
-@@, .@@=
|
||||
%@% +@$
|
||||
H@: :@H
|
||||
H@: :HHHHHHHHHHHHHHHHHHX, =@H
|
||||
%@% ;@M@@@@@@@@@@@@@@@@@H- +@$
|
||||
=@@, :@@@@@@@@@@@@@@@@@@@@@= .@@:
|
||||
+@X :@@@@@@@@@@@@@@@M@@@@@@:%@%
|
||||
$@$, ;@@@@@@@@@@@@@@@@@M@@@@@@$.
|
||||
+@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
|
||||
=X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
|
||||
:$@@@@@@@@@@@@@@@@@@@M@@@@$:
|
||||
,;$@@@@@@@@@@@@@@@@@@X/-
|
||||
.-;+$XXHHHHHX$+;-.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
chimera = AsciiArt(match=r'''"Chimera"*''', color='1 5 4 1', ascii=r"""
|
||||
${c3}ddddddddddddddc ${c1},cc:
|
||||
${c3}ddddddddddddddc ${c1},cc:
|
||||
${c3}ddddddddddddddd ${c1},cc:
|
||||
${c3}ddddddddddddl:' ${c1},cc:
|
||||
${c3}dddddddddl' ${c1}..;cc:
|
||||
${c3}dddddddo. ${c1},:cccccc:
|
||||
${c3}ddddddl ${c1},ccc:'''''
|
||||
${c3}dddddo. ${c1};ccc. ............
|
||||
.ccc. cccccccccccc
|
||||
${c2}...... ${c1}.ccc. .ccc'''''''''
|
||||
${c2}OOOOOk. ${c1};ccc. .ccc; ......
|
||||
${c2}OOOOOOd ${c1}'ccc:,....,:ccc' ${c4}coooooo
|
||||
${c2}OOOOOOOx. ${c1}':cccccccc:' ${c4}.looooooo
|
||||
${c2}OOOOOOOOOd, ${c1}`'''` ${c4}.coooooooo
|
||||
${c2}OOOOOOOOOOOOdc,. ${c4}..,coooooooooooo
|
||||
${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo
|
||||
${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo
|
||||
${c2}OOOOOOOOOOOOOOOO' ${c4}.oooooooooooooooo
|
||||
""")
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
container_linux_by_coreos = AsciiArt(match=r'''"Container Linux by CoreOS"* | "Container_Linux"*''', color='4 7 1', ascii=r"""
|
||||
container_linux_by_coreos = AsciiArt(match=r'''"Container Linux by CoreOS"* | "Container_Linux"* | "Fedora CoreOS" | "CoreOS"*''', color='4 7 1', ascii=r"""
|
||||
${c1} .....
|
||||
.';:cccccccc:;'.
|
||||
':ccccclc${c3}lllllllll${c1}cc:.
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
debian = AsciiArt(match=r'''"Debian"*''', color='1 7 3', ascii=r"""
|
||||
debian = AsciiArt(match=r'''"Debian"*''', color='1 7 3', ascii=r'''
|
||||
${c2} _,met$$$$$gg.
|
||||
,g$$$$$$$$$$$$$$$P.
|
||||
,g$$P" "\""Y$$.".
|
||||
,g$$P" """Y$$.".
|
||||
,$$P' `$$$.
|
||||
',$$P ,ggs. `$$b:
|
||||
`d$$' ,$P"' ${c1}.${c2} $$$
|
||||
@@ -19,6 +19,6 @@ ${c2} `Y$$
|
||||
`$$b.
|
||||
`Y$$b.
|
||||
`"Y$b._
|
||||
`"\""
|
||||
""")
|
||||
`"""
|
||||
''')
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
digital_unix = AsciiArt(match=r'''"digital UNIX"*''', color='1 6 7', ascii=r"""
|
||||
${c1} +-+-+-+-+-+-+-+
|
||||
|${c3}d${c1}|${c3}i${c1}|${c3}g${c1}|${c3}i${c1}|${c3}t${c1}|${c3}a${c1}|${c3}l${c1}|
|
||||
+-+-+-+-+-+-+-+
|
||||
${c2} _ _ _ _ _______ __
|
||||
| | | | \ | |_ _\ \ / /
|
||||
| | | | \| | | | \ V /
|
||||
| | | | . ` | | | > <
|
||||
| |__| | |\ |_| |_ / . \
|
||||
\____/|_| \_|_____/_/ \_\
|
||||
""")
|
||||
|
||||
@@ -8,6 +8,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
if not name:
|
||||
return None
|
||||
name = name.lower()
|
||||
if name.startswith('adélie') or name.startswith('adelie'):
|
||||
from .adelie import adelie
|
||||
return adelie
|
||||
|
||||
if name.startswith('aix'):
|
||||
from .aix import aix
|
||||
return aix
|
||||
@@ -88,13 +92,9 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .antix import antix
|
||||
return antix
|
||||
|
||||
if name.startswith('aosc os/retro'):
|
||||
from .aosc_os_retro import aosc_os_retro
|
||||
return aosc_os_retro
|
||||
|
||||
if name == 'aoscosretro_small':
|
||||
from .aoscosretro_small import aoscosretro_small
|
||||
return aoscosretro_small
|
||||
if name.startswith('afterglow'):
|
||||
from .afterglow import afterglow
|
||||
return afterglow
|
||||
|
||||
if name.startswith('aosc os'):
|
||||
from .aosc_os import aosc_os
|
||||
@@ -124,6 +124,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .arcolinux import arcolinux
|
||||
return arcolinux
|
||||
|
||||
if name.startswith('arkane'):
|
||||
from .arkane import arkane
|
||||
return arkane
|
||||
|
||||
if name == 'arch_small':
|
||||
from .arch_small import arch_small
|
||||
return arch_small
|
||||
@@ -160,10 +164,18 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .archmerge import archmerge
|
||||
return archmerge
|
||||
|
||||
if name.startswith('aeros'):
|
||||
from .aeros import aeros
|
||||
return aeros
|
||||
|
||||
if name.startswith('arch'):
|
||||
from .arch import arch
|
||||
return arch
|
||||
|
||||
if name.startswith('unicodearch'):
|
||||
from .unicodearch import unicodearch
|
||||
return unicodearch
|
||||
|
||||
if name.startswith('artix_small'):
|
||||
from .artix_small import artix_small
|
||||
return artix_small
|
||||
@@ -184,14 +196,22 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .asteroidos import asteroidos
|
||||
return asteroidos
|
||||
|
||||
if name.startswith('aster'):
|
||||
from .aster import aster
|
||||
return aster
|
||||
if name.startswith('athena'):
|
||||
from .athena import athena
|
||||
return athena
|
||||
|
||||
if name.startswith('azos'):
|
||||
from .azos import azos
|
||||
return azos
|
||||
|
||||
if name.startswith('bedrock'):
|
||||
from .bedrock import bedrock
|
||||
return bedrock
|
||||
|
||||
if name.startswith('biglinux_large'):
|
||||
from .biglinux_large import biglinux_large
|
||||
return biglinux_large
|
||||
|
||||
if name.startswith('biglinux'):
|
||||
from .biglinux import biglinux
|
||||
return biglinux
|
||||
@@ -204,6 +224,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .blackarch import blackarch
|
||||
return blackarch
|
||||
|
||||
if name == 'blackmesa':
|
||||
from .blackmesa import blackmesa
|
||||
return blackmesa
|
||||
|
||||
if name.startswith('blackpanther') or name.startswith('blackpanther'):
|
||||
from .blackpanther import blackpanther
|
||||
return blackpanther
|
||||
@@ -292,6 +316,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .chapeau import chapeau
|
||||
return chapeau
|
||||
|
||||
if name.startswith('chimera'):
|
||||
from .chimera import chimera
|
||||
return chimera
|
||||
|
||||
if name.startswith('chonkysealos'):
|
||||
from .chonkysealos import chonkysealos
|
||||
return chonkysealos
|
||||
@@ -324,7 +352,7 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .condres import condres
|
||||
return condres
|
||||
|
||||
if name.startswith('container linux by coreos') or name.startswith('container_linux'):
|
||||
if name.startswith('container linux by coreos') or name.startswith('container_linux') or name == 'fedora coreos' or name.startswith('coreos'):
|
||||
from .container_linux_by_coreos import container_linux_by_coreos
|
||||
return container_linux_by_coreos
|
||||
|
||||
@@ -368,6 +396,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .debian import debian
|
||||
return debian
|
||||
|
||||
if name.startswith('digital unix'):
|
||||
from .digital_unix import digital_unix
|
||||
return digital_unix
|
||||
|
||||
if name.startswith('droidian'):
|
||||
from .droidian import droidian
|
||||
return droidian
|
||||
@@ -376,6 +408,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .deepin import deepin
|
||||
return deepin
|
||||
|
||||
if name.startswith('openkylin'):
|
||||
from .openkylin import openkylin
|
||||
return openkylin
|
||||
|
||||
if name == 'desaos':
|
||||
from .desaos import desaos
|
||||
return desaos
|
||||
@@ -428,6 +464,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .elive import elive
|
||||
return elive
|
||||
|
||||
if name.startswith('endeavouros_small'):
|
||||
from .endeavouros_small import endeavouros_small
|
||||
return endeavouros_small
|
||||
|
||||
if name.startswith('endeavouros'):
|
||||
from .endeavouros import endeavouros
|
||||
return endeavouros
|
||||
@@ -448,6 +488,14 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .eurolinux import eurolinux
|
||||
return eurolinux
|
||||
|
||||
if name.startswith('evolutionos'):
|
||||
from .evolutionos import evolutionos
|
||||
return evolutionos
|
||||
|
||||
if name.startswith('eweos'):
|
||||
from .eweos import eweos
|
||||
return eweos
|
||||
|
||||
if name.startswith('exherbo'):
|
||||
from .exherbo import exherbo
|
||||
return exherbo
|
||||
@@ -460,6 +508,22 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .fedora_old import fedora_old
|
||||
return fedora_old
|
||||
|
||||
if name == 'fedora_unicode':
|
||||
from .fedora_unicode import fedora_unicode
|
||||
return fedora_unicode
|
||||
|
||||
if name == 'fedora silverblue' or name.startswith('silverblue'):
|
||||
from .fedora_silverblue import fedora_silverblue
|
||||
return fedora_silverblue
|
||||
|
||||
if name.startswith('fedora kinoite') or name.startswith('kinoite'):
|
||||
from .fedora_kinoite import fedora_kinoite
|
||||
return fedora_kinoite
|
||||
|
||||
if name.startswith('fedora sericea') or name.startswith('sericea'):
|
||||
from .fedora_sericea import fedora_sericea
|
||||
return fedora_sericea
|
||||
|
||||
if name.startswith('fedora'):
|
||||
from .fedora import fedora
|
||||
return fedora
|
||||
@@ -468,10 +532,18 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .feren import feren
|
||||
return feren
|
||||
|
||||
if name.startswith('femboyos'):
|
||||
from .femboyos import femboyos
|
||||
return femboyos
|
||||
|
||||
if name.startswith('finnix'):
|
||||
from .finnix import finnix
|
||||
return finnix
|
||||
|
||||
if name.startswith('furreto'):
|
||||
from .furreto import furreto
|
||||
return furreto
|
||||
|
||||
if name == 'freebsd_small':
|
||||
from .freebsd_small import freebsd_small
|
||||
return freebsd_small
|
||||
@@ -588,6 +660,14 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .iglunix import iglunix
|
||||
return iglunix
|
||||
|
||||
if name.startswith('interix'):
|
||||
from .interix import interix
|
||||
return interix
|
||||
|
||||
if name.startswith('ironclad'):
|
||||
from .ironclad import ironclad
|
||||
return ironclad
|
||||
|
||||
if name.startswith('januslinux') or name.startswith('janus') or name.startswith('ataraxia linux') or name.startswith('ataraxia'):
|
||||
from .januslinux import januslinux
|
||||
return januslinux
|
||||
@@ -632,6 +712,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .kubuntu import kubuntu
|
||||
return kubuntu
|
||||
|
||||
if name.startswith('lainos'):
|
||||
from .lainos import lainos
|
||||
return lainos
|
||||
|
||||
if name.startswith('lede'):
|
||||
from .lede import lede
|
||||
return lede
|
||||
@@ -656,6 +740,14 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .linux import linux
|
||||
return linux
|
||||
|
||||
if name == 'linuxfromscratch' or name.endswith('lfs') or name == 'linux-from-scratch' or name == 'linux_from_scratch':
|
||||
from .linuxfromscratch import linuxfromscratch
|
||||
return linuxfromscratch
|
||||
|
||||
if name == 'linux_small':
|
||||
from .linux_small import linux_small
|
||||
return linux_small
|
||||
|
||||
if name.startswith('linuxlite_small'):
|
||||
from .linuxlite_small import linuxlite_small
|
||||
return linuxlite_small
|
||||
@@ -676,6 +768,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .lunar import lunar
|
||||
return lunar
|
||||
|
||||
if name.startswith('macaronios') or name.startswith('macaroni os'):
|
||||
from .macaronios import macaronios
|
||||
return macaronios
|
||||
|
||||
if name == 'mac"*"_small':
|
||||
from .mac_small import mac_small
|
||||
return mac_small
|
||||
@@ -692,10 +788,22 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .mageia import mageia
|
||||
return mageia
|
||||
|
||||
if name.startswith('magix'):
|
||||
from .magix import magix
|
||||
return magix
|
||||
|
||||
if name.startswith('magpieos'):
|
||||
from .magpieos import magpieos
|
||||
return magpieos
|
||||
|
||||
if name.startswith('mainsailos_small'):
|
||||
from .mainsailos_small import mainsailos_small
|
||||
return mainsailos_small
|
||||
|
||||
if name.startswith('mainsailos'):
|
||||
from .mainsailos import mainsailos
|
||||
return mainsailos
|
||||
|
||||
if name.startswith('mandriva') or name.startswith('mandrake'):
|
||||
from .mandriva import mandriva
|
||||
return mandriva
|
||||
@@ -720,6 +828,14 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .maui import maui
|
||||
return maui
|
||||
|
||||
if name.startswith('mauna'):
|
||||
from .mauna import mauna
|
||||
return mauna
|
||||
|
||||
if name.startswith('meowix'):
|
||||
from .meowix import meowix
|
||||
return meowix
|
||||
|
||||
if name.startswith('mer'):
|
||||
from .mer import mer
|
||||
return mer
|
||||
@@ -796,10 +912,18 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .nixos_old import nixos_old
|
||||
return nixos_old
|
||||
|
||||
if name.startswith('nixos_colorful'):
|
||||
from .nixos_colorful import nixos_colorful
|
||||
return nixos_colorful
|
||||
|
||||
if name.startswith('nixos'):
|
||||
from .nixos import nixos
|
||||
return nixos
|
||||
|
||||
if name.startswith('nobara'):
|
||||
from .nobara import nobara
|
||||
return nobara
|
||||
|
||||
if name.startswith('nomadbsd'):
|
||||
from .nomadbsd import nomadbsd
|
||||
return nomadbsd
|
||||
@@ -852,9 +976,9 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .openstage import openstage
|
||||
return openstage
|
||||
|
||||
if name.startswith('openwrt'):
|
||||
from .openwrt import openwrt
|
||||
return openwrt
|
||||
if (name.startswith('wrt') or name.endswith('wrt')):
|
||||
from .wrt import wrt
|
||||
return wrt
|
||||
|
||||
if name.startswith('open source media center') or name == 'osmc':
|
||||
from .open_source_media_center import open_source_media_center
|
||||
@@ -884,6 +1008,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .pacbsd import pacbsd
|
||||
return pacbsd
|
||||
|
||||
if name.startswith('panwah'):
|
||||
from .panwah import panwah
|
||||
return panwah
|
||||
|
||||
if name.startswith('parabola_small'):
|
||||
from .parabola_small import parabola_small
|
||||
return parabola_small
|
||||
@@ -932,6 +1060,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .pikaos import pikaos
|
||||
return pikaos
|
||||
|
||||
if name.startswith('phyos'):
|
||||
from .phyos import phyos
|
||||
return phyos
|
||||
|
||||
if name.startswith('pnm linux') or name.startswith('whpnm linux'):
|
||||
from .pnm_linux import pnm_linux
|
||||
return pnm_linux
|
||||
@@ -976,6 +1108,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .pureos import pureos
|
||||
return pureos
|
||||
|
||||
if name.startswith('peropesis'):
|
||||
from .peropesis import peropesis
|
||||
return peropesis
|
||||
|
||||
if name.startswith('q4os'):
|
||||
from .q4os import q4os
|
||||
return q4os
|
||||
@@ -1056,6 +1192,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .rosa import rosa
|
||||
return rosa
|
||||
|
||||
if name.startswith('astra linux'):
|
||||
from .astra_linux import astra_linux
|
||||
return astra_linux
|
||||
|
||||
if name.startswith('sabotage'):
|
||||
from .sabotage import sabotage
|
||||
return sabotage
|
||||
@@ -1084,6 +1224,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .salient_os import salient_os
|
||||
return salient_os
|
||||
|
||||
if name.startswith('salix'):
|
||||
from .salix import salix
|
||||
return salix
|
||||
|
||||
if name.startswith('scientific'):
|
||||
from .scientific import scientific
|
||||
return scientific
|
||||
@@ -1104,6 +1248,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .siduction import siduction
|
||||
return siduction
|
||||
|
||||
if name.startswith('slackel'):
|
||||
from .slackel import slackel
|
||||
return slackel
|
||||
|
||||
if name.startswith('slackware_small'):
|
||||
from .slackware_small import slackware_small
|
||||
return slackware_small
|
||||
@@ -1276,6 +1424,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .urukos import urukos
|
||||
return urukos
|
||||
|
||||
if name.startswith('venom_small'):
|
||||
from .venom_small import venom_small
|
||||
return venom_small
|
||||
|
||||
if name.startswith('venom'):
|
||||
from .venom import venom
|
||||
return venom
|
||||
@@ -1324,10 +1476,18 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .windows_10 import windows_10
|
||||
return windows_10
|
||||
|
||||
if name == 'windows95':
|
||||
from .windows95 import windows95
|
||||
return windows95
|
||||
|
||||
if name.startswith('windows'):
|
||||
from .windows import windows
|
||||
return windows
|
||||
|
||||
if name.startswith('xray_os'):
|
||||
from .xray_os import xray_os
|
||||
return xray_os
|
||||
|
||||
if name.startswith('xubuntu'):
|
||||
from .xubuntu import xubuntu
|
||||
return xubuntu
|
||||
@@ -1344,6 +1504,18 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .irix import irix
|
||||
return irix
|
||||
|
||||
if name.startswith('xenia2'):
|
||||
from .xenia2 import xenia2
|
||||
return xenia2
|
||||
|
||||
if name.startswith('xenia'):
|
||||
from .xenia import xenia
|
||||
return xenia
|
||||
|
||||
if name.startswith('tatra'):
|
||||
from .tatra import tatra
|
||||
return tatra
|
||||
|
||||
if name.startswith('zorin'):
|
||||
from .zorin import zorin
|
||||
return zorin
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
endeavouros_small = AsciiArt(match=r'''"endeavouros_small"*''', color='1 5 4', ascii=r"""
|
||||
${c1} /${c2}o${c3}.
|
||||
${c1} :${c2}sssso${c3}-
|
||||
${c1} :${c2}ossssssso${c3}:
|
||||
${c1} /${c2}ssssssssssso${c3}+
|
||||
${c1} -+${c2}ssssssssssssssso${c3}+
|
||||
${c1} //${c2}osssssssssssssso${c3}+-
|
||||
`+++++++++++++++-`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
evolutionos = AsciiArt(match=r'''"EvolutionOS"*''', color='4 7', ascii=r"""
|
||||
${c1}\e[1;32m dddddddddddddddddddddddd
|
||||
.dddd''''''''''''''''''''''dddd.
|
||||
dd: dddddddddddddddddddd; dd:
|
||||
dd: ldl:'''''''''''''''' dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: ddddddd; ddddd; dd:
|
||||
dd: ldl: ''''''' ''''' dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: ddddddddddddddd; dd:
|
||||
dddd:.''' ''''''''''''''' dddd:
|
||||
dddddddddddddddddddddddddd;;'
|
||||
'''''''''''''''''''''''''\e[0m
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
eweos = AsciiArt(match=r'''"eweOS"*''', color='7 11 9 8 1', ascii=r"""
|
||||
${c2} #####%%%
|
||||
${c2} ##%%${c3}////${c2}%%%%%${c3}///
|
||||
${c2} #%%%%${c3}////((((////${c2}%
|
||||
${c1} *@@@@@@@${c3}/${c5},,,${c3}/////${c5},,,${c2}%${c1}@@@@@@@
|
||||
${c1} .@@@@@@@@@@@${c3}////////${c2}%%%${c1}@@@@@@@@@@@@
|
||||
${c1} @@@${c4}...${c1}@@@@@@${c3}////${c2}%%${c3}////${c1}@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@@@@@@@@@@@@@@@@@@
|
||||
${c1} @@@@@@ @@@@@@
|
||||
${c1} @@@ @@@
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
fedora_kinoite = AsciiArt(match=r'''"Fedora Kinoite"* | "Kinoite"*''', color='12 7', ascii=r"""
|
||||
${c1} ,clll:.${c2} .,::::::::::::'
|
||||
${c1}:ooooooo${c2} .;::::::::::::::
|
||||
${c1}looooooo${c2} ,:::::::::::::::'
|
||||
${c1}looooooo${c2} .::::::::::::::::
|
||||
${c1}looooooo${c2} ;:::::::::::::::.
|
||||
${c1}looooooo${c2} .::::::::::::::::
|
||||
${c1}looooool${c2};;;;,::::::::::::::::
|
||||
${c1}looool${c2}::, .::::::::::::::
|
||||
${c1}looooc${c2}:: ;::
|
||||
${c1}looooc${c2}::;. .::;
|
||||
${c1}loooool${c2}:::::::::::.
|
||||
${c1}looooooo${c2}. .::::::'
|
||||
${c1}looooooo${c2} .::::::,;,..
|
||||
${c1}looooooo${c2} :::;' ';:;.
|
||||
${c1}looooooo${c2} ::: :::
|
||||
${c1}cooooooo${c2} .::' '::.
|
||||
${c1}.ooooc ${c2} ::, ,::
|
||||
''''
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
fedora_sericea = AsciiArt(match=r'''"Fedora Sericea"* | "Sericea"*''', color='12 7', ascii=r"""
|
||||
${c1} :oooo, .','
|
||||
.';;;.;oooooooolooooo'
|
||||
coooooooooooooooooooooooolc'
|
||||
.':oooooooooooo${c2}ll${c1}ooooooooooooool
|
||||
.oooooooooooooooo${c2}ll${c1}oooooooooooo${c2}l${c1}ool
|
||||
ooooooooooooooooo${c2}ll${c1}ooooooooooo${c2}ll${c1}oo'
|
||||
oooo${c2}l${c1}oooooooooo${c2}lll${c1}ooooooooo${c2}lll${c1}oo
|
||||
.ooooo${c2}lll${c1}ooooo${c2}lll${c1}ooooooooo${c2}lll${c1}ool
|
||||
.ooooooo${c2}lll${c1}oo${c2}llll${c1}oooo${c2}lllll${c1}ooooo:
|
||||
'oooooooo${c2}llllllllllll${c1}oooooooo'
|
||||
.c,.oo${c2}lllll${c1}oooooooo.${c2}
|
||||
'll;
|
||||
'll.
|
||||
lll
|
||||
lll
|
||||
;ll,
|
||||
.l:
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
fedora_silverblue = AsciiArt(match=r'''"Fedora Silverblue" | "Silverblue"*''', color='4 7 12', ascii=r"""
|
||||
${c1} .;ooooooooooooooooooooooooooo.
|
||||
${c1} ,dddddddddddddddddddddddddddddd'${c3};
|
||||
${c1} lddddddddddddddddddddddddddddd'${c3};;;
|
||||
${c1}ddddd${c2},XXX.${c1}ddddd${c2},XXX.${c1}dddd'${c2},XXX.${c3};;;;;
|
||||
${c1}ddddd${c2}XX${c1}x${c2}XX${c1}ddddd${c2}XX${c1}x${c2}XX${c1}ddd'${c2},XX${c3}x${c2}XX${c3};;;;;
|
||||
${c1}ddddd${c2}'XXX'${c1}ddddd${c2}'XXX'${c1}dd'${c2}XXXXXX'${c3};;;;;
|
||||
${c1}dddddd${c2};X;${c1}ddddddd${c2};X:${c1}d'${c2}XXX${c3};;;;;;;;;;;
|
||||
${c1}dddddd${c2};X;${c1}ddddddd${c2};X:${c2}XXX${c3};;;;;;;;;;;;;
|
||||
${c1}dddddd${c2};X;${c1}dddddd'${c2};XXX,,,,,,XXX.${c3};;;;;
|
||||
${c1}dddddd${c2};X;${c1}dddd'${c2}XXXX${c2}XXXXXXXXX${c3}x${c2}XX${c3};;;;;
|
||||
${c1}dddddd${c2};X;${c1}dd'${c2}XXX${c3};;;;;;;;;;;${c2}XXX${c3};;;;;;
|
||||
${c1}dddddd${c2};X;${c1}'${c2}XXX${c3};;;;;;;;;;;;;;;;;;;;;;
|
||||
${c1}dddddd${c2};XXXXX,,,,,,,,,,,,,;XXX:${c3};;;;;
|
||||
${c1}dddddd${c2}:XXXXXXXXXXXXXXXXXXXX${c3}x${c2}XX${c3};;;;;
|
||||
${c1}ddddd'${c3};;;;;;;;;;;;;;;;;;;${c2}'XXX'${c3};;;;'
|
||||
${c1}ddd'${c3};;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
${c1}o'${c3};;;;;;;;;;;;;;;;;;;;;;;;;;;;'
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
fedora_unicode = AsciiArt(match=r'''"Fedora_unicode"''', color='12 7', ascii=r"""
|
||||
${c1} ▄████████████████████▄
|
||||
▄████████████████████████▄
|
||||
▄████████████████████████████▄
|
||||
▄███████████████${c2} ${c1}█████████▄
|
||||
▄████████████████${c2} ${c1}██████████▄
|
||||
████████████████${c2} ${c1}████${c2} ${c1}██████████
|
||||
████████████████${c2} ${c1}████${c2} ${c1}██████████
|
||||
████████████████${c2} ${c1}██████████████████
|
||||
█████████${c2} ${c1}▀█${c2} ${c1}██████████████
|
||||
███████${c2} ${c1}█${c2} ${c1}██████████████
|
||||
██████${c2} ${c1}██████${c2} ${c1}██████████████████
|
||||
██████${c2} ${c1}███████${c2} ${c1}██████████████████
|
||||
██████${c2} ${c1}███${c2} ${c1}███████████████████
|
||||
███████${c2} ${c1}██████████████████▀
|
||||
█████████${c2} ${c1}██████████████████▀
|
||||
████████████████████████████████▀
|
||||
▀█████████████████████████████▀
|
||||
▀█████████████████████████▀
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
femboyos = AsciiArt(match=r'''"FemboyOS"*''', color='4', ascii=r"""
|
||||
${c1}MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
||||
MMMMWKkxkKWMMMMMMMMMMMMMMMMMMMMWKkxkKWMM
|
||||
MMMMXo. .;xKWMMMMMMMMMMMMMMMMMMXo. .oXMM
|
||||
MMWXx,..'..oXMMMMMMMMMMMMMMMMWKx, .lXMM
|
||||
MMNo. .cOc.,xKWMMMMMMMMMMMMWXx;.....cXMM
|
||||
MMXl..;kKl. .oXMMMMMMMMMMWKx;..,ok:.'o0W
|
||||
WKx,.cKWNk;..lXMMMMMMMMWKx;..,o0NXl. .oN
|
||||
No. .lXMMWKc.,dKWMMMMMMNo..;d0NWMNx,..lX
|
||||
Nk:,:kNMMMNk:,ckNMMMMMMNxcxXWMMMMMN0ockN
|
||||
MWNNNWMMMMMWNNNWMMMMMMMMWWWMMMMMMMMMWWWM
|
||||
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
||||
MMMMMMMNXKXNWMMMMMMMMMMMWNKOKWMMMMMMMMMM
|
||||
MMMMMMWKdccxXMMMMMMMMMMW0o'.oXMMMMMMMMMM
|
||||
MMMMMMMNO:.'o0NKkkkkkOXXo. .lXMMMMMMMMMM
|
||||
MMMMMMMMNx,..;o;. .:o,..;kNMMMMMMMMMM
|
||||
MMMMMMMMMNO: ... .cKWMMMMMMMMMMM
|
||||
MMMMMMMMMMNx,. .;dk:. .;kNMMMMMMMMMMMM
|
||||
MMMMMMMMMMMN0ocxXWNkl:,:xXWMMMMMMMMMMMMM
|
||||
MMMMMMMMMMMMMWNWMMMWWNNNWMMMMMMMMMMMMMMM
|
||||
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
furreto = AsciiArt(match=r'''"Furreto"*''', color='211 255 225 199', ascii=r"""
|
||||
${c1}
|
||||
${c1}.xOOko .odd,
|
||||
o${c3}X${c2}WWK${c3}O${c1}OOO. 'O${c3}N${c2}WW${c3}0${c1}kkk.
|
||||
.k0${c3}XKO${c1}OOOOOcOO${c2}NWN${c1}OOOOO.
|
||||
xOOOOOOOOOkkOOOOOOOOO;
|
||||
.O0OkkocxO000000kcdk0OO0OOkx
|
||||
k${c3}W${c2}MX${c1}kkkkloxkkkx; :dxxxxddc...
|
||||
'kO0OOOOOkc .cl:..kk0KK0Okc
|
||||
;kOOO0000xd. dO00000Oo .xkO${c3}N${c2}MM${c3}X${c1}OOOO
|
||||
.dddxkOOOkddc.k${c3}K${c2}NWW${c3}N${c1}000000l.ddk${c2}00${c1}00OOOO.
|
||||
'dd:;ddddd;.d${c3}K${c2}MMM${c3}W${c1}K00KKK0O::ddxkO00Oko
|
||||
.okxkOKK0kkOO00KKOxxlodddddddl
|
||||
.00OOkkkkkkkkOOO00OOOO0O; .dddl
|
||||
'kkkkkxxkkkkkkkOOkxdxkxxddd.
|
||||
cddddddddxxkkkkk${c4}xddddddddddo
|
||||
'ddddddodddddddddddddddddddc
|
||||
.ddddddodddddddddodddddddc
|
||||
.odddo.
|
||||
|
||||
.kOOkkk;
|
||||
lkKWNkkkxc
|
||||
kkxkkkkkkx.
|
||||
,,..xxx.
|
||||
""")
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
haiku = AsciiArt(match=r'''"Haiku"*''', color='1 3 7 2', ascii=r"""
|
||||
haiku = AsciiArt(match=r'''"Haiku"*''', color='1 3 7 2', ascii=r'''
|
||||
${c3}
|
||||
|
||||
MMMM MMMM
|
||||
@@ -16,6 +16,6 @@ ${c3} MMMM${c4} .cOMMMMM|/MMMMM/`
|
||||
MM${c4}MMMMMMM/`:MMM/ ${c3}MMMM
|
||||
MMMM MMMM
|
||||
MMMM MMMM
|
||||
"\"\"" "\"\""
|
||||
""")
|
||||
"""" """"
|
||||
''')
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
interix = AsciiArt(match=r'''"Interix"*''', color='1 7 4 0 3', ascii=r"""
|
||||
${c1} .${c3}.
|
||||
${c1} 75${c3}G!
|
||||
${c1} ^?PG${c3}&&J.
|
||||
${c1} :!5GPP${c3}&&&B!
|
||||
${c1} :YPPPPP${c3}&&&&&Y:
|
||||
${c1} !5PPPPPP${c3}&&&&&&B!
|
||||
${c1} :?PPPPPPPP${c3}&&&&&&&&Y~
|
||||
${c1} !5PPPPPPPPP${c3}###&&&&&&B7
|
||||
${c1} :?PPPP5555555${c3}B####&&&&&&5:
|
||||
${c1} ~5PPPP555YJ${c5}7!~7?${c3}5B###&&&&&B?.
|
||||
${c1} .:JPPPP5555Y${c5}?^....:^?${c3}G####&&&&&5:
|
||||
${c1} 75PPP555555Y${c5}7:....:^!${c3}5#####&&&&&B7.
|
||||
${c1} :JPPPP${c2}555555YY?${c5}~::::^~${c2}7YPGBB###${c3}&&&&&5^
|
||||
${c1}75${c2}GGPPPPPP555555YJ?77??YYYYYY55PPGGB#${c3}&B?
|
||||
${c2}~!!7JY5PGGBBBBBBBBGGGGGGGBGGGGGP5YJ?7~~~
|
||||
.::^~7?JYPGBB#BGPYJ?7!7^:.
|
||||
..:^...
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
ironclad = AsciiArt(match=r'''"Ironclad"*''', color='5 7 0', ascii=r"""
|
||||
${c3}
|
||||
&#BGPPPPPG#&
|
||||
B5?77!!?YJJ7!7YBB&
|
||||
&G5YJ77!7JYYYYYBPJ&PY#
|
||||
#PYYYYYY?!?YYYYY7?7JP5JJ
|
||||
B?YYYYYY7!!7JYYYYJ!!?JJJ5
|
||||
&& B7?J?77?7!!!!!77777!7Y5YYBBPGGG&
|
||||
G77?YBB!!!!!!!!!!!!!JYJ??7JYJJY# PYPPG&
|
||||
J777JB?!7JJ???!!!7?JYYYYYPJ!7JB
|
||||
GYYG #JJJJJ??7!!!JYYY5PGB&GB&
|
||||
#Y!?GB5YYJY5PG###&
|
||||
GJJP
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
lainos = AsciiArt(match=r'''"LainOS"*''', color='4 14 7 2 3 5', ascii=r"""
|
||||
${c2} /==\
|
||||
\==/
|
||||
${c1} · · · · · · ·
|
||||
· · · · · · · · · ·
|
||||
· · · ${c2}.-======-.${c1}· · · ·
|
||||
${c2} .::.${c1} ·${c2}.-============-.${c1}· ${c2}.::.
|
||||
.:==:${c1}· ${c2}.:===:'${c1}. ·· .${c2}':===:.${c1} ·${c2}:==:.
|
||||
.:===:${c1} · ${c2}:===.${c1} · ${c3}.--.${c1} · ${c2}.===:${c1} · ${c2}:===:.
|
||||
:===:${c1}· · ${c2}:===.${c1} · ${c3}.:====:.${c1} · ${c2}.===:${c1} · ·${c2}:===:
|
||||
(===:${c1}· · ${c2}:===-${c1} · ${c3}:======:${c1} · ${c2}-===:${c1} · ·${c2}:===)
|
||||
:===:${c1}· · ${c2}:===.${c1} · ${c3}':====:'${c1} · ${c2}.===:${c1} · ·${c2}:===:
|
||||
':===:${c1} · ${c2}:===.${c1} · ${c3}'--'${c1} · ${c2}.===:${c1} · ${c2}:===:'
|
||||
':==:${c1}· ${c2}':===:.${c1}' ·· '${c2}.:===:'${c1} ·${c2}:==:'
|
||||
'::'${c1} · ${c2}'===-. .-==='${c1} · ${c2}'::'
|
||||
${c2}/==\${c1} · · · ${c2}:=== ===:${c1} · · · ${c2}/==\
|
||||
\==/${c1} · · ·${c2}:===${c1} ·${c2}===:${c1}· · · ${c2}\==/${c2}
|
||||
.-. ${c1}· ${c2}:===${c1}· ${c2}===:${c1} ·${c2} ${c2}.-.
|
||||
.===. .=== ===. .===.
|
||||
.======== ========.
|
||||
''''' '''''
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
linux_small = AsciiArt(match=r'''"Linux_small"''', color='fg 8 3', ascii=r"""
|
||||
${c2} ___
|
||||
${c2} (${c1}.. ${c2}|
|
||||
${c2} (${c3}<> ${c2}|
|
||||
${c2} / ${c1}__ ${c2}\
|
||||
${c2} ( ${c1}/ \ ${c2}/|
|
||||
${c3}_${c2}/\ ${c1}__)${c2}/${c3}_${c2})
|
||||
${c3}\/${c2}-____${c3}\/
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
linuxfromscratch = AsciiArt(match=r'''"LinuxFromScratch" | *"LFS" | "linux-from-scratch" | "linux_from_scratch"''', color='fg 8 3', ascii=r"""
|
||||
${c2} .:@:.
|
||||
${c2} :@@@@@@@:
|
||||
${c2} @@@@@@@@@-
|
||||
${c2} .:%. @@@@@@@@@+. @%
|
||||
${c2} *@@@%+: :@@@@@@@%=: .=%@@@@@@=
|
||||
${c2} :@@@@@@##@@@@@@@@@%*+%@%+@@@@@@@+
|
||||
${c2} @@#${c1}####${c2}+@@@@@@@%:${c1}######${c2}=@@@@@@@@@-
|
||||
${c2} *@%${c1}######${c2}.@@@@@#${c1}#########${c2}-@@@@@@@@#.
|
||||
${c2} %@-${c1}#${c2}.@${c1}=${c2}:${c1}##${c2}+@@@@-${c1}###${c2}%@${c1}:${c2}=${c1}###${c2}*@#*+=-+#:
|
||||
${c2} @@.${c1}#${c2}@@*${c1}=${c2}:${c1}#${c2}-%%**-${c1}##${c2}%@@%${c1}*${c2}*${c1}###${c2}#=-
|
||||
${c2} @@-${c1}#${c2}@@@@+.-${c3}...${c2}:=.${c1}#${c2}%@@@@%${c1}###${c2}#-
|
||||
${c2} %@%${c1}##${c2}*#:${c3}.o.....o...${c2}-%@+${c1}###${c2}#@+ -:
|
||||
${c2} +@@*${c1}#${c3}....................${c2}+@@@@@@@@+
|
||||
${c2} @%:${c3}....................._:${c2}@@@@@@@=.
|
||||
${c2} .=:${c3}...............__*-=`.${c2}=@@@@@@#=.
|
||||
${c2} :+:${c3}....:==*__*-=`:..==-:${c2}#@@@@@%+:
|
||||
${c2} .--=-: ${c3}+..::.....-: ${c2}=%@*=:
|
||||
${c2} :........-
|
||||
${c2} .:...--.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
macaronios = AsciiArt(match=r'''"MacaroniOS"* | "Macaroni OS"*''', color='2 3 15 14', ascii=r"""
|
||||
${c2}
|
||||
-=+++==--::.. .-+++==-:.
|
||||
.:--:-=++==-:. :=*+=--==+***######**+-:
|
||||
.---:-===-----===+++==-:.. :=+=--=+*****+++*****#%%%#-
|
||||
.=*********+++========+++++=--:. .:-=+++++++=-:.. .=*=::.
|
||||
:-=-. .:::---===+++++++++++*******++====+**+++=-:. :+*-..
|
||||
.. -++ ..:--==+***********=:. -*=
|
||||
. :+. . ${c3}...${c2} .:--===:. .++
|
||||
.*: . ${c3}:+#%%@@%%#=: ${c2}--
|
||||
${c2}-= ${c3}-#@@@@@@@@@@@@#: ${c2}.
|
||||
${c3}:*%@%%@@@@@@@@@@@%+ .:--====-:.
|
||||
:*%%%%%%%%%@@@@@@@@@*. :=*#%%%%@@@@@%#+-
|
||||
.*%%%%%%%%%%%%%@@#+--=- -*%%%%%%%%%%%@@@@@%#=
|
||||
-#%%%%%%%%%%%%%#: :+: :+%*#%%%%%%%%%%%%%%%%%*.
|
||||
+%%%%%%%%%%%%%%: .#*: *+-*%%%%%%%%%%%%%%%%%+
|
||||
+%%%%%%%%%%%%%# . . . :%%%%%%%%%%%%%%%%%#.
|
||||
=#%%%%%%%%%%%%# . . =%%%%%%%%%%%%%%%%%*.
|
||||
.*%%%%%%%%%%%%%* : =%%%%%%%%%%%%%%%%%#-
|
||||
:#%%%%%%%%%%%%%#=.... .=*%%%%%%%%%%%%%%%%%%*:
|
||||
:*%@@%%%%%%%%%%%%#+. :+#%%%%%%%%%%%%%#*-
|
||||
=*%%@@%%%%%%%#*- .-=+**##**+=:
|
||||
:=*######+=:
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
magix = AsciiArt(match=r'''"Magix"*''', color='206 39', ascii=r"""
|
||||
${c2} @
|
||||
@@--=====@@
|
||||
@@--==@@ @@====+@
|
||||
@-@@ @==@
|
||||
@=@
|
||||
@=@${c1} @=@ @-==== @=@${c2}
|
||||
@=@${c1} @-===@==++@===+@${c2}
|
||||
@=@${c1} @--====@@=====+@${c2}
|
||||
-=@${c1} @--==========++@${c2}
|
||||
==${c1} @--==========++@${c2} @=@
|
||||
@==${c1} @--=======@==++@${c2} @=+@
|
||||
@==${c1} @-==========++${c2} @=@
|
||||
@==${c1} @-=======@=%${c2} @=@
|
||||
@==${c1} @@@@@@${c2} @=@
|
||||
@====@@@ @@===+%
|
||||
@@=====@@==++++@@
|
||||
=#@=@
|
||||
@==@++@
|
||||
@@@
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
mainsailos = AsciiArt(match=r'''"MainsailOS"*''', color='1', ascii=r"""
|
||||
${c1} -
|
||||
*%:
|
||||
:%%%#
|
||||
=%%%%%-
|
||||
*%%%%%%#
|
||||
:#%%%%%%%#.
|
||||
-%%%%%%%%+
|
||||
*%%%%%%%%- :
|
||||
.#%%%%%%%#. *%=
|
||||
-%%%%%%%%+ :#%%%*
|
||||
+%%%%%%%%- =%%%%%%#.
|
||||
.#%%%%%%%#. *%%%%%%%%:
|
||||
-%%%%%%%%* :#%%%%%%%#.
|
||||
+%%%%%%%%- =%%%%%%%%+ :%*.
|
||||
.#%%%%%%%#: *%%%%%%%%- +%%%%*:
|
||||
:%%%%%%%%* :#%%%%%%%#. .*%%%%%%%*
|
||||
+%%%%%%%%= -%%%%%%%%+ :%%%%%%%%*
|
||||
.#%%%%%%%%: *%%%%%%%%- =%%%%%%%%=
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
mainsailos_small = AsciiArt(match=r'''"MainsailOS_small"*''', color='1', ascii=r"""
|
||||
${c1} -:
|
||||
+%*
|
||||
.#%%+
|
||||
-%%%: +=
|
||||
+%%#..#%%-
|
||||
.#%%+ -%%%- +=
|
||||
-%%%- +%%#..#%%+
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
mauna = AsciiArt(match=r'''"Mauna"*''', color='4 6', ascii=r"""
|
||||
${c1} .. :-=++++=-:
|
||||
.-+*+ -********* **=
|
||||
=***= +******+ =---=+*.
|
||||
+**** +****+ :-=++*++=--
|
||||
=****= **** :+***********+:
|
||||
+****+ *** ${c2}.-- ${c1}+******-
|
||||
=*****: *- ${c2}:+=: ${c1}=*****:
|
||||
${c2}. ${c1}+*****: : ${c2}-+++ ${c1}:****=
|
||||
${c2}-+ ${c1}:*****+ ${c2}- ++++ ${c1}:***-
|
||||
${c2}-++=: ${c1}=+****: ${c2}:++ +++++ ${c1}**+
|
||||
${c2} +++++= ${c1}-====-${c2}++++: +++++ ${c1}*+
|
||||
${c2} .=++++++++++++++: ${c2}+++++= ${c1}.
|
||||
${c2} .=+++++++++= :=+++++=
|
||||
.:::--- -+++++++-
|
||||
:-==++==-.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
meowix = AsciiArt(match=r'''"Meowix"*''', color='1 3 3 4', ascii=r"""
|
||||
${c1} #${c2}% ${c3}&${c4}*
|
||||
${c1} ##${c2}%% ${c3}&&${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%%${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c4}**
|
||||
${c1} ## ${c4}**
|
||||
${c1}## ${c4}**
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
nixos_colorful = AsciiArt(match=r'''"nixos_colorful"*''', color='4 6 4 6 4 6', ascii=r"""
|
||||
${c1} ▗▄▄▄ ${c2}▗▄▄▄▄ ▄▄▄▖
|
||||
${c1} ▜███▙ ${c2}▜███▙ ▟███▛
|
||||
${c1} ▜███▙ ${c2}▜███▙▟███▛
|
||||
${c1} ▜███▙ ${c2}▜██████▛
|
||||
${c1} ▟█████████████████▙ ${c2}▜████▛ ${c3}▟▙
|
||||
${c1} ▟███████████████████▙ ${c2}▜███▙ ${c3}▟██▙
|
||||
${c6} ▄▄▄▄▖ ${c2}▜███▙ ${c3}▟███▛
|
||||
${c6} ▟███▛ ${c2}▜██▛ ${c3}▟███▛
|
||||
${c6} ▟███▛ ${c2}▜▛ ${c3}▟███▛
|
||||
${c6}▟███████████▛ ${c3}▟██████████▙
|
||||
${c6}▜██████████▛ ${c3}▟███████████▛
|
||||
${c6} ▟███▛ ${c5}▟▙ ${c3}▟███▛
|
||||
${c6} ▟███▛ ${c5}▟██▙ ${c3}▟███▛
|
||||
${c6} ▟███▛ ${c5}▜███▙ ${c3}▝▀▀▀▀
|
||||
${c6} ▜██▛ ${c5}▜███▙ ${c4}▜██████████████████▛
|
||||
${c6} ▜▛ ${c5}▟████▙ ${c4}▜████████████████▛
|
||||
${c5} ▟██████▙ ${c4}▜███▙
|
||||
${c5} ▟███▛▜███▙ ${c4}▜███▙
|
||||
${c5} ▟███▛ ▜███▙ ${c4}▜███▙
|
||||
${c5} ▝▀▀▀ ▀▀▀▀▘ ${c4}▀▀▀▘
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
nobara = AsciiArt(match=r'''"Nobara"*''', color='"#999999" "#d80a0a" "#e5b90b"', ascii=r"""
|
||||
${c1} ⢀⣤⣴⣶⣶⣶⣦⣤⡀⠀⣀⣠⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠉⠁⠀⠀⠉⠉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀${c3}⢀⣀⣀⡀${c1}⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀${c3}⢠⣾⣿⣿⣿⣿⣷⡄${c1}⠀⠀⠀⠻⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀${c3}⣿⣿⣿⣿⣿⣿⣿⡇${c1}⠀⠀⠀⠀⠀⣀⣀⣬⣽⣿⣿⣿⣿⣿⣿⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀${c3}⠈⠻⢿⣿⣿⡿⠟⠁${c1}⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀
|
||||
⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀
|
||||
${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀
|
||||
${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀
|
||||
${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀
|
||||
${c2} ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠉⠛⠛⢿⣿⣿⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀
|
||||
${c2} ⠘⢿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀
|
||||
${c2} ⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠉⠁
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
openkylin = AsciiArt(match=r'''"openKylin"*''', color='2 7', ascii=r"""
|
||||
${c1}
|
||||
/KKK]
|
||||
KKKKKKK` ]KKKK\
|
||||
KKKKK/ /KKKKKKKKK\
|
||||
KKKK/ ,KKKKKKKKKKKK^
|
||||
,]KKK =KKK` /KKKKKKOOOOOO`
|
||||
,KKKKKK =KK /` [\OOOOOOO\
|
||||
\KKKKK =K ,OOOOOOO`
|
||||
,KKKKK =^ \OOOOOO
|
||||
,KKKK ^ OOOOOO^
|
||||
*KKK^ =OOOOO^
|
||||
OOKK^ OOOOOO^
|
||||
\OOOK\ /OOOOOO`
|
||||
OOOOOO] ,OOOOOOO^
|
||||
,OOOOOOOO\] ,[OOOOOOOOO/
|
||||
\OOOOOOOOOOOOOOOOOOOOO`
|
||||
[OOOOOOOOOOOOOOOO/`
|
||||
,[OOOOOOOOO]
|
||||
""")
|
||||
|
||||
@@ -5,16 +5,16 @@ from . import AsciiArt
|
||||
opensuse_tumbleweed = AsciiArt(match=r'''"openSUSE Tumbleweed"* | "openSUSE_Tumbleweed"*''', color='2 7', ascii=r"""
|
||||
${c2} ......
|
||||
.,cdxxxoc,. .:kKMMMNWMMMNk:.
|
||||
cKMMN0OOOKWMMXo. ; ;0MWk:. .:OMMk.
|
||||
;WMK;. .lKMMNM, :NMK, .OMW;
|
||||
cMW; 'WMMMN ,XMK, oMM'
|
||||
.MMc ..;l. xMN: KM0
|
||||
'MM. 'NMO oMM
|
||||
cKMMN0OOOKWMMXo. A ;0MWk:' ':OMMk.
|
||||
;WMK;' 'lKMMNM, :NMK' 'OMW;
|
||||
cMW; WMMMN ,XMK' oMM.
|
||||
.MMc ''^*~l. xMN: KM0
|
||||
'MM. .NMO oMM
|
||||
.MM, .kMMl xMN
|
||||
KM0 .kMM0. .dl:,.. .WMd
|
||||
.XM0. ,OMMK, OMMMK. .XMK
|
||||
oWMO:. .;xNMMk, NNNMKl. .xWMx
|
||||
:ONMMNXMMMKx; . ,xNMWKkxllox0NMWk,
|
||||
..... .:dOOXXKOxl,
|
||||
KM0 .kMM0' .dl>~,. .WMd
|
||||
'XM0. ,OMMK' OMMM7' .XMK
|
||||
*WMO:. .;xNMMk' NNNMKl. .xWMx
|
||||
^ONMMNXMMMKx; V 'xNMWKkxllox0NMWk'
|
||||
''''' ':dOOXXKOxl'
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
panwah = AsciiArt(match=r'''"Panwah"*''', color='7 1 0', ascii=r"""
|
||||
${c1}
|
||||
HHH
|
||||
HAAAH HHH
|
||||
HAAAAH HAAAH
|
||||
HAAAAAAH HAAAAH
|
||||
HAAAAAAH HAAAAAH
|
||||
HAAAAAAAAH${c2}WWWWWWWWWWWWWWWW ${c1}HAAAAAH$
|
||||
HAAAAAAAAH${c2}WWWWWWWWWWWWWWWWWWWW${c1} HAAAAAH
|
||||
HAA${c2}WWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}AAAAAH${c2}
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}WAH${c2}
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWW${c1}AAA${c2}WWWW WWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWW${c1}AAA${c2}WWWWW WWWWWWW WWWWWWWWWWWWWWW
|
||||
WW${c1}AAA${c2}WWWWWWWWWWWWWWWWW WWWWW${c1}AAA${c2}WWWWWWWW
|
||||
${c1}AAA${c2}WWWWW${c1}OOOOOOOOOOO${C2}WWWWWWWWWWW${c1}AAA${c2}WWWWWW
|
||||
${c1}OOOO${c3}GGGGGGG${c1}OOOO${c2}WWWWWWWWWW${c1}AAA${c2}WWWW
|
||||
${c1}OOO${c3}GGGGGGG${c1}OOO${c2}WWWWWWWWWWWW${c1}AAA${c2}W
|
||||
${c1}OOOOOOOOO
|
||||
""")
|
||||
|
||||
+26
-30
@@ -2,35 +2,31 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
parch = AsciiArt(match=r'''"parch"* | "Parch"* | "PARCH"*''', color='4 6', ascii=r"""
|
||||
|
||||
${c1} ,#/*%*
|
||||
${c1} #. ..,..,*,,
|
||||
${c1} ,/,,... ,. (/ ...
|
||||
${c1} ,/,........ .,. ./(/%/ .* #*
|
||||
${c1} .**,..... ...,%&. .,
|
||||
${c1} ,%,.... ., ,
|
||||
${c1} ,&,... .,, &. .
|
||||
${c1} (%,... ..,& *.
|
||||
${c1} *&*..... &,,,,,,,#& ..,&/ *. /
|
||||
${c1} *&*,..... &***%&&**,& ...,&* / /
|
||||
${c1} *&,.... &,**,,,**,# ..,&/ .
|
||||
${c1} (/,... &***%%%(, ..,%( #
|
||||
${c1} %*... #,,,% ..*% . *
|
||||
${c1} %,.. .,% . /
|
||||
${c1} %,. ..,,. .%
|
||||
${c1} /,. ${c1} ..# .%
|
||||
${c1} .,. ${c2} @@@@@# ${c1} ./ ./.
|
||||
${c1} ,.. ${c2} #&%.%%@ ${c1} .#%&*
|
||||
${c1} .,.. ${c2} @//(*(@, ${c1} ..
|
||||
${c1} ,.. ${c2} #@ /@@, ${c1}
|
||||
${c1} ... ${c2} &@ @@@ ${c1}
|
||||
${c1} ,,. ${c2} (# .@@#, ${c1} ,
|
||||
${c1} /,.. ${c2} *****@% #****/ ${c1} .
|
||||
${c1} ((*....${c2} /***% %*** ${c1} .,.*
|
||||
${c1} /&&&**,.., ${c2}* **,*,,. ${c1} ...,(&%*
|
||||
${c1} %&&&#*(**,,,,,,,,,,,,,,,*//(&&&&#
|
||||
${c1} /, .,....... .,,***/(/,,/
|
||||
${c1} ./*/#*,,***,,***///(#%%*.
|
||||
parch = AsciiArt(match=r'''"parch"* | "Parch"* | "PARCH"*''', color='4 7 1', ascii=r"""
|
||||
${c1} ,:lodddd.
|
||||
.:clooood.
|
||||
;clllooooc
|
||||
;cclllllloo
|
||||
.cccccllllll
|
||||
. ,cccclllll
|
||||
':::;; ccccclll;
|
||||
.:::cccccccccccll;
|
||||
;::::ccccllllllcll:
|
||||
.;::::cccclllloool::;
|
||||
;;;::::cccclllolc::::;.
|
||||
;;;::::cccclllccc:::::;.
|
||||
;;;::::cccclccccc::::::;.
|
||||
;;;;::::::llcccccc:::::'
|
||||
;;;;:; ,clllccccccc::
|
||||
.;; .cllllllcccccc::;::::'
|
||||
.'''''''''',:lddoooolll
|
||||
'.....'''',cdddooooollll
|
||||
........':oddddoooolllllc
|
||||
....';ldddddooooolllllc:
|
||||
,cdddddddooooollllccc
|
||||
:ddddddoooolllllccc
|
||||
;ddooooolllllcc.
|
||||
:ooollllc.
|
||||
c'
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
peropesis = AsciiArt(match=r'''"Peropesis"*''', color='4 7 1', ascii=r"""
|
||||
${c1}#### #### #### ### #### #### #### # ####
|
||||
# # # # # # # # # # # # #
|
||||
#### ### #### # # #### ### # # #
|
||||
# # # # # # # # # # #
|
||||
# #### # # ### # #### #### # ####
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
phyos = AsciiArt(match=r'''"phyOS"*''', color='33 33 7 1', ascii=r"""
|
||||
${c1}.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.^^^^^.
|
||||
:777777777777777777777777777777^~7777:
|
||||
.~~~~~~~~~~~~~~~~~~~~~^~7777!:!777!.
|
||||
~7!!!!!!!!!!!!!!!!!^:!777~^!777~
|
||||
^77777!!!!!!!!!7!^^7777^^7777^
|
||||
^7777~.~~~~^. .~7777^~7777:
|
||||
:!777~^!777~. !777!:~777!:
|
||||
.!777!:~777!:~77~:!777!.
|
||||
~777!^~7777:^~^!777~
|
||||
^7777^^7777^^7777^
|
||||
:7777~^!7777777:
|
||||
.!777!:!7777!.
|
||||
.~777!:~77~.
|
||||
~7777^~~
|
||||
^7777.
|
||||
:77:
|
||||
..
|
||||
""")
|
||||
|
||||
@@ -3,13 +3,34 @@
|
||||
from . import AsciiArt
|
||||
|
||||
pikaos = AsciiArt(match=r'''"PikaOS"*''', color='11', ascii=r"""
|
||||
${c1} /🐦🐦🐦$ /🐦/🐦 /🐦🐦🐦 /🐦🐦🐦
|
||||
| 🐦__ $|__| 🐦 /🐦__ 🐦/🐦__ 🐦
|
||||
| 🐦 \ 🐦/$| 🐦 /🐦 /🐦🐦🐦| 🐦 \ $| 🐦 \__/
|
||||
| 🐦🐦🐦$| $| 🐦 /🐦/|____ $| 🐦 | $| 🐦🐦🐦
|
||||
| 🐦____/| $| 🐦🐦🐦/ /🐦🐦🐦| 🐦 | 🐦\____ 🐦
|
||||
| 🐦 | $| 🐦_ 🐦 /🐦__ $| 🐦 | 🐦/🐦 \ 🐦
|
||||
| 🐦 | $| 🐦 \ $| 🐦🐦🐦| 🐦🐦🐦| 🐦🐦🐦/
|
||||
|__/ |__|__/ \__/\_______/\______/ \______/ .
|
||||
${c1}
|
||||
'',,, ,,,d,
|
||||
',, ,,'
|
||||
', ,.
|
||||
., '
|
||||
. .
|
||||
' .
|
||||
.. oddddkdlc:;,.. ..
|
||||
. ............lllc, .
|
||||
. ....................: .
|
||||
. . ....................
|
||||
'. ..........'o........d0XX0.
|
||||
....lllllllcOOOcllllll............cxlxc...;okkkx.
|
||||
..................................';lc'...lo.
|
||||
.'''''''''''''.....................,;,.......
|
||||
',,,,,,,,,,,,,,,,''...............dkkkd......
|
||||
',,,,,,,,,,,,,,,,,,,'............;okkkd;....
|
||||
.,,,,,,,,,,,,,,,,,,,,,............;cll;.....
|
||||
,,,,,,,,,,,,,,,,,,,,'....................:d,
|
||||
,,,,,,,,,,,,,,,,,,,....................oxxx:
|
||||
.,,,,,,,,,,,,,,,,,'..................oxxxxx. .
|
||||
.,,,,,,,,,,,,,,'.......... ,oxxxxxxx .
|
||||
.;,,,,,,,,,,,,'.. 'cxxxxxxxxx,
|
||||
:dl:,'',,'.... .;lxxxxxxxxxd;
|
||||
,codol:;'. ...,;cldxxxxxxxxxoc.
|
||||
.:cxxxxxdlccccc:ccldxxxxxxxxxxxxxx::.
|
||||
.'::dxxxxxxxxxxxxxxxxxxxxxxxd::'.
|
||||
..,::cdxxxxxxxxxxxxxdc::,..
|
||||
...,;:::::::;,...
|
||||
""")
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
puffos = AsciiArt(match=r'''"PuffOS"*''', color='3', ascii=r"""
|
||||
puffos = AsciiArt(match=r'''"PuffOS"*''', color='3', ascii=r'''
|
||||
${c1}
|
||||
_,..._,m,
|
||||
,/' '"";
|
||||
/ ".
|
||||
,'mmmMMMMmm. \
|
||||
_/-"^^^^^"\""%#%mm, ;
|
||||
_/-"^^^^^"""%#%mm, ;
|
||||
,m,_,' "###) ;,
|
||||
(###% \#/ ;##mm.
|
||||
^#/ __ ___ ; (######)
|
||||
@@ -16,5 +16,5 @@ ${c1}
|
||||
_; (#\"// \"/#) ; ,/
|
||||
@##\ \##/ = `"=" ,;mm/
|
||||
`\##>.____,...,____,<####@
|
||||
""")
|
||||
''')
|
||||
|
||||
@@ -2,24 +2,26 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
reborn_os = AsciiArt(match=r'''"Reborn OS"* | "Reborn"*''', color='2 2 8', ascii=r"""
|
||||
${c3}
|
||||
mMMMMMMMMM MMMMMMMMMm
|
||||
NM MN
|
||||
MM ${c1}dddddddd dddddddd ${c3}MN
|
||||
mM ${c1}dd dd ${c3}MM
|
||||
${c1}dd hhhhhh hhhhh dd
|
||||
${c3}mM ${c1}hh hh ${c3}Mm
|
||||
NM ${c1}hd ${c3}mMMMMMMd ${c1}dh ${c3}MN
|
||||
NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
|
||||
NM ${c1}dd hh ${c3}mMMMMMMMMMMm ${c1}hh dd ${c3}MN
|
||||
NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
|
||||
NM ${c1}hd ${c3}mMMMMMMm ${c1}dh ${c3}MN
|
||||
mM ${c1}hh hh ${c3}Mm
|
||||
${c1}dd hhhhhh hhhhhh dd
|
||||
${c3}MM ${c1}dd dd ${c3}MM
|
||||
MM ${c1}dddddddd dddddddd ${c3}MN
|
||||
NM MN
|
||||
mMMMMMMMMM MMMMMMMMMm
|
||||
reborn_os = AsciiArt(match=r'''"Reborn OS"* | "Reborn"*''', color='0 4 6', ascii=r"""
|
||||
${c1} .======================.
|
||||
${c1}.#${c2}#*********${c1}%%${c2}*********#${c1}%:
|
||||
${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%-
|
||||
${c1}-%${c2}************${c1}%%${c2}************${c1}%=
|
||||
${c1}+%${c2}******${c1}%%#####${c1}%%#####%%${c2}******${c1}%+
|
||||
${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%*
|
||||
${c1}*%${c2}*#${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##.
|
||||
${c1}.##${c2}*****${c1}#%%%#${c3}*++${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%.
|
||||
${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%:
|
||||
${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%-
|
||||
${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%=
|
||||
${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%-
|
||||
${c1}.##${c2}*****${c1}#%%%#${c3}*+*${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%:
|
||||
${c1}.##${c2}**${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##.
|
||||
${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%*
|
||||
${c1}+%${c2}******${c1}%%#####%%#####%%${c2}******${c1}%*
|
||||
${c1}-%${c2}************${c1}%%${c2}************${c1}%=
|
||||
${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%-
|
||||
${c1}:%${c2}#*********${c1}%%${c2}*********#${c1}%:
|
||||
${c1}.======================.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
salix = AsciiArt(match=r'''"Salix"*''', color='2', ascii=r'''
|
||||
${c1} __s_aaaaaaaaauuoXSSSSSSSS:
|
||||
._xSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
_aSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
_xSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
<XSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
-"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'
|
||||
|
||||
.ssssssssssssssssssssssssssssssssssss
|
||||
{SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSl
|
||||
oSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS;
|
||||
:XSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS;
|
||||
{SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
|
||||
-"""""""""""""""""""""""""""""""""""'
|
||||
|
||||
<assssssssssssssssssssssssssssssss>
|
||||
nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}
|
||||
nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}`
|
||||
XSSSSSSSSSSSSSSSSSSSSSSSSSSSS"`
|
||||
SSSSSSSSSSSSSSSSSSSSSSSSS!"`
|
||||
-""""""""""""""""""""""`
|
||||
''')
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
skiffos = AsciiArt(match=r'''"SkiffOS"*''', color='4 7', ascii=r"""
|
||||
skiffos = AsciiArt(match=r'''"SkiffOS"*''', color='4 7', ascii=r'''
|
||||
${c2}
|
||||
,@@@@@@@@@@@w,_
|
||||
${c2}====~~~,,.${c2}A@@@@@@@@@@@@@@@@@W,_
|
||||
@@ -12,6 +12,6 @@ ${c2}
|
||||
${c2}*@@@@@@@@@@@@@@@@@@@@@@@@@p${c1}||||==,
|
||||
${c1}`'||LLL{{""${c2}@$B@@@@@@@@@@@@@@@p${c1}||
|
||||
${c1}`~=|||||||||||L"${c2}$@@@@@@@@@@@
|
||||
${c1}````'"\"\""\"\""${c2}'"\"\""\"\"\""
|
||||
""")
|
||||
${c1}````'"""""""${c2}'""""""""
|
||||
''')
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
slackel = AsciiArt(match=r'''"Slackel"*''', color='3', ascii=r'''
|
||||
${c1} _aawmmmmmwwaaaaas,,,_.
|
||||
.ammmmm###mmmmmmm###BQmm##mws
|
||||
.am###mmBmBmBmBmBmBmmmmm#mmmm#2
|
||||
<q###mmBmBmBmBmBmBmBmBmBmBmmBmZ`
|
||||
um#mmmBmBm##U##mmBmBmBmWmmBmWm#(
|
||||
.wm#mmBBmm#Y~ ~XmBmBmWmmmmmBm#e
|
||||
.dm#mmWmm#Z' ]#mBmBmmBZ!""""`
|
||||
.dm#mmBmm#2` ]mmmBmBm#2
|
||||
jm#mmWmm#2` dmmBmBmB#(
|
||||
)m##mBmmWZ` )##mBmBmmZ
|
||||
:dmmmBmBm#' .d#mBmBmWZ(
|
||||
j#mmBmBmme jmmmBmBm#2
|
||||
_m#mBmWmmm' )mmmBmBmmZ`
|
||||
]##mBmmm#2 <m#mBmBmB#^
|
||||
dmmmBmWm#C <m#mBmBmB#(
|
||||
ZmmBmBmmmh. _jm#mmBmBm#(
|
||||
XBmBmBmBmm6s_aum##mmBmBm&^
|
||||
3$mBmBmBmmm#mmmmmmBmBm#2'
|
||||
+ZmBmBmWmBmBmWmmBmBm##!
|
||||
)ZmBmBmmmBmBmmBmB##!`
|
||||
-4U#mBmWmBmBm##2"
|
||||
-!!XU##US*?"-
|
||||
''')
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
tatra = AsciiArt(match=r'''"Tatra"*''', color='4 7', ascii=r"""
|
||||
${c1}
|
||||
. .:. . .:.
|
||||
.^^.!.:::. .^!?J?^
|
||||
.:^.^!!!~:~^. .7??77!~~^.
|
||||
.~^.!??77?!.^~: ..:^^7JJJ7~~^.
|
||||
.^~.^7???7~.~~. .7??????????!
|
||||
.:^:^^~^^:!^ ^: .......^!:...
|
||||
.!7~.::.!.::. ~BG~ :^ ^~:
|
||||
:!!~ ~. ?BBBB! ^?J!. .!~.
|
||||
:!. .JBY. .Y#BBBY?~!???J7. :^^.
|
||||
.. :5#B#P~P#BBP?7?55J?J7:
|
||||
^P#BBBBBBBB5?7J5555J!.....
|
||||
!BBBBBBGBBGJ77::Y555J?77777^
|
||||
?BBBBG5JJ5PJ?!: .?Y??????77?~.
|
||||
.YBGPYJ??????Y?^^^^~7?????????7?!.
|
||||
.^^:..::::::::.....:::::::::::..:.
|
||||
""")
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
trisquel = AsciiArt(match=r'''"Trisquel"*''', color='4 6', ascii=r"""
|
||||
trisquel = AsciiArt(match=r'''"Trisquel"*''', color='4 6', ascii=r'''
|
||||
${c1} ,o$$$o.
|
||||
,o$$Y"\""Y$$b
|
||||
,o$$Y"""Y$$b
|
||||
,o$$$$$$o. ,$$' , Y$$b
|
||||
,o$$$$$$$$$$$$o. :$ b Y$$.
|
||||
,$$"' "Y$$$$o. 'b. ,b d$$$
|
||||
@@ -12,7 +12,7 @@ $$' .d$$$$b '$$$$o 'Y$$$Y d$$$'
|
||||
$$' q' 'b '$$$$$o._ _.o$$$$'
|
||||
.$$,_ _,d$ ,$$$$$$$$$$$$${c2}$$$$Y'
|
||||
${c1} '$$$$aaa$$$' .$$$$$$${c2}$$$$$$$$'
|
||||
${c1} "\"\"" ${c2}d$$$$"'
|
||||
${c1} """" ${c2}d$$$$"'
|
||||
d$$$' .d$$b.
|
||||
$$$$ .$" 'a$.
|
||||
$$$$ $b $$.
|
||||
@@ -20,5 +20,5 @@ ${c1} "\"\"" ${c2}d$$$$"'
|
||||
'$$$. .$$'
|
||||
'a$$$o._.o$$a'
|
||||
'a$$$$a'
|
||||
""")
|
||||
''')
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
unicodearch = AsciiArt(match=r'''"unicodearch"*''', color='6 6 7 1', ascii=r"""
|
||||
${c1} ▄
|
||||
▟█▙
|
||||
▟███▙
|
||||
▟█████▙
|
||||
▟███████▙
|
||||
▂▔▀▜██████▙
|
||||
▟██▅▂▝▜█████▙
|
||||
▟█████████████▙
|
||||
▟███████████████▙
|
||||
▟█████████████████▙
|
||||
▟███████████████████▙
|
||||
▟█████████▛▀▀▜████████▙
|
||||
▟████████▛ ▜███████▙
|
||||
▟█████████ ████████▙
|
||||
▟██████████ █████▆▅▄▃▂
|
||||
▟██████████▛ ▜█████████▙
|
||||
▟██████▀▀▀ ▀▀██████▙
|
||||
▟███▀▘ ▝▀███▙
|
||||
▟▛▀ ▀▜▙
|
||||
""")
|
||||
|
||||
+20
-15
@@ -3,20 +3,25 @@
|
||||
from . import AsciiArt
|
||||
|
||||
venom = AsciiArt(match=r'''"Venom"*''', color='8 4', ascii=r"""
|
||||
${c1} ::::::: :::::::
|
||||
mMMMMMMm dMMMMMMm
|
||||
/MMMMMMMo +MMMMMMM/
|
||||
yMMMMMMN mMMMMMMy
|
||||
NMMMMMMs oMMMMMMm
|
||||
+MMMMMMN: NMMMMMM+
|
||||
hMMMMMMy sMMMMMMy
|
||||
:NMMMMMM::NMMMMMN:
|
||||
oMMMMMMyyMMMMMM+
|
||||
dMMMMMMMMMMMMh
|
||||
/MMMMMMMMMMMN:
|
||||
sMMMMMMMMMMo
|
||||
mMMMMMMMMd
|
||||
+MMMMMMMN:
|
||||
::::::
|
||||
${c1}
|
||||
`-`
|
||||
-yys+/-`
|
||||
`oyyyyy: /osyyyyso+:.
|
||||
/yyyyy+`+yyyyyyyyyys/.
|
||||
.-yyyyys.:+//+oyyyyyyyo.
|
||||
`oy/`oyyyyy/ ./syyyyy:
|
||||
syyys`:yyyyyo` :yyyyy:
|
||||
/yyyyo .syyyyy- .yyyyy.
|
||||
yyyyy. +yyyyy/ /yyyy/
|
||||
`yyyyy :yyyyys` -yyyyo
|
||||
yyyyy. `syyyyy- /yyyy/
|
||||
/yyyyo /yyyyy+ .yyyyy.
|
||||
syyyys. -yyyyys.:yyyy:
|
||||
`oyyyyyo-` `oyyyyy:.sy:
|
||||
:syyyyyyso+/++`/yyyyyo``
|
||||
-oyyyyyyyyyyy-.syyyys.
|
||||
-/+osyyyyso.`+yyyyy/
|
||||
.-/+syo`
|
||||
`.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
venom_small = AsciiArt(match=r'''"venom_small"*''', color='8 4', ascii=r"""
|
||||
${c1} ++**
|
||||
*===**====+*
|
||||
*====* +===+
|
||||
*==*+===* *===*
|
||||
*===* *===+ *===*
|
||||
*===* +===+ *===*
|
||||
*===* +===* *===*
|
||||
*===* *===+*==*
|
||||
+===+ *===+=*
|
||||
*+====**===*
|
||||
**++
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
windows95 = AsciiArt(match=r'''"Windows95"''', color='6 4 3 2 1 0', ascii=r'''
|
||||
${c6} ___
|
||||
.--=+++++=-:.
|
||||
. _ *%@@@@@@@@@@@@@@*
|
||||
*:+:.__ :+* @@@ @"${c5}_*&%${c6}@@${c4}%&&&*${c6}"@@@
|
||||
"+.-#+ +%* " _ ${c5}++&&&%${c6}@@${c4}%&&&&&#${c6}@@
|
||||
${c5} " , ${c6}%@@ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@
|
||||
${c5} * oo *# ${c6}" _ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@
|
||||
${c5} " , ${c6}%@@ ${c5}&&&&"${c6}@@@@#*${c4}"&&&${c6}@@
|
||||
.${c5} * oo *# ${c6}" _ %@@@@@@@@@@@@@@@@
|
||||
*:+:.__ :=* %@@ @"${c1}**&%${c6}@@${c3}%&&&*${c6}"@@@
|
||||
"+.-#+ +%* " _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
|
||||
${c1} " , ${c6}%@@ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
|
||||
${c1} * oo *# ${c6}" _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
|
||||
${c1} " , ${c6}%@@ ${c1}&&*"${c6}%@@@@@@${c3}"*%&${c6}@@
|
||||
.${c1} * oo *# ${c6}" _ @@@@@@@@@@@@@@@@@
|
||||
*:+:.__ :+# @@@ @%#=+""""""+==%#@
|
||||
"+.-#+ +%* %+" " ":@
|
||||
" "
|
||||
''')
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
openwrt = AsciiArt(match=r'''"OpenWrt"*''', color='4 7 1', ascii=r"""
|
||||
wrt = AsciiArt(match=r'''*"Wrt"*''', color='4 7 1', ascii=r"""
|
||||
${c1} _______
|
||||
| |.-----.-----.-----.
|
||||
| - || _ | -__| |
|
||||
@@ -0,0 +1,34 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
xenia = AsciiArt(match=r'''"Xenia"*''', color='#55CDFD' '#F6AAB7' '#FFFFFF', ascii=r"""
|
||||
${c3} !${c3}`${c3} @
|
||||
${c3} @${c3}```${c3}b @@@@@
|
||||
${c3} @${c3}`````${c3}@ @/${c3}@@@@
|
||||
${c3} @@${c3}``'))))))))))C@@
|
||||
${c3} @@@){)))))())))))))
|
||||
${c3} @r))))@${c1}oooo${c3})))))h)))[
|
||||
${c3} rr)))j${c1}oooooo${c3}(x${c1}ooooo${c3}$@)
|
||||
${c3} rrrxr))r/l;${c1},,,${c3}z@{${c1},,,,,${c3}@@
|
||||
${c3} rr ) ${c2}v${c3} @;@rx
|
||||
${c3} rrr) ${c2}\__^__/${c3} ji
|
||||
${c3} rj]. . r
|
||||
${c3}[[${c2}]]${c1}11111111111111111]
|
||||
${c2}]${c3}[[[${c2}]]][${c1}11111111111111111<
|
||||
${c2}]${c3}[[[[[${c2}]]]]]]]]]]]]]]${c1}-111111[
|
||||
${c2}]-${c3}[[[[[[;${c2}]]]]]]]]]]]]]]]]${c1} 1
|
||||
${c2}]]${c3}[[[[[[[[[[[${c2}]]]]]]]]]]]]]
|
||||
${c1}1${c2}]][${c3}[[[[[[[[[[[[[${c2}<]]]]]]]]]
|
||||
${c1}11${c2}]]]${c3}[[[[[[[[[[[[[[[${c2}]]]]]]]
|
||||
${c1}111${c2}]]]]'${c3}[[[[[[[[[[[[[[${c2}]]]]
|
||||
${c1}111-${c2}]]]]]${c3}[[[[[[[[[[[[[${c2}]]
|
||||
${c1}11111${c2}]]]]]_${c3}[[[[[[[[[[${c2}]
|
||||
${c1}11111${c2}]]]i${c3}[[[[[[[[
|
||||
${c1}1111${c2}]]+${c3}[[[[[[^
|
||||
${c1}11 ${c2}]]${c3}[[[[[[
|
||||
${c1}11 +${c2}]${c3}[[[[
|
||||
${c1}1 ${c2}]${c3}[[
|
||||
`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
xenia2 = AsciiArt(match=r'''"Xenia2"*''', color='#55CDFD' '#F6AAB7' '#FFFFFF', ascii=r"""
|
||||
${c2} ,c. .c;
|
||||
${c2} .${c1}KMMMk${c2}.... ....${c1}kMMMK${c2}.
|
||||
${c2} .${c1}WMMMMMX${c2}..... .....${c1}KMMMMMW.
|
||||
${c1} XMMMMMMM0${c2}..... ....${c1}OMMMMMMMN
|
||||
${c1} dMMMMMMMMM;${c2}.... ..... ....,${c1}MMMMMMMMMd
|
||||
${c1} WMMMMMMMMMl;${c3}okKKKKKKKKKOo${c1};cMMMMMMMMMM
|
||||
${c1} 'MMMMMMMNX${c2}K0${c3}KKKKKKKKKKKKKKK${c2}0K${c1}XNMMMMMMM;
|
||||
${c1} oMMMMMMM${c2}Oxo${c3}KKKKKKKKKKKKKKKKK${c2}oxO${c1}MMMMMMMd
|
||||
${c1} dMMMMMMM${c2}dxxx${c3}KKKKKKKKKKKKKKK${c2}xxxd${c1}NMMMMMMk
|
||||
${c1} :MMMMX0${c2}xxxxxx${c3}0KKKKKKKK0KK0${c2}xxxxxx0${c1}XMMMMc
|
||||
${c1} MMMO${c2}xxxxxxxxdx${c3}kdd${c2}0x0${c3}ddk${c2}xdxxxxxxxx${c1}OMMM
|
||||
${c1} ;${c2}xxkxddxxxxdodxxxxdxdxxxxdodxxxxddxkxx${c1};
|
||||
${c1}dxd${c2}KMMMWXo${c1}'.....'${c2}cdxxxdc${c1}'.....'${c2}lXWMMMX${c1}dxd
|
||||
${c1}cxd${c2}XMMMN${c1},..........${c2}dxd${c1}'.........'${c2}XMMMN${c1}dxl
|
||||
${c1} .xx${c2}WMMl${c1}...''....'.;k:.'....''...${c2}lMMW${c1}xx.
|
||||
${c1}..:kXMMx..'....''..kMk..''....'..xMMXkc..
|
||||
${c1} dMMMMMMd.....'...xMMMx...''....dMMMMMMx
|
||||
${c1} kMMMMWOoc:coOkolllokOoc:coOWMMMMO
|
||||
${c1} .MMMMMMMMl${c2}...${c1}lNMMMMMMM.
|
||||
${c1} KMMMMMMX${c2}l${c1}KMMMMMMX
|
||||
${c1} .MMMMMMMMM.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
xray_os = AsciiArt(match=r'''"Xray_OS"*''', color='15 14 16 24', ascii=r"""
|
||||
${c1} ${c1}rrrrrraaaaaaaaaaaayyyy
|
||||
${c1}xxrrrrrrrraaaaaaaaaaaayyyyyyyyy
|
||||
${c1}xxxxxrrrrrrrraaaaaaaaaaaayyyyyyy${c3}yyyyy${c2}yyyyyyyyyy
|
||||
${c1}xxxxxxxrrrrrrrraaaaa ${c2}aaaaayyyyyyyyyyyyyyyyyyy
|
||||
${c1}xxxxxx${c3}xxx${c1}rrrrrrrraaaa ${c2}aaaaaaayyyyyyyyyyyyyyyyy
|
||||
${c1}xxxxxx${c3}xxxxxr${c1}rrrrrrraa ${c2}aaaaaaaaay${c3}yyyyyyyyy${c2}yyyy ${c1}yy
|
||||
${c1}xxxxxxx${c3}xxx${c1}xxrrrrrrrra ${c2}aaaaaaaaa${c3}ayyyyyyyyyyyy${c1}yyyyyy
|
||||
${c1}xxxxxxxxxxxxrrrrrrrr ${c2}aaaaaaaaaaa${c3}yyyyyyyyyyyy${c1}yyyyyyy
|
||||
${c1}xxxxxxxxxxxxxrrrrrr ${c2}raaaaaaaaaaaayyy${c3}yyyyyyyy${c1}yyyyyy${c1}yyy
|
||||
${c1}xxxxxxxxxxxxxrrrrr ${c2}rraaaaaaaaaaaayyyyy${c3}yy${c2}yyyyyy ${c1}yyyyyy
|
||||
${c1}xxxxxxxx${c3}xxxx${c1}xrrrrr${c2}rr${c3}raaaaaaa${c2}aaaaayyyyyyyyyy ${c1}yyyyyyyyy
|
||||
${c1}xxxxxxx${c3}xxxx${c1}xxrrrrrrr${c3}raaaaaa${c2}aaaaaayyyyyyy ${c1}yyyyyyyyyyyy
|
||||
${c1}xxxxxxx${c3}xxx${c1}xxxrrrrrrrr${c3}aaaaaa${c2}aaaaaayyyy ${c1}yyyyyyyyyyyyyy
|
||||
${c1}xxxxxxxxxxxxrrrrrrrra ${c2}aaaaaaaaaay ${c1}yyyyyyyyyyyyyyyy
|
||||
${c1}xxxxxxxxxxxrrrrrrr ${c2}aaaaaaaaaaaayyyy${c1}yyyyyyyyyyyyy
|
||||
${c1}xxxxxxx${c3}xxxrr${c1}rrrr ${c2}raaaaaaaaaaaa ${c1}yyyyyyyyyyyyyyy
|
||||
${c1}xxxxxxxxrrrr ${c2}rrraaaaaaaaa ${c1}aayyyyyyyyyyyyyy
|
||||
${c1}xxxxxxrrrrrrr ${c2}aaaaaa ${c1}aaaayyyyyyyyyyyy
|
||||
${c1}xxxrrrrrr ${c2}raaa ${c1}aaaaaaayyyyyyyyy
|
||||
${c1}rrrr ${c2}rr ${c1}aaaaaaaaaayyyyyy
|
||||
${c2}r ${c1}aaaaaaaaaa
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from hyfetch.constants import CACHE_PATH
|
||||
from hyfetch.neofetch_util import get_distro_name
|
||||
|
||||
|
||||
def get_font_logo() -> str:
|
||||
cache = CACHE_PATH / 'font_logo_cache.txt'
|
||||
if cache.exists():
|
||||
return cache.read_text('utf-8')
|
||||
|
||||
font_logos: dict[str, str] = json.loads((Path(__file__).parent / 'data/font_logos.json').read_text('utf-8'))
|
||||
font_logos = {k.lower(): v for k, v in font_logos.items()}
|
||||
|
||||
# Get the distro
|
||||
distro = get_distro_name().lower()
|
||||
|
||||
# Find most likely distro by containing string
|
||||
for k in font_logos.keys():
|
||||
if k in distro:
|
||||
distro = k
|
||||
# If not found, try matching partial string (by splitting with " ")
|
||||
if not distro:
|
||||
for k in font_logos.keys():
|
||||
if any(x in distro for x in k.split(' ')):
|
||||
distro = k
|
||||
# If still not found, give up
|
||||
if not distro:
|
||||
raise ValueError(f'No font logo found for distro: {distro}. The supported logos are in https://github.com/Lukas-W/font-logos')
|
||||
|
||||
logo = font_logos[distro]
|
||||
cache.parent.mkdir(parents=True, exist_ok=True)
|
||||
cache.write_text(logo)
|
||||
|
||||
return logo
|
||||
|
||||
+109
-33
@@ -2,16 +2,19 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import datetime
|
||||
import importlib.util
|
||||
import json
|
||||
import random
|
||||
import traceback
|
||||
from itertools import permutations
|
||||
from math import ceil
|
||||
|
||||
from . import termenv, neofetch_util
|
||||
from . import termenv, neofetch_util, pride_month
|
||||
from .color_scale import Scale
|
||||
from .color_util import clear_screen
|
||||
from .constants import *
|
||||
from .font_logo import get_font_logo
|
||||
from .models import Config
|
||||
from .neofetch_util import *
|
||||
from .presets import PRESETS
|
||||
@@ -26,12 +29,13 @@ def check_config(path) -> Config:
|
||||
"""
|
||||
if path.is_file():
|
||||
try:
|
||||
return Config.from_dict(json.loads(CONFIG_PATH.read_text('utf-8')))
|
||||
return Config.from_dict(json.loads(path.read_text('utf-8')))
|
||||
except KeyError:
|
||||
return create_config()
|
||||
|
||||
return create_config()
|
||||
|
||||
|
||||
def create_config() -> Config:
|
||||
"""
|
||||
Create config interactively
|
||||
@@ -64,10 +68,12 @@ def create_config() -> Config:
|
||||
# 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:
|
||||
term_len_min = 2 * asc_width + 4
|
||||
term_lines_min = 30
|
||||
if term_len < term_len_min or term_lines < term_lines_min:
|
||||
printc(f'&cWarning: Your terminal is too small ({term_len} * {term_lines}). \n'
|
||||
f'Please resize it for better experience.')
|
||||
input('Press any key to ignore...')
|
||||
f'Please resize it to at least ({term_len_min} * {term_lines_min}) for better experience.')
|
||||
input('Press enter to ignore...')
|
||||
except:
|
||||
# print('Warning: We cannot detect your terminal size.')
|
||||
pass
|
||||
@@ -205,12 +211,15 @@ def create_config() -> Config:
|
||||
return def_lightness
|
||||
|
||||
try:
|
||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else float(lightness)
|
||||
if lightness.endswith('%') or int(lightness) > 1:
|
||||
lightness = int(lightness[:-1]) / 100 if lightness.endswith('%') else int(lightness) / 100
|
||||
else:
|
||||
lightness = float(lightness)
|
||||
assert 0 <= lightness <= 1
|
||||
return lightness
|
||||
|
||||
except Exception:
|
||||
printc('&cUnable to parse lightness value, please input it as a decimal or percentage (e.g. 0.5 or 50%)')
|
||||
printc('&cUnable to parse lightness value, please enter a lightness value such as 45%, .45, or 45')
|
||||
|
||||
lightness = select_lightness()
|
||||
_prs = _prs.set_light_dl(lightness, light_dark)
|
||||
@@ -239,7 +248,7 @@ def create_config() -> Config:
|
||||
|
||||
# Random color schemes
|
||||
pis = list(range(len(_prs.unique_colors().colors)))
|
||||
slots = list(set(re.findall('(?<=\\${c)[0-9](?=})', asc)))
|
||||
slots = list(set(map(int, re.findall('(?<=\\${c)[0-9](?=})', asc))))
|
||||
while len(pis) < len(slots):
|
||||
pis += pis
|
||||
perm = {p[:len(slots)] for p in permutations(pis)}
|
||||
@@ -282,9 +291,36 @@ def create_config() -> Config:
|
||||
|
||||
update_title('Color alignment', color_alignment)
|
||||
|
||||
##############################
|
||||
# 6. Select *fetch backend
|
||||
def select_backend():
|
||||
clear_screen(title)
|
||||
print_title_prompt('Select a *fetch backend')
|
||||
|
||||
# Check if fastfetch is installed
|
||||
ff_path = fastfetch_path()
|
||||
|
||||
# Check if qwqfetch is installed (if the qwqfetch module can be imported)
|
||||
has_qwqfetch = importlib.util.find_spec('qwqfetch') is not None
|
||||
|
||||
printc('- &bneofetch&r: Written in bash, &nbest compatibility&r on Unix systems')
|
||||
printc('- &bfastfetch&r: Written in C, &nbest performance&r ' +
|
||||
('&c(Not installed)' if ff_path is None else f'&a(Installed at {ff_path})'))
|
||||
printc('- &bqwqfetch&r: Pure python, &nminimal dependencies&r ' +
|
||||
('&c(Not installed)' if not has_qwqfetch else ''))
|
||||
print()
|
||||
|
||||
# Use fastfetch as the default backend if it is installed
|
||||
def_backend = 'neofetch' if ff_path is None else 'fastfetch'
|
||||
|
||||
return literal_input('Your choice?', ['neofetch', 'fastfetch', 'qwqfetch'], def_backend)
|
||||
|
||||
backend = select_backend()
|
||||
update_title('Selected backend', backend)
|
||||
|
||||
# Create config
|
||||
clear_screen(title)
|
||||
c = Config(preset, color_system, light_dark, lightness, color_alignment)
|
||||
c = Config(preset, color_system, light_dark, lightness, color_alignment, backend)
|
||||
|
||||
# Save config
|
||||
print()
|
||||
@@ -295,6 +331,37 @@ def create_config() -> Config:
|
||||
return c
|
||||
|
||||
|
||||
def create_parser() -> argparse.ArgumentParser:
|
||||
# Create CLI
|
||||
hyfetch = color('&l&bhyfetch&~&L')
|
||||
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'), prog="hyfetch")
|
||||
|
||||
parser.add_argument('-c', '--config', action='store_true', help=color(f'Configure hyfetch'))
|
||||
parser.add_argument('-C', '--config-file', dest='config_file', default=CONFIG_PATH, help=f'Use another config file')
|
||||
parser.add_argument('-p', '--preset', help=f'Use preset', choices=list(PRESETS.keys()) + ['random'])
|
||||
parser.add_argument('-m', '--mode', help=f'Color mode', choices=['8bit', 'rgb'])
|
||||
parser.add_argument('-b', '--backend', help=f'Choose a *fetch backend', choices=['qwqfetch', 'neofetch', 'fastfetch', 'fastfetch-old'])
|
||||
parser.add_argument('--args', help=f'Additional arguments pass-through to backend')
|
||||
parser.add_argument('--c-scale', dest='scale', help=f'Lighten colors by a multiplier', type=float)
|
||||
parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float)
|
||||
parser.add_argument('--c-overlay', action='store_true', dest='overlay', help=f'Use experimental overlay color adjusting instead of HSL lightness')
|
||||
parser.add_argument('-V', '--version', dest='version', action='store_true', help=f'Check version')
|
||||
parser.add_argument('--june', action='store_true', help=f'Show pride month easter egg')
|
||||
parser.add_argument('--debug', action='store_true', help=f'Debug mode')
|
||||
|
||||
parser.add_argument('--distro', '--test-distro', dest='distro', help=f'Test for a specific distro')
|
||||
parser.add_argument('--ascii-file', help='Use a specific file for the ascii art')
|
||||
parser.add_argument('--print-font-logo', action='store_true', help='Print the Font Logo / Nerd Font icon of your distro and exit')
|
||||
|
||||
# Hidden debug arguments
|
||||
# --test-print: Print the ascii distro and exit
|
||||
parser.add_argument('--test-print', action='store_true', help=argparse.SUPPRESS)
|
||||
# --ask-exit: Ask for input before exiting
|
||||
parser.add_argument('--ask-exit', action='store_true', help=argparse.SUPPRESS)
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
def run():
|
||||
# Optional: Import readline
|
||||
try:
|
||||
@@ -307,31 +374,13 @@ def run():
|
||||
import colorama
|
||||
colorama.just_fix_windows_console()
|
||||
|
||||
# Create CLI
|
||||
hyfetch = color('&l&bhyfetch&~&L')
|
||||
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'))
|
||||
|
||||
parser.add_argument('-c', '--config', action='store_true', help=color(f'Configure {hyfetch}'))
|
||||
parser.add_argument('-C', '--config-file', dest='config_file', default=CONFIG_PATH, help=f'Use another config file')
|
||||
parser.add_argument('-p', '--preset', help=f'Use preset', choices=PRESETS.keys())
|
||||
parser.add_argument('-m', '--mode', help=f'Color mode', choices=['8bit', 'rgb'])
|
||||
parser.add_argument('-b', '--backend', help=f'Choose a *fetch backend', choices=['neofetch', 'fastfetch', 'fastfetch-old'])
|
||||
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('--distro', '--test-distro', dest='distro', help=f'Test for a specific distro')
|
||||
parser.add_argument('--ascii-file', help='Use a specific file for the ascii art')
|
||||
|
||||
# Hidden debug arguments
|
||||
# --test-print: Print the ascii distro and exit
|
||||
parser.add_argument('--test-print', action='store_true', help=argparse.SUPPRESS)
|
||||
# --ask-exit: Ask for input before exiting
|
||||
parser.add_argument('--ask-exit', action='store_true', help=argparse.SUPPRESS)
|
||||
|
||||
parser = create_parser()
|
||||
args = parser.parse_args()
|
||||
|
||||
# Use a custom distro
|
||||
GLOBAL_CFG.override_distro = args.distro
|
||||
GLOBAL_CFG.use_overlay = args.overlay
|
||||
|
||||
if args.version:
|
||||
print(f'Version is {VERSION}')
|
||||
return
|
||||
@@ -347,6 +396,10 @@ def run():
|
||||
print(get_distro_ascii())
|
||||
return
|
||||
|
||||
if args.print_font_logo:
|
||||
print(get_font_logo())
|
||||
return
|
||||
|
||||
# Check if user provided alternative config path
|
||||
if not args.config_file == CONFIG_PATH:
|
||||
args.config_file = Path(os.path.abspath(args.config_file))
|
||||
@@ -358,6 +411,23 @@ def run():
|
||||
# Load config or create config
|
||||
config = create_config() if args.config else check_config(args.config_file)
|
||||
|
||||
# Check if it's June (pride month)
|
||||
now = datetime.datetime.now()
|
||||
june_path = CACHE_PATH / f'animation-displayed-{now.year}'
|
||||
if now.month == 6 and now.year not in config.pride_month_shown and not june_path.is_file() and os.isatty(sys.stdout.fileno()):
|
||||
args.june = True
|
||||
|
||||
if args.june and not config.pride_month_disable:
|
||||
pride_month.start_animation()
|
||||
print()
|
||||
print("Happy pride month!")
|
||||
print("(You can always view the animation again with `hyfetch --june`)")
|
||||
print()
|
||||
|
||||
if not june_path.is_file():
|
||||
june_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
june_path.touch()
|
||||
|
||||
# Use a custom distro
|
||||
GLOBAL_CFG.override_distro = args.distro or config.distro
|
||||
|
||||
@@ -368,6 +438,12 @@ def run():
|
||||
config.mode = args.mode
|
||||
if args.backend:
|
||||
config.backend = args.backend
|
||||
if args.args:
|
||||
config.args = args.args
|
||||
|
||||
# Random preset
|
||||
if config.preset == 'random':
|
||||
config.preset = random.choice(list(PRESETS.keys()))
|
||||
|
||||
# Override global color mode
|
||||
GLOBAL_CFG.color_mode = config.mode
|
||||
@@ -388,7 +464,7 @@ def run():
|
||||
try:
|
||||
asc = get_distro_ascii() if not args.ascii_file else Path(args.ascii_file).read_text("utf-8")
|
||||
asc = config.color_align.recolor_ascii(asc, preset)
|
||||
neofetch_util.run(asc, config.backend)
|
||||
neofetch_util.run(asc, config.backend, config.args or '')
|
||||
except Exception as e:
|
||||
print(f'Error: {e}')
|
||||
traceback.print_exc()
|
||||
|
||||
+4
-1
@@ -16,7 +16,10 @@ class Config:
|
||||
lightness: float | None = None
|
||||
color_align: ColorAlignment = field(default_factory=lambda: ColorAlignment('horizontal'))
|
||||
backend: BackendLiteral = "neofetch"
|
||||
args: str | None = None
|
||||
distro: str | None = None
|
||||
pride_month_shown: list[int] = field(default_factory=list) # This is deprecated, see issue #136
|
||||
pride_month_disable: bool = False
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d: dict):
|
||||
@@ -25,4 +28,4 @@ class Config:
|
||||
|
||||
def save(self):
|
||||
CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True)
|
||||
CONFIG_PATH.write_text(json_stringify(self), 'utf-8')
|
||||
CONFIG_PATH.write_text(json_stringify(self, indent=4), 'utf-8')
|
||||
|
||||
+95
-81
@@ -7,23 +7,22 @@ import shlex
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import zipfile
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from subprocess import check_output
|
||||
from tempfile import TemporaryDirectory
|
||||
from typing import Iterable
|
||||
|
||||
import pkg_resources
|
||||
|
||||
from .color_util import color, printc
|
||||
from .constants import GLOBAL_CFG, MINGIT_URL, IS_WINDOWS
|
||||
from .constants import GLOBAL_CFG, IS_WINDOWS
|
||||
from .distros import distro_detector
|
||||
from .presets import ColorProfile
|
||||
from .serializer import from_dict
|
||||
from .types import BackendLiteral, ColorAlignMode
|
||||
|
||||
RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}')
|
||||
SRC = Path(__file__).parent
|
||||
|
||||
|
||||
def literal_input(prompt: str, options: Iterable[str], default: str, show_ops: bool = True) -> str:
|
||||
"""
|
||||
@@ -68,6 +67,7 @@ def literal_input(prompt: str, options: Iterable[str], default: str, show_ops: b
|
||||
|
||||
return find_selection(selection)
|
||||
|
||||
|
||||
def term_size() -> tuple[int, int]:
|
||||
"""
|
||||
Get terminal size
|
||||
@@ -129,7 +129,16 @@ class ColorAlignment:
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d: dict):
|
||||
return from_dict(cls, d)
|
||||
ca = from_dict(cls, d)
|
||||
# Backward compatibility
|
||||
if type(ca.custom_colors) is not dict:
|
||||
if type(ca.custom_colors) is list:
|
||||
ca.custom_colors = {i + 1: v for i, v in enumerate(ca.custom_colors)}
|
||||
else:
|
||||
ca.custom_colors = {}
|
||||
# Fixup: Keys must json serialize as str, so we convert them back to int.
|
||||
ca.custom_colors = {int(k): v for k, v in ca.custom_colors.items()}
|
||||
return ca
|
||||
|
||||
def recolor_ascii(self, asc: str, preset: ColorProfile) -> str:
|
||||
"""
|
||||
@@ -195,24 +204,13 @@ def get_command_path() -> str:
|
||||
|
||||
:return: Command path
|
||||
"""
|
||||
cmd_path = pkg_resources.resource_filename(__name__, 'scripts/neowofetch')
|
||||
cmd_path = (if_file(SRC.parent / 'neofetch') or if_file(SRC / 'scripts/neowofetch'))
|
||||
|
||||
# Windows doesn't support symbolic links, but also I can't detect symbolic links... hard-code it here for now.
|
||||
if IS_WINDOWS:
|
||||
pkg = Path(__file__).parent
|
||||
pth = (shutil.which("neowofetch") or
|
||||
if_file(cmd_path) or
|
||||
if_file(pkg / 'scripts/neowofetch') or
|
||||
if_file(pkg.parent / 'neofetch') or
|
||||
if_file(Path(cmd_path).parent.parent.parent / 'neofetch'))
|
||||
if not cmd_path:
|
||||
printc("&cError: Neofetch script cannot be found")
|
||||
exit(127)
|
||||
|
||||
if not pth:
|
||||
printc("&cError: Neofetch script cannot be found")
|
||||
exit(127)
|
||||
|
||||
return str(pth)
|
||||
|
||||
return cmd_path
|
||||
return str(cmd_path)
|
||||
|
||||
|
||||
def ensure_git_bash() -> Path:
|
||||
@@ -221,46 +219,19 @@ def ensure_git_bash() -> Path:
|
||||
|
||||
:returns git bash path
|
||||
"""
|
||||
if IS_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
|
||||
if not IS_WINDOWS:
|
||||
return Path('/usr/bin/bash')
|
||||
|
||||
# Detect third-party git.exe in path
|
||||
git_exe = shutil.which("bash") or shutil.which("git.exe") or shutil.which("git")
|
||||
if git_exe is not None:
|
||||
pth = Path(git_exe).parent
|
||||
if (pth / r'bash.exe').is_file():
|
||||
return pth / r'bash.exe'
|
||||
elif (pth / r'bin\bash.exe').is_file():
|
||||
return pth / r'bin\bash.exe'
|
||||
# Bundled git bash
|
||||
git_path = (if_file(SRC / 'git/bin/bash.exe')
|
||||
or if_file("C:/Program Files/Git/bin/bash.exe")
|
||||
or if_file("C:/Program Files (x86)/Git/bin/bash.exe"))
|
||||
|
||||
# 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'
|
||||
if not git_path.is_file():
|
||||
printc("&cError: Git Bash installation not found")
|
||||
sys.exit(127)
|
||||
|
||||
# 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')
|
||||
if literal_input('Would you like to install a minimal package for Git? (if no is selected colors almost certianly won\'t work)', ['yes', 'no'], 'yes', False) == 'yes':
|
||||
print('Downloading a minimal portable package for Git...')
|
||||
from urllib.request import urlretrieve
|
||||
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'
|
||||
else:
|
||||
sys.exit()
|
||||
return git_path
|
||||
|
||||
|
||||
def check_windows_cmd():
|
||||
@@ -268,14 +239,14 @@ def check_windows_cmd():
|
||||
Check if this script is running under cmd.exe. If so, launch an external window with git bash
|
||||
since cmd doesn't support RGB colors.
|
||||
"""
|
||||
if IS_WINDOWS:
|
||||
import psutil
|
||||
# TODO: This line does not correctly identify cmd prompts...
|
||||
if psutil.Process(os.getppid()).name().lower().strip() == 'cmd.exe':
|
||||
print("cmd.exe doesn't support RGB colors, restarting in MinTTY...")
|
||||
cmd = f'"{ensure_git_bash().parent.parent / "usr/bin/mintty.exe"}" -s 110,40 -e python -m hyfetch --ask-exit'
|
||||
os.system(cmd)
|
||||
sys.exit(0)
|
||||
# if IS_WINDOWS:
|
||||
# import psutil
|
||||
# # TODO: This line does not correctly identify cmd prompts...
|
||||
# if psutil.Process(os.getppid()).name().lower().strip() == 'cmd.exe':
|
||||
# print("cmd.exe doesn't support RGB colors, restarting in MinTTY...")
|
||||
# cmd = f'"{ensure_git_bash().parent.parent / "usr/bin/mintty.exe"}" -s 110,40 -e python -m hyfetch --ask-exit'
|
||||
# os.system(cmd)
|
||||
# sys.exit(0)
|
||||
|
||||
|
||||
def run_neofetch_cmd(args: str, pipe: bool = False) -> str | None:
|
||||
@@ -283,15 +254,16 @@ def run_neofetch_cmd(args: str, pipe: bool = False) -> str | None:
|
||||
Run neofetch command
|
||||
"""
|
||||
if platform.system() != 'Windows':
|
||||
full_cmd = ['/usr/bin/env', 'bash', get_command_path(), *shlex.split(args)]
|
||||
bash = ['/usr/bin/env', 'bash'] if Path('/usr/bin/env').is_file() else [shutil.which('bash')]
|
||||
full_cmd = [*bash, get_command_path(), *shlex.split(args)]
|
||||
|
||||
else:
|
||||
cmd = get_command_path().replace("\\", "/").replace("C:/", "/c/")
|
||||
args = args.replace('\\', '/').replace('C:/', '/c/')
|
||||
|
||||
full_cmd = [ensure_git_bash(), '-c', f"'{cmd}' {args}"]
|
||||
# print(full_cmd)
|
||||
full_cmd = [ensure_git_bash(), cmd, *shlex.split(args)]
|
||||
|
||||
full_cmd = [str(c) for c in full_cmd]
|
||||
if pipe:
|
||||
return check_output(full_cmd).decode().strip()
|
||||
else:
|
||||
@@ -336,20 +308,44 @@ def get_distro_name():
|
||||
return run_neofetch_cmd('ascii_distro_name', True)
|
||||
|
||||
|
||||
def run(asc: str, backend: BackendLiteral):
|
||||
def run(asc: str, backend: BackendLiteral, args: str = ''):
|
||||
if backend == "neofetch":
|
||||
return run_neofetch(asc)
|
||||
return run_neofetch(asc, args)
|
||||
if backend == "fastfetch":
|
||||
return run_fastfetch(asc)
|
||||
return run_fastfetch(asc, args)
|
||||
if backend == "fastfetch-old":
|
||||
return run_fastfetch(asc, legacy=True)
|
||||
return run_fastfetch(asc, args, legacy=True)
|
||||
if backend == "qwqfetch":
|
||||
return run_qwqfetch(asc, args)
|
||||
|
||||
|
||||
def run_neofetch(asc: str):
|
||||
def run_qwqfetch(asc: str, args: str = ''):
|
||||
"""
|
||||
Run qwqfetch with colors
|
||||
|
||||
:param asc: Ascii art
|
||||
:param args: Additional arguments to pass to qwqfetch
|
||||
"""
|
||||
asc = asc.replace('\\', '\\\\')
|
||||
|
||||
# call qwqfetch to print string
|
||||
try:
|
||||
import qwqfetch
|
||||
# distro_detector only return a bash variable
|
||||
# so we use qwqfetch builtin distro detector
|
||||
print(qwqfetch.get_ascres(asc))
|
||||
except ImportError as e: # module not found etc
|
||||
print("qwqfetch is not installed. Install it by executing:") # use print to output hint directly
|
||||
print("pip install git+https://github.com/nexplorer-3e/qwqfetch") # TODO: public repo
|
||||
exit(127)
|
||||
|
||||
|
||||
def run_neofetch(asc: str, args: str = ''):
|
||||
"""
|
||||
Run neofetch with colors
|
||||
|
||||
:param asc: Ascii art
|
||||
:param args: Additional arguments to pass to neofetch
|
||||
"""
|
||||
# Escape backslashes here because backslashes are escaped in neofetch for printf
|
||||
asc = asc.replace('\\', '\\\\')
|
||||
@@ -358,27 +354,45 @@ def run_neofetch(asc: str):
|
||||
with TemporaryDirectory() as tmp_dir:
|
||||
tmp_dir = Path(tmp_dir)
|
||||
path = tmp_dir / 'ascii.txt'
|
||||
path.write_text(asc)
|
||||
path.write_text(asc, 'utf-8')
|
||||
|
||||
# Call neofetch with the temp file
|
||||
run_neofetch_cmd(f'--ascii --source {path.absolute()} --ascii-colors')
|
||||
if args:
|
||||
args = ' ' + args
|
||||
run_neofetch_cmd(f'--ascii --source {path.absolute()} --ascii-colors' + args)
|
||||
|
||||
|
||||
def run_fastfetch(asc: str, legacy: bool = False):
|
||||
def fastfetch_path() -> Path | None:
|
||||
return (shutil.which('fastfetch')
|
||||
or if_file(SRC / 'fastfetch/usr/bin/fastfetch')
|
||||
or if_file(SRC / 'fastfetch/fastfetch')
|
||||
or if_file(SRC / 'fastfetch/fastfetch.exe'))
|
||||
|
||||
|
||||
def run_fastfetch(asc: str, args: str = '', legacy: bool = False):
|
||||
"""
|
||||
Run neofetch with colors
|
||||
|
||||
:param asc: Ascii art
|
||||
:param args: Additional arguments to pass to fastfetch
|
||||
:param legacy: Set true when using fastfetch < 1.8.0
|
||||
"""
|
||||
# Find fastfetch binary
|
||||
ff_path = fastfetch_path()
|
||||
|
||||
if not ff_path:
|
||||
printc("&cError: fastfetch binary is not found. Please install fastfetch first.")
|
||||
exit(127)
|
||||
|
||||
# Write temp file
|
||||
with TemporaryDirectory() as tmp_dir:
|
||||
tmp_dir = Path(tmp_dir)
|
||||
path = tmp_dir / 'ascii.txt'
|
||||
path.write_text(asc)
|
||||
path.write_text(asc, 'utf-8')
|
||||
|
||||
# Call fastfetch with the temp file
|
||||
proc = subprocess.run(['fastfetch', '--raw' if legacy else '--file-raw', path.absolute()])
|
||||
proc = subprocess.run([str(ff_path), '--raw' if legacy else '--file-raw',
|
||||
str(path.absolute()), *shlex.split(args)])
|
||||
if proc.returncode == 144:
|
||||
printc("&6Error code 144 detected: Please upgrade fastfetch to >=1.8.0 or use the 'fastfetch-old' backend")
|
||||
|
||||
@@ -396,7 +410,7 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
distro = get_distro_name().lower()
|
||||
distro = distro.lower().replace(' ', '-')
|
||||
for k, v in fore_back.items():
|
||||
if distro == k.lower():
|
||||
if distro.startswith(k.lower()):
|
||||
return v
|
||||
return None
|
||||
|
||||
@@ -404,7 +418,6 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
# Foreground-background recommendation
|
||||
fore_back = {
|
||||
'fedora': (2, 1),
|
||||
'ubuntu': (2, 1),
|
||||
'kubuntu': (2, 1),
|
||||
'lubuntu': (2, 1),
|
||||
'xubuntu': (2, 1),
|
||||
@@ -413,5 +426,6 @@ fore_back = {
|
||||
'ubuntu-mate': (2, 1),
|
||||
'ubuntu-studio': (2, 1),
|
||||
'ubuntu-sway': (2, 1),
|
||||
'ultramarine': (2, 1),
|
||||
}
|
||||
|
||||
|
||||
+357
-38
@@ -119,11 +119,35 @@ class ColorProfile:
|
||||
:param term: Terminal color (can be "dark" or "light")
|
||||
:return: New color profile (original isn't modified)
|
||||
"""
|
||||
if GLOBAL_CFG.use_overlay:
|
||||
return self.overlay_dl(light, term)
|
||||
|
||||
term = term or GLOBAL_CFG.light_dark()
|
||||
assert term.lower() in ['light', 'dark']
|
||||
at_least, at_most = (True, None) if term.lower() == 'dark' else (None, True)
|
||||
return self.set_light_raw(light, at_least, at_most)
|
||||
|
||||
def overlay_raw(self, color: RGB, alpha: float) -> 'ColorProfile':
|
||||
"""
|
||||
Overlay a color on top of the color profile
|
||||
|
||||
:param color: Color to overlay
|
||||
:param alpha: Alpha value (0-1)
|
||||
:return: New color profile (original isn't modified)
|
||||
"""
|
||||
return ColorProfile([c.overlay(color, alpha) for c in self.colors])
|
||||
|
||||
def overlay_dl(self, light: float, term: LightDark | None = None):
|
||||
"""
|
||||
Same as set_light_dl except that this function uses RGB overlaying instead of HSL lightness change
|
||||
"""
|
||||
term = term or GLOBAL_CFG.light_dark()
|
||||
assert term.lower() in ['light', 'dark']
|
||||
|
||||
# If it's light bg, overlay black, else overlay white
|
||||
overlay_color = RGB.from_hex('#000000' if term.lower() == 'light' else '#FFFFFF')
|
||||
return self.overlay_raw(overlay_color, abs(light - 0.5) * 2)
|
||||
|
||||
def set_light_dl_def(self, term: LightDark | None = None):
|
||||
"""
|
||||
Set default lightness with respect to dark/light terminals
|
||||
@@ -165,6 +189,17 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#282828'
|
||||
]),
|
||||
|
||||
# xenogender sourced from https://commons.wikimedia.org/wiki/File:Xenogender_pride_flag.svg
|
||||
'xenogender': ColorProfile([
|
||||
'#FF6692',
|
||||
'#FF9A98',
|
||||
'#FFB883',
|
||||
'#FBFFA8',
|
||||
'#85BCFF',
|
||||
'#9D85FF',
|
||||
'#A510FF'
|
||||
]),
|
||||
|
||||
'agender': ColorProfile([
|
||||
'#000000',
|
||||
'#BABABA',
|
||||
@@ -475,55 +510,45 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#740194',
|
||||
]),
|
||||
|
||||
'autoromantic': ColorProfile([ # symbol interpreted
|
||||
'autoromantic': ColorProfile([ # symbol interpreted
|
||||
'#99D9EA',
|
||||
'#99D9EA',
|
||||
'#99D9EA',
|
||||
'#99D9EA',
|
||||
'#99D9EA',
|
||||
'#000000',
|
||||
'#3DA542',
|
||||
'#3DA542',
|
||||
'#000000',
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
'#7F7F7F',
|
||||
]),
|
||||
|
||||
# i didn't expect this one to work. cool!
|
||||
'boyflux2': ColorProfile([
|
||||
'boyflux2': ColorProfile(ColorProfile([
|
||||
'#E48AE4',
|
||||
'#9A81B4',
|
||||
'#55BFAB',
|
||||
'#FFFFFF',
|
||||
'#A8A8A8',
|
||||
'#81D5EF',
|
||||
'#81D5EF',
|
||||
'#81D5EF',
|
||||
'#81D5EF',
|
||||
'#81D5EF',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#69ABE5',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
'#5276D4',
|
||||
]).with_weights([1, 1, 1, 1, 1, 5, 5, 5])),
|
||||
|
||||
# sourced from https://commons.wikimedia.org/wiki/File:Girlflux_Pride_Flag.jpg
|
||||
"girlflux": ColorProfile([
|
||||
"f9e6d7",
|
||||
"f2526c",
|
||||
"bf0311",
|
||||
"e9c587",
|
||||
"bf0311",
|
||||
"f2526c",
|
||||
"f9e6d7",
|
||||
]),
|
||||
|
||||
# sourced from https://www.deviantart.com/pride-flags/art/Genderflux-1-543925589
|
||||
"genderflux": ColorProfile([
|
||||
"f47694",
|
||||
"f2a2b9",
|
||||
"cecece",
|
||||
"7ce0f7",
|
||||
"3ecdf9",
|
||||
"fff48d",
|
||||
]),
|
||||
|
||||
"finsexual": ColorProfile([
|
||||
@@ -533,7 +558,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#F39FCE",
|
||||
"#EA7BB3",
|
||||
]),
|
||||
|
||||
|
||||
'unlabeled1': ColorProfile([
|
||||
'#EAF8E4',
|
||||
'#FDFDFB',
|
||||
@@ -560,6 +585,16 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#FFF798',
|
||||
]),
|
||||
|
||||
'pangender.contrast': ColorProfile([
|
||||
'#ffe87f',
|
||||
'#fcbaa6',
|
||||
'#fbc9f3',
|
||||
'#FFFFFF',
|
||||
'#fbc9f3',
|
||||
'#fcbaa6',
|
||||
'#ffe87f',
|
||||
]),
|
||||
|
||||
'gendernonconforming1': ColorProfile(
|
||||
ColorProfile([
|
||||
'#50284d',
|
||||
@@ -570,7 +605,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#96467b',
|
||||
'#50284d'
|
||||
]).with_weights([
|
||||
4,1,1,1,1,1,4
|
||||
4, 1, 1, 1, 1, 1, 4
|
||||
])
|
||||
),
|
||||
|
||||
@@ -604,8 +639,20 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#2f3fb9"
|
||||
]),
|
||||
|
||||
'gynesexual': ColorProfile([
|
||||
"#F4A9B7",
|
||||
"#903F2B",
|
||||
"#5B953B",
|
||||
]),
|
||||
|
||||
'androsexual': ColorProfile([
|
||||
"#01CCFF",
|
||||
"#603524",
|
||||
"#B799DE",
|
||||
]),
|
||||
|
||||
# gendervoid and related flags sourced from: https://gender.fandom.com/wiki/Gendervoid
|
||||
'gendervoid' : ColorProfile([
|
||||
'gendervoid': ColorProfile([
|
||||
"#081149",
|
||||
"#4B484B",
|
||||
"#000000",
|
||||
@@ -613,7 +660,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#081149"
|
||||
]),
|
||||
|
||||
'voidgirl' : ColorProfile([
|
||||
'voidgirl': ColorProfile([
|
||||
"#180827",
|
||||
"#7A5A8B",
|
||||
"#E09BED",
|
||||
@@ -621,7 +668,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#180827"
|
||||
]),
|
||||
|
||||
'voidboy' : ColorProfile([
|
||||
'voidboy': ColorProfile([
|
||||
"#0B130C",
|
||||
"#547655",
|
||||
"#66B969",
|
||||
@@ -629,6 +676,254 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#0B130C"
|
||||
]),
|
||||
|
||||
# used https://twitter.com/foxbrained/status/1667621855518236674/photo/1 as source and colorpicked
|
||||
'nonhuman-unity': ColorProfile([
|
||||
"#177B49",
|
||||
"#FFFFFF",
|
||||
"#593C90"
|
||||
]),
|
||||
|
||||
# used https://pluralpedia.org/w/Plurality#/media/File:Plural-Flag-1.jpg as source and colorpicked
|
||||
'plural': ColorProfile([
|
||||
"#2D0625",
|
||||
"#543475",
|
||||
"#7675C3",
|
||||
"#89C7B0",
|
||||
"#F3EDBD",
|
||||
]),
|
||||
|
||||
# sampled from https://es.m.wikipedia.org/wiki/Archivo:Fraysexual_flag.jpg
|
||||
'fraysexual': ColorProfile([
|
||||
'#226CB5',
|
||||
'#94E7DD',
|
||||
'#FFFFFF',
|
||||
'#636363',
|
||||
]),
|
||||
|
||||
# Queer Subcultures
|
||||
# sourced from https://commons.wikimedia.org/wiki/File:Bear_Brotherhood_flag.svg
|
||||
'bear': ColorProfile([
|
||||
'#623804',
|
||||
'#D56300',
|
||||
'#FEDD63',
|
||||
'#FEE6B8',
|
||||
'#FFFFFF',
|
||||
'#555555',
|
||||
]),
|
||||
|
||||
# colorpicked from https://commons.wikimedia.org/wiki/File:Butch_Flag.png
|
||||
'butch': ColorProfile([
|
||||
'#D72800',
|
||||
'#F17623',
|
||||
'#FF9C56',
|
||||
'#FFFDF6',
|
||||
'#FFCE89',
|
||||
'#FEAF02',
|
||||
'#A37000',
|
||||
]),
|
||||
|
||||
# colorpicked from https://commons.wikimedia.org/wiki/File:Leather,_Latex,_and_BDSM_pride_-_Light.svg
|
||||
'leather': ColorProfile([
|
||||
'#000000',
|
||||
'#252580',
|
||||
'#000000',
|
||||
'#252580',
|
||||
'#FFFFFF',
|
||||
'#252580',
|
||||
'#000000',
|
||||
'#252580',
|
||||
'#000000',
|
||||
]),
|
||||
|
||||
# colorpicked from https://commons.wikimedia.org/wiki/File:Official_Otter_Pride_Flag_by_Bearbackgear.jpg
|
||||
'otter': ColorProfile([
|
||||
'#263881',
|
||||
'#5C9DC9',
|
||||
'#FFFFFF',
|
||||
'#3A291D',
|
||||
'#5C9DC9',
|
||||
'#263881',
|
||||
]),
|
||||
|
||||
# colorpicked from https://commons.wikimedia.org/wiki/File:Twink_Pride_Flag_(proposed).svg
|
||||
'twink': ColorProfile([
|
||||
'#FFB2FF',
|
||||
'#FFFFFF',
|
||||
'#FFFF81',
|
||||
]),
|
||||
|
||||
'kenochoric': ColorProfile([
|
||||
'#000000',
|
||||
'#2E1569',
|
||||
'#824DB7',
|
||||
'#C7A1D6',
|
||||
]),
|
||||
|
||||
'veldian': ColorProfile([
|
||||
'#D182A8',
|
||||
'#FAF6E0',
|
||||
'#69ACBE',
|
||||
'#5D448F',
|
||||
'#3A113E',
|
||||
]),
|
||||
|
||||
'solian': ColorProfile([
|
||||
'#FFF8ED',
|
||||
'#FFE7A8',
|
||||
'#F1B870',
|
||||
'#A56058',
|
||||
'#46281E',
|
||||
]),
|
||||
|
||||
'lunian': ColorProfile([
|
||||
'#2F0E62',
|
||||
'#6F41B1',
|
||||
'#889FDF',
|
||||
'#7DDFD5',
|
||||
'#D2F2E2',
|
||||
]),
|
||||
|
||||
# Start of Extras by Jaida Corvera
|
||||
# polyamorous flag colors pulled from https://polyamproud.com/flag
|
||||
'polyam': ColorProfile([
|
||||
"#FFFFFF",
|
||||
"#FCBF00",
|
||||
"#009FE3",
|
||||
"#E50051",
|
||||
"#340C46",
|
||||
]),
|
||||
|
||||
'sapphic': ColorProfile([
|
||||
"#FD8BA8",
|
||||
"#FBF2FF",
|
||||
"#C76BC5",
|
||||
"#FDD768",
|
||||
"#C76BC5",
|
||||
"#FBF2FF",
|
||||
"#FD8BA8"
|
||||
]),
|
||||
|
||||
'androgyne': ColorProfile([
|
||||
"#FE007F",
|
||||
"#9832FF",
|
||||
"#00B8E7",
|
||||
]),
|
||||
|
||||
'interprogress': ColorProfile([
|
||||
"#FFD800",
|
||||
"#7902AA",
|
||||
"#FFFFFF",
|
||||
"#FFAFC8",
|
||||
"#74D7EE",
|
||||
"#613915",
|
||||
"#000000",
|
||||
'#E50000',
|
||||
'#FF8D00',
|
||||
'#FFEE00',
|
||||
'#028121',
|
||||
'#004CFF',
|
||||
'#770088'
|
||||
]),
|
||||
|
||||
'progress': ColorProfile([
|
||||
"#FFFFFF",
|
||||
"#FFAFC8",
|
||||
"#74D7EE",
|
||||
"#613915",
|
||||
"#000000",
|
||||
'#E50000',
|
||||
'#FF8D00',
|
||||
'#FFEE00',
|
||||
'#028121',
|
||||
'#004CFF',
|
||||
'#770088'
|
||||
]),
|
||||
|
||||
'intersex': ColorProfile([
|
||||
"#FFD800",
|
||||
"#FFD800",
|
||||
"#7902AA",
|
||||
"#FFD800",
|
||||
"#FFD800"
|
||||
]),
|
||||
|
||||
'old-polyam': ColorProfile([
|
||||
"#0000FF",
|
||||
"#FF0000",
|
||||
"#FFFF00",
|
||||
"#FF0000",
|
||||
"#000000"
|
||||
]),
|
||||
|
||||
'equal-rights': ColorProfile([
|
||||
"#0000FF",
|
||||
"#0000FF",
|
||||
"#FFFF00",
|
||||
"#0000FF",
|
||||
"#0000FF",
|
||||
"#FFFF00",
|
||||
"#0000FF",
|
||||
"#0000FF"
|
||||
]),
|
||||
|
||||
'drag': ColorProfile([
|
||||
"#CC67FF",
|
||||
"#FFFFFF",
|
||||
"#FFA3E3",
|
||||
"#FFFFFF",
|
||||
"#3366FF"
|
||||
]),
|
||||
|
||||
# Pronoun Flags
|
||||
|
||||
'pronounfluid': ColorProfile([
|
||||
"#ffb3f9",
|
||||
"#ffffff",
|
||||
"#d1fdcb",
|
||||
"#c7b0ff",
|
||||
"#000000",
|
||||
"#b8ccff"
|
||||
]),
|
||||
|
||||
'pronounflux': ColorProfile([
|
||||
"#fdb3f8",
|
||||
"#b6ccfa",
|
||||
"#18ddd3",
|
||||
"#64ff89",
|
||||
"#ff7690",
|
||||
"#ffffff"
|
||||
]),
|
||||
|
||||
'exipronoun': ColorProfile([
|
||||
"#1c3d34",
|
||||
"#ffffff",
|
||||
"#321848",
|
||||
"#000000"
|
||||
]),
|
||||
|
||||
'neopronoun': ColorProfile([
|
||||
"#bcec64",
|
||||
"#ffffff",
|
||||
"#38077a"
|
||||
]),
|
||||
|
||||
'neofluid': ColorProfile([
|
||||
"#ffeca0",
|
||||
"#ffffff",
|
||||
"#ffeca0",
|
||||
"#38087a",
|
||||
"#bcec64"
|
||||
]),
|
||||
|
||||
'genderqueer': ColorProfile([
|
||||
"#b57edc",
|
||||
"#b57edc",
|
||||
"#ffffff",
|
||||
"#ffffff",
|
||||
"#4a8123",
|
||||
"#4a8123"
|
||||
]),
|
||||
|
||||
# Meme flags
|
||||
'beiyang': ColorProfile([
|
||||
'#DF1B12',
|
||||
@@ -645,4 +940,28 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#7D3829',
|
||||
'#F3A26A',
|
||||
]),
|
||||
|
||||
# colors from Gilbert Baker's original 1978 flag design
|
||||
# used https://gilbertbaker.com/rainbow-flag-color-meanings/ as source and colorpicked
|
||||
'baker': ColorProfile([
|
||||
'#F23D9E',
|
||||
'#F80A24',
|
||||
'#F78022',
|
||||
'#F9E81F',
|
||||
'#1E972E',
|
||||
'#1B86BC',
|
||||
'#243897',
|
||||
'#6F0A82',
|
||||
]),
|
||||
|
||||
# this is 4 all the dogs, from zombpawcoins on tumblr!
|
||||
'caninekin': ColorProfile([
|
||||
'#2d2822',
|
||||
'#543d25',
|
||||
'#9c754d',
|
||||
'#e8dac2',
|
||||
'#cfad8c',
|
||||
'#b77b55',
|
||||
'#954e31'
|
||||
])
|
||||
}
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
import math
|
||||
from time import sleep
|
||||
|
||||
from hyfetch import presets
|
||||
from hyfetch.color_util import RGB, color, printc
|
||||
from hyfetch.constants import IS_WINDOWS
|
||||
from hyfetch.neofetch_util import term_size
|
||||
from hyfetch.presets import PRESETS
|
||||
|
||||
|
||||
def key_pressed():
|
||||
if IS_WINDOWS:
|
||||
import msvcrt
|
||||
return msvcrt.kbhit() # Non-blocking check for key press
|
||||
else:
|
||||
import select
|
||||
import sys
|
||||
return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], [])
|
||||
|
||||
|
||||
def start_animation():
|
||||
text = r"""
|
||||
.======================================================.
|
||||
| . . .__ . . . , . | |
|
||||
| |__| _.._ ._ . [__)._.* _| _ |\/| _ ._ -+-|_ | |
|
||||
| | |(_][_)[_)\_| | [ |(_](/, | |(_)[ ) | [ ) * |
|
||||
| | | ._| |
|
||||
'======================================================'""".strip("\n")
|
||||
text_lines = text.split("\n")
|
||||
text_height = len(text_lines)
|
||||
text_width = len(text_lines[0])
|
||||
|
||||
notice = "Press enter to continue"
|
||||
|
||||
speed = 2
|
||||
frame_delay = 1 / 25
|
||||
|
||||
colors: list[RGB] = []
|
||||
frame = 0
|
||||
|
||||
w, h = term_size()
|
||||
blocks = 9
|
||||
block_width = w // blocks
|
||||
|
||||
text_start_y = h // 2 - text_height // 2
|
||||
text_end_y = text_start_y + text_height
|
||||
text_start_x = w // 2 - text_width // 2
|
||||
text_end_x = text_start_x + text_width
|
||||
|
||||
notice_start_x = w - len(notice) - 1
|
||||
notice_end_x = w - 1
|
||||
notice_y = h - 1
|
||||
|
||||
# Add everything in PRESETS to colors
|
||||
colors = [c for preset in PRESETS.values() for c in preset.colors]
|
||||
|
||||
black = RGB(0, 0, 0)
|
||||
fg = RGB.from_hex("#FFE09B")
|
||||
|
||||
def draw_frame():
|
||||
buf = ""
|
||||
|
||||
# Loop over the height
|
||||
for y in range(h):
|
||||
# Print the starting color
|
||||
buf += colors[((frame + y) // block_width) % len(colors)].to_ansi_rgb(foreground=False)
|
||||
buf += fg.to_ansi_rgb(foreground=True)
|
||||
|
||||
# Loop over the width
|
||||
x = 0
|
||||
while x < w:
|
||||
idx = frame + x + y + int(math.sin(y + 0.5 * frame) * 2)
|
||||
y_text = text_start_y <= y < text_end_y
|
||||
|
||||
border = 1 + int(not (y == text_start_y or y == text_end_y - 1))
|
||||
|
||||
# If it's a switching point
|
||||
if idx % block_width == 0 or x == text_start_x - border or x == text_end_x + border \
|
||||
or x == notice_start_x - 1 or x == notice_end_x + 1:
|
||||
# Print the color at the current frame
|
||||
c = colors[(idx // block_width) % len(colors)]
|
||||
if (y_text and text_start_x - border <= x < text_end_x + border) \
|
||||
or (y == notice_y and notice_start_x - 1 <= x < notice_end_x + 1):
|
||||
# buf += c.set_light(0.3).to_ansi_rgb(foreground=False)
|
||||
buf += c.overlay(black, 0.5).to_ansi_rgb(foreground=False)
|
||||
else:
|
||||
buf += c.to_ansi_rgb(foreground=False)
|
||||
|
||||
# If text should be printed, print text
|
||||
if y_text and text_start_x <= x < text_end_x:
|
||||
# Add white background
|
||||
buf += text_lines[y - text_start_y][x - text_start_x]
|
||||
elif y == notice_y and notice_start_x <= x < notice_end_x:
|
||||
buf += notice[x - notice_start_x]
|
||||
else:
|
||||
buf += ' '
|
||||
|
||||
x += 1
|
||||
|
||||
# New line if it isn't the last line
|
||||
if y != h - 1:
|
||||
buf += color('&r\n')
|
||||
|
||||
print(buf, end='', flush=True)
|
||||
|
||||
try:
|
||||
while 1:
|
||||
# Clear the screen
|
||||
print("\033[2J\033[H", end="")
|
||||
draw_frame()
|
||||
frame += speed
|
||||
sleep(frame_delay)
|
||||
|
||||
if key_pressed():
|
||||
break
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
# Clear the screen
|
||||
printc("&r")
|
||||
print("\033[2J\033[H", end="", flush=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
start_animation()
|
||||
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
# AUTOMATICALLY GENERATED by `shtab`
|
||||
|
||||
|
||||
|
||||
_shtab_hyfetch_option_strings=('-h' '--help' '-c' '--config' '-C' '--config-file' '-p' '--preset' '-m' '--mode' '-b' '--backend' '--c-scale' '--c-set-l' '-V' '--version' '--debug' '--distro' '--test-distro' '--ascii-file')
|
||||
|
||||
|
||||
|
||||
_shtab_hyfetch__p_choices=('rainbow' 'transgender' 'nonbinary' 'agender' 'queer' 'genderfluid' 'bisexual' 'pansexual' 'polysexual' 'omnisexual' 'omniromantic' 'gay-men' 'lesbian' 'abrosexual' 'asexual' 'aromantic' 'aroace1' 'aroace2' 'aroace3' 'autosexual' 'intergender' 'greygender' 'akiosexual' 'bigender' 'demigender' 'demiboy' 'demigirl' 'transmasculine' 'transfeminine' 'genderfaun' 'demifaun' 'genderfae' 'demifae' 'neutrois' 'biromantic1' 'biromantic2' 'autoromantic' 'boyflux2' 'finsexual' 'unlabeled1' 'unlabeled2' 'pangender' 'gendernonconforming1' 'gendernonconforming2' 'femboy' 'tomboy' 'gendervoid' 'voidgirl' 'voidboy' 'plural' 'beiyang' 'burger' 'caninekin')
|
||||
_shtab_hyfetch___preset_choices=('rainbow' 'transgender' 'nonbinary' 'agender' 'queer' 'genderfluid' 'bisexual' 'pansexual' 'polysexual' 'omnisexual' 'omniromantic' 'gay-men' 'lesbian' 'abrosexual' 'asexual' 'aromantic' 'aroace1' 'aroace2' 'aroace3' 'autosexual' 'intergender' 'greygender' 'akiosexual' 'bigender' 'demigender' 'demiboy' 'demigirl' 'transmasculine' 'transfeminine' 'genderfaun' 'demifaun' 'genderfae' 'demifae' 'neutrois' 'biromantic1' 'biromantic2' 'autoromantic' 'boyflux2' 'finsexual' 'unlabeled1' 'unlabeled2' 'pangender' 'gendernonconforming1' 'gendernonconforming2' 'femboy' 'tomboy' 'gendervoid' 'voidgirl' 'voidboy' 'plural' 'beiyang' 'burger' 'caninekin')
|
||||
_shtab_hyfetch__m_choices=('8bit' 'rgb')
|
||||
_shtab_hyfetch___mode_choices=('8bit' 'rgb')
|
||||
_shtab_hyfetch__b_choices=('neofetch' 'fastfetch' 'fastfetch-old')
|
||||
_shtab_hyfetch___backend_choices=('neofetch' 'fastfetch' 'fastfetch-old')
|
||||
|
||||
_shtab_hyfetch__h_nargs=0
|
||||
_shtab_hyfetch___help_nargs=0
|
||||
_shtab_hyfetch__c_nargs=0
|
||||
_shtab_hyfetch___config_nargs=0
|
||||
_shtab_hyfetch__V_nargs=0
|
||||
_shtab_hyfetch___version_nargs=0
|
||||
_shtab_hyfetch___debug_nargs=0
|
||||
_shtab_hyfetch___test_print_nargs=0
|
||||
_shtab_hyfetch___ask_exit_nargs=0
|
||||
|
||||
|
||||
# $1=COMP_WORDS[1]
|
||||
_shtab_compgen_files() {
|
||||
compgen -f -- $1 # files
|
||||
}
|
||||
|
||||
# $1=COMP_WORDS[1]
|
||||
_shtab_compgen_dirs() {
|
||||
compgen -d -- $1 # recurse into subdirs
|
||||
}
|
||||
|
||||
# $1=COMP_WORDS[1]
|
||||
_shtab_replace_nonword() {
|
||||
echo "${1//[^[:word:]]/_}"
|
||||
}
|
||||
|
||||
# set default values (called for the initial parser & any subparsers)
|
||||
_set_parser_defaults() {
|
||||
local subparsers_var="${prefix}_subparsers[@]"
|
||||
sub_parsers=${!subparsers_var}
|
||||
|
||||
local current_option_strings_var="${prefix}_option_strings[@]"
|
||||
current_option_strings=${!current_option_strings_var}
|
||||
|
||||
completed_positional_actions=0
|
||||
|
||||
_set_new_action "pos_${completed_positional_actions}" true
|
||||
}
|
||||
|
||||
# $1=action identifier
|
||||
# $2=positional action (bool)
|
||||
# set all identifiers for an action's parameters
|
||||
_set_new_action() {
|
||||
current_action="${prefix}_$(_shtab_replace_nonword $1)"
|
||||
|
||||
local current_action_compgen_var=${current_action}_COMPGEN
|
||||
current_action_compgen="${!current_action_compgen_var}"
|
||||
|
||||
local current_action_choices_var="${current_action}_choices[@]"
|
||||
current_action_choices="${!current_action_choices_var}"
|
||||
|
||||
local current_action_nargs_var="${current_action}_nargs"
|
||||
if [ -n "${!current_action_nargs_var}" ]; then
|
||||
current_action_nargs="${!current_action_nargs_var}"
|
||||
else
|
||||
current_action_nargs=1
|
||||
fi
|
||||
|
||||
current_action_args_start_index=$(( $word_index + 1 ))
|
||||
|
||||
current_action_is_positional=$2
|
||||
}
|
||||
|
||||
# Notes:
|
||||
# `COMPREPLY`: what will be rendered after completion is triggered
|
||||
# `completing_word`: currently typed word to generate completions for
|
||||
# `${!var}`: evaluates the content of `var` and expand its content as a variable
|
||||
# hello="world"
|
||||
# x="hello"
|
||||
# ${!x} -> ${hello} -> "world"
|
||||
_shtab_hyfetch() {
|
||||
local completing_word="${COMP_WORDS[COMP_CWORD]}"
|
||||
COMPREPLY=()
|
||||
|
||||
prefix=_shtab_hyfetch
|
||||
word_index=0
|
||||
_set_parser_defaults
|
||||
word_index=1
|
||||
|
||||
# determine what arguments are appropriate for the current state
|
||||
# of the arg parser
|
||||
while [ $word_index -ne $COMP_CWORD ]; do
|
||||
local this_word="${COMP_WORDS[$word_index]}"
|
||||
|
||||
if [[ -n $sub_parsers && " ${sub_parsers[@]} " =~ " ${this_word} " ]]; then
|
||||
# valid subcommand: add it to the prefix & reset the current action
|
||||
prefix="${prefix}_$(_shtab_replace_nonword $this_word)"
|
||||
_set_parser_defaults
|
||||
fi
|
||||
|
||||
if [[ " ${current_option_strings[@]} " =~ " ${this_word} " ]]; then
|
||||
# a new action should be acquired (due to recognised option string or
|
||||
# no more input expected from current action);
|
||||
# the next positional action can fill in here
|
||||
_set_new_action $this_word false
|
||||
fi
|
||||
|
||||
if [[ "$current_action_nargs" != "*" ]] && \
|
||||
[[ "$current_action_nargs" != "+" ]] && \
|
||||
[[ "$current_action_nargs" != *"..." ]] && \
|
||||
(( $word_index + 1 - $current_action_args_start_index >= \
|
||||
$current_action_nargs )); then
|
||||
$current_action_is_positional && let "completed_positional_actions += 1"
|
||||
_set_new_action "pos_${completed_positional_actions}" true
|
||||
fi
|
||||
|
||||
let "word_index+=1"
|
||||
done
|
||||
|
||||
# Generate the completions
|
||||
|
||||
if [[ "${completing_word}" == -* ]]; then
|
||||
# optional argument started: use option strings
|
||||
COMPREPLY=( $(compgen -W "${current_option_strings[*]}" -- "${completing_word}") )
|
||||
else
|
||||
# use choices & compgen
|
||||
local IFS=$'\n' # items may contain spaces, so delimit using newline
|
||||
COMPREPLY=( $([ -n "${current_action_compgen}" ] \
|
||||
&& "${current_action_compgen}" "${completing_word}") )
|
||||
unset IFS
|
||||
COMPREPLY+=( $(compgen -W "${current_action_choices[*]}" -- "${completing_word}") )
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
complete -o filenames -F _shtab_hyfetch hyfetch
|
||||
@@ -0,0 +1,14 @@
|
||||
# AUTOMATICALLY GENERATED by `shtab`
|
||||
|
||||
|
||||
|
||||
complete hyfetch \
|
||||
'c/--/(mode test-distro preset config c-scale c-set-l config-file ascii-file version debug distro help backend)/' \
|
||||
'c/-/(m h V C p b c -)/' \
|
||||
'n/-p/(rainbow transgender nonbinary agender queer genderfluid bisexual pansexual polysexual omnisexual omniromantic gay-men lesbian abrosexual asexual aromantic aroace1 aroace2 aroace3 autosexual intergender greygender akiosexual bigender demigender demiboy demigirl transmasculine transfeminine genderfaun demifaun genderfae demifae neutrois biromantic1 biromantic2 autoromantic boyflux2 finsexual unlabeled1 unlabeled2 pangender gendernonconforming1 gendernonconforming2 femboy tomboy gendervoid voidgirl voidboy plural beiyang burger caninekin)/' \
|
||||
'n/--preset/(rainbow transgender nonbinary agender queer genderfluid bisexual pansexual polysexual omnisexual omniromantic gay-men lesbian abrosexual asexual aromantic aroace1 aroace2 aroace3 autosexual intergender greygender akiosexual bigender demigender demiboy demigirl transmasculine transfeminine genderfaun demifaun genderfae demifae neutrois biromantic1 biromantic2 autoromantic boyflux2 finsexual unlabeled1 unlabeled2 pangender gendernonconforming1 gendernonconforming2 femboy tomboy gendervoid voidgirl voidboy plural beiyang burger caninekin)/' \
|
||||
'n/-m/(8bit rgb)/' \
|
||||
'n/--mode/(8bit rgb)/' \
|
||||
'n/-b/(neofetch fastfetch fastfetch-old)/' \
|
||||
'n/--backend/(neofetch fastfetch fastfetch-old)/' \
|
||||
'p/*/()/'
|
||||
@@ -0,0 +1,51 @@
|
||||
#compdef hyfetch
|
||||
|
||||
# AUTOMATICALLY GENERATED by `shtab`
|
||||
|
||||
|
||||
_shtab_hyfetch_commands() {
|
||||
local _commands=(
|
||||
|
||||
)
|
||||
_describe 'hyfetch commands' _commands
|
||||
}
|
||||
|
||||
_shtab_hyfetch_options=(
|
||||
"(- : *)"{-h,--help}"[show this help message and exit]"
|
||||
{-c,--config}"[Configure hyfetch]"
|
||||
{-C,--config-file}"[Use another config file]:config_file:"
|
||||
{-p,--preset}"[Use preset]:preset:(rainbow transgender nonbinary agender queer genderfluid bisexual pansexual polysexual omnisexual omniromantic gay-men lesbian abrosexual asexual aromantic aroace1 aroace2 aroace3 autosexual intergender greygender akiosexual bigender demigender demiboy demigirl transmasculine transfeminine genderfaun demifaun genderfae demifae neutrois biromantic1 biromantic2 autoromantic boyflux2 finsexual unlabeled1 unlabeled2 pangender gendernonconforming1 gendernonconforming2 femboy tomboy gendervoid voidgirl voidboy plural beiyang burger caninekin)"
|
||||
{-m,--mode}"[Color mode]:mode:(8bit rgb)"
|
||||
{-b,--backend}"[Choose a \*fetch backend]:backend:(neofetch fastfetch fastfetch-old)"
|
||||
"--c-scale[Lighten colors by a multiplier]:scale:"
|
||||
"--c-set-l[Set lightness value of the colors]:light:"
|
||||
{-V,--version}"[Check version]"
|
||||
"--debug[Debug mode]"
|
||||
{--distro,--test-distro}"[Test for a specific distro]:distro:"
|
||||
"--ascii-file[Use a specific file for the ascii art]:ascii_file:"
|
||||
)
|
||||
|
||||
|
||||
_shtab_hyfetch() {
|
||||
local context state line curcontext="$curcontext" one_or_more='(-)*' remainder='(*)'
|
||||
|
||||
if ((${_shtab_hyfetch_options[(I)${(q)one_or_more}*]} + ${_shtab_hyfetch_options[(I)${(q)remainder}*]} == 0)); then # noqa: E501
|
||||
_shtab_hyfetch_options+=(': :_shtab_hyfetch_commands' '*::: :->hyfetch')
|
||||
fi
|
||||
_arguments -C $_shtab_hyfetch_options
|
||||
|
||||
case $state in
|
||||
hyfetch)
|
||||
words=($line[1] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:_shtab_hyfetch-$line[1]:"
|
||||
case $line[1] in
|
||||
|
||||
esac
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
|
||||
typeset -A opt_args
|
||||
_shtab_hyfetch "$@"
|
||||
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Usage: ./install-autocomplete.sh [Uninstall]
|
||||
if [[ "$1" == "uninstall" ]]; then
|
||||
uninstall=true
|
||||
echo -n "Uninstalling "
|
||||
else
|
||||
echo -n "Installing "
|
||||
fi
|
||||
echo "autocomplete scripts for HyFetch..."
|
||||
|
||||
# Stop on error
|
||||
set -e
|
||||
|
||||
# Obtain path of the current bash script
|
||||
script_path="$(dirname "$(realpath "$0")")"
|
||||
|
||||
# Installing for a specific shell in a specific directory if it exists
|
||||
install-for()
|
||||
{
|
||||
shell=$1
|
||||
dir=$2
|
||||
|
||||
case $shell in
|
||||
bash)
|
||||
filename="hyfetch"
|
||||
;;
|
||||
zsh)
|
||||
filename="_hyfetch"
|
||||
;;
|
||||
csh)
|
||||
filename="hyfetch.completion.csh"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown shell: $shell"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ -d "$dir" ]]; then
|
||||
if [[ "$uninstall" ]]; then
|
||||
rm -f "$dir/$filename"
|
||||
echo "⭐ Uninstalled for $shell in $dir"
|
||||
else
|
||||
cp "$script_path/autocomplete.$shell" "$dir/$filename"
|
||||
echo "⭐ Installed for $shell in $dir"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Copy files
|
||||
install-for bash /etc/bash_completion.d
|
||||
install-for bash /usr/share/bash-completion/completions
|
||||
|
||||
install-for zsh /usr/share/zsh/functions/Completion/Unix
|
||||
install-for zsh /usr/share/zsh/site-functions
|
||||
install-for zsh /usr/share/zsh-completions
|
||||
install-for zsh /usr/local/share/zsh/site-functions
|
||||
|
||||
install-for csh /etc/profile.d
|
||||
|
||||
echo "Done!"
|
||||
+6
-3
@@ -18,7 +18,8 @@ def unix_detect_ansi_mode() -> AnsiMode | None:
|
||||
|
||||
:return: Ansi mode
|
||||
"""
|
||||
if not sys.stdout.isatty():
|
||||
# Check isatty attribute exist before calling it
|
||||
if hasattr(sys.stdout, 'isatty') and not sys.stdout.isatty():
|
||||
return 'ansi'
|
||||
|
||||
term = os.environ.get('TERM')
|
||||
@@ -54,7 +55,7 @@ def windows_detect_ansi_mode() -> AnsiMode | None:
|
||||
|
||||
:return: Ansi mode
|
||||
"""
|
||||
if not sys.stdout.isatty():
|
||||
if hasattr(sys.stdout, 'isatty') and not sys.stdout.isatty():
|
||||
return 'ansi'
|
||||
|
||||
if os.environ.get("ConEmuANSI") == "ON":
|
||||
@@ -134,9 +135,11 @@ def unix_read_osc(seq: int) -> str:
|
||||
# Terminate with sequence terminator [\ or bell ^G
|
||||
if code.endswith('\x1b\\') or code.endswith('\a'):
|
||||
break
|
||||
signal.alarm(0)
|
||||
except IOError:
|
||||
pass
|
||||
finally:
|
||||
# Disable alarm
|
||||
signal.alarm(0)
|
||||
|
||||
# Reset terminal back to normal mode (previously set to raw mode)
|
||||
termios.tcsetattr(fd, termios.TCSADRAIN, settings)
|
||||
|
||||
+4
-1
@@ -1,4 +1,7 @@
|
||||
from typing_extensions import Literal
|
||||
try:
|
||||
from typing import Literal
|
||||
except ImportError:
|
||||
from typing_extensions import Literal
|
||||
|
||||
AnsiMode = Literal['default', 'ansi', '8bit', 'rgb']
|
||||
LightDark = Literal['light', 'dark']
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "neowofetch",
|
||||
"version": "1.4.8",
|
||||
"version": "1.99.0",
|
||||
"description": "Updated neofetch",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import hyfetch
|
||||
|
||||
if __name__ == '__main__':
|
||||
hyfetch.main.run()
|
||||
@@ -1,12 +1,13 @@
|
||||
#!/usr/bin/env python3
|
||||
import pathlib
|
||||
|
||||
from pathlib import Path
|
||||
from setuptools import setup, find_namespace_packages
|
||||
|
||||
from hyfetch.__version__ import VERSION
|
||||
|
||||
# The directory containing this file
|
||||
HERE = pathlib.Path(__file__).parent
|
||||
HERE = Path(__file__).parent
|
||||
|
||||
# Load version without importing it (see issue #192 if you are confused)
|
||||
for l in (HERE / 'hyfetch' / '__version__.py').read_text().strip().splitlines():
|
||||
exec(l)
|
||||
|
||||
# The text of the README file
|
||||
README = (HERE / "README.md").read_text('utf-8')
|
||||
@@ -30,13 +31,14 @@ setup(
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
],
|
||||
packages=find_namespace_packages(),
|
||||
packages=find_namespace_packages(exclude=("tools", "tools.*")),
|
||||
package_data={'hyfetch': ['hyfetch/*']},
|
||||
include_package_data=True,
|
||||
install_requires=[
|
||||
# Universal dependencies
|
||||
'setuptools', 'typing_extensions',
|
||||
'typing_extensions; python_version < "3.8"',
|
||||
|
||||
# Windows dependencies
|
||||
'psutil ; platform_system=="Windows"',
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
import time
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
from hyfetch.color_util import printc, color
|
||||
from hyfetch.neofetch_util import term_size
|
||||
|
||||
|
||||
@dataclass
|
||||
class Theme:
|
||||
done_char: str
|
||||
todo_char: str
|
||||
prefix: str = ''
|
||||
suffix: str = ''
|
||||
done_len: int = 1
|
||||
todo_len: int = 1
|
||||
|
||||
|
||||
CLASSIC_THEME = Theme('█', '.', '[', ']')
|
||||
NEW_THEME = Theme('&a━', '&c━')
|
||||
EMOJI_THEME = Theme('✅', '🕑', done_len=2, todo_len=2)
|
||||
EGG_THEME = Theme('🐣', '🥚', done_len=2, todo_len=2)
|
||||
FLOWER_THEME = Theme('🌸', '🥀', done_len=2, todo_len=2)
|
||||
|
||||
|
||||
def print_progressbar(total: int, i: int, length: int | None = None, theme: Theme = EMOJI_THEME, unit=''):
|
||||
if not length:
|
||||
length = term_size()[0]
|
||||
i += 1
|
||||
|
||||
completed = f'{i * 100 / total:.0f}%'
|
||||
placeholder = 'PLACEHOLDER_BAR'
|
||||
template = f'{theme.prefix}{placeholder}{theme.suffix}&r {completed} {i}/{total}{unit}'
|
||||
|
||||
length -= len(template) - len(placeholder) + 2
|
||||
|
||||
progress = int(i / total * length)
|
||||
bar = f'{theme.done_char * (progress // theme.todo_len)}{theme.todo_char * ((length - progress) // theme.done_len)}'
|
||||
print(color(template.replace(placeholder, bar)), end='\r', flush=True)
|
||||
|
||||
|
||||
def download_pbar(url: str, path: Path):
|
||||
def hook(b: int, bsize: int, tsize: int):
|
||||
print_progressbar(tsize // 1024 // 1024, b * bsize // 1024 // 1024, unit=' MB')
|
||||
|
||||
if path.is_dir():
|
||||
filename = url.split('/')[-1]
|
||||
path = path / filename
|
||||
path.parent.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
urlretrieve(url, filename=path, reporthook=hook)
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# theme = {'emoji': EMOJI_THEME, 'flower': FLOWER_THEME, 'egg': EGG_THEME, 'classic': CLASSIC_THEME, 'new': NEW_THEME}
|
||||
#
|
||||
# for name, t in theme.items():
|
||||
# print(f'\n{name} theme:')
|
||||
# for i in range(100):
|
||||
# print_progressbar(100, i, theme=t)
|
||||
# time.sleep(0.015)
|
||||
# print()
|
||||
download_pbar('https://github.com/git-for-windows/git/releases/download/v2.37.2.windows.2/MinGit-2.37.2.2-busybox-64-bit.zip', Path('Downloads'))
|
||||
@@ -0,0 +1,13 @@
|
||||
### Issue #261 analysis
|
||||
|
||||
For context, see https://github.com/hykilpikonna/hyfetch/issues/261
|
||||
|
||||
The files in this directory are related to the automated sentiment analysis for the Reddit comments.
|
||||
|
||||
* `reddit.js`: JS script to crawl relevant Reddit comments.
|
||||
* `reddit.json`: Crawled raw data
|
||||
* `reddit_gpt.py`: Python script categorizing comment sentiment using GPT-4o
|
||||
* `reddit_opinions.json`: Categorized sentiment data
|
||||
|
||||
These files are not really related to the functionality of hyfetch, but I'm pushing them here to
|
||||
make my analysis reproducible, and preserve the data in case the reddit post is deleted.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user