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.