Skip to content

Repository files navigation

SHORKFETCH

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.

A screenshot of SHORKFETCH running on Debian 13

Help wanted!

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

Building & installing

Arch

SHORKFETCH is available on the AUR.

yay -S shorkfetch

Nix

Run

nix run github:SharktasticA/shorkfetch

Install

nix profile install github:SharktasticA/shorkfetch

Everything else

Requirements

You will need a C compiler, make and libc. SHORKFETCH is often tested with GCC + glibc or musl.

Quick/automated install

curl -fsSL https://raw.githubusercontent.com/SharktasticA/shorkfetch/refs/heads/main/install.sh | bash

Manual install

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.

Build parameters

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.

Running

Usage: shorkfetch [OPTIONS]

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

Colours

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

Fields

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

Configuration

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.

Notes

Using with gay

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.

Screenshots

SHORKFETCH on real hardware + Debian 13

A screenshot of four different SHORKFETCH configurations running on Debian 13

SHORKFETCH on 86Box + SHORK 486

A screenshot of SHORKFETCH running on SHORK 486

A screenshot of four different SHORKFETCH configurations running on SHORK 486 running inside 86Box

SHORKFETCH on VMware Workstation + SHORK 486

A screenshot of four different SHORKFETCH configurations running on SHORK 486 running inside VMware Workstation

AI policy

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. :)

About

A cute shark-themed Linux fetch tool made with speed, consistent output, and old AND new hardware support in mind

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages