Como definir pressionando Ctrl duas vezes como um atalho de teclado no Linux (para iniciar um comando)

0

É possível iniciar um comando pressionando Ctrl duas vezes? Existe algum programa semelhante ao AHK disponível no Linux que possa fazer isso?

    
por Alice 30.09.2017 / 09:02

1 resposta

1

Supondo que você esteja usando o X11 (e não o Wayland), existem muitas ferramentas para "espionar" os eventos do teclado. Um exemplo é cnee . Se correr com

cnee --record --keyboard

quando você pressiona uma tecla, como Control_Right , você obtém uma saída como

6,2,0,0,0,105,0,299533174,3,Virtual core keyboard

que tem campos dando detalhes sobre o evento, incluindo se up ou down (2), o keycode (105 no meu caso) e o tempo do evento em milissegundos (299533174). Um script simples pode procurar por dois eventos descendente sucessivos para o mesmo código de acesso que ocorre em, digamos, menos de 500 milissegundos e executar algum comando. Por exemplo,

cnee --record --keyboard 2>/dev/null |
awk -F, -v wanted=105 '$1==7{
 down = ($2==2); keycode = $6; tod = $8;
 if(keycode==wanted){
   if(down){
     diff = tod-last
     if(diff>500){ last = tod; next } # note time of first press
     else{
       #printf "%s %s %d\n",down?"down":"up",keycode,diff
       system("echo hello")
     }
   }else next
 }
 last = 0
}'

Note que você precisará alterar o valor wanted=105 para o código de acesso apropriado e o $1==7 para corresponder ao índice do seu teclado.

    
por 30.09.2017 / 20:28