psf2bdf(1)
π 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 π
vfont2bdf(1)xmbdfed(1)psfpages(1)
π 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
- nixpkgs unstable: psftools 1.1.3
- ubuntu stonking: psftools 1.1.3-1
- Copyright (c) 2005, 2007 John Elliott
- Copyright (C) 2005, 2007 John Elliott
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms