Changing Middle Mouse Button to scroll like on Windows?

I found this thread: Scroll a page using the middle mouse button

Which prompted me to check out the conf files indicated, but I don’t know what device driver my mouse uses nor the device name to use, nor where the location of the mouse is on the system (EG: tty50 in one of the examples.) How do I go about creating such a file with the appropriate information? I used lsusb, but that seemed to give me just some data I cannot use:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
Bus 001 Device 003: ID 0b05:1939 ASUSTek Computer, Inc. AURA LED Controller
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 0c45:652f Microdia Backlit Gaming Keyboard
Bus 001 Device 006: ID 25a7:fa08 Areson Technology Corp 2.4G Dual Mode Mouse
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 154b:1007 PNY USB 3.2.2 FD
Bus 002 Device 004: ID 0781:5581 SanDisk Corp. Ultra
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 2357:0604 TP-Link TP-Link UB500 Adapter
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

and evtest

bash: evtest: command not found

Also lsusb -t

/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/10p, 480M
    |__ Port 001: Dev 002, If 0, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 001: Dev 002, If 1, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 001: Dev 002, If 2, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 001: Dev 002, If 3, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 006: Dev 003, If 0, Class=Vendor Specific Class, Driver=[none], 12M
    |__ Port 006: Dev 003, If 2, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 007: Dev 004, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 009: Dev 005, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 009: Dev 005, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 010: Dev 006, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 010: Dev 006, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ Port 003: Dev 003, If 0, Class=Mass Storage, Driver=uas, 5000M
    |__ Port 004: Dev 004, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 003: Dev 002, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 003: Dev 002, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M

I’m using the XFCE Spin of Fedora 40. I want this emulation/etc. functionality to work in programs like Discord, Geany and wine programs. As for this thread: Detailed mouse scroll wheel config question and other mouse configurations

bash: inxi: command not found

and sudo libinput list-devices

Device:           Power Button
Kernel:           /dev/input/event1
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           Power Button
Kernel:           /dev/input/event0
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           Blue Microphones Yeti Stereo Microphone Consumer Control
Kernel:           /dev/input/event2
Group:            3
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           Compx 2.4G Dual Mode Mouse
Kernel:           /dev/input/event7
Group:            4
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   flat *adaptive custom
Rotation:         0.0

Device:           Compx 2.4G Dual Mode Mouse Keyboard
Kernel:           /dev/input/event8
Group:            4
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           SONiX USB DEVICE
Kernel:           /dev/input/event3
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           SONiX USB DEVICE Keyboard
Kernel:           /dev/input/event4
Group:            5
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           SONiX USB DEVICE Wireless Radio Control
Kernel:           /dev/input/event5
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           Eee PC WMI hotkeys
Kernel:           /dev/input/event12
Group:            6
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

I accidentally found a method may still work on XFCE (and X11). It is similar to the solution on the Fedora forum.

According to Arch Linux Wiki, put the following sample config file to /etc/X11/xorg.conf.d/00-mouse.conf should allow you scrolling with the mouse by holding a button:

Section "InputClass"
    Identifier "system-mouse"
    MatchIsPointer "on"
    Option "ScrollMethod" "button"
    Option "ScrollButton" "3"
EndSection

Arch Linux Wiki: Scroll with mouse by holding a button

2 Likes

Still acts as Copy in Discord after restarting. Does nothing in Geany now. Holding down middle mouse will do gestures in Thunar for some reason (EG: Holding middle mouse then moving up goes up a directory.)

Also, adding that will break right-click functionality in Final Fantasy XIV. As it will make hold right-click act like the scroll wheel.