Если вам нужно разобраться с деталями самостоятельно, используйте вариант проклятия. Если это возможно, предпочтите «ncurses» вместо «curses». Обратите внимание, что некоторые клавиши являются мета-ключами, которые на самом деле просто изменяют коды основных клавиш. Существует несколько «режимов» для считывания ввода с клавиатуры, которые варьируются от «приготовленного» до «частично приготовленного» до «сырого». Каждый режим имеет свои особенности, внимательно прочитайте документацию.
Иногда лучше использовать существующий код обработки ключей из различных библиотек программирования игр, я слышал о некоторых хороших результатах с использованием циклов сканирования ключей SDL. Это было некоторое время назад, поэтому, возможно, существуют более новые (и лучшие) наборы инструментов.