How can I get the default colors in GTK?
<h2>Context</h2>

<p>In GTK 3, people can set their own themes. Even the default theme (Adwaita) is provided with two variants: a light one and a dark one. As I am writing my own widget (in python), I need to get these colors in order to avoid drawing black on black or white on white.</p>

<h2>Question</h2>

<p>How can I access the default colors of the user GTK theme?</p>

<hr>

<h2>Things that <em>don't</em> work</h2>

<ul>
<li><code>GtkSettings</code> <strong>used to</strong> provide an acceptable <code>gtk-theme-color</code> property, but it is not there anymore and there is no reference in the doc to explain how to replace that.</li>
<li>I don't want to get that color from another widget:

<ul>
<li><a href="https://stackoverflow.com/questions/6715464/get-colors-of-current-gtk-style">This</a> is of no use: <code>PyGTK</code> does not work with Python/GTK 3 and that would require another widget.</li>
<li><a href="https://stackoverflow.com/questions/20506701/how-to-copy-the-gtk-style-of-a-widget-and-apply-it-to-another">This</a> would be better (<code>PyGObject</code>-based at least) but again, thar would require that I copy the style from another widget.</li>
</ul></li>
</ul>

<h2>Why don't I want to copy the style from another widget?</h2>

<p>Because the pristine color is there somewhere. I don't see, in principle, why I should be forced to access it indirectly.</p>

<p>Moreover, how would you react if you crashed a program just because you dared removing a single label somewhere? How would you react if changing the color of a single label actually changed the color of other, completely unrelated, widgets? </p>

<p>I don't want this kind of surprises.</p>