Таблица 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 блокируется. |
Сообщение консоли того, что она должна отображать — далеко не все; вы также обязаны распознавать последовательности нажатия клавиш и знать, к каким клавишам они привязаны. Некоторые из этих последовательностей определены в базе данных terminfo
, некоторые — нет. Кроме этого, клавиатура является модальной для увеличения разнообразия возможностей. В режиме приложения клавиши курсора порождают другие коды. Как показано в табл. 21.9, к ним добавляется префикс ^[О
вместо ^[[
. Это необходимо для поддержки унаследованных приложений, в которых предполагается, что они обращаются к терминалам DEC.
Последовательности нажатия клавиш описаны в табл. 21.11. Обратите внимание на то, что в нумерации функциональных клавиш имеются пропуски. Это спланировано для того, чтобы пользователи клавиатур, у которых нет клавиш и , не были ущемлены.
Таблица 21.11. Кодирование функциональных клавиш
Последовательности нажатия клавиш |
Клавиша (клавиши) |
^[[[А |
|
^[[[В |
|
^[[[С |
|
^[[[D |
|
^[[[Е |
|
^[[17~ |
|
^[[18~ |
|
^[[19~ |
|
^[[20~ |
|
^[[21~ |
|
^[[23~ |
, , |
^[[24~ |
, , |
^[[25~ |
|
^[[26~ |
|
^[[28~ |
|
^[[29~ |
|
^[[31~ |
|
^[[32~ |
|
^[[33~ |
|
^[[34~ |
|
^[[А |
<���Стрелка вверх> |
^[[D |
<���Стрелка влево> |
^[[В |
<���Стрелка вниз> |
^[[С |
<���Стрелка вправо> |
^[[1~ |
|
^[[2~ |
|
^[[3~ |
|
^[[4~ |
|
^[[5~ |
|
^[[6~ |
|
21.4. Прямой вывод на экран
В некоторых случаях наличие одной только способности выводить символы на экран не является достаточным. Частично это связано с невозможностью определить текущее состояние экрана. В системе Unix принята стандартная практика — состояние экрана игнорируется. Если нужно, вы можете задать настройки экрана, при появлении необходимости внести в них изменения, после чего полностью перерисовывать экран всякий раз, когда этого требует пользователь (как правило, нажатием комбинации ^L
). Можно планировать и другие применения.
В частности, для работы программ и функций, предназначенных для фиксирования и восстановления экрана, требуется доступ к текущему содержимому экрана. Система Linux предоставляет такой доступ через два интерфейса. Один из них предлагает только текстовое содержимое экрана, второй содержит атрибуты (цвет и так далее).
Простейший текстовый механизм носит название vcs
, что, вероятно, означает virtual console screen(экран виртуальной консоли) [155] Эта тема логически относится к главе 20, поскольку она имеет отношение к виртуальным консолям. Однако практический смысл вынуждает поместить этот раздел в данную главу — поскольку, как упоминалось во введении, настоящую книгу можно читать и выборочно.
. Чтение устройства /dev/vcs0
дает содержимое текущей виртуальной консоли, как оно выглядит на момент чтения. Если экран в настоящий момент прокручен (по умолчанию для прокрутки экрана назначаются клавиатурные последовательности и ), устройство /dev/vcs0
содержит прокрученное содержимое, видимое на экране. Остальные устройства vcs
, /dev/vcs n
, представляют текущее состояние виртуальной консоли n
и обычно доступны через /dev/tty n
.
Читать дальше