Como atribuir ações a todos os botões do mouse?

28

Eu tenho um mouse com muitos botões, mas não é uma marca convencional como a Logitech. Para o Windows, tenho um driver que me permite atribuir ações como fechar a janela (Ctrl + W) ou a próxima guia (Ctrl + Tab), mas não tenho um driver Linux. Como o Linux é tão flexível, pensei que talvez haja uma maneira geral de fazer isso, independentemente da marca?

Atualização: Com base nas informações do Cyrex, instalei e executei o arquivo sudo apt-get install btnxque encontrou vários, mas não todos os botões do mouse.
Encontrado: esquerda, direita, roda, clique na roda, polegar dianteiro, polegar traseiro.
Não encontrado: roda esquerda, roda direita, botão do meio do polegar.
O ID do fornecedor é 0x04d9, o ID do modelo é 0xa015.

Atualização 2: em Sistema> Prefs> Mouse, há um ícone de lâmpada para testar a velocidade do clique duplo. Cada botão que funciona pode ligar e desligar a lâmpada, mas os botões ausentes não. Parece que o Ubuntu não está ciente desses botões e, portanto, não registra seus cliques. Acho que preciso procurar um driver, embora um mouse convencional seja provavelmente a maneira mais fácil.

Torben Gundtofte-Bruun
fonte
Por favor, explique o que é o botão 9 do mouse.
@mateo_salta Entendi isso em segundos antes de mim.
Você usa o Unity?
int_ua 1/10/12
Que marca e modelo é esse?
@int_ua Sim, eu me esforço para usar uma configuração do sistema o mais próximo possível do padrão que eu possa tolerar.
1/12

Respostas:

7

Se todos os botões forem detectados corretamente, você poderá instalar o btnx:

sudo apt-get install btnx OU sudo aptitude install btnx

Em seguida, vá para: Aplicativos -> Ferramentas do Sistema -> Btnx

Tem suporte para muitos tipos de ratos

Luis Alvarado
fonte
Testei meu mouse com btnx, mas ele não reconheceu todos os meus botões. Isso indica um problema com o mouse (driver?) Ou com o btnx (improvável eu acho)?
Torben Gundtofte-Bruun 4/01/11
Estou adivinhando entre. Talvez o módulo do mouse não esteja detectando o mouse corretamente, portanto o btnx também não. Você pode realmente clicar em todos os botões e ver se um programa os reconhece, como o teste de clique nas configurações do mouse.
Luis Alvarado
1
Estou selecionando esta como a resposta correta, porque o btnx me permite testar instantaneamente cada botão do mouse - isso provou que o Ubuntu simplesmente não está ciente dos botões extras. Preciso pegar um mouse compatível com Linux.
Torben Gundtofte-Bruun
19
btnx não pode ser encontrado - o pacote mudou de nome?
northben 10/09
27

Eu tenho um MX em qualquer lugar "M-R0001"

Uso meus botões de avançar e voltar como copiar e colar.

Etapas:
1) Todos os botões são detectados no último kernel ... pelo menos com

uname -a

3.8.0-25-generic #37-Ubuntu SMP Thu Jun 6 20:47:07 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

2) Então, basicamente, você só precisa mapear esses botões com as ações desejadas. Como saber com o botão é pressionado e o código numérico correspondente? Bem, você pode usar o programa 'xev':

xev

Este programa é um sniffer de eventos de chave e mouse. Quando está em execução, você pode ver uma janela na qual pode pressionar os botões do mouse e ver se eles são detectados. Por exemplo, com o botão de zoom do Performance MX, você verá algo assim:

ButtonPress event, serial 35, synthetic NO, window 0x5800001,
    root 0x15a, subw 0x0, time 64521438, (84,117), root88,144),
    state 0x10, button 13, same_screen YES

isso significa que 13 é o código para esse botão do mouse. Você pode experimentar todos os botões do mouse na sua mão ... para acesso fácil, eis o mapa do Performance MX:

  • Botão Voltar: 8
  • Botão Avançar: 9
  • Botão de zoom: 13
  • Mostrar botão do Windows: 10

