Hi,

On 08.07.2012 00:26, Vincent Bernat wrote:
> GNOME applets now come with "symbolic" icons. They are chroma-keyed SVG 
> icons. The final color is decided by the theme. In my case, I am using a 
> black background for the systray and my GNOME theme (the default one, 
> Adwaita) is expecting a clear background and display black icons which 
> are therefore invisible. I have searched a bit how to change this 
> without messing with the whole theme and I have discovered this:
> 
>   https://mail.gnome.org/archives/commits-list/2010-April/msg09154.html

Wow... They are abusing the _NET_WM_-namespace. :-(

> My understanding is that if I set _NET_SYSTEM_TRAY_COLORS property to 
> white, I will get the appropriate effect. With the help of gdb and three 
> hours later, I came with the following thingy to get what I want:
> 
>   xprop -id 0xc00002 -format _NET_SYSTEM_TRAY_COLORS 32c -set 
> _NET_SYSTEM_TRAY_COLORS 
> 65535,65535,65535,65535,8670,8670,65535,32385,0,8670,65535,8670

Quite a simple format, he?

> Then, I restart my applet and, bingo, I get the appropriate color. I 
> don't understand why I should restart the applet while GTK has code to 
> detect a change to this atom but this is not very important.

Sounds like a bug in GTK+.

> Now my questions:
> 
> 0xc00001 is awesome.

Why is window 0xc00001 awesome? If you want me to guess, it's the "I am still
alive"-window which awesome has to create for the _NET_SUPPORTING_WM_CHECK
property of the root window.

> I suppose 0xc00002 is related.

If you want me to guess again: That's awesome's systray window. All systray
widgets get reparented into that and its used for displaying the systray.

> How could I compute it?

In a sane way? You don't.

In an insane way? "prop -root _NET_SUPPORTING_WM_CHECK" and then add one, but
this just happens to work accidentally since these two windows are (in order)
the first things that awesome creates. There are no guarantees for this.

[...]
> Second question: is there something cleaner than to call xprop to 
> modify this property?

I can't find any spec for this stuff and I don't really want to add support for
this just from some random commits.

So I guess nope, there is no cleaner approach.

Uli
-- 
"Every once in a while, declare peace. It confuses the hell out of your enemies"
 - 79th Rule of Acquisition

-- 
To unsubscribe, send mail to [email protected].

Reply via email to