Skip to content

Simple Terminal UI to monitor processes like a stats curse script, htop and others.

License

Notifications You must be signed in to change notification settings

aggstam/tui-monitor

Repository files navigation

tui-monitor

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.

Information retrieval scripts

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

cpu.sh

Retrieves CPU package temperature, followed by each core temperature, in Celcius.

Dependencies

  • lm-sensors

Usage

% ./cpu.sh {cores count} {optional sensors chip id}

amd_gpu.sh

Retrieves AMD GPU edge, junction and memory temperatures, in Celcius, along with the current PPT watts value.

Dependencies

  • lm-sensors

Usage

% ./amd_gpu.sh {optional sensors chip id}

nvidia_gpu.sh

Retrieves NVIDIA GPU current core temperature, in Celcius.

Dependencies

  • nvidia-settings

Usage

% ./nvidia_gpu.sh {GPU index}

nvme.sh

Retrieves NVMe drive composite temperature, in Celcius.

Dependencies

  • lm-sensors

Usage

% ./nvme.sh {optional sensors chip id}

sata.sh

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 '_'.

Dependencies

  • udisksctl

Usage

% ./sata.sh {Disk_Name_Serial}

weather.sh

Retrieves local weather from Open-Meteo API[1], for provided latitude and longitute.

Dependencies

  • curl

Usage

% ./weather.sh {latitude} {longitute}

stats_curse.sh

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

Configuration

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!

Usage

% ./stats_curse.sh

monitor.sh

Tha main TUI tmux script to monitor multiple processes.

Dependencies

  • tmux
  • htop
  • cava

Configuration

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:

Screenshot

Usage

% ./monitor.sh

References

[1] Open-Meteo: https://open-meteo.com/
[2] Bash Simple Curses: https://github.com/metal3d/bashsimplecurses

About

Simple Terminal UI to monitor processes like a stats curse script, htop and others.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages