Захватить Ctrl-Enter в необработанном режиме с помощью getchar ()? - PullRequest
0 голосов
/ 24 апреля 2019

Есть ли способ перехватить комбинацию клавиш Ctrl-Enter при обработке нажатий клавиш с помощью getchar () после перевода терминала в режим raw?

При тестировании я просто получаю значение char 10, которое являетсяТо же самое, удерживается ли Ctrl или нет.

1 Ответ

0 голосов
/ 24 апреля 2019

После еще нескольких экспериментов выясняется, что большинство терминалов не посылают уникальную комбинацию клавиш для Ctrl-Enter. Используя цикл getchar, вы можете увидеть полные коды клавиатуры для любого нажатия клавиш терминала:

// set terminal to raw, then...
while( int c = getchar() ) printf( "%d ", c );

Некоторые клавиши, такие как F1 и Ctrl-K, будут генерировать коды, но другие комбинации клавиш не будут. К сожалению, Ctrl-Enter не является кодируемой комбинацией клавиш. Конечно, используя сигналы с доступом с правами root, его можно обнаружить с локальной консоли, но не с терминала.

...