Ключевые слова:man, troff, color, openbsd, (найти похожие документы)
From: Пилявец Олег и Зборовский Вадим <fenicottero@gmail.com.>
Newsgroups: email
Date: Mon, 26 Jul 2006 14:31:37 +0000 (UTC)
Subject: Включение цветности консольных приложений в OpenBSD и NetBSD
Раскраска страниц руководства man и включение цветности консольных
приложений в Open/NetBSD.
Введение
________
В данной статье рассказано о том, как изменить умолчальные настройки
терминала в NetBSD или OpenBSD, чтобы сделать собственную раскраску страниц
руководства man, а также включить подцветку отображения тех консольных программ
(например, mutt, vim, centericq и др.), которые это в принципе поддерживают.
Включение подцветки в консольных приложениях
____________________________________________
В OpenBSD для включения подцветки консольных приложений
достаточно прописать тип терминала в командной строке:
$ export TERM=wsvt25m
Для сохранения настроек указанный тип терминала можно указать в
/etc/ttys вместо vt220 или vt100 по умолчанию.
В NetBSD есть баг, который не позволяет выводить цвета
приложениям при использовании терминала wsvt25m. Данная проблема решена в
current-ветке. В случае же stable-ветки 3.0 проблема решается следующим
образом: требуется исправить системный файл /usr/share/misc/termcap.
К этому файлу нужно применить следующий патч:
$ diff -ubB /mnt/fat/share/misc/termcap /usr/share/misc/termcap
--- /mnt/fat/share/misc/termcap 2005-07-05 19:37:51.000000000 +0400
+++ /usr/share/misc/termcap 2006-07-19 17:58:48.000000000 +0400
@@ -932,7 +932,7 @@
# These are micro-minimal and probably need to be redone for real
# after the manner of the pcvt entries.
wsvt25|NetBSD wscons in 25 line DEC VT220 mode:\
- :Co#16:NC#32:pa#256:it#8:ms:ut:\
+ :Co#8:pa#64:it#8:ms:ut:\
:@7=\E[8~:is=\E[r\E[25;1H:\
:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:\
:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kh=\E[7~:F1=\E[23~:F2=\E[24~:\
После исправления (c правами root) делаем рекриэйт базы:
# rm /usr/share/misc/termcap.db
# cap_mkdb -f /usr/share/misc/termcap /usr/share/misc/termcap
Аналогично случаю с OpenBSD, прописывая тип терминала в /etc/ttys
как wsvt25m, получаем цветность консольных приложений.
Замечу, что можно было бы воспользоваться и другим типом терминала для
включения цветности приложений:
$ export TERM=ansi
(для которого) не требуется баг-фикс в случае NetBSD, однако это может привести
к проблемам в распознавании клавиш (например, в centericq). Соответственно, не
рекомендуется пользоваться ansi.
Изменение цветовой схемы руководства man
________________________________________
Раскраска man pages как в OpenBSD, так и NetBSD на уровне пользователся
происходит так - создаётся файл ~/.termcap следущего содержания:
$ cat ~/.termcap
wsvt25mc|NetBSD wscons in 25 line DEC VT220 mode with Meta and colored attributes:\
:md=\E[32m:us=\E[1;36m:ue=\E[m:tc=wsvt25m:
wsvt25mc-bgbc|NetBSD wscons in 25 line DEC VT220 mode with Meta and colored attributes, bright
green, bright cyan:\
:md=\E[1;32m:us=\E[1;36m:ue=\E[m:tc=wsvt25m:
wsvt25mc-bgbr|NetBSD wscons in 25 line DEC VT220 mode with Meta and colored attributes, bright
green, bright red:\
:md=\E[1;32m:us=\E[1;31m:ue=\E[m:tc=wsvt25m:
( В случае OpenBSD всё равно пишется "NetBSD" ). После этого, для просмотра
страниц man, где
a) жирный шрифт показан зелёным по-чёрному, а подчёркнутый - ярко-голубым
по-чёрному пишем:
$ TERM=wsvt25mc man man
b) жирный шрифт показан ярко-зелёным по-чёрному, а подчёркнутый - ярко-голубым
по-чёрному пишем:
$ TERM=wsvt25mc=bcbg man man
c) жирный шрифт показан ярко-зелёным по-чёрному, а подчёркнутый -
ярко-красным по-чёрному пишем:
$ TERM=wsvt25mc=bgbr man man
Указанные типы терминалов (wsvt25mc, wsvt25mc-bcbg и wsvt25mc-bgbr) не
рекомендуется использовать для других целей, кроме как для просмотра man-страниц,
вследствие ряда проблем с цветностью других приложений (у меня, например, mutt
стал показывать другую гамму цветов) и, возможно, клавишными комбинациями. Для
использования данных типов терминалов (рекомендуется выбрать по желанию) только
для просмотра man-страниц можно создать алиас для команды man. В моём случае
(у меня в качестве шелла zsh) я поступил так:
$ echo "alias man='TERM=wsvt25mc-bgbc man'" >> ~/.zshrc
Итак, теперь в обычном терминале для всех приложений тип терминала - wsvt25m
(берётся из /etc/ttys), для cтраниц же man - wsvt25mc-bgbc
(берётся из переменной TERM, которая прописана в алиасе).
Попутно замечу, что указанная расцветка ман-страниц теперь работает и в
X-терминалах, так как после каждого запуска графического терминала запускается
zsh, который содержит алиас на команду man.
spinore, он же Пилявец Олег [email protected].
Информация и патч были предоставлены Зборовским Вадимом [email protected]
с использованием информации из CVS-репозитория NetBSD.