Консольный фонт для иксов

Начертание шрифтов в консольном окне эмулятора терминала по умолчанию, мне так каатца не очень... Это конечно же только мое субъективное мнение.
Но со времен KDE 2 существует такой шрифт, который почти не отличается по нарисованию  от настоящего терминального шрифта и полностью удовлетворяет мое зрительное восприятие.
Выглядит он примерно так:

http://f6.s.qip.ru/NGYkJXSd.png

Сам файл фонта существует  под названием console8x16.pcf.gz, под которым его и можно обнаружить на просторах интернета...
Найти его не столь сложно, но хорошо бы еще его опакетить, чтобы установить одним махом и голова не боли... :blush:

Условия для его обнаружения системой просты - он должен находиться в одном из каталогов с фонтами, путь к которому прописан в файле /etc/fonts/fonts.conf
Сам конфигурационный файл, показывает такие каталоги с "пропиской":

Код:
-->
   <!-- Font directory list -->
   <dir>/usr/share/fonts/OTF</dir>
   <dir>/usr/share/fonts/TTF</dir>
   <dir>/usr/share/fonts/Type1</dir>
   <dir>/usr/share/fonts/Speedo</dir>
   <dir>/usr/share/fonts/cyrillic</dir>
   <dir>/usr/share/fonts/misc</dir>
   <dir prefix="xdg">fonts</dir>
<!--

Исходя из увиденного, шрифт лучше всего поместить в каталог /usr/share/fonts/misc, хотя бы потому, что там находятся его сородичи по расширению *.pcf.gz

Вобщем, лучше запустить данный скрипт и получим установочный пакет...

Код:
#!/bin/bash

# Скрипт Slackbuild пакета fonts-misc-console
# 
# Шрифт для консоли
# 
# Maintained by cdrw <cdrw@list.ru>

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Объявление переменных, определяющих название пакета и исходников             ║
#╚══════════════════════════════════════════════════════════════════════════════╝

PRGNAM=fonts-misc-console
VERSION=${VERSION:-0.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_dlx}
SOURCE00="http://xiangelinux.googlecode.com/files/console8x16.pcf.gz"

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Определение архитектуры процессора компьютера                                ║
#╚══════════════════════════════════════════════════════════════════════════════╝

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Определение переменных, определяющих рабочие каталоги                        ║
#╚══════════════════════════════════════════════════════════════════════════════╝

CWD=$(pwd)
TMP=${TMP:-/tmp/DLx}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
NOCLEANUP=0
FORCEBUILD=0
CATEGORIJA=${CATEGORIJA:-xorg}

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Объявление флагов компиляции для архитектуры определённого процессора        ║
#╚══════════════════════════════════════════════════════════════════════════════╝

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Пакеты-зависимости, которые должны быть установлены в системе                ║
#╚══════════════════════════════════════════════════════════════════════════════╝

REQUIRED_PACKAGES=" "

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Функция вывода справки                                                       ║
#╚══════════════════════════════════════════════════════════════════════════════╝

