OnWorks favicon

bdf2psf - Online in the Cloud

Run bdf2psf in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command bdf2psf that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



bdf2psf - convert a BDF font to PSF format for the Linux console


bdf2psf [--fb] [--log logfile] bdf{+bdf} equivalence{+equivalence} symbols{+[:]symbols}
size psf [sfm]


The program bdf2psf translates BDF fonts to PSF format. It accepts fonts with arbitrary
size of the font matrix. If the width of the glyph matrix of the source font is 7 or 9
pixels then it generates fonts with width of 8 pixels.


--fb Generate font for framebuffer. There are two important differences between the
framebuffer and the text mode. First, all fonts in text mode have to have matrix 8
pixels width. They also have to have either 256 or 512 glyphs. Second, in most text
modes the hardware does some magic in order to use 8 pixels width fonts as if they
were 9 pixels width. In order to achieve this the video hardware copies the 8th
column in the 9th column of the glyphs with codes from 0xC0 to 0xDF and from 0x1C0
to 0x1DF. Bdf2psf is very careful when deciding where to place a particular glyph
and as a result the encoding of the generated font is more or less arbitrary.

--log logfile
Record in the file logfile any problems during the conversion.

The "+"-separated list of the source BDF font(s). When a particular symbol is
defined in more than one of the specified fonts then fonts listed first take

A "+"-separated list of files defining an equivalence relation between the glyphs.
See the section EQUIVALENCE FILES below.

A "+"-separated list of files describing character sets. The generated font will
support all specified character sets. When there is no space in the PSF font for
all symbols, the character sets listed first take precedence. When a colon before
a character set is specified no warnings will be issued for symbols that could not
be placed in the font. See the section CHARACTER SETS below.

size The size of the PSF font. Usually 256 or 512 glyphs.

psf The name of the generated font. If a file with this name already exists it will be

sfm Save in the file sfm the SFM of the generated font. This parameter is optional.


The encodings of the traditional console fonts a similar to the standard encodings of the
different languages. For example there are fonts for all variants of ISO 8859. This is
redundant, for example ISO 8859-1, ISO 8859-9 and ISO 8859-15 differ only by few
characters and can be easily covered by only one font.

In order to determine the minimal set of character sets a clustering algorithm has been
used. The source code of fontconfig contains lists of the characters that most languages
require - one list per language. We started with one character set per language and used
the clustering algorithm in order to join the character sets to bigger. The character
sets described in files installed in the directory fontsets were the result of the
algorithm. These files list the unicodes of the symbols of the character set, one per
line. Comments starting with a sharp sign are also allowed.

The files ascii.set, linux.set, freebsd.set and useful.set contain four special character
sets. The first lists the ASCII symbols and the second and the third list the symbols
from the so called alternate character set (see section "Line Graphics" of terminfo(5)) -
one for Linux and one for FreeBSD. Notice that in order to limit itself to the cp437
character set, the Linux console driver does some approximations of the symbols from the
alternate character set. For example it prints U+256A (BOX DRAWINGS VERTICAL SINGLE AND
HORIZONTAL DOUBLE) instead of the not-equal sign. The file linux.set lists the symbols
used by the Linux console driver (i.e. U+256A instead of the not-equal sign). The symbols
from freebsd.set are not fixed by the FreeBSD kernel, but there too there are some

In most cases there is more available space in the fonts than necessary. The spare codes
can be filled with the symbols from the useful.set special character set. It is
convenient to use a colon before the name of useful.set on the command line of bdf2psf so
no warnings are issued when there is no space in the font for some of these symbols.


The equivalence files define an equivalence relation between unicodes. The sharp sign is
used for comments, the empty lines are ignored. All other lines should list two or more
unicodes. Only one glyph will be allocated in the PSF font for these unicodes.


U+2126 U+03A9
# U+2126: OHM SIGN
U+041D U+0048

This equivalence file says that U+2126 (the Ohm sign) and U+03A9 (Omega) have the same
look so only one glyph is enough for them. And also U+041D (Cyrillic En) and U+0048 (Latin
H) look the same.

Two equivalence files are provided - standard.equivalents and arabic.equivalents. The
first one can be used for all fonts. The purpose of the second is to reduce the number of
the necessary glyphs for the Arabic letters at the cost of the font quality. It should be
used only for fonts that have to support Arabic but there is not enough space in the PSF
font for all Arabic characters. The Uni1 character set is a character set that requires

Use bdf2psf online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    TurkDevOps a�?k kaynak yaz?l?m
    geli?tirici topluluklar? DevTurks-Team
    Taraf?ndan desteklenmektedir..
    Download turkdevops
  • 2
    *asammdf* is a fast Python parser and
    editor for ASAM (Associtation for
    Standardisation of Automation and
    Measuring Systems) MDF / MF4
    (Measurement Data Format...
    Download asammdf
  • 3
    LAME (Lame Aint an MP3 Encoder)
    LAME (Lame Aint an MP3 Encoder)
    LAME is an educational tool to be used
    for learning about MP3 encoding. The
    goal of the LAME project is to improve
    the psycho acoustics, quality and speed
    of MP...
    Download LAME (Lame Aint an MP3 Encoder)
  • 4
    A set of Python extension modules that
    wrap the cross-platform GUI classes from
    wxWidgets.. Audience: Developers. User
    interface: X Window System (X11), Win32 ...
    Download wxPython
  • 5
    This is the Total War pack file manager
    project, starting from version 1.7. A
    short introduction into Warscape
    modding: ...
    Download packfilemanager
  • 6
    A network traffic tool for measuring
    TCP and UDP performance with metrics
    around both throughput and latency. The
    goals include maintaining an active
    iperf cod...
    Download IPerf2
  • More »

Linux commands