bugMyPaint - Bugs: bug #20131, [color-management] Support XICC...

Show feedback again

You are not allowed to post comments on this tracker with your current authentification level.

bug #20131: [color-management] Support XICC (display color profiles)

Submitted by:  Andrew Chadwick <achadwick>
Submitted on:  Mon Sep 3 13:20:38 2012  
Severity: 3 - NormalPriority: 5 - Normal
Status: PostponedPrivacy: Public
Assigned to: NoneOpen/Closed: Closed
Release: Planned Release: None
Operating System: 

Mon Jun 23 17:54:59 2014, comment #3:

Migrated to github up front (as a post-1.2 issue), since it's a fairly important one: https://github.com/mypaint/mypaint/issues/6

Andrew Chadwick <achadwick>
Project Administrator
Sat Jan 5 13:43:44 2013, comment #2:

Related: bug #19537

Jon Nordby <jonnor>
Project Administrator
Sat Jan 5 13:41:16 2013, comment #1:

Should we really attempt to handle XICC, manual selection of .icc profiles ourselves? Why not use colord instead?

In recent GTK+3 versions it is already a dependency.

Jon Nordby <jonnor>
Project Administrator
Mon Sep 3 13:20:38 2012, original submission:

MyPaint should support the ICC Profiles In X Specification when running under X11, and also permit a display profile to be set explicitly in the preferences under non-X11 environments. It would be nice to offer three options:

  • No display colour management
  • Manual display colour management using an on-disk .icc profile
  • Automatic display colour management using XICC

It's relatively easy to get an ICC profile from X for the single-screen case:

The GDK monitor number which corresponds with XICC's concept of a "screen" number. Inkscape builds an "_ICC_PROFILE_%d" from gdk_screen_get_n_monitors() indices, and reads the property via the root window of the screen: https://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/src/ege-color-prof-tracker.cpp

Possibly connect to the main window's configure-event to figure out the display profile to use at configure time. What we'll lack under PyGTK is any tracking or monitoring of ICC profile changes if the user doesn't also reconfigure the window. For that, Inkscape uses a GDK event filter on the root window and decodes the changes via the X11 APIs, however PyGTK doesn't have that available, and all a PyGTK event filter sees is a stream of "<enum GDK_NOTHING of type GdkEventType>"s.

If necessary, we can write the event filter in C and have it call a Python callback like the one above.

Certainly, the display code will need to be updated to actually use the gleaned ICC information: I'm envisaging a pipeline like

Andrew Chadwick <achadwick>
Project Administrator


No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by jonnor (Posted a comment)
  • -unavailable- added by achadwick (Submitted the item)

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.


    Error: not logged in



    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Mon Jun 23 17:54:59 2014achadwickStatusWish=>Postponed
    Sat Jan 5 13:43:44 2013jonnorSummarySupport XICC (display color profiles)=>[color-management] Support XICC (display color profiles)
    Show feedback again

    Back to the top

    Powered by Savane 3.1-cleanup