Троан Эрик В.
Шрифт:
Таблица 21.6. Компоненты цветовой палитры
Число | Что определяет |
---|---|
1 | Элемент палитры, который нужно переопределить. |
2*16+3 | Значение красного компонента элемента палитры. |
4*16+5 | Значение зеленого компонента элемента палитры. |
6*16+7 | Значение синего компонента элемента палитры. |
Последовательности изображения символов, указанные командами
Таблица 21.7. Параметры изображения символов
par | Описание |
---|---|
0 | Стандартное изображение: средняя интенсивность, без подчеркивания, без негативного изображения, без мерцания, с обычной цветовой схемой (белое на черном, если не установлен другой способ при помощи последовательности сохранения setterm ^[[]8 ). |
1 | Интенсивность — насыщенная. |
2 | Интенсивность — матовая. |
4 | Включается подчеркивание. |
5 | Включается мерцание. |
7 | Включается негативное видеоизображение. |
10 | Выбирается исходный шрифт (ISO latin 1), при этом не отображаются управляющие символы, сбрасывает бит 8 в выводе. |
11 | Выбирается альтернативный шрифт (IBM Codepage 437), при этом управляющие символы отображаются как графические данные, сбрасывает бит 8 в выводе. |
12 | Выбирается альтернативный шрифт (IBM Codepage 437), при этом управляющие символы отображаются как графические данные, оставляет бит 8 в выводе. |
21 22 | Интенсивность — стандартная. |
24 | Отключается подчеркивание. |
25 | Отключается мерцание. |
27 | Отключается негативное видеоизображение. |
30-37 | Устанавливается цвет переднего плана par||30; см. табл. 21.5. |
38 | Включается подчеркивание и используется стандартный цвет текста. |
39 | Отключается подчеркивание и используется стандартный цвет текста. |
40-47 | Устанавливается цвет фона par||40; см. табл. 21.5. |
49 | Используется стандартный цвет фона. |
Некоторое отношение к последовательностям изображения символов имеют последовательности режимов. Существует два типа режимов: режимы ANSI и внутренние режимы DEC. Последовательность
Таблица 21.8. Режимы ANSI
par | Описание |
---|---|
3 | Отображаются управляющие символы. |
4 | Режим вставки. |
20 | Режим CRLF (при получении символа новой строки выполняется возврат каретки). |
Таблица 21.9. Внутренние режимы DEC
par | Описание |
---|---|
1 | Клавиши управления курсором работают как клавиши приложения; в режиме приложения к ним добавляется префикс ^[O вместо обычного ^[[ . |
3 | На данный момент не реализован; в будущем предназначен для переключения между режимами 80 и 132 колонки. |
5 | Весь экран переводится в режим негативного изображения. |
6 | Устанавливается режим начала отсчета DEC, при котором принимаются области прокрутки; перемещается в начало отсчета (текущей области прокрутки, если она задана). |
7 | Устанавливается режим автоматического перехода на новую строку (по умолчанию), при котором продолжается ввод текста с новой строки, когда курсор достигает конца текущей строки. Если данный режим выключен, то лишние символы печатаются поверх самого правого символа текущей строки. |
8 | Клавиатура переводится в режим повторения символов (включен по умолчанию). |
9 | Режим отчета мыши 1 (поддержка может предоставляться внешней программой). |
25 | Курсор становится видимым (включен по умолчанию). |
1000 | Режим отчета мыши 2 (поддержка может предоставляться внешней программой). |
Последовательности setterm представляют собой набор последовательностей CSI с управляющим символом
Таблица 21.10. Консольные последовательности setterm
par | Описание |
---|---|
1 | Устанавливает цвет для представления атрибута подчеркивания параметра par2. |
2 | Устанавливает цвет для представления атрибута тусклости параметра par2. |
8 | Текущие атрибуты setterm сохраняются как значения по умолчанию, тем самым они становятся стандартными атрибутами изображения символов. |
9 | Устанавливает интервал гашения экрана на par2 минуты, но не более чем на 60 минут. Если параметр par2 равен нулю, то гашение экрана блокируется. |
10 | Частота звонковой сигнализации консоли приравнивается к par2 Гц или к стандартному шагу, если параметр par2 не определен. |
11 | Длительность звукового сигнала консоли приравнивается к par2 миллисекундам, если параметр par2 указан, но не более чем 2000. Если par2 не задан, то восстанавливается стандартная длительность. |
12 | Если для консоли par2 выделена память, то консоль par2 становится активной (см. главу 20). |
13 | Восстанавливает экран после гашения. |
14 | Интервал выключения питания VESA приравнивается к par2 минутам, но не более чем 60 минут. Если параметр par2 равен нулю, то отключение питания VESA блокируется. |
Сообщение консоли того, что она должна отображать — далеко не все; вы также обязаны распознавать последовательности нажатия клавиш и знать, к каким клавишам они привязаны. Некоторые из этих последовательностей определены в базе данных
Последовательности нажатия клавиш описаны в табл. 21.11. Обратите внимание на то, что в нумерации функциональных клавиш имеются пропуски. Это спланировано для того, чтобы пользователи клавиатур, у которых нет клавиш <F11> и <F12>, не были ущемлены.
Таблица 21.11. Кодирование функциональных клавиш
Последовательности нажатия клавиш | Клавиша (клавиши) |
---|---|
^[[[А | <F1> |
^[[[В | <F2> |
^[[[С | <F3> |
^[[[D | <F4> |
^[[[Е | <F5> |
^[[17~ | <F6> |
^[[18~ | <F7> |
^[[19~ | <F8> |
^[[20~ | <F9> |
^[[21~ | <F10> |
^[[23~ | <F11>, <Shift+F1>, <Shift+F11> |
^[[24~ | <F12>, <Shift+F2>, <Shift+F11> |
^[[25~ | <Shift+F3> |
^[[26~ | <Shift+F4> |
^[[28~ | <Shift+F5> |
^[[29~ | <Shift+F6> |
^[[31~ | <Shift+F7> |
^[[32~ | <Shift+F8> |
^[[33~ | <Shift+F9> |
^[[34~ | <Shift+F10> |
^[[А | <Стрелка вверх> |
^[[D | <Стрелка влево> |
^[[В | <Стрелка вниз> |
^[[С | <Стрелка вправо> |
^[[1~ | <Home> |
^[[2~ | <Insert> |
^[[3~ | <Delete> |
^[[4~ | <End> |
^[[5~ | <Page Up> |
^[[6~ | <Page Down> |
21.4. Прямой вывод на экран
В некоторых случаях наличие одной только способности выводить символы на экран не является достаточным. Частично это связано с невозможностью определить текущее состояние экрана. В системе Unix принята стандартная практика — состояние экрана игнорируется. Если нужно, вы можете задать настройки экрана, при появлении необходимости внести в них изменения, после чего полностью перерисовывать экран всякий раз, когда этого требует пользователь (как правило, нажатием комбинации