Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9777652dac | |||
| 659811a66e | |||
| 617227da75 | |||
| 8ffb8063ca | |||
| 9018dbb461 | |||
| 1d29563e81 | |||
| 0d06df3024 | |||
| 964f718766 | |||
| 673e20ff2b | |||
| b4a0131359 | |||
| 93ea451c34 | |||
| a813400807 | |||
| e970c8f672 | |||
| 573eb09f74 | |||
| 6192b47758 | |||
| 6771e8e7c1 | |||
| e8c9e30920 | |||
| 3b8cf64a5e | |||
| 7d1ec7109f | |||
| 5891522233 | |||
| d00a3c086d | |||
| 538646160d | |||
| 182f2aad15 | |||
| 8c5905c858 | |||
| 365ed5a91f | |||
| 859dd3eb83 | |||
| 5343182ea1 | |||
| 93639996bb | |||
| 5f39250003 | |||
| 08ecada71a | |||
| 4d6743b886 | |||
| dcff08340e | |||
| 44a4555bce | |||
| f855d0e244 | |||
| 04d5965d49 | |||
| 197e11ee5f | |||
| 58e60aea8e | |||
| d3ea2eeee2 | |||
| 2b4a35f12b | |||
| 469dd762f2 | |||
| d8bdffa1f1 | |||
| a3e93a03fc | |||
| 0329c2825f | |||
| 48acfaaebe |
@@ -28,9 +28,11 @@ pip install hyfetch
|
|||||||
|
|
||||||
Currently, these distributions have existing packages for HyFetch:
|
Currently, these distributions have existing packages for HyFetch:
|
||||||
|
|
||||||
* Arch Linux: `paru -S hyfetch` or `yay -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa))
|
* Arch Linux: `sudo pacman -S hyfetch` (Thanks to [@Aleksana](https://github.com/Aleksanaa) and [@Antiz96](https://github.com/Antiz96))
|
||||||
* Nix: `nix-env -i hyfetch` (Thanks to [@YisuiDenghua](https://github.com/YisuiDenghua))
|
* Nix: `nix-env -i hyfetch` (Thanks to [@YisuiDenghua](https://github.com/YisuiDenghua))
|
||||||
* Guix: `guix install hyfetch` (Thanks to [@WammKD](https://github.com/WammKD))
|
* 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)
|
||||||
|
|
||||||
|
|
||||||
### Method 3: Install the latest developmental version using git
|
### Method 3: Install the latest developmental version using git
|
||||||
|
|
||||||
@@ -99,39 +101,56 @@ pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
|||||||
|
|
||||||
<!-- CHANGELOG STARTS HERE --->
|
<!-- CHANGELOG STARTS HERE --->
|
||||||
|
|
||||||
|
### 1.4.8
|
||||||
|
|
||||||
|
* 🌈 Improved Windows git bash detection ([#99](https://github.com/hykilpikonna/hyfetch/pull/99))
|
||||||
|
* 🌈 Improved color formatting codes ([#101](https://github.com/hykilpikonna/hyfetch/pull/101))
|
||||||
|
* 🌈 Allow specifying distro in config ([#102](https://github.com/hykilpikonna/hyfetch/pull/102))
|
||||||
|
* 🌈 Allow specifying custom ascii files ([#104](https://github.com/hykilpikonna/hyfetch/pull/104))
|
||||||
|
* 🌈 Add omniromantic and pangender ([#106](https://github.com/hykilpikonna/hyfetch/pull/106))
|
||||||
|
* 🌈 Now officially packaged for ArchLinux Community & Slackware! ([#112](https://github.com/hykilpikonna/hyfetch/pull/112)) ([#109](https://github.com/hykilpikonna/hyfetch/pull/109))
|
||||||
|
* 🖼 Host - Update Apple device model detection. ([#111](https://github.com/hykilpikonna/hyfetch/pull/111))
|
||||||
|
* 🖼 Distro - Add Salient OS. ([dylanaraps#2301](https://github.com/dylanaraps/neofetch/pull/2301))
|
||||||
|
* 🖼 Distro - Add PikaOS. ([#105](https://github.com/hykilpikonna/hyfetch/pull/105))
|
||||||
|
* 🖼 Distro - Add Archcraft minimal variant. ([#108](https://github.com/hykilpikonna/hyfetch/pull/108))
|
||||||
|
* 🖼 Distro - Update Vanilla logo. ([#98](https://github.com/hykilpikonna/hyfetch/pull/98))
|
||||||
|
* 🖼 Distro - ChromeOS version improvements. ([dylanaraps#2305](https://github.com/dylanaraps/neofetch/pull/2305))
|
||||||
|
* 🖼 CPU - Improved multi-cpu ARM chip detection. ([#97](https://github.com/hykilpikonna/hyfetch/pull/97))
|
||||||
|
* 🖼 Packages - Support pipx package manager. ([#107](https://github.com/hykilpikonna/hyfetch/pull/107))
|
||||||
|
|
||||||
### 1.4.7
|
### 1.4.7
|
||||||
|
|
||||||
* 🌈 Better Windows compatibility (#45, #84, #87, #89)
|
* 🌈 Better Windows compatibility ([#45](https://github.com/hykilpikonna/hyfetch/pull/45), [#84](https://github.com/hykilpikonna/hyfetch/pull/84), [#87](https://github.com/hykilpikonna/hyfetch/pull/87), [#89](https://github.com/hykilpikonna/hyfetch/pull/89))
|
||||||
* 🌈 Add gendervoid flags (#81)
|
* 🌈 Add gendervoid flags ([#81](https://github.com/hykilpikonna/hyfetch/pull/81))
|
||||||
* 🌈 Fix ASCII extractor escape sequence generation (#90, #91)
|
* 🌈 Fix ASCII extractor escape sequence generation ([#90](https://github.com/hykilpikonna/hyfetch/pull/90), [#91](https://github.com/hykilpikonna/hyfetch/pull/91))
|
||||||
* 🖼 Distro - Add CuteOS ([dylanaraps#2291](https://github.com/dylanaraps/neofetch/pull/2291))
|
* 🖼 Distro - Add CuteOS ([dylanaraps#2291](https://github.com/dylanaraps/neofetch/pull/2291))
|
||||||
* 🖼 Distro - Add Floflis ([dylanaraps#2289](https://github.com/dylanaraps/neofetch/pull/2289))
|
* 🖼 Distro - Add Floflis ([dylanaraps#2289](https://github.com/dylanaraps/neofetch/pull/2289))
|
||||||
* 🖼 Distro - Add ArseLinux ([dylanaraps#2295](https://github.com/dylanaraps/neofetch/pull/2295))
|
* 🖼 Distro - Add ArseLinux ([dylanaraps#2295](https://github.com/dylanaraps/neofetch/pull/2295))
|
||||||
* 🖼 Distro - Better Solaris support ([dylanaraps#2293](https://github.com/dylanaraps/neofetch/pull/2293))
|
* 🖼 Distro - Better Solaris support ([dylanaraps#2293](https://github.com/dylanaraps/neofetch/pull/2293))
|
||||||
* 🖼 Packages - Fix scoop package manager for Windows (#93)
|
* 🖼 Packages - Fix scoop package manager for Windows ([#93](https://github.com/hykilpikonna/hyfetch/pull/93))
|
||||||
* 🖼 Packages - Add Evox package manager for Stock Linux (#95)
|
* 🖼 Packages - Add Evox package manager for Stock Linux ([#95](https://github.com/hykilpikonna/hyfetch/pull/95))
|
||||||
* 🖼 WM - Fix false positive wm process name detection (#88, #94)
|
* 🖼 WM - Fix false positive wm process name detection ([#88](https://github.com/hykilpikonna/hyfetch/pull/88), [#94](https://github.com/hykilpikonna/hyfetch/pull/94))
|
||||||
* 🖼 Misc - Added BIOS and bluetooth detection
|
* 🖼 Misc - Added BIOS and bluetooth detection
|
||||||
|
|
||||||
### 1.4.6
|
### 1.4.6
|
||||||
|
|
||||||
* 🌈 Add compatibility for FastFetch version `>1.8.0` (#62)
|
* 🌈 Add compatibility for FastFetch version `>1.8.0` ([#62](https://github.com/hykilpikonna/hyfetch/pull/62))
|
||||||
* 🖼 Distro - Add Aperture Science ascii art (#61)
|
* 🖼 Distro - Add Aperture Science ascii art ([#61](https://github.com/hykilpikonna/hyfetch/pull/61))
|
||||||
* 🖼 Distro - Add RhaymOS ([dylanaraps#2274](https://github.com/dylanaraps/neofetch/pull/2274))
|
* 🖼 Distro - Add RhaymOS ([dylanaraps#2274](https://github.com/dylanaraps/neofetch/pull/2274))
|
||||||
* 🖼 Editor - Add editor information detection ([dylanaraps#2271](https://github.com/dylanaraps/neofetch/pull/2271))
|
* 🖼 Editor - Add editor information detection ([dylanaraps#2271](https://github.com/dylanaraps/neofetch/pull/2271))
|
||||||
* 🖼 Packages - Fix empty cargo directory (#58)
|
* 🖼 Packages - Fix empty cargo directory ([#58](https://github.com/hykilpikonna/hyfetch/pull/58))
|
||||||
* 🖼 Terminal - Display gnome-console instead of kgx ([dylanaraps#2277](https://github.com/dylanaraps/neofetch/pull/2277))
|
* 🖼 Terminal - Display gnome-console instead of kgx ([dylanaraps#2277](https://github.com/dylanaraps/neofetch/pull/2277))
|
||||||
* 🖼 Terminal - Fix terminal detection with new get_process_name function
|
* 🖼 Terminal - Fix terminal detection with new get_process_name function
|
||||||
* 🖼 CPU - Detect ISA string on RISC-V CPUs (#60)
|
* 🖼 CPU - Detect ISA string on RISC-V CPUs ([#60](https://github.com/hykilpikonna/hyfetch/pull/60))
|
||||||
* 🖼 Song - Fix CMUS player song detection on macOS (#55)
|
* 🖼 Song - Fix CMUS player song detection on macOS ([#55](https://github.com/hykilpikonna/hyfetch/pull/55))
|
||||||
* 🖼 Network - Fix macOS network detection (#56)
|
* 🖼 Network - Fix macOS network detection ([#56](https://github.com/hykilpikonna/hyfetch/pull/56))
|
||||||
* 🖼 Misc - Change LICENSE year to 2023 (#59)
|
* 🖼 Misc - Change LICENSE year to 2023 ([#59](https://github.com/hykilpikonna/hyfetch/pull/59))
|
||||||
|
|
||||||
### 1.4.5
|
### 1.4.5
|
||||||
|
|
||||||
* 🌈 **Support using FastFetch as a HyFetch backend** (`hyfetch -b fastfetch`)
|
* 🌈 **Support using FastFetch as a HyFetch backend** (`hyfetch -b fastfetch`)
|
||||||
* 🌈 Add config file argument (#48)
|
* 🌈 Add config file argument ([#48](https://github.com/hykilpikonna/hyfetch/pull/48))
|
||||||
* 🌈 Fix problems caused by color detection on Windows (#16)
|
* 🌈 Fix problems caused by color detection on Windows ([#16](https://github.com/hykilpikonna/hyfetch/pull/16))
|
||||||
* 🌈 Support pure-python distro detection for FastFetch
|
* 🌈 Support pure-python distro detection for FastFetch
|
||||||
* 🖼️ Distro - Add Aster Linux ([dylanaraps#2251](https://github.com/dylanaraps/neofetch/pull/2251))
|
* 🖼️ Distro - Add Aster Linux ([dylanaraps#2251](https://github.com/dylanaraps/neofetch/pull/2251))
|
||||||
* 🖼️ Distro - Add Hybrid Linux ([dylanaraps#2239](https://github.com/dylanaraps/neofetch/pull/2239))
|
* 🖼️ Distro - Add Hybrid Linux ([dylanaraps#2239](https://github.com/dylanaraps/neofetch/pull/2239))
|
||||||
@@ -139,21 +158,21 @@ pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
|||||||
* 🖼️ Distro - Add Project Sasanqua ([dylanaraps#2264](https://github.com/dylanaraps/neofetch/pull/2264))
|
* 🖼️ Distro - Add Project Sasanqua ([dylanaraps#2264](https://github.com/dylanaraps/neofetch/pull/2264))
|
||||||
* 🖼️ Distro - Add Kali small variant ([dylanaraps#2242](https://github.com/dylanaraps/neofetch/pull/2242))
|
* 🖼️ Distro - Add Kali small variant ([dylanaraps#2242](https://github.com/dylanaraps/neofetch/pull/2242))
|
||||||
* 🖼️ Distro - Fix CachyOS matching ([dylanaraps#2026](https://github.com/dylanaraps/neofetch/pull/2026))
|
* 🖼️ Distro - Fix CachyOS matching ([dylanaraps#2026](https://github.com/dylanaraps/neofetch/pull/2026))
|
||||||
* 🖼 WM - Fix wm detection with `fuser` (#39)
|
* 🖼 WM - Fix wm detection with `fuser` ([#39](https://github.com/hykilpikonna/hyfetch/pull/39))
|
||||||
* 🖼️ Memory - Make memory unit decimal calculation more accurate (#52)
|
* 🖼️ Memory - Make memory unit decimal calculation more accurate ([#52](https://github.com/hykilpikonna/hyfetch/pull/52))
|
||||||
* 🖼 Packages - Fix squirrel (Stock Linux) package count detection (#39)
|
* 🖼 Packages - Fix squirrel (Stock Linux) package count detection ([#39](https://github.com/hykilpikonna/hyfetch/pull/39))
|
||||||
* 🖼 Packages - Support cargo bin environment variable (#49)
|
* 🖼 Packages - Support cargo bin environment variable ([#49](https://github.com/hykilpikonna/hyfetch/pull/49))
|
||||||
* 🖼 Packages - Add tea.xyz package manager (issue [dylanaraps#2235](https://github.com/dylanaraps/neofetch/pull/2235))
|
* 🖼 Packages - Add tea.xyz package manager (issue [dylanaraps#2235](https://github.com/dylanaraps/neofetch/pull/2235))
|
||||||
|
|
||||||
### 1.4.4
|
### 1.4.4
|
||||||
|
|
||||||
* 🌈 Fix Python 3.11 compatibility (#35)
|
* 🌈 Fix Python 3.11 compatibility ([#35](https://github.com/hykilpikonna/hyfetch/pull/35))
|
||||||
* 🌈 Fix many overflow problems when screen is too small
|
* 🌈 Fix many overflow problems when screen is too small
|
||||||
* 🖼️ Distro - Add Enso ([dylanaraps#2233](https://github.com/dylanaraps/neofetch/pull/2233))
|
* 🖼️ Distro - Add Enso ([dylanaraps#2233](https://github.com/dylanaraps/neofetch/pull/2233))
|
||||||
* 🖼️ Memory - Optimize and fix memory unit conversion ([dylanaraps#2225](https://github.com/dylanaraps/neofetch/pull/2225))
|
* 🖼️ Memory - Optimize and fix memory unit conversion ([dylanaraps#2225](https://github.com/dylanaraps/neofetch/pull/2225))
|
||||||
* 🖼️ DE - Add dwl window manager ([dylanaraps#2234](https://github.com/dylanaraps/neofetch/pull/2234))
|
* 🖼️ DE - Add dwl window manager ([dylanaraps#2234](https://github.com/dylanaraps/neofetch/pull/2234))
|
||||||
* 🖼️ DE - Fix XDG session detection for X11 ([dylanaraps#2232](https://github.com/dylanaraps/neofetch/pull/2232))
|
* 🖼️ DE - Fix XDG session detection for X11 ([dylanaraps#2232](https://github.com/dylanaraps/neofetch/pull/2232))
|
||||||
* 🖼️ CPU - Fix model detection for loongson (#34)
|
* 🖼️ CPU - Fix model detection for loongson ([#34](https://github.com/hykilpikonna/hyfetch/pull/34))
|
||||||
|
|
||||||
### 1.4.3
|
### 1.4.3
|
||||||
|
|
||||||
@@ -161,33 +180,33 @@ pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
|||||||
* 🌈 **Optimize experience on light-themed terminals**
|
* 🌈 **Optimize experience on light-themed terminals**
|
||||||
* 🌈 Fix bugs with lightness and light-mode config not applying
|
* 🌈 Fix bugs with lightness and light-mode config not applying
|
||||||
* 🌈 Fix color alignment for distros with first color ≠ `${c1}` (e.g. Ubuntu Budgie)
|
* 🌈 Fix color alignment for distros with first color ≠ `${c1}` (e.g. Ubuntu Budgie)
|
||||||
* 🌈 Add unlabeled flags (#25)
|
* 🌈 Add unlabeled flags ([#25](https://github.com/hykilpikonna/hyfetch/pull/25))
|
||||||
* 🌈 Add gender nonconforming & femboy & tomboy flags (#32)
|
* 🌈 Add gender nonconforming & femboy & tomboy flags ([#32](https://github.com/hykilpikonna/hyfetch/pull/32))
|
||||||
* 🌈 Fix jailbreak iOS shell `killed: 9` issue caused by ld signature check.
|
* 🌈 Fix jailbreak iOS shell `killed: 9` issue caused by ld signature check.
|
||||||
* 🖼️ Distro - Add garuda_small ([dylanaraps#2215](https://github.com/dylanaraps/neofetch/pull/2215))
|
* 🖼️ Distro - Add garuda_small ([dylanaraps#2215](https://github.com/dylanaraps/neofetch/pull/2215))
|
||||||
* 🖼️ Distro - Add Cobalt Linux ([dylanaraps#2213](https://github.com/dylanaraps/neofetch/pull/2213))
|
* 🖼️ Distro - Add Cobalt Linux ([dylanaraps#2213](https://github.com/dylanaraps/neofetch/pull/2213))
|
||||||
* 🖼️ Distro - Add VanillaOS ([dylanaraps#2222](https://github.com/dylanaraps/neofetch/pull/2222))
|
* 🖼️ Distro - Add VanillaOS ([dylanaraps#2222](https://github.com/dylanaraps/neofetch/pull/2222))
|
||||||
* 🖼️ Distro - Surround macOS build number in parentheses (#28)
|
* 🖼️ Distro - Surround macOS build number in parentheses ([#28](https://github.com/hykilpikonna/hyfetch/pull/28))
|
||||||
* 🖼️ Misc - Auto select stdout mode based on tty detection (#31)
|
* 🖼️ Misc - Auto select stdout mode based on tty detection ([#31](https://github.com/hykilpikonna/hyfetch/pull/31))
|
||||||
* 🖼️ Bug Fix - Fix cols coloring reset for bash 3.2 (#24)
|
* 🖼️ Bug Fix - Fix cols coloring reset for bash 3.2 ([#24](https://github.com/hykilpikonna/hyfetch/pull/24))
|
||||||
|
|
||||||
### 1.4.2
|
### 1.4.2
|
||||||
|
|
||||||
* 🌈 Detailed runnning/contributing instructions in README.md (#21)
|
* 🌈 Detailed runnning/contributing instructions in README.md ([#21](https://github.com/hykilpikonna/hyfetch/pull/21))
|
||||||
* 🖼️ Distro - Add Stock Linux (#23)
|
* 🖼️ Distro - Add Stock Linux ([#23](https://github.com/hykilpikonna/hyfetch/pull/23))
|
||||||
* 🖼️ Distro - Add DietPi ([dylanaraps#1706](https://github.com/dylanaraps/neofetch/pull/1706))
|
* 🖼️ Distro - Add DietPi ([dylanaraps#1706](https://github.com/dylanaraps/neofetch/pull/1706))
|
||||||
* 🖼️ Distro - Add OmniOS illumos ([dylanaraps#2196](https://github.com/dylanaraps/neofetch/pull/2196))
|
* 🖼️ Distro - Add OmniOS illumos ([dylanaraps#2196](https://github.com/dylanaraps/neofetch/pull/2196))
|
||||||
* 🖼️ Distro - Add Droidian ([dylanaraps#2201](https://github.com/dylanaraps/neofetch/pull/2201))
|
* 🖼️ Distro - Add Droidian ([dylanaraps#2201](https://github.com/dylanaraps/neofetch/pull/2201))
|
||||||
* 🖼️ Distro - Add HamoniKR ([dylanaraps#2210](https://github.com/dylanaraps/neofetch/pull/2210))
|
* 🖼️ Distro - Add HamoniKR ([dylanaraps#2210](https://github.com/dylanaraps/neofetch/pull/2210))
|
||||||
* 🖼️ Song - Add support for TIDAL HiFi (#22)
|
* 🖼️ Song - Add support for TIDAL HiFi ([#22](https://github.com/hykilpikonna/hyfetch/pull/22))
|
||||||
* 🖼️ CPU - Detect multiple CPU models for ARM
|
* 🖼️ CPU - Detect multiple CPU models for ARM
|
||||||
* 🖼️ Misc - Better defaults: Show RAM in GiB, RAM percentage, CPU speed rounding, refresh rate
|
* 🖼️ Misc - Better defaults: Show RAM in GiB, RAM percentage, CPU speed rounding, refresh rate
|
||||||
* 🖼️ Bug Fix - Fix bash 5.2 column cut off issue (#24)
|
* 🖼️ Bug Fix - Fix bash 5.2 column cut off issue ([#24](https://github.com/hykilpikonna/hyfetch/pull/24))
|
||||||
|
|
||||||
### 1.4.1
|
### 1.4.1
|
||||||
|
|
||||||
* 🌈 Paginate flags (#14)
|
* 🌈 Paginate flags ([#14](https://github.com/hykilpikonna/hyfetch/pull/14))
|
||||||
* 🌈 Add release workflow (#15)
|
* 🌈 Add release workflow ([#15](https://github.com/hykilpikonna/hyfetch/pull/15))
|
||||||
* 🌈 Create automatic release script
|
* 🌈 Create automatic release script
|
||||||
* 🌈 Config page - Give warning when terminal size is too small
|
* 🌈 Config page - Give warning when terminal size is too small
|
||||||
* 🌈 Config page - Optimize color arrangement selection on small screens
|
* 🌈 Config page - Optimize color arrangement selection on small screens
|
||||||
@@ -208,7 +227,7 @@ pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
|||||||
|
|
||||||
### 1.4.0
|
### 1.4.0
|
||||||
|
|
||||||
* 🌈 Add finsexual flag (#12)
|
* 🌈 Add finsexual flag ([#12](https://github.com/hykilpikonna/hyfetch/pull/12))
|
||||||
* 🚀 Addressed a total of 128 currently open pull requests from neofetch
|
* 🚀 Addressed a total of 128 currently open pull requests from neofetch
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@@ -424,11 +443,11 @@ pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
|||||||
|
|
||||||
### 1.0.5
|
### 1.0.5
|
||||||
|
|
||||||
* Fix terminal emulator detection ([PR #2](https://github.com/hykilpikonna/hyfetch/pull/2))
|
* Fix terminal emulator detection ([PR [#2](https://github.com/hykilpikonna/hyfetch/pull/2)](https://github.com/hykilpikonna/hyfetch/pull/2))
|
||||||
|
|
||||||
### 1.0.4
|
### 1.0.4
|
||||||
|
|
||||||
* Add more flags ([PR #1](https://github.com/hykilpikonna/hyfetch/pull/1))
|
* Add more flags ([PR [#1](https://github.com/hykilpikonna/hyfetch/pull/1)](https://github.com/hykilpikonna/hyfetch/pull/1))
|
||||||
|
|
||||||
### 1.0.3
|
### 1.0.3
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
VERSION = '1.4.8'
|
||||||
+27
-5
@@ -6,11 +6,33 @@ from dataclasses import dataclass, astuple
|
|||||||
from .constants import GLOBAL_CFG
|
from .constants import GLOBAL_CFG
|
||||||
from .types import *
|
from .types import *
|
||||||
|
|
||||||
MINECRAFT_COLORS = ["&0/\033[0;30m", "&1/\033[0;34m", "&2/\033[0;32m", "&3/\033[0;36m", "&4/\033[0;31m",
|
MINECRAFT_COLORS = [
|
||||||
"&5/\033[0;35m", "&6/\033[0;33m", "&7/\033[0;37m", "&8/\033[1;30m", "&9/\033[1;34m",
|
|
||||||
"&a/\033[1;32m", "&b/\033[1;36m", "&c/\033[1;31m", "&d/\033[1;35m", "&e/\033[1;33m",
|
# Minecraft formatting codes
|
||||||
"&f/\033[1;37m",
|
# ==========================
|
||||||
"&r/\033[0m", "&l/\033[1m", "&o/\033[3m", "&n/\033[4m", "&-/\n"]
|
"&0/\033[38;5;0m", "&1/\033[38;5;4m", "&2/\033[38;5;2m", "&3/\033[38;5;6m",
|
||||||
|
"&4/\033[38;5;1m", "&5/\033[38;5;5m", "&6/\033[38;5;3m", "&7/\033[38;5;7m",
|
||||||
|
"&8/\033[38;5;8m", "&9/\033[38;5;12m", "&a/\033[38;5;10m", "&b/\033[38;5;14m",
|
||||||
|
"&c/\033[38;5;9m", "&d/\033[38;5;13m", "&e/\033[38;5;11m", "&f/\033[38;5;15m",
|
||||||
|
"&l/\033[1m", # Enable bold text
|
||||||
|
"&o/\033[3m", # Enable italic text
|
||||||
|
"&n/\033[4m", # Enable underlined text
|
||||||
|
"&k/\033[8m", # Enable hidden text
|
||||||
|
"&m/\033[9m", # Enable strikethrough text
|
||||||
|
"&r/\033[0m", # Reset everything
|
||||||
|
|
||||||
|
# Extended codes (not officially in Minecraft)
|
||||||
|
# ============================================
|
||||||
|
"&-/\n", # Line break
|
||||||
|
"&~/\033[39m", # Reset text color
|
||||||
|
"&*/\033[49m", # Reset background color
|
||||||
|
"&L/\033[22m", # Disable bold text
|
||||||
|
"&O/\033[23m", # Disable italic text
|
||||||
|
"&N/\033[24m", # Disable underlined text
|
||||||
|
"&K/\033[28m", # Disable hidden text
|
||||||
|
"&M/\033[29m", # Disable strikethrough text
|
||||||
|
|
||||||
|
]
|
||||||
MINECRAFT_COLORS = [(r[:2], r[3:]) for r in MINECRAFT_COLORS]
|
MINECRAFT_COLORS = [(r[:2], r[3:]) for r in MINECRAFT_COLORS]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ from dataclasses import dataclass
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from .types import LightDark
|
from .types import LightDark
|
||||||
|
from .__version__ import VERSION
|
||||||
|
|
||||||
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
CONFIG_PATH = Path.home() / '.config/hyfetch.json'
|
||||||
VERSION = '1.4.7'
|
|
||||||
|
|
||||||
|
|
||||||
TEST_ASCII = r"""
|
TEST_ASCII = r"""
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# This file is automatically generated. Please do not modify.
|
||||||
|
|
||||||
|
from . import AsciiArt
|
||||||
|
|
||||||
|
archcraft_ascii = AsciiArt(match=r'''"archcraft_ascii"*''', color='6 1 2 3 4 5', ascii=r"""
|
||||||
|
${c1} -o\
|
||||||
|
:ooo:
|
||||||
|
.ooooo.
|
||||||
|
ooooooo.
|
||||||
|
+oooooooo.
|
||||||
|
-oooooooooo.
|
||||||
|
--:-+oooooooo.
|
||||||
|
yooo+=+sooooooo.
|
||||||
|
yoooooosooooooooo.
|
||||||
|
y+ooooooooooooooooo.
|
||||||
|
yoooooooooooooooooooo`
|
||||||
|
yoooooo+oo= :oo++ooooo`
|
||||||
|
:oooooo. +ooooo-
|
||||||
|
-ooooooo. .::. +ooosoo=
|
||||||
|
-oooooo` .oooo` +os-=o=
|
||||||
|
=ooooooo=: `oo+ :=ooo=--`.
|
||||||
|
+ooooooooos. .=sooooooo+-
|
||||||
|
.+osossos+-` `-+osososs+.
|
||||||
|
:sss+=-:` `:-=+ssss:
|
||||||
|
:=-:` `-=+:
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# This file is automatically generated. Please do not modify.
|
||||||
|
|
||||||
|
from . import AsciiArt
|
||||||
|
|
||||||
|
archcraft_minimal = AsciiArt(match=r'''"archcraft_minimal"*''', color='6 1 2 3 4 5', ascii=r"""
|
||||||
|
${c1} ⢰⡆
|
||||||
|
⢠⣿⣿⡄
|
||||||
|
⢀⣾⣿⣿⣿⡀
|
||||||
|
⣼⣿⣿⣿⣿⣷⡀
|
||||||
|
⣼⣿⣿⣿⣿⣿⣿⣷
|
||||||
|
⢼⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣤⣈⠻⢿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣿⣿⣿⣿⣮⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣼⣿⣿⣿⣿⣿⡿⣿⣿⡟ ⠸⣿⣿⡿⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⣼⣿⣿⣿⣿⣿⡏ ⠈⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⢀⣼⣿⣿⣿⣿⣿⣿⡗ ⢀⣠⣤⣀ ⠸⣿⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⢀⣾⣿⣿⣿⣿⣿⡏⠁ ⢠⣿⣿⣿⣿⡇ ⢙⣿⣿⣻⠿⣿⣷⡀
|
||||||
|
⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀ ⠻⣿⣿⡿⠃ ⢀⣼⣿⣿⣿⣿⣦⣌⠙
|
||||||
|
⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏ ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀
|
||||||
|
⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁ ⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄
|
||||||
|
⣠⣿⣿⣿⣿⠿⠛⠋⠁ ⠉⠙⠻⢿⣿⣿⣿⣿⣆
|
||||||
|
⡰⠟⠛⠉⠁ ⠉⠙⠛⠿⢆
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -104,6 +104,14 @@ def detect(name: str) -> AsciiArt | None:
|
|||||||
from .apricity import apricity
|
from .apricity import apricity
|
||||||
return apricity
|
return apricity
|
||||||
|
|
||||||
|
if name.startswith('archcraft_ascii'):
|
||||||
|
from .archcraft_ascii import archcraft_ascii
|
||||||
|
return archcraft_ascii
|
||||||
|
|
||||||
|
if name.startswith('archcraft_minimal'):
|
||||||
|
from .archcraft_minimal import archcraft_minimal
|
||||||
|
return archcraft_minimal
|
||||||
|
|
||||||
if name.startswith('archcraft'):
|
if name.startswith('archcraft'):
|
||||||
from .archcraft import archcraft
|
from .archcraft import archcraft
|
||||||
return archcraft
|
return archcraft
|
||||||
@@ -920,6 +928,10 @@ def detect(name: str) -> AsciiArt | None:
|
|||||||
from .pisi import pisi
|
from .pisi import pisi
|
||||||
return pisi
|
return pisi
|
||||||
|
|
||||||
|
if name.startswith('pikaos'):
|
||||||
|
from .pikaos import pikaos
|
||||||
|
return pikaos
|
||||||
|
|
||||||
if name.startswith('pnm linux') or name.startswith('whpnm linux'):
|
if name.startswith('pnm linux') or name.startswith('whpnm linux'):
|
||||||
from .pnm_linux import pnm_linux
|
from .pnm_linux import pnm_linux
|
||||||
return pnm_linux
|
return pnm_linux
|
||||||
@@ -1068,6 +1080,10 @@ def detect(name: str) -> AsciiArt | None:
|
|||||||
from .sasanqua import sasanqua
|
from .sasanqua import sasanqua
|
||||||
return sasanqua
|
return sasanqua
|
||||||
|
|
||||||
|
if name.startswith('salient os') or name.startswith('salientos') or name.startswith('salientos'):
|
||||||
|
from .salient_os import salient_os
|
||||||
|
return salient_os
|
||||||
|
|
||||||
if name.startswith('scientific'):
|
if name.startswith('scientific'):
|
||||||
from .scientific import scientific
|
from .scientific import scientific
|
||||||
return scientific
|
return scientific
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# This file is automatically generated. Please do not modify.
|
||||||
|
|
||||||
|
from . import AsciiArt
|
||||||
|
|
||||||
|
pikaos = AsciiArt(match=r'''"PikaOS"*''', color='11', ascii=r"""
|
||||||
|
${c1} /🐦🐦🐦$ /🐦/🐦 /🐦🐦🐦 /🐦🐦🐦
|
||||||
|
| 🐦__ $|__| 🐦 /🐦__ 🐦/🐦__ 🐦
|
||||||
|
| 🐦 \ 🐦/$| 🐦 /🐦 /🐦🐦🐦| 🐦 \ $| 🐦 \__/
|
||||||
|
| 🐦🐦🐦$| $| 🐦 /🐦/|____ $| 🐦 | $| 🐦🐦🐦
|
||||||
|
| 🐦____/| $| 🐦🐦🐦/ /🐦🐦🐦| 🐦 | 🐦\____ 🐦
|
||||||
|
| 🐦 | $| 🐦_ 🐦 /🐦__ $| 🐦 | 🐦/🐦 \ 🐦
|
||||||
|
| 🐦 | $| 🐦 \ $| 🐦🐦🐦| 🐦🐦🐦| 🐦🐦🐦/
|
||||||
|
|__/ |__|__/ \__/\_______/\______/ \______/ .
|
||||||
|
""")
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# This file is automatically generated. Please do not modify.
|
||||||
|
|
||||||
|
from . import AsciiArt
|
||||||
|
|
||||||
|
salient_os = AsciiArt(match=r'''"Salient OS"* | "SalientOS"* | "salientos"*''', color='6 6 7 1', ascii=r"""
|
||||||
|
${c1} 00xxxx0
|
||||||
|
00xxxxxx0
|
||||||
|
0xxxxxxxxx 000000
|
||||||
|
0xxxxxxxxxx xxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxx0 xxxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxx0 0xxxxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxx0 0xxxxxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx0
|
||||||
|
xxxxxxxxxxxxxxxx0 0xxxxxxxxxxxxxxxx
|
||||||
|
xxxxxxxxxxxxxxxxx 0xxxxxxxxxxxxxxx
|
||||||
|
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx
|
||||||
|
xxxxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxx
|
||||||
|
0xxxxxxxxxxxxxxxxxx0 0xxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxxxxx xxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxxxx xxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxxx xxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxx0 0xxxxxxx0
|
||||||
|
0xxxxxxx0 xxxxxx0
|
||||||
|
0xxx00
|
||||||
|
x00
|
||||||
|
""")
|
||||||
|
|
||||||
+19
-17
@@ -4,22 +4,24 @@ from . import AsciiArt
|
|||||||
|
|
||||||
vanilla = AsciiArt(match=r'''"Vanilla"*''', color='11 15', ascii=r"""
|
vanilla = AsciiArt(match=r'''"Vanilla"*''', color='11 15', ascii=r"""
|
||||||
${c1}
|
${c1}
|
||||||
.----:
|
|
||||||
.-------.
|
.OO.
|
||||||
:---::----:
|
.OOOO.
|
||||||
.----::-----.
|
.OO${c2}II${c1}OO.
|
||||||
......... :----::-----: ..:::-::::..
|
IOOO${c2}II${c1}OOOI
|
||||||
.-----------------::------------------:
|
.OOOO${c2}II${c1}OOOO.
|
||||||
----::-----------::----------::::---:
|
............IOOOO${c2}II${c1}OOOOI............
|
||||||
-----:::--------::-------:::-------
|
OOOOOOOOOOOOOOOOOO${c2}II${c1}OOOOOOOOOOOOOOOOOO
|
||||||
:------::::--::...:::::---------:
|
OOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOO
|
||||||
.---------::.. ..:---------.
|
OOOOO${c2}III${c1}OOOOOOOO${c2}II${c1}OOOOOOOO${c2}III${c1}OOOOO
|
||||||
.::-----::.. .::----::.
|
OOOOOOO${c2}IIII${c1}OO${c2}I....I${c1}OO${c2}IIII${c1}OOOOOOO
|
||||||
.:------:.......:-------:
|
OOOOOOOOOO${c2}II.. ..II${c1}OOOOOOOOOO
|
||||||
.--------::::::::-:::-------.
|
OOOOOOO${c2}II. .II${c1}OOOOOOO
|
||||||
.-------::-----.:-----::------.
|
OOOOOO${c2}II:......:II${c1}OOOOOO
|
||||||
-----::------: :------::-----
|
OOOOOOOOO${c2}IIIIIIII${c1}OOOOOOOOO
|
||||||
:--::--------: .-------::---:
|
OOOOOO${c2}II${c1}OOOOOOOOOOOO${c2}II${c1}OOOOOO
|
||||||
:----------:: .:----------
|
OOOO${c2}II${c1}OOOOOOOI IOOOOOO${c2}II${c1}OOOO
|
||||||
|
IOO${c2}II${c1}OOOOOOOO: :OOOOOOOO${c2}II${c1}OOI
|
||||||
|
IOOOOOOOOOOII IIOOOOOOOOOOI
|
||||||
""")
|
""")
|
||||||
|
|
||||||
+12
-55
@@ -7,7 +7,6 @@ import random
|
|||||||
import traceback
|
import traceback
|
||||||
from itertools import permutations
|
from itertools import permutations
|
||||||
from math import ceil
|
from math import ceil
|
||||||
from typing import Iterable
|
|
||||||
|
|
||||||
from . import termenv, neofetch_util
|
from . import termenv, neofetch_util
|
||||||
from .color_scale import Scale
|
from .color_scale import Scale
|
||||||
@@ -33,51 +32,6 @@ def check_config(path) -> Config:
|
|||||||
|
|
||||||
return create_config()
|
return create_config()
|
||||||
|
|
||||||
|
|
||||||
def literal_input(prompt: str, options: Iterable[str], default: str, show_ops: bool = True) -> str:
|
|
||||||
"""
|
|
||||||
Ask the user to provide an input among a list of options
|
|
||||||
|
|
||||||
:param prompt: Input prompt
|
|
||||||
:param options: Options
|
|
||||||
:param default: Default option
|
|
||||||
:param show_ops: Show options
|
|
||||||
:return: Selection
|
|
||||||
"""
|
|
||||||
options = list(options)
|
|
||||||
lows = [o.lower() for o in options]
|
|
||||||
|
|
||||||
if show_ops:
|
|
||||||
op_text = '|'.join([f'&l&n{o}&r' if o == default else o for o in options])
|
|
||||||
printc(f'{prompt} ({op_text})')
|
|
||||||
else:
|
|
||||||
printc(f'{prompt} (default: {default})')
|
|
||||||
|
|
||||||
def find_selection(sel: str):
|
|
||||||
if not sel:
|
|
||||||
return None
|
|
||||||
|
|
||||||
# Find exact match
|
|
||||||
if sel in lows:
|
|
||||||
return options[lows.index(sel)]
|
|
||||||
|
|
||||||
# Find starting abbreviation
|
|
||||||
for i, op in enumerate(lows):
|
|
||||||
if op.startswith(sel):
|
|
||||||
return options[i]
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
selection = input('> ').lower() or default
|
|
||||||
while not find_selection(selection):
|
|
||||||
print(f'Invalid selection! {selection} is not one of {"|".join(options)}')
|
|
||||||
selection = input('> ').lower() or default
|
|
||||||
|
|
||||||
print()
|
|
||||||
|
|
||||||
return find_selection(selection)
|
|
||||||
|
|
||||||
|
|
||||||
def create_config() -> Config:
|
def create_config() -> Config:
|
||||||
"""
|
"""
|
||||||
Create config interactively
|
Create config interactively
|
||||||
@@ -90,7 +44,7 @@ def create_config() -> Config:
|
|||||||
|
|
||||||
asc = get_distro_ascii()
|
asc = get_distro_ascii()
|
||||||
asc_width, asc_lines = ascii_size(asc)
|
asc_width, asc_lines = ascii_size(asc)
|
||||||
logo = color("&b&lhyfetch&r" if det_bg is None or det_bg.is_light() else "&b&lhy&f&lfetch&r")
|
logo = color("&l&bhyfetch&~&L" if det_bg is None or det_bg.is_light() else "&l&bhy&ffetch&~&L")
|
||||||
title = f'Welcome to {logo} Let\'s set up some colors first.'
|
title = f'Welcome to {logo} Let\'s set up some colors first.'
|
||||||
clear_screen(title)
|
clear_screen(title)
|
||||||
|
|
||||||
@@ -100,7 +54,7 @@ def create_config() -> Config:
|
|||||||
nonlocal title, option_counter
|
nonlocal title, option_counter
|
||||||
if not k.endswith(":"):
|
if not k.endswith(":"):
|
||||||
k += ':'
|
k += ':'
|
||||||
title += f"\n&e{option_counter}. {k.ljust(30)} &r{v}"
|
title += f"\n&e{option_counter}. {k.ljust(30)} &~{v}"
|
||||||
option_counter += 1
|
option_counter += 1
|
||||||
|
|
||||||
def print_title_prompt(prompt: str):
|
def print_title_prompt(prompt: str):
|
||||||
@@ -153,7 +107,7 @@ def create_config() -> Config:
|
|||||||
return det_bg.is_light(), 'Detected background color'
|
return det_bg.is_light(), 'Detected background color'
|
||||||
|
|
||||||
clear_screen(title)
|
clear_screen(title)
|
||||||
inp = literal_input(f'2. Is your terminal in &blight mode&r or &4dark mode&r?',
|
inp = literal_input(f'2. Is your terminal in &blight mode&~ or &4dark mode&~?',
|
||||||
['light', 'dark'], 'dark')
|
['light', 'dark'], 'dark')
|
||||||
return inp == 'light', 'Selected background color'
|
return inp == 'light', 'Selected background color'
|
||||||
|
|
||||||
@@ -354,7 +308,7 @@ def run():
|
|||||||
colorama.just_fix_windows_console()
|
colorama.just_fix_windows_console()
|
||||||
|
|
||||||
# Create CLI
|
# Create CLI
|
||||||
hyfetch = color('&b&lhyfetch&r')
|
hyfetch = color('&l&bhyfetch&~&L')
|
||||||
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'))
|
parser = argparse.ArgumentParser(description=color(f'{hyfetch} - neofetch with flags <3'))
|
||||||
|
|
||||||
parser.add_argument('-c', '--config', action='store_true', help=color(f'Configure {hyfetch}'))
|
parser.add_argument('-c', '--config', action='store_true', help=color(f'Configure {hyfetch}'))
|
||||||
@@ -366,7 +320,9 @@ def run():
|
|||||||
parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float)
|
parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float)
|
||||||
parser.add_argument('-V', '--version', dest='version', action='store_true', help=f'Check version')
|
parser.add_argument('-V', '--version', dest='version', action='store_true', help=f'Check version')
|
||||||
parser.add_argument('--debug', action='store_true', help=f'Debug mode')
|
parser.add_argument('--debug', action='store_true', help=f'Debug mode')
|
||||||
|
|
||||||
parser.add_argument('--distro', '--test-distro', dest='distro', help=f'Test for a specific distro')
|
parser.add_argument('--distro', '--test-distro', dest='distro', help=f'Test for a specific distro')
|
||||||
|
parser.add_argument('--ascii-file', help='Use a specific file for the ascii art')
|
||||||
|
|
||||||
# Hidden debug arguments
|
# Hidden debug arguments
|
||||||
# --test-print: Print the ascii distro and exit
|
# --test-print: Print the ascii distro and exit
|
||||||
@@ -384,10 +340,6 @@ def run():
|
|||||||
ensure_git_bash()
|
ensure_git_bash()
|
||||||
check_windows_cmd()
|
check_windows_cmd()
|
||||||
|
|
||||||
# Use a custom distro
|
|
||||||
if args.distro:
|
|
||||||
GLOBAL_CFG.override_distro = args.distro
|
|
||||||
|
|
||||||
if args.debug:
|
if args.debug:
|
||||||
GLOBAL_CFG.debug = True
|
GLOBAL_CFG.debug = True
|
||||||
|
|
||||||
@@ -406,6 +358,9 @@ def run():
|
|||||||
# Load config or create config
|
# Load config or create config
|
||||||
config = create_config() if args.config else check_config(args.config_file)
|
config = create_config() if args.config else check_config(args.config_file)
|
||||||
|
|
||||||
|
# Use a custom distro
|
||||||
|
GLOBAL_CFG.override_distro = args.distro or config.distro
|
||||||
|
|
||||||
# Param overwrite config
|
# Param overwrite config
|
||||||
if args.preset:
|
if args.preset:
|
||||||
config.preset = args.preset
|
config.preset = args.preset
|
||||||
@@ -431,7 +386,9 @@ def run():
|
|||||||
|
|
||||||
# Run
|
# Run
|
||||||
try:
|
try:
|
||||||
neofetch_util.run(preset, config.color_align, config.backend)
|
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)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'Error: {e}')
|
print(f'Error: {e}')
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class Config:
|
|||||||
lightness: float | None = None
|
lightness: float | None = None
|
||||||
color_align: ColorAlignment = field(default_factory=lambda: ColorAlignment('horizontal'))
|
color_align: ColorAlignment = field(default_factory=lambda: ColorAlignment('horizontal'))
|
||||||
backend: BackendLiteral = "neofetch"
|
backend: BackendLiteral = "neofetch"
|
||||||
|
distro: str | None = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_dict(cls, d: dict):
|
def from_dict(cls, d: dict):
|
||||||
|
|||||||
+66
-28
@@ -12,6 +12,7 @@ from dataclasses import dataclass
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from subprocess import check_output
|
from subprocess import check_output
|
||||||
from tempfile import TemporaryDirectory
|
from tempfile import TemporaryDirectory
|
||||||
|
from typing import Iterable
|
||||||
|
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
@@ -24,6 +25,48 @@ from .types import BackendLiteral, ColorAlignMode
|
|||||||
|
|
||||||
RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}')
|
RE_NEOFETCH_COLOR = re.compile('\\${c[0-9]}')
|
||||||
|
|
||||||
|
def literal_input(prompt: str, options: Iterable[str], default: str, show_ops: bool = True) -> str:
|
||||||
|
"""
|
||||||
|
Ask the user to provide an input among a list of options
|
||||||
|
|
||||||
|
:param prompt: Input prompt
|
||||||
|
:param options: Options
|
||||||
|
:param default: Default option
|
||||||
|
:param show_ops: Show options
|
||||||
|
:return: Selection
|
||||||
|
"""
|
||||||
|
options = list(options)
|
||||||
|
lows = [o.lower() for o in options]
|
||||||
|
|
||||||
|
if show_ops:
|
||||||
|
op_text = '|'.join([f'&l&n{o}&L&N' if o == default else o for o in options])
|
||||||
|
printc(f'{prompt} ({op_text})')
|
||||||
|
else:
|
||||||
|
printc(f'{prompt} (default: {default})')
|
||||||
|
|
||||||
|
def find_selection(sel: str):
|
||||||
|
if not sel:
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Find exact match
|
||||||
|
if sel in lows:
|
||||||
|
return options[lows.index(sel)]
|
||||||
|
|
||||||
|
# Find starting abbreviation
|
||||||
|
for i, op in enumerate(lows):
|
||||||
|
if op.startswith(sel):
|
||||||
|
return options[i]
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
selection = input('> ').lower() or default
|
||||||
|
while not find_selection(selection):
|
||||||
|
print(f'Invalid selection! {selection} is not one of {"|".join(options)}')
|
||||||
|
selection = input('> ').lower() or default
|
||||||
|
|
||||||
|
print()
|
||||||
|
|
||||||
|
return find_selection(selection)
|
||||||
|
|
||||||
def term_size() -> tuple[int, int]:
|
def term_size() -> tuple[int, int]:
|
||||||
"""
|
"""
|
||||||
@@ -106,7 +149,7 @@ class ColorAlignment:
|
|||||||
# Add new colors
|
# Add new colors
|
||||||
if self.mode == 'horizontal':
|
if self.mode == 'horizontal':
|
||||||
colors = preset.with_length(len(lines))
|
colors = preset.with_length(len(lines))
|
||||||
asc = '\n'.join([l.replace(f'${{c{back}}}', colors[i].to_ansi()) + color('&r') for i, l in enumerate(lines)])
|
asc = '\n'.join([l.replace(f'${{c{back}}}', colors[i].to_ansi()) + color('&~&*') for i, l in enumerate(lines)])
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
@@ -121,9 +164,9 @@ class ColorAlignment:
|
|||||||
# Add new colors
|
# Add new colors
|
||||||
if self.mode == 'horizontal':
|
if self.mode == 'horizontal':
|
||||||
colors = preset.with_length(len(lines))
|
colors = preset.with_length(len(lines))
|
||||||
asc = '\n'.join([colors[i].to_ansi() + l + color('&r') for i, l in enumerate(lines)])
|
asc = '\n'.join([colors[i].to_ansi() + l + color('&~&*') for i, l in enumerate(lines)])
|
||||||
else:
|
else:
|
||||||
asc = '\n'.join(preset.color_text(line) + color('&r') for line in lines)
|
asc = '\n'.join(preset.color_text(line) + color('&~&*') for line in lines)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
preset = preset.unique_colors()
|
preset = preset.unique_colors()
|
||||||
@@ -185,7 +228,7 @@ def ensure_git_bash() -> Path:
|
|||||||
return def_path
|
return def_path
|
||||||
|
|
||||||
# Detect third-party git.exe in path
|
# Detect third-party git.exe in path
|
||||||
git_exe = shutil.which("git.exe") or shutil.which("git")
|
git_exe = shutil.which("bash") or shutil.which("git.exe") or shutil.which("git")
|
||||||
if git_exe is not None:
|
if git_exe is not None:
|
||||||
pth = Path(git_exe).parent
|
pth = Path(git_exe).parent
|
||||||
if (pth / r'bash.exe').is_file():
|
if (pth / r'bash.exe').is_file():
|
||||||
@@ -207,14 +250,17 @@ def ensure_git_bash() -> Path:
|
|||||||
|
|
||||||
# No installation found, download a portable installation
|
# No installation found, download a portable installation
|
||||||
print('Git installation not found. Git is required to use HyFetch/neofetch on Windows')
|
print('Git installation not found. Git is required to use HyFetch/neofetch on Windows')
|
||||||
print('Downloading a minimal portable package for Git...')
|
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':
|
||||||
from urllib.request import urlretrieve
|
print('Downloading a minimal portable package for Git...')
|
||||||
urlretrieve(MINGIT_URL, pkg_path)
|
from urllib.request import urlretrieve
|
||||||
print('Download finished! Extracting...')
|
urlretrieve(MINGIT_URL, pkg_path)
|
||||||
with zipfile.ZipFile(pkg_path, 'r') as zip_ref:
|
print('Download finished! Extracting...')
|
||||||
zip_ref.extractall(path)
|
with zipfile.ZipFile(pkg_path, 'r') as zip_ref:
|
||||||
print('Done!')
|
zip_ref.extractall(path)
|
||||||
return path / r'bin\bash.exe'
|
print('Done!')
|
||||||
|
return path / r'bin\bash.exe'
|
||||||
|
else:
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
|
||||||
def check_windows_cmd():
|
def check_windows_cmd():
|
||||||
@@ -290,25 +336,21 @@ def get_distro_name():
|
|||||||
return run_neofetch_cmd('ascii_distro_name', True)
|
return run_neofetch_cmd('ascii_distro_name', True)
|
||||||
|
|
||||||
|
|
||||||
def run(preset: ColorProfile, alignment: ColorAlignment, backend: BackendLiteral):
|
def run(asc: str, backend: BackendLiteral):
|
||||||
if backend == "neofetch":
|
if backend == "neofetch":
|
||||||
return run_neofetch(preset, alignment)
|
return run_neofetch(asc)
|
||||||
if backend == "fastfetch":
|
if backend == "fastfetch":
|
||||||
return run_fastfetch(preset, alignment)
|
return run_fastfetch(asc)
|
||||||
if backend == "fastfetch-old":
|
if backend == "fastfetch-old":
|
||||||
return run_fastfetch(preset, alignment, legacy=True)
|
return run_fastfetch(asc, legacy=True)
|
||||||
|
|
||||||
|
|
||||||
def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
def run_neofetch(asc: str):
|
||||||
"""
|
"""
|
||||||
Run neofetch with colors
|
Run neofetch with colors
|
||||||
|
|
||||||
:param preset: Color palette
|
:param asc: Ascii art
|
||||||
:param alignment: Color alignment settings
|
|
||||||
"""
|
"""
|
||||||
asc = get_distro_ascii()
|
|
||||||
asc = alignment.recolor_ascii(asc, preset)
|
|
||||||
|
|
||||||
# Escape backslashes here because backslashes are escaped in neofetch for printf
|
# Escape backslashes here because backslashes are escaped in neofetch for printf
|
||||||
asc = asc.replace('\\', '\\\\')
|
asc = asc.replace('\\', '\\\\')
|
||||||
|
|
||||||
@@ -322,17 +364,13 @@ def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
|
|||||||
run_neofetch_cmd(f'--ascii --source {path.absolute()} --ascii-colors')
|
run_neofetch_cmd(f'--ascii --source {path.absolute()} --ascii-colors')
|
||||||
|
|
||||||
|
|
||||||
def run_fastfetch(preset: ColorProfile, alignment: ColorAlignment, legacy: bool = False):
|
def run_fastfetch(asc: str, legacy: bool = False):
|
||||||
"""
|
"""
|
||||||
Run neofetch with colors
|
Run neofetch with colors
|
||||||
|
|
||||||
:param preset: Color palette
|
:param asc: Ascii art
|
||||||
:param alignment: Color alignment settings
|
|
||||||
:param legacy: Set true when using fastfetch < 1.8.0
|
:param legacy: Set true when using fastfetch < 1.8.0
|
||||||
"""
|
"""
|
||||||
asc = get_distro_ascii()
|
|
||||||
asc = alignment.recolor_ascii(asc, preset)
|
|
||||||
|
|
||||||
# Write temp file
|
# Write temp file
|
||||||
with TemporaryDirectory() as tmp_dir:
|
with TemporaryDirectory() as tmp_dir:
|
||||||
tmp_dir = Path(tmp_dir)
|
tmp_dir = Path(tmp_dir)
|
||||||
|
|||||||
+20
-2
@@ -83,12 +83,12 @@ class ColorProfile:
|
|||||||
for i, t in enumerate(txt):
|
for i, t in enumerate(txt):
|
||||||
if space_only and t != ' ':
|
if space_only and t != ' ':
|
||||||
if i > 0 and txt[i - 1] == ' ':
|
if i > 0 and txt[i - 1] == ' ':
|
||||||
result += '\033[0m'
|
result += '\033[39;49m'
|
||||||
result += t
|
result += t
|
||||||
else:
|
else:
|
||||||
result += colors[i].to_ansi(foreground=foreground) + t
|
result += colors[i].to_ansi(foreground=foreground) + t
|
||||||
|
|
||||||
result += '\033[0m'
|
result += '\033[39;49m'
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def lighten(self, multiplier: float) -> ColorProfile:
|
def lighten(self, multiplier: float) -> ColorProfile:
|
||||||
@@ -216,6 +216,14 @@ PRESETS: dict[str, ColorProfile] = {
|
|||||||
'#8EA6FF',
|
'#8EA6FF',
|
||||||
]),
|
]),
|
||||||
|
|
||||||
|
'omniromantic': ColorProfile([
|
||||||
|
'#FEC8E4',
|
||||||
|
'#FDA1DB',
|
||||||
|
'#89739A',
|
||||||
|
'#ABA7FE',
|
||||||
|
'#BFCEFF',
|
||||||
|
]),
|
||||||
|
|
||||||
# gay men sourced from https://www.flagcolorcodes.com/gay-men
|
# gay men sourced from https://www.flagcolorcodes.com/gay-men
|
||||||
'gay-men': ColorProfile([
|
'gay-men': ColorProfile([
|
||||||
'#078D70',
|
'#078D70',
|
||||||
@@ -542,6 +550,16 @@ PRESETS: dict[str, ColorProfile] = {
|
|||||||
'#7D2557'
|
'#7D2557'
|
||||||
]),
|
]),
|
||||||
|
|
||||||
|
'pangender': ColorProfile([
|
||||||
|
'#FFF798',
|
||||||
|
'#FEDDCD',
|
||||||
|
'#FFEBFB',
|
||||||
|
'#FFFFFF',
|
||||||
|
'#FFEBFB',
|
||||||
|
'#FEDDCD',
|
||||||
|
'#FFF798',
|
||||||
|
]),
|
||||||
|
|
||||||
'gendernonconforming1': ColorProfile(
|
'gendernonconforming1': ColorProfile(
|
||||||
ColorProfile([
|
ColorProfile([
|
||||||
'#50284d',
|
'#50284d',
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
|
|
||||||
version=7.3.7
|
version=7.3.8
|
||||||
|
|
||||||
# Fallback to a value of '5' for shells which support bash
|
# Fallback to a value of '5' for shells which support bash
|
||||||
# but do not set the 'BASH_' shell variables (osh).
|
# but do not set the 'BASH_' shell variables (osh).
|
||||||
@@ -38,7 +38,7 @@ shopt -s eval_unsafe_arith &>/dev/null
|
|||||||
sys_locale=${LANG:-C}
|
sys_locale=${LANG:-C}
|
||||||
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-${HOME}/.config}
|
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-${HOME}/.config}
|
||||||
PATH=$PATH:/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec
|
PATH=$PATH:/usr/xpg4/bin:/usr/sbin:/sbin:/usr/etc:/usr/libexec
|
||||||
reset='\e[0m'
|
reset='\e[39;22m'
|
||||||
shopt -s nocasematch extglob
|
shopt -s nocasematch extglob
|
||||||
|
|
||||||
# Speed up script by not using unicode.
|
# Speed up script by not using unicode.
|
||||||
@@ -834,34 +834,35 @@ image_source="auto"
|
|||||||
# Flag: --ascii_distro
|
# Flag: --ascii_distro
|
||||||
#
|
#
|
||||||
# NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy, Android, Antergos, antiX, AOSC OS,
|
# NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy, Android, Antergos, antiX, AOSC OS,
|
||||||
# AOSC OS/Retro, Aperio GNU/Linux, Aperture, Apricity, Arch, ArchBox, Archcraft, ARCHlabs,
|
# AOSC OS/Retro, Aperio GNU/Linux, Aperture, Apricity, Arch, ArchBox, Archcraft, archcraft_ascii,
|
||||||
# ArchMerge, ArchStrike, ArcoLinux, ArseLinux, Artix, Arya, Asahi, Aster, AsteroidOS, astOS,
|
# archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux, ArseLinux, Artix, Arya, Asahi,
|
||||||
# Bedrock, BigLinux, Bitrig, BlackArch, blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD,
|
# Aster, AsteroidOS, astOS, Bedrock, BigLinux, Bitrig, BlackArch, blackPanther, BLAG, BlankOn,
|
||||||
# BunsenLabs, CachyOS, Calculate, CalinixOS, Carbs, CBL-Mariner, CelOS, Center, CentOS, Chakra,
|
# BlueLight, Bodhi, bonsai, BSD, BunsenLabs, CachyOS, Calculate, CalinixOS, Carbs, CBL-Mariner,
|
||||||
# ChaletOS, Chapeau, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt,
|
# CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS,
|
||||||
# Condres, Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber, CutefishOS, CuteOS, CyberOS,
|
# ClearOS, Clover, Cobalt, Condres, Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
||||||
# dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DietPi, DracOS, DragonFly, Drauger,
|
# CutefishOS, CuteOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DietPi,
|
||||||
# Droidian, Elementary, Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux, Exherbo, Exodia
|
# DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS, Endless, Enso,
|
||||||
# Predator OS, Fedora, Feren, Finnix, Floflis, FreeBSD, FreeMiNT, Frugalware, Funtoo, GalliumOS,
|
# EuroLinux, Exherbo, Exodia Predator OS, Fedora, Feren, Finnix, Floflis, FreeBSD, FreeMiNT,
|
||||||
# Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix,
|
# Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU,
|
||||||
# Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS, Hyperbola, iglunix, instantOS, IRIX,
|
# GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS,
|
||||||
# Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu,
|
# Hyperbola, iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion,
|
||||||
# LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old,
|
# Korora, KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux
|
||||||
# Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS,
|
# Lite, Linux Mint, Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS,
|
||||||
# Maui, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune, NetBSD, Netrunner, Nitrux, NixOS,
|
# Mandriva, Manjaro, MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune,
|
||||||
# NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media Center, OpenBSD,
|
# NetBSD, Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, Obarun, OBRevenge, OmniOS, Open
|
||||||
# openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE Leap, openSUSE
|
# Source Media Center, OpenBSD, openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage,
|
||||||
# Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch, Pardus, Parrot,
|
# openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS Elbrus,
|
||||||
# Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Pisi, PNM Linux, Pop!_OS, Porteus,
|
# PacBSD, Parabola, parch, Pardus, Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
|
||||||
# PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian,
|
# Peppermint, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox,
|
||||||
# Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan, Regata,
|
# PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star,
|
||||||
# Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Sasanqua, Scientific, semc,
|
# Redcore, Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage,
|
||||||
# Septor, Serene, SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware, SliTaz, SmartOS, Soda,
|
# Sailfish, SalentOS, Salient OS, Sasanqua, Scientific, semc, Septor, Serene, SharkLinux, ShastraOS,
|
||||||
# Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch,
|
# Siduction, SkiffOS, Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS,
|
||||||
# TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE,
|
# Stock Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch, TorizonCore, Trisquel, Twister, Ubuntu,
|
||||||
# Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu-GNOME, ubuntu_old02, Ultramarine Linux,
|
# Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu
|
||||||
# Univalent, Univention, Uos, UrukOS, uwuntu, Vanilla, Venom, VNux, Void, VzLinux, wii-linux-ngx,
|
# Touch, Ubuntu-GNOME, ubuntu_old02, Ultramarine Linux, Univalent, Univention, Uos, UrukOS, uwuntu,
|
||||||
# Windows, Windows 10, Windows 11, XFerience, Xubuntu, yiffOS, Zorin have ascii logos.
|
# Vanilla, Venom, VNux, Void, VzLinux, wii-linux-ngx, Windows, Windows 10, Windows 11, XFerience,
|
||||||
|
# Xubuntu, yiffOS, Zorin have ascii logos.
|
||||||
|
|
||||||
# NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu have 'old' logo variants, use
|
# NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu have 'old' logo variants, use
|
||||||
# {distro}_old to use them.
|
# {distro}_old to use them.
|
||||||
@@ -1187,6 +1188,12 @@ get_distro() {
|
|||||||
elif [[ -f /etc/vzlinux-release ]]; then
|
elif [[ -f /etc/vzlinux-release ]]; then
|
||||||
distro='VzLinux'
|
distro='VzLinux'
|
||||||
|
|
||||||
|
# Chrome OS doesn't conform to the /etc/*-release standard.
|
||||||
|
# While the file is a series of variables they can't be sourced
|
||||||
|
# by the shell since the values aren't quoted.
|
||||||
|
elif grep -q CHROMEOS /etc/lsb-release; then
|
||||||
|
distro='Chrome OS'
|
||||||
|
|
||||||
elif type -p guix >/dev/null; then
|
elif type -p guix >/dev/null; then
|
||||||
case $distro_shorthand in
|
case $distro_shorthand in
|
||||||
on|tiny) distro="Guix System" ;;
|
on|tiny) distro="Guix System" ;;
|
||||||
@@ -1255,11 +1262,14 @@ get_distro() {
|
|||||||
distro='Chrome OS'
|
distro='Chrome OS'
|
||||||
|
|
||||||
elif [[ $(< /proc/version) == *chrome-bot* || -f /dev/cros_ec ]]; then
|
elif [[ $(< /proc/version) == *chrome-bot* || -f /dev/cros_ec ]]; then
|
||||||
|
# gets chrome os version from /etc/lsb-release.
|
||||||
|
# totally not written by chatgpt :trolley:
|
||||||
|
cros_version=$(grep -oE 'CHROMEOS_RELEASE_CHROME_MILESTONE=([0-9]+)' /etc/lsb-release | cut -d= -f2)
|
||||||
[[ $distro != *Chrome* ]] &&
|
[[ $distro != *Chrome* ]] &&
|
||||||
case $distro_shorthand in
|
case $distro_shorthand in
|
||||||
on) distro="Chrome OS $distro" ;;
|
on) distro="Chrome OS $cros_version" ;;
|
||||||
tiny) distro="Chrome OS" ;;
|
tiny) distro="Chrome OS" ;;
|
||||||
*) distro="Chrome OS $distro" ;;
|
*) distro="Chrome OS $cros_version $distro" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1552,6 +1562,7 @@ get_model() {
|
|||||||
"iPhone OS")
|
"iPhone OS")
|
||||||
case $kernel_machine in
|
case $kernel_machine in
|
||||||
iPad1,1): "iPad" ;;
|
iPad1,1): "iPad" ;;
|
||||||
|
iPad1,2): "iPad 3G" ;;
|
||||||
iPad2,[1-4]): "iPad 2" ;;
|
iPad2,[1-4]): "iPad 2" ;;
|
||||||
iPad3,[1-3]): "iPad 3" ;;
|
iPad3,[1-3]): "iPad 3" ;;
|
||||||
iPad3,[4-6]): "iPad 4" ;;
|
iPad3,[4-6]): "iPad 4" ;;
|
||||||
@@ -1560,20 +1571,25 @@ get_model() {
|
|||||||
iPad7,1[1-2]): "iPad 7" ;;
|
iPad7,1[1-2]): "iPad 7" ;;
|
||||||
iPad11,[6-7]): "iPad 8" ;;
|
iPad11,[6-7]): "iPad 8" ;;
|
||||||
iPad12,[1-2]): "iPad 9" ;;
|
iPad12,[1-2]): "iPad 9" ;;
|
||||||
|
iPad13,1[8-9]): "iPad 10" ;;
|
||||||
iPad4,[1-3]): "iPad Air" ;;
|
iPad4,[1-3]): "iPad Air" ;;
|
||||||
iPad5,[3-4]): "iPad Air 2" ;;
|
iPad5,[3-4]): "iPad Air 2" ;;
|
||||||
iPad11,[3-4]): "iPad Air 3" ;;
|
iPad11,[3-4]): "iPad Air 3" ;;
|
||||||
iPad13,[1-2]): "iPad Air 4";;
|
iPad13,[1-2]): "iPad Air 4" ;;
|
||||||
iPad6,[7-8]): "iPad Pro (12.9 Inch)" ;;
|
iPad13,1[6-7]): "iPad Air 5" ;;
|
||||||
iPad6,[3-4]): "iPad Pro (9.7 Inch)" ;;
|
iPad6,[7-8]): "iPad Pro 12.9-inch" ;;
|
||||||
iPad7,[1-2]): "iPad Pro 2 (12.9 Inch)" ;;
|
iPad6,[3-4]): "iPad Pro 9.7-inch" ;;
|
||||||
iPad7,[3-4]): "iPad Pro (10.5 Inch)" ;;
|
iPad7,[1-2]): "iPad Pro 12.9-inch (2nd generation)" ;;
|
||||||
iPad8,[1-4]): "iPad Pro (11 Inch)" ;;
|
iPad7,[3-4]): "iPad Pro 10.5-inch" ;;
|
||||||
iPad8,[5-8]): "iPad Pro 3 (12.9 Inch)" ;;
|
iPad8,[1-4]): "iPad Pro 11-inch" ;;
|
||||||
iPad8,9 | iPad8,10): "iPad Pro 4 (11 Inch)" ;;
|
iPad8,[5-8]): "iPad Pro 12.9-inch (3rd generation)" ;;
|
||||||
iPad8,1[1-2]): "iPad Pro 4 (12.9 Inch)" ;;
|
iPad8,9 | iPad8,10): "iPad Pro 11-inch (2nd generation)" ;;
|
||||||
iPad13,[4-7]): "iPad Pro 5 (11 Inch)" ;;
|
iPad8,1[1-2]): "iPad Pro 12.9-inch (4th generation)" ;;
|
||||||
iPad13,8 | iPad13,11): "iPad Pro 5 (12.9 Inch)" ;;
|
iPad13,[4-7]): "iPad Pro 11-inch (3rd generation)" ;;
|
||||||
|
iPad13,[8-9]): "iPad Pro 12.9-inch (5th generation)" ;;
|
||||||
|
iPad13,1[0-1]): "iPad Pro 12.9-inch (5th generation)" ;;
|
||||||
|
iPad14,[3-4]): "iPad Pro 11-inch (4th generation)" ;;
|
||||||
|
iPad14,[5-6]): "iPad Pro 12.9-inch (6th generation)" ;;
|
||||||
iPad2,[5-7]): "iPad mini" ;;
|
iPad2,[5-7]): "iPad mini" ;;
|
||||||
iPad4,[4-6]): "iPad mini 2" ;;
|
iPad4,[4-6]): "iPad mini 2" ;;
|
||||||
iPad4,[7-9]): "iPad mini 3" ;;
|
iPad4,[7-9]): "iPad mini 3" ;;
|
||||||
@@ -1614,13 +1630,18 @@ get_model() {
|
|||||||
iPhone14,3): "iPhone 13 Pro Max" ;;
|
iPhone14,3): "iPhone 13 Pro Max" ;;
|
||||||
iPhone14,4): "iPhone 13 Mini" ;;
|
iPhone14,4): "iPhone 13 Mini" ;;
|
||||||
iPhone14,5): "iPhone 13" ;;
|
iPhone14,5): "iPhone 13" ;;
|
||||||
|
iPhone14,6): "iPhone SE 2022" ;;
|
||||||
|
iPhone14,7): "iPhone 14" ;;
|
||||||
|
iPhone14,8): "iPhone 14 Plus" ;;
|
||||||
|
iPhone15,2): "iPhone 14 Pro" ;;
|
||||||
|
iPhone15,3): "iPhone 14 Pro Max" ;;
|
||||||
|
|
||||||
iPod1,1): "iPod touch" ;;
|
iPod1,1): "iPod touch" ;;
|
||||||
ipod2,1): "iPod touch 2G" ;;
|
iPod2,1): "iPod touch 2G" ;;
|
||||||
ipod3,1): "iPod touch 3G" ;;
|
iPod3,1): "iPod touch 3G" ;;
|
||||||
ipod4,1): "iPod touch 4G" ;;
|
iPod4,1): "iPod touch 4G" ;;
|
||||||
ipod5,1): "iPod touch 5G" ;;
|
iPod5,1): "iPod touch 5G" ;;
|
||||||
ipod7,1): "iPod touch 6G" ;;
|
iPod7,1): "iPod touch 6G" ;;
|
||||||
iPod9,1): "iPod touch 7G" ;;
|
iPod9,1): "iPod touch 7G" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -1871,6 +1892,10 @@ get_packages() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# OS-independent package managers.
|
||||||
|
has pipx && tot pipx list --short
|
||||||
|
|
||||||
|
# OS-specific package managers.
|
||||||
case $os in
|
case $os in
|
||||||
Linux|BSD|"iPhone OS"|Solaris|illumos)
|
Linux|BSD|"iPhone OS"|Solaris|illumos)
|
||||||
# Package Manager Programs.
|
# Package Manager Programs.
|
||||||
@@ -2635,7 +2660,7 @@ get_cpu() {
|
|||||||
cpu="$(awk -F':' '/Hardware/ {print $2; exit}' "$cpu_file")"
|
cpu="$(awk -F':' '/Hardware/ {print $2; exit}' "$cpu_file")"
|
||||||
else
|
else
|
||||||
# ARM linux displays binary model code in cpuinfo, which needs to be decoded with lscpu
|
# ARM linux displays binary model code in cpuinfo, which needs to be decoded with lscpu
|
||||||
if ! [[ -x "$(command -v python)" ]]; then
|
if ! command -v python3 &> /dev/null; then
|
||||||
cpu="$(lscpu | awk -F': ' '/Vendor ID/ {print $2; exit}' ) $(lscpu | awk -F': ' '/Model name/ {print $2; exit}')"
|
cpu="$(lscpu | awk -F': ' '/Vendor ID/ {print $2; exit}' ) $(lscpu | awk -F': ' '/Model name/ {print $2; exit}')"
|
||||||
else
|
else
|
||||||
# Sometimes there are multiple CPU models (e.g. RK3399 has 4 A53 and 2 A72 cores)
|
# Sometimes there are multiple CPU models (e.g. RK3399 has 4 A53 and 2 A72 cores)
|
||||||
@@ -2647,7 +2672,8 @@ from subprocess import check_output
|
|||||||
def find(lines, label):
|
def find(lines, label):
|
||||||
for ln in lines:
|
for ln in lines:
|
||||||
if ln.strip().startswith(label):
|
if ln.strip().startswith(label):
|
||||||
return ln.split(label)[-1].strip()
|
t = ln.split(label)[-1].strip()
|
||||||
|
return None if t == '-' else t
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@@ -2662,8 +2688,13 @@ if __name__ == '__main__':
|
|||||||
for model_desc in lscpu.split('Model name:'):
|
for model_desc in lscpu.split('Model name:'):
|
||||||
lines = model_desc.split('\n')
|
lines = model_desc.split('\n')
|
||||||
model = lines[0].strip()
|
model = lines[0].strip()
|
||||||
cores = int(find(lines, 'Core(s) per socket:') or "-1")
|
|
||||||
cores *= int(find(lines, 'Socket(s):') or "1")
|
cores = find(lines, 'Core(s) per socket:') or find(lines, 'Core(s) per cluster:')
|
||||||
|
if cores is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
cores = int(cores)
|
||||||
|
cores *= int(find(lines, 'Socket(s):') or find(lines, 'Cluster(s):') or "1")
|
||||||
if cores == -1:
|
if cores == -1:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -2674,7 +2705,7 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
print('\n'.join(cpus))
|
print('\n'.join(cpus))
|
||||||
END
|
END
|
||||||
tmp_cpus=$(python -c "$py_script")
|
tmp_cpus=$(python3 -c "$py_script")
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
prin "${subtitle:+${subtitle}}" "$line"
|
prin "${subtitle:+${subtitle}}" "$line"
|
||||||
done <<< "$tmp_cpus"
|
done <<< "$tmp_cpus"
|
||||||
@@ -2803,12 +2834,22 @@ END
|
|||||||
"iPhone10,"[1-6]): "Apple A11 Bionic (6) @ 2.39GHz" ;;
|
"iPhone10,"[1-6]): "Apple A11 Bionic (6) @ 2.39GHz" ;;
|
||||||
"iPhone11,"[2468] | "iPad11,"[1-4] | "iPad11,"[6-7]): "Apple A12 Bionic (6) @ 2.49GHz" ;;
|
"iPhone11,"[2468] | "iPad11,"[1-4] | "iPad11,"[6-7]): "Apple A12 Bionic (6) @ 2.49GHz" ;;
|
||||||
"iPhone12,"[1358]): "Apple A13 Bionic (6) @ 2.65GHz" ;;
|
"iPhone12,"[1358]): "Apple A13 Bionic (6) @ 2.65GHz" ;;
|
||||||
"iPhone13,"[1-4] | "iPad13,"[1-2]): "Apple A14 Bionic (6) @ 3.00Ghz" ;;
|
"iPhone13,"[1-4] | "iPad13,"[1-2]): "Apple A14 Bionic (6) @ 3.00GHz" ;;
|
||||||
|
"iPhone14,"[2-8]): "Apple A15 Bionic (6) @ 3.23GHz" ;;
|
||||||
|
"iPhone15,"[2-3]): "Apple A16 Bionic (6) @ 3.46GHz" ;;
|
||||||
|
"iPad12,"[1-2]): "Apple A13 Bionic (6) @ 2.65GHz" ;;
|
||||||
|
"iPad13,"[4-9]): "Apple M1 (8) @ 3.19GHz" ;;
|
||||||
|
"iPad13,1"[0-1]): "Apple M1 (8) @ 3.19GHz" ;;
|
||||||
|
"iPad13,1"[6-7]): "Apple M1 (8) @ 3.19GHz" ;;
|
||||||
|
"iPad13,1"[8-9]): "Apple A14 Bionic (6) @ 3.00GHz" ;;
|
||||||
|
"iPad14,"[1-2]): "Apple A15 Bionic (6) @ 3.23GHz" ;;
|
||||||
|
"iPad14,"[3-6]): "Apple M2 (8) @ 3.49GHz" ;;
|
||||||
|
|
||||||
"iPod2,1"): "Samsung S5L8720 (1) @ 533MHz" ;;
|
"iPod2,1"): "Samsung S5L8720 (1) @ 533MHz" ;;
|
||||||
"iPod3,1"): "Samsung S5L8922 (1) @ 600MHz" ;;
|
"iPod3,1"): "Samsung S5L8922 (1) @ 600MHz" ;;
|
||||||
"iPod7,1"): "Apple A8 (2) @ 1.1GHz" ;;
|
"iPod7,1"): "Apple A8 (2) @ 1.1GHz" ;;
|
||||||
"iPad1,1"): "Apple A4 (1) @ 1GHz" ;;
|
"iPod9,1"): "Apple A10 Fusion (4) @ 1.64GHz" ;;
|
||||||
|
"iPad1,"[1-2]): "Apple A4 (1) @ 1GHz" ;;
|
||||||
"iPad2,"[1-7]): "Apple A5 (2) @ 1GHz" ;;
|
"iPad2,"[1-7]): "Apple A5 (2) @ 1GHz" ;;
|
||||||
"iPad3,"[1-3]): "Apple A5X (2) @ 1GHz" ;;
|
"iPad3,"[1-3]): "Apple A5X (2) @ 1GHz" ;;
|
||||||
"iPad3,"[4-6]): "Apple A6X (2) @ 1.4GHz" ;;
|
"iPad3,"[4-6]): "Apple A6X (2) @ 1.4GHz" ;;
|
||||||
@@ -3125,7 +3166,7 @@ get_gpu() {
|
|||||||
"iPhone OS")
|
"iPhone OS")
|
||||||
case $kernel_machine in
|
case $kernel_machine in
|
||||||
"iPhone1,"[1-2]): "PowerVR MBX Lite 3D" ;;
|
"iPhone1,"[1-2]): "PowerVR MBX Lite 3D" ;;
|
||||||
"iPhone2,1" | "iPhone3,"[1-3] | "iPod3,1" | "iPod4,1" | "iPad1,1"):
|
"iPhone2,1" | "iPhone3,"[1-3] | "iPod3,1" | "iPod4,1" | "iPad1,"[1-2]):
|
||||||
"PowerVR SGX535"
|
"PowerVR SGX535"
|
||||||
;;
|
;;
|
||||||
"iPhone4,1" | "iPad2,"[1-7] | "iPod5,1"): "PowerVR SGX543MP2" ;;
|
"iPhone4,1" | "iPad2,"[1-7] | "iPod5,1"): "PowerVR SGX543MP2" ;;
|
||||||
@@ -3135,14 +3176,19 @@ get_gpu() {
|
|||||||
"iPhone8,"[1-4] | "iPad6,1"[12]): "PowerVR GT7600" ;;
|
"iPhone8,"[1-4] | "iPad6,1"[12]): "PowerVR GT7600" ;;
|
||||||
"iPhone9,"[1-4] | "iPad7,"[5-6]): "PowerVR GT7600 Plus" ;;
|
"iPhone9,"[1-4] | "iPad7,"[5-6]): "PowerVR GT7600 Plus" ;;
|
||||||
"iPhone10,"[1-6]): "Apple Designed GPU (A11)" ;;
|
"iPhone10,"[1-6]): "Apple Designed GPU (A11)" ;;
|
||||||
"iPhone11,"[2468] | "iPad11,"[67]): "Apple Designed GPU (A12)" ;;
|
"iPhone11,"[2468] | "iPad11,"[123467]): "Apple Designed GPU (A12)" ;;
|
||||||
"iPhone12,"[1358]): "Apple Designed GPU (A13)" ;;
|
"iPhone12,"[1358] | "iPad12,"[12]): "Apple Designed GPU (A13)" ;;
|
||||||
"iPhone13,"[1234] | "iPad13,"[12]): "Apple Designed GPU (A14)" ;;
|
"iPhone13,"[1234] | "iPad13,"[12]): "Apple Designed GPU (A14)" ;;
|
||||||
|
|
||||||
"iPad3,"[1-3]): "PowerVR SGX534MP4" ;;
|
"iPad3,"[1-3]): "PowerVR SGX534MP4" ;;
|
||||||
"iPad3,"[4-6]): "PowerVR SGX554MP4" ;;
|
"iPad3,"[4-6]): "PowerVR SGX554MP4" ;;
|
||||||
"iPad5,"[3-4]): "PowerVR GXA6850" ;;
|
"iPad5,"[3-4]): "PowerVR GXA6850" ;;
|
||||||
"iPad6,"[3-8]): "PowerVR 7XT" ;;
|
"iPad6,"[3-8]): "PowerVR 7XT" ;;
|
||||||
|
"iPad8,"[1-8]): "Apple Designed GPU (A12X)" ;;
|
||||||
|
"iPad8,9" | "iPad8,1"[0-2]): "Apple Designed GPU (A12Z)" ;;
|
||||||
|
"iPad13,"[4-9] | "iPad13,1"[0-1]): "Apple Designed GPU (M1)" ;;
|
||||||
|
"iPad14,"[1-2]): "Apple Designed GPU (A15)" ;;
|
||||||
|
"iPad14,"[3-6]): "Apple Designed GPU (M2)" ;;
|
||||||
|
|
||||||
"iPod1,1" | "iPod2,1")
|
"iPod1,1" | "iPod2,1")
|
||||||
: "PowerVR MBX Lite"
|
: "PowerVR MBX Lite"
|
||||||
@@ -4799,16 +4845,20 @@ get_cols() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Workaround for bright background colors in the Linux framebuffer console.
|
||||||
|
(( block_range[1] < 16 )) && [[ "$TERM" == "linux" ]] &&
|
||||||
|
printf -v blocks2 '\e[5m%b\e[25m' "$blocks2"
|
||||||
|
|
||||||
# Convert height into spaces.
|
# Convert height into spaces.
|
||||||
printf -v block_spaces "%${block_height}s"
|
printf -v block_spaces "%${block_height}s"
|
||||||
|
|
||||||
# Convert the spaces into rows of blocks.
|
# Convert the spaces into rows of blocks.
|
||||||
if [[ $BASH_VERSION == 3* ]]; then
|
if [[ $BASH_VERSION == 3* ]]; then
|
||||||
[[ "$blocks" ]] && cols+="${block_spaces// /${blocks}[mnl}"
|
[[ "$blocks" ]] && cols+="${block_spaces// /${blocks}[39;49mnl}"
|
||||||
[[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}[mnl}"
|
[[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}[39;49mnl}"
|
||||||
else
|
else
|
||||||
[[ "$blocks" ]] && cols+="${block_spaces// /${blocks}\[mnl}"
|
[[ "$blocks" ]] && cols+="${block_spaces// /${blocks}\[39;49mnl}"
|
||||||
[[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}\[mnl}"
|
[[ "$blocks2" ]] && cols+="${block_spaces// /${blocks2}\[39;49mnl}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Determine the horizontal offset of the blocks.
|
# Determine the horizontal offset of the blocks.
|
||||||
@@ -5523,12 +5573,8 @@ trim_quotes() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
strip_sequences() {
|
strip_sequences() {
|
||||||
strip="${1//$'\e['3[0-9]m}"
|
strip="${1//$'\e'\[*([0-9])*(;*([0-9]))m}"
|
||||||
strip="${strip//$'\e['[0-9]m}"
|
strip="${strip//\\e\[*([0-9])*(;*([0-9]))m}"
|
||||||
strip="${strip//\\e\[[0-9]m}"
|
|
||||||
strip="${strip//$'\e['38\;5\;[0-9]m}"
|
|
||||||
strip="${strip//$'\e['38\;5\;[0-9][0-9]m}"
|
|
||||||
strip="${strip//$'\e['38\;5\;[0-9][0-9][0-9]m}"
|
|
||||||
|
|
||||||
printf '%s\n' "$strip"
|
printf '%s\n' "$strip"
|
||||||
}
|
}
|
||||||
@@ -5587,8 +5633,8 @@ set_text_colors() {
|
|||||||
|
|
||||||
color() {
|
color() {
|
||||||
case $1 in
|
case $1 in
|
||||||
[0-6]) printf '%b\e[3%sm' "$reset" "$1" ;;
|
[0-7]) printf '%b\e[3%sm' "$reset" "$1" ;;
|
||||||
7 | "fg") printf '\e[37m%b' "$reset" ;;
|
"fg") printf '%b' "$reset" ;;
|
||||||
"#"*)
|
"#"*)
|
||||||
local rgb="${1//#}"
|
local rgb="${1//#}"
|
||||||
rgb="$((0x$rgb))"
|
rgb="$((0x$rgb))"
|
||||||
@@ -6031,47 +6077,47 @@ ASCII:
|
|||||||
|
|
||||||
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
||||||
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
||||||
Aperture, Apricity, Arch, ArchBox, Archcraft, ARCHlabs, ArchMerge,
|
Aperture, Apricity, Arch, ArchBox, Archcraft, archcraft_ascii,
|
||||||
ArchStrike, ArcoLinux, ArseLinux, Artix, Arya, Asahi, Aster,
|
archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux,
|
||||||
AsteroidOS, astOS, Bedrock, BigLinux, Bitrig, BlackArch,
|
ArseLinux, Artix, Arya, Asahi, Aster, AsteroidOS, astOS, Bedrock,
|
||||||
blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD,
|
BigLinux, Bitrig, BlackArch, blackPanther, BLAG, BlankOn, BlueLight,
|
||||||
BunsenLabs, CachyOS, Calculate, CalinixOS, Carbs, CBL-Mariner,
|
Bodhi, bonsai, BSD, BunsenLabs, CachyOS, Calculate, CalinixOS,
|
||||||
CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS,
|
Carbs, CBL-Mariner, CelOS, Center, CentOS, Chakra, ChaletOS,
|
||||||
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres,
|
Chapeau, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS,
|
||||||
Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
Clover, Cobalt, Condres, Container Linux by CoreOS, CRUX, Crystal
|
||||||
CutefishOS, CuteOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin,
|
Linux, Cucumber, CutefishOS, CuteOS, CyberOS, dahlia, DarkOs,
|
||||||
DesaOS, Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian,
|
Darwin, Debian, Deepin, DesaOS, Devuan, DietPi, DracOS, DragonFly,
|
||||||
Elementary, Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux,
|
Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS,
|
||||||
Exherbo, Exodia Predator OS, Fedora, Feren, Finnix, Floflis,
|
Endless, Enso, EuroLinux, Exherbo, Exodia Predator OS, Fedora,
|
||||||
FreeBSD, FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo,
|
Feren, Finnix, Floflis, FreeBSD, FreeMiNT, Frugalware, Funtoo,
|
||||||
GhostBSD, glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS,
|
GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU,
|
||||||
Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid,
|
GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ,
|
||||||
HydroOS, Hyperbola, iglunix, instantOS, IRIX, Itc, januslinux,
|
Hash, Huayra, Hybrid, HydroOS, Hyperbola, iglunix, instantOS, IRIX,
|
||||||
Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora, KrassOS, KSLinux,
|
Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora,
|
||||||
Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux,
|
KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC,
|
||||||
Linux Lite, Linux Mint, Linux Mint Old, Live Raizo, LMDE, Lubuntu,
|
Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old, Live Raizo,
|
||||||
Lunar, mac, Mageia, MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS,
|
LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS, Mandriva, Manjaro,
|
||||||
Maui, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune, NetBSD,
|
MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS,
|
||||||
Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, Obarun,
|
Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD, Nurunner,
|
||||||
OBRevenge, OmniOS, Open Source Media Center, OpenBSD, openEuler,
|
NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media Center, OpenBSD,
|
||||||
OpenIndiana, openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE
|
openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage,
|
||||||
Leap, openSUSE Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS
|
openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt, OPNsense,
|
||||||
Elbrus, PacBSD, Parabola, parch, Pardus, Parrot, Parsix, PCBSD,
|
Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch, Pardus, Parrot,
|
||||||
PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Pisi, PNM Linux,
|
Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint,
|
||||||
Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS,
|
PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis
|
||||||
Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian,
|
SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt,
|
||||||
ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan,
|
Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore,
|
||||||
Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish,
|
Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, rocky, Rosa,
|
||||||
SalentOS, Sasanqua, Scientific, semc, Septor, Serene, SharkLinux,
|
Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Sasanqua,
|
||||||
ShastraOS, Siduction, SkiffOS, Slackware, SliTaz, SmartOS, Soda,
|
Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction,
|
||||||
Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin,
|
SkiffOS, Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage,
|
||||||
SunOS, SwagArch, t2, Tails, TeArch, TorizonCore, Trisquel, Twister,
|
Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2,
|
||||||
Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE,
|
Tails, TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu
|
||||||
Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu-GNOME,
|
Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio,
|
||||||
ubuntu_old02, Ultramarine Linux, Univalent, Univention, Uos, UrukOS,
|
Ubuntu Sway, Ubuntu Touch, Ubuntu-GNOME, ubuntu_old02, Ultramarine
|
||||||
uwuntu, Vanilla, Venom, VNux, Void, VzLinux, wii-linux-ngx, Windows,
|
Linux, Univalent, Univention, Uos, UrukOS, uwuntu, Vanilla, Venom,
|
||||||
Windows 10, Windows 11, XFerience, Xubuntu, yiffOS, Zorin have ascii
|
VNux, Void, VzLinux, wii-linux-ngx, Windows, Windows 10, Windows 11,
|
||||||
logos.
|
XFerience, Xubuntu, yiffOS, Zorin have ascii logos.
|
||||||
|
|
||||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||||
have 'old' logo variants, use {distro}_old to use them.
|
have 'old' logo variants, use {distro}_old to use them.
|
||||||
@@ -6994,6 +7040,58 @@ dhhyys+/-`
|
|||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"archcraft_ascii"*)
|
||||||
|
set_colors 6 1 2 3 4 5
|
||||||
|
read -rd '' ascii_data <<'EOF'
|
||||||
|
${c1} -o\
|
||||||
|
:ooo:
|
||||||
|
.ooooo.
|
||||||
|
ooooooo.
|
||||||
|
+oooooooo.
|
||||||
|
-oooooooooo.
|
||||||
|
--:-+oooooooo.
|
||||||
|
yooo+=+sooooooo.
|
||||||
|
yoooooosooooooooo.
|
||||||
|
y+ooooooooooooooooo.
|
||||||
|
yoooooooooooooooooooo`
|
||||||
|
yoooooo+oo= :oo++ooooo`
|
||||||
|
:oooooo. +ooooo-
|
||||||
|
-ooooooo. .::. +ooosoo=
|
||||||
|
-oooooo` .oooo` +os-=o=
|
||||||
|
=ooooooo=: `oo+ :=ooo=--`.
|
||||||
|
+ooooooooos. .=sooooooo+-
|
||||||
|
.+osossos+-` `-+osososs+.
|
||||||
|
:sss+=-:` `:-=+ssss:
|
||||||
|
:=-:` `-=+:
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
|
"archcraft_minimal"*)
|
||||||
|
set_colors 6 1 2 3 4 5
|
||||||
|
read -rd '' ascii_data <<'EOF'
|
||||||
|
${c1} ⢰⡆
|
||||||
|
⢠⣿⣿⡄
|
||||||
|
⢀⣾⣿⣿⣿⡀
|
||||||
|
⣼⣿⣿⣿⣿⣷⡀
|
||||||
|
⣼⣿⣿⣿⣿⣿⣿⣷
|
||||||
|
⢼⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣤⣈⠻⢿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣿⣿⣿⣿⣮⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
|
||||||
|
⣼⣿⣿⣿⣿⣿⡿⣿⣿⡟ ⠸⣿⣿⡿⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⣼⣿⣿⣿⣿⣿⡏ ⠈⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⢀⣼⣿⣿⣿⣿⣿⣿⡗ ⢀⣠⣤⣀ ⠸⣿⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⢀⣾⣿⣿⣿⣿⣿⡏⠁ ⢠⣿⣿⣿⣿⡇ ⢙⣿⣿⣻⠿⣿⣷⡀
|
||||||
|
⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀ ⠻⣿⣿⡿⠃ ⢀⣼⣿⣿⣿⣿⣦⣌⠙
|
||||||
|
⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏ ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀
|
||||||
|
⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁ ⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄
|
||||||
|
⣠⣿⣿⣿⣿⠿⠛⠋⠁ ⠉⠙⠻⢿⣿⣿⣿⣿⣆
|
||||||
|
⡰⠟⠛⠉⠁ ⠉⠙⠛⠿⢆
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
"Archcraft"*)
|
"Archcraft"*)
|
||||||
set_colors 6 1 2 3 4 5
|
set_colors 6 1 2 3 4 5
|
||||||
read -rd '' ascii_data <<'EOF'
|
read -rd '' ascii_data <<'EOF'
|
||||||
@@ -11593,6 +11691,20 @@ ${c2} !0m `6Kv
|
|||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"PikaOS"*)
|
||||||
|
set_colors 11
|
||||||
|
read -rd '' ascii_data <<'EOF'
|
||||||
|
${c1} /🐦🐦🐦$ /🐦/🐦 /🐦🐦🐦 /🐦🐦🐦
|
||||||
|
| 🐦__ $|__| 🐦 /🐦__ 🐦/🐦__ 🐦
|
||||||
|
| 🐦 \ 🐦/$| 🐦 /🐦 /🐦🐦🐦| 🐦 \ $| 🐦 \__/
|
||||||
|
| 🐦🐦🐦$| $| 🐦 /🐦/|____ $| 🐦 | $| 🐦🐦🐦
|
||||||
|
| 🐦____/| $| 🐦🐦🐦/ /🐦🐦🐦| 🐦 | 🐦\____ 🐦
|
||||||
|
| 🐦 | $| 🐦_ 🐦 /🐦__ $| 🐦 | 🐦/🐦 \ 🐦
|
||||||
|
| 🐦 | $| 🐦 \ $| 🐦🐦🐦| 🐦🐦🐦| 🐦🐦🐦/
|
||||||
|
|__/ |__|__/ \__/\_______/\______/ \______/ .
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
"PNM Linux"* | "WHPNM Linux"*)
|
"PNM Linux"* | "WHPNM Linux"*)
|
||||||
set_colors 33 9 15 202
|
set_colors 33 9 15 202
|
||||||
read -rd '' ascii_data <<'EOF'
|
read -rd '' ascii_data <<'EOF'
|
||||||
@@ -12436,6 +12548,32 @@ ${c1}
|
|||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"Salient OS"* | "SalientOS"* | "salientos"*)
|
||||||
|
set_colors 6 6 7 1
|
||||||
|
read -rd '' ascii_data <<'EOF'
|
||||||
|
${c1} 00xxxx0
|
||||||
|
00xxxxxx0
|
||||||
|
0xxxxxxxxx 000000
|
||||||
|
0xxxxxxxxxx xxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxx0 xxxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxx0 0xxxxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxx0 0xxxxxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx0
|
||||||
|
xxxxxxxxxxxxxxxx0 0xxxxxxxxxxxxxxxx
|
||||||
|
xxxxxxxxxxxxxxxxx 0xxxxxxxxxxxxxxx
|
||||||
|
xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx
|
||||||
|
xxxxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxx
|
||||||
|
0xxxxxxxxxxxxxxxxxx0 0xxxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxxxxx xxxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxxxx xxxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxxxxxx xxxxxxxxx0
|
||||||
|
0xxxxxxxxxxxx0 0xxxxxxx0
|
||||||
|
0xxxxxxx0 xxxxxx0
|
||||||
|
0xxx00
|
||||||
|
x00
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
"Scientific"*)
|
"Scientific"*)
|
||||||
set_colors 4 7 1
|
set_colors 4 7 1
|
||||||
read -rd '' ascii_data <<'EOF'
|
read -rd '' ascii_data <<'EOF'
|
||||||
@@ -13737,23 +13875,25 @@ EOF
|
|||||||
set_colors 11 15
|
set_colors 11 15
|
||||||
read -rd '' ascii_data <<'EOF'
|
read -rd '' ascii_data <<'EOF'
|
||||||
${c1}
|
${c1}
|
||||||
.----:
|
|
||||||
.-------.
|
.OO.
|
||||||
:---::----:
|
.OOOO.
|
||||||
.----::-----.
|
.OO${c2}II${c1}OO.
|
||||||
......... :----::-----: ..:::-::::..
|
IOOO${c2}II${c1}OOOI
|
||||||
.-----------------::------------------:
|
.OOOO${c2}II${c1}OOOO.
|
||||||
----::-----------::----------::::---:
|
............IOOOO${c2}II${c1}OOOOI............
|
||||||
-----:::--------::-------:::-------
|
OOOOOOOOOOOOOOOOOO${c2}II${c1}OOOOOOOOOOOOOOOOOO
|
||||||
:------::::--::...:::::---------:
|
OOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOOOOOOOOO${c2}II${c1}OOOO
|
||||||
.---------::.. ..:---------.
|
OOOOO${c2}III${c1}OOOOOOOO${c2}II${c1}OOOOOOOO${c2}III${c1}OOOOO
|
||||||
.::-----::.. .::----::.
|
OOOOOOO${c2}IIII${c1}OO${c2}I....I${c1}OO${c2}IIII${c1}OOOOOOO
|
||||||
.:------:.......:-------:
|
OOOOOOOOOO${c2}II.. ..II${c1}OOOOOOOOOO
|
||||||
.--------::::::::-:::-------.
|
OOOOOOO${c2}II. .II${c1}OOOOOOO
|
||||||
.-------::-----.:-----::------.
|
OOOOOO${c2}II:......:II${c1}OOOOOO
|
||||||
-----::------: :------::-----
|
OOOOOOOOO${c2}IIIIIIII${c1}OOOOOOOOO
|
||||||
:--::--------: .-------::---:
|
OOOOOO${c2}II${c1}OOOOOOOOOOOO${c2}II${c1}OOOOOO
|
||||||
:----------:: .:----------
|
OOOO${c2}II${c1}OOOOOOOI IOOOOOO${c2}II${c1}OOOO
|
||||||
|
IOO${c2}II${c1}OOOOOOOO: :OOOOOOOO${c2}II${c1}OOI
|
||||||
|
IOOOOOOOOOOII IIOOOOOOOOOOI
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
|
|||||||
+43
-43
@@ -1,7 +1,7 @@
|
|||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||||
.TH NEOFETCH "1" "February 2023" "Neofetch 7.3.7" "User Commands"
|
.TH NEOFETCH "1" "April 2023" "Neofetch 7.3.8" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
Neofetch \- manual page for Neofetch 7.3.7
|
Neofetch \- manual page for Neofetch 7.3.8
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B neofetch
|
.B neofetch
|
||||||
\fI\,func_name --option "value" --option "value"\/\fR
|
\fI\,func_name --option "value" --option "value"\/\fR
|
||||||
@@ -312,47 +312,47 @@ Which Distro's ascii art to print
|
|||||||
.TP
|
.TP
|
||||||
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
NOTE: AIX, AlmaLinux, Alpine, Alter, Amazon, AmogOS, Anarchy,
|
||||||
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
||||||
Aperture, Apricity, Arch, ArchBox, Archcraft, ARCHlabs, ArchMerge,
|
Aperture, Apricity, Arch, ArchBox, Archcraft, archcraft_ascii,
|
||||||
ArchStrike, ArcoLinux, ArseLinux, Artix, Arya, Asahi, Aster,
|
archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux,
|
||||||
AsteroidOS, astOS, Bedrock, BigLinux, Bitrig, BlackArch,
|
ArseLinux, Artix, Arya, Asahi, Aster, AsteroidOS, astOS, Bedrock,
|
||||||
blackPanther, BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD,
|
BigLinux, Bitrig, BlackArch, blackPanther, BLAG, BlankOn, BlueLight,
|
||||||
BunsenLabs, CachyOS, Calculate, CalinixOS, Carbs, CBL\-Mariner,
|
Bodhi, bonsai, BSD, BunsenLabs, CachyOS, Calculate, CalinixOS,
|
||||||
CelOS, Center, CentOS, Chakra, ChaletOS, Chapeau, ChonkySealOS,
|
Carbs, CBL\-Mariner, CelOS, Center, CentOS, Chakra, ChaletOS,
|
||||||
Chrom, Cleanjaro, Clear Linux OS, ClearOS, Clover, Cobalt, Condres,
|
Chapeau, ChonkySealOS, Chrom, Cleanjaro, Clear Linux OS, ClearOS,
|
||||||
Container Linux by CoreOS, CRUX, Crystal Linux, Cucumber,
|
Clover, Cobalt, Condres, Container Linux by CoreOS, CRUX, Crystal
|
||||||
CutefishOS, CuteOS, CyberOS, dahlia, DarkOs, Darwin, Debian, Deepin,
|
Linux, Cucumber, CutefishOS, CuteOS, CyberOS, dahlia, DarkOs,
|
||||||
DesaOS, Devuan, DietPi, DracOS, DragonFly, Drauger, Droidian,
|
Darwin, Debian, Deepin, DesaOS, Devuan, DietPi, DracOS, DragonFly,
|
||||||
Elementary, Elive, EncryptOS, EndeavourOS, Endless, Enso, EuroLinux,
|
Drauger, Droidian, Elementary, Elive, EncryptOS, EndeavourOS,
|
||||||
Exherbo, Exodia Predator OS, Fedora, Feren, Finnix, Floflis,
|
Endless, Enso, EuroLinux, Exherbo, Exodia Predator OS, Fedora,
|
||||||
FreeBSD, FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo,
|
Feren, Finnix, Floflis, FreeBSD, FreeMiNT, Frugalware, Funtoo,
|
||||||
GhostBSD, glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS,
|
GalliumOS, Garuda, Gentoo, GhostBSD, glaucus, gNewSense, GNOME, GNU,
|
||||||
Grombyang, Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid,
|
GoboLinux, GrapheneOS, Grombyang, Guix, Haiku, HamoniKR, HarDClanZ,
|
||||||
HydroOS, Hyperbola, iglunix, instantOS, IRIX, Itc, januslinux,
|
Hash, Huayra, Hybrid, HydroOS, Hyperbola, iglunix, instantOS, IRIX,
|
||||||
Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora, KrassOS, KSLinux,
|
Itc, januslinux, Kaisen, Kali, KaOS, KDE, Kibojoe, Kogaion, Korora,
|
||||||
Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux,
|
KrassOS, KSLinux, Kubuntu, LangitKetujuh, LaxerOS, LEDE, LibreELEC,
|
||||||
Linux Lite, Linux Mint, Linux Mint Old, Live Raizo, LMDE, Lubuntu,
|
Linspire, Linux, Linux Lite, Linux Mint, Linux Mint Old, Live Raizo,
|
||||||
Lunar, mac, Mageia, MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS,
|
LMDE, Lubuntu, Lunar, mac, Mageia, MagpieOS, Mandriva, Manjaro,
|
||||||
Maui, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune, NetBSD,
|
MassOS, MatuusOS, Maui, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS,
|
||||||
Netrunner, Nitrux, NixOS, NomadBSD, Nurunner, NuTyX, Obarun,
|
Neptune, NetBSD, Netrunner, Nitrux, NixOS, NomadBSD, Nurunner,
|
||||||
OBRevenge, OmniOS, Open Source Media Center, OpenBSD, openEuler,
|
NuTyX, Obarun, OBRevenge, OmniOS, Open Source Media Center, OpenBSD,
|
||||||
OpenIndiana, openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE
|
openEuler, OpenIndiana, openmamba, OpenMandriva, OpenStage,
|
||||||
Leap, openSUSE Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS
|
openSUSE, openSUSE Leap, openSUSE Tumbleweed, OpenWrt, OPNsense,
|
||||||
Elbrus, PacBSD, Parabola, parch, Pardus, Parrot, Parsix, PCBSD,
|
Oracle, orchid, OS Elbrus, PacBSD, Parabola, parch, Pardus, Parrot,
|
||||||
PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, Pisi, PNM Linux,
|
Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint,
|
||||||
Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS,
|
PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus, PostMarketOS, Profelis
|
||||||
Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian,
|
SambaBOX, Proxmox, PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt,
|
||||||
ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan,
|
Quibian, Radix, Raspbian, ravynOS, Reborn OS, Red Star, Redcore,
|
||||||
Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish,
|
Redhat, Refracted Devuan, Regata, Regolith, RhaymOS, rocky, Rosa,
|
||||||
SalentOS, Sasanqua, Scientific, semc, Septor, Serene, SharkLinux,
|
Sabayon, sabotage, Sailfish, SalentOS, Salient OS, Sasanqua,
|
||||||
ShastraOS, Siduction, SkiffOS, Slackware, SliTaz, SmartOS, Soda,
|
Scientific, semc, Septor, Serene, SharkLinux, ShastraOS, Siduction,
|
||||||
Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin,
|
SkiffOS, Slackware, SliTaz, SmartOS, Soda, Solus, Source Mage,
|
||||||
SunOS, SwagArch, t2, Tails, TeArch, TorizonCore, Trisquel, Twister,
|
Sparky, Star, SteamOS, Stock Linux, Sulin, SunOS, SwagArch, t2,
|
||||||
Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE,
|
Tails, TeArch, TorizonCore, Trisquel, Twister, Ubuntu, Ubuntu
|
||||||
Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu\-GNOME,
|
Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio,
|
||||||
ubuntu_old02, Ultramarine Linux, Univalent, Univention, Uos, UrukOS,
|
Ubuntu Sway, Ubuntu Touch, Ubuntu\-GNOME, ubuntu_old02, Ultramarine
|
||||||
uwuntu, Vanilla, Venom, VNux, Void, VzLinux, wii\-linux\-ngx, Windows,
|
Linux, Univalent, Univention, Uos, UrukOS, uwuntu, Vanilla, Venom,
|
||||||
Windows 10, Windows 11, XFerience, Xubuntu, yiffOS, Zorin have ascii
|
VNux, Void, VzLinux, wii\-linux\-ngx, Windows, Windows 10, Windows 11,
|
||||||
logos.
|
XFerience, Xubuntu, yiffOS, Zorin have ascii logos.
|
||||||
.TP
|
.TP
|
||||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||||
have 'old' logo variants, use {distro}_old to use them.
|
have 'old' logo variants, use {distro}_old to use them.
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "neowofetch",
|
"name": "neowofetch",
|
||||||
"version": "1.4.7",
|
"version": "1.4.8",
|
||||||
"description": "Updated neofetch",
|
"description": "Updated neofetch",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import pathlib
|
import pathlib
|
||||||
|
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_namespace_packages
|
||||||
|
|
||||||
import hyfetch.constants
|
from hyfetch.__version__ import VERSION
|
||||||
|
|
||||||
# The directory containing this file
|
# The directory containing this file
|
||||||
HERE = pathlib.Path(__file__).parent
|
HERE = pathlib.Path(__file__).parent
|
||||||
@@ -14,7 +14,7 @@ README = (HERE / "README.md").read_text('utf-8')
|
|||||||
# This call to setup() does all the work
|
# This call to setup() does all the work
|
||||||
setup(
|
setup(
|
||||||
name="HyFetch",
|
name="HyFetch",
|
||||||
version=hyfetch.constants.VERSION,
|
version=VERSION,
|
||||||
description="neofetch with flags <3",
|
description="neofetch with flags <3",
|
||||||
long_description=README,
|
long_description=README,
|
||||||
long_description_content_type="text/markdown",
|
long_description_content_type="text/markdown",
|
||||||
@@ -31,7 +31,7 @@ setup(
|
|||||||
"Programming Language :: Python :: 3.10",
|
"Programming Language :: Python :: 3.10",
|
||||||
"Programming Language :: Python :: 3.11",
|
"Programming Language :: Python :: 3.11",
|
||||||
],
|
],
|
||||||
packages=find_packages(),
|
packages=find_namespace_packages(),
|
||||||
package_data={'hyfetch': ['hyfetch/*']},
|
package_data={'hyfetch': ['hyfetch/*']},
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
install_requires=[
|
install_requires=[
|
||||||
@@ -40,7 +40,7 @@ setup(
|
|||||||
|
|
||||||
# Windows dependencies
|
# Windows dependencies
|
||||||
'psutil ; platform_system=="Windows"',
|
'psutil ; platform_system=="Windows"',
|
||||||
'colorama ; platform_system=="Windows"',
|
'colorama>=0.4.6 ; platform_system=="Windows"',
|
||||||
],
|
],
|
||||||
entry_points={
|
entry_points={
|
||||||
"console_scripts": [
|
"console_scripts": [
|
||||||
|
|||||||
@@ -25,12 +25,12 @@ def test_rgb_8bit_conversion():
|
|||||||
for r in range(0, 255, 16):
|
for r in range(0, 255, 16):
|
||||||
for g in range(0, 255, 16):
|
for g in range(0, 255, 16):
|
||||||
print(RGB(r, g, 0).to_ansi_rgb(False), end=' ')
|
print(RGB(r, g, 0).to_ansi_rgb(False), end=' ')
|
||||||
printc('&r')
|
printc('&*')
|
||||||
print()
|
print()
|
||||||
for r in range(0, 255, 16):
|
for r in range(0, 255, 16):
|
||||||
for g in range(0, 255, 16):
|
for g in range(0, 255, 16):
|
||||||
print(RGB(r, g, 0).to_ansi_8bit(False), end=' ')
|
print(RGB(r, g, 0).to_ansi_8bit(False), end=' ')
|
||||||
printc('&r')
|
printc('&*')
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ def pre_check():
|
|||||||
assert os.path.islink('./hyfetch/scripts/neowofetch'), 'neowofetch is not a symbolic link'
|
assert os.path.islink('./hyfetch/scripts/neowofetch'), 'neowofetch is not a symbolic link'
|
||||||
# subprocess.check_call(shlex.split('git diff-index --quiet HEAD --')) # 'Please commit all changes before release'
|
# subprocess.check_call(shlex.split('git diff-index --quiet HEAD --')) # 'Please commit all changes before release'
|
||||||
|
|
||||||
|
print('Running shellcheck... (This may take a while)')
|
||||||
subprocess.check_call(shlex.split('shellcheck neofetch'))
|
subprocess.check_call(shlex.split('shellcheck neofetch'))
|
||||||
|
|
||||||
|
|
||||||
@@ -46,8 +47,8 @@ def edit_versions(version: str):
|
|||||||
path.write_text(json.dumps(content, ensure_ascii=False, indent=2))
|
path.write_text(json.dumps(content, ensure_ascii=False, indent=2))
|
||||||
|
|
||||||
# 2. hyfetch/constants.py
|
# 2. hyfetch/constants.py
|
||||||
print('Editing hyfetch/constants.py...')
|
print('Editing hyfetch/__version__.py...')
|
||||||
path = Path('hyfetch/constants.py')
|
path = Path('hyfetch/__version__.py')
|
||||||
content = [f"VERSION = '{version}'" if l.startswith('VERSION = ') else l for l in path.read_text().split('\n')]
|
content = [f"VERSION = '{version}'" if l.startswith('VERSION = ') else l for l in path.read_text().split('\n')]
|
||||||
path.write_text('\n'.join(content))
|
path.write_text('\n'.join(content))
|
||||||
|
|
||||||
@@ -63,7 +64,7 @@ def edit_versions(version: str):
|
|||||||
# 4. neofetch script
|
# 4. neofetch script
|
||||||
print('Editing neofetch...')
|
print('Editing neofetch...')
|
||||||
path = Path('neofetch')
|
path = Path('neofetch')
|
||||||
lines = path.read_text().split('\n')
|
lines = path.read_text().replace("\t", " ").split('\n')
|
||||||
version_i = next(i for i, l in enumerate(lines) if l.startswith('version='))
|
version_i = next(i for i, l in enumerate(lines) if l.startswith('version='))
|
||||||
nf = pv.parse(lines[version_i].replace('version=', ''))
|
nf = pv.parse(lines[version_i].replace('version=', ''))
|
||||||
new = pv.parse(version)
|
new = pv.parse(version)
|
||||||
@@ -102,6 +103,7 @@ def post_check():
|
|||||||
"""
|
"""
|
||||||
Check after changes are made
|
Check after changes are made
|
||||||
"""
|
"""
|
||||||
|
print('Running shellcheck... (This may take a while)')
|
||||||
subprocess.check_call(shlex.split('shellcheck neofetch'))
|
subprocess.check_call(shlex.split('shellcheck neofetch'))
|
||||||
|
|
||||||
|
|
||||||
@@ -112,7 +114,7 @@ def create_release(v: str):
|
|||||||
print('Committing changes...')
|
print('Committing changes...')
|
||||||
|
|
||||||
# 1. Add files
|
# 1. Add files
|
||||||
subprocess.check_call(['git', 'add', 'hyfetch/constants.py', 'neofetch', 'neofetch.1', 'package.json', 'README.md',
|
subprocess.check_call(['git', 'add', 'hyfetch/__version__.py', 'neofetch', 'neofetch.1', 'package.json', 'README.md',
|
||||||
'hyfetch/distros/*'])
|
'hyfetch/distros/*'])
|
||||||
|
|
||||||
# 2. Commit
|
# 2. Commit
|
||||||
|
|||||||
@@ -3,20 +3,19 @@
|
|||||||
This script turns readme shorthand pull request references (i.e. dylanaraps/neofetch#1946) into full
|
This script turns readme shorthand pull request references (i.e. dylanaraps/neofetch#1946) into full
|
||||||
GitHub pull request links.
|
GitHub pull request links.
|
||||||
"""
|
"""
|
||||||
import re
|
import regex as re
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
RE_SHORTHAND = re.compile(r"""[a-z0-9]+?/[a-z0-9]+?#[0-9]+""")
|
RE_SHORTHAND = re.compile(r"(\w+?)/(\w+?)#(\d+)")
|
||||||
|
MY_RE = re.compile(r"(?<=[^\w\[])#(\d+)")
|
||||||
|
|
||||||
|
|
||||||
def reformat_readme():
|
def reformat_readme():
|
||||||
readme = Path('README.md').read_text()
|
readme = Path('README.md').read_text()
|
||||||
|
|
||||||
for shorthand in RE_SHORTHAND.findall(readme):
|
readme = re.sub(RE_SHORTHAND, r'[\1#\3](https://github.com/\1/\2/pull/\3)', readme)
|
||||||
user, pull = shorthand.split('/')
|
readme = re.sub(MY_RE, r'[#\1](https://github.com/hykilpikonna/hyfetch/pull/\1)', readme)
|
||||||
repo, pull = pull.split('#')
|
|
||||||
readme = readme.replace(shorthand, f'[{user}#{pull}](https://github.com/{user}/{repo}/pull/{pull})')
|
|
||||||
|
|
||||||
Path('README.md').write_text(readme)
|
Path('README.md').write_text(readme)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user