Terminal system monitor for temps, usage, fans, and voltages.
| Panel | Source | Notes |
|---|---|---|
| Temperatures | sensors -j (lm-sensors) |
CPU via k10temp (AMD), NVMe via nvme-*, motherboard via it8792 |
| Usage | psutil, nvidia-smi |
CPU % and RAM from psutil; GPU util and VRAM from nvidia-smi |
| Fans | sensors -j (lm-sensors) |
Fan RPMs via it8792 Super I/O chip |
| Voltages | sensors -j (lm-sensors) |
CPU Vcore, DDR VTT, Chipset via it8792 |
| Errors | rasdaemon SQLite DB |
Memory CE/UE, MCE, PCIe AER, Extlog |
- Python 3.8+
lm-sensors—sensorscommand must be available and configured- NVIDIA GPU +
nvidia-smi— optional, GPU rows are skipped if unavailable rasdaemon— optional, enables the Errors panel
pip install -r requirements.txt
python heatmor.py
Refreshes every 2 seconds. Press Ctrl+C to exit.
The sensor parsing is tuned for specific chips:
- CPU temp: AMD
k10tempdriver (Ryzen/EPYC) - Mobo/fans:
it8792Super I/O chip - NVMe: first
nvme-*sensor found
If your hardware uses different chips, edit the get_sensors() function to match your sensors -j output.
The Errors panel uses rasdaemon to track hardware errors (memory CE/UE, MCE, PCIe AER). Install and make its database readable:
sudo apt install rasdaemon
sudo systemctl enable --now rasdaemon
sudo chmod o+rx /var/lib/rasdaemon
sudo chmod o+r /var/lib/rasdaemon/ras-mc_event.dbIf rasdaemon is not installed or the database is not readable, the panel shows "Unavailable (rasdaemon)".
