devc-con-hid

Менеджер для управления VGA консолью и клавиатурой (HID интерфейс)

Синтаксис:

devc-con-hid [опции менеджера][опции библиотеки io_char] &

Опции:

-d файл
Загрузить свой файл раскладки клавиатуры.
-G
Не сохранять/восстанавливать шрифт VGA.
-h
Не подключаться к серверу io-hid, читать данные из контроллера клавиатуры.
-k
Отключить клавиатуру (не устанавливается обработчик прерываний клавиатуры).
-L [P][N][C][S]
Установить начальное состояние клавиатуры и ее светодиодов (по умолчанию все выключены):
-N
Использовать клавишу Num Lock вместо Scroll Lock для переключения раскладки клавиатуры.
-n число_консолей
Число создаваемых логических (виртуальных) консолей. Значение по умолчанию – 4; максимальное значение – 9.
-P
Использовать стандартные для IBM PC параметры графического адаптера вместо получения их из переменных BIOS.
Опция -P поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2021
-Q
Не использовать режим ANSI.
-r скорость[,задержка]
Указать период повторения кода клавиш клавиатуры (в Герцах) и (дополнительно) задержку повторения клавиатуры (в миллисекундах). Значения по умолчанию – 30 Гц и 500 мс.

Период повторения кода клавиатуры соответствует числу повторений кода нажатой клавиши за одну секунду. В совместимых с PC/AT системах это значение варьируется в диапазоне от 2 до 30 символов в секунду. Если указана опция -r 0, то драйвер не устанавливает период повторения кода клавиатуры.

Задержка клавиатуры определяется как интервал времени от момента первого нажатия клавиши до момента выдачи первого повторяемого кода клавиши. В совместимых с PC/AT системах задержка клавиатуры может варьироваться в диапазоне от 250 до 1000 мс.
-X
Отключить сочетание клавиш Ctrl - Shift для смены раскладки клавиатуры.

Опции библиотеки io_char:

-b число
Скорость передачи в бодах (по умолчанию – 57600).
-C размер
Указать размер канонического буфера в байтах (значение по умолчанию – 256).
-E
Выполнить запуск в режиме необработанных данных (raw mode).
-e
Выполнить запуск в редактируемом режиме (по умолчанию).
-F
Деактивировать аппаратное управление обменом (Hardware flow control) данным (по умолчанию аппаратное управление обменом данными активировано). В редактируемом режиме аппаратное управление обменом данными не поддерживается.
-f
Активировать аппаратное управление обменом данными (по умолчанию). В редактируемом режиме аппаратное управление обменом данными не поддерживается.
-I размер
Указать размер входного буфера в байтах (значение по умолчанию – 2048).
-O размер
Указать размер выходного буфера в байтах (значение по умолчанию – 2048).
-o опция[,опция...]
Дополнительные опции, разделённые запятыми.
-S|s
Деактивировать/активировать программное управление обменом данными. Состояние по умолчанию зависит от режима: в raw-режиме (-E, режим по умолчанию) программное управление деактивировано; в редактируемом режиме (-e) программное управление активировано. Имеет значение порядок, в котором указываются опции -E или -e и -S или -s:
Опции Режим Программное управление обменом данными
-e Редактируемый режим Активировано
-S -e Редактируемый режим Активировано
-e -S Редактируемый режим Деактивировано
-E Режим необработанных данных (raw mode) Деактивировано
-s -E Режим необработанных данных (raw mode) Деактивировано
-E -s Режим необработанных данных (raw mode) Активировано
-v[v]...
Вывести расширенную информацию. Чем больше символов v, тем более подробная информация выводится.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

x86

Описание:


Caution: Для запуска этого драйвера необходимо войти в систему под учетной записью root.

Менеджер devc-con-hid реализует интерфейс к VGA консоли и клавиатуре. Обычно он запускается в одном из системных стартовых сценариев (см. diskboot).


Note: Для последовательных портов используется соответствующий менеджер devc-ser*.

