<h1 dir="auto">Summary of the new feature/enhancement</h1>
<p dir="auto">A "mode" which makes application windows "stick" to each other, just like the Fancy Zones do.</p>
<p dir="auto">This mode would act like Fancy Zones, except that whatever windows are on the desktop would be treated as (temporary) zones, and the window being moved around would dock (snap) to them (with a configurable global gap setting). Adjusting the size of a window would also snap to existing window edges and corners.</p>
<p dir="auto">Ideally, and this appears to be in the roadmap for FancyZones, once a desktop is laid out this way, the whole layout (with or without FancyZones in operation) could be saved. When invoked, the saved layout would start each app and position it in the saved positions. Layouts could probably also be switched from one virtual desktop to another.</p>
<p dir="auto">Frequently I find I'm using a couple of large windows (on a UHD display), and I end up aligning and adjusting their positions and size so I can clear up desktop space for additional windows. Then I wish I could save this layout and return to it as an operational workspace. If I could create a set of layouts for specific workflows, that would be a tremendous time saver.</p>
<p dir="auto">As it turns out, if I could build layouts this way I would have less need for FancyZones, which are more applicable to a changing desktop than to a re-usable one. The future "reloadable" FancyZones feature would be a huge help, but with Magnetic Windows I wouldn't have to create the layout abstractly with FancyZones and then populate it. Instead, I'd use Magnetic Mode to position and size the apps I'm working with, and save that. Fewer steps, more of a direct interaction.</p>
<p dir="auto">I think the lack of real non-volatile workspace layouts is a tremendous missing facility for any windowing GUI environment.</p>
<h1 dir="auto">Proposed technical implementation details (optional)</h1>
<p dir="auto">Probably the simplest UI for this mode would be an assignable hot-key toggle, specified in PowerToys Settings, where the "space around apps" spec would also be captured. When the hot-key turns ON the Magnetic Mode, window snapping guides would become active, but they only need to appear when an edge, corner, or whole window is being dragged. The mode might not HAVE to be turned off, but it might be prudent for Magnetic Mode to turn itself off after some period of inactivity so the code can be unloaded.</p>
<p dir="auto">I think I've described the general behavior sufficiently to be clear, but please let me know if you need any answers or clarifications.</p>
<p dir="auto">Specifically, the boundaries of each open window would create virtual snap-to guides covering the desktop, and window corners would create virtual intersection points. This would be visible only when dragging.</p>
<p dir="auto">In other words, when you drag a window side or corner, these virtual guides would appear as horizontal or vertical lines on-screen, and the edge or corner being dragged would snap to any nearby guide or intersection point.</p>
<p dir="auto">It would be nice, but perhaps not essential, to provide a global "gap setting," currently called "space around zones" in FancyZones, which would leave a gap between windows after they're docked.</p>
<p dir="auto">For maximum usefulness, a desktop could be saved as a Window Layout. When restored, all the apps would be re-opened and placed in their previous positions. If possible they would also be passed arguments to specify the files that were previously open in each app. This "open apps with previous contents" feature would best be an option for each application, or at least be optional for all apps at once.</p>
<p dir="auto">Of course, saving and reloading a Window Layout can be implemented without Magnetic Windows. But the integration of these features, perhaps with FancyZones as well, would make a very powerful and appealing package for workflow optimization.</p>
<p dir="auto">Thanks for considering this.</p>
<p dir="auto">Allen</p>
<h2 dir="auto"><g-emoji class="g-emoji" alias="memo" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4dd.png">📝</g-emoji> Provide a description of the new feature</h2>
<p dir="auto">A hotkey that makes the selected window stay on top/in front</p>
<p dir="auto"><em>What is the expected behavior of the proposed feature?  What is the scenario this would be used?</em></p>
<p dir="auto">You won't be able to drag windows "over" this window and even maximised applications will not cover this window. You should be able to make multiple windows always on top, and <em>within each other</em> they behave normally (ie. you can drag an AOT (Always On Top) window over <em>another</em> AOT window).</p>
<p dir="auto">This is very useful if you're taking notes on something or maybe if you're watching a video while doing something (writing a document, for example), or pretty much any scenario where you might want to put a smaller window over the top of a fully maximised window in which you are doing something</p>
<p dir="auto">It should have a hotkey and a visual indicator to let you know that you just enabled/disabled AOT mode for the active window. I would personally use alt + A as the hotkey, but this should be configurable from the powertoys gui, and the visual indicator could be a small box in a corner of the screen that pops up when you trigger the hotkey</p>
<hr>
<p dir="auto">If you'd like to see this feature implemented, add a 👍 reaction to this post.</p>