G-dH / vertical-workspaces

V-Shell is a GNOME Shell extension that allows you to customize the layout and behavior of the Shell UI.
GNU General Public License v3.0
215 stars 19 forks source link

[FEATURE] Roll the mouse wheel to switch to next / previous workspace #139

Closed dnakelir closed 1 month ago

dnakelir commented 2 months ago

Unless I misread Gnome and/or VShell's documentation, the feature below does not exist for now:

Problematic description

Problematic: using one's mouse, it is only possible to quickly switch from the current workspace to the next / previous one by rolling one's mouse's wheel on the activity button (icon) located in the top left corrner.

This is really frustrating because this behaviour forces the user to first position his mouse cursor on the activity button before he/she can effectively change the active workspace.

Suggested solution

The proposed solution is what actually used to exist either in Compiz's options or in the original Destop Cube plugin (cannot remember where this option was located) :

Requirement : the mouse's cursor MUST NOT BE located on any window (i.e. MUST BE directly located on the active workspace's background)

Scenario: the user can then roll the mouse's wheel up or down to respectively switch to the previous / next workspace.

Consequences:

Such a behaviour would drastically improve Gnome's worklow's fluidness by avoiding a repeated useless hand+mouse movement whereas in many contexts, the mouse cursor is already located on the desktop's background...

G-dH commented 2 months ago

You can use my CHC-E extension and set any monitor edge to switch workspaces when you scroll over it.

dnakelir commented 2 months ago

Hi G-dH,

Thanks for your quick answer. I've just tried the CHC-E extension. Again, you made an insanely beautiful and useful Gnome extension that IMHO should be part of GNOME's integrated plugins... Anyway...

Nevertheless... unless I've missed a configuration parameter of the CHC-E plugin, I was unable to do exactly what I described in my wanted feature description.

I configured your the CHC-E plugin as painted in the attached picture below:

chce

Results :

1) YES : Whenever I move the mouse over the top left corner above the activity button, then when I roll its wheel up or down, this switches to the next / previous workspace. In this respect, this plugin enables me to keep the existing GNOME's behaviour. So YES, this is cool, because I want to keep this default GNOME's behaviour.

2) NO : If I move the mouse anywhere on the desktop background in the "expand clickable corner" area, then if I roll its wheel up or down, this unfortunately does not switch to the previous / next workspace as I was requesting it.

3) UNFORESEEN : the CHC-E plugin nevertheless enables me to hit the left or top border of the screen with the mouse cursor anywhere within the 98% "expand clickable corner" area. This toggles the "Overview - Windows Picker" as shown below :

Capture d’écran du 2024-04-06 01-06-09

From there, I can then roll the mouse's wheel up or down to switch the active workspace.

But, as you now understand it, this is not the behaviour I was expecting. I really do no want to go through a intermediate stage such as that imposed in step 3. I just want to be able to switch the active workspace in step 2, by simply rolling the mouse's wheel anywhere on the active workspace (except on visible windows, of course).

G-dH commented 2 months ago

Set the hot corner barriers size back to defaults if you want a hot corner and not two hot edges. Uncheck the Ctrl buttons. Only activate the vertical expansion of the clickable area (the toggle button above the barrier slider) that reacts to mouse buttons, including the wheel. This allows you to simply flick the mouse cursor to the top screen edge and roll the mouse wheel to switch workspaces. The advantage is that this method always works, you don't need a visible desktop. If you expand two adjacent corners on the same edge, they both expand on half of the edge. For example, I set the top right edge to switch workspaces and the top left edge to switch windows on the current workspace.

The "... Current Monitor Only" option is a workaround that switches workspaces on the primary monitor and moves windows across workspaces on secondary monitors, so it can simulate switching workspace independently, which GNOME Shell can't do.

dnakelir commented 2 months ago

Thanks for your feedback.

I am affraid you did not understand the feature I requested. In my previous message, I simply summarized my CHC-E configuration attempts to unsuccessfully create the feature I requested. Unless I once again misunderstood your explanation, your answer does not produce this feature.

Maybe my english is too bad to correctly phrase the feature. Therefore I will express it as simply as possible:

1) Preconditition: the mouse's cursor is located anywhere on the desktop's background image, outside of any visible window.

2) The mouse's cursor stays still

3) The user rolls the mouse's wheel up or down, which directly changes the active workspace to the previous one resp. to the next one.

NOTE 1: this use case takes place from the active workspace with no need to toggle to the workspaces overview

NOTE 2: this use case does not require any interaction with either the corners or the edges of the screeen.

NOTE 3: the effect produced in step 3 is identical to the effet that would be produced by rolling down the mouse's wheel positioned on the activity button in the screen's top left corner. In this case, though, the user does not have to move the mouse over the activity button..

G-dH commented 2 months ago

I offered you a better option that works without the need for visible wallpaper. You configured the CHC-E incorrectly. If you had followed my instructions, you could have easily switched to whatever you wanted without entering the overview. CHC-E provides two independent types of triggers for each corner: pressure barriers for hot corners expandable by the sliders, allowing you to customize them into hot edges of any size, and clickable/scrollable areas expandable by the toggle buttons to cover the entire edge in the selected axis, or half if the adjacent corner is expanded on the same edge.