LINUX.ORG.RU
Ответ на: комментарий от vasirck

Да, showkey под root-ом работает в текстовом режиме, а под X не работает. Мне не хочется каждый раз перезагружаться, чтоб программу запустить, может под X-ми тоже как-то можно?

vasirck
() автор топика
Ответ на: комментарий от vasirck

у меня вполне себе работает.

к тому-же, showkey я назвал для ознакомления с ее кодом, чтобы было где посмотреть, как скан-коды клавиш вытащить.

ananas ★★★★★
()
Ответ на: комментарий от ananas

Да, действительно работает, если запустить для чтения скан кодов showkey -s Спасибо

vasirck
() автор топика
Ответ на: комментарий от ananas

:(( Сработало нормально только один раз. А теперь работает, но очень странно. Нажатые клавиши резко уезжают вверх, при переходе в другие окна такое ощущение, что все время нажат "Enter". Клавиатура отключается и приходится перезагружать компьютер.

vasirck
() автор топика
Ответ на: комментарий от ananas

Мне надо получать события клавиатуры и преобразовывать их в события Win (WM_KEYDOWN, WM_KEYUP, WM_CHAR). Программа переносится с Win. В конечном итоге программа будет работать без X-ов. То есть проблемы как бы нет. Но отлаживать все хочется при запущенных X-аx.

vasirck
() автор топика
Ответ на: комментарий от watashiwa_daredeska

Из stdin я буду получать символы, а как получать нажатия shift, Fn и др., события отпускания клавиши?

vasirck
() автор топика

Ет парень, коль надо тебе под Иксами так их и юзай. Они сие умеют. На днях проскакивала заметка кажись в новостях на тему использхования в Х нестандартных клавиш так вот там первым делом получают скан-код клавиши или его еквивалент однозначно соответствующий скан коду

cvv ★★★★★
()
Ответ на: комментарий от vasirck

> Насколько я понял nkurses не позволяет отслеживать нажатия shift и alt

Почти правильно понял. На самом деле, в *NIX вообще не существует переносимого способа ловить раздельно нажатия/отпускания, отдельно Shift, Alt, Ctrl и пр. Мало того, внутри одной системы работа с такой фигнёй (и вообще, возможность это делать) сильно зависит от способа запуска - в консоли, в разных эмуляторах терминала.

Рекомендую несколько пересмотреть интерфейс программы, чтобы эта фигня ей была не нужна.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от vasirck

если ваm нужно отслеживать именно нажатия/отжатия - смотрите соответствующие ioctl's (man ioctl, man ioctl_list раздел KD*)

ananas ★★★★★
()
Ответ на: комментарий от ananas

А я запускаю программу в фоновой консоли (ctrl-alt-F1). Перевожу /dev/console в режим чтения скан кодов: ioctl(fd, KDSKBMODE, K_RAW); и читаю без проблем. Когда надо перехожу опять в Х-ы (alt+F7).

vasirck
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.