После запуска менеджер devc-con создает устройства (/dev/con1, /dev/con2 и т.д.; максимальное число логических консолей определяется опцией -n) и управляет ими. Менеджер devc-con-hid аналогичен менеджеру devc-con, однако работает через io-hid и поддерживает интерфейсы PS2, USB, и другие устройства с человеко-машинным интерфейсом. Если выполняется чтение из устройства /dev/console, эти менеджеры возвращают символы, введенные на клавиатуре. Если выполняется вывод в устройство /dev/console, эти менеджеры выводят информацию на экран.


Note: Если в приложении используется консоль /dev/console, следует привязать ее к одному из устройств (/dev/con1, /dev/con2, ...) путем добавления следующей строки в файл построения образа, используемый в команде mkifs:

[type=link] /dev/console = /dev/con1


Менеджер devc-con-hid эмулируют ANSI-терминал 80х25 символов.

Управление с клавиатуры

С помощью клавиатуры можно переключаться между виртуальными консолями. В каждой виртуальной консоли могут быть запущены разные приложения, использующие весь экран. Клавиатура подключается к виртуальной консоли, отображаемой в данный момент. От одной виртуальной консоли к другой (и, следовательно, от одного приложения к другому) можно переключаться с помощью следующих комбинаций клавиш:

Направление переключения Сочетание клавиш
К следующей активной консоли Ctrl - Alt - Enter или Ctrl - Alt - + (плюс)
К предыдущей активной консоли Ctrl - Alt - - (минус)


Note: В комбинациях клавиш для переключения консолей используются клавиши + (плюс) и - (минус), расположенные на дополнительной цифровой клавиатуре.

Кроме того, для быстрого перехода к определенной консоли можно использовать комбинацию клавиш Ctrl - Alt - n, где цифра n является номером виртуальной консоли. Пример:

Направление переключения Сочетание клавиш
/dev/con1 Ctrl - Alt - 1
/dev/con2 (если доступно) Ctrl - Alt - 2
... ...
/dev/con10 (если доступно) Ctrl - Alt - 0

Наборы символов

С помощью менеджера devc-con-hid можно выбирать используемые наборы символов из "палитры" наборов, каждая из которых программируется независимо и содержит один из нескольких встроенных наборов символов.

Используемый диапазон символов разделен на четыре группы, содержащие символы с шестнадцатеричными кодами от 0x00 до 0xff. Две группы представляют собой фиксированные наборы управляющих символов, а другие две группы могут быть настроены и содержать следующие варианты наборов символов:

Шестнадцатеричное значение Имя Варианты выбора
0x000x1f С0 (Control Zero) Не изменяется
0x200x7f GL (Graphics Left) G0, G1, G2, G3
0x800x9f C1 (Control One) Не изменяется
0xa00xff GR (Graphics Right) G1, G2, G3

В используемых наборах символов GL и GR можно выбрать несколько наборов символов из G0, G1, G2 и G3.

Набор Значение Используемый код
GL G0 {LS0} = {SI} (0f)
GL G1 {LS1} = {SO} (0e)
GL G2 {LS2} = {ESC n} (1b 6e) или {SS2} (8e)
GL G3 {LS3} = {ESC o} (1b 6f) или {SS3} (8f)
GR G1 {LS1R} = {ESC ~} (1b 7e)
GR G2 {LS1R} = {ESC }} (1b 7d)
GR G3 {LS2R} = {ESC |} (1b 7c)

Обозначение кода {LS*} расшифровывается как "Locking Shift" (смена регистра с фиксацией). Выбранный таким способом набор символов продолжает применяться до передачи другого кода {LS*}.

Обозначение кода {SS*} расшифровывается как "Single Shift" (однократная смена регистра); действие этого кода распространяется только на следующий символ. После следующего символа снова начинает применяться предыдущая установка действующего набора символов. Только два кода {SS*}, а именно {SS2} и {SS3}, позволяют отображать, соответственно, группы G2 в GL и G3 в GL.

Для каждого набора символов (от G0 до G3) можно установить любой из доступных встроенных шрифтов. Это выполняется с помощью следующего управляющего кода:

ESC g s

где:

g Устанавливаемый набор
( G0
) G1
* G2
+ G3

и

s Указываемая кодировка
B ASCII
0 Специальный набор символов (DEC Graphic)
< Дополнительный набор символов ISO-Latin1
U Набор символов PC

Наборы символов по умолчанию

Используются следующие наборы символов:

