No Mouse Model in Yast > Hardware

So I’m trying to emulate a scroll wheel on my trackball mouse, but on all the tutorials I see you have to go Mouse Model in the Hardware section of Yast. Problem is, I don’t have any thing that says Mouse Model. Is there something I have to install?

OpenSUSE 13.2

I guess you’re referring to an old guide like this
https://en.opensuse.org/YaST_Mouse_Model

Things have changed a bit since then. You’ll need to create a configuration file in /etc/X11/xorg.conf.d/ to get the input device behaviour you desire. Start by providing info about your hardware

/usr/sbin/hwinfo --mouse

List the input devices

xinput list

Using the device ID pertaining to your trackball, execute the following

xinput list-props <device_id>

Post the information from the above commands so that we can advise further.

This thread may be useful to you
https://forums.opensuse.org/showthread.php/508839-No-mouse-wheel-on-new-install

Hardware:
38: USB 00.0: 10503 USB Mouse
[Created at usb.122]
Unique ID: HpcW.GKoE7EQqJTF
Parent ID: zPk0.7qWCOCfUJwE
SysFS ID: /devices/pci0000:00/0000:00:12.0/usb4/4-3/4-3:1.0
SysFS BusID: 4-3:1.0
Hardware Class: mouse
Model: “Itac Generic USB Mouse”
Hotplug: USB
Vendor: usb 0x0431 “Itac Systems, Inc.”
Device: usb 0x0100
Revision: “1.00”
Compatible to: int 0x0200 0x0001 “Generic USB Mouse”
Driver: “usbhid”
Driver Modules: “usbhid”
Speed: 1.5 Mbps
Module Alias: “usb:v0431p0100d0100dc00dsc00dp00ic03isc01ip02in00”
Driver Info #0:
XFree86 Protocol: explorerps/2
GPM Protocol: exps2
Config Status: cfg=no, avail=yes, need=no, active=unknown
Attached to: #37 (Hub)

