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