os outros botões são bem reconhecidos e você não precisa mapear para ações.

3) Agora, você precisa instalar um pequeno programa para mapear novamente as entradas do mouse e do teclado. O mágico é 'xbindkeys' ... a instalação fácil é usando:

sudo apt-get install xbindkeys

4) Uma vez instalado, você pode fazer a mágica. A idéia é configurar os botões do mouse para enviar combinações de teclas para ativar outras funcionalidades da área de trabalho (na verdade, xbindkeys pode ser usado para executar qualquer outro programa quando você pressiona o botão do mouse). No KDE, você pode fazer isso com a combinação de teclas Ctrl + F10. O ponto é criar um arquivo de configuração do xbindkeys para fazer o trabalho.

5) Para criar o arquivo de configuração, basta executar o seguinte comando:

xbindkeys --defaults > $HOME/.xbindkeysrc

6) E precisamos editar o arquivo para especificar o mapeamento do seu botão:

gedit $HOME/.xbindkeysrc

7) Precisamos adicionar nossas configurações de botão para tecla. Por exemplo, eu tenho o seguinte:

# Back changed to Copy
"xte 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:8

# Forward
"xte 'keydown Alt_L' 'key Right' 'keyup Alt_L'"
  b:9

# Present desktops
"xte 'keydown Control_L' 'key F8' 'keyup Control_L'"
  b:13

# Present windows
"xte 'keydown Control_L' 'key F10' 'keyup Control_L'"
  b:10

8) Havia um novo requisito. o programa 'xte', que simula basicamente combinações de teclas pressionadas pelo usuário. Instale-o usando:

sudo apt-get install xautomation

Agora, se você rodar em um terminal, algo como:

xte 'keydown Control_L' 'key F10' 'keyup Control_L'

isso significa simular um pressionamento de tecla Ctrl+ F10. A idéia é usar xbindkeys para dizer: "quando eu pressionar o 13º botão do mouse, envie uma tecla Ctrl+ no F10teclado usando o programa xte para gerar isso"

9) E, finalmente, você precisa configurar o 'xbindkeys' para executar automaticamente na inicialização do sistema. Aplicativos de inicialização / botão Adicionar programa e digite '/ usr / bin / xbindkeys' na caixa de diálogo.

FEITO

PRUMO
fonte
7
Além disso, como uma nota, é geralmente mais fácil de grep xev com xev | grep buttonpara os botões do mouse ..
Seth
Funciona muito bem para mim, exceto que eu não precisei escrever um script para começar com o meu computador por algum motivo. Obrigado!
Shule
Como eu faria para criar um botão do mouse para que ele funcionasse como um botão diferente do mouse? Isso parece ser para chaves em particular. Por exemplo, quero que o botão 8 atue como pressionar o botão da roda do mouse. Isso é possível com o xte?
Shule 7/10
10

insira a descrição da imagem aqui

O Easystroke é um aplicativo de reconhecimento de gestos do mouse e um gerenciador de gestos do mouse para distribuição Ubuntu e Outras Linux. permite ao usuário controlar o aplicativo ubuntu com gestos desenhados à mão ou desenhar na tela. O Easystroke funciona em Tablet PCs, e pode ser usado igualmente bem com mouse, caneta ou até dedos, se você tiver uma tela sensível ao toque.

Instale o Easystroke no Ubuntu

sudo apt-get install easystroke

Se você deseja instalar o easystroke via PPA, pode adicionar um repositório PPA, digite este comando:

sudo add-apt-repository ppa:easystroke/ppa
sudo apt-get update
sudo apt-get install easystroke

Para usuários do Unity : o EasyStroke ainda não usou o applet de indicador; portanto, quando você o executa no menu, não possui nada no applet de indicador. Para resolver este problema, basta executar estes comandos no terminal:

easystroke -g

Ele executará o EasyStroke e abrirá as janelas de configuração automaticamente.

Fonte

penreturns
fonte
Não reconheceu os botões extras no Logitech G700s.
Dan Dascalescu 23/03
5

