Respostas:
Existe um programa chamado key-mon que monitora as teclas pressionadas. Já faz algum tempo desde que eu o 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 X janelas. Pode ficar 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ê pode usar grep
e buscar a linha pela quarta coluna (o nome do aplicativo, que é muito mais natural para você usar como humano) - quando você tiver a linha, poderá obter a primeira coluna cut
(a primeira campo com -f1
, usando um delimitador de espaço em branco -d" "
para separar campos).
Você pode analisar os dados (para obter o ID) de várias maneiras, ou 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á as teclas digitadas (e mais) no mesmo terminal que o comando foi chamado; além tee
disso, ele armazena o que você vê em um arquivo. Pode ser uma boa ideia deixar a saída ser mostrada no stdout
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 comCtrl-C.
OBSERVAÇÃO Funciona para urxvt e xman, mas, por alguma razão, falha no Iceweasel na lista acima (registra algo, mas não está apresentando os principais eventos tão claros (de longe) como é o caso desses outros exemplos.