Use as teclas para os botões do mouse no linux. Alternativa ao AHK?

5

No Windows eu tenho um script autohotkey que:

  • Funciona somente quando o limite de maiúsculas está ativado
  • Gera eventos do botão esquerdo, médio e direito do mouse quando o controle esquerdo, o menu e as teclas alt são pressionados
  • Permite manter as teclas pressionadas (para arrastar objetos)

Existe uma maneira fácil de duplicar essa funcionalidade no linux?

    
por typist 22.07.2011 / 21:16

3 respostas

2

O X tem um mecanismo integrado para controlar o cursor do mouse com o teclado. aperte o tecla Pointer_EnableKeys para ativar este modo (modo de teclas do mouse); normalmente é obrigado a Shift + NumLock .

No modo de teclas do mouse, as setas do teclado movem o ponteiro e as outras teclas do teclado emulam botões ( /*- estão à esquerda, meio à direita, respectivamente; + é deixado com o clique duplo e 0 e . é deixado pressionado e liberado).

Veja teclas do mouse para mais informações. A propósito, este modo pode ser ativado em Windows também.

    
por 22.07.2011 / 23:04
0

Você provavelmente poderia fazer as mesmas coisas com Tcl ('tickle').

    
por 23.07.2011 / 01:05
0

Keymapping - clique do mouse - clique do meio Como mapear os botões do mouse para as teclas do teclado

Primeiramente, desative o teclado controlando o mouse para que o xev possa capturar o código de acesso Então digite o comando:

$ xev

Em seguida, mova o mouse para a pequena nova janela que aparece. Pressione o botão do mouse para descobrir o nome desse botão: Veja abaixo, eu encontrei um dos meus botões do mouse é chamado de "botão 1"

ButtonPress event, serial 37, synthetic NO, window 0x6200001,
    root 0x29d, subw 0x6200002, time 2427401, (31,41), root:(652,407),
    state 0x0, button 1, same_screen YES

Em seguida, descubra qual tecla do teclado deseja mapear esse botão do mouse para: Pressione uma tecla do teclado e encontre o código de acesso.

Ao pressionar a tecla de espaço no meu teclado, o terminal mostra:

KeyPress event, serial 37, synthetic NO, window 0x6200001,
    root 0x29d, subw 0x0, time 2152399, (398,60), root:(1019,426),
    state 0x0, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XmbLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

de cima, descobrimos que o código de tecla para a tecla Espaço é 65 Então você precisa encontrar os códigos das teclas que você deseja mapear os botões do mouse para ...

Em seguida, o próximo passo:

$ sudo apt-get install xkbset

Copie o script abaixo e salve-o em um arquivo chamado keymap_mouse2kb.sh

é claro, altere os códigos de teclas do teclado para os que você deseja

#!/bin/bash
# set XKB layout
setxkbmap -layout us
# turn on mousekeys
xkbset m
# stop mousekeys expiring after a timeout
xkbset exp =m
# map keysym to other keysym
#xmodmap -e "keysym Menu = Pointer_Button2"
# this also works
 xmodmap -e "keycode 66 = Pointer_Button2"
 xmodmap -e "keycode 133 = Pointer_Button1"
 xmodmap -e "keycode 88 = Pointer_Button3"

Em seguida, torne este arquivo executável por

$ sudo chmod u+x keymap_mouse2kb.sh

Em seguida, execute-o quando precisar ... por exemplo na inicialização

$ ./keymap_mouse2kb.sh
    
por 07.06.2018 / 06:00