I propose functionality for the FancyZones layout editor that would let users assign upper/lower/left/right neighbours for each zone on a canvas layout to facilitate easy keyboard use for moving windows between zones.
There would be an "editing Zone neighbours" toggle in the popup menu of the editor, enabling which would draw large friendly arrow buttons on the sides of zones that would switch the mouse cursor to a targeting reticule to select a neighbour for that side by clicking. Four textfields would also be available in the popup menu to enter neighbours by their zone number. There would be a toggle to select creating unidirectional or bidirectional connections to save time editing but also enable layouts with zones with more than four incoming connections.
Displaying the neighbours of a zone would be togglable between displaying only the selected zone and displaying the full graph. The display would comprise of the neighbours zone number in the arrow button on the corresponding edge of a zone and of lines with arrowheads in a contrasting color to facilitate quick visual verification.
Scenario when this would be used?
It would enable users to lay out overlapping zones and use these layouts efficiently via keyboard. Currently, the only option available requires a user to cycle through the zones using left or right by order of creation, since automatic neighbour detection is currently inconsistent, and even if it worked perfectly an automated order might not alway fit a users use case for a layout.
For example, handling screen edges - where should the window wrap around to the other side in an asymmetric layout, should it not go anywhere, or should it expand in a Snap-like manner over a large portion of the edge of the scree - would now be entirely user-definable. Another example is defining behavior over gaps between zones: whether to skip the gap to the zone opposite, to move the window to a desired neighbour on the side of the gap in the same direction, or to not move the window at all.
I personally found one-dimensional scrolling via keyboard in a predefined order counterintuitive and slow. Other users who strongly prefer the keyboard or need to use non-mouse inputs would benefit from this enhancement to Canvas FancyZones layouts.
Description of the new feature / enhancement
I propose functionality for the FancyZones layout editor that would let users assign upper/lower/left/right neighbours for each zone on a canvas layout to facilitate easy keyboard use for moving windows between zones.
There would be an "editing Zone neighbours" toggle in the popup menu of the editor, enabling which would draw large friendly arrow buttons on the sides of zones that would switch the mouse cursor to a targeting reticule to select a neighbour for that side by clicking. Four textfields would also be available in the popup menu to enter neighbours by their zone number. There would be a toggle to select creating unidirectional or bidirectional connections to save time editing but also enable layouts with zones with more than four incoming connections.
Displaying the neighbours of a zone would be togglable between displaying only the selected zone and displaying the full graph. The display would comprise of the neighbours zone number in the arrow button on the corresponding edge of a zone and of lines with arrowheads in a contrasting color to facilitate quick visual verification.
Scenario when this would be used?
It would enable users to lay out overlapping zones and use these layouts efficiently via keyboard. Currently, the only option available requires a user to cycle through the zones using left or right by order of creation, since automatic neighbour detection is currently inconsistent, and even if it worked perfectly an automated order might not alway fit a users use case for a layout.
For example, handling screen edges - where should the window wrap around to the other side in an asymmetric layout, should it not go anywhere, or should it expand in a Snap-like manner over a large portion of the edge of the scree - would now be entirely user-definable. Another example is defining behavior over gaps between zones: whether to skip the gap to the zone opposite, to move the window to a desired neighbour on the side of the gap in the same direction, or to not move the window at all.
I personally found one-dimensional scrolling via keyboard in a predefined order counterintuitive and slow. Other users who strongly prefer the keyboard or need to use non-mouse inputs would benefit from this enhancement to Canvas FancyZones layouts.
Supporting information
No response