НАЗВАНИЕ
keyboard - клавиатура персонального компьютера.
ОПИСАНИЕ
Клавиатура персонального компьютера используется для ввода данных,
переключения экранов и направления некоторых управляющих сигналов
компьютеру. Система UNIX выполняет эмуляцию экрана и
клавиатуры терминала и при этом извлекает пользу из некоторых
особенных клавиш и их комбинаций. Эти клавиши и их комбинации имеют
специальные названия, которые уникальны в системе UNIX и могут
соответствовать, а могут и не соответствовать меткам клавиш на
вашей клавиатуре. Эти клавиши будут описаны позже.
Когда вы нажимаете клавишу, происходит одно из следующих событий:
Когда нажимается клавиша, клавиатура посылает компьютеру скан-код, который интерпретируется драйвером клавиатуры. Интерпретация кодов клавиш может быть изменена так, что клавиши могут начать функционировать по другому, отлично от их установок по умолчанию.
Различают три особенных события при нажатии клавиш:
Переключение экранов (многоэкранный режим)
Для переключения на следующий экран нажмите Ctrl-PrtSc, используя
клавиши Ctrl и PrtSc. Любой активный экран может быть выбран
нажатием alt-Fn, где Fn - одна из функциональных клавиш. F1
относится к дисплею компьютера (/dev/tty01).
Сигналы
Сигналы оказывают воздействие на процесс или несколько процессов.
Примерами сигналов являются Ctrl-d (конец ввода и выход из
оболочки), Ctrl-\ (завершение процесса), Ctrl-s ( остановка
выдачи еа экран) и Ctrl-q (возобновление выдачи).
Обычно символы ставятся в соответствие сигналам с помощью stty(1). Единственный способ поставить сигнал в соответствие символам через посредство stty.
Изменение значения нажатий клавиш
Действительный код, посылаемый драйверу клавиатуры, может быть
изменен с помощью комбинации некоторых клавиш. Например, клавиша
SHIFT меняет значение символов ASCII буквенно-цифровых клавиш.
Удерживание клавиши Ctrl при нажатии других клавиш генерирует
управляющие коды (Ctrl-d, Ctrl-s, Ctrl-q и др.).
Специальные клавиши
Для облегчения отыскания специальных клавиш в следующей таблице
показано соответствие клавиш типичной консоли ключам системы UNIX.
В этой таблице черточка (-) между названиями клавиш означает
"удерживайте первую клавишу, нажимая на вторую".
Название в системе XENIX | Метки на клавиатуре | Действие |
---|---|---|
INTR | Del | Останавливает текущее действие и возвращает в оболочку. Эта клавиша называется также RUB OUT или INTERRUPT. |
BACKSPACE | <- | Удаляет первый символ слева от курсора. Заметьте, что клавиша "движения курсора влево" также имеет метку "стрелка влево", но она не удаляет символы. |
Ctrl-d | Ctrl-d | Сигнализирует о конце ввода с клавиатуры; кроме того осуществляет выход из текущей оболочки. |
Ctrl-h | Ctrl-h | Удаляет первый символ слева от курсора. Называется также ERASE. |
Ctrl-q | Ctrl-q | Возобновляет выдачу после ее остановки с помощью нажатия Ctrl-s. |
Ctrl-s | Ctrl-s | Останавливает выдачу на экран (работа программы не прекращается). |
Ctrl-u | Ctrl-u | Удаляет все символы на текущей строке. Называется также KILL. |
Ctrl-\ | Ctrl-\ | Прекращает выполнение текущей команды и создает core-файл, если это разрешено. (Рекомендуется только для отладки.) |
ESCAPE | Esc | Специальный код для некоторых программ. В текстовом редакторе vi(C) переключает режим вставки в командный режим. |
RETURN | (down-left arrow or ENTER) | Завершает введение командной строки и ининциирует действие оболочки. |
Fn | Fn | Функциональная клавиша n. F1-F12 используются без нажатия SHIFT. F13-F24 генерируются с помощью SHIFT. F25-F36 генерируются с помощью Ctrl-F1 через F12, F37-F48 генерируются с помощью Ctrl-Shift-F1 через F12.
Следующие клавиши Fn (F49-F60) находятся на дополнительной цифровой панели (Shift не используется):
F49 - '7' Соответствия клавишам F61-F96 смотрите в файле /usr/lib/keyboard/strings. Эти функциональные ключи доступны не на всех клавиатурах, но вы можете поставить им в соответствие другие клавиши. |
Назначение клавиш клавиатуры формируется с помощью структуры, определенной в файле /usr/include/sys/keyboard.h. Каждая клавиша может иметь десять состояний. Первые восемь таковы:
Два дополнительных состояния обозначаются двумя специальными байтами. Первый является байтом "специального состояния", биты которого указывают, является ли данный ключ "специальным" в одном или нескольких из первых восьми состояний.
Второй может быть одним из четырех символов (C, N, B, O), указывающих на то, как служебные клавиши фиксации регистров влияют на них.
Режимы клавиатуры
Большинство клавиатур обычно находятся в режиме XT, но некоторые из
них могут быть установлены в режим AT. Для определения того,
поддерживает ли клавиатура режим AT, имеется утилита kbmode(8),
которая может быть также использована для переключения клавиатуры в
режим AT после очередной перезагрузки системы. Можно установить
системную конфигурацию клавиатуры на режим AT с помощью утилиты
configure(8).
Клавиатуры с расширенными возможностями программируются в режиме AT более полно, в котором распознаются также по две клавиши Ctrl и Alt.
Скан-коды
В следующей таблице описывается содержимое файла
/usr/lib/keyboard/keys, устанавливаемое по умолчанию. Она содержит
следующие заголовки колонок:
SCAN CODE - скан-код, генерируемый аппаратной частью клавиатуры при нажатии клавиши. Пользователь не имеет доступа к скан-коду, генерируемому на отжатие клавиши.
BASE - нормальное значение, генерируемое при нажатие клавиши.
SHIFT - значение, генерируемое при нажатии клавиши при нажатой клавише SHIFT.
LOCK - указывает, как служебные клавиши фиксации регистра воздействуют на эту клавишу:
Клавиши типа C, N и B генерируют смещенное значение скан-кода в состоянии, когда эти служебные клавиши включены. Если при этом будет нажата клавиша Shift, то значение скан-кода будет переключено обратно.
Прочие колонки таблицы представляют значения, генерируемые при нажатии данной клавиши в комбинации с удерживаемыми клавишами CTRL, ALT и SHIFT.
Все эти значения, за исключением ключевых слов, представляют собой символы ASCII. Ключевые слова относятся к специальным функциональным клавишам.
SCAN CODE | BASE | SHIFT | CTRL | CTRL SHIFT | ALT | ALT SHIFT | ALT CTRL | ALT CTRL SHIFT | LOCK |
---|---|---|---|---|---|---|---|---|---|
0 | nop | nop | nop | nop | nop | nop | nop | nop | O |
1 | esc | esc | nop | nop | esc | esc | nop | nop | O |
2 | '1' | '!' | nop | nop | '1' | '!' | nop | nop | O |
3 | '2' | '@' | nop | nop | '2' | '@' | nop | nop | O |
4 | '3' | '#' | nop | nop | '3' | '#' | nop | nop | O |
5 | '4' | '$' | nop | nop | '4' | '#' | nop | nop | O |
6 | '5' | '%' | nop | nop | '5' | '%' | nop | nop | O |
7 | '6' | '^' | rs | rs | '6' | '^' | rs | rs | O |
8 | '7' | '&' | nop | nop | '7' | '&' | nop | nop | O |
9 | '8' | '*' | nop | nop | '8' | '*' | nop | nop | O |
10 | '9' | '(' | nop | nop | '9' | '(' | nop | nop | O |
11 | '0' | ')' | nop | nop | '0' | ')' | nop | nop | O |
12 | '-' | '_' | ns | ns | '-' | '_' | ns | ns | O |
13 | '=' | '+' | nop | nop | '=' | '+' | nop | nop | O |
14 | bs | bs | del | del | bs | bs | del | del | O |
15 | ht | btab | nop | nop | ht | btab | nop | nop | O |
16 | 'q' | 'Q' | dc1 | dc1 | 'q' | 'Q' | dc1 | dc1 | C |
17 | 'w' | 'W' | etb | etb | 'w' | 'W' | etb | etb | C |
18 | 'e' | 'E' | enq | enq | 'e' | 'E' | enq | enq | C |
19 | 'r' | 'R' | dc2 | dc2 | 'r' | 'R' | dc2 | dc2 | C |
20 | 't' | 'T' | dc4 | dc4 | 't' | 'T' | dc4 | dc4 | C |
21 | 'y' | 'Y' | em | em | 'y' | 'Y' | em | em | C |
22 | 'u' | 'U' | nak | nak | 'u' | 'U' | nak | nak | C |
23 | 'i' | 'I' | ht | ht | 'i' | 'I' | ht | ht | C |
24 | 'o' | 'O' | si | si | 'o' | 'O' | si | si | C |
25 | 'p' | 'P' | dle | dle | 'p' | 'P' | dle | dle | C |
26 | '[' | '{' | esc | esc | '[' | '{' | esc | esc | O |
27 | ']' | '}' | gs | gs | ']' | '}' | gs | gs | O |
28 | cr | cr | nl | nl | cr | cr | nl | nl | O |
29 | ctrl | ctrl | ctrl | ctrl | ctrl | ctrl | ctrl | ctrl | O |
30 | 'a' | 'A' | soh | soh | 'a' | 'A' | soh | soh | C |
31 | 's' | 'S' | dc3 | dc3 | 's' | 'S' | dc3 | dc3 | C |
32 | 'd' | 'D' | eot | eot | 'd' | 'D' | eot | eot | C |
33 | 'f' | 'F' | ack | ack | 'f' | 'F' | ack | ack | C |
34 | 'g' | 'G' | bel | bel | 'g' | 'G' | bel | bel | C |
35 | 'h' | 'H' | bs | bs | 'h' | 'H' | bs | bs | C |
36 | 'j' | 'J' | nl | nl | 'j' | 'J' | nl | nl | C |
37 | 'k' | 'K' | vt | vt | 'k' | 'K' | vt | vt | C |
38 | 'l' | 'L' | np | np | 'l' | 'L' | np | np | C |
39 | ';' | ':' | nop | nop | ';' | ':' | nop | nop | O |
40 | '\' | '"' | nop | nop | '\' | '"' | nop | nop | O |
41 | '`' | '~' | nop | nop | '`' | '~' | nop | nop | O |
42 | lshift | lshift | lshift | lshift | lshift | lshift | lshift | lshift | O |
43 | '\\' | '|' | fs | fs | '\\' | '|' | fs | fs | O |
44 | 'z' | 'Z' | sub | sub | 'z' | 'Z' | sub | sub | O |
45 | 'x' | 'X' | can | can | 'x' | 'X' | can | can | C |
46 | 'c' | 'C' | etx | etx | 'c' | 'C' | etx | etx | C |
47 | 'v' | 'V' | syn | syn | 'v' | 'V' | sin | sin | C |
48 | 'b' | 'B' | stx | stx | 'b' | 'B' | stx | stx | C |
49 | 'n' | 'N' | so | so | 'n' | 'N' | so | so | C |
50 | 'm' | 'M' | cr | cr | 'm' | 'M' | cr | cr | C |
51 | ',' | '<' | nop | nop | ',' | '<' | nop | nop | O |
52 | '.' | '>' | nop | nop | ',' | '>' | nop | nop | O |
53 | '/' | '?' | nop | nop | '/' | '?' | nop | nop | O |
54 | rshift | rshift | rshift | rshift | rshift | rshift | rshift | rshift | O |
55 | '*' | '*' | nscr | nscr | '*' | '*' | nscr | nscr | O |
56 | alt | alt | alt | alt | alt | alt | alt | alt | O |
57 | ' ' | ' ' | ' ' | ' ' | ' ' | ' ' | ' ' | ' ' | O |
58 | clock | clock | clock | clock | clock | clock | clock | clock | O |
59 | fkey1 | fkey13 | fkey25 | fkey37 | scr1 | scr11 | scr1 | scr11 | O |
60 | fkey2 | fkey14 | fkey26 | fkey38 | scr2 | scr12 | scr2 | scr12 | O |
61 | fkey3 | fkey15 | fkey27 | fkey39 | scr3 | scr13 | scr3 | scr13 | O |
62 | fkey4 | fkey16 | fkey28 | fkey40 | scr4 | scr14 | scr4 | scr14 | O |
63 | fkey5 | fkey17 | fkey29 | fkey41 | scr5 | scr15 | scr5 | scr15 | O |
64 | fkey6 | fkey18 | fkey30 | fkey42 | scr6 | scr16 | scr6 | scr16 | O |
65 | fkey7 | fkey19 | fkey31 | fkey43 | scr7 | scr7 | scr7 | scr7 | O |
66 | fkey8 | fkey20 | fkey32 | fkey44 | scr8 | scr8 | scr8 | scr8 | O |
67 | fkey9 | fkey21 | fkey33 | fkey45 | scr9 | scr9 | scr9 | scr9 | O |
68 | fkey10 | fkey22 | fkey34 | fkey46 | scr10 | scr10 | scr10 | scr10 | O |
69 | nlock | nlock | dc3 | dc3 | nlock | nlock | dc3 | dc3 | O |
70 | slock | slock | del | del | slock | slock | del | del | O |
71 | fkey49 | '7' | '7' | '7' | '7' | '7' | '7' | '7' | N |
72 | fkey50 | '8' | '8' | '8' | '8' | '8' | '8' | '8' | N |
73 | fkey51 | '9' | '9' | '9' | '9' | '9' | '9' | '9' | N |
74 | fkey52 | '-' | '-' | '-' | '-' | '-' | '-' | '-' | N |
75 | fkey53 | '4' | '4' | '4' | '4' | '4' | '4' | '4' | N |
76 | fkey54 | '5' | '5' | '5' | '5' | '5' | '5' | '5' | N |
77 | fkey55 | '6' | '6' | '6' | '6' | '6' | '6' | '6' | N |
78 | fkey56 | '+' | '+' | '+' | '+' | '+' | '+' | '+' | N |
79 | fkey57 | '1' | '1' | '1' | '1' | '1' | '1' | '1' | N |
80 | fkey58 | '2' | '2' | '2' | '2' | '2' | '2' | '2' | N |
81 | fkey59 | '3' | '3' | '3' | '3' | '3' | '3' | '3' | N |
82 | fkey60 | '0' | '0' | '0' | '0' | '0' | '0' | '0' | N |
83 | del | '.' | del | del | del | del | del | del | N |
84 | nop | nop | nop | nop | nop | nop | nop | nop | O |
85 | fkey11 | fkey23 | fkey35 | fkey47 | scr11 | scr11 | scr11 | scr11 | O |
86 | fkey12 | fkey24 | fkey36 | fkey48 | scr12 | scr12 | scr12 | scr12 | O |
Следующие скан-коды генерируются только на клавиатурах, которые поддерживают и находятся в режиме AT.
SCAN CODE | BASE | SHIFT | CTRL | CTRL SHIFT | ALT | ALT SHIFT | ALT CTRL | ALT CTRL SHIFT | LOCK |
---|---|---|---|---|---|---|---|---|---|
87 | fkey11 | fkey23 | fkey35 | fkey47 | scr11 | scr11 | scr11 | scr11 | O |
88 | fkey12 | fkey24 | fkey36 | fkey48 | scr12 | scr12 | scr12 | scr12 | O |
89 | nop | nop | nop | nop | nop | nop | nop | nop | O |
90 | nop | nop | nop | nop | nop | nop | nop | nop | O |
91 | nop | nop | nop | nop | nop | nop | nop | nop | O |
92 | nop | nop | nop | nop | nop | nop | nop | nop | O |
93 | nop | nop | nop | nop | nop | nop | nop | nop | O |
94 | nop | nop | nop | nop | nop | nop | nop | nop | O |
95 | nop | nop | nop | nop | nop | nop | nop | nop | O |
96 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | O |
97 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | O |
98 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | O |
99 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | O |
100 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | O |
101 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | O |
102 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | O |
103 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | O |
104 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | O |
105 | del | del | del | del | del | del | del | del | 0 |
106 | nop | nop | nop | nop | nop | nop | nop | nop | O |
107 | nop | nop | nop | nop | nop | nop | nop | nop | O |
108 | nop | nop | nop | nop | nop | nop | nop | nop | O |
109 | nop | nop | nop | nop | nop | nop | nop | nop | O |
110 | nop | nop | nop | nop | nop | nop | nop | nop | O |
111 | nop | nop | nop | nop | nop | nop | nop | nop | O |
112 | nop | nop | nop | nop | nop | nop | nop | nop | O |
113 | nop | nop | nop | nop | nop | nop | nop | nop | O |
114 | nop | nop | nop | nop | nop | nop | nop | nop | O |
115 | nop | nop | nop | nop | nop | nop | nop | nop | O |
116 | nop | nop | nop | nop | nop | nop | nop | nop | O |
117 | nop | nop | nop | nop | nop | nop | nop | nop | O |
118 | nop | nop | nop | nop | nop | nop | nop | nop | O |
119 | nop | nop | nop | nop | nop | nop | nop | nop | O |
120 | nop | nop | nop | nop | nop | nop | nop | nop | O |
121 | nop | nop | nop | nop | nop | nop | nop | nop | O |
122 | nop | nop | nop | nop | nop | nop | nop | nop | O |
123 | nop | nop | nop | nop | nop | nop | nop | nop | O |
124 | nop | nop | nop | nop | nop | nop | nop | nop | O |
125 | nop | nop | nop | nop | nop | nop | nop | nop | O |
126 | nop | nop | nop | nop | nop | nop | nop | nop | O |
127 | nop | nop | nop | nop | nop | nop | nop | nop | O |
128 | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | rctrl | O |
129 | ralt | ralt | ralt | ralt | ralt | ralt | ralt | ralt | O |
130 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | fkey60 | O |
131 | del | del | del | del | del | del | del | del | 0 |
132 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | fkey49 | O |
133 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | fkey57 | O |
134 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | fkey51 | O |
135 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | fkey59 | O |
136 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | fkey53 | O |
137 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | fkey55 | O |
138 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | fkey50 | O |
139 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | fkey58 | O |
140 | '/' | nop | nop | nop | '/' | nop | nop | nop | O |
141 | cr | cr | nl | nl | cr | cr | nl | nl | O |
В следующей таблице перечисляются "значения" специальных ключевых слов в файле /usr/lib/keyboard/keys (и в предыдущей таблице). mapkey(ADM) помещает "значение" ключевого слова в буфер управления вводом/выводом во время назначения клавиш. Эти ключевые слова используются только в файле скан-кодов /usr/lib/keyboard/keys для упрощения его чтения.
Название | Значение | Описание |
---|---|---|
nop | 0 | Действия нет - "пустое" нажатие клавиши |
lshift | 2 | Левая клавиша shift |
rshift | 3 | Правая клавиша shift |
clock | 4 | фиксация Capslock |
nclock | 5 | фиксация Numlock |
slock | 6 | фиксация Scroll lock |
alt | 7 | Клавиша Alt |
btab | 8 | Ключ обратной табуляции - генерирует фиксированную последовательность (esc [ Z) |
ctrl | 9 | Клавиша Ctrl |
nscr | 10 | Переключение на следующий экран |
scr1 | 11 | Переключение на экран #1 |
... | ||
scr16 | 26 | Переключение на экран #16 |
fkey1 | 27 | Функциональная клавиша #1 |
... | ||
fkey96 | 122 | Функциональная клавиша #96 |
rctl | 128* | Правая клавиша Ctrl |
ralt | 129* | Правая клавиша Alt |
* Только в режиме AT |
В следующей таблице перечисляются названия ключевых слов и их десятичные значения, которые могут взаимозаменяться в файле mapkey. Эти названия используются вместо соответствующих численных констант для облегчения чтения таблицы скан-кодов. Но в буфер управления вводом/выводом помещаются только десятичные значения. Они берутся из ascci(5).
Название | Значение | Название | Значение |
---|---|---|---|
nul | 0 | dc1 | 17 |
soh | 1 | dc2 | 18 |
stx | 2 | dc3 | 19 |
etx | 3 | dc4 | 20 |
eot | 4 | nak | 21 |
enq | 5 | syn | 22 |
ack | 6 | etb | 23 |
bel | 7 | can | 24 |
bs | 8 | em | 25 |
ht | 9 | sub | 26 |
nl | 10 | esc | 27 |
vt | 11 | fs | 28 |
np | 12 | gs | 29 |
cr | 13 | rs | 30 |
so | 14 | ns | 31 |
si | 15 | del | 127 |
dle | 16 |
Назначение клавиш клавиатуры
Установление соответствия клавиш клавиатуры является составной
частью эмуляции терминала. Эта процедура выполняется только для
клавиатуры компьютера, но не для удаленных терминалов. Для
изменения таблицы соответствий клавиш используйте утилиту mapkey.
Чтобы изменить эту таблицу для отдельных каналов (экранов в
многоэкранном режиме) используйте программу mapchan(5).
Установка соответствий клавиш клавиатуры может быть также выполнена с помощью ioctl. Синтаксис - тот же, что и для соответствий функциональных клавиш в предыдущем разделе.
При установке соответствий клавиш клавиатуры значение cmd=GIO_KEYMAP высвечивает текущую таблицу соответствий, а cmd=PIO_KEYMAP помещает готовый буфер на место.
Назначение функциональных клавиш
Для назначения функциональных клавиш используйте утилиту mapstr
(см. mapkey(8)). mapstr модифицирует таблицу соответствий
функциональных клавиш, в которой эти клавиши определяются.
Таблица соответствий функциональных клавиш представляет собой массив из 512 байтов (typedef strmap_t - тип структуры), содержащий строки, заканчивающиеся нулем и переопределяющие функциональные клавиши. Первая строка приписывается первой функциональной клавише, вторая - второй и т.д.
Не существует ограничения на длину строки, кроме предела самой таблицы, 512 байтов, включая нули. Строки обнуляются введением дополнительных нулевых символов.
Далее приведен список значений функциональных клавиш, устанавливаемых по умолчанию:
Значения функциональных клавиш по умолчанию | ||||
---|---|---|---|---|
Клавиша # | Функция | Shift Функция | Ctrl Функция | Ctrl Shift Функция |
1 | ESC[M | ESC[Y | ESC[k | ESC[w |
2 | ESC[N | ESC[Z | ESC[l | ESC[x |
3 | ESC[O | ESC[a | ESC[m | ESC[y |
4 | ESC[P | ESC[b | ESC[n | ESC[z |
5 | ESC[Q | ESC[c | ESC[o | ESC[@ |
6 | ESC[R | ESC[d | ESC[p | ESC[[ |
7 | ESC[S | ESC[e | ESC[q | ESC[\ |
8 | ESC[T | ESC[f | ESC[r | ESC[] |
9 | ESC[U | ESC[g | ESC[s | ESC[^ |
10 | ESC[V | ESC[h | ESC[t | ESC[_ |
11 | ESC[W | ESC[i | ESC[u | ESC[' |
12 | ESC[X | ESC[j | ESC[v | ESC[{ |
Home | ESC[H | End | ESC[F |
Up arrow | ESC[A | Down arrow | ESC[B |
Page up | ESC[I | Page down | ESC[G |
Left arrow | ESC[D | 5 | ESC[E |
Right arrow | ESC[C | Insert | ESC[L |
Вы можете назначать функциональные клавиши с помощью ioctl(2). Синтаксис имеет вид:
#include <sys/keyboard.h> ioctl(fd,cmd,buf) int fd,cmd; char *buf; ...
При установке соответствий клавиш клавиатуры значение cmd=GIO_KEYMAP высвечивает текущую таблицу соответствий, а cmd=PIO_KEYMAP устанавливает новую таблицу на место.
ФАЙЛЫ
/usr/lib/keyboard/keys /usr/lib/keyboard/strings
СМ. ТАКЖЕ
mapchan(3), mapchan(5), mapkey(8), multiscreen(5),
screen(HW), setkey(1), stty(1), kbmode(8), configure(8)