ngtop — Design decisions and project history

This document records why ngtop is the way it is: the decisions taken while designing and building it, and the history of the project. It complements the user manual (what ngtop does) and the technical manual (how it is built).

Decisions were discussed with the project owner in Italian. The interface and the manuals are in English (D12).

Format of each decision: context → decision → consequences. Status is accepted unless noted otherwise.


Contents

  1. Goals
  2. Decisions
  3. History
  4. Open questions and known gaps

1. Goals

ngtop is a system monitor for the terminal that joins what btop, nvtop and the Windows Task Manager each show in part: CPU, memory, GPUs, processes, network, disks and services, in one program. Working rules:


2. Decisions

D1. One static binary

D2. Rust with ratatui and crossterm; pure-Rust dependencies only

D3. Read the kernel interfaces directly

D4. The interface: five sections

D5. GPUs: AMD and Intel first, NVIDIA detected only

D6. Never wake a sleeping discrete GPU

D7. Signals that cannot reach the wrong process

D8. Services through D-Bus in a worker thread

D9. Performance budget

D10. Time zone read from the system files

D11. Colours

D12. English interface and manuals; licence

D13. Configuration

D14. Website


3. History

All work took place on 2026-10-23, in phases. Every step of the plan ended with an independent review before the next began.

PhaseWhat happened
1. MockupsTen HTML mockups of the interface in mockup/; the owner chose five sections (D4).
2. PlanA written plan in eight steps, approved by the owner.
3. Steps 1–81 collectors; 2 TUI frame; 3 Overview; 4 GPU; 5 Processes; 6 Network & Disks; 7 Services; 8 finishing touches.
4. Parallel workSteps 3–5 were written by three programmers in parallel, each on a separate copy of the project, and joined with a three-way merge.
5. DistributionsTests on eight distributions with scripts/test-distro.sh (D1).
6. WebsiteTen proposals, direction "Daylight" chosen; site published (D14).
7. English and manualsInterface moved to English, licence set (D12), user and technical manuals written, with this document.

4. Open questions and known gaps

TopicStatus
NVIDIADetected only (D5). Full support planned.
Architecturesx86_64 only.
Real hardwareMeasured on an Intel N100 machine and tested in containers on eight distributions; other hardware, especially other GPUs, is unverified.