Цифровая клавиатура VT100 Escape-коды при использовании модификаторов (ctrl / shift / alt) - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь восстановить довольно старый клиент 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, но ничего из этого не сработало.

...