WIP: Add fan profiles, localization, tests, RGB routing, and Nitro monitor - #205
Draft
scherenhaenden wants to merge 12 commits into
Draft
WIP: Add fan profiles, localization, tests, RGB routing, and Nitro monitor#205scherenhaenden wants to merge 12 commits into
scherenhaenden wants to merge 12 commits into
Conversation
scherenhaenden
marked this pull request as draft
June 19, 2026 12:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Preamble / Change Index
This PR grew from several related changes that were made in a deliberate order:
set_extended_rgbcommand is documented as future work, but it is not implemented here.In short: this PR is not only a documentation PR. It includes refactoring, tests, new UI features, localization groundwork, C# RGB routing cleanup, daemon-side Nitro/PredatorSense button monitoring changes, and documentation.
Summary
This PR is not documentation-only. It is a broad feature and cleanup branch on top of
mainthat adds fan profile management, modularizes the dashboard code-behind, introduces localization support, adds a unit test project, improves keyboard RGB routing in the C# GUI, and enables Nitro/PredatorSense button monitoring in the daemon.Compared with
main, the PR currently changes 38 files with roughly 5,398 additions and 1,712 deletions.Main Changes
Project modernization
net9.0tonet10.0.11.3.17.2.0.4.DivAcerManagerMax.sln..gitignoreforbin/,obj/, publish folders, build/dist outputs, IDE files, env files, and test results.Dashboard modularization
Dashboard.axaml.csimplementation into partial files:Dashboard.Animations.csDashboard.Charts.csDashboard.Fans.csDashboard.Metrics.csDashboard.SystemInfo.csFan profiles
Fan Profilestab to the main UI.FanProfile,FanCurvePoint, andFanProfileStoragemodels/storage.FanProfiles.axamlandFanProfiles.axaml.csfor profile management.FanCurveEditor, an interactive temperature-to-fan-percentage graph:Fan control behavior
All Fans,CPU Fan,GPU Fan) and sends manual percentages through the existingSetFanSpeedAsyncflow.Localization
LocalizationManagerand a language selector.loc:keys.Keyboard RGB routing
RgbLightingMapperfor GUI-side RGB request normalization.set_per_zone_modedaemon command.set_four_zone_modedaemon command.RGB daemon planning docs
rgb_extension_proposal.mdwith the broader RGB extension design.rgb_daemon_feature_plan.mdfor the future daemon-sideset_extended_rgbcommand.set_extended_rgbis planned only in this PR. It is not implemented in the daemon yet.Nitro / PredatorSense button monitoring
KeyboardMonitor.NitroButtonEnabledNitroButtonKeycodeNitroButtonCommandDBUS_SESSION_BUS_ADDRESS.Unit tests
Adds
DivAcerManagerMax.Testswith NUnit tests underunits/plus assets directories:FanCurvePointTestsFanProfileTestsFanProfileStorageTestsRgbLightingMapperTestsCurrent test count: 15 tests.
Verification
Ran locally:
dotnet test DivAcerManagerMax.Tests/DivAcerManagerMax.Tests.csproj --no-restoreResult:
The build still emits existing C# warnings, mostly around nullability, event hiding, and async calls that are not awaited. Those warnings are not resolved by this PR.
Important Review Notes
DAMM-Daemon/DAMX-Daemon.pyandDAMM-Daemon/KeyboardMonitor.py; it is not C#-only overall..idea/.idea.DivAcerManagerMax/.idea/workspace.xml. That is usually local IDE state and should be reviewed before merge.Out of Scope
set_extended_rgbsocket command.facer.kosupport.