Compare commits
448 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 | |||
| 2cda9e9b2c | |||
| 0033e31388 | |||
| c02d375d71 |
@@ -120,3 +120,4 @@ 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,19 +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)
|
||||
* Nix Profile `nix profile install nixpkgs#hyfetch`
|
||||
* 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
|
||||
|
||||
@@ -67,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
|
||||
|
||||
@@ -101,6 +126,150 @@ 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! ⭐️
|
||||
|
||||
-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" "June 2023" "Neofetch 7.3.9" "User Commands"
|
||||
.TH NEOFETCH "1" "October 2024" "Neofetch 7.98.0" "User Commands"
|
||||
.SH NAME
|
||||
Neofetch \- manual page for Neofetch 7.3.9
|
||||
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,61 +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, Astra
|
||||
Linux, 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
|
||||
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,
|
||||
DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS,
|
||||
EndeavourOS, Endless, Enso, EuroLinux, Exherbo, Exodia Predator OS,
|
||||
Fedora, FemboyOS, Feren, Finnix, Floflis, FreeBSD, FreeMiNT,
|
||||
Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus,
|
||||
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, 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, Nobara, 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,
|
||||
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.9'
|
||||
VERSION = '1.99.0'
|
||||
|
||||
@@ -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
|
||||
@@ -46,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, use_overlay=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,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
|
||||
@@ -476,6 +540,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
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
|
||||
@@ -592,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
|
||||
@@ -636,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
|
||||
@@ -660,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
|
||||
@@ -680,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
|
||||
@@ -696,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
|
||||
@@ -724,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
|
||||
@@ -800,6 +912,10 @@ 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
|
||||
@@ -860,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
|
||||
@@ -892,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
|
||||
@@ -940,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
|
||||
@@ -984,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
|
||||
@@ -1096,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
|
||||
@@ -1116,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
|
||||
@@ -1288,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
|
||||
@@ -1336,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
|
||||
@@ -1356,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,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,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
|
||||
|
||||
+58
-12
@@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import datetime
|
||||
import importlib.util
|
||||
import json
|
||||
import random
|
||||
import traceback
|
||||
@@ -13,6 +14,7 @@ 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
|
||||
@@ -27,7 +29,7 @@ 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()
|
||||
|
||||
@@ -209,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)
|
||||
@@ -243,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)}
|
||||
@@ -286,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()
|
||||
@@ -306,9 +338,9 @@ def create_parser() -> argparse.ArgumentParser:
|
||||
|
||||
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()))
|
||||
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=['neofetch', 'fastfetch', 'fastfetch-old'])
|
||||
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)
|
||||
@@ -319,6 +351,7 @@ def create_parser() -> argparse.ArgumentParser:
|
||||
|
||||
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
|
||||
@@ -363,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))
|
||||
@@ -376,17 +413,20 @@ def run():
|
||||
|
||||
# Check if it's June (pride month)
|
||||
now = datetime.datetime.now()
|
||||
if now.month == 6 and now.year not in config.pride_month_shown:
|
||||
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:
|
||||
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()
|
||||
config.pride_month_shown.append(now.year)
|
||||
config.save()
|
||||
|
||||
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
|
||||
@@ -398,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
|
||||
@@ -418,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, args.args or '')
|
||||
neofetch_util.run(asc, config.backend, config.args or '')
|
||||
except Exception as e:
|
||||
print(f'Error: {e}')
|
||||
traceback.print_exc()
|
||||
|
||||
+4
-2
@@ -16,8 +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)
|
||||
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):
|
||||
@@ -26,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')
|
||||
|
||||
+82
-73
@@ -7,23 +7,21 @@ 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:
|
||||
@@ -131,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:
|
||||
"""
|
||||
@@ -197,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:
|
||||
@@ -223,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():
|
||||
@@ -270,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:
|
||||
@@ -285,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:
|
||||
@@ -345,6 +315,29 @@ def run(asc: str, backend: BackendLiteral, args: str = ''):
|
||||
return run_fastfetch(asc, args)
|
||||
if backend == "fastfetch-old":
|
||||
return run_fastfetch(asc, args, legacy=True)
|
||||
if backend == "qwqfetch":
|
||||
return run_qwqfetch(asc, args)
|
||||
|
||||
|
||||
def run_qwqfetch(asc: str, args: str = ''):
|
||||
"""
|
||||
Run qwqfetch with colors
|
||||
|
||||
:param asc: Ascii art
|
||||
:param args: Additional arguments to pass to qwqfetch
|
||||
"""
|
||||
asc = asc.replace('\\', '\\\\')
|
||||
|
||||
# call qwqfetch to print string
|
||||
try:
|
||||
import qwqfetch
|
||||
# distro_detector only return a bash variable
|
||||
# so we use qwqfetch builtin distro detector
|
||||
print(qwqfetch.get_ascres(asc))
|
||||
except ImportError as e: # module not found etc
|
||||
print("qwqfetch is not installed. Install it by executing:") # use print to output hint directly
|
||||
print("pip install git+https://github.com/nexplorer-3e/qwqfetch") # TODO: public repo
|
||||
exit(127)
|
||||
|
||||
|
||||
def run_neofetch(asc: str, args: str = ''):
|
||||
@@ -361,7 +354,7 @@ def run_neofetch(asc: str, args: 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
|
||||
if args:
|
||||
@@ -369,6 +362,13 @@ def run_neofetch(asc: str, args: str = ''):
|
||||
run_neofetch_cmd(f'--ascii --source {path.absolute()} --ascii-colors' + args)
|
||||
|
||||
|
||||
def fastfetch_path() -> Path | None:
|
||||
return (shutil.which('fastfetch')
|
||||
or if_file(SRC / 'fastfetch/usr/bin/fastfetch')
|
||||
or if_file(SRC / 'fastfetch/fastfetch')
|
||||
or if_file(SRC / 'fastfetch/fastfetch.exe'))
|
||||
|
||||
|
||||
def run_fastfetch(asc: str, args: str = '', legacy: bool = False):
|
||||
"""
|
||||
Run neofetch with colors
|
||||
@@ -377,14 +377,22 @@ def run_fastfetch(asc: str, args: str = '', legacy: bool = False):
|
||||
: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(), *shlex.split(args)])
|
||||
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")
|
||||
|
||||
@@ -402,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
|
||||
|
||||
@@ -418,5 +426,6 @@ fore_back = {
|
||||
'ubuntu-mate': (2, 1),
|
||||
'ubuntu-studio': (2, 1),
|
||||
'ubuntu-sway': (2, 1),
|
||||
'ultramarine': (2, 1),
|
||||
}
|
||||
|
||||
|
||||
+332
-6
@@ -189,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',
|
||||
@@ -499,7 +510,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#740194',
|
||||
]),
|
||||
|
||||
'autoromantic': ColorProfile([ # symbol interpreted
|
||||
'autoromantic': ColorProfile([ # symbol interpreted
|
||||
'#99D9EA',
|
||||
'#99D9EA',
|
||||
'#3DA542',
|
||||
@@ -519,6 +530,27 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#5276D4',
|
||||
]).with_weights([1, 1, 1, 1, 1, 5, 5, 5])),
|
||||
|
||||
# sourced from https://commons.wikimedia.org/wiki/File:Girlflux_Pride_Flag.jpg
|
||||
"girlflux": ColorProfile([
|
||||
"f9e6d7",
|
||||
"f2526c",
|
||||
"bf0311",
|
||||
"e9c587",
|
||||
"bf0311",
|
||||
"f2526c",
|
||||
"f9e6d7",
|
||||
]),
|
||||
|
||||
# sourced from https://www.deviantart.com/pride-flags/art/Genderflux-1-543925589
|
||||
"genderflux": ColorProfile([
|
||||
"f47694",
|
||||
"f2a2b9",
|
||||
"cecece",
|
||||
"7ce0f7",
|
||||
"3ecdf9",
|
||||
"fff48d",
|
||||
]),
|
||||
|
||||
"finsexual": ColorProfile([
|
||||
"#B18EDF",
|
||||
"#D7B1E2",
|
||||
@@ -526,7 +558,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#F39FCE",
|
||||
"#EA7BB3",
|
||||
]),
|
||||
|
||||
|
||||
'unlabeled1': ColorProfile([
|
||||
'#EAF8E4',
|
||||
'#FDFDFB',
|
||||
@@ -553,6 +585,16 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
'#FFF798',
|
||||
]),
|
||||
|
||||
'pangender.contrast': ColorProfile([
|
||||
'#ffe87f',
|
||||
'#fcbaa6',
|
||||
'#fbc9f3',
|
||||
'#FFFFFF',
|
||||
'#fbc9f3',
|
||||
'#fcbaa6',
|
||||
'#ffe87f',
|
||||
]),
|
||||
|
||||
'gendernonconforming1': ColorProfile(
|
||||
ColorProfile([
|
||||
'#50284d',
|
||||
@@ -563,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
|
||||
])
|
||||
),
|
||||
|
||||
@@ -597,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",
|
||||
@@ -606,7 +660,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#081149"
|
||||
]),
|
||||
|
||||
'voidgirl' : ColorProfile([
|
||||
'voidgirl': ColorProfile([
|
||||
"#180827",
|
||||
"#7A5A8B",
|
||||
"#E09BED",
|
||||
@@ -614,7 +668,7 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#180827"
|
||||
]),
|
||||
|
||||
'voidboy' : ColorProfile([
|
||||
'voidboy': ColorProfile([
|
||||
"#0B130C",
|
||||
"#547655",
|
||||
"#66B969",
|
||||
@@ -622,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',
|
||||
@@ -638,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'
|
||||
])
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ _shtab_hyfetch_option_strings=('-h' '--help' '-c' '--config' '-C' '--config-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' 'beiyang' 'burger')
|
||||
_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' 'beiyang' 'burger')
|
||||
_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')
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
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 beiyang burger)/' \
|
||||
'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 beiyang burger)/' \
|
||||
'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)/' \
|
||||
|
||||
@@ -14,7 +14,7 @@ _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 beiyang burger)"
|
||||
{-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:"
|
||||
|
||||
+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.9",
|
||||
"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.
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
function trimSpaces(s) {
|
||||
return s.replaceAll("\n", "").replace(/\s+/g, ' ').trim();
|
||||
}
|
||||
const cmts = $("shreddit-comment")
|
||||
const out = []
|
||||
// Parse comments from html
|
||||
cmts.each((i, cmt) => {
|
||||
const $cmt = $(cmt)
|
||||
// Author: slot="commentMeta" (use the first one)
|
||||
const author = trimSpaces($cmt.find("[slot=commentMeta]").first().text())
|
||||
// Content: slot="comment"
|
||||
const content = trimSpaces($cmt.find("[slot=comment]").first().text())
|
||||
// Upvotes: score attribute of shreddit-comment-action-row
|
||||
const upvotes = parseInt($cmt.find("shreddit-comment-action-row").attr("score"))
|
||||
out.push({ author, content, upvotes })
|
||||
})
|
||||
out
|
||||
@@ -0,0 +1,322 @@
|
||||
[
|
||||
{
|
||||
"author": "UNH0LYM0NK • 6d ago",
|
||||
"content": "Theres a flag?",
|
||||
"upvotes": 8
|
||||
},
|
||||
{
|
||||
"author": "spicy_capybara • 6d ago",
|
||||
"content": "Right? I’m not sure waving a flag for a disorder is really the way to go. Especially since HS is shared by all sexuality’s including straight.",
|
||||
"upvotes": 11
|
||||
},
|
||||
{
|
||||
"author": "textposts_only • 6d ago",
|
||||
"content": "Asexuality and transgender is also shared by all sexualities including straight",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 5d ago",
|
||||
"content": "Yeah but being transgender is a genderqueer identity and asexuals are also an uncommon sexuality. Being cis het is not queer.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "textposts_only • 5d ago",
|
||||
"content": "How is asexual a sexuality? Aces can still be straight or gay or what have you. There are varying degrees of asexuality. And i mentioned trans people because the poster above me did. It's simple, either we gatekeep the queer banner (stupid idea) or we let in people who are marginalized due to something they're either born with or identify with in regards to their sexuality or gender. I.e. aces, hypersexuality, queer ppl etc",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago",
|
||||
"content": "Ah sex addiction is a queer identity. Got it.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "textposts_only • 4d ago",
|
||||
"content": "That's disrespectful.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago",
|
||||
"content": "You said it not me. Also have you ever read the description of this subreddit. It refers to hypersexuality as sex addiction.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "textposts_only • 4d ago",
|
||||
"content": "If you boil anything down to it's essentials, however right or not, it sounds insulting. Asexuals? Since when is not wanting to Fuck a sexuality Transgender? Since when is being another gender than the one you're mistakenly assigned with a sexuality!",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago • Edited 4d ago",
|
||||
"content": "Bruh. Hypersexuality, sex addiction and compulsive sexual disorder are all used by the health professionals who deal with this shit. Imagine not understanding what asexuality is but using it to make a point. Imagine not understand that LGBT is for queer sexualities and genders.",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 6d ago • Edited 6d ago",
|
||||
"content": "Hs is not a gender identity or sexuality so idk why it would be part of lgbtq+. Hs is a mental disorder. There's definitely more acceptance and understanding needed and ppl need to judge it less but if you add it to a pride flag then you might as well add a flag for ocd or depression or 1000 other things that will eventually drown out the lgbtq stuff I wouldn't include it personally, it feels like the only reason they're even lumped in is because \"sexuality\" in in the name. It doesn't rrally have anything to do with lgbtq stuff imo",
|
||||
"upvotes": 9
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 6d ago",
|
||||
"content": "Pretty much every gender identity or sexuality was considered a mental disorder until it wasn't, tbf. Gay was considered a mental disorder, trans was considered a mental disorder. They weren't considered legit sexualities or identities. And before anyone says \"yes but hypersexuality is bad for you!\", like you don't think being a gay man in 1955 was bad for your physical and mental well-being? Gay is not a mental disorder, it's just how society treated it that made it detrimental to oneself.",
|
||||
"upvotes": 7
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 6d ago",
|
||||
"content": "Just what do you think hs is? The only negative that came from being gay were due to society. Society can change however it wants and the compulsive and self destructive behavior of hs will still be bad. Hs doesn't mean high libido",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 5d ago",
|
||||
"content": "People would have said the exact same thing about a myriad of different sexualities and identities before. They would have said that it's compulsive and self destructive and tons of other negative things. Hypersexuality is most harmful because acting out the needs you have is met with hostility by society. If you're a woman with an extremely high libido who seeks out multiple partners, more than what is \"normal\", you're seen as damaged goods and crazy. If you were hypersexual in a society that actually accepted sexuality and its needs, it wouldn't be nearly as bad as it can be now. And no, hs isn't just \"high libido\", it's more complicated than that, but like other identities it's something you can't change and which is made the worst in the experience by a puritan society that sees sexuality as suspicious.",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 5d ago",
|
||||
"content": "You can't agree that hs isn't just high libido and then talk about it as if it was just high libido. The problem with hs is that you feel COMPULSED to act on it despite any harm that it causes you. That harm can have nothing to do with society. Literally your entire comment talks about if we just accepted that people could fuck a lot, everything would be fine. You're the type of person that pretends hs is just high libido lol. You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. By telling people they can't change it you're trying to move them away from seeking help, why would you do that just to pretend like hs is a harmless personality quirk",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 5d ago",
|
||||
"content": "You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. Nah. You can repress it, but that's not the same as change it. There's no cure for being hypersexual, just as there isn't any cure for any sexuality. You can try and shove it down into silence with drugs and psychological methods, but that doesn't mean it's gone. It's pretty icky to me that you're like \"nooo you can't have a different perspective you must be pretending to be hs!\" I'd tell you about my own personal history and experiences and why I 100% know what I'm talking about, but not gonna divulge that in public. The harm that is caused by those compulsive feelings is very correlated to what society thinks and how it reacts to our actions. If you have an overwhelming compulsion to go out and do things that explicitly harm you, like puts your physical safety at serious risk, that's not just hypersexuality, that's hypersexuality plus something else, and mostly something else.",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 5d ago",
|
||||
"content": "Show me where I said you're pretending to have hs? You're pretending that it is equivalent to having high libido or that it's just like being gay. No amount of therapy or medication will stop you from being gay. There ARE effective treatments and therapy that can help people to deal with their compulsions and better manage them for the rest of their life. Pretending like there aren't because you want hs to be the same as being gay is just incredibly selfish.",
|
||||
"upvotes": -1
|
||||
},
|
||||
{
|
||||
"author": "[deleted] • 5d ago",
|
||||
"content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs",
|
||||
"upvotes": null
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 5d ago",
|
||||
"content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "[deleted] • 5d ago",
|
||||
"content": "",
|
||||
"upvotes": null
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 5d ago",
|
||||
"content": "No amount of therapy or medication will stop you from being gay And no amount of therapy or medication will stop you from being hypersexual either. All it will do is dull you, it can't carve out a part of who you are. Drugs can tranquilize anyone down to the point where they are too numb to even feel, or they can impose themselves to disrupt your endocrine system, but at the end of the day, you are still you. With the drugs, now you're just buried beneath them. You're being very inconsiderate and rude with the implication that I \"want hs to be the same as being gay\". You know that's a disingenuous thing to say, because you know what I've been trying to say here and I am far from the first gal to say it. What makes hypersexuality so much worse is the same thing that has made other marginalized sexualities, such as being gay, much worse, which is our inheritance of a fundamentalist Christian world which viewed anything sexual as sinful and \"against God\". Barely 100 years ago, women were diagnosed (yes, literally clinically diagnosed by doctors and other professionals) as having being mentally ill with what they called \"hysteria\" because they had sexual desires or were inclined towards promiscuity. Women were and still are socially ostracized and mocked and bullied for the same thing still to this day. Note how that happened only to women, never to men. I really hope you do read this, and not just skim it so you can argue on the internet, because I think there's a good chance you've internalized the same fundamentalist religious and patriarchal viewpoints as I've just been describing. Sexuality is not a sickness. Being constantly horny is not a sickness. The only way it becomes a sickness is if you have strong compulsions to do things that put you in harms way, and you don't need hypersexuality to get you there either.",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 5d ago",
|
||||
"content": "Idk why you're trying to talk about the therapy when you clearly have no idea about it. There are coping mechanisms and mental strategies you can learn to deal with hs compulsions. There's medication that can help you without making you a zombie. I'd say look it up but since you will write off any modern medicine because 100 years ago they gave you coke for headaches ... what is the point? Also nice accusing me of being disingenuous and then writing everything I say off as just trying to win an online argument. I can tell you're super interested in a real conversation. Im happy that you cant fathom that hs comes with real mental problems that are not caused by society and will not be fixed by society. But hs is not equal to high libido and everything you said is just about people being judged for sleeping around a lot. Its just not what hs means. I can't link you the definition because you will just write it off so idk what else there is to talk about. I just think its disgusting to come to a hs support space and discourage people from seeking help by painting the available treatment as negative as you do and gaslighting people that all their issues are from society and that they shouldn't work to fix them.",
|
||||
"upvotes": 3
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 5d ago",
|
||||
"content": "Nah. I've gone to therapy a lot and it can be super useful. Maybe you should ask first instead of assuming? I also like drugs, both over the counter and uhh under it lol. Anyway, you're just really not listening, which is sad, because I really do think you've someone been convinced and probably still convince yourself that you're broken. Could've been nice to actually talk about this, but you didn't even address what I said at all about how society has made life shit for women and their sexuality both historically and contemporarily, which is actually a pretty important point that you should pay attention to, so idk ig there's just no way of getting through to you and having an actual conversation. I said many times that hs is not just high libido. Ik this, because I'm hs. All you do is assume and put words in my mouth. Ik the definition. No, I don't write off modern medicine. I'm a trans woman with over 4 years on HRT, trust me I love modern medicine lol. You really need to get better at listening to other people instead of just forming an unbreakable opinion based on your own worst-take guesswork.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 5d ago",
|
||||
"content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Hypersexuality is not the same as being shamed for being gay and treated like an other. Hypersexuality is inward emotions coming from a compulsion that one cannot control themselves. I hate this comparison to actual lgbt identities. Like fuck off.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 5d ago",
|
||||
"content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Uhh, yes, exactly? Meaning that how society treats us hugely changes how hypersexuality is experienced? It shows that as an example, it can be much harder for women because society doesn't accept it. This is really going over some of yalls heads lol.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 5d ago",
|
||||
"content": "The description for this subreddit refers to hypersexuality as sex addiction i.e sexual compulsion. You should do some research on the negative effects of sexual compulsion on people that is not entirely caused by society before you start speaking from a place of \"education\".",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 5d ago",
|
||||
"content": "I know what the negative effects of sexual compulsion are. Do you? Because most of those negative effects are negative as a consequence of societal rejection.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago",
|
||||
"content": "Yeah sure cause feeling the need to compulsively masturbate when anxious is to do with societal rejection. Having uncontrollable fantasies are societal rejection. Feeling consumed by fantasies are societal rejection.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 4d ago",
|
||||
"content": "Masturbation is a common de-stress tool. Not just common, but harmless. Sexual fantasies are normal to have and yes, most people don't decide what they are, they're just there. Sounds more to me like you're dealing with the shame of having those desires and fantasies because it makes you feel like a freak, and that is because of societal norms of sexuality, yes.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago • Edited 4d ago",
|
||||
"content": "Except when It's compulsive and unwanted. If It's not compulsive and unwanted It's not hypersexuality.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 • 4d ago",
|
||||
"content": "Nobody controls when they get turned on. Obviously you can like \"schedule\" times when you want to deliberately turn yourself on ig, but arousal is usually spontaneous. I know hs isn't just \"you're horny a lot\". All I've been saying is that the condition of hypersexuality would be a lot better if society wasn't so puritanical. It makes the condition a lot worse because it makes people view themselves as freaks and compounds the condition with endless amounts of shame and self-loathing. If you can't understand that, there's nothing more to discuss.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Intercode001 • 5d ago",
|
||||
"content": "I feel like it's as much a \"sexuality\" as asexuality. Otherwise, what do you call asexuality? Also, some consider their hypersexuality to be an integral part of their identity, there's no question there. Language is what we make of it, that includes definitions, categories and usage.",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 5d ago",
|
||||
"content": "Asexuality only tells you which people the person feels sexually attracted to -> nobody. It doesn't include any crippling mental issues that require treatment or cause immense mental distress. It also doesn't mean no libido. Just as hs doesn't just mean high libido",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "Other-Bumblebee2769 • 5d ago",
|
||||
"content": "It's obe thing to have a place to chat about this stuff... waving a flag for this is cringe af",
|
||||
"upvotes": 3
|
||||
},
|
||||
{
|
||||
"author": "bitchisakarma • 6d ago",
|
||||
"content": "Every group doesn't need a flag",
|
||||
"upvotes": 4
|
||||
},
|
||||
{
|
||||
"author": "ArrogjentMan • 5d ago • Edited 5d ago",
|
||||
"content": "Hyper-sexuality is like any other obsession/ addiction - gaming, alcohol, drug use, gambling. But also very different because it involves the entire body too and not just parts of it + the mind. So yes it can be as bad as the other things mentioned above, if they get out of hand. It can be used as an identity flag only as much as how one would use mental illnesses - OCD, Autism, ADHD, PTSD, SA trauma survivor etc. It does not need to be a pride flag or an identity flag, because it is not a sexual orientation or an identity, it is a condition/ disorder. It becomes a pride thing only when it is not accepted. Then we are forced to spread awareness about it and stand up for it with pride.",
|
||||
"upvotes": 4
|
||||
},
|
||||
{
|
||||
"author": "Storm141 • 5d ago",
|
||||
"content": "Lol",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "polskialt • 6d ago",
|
||||
"content": "accepting this pride flag would be supportive or potentially harmful to your community honestly, and it hurts to say it, I worry that when hypersexual people hook up there's a risk of things getting out of control. obviously not all the time, but the risk is there. Maybe making it easier to do that isn't the safest idea.",
|
||||
"upvotes": 3
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 6d ago",
|
||||
"content": "Queer person here. Hypersexuality isn't a sexual or gender identity that's in the minority. It's a compulsive sexual behaviour that requires therapy or medical treatment. I think it would be disrespectful to queer identities to lump them in with mostly cis het people who struggle with being overly sexual in a way that effects their life.",
|
||||
"upvotes": 5
|
||||
},
|
||||
{
|
||||
"author": "ZookeepergameOne5236 • 6d ago",
|
||||
"content": "I agree. I'm bisexual and have been on Pride marches for the last cough years. Sexual and gender identity is different to compulsive and destructive behaviour. I view my HS the same way I do my alcoholism. A potentially destructive behaviour that I need to manage, not an aspect of my identity that is to be celebrated.",
|
||||
"upvotes": 6
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 6d ago",
|
||||
"content": "Exactly this! Like there has been arguments over what exactly HS is but with more and recent research, it's been agreed upon that it is a form of compulsive behaviour with only negative effects. It does irk me a lot to see a lot of people on this subreddit who act like it's just having a high libido that is solved by having a lot of sex.",
|
||||
"upvotes": 4
|
||||
},
|
||||
{
|
||||
"author": "DumpsterFireOfLove • 6d ago",
|
||||
"content": "It does irk me a lot to see a lot of people on this subreddit who act like it's just having a high libido that is solved by having a lot of sex. Respectfully, this is your view, not everyone’s. Some people struggle with it, some people have accepted it. Some people are in situations where it’s a problem that is concerning, some people aren’t. It is not a one size fits all experience.",
|
||||
"upvotes": -1
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 5d ago",
|
||||
"content": "Respectfully this is the view of medical professionals. If you do not have negative issues regarding your sexual behavior, that's a high sex drive not hypersexuality. Hypersexuality is also known as compulsive sexual behavior disorder, or more commonly, sex addiction. When a person has an obsessive fixation on sex, sexual acts, and sexual fantasies, they might be hypersexual. This fixation is typically so severe that it might disrupt a person’s daily functioning. Some research shows that up to 3% to 6% of people are living with some form of sexual addiction disorder or related disorders and that this condition predominantly affects men. A high sex drive is an increased sexual desire. On the other hand, hypersexuality involves out-of-control feelings and urges to have sex as well as high-frequency sexual behavior.",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower • 6d ago",
|
||||
"content": "Yeah this is a good way to put it",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "DumpsterFireOfLove • 6d ago",
|
||||
"content": "Bi HS person weighing in here: Um, I’d like a flag. But I understand the issues that many (including myself) HS people face struggling with/accepting their hypersexuality. So I think there’s a should be a healthy debate about it. Also, my two cents: if the ACE/Aro identities are increasingly becoming an accepted part of the LGBTQ+ community, why not HS?",
|
||||
"upvotes": 4
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 6d ago",
|
||||
"content": "Because hypersexuality is marked as compulsive sexual behavior that is only negative for their mental health by having unwanted sexual thoughts or engaging in unwanted sexual behaviour that a person cannot control or stop themselves from doing. It is not an identity. It also isn't inherently queer in that it doesn't say anything about who you are attracted to, only that you can't control your sexual behaviour or thoughts. Asexuality and aromantism are both an identity in that it communicate how one experiences or rather may not experience an attraction to others.",
|
||||
"upvotes": 3
|
||||
},
|
||||
{
|
||||
"author": "DumpsterFireOfLove • 6d ago",
|
||||
"content": "Yes, but you could also say the same for homosexuality, if we were having this debate back in the 70s. Homosexuality was classified as a mental illness in the DSM for a long time. And I take exception with what you’re saying about it only being a negative for someone’s mental health. Yes, it is a struggle, more so for some than for others, but yes. However, mostly a good part of that struggle is fitting into societies ideas of standard sexuality, just as many people struggled with their homosexual identity in the 70s, and still do today. If non-heterosexual identities were fully accepted in society, there would be no (or greatly lessened) struggle.",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 6d ago",
|
||||
"content": "Compulsive sexual behavior is sometimes called hypersexuality or sexual addiction. It's an intense focus on sexual fantasies, urges or behaviors that can't be controlled. This causes distress and problems for your health, job, relationships or other parts of your life. Compulsive sexual behavior may involve different kinds of commonly enjoyable sexual experiences. Examples include masturbation, sexual arousal by using a computer to communicate, multiple sexual partners, use of pornography or paying for sex. But when these sexual behaviors become a major, constant focus in your life, are difficult to control, cause problems in your life, or are harmful to you or others, that's likely compulsive sexual behavior. From the Mayo clinic. Symptoms Some signs that you may have compulsive sexual behavior include: You have repeated and intense sexual fantasies, urges, and behaviors that take up a lot of your time and feel as if they're beyond your control. You feel driven or have frequent urges to do certain sexual behaviors, feel a release of the tension afterward, but also feel guilt or deep regret. You've tried without success to reduce or control your sexual fantasies, urges or behavior. You use compulsive sexual behavior as an escape from other problems, such as loneliness, depression, anxiety or stress. You continue to engage in sexual behaviors in spite of them causing serious problems. These could include the possibility of getting or giving someone else a sexually transmitted infection, the loss of important relationships, trouble at work, financial issues, or legal problems. You have trouble making and keeping healthy and stable relationships. But sure this the same as being sexually attracted to the same gender or all genders or nobody at all.",
|
||||
"upvotes": 5
|
||||
},
|
||||
{
|
||||
"author": "DumpsterFireOfLove • 6d ago",
|
||||
"content": "Upvotes for the references, thank you. However, not all hypersexuality is considered compulsive sexual behavior. That’s my point. If your hypersexuality IS affecting your life negatively and is causing distress, that could be compulsive sexual behavior, and should be addressed. But if it’s NOT causing distress or problems in your life, then it is just another facet of who you are. Hypersexuality ≠ Compulsive Sexual Behavior.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "John___Coyote • 5d ago",
|
||||
"content": "Hypersexuality = Compulsive Sexual Behavior. If sexual behavior not compulsive then ≠ hypersexuality. intrusive sexual thoughts under self control ≠hypersexual This post ≠ an attack or insult.",
|
||||
"upvotes": 3
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 5d ago",
|
||||
"content": "All you're saying is you're not hypersexual and appropriating the term for your high sex drive/high libido. Kind of a shit thing to do and then turn around and try to soap box hypersexuality to people who actually suffer with it. Hypersexuality is in fact defined as compulsive sexual behaviour. The point is that it's normal sexual behaviour that is so perverse/time consuming/shame bringing that it ruins your mental health, physical health, personal relationships, work or education.",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "rockinvet02 • 6d ago",
|
||||
"content": "Are you going to include flags for all the mental health disorders or just this one?",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Bessini • 6d ago",
|
||||
"content": "Not everything needs a flag",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "loyalsubjectbeliever • 6d ago",
|
||||
"content": "I think it deserves to be there as much as asexuality. Neither is an orientation so I can see why people may not want it there but at the same time both deserve validation and understanding. After all, is asexuality is the lack of sexuality, why including it in a group of flags dedicated to sexual orientations? It just feels, to me, like excluding it means we're less valid than other groups. Hell, some orientations even have multiple names and flags.",
|
||||
"upvotes": -3
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 5d ago",
|
||||
"content": "Bruh. Imagine thinking a compulsive sexual disorder that causes real life issues is the same as a sexual identity ALSO asexuality is the lack of sexual attraction not sexuality and asexual people can still have a libido and enjoy sex. Maybe do a little bit more research before trying to compare the two.",
|
||||
"upvotes": -2
|
||||
},
|
||||
{
|
||||
"author": "loyalsubjectbeliever • 5d ago • Edited 5d ago",
|
||||
"content": "Imagine thinking that lack of sexual attraction is a sexual identity Not to mention that asexuality, homosexuality and transgender were considered illnesses too until they realized they weren't. Why are you being so aggressive?",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago",
|
||||
"content": "That sounds like something a straight person would say.",
|
||||
"upvotes": -2
|
||||
},
|
||||
{
|
||||
"author": "loyalsubjectbeliever • 4d ago",
|
||||
"content": "Try again, I'm bi",
|
||||
"upvotes": 2
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago",
|
||||
"content": "Damn, I thought a queer person would have been less queerphobic but here we are.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "loyalsubjectbeliever • 4d ago",
|
||||
"content": "I'm not queerphobic tho, and you're the one being aggressive as hell",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago",
|
||||
"content": "Imagine thinking that lack of sexual attraction is a sexual identity Not being \"queerphobic\" while saying asexuality isn't a sexual identity.",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "loyalsubjectbeliever • 4d ago",
|
||||
"content": "It's lack thereof I have literally nothing against asexuals but way I see it asexuality and hypersexuality are two sides of the same medal. If one belongs then the other should too and vice versa. Now, can we agree to disagree so you can leave me alone and stop being aggressive?",
|
||||
"upvotes": 0
|
||||
},
|
||||
{
|
||||
"author": "Topperno • 4d ago",
|
||||
"content": "Hypersexuality describes a person's inability to control their sexual behavior, arousal, impulses, or urges to the point of causing distress in their personal, work, or school life. Healthcare professionals may also refer to hypersexuality as: compulsive sexual behavior disorder. excessive sexual behavior. Compulsive sexual behavior is sometimes called hypersexuality or sexual addiction. It's an intense focus on sexual fantasies, urges or behaviors that can't be controlled. This causes distress and problems for your health, job, relationships or other parts of your life. CSBD is characterized by repetitive, poorly controlled engagement in sexual impulses, urges, and behaviors (e.g., pornography use). For a diagnosis of CSBD, these sexual behaviors should result in clinically significant distress, neglect of responsibilities, interests, and health, and cause significant impairment in critical areas of functioning. Notably, people with CSBD derive little or no satisfaction from their sexual activities and often make unsuccessful efforts to reduce or stop their behavior. Compared to Asexual – A term used to describe someone who does not experience sexual attraction toward individuals of any gender. Asexuality is a sexual orientation, and is different from celibacy, in that celibacy is the choice to refrain from engaging in sexual behaviors and does not comment on one’s sexual attractions. An asexual individual may choose to engage in sexual behaviors for various reasons even while not experiencing sexual attraction. Asexuality is an identity and sexual orientation; it is not a medical condition. Sexual attraction is not necessary for a person to be healthy. Gray-A, gray-asexual, gray-sexual are terms used to describe individuals who feel as though their sexuality falls somewhere on the spectrum of sexuality between asexuality and sexuality. Demisexual individuals are those who do not experience primary sexual attraction but may experience secondary sexual attraction after a close emotional connection has already formed.",
|
||||
"upvotes": 1
|
||||
},
|
||||
{
|
||||
"author": "loyalsubjectbeliever • 4d ago",
|
||||
"content": "Or you know what? Even better, explain to me why it belongs in lgbtq. Because arguing without being open about the possibility of being wrong is stupid. Here's my point as to why if it belongs then so does hypersexuality and vice versa: When we think about, for example, a gay man, we're thinking of someone who doesn't simply feel sexually attracted to other men, there's romantic attraction too. It's not just about sexual desire. When it comes to asexuality or hypersexuality the attraction, romantic or sexual, is completely irrelevant. An asexual person and a hypersexual person can be either straight or not. They can be cis or not. I'm pretty confident about this last part because I have acquaintances of both types. You say asexuality belongs to lgbtq, OK. Then why wouldn't hypersexuality? In this thread some say that it's just a mental disorder and to that I have a couple of counter arguments, the first one being that some people were hypersexual from a very young age, before any trauma. I have a close friend like this, so in this case too I feel pretty confident in what I'm saying. The other counter argument is that asexuality was considered a disorder not too long ago too. Same with other categories that belong to the lgbtq community. So, please explain to me why you believe that I'm wrong. My point is not: asexuals don't belong to lgbtq PERIOD. My point is: if hypersexuality doesn't belong then neither should asexuality because they are two faces of the exact same medal.",
|
||||
"upvotes": 0
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,60 @@
|
||||
import json
|
||||
from collections import Counter
|
||||
from pathlib import Path
|
||||
|
||||
from openai import OpenAI
|
||||
|
||||
client = OpenAI()
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Read reddit data
|
||||
# data = json.loads(Path('reddit.json').read_text('utf-8'))
|
||||
data = json.loads(Path('reddit_opinions.json').read_text('utf-8'))
|
||||
|
||||
# Testing: Print all comments
|
||||
for cmt in data:
|
||||
print()
|
||||
print(f"{cmt['author']}")
|
||||
print(f"- {cmt['content']}")
|
||||
|
||||
# Loop through each comment, ask GPT-4o to generate a verdict on
|
||||
# whether this comment support or oppose adding the flag
|
||||
opinions = []
|
||||
for cmt in data:
|
||||
if 'opinion' in cmt:
|
||||
opinions.append(cmt)
|
||||
continue
|
||||
|
||||
out = client.chat.completions.create(
|
||||
model="gpt-4o",
|
||||
messages=[
|
||||
{"role": "system", "content": "You are a data analyst asked to read reddit comments on a thread collecting "
|
||||
"opinions on adding the Hypersexual flag into a LGBT+ system information tool."},
|
||||
# One-shot learning example
|
||||
{"role": "user", "content": "Does the following comment support or oppose adding the flag? Please answer 'support' or 'oppose' or 'neutral'.\n\n"
|
||||
"Author: azaneko • 1d ago\nComment: I'd like a flag"},
|
||||
{"role": "system", "content": "Support"},
|
||||
# Asking the actual data
|
||||
{"role": "user", "content": "Does the following comment support or oppose adding the flag? Please answer 'support' or 'oppose' or 'neutral'.\n\n"
|
||||
f"Author: {cmt['author']}\nComment: {cmt['content']}"},
|
||||
],
|
||||
)
|
||||
|
||||
# Print the result
|
||||
res = out.choices[0].message.content.lower().strip()
|
||||
print("\n")
|
||||
print("Author:", cmt['author'])
|
||||
print("Comment:", cmt['content'])
|
||||
print("Opinion:", res)
|
||||
opinions.append({**cmt, 'opinion': res})
|
||||
Path('reddit_opinions.json').write_text(json.dumps(opinions, indent=2))
|
||||
|
||||
# Count opinions and upvotes
|
||||
counter = Counter()
|
||||
for cmt in opinions:
|
||||
counter[cmt['opinion']] += cmt.get('upvotes') or 0
|
||||
|
||||
print("\n")
|
||||
print("Opinions:")
|
||||
for k, v in counter.items():
|
||||
print(f"{k}: {v}")
|
||||
@@ -0,0 +1,164 @@
|
||||
[
|
||||
{
|
||||
"author": "UNH0LYM0NK \u2022 6d ago",
|
||||
"content": "Theres a flag?",
|
||||
"upvotes": 8,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "spicy_capybara \u2022 6d ago",
|
||||
"content": "Right? I\u2019m not sure waving a flag for a disorder is really the way to go. Especially since HS is shared by all sexuality\u2019s including straight.",
|
||||
"upvotes": 11,
|
||||
"opinion": "oppose"
|
||||
},
|
||||
{
|
||||
"author": "textposts_only \u2022 6d ago",
|
||||
"content": "Asexuality and transgender is also shared by all sexualities including straight",
|
||||
"upvotes": 1,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Topperno \u2022 5d ago",
|
||||
"content": "Yeah but being transgender is a genderqueer identity and asexuals are also an uncommon sexuality. Being cis het is not queer.",
|
||||
"upvotes": 0,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "textposts_only \u2022 5d ago",
|
||||
"content": "How is asexual a sexuality? Aces can still be straight or gay or what have you. There are varying degrees of asexuality. And i mentioned trans people because the poster above me did. It's simple, either we gatekeep the queer banner (stupid idea) or we let in people who are marginalized due to something they're either born with or identify with in regards to their sexuality or gender. I.e. aces, hypersexuality, queer ppl etc",
|
||||
"upvotes": 1,
|
||||
"opinion": "support"
|
||||
},
|
||||
{
|
||||
"author": "Topperno \u2022 4d ago",
|
||||
"content": "Ah sex addiction is a queer identity. Got it.",
|
||||
"upvotes": 0,
|
||||
"opinion": "oppose"
|
||||
},
|
||||
{
|
||||
"author": "textposts_only \u2022 4d ago",
|
||||
"content": "That's disrespectful.",
|
||||
"upvotes": 0,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Topperno \u2022 4d ago",
|
||||
"content": "You said it not me. Also have you ever read the description of this subreddit. It refers to hypersexuality as sex addiction.",
|
||||
"upvotes": 0,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "textposts_only \u2022 4d ago",
|
||||
"content": "If you boil anything down to it's essentials, however right or not, it sounds insulting. Asexuals? Since when is not wanting to Fuck a sexuality Transgender? Since when is being another gender than the one you're mistakenly assigned with a sexuality!",
|
||||
"upvotes": 0,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Topperno \u2022 4d ago \u2022 Edited 4d ago",
|
||||
"content": "Bruh. Hypersexuality, sex addiction and compulsive sexual disorder are all used by the health professionals who deal with this shit. Imagine not understanding what asexuality is but using it to make a point. Imagine not understand that LGBT is for queer sexualities and genders.",
|
||||
"upvotes": 1,
|
||||
"opinion": "support"
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower \u2022 6d ago \u2022 Edited 6d ago",
|
||||
"content": "Hs is not a gender identity or sexuality so idk why it would be part of lgbtq+. Hs is a mental disorder. There's definitely more acceptance and understanding needed and ppl need to judge it less but if you add it to a pride flag then you might as well add a flag for ocd or depression or 1000 other things that will eventually drown out the lgbtq stuff I wouldn't include it personally, it feels like the only reason they're even lumped in is because \"sexuality\" in in the name. It doesn't rrally have anything to do with lgbtq stuff imo",
|
||||
"upvotes": 9,
|
||||
"opinion": "oppose"
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 \u2022 6d ago",
|
||||
"content": "Pretty much every gender identity or sexuality was considered a mental disorder until it wasn't, tbf. Gay was considered a mental disorder, trans was considered a mental disorder. They weren't considered legit sexualities or identities. And before anyone says \"yes but hypersexuality is bad for you!\", like you don't think being a gay man in 1955 was bad for your physical and mental well-being? Gay is not a mental disorder, it's just how society treated it that made it detrimental to oneself.",
|
||||
"upvotes": 7,
|
||||
"opinion": "support"
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower \u2022 6d ago",
|
||||
"content": "Just what do you think hs is? The only negative that came from being gay were due to society. Society can change however it wants and the compulsive and self destructive behavior of hs will still be bad. Hs doesn't mean high libido",
|
||||
"upvotes": 2,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 \u2022 5d ago",
|
||||
"content": "People would have said the exact same thing about a myriad of different sexualities and identities before. They would have said that it's compulsive and self destructive and tons of other negative things. Hypersexuality is most harmful because acting out the needs you have is met with hostility by society. If you're a woman with an extremely high libido who seeks out multiple partners, more than what is \"normal\", you're seen as damaged goods and crazy. If you were hypersexual in a society that actually accepted sexuality and its needs, it wouldn't be nearly as bad as it can be now. And no, hs isn't just \"high libido\", it's more complicated than that, but like other identities it's something you can't change and which is made the worst in the experience by a puritan society that sees sexuality as suspicious.",
|
||||
"upvotes": 2,
|
||||
"opinion": "support"
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower \u2022 5d ago",
|
||||
"content": "You can't agree that hs isn't just high libido and then talk about it as if it was just high libido. The problem with hs is that you feel COMPULSED to act on it despite any harm that it causes you. That harm can have nothing to do with society. Literally your entire comment talks about if we just accepted that people could fuck a lot, everything would be fine. You're the type of person that pretends hs is just high libido lol. You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. By telling people they can't change it you're trying to move them away from seeking help, why would you do that just to pretend like hs is a harmless personality quirk",
|
||||
"upvotes": 1,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 \u2022 5d ago",
|
||||
"content": "You CAN change it! That's why people go into therapy and get medicated for. Like what are you even talking about. Nah. You can repress it, but that's not the same as change it. There's no cure for being hypersexual, just as there isn't any cure for any sexuality. You can try and shove it down into silence with drugs and psychological methods, but that doesn't mean it's gone. It's pretty icky to me that you're like \"nooo you can't have a different perspective you must be pretending to be hs!\" I'd tell you about my own personal history and experiences and why I 100% know what I'm talking about, but not gonna divulge that in public. The harm that is caused by those compulsive feelings is very correlated to what society thinks and how it reacts to our actions. If you have an overwhelming compulsion to go out and do things that explicitly harm you, like puts your physical safety at serious risk, that's not just hypersexuality, that's hypersexuality plus something else, and mostly something else.",
|
||||
"upvotes": 2,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower \u2022 5d ago",
|
||||
"content": "Show me where I said you're pretending to have hs? You're pretending that it is equivalent to having high libido or that it's just like being gay. No amount of therapy or medication will stop you from being gay. There ARE effective treatments and therapy that can help people to deal with their compulsions and better manage them for the rest of their life. Pretending like there aren't because you want hs to be the same as being gay is just incredibly selfish.",
|
||||
"upvotes": -1,
|
||||
"opinion": "oppose"
|
||||
},
|
||||
{
|
||||
"author": "[deleted] \u2022 5d ago",
|
||||
"content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs",
|
||||
"upvotes": null,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower \u2022 5d ago",
|
||||
"content": "So what do you think? They were correct back then and you can medicate yourself out of being gay? Or that they are wrong now and all the people here who are helped through therapy are just placebos? Just because they used to be wrong doesn't mean you never trust doctors again lol especially when I am alive because of the medication I got for hs",
|
||||
"upvotes": 0,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "[deleted] \u2022 5d ago",
|
||||
"content": "",
|
||||
"upvotes": null,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 \u2022 5d ago",
|
||||
"content": "No amount of therapy or medication will stop you from being gay And no amount of therapy or medication will stop you from being hypersexual either. All it will do is dull you, it can't carve out a part of who you are. Drugs can tranquilize anyone down to the point where they are too numb to even feel, or they can impose themselves to disrupt your endocrine system, but at the end of the day, you are still you. With the drugs, now you're just buried beneath them. You're being very inconsiderate and rude with the implication that I \"want hs to be the same as being gay\". You know that's a disingenuous thing to say, because you know what I've been trying to say here and I am far from the first gal to say it. What makes hypersexuality so much worse is the same thing that has made other marginalized sexualities, such as being gay, much worse, which is our inheritance of a fundamentalist Christian world which viewed anything sexual as sinful and \"against God\". Barely 100 years ago, women were diagnosed (yes, literally clinically diagnosed by doctors and other professionals) as having being mentally ill with what they called \"hysteria\" because they had sexual desires or were inclined towards promiscuity. Women were and still are socially ostracized and mocked and bullied for the same thing still to this day. Note how that happened only to women, never to men. I really hope you do read this, and not just skim it so you can argue on the internet, because I think there's a good chance you've internalized the same fundamentalist religious and patriarchal viewpoints as I've just been describing. Sexuality is not a sickness. Being constantly horny is not a sickness. The only way it becomes a sickness is if you have strong compulsions to do things that put you in harms way, and you don't need hypersexuality to get you there either.",
|
||||
"upvotes": 1,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Lillian_the_flower \u2022 5d ago",
|
||||
"content": "Idk why you're trying to talk about the therapy when you clearly have no idea about it. There are coping mechanisms and mental strategies you can learn to deal with hs compulsions. There's medication that can help you without making you a zombie. I'd say look it up but since you will write off any modern medicine because 100 years ago they gave you coke for headaches ... what is the point? Also nice accusing me of being disingenuous and then writing everything I say off as just trying to win an online argument. I can tell you're super interested in a real conversation. Im happy that you cant fathom that hs comes with real mental problems that are not caused by society and will not be fixed by society. But hs is not equal to high libido and everything you said is just about people being judged for sleeping around a lot. Its just not what hs means. I can't link you the definition because you will just write it off so idk what else there is to talk about. I just think its disgusting to come to a hs support space and discourage people from seeking help by painting the available treatment as negative as you do and gaslighting people that all their issues are from society and that they shouldn't work to fix them.",
|
||||
"upvotes": 3,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 \u2022 5d ago",
|
||||
"content": "Nah. I've gone to therapy a lot and it can be super useful. Maybe you should ask first instead of assuming? I also like drugs, both over the counter and uhh under it lol. Anyway, you're just really not listening, which is sad, because I really do think you've someone been convinced and probably still convince yourself that you're broken. Could've been nice to actually talk about this, but you didn't even address what I said at all about how society has made life shit for women and their sexuality both historically and contemporarily, which is actually a pretty important point that you should pay attention to, so idk ig there's just no way of getting through to you and having an actual conversation. I said many times that hs is not just high libido. Ik this, because I'm hs. All you do is assume and put words in my mouth. Ik the definition. No, I don't write off modern medicine. I'm a trans woman with over 4 years on HRT, trust me I love modern medicine lol. You really need to get better at listening to other people instead of just forming an unbreakable opinion based on your own worst-take guesswork.",
|
||||
"upvotes": 0,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Topperno \u2022 5d ago",
|
||||
"content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Hypersexuality is not the same as being shamed for being gay and treated like an other. Hypersexuality is inward emotions coming from a compulsion that one cannot control themselves. I hate this comparison to actual lgbt identities. Like fuck off.",
|
||||
"upvotes": 0,
|
||||
"opinion": "oppose"
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 \u2022 5d ago",
|
||||
"content": "Except the issue is that most people who struggle with hypersexuality is men and most men are not shamed for being sexual or watching a lot of porn or masturbating or having sex with multiple people. In fact society and people are generally overtly sexual and it's okay for them. Uhh, yes, exactly? Meaning that how society treats us hugely changes how hypersexuality is experienced? It shows that as an example, it can be much harder for women because society doesn't accept it. This is really going over some of yalls heads lol.",
|
||||
"upvotes": 0,
|
||||
"opinion": "support"
|
||||
},
|
||||
{
|
||||
"author": "Topperno \u2022 5d ago",
|
||||
"content": "The description for this subreddit refers to hypersexuality as sex addiction i.e sexual compulsion. You should do some research on the negative effects of sexual compulsion on people that is not entirely caused by society before you start speaking from a place of \"education\".",
|
||||
"upvotes": 0,
|
||||
"opinion": "neutral"
|
||||
},
|
||||
{
|
||||
"author": "Key_Computer_4348 \u2022 5d ago",
|
||||
"content": "I know what the negative effects of sexual compulsion are. Do you? Because most of those negative effects are negative as a consequence of societal rejection.",
|
||||
"upvotes": 0,
|
||||
"opinion": "support"
|
||||
}
|
||||
]
|
||||
@@ -53,7 +53,8 @@ if __name__ == '__main__':
|
||||
|
||||
# Fetch commit information
|
||||
commits = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
||||
author = json.loads(os.environ.get("override_author")) or commits[-1]['commit']['author']
|
||||
override_author = os.environ.get("override_author")
|
||||
author = json.loads(override_author) if override_author else commits[-1]['commit']['author']
|
||||
|
||||
# Create commit message
|
||||
title = info["title"].replace('"', '\\"')
|
||||
|
||||
@@ -0,0 +1,365 @@
|
||||
git-bash.exe
|
||||
git-cmd.exe
|
||||
cmd
|
||||
tmp
|
||||
dev
|
||||
bin/git.exe
|
||||
bin/sh.exe
|
||||
usr/share
|
||||
usr/ssl
|
||||
usr/libexec
|
||||
usr/lib
|
||||
usr/bin/git*
|
||||
usr/bin/*vim*
|
||||
usr/bin/*ssl*
|
||||
usr/bin/*perl*
|
||||
usr/bin/*gpg*
|
||||
usr/bin/*ssh*
|
||||
usr/bin/*crypto*
|
||||
usr/bin/*view*
|
||||
usr/bin/*svn*
|
||||
usr/bin/ex*.exe
|
||||
mingw32/share
|
||||
mingw32/lib
|
||||
mingw32/etc
|
||||
mingw32/doc
|
||||
mingw32/libexec
|
||||
mingw32/bin/git*
|
||||
mingw32/bin/Git*
|
||||
mingw32/bin/Avalonia*
|
||||
mingw32/bin/xz*
|
||||
mingw32/bin/*ssl*
|
||||
mingw32/bin/scalar.exe
|
||||
mingw32/bin/libSkiaSharp.dll
|
||||
mingw32/bin/*crypto*
|
||||
mingw32/bin/*Microsoft.Identity*
|
||||
mingw32/bin/*bz*
|
||||
mingw32/bin/tcl*
|
||||
mingw32/bin/*brotli*
|
||||
mingw32/bin/av*
|
||||
mingw32/bin/pdftotext.exe
|
||||
mingw32/bin/libiconv-2.dll
|
||||
mingw32/bin/libHarfBuzzSharp.dll
|
||||
mingw32/bin/SkiaSharp.dll
|
||||
mingw32/bin/libcurl-4.dll
|
||||
mingw32/bin/libgmp-10.dll
|
||||
mingw32/bin/System.Text.Json.dll
|
||||
mingw32/bin/gcmcore.dll
|
||||
mingw32/bin/curl.exe
|
||||
|
||||
# Automatically determined by access time
|
||||
usr/bin/rebase.exe
|
||||
usr/bin/rebaseall
|
||||
usr/bin/start
|
||||
usr/bin/column.exe
|
||||
usr/bin/dash.exe
|
||||
usr/bin/getopt.exe
|
||||
usr/bin/znew
|
||||
usr/bin/zless
|
||||
usr/bin/zipinfo.exe
|
||||
usr/bin/zipgrep
|
||||
usr/bin/zgrep
|
||||
usr/bin/zforce
|
||||
usr/bin/zfgrep
|
||||
usr/bin/zegrep
|
||||
usr/bin/zdiff
|
||||
usr/bin/zcmp
|
||||
usr/bin/zcat
|
||||
usr/bin/yes.exe
|
||||
usr/bin/yat2m.exe
|
||||
usr/bin/xxd.exe
|
||||
usr/bin/xgettext.exe
|
||||
usr/bin/xargs.exe
|
||||
usr/bin/winpty.exe
|
||||
usr/bin/wordpad
|
||||
usr/bin/winpty.dll
|
||||
usr/bin/winpty-debugserver.exe
|
||||
usr/bin/winpty-agent.exe
|
||||
usr/bin/whoami.exe
|
||||
usr/bin/who.exe
|
||||
usr/bin/which.exe
|
||||
usr/bin/watchgnupg.exe
|
||||
usr/bin/vi
|
||||
usr/bin/vdir.exe
|
||||
usr/bin/users.exe
|
||||
usr/bin/updatedb
|
||||
usr/bin/update-ca-trust
|
||||
usr/bin/unzipsfx.exe
|
||||
usr/bin/unzip.exe
|
||||
usr/bin/unlink.exe
|
||||
usr/bin/unix2mac.exe
|
||||
usr/bin/unix2dos.exe
|
||||
usr/bin/unexpand.exe
|
||||
usr/bin/uncompress
|
||||
usr/bin/umount.exe
|
||||
usr/bin/u2d.exe
|
||||
usr/bin/tzset.exe
|
||||
usr/bin/tty.exe
|
||||
usr/bin/tsort.exe
|
||||
usr/bin/tset.exe
|
||||
usr/bin/trust.exe
|
||||
usr/bin/truncate.exe
|
||||
usr/bin/true.exe
|
||||
usr/bin/tr.exe
|
||||
usr/bin/tput.exe
|
||||
usr/bin/touch.exe
|
||||
usr/bin/toe.exe
|
||||
usr/bin/timeout.exe
|
||||
usr/bin/tig.exe
|
||||
usr/bin/tic.exe
|
||||
usr/bin/test.exe
|
||||
usr/bin/tee.exe
|
||||
usr/bin/tar.exe
|
||||
usr/bin/tail.exe
|
||||
usr/bin/tac.exe
|
||||
usr/bin/tabs.exe
|
||||
usr/bin/sync.exe
|
||||
usr/bin/sum.exe
|
||||
usr/bin/stty.exe
|
||||
usr/bin/strace.exe
|
||||
usr/bin/stat.exe
|
||||
usr/bin/ssp.exe
|
||||
usr/bin/split.exe
|
||||
usr/bin/sleep.exe
|
||||
usr/bin/shuf.exe
|
||||
usr/bin/shred.exe
|
||||
usr/bin/sha512sum.exe
|
||||
usr/bin/sha384sum.exe
|
||||
usr/bin/sha256sum.exe
|
||||
usr/bin/sha224sum.exe
|
||||
usr/bin/sha1sum.exe
|
||||
usr/bin/sftp.exe
|
||||
usr/bin/sexp-conv.exe
|
||||
usr/bin/setmetamode.exe
|
||||
usr/bin/setfacl.exe
|
||||
usr/bin/seq.exe
|
||||
usr/bin/sdiff.exe
|
||||
usr/bin/scp.exe
|
||||
usr/bin/runcon.exe
|
||||
usr/bin/rnano.exe
|
||||
usr/bin/rmdir.exe
|
||||
usr/bin/rm.exe
|
||||
usr/bin/restore
|
||||
usr/bin/reset.exe
|
||||
usr/bin/regtool.exe
|
||||
usr/bin/recode-sr-latin.exe
|
||||
usr/bin/realpath.exe
|
||||
usr/bin/readlink.exe
|
||||
usr/bin/pwd.exe
|
||||
usr/bin/ptx.exe
|
||||
usr/bin/psl.exe
|
||||
usr/bin/psl-make-dafsa
|
||||
usr/bin/ps.exe
|
||||
usr/bin/profiler.exe
|
||||
usr/bin/printf.exe
|
||||
usr/bin/printenv.exe
|
||||
usr/bin/pr.exe
|
||||
usr/bin/pldd.exe
|
||||
usr/bin/pkcs1-conv.exe
|
||||
usr/bin/pinky.exe
|
||||
usr/bin/pinentry.exe
|
||||
usr/bin/pinentry-w32.exe
|
||||
usr/bin/pathchk.exe
|
||||
usr/bin/patch.exe
|
||||
usr/bin/paste.exe
|
||||
usr/bin/passwd.exe
|
||||
usr/bin/p11-kit.exe
|
||||
usr/bin/od.exe
|
||||
usr/bin/numfmt.exe
|
||||
usr/bin/nproc.exe
|
||||
usr/bin/notepad
|
||||
usr/bin/nohup.exe
|
||||
usr/bin/nl.exe
|
||||
usr/bin/nice.exe
|
||||
usr/bin/ngettext.exe
|
||||
usr/bin/nettle-pbkdf2.exe
|
||||
usr/bin/nettle-lfib-stream.exe
|
||||
usr/bin/nettle-hash.exe
|
||||
usr/bin/nano.exe
|
||||
usr/bin/mv.exe
|
||||
usr/bin/msys-z.dll
|
||||
usr/bin/msys-wind-0.dll
|
||||
usr/bin/msys-unistring-2.dll
|
||||
usr/bin/msys-ticw6.dll
|
||||
usr/bin/msys-tasn1-6.dll
|
||||
usr/bin/msys-sqlite3-0.dll
|
||||
usr/bin/msys-smartcols-1.dll
|
||||
usr/bin/msys-serf-1-0.dll
|
||||
usr/bin/msys-sasl2-3.dll
|
||||
usr/bin/msys-roken-18.dll
|
||||
usr/bin/msys-psl-5.dll
|
||||
usr/bin/msys-pcre2-posix-3.dll
|
||||
usr/bin/msys-pcre2-8-0.dll
|
||||
usr/bin/msys-p11-kit-0.dll
|
||||
usr/bin/msys-npth-0.dll
|
||||
usr/bin/msys-nettle-8.dll
|
||||
usr/bin/msys-magic-1.dll
|
||||
usr/bin/msys-lz4-1.dll
|
||||
usr/bin/msys-ksba-8.dll
|
||||
usr/bin/msys-krb5-26.dll
|
||||
usr/bin/msys-kafs-0.dll
|
||||
usr/bin/msys-idn2-0.dll
|
||||
usr/bin/msys-hx509-5.dll
|
||||
usr/bin/msys-hogweed-6.dll
|
||||
usr/bin/msys-heimntlm-0.dll
|
||||
usr/bin/msys-heimbase-1.dll
|
||||
usr/bin/msys-gssapi-3.dll
|
||||
usr/bin/msys-gobject-2.0-0.dll
|
||||
usr/bin/msys-gnutls-30.dll
|
||||
usr/bin/msys-gmodule-2.0-0.dll
|
||||
usr/bin/msys-glib-2.0-0.dll
|
||||
usr/bin/msys-gio-2.0-0.dll
|
||||
usr/bin/msys-gettextsrc-0-19-8-1.dll
|
||||
usr/bin/msys-gettextlib-0-19-8-1.dll
|
||||
usr/bin/msys-gcrypt-20.dll
|
||||
usr/bin/msys-fido2-1.dll
|
||||
usr/bin/msys-ffi-7.dll
|
||||
usr/bin/msys-expat-1.dll
|
||||
usr/bin/msys-edit-0.dll
|
||||
usr/bin/msys-crypt-0.dll
|
||||
usr/bin/msys-com_err-1.dll
|
||||
usr/bin/msys-cbor-0.11.dll
|
||||
usr/bin/msys-bz2-1.dll
|
||||
usr/bin/msys-assuan-0.dll
|
||||
usr/bin/msys-asn1-8.dll
|
||||
usr/bin/msys-aprutil-1-0.dll
|
||||
usr/bin/msys-apr-1-0.dll
|
||||
usr/bin/msguniq.exe
|
||||
usr/bin/msgunfmt.exe
|
||||
usr/bin/msgmerge.exe
|
||||
usr/bin/msginit.exe
|
||||
usr/bin/msggrep.exe
|
||||
usr/bin/msgfmt.exe
|
||||
usr/bin/msgfilter.exe
|
||||
usr/bin/msgexec.exe
|
||||
usr/bin/msgen.exe
|
||||
usr/bin/msgconv.exe
|
||||
usr/bin/msgcomm.exe
|
||||
usr/bin/msgcmp.exe
|
||||
usr/bin/msgcat.exe
|
||||
usr/bin/msgattrib.exe
|
||||
usr/bin/mpicalc.exe
|
||||
usr/bin/mount.exe
|
||||
usr/bin/mktemp.exe
|
||||
usr/bin/mkpasswd.exe
|
||||
usr/bin/mknod.exe
|
||||
usr/bin/mkgroup.exe
|
||||
usr/bin/mkfifo.exe
|
||||
usr/bin/mintty.exe
|
||||
usr/bin/mintheme
|
||||
usr/bin/minidumper.exe
|
||||
usr/bin/md5sum.exe
|
||||
usr/bin/mac2unix.exe
|
||||
usr/bin/lsattr.exe
|
||||
usr/bin/ls.exe
|
||||
usr/bin/logname.exe
|
||||
usr/bin/locate.exe
|
||||
usr/bin/locale.exe
|
||||
usr/bin/ln.exe
|
||||
usr/bin/link.exe
|
||||
usr/bin/lesskey.exe
|
||||
usr/bin/lessecho.exe
|
||||
usr/bin/less.exe
|
||||
usr/bin/ldh.exe
|
||||
usr/bin/ldd.exe
|
||||
usr/bin/kill.exe
|
||||
usr/bin/kbxutil.exe
|
||||
usr/bin/join.exe
|
||||
usr/bin/install.exe
|
||||
usr/bin/infotocap.exe
|
||||
usr/bin/infocmp.exe
|
||||
usr/bin/iconv.exe
|
||||
usr/bin/hostname.exe
|
||||
usr/bin/hostid.exe
|
||||
usr/bin/hmac256.exe
|
||||
usr/bin/head.exe
|
||||
usr/bin/gzip.exe
|
||||
usr/bin/gzexe
|
||||
usr/bin/gunzip
|
||||
usr/bin/gsettings.exe
|
||||
usr/bin/groups.exe
|
||||
usr/bin/gobject-query.exe
|
||||
usr/bin/gmondump.exe
|
||||
usr/bin/glib-compile-schemas.exe
|
||||
usr/bin/gkill.exe
|
||||
usr/bin/gio-querymodules.exe
|
||||
usr/bin/gettextize
|
||||
usr/bin/gettext.sh
|
||||
usr/bin/gettext.exe
|
||||
usr/bin/getflags
|
||||
usr/bin/getfacl.exe
|
||||
usr/bin/getemojis
|
||||
usr/bin/getconf.exe
|
||||
usr/bin/gencat.exe
|
||||
usr/bin/gdbus.exe
|
||||
usr/bin/gawk.exe
|
||||
usr/bin/gawk-5.0.0.exe
|
||||
usr/bin/gapplication.exe
|
||||
usr/bin/funzip.exe
|
||||
usr/bin/fold.exe
|
||||
usr/bin/fmt.exe
|
||||
usr/bin/find.exe
|
||||
usr/bin/file.exe
|
||||
usr/bin/fgrep
|
||||
usr/bin/false.exe
|
||||
usr/bin/factor.exe
|
||||
usr/bin/envsubst.exe
|
||||
usr/bin/env.exe
|
||||
usr/bin/egrep
|
||||
usr/bin/echo.exe
|
||||
usr/bin/dumpsexp.exe
|
||||
usr/bin/du.exe
|
||||
usr/bin/dos2unix.exe
|
||||
usr/bin/docx2txt.pl
|
||||
usr/bin/docx2txt
|
||||
usr/bin/dirmngr.exe
|
||||
usr/bin/dirmngr-client.exe
|
||||
usr/bin/dircolors.exe
|
||||
usr/bin/dir.exe
|
||||
usr/bin/diff3.exe
|
||||
usr/bin/diff.exe
|
||||
usr/bin/df.exe
|
||||
usr/bin/dd.exe
|
||||
usr/bin/date.exe
|
||||
usr/bin/d2u.exe
|
||||
usr/bin/cygwin-console-helper.exe
|
||||
usr/bin/cygcheck.exe
|
||||
usr/bin/cut.exe
|
||||
usr/bin/csplit.exe
|
||||
usr/bin/cp.exe
|
||||
usr/bin/comm.exe
|
||||
usr/bin/cmp.exe
|
||||
usr/bin/clear.exe
|
||||
usr/bin/cksum.exe
|
||||
usr/bin/chroot.exe
|
||||
usr/bin/chown.exe
|
||||
usr/bin/chmod.exe
|
||||
usr/bin/chgrp.exe
|
||||
usr/bin/chcon.exe
|
||||
usr/bin/chattr.exe
|
||||
usr/bin/cat.exe
|
||||
usr/bin/captoinfo.exe
|
||||
usr/bin/c_rehash
|
||||
usr/bin/bzless
|
||||
usr/bin/bzip2recover.exe
|
||||
usr/bin/bzip2.exe
|
||||
usr/bin/bzgrep
|
||||
usr/bin/bzfgrep
|
||||
usr/bin/bzegrep
|
||||
usr/bin/bzdiff
|
||||
usr/bin/bzcmp
|
||||
usr/bin/bzcat.exe
|
||||
usr/bin/bunzip2.exe
|
||||
usr/bin/bashbug
|
||||
usr/bin/basenc.exe
|
||||
usr/bin/basename.exe
|
||||
usr/bin/base64.exe
|
||||
usr/bin/base32.exe
|
||||
usr/bin/backup
|
||||
usr/bin/b2sum.exe
|
||||
usr/bin/autopoint
|
||||
usr/bin/astextplain
|
||||
usr/bin/arch.exe
|
||||
usr/bin/applygnupgdefaults
|
||||
usr/bin/addgnupghome
|
||||
usr/bin/[.exe
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
# This script is used to build a customized Git Bash for windows pacakge that only include bash and no other unnecessary files
|
||||
|
||||
set -e
|
||||
|
||||
# Get script directory
|
||||
DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
cd "$DIR/../dist"
|
||||
|
||||
# Get the git distribution if it doesn't exist
|
||||
if [ ! -f /tmp/git.tar.bz2 ]; then
|
||||
# NOTE: Git for Windows v2.44 is the last release to support Windows 7 and 8
|
||||
URL="https://github.com/git-for-windows/git/releases/download/v2.44.0.windows.1/Git-2.44.0-32-bit.tar.bz2"
|
||||
echo "> Downloading git distribution"
|
||||
wget -q $URL -O /tmp/git.tar.bz2
|
||||
fi
|
||||
|
||||
# Unzip the git distribution to git directory
|
||||
# Ignore the unnecessary files
|
||||
# rm -rf git
|
||||
if [ ! -d /tmp/git ]; then
|
||||
mkdir -p /tmp/git
|
||||
echo "> Unzipping git distribution"
|
||||
tar -xf /tmp/git.tar.bz2 --exclude-from="$DIR/bash_ignore.txt" -C /tmp/git
|
||||
fi
|
||||
|
||||
# Copy the git distribution
|
||||
cp -r /tmp/git ./git
|
||||
Executable
+88
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
# This script is used to build fastfetch inside a docker container.
|
||||
# The docker container tested is debian 10.
|
||||
|
||||
set -e
|
||||
|
||||
# Install required packages
|
||||
echo "Installing required packages..."
|
||||
apt-get update
|
||||
apt-get install --ignore-missing --no-install-recommends --no-install-suggests -y libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libosmesa6-dev ocl-icd-opencl-dev libnm-dev libpulse-dev libdrm-dev git build-essential cmake imagemagick chafa libchafa-dev ddcutil
|
||||
|
||||
# Check if we're on debian 10
|
||||
apt-get install -y lsb-release
|
||||
if [ "$(lsb_release -cs)" != "buster" ]; then
|
||||
apt-get install --ignore-missing -y libegl-dev libglx-dev directx-headers-dev
|
||||
# else
|
||||
# echo "Backporting pacakges for debian 10"
|
||||
|
||||
# # Add Debian 11 "Bullseye" repository
|
||||
echo "deb http://deb.debian.org/debian/ bullseye main" > /etc/apt/sources.list.d/bullseye.list
|
||||
|
||||
# # Set package priorities to prefer Debian 10 (Buster) except for libegl-dev and its dependencies
|
||||
# echo 'Package: *
|
||||
# Pin: release n=buster
|
||||
# Pin-Priority: 900
|
||||
|
||||
# Package: libegl-dev
|
||||
# Pin: release n=bullseye
|
||||
# Pin-Priority: 990' > /etc/apt/preferences.d/priority
|
||||
|
||||
# apt-get update
|
||||
fi
|
||||
|
||||
# Clone repo
|
||||
echo "Cloning fastfetch..."
|
||||
git clone "https://github.com/fastfetch-cli/fastfetch"
|
||||
cd fastfetch
|
||||
|
||||
# Checkout the latest release tag
|
||||
latest_tag=$(git describe --tags "$(git rev-list --tags --max-count=1)")
|
||||
echo "Checking out latest tag: $latest_tag"
|
||||
git checkout "$latest_tag"
|
||||
|
||||
# Backward compatibility
|
||||
# cmake 3.13: replace "NAME_WLE" with "NAME_WE"
|
||||
sed -i 's/NAME_WLE/NAME_WE/g' CMakeLists.txt
|
||||
|
||||
# Display system information
|
||||
echo "System Information:"
|
||||
uname -a
|
||||
|
||||
# Install linuxbrew packages
|
||||
# echo "Installing Linuxbrew..."
|
||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
# /home/linuxbrew/.linuxbrew/bin/brew install imagemagick chafa ddcutil --ignore-dependencies
|
||||
|
||||
# Configure project
|
||||
echo "Configuring project..."
|
||||
export PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH
|
||||
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr .
|
||||
|
||||
# Build project
|
||||
echo "Building project..."
|
||||
cmake --build . --target package -j 32
|
||||
|
||||
# List features of fastfetch
|
||||
echo "Listing features of fastfetch:"
|
||||
./fastfetch --list-features
|
||||
|
||||
# Run fastfetch
|
||||
echo "Running fastfetch:"
|
||||
time ./fastfetch -c presets/ci.jsonc
|
||||
|
||||
# Run fastfetch with JSON format
|
||||
echo "Running fastfetch with JSON format:"
|
||||
time ./fastfetch -c presets/ci.jsonc --format json
|
||||
|
||||
# Run flashfetch
|
||||
echo "Running flashfetch:"
|
||||
time ./flashfetch
|
||||
|
||||
# Print dependencies of fastfetch
|
||||
echo "Dependencies of fastfetch:"
|
||||
ldd fastfetch
|
||||
|
||||
# Run tests
|
||||
echo "Running tests..."
|
||||
ctest
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Path to store extracted binaries
|
||||
output_dir="dist/binaries"
|
||||
|
||||
# Ensure output directory exists
|
||||
mkdir -p "$output_dir"
|
||||
|
||||
build_platform() {
|
||||
container=$1
|
||||
platform=$2
|
||||
|
||||
echo "Running build in $container for $platform"
|
||||
|
||||
# Create a unique name for the container instance
|
||||
container_name="build_$platform"
|
||||
|
||||
# Run the build script inside the Docker container
|
||||
docker run -it --name "$container_name" -v "$PWD/tools:/tools" -w "/w" "$container" bash /tools/build_fastfetch.sh
|
||||
|
||||
# Extract binaries or packages produced by the build
|
||||
# Assuming binaries are in a specific directory, e.g., ./dist
|
||||
if docker cp "$container_name:/w/dist" "$output_dir/$platform"; then
|
||||
echo "Successfully extracted binaries for $platform"
|
||||
else
|
||||
echo "Failed to extract binaries for $platform"
|
||||
fi
|
||||
|
||||
# Cleanup: Remove the container after the build
|
||||
docker rm "$container_name"
|
||||
}
|
||||
|
||||
# Build for different platforms
|
||||
build_platform "amd64/debian:10-slim" "manylinux_2_28_x86_64"
|
||||
# build_platform "arm64v8/debian:10-slim" "manylinux_2_28_aaarch64"
|
||||
# build_platform "arm32v7/debian:10-slim" "manylinux_2_28_armv7l"
|
||||
# build_platform "riscv64/debian:sid-slim" "manylinux_2_37_riscv64"
|
||||
|
||||
echo "Build and extraction process completed."
|
||||
Executable
+125
@@ -0,0 +1,125 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
FASTFETCH_VERSION="2.28.0"
|
||||
FASTFETCH_DL="https://github.com/fastfetch-cli/fastfetch/releases/download/$FASTFETCH_VERSION/"
|
||||
|
||||
# Get script directory
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
cd "$DIR/.."
|
||||
|
||||
set -e
|
||||
|
||||
# Remove the old build
|
||||
rm -rf dist/
|
||||
rm -rf build/
|
||||
|
||||
# Remove git from the source code before building
|
||||
rm -rf hyfetch/git/
|
||||
|
||||
# Build python from setup.py
|
||||
python3 setup.py sdist bdist_wheel
|
||||
|
||||
# Check
|
||||
twine check dist/*.tar.gz
|
||||
twine check dist/*.whl
|
||||
|
||||
# =================
|
||||
# Build for windows
|
||||
cd dist
|
||||
|
||||
# Get the file name
|
||||
# file="$(ls | grep .whl)" use glob instead
|
||||
file=$(echo *-none-any.whl)
|
||||
|
||||
# Build bash pacakge
|
||||
"$DIR/build_bash.sh"
|
||||
|
||||
# Unzip the wheel
|
||||
echo "> Unzipping $file"
|
||||
rm -rf wheel
|
||||
unzip -qq "$file" -d wheel
|
||||
|
||||
# Copy the git distribution to the wheel
|
||||
cp -r git/ wheel/hyfetch/
|
||||
|
||||
# Embed fastfetch binary
|
||||
echo "> Embedding fastfetch binary"
|
||||
wget -q "$FASTFETCH_DL/fastfetch-windows-i686.zip" -O fastfetch-windows.zip
|
||||
mkdir -p wheel/hyfetch/fastfetch
|
||||
bsdtar -zxf fastfetch-windows.zip -C wheel/hyfetch/fastfetch
|
||||
rm -rf fastfetch-windows.zip
|
||||
|
||||
# Edit .dist-info/WHEEL "Tag: {platform}" and rehash
|
||||
sed -i 's/Tag: py3-none-.*/Tag: py3-none-win32/' wheel/*.dist-info/WHEEL
|
||||
python "$DIR/build_rehash.py" wheel
|
||||
|
||||
# Zip to -win32.whl
|
||||
new_name=${file/-any/-win32}
|
||||
cd wheel && zip -qq -y -r "../$new_name" * && cd ..
|
||||
twine check "$new_name"
|
||||
|
||||
# Zip to -win_amd64.whl
|
||||
# Since pypi doesn't allow two identical files with different names to be uploaded
|
||||
# We need to change the zip content a little bit for win_amd64
|
||||
new_name=${file/-any/-win_amd64}
|
||||
sed -i 's/Tag: py3-none-.*/Tag: py3-none-win_amd64/' wheel/*.dist-info/WHEEL
|
||||
python "$DIR/build_rehash.py" wheel
|
||||
cd wheel && zip -qq -y -r "../$new_name" * && cd ..
|
||||
twine check "$new_name"
|
||||
|
||||
# =================
|
||||
# Build for linux
|
||||
|
||||
# Now we're done with windows, delete the git folder
|
||||
rm -rf wheel/git
|
||||
|
||||
function build_for_platform() {
|
||||
ff_platform=$1
|
||||
wheel_platform=$2
|
||||
|
||||
echo "Building for $ff_platform"
|
||||
|
||||
# Download the fastfetch binary
|
||||
wget -q "$FASTFETCH_DL/fastfetch-$ff_platform.zip" -O "fastfetch-$ff_platform.zip"
|
||||
|
||||
# Delete the old fastfetch folder
|
||||
rm -rf wheel/hyfetch/fastfetch
|
||||
|
||||
# Unzip the fastfetch binary
|
||||
# unzip -qq "fastfetch-$ff_platform.zip" -d wheel/hyfetch/fastfetch
|
||||
mkdir -p wheel/hyfetch/fastfetch
|
||||
bsdtar -zxf "fastfetch-$ff_platform.zip" -C wheel/hyfetch/fastfetch --strip-components 1
|
||||
rm -rf "fastfetch-$ff_platform.zip"
|
||||
|
||||
# Change the file name
|
||||
new_name=${file/-any/-"$wheel_platform"}
|
||||
|
||||
# Edit WHEEL and rehash
|
||||
sed -i "s/Tag: py3-none-.*/Tag: py3-none-$wheel_platform/" wheel/*.dist-info/WHEEL
|
||||
python "$DIR/build_rehash.py" wheel
|
||||
|
||||
# Zip the wheel to platform.whl
|
||||
cd wheel && zip -qq -y -r "../$new_name" * && cd ..
|
||||
|
||||
# Check again
|
||||
twine check "$new_name"
|
||||
}
|
||||
|
||||
# See https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/
|
||||
# The official fastfetch build uses Ubuntu 20.04 with glibc 2.31
|
||||
build_for_platform "linux-amd64" "manylinux_2_31_x86_64"
|
||||
build_for_platform "linux-aarch64" "manylinux_2_31_aarch64"
|
||||
build_for_platform "linux-armv7l" "manylinux_2_31_armv7l"
|
||||
# build_for_platform "linux-riscv64" "manylinux_2_31_riscv64"
|
||||
# There doesn't seem to be tags for freebsd?
|
||||
# build_for_platform "freebsd-amd64" "freebsd_x86_64"
|
||||
# build_for_platform "freebsd-aarch64" "freebsd_aarch64"
|
||||
build_for_platform "musl-amd64" "musllinux_1_1_x86_64"
|
||||
# build_for_platform "musl-aarch64" "musllinux_1_1_aarch64"
|
||||
# The official fastfetch build uses macOS 12.0
|
||||
build_for_platform "macos-universal" "macosx_11_0_x86_64"
|
||||
build_for_platform "macos-universal" "macosx_11_0_arm64"
|
||||
# TODO: linux_riscv64
|
||||
|
||||
# Finally, remove temporary files
|
||||
rm -rf wheel git
|
||||
@@ -0,0 +1,78 @@
|
||||
import argparse
|
||||
import hashlib
|
||||
import io
|
||||
from base64 import urlsafe_b64encode
|
||||
from pathlib import Path
|
||||
from typing import BinaryIO, Generator, Tuple, Any
|
||||
|
||||
"""
|
||||
The read_chunks, hash_file, and rehash functions below comes from pip._internal
|
||||
They are copied to ensure compatibility with future python versions.
|
||||
https://github.com/pypa/pip/blob/612515d2e0a6ff8676c139c096a45bc28b3456f4/src/pip/_internal/operations/install/wheel.py#L80
|
||||
"""
|
||||
|
||||
|
||||
def read_chunks(file: BinaryIO, size: int = io.DEFAULT_BUFFER_SIZE) -> Generator[bytes, None, None]:
|
||||
"""Yield pieces of data from a file-like object until EOF."""
|
||||
while True:
|
||||
chunk = file.read(size)
|
||||
if not chunk:
|
||||
break
|
||||
yield chunk
|
||||
|
||||
|
||||
def hash_file(path: Path, blocksize: int = 1 << 20) -> Tuple[Any, int]:
|
||||
"""Return (hash, length) for path using hashlib.sha256()"""
|
||||
|
||||
h = hashlib.sha256()
|
||||
length = 0
|
||||
with open(path, "rb") as f:
|
||||
for block in read_chunks(f, size=blocksize):
|
||||
length += len(block)
|
||||
h.update(block)
|
||||
return h, length
|
||||
|
||||
|
||||
def rehash(path: Path, blocksize: int = 1 << 20) -> Tuple[str, str]:
|
||||
"""Return (encoded_digest, length) for path using hashlib.sha256()"""
|
||||
h, length = hash_file(path, blocksize)
|
||||
digest = "sha256=" + urlsafe_b64encode(h.digest()).decode("latin1").rstrip("=")
|
||||
return digest, str(length)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
agupa = argparse.ArgumentParser()
|
||||
agupa.add_argument("base_path", help="The path of the wheel")
|
||||
args = agupa.parse_args()
|
||||
|
||||
base_path = Path(args.base_path)
|
||||
|
||||
# Find the name of the dist-info path
|
||||
dist_info = next(base_path.rglob("*.dist-info"))
|
||||
|
||||
# Delete dist_info / record
|
||||
record = dist_info / "RECORD"
|
||||
order = record.read_text().splitlines()
|
||||
record.unlink()
|
||||
|
||||
# Rehash each file in the wheel
|
||||
processed = set()
|
||||
new_record = []
|
||||
for file in order:
|
||||
file = base_path / file.split(',')[0]
|
||||
if file.exists():
|
||||
digest, length = rehash(file)
|
||||
new_record.append(f"{str(file.relative_to(base_path)).replace("\\", "/")},{digest},{length}")
|
||||
processed.add(file)
|
||||
|
||||
for file in base_path.rglob('*'):
|
||||
if file.is_file() and file not in processed:
|
||||
digest, length = rehash(file)
|
||||
new_record.append(f"{str(file.relative_to(base_path)).replace("\\", "/")},{digest},{length}")
|
||||
|
||||
new_record.append(f"{str(dist_info.relative_to(base_path)).replace("\\", "/")}/RECORD,,")
|
||||
|
||||
# Write the new record
|
||||
record.write_text('\n'.join(new_record))
|
||||
print("Rehashed successfully")
|
||||
|
||||
@@ -64,7 +64,7 @@ def edit_versions(version: str):
|
||||
# 4. neofetch script
|
||||
print('Editing neofetch...')
|
||||
path = Path('neofetch')
|
||||
lines = path.read_text().replace("\t", " ").split('\n')
|
||||
lines = path.read_text().replace("\t", " ").split('\n')
|
||||
version_i = next(i for i, l in enumerate(lines) if l.startswith('version='))
|
||||
nf = pv.parse(lines[version_i].replace('version=', ''))
|
||||
new = pv.parse(version)
|
||||
@@ -92,7 +92,8 @@ def finalize_neofetch():
|
||||
|
||||
# 2. Regenerate man page
|
||||
print('Regenerating neofetch man page...')
|
||||
Path('neofetch.1').write_text(subprocess.check_output(['help2man', './neofetch']).decode())
|
||||
Path('docs/neofetch.1').write_text(subprocess.check_output(['help2man', './neofetch']).decode())
|
||||
Path('docs/hyfetch.1').write_text(subprocess.check_output(['help2man', 'python3 -m hyfetch']).decode())
|
||||
|
||||
# 3. Reformat readme links
|
||||
print('Reformatting readme links...')
|
||||
@@ -114,8 +115,7 @@ def create_release(v: str):
|
||||
print('Committing changes...')
|
||||
|
||||
# 1. Add files
|
||||
subprocess.check_call(['git', 'add', 'hyfetch/__version__.py', 'neofetch', 'neofetch.1', 'package.json', 'README.md',
|
||||
'hyfetch/distros/*'])
|
||||
subprocess.check_call(['git', 'add', '.'])
|
||||
|
||||
# 2. Commit
|
||||
subprocess.check_call(['git', 'commit', '-m', f'[U] Release {v}'])
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user