Bug 510707

Summary: Implement the ability to switch between virtual desktops by holding the Meta (Super) key and using the mouse scroll wheel, regardless of where the cursor is on the screen.
Product: [Plasma] kwin Reporter: Prabhat Kumar <letmein261>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: REOPENED ---    
Severity: wishlist CC: dev, nate
Priority: NOR    
Version First Reported In: 6.4.5   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Prabhat Kumar 2025-10-17 06:15:36 UTC
SUMMARY
Implement the ability to switch between virtual desktops by holding the Meta (Super) key and using the mouse scroll wheel, regardless of where the cursor is on the screen.

USER STORY
As a user, I want to be able to instantly switch to the next or previous virtual desktop by holding the Meta key and scrolling my mouse wheel up or down. This should work globally, even when my cursor is hovering over an active application window.

JUSTIFICATION

Ergonomics & Workflow: This is a very fast and ergonomic way to navigate desktops, minimizing hand movement from the mouse to the keyboard.

Proven Paradigm & User Expectation: The modifier key + scroll method is a proven, highly efficient paradigm for desktop navigation. Providing this as an option would lower the barrier to entry for many new users and aligns perfectly with KDE's philosophy of offering powerful configuration choices.

Current Limitations: The current methods (scrolling on the desktop background, using the panel pager, or keyboard shortcuts) are less efficient. The scrolling on desktop background method in particular is not viable during a typical workflow as the desktop is usually obscured by windows.


EXPECTED RESULT
`Meta + Scroll Wheel Up` -> Switch to the previous virtual desktop.

`Meta + Scroll Wheel Down` -> Switch to the next virtual desktop.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux
KDE Plasma Version: 6.4.5
KDE Frameworks Version: 6.19.0
Qt Version: 6.10.0
Comment 1 Nate Graham 2025-10-17 18:36:11 UTC
Cool idea!
Comment 2 Vlad Zahorodnii 2025-10-17 19:29:44 UTC
It's already implemented. Use Meta+Alt+wheel.
Comment 3 David Marín 2025-12-22 19:43:36 UTC
(In reply to Vlad Zahorodnii from comment #2)
> It's already implemented. Use Meta+Alt+wheel.

Hi there! Sorry for necroing this, I totally get why this was marked as WORKSFORME but I wanted to politely clarify that the original request was specifically for **Meta (alone) + scroll wheel** (global, anywhere on screen), rather than the existing Meta+Alt+scroll. What is currently implemented (and it is hardcoded, so you cannot change it to anything else), is as Vlad has said, Meta+Alt+Scroll, and not Meta+Scroll.

As OP says, Meta+Scroll is way more ergonomic than Meta+Alt+Scroll, because the former can be done with the thumb (or even the side of the left hand), whilst the other four fingers remain hovered over QWERTY or ASDFG, so if you are typing in-between two or three applications which are in contiguous virtual desktops, you can get to typing much faster than if you actually had to lower all your typing fingers in order to press Meta and Alt simultaneously.

This shortcut is actually the default on GNOME. My company laptops all come with GNOME, and so I spend 8+ hours a day using this shortcut, and it is one of the main features of GNOME I miss when I get home and I boot my machine in which I have KDE.

This global shortcut can be found in master branch of /plasma/kwin/src/virtualdesktops.cpp, lines 860-864: https://invent.kde.org/plasma/kwin/-/blob/master/src/virtualdesktops.cpp?ref_type=heads#L860

If the team thinks this could be worth adding as an optional shortcut (perhaps configurable in System Settings > Shortcuts > KWin), I'd be happy to try submitting a merge request. Or is there a better way to discuss/propose it (e.g., on KDE Discuss or a new feature request)?
Comment 4 David Marín 2025-12-22 19:51:07 UTC
I shouldn't have provided a link referencing lines of code of master branch, which is subject to change, and the numbers I have provided might be outdated if this is revisited in the future. A static version of the code I am referring to can be found here: https://invent.kde.org/plasma/kwin/-/blob/v6.5.3/src/virtualdesktops.cpp?ref_type=tags#L860