Какая часть Gnome Terminal обрабатывает Ctrl-C?

Я недавно возился с Gnome Terminal, пытаясь настроить, что происходит, когда я нажимаю Ctrl-C (я хотел бы, чтобы он копировал, когда у меня выделен текст, и отправлял SIGINT в противном случае, но это не часть вопроса), но Я не могу понять, где в стеке распознается Ctrl-C (или где Ctrl-Shift-C распознается, если Ctrl-C отскок, в этом отношении).

Итак, какая библиотека или программа отвечает за обработку этой комбинации клавиш?

0 ответов

То, о чем вы спрашиваете, определяется двумя факторами;

  • ваша (выбранная) оболочка
  • настройки в терминале (Gnome)

Чтобы узнать, что в данный момент назначено CTRL+C в терминале гномов. В открытом сеансе выберите " Правка" > " Настройки" > " Ярлыки".

Что касается вашей оболочки входа в систему.; CTRL+C (^C) почти всегда назначается TERM или же HUP (повесить трубку).

Для CtrlC эмулятор терминала просто отправляет один байт 0x03.

CtrlA - CtrlZ отправляет байты 0x01–0x1A (десятичные 1–26) соответственно; более того, пространствоCtrl равно 0x00, Ctrl[ равно 0x1B, Ctrl\ равно 0x1C, Ctrl] равно 0x1D, Ctrl^ (или часто просто Ctrl6 без Shift, принимая раскладку клавиатуры в США) равно 0x1E, а Ctrl_ (или часто Ctrl- без Shift) составляет 0x1F.

Эти байты интерпретируются и обрабатываются ядром специально в соответствии с дисциплиной терминальной линии. Проверьте вывод stty -aэто, вероятно, содержит intr = ^C это означает, что CtrlC (байт 0x03) является символом прерывания.

Смотрите справочные страницы stty, termios, ioctl, ioctl_tty и соответствующие совпадения веб-поиска (в том числе для термина "дисциплина линии") для более подробной информации.

Другие вопросы по тегам