# bfetch
A small, fast sysfetch for Linux, macOS, Termux, and Proxmox. It puts the
useful facts beside the right bit of distro ASCII and otherwise stays out of the
way.
`bfetch` is a single Rust binary with no crate dependencies. It reads the
system directly, so it is handy on lean installs and machines where a fetch
command should just be a fetch command.
## What it shows
Hostname, OS, kernel, device, uptime, locale, installed packages, shell, init,
desktop environment, window manager, displays, CPU, GPUs, memory, root-disk
usage, and virtualization/container details when they can be detected.
It knows ASCII for Arch-family distros, Artix, Bedrock, Debian/Ubuntu, Fedora,
Gentoo, Alpine, NixOS, openSUSE, Void, macOS, Android/Termux, and Proxmox. Other
systems get good old Tux.
## Build and run
Via Crates.io:
```
cargo install bfetch
```
Manually:
```
# Clone the repo and cd into it
git clone https://github.com/bulletic/bfetch.git && cd bfetch
# Or if GitHub is down/other reason
git clone https://gitlab.com/bulletic/bfetch.git && cd bfetch
# Compile it and add to your PATH
cargo install --path .
```
## Use it your way
```sh
# Plain, no-colour output
bfetch --grey
# Keep the details; lose the box
bfetch --no-box
# Pick an accent colour (hex without #)
bfetch --color:5f5f5f
# Pipe system facts somewhere useful
bfetch --json
# Run with a costum ASCII
bfetch --ascii:arch
```
Run `bfetch --help` for the complete flag list.
## Persistent tweaks
Settings live at `$XDG_CONFIG_HOME/bfetch/config`, or
`~/.config/bfetch/config` when `XDG_CONFIG_HOME` is not set. You do not need to
edit it by hand:
```sh
# Hide a line
bfetch --set Kernel:false
# Replace an existing value with your own text
bfetch --set "Device:shitbox"
# Choose the artwork instead of letting bfetch detect it
bfetch --set ascii:debian
# Line up values in the information panel
bfetch --set spacing:aligned
# Make flags the default(e.g. runs flags without you typing them)
bfetch --set "default:--no-box --grey"
# Start over (asks before removing the config)
bfetch --set reset
```
Any displayed label can be hidden with `:false` or overridden with a value.
The available labels are printed if you try an unknown one.
## License
bfetch is licensed under the GNU General Public License v3.0.
See [LICENSE](LICENSE) for the full text.