Compare commits
110 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 98863df16d | |||
| 922a91ebb1 | |||
| e7938ea4c3 | |||
| 7491081946 | |||
| 14bde2e49b | |||
| 242eae6de0 | |||
| 53bbd3fdf8 | |||
| 5c785f0819 | |||
| 75750f12a5 | |||
| 73b39252df | |||
| b313d39366 | |||
| 116c83b513 | |||
| e33ccd3484 | |||
| 1e68f174cd | |||
| d164d4c8f6 | |||
| 445f97093a | |||
| e81f2aa6d7 | |||
| 53dec09f88 | |||
| 3d7dfc0220 | |||
| 62710fa00e | |||
| 63f37d28e3 | |||
| 8c4cbf656f | |||
| 526c97fde6 | |||
| 391ff75cd1 | |||
| df0c2be57a | |||
| 59ef6434d7 | |||
| 01821a8d7a | |||
| 65d82be06e | |||
| b5e9edfae7 | |||
| 98feca03f9 | |||
| ce2a49e9a0 | |||
| d025ece2c3 | |||
| c547ccb3c3 | |||
| 6251cb5e43 | |||
| ea42a29bbd | |||
| 0305e269e0 | |||
| cf17522d50 | |||
| 1bf2281912 | |||
| 4d39bd750f | |||
| 6db170e825 | |||
| 25df70367a | |||
| a9602f5619 | |||
| 2f69013177 | |||
| 434f5aeda8 | |||
| 988ca7993e | |||
| 1efafdfb81 | |||
| 75fd94fa61 | |||
| 08029959f3 | |||
| 9c59dc2791 | |||
| e9ae4dbb6f | |||
| 26453ea3d7 | |||
| 0385fd836d | |||
| cec8152f3d | |||
| 407387eb0b | |||
| 484f13fa39 | |||
| cf83073200 | |||
| 8e63a77335 | |||
| 05c60fddfd | |||
| 04a6744e6d | |||
| 68cf96e24a | |||
| 576facfd69 | |||
| bec385d02f | |||
| a32028755a | |||
| ebd6acd004 | |||
| 0694c10537 | |||
| 2dea4d54e0 | |||
| 2f753325ae | |||
| 0d018248e5 | |||
| aa5bfe060c | |||
| 407fcd4987 | |||
| bf16e1cd47 | |||
| 9f808b99ab | |||
| dc778c3078 | |||
| 0634893733 | |||
| 0aa0a76151 | |||
| 511af9031c | |||
| db54e8990d | |||
| 673de9bb53 | |||
| ed377261a2 | |||
| a97d2805b1 | |||
| 7bfac43dd9 | |||
| 8bf694c7ba | |||
| 176f08ad0b | |||
| 2ce7a59a59 | |||
| 698afafa26 | |||
| 4b1546ccd6 | |||
| 6a023d4c91 | |||
| 40ea204223 | |||
| 31af137e97 | |||
| 914890b4b0 | |||
| 5ab2f2dcc5 | |||
| 01aed343a6 | |||
| 8389a1dee9 | |||
| a2cf60bc4c | |||
| 2577462649 | |||
| 3edca64629 | |||
| 2edf9c1304 | |||
| 50abc68f0d | |||
| 60b4b925d3 | |||
| 717b74c30b | |||
| 506f345a9d | |||
| 42d8b0d860 | |||
| cdae93479f | |||
| 82c949e5a1 | |||
| a8bcbfce09 | |||
| 43bea54532 | |||
| df11c756dd | |||
| 2cda9e9b2c | |||
| 0033e31388 | |||
| c02d375d71 |
@@ -1 +1,9 @@
|
||||
include hyfetch/scripts/*
|
||||
|
||||
recursive-exclude tools *
|
||||
recursive-exclude .github *
|
||||
recursive-exclude .vscode *
|
||||
exclude .gitignore
|
||||
exclude .gitattributes
|
||||
exclude package.json
|
||||
exclude CONTRIBUTING.md
|
||||
@@ -8,7 +8,7 @@ neofetch with pride flags <3
|
||||
|
||||
This repo also serves as an updated version of the original `neofetch` since the upstream [dylanaraps/neofetch](https://github.com/dylanaraps/neofetch) doesn't seem to be maintained anymore (as of Jul 30, 2022, the original repo hasn't merged a pull request for 6 months). If you only want to use the updated neofetch without pride flags, you can use the `neofetch` script from this repo. To prevent command name conflict, I call it `neowofetch` :)
|
||||
|
||||
* Method 1: `pip install hyfetch` then run `neowofetch`
|
||||
* Method 1: `pip install -U hyfetch` then run `neowofetch`
|
||||
* Method 2: `npx neowofetch`
|
||||
* Method 3: `P="$HOME/.local/bin/neowofetch" curl -L nf.hydev.org -o $P && chmod +x $P`
|
||||
* Method 4: Run without install `bash <(curl -sL nf.hydev.org)`
|
||||
@@ -21,7 +21,7 @@ This repo also serves as an updated version of the original `neofetch` since the
|
||||
Install Python >= 3.7 first. Then, just do:
|
||||
|
||||
```sh
|
||||
pip install hyfetch
|
||||
pip install -U hyfetch
|
||||
```
|
||||
|
||||
### Method 2: Install using system package manager
|
||||
@@ -101,6 +101,50 @@ pip install git+https://github.com/hykilpikonna/hyfetch.git@master
|
||||
|
||||
<!-- CHANGELOG STARTS HERE --->
|
||||
|
||||
### 1.4.10
|
||||
|
||||
* 🌈 Add support for qwqfetch backend ([#148](https://github.com/hykilpikonna/hyfetch/pull/148))
|
||||
* 🌈 Add nonhuman-unity flag ([#139](https://github.com/hykilpikonna/hyfetch/pull/139))
|
||||
* 🌈 Add gynesexual, androsexual flags ([#157](https://github.com/hykilpikonna/hyfetch/pull/157))
|
||||
* 🌈 Add option to disable pride month animation ([#134](https://github.com/hykilpikonna/hyfetch/pull/134))
|
||||
* 🌈 Make ^C error message less aggressive (?)
|
||||
* 🌈 Fix: Should not assume ~/.config is writable ([#136](https://github.com/hykilpikonna/hyfetch/pull/136))
|
||||
* 🌈 Fix: Foreground-background arrangement not detected ([#154](https://github.com/hykilpikonna/hyfetch/pull/154))
|
||||
* 🖼 OS - Update macOS version name list ([#140](https://github.com/hykilpikonna/hyfetch/pull/140))
|
||||
* 🖼 Ascii - Improve color removal ([#161](https://github.com/hykilpikonna/hyfetch/pull/161))
|
||||
* 🖼 Ascii - Fix reset character performance ([#158](https://github.com/hykilpikonna/hyfetch/pull/158))
|
||||
* 🖼 Distro - Smoothen the Tumbleweed logo ([dylanaraps#2342](https://github.com/dylanaraps/neofetch/pull/2342))
|
||||
* 🖼 Distro - Update RebornOS logo ([dylanaraps#2358](https://github.com/dylanaraps/neofetch/pull/2358))
|
||||
* 🖼 Distro - Update Venom Linux logo ([#166](https://github.com/hykilpikonna/hyfetch/pull/166))
|
||||
* 🖼 Distro - Add Windows 95 ASCII logo ([dylanaraps#2346](https://github.com/dylanaraps/neofetch/pull/2346))
|
||||
* 🖼 Distro - Add ParchLinux ([dylanaraps#2045](https://github.com/dylanaraps/neofetch/pull/2045))
|
||||
* 🖼 Distro - Add OpenKylin ([dylanaraps#2341](https://github.com/dylanaraps/neofetch/pull/2341))
|
||||
* 🖼 Distro - Add EvolutionOS ([dylanaraps#2350](https://github.com/dylanaraps/neofetch/pull/2350))
|
||||
* 🖼 Distro - Add Salix ([dylanaraps#2357](https://github.com/dylanaraps/neofetch/pull/2357))
|
||||
* 🖼 Distro - Add Panwah ([dylanaraps#2355](https://github.com/dylanaraps/neofetch/pull/2355))
|
||||
* 🖼 Distro - Add PhyOS ([#142](https://github.com/hykilpikonna/hyfetch/pull/142))
|
||||
* 🖼 Distro - Add Athena OS ([#130](https://github.com/hykilpikonna/hyfetch/pull/130))
|
||||
* 🖼 Distro - Add Meowix ([#159](https://github.com/hykilpikonna/hyfetch/pull/159))
|
||||
* 🖼 Distro - Add Slackel ([#167](https://github.com/hykilpikonna/hyfetch/pull/167))
|
||||
* 🖼 Distro - Support *Wrt variants ([dylanaraps#2352](https://github.com/dylanaraps/neofetch/pull/2352))
|
||||
* 🖼 Version - Fix a typo that broke OS detection on WSL ([#155](https://github.com/hykilpikonna/hyfetch/pull/155))
|
||||
* 🖼 Packages - Implement --package_separate flag ([#135](https://github.com/hykilpikonna/hyfetch/pull/135))
|
||||
* 🖼 Packages - Separate flatpak-system and flatpak-user ([#135](https://github.com/hykilpikonna/hyfetch/pull/135))
|
||||
* 🖼 Packages - Add steam as a package manager ([#152](https://github.com/hykilpikonna/hyfetch/pull/152))
|
||||
* 🖼 Packages - Add squirrel package manager ([#153](https://github.com/hykilpikonna/hyfetch/pull/153))
|
||||
* 🖼 Packages - Make cargo run on all systems ([#146](https://github.com/hykilpikonna/hyfetch/pull/146))
|
||||
* 🖼 Packages - Fix cargo package count ([#144](https://github.com/hykilpikonna/hyfetch/pull/144))
|
||||
* 🖼 Packages - Add Devbox package manager ([#137](https://github.com/hykilpikonna/hyfetch/pull/137))
|
||||
* 🖼 Packages - Fix phantom package when pm command fails ([#145](https://github.com/hykilpikonna/hyfetch/pull/145))
|
||||
* 🖼 Packages - Update scratch package manager ([#165](https://github.com/hykilpikonna/hyfetch/pull/165))
|
||||
* 🖼 Editor - Better version detection
|
||||
* 🖼 Resolution - Improve macOS resolution detection ([dylanaraps#2356](https://github.com/dylanaraps/neofetch/pull/2356))
|
||||
* 🖼 Resolution - Add resolution lookup for iOS ([#164](https://github.com/hykilpikonna/hyfetch/pull/164))
|
||||
* 🖼 Desktop - Display global KDE Plasma theme ([#163](https://github.com/hykilpikonna/hyfetch/pull/163))
|
||||
* 🖼 IP - Improve macOS local IP detection ([dylanaraps#2362](https://github.com/dylanaraps/neofetch/pull/2362))
|
||||
* 🖼 IP - Fix macOS route hangs on reverse DNS lookup
|
||||
* 🖼 Config - Allow specifying default config to copy to ~/.config ([#133](https://github.com/hykilpikonna/hyfetch/pull/133))
|
||||
|
||||
### 1.4.9
|
||||
|
||||
* 🌈 Add pride month easter-egg animation! ⭐️
|
||||
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
rec {
|
||||
hyfetch = python3Packages.buildPythonPackage rec {
|
||||
pname = "HyFetch";
|
||||
version = "1.0.7";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-3/6/3EtTqHXTMuRIo2nclIxYSzOFvQegR29OJsKMQU4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
typing-extensions
|
||||
setuptools
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "neofetch with pride flags <3";
|
||||
longDescription = ''
|
||||
HyFetch is a command-line system information tool fork of neofetch.
|
||||
HyFetch displays information about your system next to your OS logo
|
||||
in ASCII representation. The ASCII representation is then colored in
|
||||
the pattern of the pride flag of your choice. The main purpose of
|
||||
HyFetch is to be used in screenshots to show other users what
|
||||
operating system or distribution you are running, what theme or
|
||||
icon set you are using, etc.
|
||||
'';
|
||||
homepage = "https://github.com/hykilpikonna/HyFetch";
|
||||
license = licenses.mit;
|
||||
mainProgram = "hyfetch";
|
||||
};
|
||||
};
|
||||
}
|
||||
+7
-2
@@ -1,4 +1,9 @@
|
||||
from hyfetch import main
|
||||
from . import main
|
||||
from .color_util import printc
|
||||
|
||||
if __name__ == '__main__':
|
||||
main.run()
|
||||
try:
|
||||
main.run()
|
||||
except KeyboardInterrupt:
|
||||
printc('&cThe program is interrupted by ^C, exiting...')
|
||||
exit(0)
|
||||
@@ -1 +1 @@
|
||||
VERSION = '1.4.9'
|
||||
VERSION = '1.4.10'
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import platform
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
@@ -28,6 +29,8 @@ TEST_ASCII_WIDTH = max(len(line) for line in TEST_ASCII.split('\n'))
|
||||
DEFAULT_DARK_L = 0.
|
||||
IS_WINDOWS = platform.system() == 'Windows'
|
||||
|
||||
CACHE_PATH = Path(os.getenv("LOCALAPPDATA") or os.getenv("XDG_CACHE_HOME") or Path.home() / '.cache') / 'hyfetch'
|
||||
|
||||
@dataclass
|
||||
class GlobalConfig:
|
||||
# Global color mode default to 8-bit for compatibility
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
athena = AsciiArt(match=r'''"Athena"*''', color='7 3', ascii=r"""
|
||||
${c1} . ..
|
||||
${c1} :####: ####.
|
||||
${c1} .################
|
||||
${c1} :##################
|
||||
${c1}.###################.
|
||||
${c1}######## #######
|
||||
${c1}####### ${c2}####${c1} #####
|
||||
${c1}:#######. ####
|
||||
${c1} ######### ${c2}#${c1} ## #
|
||||
${c1} ####### ${c2}##${c1} ####
|
||||
${c1}######## ${c2}####${c1} #######
|
||||
${c1}######## ${c2}#####${c1} ########
|
||||
${c1}######## ${c2}#######${c1} #######
|
||||
${c1} ####### ${c2}########${c1} #######
|
||||
${c1} ######## ${c2}#########${c1} ######
|
||||
${c1} ######## ${c2}#########${c1} #####
|
||||
${c1} ####### ${c2}#########${c1} ####
|
||||
${c1} ####### ${c2}#########${c1} ##
|
||||
${c1} ####### ${c2}########${c1} ##
|
||||
${c1} ###### ${c2}########${c1} #
|
||||
${c1} ### ${c2}#######${c1}
|
||||
${c1} ${c2}######${c1}
|
||||
${c1} ${c2}####${c1}
|
||||
${c1} ${c2}##${c1}
|
||||
""")
|
||||
|
||||
@@ -164,6 +164,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .arch import arch
|
||||
return arch
|
||||
|
||||
if name.startswith('unicodearch'):
|
||||
from .unicodearch import unicodearch
|
||||
return unicodearch
|
||||
|
||||
if name.startswith('artix_small'):
|
||||
from .artix_small import artix_small
|
||||
return artix_small
|
||||
@@ -188,6 +192,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .aster import aster
|
||||
return aster
|
||||
|
||||
if name.startswith('athena'):
|
||||
from .athena import athena
|
||||
return athena
|
||||
|
||||
if name.startswith('bedrock'):
|
||||
from .bedrock import bedrock
|
||||
return bedrock
|
||||
@@ -376,6 +384,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .deepin import deepin
|
||||
return deepin
|
||||
|
||||
if name.startswith('openkylin'):
|
||||
from .openkylin import openkylin
|
||||
return openkylin
|
||||
|
||||
if name == 'desaos':
|
||||
from .desaos import desaos
|
||||
return desaos
|
||||
@@ -448,6 +460,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .eurolinux import eurolinux
|
||||
return eurolinux
|
||||
|
||||
if name.startswith('evolutionos'):
|
||||
from .evolutionos import evolutionos
|
||||
return evolutionos
|
||||
|
||||
if name.startswith('exherbo'):
|
||||
from .exherbo import exherbo
|
||||
return exherbo
|
||||
@@ -724,6 +740,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .maui import maui
|
||||
return maui
|
||||
|
||||
if name.startswith('meowix'):
|
||||
from .meowix import meowix
|
||||
return meowix
|
||||
|
||||
if name.startswith('mer'):
|
||||
from .mer import mer
|
||||
return mer
|
||||
@@ -860,9 +880,9 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .openstage import openstage
|
||||
return openstage
|
||||
|
||||
if name.startswith('openwrt'):
|
||||
from .openwrt import openwrt
|
||||
return openwrt
|
||||
if (name.startswith('wrt') or name.endswith('wrt')):
|
||||
from .wrt import wrt
|
||||
return wrt
|
||||
|
||||
if name.startswith('open source media center') or name == 'osmc':
|
||||
from .open_source_media_center import open_source_media_center
|
||||
@@ -892,6 +912,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .pacbsd import pacbsd
|
||||
return pacbsd
|
||||
|
||||
if name.startswith('panwah'):
|
||||
from .panwah import panwah
|
||||
return panwah
|
||||
|
||||
if name.startswith('parabola_small'):
|
||||
from .parabola_small import parabola_small
|
||||
return parabola_small
|
||||
@@ -940,6 +964,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .pikaos import pikaos
|
||||
return pikaos
|
||||
|
||||
if name.startswith('phyos'):
|
||||
from .phyos import phyos
|
||||
return phyos
|
||||
|
||||
if name.startswith('pnm linux') or name.startswith('whpnm linux'):
|
||||
from .pnm_linux import pnm_linux
|
||||
return pnm_linux
|
||||
@@ -1096,6 +1124,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .salient_os import salient_os
|
||||
return salient_os
|
||||
|
||||
if name.startswith('salix'):
|
||||
from .salix import salix
|
||||
return salix
|
||||
|
||||
if name.startswith('scientific'):
|
||||
from .scientific import scientific
|
||||
return scientific
|
||||
@@ -1116,6 +1148,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .siduction import siduction
|
||||
return siduction
|
||||
|
||||
if name.startswith('slackel'):
|
||||
from .slackel import slackel
|
||||
return slackel
|
||||
|
||||
if name.startswith('slackware_small'):
|
||||
from .slackware_small import slackware_small
|
||||
return slackware_small
|
||||
@@ -1288,6 +1324,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .urukos import urukos
|
||||
return urukos
|
||||
|
||||
if name.startswith('venom_small'):
|
||||
from .venom_small import venom_small
|
||||
return venom_small
|
||||
|
||||
if name.startswith('venom'):
|
||||
from .venom import venom
|
||||
return venom
|
||||
@@ -1336,6 +1376,10 @@ def detect(name: str) -> AsciiArt | None:
|
||||
from .windows_10 import windows_10
|
||||
return windows_10
|
||||
|
||||
if name == 'windows95':
|
||||
from .windows95 import windows95
|
||||
return windows95
|
||||
|
||||
if name.startswith('windows'):
|
||||
from .windows import windows
|
||||
return windows
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
evolutionos = AsciiArt(match=r'''"EvolutionOS"*''', color='4 7', ascii=r"""
|
||||
${c1}\e[1;32m dddddddddddddddddddddddd
|
||||
.dddd''''''''''''''''''''''dddd.
|
||||
dd: dddddddddddddddddddd; dd:
|
||||
dd: ldl:'''''''''''''''' dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: ddddddd; ddddd; dd:
|
||||
dd: ldl: ''''''' ''''' dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: dd:
|
||||
dd: ldl: ddddddddddddddd; dd:
|
||||
dddd:.''' ''''''''''''''' dddd:
|
||||
dddddddddddddddddddddddddd;;'
|
||||
'''''''''''''''''''''''''\e[0m
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
meowix = AsciiArt(match=r'''"Meowix"*''', color='1 3 3 4', ascii=r"""
|
||||
${c1} #${c2}% ${c3}&${c4}*
|
||||
${c1} ##${c2}%% ${c3}&&${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%%${c3}&& ${c4}**
|
||||
${c1} ## ${c2}%% ${c4}**
|
||||
${c1} ## ${c4}**
|
||||
${c1}## ${c4}**
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
openkylin = AsciiArt(match=r'''"openKylin"*''', color='2 7', ascii=r"""
|
||||
${c1}
|
||||
/KKK]
|
||||
KKKKKKK` ]KKKK\
|
||||
KKKKK/ /KKKKKKKKK\
|
||||
KKKK/ ,KKKKKKKKKKKK^
|
||||
,]KKK =KKK` /KKKKKKOOOOOO`
|
||||
,KKKKKK =KK /` [\OOOOOOO\
|
||||
\KKKKK =K ,OOOOOOO`
|
||||
,KKKKK =^ \OOOOOO
|
||||
,KKKK ^ OOOOOO^
|
||||
*KKK^ =OOOOO^
|
||||
OOKK^ OOOOOO^
|
||||
\OOOK\ /OOOOOO`
|
||||
OOOOOO] ,OOOOOOO^
|
||||
,OOOOOOOO\] ,[OOOOOOOOO/
|
||||
\OOOOOOOOOOOOOOOOOOOOO`
|
||||
[OOOOOOOOOOOOOOOO/`
|
||||
,[OOOOOOOOO]
|
||||
""")
|
||||
|
||||
@@ -5,16 +5,16 @@ from . import AsciiArt
|
||||
opensuse_tumbleweed = AsciiArt(match=r'''"openSUSE Tumbleweed"* | "openSUSE_Tumbleweed"*''', color='2 7', ascii=r"""
|
||||
${c2} ......
|
||||
.,cdxxxoc,. .:kKMMMNWMMMNk:.
|
||||
cKMMN0OOOKWMMXo. ; ;0MWk:. .:OMMk.
|
||||
;WMK;. .lKMMNM, :NMK, .OMW;
|
||||
cMW; 'WMMMN ,XMK, oMM'
|
||||
.MMc ..;l. xMN: KM0
|
||||
'MM. 'NMO oMM
|
||||
cKMMN0OOOKWMMXo. A ;0MWk:' ':OMMk.
|
||||
;WMK;' 'lKMMNM, :NMK' 'OMW;
|
||||
cMW; WMMMN ,XMK' oMM.
|
||||
.MMc ''^*~l. xMN: KM0
|
||||
'MM. .NMO oMM
|
||||
.MM, .kMMl xMN
|
||||
KM0 .kMM0. .dl:,.. .WMd
|
||||
.XM0. ,OMMK, OMMMK. .XMK
|
||||
oWMO:. .;xNMMk, NNNMKl. .xWMx
|
||||
:ONMMNXMMMKx; . ,xNMWKkxllox0NMWk,
|
||||
..... .:dOOXXKOxl,
|
||||
KM0 .kMM0' .dl>~,. .WMd
|
||||
'XM0. ,OMMK' OMMM7' .XMK
|
||||
*WMO:. .;xNMMk' NNNMKl. .xWMx
|
||||
^ONMMNXMMMKx; V 'xNMWKkxllox0NMWk'
|
||||
''''' ':dOOXXKOxl'
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
panwah = AsciiArt(match=r'''"Panwah"*''', color='7 1 0', ascii=r"""
|
||||
${c1}
|
||||
HHH
|
||||
HAAAH HHH
|
||||
HAAAAH HAAAH
|
||||
HAAAAAAH HAAAAH
|
||||
HAAAAAAH HAAAAAH
|
||||
HAAAAAAAAH${c2}WWWWWWWWWWWWWWWW ${c1}HAAAAAH$
|
||||
HAAAAAAAAH${c2}WWWWWWWWWWWWWWWWWWWW${c1} HAAAAAH
|
||||
HAA${c2}WWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}AAAAAH${c2}
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW${c1}WAH${c2}
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWWWWW${c1}AAA${c2}WWWW WWWWWWWWWWWWWWWWWWWWWWWWWWW
|
||||
WWWW${c1}AAA${c2}WWWWW WWWWWWW WWWWWWWWWWWWWWW
|
||||
WW${c1}AAA${c2}WWWWWWWWWWWWWWWWW WWWWW${c1}AAA${c2}WWWWWWWW
|
||||
${c1}AAA${c2}WWWWW${c1}OOOOOOOOOOO${C2}WWWWWWWWWWW${c1}AAA${c2}WWWWWW
|
||||
${c1}OOOO${c3}GGGGGGG${c1}OOOO${c2}WWWWWWWWWW${c1}AAA${c2}WWWW
|
||||
${c1}OOO${c3}GGGGGGG${c1}OOO${c2}WWWWWWWWWWWW${c1}AAA${c2}W
|
||||
${c1}OOOOOOOOO
|
||||
""")
|
||||
|
||||
+20
-29
@@ -3,34 +3,25 @@
|
||||
from . import AsciiArt
|
||||
|
||||
parch = AsciiArt(match=r'''"parch"* | "Parch"* | "PARCH"*''', color='4 6', ascii=r"""
|
||||
|
||||
${c1} ,#/*%*
|
||||
${c1} #. ..,..,*,,
|
||||
${c1} ,/,,... ,. (/ ...
|
||||
${c1} ,/,........ .,. ./(/%/ .* #*
|
||||
${c1} .**,..... ...,%&. .,
|
||||
${c1} ,%,.... ., ,
|
||||
${c1} ,&,... .,, &. .
|
||||
${c1} (%,... ..,& *.
|
||||
${c1} *&*..... &,,,,,,,#& ..,&/ *. /
|
||||
${c1} *&*,..... &***%&&**,& ...,&* / /
|
||||
${c1} *&,.... &,**,,,**,# ..,&/ .
|
||||
${c1} (/,... &***%%%(, ..,%( #
|
||||
${c1} %*... #,,,% ..*% . *
|
||||
${c1} %,.. .,% . /
|
||||
${c1} %,. ..,,. .%
|
||||
${c1} /,. ${c1} ..# .%
|
||||
${c1} .,. ${c2} @@@@@# ${c1} ./ ./.
|
||||
${c1} ,.. ${c2} #&%.%%@ ${c1} .#%&*
|
||||
${c1} .,.. ${c2} @//(*(@, ${c1} ..
|
||||
${c1} ,.. ${c2} #@ /@@, ${c1}
|
||||
${c1} ... ${c2} &@ @@@ ${c1}
|
||||
${c1} ,,. ${c2} (# .@@#, ${c1} ,
|
||||
${c1} /,.. ${c2} *****@% #****/ ${c1} .
|
||||
${c1} ((*....${c2} /***% %*** ${c1} .,.*
|
||||
${c1} /&&&**,.., ${c2}* **,*,,. ${c1} ...,(&%*
|
||||
${c1} %&&&#*(**,,,,,,,,,,,,,,,*//(&&&&#
|
||||
${c1} /, .,....... .,,***/(/,,/
|
||||
${c1} ./*/#*,,***,,***///(#%%*.
|
||||
${c1}
|
||||
+s;;:o-
|
||||
s/sssso+/-'+\
|
||||
+/ssssss/`
|
||||
/ssssssss/
|
||||
\ 'sssssss:
|
||||
`o+;ssssssso\
|
||||
/sssssssssssss\+
|
||||
;ssssssssssssssss:
|
||||
:sssssssssssssssssso;
|
||||
/ssssssssssssssssssssss
|
||||
`+ssssssssssssssssssssso\
|
||||
so+'+ssssssssssssssss+'`
|
||||
'` +osssssoooooosssss++oo\
|
||||
/sssssssooooooosssssssso
|
||||
`osssssssssoooossssssssso:
|
||||
\sssssssssssssssssssss;
|
||||
`+osssssssssssssss:/'
|
||||
`\osssssssssso;+'
|
||||
`\+;so:+-`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
phyos = AsciiArt(match=r'''"phyOS"*''', color='33 33 7 1', ascii=r"""
|
||||
${c1} '
|
||||
.^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.^^^^^.
|
||||
:777777777777777777777777777777^~7777:
|
||||
.~~~~~~~~~~~~~~~~~~~~~^~7777!:!777!.
|
||||
~7!!!!!!!!!!!!!!!!!^:!777~^!777~
|
||||
^77777!!!!!!!!!7!^^7777^^7777^
|
||||
^7777~.~~~~^. .~7777^~7777:
|
||||
:!777~^!777~. !777!:~777!:
|
||||
.!777!:~777!:~77~:!777!.
|
||||
~777!^~7777:^~^!777~
|
||||
^7777^^7777^^7777^
|
||||
:7777~^!7777777:
|
||||
.!777!:!7777!.
|
||||
.~777!:~77~.
|
||||
~7777^~~
|
||||
^7777.
|
||||
:77:
|
||||
..
|
||||
""")
|
||||
|
||||
@@ -2,24 +2,26 @@
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
reborn_os = AsciiArt(match=r'''"Reborn OS"* | "Reborn"*''', color='2 2 8', ascii=r"""
|
||||
${c3}
|
||||
mMMMMMMMMM MMMMMMMMMm
|
||||
NM MN
|
||||
MM ${c1}dddddddd dddddddd ${c3}MN
|
||||
mM ${c1}dd dd ${c3}MM
|
||||
${c1}dd hhhhhh hhhhh dd
|
||||
${c3}mM ${c1}hh hh ${c3}Mm
|
||||
NM ${c1}hd ${c3}mMMMMMMd ${c1}dh ${c3}MN
|
||||
NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
|
||||
NM ${c1}dd hh ${c3}mMMMMMMMMMMm ${c1}hh dd ${c3}MN
|
||||
NM ${c1}dd hh ${c3}mMMMMMMMMm ${c1}hh dd ${c3}MN
|
||||
NM ${c1}hd ${c3}mMMMMMMm ${c1}dh ${c3}MN
|
||||
mM ${c1}hh hh ${c3}Mm
|
||||
${c1}dd hhhhhh hhhhhh dd
|
||||
${c3}MM ${c1}dd dd ${c3}MM
|
||||
MM ${c1}dddddddd dddddddd ${c3}MN
|
||||
NM MN
|
||||
mMMMMMMMMM MMMMMMMMMm
|
||||
reborn_os = AsciiArt(match=r'''"Reborn OS"* | "Reborn"*''', color='0 4 6', ascii=r"""
|
||||
${c1} .======================.
|
||||
${c1}.#${c2}#*********${c1}%%${c2}*********#${c1}%:
|
||||
${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%-
|
||||
${c1}-%${c2}************${c1}%%${c2}************${c1}%=
|
||||
${c1}+%${c2}******${c1}%%#####${c1}%%#####%%${c2}******${c1}%+
|
||||
${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%*
|
||||
${c1}*%${c2}*#${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##.
|
||||
${c1}.##${c2}*****${c1}#%%%#${c3}*++${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%.
|
||||
${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%:
|
||||
${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%-
|
||||
${c1}-%#${c2}*****${c1}#%${c3}+====*${c1}%${c3}*++++++++*${c1}%#${c3}====+${c1}%#${c2}******${c1}%=
|
||||
${c1}:%#${c2}*****${c1}#%${c3}*=+*${c1}#%%${c3}*++++++*${c1}%%#${c3}*+=*${c1}%#${c2}*****${c1}#%-
|
||||
${c1}.##${c2}*****${c1}#%%%#${c3}*+*${c1}%######%${c3}*+*${c1}#%%%#${c2}*****${c1}#%:
|
||||
${c1}.##${c2}**${c1}#%%#%#${c3}====+++${c1}%%${c3}+++====${c1}#%#%%#${c2}#*${c1}##.
|
||||
${c1}*%%#${c2}****${c1}%#${c3}+=====${c1}%%${c3}=====+${c1}#%${c2}****${c1}#%%*
|
||||
${c1}+%${c2}******${c1}%%#####%%#####%%${c2}******${c1}%*
|
||||
${c1}-%${c2}************${c1}%%${c2}************${c1}%=
|
||||
${c1}:%${c2}#**********${c1}%%${c2}**********#${c1}%-
|
||||
${c1}:%${c2}#*********${c1}%%${c2}*********#${c1}%:
|
||||
${c1}.======================.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
salix = AsciiArt(match=r'''"Salix"*''', color='2', ascii=r"""
|
||||
${c1} __s_aaaaaaaaauuoXSSSSSSSS:
|
||||
._xSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
_aSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
_xSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
<XSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS:
|
||||
-"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'
|
||||
|
||||
.ssssssssssssssssssssssssssssssssssss
|
||||
{SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSl
|
||||
oSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS;
|
||||
:XSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS;
|
||||
{SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
|
||||
-"\"\""\"\""\"\""\"\""\"\""\"\""\"\""\"\""\"\""\"\""\"\"\""'
|
||||
|
||||
<assssssssssssssssssssssssssssssss>
|
||||
nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}
|
||||
nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}`
|
||||
XSSSSSSSSSSSSSSSSSSSSSSSSSSSS"`
|
||||
SSSSSSSSSSSSSSSSSSSSSSSSS!"`
|
||||
-"\"\""\"\""\"\""\"\""\"\""\"\""\"\""`
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
slackel = AsciiArt(match=r'''"Slackel"*''', color='3', ascii=r"""
|
||||
${c1} _aawmmmmmwwaaaaas,,,_.
|
||||
.ammmmm###mmmmmmm###BQmm##mws
|
||||
.am###mmBmBmBmBmBmBmmmmm#mmmm#2
|
||||
<q###mmBmBmBmBmBmBmBmBmBmBmmBmZ`
|
||||
um#mmmBmBm##U##mmBmBmBmWmmBmWm#(
|
||||
.wm#mmBBmm#Y~ ~XmBmBmWmmmmmBm#e
|
||||
.dm#mmWmm#Z' ]#mBmBmmBZ!"\"\""`
|
||||
.dm#mmBmm#2` ]mmmBmBm#2
|
||||
jm#mmWmm#2` dmmBmBmB#(
|
||||
)m##mBmmWZ` )##mBmBmmZ
|
||||
:dmmmBmBm#' .d#mBmBmWZ(
|
||||
j#mmBmBmme jmmmBmBm#2
|
||||
_m#mBmWmmm' )mmmBmBmmZ`
|
||||
]##mBmmm#2 <m#mBmBmB#^
|
||||
dmmmBmWm#C <m#mBmBmB#(
|
||||
ZmmBmBmmmh. _jm#mmBmBm#(
|
||||
XBmBmBmBmm6s_aum##mmBmBm&^
|
||||
3$mBmBmBmmm#mmmmmmBmBm#2'
|
||||
+ZmBmBmWmBmBmWmmBmBm##!
|
||||
)ZmBmBmmmBmBmmBmB##!`
|
||||
-4U#mBmWmBmBm##2"
|
||||
-!!XU##US*?"-
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
unicodearch = AsciiArt(match=r'''"unicodearch"*''', color='6 6 7 1', ascii=r"""
|
||||
${c1} ▄
|
||||
▟█▙
|
||||
▟███▙
|
||||
▟█████▙
|
||||
▟███████▙
|
||||
▂▔▀▜██████▙
|
||||
▟██▅▂▝▜█████▙
|
||||
▟█████████████▙
|
||||
▟███████████████▙
|
||||
▟█████████████████▙
|
||||
▟███████████████████▙
|
||||
▟█████████▛▀▀▜████████▙
|
||||
▟████████▛ ▜███████▙
|
||||
▟█████████ ████████▙
|
||||
▟██████████ █████▆▅▄▃▂
|
||||
▟██████████▛ ▜█████████▙
|
||||
▟██████▀▀▀ ▀▀██████▙
|
||||
▟███▀▘ ▝▀███▙
|
||||
▟▛▀ ▀▜▙
|
||||
""")
|
||||
|
||||
+20
-15
@@ -3,20 +3,25 @@
|
||||
from . import AsciiArt
|
||||
|
||||
venom = AsciiArt(match=r'''"Venom"*''', color='8 4', ascii=r"""
|
||||
${c1} ::::::: :::::::
|
||||
mMMMMMMm dMMMMMMm
|
||||
/MMMMMMMo +MMMMMMM/
|
||||
yMMMMMMN mMMMMMMy
|
||||
NMMMMMMs oMMMMMMm
|
||||
+MMMMMMN: NMMMMMM+
|
||||
hMMMMMMy sMMMMMMy
|
||||
:NMMMMMM::NMMMMMN:
|
||||
oMMMMMMyyMMMMMM+
|
||||
dMMMMMMMMMMMMh
|
||||
/MMMMMMMMMMMN:
|
||||
sMMMMMMMMMMo
|
||||
mMMMMMMMMd
|
||||
+MMMMMMMN:
|
||||
::::::
|
||||
${c1}
|
||||
`-`
|
||||
-yys+/-`
|
||||
`oyyyyy: /osyyyyso+:.
|
||||
/yyyyy+`+yyyyyyyyyys/.
|
||||
.-yyyyys.:+//+oyyyyyyyo.
|
||||
`oy/`oyyyyy/ ./syyyyy:
|
||||
syyys`:yyyyyo` :yyyyy:
|
||||
/yyyyo .syyyyy- .yyyyy.
|
||||
yyyyy. +yyyyy/ /yyyy/
|
||||
`yyyyy :yyyyys` -yyyyo
|
||||
yyyyy. `syyyyy- /yyyy/
|
||||
/yyyyo /yyyyy+ .yyyyy.
|
||||
syyyys. -yyyyys.:yyyy:
|
||||
`oyyyyyo-` `oyyyyy:.sy:
|
||||
:syyyyyyso+/++`/yyyyyo``
|
||||
-oyyyyyyyyyyy-.syyyys.
|
||||
-/+osyyyyso.`+yyyyy/
|
||||
.-/+syo`
|
||||
`.
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
venom_small = AsciiArt(match=r'''"venom_small"*''', color='8 4', ascii=r"""
|
||||
${c1} ++**
|
||||
*===**====+*
|
||||
*====* +===+
|
||||
*==*+===* *===*
|
||||
*===* *===+ *===*
|
||||
*===* +===+ *===*
|
||||
*===* +===* *===*
|
||||
*===* *===+*==*
|
||||
+===+ *===+=*
|
||||
*+====**===*
|
||||
**++
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
windows95 = AsciiArt(match=r'''"Windows95"''', color='6 4 3 2 1 0', ascii=r"""
|
||||
${c6} ___
|
||||
.--=+++++=-:.
|
||||
. _ *%@@@@@@@@@@@@@@*
|
||||
*:+:.__ :+* @@@ @"${c5}_*&%${c6}@@${c4}%&&&*${c6}"@@@
|
||||
"+.-#+ +%* " _ ${c5}++&&&%${c6}@@${c4}%&&&&&#${c6}@@
|
||||
${c5} " , ${c6}%@@ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@
|
||||
${c5} * oo *# ${c6}" _ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@
|
||||
${c5} " , ${c6}%@@ ${c5}&&&&"${c6}@@@@#*${c4}"&&&${c6}@@
|
||||
.${c5} * oo *# ${c6}" _ %@@@@@@@@@@@@@@@@
|
||||
*:+:.__ :=* %@@ @"${c1}**&%${c6}@@${c3}%&&&*${c6}"@@@
|
||||
"+.-#+ +%* " _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
|
||||
${c1} " , ${c6}%@@ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
|
||||
${c1} * oo *# ${c6}" _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
|
||||
${c1} " , ${c6}%@@ ${c1}&&*"${c6}%@@@@@@${c3}"*%&${c6}@@
|
||||
.${c1} * oo *# ${c6}" _ @@@@@@@@@@@@@@@@@
|
||||
*:+:.__ :+# @@@ @%#=+"\"\""\""+==%#@
|
||||
"+.-#+ +%* %+" " ":@
|
||||
" "
|
||||
""")
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# This file is automatically generated. Please do not modify.
|
||||
|
||||
from . import AsciiArt
|
||||
|
||||
wrt = AsciiArt(match=r'''*"Wrt"*''', color='4 7 1', ascii=r"""
|
||||
${c1} _______
|
||||
| |.-----.-----.-----.
|
||||
| - || _ | -__| |
|
||||
|_______|| __|_____|__|__|
|
||||
|__|
|
||||
________ __
|
||||
| | | |.----.| |_
|
||||
| | | || _|| _|
|
||||
|________||__| |____|
|
||||
""")
|
||||
|
||||
+8
-5
@@ -308,7 +308,7 @@ def create_parser() -> argparse.ArgumentParser:
|
||||
parser.add_argument('-C', '--config-file', dest='config_file', default=CONFIG_PATH, help=f'Use another config file')
|
||||
parser.add_argument('-p', '--preset', help=f'Use preset', choices=list(PRESETS.keys()))
|
||||
parser.add_argument('-m', '--mode', help=f'Color mode', choices=['8bit', 'rgb'])
|
||||
parser.add_argument('-b', '--backend', help=f'Choose a *fetch backend', choices=['neofetch', 'fastfetch', 'fastfetch-old'])
|
||||
parser.add_argument('-b', '--backend', help=f'Choose a *fetch backend', choices=['qwqfetch', 'neofetch', 'fastfetch', 'fastfetch-old'])
|
||||
parser.add_argument('--args', help=f'Additional arguments pass-through to backend')
|
||||
parser.add_argument('--c-scale', dest='scale', help=f'Lighten colors by a multiplier', type=float)
|
||||
parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float)
|
||||
@@ -376,17 +376,20 @@ def run():
|
||||
|
||||
# Check if it's June (pride month)
|
||||
now = datetime.datetime.now()
|
||||
if now.month == 6 and now.year not in config.pride_month_shown:
|
||||
june_path = CACHE_PATH / f'animation-displayed-{now.year}'
|
||||
if now.month == 6 and now.year not in config.pride_month_shown and not june_path.is_file() and os.isatty(sys.stdout.fileno()):
|
||||
args.june = True
|
||||
|
||||
if args.june:
|
||||
if args.june and not config.pride_month_disable:
|
||||
pride_month.start_animation()
|
||||
print()
|
||||
print("Happy pride month!")
|
||||
print("(You can always view the animation again with `hyfetch --june`)")
|
||||
print()
|
||||
config.pride_month_shown.append(now.year)
|
||||
config.save()
|
||||
|
||||
if not june_path.is_file():
|
||||
june_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
june_path.touch()
|
||||
|
||||
# Use a custom distro
|
||||
GLOBAL_CFG.override_distro = args.distro or config.distro
|
||||
|
||||
+3
-2
@@ -17,7 +17,8 @@ class Config:
|
||||
color_align: ColorAlignment = field(default_factory=lambda: ColorAlignment('horizontal'))
|
||||
backend: BackendLiteral = "neofetch"
|
||||
distro: str | None = None
|
||||
pride_month_shown: list[int] = field(default_factory=list)
|
||||
pride_month_shown: list[int] = field(default_factory=list) # This is deprecated, see issue #136
|
||||
pride_month_disable: bool = False
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, d: dict):
|
||||
@@ -26,4 +27,4 @@ class Config:
|
||||
|
||||
def save(self):
|
||||
CONFIG_PATH.parent.mkdir(exist_ok=True, parents=True)
|
||||
CONFIG_PATH.write_text(json_stringify(self), 'utf-8')
|
||||
CONFIG_PATH.write_text(json_stringify(self, indent=4), 'utf-8')
|
||||
|
||||
@@ -252,7 +252,7 @@ def ensure_git_bash() -> Path:
|
||||
|
||||
# No installation found, download a portable installation
|
||||
print('Git installation not found. Git is required to use HyFetch/neofetch on Windows')
|
||||
if literal_input('Would you like to install a minimal package for Git? (if no is selected colors almost certianly won\'t work)', ['yes', 'no'], 'yes', False) == 'yes':
|
||||
if literal_input('Would you like to install a minimal package for Git? (if no is selected colors almost certainly won\'t work)', ['yes', 'no'], 'yes', False) == 'yes':
|
||||
print('Downloading a minimal portable package for Git...')
|
||||
from urllib.request import urlretrieve
|
||||
urlretrieve(MINGIT_URL, pkg_path)
|
||||
@@ -345,8 +345,30 @@ def run(asc: str, backend: BackendLiteral, args: str = ''):
|
||||
return run_fastfetch(asc, args)
|
||||
if backend == "fastfetch-old":
|
||||
return run_fastfetch(asc, args, legacy=True)
|
||||
if backend == "qwqfetch":
|
||||
return run_qwqfetch(asc, args)
|
||||
|
||||
|
||||
def run_qwqfetch(asc: str, args: str = ''):
|
||||
"""
|
||||
Run neofetch with colors
|
||||
|
||||
:param preset: Color palette
|
||||
:param alignment: Color alignment settings
|
||||
"""
|
||||
asc = asc.replace('\\', '\\\\')
|
||||
|
||||
# call qwqfetch to print string
|
||||
try:
|
||||
import qwqfetch
|
||||
# distro_detector only return a bash variable
|
||||
# so we use qwqfetch builtin distro detector
|
||||
print(qwqfetch.get_ascres(asc))
|
||||
except ImportError as e: # module not found etc
|
||||
print("qwqfetch is not installed. Install it by executing:") # use print to output hint directly
|
||||
print("pip install git+https://github.com/nexplorer-3e/qwqfetch") # TODO: public repo
|
||||
raise e
|
||||
|
||||
def run_neofetch(asc: str, args: str = ''):
|
||||
"""
|
||||
Run neofetch with colors
|
||||
@@ -402,7 +424,7 @@ def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
|
||||
distro = get_distro_name().lower()
|
||||
distro = distro.lower().replace(' ', '-')
|
||||
for k, v in fore_back.items():
|
||||
if distro == k.lower():
|
||||
if distro.startswith(k.lower()):
|
||||
return v
|
||||
return None
|
||||
|
||||
|
||||
@@ -597,6 +597,18 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#2f3fb9"
|
||||
]),
|
||||
|
||||
'gynesexual': ColorProfile([
|
||||
"#F4A9B7",
|
||||
"#903F2B",
|
||||
"#5B953B",
|
||||
]),
|
||||
|
||||
'androsexual': ColorProfile([
|
||||
"#01CCFF",
|
||||
"#603524",
|
||||
"#B799DE",
|
||||
]),
|
||||
|
||||
# gendervoid and related flags sourced from: https://gender.fandom.com/wiki/Gendervoid
|
||||
'gendervoid' : ColorProfile([
|
||||
"#081149",
|
||||
@@ -622,6 +634,13 @@ PRESETS: dict[str, ColorProfile] = {
|
||||
"#0B130C"
|
||||
]),
|
||||
|
||||
# used https://twitter.com/foxbrained/status/1667621855518236674/photo/1 as source and colorpicked
|
||||
'nonhuman-unity' : ColorProfile([
|
||||
"#177B49",
|
||||
"#FFFFFF",
|
||||
"#593C90"
|
||||
]),
|
||||
|
||||
# Meme flags
|
||||
'beiyang': ColorProfile([
|
||||
'#DF1B12',
|
||||
|
||||
+34
-31
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH NEOFETCH "1" "June 2023" "Neofetch 7.3.9" "User Commands"
|
||||
.TH NEOFETCH "1" "August 2023" "Neofetch 7.3.10" "User Commands"
|
||||
.SH NAME
|
||||
Neofetch \- manual page for Neofetch 7.3.9
|
||||
Neofetch \- manual page for Neofetch 7.3.10
|
||||
.SH SYNOPSIS
|
||||
.B neofetch
|
||||
\fI\,func_name --option "value" --option "value"\/\fR
|
||||
@@ -46,6 +46,9 @@ Hide/Show Fully Qualified Domain Name in title.
|
||||
\fB\-\-package_managers\fR on/off
|
||||
Hide/Show Package Manager names. (on, tiny, off)
|
||||
.TP
|
||||
\fB\-\-package_separate\fR on/off
|
||||
Whether to separate system/user modes for supported package managers
|
||||
.TP
|
||||
\fB\-\-os_arch\fR on/off
|
||||
Hide/Show OS architecture.
|
||||
.TP
|
||||
@@ -315,44 +318,44 @@ Android, Antergos, antiX, AOSC OS, AOSC OS/Retro, Aperio GNU/Linux,
|
||||
Aperture, Apricity, Arch, ArchBox, Archcraft, archcraft_ascii,
|
||||
archcraft_minimal, ARCHlabs, ArchMerge, ArchStrike, ArcoLinux,
|
||||
ArseLinux, Artix, Arya, Asahi, Aster, AsteroidOS, astOS, Astra
|
||||
Linux, Bedrock, BigLinux, Bitrig, BlackArch, blackPanther, BLAG,
|
||||
BlankOn, BlueLight, Bodhi, bonsai, BSD, BunsenLabs, CachyOS,
|
||||
Linux, Athena, Bedrock, BigLinux, Bitrig, BlackArch, blackPanther,
|
||||
BLAG, BlankOn, BlueLight, Bodhi, bonsai, BSD, BunsenLabs, CachyOS,
|
||||
Calculate, CalinixOS, Carbs, CBL\-Mariner, CelOS, Center, CentOS,
|
||||
Chakra, ChaletOS, Chapeau, ChonkySealOS, Chrom, Cleanjaro, Clear
|
||||
Linux OS, ClearOS, Clover, Cobalt, Condres, Container Linux by
|
||||
CoreOS, CRUX, Crystal Linux, Cucumber, CutefishOS, CuteOS, CyberOS,
|
||||
dahlia, DarkOs, Darwin, Debian, Deepin, DesaOS, Devuan, DietPi,
|
||||
DracOS, DragonFly, Drauger, Droidian, Elementary, Elive, EncryptOS,
|
||||
EndeavourOS, Endless, Enso, EuroLinux, Exherbo, Exodia Predator OS,
|
||||
Fedora, FemboyOS, Feren, Finnix, Floflis, FreeBSD, FreeMiNT,
|
||||
Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD, glaucus,
|
||||
gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang, Guix,
|
||||
Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS,
|
||||
EndeavourOS, Endless, Enso, EuroLinux, EvolutionOS, Exherbo, Exodia
|
||||
Predator OS, Fedora, FemboyOS, Feren, Finnix, Floflis, FreeBSD,
|
||||
FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, GhostBSD,
|
||||
glaucus, gNewSense, GNOME, GNU, GoboLinux, GrapheneOS, Grombyang,
|
||||
Guix, Haiku, HamoniKR, HarDClanZ, Hash, Huayra, Hybrid, HydroOS,
|
||||
Hyperbola, iglunix, instantOS, IRIX, Itc, januslinux, Kaisen, Kali,
|
||||
KaOS, KDE, Kibojoe, Kogaion, Korora, KrassOS, KSLinux, Kubuntu,
|
||||
LangitKetujuh, LaxerOS, LEDE, LibreELEC, Linspire, Linux, Linux
|
||||
Lite, Linux Mint, Linux Mint Old, Live Raizo, LMDE, Lubuntu, Lunar,
|
||||
mac, Mageia, MagpieOS, Mandriva, Manjaro, MassOS, MatuusOS, Maui,
|
||||
Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune, NetBSD,
|
||||
Netrunner, Nitrux, NixOS, Nobara, NomadBSD, Nurunner, NuTyX, Obarun,
|
||||
OBRevenge, OmniOS, Open Source Media Center, OpenBSD, openEuler,
|
||||
OpenIndiana, openmamba, OpenMandriva, OpenStage, openSUSE, openSUSE
|
||||
Leap, openSUSE Tumbleweed, OpenWrt, OPNsense, Oracle, orchid, OS
|
||||
Elbrus, PacBSD, Parabola, parch, Pardus, Parrot, Parsix, PCBSD,
|
||||
PCLinuxOS, pearOS, Pengwin, Pentoo, Peppermint, PikaOS, Pisi, PNM
|
||||
Linux, Pop!_OS, Porteus, PostMarketOS, Profelis SambaBOX, Proxmox,
|
||||
PuffOS, Puppy, PureOS, Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian,
|
||||
ravynOS, Reborn OS, Red Star, Redcore, Redhat, Refracted Devuan,
|
||||
Regata, Regolith, RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish,
|
||||
SalentOS, Salient OS, Sasanqua, Scientific, semc, Septor, Serene,
|
||||
SharkLinux, ShastraOS, Siduction, SkiffOS, Slackware, SliTaz,
|
||||
SmartOS, Soda, Solus, Source Mage, Sparky, Star, SteamOS, Stock
|
||||
Linux, Sulin, SunOS, SwagArch, t2, Tails, TeArch, TorizonCore,
|
||||
Trisquel, Twister, Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu
|
||||
Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Sway, Ubuntu Touch,
|
||||
Ubuntu\-GNOME, ubuntu_old02, Ultramarine Linux, Univalent,
|
||||
Univention, Uos, UrukOS, uwuntu, Vanilla, Venom, VNux, Void,
|
||||
VzLinux, wii\-linux\-ngx, Windows, Windows 10, Windows 11, XFerience,
|
||||
Meowix, Mer, Minix, MIRACLE LINUX, MX, Namib, NekOS, Neptune,
|
||||
NetBSD, Netrunner, Nitrux, NixOS, Nobara, NomadBSD, Nurunner, NuTyX,
|
||||
Obarun, OBRevenge, OmniOS, Open Source Media Center, OpenBSD,
|
||||
openEuler, OpenIndiana, openKylin, openmamba, OpenMandriva,
|
||||
OpenStage, openSUSE, openSUSE Leap, openSUSE Tumbleweed, OPNsense,
|
||||
Oracle, orchid, OS Elbrus, PacBSD, Panwah, Parabola, parch, Pardus,
|
||||
Parrot, Parsix, PCBSD, PCLinuxOS, pearOS, Pengwin, Pentoo,
|
||||
Peppermint, phyOS, PikaOS, Pisi, PNM Linux, Pop!_OS, Porteus,
|
||||
PostMarketOS, Profelis SambaBOX, Proxmox, PuffOS, Puppy, PureOS,
|
||||
Q4OS, Qubes, Qubyt, Quibian, Radix, Raspbian, ravynOS, Reborn OS,
|
||||
Red Star, Redcore, Redhat, Refracted Devuan, Regata, Regolith,
|
||||
RhaymOS, rocky, Rosa, Sabayon, sabotage, Sailfish, SalentOS, Salient
|
||||
OS, Salix, Sasanqua, Scientific, semc, Septor, Serene, SharkLinux,
|
||||
ShastraOS, Siduction, SkiffOS, Slackel, Slackware, SliTaz, SmartOS,
|
||||
Soda, Solus, Source Mage, Sparky, Star, SteamOS, Stock Linux, Sulin,
|
||||
SunOS, SwagArch, t2, Tails, TeArch, TorizonCore, Trisquel, Twister,
|
||||
Ubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE,
|
||||
Ubuntu Studio, Ubuntu Sway, Ubuntu Touch, Ubuntu\-GNOME,
|
||||
ubuntu_old02, Ultramarine Linux, unicodearch, Univalent, Univention,
|
||||
Uos, UrukOS, uwuntu, Vanilla, Venom, VNux, Void, VzLinux, wii\-linuxngx, Windows, Windows 10, Windows 11, Windows95, Wrt, XFerience,
|
||||
Xubuntu, yiffOS, Zorin have ascii logos.
|
||||
.TP
|
||||
NOTE: arch, dragonfly, Fedora, LangitKetujuh, nixos, redhat, Ubuntu
|
||||
@@ -363,8 +366,8 @@ CalinixOS, centos, cleanjaro, crux, debian, dragonfly, elementary,
|
||||
fedora, freebsd, garuda, gentoo, guix, haiku, hyperbola, kali,
|
||||
linuxlite, linuxmint, mac, mageia, manjaro, mx, netbsd, nixos,
|
||||
openbsd, opensuse, orchid, parabola, popos, postmarketos, pureos,
|
||||
Raspbian, rocky, slackware, sunos, ubuntu, void have 'small' logo
|
||||
variants, use {distro}_small to use them.
|
||||
Raspbian, rocky, slackware, sunos, ubuntu, venom, void have 'small'
|
||||
logo variants, use {distro}_small to use them.
|
||||
.TP
|
||||
\fB\-\-ascii_bold\fR on/off
|
||||
Whether or not to bold the ascii logo.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "neowofetch",
|
||||
"version": "1.4.9",
|
||||
"version": "1.4.10",
|
||||
"description": "Updated neofetch",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import hyfetch
|
||||
|
||||
if __name__ == '__main__':
|
||||
hyfetch.main.run()
|
||||
@@ -1,68 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
import time
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
from hyfetch.color_util import printc, color
|
||||
from hyfetch.neofetch_util import term_size
|
||||
|
||||
|
||||
@dataclass
|
||||
class Theme:
|
||||
done_char: str
|
||||
todo_char: str
|
||||
prefix: str = ''
|
||||
suffix: str = ''
|
||||
done_len: int = 1
|
||||
todo_len: int = 1
|
||||
|
||||
|
||||
CLASSIC_THEME = Theme('█', '.', '[', ']')
|
||||
NEW_THEME = Theme('&a━', '&c━')
|
||||
EMOJI_THEME = Theme('✅', '🕑', done_len=2, todo_len=2)
|
||||
EGG_THEME = Theme('🐣', '🥚', done_len=2, todo_len=2)
|
||||
FLOWER_THEME = Theme('🌸', '🥀', done_len=2, todo_len=2)
|
||||
|
||||
|
||||
def print_progressbar(total: int, i: int, length: int | None = None, theme: Theme = EMOJI_THEME, unit=''):
|
||||
if not length:
|
||||
length = term_size()[0]
|
||||
i += 1
|
||||
|
||||
completed = f'{i * 100 / total:.0f}%'
|
||||
placeholder = 'PLACEHOLDER_BAR'
|
||||
template = f'{theme.prefix}{placeholder}{theme.suffix}&r {completed} {i}/{total}{unit}'
|
||||
|
||||
length -= len(template) - len(placeholder) + 2
|
||||
|
||||
progress = int(i / total * length)
|
||||
bar = f'{theme.done_char * (progress // theme.todo_len)}{theme.todo_char * ((length - progress) // theme.done_len)}'
|
||||
print(color(template.replace(placeholder, bar)), end='\r', flush=True)
|
||||
|
||||
|
||||
def download_pbar(url: str, path: Path):
|
||||
def hook(b: int, bsize: int, tsize: int):
|
||||
print_progressbar(tsize // 1024 // 1024, b * bsize // 1024 // 1024, unit=' MB')
|
||||
|
||||
if path.is_dir():
|
||||
filename = url.split('/')[-1]
|
||||
path = path / filename
|
||||
path.parent.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
urlretrieve(url, filename=path, reporthook=hook)
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# theme = {'emoji': EMOJI_THEME, 'flower': FLOWER_THEME, 'egg': EGG_THEME, 'classic': CLASSIC_THEME, 'new': NEW_THEME}
|
||||
#
|
||||
# for name, t in theme.items():
|
||||
# print(f'\n{name} theme:')
|
||||
# for i in range(100):
|
||||
# print_progressbar(100, i, theme=t)
|
||||
# time.sleep(0.015)
|
||||
# print()
|
||||
download_pbar('https://github.com/git-for-windows/git/releases/download/v2.37.2.windows.2/MinGit-2.37.2.2-busybox-64-bit.zip', Path('Downloads'))
|
||||
@@ -53,7 +53,8 @@ if __name__ == '__main__':
|
||||
|
||||
# Fetch commit information
|
||||
commits = http.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
||||
author = json.loads(os.environ.get("override_author")) or commits[-1]['commit']['author']
|
||||
override_author = os.environ.get("override_author")
|
||||
author = json.loads(override_author) if override_author else commits[-1]['commit']['author']
|
||||
|
||||
# Create commit message
|
||||
title = info["title"].replace('"', '\\"')
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import re, json
|
||||
|
||||
distro_color = {}
|
||||
|
||||
|
||||
def color(colornum): # see neofetch color()
|
||||
reset = "\e[0m"
|
||||
ascii_bold = "\e[1m"
|
||||
if colornum == "fg" or colornum == "7":
|
||||
return f"\e[37m{reset}"
|
||||
if colornum == "#":
|
||||
pass # TODO
|
||||
if int(colornum) >= 0 and int(colornum) < 7:
|
||||
return f"{reset}\e[3{colornum}m"
|
||||
return f"\e38;5;{colornum}m"
|
||||
|
||||
|
||||
with open("neofetch") as f:
|
||||
s = f.read()
|
||||
l = iter(s.split("\n"))
|
||||
for i in l:
|
||||
p = re.search(r'"\D+"\*\)', i)
|
||||
if p is None:
|
||||
continue
|
||||
distros = re.sub(r"\"|\)|\*", "", i.strip(" ")).split("|")
|
||||
c = next(l).strip(" ")
|
||||
if "set_colors" not in c:
|
||||
continue
|
||||
colors = c.split(" ")[1:]
|
||||
for dist in distros:
|
||||
distro_color[dist.strip(" ").rstrip(" ")] = colors
|
||||
with open("distcolor.json", "w") as f:
|
||||
json.dump(distro_color, f)
|
||||
Reference in New Issue
Block a user