Para mostrar eventos de teclados, mas também outros dispositivos de entrada, há também evtest
.
Não pode criar keypresses em si, mas veja abaixo.
Ele mostra eventos em um nível inferior a xev
, por exemplo.
Além disso, mostra quais eventos podem ser criados pelo dispositivo.
Por acaso, event4
refere-se ao meu teclado principal.
Então eu crio o exemplo de saída abaixo com o comando
sudo evtest /dev/input/event4
e pressionando a B :
[ ... ]
Event: time 1429316964.681508, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70004
Event: time 1429316964.681508, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1429316964.681508, -------------- SYN_REPORT ------------
aEvent: time 1429316964.761540, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70004
Event: time 1429316964.761540, type 1 (EV_KEY), code 30 (KEY_A), value 0
Event: time 1429316964.761540, -------------- SYN_REPORT ------------
Event: time 1429316965.385461, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1429316965.385461, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 1
Event: time 1429316965.385461, -------------- SYN_REPORT ------------
Event: time 1429316965.577461, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70005
Event: time 1429316965.577461, type 1 (EV_KEY), code 48 (KEY_B), value 1
Event: time 1429316965.577461, -------------- SYN_REPORT ------------
BEvent: time 1429316965.641460, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70005
Event: time 1429316965.641460, type 1 (EV_KEY), code 48 (KEY_B), value 0
Event: time 1429316965.641460, -------------- SYN_REPORT ------------
Event: time 1429316965.713470, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1
Event: time 1429316965.713470, type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
[ ... ]
(Para encontrar o número correto do evento (como meu event4), você pode ver cat /proc/bus/input/devices
. O Name
pode não se referir a um teclado, mas procure a entrada Handlers
contendo sysrq
kbd
e leds
. Ou apenas experimente todos.)
Os eventos Keypress não podem ser criados por evdev
, mas há uma implementação de um remapeamento de chave usando evdev
que pode criar novos eventos,
Parece corresponder ao que você está procurando:
Modificador At Home by Evdev ( ahm
or at-home-modifier-evdev
):
Permite, por exemplo, "tecla de função dupla Espaço / Shift". Quando você pressiona o Espaço chave sozinho, é um espaço; mas quando você pressiona com outra tecla, é uma mudança. Por exemplo, space + x = X, grosso modo.
Quaisquer pares de chaves são possíveis. Por exemplo, você pode transformar seu Alt esquerdo em BS / Alt, além de Espaço / Shift. Neste exemplo, Space seguido por LAlt envia Shift + BS, LAlt seguido por Space faz Alt + Espaço e Espaço + LAlt + x e LAlt + Espaço + x é Alt + Shift + x.
É um fork do driver "evdev" Xorg [...]
Ele não pretende ser uma implementação limpa, mas isso não impede que você aprenda com isso.