Ich muss jeden Tastendruck aufzeichnen und in einer Datei im Benutzerverzeichnis ~ speichern. Wenn ich mein Konto verwende, bin ich kein Sudoer und kann keine Programme (wie logKeys ) installieren . Wie könnte ich das mit dem Terminal machen?
HINWEIS: Diese Frage ist kein Duplikat der anderen Erwähnungsfrage. In dieser Frage frage ich nach jedem Tastendruck, während der Fragesteller in der anderen nach dem Tastendruck in der Terminalsitzung fragt.
Antworten:
xinput test
kann alle Tastaturereignisse an den X-Server melden. Auf einem GNU-System:Wenn Sie Schlüsselnamen aus den Schlüsselcodes erhalten möchten, können Sie diese Ausgabe mit den folgenden Schritten nachbearbeiten:
Hinzufügen
> file.log
, um in einer Protokolldatei zu speichern. Oder| tee file.log
um sich beide anzumelden und es anzusehen.xinput
fragt die XinputExtension des X-Servers ab. Das ist so nah, wie Sie es als Standard bekommen werden (mir ist kein Standard bekannt, der X-Dienstprogramme abdeckt) oder allgemeiner Befehl, dies zu tun. Das erfordert auch keine root-Rechte.Wenn der X-Server und xinput Version 2 der XinputExtension unterstützen, können Sie
test-xi2
anstelletest
dessen weitere Informationen verwenden, insbesondere den Status der Modifikatoren (Umschalt, Strg, Alt ...). Beispiel:Sie können den Schlüsselcode (in
detail
) mit Hilfe vonxmodmap -pke
wieder in einen Schlüsselschlüssel und dieeffective
Modifikator-Bitmaske mit Hilfe von in etwas hilfreicheres übersetzenxmodmap -pm
. Zum Beispiel:würde ausgeben:
wenn ich Shift + Alt + q drücke, wenn die Num-Taste aktiviert ist.
Beachten Sie, dass Sie keine Superuser-Berechtigungen benötigen, um ein Programm zu installieren . Wenn Sie Schreibzugriff auf irgendwo auf dem Dateisystem, wo die Ausführungsberechtigung erteilt wird (Ihr Home - Verzeichnis,
/tmp
,/var/tmp
...) , dann können Sie eine Kopiexinput
Befehl von einem kompatibelen System gibt und ausführen.quelle
xinput
1.6.1
oder neuer benötigen--root
. X-Dienstprogramme können einzeln von xorg.freedesktop.org/releases/individual/app heruntergeladen werden . Wenn Sie nicht aus dem Quellcode kompilieren möchten. Debian hat xinput 1.6.1 für verschiedene Architekturen für Linux oder kfreebsd.xmodmap
ist mindestens seit 1987 in der Implementierung von Referenz X enthalten. Über welches System sprechen wir hier? Könnte es sein, dassxmodmap
nicht in Ihrem$PATH
(/usr/dt/bin
oder anderen?).Haben Sie darüber nachgedacht, den
script
Befehl zu verwenden?quelle