I want to make a Gtk.Window which is pinned to the Desktop and acts like a desktop widget. I've found that I can do this by setting
self.set_type_hint(Gdk.WindowTypeHint.DESKTOP) which keeps it below all windows, immovable and insensitive to Show Desktop Unity plugin. However, if you click on the desktop area outside of the widget, the window is hidden behind the desktop and I can't get it back (I have to kill the program).
What is the best way to handle this? Is there another setting? I've found that I can also get a window to ignore Show Desktop commands if I set the skip_taskbar hint and deactivate a setting in compiz, but I'd rather not muck around with people's compiz settings to get this effect.
EDIT: Figured out the ignore Show Desktop (see below), but still can't get it to skip the Launcher bar. The DESKTOP window hint worked for that, but has the drawbacks mentioned above. I also played around with setting the WM_CLASS in the .desktop file, but Unity seems to ignore that.