Input Devices:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HID 0431:0100 id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ SCISSORS Keyboard id=9 [slave keyboard (3)]
↳ Vimicro USB 2.0 PC Camera (Venu id=10 [slave keyboard (3)]

Device ID Code:
Device ‘Virtual core pointer’:
Device Enabled (143): 1
Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

(I’m actually a little confused. Does virtual core pointer mean mouse?)

Thanks for your help.

So, the device of interest is reported as an “Itac Generic USB Mouse” (Vendor: usb 0x0431 “Itac Systems, Inc.”, Device: usb 0x0100)

Xinput reports it rather generically as

HID 0431:0100                             id=8    [slave  pointer  (2)]

so the following will list the device properties

xinput list-props 8

Check which Xorg input driver is handling this device

grep "Using input driver" /var/log/Xorg.0.log

I assume that it will be the evdev driver, in which case

man evdev

describes some configuration options available. These can be added to a custom Xorg config file eg /etc/X11/xorg.conf.d/75-trackball.conf

Just to give you a basic idea, here’s one for a Logitech trackball…

https://forums.opensuse.org/showthread.php/508839-No-mouse-wheel-on-new-install?p=2721496#post2721496
More assistance can be given if required, although I don’t own or have experience with using this hardware.

Thank you very much! Thing is, I don’t quite know how to configure scrolling on my trackball. What I want to do is emulate by scrolling by either holding down the middle mouse button and moving the wheel, or by holding down the left and right buttons and scrolling the wheel.

Here is the configuration file:

Section “InputClass”
# Novell Bugs #597214, #780626, #843333, #861813
Identifier “Trackpoint Wheel Emulation”
MatchProduct “TPPS/2 IBM TrackPoint|ThinkPad USB Keyboard with TrackPoint”
MatchIsPointer “on”
Driver “evdev”
Option “EmulateWheel” “on”
Option “EmulateWheelButton” “2”
# Since middle button is in use now these button events need to be emulated (bnc#869097)
Option “Emulate3Buttons” “on”
EndSection

So how would I emulate the aforementioned feature?

The trick is to find out which numerical button (identifier) is associated with the middle button. Some trial and error might be needed here, or you can check using the ‘xev’ utility. You might need to install that first with

zypper in xev

When that utility is running (as regular user from a terminal), it will open an X-window where you can move the cursor to and it will capture pointer and button events. Click the desired button and note the associated event details. For example, my right touchpad button generates

ButtonPress event, serial 40, synthetic NO, window 0x4400001,
    root 0x27b, subw 0x0, time 10420993, (157,7), root:(157,551),
    state 0x0, button 3, same_screen YES

ButtonRelease event, serial 40, synthetic NO, window 0x4400001,
    root 0x27b, subw 0x0, time 10421072, (157,7), root:(157,551),
    state 0x400, button 3, same_screen YES

so button #3 corresponds to right touchpad button.

Your config file (eg /etc/X11/xorg.conf.d/75-trackball.conf) might look like (assuming button #2)

Section "InputClass"
    Identifier      "Itac Generic USB Mouse"
    MatchProduct    "HID 0431:0100"
    Driver  "evdev"
    Option  "EmulateWheel"  "on"
    Option  "EmulateWheelButton"    "2"
EndSection

Once the file is saved, the X-server will need to be restarted for it to take effect. Do that with CTRL+ALT+Backspace (twice). Check the behaviour of your USB input device.

Other options may be needed as well, and this may take further research/experimentation.

My .conf file already looked like that. I did ctrl + alt + backspace (you only have to do it once) and I don’t think anything has changed. When I hold down the middle button and try to scroll like a mousewheel, it doesn’t work.

Post the configuration file you have.

I did ctrl + alt + backspace (you only have to do it once)

That depends on how the X-server is configured IIRC.

and I don’t think anything has changed. When I hold down the middle button and try to scroll like a mousewheel, it doesn’t work.

Okay, but how did you determine which button to assign? Did you use xev?

Also, please confirm the Xorg input driver handling this device as I explained previously.

.conf file:

Section “InputClass”
# Novell Bugs #597214, #780626, #843333, #861813
Identifier “Trackpoint Wheel Emulation”
MatchProduct “TPPS/2 IBM TrackPoint|ThinkPad USB Keyboard with TrackPoint”
MatchIsPointer “on”
Driver “evdev”
Option “EmulateWheel” “on”
Option “EmulateWheelButton” “2”
# Since middle button is in use now these button events need to be emulated (bnc#869097)
Option “Emulate3Buttons” “on”
EndSection

And yes, I used Xev to figure out the mouse button:

ButtonRelease event, serial 40, synthetic NO, window 0x6000001,
root 0x29a, subw 0x0, time 35624814, (177,174), root:(177,200),
state 0x200, button 2, same_screen YES

The input driver is indeed evdev:

113.364] (II) Using input driver ‘evdev’ for ‘Power Button’
113.400] (II) Using input driver ‘evdev’ for ‘Power Button’
113.403] (II) Using input driver ‘evdev’ for ‘HID 0431:0100’
113.404] (II) Using input driver ‘evdev’ for ’ SCISSORS Keyboard’
113.404] (II) Using input driver ‘evdev’ for ‘Vimicro USB 2.0 PC Camera (Venu’

The input driver is indeed evdev:

113.403] (II) Using input driver ‘evdev’ for ‘HID 0431:0100’

Thanks for confirming this as it means that any config file we generate has to be evdev-based.

BTW, please use code tags when posting output (refer to the ‘#’ button in the editor). As I suspected, the config file will not match to your hardware. This is just the default evdev config file (supplied by the xf86-input-evdev package). Rather than editing it directly, create a custom file as I mentioned back in post #4 (eg /etc/X11/xorg.conf.d/75-trackball.conf). That way evdev package updates won’t clobber your custom edits. The ‘MatchProduct’ entry needs to match your hardware, otherwise it won’t take effect. In post #6 I suggested


Section "InputClass"
    Identifier      "Itac Generic USB Mouse"
    MatchProduct    "HID 0431:0100"
    Driver  "evdev"
    Option  "EmulateWheel"  "on"
    Option  "EmulateWheelButton"    "2"
EndSection

If you want to emulate 3-buttons, then you can also add the last entry

Option "Emulate3Buttons" "on"