Попробовал читать из /dev/console - не получается, клавиатура вообще начинает постоянно что-то выдавать, даже когда мышкой закрываю программу. Приходится перезагружать компьютер.
Да, showkey под root-ом работает в текстовом режиме, а под X не работает. Мне не хочется каждый раз перезагружаться, чтоб программу запустить, может под X-ми тоже как-то можно?
:(( Сработало нормально только один раз. А теперь работает, но очень странно. Нажатые клавиши резко уезжают вверх, при переходе в другие окна такое ощущение, что все время нажат "Enter". Клавиатура отключается и приходится перезагружать компьютер.
Мне надо получать события клавиатуры и преобразовывать их в события Win (WM_KEYDOWN, WM_KEYUP, WM_CHAR). Программа переносится с Win. В конечном итоге программа будет работать без X-ов. То есть проблемы как бы нет. Но отлаживать все хочется при запущенных X-аx.
Ет парень, коль надо тебе под Иксами так их и юзай. Они сие умеют. На днях проскакивала заметка кажись в новостях на тему использхования в Х нестандартных клавиш так вот там первым делом получают скан-код клавиши или его еквивалент однозначно соответствующий скан коду
> Насколько я понял nkurses не позволяет отслеживать нажатия shift и alt
Почти правильно понял. На самом деле, в *NIX вообще не существует переносимого способа ловить раздельно нажатия/отпускания, отдельно Shift, Alt, Ctrl и пр. Мало того, внутри одной системы работа с такой фигнёй (и вообще, возможность это делать) сильно зависит от способа запуска - в консоли, в разных эмуляторах терминала.
Рекомендую несколько пересмотреть интерфейс программы, чтобы эта фигня ей была не нужна.
А я запускаю программу в фоновой консоли (ctrl-alt-F1). Перевожу /dev/console в режим чтения скан кодов: ioctl(fd, KDSKBMODE, K_RAW); и читаю без проблем. Когда надо перехожу опять в Х-ы (alt+F7).