Como atribuir uma pressão do botão do meio a uma tecla específica no meu laptop?

8

Como conectar um botão do meio a uma tecla específica do meu laptop? Posso pressionar o botão do meio se tocar no canto superior direito do touchpad, mas gostaria de associá-lo a uma tecla, como a tecla "windows" ou a tecla "menu".

Existe uma maneira de fazer isso?

A resposta atual não funciona no Ubuntu 11.10 com uma área de trabalho clássica gnome-fail-safe. Eu precisaria de alguém para descobrir como isso pode ser feito para a versão atualizada do Ubuntu.

719016
fonte

Respostas:

10

Para remapear a tecla de menu, você precisará fazer o seguinte.

pré-requisitos de instalação

Instale o pacote xkbset:

sudo apt-get install xkbset

definir o layout do teclado

Em seguida, você precisa definir qual layout de teclado você está usando. No meu caso gb para um layout britânico / United teclado Unido ou nos para Estados Unidos

setxkbmap -layout gb

Nota: se você executar

setxkbmap -query

ele fornecerá a saída da seguinte forma - se o modelo e o layout forem o teclado, você estará usando o layout correto

rules:      evdev
model:      pc105
layout:     gb

Em seguida, defina que será o próximo mapeamento das teclas do mouse:

xkbset m
xkbset exp =m

encontre Menucódigo-chave

Mapeie a Menuchave. Para fazer isso, precisamos do Menucódigo-chave. Em uma corrida de terminal xev, mova o mouse dentro do quadrado e pressione a Menutecla

insira a descrição da imagem aqui

Resultado final

No meu caso, meu Menucódigo-chave é o valor 135 e isso será mapeado para o botão 2 do mouse

xmodmap -e "keycode 135 = Pointer_Button2"

Testado da seguinte forma:

  1. Copie algum texto em um terminal - ação de colar iniciada
  2. Passe o mouse sobre a barra de título - a janela é movida para o fundo

Juntando tudo isso:

Ok, depois de definir os códigos de chave corretos, podemos montar isso para começar a partir do login.

Primeiro, crie um arquivo em sua pasta pessoal chamado remapkeys

gedit ~/remapkeys

agora copie e cole o seguinte

#!/bin/sh
setxkbmap -layout gb
xkbset m
xkbset exp =m
xmodmap -e "keycode 135 = Pointer_Button2"

Salve . Conceda ao arquivo direitos de execução

chmod +x ~/remapkeys

Em seguida, no Dash, procure aplicativos de inicialização ou se estiver usando o Gnome Classic - Aplicativos - Outros - Aplicativos de inicialização

Adicionar uma nova entrada de aplicativos de inicialização

insira a descrição da imagem aqui

O comando deve ser:

bash -c "sleep 5 && ~/remapkeys"

O comando dorme por 5 segundos para permitir que a área de trabalho apareça antes de executar o novo script - se a área de trabalho não aparecer em 5 segundos (talvez você esteja usando um netbook lento?), Aumente o tempo limite para 10 ou 15 segundos. Faça logout e faça o login para testar.

liberdade de expressão
fonte
Posso perguntar, depois de seguir estas etapas, que a ligação deve ser permanente ou devo colocá-la em algum lugar para que seja carregada toda vez que eu reiniciar?
719016
certamente não permanente - eu adicionaria as instruções a um script e executaria como parte dos aplicativos de inicialização, para que seja executado no login. A resposta funciona para você - funcionou nos meus testes ...
fossfreedom
funciona, mas como você diz não permanentemente #
719016 28/10
... apenas no caso de eu não ter deixado claro, adicionei como iniciar isso do login na resposta.
fossfreedom
Doe é permitir arrastar e soltar?
Vitor Abella
5

Primeiro, instale xautomation:

sudo apt-get install xautomation

Você pode enviar um evento de clique do meio usando xte:

xte 'mouseclick 2'

Você pode criar um atalho personalizado para isso em Preferências -> Atalhos do teclado (ou 'Atalhos do teclado' na pesquisa do Unity). Clique em 'Adicionar', digite um nome e o comando acima e clique em 'Aplicar'. Role até a parte inferior e defina um atalho como faria para qualquer outra ação.

Quando tentei isso, não consegui vincular a ação apenas à chave do Windows. Você pode tentar fazendo o seguinte, mas parece haver um erro que impede que isso funcione:

Abra um terminal e execute

gconf-editor

Pressione Ctrl + f, selecione a caixa 'Pesquisar também nos valores-chave' e digite o seguinte na caixa de pesquisa:

xte 'mouseclick 2'

Deve haver apenas um resultado no painel inferior. Se houver mais, selecione aquele que contém '/ desktop / gnome / keybindings / custom * / action' em seu nome. No painel superior direito, digite '' (sem aspas) ao lado do campo 'ligação'. Se você obtiver o mesmo resultado que eu, todas as aparências de sua janela serão alteradas e a nova combinação de teclas não fará nada. Altere isso de volta para o que quer que fosse (ou deixe em branco) e abra Aparência (Preferências -> Aparência ou 'Aparência' em pesquisa de unidade). Isso deve resolver o problema.

sentythee
fonte
Ótimo! Eu não precisava fazer o bit do gconf-editor, até agora ele está funcionando, vou checar novamente depois de reiniciar. Valeu!
719016
Isso não está mais funcionando no Ubuntu 11.10 com uma área de trabalho clássica gnome-failafe. Estou certo de que deve haver uma maneira de fazer o mesmo.
719016
1

Eu observo que, para outros (desde que eu achei isso várias vezes enquanto procurava meu próprio mouse), alguns ratos da Logitech possuem alguns botões (no MX1100, eram por padrão os botões "DPI +/-") que não enviam um sinal para o receptor USB.

É possível substituir isso e fazer com que o mouse informe o botão pressionado no driver do mouse, mas o processo não é nem um pouco amigável (ou mesmo facilmente replicável, pois parece ser diferente para cada mouse). O pacote "lomoco" aparentemente funcionará para alguns usuários, mas não foi atualizado para os mouses mais recentes há algum tempo.

Icehawk78
fonte