A cute, shark-themed Linux fetch tool made with speed, consistent output, and both vintage and modern hardware support in mind! SHORKFETCH is perhaps not as feature-rich as alternatives like neofetch and fastfetch, but instead focuses on being performant, providing cleaner output, and has text wrapping by default. It is the bundled fetch utility for SHORK Operating Systems like SHORK 486, but is available for Linux systems in general.
In terms of "cleaner output", SHORKFETCH has a comprehensive focus on providing clean and accurate CPU and GPU name reporting, especially for older hardware, non-x86 architectures, and Intel integrated graphics. It can override a generic, verbose or inaccurate name given by the Linux kernel and the hardware itself, in favour of a name closer to what you expect, even distinguishing generations if no model number that could do so is given.
SHORKFETCH is young, and I would love to hear from you if you have tried SHORKFETCH and found that (in particular) the CPU, DE, WM and/or GPU fields were incorrect or imprecise, or in your opinion, were overly verbose, containing marks like "(R)", "TM", etc. and could likely be shortened without compromising understanding. Feel free to create an issue here or contact me via email, Discord (@sharktastica) or Reddit (u/sharktastica), and I will take your feedback on board! Please include a screenshot of your SHORKFETCH's output, some context about your system's real specifications and environment, and especially the following depending on the issue:
- CPU:
cat /proc/cpuinfo - DE/WM:
echo $XDG_CURRENT_DESKTOP - GPU:
lspci -nn | grep 0300
SHORKFETCH is available on the AUR.
yay -S shorkfetch
nix run github:SharktasticA/shorkfetch
nix profile install github:SharktasticA/shorkfetch
You will need a C compiler, make and libc. SHORKFETCH is often tested with GCC + glibc or musl.
curl -fsSL https://raw.githubusercontent.com/SharktasticA/shorkfetch/refs/heads/main/install.sh | bash
Clone this repository by running git clone https://github.com/SharktasticA/shorkfetch, or downloading as a zip file and extracting it. When inside the new directory, run make install to install to /usr/bin (you may need sudo if not installing as root). If you want to install it elsewhere, you can override the install location prefix like make PREFIX=/usr/local install to install it to /usr/local/bin.
Below are some optional parameters you can include when running make or make install.
-
NO_STR_CLEANING=1: Configures SHORKFETCH to exclude most code relating to string replacement and cleaning to reduce the binary size by ~1MB and speed up processing time. It is useful for embedded systems and/or systems severely space constrained. It is presently used for SHORK DISKETTE's version of SHORKFETCH. -
X86_ONLY=1: Configures SHORKFETCH to exclude any code relating to CPU architectures other than x86 to reduce the binary size by ~10KB and speed up processing time. This option is presently used for SHORK 486's, SHORK DISC's and SHORK DISKETTE's version of SHORKFETCH.
Usage: shorkfetch [OPTIONS]
-b,--bullet: Specifies a custom character to use with bullet-point mode; no assignment returns the current character-cl,--colour: Specifies a custom accent colour; no assignment returns the current colour-co,--compact: Compacts field names and field values-f,--fields: Specifies a custom fields list and order; no assignment returns list of current fields-h,--help: Shows help information and exits-m,--mode: Select which view mode to use: [n]ormal, [b]ullets-na,--no-art: Disables the SHORK ASCII art-ne,--no-esc: Disables all ANSI espace codes and colour features-r,--reset: Resets to default, deletes configuration file and exits-s,--save: Saves chosen options to a configuration file-v,--version: Displays version number and exits
Only one colour can be used at a time. "off" will use your system's/terminal emulator's typical text colour.
black blue cyan green
magenta red white yellow
grey bright_blue bright_cyan bright_green
bright_magenta bright_red bright_white bright_yellow
off
These are possible field names you can use with the --fields argument. You enter then as a comma-separated list in double quotes. You can use any more than once and in any order, though there is a maximum of 50 fields.
| Field | Description | Lines |
|---|---|---|
| (single blank space) | New line | 1 |
--- |
Separator | 1 |
os |
Operating system | 1 |
krn |
Kernel | 1 |
upt |
Uptime | 1 |
pkgs |
Packages | 1 |
scn |
Screen(s) | 1-∞ |
de |
Desktop environment | 1 |
wm |
Window manager and/or Wayland compositor | 1 |
trm |
Terminal emulator/console size | 1 |
sh |
Shell | 1 |
cpu |
CPU | 1 |
gpu |
GPU(s) | 1-4 |
ram |
System memory | 1 |
swap |
Swap memory | 1 |
dsk |
Disk size(s) | 1-10 |
root |
Root partition size | 1 |
lip |
Local IP address | 1 |
clrs |
ANSI escape code base & bright 16-colour palette | 2 |
clba |
ANSI escape code base 8-colour palette | 1 |
clbr |
ANSI escape code bright 8-colour palette | 1 |
When customising SHORKFETCH with the options above, you can use the --save option to store your choices in a configuration file. Subsequent saves will append the new options or replace existing ones. The configuration file (it is not recommended to modify this manually):
~/.config/shorkutils/shorkfetch.conf
To reset SHORKFETCH to its default configuration, simply run with the --reset option.
gay can be used to change the colour of stdout piped into it to a random or chosen LGBTQ+ flag. If you use it with SHORKFETCH as-is, you may notice it does not handle the ANSI escape codes SHORKFETCH uses to position its fields and construct the 16-colour palette. You can use the -ne/--no-esc option to disable all ANSI escape codes to increase compatibility with gay and perhaps similar commands with the same issue, though note the aforementioned colour palette will be disabled.
SHORKFETCH is developed under a no LLM-generated code or documentation policy. PR requests that contain contributions from an LLM bot or are obviously LLM-generated/vibecoded will be denied. I cannot vouch this for third-party libraries, or that the tutorials I'm learning from and sources I'm reading weren't influenced by LLM content unbeknownst to me, but I will do my best to recognise such and ensure this doesn't affect the things I control. Even considering locally-trained models or limiting LLM usage to speeding up repetitive tasks (etc.), my wish is for the SHORK family (SHORK 486, SHORK Utilities and SHORK Entertainment) to be a human-made project. :)




