Code:
bash-5.1$ xinput list 11
Primax USB OPTICAL MOUSE id=11 [slave pointer (2)]
Reporting 7 classes:
Class originated from: 11. Type: XIButtonClass
Buttons supported: 9
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra"
Button state:
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 0 units/m
Mode: relative
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 0 units/m
Mode: relative
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Scroll
Range: -1.000000 - -1.000000
Resolution: 0 units/m
Mode: relative
Class originated from: 11. Type: XIValuatorClass
Detail for Valuator 3:
Label: Rel Vert Scroll
Range: -1.000000 - -1.000000
Resolution: 0 units/m
Mode: relative
Class originated from: 11. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 120.000000
flags: 0x0
Class originated from: 11. Type: XIScrollClass
Scroll info for Valuator 3
type: 1 (vertical)
increment: 120.000000
flags: 0x0
This is how the whole thing looks in CODE tags. Makes a difference, wouldn't you say? So please take my (and others!) request to heart.
So, 9 buttons are available. You should be able to do with them whatever you want - but things start getting confusing now:
A web search for
linux change extra mouse button behavior or some such should get you more suggestions.