Используемый набор символов По умолчанию
GR G2
GL G0

Коды наборов символов

Набор символов По умолчанию
G0 Набор символов ASCII
G1 Специальный набор символов (DEC Graphic)
G2 Дополнительный набор символов (ISO-Latin 1)
G3 Специальный набор символов (DEC Graphic)

Пример набора символов:

Установка для используемого набора символов GL (0x200x7f) набора символов PC до G1, ввод нескольких символов, затем переключение GL обратно в G0:

{ESC )U} 1e 29 55 (Установка G1 набором символов PC)
{SO} 0e (Установка для GL набора G1)
.
. (Ввод символов из набора графических символов PC)
.
{SI} 0f (Установка для GL набора G0)

chr_left.gif
Рисунок 1. Набор символов PC 0x00–0x7f

chr_rite.gif
Рисунок 2. Набор символов PC 0x80–0xff

Управляющие коды экрана ANSI


Note: В таблицах используются следующие обозначения и аббревиатуры:
(220+)
Функция VT220 уровня 2
(NA)
Not ANSI standard (не относится к стандарту ANSI)
(NI)
Not implemented (не реализовано)
(NFI)
Not fully implemented (реализовано не полностью)

Управляющие коды C0

В следующей таблице приведены управляющие коды C0.

ASCII ANSI Mnemonic Шестнадцатеричный код Действие
{NUL} 00 Null
{BEL} 07 Bell
{BS} 08 Back Space (VT100 defaults to no wrap from left margin)
{HT} 09 Horizontal Tab (VT100 defaults to no autowrap)
{LF} 0A Linefeed or Newline
{VT} 0B Same as LF
{FF} 0C Clears Screen (QNX Extension)
{CR} 0D Move cursor to left margin
{SO} {LS1} 0E GL is set to G1
{SI} {LS0} 0F GL is set to G0 (default)
{XON} {DC1} 11 XON
{XOFF} {DC0} 13 XOFF
{CAN} 18 Cancels ESC sequence
{SUB} 1A Cancels ESC sequence and prints ?
{ESC} 1B Start of ESC sequence
{DEL} 7F Ignored on output

Управляющие ESC-последовательности

В следующей таблице приведены управляющие ESC-последовательности.

