Skip to content

feat: Temperature monitoring — CPU and component temps in System Info and Memory tab #11

@chojuninengu

Description

@chojuninengu

Summary

Add real-time temperature readings for CPU and other hardware components
(GPU, NVMe, etc.) using the sysinfo Components API — already available in
the dependency tree.

Why

Critical for users running heavy workloads, gaming machines, home servers,
or troubleshooting thermal throttling. Pairs naturally with the existing
CPU stat card and System Info tab.

Scope

Rust backend

  • Add get_temperatures() -> Vec<TempReading> Tauri command
  • Use sysinfo::Components to read all available sensors:
  pub struct TempReading {
      pub label: String,       // "CPU Package", "Core 0", "NVMe", etc.
      pub current_celsius: f32,
      pub max_celsius: f32,
      pub critical_celsius: Option<f32>,
  }
  • Handle gracefully when sensors are unavailable (virtual machines, some cloud instances)
  • Include temperature data in the existing process-update event payload

Frontend — Memory tab

  • Add a small CPU temperature badge to the CPU stat card
    • Green: < 60°C
    • Amber: 60–80°C
    • Red: > 80°C
  • Show current temp and max recorded this session

Frontend — System Info tab

  • Add a new "Temperatures" section below the CPU section
  • Table of all detected sensors: label, current temp, max temp, critical threshold
  • Color-coded rows based on severity
  • "No sensor data available" message for unsupported platforms

Frontend — Notifications (existing system)

  • Add CPU temperature threshold to Settings (default: alert at 85°C)
  • Trigger existing notification system when threshold is crossed

Acceptance criteria

  • Temperatures show on Linux and macOS (Windows sensor access varies by hardware)
  • CPU temp visible on the Memory tab stat card
  • Full sensor table in System Info tab
  • Graceful "unavailable" message on unsupported platforms
  • Temperature alert integrates with existing notification system
  • Celsius display with optional Fahrenheit toggle in Settings

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions