Emulando o clique do mouse com um teclado


13

Eu quero fazer um botão no teclado para agir como um clique do mouse, de preferência usando o xmodmap. Como eu faço isso?

Executando o Ubuntu 10.10.


setxkbmap -option keypad:pointerkeysfaria o que você quiser. Então um numlock de turno.
peterh - Restabelece Monica

Respostas:


6

As etapas a seguir o ajudarão a reconectar as teclas do teclado aos botões do mouse.

  1. Identifique a tecla do teclado usando o xevutilitário.

    Executar o utilitário xev e pressionar a tecla do teclado a ser religada produzirá algo como isto

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    Observe o código da chave que será mapeado novamente.

  2. Execute o utilitário xkbset

    xkbset m

  3. Remapeie usando o utilitário xmodmap.

    No caso abaixo, a tecla de menu é remapeada para o botão direito do mouse.

    xmodmap -e "keycode 135 = Pointer_Button3"


veja meu script superuser.com/questions/313926/… Use as teclas dos botões do mouse no linux. Alternativa ao AHK?
Russo

4

Eu imagino que você poderia fazer isso usando o xmodmap e o mapa de teclas Pointer_Button1.

Procure no arquivo /usr/include/X11/keysymdef.h a ortografia e a capitalização exatas, mas deve ser possível mapear uma tecla do teclado em um botão do mouse (1,2,3, etc), mesmo com um clique duplo ( veja o arquivo de cabeçalho, perto da linha 460)

keysym W = Pointer_Button1

PODE funcionar, fazendo com que a tecla W atue como o botão esquerdo do mouse. Eu recomendo usar uma chave diferente, a menos que você não use W, mas o que funcionar para você. (não, eu não vou tentar, preciso dos meus W's!)

Dê uma olhada na página de manual do xmodmap e certamente no conteúdo de /usr/include/X11/keysymdef.h para corrigir a ortografia. Solte o prefixo XK_ para usar os nomes de chaves para xmodmap.

Parece que (keysymdef.h) está no pacote x11-proto-core-dev do meu sistema Debian ... você pode procurar o arquivo e seu conteúdo on-line, duvide que queira instalar todos os arquivos -dev envolvidos no apenas pegue esse. GIYF.

Algo está passando na minha cabeça sobre outra maneira de fazer isso, mas nada está vindo para mim agora.

OH! Dependendo das suas necessidades, você pode procurar a Emulação de mouse de teclado, transforma o teclado numérico em um mouse completo com dois botões (sem roda de rolagem!).


1
Para informações dos leitores, sobre "Emulação de mouse de teclado": en.linuxreviews.org/… A combinação de teclas para ativar isso foi desativada por padrão há um tempo atrás e agora precisa Option XkbOptions "keypad:pointerkeys". Pressionar teclas não é a única maneira de ativar isso: xkbset mfaz isso de acordo com crunchbang.org/forums/viewtopic.php?id=27937 e pode controlar o tempo limite desagradável e também desativá-lo no cmdline.
IMZ - Ivan Zakharyaschev

3

O modo "Emulação de mouse de teclado" embutido pode fazer isso e / mas possui combinações de teclas pré-configuradas para emular vários cliques e pressionamentos do mouse (para arrastar).

(FYI: A combinação de teclas para ativar isso foi removida do mapa de teclas padrão há um tempo e agora é necessária Option XkbOptions "keypad:pointerkeys".)

Pressionar uma tecla não é a única maneira de ativar este modo:

xkbset m

faz isso conforme http://crunchbang.org/forums/viewtopic.php?id=27937 e pode controlar o tempo limite desagradável e também desativá-lo no cmdline. Para desativar o tempo limite desagradável:

xkbset exp =m

Portanto, xkbseté realmente mais útil (do que ter uma tecla apenas para ativar esse modo), porque xkbsetoferece mais controle sobre o tempo limite preferido etc.

O numpad é usado. Algumas combinações básicas (mais em http://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg :

  • /, *, -São para selecionar a esquerda, botão do meio ou direito;
  • 5é para clicar com o botão selecionado ;
  • 0e .são para pressionar e liberar o botão selecionado (para arrastar etc.)

Notas sobre problemas para ativar a "Emulação de mouse do teclado" sempre ativada

  1. Não consegui ativar a "Emulação de mouse do teclado" sempre ativada. Então, confiei em uma chave especial (como em keypad:pointerkeys) para fazer isso.

  2. Descobri que o Xfce também estava mexendo com essas configurações na inicialização, portanto, se xkbset mfor executado antes do Xfce, a configuração não estará ativa. Portanto, tive que alterar uma configuração na configuração do Xfce para corresponder ao meu desejo geral, a saber: Configurações do Xfce: Acessibilidade: Mouse: ativar a emulação . (A fonte para mim aprender sobre a existência dessa opção do Xfce foi: https://bugzilla.xfce.org/show_bug.cgi?id=3860 .) Isso parece ter ajudado. (Também estou desabilitando meu touchpad xinput float ...; isso é complicado ao alternar entre os consoles Linux, mas pode ser contornado novamente desabilitando este dispositivo nas configurações do Xfce, pelo menos.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.