Hey all, I've had a couple of bug reports submitted against colord where it was noticed that using dispread set the vcgt curves to linear (as it should) and the curves were not set back to the users profile setting after dispcal had finished. There are a few ways to fix this: 1. dispread saves the content of the vcgt and re-applies them when the command finishes 2. dispread execs something like colormgr device-inhibit when it starts, and then when dispread dies / finishes colord notices the inhibit process also dies and automatically refreshes the screen profile 3. dispread learns about D-Bus and does a ~150 line call to colord to inhibit the vcgt setting for the duration of the process -- see https://gitorious.org/colord/master/blobs/master/src/org.freedesktop.ColorManager.Device.xml#line455 for details 4. dispread links against libcolord and does a 4 line call to colord of FindDeviceByProperty(XRANDR_name=lvds1), device.ProfilingInhibit(). 5. dispread calls something like colord state-has-changed-refresh-everything when done Solution 1 and 5 have the downside that if dispread crashes or the user does ctrl-c then the profile doesn't get applied. Solution 2 means we have to get a thread involved (as colormgr device-inhibit is sync). Solution 3 involves adding a Linux-only DBUS (or GLib) build dep for ArgyllCMS and an optional run-time colord dep. Solution 4 involves an optional build time colord dep with an optional run-time colord dep. My preferred solution is 4 for simplicity reasons. I'm quite happy to contribute BSD licensed code to do 2,3,4 or 5, but didn't want to start on a patch or example code until I knew what Graemes view on this was. Thanks. Richard.