Skip to content

feat(GUI): add customizable temperature-curve fan control mode#67

Open
3Mker wants to merge 1 commit into
AlexIII:masterfrom
3Mker:feat/tcurve
Open

feat(GUI): add customizable temperature-curve fan control mode#67
3Mker wants to merge 1 commit into
AlexIII:masterfrom
3Mker:feat/tcurve

Conversation

@3Mker
Copy link
Copy Markdown

@3Mker 3Mker commented May 11, 2025

Introduce a new “Curve” mode that lets users draw and apply custom GPU/CPU temperature-to-fan-speed curves:
• In [AppGUI.py]
– Embed a TemperatureCurve widget with a selector to switch between GPU and CPU curves
– Show/hide the curve editor when entering/exiting Curve mode
– Persist curve points in QSettings (serialize/deserialize)
– On each update tick or mode switch, look up the current temperature on the drawn curve and set the fan speed accordingly

• In TemperatureCurve.py
– Expose APIs to render an interactive point-editing chart
– Provide get_fan_speed_for_temp() to map a temperature value to a fan-speed percentage

• In SettingsKey enum
– Add keys for storing GPUCurvePoints and CPUCurvePoints

No existing fan-control logic was removed—Curve mode simply augments the Custom mode path. All new code is covered by manual verification and preserves backward compatibility with existing modes.

@AlexIII
Copy link
Copy Markdown
Owner

AlexIII commented May 24, 2025

Hi! Thank you very much for the contribution! Very nice feature, putting your PR on my task list.

@AlexIII AlexIII self-assigned this May 24, 2025
@AlexIII AlexIII requested a review from Copilot May 24, 2025 09:12

This comment was marked as resolved.

@AlexIII
Copy link
Copy Markdown
Owner

AlexIII commented May 24, 2025

A few problems:

  1. When I switch to CPU curve and then back to GPU the window suddenly changes in height. We need to set the curve plot height to a fixed value.
  2. Axis labels ("Fun speed", "Temperature") and point labels are falling out from the container boundaries. (This is probably due to the hard-coded margins in pixels that do not account for system display scale setting)
Recording.2025-05-24.143333.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants