в Gnome / metacity можем ли мы привязать ключ к команде, которая требует ввода данных с клавиатуры? - PullRequest
0 голосов
/ 15 января 2012

All

У меня есть небольшая утилита, написанная на C, которая требует, чтобы пользователь нажал клавишу для выбора меню. Код предсказуемо прост:

    system("stty raw");
    save_ID = getchar();
    system("stty cooked");

Он захватывает нажатие клавиши и не нуждается в ожидании ENTER. Он отлично работает из командной строки, однако, когда я пытаюсь привязать команду к горячей клавише в Gnome / metacity, он ожидает нажатия клавиши в порядке, но кажется, что нажатие клавиши обрабатывается не как ввод в команду, а как если бы это была отдельная команда. Например. если мое нажатие клавиши «1» и я нахожусь в терминале, я вижу:

"zsh: команда не найдена: 1"

Я пробовал без "системных" строк, но ничего не изменилось. Возможно, есть какая-то специальная версия «getchar», которая работает с GUI? Кстати, неинтерактивная версия программы прекрасно работает, когда привязана к горячей клавише, поэтому программа в основном функциональна, просто ее нельзя использовать в интерактивном режиме.

Спасибо

1 Ответ

0 голосов
/ 25 января 2012

Я думаю, что GTK может вас заинтересовать, хотя я никогда не использовал его лично.

http://www.gtk.org/

.

Вы также должны иметь возможность запускать gnome-Терминал.Используя / opt / appFoo / appFoo в качестве команды для нормального запуска приложения, вы запустите

gnome-terminal -e "/opt/appFoo/appFoo" &

...