Я пытаюсь восстановить довольно старый клиент MUD для работы под OS X Mojave (в значительной степени клиент telnet, который поддерживает псевдонимы, привязки клавиш и триггеры). Код можно найти здесь https://github.com/olostan/mmc
Я успешно смог запустить его, однако он неправильно обрабатывал клавиши numpad. Как я выяснил, это произошло потому, что эти клавиши не были определены в https://github.com/olostan/mmc/blob/master/src/output.c. После того, как я добавил следующий блок в раздел «Клавиши клавиатуры», он начал работать правильно.
{ "k0", "\033Op", NULL },
{ "k1", "\033Oq", NULL },
{ "k2", "\033Or", NULL },
{ "k3", "\033Os", NULL },
{ "k4", "\033Ot", NULL },
{ "k5", "\033Ou", NULL },
{ "k6", "\033Ov", NULL },
{ "k7", "\033Ow", NULL },
{ "k8", "\033Ox", NULL },
{ "k9", "\033Oy", NULL },
Теперь я хочусделать то же самое для цифровых клавиш с различными модификаторами (ctrl, alt, shift), например C-k1, M-k1, S-k1, но я нигде не могу найти, как правильно определить escape-коды для такой последовательности. Я получил коды выше с этой страницы - https://www.gnu.org/software/screen/manual/html_node/Input-Translation.html Но, к сожалению, она не описывает какие-либо комбинации с модификаторами.
Итак, вопрос - как определить escape-коды в формате VT100 для комбинаций клавиш склавиши-модификаторы (shift, alt, ctrl)? Я попытался установить что-то вроде этого "\ 033 [1; 5Ot" для комбинации клавиш S-k4, но ничего из этого не сработало.