Add Mouse gestures to the new Shell UX to improve the "feeling of integration" of the "1-entry point" for mouse users
So this recent blog post talked about reworking the overview, the appgrid and the different transitions between the shell states. The focus was to introduce a better spacial layout.
And it looks great... for touchpad and keyboard users. Mouse users are even (albeit in a minor way) negatively impacted by the changes because the distance between between the hot corner and the dash is increased. Since there was no mention of improvements of the UX for mice user, I guess there are no specific plans yet... or its release/annoucement isn't happening any time soon (e.g. not in GNOME 40). So I'd like to throw in my 2 cents.
I am thinking of Mouse Gestures which are inspired by the mobile UX (Android, iOS & iPad OS). Here is a mockup of how it could work. Note the LMB press state right besides the mouse.
At the bottom there is a draggable area which performs certain actions based on where and how far the drag happens. Dragging it up opens the overview. Dragging it all the way up opens the appgrid. Dragging down a workspace in the appgrid (to keep the spacial feeling) switches back to the overview. Clicking empty could return us to the Desktop (besides directly activating a workspace).
Animations should be translated 1:1 to the mouse movement/gesture (similiar to how touchpad gestures/animation or currently how you can switch workspaces in the overview by dragging with the mouse and you get a 1:1 movement/animation translation).
More actions could also be implemented (see below).
Details
Draggable Area
The Activites
button and the hotcorner would be replaced by a draggable bottom area. It can be shown to be draggable by common features like a pill bar (in my mockup the pill expands to be the Dash), an arrow and changing the pointer icon to the grab one etc.
That area auto-hides since most people probably don't want a second bar even if it's just a few pixels high. To prevent accidental activation the "hot edge"'s (or whatever you want to call it xD) width could be smaller than the entire screen width. There could also be a small cooldown or an increase in necessary force to reactivate the draggable area in case the user left the area without activating it.
Quick Switch
Currently the mouse user always needs to enter the overview to switch windows. Something along the lines of "Alttabbing" to quickly switch between the 2 (or more) most recent windows doesn't exist. This isn't ideal since the layout of the overview isn't predictable.
As a solution the user can just perform horizontal "mouse gestures"/swiping on the draggable area. This would be analog to how the major mobile OS's do it (which is just "alttabing" with gestures).
[Edit] Alternatively, horizontal gestures could be used to switch workspaces. This would follow the spatial layout and replace the need to open the overview just for a quick switch between 2 workspaces (so 1 swipe gesture instead of open overview -> switch workspaces -> close overview). [/Edit]
DND/Dropdown-style activation
(like some Dropdown menus allow to hold the click and activate an item by releasing the click on a menu item)
A second "quick action" could be to not immediatly open the overview when performing a click on the draggable area - sorta like a peeking of the dash. See my initial mockup. After the initial click (while holding the click) the Dash will only be shown. Only after leaving that area (while holding the click, i.e. dragging above the Dash) will the overview open. This is to allow using the Dash (which then would be kinda a dock) without needing to enter the overview unnecessarily while keeping the "1 entry point" philosophy.
Requiring the LMB to be held for gestures would enable a quick DND/Dropdown-style activation of an item (appIcon in the Dash, window in the overview or workspace in the appgrid). Items shouldn't be activated on LMB release when the release was part of a gesture (i. e. the mouse movement from the LMB click to release was fairly straight).
Try it out yourself
I created the mockup in Godot (a game engine) because that's the only UI tools I am familiar with. So if you want to try the gestures (only) out yourself, here is the repo. https://github.com/Leleat/gnome-mouse-gestures-mockup
Just download the files and open them with Godot.