Existe um programa chamado key-mon que monitora as teclas pressionadas. Já faz algum tempo desde que eu usei, mas funcionou bem e sua exibição é bastante atraente.
Vou fazer uma apresentação sobre um produto de software e ele tem alguns atalhos-chave que quero mostrar. Existe um programa que exibe os atalhos de teclado que usei?
Existe um programa chamado key-mon que monitora as teclas pressionadas. Já faz algum tempo desde que eu usei, mas funcionou bem e sua exibição é bastante atraente.
Você pode usar xev (eventos X) para fazer isso.
Inicie o aplicativo que você deseja monitorar, por exemplo, xman & .
Em seguida, use wmctrl -l para listar janelas X. Poderia ser assim:
0x00400009 0 VLAN-.... urxvt
0x00e0007a 0 VLAN-.... Iceweasel
0x00800011 0 VLAN-.... xman
Você precisa do ID da janela (hex) na primeira coluna; para obtê-lo, você poderia usar grep e buscar a linha pela quarta coluna (o nome do aplicativo, que é muito mais natural para você usar como humano) - quando você tem a linha, você pode obter a primeira coluna com cut (o primeiro campo com -f1 , usando um delimitador de espaço em branco -d" " para campos separados).
Você pode analisar os dados (para obter o ID) de várias maneiras ou até mesmo inserir o ID manualmente, é claro. (Os zeros na segunda coluna acima são o número da área de trabalho.)
Então, tente
xev -id 'wmctrl -l | grep xman | cut -d" " -f1' | tee event.txt
Ele mostrará os pressionamentos de teclas (e mais) no mesmo terminal que o comando foi chamado; mais, com tee , ele armazenará o que você vê em um arquivo. Pode ser uma boa idéia deixar a saída ser mostrada em stdout no terminal, pois isso mostrará instantaneamente a ação; Além disso, se você não executar o comando como um processo em segundo plano (com & ), poderá finalizá-lo facilmente com Ctrl-C.
OBSERVAÇÃO Funciona para urxvt e xman, mas por alguma razão, falha para Iceweasel na lista acima (grava algo, mas não apresenta eventos importantes como claros (de longe) como é o caso com esses outros exemplos.