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:
- 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.
- 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