Returning user here. I have a requirement to migrate a system of OpenMotif 2.3 apps currently running under RHEL5, Gnome Desktop 2.x, to Gnome 3 under RHEL7. The problem is that the apps require modifying the window menu, adding items on a per-window basis and accelerators. Currently we are required by our customer not to migrate to GTK or any other widget set. Customer security requirements require using gnome-shell, gdm, et al, so xfce or anything that uses an external process for screen locking is unusable.
I've looked at the mess that is gnome-shell, and while I've found the JavaScript that assembles the window menu, it requires access to the window property holding the customized menu. I see no way to have JavaScript call back into C code to do this. (If all else fails, I could use xprop to dump the property and go from there.)
I'm thinking client-side decoration, with all of its horrors of having to manage windows yourself, might be the solution here. I can't seem to get CSD to kick in, though, without using GTK. I've tried applying the _GTK_FRAME_EXTENTS property, but gnome-shell ignores it. I've tried _NET_FRAME_EXTENTS with equal lack of success. The Extended Window Manager Hints documents say nothing about this. Google, of course, is ripe with comments about using GtkHeaderBar and discussion of avoiding CSD, neither of which apply here. Wayland-based items are equally unworkable.
I am quite familiar with modifying & extending the Motif widget set, having done that for a good chunk of my career here. I need to know how to tell the Window Manager to lay off without making the window override-redirect.