Skip to content

Releases: pbek/uncrash

Release v0.1.0

06 Feb 18:35
152a4bd

Choose a tag to compare

Added

  • Current CPU Frequency Display: Added real-time display of actual CPU frequency (not just the max limit)

    • New currentFrequency property in CpuController that reads from /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
    • Exposed via DBus as CurrentFrequency property
    • Displayed in main UI Status Card with highlight color for easy visibility
    • Updates every 2 seconds alongside other metrics
    • Shows the actual current running frequency of the CPU, useful for verifying throttling is working
  • Auto-Protection Cooldown Timer: Added configurable cooldown to prevent rapid CPU limit toggling

    • When auto-protection applies CPU frequency limit due to high GPU power, it will wait a configurable amount of time before removing the limit
    • Prevents rapid on/off cycling when GPU power fluctuates around the threshold
    • Default cooldown: 5 seconds (configurable from 0-30 seconds)
    • Cooldown slider and spinbox in "CPU Frequency Limit" card
    • Setting cooldown to 0 disables the feature (immediate removal like before)
    • Cooldown only applies to automatically applied limits, manual limit removal is instant
    • Persisted in daemon settings at /etc/uncrash/uncrash.conf

Release v0.0.6

05 Feb 20:01
667423d

Choose a tag to compare

Fixed

  • Fixed AMD GPU fan speed display showing incorrect percentage instead of RPM
    • AMD GPUs now always display fan speed in RPM (e.g., "949 RPM" instead of "949%")
    • NVIDIA GPUs continue to display fan speed as percentage
    • Uses GPU vendor detection to determine correct display format
    • Fallback logic: values >= 1000 shown as RPM, otherwise as percentage

Release v0.0.5

05 Feb 19:27
d3171ee

Choose a tag to compare

Fixed

  • Added support for Gigabyte motherboard temperature monitoring via gigabyte_wmi driver
    • Fixes motherboard temperature detection on Gigabyte B550M AORUS ELITE and similar boards
    • Driver was previously not included in the list of supported motherboard sensors

Release v0.0.4

05 Feb 19:12
f447899

Choose a tag to compare

Added

  • Comprehensive Temperature & Fan Monitoring: Added real-time hardware monitoring with multi-vendor support

    • New TemperatureMonitor class for reading temperature and fan sensors
    • Multi-GPU Support:
      • NVIDIA: Temperature and fan speed (%) via nvidia-smi
      • AMD: Temperature and fan speed (RPM) via amdgpu hwmon driver
      • Auto-detection of GPU vendor and model name
    • Multi-CPU Support:
      • AMD: k10temp and zenpower drivers
      • Intel: coretemp driver
      • Reads from /sys/class/hwmon/ interface
    • Multi-Motherboard Support:
      • ASUS: asus_wmi_sensors
      • Nuvoton: nct6775, nct6683
      • ITE: it87
      • Winbond: w83627ehf
      • Fintek: f71882fg
      • Auto-detects available chipset sensors
    • Fan Speed Monitoring:
      • CPU fan speed in RPM
      • GPU fan speed (RPM for AMD, percentage for NVIDIA)
      • Graceful handling of missing sensors
    • Updates every 2 seconds with real-time data
    • Exposed via DBus properties: GpuTemperature, GpuFanSpeed, CpuTemperature, CpuFanSpeed, MotherboardTemperature, GpuVendor, GpuName
  • Temperature Monitoring UI: New "Temperature & Fan Speeds" card in main interface

    • Displays side-by-side with "Current Status" card for easy monitoring
    • GPU Section: Vendor, model, temperature (color-coded), fan speed
    • CPU Section: Temperature (color-coded), fan speed
    • Motherboard Section: Temperature (color-coded)
    • Color-coded temperatures:
      • GPU: Green <70°C, Orange 70-80°C, Red >80°C
      • CPU: Green <75°C, Orange 75-85°C, Red >85°C
      • Motherboard: Green <50°C, Orange 50-60°C, Red >60°C
    • Thermometer and speedometer icons for visual clarity
    • Icons use opacity transitions to prevent UI jumping
  • System Tray Icon: Application now runs in the system tray

    • Shows window on tray icon click
    • Hide to tray instead of closing when clicking window close button
    • Right-click context menu with "Show Uncrash" and "Quit" options
    • Custom CPU chip icon design with three states:
      • Green CPU: Normal operation (no CPU throttling)
      • Red CPU: CPU frequency limit active (throttling)
      • Gray CPU: Disconnected from daemon
    • Dynamic tooltip showing GPU power and CPU frequency
    • Updates in real-time when manual throttle buttons are clicked
  • CPU Limit Status Tracking: Added cpuLimitApplied property throughout the application stack

    • CpuController now tracks actual CPU limit state (not just threshold exceeded)
    • Exposed via DBus as CpuLimitApplied property
    • Synced to GUI client via DaemonClient
    • Enables accurate status display for manual throttle actions
  • Enhanced UI Status Display:

    • Main status card now shows CPU limit state instead of just threshold status
    • New "CPU Limit Status" row with APPLIED/Not Applied indicator
    • GPU Threshold shows "(EXCEEDED)" badge when threshold is exceeded
    • Color-coded status indicators (red for active, green for normal)
  • Menu Bar: Added File menu with Quit action (Ctrl+Q keyboard shortcut)

