Okay, how does it basically work:
- They have one Windows laptop, running a ICC profile generation software. On this laptop a VNC server is running. A colorimeter is attached.
- There' the Linux PC with the to-be-profiled monitor attached. It has a VNC client installed, displaying the Windows screen.
I'm still not completely sure whether xcalib should be involved somewhere in this process (I tend to think that the Linux PC is not calibrated when the attached display is profiled). But I have an idea:
What about intercepting the Windows calls to
BOOL WINAPI GetDeviceGammaRamp(HDC hDC, LPVOID lpRamp );
BOOL WINAPI SetDeviceGammaRamp(HDC hDC, LPVOID lpRamp );
Whenver one of these Win32-API calls is issued by the calibration software, something like an RPC is issued to the Linux PC which then sets the LUTs there. So what I'm trying to say is: The profiling software is running on the Windows laptop but calibrates and profiles the Linux PC and the attached monitor.
Since I'm not too familiar with RPC I would probably do it with ssh - the Windows PC has the right key to connect to all to-be-profiled Linux-PCs and calls xcalib there. Okay, xcalib can't do it currently, but that's not a big deal to extend it for a read from stdin feature.
The same with intercepting: I have never done it before. Don't know whether it's easy to do it. But as soon as time permits I will probably try it out.