Linux Slackware Энциклопедия от А до Я
Сайт посвящен свободно распространяемому ПО и Linux Slackware в частности.
Разделы:
Раздел/Тема
Главная -> Программы -> xterm - повышаем удобство работы

Стандартный xterm поражает быстротой, но не радует глаз (порой их можно даже сломать). Какие проблемы я испытывал? Во-первых, очень мелкий текст. Во-вторых, забывчивость - очень часто мне не хватает истории вывода, т.к. пользуюсь для просмотра командой cat, да и просто хелп некоторых программ не умещается. В-третьих, плохо читабельный шрифт. В-четвертых, абсолютно не информативное приглашение типа bash-2.05b$. В-пятых, хотелось бы другой расцветки. Ну, достаточно, займемся их улучшеним.

Настройки xterm и многих других программ хранятся в каталоге /etc/X11/app-defaults/. Нам нужен файл XTerm. Можно баловаться с ним, но предпочтительно, при возможности, не править сам дистрибутив, а создавать свои файлы в домашней директории, которая у меня постоянно бэкапится. Поэтому просто скопируем его к себе в домашнюю директорию и обнулим.

$ cp /etc/X11/app-defaults/XTerm ~/
$ chmod 644 ~/XTerm
$ cat /dev/null > ~/XTerm

Шибко описывать структуру и все возможности я не буду, т.к. есть более подробные статьи на эту тему, да и $ man xterm еще никто не отменял. Итак, вот что я туда написал:

XTerm*background: black
XTerm*foreground: gray
XTerm*cursorColor: darkred
XTerm*saveLines: 800
XTerm*font: -*-courier-medium-r-normal-*-14-100-100-100-m-*-koi8-*

Для начала подберем себе приятные для работы цвета фона, текста, курсора. Можно менять еще цвет полосы прокрутки. Вот далеко не все возможные варианты цветов и оттенков: black, gray30, red, green, yellow, SteelBlue1, magenta, cyan, white. Экспериментируйте на здоровье. Далее поднимаем планку сохраняемых в буфере строк до необходимых высот. Мне бы хватило 500, но на всякий случай 800. Теперь кому надо могут добавить "XTerm*scrollBar: True" для отображения полосы прокрутки. Можно поменять и геометрию окошка "XTerm*geometry: 80x40". Ну и наконец, изменяем тип, вид и размер шрифта. Для этих целей рекомендую не переписывать мою строчку, а воспользоваться стандартной в таких случаях утилитой xfontsel, т.к. в вашей системе могут быть другие шрифты. Чтобы выбрать нужный просто поочередно выбирайте из списка параметров нужное значение. При этом начинайте с самых важных, т.к. софтина автоматически отсеивает шрифты по вашим параметрам. Начинать следует с -rgstry- дальше -ptSz- и -fmly-. Когда закончите жмите Select, тем самым помещая строчку типа

-*-courier-medium-r-*-*-14-*-*-*-*-*-koi8-*
в буфер обмена. Теперь остается лишь вставить ее в редактируемом файле в нужном месте.

С этим файлом все, хотя вписать туда еще много что можно. Теперь изменим приглашение. Текущее значение PS1 покажет команда $ echo $PS1. Я уже вскользь упомянул в статье "Настройка графической подсистемы Xorg" о файле ~/.bashrc. Самое время о нем вспомнить. В Slackware по-умолчанию нет файла /etc/bashrc, а жаль. Кому надо создайте его там. Я же люблю все настройки хранить в домашнем каталоге. Аналогично и с файлами ~/.bash_profile и ~/.bash_logout. Из них жизненно необходим только ~/.bash_profile, куда нужно вписать строчку:

source ~/.bashrc
Можно эту строчку прописать и в /etc/profile, если пользователей много. После этого, все что описано в ~/.bashrc будет работать и в системной консоли. Вот типичный представитель:

