ENGLISH | KOI | WIN | ALT | ISO
Мои программы

Программа vidcontrol

Программа vidcontrol служит для управления параметрами syscons, которые относятся к отображению на дисплее выводимой информации.

Полное ее описание можно посмотреть в соответствующем man'уале (man vidcontrol), а "краткую сводку" команд вы получите, если запустите ее без каких-либо аргументов.

Я только опишу ее основные функции.

Установка "режима отображения".

Все поддерживаемые режимы отображения имеют свои условные названия, типа VGA_80x25, VGA_80x30 и т.д. (как вы догадываетесь, первая цифра - количество знаков в строке, вторая - количество строк). Полный список их есть в "краткой сводке".

Для смены режима надо просто выполнить команду

vidcontrol "название режима"

например

vidcontrol VGA_80x30

Загрузка шрифтов.

Для загрузки шрифтов используется ключ -f (от слова font). Поскольку, видеокарта может использовать три разных типа шрифтов (необходимых для разных "режимов отображения"), то ключ -f требует два аргумента

vidcontrol -f "тип шрифта" "имя файла со шрифтом"

Тип шрифта может быть 8x8, 8x14 и 8x16.
Файл со шрифтом может быть просто двоичным файлом, или содержать в себе те же данные но в формате uuencode. Если вы не укажете полный путь для имени файла, а просто короткое имя (напрмер - myfont), то vidcontrol будет искать

  • файл myfont в текущей директории
  • файл myfont.fnt в текущей директории
  • файл myfont в директории /usr/share/syscons/fonts
  • файл myfont.fnt в директории /usr/share/syscons/fonts
естественно, загрузит первый, который найдет.

Загрузка "таблицы перекодировки" (screenmap)

Для загрузки screenmap используется ключ -l (от слова load ?).

vidcontrol -l "имя файла с таблицей"

Как и для шрифтов, файл screenmap может быть просто двоичной таблицей (из 256 байт) или содержать в себе те же данные но в формате uuencode. Если вы не укажете полный путь для имени файла, а просто короткое имя (напрмер - mymap), то vidcontrol будет искать

  • файл mymap в текущей директории
  • файл mymap.scm в текущей директории
  • файл mymap в директории /usr/share/syscons/scrnmaps
  • файл mymap.scm в директории /usr/share/syscons/scrnmaps
естественно, загрузит первый, который найдет.

Если вам не нужна никакая перекодировка, используйте ключ -L

vidcontrol -L

по этой команде, vidcontrol сам сделает таблицу, которая ничего не меняет.

Изменение цветов

Во-первых, надо заметить, что syscons позволяет задавать две пары цветов (символ/фон) - для символов с "нормальными" атрибутами и для символов с атрибутом "реверс" (светлый фон, темный символ).

Для установки цветов "нормального" режима никаких ключей не нужно. Команда выглядит просто

vidcontrol "цвет символа" "цвет фона"

например

vidcontrol white black

Для цветов "реверсного" атрибута используется ключ -r (от слова reverse), например

vidcontrol -r black white

Вы можете также поменять цвет "бордюра" (полоски по краям экрана), с помощью ключа -b (border), например

vidcontrol -b gray

Список названий цветов можно посмотреть с помощью команды vidcontrol show

Однако, хочу заметить, что если вы используете какие-нибудь "коммандеры" (Deco, Midnight Commander и т.п.), то установки цветов, скорее всего работать не будут. Эти программы любят перекрашивать экран по своему усмотрению и при первой же "перерисовке" своих панелей "собьют" все ваши цвета.

Другие параметры.

С помощью vidcontrol можно поменять "тип курсора". Для этого служит ключ -c (cursor)

vidcontrol -c "тип курсора"

Тип курсора может быть только - normal, blink и destructive.
Замечу, что esc-последовательности (см Команды syscons) предоставляют несколько более гибкие возможности по изменению курсора.

Также vidcontrol поможет вам изменить "время простоя", по истечению которого syscons запустит screen saver. Для этого служит ключ -t (timeout)

vidcontrol -t "время в секундах"

Кстати, если поставить время - 0, то saver вообще не будет запускаться.

Напомню, что поменять тип screen saver'а программа vidcontrol, не может. Если вы хотите поменять screen saver, вам придется

  • сначала "выгрузить" текущий модуль screen saver'а командой modunload
  • Если вы не знаете - как называется модуль, который вам надо выгрузить, воспользуйтесь командой modstat.
  • загрузить новый модуль из тех, которые имеются в директории /lkm, командой modload.

Несколько общих замечаний.

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

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

Однако, если вы хотите поменять эти параметры для другого терминала или, например, написать "скрипт" который выполнит нужные установки для всех доступных "виртуальных терминалов", могу дать небольшую подсказку.

Установку "режима отображения" vidcontrol выполняет для того терминала, который является для него stdin ("входной поток"). А вот цвета меняются с помощью вывода соответствующих команд в stderr ("выходной поток для сообщений об ошибках").

В обычном случае и stdin'ом, и stderr'ом является текущий терминал. Но и тот и другой "поток" можно перенаправить.

Например, для изменения "режима отображения" на терминале /dev/ttyv0 (если вы находитесь в другом терминале), можно выполнить команду

vidcontrol VGA_80x30 < /dev/ttyv0  
а для изменения цветов на том же терминале
vidcontrol green red > /dev/ttyv0 2>&1  

Естественно, если вам надо поменять свойства для нескольких терминалов, придется выполнить соответствующую команду несколько раз, меняя номер терминала.