![]() |
Библиотека Интернет Индустрии I2R.ru |
||
![]() ![]() |
Как украсить жизньПотом пришли другие времена, По мне так текстовая консоль Linux прекрасна сама по себе, в первозданном виде по умолчанию: белые или светло-серые буквы на радикально черном фоне строги, но элегантны. Единственное, что хочется обычно исправить - это шрифт. Почему-то по умолчанию в качестве консольного шрифта используется обычно что-то курьерообразное. Хотя, на мой взгляд, экранные шрифты с засечками - далеко не идеальное решение во всех случаях, и особенно - в случае растровых шрифтов. Гораздо лучше воспринимаются с дисплея шрифты семейства Sans Serife. Хотя иногда, для разнообразия, хочется чего-нибудь декоративного... Изменить гарнитуру консольного шрифта совсем нетрудно. Главное - было бы, на что менять, то есть следует иметь соответствующие шрифтовые файлы. Благо в новых отечественных дистрибутивах Linux, AltLinux и ASPLinux, имеется вдоволь наборов консольных шрифтов. Шрифты эти можно обнаружить в каталоге /lib/kbd/consolefonts (в ASPLinux) или /usr/lib/kbd/consolefonts (в Altlinux), в других дистрибутивах они могут находиться в иных местах. Шрифтовые файлы (вида имя_XxY.psf.gz) представлены обычно в трех вариантах - с матрицами 8x16, 8x14 и 8x8, предназначенными для различных разрешений. Под разрешением в текстовом режиме подразумевается произведение количества символов по горизонтали (колонок) на количество символов по вертикали (строк). Стандартное разрешение Linux-консоли - 80x25, то есть восемьдесят колонок на двадцать пять строк. Для него предназначены шрифты с матрицей 8x16. Прочие шрифты используются для других допустимых значений разрешения - 80x28, 80x30, 80x34, 80x43, 80x50, 80x60, 132x43 [1]. Для переключения разрешений используется команда resizecons (рис. 1). Рис. 1. Использование команды resizecons для изменения разрешения текстовой консоли Имя шрифта, как правило, явным образом указывает на кодировку, для которой он предназначен (рис. 2). Так, для шрифтов с кириллическими символами файлы вида 866*, alt*, Cyr_a*, cp866*, t866* содержат их в кодировке DOS (CP866), koi8* - в кодировке KOI8-R или -U (для русского и украинского языков, соответственно), Win* - в кодировке Windows (CP1251), cyr-sun* - в кодировке ISO8859-5, используемой на компьютерах Sun Sparc. Шрифты вида UniCyr* отображают кодировку Unicode, поддерживаемую современными дистрибутивами Linux. Рис. 2. Коллекция кириллических шрифтов для консоли из дистрибутивов Altlinux и ASPLinux В Linux для передачи кириллицы традиционно используется кодировка KOI8, однако отображение символов на экране осуществлялось в кодировке DOS [2], что требует применения т.н. карт перекодировки (map screen). Однако в современных отечественных дистрибутивах эта проблема снята, так как по умолчанию в них для вывода кириллицы на экран используется кодировка Unicode. Поэксперементировать со шрифтами можно с помощью команды consolechars с опцией -f, в качестве значения которой выступает имя шрифтового файла. Результатом ее будет мгновенная смена гарнитуры экранного шрифта, причем - на всех сразу виртуальных консолях. Поле для экспериментов, конечно, не столь обширно, как в графическом режиме, но выбор все же есть - от четкого и строгого Sans Serife, представленного UniCyr-sans и UniCyr-lenta, до стилизованного под старину alt-antiq и квази-рукописного t866. Выбрав подходящий шрифт, можно сделать его загружаемым по умолчанию при старте системы. Для этого в дистрибутивах, базируемых на Red Hat (к ним принадлежат и ASPLinux, и Altlinux), следует изменить значение строки SYSFONT в конфигурационном файле /etc/sysconfig/i18n. В других дистрибутивах указания на загрузку консольного шрифта могут быть в файлах /etc/rc.local, /etc/console-tools/config или подобных. Другое украшательство, предоставляемое Linux-консолью - изменение цветов текста и фона, если строгая черно-белая гамма представляется через чур мрачной. Для этого (хотя - и не только для этого) служит команда setterm с опциями -foreground [цвет] и -background [цвет] для текста и вона, соответственно. Их возможные значения - black, blue, green, cyan, red, magenta, yellow. Кроме того, с помощью опции -reverce можно поменять цвет текста и фона, сделать текст мигающим (посредством опции -blink), выделенным (с опцией -bold) или, наоборот, "приглушенным" (с опцией -half-bright). Следует заметить, что очень многие программы сбивают установки команды setterm, возвращая параметры терминала в значения по умолчанию. Чтобы этого не происходило, команду setterm следует давать с дополнительной опцией -store, сохраняющей в качестве умолчаний текущий набор терминальных атрибутов. В отличие от изменения шрифтов, действие команды setterm распространяется только на текущую виртуальную консоль. И потому ее в принципе можно использовать для того, чтобы с первого взгляда определять в какой по счету консоли в данный момент находишься. Впрочем, это не представляется мне здоровой идеей... Изменения цветов фона и текста также можно сделать постоянными. Для этого достаточно включить команду setterm с требуемыми значениями опций в один из стартовых файлов (например, в тот же /etc/sysconfig/i18n). Команда setterm имеет еще много опций [3], не относящихся прямо к украшательству, но подчас полезных. Так, с помощью опции dump # можно делать снимки (dump) экрана для виртуальной консоли с указанным номером. Они записываются в виде файла screen.dump в текущий каталог. Но посредством опции -file имя_файла созданному снимку можно дать произвольное имя. Разумеется, такие дампы экрана не являются настоящими скриншотами, представляя собой простые текстовые файлы без оформления. В частности, ими не удастся дать иллюстрации упомянутых выше консольных шрифтов. Однако в целом такая возможность может быть полезной. [1] Кроме того, для некоторых видеокарт можно использовать графическую консоль с разрешениями от 640x480 до 1280x1024, поддерживаемую т.н. линейным кадровым буфером (frame buffer), но об этом я планирую поговорить как-нибудь в другой раз. [обратно к тексту] [2] О причинах распространяться не буду, об этом достаточно сказано в Linux Cyrillic HOWTO. [обратно к тексту] [3] См. man setterm [обратно к тексту] |
|
![]() |
![]() |
2000-2008 г. Все авторские права соблюдены. |
![]() |
![]() |
![]() |
![]() |