vfont2bdf(1)

πŸ“¦ version 1.1.3, in nixpkgs unstable, ubuntu stonking

πŸ’– vfont2bdf(1) β€” the PSF Tools era πŸ’–

okay bestie, sit down, hydrate, because this little icon (vfont2bdf, she's part of the PSF Tools family) is about to turn your font files into serving BDF realness. πŸ¦‹


✨ NAME ✨

vfont2bdf β€” convert part or all of a BSD vfont file to an X11 BDF. that's it, that's the whole job, and she eats every time πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

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

like, look at her. two optional files at the end, a whole lil wardrobe of flags up front. iconic. πŸ‘‘


🌸 DESCRIPTION 🌸

vfont2bdf saves some or all characters from a .PSF font to an X11-format BDF font file. yes bestie, she's saving your faves, and she's saving them in BDF. πŸ’–

and then β€” listen β€” the resulting file should then be tidied up in an editor such as xmbdfed(1) before being installed. no cap, she does NOT clean up after herself, that's your job, the output is giving raw and you gotta style it before it goes out. 🫢


🌈 OPTIONS 🌈

  • --codepage=x β€” extracts only the characters in the given codepage. (this needs the source PSF file to have a Unicode directory, btw, so no directory = no dice πŸ™ˆ). Any characters in the codepage that are not present in the source font get replaced by blanks β€” so they show up, they just show up empty, lmao. you can name the codepage by number or by name; go check psfpages(1) for the list of acceptable codepage names. πŸ“‹
  • --first=n β€” extracts characters starting at the specified character. where the range begins, basically. ✨
  • --last=n β€” extracts characters up to and including the specified character. inclusive, always, she's polite like that. πŸ’–
  • --256 β€” equivalent to --first=0 --last=255. the whole first 256, no notes, periodt. πŸ”₯
  • --fontname=name β€” sets the XLFD name of the font being output. give your baby a name, she deserves it. πŸŽ€
  • --ascent=n β€” sets the ascent (that's the pixels between the character baseline and the top of the character cell, iykyk). if this is not entered, the value from character 65 ('A') is used. so A is lowkey the blueprint. πŸ‘‘
  • --descent=n β€” sets the descent (the pixels between the character baseline and the bottom of the character cell). if this is not entered, the value from character 65 ('A') is used. again with A. she's the main character fr fr. ⭐
  • --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, the character's ID is equal to its position in the file. that's the whole vibe check right there. 🌈

and one more thing bestie, this one's important: if a codepage and a range of characters are both specified, the range is applied to the subset of characters extracted by the codepage. so the codepage goes first, the range narrows it down. stack it, don't fight it. πŸ’…


πŸ’€ BUGS πŸ’€

the BDF needs tidying up after generation, as mentioned above. yeah. she said what she said. not me telling you twice but like, she is telling you twice. go open that editor. 🧚


πŸ¦‹ SEE ALSO πŸ¦‹

psf2bdf(1), xmbdfed(1), psfpages(1)

the whole friend group, honestly. go say hi. πŸ₯°


πŸ’œ AUTHOR πŸ’œ

John Elliott <seasip.webmaster@gmail.com>.


and that's the whole page, bestie!! this was Version 1.1.3, dated 28 April, 2026, and she's still slaying. mwah. πŸ’…πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from