Como usar todos os botões do SteelSeries Cataclysm MMO Gaming Mouse no Xorg (GNOME)?

2

Eu tenho um problema com meu mouse no Gentoo. Os botões normais (esquerda / direita / roda e anterior / seguinte) funcionam, mas os outros botões não são reconhecidos por x. Eu tentei em xev e usá-los não faz nada.

Estou executando o Gnome Shell 3.6.

Eu tentei configurar o /etc/X11/xorg.conf.d/10-evdev.conf para adicionar o dispositivo:

Section "InputDevice"
        Identifier "GamingMouse"
        Driver "evdev"
        Option "Name" "SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse"
        Option "Protocol" "ExplorerPS/2"
        Option "Buttons" "16"
        Option "ZAxisMapping" "4 5"
        Option "ButtonMapping" "1 2 3 6 7 8 9 10 11 12 13 14 15 16"
EndSection

mas isso não mudou nada. Eu também tentei adicionar essas opções na classe Input:

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "Protocol" "ExplorerPS/2"
        Option "Buttons" "16"
        Option "ZAxisMapping" "4 5"
        Option "ButtonMapping" "1 2 3 6 7 8 9 10 11 12 13 14 15 16"
EndSection

mas, novamente, não funcionou.

Alguém tem uma solução para fazer esses botões funcionarem?

EDIT # 1

Mais algumas informações com xinput . Eu usei xinput para reunir mais algumas informações:

$ xinput -list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse id=8    [slave  pointer  (2)]
⎜   ↳ SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse id=10   [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)]
    ↳ SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse id=9    [slave  keyboard (3)]
    ↳ G15 Gaming Keyboard                       id=11   [slave  keyboard (3)]
    ↳ G15 Gaming Keyboard                       id=12   [slave  keyboard (3)]
    ↳ G15 GamePanel LCD                         id=13   [slave  keyboard (3)]
    ↳ Logitech Logitech G930 Headset            id=14   [slave  keyboard (3)]

get-button-maps

$ xinput get-button-map 8
1 2 3 4 5 6 7 8 9 10 11 12 13 

$ xinput get-button-map 10
1 2 3 4 5 6 7 

$ xinput get-button-map 4 
1 2 3 4 5 6 7 8 9 10 

$ xinput get-button-map 9
device has no buttons

list-props

$ xinput list-props 8
Device 'SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse':
    Device Enabled (139):   1
    Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (263): 0
    Device Accel Constant Deceleration (264):   1.000000
    Device Accel Adaptive Deceleration (265):   1.000000
    Device Accel Velocity Scaling (266):    10.000000
    Device Product ID (256):    4152, 4896
    Device Node (257):  "/dev/input/event2"
    Evdev Axis Inversion (267): 0, 0
    Evdev Axes Swap (269):  0
    Axis Labels (270):  "Rel X" (149), "Rel Y" (150), "Rel Vert Wheel" (262)
    Button Labels (271):    "Button Left" (142), "Button Middle" (143), "Button Right" (144), "Button Wheel Up" (145), "Button Wheel Down" (146), "Button Horiz Wheel Left" (147), "Button Horiz Wheel Right" (148), "Button Side" (260), "Button Extra" (261), "Button Unknown" (259), "Button Unknown" (259), "Button Unknown" (259), "Button Unknown" (259)
    Evdev Middle Button Emulation (272):    0
    Evdev Middle Button Timeout (273):  50
    Evdev Third Button Emulation (274): 0
    Evdev Third Button Emulation Timeout (275): 1000
    Evdev Third Button Emulation Button (276):  3
    Evdev Third Button Emulation Threshold (277):   20
    Evdev Wheel Emulation (278):    0
    Evdev Wheel Emulation Axes (279):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (280):    10
    Evdev Wheel Emulation Timeout (281):    200
    Evdev Wheel Emulation Button (282): 4
    Evdev Drag Lock Buttons (283):  0

$ xinput list-props 10
Device 'SteelSeries World of Warcraft: Cataclysm MMO Gaming Mouse':
    Device Enabled (139):   1
    Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (263): 0
    Device Accel Constant Deceleration (264):   1.000000
    Device Accel Adaptive Deceleration (265):   1.000000
    Device Accel Velocity Scaling (266):    10.000000
    Device Product ID (256):    4152, 4896
    Device Node (257):  "/dev/input/event4"
    Evdev Axis Inversion (267): 0, 0
    Evdev Axes Swap (269):  0
    Axis Labels (270):  "Rel X" (149), "Rel Y" (150), "Rel Horiz Wheel" (285)
    Button Labels (271):    "Button 0" (284), "Button Unknown" (259), "Button Unknown" (259), "Button Wheel Up" (145), "Button Wheel Down" (146), "Button Horiz Wheel Left" (147), "Button Horiz Wheel Right" (148)
    Evdev Middle Button Emulation (272):    0
    Evdev Middle Button Timeout (273):  50
    Evdev Third Button Emulation (274): 0
    Evdev Third Button Emulation Timeout (275): 1000
    Evdev Third Button Emulation Button (276):  3
    Evdev Third Button Emulation Threshold (277):   20
    Evdev Wheel Emulation (278):    0
    Evdev Wheel Emulation Axes (279):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (280):    10
    Evdev Wheel Emulation Timeout (281):    200
    Evdev Wheel Emulation Button (282): 4
    Evdev Drag Lock Buttons (283):  0

