PYFTFEATFREEZE(1)

πŸ“¦ version 1.0.1, in ubuntu resolute, ubuntu stonking

πŸ’– PYFTFEATFREEZE πŸ’–

okay bestie, welcome to pyftfeatfreeze, a lil User Command that is genuinely so iconic. it lives in section 1 of the manual, iykyk πŸŽ€


✨ NAME ✨

pyftfeatfreeze β€” freezes OpenType features into a font πŸ§ŠπŸ¦‹


🌸 DESCRIPTION 🌸

ok so the usage is literally this, no cap:

usage: pyftfeatfreeze [-h] [-f FEATURES] [-s SCRIPT] [-l LANG] [-z] [-S]
                      [-U USESUFFIX] [-R REPLACENAMES] [-i] [-r] [-n] [-v]
                      [-V] inpath [outpath]

With pyftfeatfreeze you can "freeze" some OpenType features into a font. the way that works is these features are then "on by default", even in apps that don't support OpenType features. periodt πŸ’…

Internally, the tool remaps the "cmap" table of the font by applying the specified GSUB features. and lowkey important: only single and alternate substitutions are supported. that's the vibe check right there, bestie 😭

🫢 positional arguments 🫢

  • inpath β€” input .otf or .ttf font file
  • outpath β€” output .otf or .ttf font file (optional)

⭐ options ⭐

  • -h, --help β€” show this help message and exit

🧚 options to control feature freezing 🧚

  • -f, --features FEATURES β€” comma-separated list of OpenType feature tags, e.g. 'smcp,c2sc,onum'
  • -s, --script SCRIPT β€” OpenType script tag, e.g. 'cyrl' (optional)
  • -l, --lang LANG β€” OpenType language tag, e.g. 'SRB ' (optional)
  • -z, --zapnames β€” zap glyphnames from the font ('post' table version 3, .ttf only) πŸ’€

πŸ‘‘ options to control font renaming πŸ‘‘

  • -S, --suffix β€” add a suffix to the font family name (by default, the suffix will be constructed from the OpenType feature tags)
  • -U, --usesuffix USESUFFIX β€” use a custom suffix when --suffix is enabled
  • -R, --replacenames REPLACENAMES β€” search for strings in the font naming tables and replace them, format is 'search1/replace1,search2/replace2,...'
  • -i, --info β€” update font version string

πŸ”₯ reporting options πŸ”₯

  • -r, --report β€” report languages, scripts and features in font
  • -n, --names β€” output names of remapped glyphs during processing
  • -v, --verbose β€” print additional information during processing
  • -V, --version β€” show program's version number and exit

🌈 EXAMPLES 🌈

these ones, verbatim, slay:

pyftfeatfreeze -f 'c2sc,smcp' -S -U SC OpenSans.ttf OpenSansSC.ttf
pyftfeatfreeze -R 'Lato/Otal' Lato-Regular.ttf Otal-Regular.ttf

πŸ’– reminder bestie: that 'SRB ' language tag has a trailing space in it, and 'search1/replace1,search2/replace2,...' really is slash-separated. copy them exactly, no cap πŸ™ˆ

ok that's the whole page, you ate it up fr fr πŸ“βœ¨

signing off from the pyftfeatfreeze manpage, dated June 2025, part of the User Commands collection β€” main character energy only πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from