O Easystroke Gesture Recognition foi desenvolvido principalmente para criar gestos personalizados de dispositivo apontador , mas também pode ser usado para atribuir ações a simples pressionamentos de botão.

Para usá-lo dessa maneira,

  1. Abra a janela de configuração .
  2. Em Preferências ▸ Comportamento Buttons Botões adicionais ▸ Adicionar , selecione Gestos instantâneos e pressione o botão do mouse desejado na caixa cinza.

    Reconhecimento de gestos Easystroke - Selecione um botão de mouse ou caneta

  3. Em Ações , clique em Adicionar Ação .

  4. Clique duas vezes na coluna Stoke e pressione o botão do mouse desejado novamente.

  5. Clique nas colunas Nome , Tipo e Detalhes para configurar uma ação.

    Easystroke Gesture Recognition - Ações

ændrük
fonte
5

Se você instalar o Gerenciador de configurações do CompizConfigInstale o Gerenciador de configurações do CompizConfig , poderá definir muitos atalhos de botão de gerenciamento de janelas.

Pode ser necessário algum esforço para descobrir qual botão é qual.

Na captura de tela, estou atribuindo a abertura do comutador Super + Tab a um clique esquerdo da minha roda de rolagem.

Captura de tela

8128
fonte
2

Olli Salonen tem seu próprio ppa que precisa ser adicionado à sua lista se você deseja instalar via apt. Aqui estão as informações sobre como adicionar ppa.

https://launchpad.net/~daou/+archive/ppa

Além disso, este link pode ajudar na instalação em uma versão mais recente do Ubuntu, pois vejo que o Olli não está ativo há um bom tempo.

mbiber
fonte
1
e sim, este link que você forneceu é o que eu estava procurando, obrigado novamente awesomelinux.blogspot.com/2012/08/…
user231354
1

O Btnx está disponível para download aqui .

Dusan Milosevic
fonte
1

A fonte está aqui: http://github.com/cdobrich/btnx.git Ele foi desenvolvido e executado no meu Linux Mint 13 sem problemas. Advertência: o btnx-config precisa ser executado com permissões de raiz.

Luke H
fonte
1

Em meados de 2017, parece não haver nenhum pacote btnx atualizado para o Ubuntu 16.04 LTS, e o easystroke também não parece mais ser mantido.

Eu queria atribuir copiar / colar para os dois botões adicionais do meu Microsoft IntelliMouse (décadas atrás, mas testado em batalha) e finalmente instalar o imwheel , descrito nesta página no Ubuntu Wiki .

Para referência, aqui está o meu ~/.imwheelrc:

# https://help.ubuntu.com/community/ManyButtonsMouseHowto

"^(Gnome-terminal|Tilda)"
None, Thumb1, Shift_L|Control_L|C
None, Thumb2, Shift_L|Control_L|Insert

".*"
None, Thumb1, Control_L|C
None, Thumb2, Control_L|V

# vim:ts=4:shiftwidth=4:syntax=sh

Para iniciar o conjunto de ferramentas com o servidor X, situado IMWHEEL_START=1no /etc/X11/imwheel/startup.conf.

Ingo Karkat
fonte
0

A resposta aceita está desatualizada, eis a versão atualizada.

Você já deve tê-los como eles devem vir com o Ubuntu, mas execute isso apenas por precaução.

sudo apt-get install libdaemon-dev libglade2-dev libgtk2.0-dev 

Agora, faça o download e instale

1) btnx-config 2) btnx Nesta ordem.

Para instalar:

Descompacte e cdem cada uma dessas pastas.

Em cada um deles, execute:

./configure make
sudo make
sudo make install

Depois que os dois estiverem instalados, execute

sudo btnx-config

Na guia Configurações, clique em Detectar mouse e botões

insira a descrição da imagem aqui

Na guia Botões, atribua uma tecla ou funcionalidade ao botão do mouse. Verifique se a marca de seleção está ativada .

insira a descrição da imagem aqui

Por fim, na guia Configurações, clique no botão Reiniciar btx para que suas alterações entrem em vigor.

insira a descrição da imagem aqui

Sem suor
fonte