97 Commits
Author SHA1 Message Date
Ilya Zlobintsev 871d166a7f fix: show time in local timezone in chart rendering 2026-08-14 09:54:11 +03:00
Ilya Zlobintsev 2aa6d0d770 chore: prepare for release 2026-08-12 09:50:26 +03:00
Ilya Zlobintsev b3efeb273f feat: new service setup GUI (#1043)
* feat: WIP service setup GUI

* fix: avoid crash when closing dialog with app already running

* wip

* feat: make it more usable

* wip logs

* feat: working logs display

* feat: use new dialog for version mismatch

* chore: cleanup

* fix: tcp functionality

* feat: handle setup errors

* perf: avoid refetching system info

* fix test
2026-07-26 18:54:32 +03:00
Ilya Zlobintsev 504d300d02 feat: add detach/reattach option to temporarily ignore a GPU (#1123)
* feat: add detach/reattach option to temporarily ignore a GPU

* chore: require explicit gpu id arg for detach

* feat: keep NVML and NvAPI behind a refcount instead of global init

* fix: clippy
2026-07-25 19:01:59 +03:00
Ilya Zlobintsev eba0b999aa chore: bump flatpak runtime 2026-06-26 22:43:49 +03:00
Ilya Zlobintsev e2caa24ca8 feat: add displays info (#1052)
* test

* feat: dp info on amd

* chore: add other display types

* feat: use libdisplay-info, add screen size

* feat: add GUI

* feat: WIP nvidia

* feat: reuse display handle

* chore: clippy fixes

* chore: cleanup

* chore: make display-info an optional feature, add build dependency

* fix: ci

* fix ui imports

* fix: add new dependency to flatpak

* fix: add hwdata flatpak module
2026-06-19 22:22:03 +03:00
Ilya Zlobintsev 8864b6284b perf: fetch Vulkan/OpenCL info asynchronously after startup (#1046) 2026-05-28 09:14:47 +03:00
e-tho dc0af6d1ff feat: add hold/release cookie mechanism for profile state management (#995)
* feat: add hold/release cookie mechanism for profile state management

Clients that need to temporarily activate a profile had no safe
way to restore the previous state on cleanup, and concurrent clients
would silently overwrite each other's profile choice.

Introduce HoldProfile/ReleaseProfile commands modelled after
power-profiles-daemon's HoldProfile/ReleaseProfile API. Acquiring a
hold activates the requested profile and returns an opaque cookie; the
previous state is saved automatically. Releasing the cookie restores
it. Multiple concurrent holds are supported with last-write-wins
semantics — releasing the active hold falls back to the next most
recent one, and releasing the last hold restores the original state.
If the client connection drops without releasing, the hold is released
automatically.

* fix: extract type aliases for profile hold fields

* refactor: remove requester field from HoldProfile request

* refactor: improve hold lifecycle signalling
2026-05-14 10:09:29 +03:00
Ilya Zlobintsev 3a4125879a feat: improve profile process rule selector (#1003)
* feat: improve profile process rule selector

* perf: only convert filter to lowercase once
2026-05-02 22:03:52 +03:00
Vukašin VojinovićandIlya Zlobintsev 56e4d9d3bd chore: update dependencies (#979)
* chore: update dependencies

* chore: update flatpak sources

---------

Co-authored-by: Ilya Zlobintsev <ilya.zl@protonmail.com>
2026-04-22 18:46:10 +03:00
Ilya Zlobintsev 2fa29cc335 chore: bump version 2026-04-19 17:51:05 +03:00
Ilya Zlobintsev f09c79a558 chore: add Acer B580 Nitro device id 2026-02-01 11:44:27 +02:00
Ilya Zlobintsev e5a3eb1509 chore: update to rust 2024 edition (#889)
* chore: bump rust edition to 2024

* chore: another chunk of clippy fixes

* chore: fix warning in bindings

* chore: restructure awkward unsafe blocks

* chore: reformat

* chore: clippy fix

* chore: bump rust release in docker build
2026-01-31 23:43:43 +02:00
Ilya Zlobintsev c0b91108db chore: bump flatpak dependencies 2025-11-30 10:23:01 +02:00
Ilya Zlobintsev 2f29d54c98 fix: profile watcher getting stuck when reloading (#781)
* fix: profile watcher getting stuck when reloading

* chore: bump version
2025-10-19 11:18:14 +03:00
Alik Aslanyan ef3dfe9ea6 chore: implement CI check for feature powerset (#743)
* feature: Cache dependencies install in CI

* feature: Implement CI check for feature powerset

* fix: Fix dependency feature issues in subcrates

* fix: Add libadwaita to CI
2025-09-10 08:27:57 +03:00
Alik Aslanyan 3c6a24dc36 chore: Fix clippy warning from stable (#735) 2025-08-31 21:35:34 +03:00
Ilya Zlobintsev 18e5e42104 chore: improve daemon reconnect window 2025-08-23 19:59:11 +03:00
Ilya Zlobintsev ae46edc9ae feat: gamemode watcher through busctl cli instead of seteuid trickery (#721)
* feat: gamemode watcher through busctl cli

* chore: use sudo instead of changing user in busctl

* fix: apparmor compatibility
2025-08-23 13:44:24 +03:00
Ilya Zlobintsev de6b1ec9cb feat: add profile command hooks (#656)
* feat: add profile command hooks

* chore: cleanup

* chore: update config documentation
2025-07-05 15:36:51 +03:00
Ilya Zlobintsev 64b2008c56 feat: skip ppd actions disable for tuned-ppd (#643) 2025-06-29 09:22:41 +03:00
Ilya Zlobintsev e8d658667a chore: update metainfo for new release 2025-06-28 11:42:44 +03:00
Ilya Zlobintsev 85248b236c feat: add process monitor (#633)
* feat: WIP process monitor

* wip

* feat: theoretically working fdinfo stats fetch

* chore: update test snapshots

* fix: fdinfo calculations

* feat: add amd vram key

* chore: skip pid 1

* feat: process search filter

* chore: reduce log verbosity

* chore: update test snapshots with new hwdata
2025-06-27 21:18:41 +03:00
Ilya Zlobintsev 243a1ecd45 feat: support exporting and importing profiles (#579)
* feat: support exporting and importing profiles

* feat: renaming profiles
2025-05-18 14:51:03 +03:00
Ilya Zlobintsev d2c7709b5b chore: gray out the ui when switching GPUs 2025-05-14 09:34:23 +03:00
Ilya Zlobintsev 0064fd9224 feat: new GPU config socket API (#546)
* feat: GetGpuConfig API

* wip

* fix: map deserialization

* fix: clocks map deserialization

* chore: update API documentation
2025-04-14 21:19:50 +03:00
Ilya Zlobintsev 6edda02556 fix: set socket permissions after running config migrations 2025-04-08 23:07:33 +03:00
Ilya Zlobintsev 658e4930ea feat: add Flatpak package (#519)
* feat: WIP

* feat: add wip manifest

* fix: replace /var/run with /run

* feat: add flatpak build to github actions

* feat: add flatpak setup script

* fix: build in release

* chore: check autostart mark by default

* feat: update app id

* chore: merge flatpak manifest modules

* chore: add cleanup section

* chore: update manifest file

* chore: pin github actions to specific commits

* chore: update app id again

* doc: add flatpak documentation

* chore: metainfo updates

* fix: desktop file entrypoint

* doc: add service permissions note to flatpak

* chore: improve flatpak manifest

* fix: libdrm x-checker-data indentation
2025-04-04 21:38:19 +03:00
Ilya Zlobintsev 502e877aa0 feat: handle nobara in initramfs update 2025-03-19 18:42:54 +02:00
Ilya Zlobintsev 79d1ac9ede feat: better amd fan sensor checks, retry if sensor becomes missing 2025-03-01 09:56:10 +02:00
Ilya Zlobintsev 1292f3f318 chore: bump version, update tests 2025-02-01 20:37:14 +02:00
Ilya Zlobintsev 5077836352 chore: include version in snapshot file name 2025-01-14 23:39:54 +02:00
Ilya Zlobintsev e93025164e refactor: simplify lact-client by removing ResponseBuffer 2025-01-05 10:14:22 +02:00
Ilya Zlobintsev 64a2d3106b feat: automatic profile switching based on rules (#424)
* feat: profile ordering

* feat: profile matching logic

* feat: automatic switching

* perf: optimize profile rules evaluation

* feat: detect gamemode process start

* feat: add benchmark for profiles matching

* perf: string interner, inline hot function

* feat: option to enable auto profile switching

* wip

* chore: change label

* chore: minor profile switching fixes

* chore: drop interner

* wip

* refactor: header messages

* feat: delay profile evaluation

* fix: moving profiles around

* feat: initial profile rule editor UI

* refactor: only create one RuleWindow instead of creating it per-row

* feat: add option to include profile watcher state in api response

* feat: ui for selecting process name

* feat: API endpoint to evaluate a single profile rule

* perf: store process names in a map to speed up profile evaluation

* feat: full configurability in the UI, many improvements

* fix: downgrade dependency to build on older rust

* fix: deleting currently active profile

* fix: populate profiles list when it's empty

* fix: pin project to rust 1.78

* fix: setting args

* fix: running benchmarks
2024-12-25 23:52:35 +02:00
Ilya Zlobintsev 419814ea38 chore: bump version 2024-11-16 13:37:36 +02:00
Ilya Zlobintsev b9b8499fe7 chore: bump version 2024-11-08 20:04:11 +02:00
Ilya Zlobintsev c77fc555ac feat: show dialog when attempting to reconnect to daemon 2024-09-28 10:40:15 +03:00
Ilya Zlobintsev b1229a3e1e chore: bump version 2024-09-28 10:03:14 +03:00
Ilya Zlobintsev 538cea3aa5 feat: add support for multiple settings profiles (#327)
* feat: initial support for multiple settings profiles

* feat: initial profiles management support

* feat: basic profile management ui
2024-09-28 09:51:35 +03:00
Ilya Zlobintsev c08bdfef0b feat: remote management over TCP (#379)
* feat: abstract daemon client

* feat: daemon TCP listener implementation

* feat: support remote connections in the UI

* feat: make the client async

* feat: add documentation about remote management
2024-09-22 14:17:33 +03:00
Ilya Zlobintsev e411d155da feat: use relm4 for the UI (only main parts) (#375)
* feat: use relm4 for vulkan window

* feat: WIP relm4 for app

* feat: applying settings

* wip

* feat: implement all the main actions

* feat: avoid full reloads when they are not needed

* fix: don't save vbios dump when the dialog was cancelled

* feat: OC control

* feat: use relm for the software page
2024-09-20 15:46:33 +03:00
Ilya Zlobintsev 74dda30925 feat: add option to reset all configuration 2024-09-07 22:28:15 +03:00
Ilya Zlobintsev 99f6e9ee35 chore: bump version 2024-09-06 09:14:30 +03:00
Ilya Zlobintsev 44704a101e feat: support for power profile heuristics configuration (#361)
* feat: basic support for power profile heuristics configuration

* attempt to support RDNA heuristics

* chore: finalization
2024-08-20 22:35:16 +03:00
Ilya Zlobintsev aa670be9d6 fix: gracefully handle transient fan control errors 2024-05-11 12:59:27 +03:00
Ilya Zlobintsev 6dc35200d7 feat: add support for dumping VBIOS to a file (#305)
* feat: vbios dump daemon implementation

* feat: vbios dump ui
2024-04-22 20:23:35 +03:00
Ilya Zlobintsev 0ad46e2d08 feat: fan control hysteresis (#292)
* feat: implement a fan spindown delay setting

* chore: change request/response logging to the trace level

* feat: add fan speed change threshold setting

* feat: implement GUI for hysteresis settings

* fix: always set hysteresis settings
2024-03-20 23:45:24 +02:00
Alik Aslanyan 5a78c72711 feat: improved error reporting, RX 7900 Fixes (#279)
* refactor: Add bunch of .context calls to get more detailed error messages

* refactor: Use serde-error to serialize error with proper backtrace in client/server boundary

* fix: Workaround weird driver bug with RX 7900 XTX and power limit
2024-03-03 21:47:25 +02:00
Ilya Zlobintsev f55db8116a bump version to 0.5.4 2024-03-02 13:36:07 +02:00
Ilya Zlobintsev f1233c5b16 chore: bump version 2024-02-25 13:35:37 +02:00