The plot thickens! It turns out that the wintype=panel setting doesn't
actually set the struts necessary to reserve that space, apologies,
that was my misunderstanding. The struts need to be set manually via
the parameter _NET_WM_STRUT_PARTIAL
I've found another way round it (using xprop -set) but if you're
interested in adding this functionality in future, the format for the
value is documented in
http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html - it's 12
integers corresponding to "left, right, top, bottom, left_start_y,
left_end_y, right_start_y, right_end_y, top_start_x, top_end_x,
bottom_start_x, bottom_end_x", this allows for reserving areas that
don't stretch all the way to the edges of the screen. Any unused
integers are set to 0. So the value for reserving 300 pixels at the
right hand edge of the desktop is:
" 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0"
the xprop command I used (to apply this to the Gwibber window) being:
xprop -f _NET_WM_STRUT_PARTIAL 32c -name Gwibber -set
_NET_WM_STRUT_PARTIAL " 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0"