Respuestas:
Hay un programa llamado key-mon que monitorea las teclas presionadas. Ha pasado algún tiempo desde que lo usé, pero funcionó bien y su pantalla es bastante atractiva.
Puede usar xev(X eventos) para hacer esto.
Inicie la aplicación que desea supervisar, por ejemplo, xman &.
Luego, use wmctrl -lpara enumerar X ventanas. Podría verse así:
0x00400009 0 VLAN-.... urxvt
0x00e0007a 0 VLAN-.... Iceweasel
0x00800011 0 VLAN-.... xman
Necesita la ID de ventana (hexadecimal) en la primera columna; para obtenerlo, puede usar grepy buscar la línea en la cuarta columna (el nombre de la aplicación, que es mucho más natural para usar como humano): cuando tiene la línea, puede obtener la primera columna con cut(la primera con -f1un delimitador de espacios en blanco -d" "para separar los campos).
Puede analizar los datos (para obtener la ID) de varias maneras, o incluso ingresar la ID manualmente, por supuesto. (Los ceros en la segunda columna anterior son el número de escritorio).
Entonces intenta
xev -id `wmctrl -l | grep xman | cut -d" " -f1` | tee event.txt
Mostrará las pulsaciones de teclas (y más) en el mismo terminal donde se invocó el comando; Además, con tee, almacenará lo que ves en un archivo. Podría ser una buena idea dejar que la salida se muestre stdouten el terminal ya que esto le mostrará instantáneamente la acción; Además, si no ejecuta el comando como un proceso en segundo plano (con &), puede terminarlo fácilmente conCtrl-C.
NOTA Funciona para urxvt y xman, pero por alguna razón, falla para Iceweasel en la lista anterior (registra algo, pero no presenta eventos clave tan claros (de lejos) como es el caso con esos otros ejemplos.