yoinky 0.2.0

TUI tool for monitoring system resources like CPU, RAM, and GPU.
# Yoinky :: System Monitor

Yoinky is a Linux system monitor built with Rust and `ratatui`. The interface now behaves more like a compact dashboard instead of a static snapshot: it keeps live history, shows per-core activity, highlights busy processes, and surfaces system context such as load, uptime, storage pressure, and network throughput.

## Features

- **Live pulse panels**: CPU, memory, and network sparklines update continuously.
- **Per-core histogram**: Core activity is rendered as grouped bars for quick hotspot detection.
- **Tabbed workspace**: Split the interface into `Overview`, `Processes`, `Devices`, and `I/O` pages.
- **Process spotlight**: Processes are now scrollable and can be sorted by CPU, memory, or PID.
- **System signature panel**: Host, OS, kernel, CPU model, frequency, uptime, load averages, and task summary are all visible together.
- **Memory and swap pressure**: Separate gauges for RAM and swap.
- **Storage telemetry**: Root filesystem usage with totals and utilization percentage.
- **Disk throughput lanes**: Read and write rates per physical disk.
- **Network throughput**: Active interface plus live download and upload rates, with per-interface tables.
- **GPU awareness**: NVIDIA and AMD temperature support, with extra utilization and VRAM details when `nvidia-smi` is available.
- **Device telemetry**: Battery state and `hwmon` temperature sensors when the host exposes them.
- **Responsive layout**: Falls back to a compact summary view on smaller terminals.

## 🛠️ Technology Stack

- **[Rust]https://www.rust-lang.org/**: The core programming language, chosen for its safety and performance.
- **[ratatui]https://ratatui.rs/**: A TUI (Terminal User Interface) library for creating rich, interactive terminal applications.
- **[crossterm]https://github.com/crossterm-rs/crossterm**: A terminal manipulation library used as a backend for `ratatui`.
- **[procfs]https://github.com/eminence/procfs**: A library to access system and process information from the `/proc` filesystem on Linux.

## 🚀 Getting Started

### Prerequisites

- [Rust]https://www.rust-lang.org/tools/install (and Cargo) installed on your system.
- On NVIDIA systems: `nvidia-smi` command-line tool must be installed and in your PATH.
- On AMD systems: `rocm-smi` may be required for temperature readings on newer cards.

### Run From Source

```bash
cargo run
```

### Optional Flags

```bash
cargo run -- --tick-rate-ms 500 --history 180
```

- `--tick-rate-ms`: refresh interval in milliseconds.
- `--history`: number of samples stored for the sparkline charts.

### Controls

- `Tab`, `l`, `Right`: next tab
- `Shift+Tab`, `h`, `Left`: previous tab
- `j`, `Down`: scroll process list
- `k`, `Up`: scroll process list upward
- `s`: cycle process sorting mode
- `q`, `Esc`: quit

### Installation

1. Install Yoinky using Cargo:

```bash
cargo install yoinky
```

2. Run the application:

```bash
yoinky
```

3. Press `q` or `Esc` to exit.

### Development Notes

- The TUI must run inside a real terminal because raw mode and the alternate screen are required.
- `cargo check` is enough for non-interactive CI validation, but `cargo run` should be tested in a terminal emulator.

## Screenshot

![Yoinky](yoinkySS1.png)