Mouse multi-botões no Linux

Utilizo Linux com a ótima distribuição Ubuntu 6.06 LTS. Totalmente livre e baseada na distribuição Debian, o Ubuntu oferece:

  • fácil instalação com grande compatibilidade com computadores desktop e notebooks e todo tipo de dispositivos;
  • enorme disponibilidade de pacotes livres (estilo Debian) prontos para download e instalação (fácil através do gerenciador de pacotes Synaptic);
  • vasta documentação, inclusive com boa disponibilidade de interface e material em Português do Brasil;
  • e, principalmente, um bom suporte, livre e gratuito oferecido pela grande comunidade de usuários, ou com opção de suporte comercial profissional para quem precisar.

A instalação do Ubuntu 6.06 reconheceu automaticamente todos os dispositivos de hardware do meu computador. Alguns pequenos detalhes ficaram mais práticos depois de alguma configuração manual. Um deles foi acrescentar a montagem automática da partição Windows NTFS em minha instalação com boot dual, que falarei em outra oportunidade.

Logitech MX700 Outra melhoria foi na configuração de um mouse multi-botões. Utilizo o mouse Logitech MX700, que possui scroll e diversos botões extras, incluindo dois laterais para voltar e avançar páginas na web. O scroll e os botões adicionais (além do direito e esquerdo básicos) não ficaram operacionais na instalação padrão do Ubuntu.

Infelizmente, o suporte da Logitech não oferece ajuda para sistemas operacionais não Windows, mas uma pesquisa na Internet me trouxe informações com as quais consegui avanços.

O mouse Logitech MX700 tem interface USB e foi mapeado como o dispositivo /dev/input/mice. Por curiosidade, uma consulta ao comando:

$ cat /proc/bus/input/devices

listou o teclado, o microfone e o mouse. As configurações listadas para o mouse foram:

I: Bus=0011 Vendor=0002 Product=0002 Version=003d
N: Name="PS2++ Logitech MX Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse0 event2 ts0
B: EV=7
B: KEY=ff0000 0 0 0 0 0 0 0 0
B: REL=103

Editei então (em sudo como root) o arquivo /etc/X11/xorg.conf. Localizei a seção “InputDevice” que configura o mouse e incluí um mapeamento de botões e outras sugestões que colhi no artigo Tip: Logitech MX700-900 Mouse with Linux and Firefox. Se for mexer em seu arquivo de configurações, é recomendável fazer uma cópia da versão atual antes:

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
$ sudo gedit /etc/X11/xorg.conf

A seção alterada ficou assim:

# Options Buttons e ButtonMapping para mouse Logitech MX700
Section "InputDevice"
	Identifier	"Logitech MX700" # era "Configured Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/input/mice"
	Option		"Protocol"		"ExplorerPS/2"
	Option		"ZAxisMapping"		"4 5"
	Option		"Emulate3Buttons"	"false" # era "true"
	Option		"Buttons"		"7"
	Option		"ButtonMapping"		"1 2 3 6 7"
	Option		"Dev Name"		"PS2++ Logitech MX Mouse"
	Option		"Dev Phys"		"isa0060/serio1/input0"
	Option		"Resolution"		"800"
EndSection

Defini o mouse como 7 botões, apesar de identificar nele 10 botões/funções: 2 básicos (direito, esquerdo), 2 laterais (avançar, voltar), scroll com 3 funções (subir, descer, pressionar), botão subir acima do scroll, botão descer abaixo do scroll, e o botão de alternar aplicativos (abaixo do de descer). Coloquei o mapeamento com a ordem “1 2 3 6 7” e desativei a emulação de 3 botões. Ainda adicionei, mesmo sem ver nenhuma utilidade prática imediata, as opções “Dev Name”, “Dev Phys” e “Resolution”.

Outra configuração que alterei apenas por capricho foi o “Identifier”, que a instalação do Ubuntu define como “Configured Mouse”. Coloquei um nome mais preciso, “Logitech MX700”. Porém, por alterar esta identificação, tive que alterar também o nome correspondente na seção “ServerLayout”:

Section "ServerLayout"
	...
	InputDevice	"Logitech MX700" # era "Configured Mouse"
EndSection

Salvei o arquivo e reiniciei o Linux, para ativar as novas configurações.

Os resultados práticos que obtive foram: a roda de scroll passou a rolar o conteúdo das janelas para cima e para baixo ao girá-la; testando no navegador web Mozilla Firefox, os botões laterais de avançar e voltar também funcionaram; o botão de descer (abaixo do scroll) também passou a rolar conteúdo para baixo.

Se a configuração funcionar sem problema, é recomendável que você atualize a validação MD5 para o arquivo xorg.conf, de forma que caso um gerenciador de pacotes — por exemplo, durante a instalação de um driver de dispositivo gráfico — valide este arquivo de configuração, o considere íntegro:

$ cd /var/lib/x11/
$ sudo cp -p xorg.conf.md5sum xorg.conf.md5sum.backup
$ md5sum /etc/X11/xorg.conf | sudo tee /var/lib/x11/xorg.conf.md5sum

O que ainda não ficou funcional foi o seguite: o botão de subir (acima do scroll) ficou com o mesmo efeito de “voltar” no navegador; e a função de pressionar a roda scroll (que no Windows ativa a rolagem avançada), bem como o botão de alternar aplicação, ainda ficaram inativos.

Vi também artigos que sugerem o uso de um outro driver de mouse, chamado “evdev”, baseado em eventos. Em uma tentativa que fiz de utilizá-lo no arquivo xorg.conf, o mouse ficou totalmente inoperante, então voltei à opção que estava funcionando. Também não cheguei a utilizar o comando xmodmap.

Atualização: No Ubuntu 8,04 LTS, foi necessário utilizar o driver evdev para que os botões laterais de “voltar” e “avançar” do mouse funcionassem. Veja as configurações que utilizei no artigo Mouse multi-botões no Ubuntu 8.04.

Se alguém souber configurações melhores, agradeço a informação.

Outras referências:

5 Replies to “Mouse multi-botões no Linux”

  1. Olá! Achei interessante o seu artigo pois não sabia que era possível mudar a configuração dos botoes do mouse. Estou precisando usar um mouse em que possa acessar o botão esquerdo e direito ( do mouse comum ) pela lateral esquerda ( no caso do mouse de 10 botoes ) . Neste caso usaria o polegar da mão direita para acessar os 2 botoes. Poderia me ajudar ? Uso windows XP
    Muito grato

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *