KEYBOARD(HW)
KEYBOARD(HW)
НАЗВАНИЕ
keyboard - клавиатура персонального компьютера.
ОПИСАНИЕ
Клавиатура персонального компьютера используется для ввода данных, переключения экранов и направления некоторых управляющих сигналов компьютеру. Система UNIX выполняет эмуляцию экрана и клавиатуры терминала и при этом извлекает пользу из некоторых особенных клавиш и их комбинаций. Эти клавиши и их комбинации имеют специальные названия, которые уникальны в системе UNIX и могут соответствовать, а могут и не соответствовать меткам клавиш на вашей клавиатуре. Эти клавиши будут описаны позже.
Когда вы нажимаете клавишу, происходит одно из следующих событий:
- Вводится символ ASCII.
- Компьютеру посылается символьная строка.
- Запускается какая-либо функция.
- Меняется значение другой клавиши или клавиш.
Когда нажимается клавиша, клавиатура посылает компьютеру скан-код, который интерпретируется драйвером клавиатуры. Интерпретация кодов клавиш может быть изменена так, что клавиши могут начать функционировать по другому, отлично от их установок по умолчанию.
Различают три особенных события при нажатии клавиш:
- Переключение экранов.
- Генерация сигнала.
- Изменение значения предыдущего символа, символов или строки.
Переключение экранов (многоэкранный режим)
Для переключения на следующий экран нажмите 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. В этой таблице черточка (-) между названиями клавиш означает "удерживайте первую клавишу, нажимая на вторую".
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. |
F55 - '6'
F50 - '8'
F55 - '+'
F51 - '9'
F55 - '1'
F52 - '-'
F55 - '2'
F53 - '4'
F55 - '3'
F54 - '5'
F55 - '0'
Соответствия клавишам F61-F96 смотрите в файле /usr/lib/keyboard/strings. Эти функциональные ключи доступны не на всех клавиатурах, но вы можете поставить им в соответствие другие клавиши.
Назначение клавиш клавиатуры формируется с помощью структуры, определенной в файле /usr/include/sys/keyboard.h. Каждая клавиша может иметь десять состояний. Первые восемь таковы:
- Base
- Shift
- Ctrl
- Alt
- Ctrl-Shift
- Alt-Shift
- Alt-Ctrl
- Alt-Ctrl-Shift
Два дополнительных состояния обозначаются двумя специальными байтами. Первый является байтом "специального состояния", биты которого указывают, является ли данный ключ "специальным" в одном или нескольких из первых восьми состояний.
Второй может быть одним из четырех символов (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 указывает на воздействие со стороны Capslock
- N указывает на воздействие со стороны Numlock
- B указывает на воздействие со стороны Numlock и Capslock вместе
- O указывает на отсутствие этого воздействия
Клавиши типа C, N и B генерируют смещенное значение скан-кода в состоянии, когда эти служебные клавиши включены. Если при этом будет нажата клавиша Shift, то значение скан-кода будет переключено обратно.
Прочие колонки таблицы представляют значения, генерируемые при нажатии данной клавиши в комбинации с удерживаемыми клавишами CTRL, ALT и SHIFT.
Все эти значения, за исключением ключевых слов, представляют собой символы ASCII. Ключевые слова относятся к специальным функциональным клавишам.
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.
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 |
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 байтов, включая нули. Строки обнуляются введением дополнительных нулевых символов.
Далее приведен список значений функциональных клавиш, устанавливаемых по умолчанию:
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 |
#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)