To answer my own question <EQType>openwnd TopLevelWindowName</EQType> can open any window including custom windows.
You can also use inside a window <EQType>closenotclicked</EQType> to close a the window if someone clicks outside of it.
Another thought hit me. You can replace a default window that you never close like the player window with a custom window. The actual custom window has the same name as the player window and you can use the player window shortcut key to open and close it.
If anyone knows a no break method for adding custom top level windows that would be cool
. I tried several possible parsing and composite window tricks but none worked. The EQ XML parser doesn't seem to like CDATA or XML escape characters.
Missing "default" top level windows doesn't cause EQ to crash so a no break method wouldn't be quite as important. But of course any users of that UI wouldn't get any new functionality included in the new window.
No openwnd will not open windows that aren't supposed to be open like the bank window. And I also found that custom windows close with the escape key. Anyone found a way to make it so they don't?