Клавиатура, конечно, та же, но в другом режиме. X-сервер переводит клавиатуру в режим сканкодов и затем сопоставляет сканкоду то самое событие Key(Press|Release) event. В терминале же клавиатура по умолчанию в UTF-8 или ASCII режиме — scancodes мапятся в keycodes драйвером, которые согласно keymap'у мапятся в символы. Ну или даже в строчки. Так что действительно связь клавиши с символом в иксах совершенно не зависит от такой связи в терминале.
Можно предположить: юникс писался с расчётом на текстовые терминалы, юникс был всем любовен и прельстив, и отказываться от какой-то концепции в нём только для того, чтобы это логично выглядело на каких-то новомодных сверхдешёвых компах никому в голову не пришло. А там пошло-поехало…
А дальше терминал в соответствии с установленными параметрами (termios/ioctl) уже пишет в стандартный программы. Именно на этом этапе CR заменяется на CRLF.
no subject
Date: 2013-02-17 11:28 pm (UTC)X-сервер переводит клавиатуру в режим сканкодов и затем сопоставляет сканкоду то самое событие Key(Press|Release) event.
В терминале же клавиатура по умолчанию в UTF-8 или ASCII режиме — scancodes мапятся в keycodes драйвером, которые согласно keymap'у мапятся в символы. Ну или даже в строчки.
Так что действительно связь клавиши с символом в иксах совершенно не зависит от такой связи в терминале.
no subject
Date: 2013-02-18 06:02 am (UTC)кстати, послей кеймапа-то что происходит?
no subject
Date: 2013-02-24 02:38 pm (UTC)А дальше терминал в соответствии с установленными параметрами (termios/ioctl) уже пишет в стандартный программы. Именно на этом этапе CR заменяется на CRLF.
no subject
Date: 2013-02-26 07:10 am (UTC)На LF:)
в остальном вполне правильно.
Ну а что Enter даёт CR на уровне драйвера терминала - вполне логично, потому что LF тут мало применялось.
no subject
Date: 2013-02-26 09:34 pm (UTC)