FTVALID(1)
π ftvalid(1) β the font layout table validator, bestie edition
ok so real talk: this is a page from the General Commands Manual, and the program is called ftvalid, and honestly? she's a font layout table validator and she's that girl. β¨
πΈ NAME πΈ
ftvalid β font layout table validator π
β¨ SYNOPSIS β¨
ftvalid [options] fontfile
π DESCRIPTION π
okay so ftvalid is literally an OpenType layout table validator. that's the whole vibe. it goes through your font's layout tables and checks them, no cap. π₯
also fun fact: this program is part of the FreeType demos package. she's famous, she's got connections. π
π¦ OPTIONS π¦
-f indexβ pick which font index you wanna look at. default is0, like a normal person. π-t validatorβ choose your validator. the available validators areot,gx, andckern.
β οΈ heads up bestie: whether a validator is even available depends on the compile-time options of FreeType β specifically, whether the modulesotvalidandgxvalidgot compiled into the library. so like, if it's not there, it's not there, that's a build thing, not a you thing. π
-T tblsβ[ot, gx]select which sfnt table name tags you want validated. use:to separate tags, got it? π«Ά
tables supported in the ot validator are BASE, GDEF, GPOS, GSUB, JSTF, and MATH.
tables supported in the gx validator are feat, mort, morx, bsln, just, kern, opbd, trak, prop, and lcar.
example, because examples ate:
-T "feat:morx"
-T dialectβ[ckern]select the classic kern dialect for validation. use:to separate dialect names. if you specify more than one dialect, then all of those dialects are accepted when validating. generous queen. π
dialects supported in the ckern validator are ms and apple.
-lβ list the layout-related SFNT tables that are actually available in the font file. the validator you selected with-taffects the list. π
ckern only applies to the kern table, ngl. and option -L lists the dialects supported in the ckern validator only if the kern table is available in the font file. conditional icon. π
-V levelβ validation level. possible values are0(default),1(tight), and2(paranoid). and yes2is called paranoid, she's dramatic and we love her. ππ₯-vβ show version. simple, iconic, does exactly what it says. β
π ENVIRONMENT VARIABLES π
FT2_DEBUGβ you can specifycomponent:levelpairs for tracing.levelmust be in the range[1,7]. no negotiating on that one, fr fr.
available components for the ot validator are otvmodule, otvcommon, otvbase, otvgdef, otvgpos, otvgsub, and otvjstf.
available components for the gx validator are gxvmodule, gxvcommon, gxvfeat, gxvmort, gxvmorx, gxvbsln, gxvjust, gxvkern, gxvopbd, gxvtrak, gxvprop, and gxvlcar.
available component for the ckern validator is gxvkern only. that's it, that's the whole list. π
example time:
FT2_DEBUG="otvcommon:5 gxvkern:7"
π important: FT2_DEBUG only works if tracing support is compiled into FreeType. same energy as before β build-time thing, not your fault.
π§ sign-off π§
that's the whole page, bestie! this one's from FreeType 2.15.0, dated October 2026, page FTVALID(1). iykyk ππ¦πΈ
π¦ where this page comes from
- arch rolling: freetype2-demos 2.15.0-1 Β· FTL OR GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms