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.
xev
Aby to zrobić, możesz użyć (X zdarzeń).
Uruchom aplikację, którą chcesz monitorować, np xman &
.
Następnie użyj, wmctrl -l
aby 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ć grep
i 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 -f1
pomocą 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 stdout
w 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.