Odpowiedzi:
Istnieje program o nazwie key-mon, który monitoruje naciśnięte klawisze. Minęło trochę czasu, odkąd go użyłem, ale działał dobrze, a jego wyświetlacz jest całkiem atrakcyjny.
xevAby to zrobić, możesz użyć (X zdarzeń).
Uruchom aplikację, którą chcesz monitorować, np xman &.
Następnie użyj, wmctrl -laby wyświetlić listę okien X. Może to wyglądać tak:
0x00400009 0 VLAN-.... urxvt
0x00e0007a 0 VLAN-.... Iceweasel
0x00800011 0 VLAN-.... xman
Potrzebujesz identyfikatora okna (szesnastkowego) w pierwszej kolumnie; aby go zdobyć, możesz użyć grepi pobrać wiersz przy czwartej kolumnie (nazwa aplikacji, która jest o wiele bardziej naturalna dla ciebie jako człowieka) - kiedy masz linię, możesz dostać pierwszą kolumnę z cut(pierwszą pole za -f1pomocą separatora białych znaków -d" "do oddzielenia pól).
Możesz parsować dane (aby uzyskać identyfikator) na wiele sposobów, a nawet, oczywiście, wprowadzić identyfikator ręcznie. (Zera w drugiej kolumnie powyżej to numer na pulpicie).
Więc spróbuj
xev -id `wmctrl -l | grep xman | cut -d" " -f1` | tee event.txt
Wyświetli naciśnięcia klawiszy (i więcej) w tym samym terminalu, w którym wywołano polecenie; plus, dzięki tee, zapisze to, co widzisz w pliku. Dobrym pomysłem może być pokazanie wyjścia stdoutw terminalu, ponieważ natychmiast pokaże Ci akcję; Ponadto, jeśli nie uruchomisz polecenia jako procesu w tle (z &), możesz go łatwo zakończyćCtrl-C.
UWAGA Działa dla urxvt i xman, ale z jakiegoś powodu nie działa dla Iceweasel na powyższej liście (rejestruje coś, ale nie przedstawia kluczowych wydarzeń tak wyraźnie (jak dotąd) jak w przypadku innych przykładów.