keryx font add¶
Description¶
Installs a font file into this project, or into your user library.
$ keryx font add brand ./Inter-SemiBold.ttf --licence OFL-1.1
installed "brand" into the project scope -> .keryx/fonts/brand.ttf
Usage¶
| Flag | Meaning | Default |
|---|---|---|
--user |
install into ~/.keryx/fonts/ instead of this project |
false |
--licence |
record the licence this font is distributed under | none |
Local files only¶
add takes a path to a file you already have. It does not fetch from a URL or a
font service.
That is deliberate rather than unfinished. keryx does fetch its render engine over the network — but from a signed release it can verify. An arbitrary font URL offers nothing equivalent, and a font is executable-adjacent content that ends up committed to a repository. Obtaining the font, and accepting its terms, stays with you; keryx files it.
The file is parsed before anything is written¶
An unreadable file is refused at install:
$ keryx font add bogus ./notes.txt
ERRO "bogus" is not a font keryx can draw with: parse font: sfnt: invalid bounds
A scope must only offer what it can deliver. Refusing at render time would mean a generation had already been paid for.
Supported formats are .ttf, .otf and .ttc. Variable fonts are not supported
— name a static instance.
Keys are filenames, so they are restricted¶
A key becomes a filename inside the scope directory, so anything that could escape it is refused rather than quietly rewritten:
$ keryx font add ../escape ./brand.ttf
ERRO "../escape" is not a usable font key (letters, digits and hyphens)
Licences are recorded, never enforced¶
--licence writes what you declare into a fonts.yaml beside the files,
along with where the file came from. keryx never checks it and never acts on it.
Committing a project font redistributes it, so the fact is worth recording. keryx does not guess: a licence cannot be reliably detected from a font file, and a wrong guess is worse than silence. When you install without one, it says so:
$ keryx font add brand ./Brand.ttf
installed "brand" into the project scope -> .keryx/fonts/brand.ttf
no licence recorded — committing a font redistributes it; --licence notes what it is
A project font does not travel yet¶
An installed project font lives in .keryx/fonts/ and nothing distributes it. A
colleague who clones the project will not have it, and the reel renders in the
fallback face. Until distribution lands, commit the file or use --user plus
keryx font promote for anything shared.
See also¶
keryx font use— point a theme at what you just installed