function usage() {
  cat << EOF
Применение: ${0##*/} [опции]

Options:  --force       Пакет не будет создан, если отсутствует пакет или
                        пакеты-зависимости, необходимые для сборки пакета.
                        Эта опция позволит игнорировать эту проверку и
                        позволит попытаться собрать пакет в любом случае.

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

          --help        Вывод этого справочного текста.
EOF
}

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Разбор аргументов командной строки                                           ║
#╚══════════════════════════════════════════════════════════════════════════════╝

while [ $# -gt 0 ]; do
  if [ "$1" = "-force" ] || [ "$1" = "--force" ]; then
    FORCEBUILD=1
    shift
  elif [ "$1" = "-no-cleanup" ] || [ "$1" = "--no-cleanup" ]; then
    NOCLEANUP=1
    shift
  elif [ "$1" = "-help" ] || [ "$1" = "--help" ]; then
    usage
    exit 0
  else
    echo "${0##*/}: Неизвестная опция: $1"
    exit 1
  fi
done

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Проверка на наличие установленных пакетов-зависимостей                       ║
#╚══════════════════════════════════════════════════════════════════════════════╝

[ "$FORCEBUILD" = "0" ] && {
  function check_installed() {
    ls -1 /var/log/packages | grep "^${1}-[^-]*-[^-]*-[^-]*$" >/dev/null 2>&1
    return $?
  }

  check_installed "$PKGNAME" && {
    echo "${0##*/}: ВНИМАНИЕ! Пакет '$PKGNAME' в системе уже установлен."
    exit 0
  }

  for REQ in $REQUIRED_PACKAGES; do
    check_installed "$REQ" || {
      echo "${0##*/}: Необходимый пакет '$REQ' не установлен."
      exit 1
    }
  done
}

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Закрузка исходников и патчей, если их нет в каталоге                         ║
#╚══════════════════════════════════════════════════════════════════════════════╝

if [ ! -e "$CWD/console8x16.pcf.gz" ];then
  wget "$SOURCE00" -O "$CWD/console8x16.pcf.gz"
fi

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Очистка временных каталогов и распаковка исходников                          ║
#╚══════════════════════════════════════════════════════════════════════════════╝

set -e   # Принудительный выход если какая либо из следующих команд вернула
         # значение, отличное от 0.
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir -p $PKG/etc/fonts/conf.avail
mkdir -p $PKG/etc/fonts/conf.d
mkdir -p $PKG/install 
mkdir -p $PKG/usr/share/fonts/misc
cp -a $CWD/console8x16.pcf.gz $PKG/usr/share/fonts/misc

cat << EOF >> $PKG/install/doinst.sh
#!/bin/sh

( cd etc/fonts/conf.d ; rm -rf 66-fonts-misc-console.conf )
( cd etc/fonts/conf.d ; ln -sf /etc/fonts/conf.avail/66-fonts-misc-console.conf 66-fonts-misc-console.conf )

# Update the X font indexes:
if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then
  ( cd /usr/share/fonts/misc
    mkfontscale .
    mkfontdir .
  )
fi
if [ -x /usr/bin/fc-cache ]; then
  /usr/bin/fc-cache -f
fi
EOF

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Копирование документации и SlackBuild                                        ║
#╚══════════════════════════════════════════════════════════════════════════════╝

mkdir -p $PKG/usr/src/DesktopLX/$CATEGORIJA/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/src/DesktopLX/$CATEGORIJA/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install

cat << EOF >> $PKG/install/slack-desc
fonts-misc-console: fonts-misc-console - bitmap-fonts
fonts-misc-console:
fonts-misc-console: The bitmap-fonts package provides a number of bitmap fonts selected
fonts-misc-console: from the xorg package designed for use locations such as terminals.
fonts-misc-console:
fonts-misc-console:
fonts-misc-console:
fonts-misc-console:
fonts-misc-console:
fonts-misc-console: Home: http://www.xorg.net
fonts-misc-console:
EOF

cat << EOF >> $PKG/etc/fonts/conf.avail/66-fonts-misc-console.conf
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
<fontconfig>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Console</family>
    </prefer>
  </alias>
  <alias>
    <family>Console</family>
    <default>
      <family>monospace</family>
    </default>
  </alias>
</fontconfig>
EOF

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Создание установочного пакета                                                ║
#╚══════════════════════════════════════════════════════════════════════════════╝

cd $PKG
/sbin/makepkg -l y -c n $CWD/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}
cd $CWD
md5sum $PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} > \
       $PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}.md5
cat $PKG/install/slack-desc > $PRGNAM-$VERSION-$ARCH-$BUILD$TAG.txt

cat << EOF >> $CWD/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.desc
The bitmap-fonts package provides a number of bitmap fonts selected
from the xorg package designed for use locations such as terminals.

Home: http://www.xorg.net
EOF

cat << EOF >> $CWD/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.install
#!/bin/bash
#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Установка вновь созданного пакета                                            ║
#╚══════════════════════════════════════════════════════════════════════════════╝

removepkg $PRGNAM

upgradepkg --install-new --reinstall $PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}
EOF

chmod +x $CWD/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.install

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Удаление временных каталогов                                                 ║
#╚══════════════════════════════════════════════════════════════════════════════╝

if [ "$NOCLEANUP" = "0" ]; then
  rm -rf $PKG $TMP/$PRGNAM-$VERSION
fi;

#╔══════════════════════════════════════════════════════════════════════════════╗
#║ Конец скрипта                                                                ║
#╚══════════════════════════════════════════════════════════════════════════════╝

Отредактировано admin (2014-01-20 23:37:07)