Necesito registrar cada pulsación de tecla y almacenar en un archivo en el directorio de usuarios ~, cuando uso mi cuenta, no soy sudoer y no puedo instalar programas (como logKeys ) de ninguna manera. ¿Cómo podría hacerlo usando la terminal?
NOTA: Esta pregunta no es un duplicado de la otra pregunta de mención; En esta pregunta, estoy preguntando sobre cada pulsación de tecla, mientras que en la otra, el autor de la pregunta preguntó sobre la pulsación de tecla en la sesión de terminal.
Respuestas:
xinput test
puede informar todos los eventos del teclado al servidor X. En un sistema GNU:Si desea obtener nombres clave de los códigos clave, puede procesar posteriormente esa salida con:
Agregar
> file.log
a la tienda en un archivo de registro. O| tee file.log
para iniciar sesión y verlo.xinput
consulta la extensión Xinput del servidor X. Eso es lo más parecido a un estándar (no conozco ningún estándar que cubra las utilidades X) o un comando común para hacerlo. Eso tampoco requiere privilegios de root.Si el servidor X y xinput admiten la versión 2 de XinputExtension, puede usar en
test-xi2
lugar de lotest
que proporciona más información, en particular el estado de los modificadores (shift, ctrl, alt ...). Ejemplo:Puede traducir el código
detail
clave (in ) a un keyym con la ayuda dexmodmap -pke
nuevo, y laeffective
máscara de bits del modificador a algo más útil con la ayuda dexmodmap -pm
. Por ejemplo:daría salida:
cuando presiono Shift + Alt + q cuando el bloqueo numérico está activado.
Tenga en cuenta que no necesita tener privilegios de superusuario para instalar un programa. Si tiene acceso de escritura en algún lugar del sistema de archivos donde se concede permiso de ejecución (su directorio de inicio
/tmp
,/var/tmp
...), puede copiar unxinput
comando de un sistema compatible allí y ejecutarlo.fuente
xinput
1.6.1
o más reciente--root
. Las utilidades X se pueden descargar individualmente desde xorg.freedesktop.org/releases/individual/app . Si no quieres compilar desde la fuente. Debian tiene un xinput 1.6.1 para varias arquitecturas para Linux o kfreebsd.xmodmap
ha estado en la implementación de referencia X desde 1987 al menos. ¿De qué sistema estamos hablando aquí? ¿Podría ser quexmodmap
no está en tu$PATH
(/usr/dt/bin
u otro?).¿Has considerado usar el
script
comando?fuente