Bug 384695

Summary: Configurable horizontal scrolling key (ALT or SHIFT) + WHEEL
Product: [Applications] okular Reporter: Ilario Gottardello <ilario.gottardello>
Component: generalAssignee: Okular developers <okular-devel>
Status: REPORTED ---    
Severity: wishlist CC: 842mono, ashark, breakingspell, colinderoos, edmund.laugasson, frederik, gerrit.huebbers, go_noisemaker, Hi-Angel, kde, kde, kdeidentity, khanson679, pallaswept, pat_h, ped, peter, qiao0junfeng, rm, roy-orbitson, simonandric5, steve, tomashnyk
Priority: NOR    
Version First Reported In: 22.08.1   
Target Milestone: ---   
Platform: unspecified   
OS: All   
URL: https://qt-project.atlassian.net/browse/QTBUG-75949
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Ilario Gottardello 2017-09-14 07:18:53 UTC
It would be very convenient to use SHIFT + mouse WHEEL to scroll the document horizontaly, like it works on other software (for example LibreOffice, and most windows applications).

Right now it is possible using ALT, but that is very unconfortable if you switch often between OS, like for example when you are working with virtual machines. Having the possibility to configure this behaviour will be great.
Comment 1 Mina 2018-05-31 19:45:16 UTC
Yes this is really bugging me too because I use Alt+scroll to control the opacity of windows (it's configurable through the settings). Shift + scroll is very standard. It's used in google chrome, vs code, most of ubuntu unity and many others.
Comment 2 Frederick Eaton 2018-06-20 03:12:53 UTC
I would like to second this. Shift+wheel is what I use in Firefox (with some configuration). I didn't even realize that Alt+wheel is what Okular uses until I saw this bug. I don't understand what Shift+wheel is doing in Okular but it seems not useful - it scrolls diagonally, and rotating the wheel in the opposite direction doesn't return me to where I was. I would expect opposing arrow keys and opposing scroll wheel motions to have opposite effects, that's pretty much a fundamental principle of document navigation. I had just assumed the software was broken.
Comment 3 Roy Orbitson 2020-08-07 00:12:08 UTC
I'm not sure this is limited to Okular. Horizontal scrolling in many KDE settings dialogues, Dolphin, etc. is achieved with with Alt +.
Comment 4 Laura David Hurka 2020-08-07 13:47:10 UTC
I can’t find where Okular could handle the Alt key, so I think this is handled in Qt. But it is not documented in QWheelEvent or QScroller, and I can’t find it in Qt::ApplicationAttributes. Upstream bug?
Comment 5 Andrew Shark 2021-02-01 14:01:47 UTC
> Right now it is possible using ALT
> I didn't even realize that Alt+wheel is what Okular uses until I saw this bug.
The same here. But it's good to know that for now it is at least doable with kayboard + wheel instead of dragging scroller.
Comment 6 pepe 2022-12-15 11:56:13 UTC
I observed that Okular on Windows has configurable keyboard shortcuts to scroll up/down, why not for left/right? I always need to zoom a page to be able to read comfortably with my eyesight, so I often need to scroll to read the other columns, or see the figure, or read the other page when I'm on double page mode, etc.
Comment 7 sevens 2023-01-17 20:49:34 UTC
Would also prefer more consistent handling of horizontal scrolling between apps and toolkits, both for Okular specific and other KDE/Qt apps in general.

Current behavior of `Shift+Wheel` (scroll an entire screen's worth of content, where regular wheel may not, depending on global settings?  For me regular wheel scrolls a few lines) is also useful IMO but could maybe use a different shortcut?
Comment 8 Matt Whitlock 2023-06-19 18:11:02 UTC
This behavior comes from Qt. Specifically, QXcbConnection transposes the native wheel event's scroll deltas when populating the QWheelEvent's angleDelta if the Alt modifier key is held. (Search https://github.com/qt/qtbase/blob/dev/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp for "angleDelta.transposed()".) Then, much further down the line, QScrollView reads the angleDelta from the QWheelEvent and fires appropriate signals to the relevant scroll bar(s). So, any new configuration option would need to affect which modifier key QXcbConnection tests for while translating the native wheel events. In short, this is not the responsibility of KDE or of QScrollView but rather of QXcbConnection, which lives in QtBase.

See this Qt bug: https://bugreports.qt.io/browse/QTBUG-75949
Comment 9 Matt Whitlock 2023-06-19 18:16:50 UTC
(In reply to sevens from comment #7)
> Current behavior of `Shift+Wheel` (scroll an entire screen's worth of
> content[…]) is also useful IMO but could maybe use a different shortcut?

Personally, I would like to see the effects of Shift and Alt (on scrolling behavior of Qt/KDE applications) reversed from what they are now. Shift should scroll the alternative axis, and Alt should activate speed scrolling. That would then agree with every other GUI toolkit.
Comment 10 Andrew Shark 2023-07-06 23:19:27 UTC
On Wayland the Alt modifier has no effect. On X11 it allows to scroll horizontally.
On both session types you can scroll horizontally with horizontal wheel.

Operating System: Arch Linux
KDE Plasma Version: 5.27.6
KDE Frameworks Version: 5.107.0
Qt Version: 5.15.10
Okular: 23.04.3
Comment 11 jade 2023-10-30 21:20:00 UTC
Andrew: I have filed a bug on qt about the not-very-related Wayland issue, as it appears that the problem is that qt simply did not implement horizontal scrolling on Wayland at all. You can confirm with launching Okular with `XDG_SESSION_TYPE=x11 okular`

https://bugreports.qt.io/browse/QTBUG-118618
Comment 12 Peter Ped Helcmanovsky 2024-07-11 11:34:55 UTC
I somehow have "shift" in muscle memory too, even as 15+years KDE Plasma daily user (no idea how it happened, I'm confused by it too).

So I would really love it becoming global Plasma option I can flip from alt to shift, so I guess it needs https://bugreports.qt.io/browse/QTBUG-75949 first (resolved by adding it as new option I guess - I don't think it's good to change default without doing some serious survey between user, but I would be completely satisfied by option).
Comment 13 pallaswept 2025-01-17 06:07:00 UTC
I wouldn't be super fussed about which key I hold down, so long as there is one. That is, one, not, one and also sometimes a different one.

There's a horizontal scroll for Qt and there's a horizontal scroll for every other toolkit, but there's not *a* horizontal scroll for the user.

That's the real problem here. lack of consistency - not consistency with other toolkits, but consistency in usage.
Comment 14 sincero 2025-10-29 17:56:13 UTC
*** Bug 452235 has been marked as a duplicate of this bug. ***
Comment 15 sincero 2025-10-29 17:56:36 UTC
*** Bug 480823 has been marked as a duplicate of this bug. ***
Comment 16 Edmund Laugasson 2025-12-22 23:53:04 UTC
In XFCE is ALT+mouse wheel used for desktop zoom. Also holding ALT allows to drag window from any window area. But would like to use Okular also in XFCE desktop. When use Super-key instead of ALT, then it is used for opening main menu in most desktop environments, not only in XFCE. Then desktop zoom works, but drag windows does not work as it conflicts then. Any other key also does not work instead of ALT. As rest of programs use SHIFT+wheel for horisontal scrolling, Okular uses ALT+wheel -this makes very complex to use shortcut keys with other apps in XFCE and not only - same applies to other desktop environments as well.
Therefore it would be really helpful, if horizontal scrolling shortcut key is configurable. Looks like currently there is no mouse wheel related shortcuts configurable. Used Okular version 25.12.0 currently.
Comment 17 Edmund Laugasson 2025-12-23 00:17:19 UTC
Current workarounds in XFCE are either:
1) temporarily turn ALT off from window dragging, desktop zoom (xfwm4-tweaks-settings), when working with Okular, later turn back on
OR
2) change main menu shortcut key as Super+ESC - although then there is possible to use Super as zoom, window drag, it is unlogical as rest of desktop environments are using plain Super-key to open main menu.

... and just try to remember, that in Okular window we have to use ALT+wheel, other windows SHIFT+wheel for horizontal scrolling.
Same applies to other desktop environments as rest of apps are using SHIFT+wheel for horizontal scrolling. This confuses shortcut keys and changes regular workflow used in other app windows.
Comment 18 Konstantin Kharlamov 2026-01-09 16:43:07 UTC
Upstream bugreport: https://qt-project.atlassian.net/browse/QTBUG-75949
Comment 19 pallaswept 2026-01-10 15:50:56 UTC
I thought I should mention that shift+scroll does have a purpose on KDE and that's scrolling faster/further... So I guess that any solution which might allow us to use shift+scroll for horizontal scrolling, should also enable us to use alt+scroll to scroll faster/further.

There's a suggestion in the linked bug to possibly "making Shift+scroll work in addition to Alt+scroll" which might be a problem.
Comment 20 Konstantin Kharlamov 2026-01-10 21:02:19 UTC
(In reply to pallaswept from comment #19)
> I thought I should mention that shift+scroll does have a purpose on KDE and
> that's scrolling faster/further... So I guess that any solution which might
> allow us to use shift+scroll for horizontal scrolling, should also enable us
> to use alt+scroll to scroll faster/further.
> 
> There's a suggestion in the linked bug to possibly "making Shift+scroll work
> in addition to Alt+scroll" which might be a problem.

Well, per my understanding Okular does it by assigning the shortcut explicitly. So, if Qt changes the defaults, the apps that were using "Shift+scroll" for something else (like Okular) should remain unaffected.
Comment 21 pallaswept 2026-01-11 04:48:50 UTC
What I mean to say is that the suggestion in that bug

"making Shift+scroll work in addition to Alt+scroll"

Will break things. It must be one, OR the other - because there are two functions to consider, we need two bindings available, and this function can't take two for itself.
Comment 22 Konstantin Kharlamov 2026-01-11 05:07:19 UTC
I am confused, can you please elaborate what will it break?
Comment 23 pallaswept 2026-01-11 05:16:00 UTC
(In reply to Konstantin Kharlamov from comment #22)
> I am confused, can you please elaborate what will it break?

Now: 
Shift+scroll = fast scroll
Alt+scroll = side-scroll
Shift+Alt+scroll = fast side-scroll

If shift and additionally alt will trigger side-scroll, then there is no bind available for fast-scroll.
Comment 24 Konstantin Kharlamov 2026-01-11 05:21:11 UTC
(In reply to pallaswept from comment #23)
> (In reply to Konstantin Kharlamov from comment #22)
> > I am confused, can you please elaborate what will it break?
> 
> Now: 
> Shift+scroll = fast scroll
> Alt+scroll = side-scroll
> Shift+Alt+scroll = fast side-scroll
> 
> If shift and additionally alt will trigger side-scroll, then there is no
> bind available for fast-scroll.

Okay, now I'm even more confused. I replied previously that if an app processes a hotkey explicitly (such as with Shift+scroll in Okular), that should override any other default binding. You now say the problem holds nonetheless. Why?
Comment 25 pallaswept 2026-01-11 05:43:10 UTC
There are two functions, and two bindings. If one function takes two bindings, then there is one function left with zero bindings available.
Comment 26 Konstantin Kharlamov 2026-01-11 06:08:23 UTC
(In reply to pallaswept from comment #25)
> There are two functions, and two bindings. If one function takes two
> bindings, then there is one function left with zero bindings available.

If Qt would default both "Alt+scroll" and "Shift+scroll" to horizontal scrolling, and then Okular overrdes the latter with "fast scrolling", you just get the old behavior where "Alt+scroll" is horizontal scroll and "Shift+scroll" is "fast scroll".
Comment 27 Matt Whitlock 2026-01-11 06:32:25 UTC
Why all the laser focus on Okular? Fast scrolling with Shift+Wheel is default Qt behavior in all Qt applications, not just Okular. I too would love to see Qt be configurable with respect to which modifier key speeds up scrolling and which switches scrolling to the opposite axis, but I would *not* want to see Qt's default behavior be that it accepts either of two modifier keys for alternate-axis scrolling but loses the ability to scroll quickly.

Ideally I would want to see each of the two scrolling modifiers be configurable with respect to which modifier key activates it (and not limit the choices to just Shift and Alt), but if we can't have configurability, at least give us behavior consistent with other toolkits.
Comment 28 Konstantin Kharlamov 2026-01-11 07:19:47 UTC
Oh, so that's what was missing from the discussion: that "Shift + scroll" already has some default binding in Qt (not in Okular specifically). I didn't even know about that, but now that I'm testing in Spectacle, I notice indeed that holding down shift makes scroll go faster.

Well, that complicates things.

Though, I find it strange that Qt devs never commented about it on the report, which has been created back in 2021 🤔 Is it really the Qt default binding, or perhaps is it KDE frameworks…?