Share via

When switching to only the second screen, the second screen mistakenly uses the HDR calibration profile from the first screen

Anonymous
2025-06-16T20:00:48+00:00

This is a chain reaction between a long-unresolved bug and a new bug.

First, I need to raise another issue:
Many users have noticed that since a certain version, Windows recognizes the order of video signals opposite to the BIOS. Specifically, when using two displays, the screen displaying BIOS is recognized by Windows as screen #2, while the screen not displaying BIOS is identified as screen #1.

When one of my screens is in landscape orientation and the other in portrait, I undoubtedly need BIOS displayed on the landscape screen. Therefore, my landscape screen must be set as screen #2, and the portrait screen as screen #1.

This means that even if I set screen #2 as the primary display in Windows, Windows still considers screen #1 to be the actual "PC screen" (perhaps a term designed for laptops, though I'm using a desktop). Consequently, when I wish to save power and performance by selecting "Show only on second screen," a critical bug emerges:

Windows mistakenly identifies screen #2 as screen #1, applying screen #1’s ICC profile. In the "Found profiles" list, it even fails to locate screen #2’s own ICC profile. This results in extremely severe and intolerable color distortion on the display.

Windows for home | Windows 11 | Display and graphics

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

8 answers

Sort by: Most helpful
  1. Anonymous
    2025-06-17T17:02:50+00:00

    You are absolutely right in your interpretation—DisplayCal's vocation lies deeply in generating ICC profiles through the means of calibration hardware and not in managing or enforcing ICC profiles on-system level like a color profile loader or system-wide override application.

    Let's examine the very salient points of your concern:

    1. ICC Profiles Problems in "Second Screen Only" Mode

    In the situation of "Second screen only," Windows may fail to load the correct ICC profile for the new primary monitor (especially if it is not assigned the number 1 by default) when this happens. This is a well-recognized problem and occurs mostly due to:

    Windows' Color Management system not reapplying correctly profiles when any topology change is made to monitors.

    The default profile is bound to a name that relates with the device or index not compatible with its definition anymore.

    1. DisplayCal and Profile Loading

    You are right: DisplayCal is not an ICC profile loader/manager in the background sense.

    The DisplayCal Profile Loader (a separate tool it installs) used to act as a tray icon utility that enforces LUTs (if available) and re-applies profiles after monitor reconnection.

    However, it is now deprecated and highly unreliable on modern Windows versions (especially past Windows 10 20H2 and Windows 11).

    What you heard on the startup is not from the loader, but from DisplayCal itself.

    Therefore, DisplayCal cannot serve as a background tool for enforcing ICCs without user interface.

    Recommended Solutions

    In case you are trying to guarantee the application of the correct ICC profile to your external monitor once you have left the "Second screen only" mode behind, then try one of the following methods:

    1: Manually Re-apply the ICC Profile

    Open Color Management (colorcpl in Start menu).

    Under Devices, select the current monitor (make sure it's detected correctly).

    Check "Use my settings for this device."

    Click Add... and reselect your desired ICC profile.

    Click Set as Default Profile.

    This binds the profile to the new monitor topology.

    2: Lightweight ICC Profile Loader

    Other options besides DisplayCal for autoloading ICC profiles at system startup:

    LUT Manager: https://github.com/nralthomas/lut-manager

    Color Profile Keeper: Lightweight open-source utility applications capable of automatically applying ICC profiles after sleep or reboot.

    These applications are made specifically for boot or screen change enforcement of ICC profiles without demanding unnecessary UI overhead.

    3: Use Task Scheduler

    If your monitor always changes in a predictable manner (i.e., you always put in "Second screen only"), try creating a task to run at user logon/when displays change to reapply the ICC profile through the command line:

    powershell

    colorcpl.exe

    Or even better, go ahead and use something like DisplayProfile.exe from ArgyllCMS or DisplayProfileSelector.

    Could you please try out these steps and let me know if it works out? And, in case that any other error arises, I would love to have more information it.

    Best regards,

    Tin

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2025-06-17T16:42:06+00:00

    I've tried these methods, and essentially they achieve the same effect as the "Second Screen Only" mode—both result in the primary monitor using the incorrect ICC profile.
    As for DisplayCal, I don’t understand how to load or manage ICC profiles with it. From what I can tell, it’s a software designed to work with calibration devices to generate ICC profiles. I haven’t found any settings that allow it to take over Windows' ICC management. It even has a splash screen and startup sound—does this really seem like a background management tool suitable for auto-starting?

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2025-06-17T14:28:51+00:00

    Hello,

    You've hit the nail on the head regarding both points, and unfortunately, these problems stem from quite fundamental design defects in the way Windows and modern displays manage display enumeration and power management. Let's discuss both of them in detail:

    1. Registry Cleaning Fails to Reset Monitor Order

    You're correct: deleting display registry keys (e.g., HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY and HKCU\Control Panel\Desktop) used to help reassign display IDs, but:

    Windows 10/11 caches display topology separately, and monitor numbering is sticky, especially with portrait displays or when EDIDs are cached.

    Windows prioritizes last-connected or last-activated monitors for Display 1, especially if the EDID appears "new" to the system (e.g., different resolution/orientation or plugged into a new port).

    Why It Doesn't Work Anymore:

    The EDID (Extended Display Identification Data) stored in the registry is not always totally cleared upon deleting the usual keys.

    Display order is then stored in an internal low-level topology map, frequently rebuilt from some cached data even after actual cleaning.

    More and more, Windows 11, particularly 22H2/23H2/24H2, is relying on its own internal GPU topology logic rather than user history or BIOS priority.

    What Really May Help (Somewhat):

    Boot with one monitor only connected.

    Delete:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity\

    Reboot.

    Then plug in the second monitor and do some manual arranging.

    But even this does not really guarantee a reordering in modern Windows versions, especially if monitor #2 shows "preferred mode timing" or has some other characteristic, like resolution or rotation, that is different from monitor #1.

    1. Fake Monitor Power Off = Still Active in Windows

    You're 100% right again: most modern monitors and TVs now fake the power button. Here's what's happening:

    Why It Happens

    Pressing the "power" button puts the display into standby (ACPI D3), but it doesn't cut the HDMI/DisplayPort signal.

    The monitor still responds to the GPU's polling and keeps its EDID active.

    Windows continues to believe the display is connected, will thus move windows there, restore calibration profiles, or wake it up randomly.

    Why They Do It

    So that it supports HDMI-CEC, quick wake, and smart standby features.

    Designed with TVs and set-top boxes in mind, not multi-monitor PC setups.

    Monitors with USB hubs or speakers often keep low-power mode for peripheral passthrough.

    Practical Workarounds

    Here's what works to actually resolve or mitigate the issue in 2024–2025:

    A. Use Display Management Tools.

    1. MultiMonitorTool (NirSoft) – allows scriptable control over monitor state, forcing primary/secondary assignments.
    2. ClickMonitorDDC – simulates brightness = 0 and input swap, effectively blanking or "disabling" a monitor.
    3. DisplayFusion (paid) – exceptional for custom monitor profiles, window location rules, and auto-switching.

    B. Force Display Disconnection via DDC or EDID Emulation

    HDMI/DP switch with a physical button – allows you to cut signal manually (not standby).

    HDMI/DP emulator dongle (dummy plug) – can help with hotplug behaviors when needed.

    EDID override via registry or INF driver – advanced, but it forces Windows to treat monitors differently (e.g., prevents "Display 1" from ever being considered primary).

    C. Automate the Subsequent Application of Profiles

    In case the action cannot be avoided, create a script using DisplayCAL Profile Loader or dispwin.exe from ArgyllCMS:

    bash

    dispwin -d 1 "C:\ColorProfiles\Portrait.icm"

    dispwin -d 2 "C:\ColorProfiles\Landscape.icm"

    Schedule it through Task Scheduler or map it to hot keys.

    Could you please try out these steps and let me know if it works out? And, in case that any other error arises, I would love to have more information it.

    Best regards,

    Tin

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2025-06-17T10:33:15+00:00

    I will try your suggestion later.

    However, regarding the method of cleaning the registry to reset the display order, I've tried it before but it didn't work. The system still recognizes the last connected portrait display as the 1st monitor.

    Additionally, regarding turning off the physical power of the monitor, unfortunately, I’ve noticed that more and more monitors/TVs these days, when you press the power button, only pretend to shut down—they actually enter standby mode and continue to receive Windows signals. I don’t know why they do this, and they don't give users the option to completely turn off the power. This leads to issues such as software opening on a screen that’s not even on.

    I will provide feedback after trying your other suggestions. Thanks!

    Was this answer helpful?

    0 comments No comments
  5. Anonymous
    2025-06-16T21:40:10+00:00

    Hey Giresharu! Thanks for writing. I am Tin, and I am an independent advisor. I am so happy to offer you any needed assistance today. The issue is well-documented and goes quite a long way back in history, particularly when it concerns the display handling of Windows; this gets even worse in multi-monitor configurations with mixed orientations. Here's the possible workarounds:

    1. Manual ICC Profiles Assignation with DisplayCal

    Download the Profile Loader from Displaycal

    Through this software, you'll be able to assign ICC profiles to your monitor displays instead of having to rely on Windows's malfunction mapping.

    It lets you use a better approach to show a particular ICC profile into the correct physical screen directly without considering Windows's bad logic.

    1. Alter Display Sequence in GP Viewer Control Panel

    NVIDIA Control Panel or AMD Radeon Settings can be:

    Even if Windows calls it something different, this particular screen should always be chosen as Display #1.

    Unplug the second display, restart it, and then plug it back in to see if it gets automatically remapped.

    Try other things, like basically switching ports (i.e. plug it into another GPU output).

    1. Registry Modifications to Propagate Display Order

    Proceed to:

    pgsql

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

    You will see entries such as:

    SIMULATED...

    DISPLAY1, DISPLAY2, etc.

    It is possible to force re-enumeration by carefully removing old entries and backing up your registry beforehand, and rebooting with the main monitor only connected. Windows will frequently assign the Display #1 identifier to the only display it recognizes.

    1. Steer clear of "Only Second Screen" mode

    Instead, change the portrait monitor to "disconnect this display" in Display Settings and keep only the landscape display activated.

    Otherwise, there is the option to turn off the portrait screen by physical switch, which prevents Windows from trying to render anything in that display and hence prevents misapplication of colors.

    1. Use Windows Task Scheduler to Activate ICC Profile during Logon

    You can, at the very least, configure the reapplication of the correct profile:

    powershell

    colorcpl.exe /L

    ...and then:

    Create a .bat or .ps1 file to load the correct ICC profile using something like DisplayProfile.exe or dispwin.exe.

    Schedule it at login.

    Could you please attempt these steps and tell me how it goes? Should any other errors arise, I would love all the information about these things.

    Best regards,

    Tin

    Was this answer helpful?

    0 comments No comments