All
У меня есть небольшая утилита, написанная на C, которая требует, чтобы пользователь нажал клавишу для выбора меню. Код предсказуемо прост:
system("stty raw");
save_ID = getchar();
system("stty cooked");
Он захватывает нажатие клавиши и не нуждается в ожидании ENTER. Он отлично работает из командной строки, однако, когда я пытаюсь привязать команду к горячей клавише в Gnome / metacity, он ожидает нажатия клавиши в порядке, но кажется, что нажатие клавиши обрабатывается не как ввод в команду, а как если бы это была отдельная команда. Например. если мое нажатие клавиши «1» и я нахожусь в терминале, я вижу:
"zsh: команда не найдена: 1"
Я пробовал без "системных" строк, но ничего не изменилось. Возможно, есть какая-то специальная версия «getchar», которая работает с GUI? Кстати, неинтерактивная версия программы прекрасно работает, когда привязана к горячей клавише, поэтому программа в основном функциональна, просто ее нельзя использовать в интерактивном режиме.
Спасибо