GTK plugin the cairo way
This implements a "GTK lookalike" plugin by rendering GTK widgets into cairo surfaces and showing them in the same way as the cairo plugin does:
I hijacked the cairo plugin because both plugins share a lot of common logic and I originally intended to build two shared object files from a single source file, using ifdefs.
While the gtk-cairo approach provides a good way to keep the original GTK style and proportions, it has the drawback that it cannot react to events. I.e. I found no way to inject GTK events into the window widget to adapt the visuals of button widgets, e.g. on mouse-over.
The usual stuff (move, resize, min/max/close) works, but all the event-driven visual feedback is lost. E.g. there are no mouse-over effects ("prelight") and the maximise icon does not adapt to the window state.
Otherwise, I think this is the only approach that brings us closer to decorations that integrate visually into GNOME without having to change GTK.
The main question I am interested in is if this approach is "good enough" and if there is a solution to inject GTK events into the widget such that the button widgets update automatically.
An overview of some selected themes:
Some of the themes have to small "default-decoration" and are missing the close button.
Fixes #6 (closed) .