Строка Шестнадцатеричный код Действие
{ESC 7} 1B 37 Сохранение курсора
{ESC 8} 1B 38 Восстановление курсора
{ESC =} 1B 3D Установка режима малой клавиатуры приложения
{ESC >} 1B 3E Установка режима цифровой клавиатуры (по умолчанию)
{ESC D} 1B 44 7-разрядные коды для {IND} (84)
{ESC E} 1B 45 7-разрядные коды для {NEL} (85)
{ESC H} 1B 48 7-разрядные коды для {HTS} (88)
{ESC M} 1B 4D 7-разрядные коды для {RI} (8D)
{ESC N} 1B 4E 7-разрядные коды для {SS2} (8E)
{ESC O} 1B 4F 7-разрядные коды для {SS3} (8F)
{ESC P} 1B 50 7-разрядные коды для {DCS} (90)
{ESC [} 1B 5B 7-разрядные коды для {CSI} (9B)
{ESC \} 1B 5C 7-разрядные коды для {ST} (9C)
{ESC ]} 1B 5D 7-разрядные коды для {OSC} (9D)
{ESC ^} 1B 5E 7-разрядные коды для {PM} (9E)
{ESC _} 1B 5F 7-разрядные коды для {APC} (9F)
{ESC Z} 1B 5A Идентификация терминала
{ESC c} 1B 63 Аппаратный сброс (очистка экрана) (для программного сброса используется {CSI ! P})
{ESC n} 1B 6E (LS2) Для GL устанавливается G2 (220+)
{ESC o} 1B 6F (LS3) Для GL устанавливается G3 (220+)
{ESC |} 1B 7C (LS3R) Для GR устанавливается G3 (220+)
{ESC }} 1B 7D (LS2R) Для GR устанавливается G2 (220+) (по умолчанию)
{ESC ~} 1B 7E (LS1R) Для GR устанавливается G1
{ESC sp F} 1B 20 46 Клавиатура генерирует 7-разрядные коды C1 (включая CSI) (по умолчанию)
{ESC sp G} 1B 20 47 Клавиатура генерирует 8-разрядные коды C1 (включая CSI) (220+)
{ESC ( 0} 1B 28 30 Для G0 устанавливается специальный набор символов
{ESC ( <} 1B 28 3C Для G0 устанавливается дополнительный набор символов
{ESC ( A} 1B 28 41 Для G0 устанавливается набор символов U.K. (не реализовано; то же, что и ASCII)
{ESC ( B} 1B 28 42 Для G0 устанавливается набор символов ASCII (по умолчанию)
{ESC ( U} 1B 28 55 Для G0 устанавливается набор символов PCterm graphics
{ESC ) 0} 1B 29 30 Для G1 устанавливается специальный набор символов (по умолчанию)
{ESC ) <} 1B 29 3C Для G1 устанавливается дополнительный набор символов
{ESC ) A} 1B 29 41 Для G1 устанавливается набор символов U.K. (не реализовано, то же, что и ASCII)
{ESC ) B} 1B 29 42 Для G1 устанавливается набор символов ASCII
{ESC ) U} 1B 29 55 Для G1 устанавливается набор символов PCterm graphics
{ESC * 0} 1B 2A 30 Для G2 устанавливается специальный набор символов (220+)
{ESC * <} 1B 2A 3C Для G2 устанавливается дополнительный набор символов (220+) (по умолчанию)
{ESC * B} 1B 2A 42 Для G2 устанавливается набор символов ASCII (220+)
{ESC * U} 1B 2A 55 Для G2 устанавливается набор символов PCterm graphics
{ESC + 0} 1B 2B 30 Для G3 устанавливается специальный набор символов (220+) (поумолчанию)
{ESC + <} 1B 2B 3C Для G3 устанавливается дополнительный набор символов (220+)
{ESC + B} 1B 2B 42 Для G3 устанавливается набор символов ASCII (220+)
{ESC + U} 1B 2B 55 Для G3 устанавливается набор символов PCterm graphics

Управляющие символы C1 (220+)


