PYFTFEATFREEZE(1)
π 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.otfor.ttffont fileoutpathβ output.otfor.ttffont file (optional)
β options β
-h,--helpβ show this help message and exit
π§ options to control feature freezing π§
-f,--featuresFEATURES β comma-separated list of OpenType feature tags, e.g.'smcp,c2sc,onum'-s,--scriptSCRIPT β OpenType script tag, e.g.'cyrl'(optional)-l,--langLANG β OpenType language tag, e.g.'SRB '(optional)-z,--zapnamesβ zap glyphnames from the font ('post'table version 3,.ttfonly) π
π 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,--usesuffixUSESUFFIX β use a custom suffix when--suffixis enabled-R,--replacenamesREPLACENAMES β 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
- ubuntu resolute: pyftfeatfreeze 1.0.1+dfsg-1
- ubuntu stonking: pyftfeatfreeze 1.0.1+dfsg-2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms