Ответы:
Существует программа под названием key-mon, которая контролирует нажатые клавиши. Прошло некоторое время с тех пор, как я использовал его, но он работал хорошо, и его отображение довольно привлекательно.
Вы можете использовать xev
(X события), чтобы сделать это.
Запустите приложение , которое нужно контролировать, например, xman &
.
Затем используйте wmctrl -l
список X окон. Это может выглядеть так:
0x00400009 0 VLAN-.... urxvt
0x00e0007a 0 VLAN-.... Iceweasel
0x00800011 0 VLAN-.... xman
Вам нужен идентификатор окна (hex) в первом столбце; чтобы получить его, вы можете использовать grep
и извлекать строку по четвертому столбцу (имя приложения, которое более естественно для вас использовать как человек) - когда у вас есть строка, вы можете получить первый столбец с cut
(первый поле с -f1
использованием пробела -d" "
для разделения полей).
Вы можете анализировать данные (чтобы получить идентификатор) несколькими способами или, конечно, даже ввести идентификатор вручную. (Нули во втором столбце выше - это номер рабочего стола.)
Тогда попробуй
xev -id `wmctrl -l | grep xman | cut -d" " -f1` | tee event.txt
Он покажет нажатия клавиш (и более) в том же терминале, в котором была вызвана команда; плюс, tee
он будет хранить то, что вы видите в файле. Хорошей идеей было бы позволить выводить вывод на stdout
терминал, так как это мгновенно покажет действие; также, если вы не запускаете команду как фоновый процесс (с помощью &
), вы можете легко завершить ее с помощьюCtrl-C.
ПРИМЕЧАНИЕ. Он работает для urxvt и xman, но по какой-то причине не срабатывает для Iceweasel в приведенном выше листинге (он что-то записывает, но не представляет ключевые события так же ясно (пока), как в случае с другими примерами.
Я нашел экранную клавиатуру сегодня, она очень крутая и работает очень хорошо.