psf2bdf(1)

πŸ“¦
version 1.1.3 Β· 2 versions
, in nixpkgs unstable, ubuntu stonking

πŸ’– NAME πŸ’–

psf2bdf β€” the glow-up tool that takes part (or literally all) of a PSF Font file and turns it into an X11 BDF, bestie. It's part of <pink>PSF Tools</pink>, and she eats every time. πŸŽ€


✨ SYNOPSIS ✨

psf2bdf [--first=FIRST] [--last=LAST] [--256] [--fontname=NAME]
[--defchar=INDEX] [--descent=VALUE] [--codepage=CODEPAGE] [--iso10646]
[INPUTFILE [OUTPUTFILE]]

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the vibe: psf2bdf saves some or all of the characters from a .PSF font into an X11-format BDF font file. Yeah. She's converting. πŸ‘‘

But listen β€” the resulting file is not ready to serve looks yet. You should take it into an editor like xmbdfed(1) and tidy it up before you install it. Think of it as the font equivalent of doing your skincare before the selfie. πŸ§–βœ¨

Not me stressing this enough: tidy it up first. Install the messy draft and that's on you. πŸ’€

πŸŽ€ OPTIONS πŸŽ€

  • --codepage=x β€” only extracts the characters that live in the given codepage. Heads up tho: this one requires the source PSF file to have a Unicode directory, no directory no deal. If a codepage character isn't present in the source font, it gets replaced by blanks (so she's still there, just… empty, going through it πŸ™ˆ). You can give the codepage as a number or as a name β€” psfpages(1) has the full list of codepage names that are acceptable, so go check.
  • --first=n β€” extracts characters starting at the specified character. Slice from here. βœ‚οΈ
  • --last=n β€” extracts characters up to and including the specified character. Slice ends here, inclusive, periodt.
  • --256 β€” literally equivalent to --first=0 --last=255. Same thing, cuter to type. πŸ’…
  • --fontname=name β€” sets the XLFD name of the font being output. Give her a name, she deserves one.
  • --descent=n β€” sets the descent (that's the pixels between the character baseline and the bottom of the character cell, fyi). If you don't enter it, it's assumed to be 1/4 of the character height. Autopilot mode. ✨
  • --defchar=n β€” sets the number of the default character to use.
  • --iso10646 β€” if this option is present and the source file has a Unicode directory, the font will encode the ID of each character as its Unicode position. Otherwise (no flag, or no Unicode directory) the character's ID is equal to its position in the file. That's the whole tea. 🍡

Okay one more thing before you go: if you specify a codepage and a range of characters both, the range gets applied to the subset of characters extracted by the codepage. So the range is slicing the codepage's little crew, not the whole file. Knew you'd ask. 🫢


😭 BUGS 😭

The BDF needs tidying up after generation, as mentioned above. Yeah. She's a work in progress, she said so herself. Take her to xmbdfed(1) before you let her out the house.


🌈 SEE ALSO 🌈


πŸ‘‘ AUTHOR πŸ‘‘

John Elliott <seasip.webmaster@gmail.com>. Icon, legend, the moment. πŸ’œ


And that's the whole page, bestie!! This was Version 1.1.3, fresh as of 28 April, 2026 β€” slay, go convert some fonts, ily, bye!! πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from