Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
alexgenaud opened this issue Jul 8, 2023 · 1 comment
Open

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

alexgenaud opened this issue Jul 8, 2023 · 1 comment

Comments

@alexgenaud
Copy link

alexgenaud commented Jul 8, 2023

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

  • Reproduce: Open five or more windows in one Desktop view. Decrease main count fully (to 1 wide on the top).
  • Actual: Rotating focus CCW (with mod-J, same ‘focus window’ and ‘move window’) actually rotates CW (Sun-wise).
  • Expect: Rotating ‘focus window’ and ‘move window’ CCW should rotate CCW.

Two main, many non-main windows

  • Reproduce: Five or more windows. Increase main count to 2 (2 main wide on top, 3+ non-main below).
  • Actual: Rotating CCW cycles leftward on top through the main windows and leftward on bottom through the non-main windows.
  • Expect: Right-to-left (leftward) CCW through the top is correct. Rotating CCW should cycle left-to-right on the bottom through the non-main windows.

Most in main, one or zero non-main windows

  • Reproduce: Five or more windows. Increase main count such that most or all windows are in main (leaving one, zero, or negative windows in non-main)
  • Actual: Rotating CCW will cycle leftward (then repeat from the far right again, Pacman style)
  • Expect: This appears correctly. All main windows rotate CCW (leftward) from the top. The direction of one, zero, or transparent non-main windows is not observable.

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

  • Reproduce: Three or more windows. Decrease main count to 1 (1 tall window left, many stacked on right)
  • Actual: Rotating CCW cycles up on the right, left, down, up on right.
  • Expect: Behaviour appears correctly.

Many main, many non-main windows

  • Reproduce: Open five or more windows. Increase main count to 2 (2 main windows left, many stacked on right)
  • Actual: Rotating CCW cycles UP on the left (main), and up on the right (non-main).
  • Expect: Rotating CCW should cycle DOWN the left (main), and up on the right (non-main).

All main, zero non-main windows

  • Reproduce: Open two or more windows. Max main count (all main windows left, zero non-main right)
  • Actual: Rotating CCW cycles UP on the left (main).
  • Expect: Rotating CCW should cycle DOWN the left (main). The 'correct behaviour' may not be obvious without non-main windows, but the 'all main' case should be similar to the 'many main' case (down main when rotating CCW, which is what 'J' means and does in vi).

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
Copy link
Author

alexgenaud commented Jul 8, 2023

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).

@alexgenaud alexgenaud changed the title Inconsistent NON/MAIN rotation C/CW in WIDE/TALL layouts Non/main rotation C/CW in WIDE/TALL layouts Jul 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant