Rsftch
Screenshots
Ascii supported distros
- Arch Linux
- Debian
- Fedora
- Endeavour OS
- Void Linux
- Ubuntu
- *Suse
- Raspbian
- Linux Mint
- MX Linux
- Gentoo
- Funtoo
- Slackware
- NixOS
- Kali Linux
- CachyOS
- FreeBSD
- NetBSD
Others won't have a custom title, only "Rsftch"
Supported package managers
- xbps
- dnf
- rpm
- apt
- pacman
- emerge
- yum
- zypper
- apk
- pkg
* Some might not work, and if they don't, please file an issue.
Dependencies
pciutilslibxrandrglibc- Any nerdfont
For NVIDIA cards:
nvidia-smi(sometimes packaged withnvidia-utils)
Installation
Cargo (recommended)
cargo install rsftch
Source
git clone https://github.com/charklie/rsftch.git
cd rsftch
cargo install --path .
NetBSD
If you're on NetBSD or, any supported pkgsrc platform, a pre-compiled binary is available from the official repositories.
To install it, simply run:
pkgin install rsftch
Or, if you prefer to build it from source:
cd /usr/pkgsrc/sysutils/rsftch
make install
DEB file
There is an .deb file availible in the releases section, for Arch and Debian / Ubuntu users.
Binary
If you don't have cargo installed you can download the binary and move it directly to your /usr/bin, although this is very unsafe and should be rarely ever done.
Configuration
Info:
The info configuration should be located at ~/.config/rsftch/info.json, and it could look something like this;
Each info(number) is the section. This is a very simple example but all the options are as follows:
- os / distro
- host / hostname
- shell
- kernel
- packs / packages
- user / username
- term / terminal
- de / dewm / wm
- cpu / processor
- gpu / graphics
- mem / memory
- uptime
- res / display / resolution
- time / timezone
- disk / diskusage
Colors
The color configuration should be located at ~/.config/rsftch/colors.json, and it could look something like this:
Other available colors are as follows:
- green
- red
- purple / magenta
- yellow
- blue
- black
- white
The number followed by "color" means:
color0: Ascii text on topcolor1: First info sectioncolor2: Second info sectioncolor3: Last info section
Common issues
Running rsftch in terminal doesn't work (command not found)
Solution: (If you installed with cargo) Add ~/.cargo/bin/ to PATH, how varies from shell to shell, here are some popular ones:
Bash / Zsh:
echo "PATH=\$PATH:~/.cargo/bin/" >> (.bashrc / .zshrc path)
Fish:
set -U fish_user_paths ~/.cargo/bin/ $fish_user_paths
Nushell:
let-env PATH = ($env.PATH | prepend $"($env.HOME)/.cargo/bin")
Elvish:
set paths = [~/.cargo/bin/ $@paths]
If none of these work, or you are unsure how to do this in your shell, consider moving the binary to /usr/bin, example command:
sudo mv ~/.cargo/bin/rsftch /usr/bin
Other issues
File an issue.
Usage
Usage: rsftch [OPTION...] [OVERRIDE] [MARGIN] [CONFIG FILE(s)] [INFO]
-h, --help, --usage Bring up this menu.
-v, --version Print version number.
-o, --override Overrides distribution, affects ASCII and "distro" info. Running without
an argument prints all possible options.
-m, --margin Add margin to the info sections, default 1.
-c, --color-config Specify another color config file, to be used instead of the default one.
-i, --info-config Specify another info config file, to be used instead of the default one.
--ignore-color-config Ignores the custom color config and uses the default one.
--ignore-info-config Ignores the custom info config and uses the default one.
--ignore-config Ignores both configs and uses the default ones.
--info Only prints the value of the following arguments info, for example
`rsftch --info distro` would output: "EndeavourOS".
Info config is located at: ~/.config/rsftch/info.json
Color config is located at: ~/.config/rsftch/colors.json
Time comparison
- Rsftch: 33.26 milliseconds
- Neofetch: 284.03 milliseconds
- Screenfetch: 832.59 milliseconds
NOTE: Timing varies heavily depending on e.g. what package manager your distro uses, these times are from my system. (arch + pacman)
Compatability
Currently Rsftch only works on GNU/Linux, (most) BSD distributions and (probably) Mac OS.
Contribrutions
All PRs are always welcome, just remember to make sure it works on both NetBSD and Linux.
Thanks
Thank you to:
- @siris for helping me with speeding up everything massively and packaging rsftch for Funtoo Linux.
- @0323pin for packaging rsftch on pkgsrc and uploading it to beucismis/awesome-fetch.
- @MasterRoby3 for fixing
aptsupport in packages function.
Todo
- Configuration via JSON
- Version command
- Rewrite memory function
- Optimizations (?)
- Automatic ASCII generation
- Add TOML / JSONC support
- Add support for more info sections (?)