Commit Graph
1280 Commits
Author SHA1 Message Date
Ilya Zlobintsev f492c117d7 chore: replace cache-apt-pkgs with plain apt install 2026-10-24 11:41:12 +03:00
Roman Makarov 330026f081 chore: fix profile rule api reference (#1233)
* chore: fix profile rule api reference

* comment filter
2026-10-23 22:03:04 +03:00
Roman Makarov 16af419cf1 chore: move wiki to main repo (#1221)
* migrate wiki

* update Readme

* try different width

* upd

* upd link in about-dialog

* move wiki from dedicated folder
2026-10-21 23:29:44 +03:00
Ilya Zlobintsev 705cc8e667 fix: don't keep waiting for events from an exited buscctl command in profile watcher (#1226) 2026-10-11 10:22:30 +03:00
Roman Makarov 37f7bc0842 refactor: migrate thermals-page to adjustmentRow (#1208)
* move adjustmentRow refactoring

* refactor back to FactoryComponent

* migrate thermals page to adjustmentRow

* remove thermal page tabs

* block signal

* basic fixes

* layout fixes

* fanCruveFrame: extract chart state into it's own struct

* don't create uneeded adjustments instead of hiding them
2026-10-10 11:57:56 +03:00
Ilya Zlobintsev ad250926ef fix: only show apply confirmation dialog on visible windows (#1225) 2026-10-07 22:57:12 +03:00
Roman Makarov 3035f6394b feat: reusable checkboxButton widget (#1224)
* add checkbox into the button

* add CheckboxButton

* preserve border color

* move css

* simplify
2026-10-04 22:39:21 +03:00
Ilya Zlobintsev bd9aa0c1df feat: add UMA carveout option for AMD iGPUs (#1219)
* feat: UMA carveout daemon option

* feat: working UI

* chore: switch to released lib
2026-10-04 13:44:54 +03:00
Ilya Zlobintsev 6e46792968 fix: always exit application when main window is closed 2026-10-04 13:11:20 +03:00
Roman Makarov 1aad46c986 fix: apply dialog should use active window instead of main (#1220)
* fix: apply dialog should use active window instead of main

* use active_window()
2026-10-04 12:55:22 +03:00
Roman MakarovandIlya Zlobintsev 8d7361a4a9 feat: inline power states (#1213)
* feat: inline power states

* markup fixes

* polish p-states row

* align the p-state values by right side

* refactor

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2026-10-04 12:53:53 +03:00
aenagit 6a2e669a2f chore: Update device_ids.json (Add PowerColor Red Devil RX 6950 XT) (#1223) 2026-10-04 09:19:53 +03:00
Roman MakarovandIlya Zlobintsev 8e3ac99cc1 feat: hide nvidia all pstates offset behind flag (#1214)
* feat: hide nvidia all-pstate offset toggle under experimental flag

* check if it's used already

* ignore the non p0 states unless the flag is set

* chore: drop dedicated oc msg

* fix: missing dot in msg

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2026-10-03 23:09:35 +03:00
lact-renovate[bot] 0f7da6d88c chore(deps): update all dependencies (#945)
Co-authored-by: lact-renovate[bot] <257396481+lact-renovate[bot]@users.noreply.github.com>
2026-10-03 06:30:50 +02:00
Roman Makarov a844b05f2c fix: use nvapi for vram/hotspot temp channel mapping (#1216)
* add struct

* use dynamic channel info to pick the right vram/hotspot channel

* get mask from get_info to avoid extra nvapi call

* move get_info from stats poll to new

* fix type
2026-10-02 16:36:45 +03:00
Roman Makarov c55a6ebe13 fix: move performance frame listbox (#1209)
* fix performance-frame render

* power mode UI fixes
2026-09-26 14:41:08 +03:00
datenwolfandWolfgang Draxinger 9bbda62034 chore: fix ambiguous phrasing in German UI translation for automatic profile rule application (#1212)
Co-authored-by: Wolfgang Draxinger <code@datenwolf.net>
2026-09-25 11:07:06 +03:00
Ilya ZlobintsevandRoman Makarov e40f768428 docs: add AI policy (#1210)
* docs: add AI policy

* fix: typo

* add more specific rules for AI bug reporting (#1211)

* add more specific rules for AI bug reporting

* simplify

* keep reported with rules statement

---------

Co-authored-by: Roman Makarov <rmakarov94@gmail.com>
2026-09-23 23:04:16 +03:00
Roman Makarov a2323301c5 feat: detachable pages (#1203)
* wip

* refactor

* markup fixes

* use static sidebar min-width

* upd spacing

* move detachable page

* toggle detach on sidebar's elm icon click

* simplify wording

* fix

* small cleanup

* clippy

* small ref

* use enum for pageId

* replace set_transient_for with set_application

* show detach button for selected page

* shrink icon
2026-09-20 10:35:55 +03:00
Roman MakarovandIlya Zlobintsev 38874d1301 feat: update adjustment row UI (#1207)
* add adjsutment row description

* refactor

* use more specific key for details

* experiments

* fix paddings and add scales to sizegroup

* refactor to boxed-list

* use set_name for page_section

* handle popover lifecycle properly

* fix text align

* feat: show unit inline in the limits

* chore: improve alignment

* fix formatting for value with unit

* remove sizegroup from hidden rows

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2026-09-19 20:04:46 +03:00
Ilya Zlobintsev 7d6dfb42f0 chore: bump vulnerable dependencies 2026-09-17 21:32:41 +03:00
Roman Makarov 4422096c38 feat: add language selector to preferences dialog (#1199)
* feat: add language selector to preferences dialog

* remove excessive LazyLock::force
2026-09-17 21:31:20 +03:00
Roman MakarovandIlya Zlobintsev 4db0e87b66 feat: oc cards layout (#1178)
* feat: change OC layout to cards

* feat: switch from checkbox to toggle-buttons for OC optional features

* put into size-group, some small fixes

* make p-states more compact

* remove core offset p-states label

* add dedigated features block for sections

* hacky fix for padding

* update p-state section toggle

* fix adv block bottom border

* use info-dialog to guard manual p-lvl for p-states conf

* upd p-level description to fit in split layout

* independent all p-state toggle for core/vram

* p-level/powermizer: use more compact description

* rollback description changes due to better fix

* use OcAdjustment for performance limit

* shorten description a bit

* remove nvidia oc description

* rename power_section to power_frame for consistency

* fix signal blocking and simplify power frame visibility

* feat: move warning to sidebar and make it more specific

* phrasing

* remove wrapper

* remove OC-adjustment group, make adjustment components shared.

* rename css for consistency

* make adjustment row control it's state

* remove oc_adjustment_row wrapper

* simplify power_frames adjustment wiring

* fix css priority to avoid overrides

* breeze theme should be between adwaita and app css

* rename secondary_clocks

* set border radius to features buttons

* implement MasonryLayout via LayoutManager

* remember children's column

* Revert "remember children's column"

This reverts commit ed82e94eff.

* use 2 columns and flowbox instead of masonry

* cleanup

* redo layout with single column order control

* hide reset button on vram frame

* fix specificity

* upd spacing

* shorten labels

* chore: better label, disable all pstates button when it's not usable

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2026-09-13 14:04:47 +03:00
Roman Makarov 7145befe5e fix: simplify amd apply config (#1175)
* wip

* use pl manual during OD changes

* add snapshot with non-standard p-lvl

* upd dep
2026-09-12 21:56:09 +03:00
Xarth a5e0edf502 fix: restore power state configuration on GUI startup (#1201) 2026-09-12 21:55:20 +03:00
Roman Makarov 5f53c5bc29 refactor: adjustment-row on oc page (#1194)
* refactor: adjustment-row on oc page

* change steps for adjustment rows
2026-09-06 13:43:35 +03:00
Roman Makarov c83827d40b fix: set correct p-state configurable value after performance level set (#1179)
to manual
2026-09-06 00:34:31 +03:00
Roman Makarov b81a3771ed feat: oc page QoL (#1193)
* feat: move warning to sidebar and make it more specific

(cherry picked from commit ac745e669d)

* phrasing

(cherry picked from commit 44d87a13d9)

* remove wrapper

(cherry picked from commit 3bcad769e3)

* shorten description a bit

(cherry picked from commit f37485c34f)

* use info-dialog to guard manual p-lvl for p-states conf

(cherry picked from commit 563dfac8f4)

* p-level/powermizer: use more compact description

(cherry picked from commit e8c858d7a0)

* p-level fix formatting

* less agressive wording for warning

* fix typo

* remove oc-warning
2026-09-06 00:18:42 +03:00
Ilya Zlobintsev 4d326a46f7 Update flatbox to 0.0.14 (#1191)
* Update flatbox to 0.0.13

* Bump to 0.0.14
2026-09-05 20:32:37 +03:00
Ilya Zlobintsev 591e132fcd chore: always use embedded daemon when running UI with _LACT_DRM_SYSFS_PATH override 2026-09-05 11:21:17 +03:00
Ilya Zlobintsev 4f665ac48f fix: only report dumpable VBIOS when debugfs path actually exists 2026-09-05 11:16:55 +03:00
Ilya Zlobintsev ac7181e8c9 chore: update 5700xt test data 2026-09-05 11:12:09 +03:00
Ilya Zlobintsev 7180e9e0b1 refactor: abstract and mock AMD DRM, expand mock to cover Vulkan/OpenCL (#1189)
* feat: abstract AMD DRM

* chore: add more test data

* feat: use same mock info for vulkan and opencl

* chore: drop commented code
2026-09-02 18:35:14 +03:00
Ilya Zlobintsev 8caea2a5be chore: drop zbus_polkit patch 2026-08-31 18:37:42 +03:00
Roman Makarov fc455a6214 chore: use convetional names for nvapi calls (#1187) 2026-08-30 17:13:26 +03:00
Vukašin Vojinović 5d03fec6c4 chore: add ASUS RTX 5070 Ti PRIME OC (#1184) 2026-08-29 18:55:23 +03:00
github-actions[bot]andgithub-actions[bot] c4606c46a0 chore: Update spec files for release v0.10.1 (#1183)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-29 18:31:08 +03:00
Ilya Zlobintsev 30dc182391 chore: appdata with new release v0.10.1 2026-08-29 17:56:05 +03:00
+2 114bae7551 chore: translations update from Fedora Weblate (#1150)
* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Arabic)

Currently translated at 100.0% (262 of 262 strings)

chore: translated using Weblate (Arabic)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Arabic)

Currently translated at 99.6% (259 of 260 strings)

chore: translated using Weblate (Arabic)

Currently translated at 99.6% (259 of 260 strings)

chore: translated using Weblate (Arabic)

Currently translated at 100.0% (258 of 258 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: joo es <jonnyse@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/ar/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: translated using Weblate (Czech)

Currently translated at 100.0% (272 of 272 strings)

chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Czech)

Currently translated at 100.0% (262 of 262 strings)

chore: translated using Weblate (Czech)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Czech)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Czech)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Czech)

Currently translated at 100.0% (258 of 258 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Pavel Borecki <pavel.borecki@gmail.com>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/cs/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (German)

Currently translated at 100.0% (262 of 262 strings)

Co-authored-by: Daniel Bleher <fedoraproject.org@d.deltabravo.de>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/de/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (French)

Currently translated at 100.0% (260 of 260 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Tim Dusser-Jolly <tymmesyde@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/fr/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Italian)

Currently translated at 100.0% (262 of 262 strings)

chore: translated using Weblate (Italian)

Currently translated at 100.0% (262 of 262 strings)

chore: translated using Weblate (Italian)

Currently translated at 100.0% (262 of 262 strings)

chore: translated using Weblate (Italian)

Currently translated at 91.9% (239 of 260 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jessica Fletcher <social.sagging355@passinbox.com>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/it/
Translation: LACT/lact-gui

* chore: translated using Weblate (Georgian)

Currently translated at 100.0% (272 of 272 strings)

chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Georgian)

Currently translated at 100.0% (262 of 262 strings)

chore: translated using Weblate (Georgian)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Georgian)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Georgian)

Currently translated at 100.0% (258 of 258 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/ka/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Korean)

Currently translated at 100.0% (262 of 262 strings)

chore: translated using Weblate (Korean)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Korean)

Currently translated at 100.0% (260 of 260 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: 김인수 <simmon@nplob.com>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/ko/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Polish)

Currently translated at 100.0% (258 of 258 strings)

Co-authored-by: Bartłomiej H <mrinkatail@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/pl/
Translation: LACT/lact-gui

* chore: translated using Weblate (Russian)

Currently translated at 100.0% (272 of 272 strings)

chore: translated using Weblate (Russian)

Currently translated at 100.0% (272 of 272 strings)

chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Russian)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Russian)

Currently translated at 100.0% (260 of 260 strings)

chore: translated using Weblate (Russian)

Currently translated at 100.0% (258 of 258 strings)

Co-authored-by: Andrei Stepanov <adem4ik@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/ru/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translation: LACT/lact-gui

* chore: update translation files

Updated by "Cleanup translation files" add-on in Weblate.

chore: translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (262 of 262 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: de tiam <dehe_tian@outlook.com>
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/
Translate-URL: https://translate.fedoraproject.org/projects/lact/lact-gui/zh_Hans/
Translation: LACT/lact-gui

---------

Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: joo es <jonnyse@users.noreply.translate.fedoraproject.org>
Co-authored-by: Pavel Borecki <pavel.borecki@gmail.com>
Co-authored-by: Daniel Bleher <fedoraproject.org@d.deltabravo.de>
Co-authored-by: Tim Dusser-Jolly <tymmesyde@gmail.com>
Co-authored-by: Jessica Fletcher <social.sagging355@passinbox.com>
Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Co-authored-by: 김인수 <simmon@nplob.com>
Co-authored-by: Bartłomiej H <mrinkatail@gmail.com>
Co-authored-by: Andrei Stepanov <adem4ik@gmail.com>
Co-authored-by: de tiam <dehe_tian@outlook.com>
2026-08-29 17:49:45 +03:00
Ilya Zlobintsev 4d02610d46 refactor: abstract away intel DRM logic, add a mock implementation (#1182)
* refactor: put intel drm logic behind a trait, add mock

* chore: use full device snapshot

* feat: make mock usable not just from tests
2026-08-29 17:48:57 +03:00
Ilya Zlobintsev c3a574c4b7 fix: Mb -> MiB in vram size 2026-08-29 13:18:14 +03:00
Ilya Zlobintsev 40dcf29841 fix: use pidfd for polkit auth if possible, patch zbus_polkit 2026-08-28 22:59:50 +03:00
Roman Makarov 6cbb8319da chore: remove device name from stats (#1176) 2026-08-28 00:02:16 +03:00
Roman Makarov 3763eabcfe fix: update list of apu devices which need p-levels workaround (#1174) 2026-08-25 20:09:12 +03:00
Lasagnenator ea5da3390d chore: add Asrock 9070 XT Steel Legend and Sparkle Arc 310 Eco (#1173) 2026-08-24 10:55:31 +03:00
Ilya Zlobintsev df20b606de feat: show additional clock domains in UI (#1172)
* feat: show additional clock domains in UI

* fix: tests
2026-08-23 18:14:33 +03:00
Roman Makarov 6f02740b2f fix: swtich nvidia V/F curve to offsets (#1161)
* wip

* clean up

* upd comment

* fix vfcurve flip to enabled

* fmt

* rename old curve_is_configured

* move enable edit checkbox from VFCurve to OC panel

* cleanup tests

* set offset 0 on curve reset

* add defauilt to freq_offset

* bail if vf_curve is invalid or not editable

* hide apply/default buttons on ro curve

* fix curve margins

* vfcurve - show info that editing is disabled

* move top vf curve ceiling a bit

* center vf-curve-editing label

* fix flipping edit vfcurve checkbox

* easen up warning

* add abs to offset migration

* fix point_min_offset_mhz calculation

* don't let offset to be same or bigger than basefreq

* fix test
2026-08-23 16:16:21 +03:00
Roman Makarov c9fa4879a2 feat: support AMD profile performance-levels (#1170)
* feat: support AMD profile performance-levels

* add snapshot test
2026-08-22 23:34:51 +03:00
Davi Henrique LinharesandIlya Zlobintsev 238e315b81 feat: fan control for Intel Xe (needs patched kernel) (#1108)
* marking Intel with the fan control flag, if available

* static fan RPM control for Intel

* firmware fan control and checking if we can atually control the fans

* improved the messages

* fan curve suport for Intel

* consuming the result

* getting the fan curve from hwmon for Intel, if available

* getting the fan static speed from hwmon for Intel, if available

* getting the fan control mode from hwmon for Intel, if available

* checking if the fan control is enabled for Intel

* checking the curve points amount with the expose controllable points for Intel instead of hardcoding

* applying the fan settings to all exposed fans for Intel

* consuming the result

* applying the Intel fan curve in its own function

* applying the Intel fans static speed in its own function

* properly validating the fan curve for Intel

* getting the max fan speed for Intel, if available

* setting the remaining points based on the last point for Intel

* auto completing the missing curve points on Intel

* omitting points we probably auto completed for Intel

* properly auto completing the fan curve points for Intel

* only omitting the last fan curve points for Intel

* cargo fmt on intel.rs

* cargo clippy --fix --lib -p lact-daemon

* removed the "Option::" prefix

* removed the debug code

* using a result on "apply_fan_curve" and "is_valid_fan_curve"

* improved the Result handling in "apply_fan_curve"

* cargo fmt

* refactor: code cleanup, truncate read curve off configured one

* chore: minor cleanup

* added the get_hwmon_fan_curve and get_hwmon_fan_curve_points and renamed the old get_hwmon_fan_curve to get_truncated_hwmon_fan_curve

The new get_hwmon_fan_curve returns the fan curve from hwmon as is.
The get_hwmon_fan_curve_points returns a Vec with the hwmon fan curve as is, used on both get_hwmon_fan_curve and get_truncated_hwmon_fan_curve.
The get_truncated_hwmon_fan_curve returns the fan curve from hwmon, but some points may be ommited

* chore: update b580 test data with the fan curve

* feat: smarter fan curve truncation

* returning a single points if all points are the same, Intel xe

If all points are the same speed, we display the current FanControlMode as Static, so we can safely display one point in the curve

* safely getting the first point

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2026-08-22 15:04:36 +03:00
Ilya Zlobintsev 2aae677d0e fix: only create new file when writing debug snapshot 2026-08-19 17:54:05 +03:00