Changed

  • Window close button now hides to tray instead of quitting the application
  • Tray icon and status indicators now accurately reflect CPU throttle state for both automatic and manual operations
  • Application continues running in background when window is closed
  • Improved UI Layout:
    • Status and Temperature cards positioned side-by-side (50/50 split) at top
    • Cards have matching heights for consistent appearance
    • "How It Works" card now expands to fill remaining vertical space
    • Removed unused resource files (uncrash-active.svg, uncrash-normal.svg, resources.qrc)
  • CPU Frequency Slider Behavior: Adjusting the CPU frequency limit slider no longer immediately applies the limit
    • Slider now acts as a configuration setting rather than an immediate action
    • Limit is only applied when:
      • Auto Protection triggers (GPU power exceeds threshold)
      • User manually clicks "Apply Limit Now" button
      • A limit is already active and needs to be updated to the new frequency
    • Prevents unintentional system disruption when adjusting settings
  • Periodic CPU Frequency Monitoring: CpuController now updates current CPU frequency every 2 seconds
    • Ensures "CPU Max Frequency" display always shows the actual current limit
    • Updates automatically when limits are applied or removed by any mechanism

Fixed

  • Fixed QML TypeError exceptions when quitting the application
  • Added null safety checks to all daemonClient property accesses using optional chaining (?.)
  • Added nullish coalescing operators (??) to provide default values when daemonClient is null
  • Added explicit null checks in all event handlers before calling daemonClient methods
  • Fixed boolean type error in "Apply Limit Now" button enabled state during shutdown
  • Tray icon now updates correctly when manual throttle buttons are clicked
  • Status display accurately reflects whether CPU limit is actually applied
  • Icon state is no longer confused between "threshold exceeded" and "limit applied"
  • Fixed UI jumping when fan speed icons appear by using opacity instead of visibility
  • Fixed card height calculation to prevent content from being cut off
  • Fixed "CPU Max Frequency" displaying incorrect value when limit is applied
    • Now properly reflects the actual current CPU frequency limit from sysfs

Release v0.0.3

04 Feb 22:10
18cda3d

Choose a tag to compare

Fixed

  • Fixed Kirigami.Card layout issue where content was cut off on initial app launch
  • Wrapped card ColumnLayouts in Item containers with proper implicitHeight/implicitWidth bindings
  • Removed conflicting anchors.fill constraints that prevented proper size calculation
  • Cards now properly calculate and display their full height based on content

Changed

  • Increased default window height from 600px to 800px for better visibility
  • Increased minimum window height from 400px to 700px to ensure all UI elements are visible

Release v0.0.2

04 Feb 21:13
8cb34eb

Choose a tag to compare

  • Fixed CPU frequency control in systemd daemon by replacing interactive privilege escalation (pkexec/sudo) with direct sysfs file writes
  • Daemon now properly writes to /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq as root
  • Improved error reporting with per-CPU success/failure messages

Release v0.0.1

04 Feb 20:36
2ff5ee9

Choose a tag to compare

  • GPU power monitoring (NVIDIA via nvidia-smi, AMD via sysfs)
  • Automatic CPU frequency throttling when GPU power exceeds configurable threshold
  • Real-time monitoring GUI with live power and frequency updates
  • Manual throttle control (apply/remove frequency limits)
  • Auto-protection mode for hands-free operation
  • Background daemon (uncrashd) runs as systemd service
  • Lightweight Kirigami-based GUI client (uncrash)
  • DBus communication between daemon and client
  • Declarative NixOS module with services.uncrash options
  • Automatic DBus policy and systemd service installation
  • Security hardening with ProtectSystem, ProtectHome, NoNewPrivileges
  • Requires root privileges for daemon (CPU frequency control)
  • Requires nvidia-smi for NVIDIA GPU support or sysfs hwmon for AMD