alias ..='cd ..'
alias cd..='cd ..'
alias cls=clear
alias cr='chmod a+r'
alias cx='chmod a+x'
alias df='df -h'
alias du='du -h'
alias f=finger
alias h='history 50'
alias l='ls -l --color'
alias la='ls -aF --color'
alias li='ls -li --color'
alias ls='ls -F --color'
alias mess='tail -50 /var/log/messages'
alias nslookup='nslookup -sil'
alias path='echo PATH=$PATH'
alias pps='ps w -cfA'
alias ppwd=/bin/pwd
alias rm='rm -i'
alias rrm='rm -rf'
alias mc='mc -c'

# Set Prompt:
if [ "$TERM" = "linux" ]
then
#Мы в системной console
#Приглашение вида [21:39][gena@u158:/tmp]$
  export PS1='\[[$(date +%H:%M)][\u@\h:\w]\$\] '
else
#Мы скорее всего в xterm
#Цветное приглашение вида gena@u158:/tmp:$ , а в заголовке окна будет [21:27].
#export PS1='\[\e]2;[$(date +%H:%M)] \a\e[1;32;40m\u@\H:\w:\e[1;31;40m\$\e[0m\] '
#Цветное приглашение вида gena@u158:/tmp:$ , просто и со вкусом :)
export PS1='\[\e[1;32;40m\u\e[1;36;40m@\e[1;32;40m\H:\e[1;37;40m\w:\e[1;31;40m\$\e[0m\] '
#Приглашение вида [21:39][gena@u158:/tmp]$
#export PS1='\[[$(date +%H:%M)][\u@\h:\w]\$\] '
fi

Алиасы прописывают наиболее часто используемые команды с любимыми ключами, а приглашение будет вот такое разноцветное:

ps1

Есть также пример, где в заголовке окна будет отображаться время, а в приглашении имя пользователя, имя машины и текущая папка. Команде ls приписан ключ --color, за счет чего вывод будет разноцветным. Поменять стандартную расцветку можно в файле /etc/DIR_COLORS. Как всегда рекомендую скопировать этот файл в домашнюю директорию под именем ~/.dir_colors, чтобы при переустановке или переходе на другой дистрибутив заново не возиться с настройками. Там же есть описание кодов цветовой палитры. Результат моих мучений:

xterm-color
Если сделать шрифт побольше, то слипаться жирные буквы не будут, но мне и так нравится.

Список всех доступных переменных bash можно посмотреть здесь. Более подробно про $PS1 и PROMPT_COMMAND здесь, использование цветов здесь. Извиняюсь, что не по-нашему, зато более полно и интересно (особенно small shell script). Если по-русски, то есть описание работы с bash "BASH конспект".

Все операции можно делать прямо в Иксах и тут же проверять запуская xterm. На этом все.

Попозже, после того как получше разберусь с termcap и terminfo, а также после статьи об Xorg, сделаем xterm более похожим на на системную консоль в плане распознавания клавиш.

Дополнения к статье

По мере моего самообразования или внезапных вспышек памяти буду кое-что сюда дописывать полезного. Например, недавно дописал строчку в .bashrc

if [ "$TERM" = "linux" ]
then
 export PS1='\[\e[1;32;40m\u\e[1;36;40m@\e[1;32;40m\H:\e[1;37;40m\w:\e[1;31;40m\$\e[0m\] '
else
 export TERM=xterm-color
fi

Имеется ввиду export TERM, которая немного разукрасит в xterm все те программы, которые раньше цветными были только в системной консоли (alsamixer, pkgtool, mc). После этого можно смело стирать из этого же файла строчку alias mc='mc -c'.

Для тех пользователей MC, кому осточертела стандартная раскрасска, могут сделать свою, подправив конфиг ~/.mc/ini. В конец нужно добавить следующую конструкцию:

[Colors]
base_color=normal=brown,black:directory=cyan,black:executable=green,black:
link=brown,black:stalelink=red,black:special=grey,black:marked=magenta,black:
editnormal=brown,black:editmarked=black,lightgray

Все это пишется в одну строчку. Вообще заострять на этом внимания не буду. Кому интересно, в MC очень хорошая помощь, один из разделов которой так и называется "Цвета". Файл помощи находится здесь: /usr/share/mc/mc.hlp.ru. Почитайте, найдете много интересного не только об MC, но и о системе в целом.

Gena 18.12.2004