ianyh / Amethyst

Automatic tiling window manager for macOS à la xmonad.
https://ianyh.com/amethyst/
MIT License
14.64k stars 486 forks source link

Non/main rotation C/CW in WIDE/TALL layouts #1523

Open alexgenaud opened 1 year ago

alexgenaud commented 1 year ago

Rotation will be visually intuitive only if the sequence of the main windows are opposite the sequence of the non-main windows. Just as 10, 11, 12, 1, 2 of the clock read left-right and 4, 5, 6, 7, 8 read right to left at the bottom of the clock.

What is ‘correct’ behaviour may be open to interpretation, but clock-wise and CCW are well-defined in most scenarios. Below ‘correct’ is opinionated but visually and logically consistent with respect to rotation in either direction. All examples will be easier to visualise with many (say five or more) distinct windows on a single Desktop.

The examples are consistently (and 'correctly') reversed between CW and CCW. Thus, we’ll discuss CCW only. Given that “J” means rotate CCW (Moon-wise) for ‘window focus’ and ‘move window’ where CCW means visually “left from top, down, right from bottom, up, left from top, …”

WIDE layout CCW rotation through the NON-MAIN windows

One main window

Two main, many non-main windows

Most in main, one or zero non-main windows

Assumptions of cause: I believe the “main” windows in WIDE layout are arranged correctly, while the “non-main” windows should reverse their sequence in WIDE layout.

TALL layout CCW rotation through MAIN windows

One main window

Many main, many non-main windows

All main, zero non-main windows

Assumptions of cause: I believe the “main” windows in TALL layout should reverse their sequence, while the “non-main” windows are arranged correctly in TALL layout.

alexgenaud commented 1 year ago

Example WIDE layout from (0 main, 5 non-main blue) to (1 main teal, 4 non-main blue) through (5 main teal, 0 non-main) *

image

Expect CW to rotate 1 to 2, 3, 4, 5, then 1 again. CCW would rotate 1 to 5, 4, 3, 2, 1, then 5 again. Where rotate would be consistent (without changing window sequences) with respect to focus windows, move windows, and increase/decrease main windows.

* Currently, Amethyst does not allow (0 main, all blue non-main windows) but does allow (unlimited main windows).

NB: this implies that increasing main count from 1 to 2, means that the popped bottom right window (2 blue) will push into top right position (now 2 teal). Increasing main count will "appear" to be a CCW operation in the WIDE layout and decreasing the main count will perhaps "appear" to be a CW operation.

NB2: ironically, the diagram above is NOT presented a circular rotation. It's just left-right-next-line as we read English. But the windows 1,2,3,..,N should be numbered circularly and rotate CW (left-right on the top (main), right-left on the bottom) and in other layouts (CW upward on the left and CW downward on the right).