Lazyweb window manager request

Simplest case: a window button that changes the mouse cursor to a grabby hand, and the next window I click on has its X or Y position (whichever is nearer in magnitude) set to the prior window's X+width or Y+height.

Cool points case: like the above, but instead of just moving the windows, consider them as attached together by a spring at either the windows' center points, or the center of the windows' nearest edges.

(In all cases, the windows should be moved to the same virtual desktop.)