(Solved) Программное нажатие клавиатуры

Знает ли кто-нибудь соответствующие программы?
Поясню: необходимо программно эмулировать нажатие клавишь, например,
program --key=space
нажать пробел

Раньше для этого я использовал kbde, но его разработка прекращена в 2005 году и последнее ядро, на котором он собрался - 2.6.22, на 24 уже не собирается.

Я подумал, что для этого можно было бы использовать обычную экранную клавиатуру, но не нашел подходящей, умеющей сразу при запуске нажимать соответствующую клавишу (к тому же постоянно висящая на экране клавиатура выглядит не эстетично)

x11-misc/xvkbd

x11-misc/xvkbd
Available versions: 2.6 ~2.8
Homepage: http://homepage3.nifty.com/tsato/xvkbd/
Description: virtual keyboard for X window system

Спасибо

Спасибо. Это похоже то, что надо

Если речь про терминал...

#!/bin/bash

stty -icanon -echo # не ждем ENTER после нажатия на клавишу; и не отображаем нажатое
#tput clear # чистим экран вначале

while true;
do
#key=$(head -c1) # ловим 1 символ и ждем его до опупения
read -s -t 1 -n 1 key || key='?' # Ну и эта строка, собсно по сути вопроса =)))
# читаем по символу, но ждем ввод не более 1 секунды
# иначе считаем, что введен "?"

#key=$1; # раскомментариваем это, комментим "while" "do" "done"
# и получаем возможность вызывать скрипт так: myscript r
case $key in
w|W) echo w ;; # ловим
s|S) echo s ;; # только
a|A) echo a ;; # четыре
d|D) echo d ;; # буквы
q|Q) stty icanon echo; exit 0;; # и 5-ю: возвращаем параметры терминала на родину и уходим из while
" ") echo SPACE ;; # ну и пробел ;-))
*) ;; # нечто иное, возможно спецсимвол
esac

if [ "$key" == `echo -e "\x"1B` ]; ## escape-последовательность
then
key=$(head -c2) # дочитываем 2-й и 3-й символ спецсимвола
case $key in
"[A") echo UP-arrow pressed;;
"[B") echo DOWN-arrow pressed;;
"[C") echo RIGHT-arrow pressed;;
"[D") echo LEFT-arrow pressed;;
"OP") echo F1-speckey pressed;;
"OQ") echo F2-speckey pressed;;
"[H") echo Home-speckey pressed;;
"[F") echo End-speckey pressed;;
"OM") echo ShiftEnter pressed;;
*) ;; ## все остальное - для некоторых
## (напр F5..., ShiftF1...PgUp,Ins...Enter (??) )
## надо и 4-й символ ловить
esac
else echo $key #Any other symbol...
fi
done

## ИНФА: man всех упомянутых комманд, и созерцание `cat /dev/zero` ;-))

Спасибо

Очень интересный подход.

А лучше через

А лучше через порты ввода/вывода делать, не забывая при этом, что ассемблер рулит ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".