Identify panels by _NET_WM_WINDOW_TYPE_DOCK? Then create ClientWins and put them in their own dlist in MainWin. Do not feed them into clientwin_move(), clientwin_map(), rather write a new function panelwin_map() that creates cw->destination, call clientwin_render(), XMapWindow().
Identify panels by _NET_WM_WINDOW_TYPE_DOCK? Then create ClientWins and put them in their own dlist in MainWin. Do not feed them into clientwin_move(), clientwin_map(), rather write a new function panelwin_map() that creates cw->destination, call clientwin_render(), XMapWindow().
Whether user input should be allowed into panels... I don't know. If needed, the list of ClientWins should be parsed here: https://github.com/dreamcat4/skippy-xd/blob/b0fa809a689bbbf85459163b9d31189d1aec19ca/src/skippy.c#L921
Another config option would be whether the usual expose windows should overlap with the panels.