Simple Terminal UI to monitor processes like a custom stats curse script, htop and others.
The monitor is based on a collection of basic scripts that are combined to build a highly customizable dashboard.
Each script can be individually executed and/or used as the building block for creating your own custom monitor/dashbord.
Go through the whole document to learn more about each script and how to properly configure and customize your monitor.
Each script will be described in its own section, containing its required configuration and dependencies.
All package names provided are for Gentoo, so the naming in different distros may vary.
This section describes all the auxilliary scripts used to retrieve system information.
For the scripts that use lm-sensors
, it is highly recomended to first detect sensors
and then grab each chip id to use in the scripts, by running:
# sensors-detect
% sensors
Retrieves CPU package temperature, followed by each core temperature, in Celcius.
lm-sensors
% ./cpu.sh {cores count} {optional sensors chip id}
Retrieves AMD GPU edge, junction and memory temperatures, in Celcius, along with the current PPT watts value.
lm-sensors
% ./amd_gpu.sh {optional sensors chip id}
Retrieves NVIDIA GPU current core temperature, in Celcius.
nvidia-settings
% ./nvidia_gpu.sh {GPU index}
Retrieves NVMe drive composite temperature, in Celcius.
lm-sensors
% ./nvme.sh {optional sensors chip id}
Retrieves SATA drive smart temperature, in Celcius.
Input is the disk combined name and serial, as reported by executing
udisksctl status
and replacing spaces and '-' with '_'.
udisksctl
% ./sata.sh {Disk_Name_Serial}
Retrieves local weather from Open-Meteo API[1], for provided latitude and longitute.
curl
% ./weather.sh {latitude} {longitute}
Curse script to monitor system information and others, based on Bash Simple Curses[2].
We are using Bash Simple Curses repo as a git
submodule, so on initial pull:
% git submodule update --init
To pull updates:
% git pull --recurse-submodules
Script uses the weather script to retrieve current local weather information, so we must provide our latitude and longitude at lines 30 and 31. Example:
lat=52.52
long=13.41
Now we can configure what we want to display in our window inside main function at line 49!
Default configuration displays basic system info like user, hostname, time, date and weather.
Additionally we can configure system devices information retrieval, like CPU, GPU and disks temperatures.
Examples on how to retrieve each component type information is provided, so you need to configure devices accordingly and append their records in main function.
You can remove or add anything you want!
% ./stats_curse.sh
Tha main TUI tmux script to monitor multiple processes.
tmux
htop
cava
Since this is a normal tmux
script, you can add more processes to monitor.
Don't forget to configure panes sizes for a nicer output.
Example dashboard:
% ./monitor.sh
[1] Open-Meteo: https://open-meteo.com/
[2] Bash Simple Curses: https://github.com/metal3d/bashsimplecurses