Note: Любой 8-разрядный код группы C1 можно представить как 7-разрядный код ESC, за которым следует 8-разрядный код с вычтенным шестнадцатеричным значением 0x40. Например, код CSI (Control Sequence Introducer; индикатор управляющей последовательности) в 8-разрядном режиме можно представить как 0x9b, в то время как в 7-разрядном режиме этот код должен быть представлен как ESC [ (0x1b 0x5b).

В следующей таблице приведены коды управляющих символов C1.

ASCII Шестнадцатеричный код Действие
{IND} 84 Перемещение курсора вниз, с прокруткой
{NEL} 85 Перемещение к левой границе в следующей строке, с прокруткой
{HTS} 88 Установка горизонтальной табуляции
{RI} 8D Перемещение курсора вверх, с прокруткой
{SS2} 8E Для GL устанавливается G2 (применяется к одному символу)
{SS3} 8F Для GL устанавливается G3 (применяется к одному символу)
{DCS} 90 Управляющая строка Start of Device
{CSI} 9B Индикатор управляющей последовательности
{ST} 9C Управляющая строка End of Device
{OSC} 9D Команда операционной системы
{PM} 9E Частное сообщение
{APC} 9F Команда прикладной программы

Управляющие последовательности группы CSI


Note: В 7-разрядном режиме для CSI используется представление ESC [. В 8-разрядном режиме для CSI используется шестнадцатеричный код 0x9B. Для представления переменной n используется спецификация ANSI. Например, печать двух пробелов:

printf( "%c%c", 0x9b, 0x32 );


В следующей таблице приведены коды управляющих последовательностей группы CSI.

ASCII Шестнадцатеричный код Действие
{CSI [n] @} 9B [n] 40 Вставка n пробелов в позиции курсора (по умолчанию – 1 пробел)
{CSI [n] A} 9B [n] 41 Перемещение курсора вверх на n строк, без переноса текста (по умолчанию – на 1 строку)
{CSI [n] B} 9B [n] 42 Перемещение курсора вниз на n строк, без переноса текста (по умолчанию – на 1 строку)
{CSI [n] C} 9B [n] 43 Перемещение курсора вправо на n столбцов, без переноса текста (по умолчанию – на 1 столбец)
{CSI [n] D} 9B [n] 44 Перемещение курсора влево на n столбцов, без переноса текста (по умолчанию – на 1 столбец)
{CSI [n] F} 9B [n] 46 Перемещение курсора вверх на n строк, установка в первый столбец (по умолчанию – на 1 строку)
{CSI [n] G} 9B [n] 47 Перемещение курсора в столбец n (по умолчанию – в столбец 1)
{CSI [r[;c]] H} 9B [r [3B c]] 48 Позиция курсора (по умолчанию – строка 1; столбец 1)
{CSI [n] J} 9B [n] 4A Стирание: 0 – от курсора до конца экрана, 1 – от начала экрана до курсора, 2 – весь экран (по умолчанию – 0)
{CSI [n] K} 9B [n] 4B Стирание: 0 – от курсора до конца строки, 1 – от начала строки до курсора, 2 – всей строки (по умолчанию – 0)
{CSI [n] L} 9B [n] 4C Вставка n строк (по умолчанию – 1 строка)
{CSI [n] M} 9B [n] 4D Удаление n строк (по умолчанию – 1 строка)
{CSI [n] P} 9B [n] 50 Удаление n символов (по умолчанию – 1 символ)
{CSI [n] S} 9B [n] 53 Прокрутка вперед на n строк (по умолчанию – на 1 строку)
{CSI [n] T} 9B [n] 54 Прокрутка назад на n строк (по умолчанию – на 1 строку)
{CSI [n] X} 9B [n] 58 Стирание n - 1 символов от позиции курсора (по умолчанию – 1, то есть 0 символов)
{CSI Z} (9B 5A) Обратная табуляция
{c CSI [n] b} c 9B [n] 62 Повторение символа c из GR или GL n раз, где c – последний отображаемый символ; значение n по умолчанию – 1
{CSI 0 c} (9B 30 63) Запрос атрибутов первичного устройства
{CSI [n] d} 9B [n] 64 Перемещение курсора на строку n (по умолчанию – на строку 1)
{CSI [n] g} 9B [n] 67 Очистка позиций табуляции: 0 – под курсором, 2 – все (по умолчанию – 0)
{CSI [n[;n]...] h} 9B [n[3B n]...] 68 Режим стандартных установок (см. таблицу режимов) (по умолчанию – отсутствует)
{CSI ? [n[;n]...] h} 9B 3F [n[3B n]...] 68 Режим частных установок (см. таблицу режимов) (по умолчанию – отсутствует)
{CSI [n[;n]...] l} 9B [n[3B n]...] 6C Режим стандартного сброса (см. таблицу режимов) (по умолчанию – отсутствует)
{CSI ? [n[;n]...] l} 9B 3F [n[3B n]...] 6C Режим частного сброса (см. таблицу режимов) (по умолчанию – отсутствует)
{CSI [n[;n]...] m} 9B [n[3B n]...] 6D Выбор вида графической передачи (см. ниже) (по умолчанию – 0)
{CSI n n} 9B n 6E Статус устройства: 5 – статус, 6 – курсор/позиция
{CSI [r[;c]] r} 9B [r[3B c]] 72 Установка зоны прокрутки и начального положения курсора
{CSI r} 9B 72 Отмена зоны прокрутки и начального положения курсора
{CSI s} 9B 73 Сохранение курсора
{CSI u} 9B 75 Восстановление курсора
{CSI ! p} 9B 21 70 Программный сброс
{CSI [n[;n]] ]} 9B [n[3B n]...] 5D Установка по умолчанию: 1 – подчеркивание, 2 – половинная яркость, 8 – цветовой набор (по умолчанию – отсутствует)
{CSI = [f[;d]] B} 9B 3D [f[3B d]] 46 Установка частоты (Гц) и длительности (мс) звонка (по умолчанию – 100 Гц, 250 мс)
{CSI = [n] F} 9B 3D [n] 46 Установка и сохранение цвета фона
{CSI = [n] G} 9B 3D [n] 47 Установка и сохранение фонового цвета

Графическая передача

В следующей таблице приведены коды графической передачи.

Номер Значение
0 Отключение всех атрибутов (кроме наборов символов (10, 11, 12))
1 Полужирный
2 Половинная яркость (по умолчанию – голубой цвет (cyan) на цветном экране)
4 Подчеркивание (по умолчанию – красный цвет на цветном экране)
5 Мигание
7 Негативное изображение
9 Режим невидимости
10 Прекращение использования альтернативного набора символов (восстанавление GR и GL)
11 Переход в "нижний" набор символов PC (PC-Lower) (для GR и GL используется ASCII; для C0 и C1 используется PC_LO, за исключением ESC-последовательностей)
12 Переход в "верхний" набор символов PC (PC-Higher) (для GR, C1 и GL, C0 используется набор PC_HI, за исключением ESC-последовательностей)
21 Нормальная яркость (отмена полужирного выделения)
22 Нормальная яркость (отмена половинной яркости)
24 Отключение подчеркивания
25 Отключение мигания
27 Отключение негативного изображения
29 Режим видимости
30-37 Установка цвета фона (30 + номер_цвета, см. ниже)
39 Установка сохраненного цвета фона
40-47 Установка фонового цвета (40 + номер_цвета, см. ниже)
49 Установка сохраненного фонового цвета

Номера цветов

В следующей таблице приведены номера используемых цветов.

номер_цвета Описание
0 Черный
1 Красный
2 Зеленый
3 Коричневый
4 Синий
5 Фиолетовый
6 Голубой
7 Белый

Режимы

Используются следующие режимы:

Строка режима Описание
?1h Клавиши управления курсором = приложение
?1l Клавиши управления курсором = ANSI (по умолчанию)
?3h 132 столбца (не реализовано)
?3l 80 столбцов (по умолчанию)
?5h Экран с негативным изображением
?5l Экран без негативного изображения (по умолчанию)
?6h Исходный режим
?6l Абсолютный режим
?7h Автоматический перенос включен
?7l Автоматический перенос выключен (по умолчанию)
?25h Режим видимости курсора (по умолчанию)
?25l Режим невидимости курсора
?45h Режим обратного циклического переноса
?45l Без обратного циклического переноса
?66h Клавиатура = приложение
?66l Клавиатура = ANSI
?67h Клавиша Backspace генерирует код BS
?67l Клавиша Backspace генерирует код DEL

Отображение клавиатуры ЗОСРВ «Нейтрино» на клавиши ANSI

В следующей таблице приведены коды отображений клавиш ANSI.

Клавиша Обычное состояние С клавишей Shift С клавишей Ctrl С клавишей Alt
Enter CR CR CR CR
Tab TAB CSI Z CSI z
BS BS RUB RUB BS
ESC ESC ESC ESC ESC
F1 SS3 P SS3 p CSI 1~ CSI 17~
F2 SS3 Q SS3 q CSI 2~ CSI 18~
F3 SS3 R SS3 r CSI 3~ CSI 19~
F4 SS3 S SS3 s CSI 4~ CSI 20~
F5 SS3 T SS3 t CSI 5~ CSI 21~
F6 SS3 U SS3 u CSI 6~ CSI 22~
F7 SS3 V SS3 v CSI 7~ CSI 23~
F8 SS3 W SS3 w CSI 8~ CSI 24~
F9 SS3 X SS3 x CSI 9~ CSI 25~
F10 SS3 Y SS3 y CSI 10~ CSI 26~
F11 SS3 Z SS3 z CSI 11~ CSI 27~
F12 SS3 A SS3 a CSI 12~ CSI 28~
Home CSI H CSI h CSI H
CSI A CSI a CSI A
PgUp CSI V CSI v CSI V
Минус CSI S CSI s CSI S
CSI D CSI d CSI D
kpd 5 CSI G CSI g CSI G
CSI C CSI c CSI C
Плюс CSI T CSI t CSI T
End CSI Y CSI y CSI Y
CSI B CSI b CSI B
PgDn CSI U CSI u CSI U
Ins CSI @ CSI 0x60 CSI @
Del CSI P CSI p CSI P
Prt NOP NOP NOP NOP
SysRq NOP NOP NOP NOP
a a A SOH SS2 a
b b B STX SS2 b
c c C ETX SS2 c
d d D EOT SS2 d
e e E ENQ SS2 e
f f F ACK SS2 f
g g G BEL SS2 g
h h H BS SS2 h
i i I HT SS2 i
j j J LF SS2 j
k k K VT SS2 k
l l L FF SS2 l
m m M CR SS2 m
n n N SO SS2 n
o o O SI SS2 o
p p P DLE SS2 p
q q Q DC1 SS2 q
r r R DC2 SS2 r
s s S DC3 SS2 s
t t T DC4 SS2 t
u u U NAK SS2 u
v v V SYN SS2 v
w w W ETB SS2 w
x x X CAN SS2 x
y y Y EM SS2 y
z z Z SUB SS2 z

Международные раскладки клавиатуры

Менеджер devc-con-hid поддерживают международные раскладки клавиатуры. По умолчанию они используют исходную раскладку US-101.

Если обнаружен файл /etc/kbd.tbl (при запуске devc-con-hid), то он загружается и используется вместо исходного файла. Этот файл можно перезагрузить во время работы системы с помощью комбинации клавиш Ctrl - Alt - Space. (При использовании VMWare может потребоваться двойное нажатие.)


Note: Как и все другие комбинации клавиш, эта комбинацию можно изменить! Однако переопределить составную последовательность невозможно.

Предоставляются следующие файлы раскладок (в каталоге ${KPDA_TARGET}/etc/):

kbd.tbl.de
раскладка DE-102 (немецкая)
kbd.tbl.us
раскладка US-101 (по умолчанию)

Файл раскладки клавиатуры имеет очень простую и жесткую структуру. Он должен содержать ровно 5 х 96 или ровно 6 х 96 шестнадцатеричных записей, разделенных пробельными символами, переводами строк или запятыми:

Длина каждой записи не должна превышать четырех шестнадцатеричных цифр (16 разрядов). Началу комментария соответствует знак номера (#), комментарий продолжается до конца строки.

Каждый ряд, состоящий из 96 записей, определяет семантику максимум 96 различных клавиш при определенных условиях:

Записи Определение семантики для клавиш
000–095 Без модификаторов
096–191 При нажатой клавише Shift
192–287 При нажатой клавише Ctrl
288–383 При нажатой клавише Alt
384–479 При нажатых клавишах Ctrl - Alt
480–575 При нажатой клавише AltGr (правой клавише Alt)

96 записей в ряду индексируются кодами сканирования клавиатуры. Для создания собственного определения клавиатуры необходимо знать эти коды сканирования. Ниже приведено отображение "коды сканирования/символы" для клавиатуры US-101.

0 1 2 3 4 5 6 7 8 9 A B C D E F
, Esc, '1', '2', '3', '4', '5', '6' '7', '8', '9', '0', '-', '=', Rub, Tab ; 00
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i' 'o', 'p', '[', ']', Ent, Ctl, 'a', 's' ; 10
'd', 'f', 'g', 'h', 'j', 'k', 'l', ';' ''', '', Shf, '\', 'z', 'x', 'c', 'v' ; 20
'b', 'n', 'm', ',', '.', '/', Rsh, '*' Alt, SP, Cap, F1, F2, F3, F4, F5 ; 30
F6, F7, F8, F9, F10, Num, Scr, Hom Up, PgU, K-, Lft, K5, Rig, K+, End ; 40
Dwn, PgD, Ins, Del, , , , F11 F12, , , , , , , ; 50

Каждому скэн-коду соответствуют два байта данных из записей. Старший байт определяет флаги для клавиши (см. ниже), а в младшем байте обычно содержатся фактические данные, выдаваемые пользователю при нажатии клавиши. Для клавиш Shift, Lock и специальных клавиш в младшем байте содержится дополнительная зависящая от функции информация (см. ниже).

Старшие разряды записей:

Примеры:

Типичная командная строка запуска:

devc-con -n4

Файлы:

/dev/con1
/dev/con2
...
Устройства логических консолей.
/etc/kbd.tbl
Раскладка клавиатуры.

Ошибки:

При возникновении ошибки клавиатура в текстовом режиме не работает.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», Драйверы

Тематические ссылки:

mkkbd, devc-*, io-hid




Предыдущий раздел: Драйверы