Home
Softono
zfxtop

zfxtop

Open source BSD-2-Clause Go
402
Stars
14
Forks
6
Issues
7
Watchers
2 years
Last Commit

About zfxtop

zfxtop is a terminal-based system monitor written in Go that displays real-time information about time, CPU load, RAM usage, disk usage, GPU statistics, and other system metrics. Designed as an alternative to status bars like polybar and waybar, it presents system information through a terminal user interface built with the bubbletea framework. The tool is intended for Linux systems running on x86 CPUs and is currently in early development. zfxtop supports customization through an INI configuration file located at /.config/zfxtop/conf.ini, allowing users to adjust update intervals, icon visibility (requires a Nerd Font), border styles such as rounded, sharp, double, ascii, or dot, and color settings using a 256-color palette. Installation options include a shell script using curl or wget, the AUR package manager for Arch-based distributions, and manual building from source with optional CPU-specific optimizations like GOAMD64=v3. Docker and Podman support is also available for containerized deployments. The p

Platforms

Web Self-hosted

Languages

Go

Links

fetch top written by bubbletea enjoyer :dolphin:


Description 📖

Historically I don't use bars like polybar/waybar and so I have nowhere to put information about time, CPU load, RAM usage, disk usage, and other cool stuff so I decided to write a little tui utility for this purpose. Also I tried to make it as nice and nice to use as i can.

At this point zfxtop is in a very early stage of development so feel free to open an issue with your problems and suggestions.

The code is written in Go because it is blue :cup_with_straw:.

Note that this is only compatible with the linux kernel and x86 cpus at this time.


Installation ☁️

with curl

curl -sSL raw.githubusercontent.com/ssleert/zfxtop/master/install.sh | sh

with wget

wget -qO- raw.githubusercontent.com/ssleert/zfxtop/master/install.sh | sh

with aur

yay -S zfxtop

Configuration ⚙️

I decided that using toml or yaml makes no sense for such small configuration files, but it increases code size, so I decided to use ini

~/.config/zfxtop/conf.ini
config file example
[tui]

# time between info update in millisecond
update = 100

# requires nerd font
icons = true

# can be rounded, sharp, double, ascii, dot
borders = rounded

# enable or disable colors
colors = true


# colors are set in the 256-color palette
[colors]
faint  = 238
mid    = 245

load0  = 27
load1  = 63
load2  = 99
load3  = 135
load4  = 171
load5  = 207

tempr0 = 49
tempr1 = 79
tempr2 = 109
tempr3 = 139
tempr4 = 169
tempr5 = 199

list0  = 109
list1  = 79
list2  = 169

Building 📦

install Go before it

git clone https://github.com/ssleert/zfxtop.git
cd zfxtop/
./scripts/build.sh

If you have a CPU with amd64 architecture you can try to build with optimizations

# v2, v3, v4 supported
GOAMD64=v3 ./scripts/build.sh

with podman/docker

podman build . -t zfxtop
podman run -it --rm --name zfxtop zfxtop

btw you can set alias with podman and use it as regular command

alias zfxtop="podman run -it --rm --name zfxtop zfxtop"

Contribute

Before contributing, please run contribute.sh script

./scripts/contribute.sh

made with 🫀 by sfome