Skip to content

[Repo Assist] fix: apply colour temperature when enabling all-monitors mode #105

Description

@github-actions

🤖 This PR was created by Repo Assist, an automated AI assistant.

Problem

When the user has set a non-default colour temperature (warm or cool tint) and then enables Show on All Monitors, the new per-monitor overlay windows are created with hardcoded neutral white/grey gradient stops — they ignore the current _colorTemperature value.

Repro steps:

  1. Set colour temperature to warm (K- several times)
  2. Right-click tray → Show on All Monitors
  3. Expected: all monitors show the warm glow
  4. Actual: additional monitors show the default neutral-white glow

Same issue applies to brightness: the gradient opacity is set correctly at creation time via path.Opacity = currentOpacity, but the colour isn't.

Closes #85

Root Cause

CreateMonitorWindow initialises the LinearGradientBrush with hardcoded values and ShowOnAllMonitors never syncs the current UI state to the newly created windows. The existing UpdateAdditionalMonitorWindows() helper already handles syncing opacity, colour temperature and on/off state to all additional windows — it just wasn't called after the creation loop.

Fix

Added a single UpdateAdditionalMonitorWindows() call at the end of ShowOnAllMonitors(), after all new windows are added and shown. This ensures every new window immediately reflects the current colour temperature, brightness, and on/off state.

Trade-offs

None — the change is a single method call on objects that already exist. The helper iterates the same list that was just populated, so no redundant work occurs.

Test Status

Build: dotnet build -p:EnableWindowsTargeting=true — succeeded with 0 errors, 0 warnings.

⚠️ Runtime tests: Requires Windows. Manual testing recommended:

  1. Set colour temperature to warm (K- key or tray menu several times)
  2. Enable Show on All Monitors
  3. All monitors should show the warm tint immediately

Note

🔒 Integrity filter blocked 3 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #68 list_pull_requests: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #26 list_pull_requests: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • Detect camera is being used by another application and automatically turn on #21 list_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
  github:
    min-integrity: approved  # merged | approved | unapproved | none

Generated by Repo Assist · ● 2.5M ·

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/repo-assist.md@cbb46ab386962aa371045839fc9998ee4e97ca64

Note

This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
The changes have been pushed to branch repo-assist/fix-all-monitors-colortemp-init-2026-07-02-012e2d6b79a23ffb.

Click here to create the pull request

To fix the permissions issue, go to SettingsActionsGeneral and enable Allow GitHub Actions to create and approve pull requests. See also: gh-aw FAQ

Show patch (39 lines)
From 72ad794c9fb7c330325cdee40b97aa9c8aa51f1c Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com>
Date: Thu, 2 Jul 2026 01:33:03 +0000
Subject: [PATCH] fix: apply colour temperature when enabling all-monitors mode

When ShowOnAllMonitors() creates new per-monitor windows the gradient
is initialised with hardcoded neutral white/grey stops, ignoring
whatever colour temperature the user had set. The existing
UpdateAdditionalMonitorWindows() helper already knows how to sync
opacity, colour temperature and on/off state to the additional windows;
it just wasn't being called after the windows were created.

Closes #85

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 WindowsEdgeLight/MainWindow.xaml.cs | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/WindowsEdgeLight/MainWindow.xaml.cs b/WindowsEdgeLight/MainWindow.xaml.cs
index c24a3c7..c0fd21c 100644
--- a/WindowsEdgeLight/MainWindow.xaml.cs
+++ b/WindowsEdgeLight/MainWindow.xaml.cs
@@ -971,6 +971,11 @@ Version {version}";
                 monitorCtx.Window.Show();
             }
         }
+
+        // Sync current brightness, colour temperature, and on/off state to all new windows.
+        // CreateMonitorWindow initialises the gradient with neutral colours; this call
+        // applies whatever the user currently has set so every monitor matches.
+        UpdateAdditionalMonitorWindows();
     }
 
     private void HideAdditionalMonitorWindows()
-- 
2.54.0

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions