Ubuntu

[KDE] no option for mouse wheel acceleration

Reported by Albert Zeyer on 2010-08-17
28
This bug affects 5 people
Affects Status Importance Assigned to Milestone
X.Org X server
Confirmed
Wishlist
xorg-server (Ubuntu)
Wishlist
Unassigned

Bug Description

I am very used to mouse wheel acceleration but I haven't found any setting for it in the KDE settings.

Also, the maximum possible value you can fill there (strangely it counts per lines) still is very slow.

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: kdebase (not installed)
ProcVersionSignature: Ubuntu 2.6.32-24.39-generic-pae 2.6.32.15+drm33.5
Uname: Linux 2.6.32-24-generic-pae i686
NonfreeKernelModules: nvidia
Architecture: i386
Date: Tue Aug 17 20:50:50 2010
InstallationMedia: Kubuntu 10.04 LTS "Lucid Lynx" - Release i386 (20100427)
ProcEnviron:
 LANGUAGE=
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: meta-kde

Jonathan Thomas (echidnaman) wrote :

Hello,

Thanks for reporting this feature request! Unfortunately, at this time Kubuntu does not have the developer manpower needed to implement and maintain many features at the Kubuntu level. This wish would best be reported and tracked at https://bugs.kde.org, so that it can be implemented by the KDE developers themselves. Once implemented in KDE, it will be included in Kubuntu once the KDE version the feature is implemented in reaches Kubuntu.

Thanks!

Changed in meta-kde (Ubuntu):
importance: Undecided → Wishlist
status: New → Invalid

It would be nice to have acceleration for the mouse wheel.

Report on Launchpad: https://bugs.launchpad.net/ubuntu/+source/meta-kde/+bug/619403

I am trying right now to implement this myself.

As I am not that used to the Xorg sources, this is what I want to do in xf86-input-mouse:

* Add some attributes in the _MouseDevRec struct (in fx86OSmouse.h) which are about the acceleration properties.
* In MouseCommonOptions in mouse.c, I am adding some additional handling to read those acceleration attributes.
* At some point in the input handling in mouse.c, add that acceleration handling (at what point exactly?). I plan to just throw out multiple button 4,5 press events.

Please give some comments about how to do it right.

Or probably it is better to add those properties to mousePrivRec (in mousePriv.h).

As far as X is concerned mouse wheel is a couple of buttons, so I'm not sure what acceleration would mean there. This sounds like it should be implemented in clients. In any case moving to evdev as you probably don't want to be doing that in the mouse driver anyway.

Ok, I am in the middle of a progress here. I am trying to optimise it a bit further. But I will attach my current progress so far so you can review it and give some comments because I actually have the problem that sometimes (mostly after I restart xinit on a running Xserver), somehow the device property names are messed up or at least xinput shows this:

az@acompneu 1275 (~) %xinput list-props 8
Device 'Microsoft Microsoft IntelliMouse® Explorer':
 NumLock (119): 1
 left_ptr (241): ... of unknown type _DBUS_SESSION_BUS_SELECTION_az_9797c07820e7488abd822c644c1f55a4

 _DBUS_SESSION_BUS_ADDRESS (243): 0
 _DBUS_SESSION_BUS_PID (244): 0
 KDE_FULL_SESSION (245): ... of unknown type _DBUS_SESSION_BUS_SELECTION_az_9797c07820e7488abd822c644c1f55a4

 KDE_SESSION_VERSION (246): ... of unknown type _DBUS_SESSION_BUS_SELECTION_az_9797c07820e7488abd822c644c1f55a4

 WM_PROTOCOLS (247): ... of unknown type _DBUS_SESSION_BUS_SELECTION_az_9797c07820e7488abd822c644c1f55a4

 Evdev Reopen Attempts (226): 10
 Evdev Axis Inversion (227): 0, 0
 Evdev Axes Swap (229): 0
 _NET_WM_CONTEXT_HELP (251): "LevelFive" (127), "AltGr" (128)
 _NET_WM_SYNC_REQUEST (252): "Alt" (120), "LevelThree" (121), "LAlt" (122), "RAlt" (123), "RControl" (124), "LControl" (125), "ScrollLock" (126), "_KDE_SPLASH_PROGRESS" (239), "WM_LOCALE_NAME" (240), "_XKB_RULES_NAMES" (238), "_XKB_RULES_NAMES" (238), "_XKB_RULES_NAMES" (238), "_XKB_RULES_NAMES" (238)
 Evdev Middle Button Emulation (230): 2
 Evdev Middle Button Timeout (231): 50
 Evdev Wheel Emulation (232): 0
 Evdev Wheel Emulation Axes (233): 0, 0, 4, 5
 Evdev Wheel Emulation Inertia (234): 10
 Evdev Wheel Emulation Timeout (235): 200
 Evdev Wheel Emulation Button (236): 4
 Evdev Drag Lock Buttons (237): 0

It looks a lot like some memory is messed up. I already tried to debug with valgrind but I didn't see anything related (a whole bunch of other messages show up there, so I also might have missed it).

Another thing which makes the debuggin a bit complicated: Most applications seem to scroll already for one event by multiple pixel; about 20 pixel in Chrome. And I have set it to the minimum possible value in the KDE settings (not sure if Chrome takes those or has its own settings). That makes the debugging quite hard because the scrolling is soon pretty much too fast.

Created attachment 38377
mouse wheel acceleration patch - rev1

just added me to the CC. Sounds like a good idea to have acceleration.

Comment on attachment 38377
mouse wheel acceleration patch - rev1

Note that this patch is already outdated. I have posted a new version to the mailinglist. I am not sure if I will keep updating the patch also here, so please watch out for the patch on the mailinglist.

Albert Zeyer (albertzeyer) wrote :

I have created a patch for this. Take a look at the Xorg upstream bug report for further information.

Changed in meta-kde (Ubuntu):
status: Invalid → New

good values to play with: speed-multiplier: 100, max-speed: 20

Created attachment 38386
mouse wheel acceleration patch - rev2

affects: meta-kde (Ubuntu) → xorg (Ubuntu)
Bryce Harrington (bryce) wrote :
affects: xorg (Ubuntu) → xorg-server (Ubuntu)
Changed in xorg-server (Ubuntu):
status: New → Triaged
summary: - no option for mouse wheel acceleration
+ [KDE] no option for mouse wheel acceleration
Albert Zeyer (albertzeyer) wrote :

Note that this is not only KDE. The first place where this needs to be implemented is the Xorg server. I have done that already with my patch. Without that or another similar implementation in Xorg, this cannot (should not) be implemented.

Also note that there was a discussion with Xorg developers about my patch on the Xorg mailinglist. While it works quite well and is quite easy, this probably will not be the final implementation. It was considered to generalize the already existing acceleration code in Xorg and reuse that code also for mouse wheel acceleration, together with this project:

https://github.com/x-quadraht/pscroll

It probably will take much longer though until we have all that in Xorg. So if Ubuntu wants mouse wheel acceleration now, my patch would be a viewable solution.

For those who never experienced mouse wheel acceleration: You really should try that, it *greatly* improves the general user experience and usability. I think this is quite an important thing if you want to improve Ubuntus usability.

Changed in xorg-server:
status: Unknown → Confirmed
Changed in xorg-server:
importance: Unknown → Medium

Can you please send your patches to xorg-devel for review. Please rebase them
on top of current git master if appropriate. Thanks.

Changed in xorg-server:
importance: Medium → Wishlist

Don't work for xorg-server-1.11.4 :( Please fix it.

evgom (evgom-sid) wrote :

Albert Zeyer i can't compile with your patch. Please update. :)

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.