Como ativar a chave especial

0

Tenho um tablet / tela Wacom Cintiq 24HD que possui vários conjuntos de botões. A maioria deles funciona bem [edit: e são configuráveis com xsetwacom], mas há um conjunto de botões (botões de toque, na verdade) na parte superior da tela, que não se registram completamente na pilha da GUI do Ubuntu.

Imagem dos botões em questão

Pegue o botão à esquerda dos três botões, o rótulo I . Se eu apenas pressioná-lo, nada acontece. Se eu usar xev , o botão não acionará nenhuma saída (ao contrário dos botões de trabalho), mas sudo showkey e sudo evtest mostram que o botão se registra no kernel (suponho). Eu identifiquei o código de acesso como 202 :

% sudo evtest /dev/input/event4
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x56a product 0xf4 version 0x110
Input device name: "Wacom Cintiq 24HD Pad"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 148 (KEY_PROG1)
    Event code 149 (KEY_PROG2)
    Event code 202 (KEY_PROG3)
    Event code 256 (BTN_0)
    Event code 257 (BTN_1)
    Event code 258 (BTN_2)
    Event code 259 (BTN_3)
    Event code 260 (BTN_4)
    Event code 261 (BTN_5)
    Event code 262 (BTN_6)
    Event code 263 (BTN_7)
    Event code 264 (BTN_8)
(output trimmed)
Event: time 1477672672.059563, type 1 (EV_KEY), code 202 (KEY_PROG3), value 1
Event: time 1477672672.059563, type 3 (EV_ABS), code 40 (ABS_MISC), value 15
Event: time 1477672672.059563, -------------- SYN_REPORT ------------
Event: time 1477672672.291614, type 1 (EV_KEY), code 202 (KEY_PROG3), value 0
Event: time 1477672672.291614, type 3 (EV_ABS), code 40 (ABS_MISC), value 0
Event: time 1477672672.291614, -------------- SYN_REPORT ------------

showkey concorda com evtest que o código de acesso é 202 :

% sudo showkey -k
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
keycode  28 release
keycode 202 press
keycode 202 release

No entanto, eu quero realmente usar o botão para algo, por isso, se eu tentar atribuir temporariamente o botão para a chave 'a' para fins de teste, parece que não funciona.

xmodmap -e "keycode 202 = a"

Nenhum 'a' é emitido se eu pressionar o botão quando estiver em um emulador de terminal.

Estou fazendo algo errado com o xmodmap, ou há alguma outra ferramenta que eu possa usar para fazer as coisas acontecerem quando pressiono este botão? Eu finalmente quero que o botão acione um script, mas se eu puder fazer isso indiretamente ao remapear o botão para outra chave com modificadores, isso também é ótimo. Agora eu não sei o que tentar em seguida.

    
por Kristian Andreas Vaksdal 28.10.2016 / 18:52

1 resposta

0

Use xsetwacom:

link

(veja "man xsetwacom" também)

Encontre o seu dispositivo com

xsetwacom list

Exemplo de saída:

Wacom DTK2241 Pad pad               id: 12  type: PAD       
Wacom DTK2241 Pen stylus            id: 13  type: STYLUS    
Wacom DTK2241 Pen eraser            id: 14  type: ERASER 

Meu dispositivo era um DTK2241, então vou usar este exemplo abaixo:

xsetwacom -s get "Wacom DTK2241 Pad pad" all

Em seguida, para o dispositivo de bloco, liste seus botões disponíveis com:

xsetwacom -s get "Wacom DTK2241 Pad pad" all

Exemplo de saída:

xsetwacom set "Wacom DTK2241 Pad pad" "Button" "1" "button +1 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "2" "+2 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "3" "+3 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "8" "+8 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "9" "+9 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "10" "+10 "
....

Em seguida, defina um botão, por exemplo:

xsetwacom set "Wacom DTK2241 Pad pad" "Button" "1" "key a"
    
por Aaron Skomra 28.10.2016 / 20:08