Hi Eric,
The "Keyboard input method system" does not cover the mouse.
To customize mouse functions, you'll have to use the command "xinput"
see man xinput
first use the command xinput list
to identify the mouse. As an example, here is what it does on my system:
thom@monolith:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech MX Ergo id=8 [slave pointer (2)]
⎜ ↳ Corsair Corsair Gaming K55 RGB Keyboard id=9 [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)]
↳ Logitech MX Ergo id=10 [slave keyboard (3)]
↳ Corsair Corsair Gaming K55 RGB Keyboard id=11 [slave keyboard (3)]
My mouse is identified as "Logitech MX Ergo"
Now we can use this to list the possible options that this mouse offers:
thom@monolith:~$ xinput list-props "pointer:Logitech MX Ergo"
Device 'Logitech MX Ergo':
Device Enabled (157): 1
Coordinate Transformation Matrix (159): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (295): 0
libinput Natural Scrolling Enabled Default (296): 0
libinput Scroll Methods Available (297): 0, 0, 1
libinput Scroll Method Enabled (298): 0, 0, 0
libinput Scroll Method Enabled Default (299): 0, 0, 0
libinput Button Scrolling Button (300): 2
libinput Button Scrolling Button Default (301): 2
libinput Button Scrolling Button Lock Enabled (302): 0
libinput Button Scrolling Button Lock Enabled Default (303): 0
libinput Middle Emulation Enabled (304): 0
libinput Middle Emulation Enabled Default (305): 0
libinput Rotation Angle (306): 0.000000
libinput Rotation Angle Default (307): 0.000000
libinput Accel Speed (308): 0.000000
libinput Accel Speed Default (309): 0.000000
libinput Accel Profiles Available (310): 1, 1
libinput Accel Profile Enabled (311): 0, 1
libinput Accel Profile Enabled Default (312): 1, 0
libinput Left Handed Enabled (313): 0
libinput Left Handed Enabled Default (314): 0
libinput Send Events Modes Available (280): 1, 0
libinput Send Events Mode Enabled (281): 0, 0
libinput Send Events Mode Enabled Default (282): 0, 0
Device Node (283): "/dev/input/event3"
Device Product ID (284): 1133, 16495
libinput Drag Lock Buttons (315): <no items>
libinput Horizontal Scroll Enabled (316): 1
libinput Scrolling Pixel Distance (317): 15
libinput Scrolling Pixel Distance Default (318): 15
libinput High Resolution Wheel Scroll Enabled (319): 1
Since I wanted to change the acceleration-profile, I entered this:
xinput set-prop "pointer:Logitech MX Ergo" "libinput Accel Profile Enabled" 0 1
Every property can be changed this way.
Next is to add the xinput set-prop
line to your "$HOME/.profile" so that is is set when you login.
Extra options:
If you want to bind customized functions to your extra mousebuttons, you can use: xbindkeys
see man xbindkeys
I don't remember if it is installed by default so if it is not there, just install it.
The configfile should be placed here: $HOME/.xbindkeysrc
For instance, I wanted 'zoom-in' and 'zoom-out' bound to button 8 and 9
It sould look like something like this:
# we are using the extra buttons on the MX-Ergo as zoom-in and zoom-out
"xbindkeys_show"
control+shift + q
"xte 'keydown Control_L' 'keydown Shift_L' 'key plus' 'keyup Shift_L' 'keyup Control_L'"
b:9
"xte 'keydown Control_L' 'key minus' 'keyup Control_L'"
b:8
#
# End of xbindkeys configuration