Awesome
<p align="center"><img width="100%" src="https://user-images.githubusercontent.com/43980777/107769286-5a11a980-6d6a-11eb-9d65-ed07bf79a5c0.png"></p> <p align="center"> <a href="https://github.com/NNBnh/bfetch/blob/main/LICENSE"><img src="https://img.shields.io/github/license/NNBnh/bfetch?labelColor=2A2734&color=DEAB63&style=for-the-badge" alt="License: GPL-3.0"></a> <a href="https://gist.github.com/NNBnh/9ef453aba3efce26046e0d3119dab5a7#development-completed"><img src="https://img.shields.io/badge/development-completed-%23DEAB63.svg?labelColor=2A2734&style=for-the-badge&logoColor=FFFFFF" alt="Development completed"></a> </p>๐ข Check out DIYfetch, the ultimate fetch tool template. It's the successor to SuperB Fetch!
๐ก About
SuperB Fetch (a.k.a bfetch
) is a SuperB general-purpose fetch displayer written in portable sh
that takes user commands output and dynamically changes how it displays output based on the terminal size.
<p align="center"><a href="https://asciinema.org/a/381349" target="_blank"><img src="https://asciinema.org/a/381349.svg"></a></p>Note Check how people rice SuperB Fetch at Bfetchporn.
๐ Story
As a Linux ricer, I like to make Neofetch automatically run when the terminal starts. This was fine until I switched to using a tiled window manager, the terminal is often too small leading to the fetch getting cropped off, even with Pfetch, the problem would appear. This has led me to create SuperB Fetch, a dynamic fetching tool with the customization spirit of Ufetch.
Neofetch | Pfetch | |
---|---|---|
Without SuperB Fetch | ||
With SuperB Fetch |
โจ Features
- Super minimum with exactly 256 lines of
sh
and no dependencies (if you don't countsh
). - Super flexible:
- Align/shift/change mode contents based on terminal size.
- Hide some elements if terminal is too small.
- Super customizable:
- SuperB Fetch can take commands output and use it. By so, SuperB Fetch can display anything you want, however you want.
- And even more config options
- Have two mode:
Paper mode | Classic mode |
---|---|
๐ Setup
๐งพ Dependencies
- Unix commands to process
๐ฅ Installation
๐ง Manually
Option 1: using curl
curl https://raw.githubusercontent.com/NNBnh/bfetch/main/bin/bfetch > ~/.local/bin/bfetch
chmod +x ~/.local/bin/bfetch
Option 2: using git
git clone https://github.com/NNBnh/bfetch.git ~/.local/share/bfetch
ln -s ~/.local/share/bfetch/bin/bfetch ~/.local/bin/bfetch
๐ฆ Package manager
For Arch-Linux base distro, install this AUR package:
paru -Sy superbfetch-git
For Bpkg user:
bpkg install NNBnh/bfetch
For Basher user:
basher install NNBnh/bfetch
Note If you can and want to port SuperB Fetch to other package managers, feel free to do so.
โจ๏ธ Usage
Run SuperB Fetch in the terminal:
bfetch
โ๏ธ Configuration
SuperB Fetch is configured through environment variables: export BFETCH_<SETTING>="<value>"
Value | Valid | Default | Description |
---|---|---|---|
BFETCH_INFO | <commands> | $XDG_CONFIG_HOME/bfetch/info (~/.config/bfetch/info ) | Read this commands output as infomation element (OS, WM, terminal, ...) |
BFETCH_ART | <commands> | $XDG_CONFIG_HOME/bfetch/art (~/.config/bfetch/art ) | Read this commands output as art element (operating system logo) |
BFETCH_COLOR | <commands> | $XDG_CONFIG_HOME/bfetch/color (~/.config/bfetch/color ) | Read this commands output as color element (colors strip below info) |
BFETCH_TEMPORARY | <path/to/file> | /tmp/bfetch | Temporary file's location |
BFETCH_CLASSIC_MODE | true|false | false | Make SuperB Fetch prefer classic mode when both mode are possible |
BFETCH_ART_RIGHT | true|false | false | Render art on the right when using classic mode |
BFETCH_PADDING | 0+ | 1 | Padding fetch when using classic mode |
BFETCH_SEPARATOR | 0+ | 2 | Separate info and art when using classic mode |
BFETCH_PROMPT_HEIGHT | 0+ | 1 | Acknowledge how high the shell prompt is and counter it so the prompt don't push the fetch out |
SuperB Fetch will export the maximum size that an element can get:
Value | Description |
---|---|
BFETCH_INFO_HEIGHT | Maximum height of infomation element |
BFETCH_INFO_WIDTH | Maximum width of infomation element |
BFETCH_ART_HEIGHT | Maximum height of art element |
BFETCH_ART_WIDTH | Maximum width of art element |
BFETCH_COLOR_HEIGHT | Maximum height of color element |
BFETCH_COLOR_WIDTH | Maximum width of color element |
โน๏ธ Info element
SuperB Fetch looking for and execute $XDG_CONFIG_HOME/bfetch/info
for info element as default, you can copy this info template with Fetchutils as a starting point and customizing.
Note Make sure the file is executable
๐ผ๏ธ Art and color element
For art element and color element, take a look at NNB's ANSI collections and other textart resources.
๐ Credits
Special thanks to:
- Julian Marcos for porting this package to the AUR
- Neofetch by Dylan
- Pfetch also by Dylan
- Ufetch by Jschx
- Fetchutils by LPTSTR
- Pure sh bible also by Dylan
- Carbon by @carbon_app
<br><br><br><br>
<h1 align="center">Made with โค๏ธ by <a href="https://github.com/NNBnh"><i>NNB</i></a></h1> <p align="center"><a href="https://www.buymeacoffee.com/nnbnh"><img src="https://img.shields.io/badge/buy_me_a_coffee%20-%23F7CA88.svg?logo=buy-me-a-coffee&logoColor=333333&style=for-the-badge" alt="Buy Me a Coffee"></a></p>