Em um arquivo de configuração X, os botões do mouse podem ser mapeados usando uma opção ButtonMapping:
Section "InputClass"
# ...
Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
# ...
EndSection
Alterar a ordem dos números altera o comportamento dos botões do mouse. No entanto, não consigo encontrar nenhuma documentação que descreva como o comportamento é atribuído. Que pouca documentação existe, ajudei a escrever.
Por exemplo, se o mapeamento de botão foi escrito assim:
Option "ButtonMapping" "a b c d e f g h i"
Documentaríamos essas posições como:
- a - Clique esquerdo
- b - Médio
- c - Clique com o botão direito
- d - Rolar para frente
- e - Rolar para trás
- f - Avançar
- g - Para trás
- h - Rolagem horizontal
- i - Rolagem vertical
Minha pergunta então: o que os valores posicionais de a até eu realmente representam e como eles são mapeados para os botões do mouse?
Atualizar
xmodmap -pp
Shows em execução :
$ xmodmap -pp
There are 10 pointer buttons defined.
Physical Button
Button Code
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
Isso não é útil, pois não contém informações que um ser humano possa usar sobre os atributos físicos do mouse (ou seja, mostrar duas colunas de números é inútil sem nomes de botões, como "botão esquerdo"). Portanto, embora tecnicamente isso possa responder à questão de "como eles são mapeados", a questão permanece sem resposta em qualquer sentido prático.
Respostas:
Eu acho que você deveria olhar para isso desta maneira:
A posição que indica o ID da chave conforme relatado pelo mouse (através do driver). Portanto, cabe ao fabricante como encomendá-los, no entanto, a maioria segue a ordem comum.
Os mouses que ainda usam protocolos antigos, como o PS2, não têm uma maneira de armazenar ou informar informações sobre os botões disponíveis e suas funções. Portanto, o servidor X não pode informar o ID de cada botão físico, apenas experimentando-os usando uma ferramenta como
xev
essa que mostra os eventos X:Ou
evtest
isso mostra os eventos brutos:As chaves lógicas são as que realmente foram mapeadas em algum outro lugar para funções extras. Nesse nível, X os vê como: botão1, botão2, botão3, botão4, ..., botão24 e não conhece sua função.
Exemplos de referência oficiais:
Fonte: ftp://ftp.x.org/pub/current/doc/mouse.txt
fonte
xmodmap -pp
não mostra os nomes (por exemplo, "botão esquerdo", "botão da roda") dos botões físicos, conforme a documentação. Veja minha atualização para a pergunta.