Rework LCD GUI: content selector, live preview, auto-connect, multi-color RGB editor - #13
Merged
Conversation
…olor RGB editor - Add a "What to display" radio selector so Image/Text/GIF/Built-in/Carousel/Sensors are visibly mutually exclusive; only the matching card shows. - Add a live Panel Preview card (320x170) rendering the exact frame for Image, Text, and GIF (first frame); firmware-drawn modes show a caption placeholder. - Auto-connect to the panel on launch so no manual Refresh is needed. - Move the background-service controls into the LCD tab's Sensor Dashboard, shown only when a live sensor widget is selected (every live sensor needs the feed service). - Replace the fixed 3-color RGB pickers with a dynamic add/remove color editor plus a banded preview strip; cap colors to what each protocol carries (legacy 8, Blackwell 17). - Persist and restore last-applied RGB (effect, colors, brightness, speed) on launch, since the GPU RGB controller is write-only and its state cannot be read back. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37c6a3d8-c4f4-4155-b18c-2aff6d4f54ef
There was a problem hiding this comment.
Pull request overview
Reworks the Avalonia GUI for the Aorus LCD/RGB app to make panel content selection mutually exclusive, add a live 320×170 preview for rendered content, auto-connect on launch (Windows), and introduce a multi-color RGB editor with persisted “last-applied” settings.
Changes:
- Add a “What to display” selector and a shared Panel Preview for Image/Text/GIF render paths.
- Auto-connect to the panel on launch and reposition background-service controls into the Sensors workflow.
- Replace fixed RGB pickers with a dynamic color list + preview strip and persist/restore last-applied RGB settings.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/AorusLcd.Gui/Views/MainWindow.axaml | Adds content selector, panel preview, moves service UI into Sensors, and reworks RGB UI to a color list + preview. |
| src/AorusLcd.Gui/ViewModels/MainViewModel.cs | Implements content selection state, preview generation/disposal, auto-connect entry point, RGB color-list logic, and RGB settings persist/restore. |
| src/AorusLcd.Gui/Services/UiSettings.cs | Persists last-applied RGB mode/colors/brightness/speed. |
| src/AorusLcd.Gui/Services/PanelText.cs | Exposes a bitmap render method so preview and send share one render path. |
| src/AorusLcd.Gui/Services/PanelImage.cs | Exposes a 320×170 render method so preview and send share one render path. |
| src/AorusLcd.Gui/Models/RgbColorItem.cs | Adds per-color model for the RGB editor list. |
| src/AorusLcd.Gui/Converters/StringEqualityConverter.cs | Adds converter to bind RadioButton selection to a string content-type property. |
| src/AorusLcd.Gui/App.axaml.cs | Triggers auto-connect during app initialization. |
Comments suppressed due to low confidence (1)
src/AorusLcd.Gui/ViewModels/MainViewModel.cs:875
- PersistRgbSettings() is called before the Blackwell RGB apply runs. If the I2C write fails, the UI will still save and replay settings that were not actually applied.
RgbFusion2Blackwell.SpeedSlowest, RgbFusion2Blackwell.SpeedFastest);
RgbColor[] colors = IsBlackwellMultiColorMode ? CollectRgbColors() : [color];
PersistRgbSettings();
return RunAsync("Applying RGB…", async () =>
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Move PersistRgbSettings() inside the RunAsync lambda after the hardware apply succeeds, so a failed NVAPI/I2C write no longer saves a config that never applied. - Reword the background-service description to match the adaptive feed cadence (~1s single widget; up to a few seconds for a rotating multi-widget dashboard). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37c6a3d8-c4f4-4155-b18c-2aff6d4f54ef
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.
Summary
Reworks the LCD panel GUI for clarity and adds a live preview, based on hands-on review of the running app.
Content selection
Live panel preview
PanelText.Render/PanelImage.Render320now expose theRenderTargetBitmapso preview and send share one render path.Auto-connect
Background service placement
RGB multi-color editor + preview
PROTOCOL.mdand OpenRGB), so replaying the app's last-applied config is the best achievable "show what it's doing."Testing
dotnet build -c Release— 0 warnings.dotnet test -c Release— 38/38 pass.Notes
requireAdministratormanifest or a "run as admin" hint is the next step (not included here).