plugins/overview: Auto-Tile Desktop Grid
Reintroducing a useful feature for the combined Overview + Grid effect: Auto-tiling of the Desktop Grid, apart from the system Virtual Desktop/Pager rows.
Resolves BUG 482418
This MR:
-
Adds QML logic, using a square root of the desktop count to calculate the rows and columns to fill a square grid.
-
Adds KCM toggle to switch Desktop Grid effect behavior back to the current global VD row count, with auto-tiling on by default.
-
Raises the global Virtual Desktop soft cap from 20 to 25. This fits the square grid perfectly
-
Adds editable labels to the Desktop Grid tiles to mirror the Desktop Bar and Overview window presentation and styling.
System Settings:
Optimal layouts:
Odds and ends:
Background:
-
Plasma 6.x introduced changes to Overview, Desktop Grid, and the handling of Virtual Desktops that rendered much of the old options moot from a code and design standpoint, so this option was left behind. It was also formerly presented as a semi-confusing drop-down, labeled "Pager", and "Custom".
-
Even with this new design regarding Desktop linearity in mind: As far as the Desktop Grid is concerned, we should expected to see a grid, not a list.
Currently, setting up an efficient Grid layout takes several manual steps on the end user's part:
- Open Overview or Desktop Grid and add some desktops using onscreen elements or + key. These present as a linear list by default, matching VD settings and pager.
- System Settings -> Window Management -> Virtual Desktops -> Rows must be manually set to fit the desired desktop count. This affects all VD spatial presentation outside of the Grid including transitions/animations and hotkeys.
The VD layout should be simple and contextual across the effect:
- Are you in Overview? Present desktops as a 1x linear row left and right.
- Are you in Desktop Grid? Present desktops as a Grid to maximize screen space. 2x2, 3x3, 4x4, etc.
- Do you like the old behavior or specific row control in the Grid? Easy option to toggle back.
To note, the KCM checkbox is added with an understanding of what I gather is the reason behind the project's overall hesitance to add customization to desktop effects: that the option is too "buried" or obscure.
Don't fret, I'm working on a QML-based settings overlay that will present this option contextually in the live Grid with related options, canceling out that point. This overlay works great functionally, but needs visual polish and is on the back-burner: #259
Looking forward to feedback and further ideas, the labels especially will need QML sage opinion. Gunning to reach the 6.3 feature freeze deadline considering the UI changes involved.