Closed CarterLi closed 1 year ago
Just added support for using fastfetch as a hyfetch backend!
❯ hyfetch -b fastfetch
Traceback (most recent call last):
File "/opt/homebrew/bin/hyfetch", line 5, in <module>
from hyfetch.main import run
File "/opt/homebrew/lib/python3.11/site-packages/hyfetch/__init__.py", line 3, in <module>
from . import main, constants
File "/opt/homebrew/lib/python3.11/site-packages/hyfetch/main.py", line 12, in <module>
from . import termenv, neofetch_util
File "/opt/homebrew/lib/python3.11/site-packages/hyfetch/neofetch_util.py", line 19, in <module>
from .distros import distro_detector
ModuleNotFoundError: No module named 'hyfetch.distros'
@hykilpikonna
❯ hyfetch -b fastfetch Traceback (most recent call last): File "/opt/homebrew/bin/hyfetch", line 5, in <module> from hyfetch.main import run File "/opt/homebrew/lib/python3.11/site-packages/hyfetch/__init__.py", line 3, in <module> from . import main, constants File "/opt/homebrew/lib/python3.11/site-packages/hyfetch/main.py", line 12, in <module> from . import termenv, neofetch_util File "/opt/homebrew/lib/python3.11/site-packages/hyfetch/neofetch_util.py", line 19, in <module> from .distros import distro_detector ModuleNotFoundError: No module named 'hyfetch.distros'
@hykilpikonna
Oops, forgot to add .distros to the list of sub-packages for installation... it should work now!
Good.
❯ hyperfine -w 3 "hyfetch -b fastfetch" "fastfetch"
Benchmark 1: hyfetch -b fastfetch
Time (mean ± σ): 249.8 ms ± 7.1 ms [User: 107.8 ms, System: 65.9 ms]
Range (min … max): 239.2 ms … 258.6 ms 11 runs
Benchmark 2: fastfetch
Time (mean ± σ): 118.6 ms ± 6.8 ms [User: 23.1 ms, System: 31.4 ms]
Range (min … max): 106.7 ms … 134.3 ms 24 runs
Summary
'fastfetch' ran
2.11 ± 0.14 times faster than 'hyfetch -b fastfetch'
I don't really get what's the benefit of wrapping fastfetch with hyfetch. Are there any benefits other than fancier logo color?
Can we integrate it into fastfetch and got zero overheads and no python dependency? It's really a thing on Windows.
I don't really get what's the benefit of wrapping fastfetch with hyfetch. Are there any benefits other than fancier logo color?
The entire purpose of HyFetch is its coloring functionality, rendering ASCII logos with LGBTQ+ pride flags. Please be aware of your heteronormative perspective—a pride flag isn't just a "fancier logo color" that provides no benefits.
neowofetch
or the maintained neofetch script inside the HyFetch repository technically isn't directly related to HyFetch. (i.e. HyFetch is a wrapper that can function with a different *fetch backend like fastfetch
)
Can we integrate it into fastfetch and got zero overheads and no python dependency?
tbh, I don't think it's necessary, it's just a 150ms difference which isn't a lot, but translating the color rendering code into fastfetch would mean maintaining two code bases at once. The time required to translate and maintain the code isn't worthwhile since translating it doesn't add any features.
Also, since HyFetch uses the list of distributions created by crowdsourced contributors to the neofetch repository, its list of distros is more complete (currently having 329 ascii arts), and using hyfetch with fastfetch backend allows it to display all 329 logos instead of only the 65 logos supported by fastfetch.
Dont get me wrong. I love fancy colors, but I dont think it is worth adding another dependency. Because, in my honest opinion, it is not hard to implement.
Dont get me wrong. I love fancy colors, but I dont think it is worth adding another dependency. Because, in my honest opinion, it is not hard to implement.
There are no dependencies here. HyFetch doesn't depend on fastfetch (i.e. it can run without fastfetch), and fastfetch doesn't depend on HyFetch either.
If the dependency you mentioned is python, then I would argue that a programming language isn't a "dependency." If python is a dependency, then gcc, cmake are dependencies as well (i.e. on a new platform like riscv64 without prebuilt binaries, you would have to install gcc and cmake to run fastfetch). And since python3 is pre-installed on most distros and is probably among the first things maintainers would package for a new platform, I wouldn't worry about its compatibility.
Closing, as it's going off topic.
https://github.com/LinusDierheimer/fastfetch
Screenshots
macOS
Linux
Windows
WSL
FreeBSD (in VM)
Android (without logo)
Benchmarks
https://github.com/LinusDierheimer/fastfetch/wiki/Fastfetch-VS-Hyfetch-(Linux)