I noticed during the (many) meetings I attend that disconnecting and reconnecting my laptop from the dock reorganizes all my windows to the laptop’s display. This got annoying to have to drag and resize everything when returning to my desk, which has a 3 monitor setup. So, I wrote this small Win32 application to allow you to save the positioning and size of all windows and then restore them at a later time.
There are binaries in the releases tab.
There doesn’t seem to be an API to detect when removed or added from a dock, so a futher enhancement I’d like to do is to detect when (the same) monitors are re-connected and then automatically move all the windows back. But, it works really well as it is.