Соглашение об установке 8-го бита при нажатии мета довольно архаично и больше не используется, или вообще не используется ни в каком современном терминале, который поддерживает больше символов, чем просто ASCII. В этом отношении соглашение о префиксе ESC также встречается редко.
32 управляющих символа ASCII действительно отправляются как управляющие символы ASCII (кодовые точки меньше 32), но это охватывает только Ctrl- @, Ctrl-A - Ctrl-Z, ESC, Ctrl-\, Ctrl-], Ctrl- ^ и Ctrl-_. Ничего другого, например, например, Ctrl-4, не существует в ASCII, и не существует соглашения для отправки его через терминал.
По сути, нижняя строка такова: все, что не может быть отправлено в виде простого символа (то есть существует в Unicode для современных терминалов, поддерживающих Unicode), должно быть отправлено как escape-последовательность. Escape-последовательности определяются действующим протоколом эмуляции терминала. Почти все протоколы эмуляции терминала, используемые сегодня, основаны на VT100 или похожи на него, а escape-последовательности доступны для общих клавиш, которые не существуют в виде символов: клавиш со стрелками, функциональных клавиш и т.д.
VT100 и соответствующие протоколы эмуляции терминала не содержат соглашений для передачи нажатий клавиш-модификаторов, даже стандартных, таких как Shift и Control. Программное обеспечение, работающее на tty, не может определить разницу между нажатием клавиши Enter и Shift-Enter. Он даже не может определить разницу между нажатием клавиши Enter и нажатием клавиши Control-M.
Тот факт, что эти последовательности модификаторов не могут быть переданы через терминал, можно считать хорошей вещью. Например, терминальное приложение MacOS может требовать нажатия клавиши ⌘V для собственного использования (вставки), потому что оно все равно не может быть отправлено на tty.