How to make a psf font for the console from a otf one

fontstty

I want to use the Inconsolata font in the tty console, but I need to generate a psf font for that.

I found that there are two tools that should work, otf2bdf and bdf2psf, but every time I try to use the second one I get:

/usr/bin/bdf2psf: Inconsolata12.bdf: the width is not integer number.

Best Answer

I'm actually trying to solve this very same problem. I worked it out by reading through this thread email exchange that took place some time ago. visit here.

I still need to try this out . I'll report back if I get it to work.

Edit: I was able to create the PSF font but have not tried to use it as a TTY font. I believe that was the implication of the question. This is the way that I created the font (copied quasi-directly from the link).

  1. Convert the OTF to BDF

    otf2bdf -r 72 -p 12 -c C /usr/share/fonts/truetype/incon...a/inconsolata.otf |
        sed -e "s/AVERAGE_WIDTH.*/AVERAGE_WIDTH 80/" > inconsolata-12.bdf
    

    (the sed invocation is required because bdf2psf sanity-checks the AVERAGE_WIDTH property rather than the font bounding box, or checking the DWIDTHs of the glyphs that it actually uses)

  2. Convert the BDF file to a PSF file:

    bdf2psf inconsolata-12.bdf /usr/share/bdf2psf/standard.equivalents \
      /usr/share/bdf2psf/required.set+/usr/share/bdf2psf/useful.set 256 inconsolata-12.psf
    

That's it.