Réponses:
Il existe un programme appelé key-mon qui surveille les touches enfoncées. Cela fait un moment que je ne l'ai pas utilisé, mais cela a bien fonctionné et son affichage est assez attrayant.
Vous pouvez utiliser xev
(événements X) pour ce faire.
Démarrez l'application que vous souhaitez surveiller, par exemple xman &
.
Ensuite, utilisez wmctrl -l
pour répertorier les fenêtres X. Cela pourrait ressembler à ceci:
0x00400009 0 VLAN-.... urxvt
0x00e0007a 0 VLAN-.... Iceweasel
0x00800011 0 VLAN-.... xman
Vous avez besoin de l'ID de fenêtre (hex) dans la première colonne; pour l'obtenir, vous pouvez utiliser grep
et récupérer la ligne par la quatrième colonne (le nom de l'application, qui est beaucoup plus naturel pour vous en tant qu'humain) - lorsque vous avez la ligne, vous pouvez obtenir la première colonne avec cut
(la première avec -f1
, en utilisant un délimiteur d'espaces -d" "
pour séparer les champs).
Vous pouvez analyser les données (pour obtenir l'ID) de plusieurs façons, ou même saisir l'ID manuellement, bien sûr. (Les zéros dans la deuxième colonne ci-dessus sont le numéro du bureau.)
Puis essayez
xev -id `wmctrl -l | grep xman | cut -d" " -f1` | tee event.txt
Il affichera les frappes (et plus) dans le même terminal que la commande a été invoquée; De plus, avec tee
, il stockera ce que vous voyez dans un fichier. Ce pourrait être une bonne idée de laisser la sortie s'afficher sur stdout
le terminal car cela vous montrera instantanément l'action; aussi, si vous n'exécutez pas la commande en tant que processus d'arrière-plan (avec &
), vous pouvez la terminer facilement avecCtrl-C.
REMARQUE Cela fonctionne pour urxvt et xman, mais pour une raison quelconque, il échoue pour Iceweasel dans la liste ci-dessus (il enregistre quelque chose, mais il ne présente pas les événements clés aussi clairement (de loin) que c'est le cas avec ces autres exemples.