Parece que mais de 7 botões são reconhecidos no id 8, então isso parece um bom sinal, não? Então, como eu poderia usar isso apenas e talvez filtrar o outro?

    
por Baptiste Wicht 16.07.2013 / 18:00

2 respostas

2

Não tenho 100% de certeza, mas achei isso no Site SteelSeries em uma de suas FAQs :

Q:

Where can I get World of Warcraft MMO drivers for the Linux platforms.

A:

Unfortunately we do not have any plans to develop proprietary Linux drivers anytime soon for the WoW Mouse, but we would happily assist any community-driven efforts to develop an open-source solution for Linux.

Não tenho certeza se este é o seu hardware, mas foi nesta categoria dentro do FAQ: "Categoria» SteelSeries WoW: Cataclysm MMO Gaming Mouse ".

Depurando o mouse

Você pode usar as ferramentas a seguir para se aprofundar um pouco mais com este mouse, usando apenas xev . Eu estou usando o dispositivo apontador do meu laptop, mas você pode substituir nesta cadeia de caracteres pelo mouse "SteelSeries World of Warcraft MMO Gaming Mouse":

xinput -list

$ xinput -list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=13   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=9    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [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)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=14   [slave  keyboard (3)]

xinput get-button-map

$ xinput get-button-map ""SynPS/2 Synaptics TouchPad"
1 2 3 4 5 6 7 8 9 10 11 12 

xinput list-props

$ xinput list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (124):   1
    Coordinate Transformation Matrix (126): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (249): 1
    Device Accel Constant Deceleration (250):   2.500000
    Device Accel Adaptive Deceleration (251):   1.000000
    Device Accel Velocity Scaling (252):    12.500000
    Synaptics Edges (268):  1781, 5579, 1646, 4582
    Synaptics Finger (269): 24, 29, 255
    Synaptics Tap Time (270):   180
    Synaptics Tap Move (271):   245
    Synaptics Tap Durations (272):  180, 180, 100
    Synaptics Tap FastTap (273):    0
    Synaptics Middle Button Timeout (274):  75
    Synaptics Two-Finger Pressure (275):    29
    Synaptics Two-Finger Width (276):   7
    Synaptics Scrolling Distance (277): 111, 111
    Synaptics Edge Scrolling (278): 1, 1, 0
    Synaptics Two-Finger Scrolling (279):   0, 0
    Synaptics Move Speed (280): 1.000000, 1.750000, 0.035842, 40.000000
    Synaptics Edge Motion Pressure (281):   29, 159
    Synaptics Edge Motion Speed (282):  1, 446
    Synaptics Edge Motion Always (283): 0
    Synaptics Off (284):    0
    Synaptics Locked Drags (285):   0
    Synaptics Locked Drags Timeout (286):   5000
    Synaptics Tap Action (287): 0, 0, 0, 0, 1, 3, 2
    Synaptics Click Action (288):   1, 1, 1
    Synaptics Circular Scrolling (289): 0
    Synaptics Circular Scrolling Distance (290):    0.100000
    Synaptics Circular Scrolling Trigger (291): 0
    Synaptics Circular Pad (292):   0
    Synaptics Palm Detection (293): 0
    Synaptics Palm Dimensions (294):    10, 199
    Synaptics Coasting Speed (295): 20.000000, 50.000000
    Synaptics Pressure Motion (296):    29, 159
    Synaptics Pressure Motion Factor (297): 1.000000, 1.000000
    Synaptics Grab Event Device (298):  1
    Synaptics Gestures (299):   1
    Synaptics Capabilities (300):   1, 0, 1, 0, 0, 1, 1
    Synaptics Pad Resolution (301): 105, 75
    Synaptics Area (302):   0, 0, 0, 0

xinput estado de consulta

$ xinput query-state "SynPS/2 Synaptics TouchPad"
2 classes :
ButtonClass
    button[1]=up
    button[2]=up
    button[3]=up
    button[4]=up
    button[5]=up
    button[6]=up
    button[7]=up
    button[8]=up
    button[9]=up
    button[10]=up
    button[11]=up
    button[12]=up
ValuatorClass Mode=Relative Proximity=In
    valuator[0]=2267
    valuator[1]=4290

Agora o que?

Eu encontrei este documento da comunidade Ubuntu intitulado: ManyButtonsMouseHowto que pode ter algumas coisas adicionais para experimentar, mas eu acho que você Não há sorte em conseguir que o resto desses botões funcione se você não conseguir encontrar um driver compatível que os suporte. Eu posso estar errado aqui (espero que seja pelo seu bem), mas eu não acho que você será capaz de obter acesso a esses botões no Linux.

Referências

por 16.07.2013 / 21:36
2

O problema não está no nível X - até mesmo a especificação do mouse USB permite a rotação da esquerda para a direita.

O mouse para jogos Catclysm possui interfaces usb para mouse e teclado - basicamente, é necessário informar ao mouse quais botões você deseja combinar com o (s) pressionamento (ões) de teclas.

A única forma oficialmente suportada é executar uma máquina virtual do Windows, carregar usando o driver suportado oficialmente pelo SteelSeries e carregar sua configuração na memória interna do mouse.

Eu escrevi meu próprio driver depois de passar algum tempo fazendo engenharia reversa no protocolo que eles estavam usando. Ele não cobre muitos recursos, mas eu quero jogar jogos de computador e gerenciar meu sistema de janela - ele funciona bem para isso. Veja link

    
por 09.08.2014 / 02:44