[why]
We have now fonts where names for multiple languages are set
(differently) but we need to compare only the base language which is
English US.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The code needlessly create two language ID17 even if ID16 is only one
entry / one languange. ID17 is always the same for both languages.
This is an example for the wrong way:
======== BlexMonoNerdFont-Text.ttf ========
SFNT Fullname ID 4 BlexMono Nerd Font Text
SFNT Family ID 1 BlexMono Nerd Font Text
SFNT SubFamily ID 2 Regular
SFNT Pref Family ID 16 BlexMono Nerd Font
SFNT Pref Styles ID 17 ('Text', 'Text')
SFNT PS Name ID 6 BlexMonoNF-Text
SFNT Compatible ID 18 -
SFNT CID findfont ID 20 -
SFNT WWS Family ID 21 -
SFNT WWS SubFamily ID 22 -
PS fontname BlexMonoNF-Text
PS fullname BlexMono Nerd Font Text
PS familyname BlexMono Nerd Font Text
fondname None
This is an example for the correct way (two ID17 when we have two ID16):
======== NotoSerifCondensedNerdFont-BlackItalic.ttf ========
SFNT Fullname ID 4 NotoSerif Condensed NF Black Italic
SFNT Family ID 1 NotoSerif Cond NF Black
SFNT SubFamily ID 2 Italic
SFNT Pref Family ID 16 ('NotoSerif Condensed Nerd Font', 'NotoSerif Cond NF')
SFNT Pref Styles ID 17 ('Black Italic', 'Black Italic')
SFNT PS Name ID 6 NotoSerifCondensedNF-BlackItalic
SFNT Compatible ID 18 -
SFNT CID findfont ID 20 -
SFNT WWS Family ID 21 -
SFNT WWS SubFamily ID 22 -
PS fontname NotoSerifCondensedNF-BlackItalic
PS fullname NotoSerif Condensed NF Black Italic
PS familyname NotoSerif Cond NF Black
fondname None
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
This does not pull in all icons of 6.5.1, but only of
'Region A' and 'Region B', see script `remix` and
PR #1563.
It keeps the codepoints constant for existing icons.
Fixes: #1550
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Usually we want the width before the weight:
ZedMono Nerd Font Extended ExtraBold Italic
but we get:
ZedMono Nerd Font ExtraBold Extended Italic
The reason is that we do not sort widths and weights and handle them as
one list, keeping the original order.
All fonts but Zed have the width before the weight and it never turned
up
[how]
Handle widths and weights on their own and only afterwards concattenate
width (first) to weights (second).
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
When we add a dummy we need to remove that later on.
Originally that has been introduces to avoid a wrong code duplication
warning.
See how the blank leaks into the name:
ERROR: ====-< Family (ID 1) too long (38 > 31): ZedMono Nerd Font Extended ExtraBold
DEBUG: =====> SubFamily (ID 2) ok ( 6 <=31): Italic
DEBUG: =====> Fullname (ID 4) ok (45 <=63): ZedMono Nerd Font Extended ExtraBold Italic
DEBUG: =====> PSN (ID 6) ok (33 <=63): ZedMonoNF-ExtendedExtraBoldItalic
DEBUG: =====> PrefFamily (ID 16) ok (17 <=31): ZedMono Nerd Font
DEBUG: =====> PrefStyles (ID 17) ok (27 <=31): Extended ExtraBold Italic
DEBUG: =====> PrefStyles (ID 17) ok (27 <=31): Extended ExtraBold Italic
DEBUG: =====> Filename 'ZedMonoNerdFont-ExtendedExtraBoldItalic.ttf'
(Note trailing blanks even in ID 1.)
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
This squashes also these commits:
* ds-store
* ZedMono: Clean up files
Remove files that should not be in the PR, because they are autocreated
or belong somewhere else.
* Also divide Extended and non-Extended versions.
* ZedMono: Fix metadata
* ZedMono: Fix some metadata
* ZedMono: Drop some more exotic weights and restructure dirs
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
'for Code' variants.
Rename RecMonoSemicausal to RecMonoSemi to avoid too long font names
after we add 'Nerd Font Mono' )or even (NFM) to it.
Fixes: #845
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Sqashed these commits:
* Remove Thin, Extra-Light, Semi-Bold and Heavy variants of IosevkaTermSlab
* Remove Thin, Extra-Light, Semi-Bold and Heavy files after unpacking
* No more subfolders per weight
* Revert commiting patched fonts
* Rewrite update scripts
* Update readme.md
[why]
The outlines in Terminus 4.49.2 are rather weird. Autoconverted but not
too nice.
[how]
Update to 4.49.3 as tis has much better outlines.
Fixes: #1329
Suggested-by: Wiesław Herr @herself
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
SC2059 (info): Don't use variables in the printf format string. Use printf '..%s..' "$foo".
Which is hard(er) because the sequences are not interpreted unless they
are in the format string.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
A more conceise version of the Powerline test, designed to show
the dreaded 'faint vertical lines' phenomenon from LCD antialiasing
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
For new fonts we do not create one subdirectory for each font file anymore.
The (historic) reason were the many variants that each font file had been
patched with. Nowadays we just have 3 variants for each font file.
And anyhow this font is release archive released only.
[how]
Simplify update script and move font files.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Forgotten after update.
[note]
Also remove old old configure file that has been used for fast test
runs. It has the wrong format now anyhow.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The code is rather convoluted and one can not follow what is done.
[how]
Add function that abstracts some steps away.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
This sets out to circumvent a problem with VisualStudio 2022. That
application seems to have problems with fonts when the ID16 is not a
prefix in ID1.
We have this when --makegroups >= 4, because
ID1 has the short name suffix 'NF'
ID16 has the long suffix 'Nerd Font'
These fonts can be selected in VisualStudio 2022, and the preview works
ok, but once active some replacement default font is used instead.
The problem vanishes if ID16 and ID1 have the same stem, or rather ID1
has someting added on top of ID16; but ID16 is a substring of ID1.
See more discussions in #1442
[how]
Write both forms in ID16 fields, 'NF' and 'Nerd Font' suffixes. This
works as long as the application considers all languages equal.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Albeight documented in the comment not all non English-US entries are
removed but just al TO_DEL ones.
[how]
Put the conditional in the right position.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We need the glyphnames to be unique, or some glyphs will not be
accessible later (in the cheat sheet, css, glyphnames).
[note]
Also already remove one non-effective duplicate that is first an alias
and later a real glyph in i_seti.sh
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Two glyphs may not have the same name (normally).
Our glyphnames.json will break.
[how]
Do not add two entries with the same name but rather report the
codepoints in the bottom.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Native MacOS has only an ancient Bash 3.x
But we use arrays... and rewriting only to support 15 year old shells?
[how]
Check the Major Bash version number and bail out if too old.
Fixes: #1505
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
0xProto (and possibly others) use a default font for the previews.
[how]
We need to put the font family names in quotes...
Reported-by: Lucy Phipps <landfillbaby69@gmail.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The colors have been changed to increase the contrast.
See also commit
c840fd5e Improve text contrast
Fixes: #1524
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
When nothing is specified there is only one patcher running instead of
number-of-threads patchers. But we want the speedup as default.
[how]
Use `-j0`, although it has a small bug. We could also use `-j100%` but
then the output might confuse people even more?
Reported-by: nobk <nobk@noreply.github.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Some valuable information might be in the logfile, that gets created
only on demand.
[how]
Copy it over to the output if existing.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The script does not allow blanks in the font filenames.
There are also some shell warnings when run.
[how]
Simplify and always use `parallel` to run the job, even when the user
selects just one job. The problem is deciding if the passed PN is the
number one or not. We do not want to fail, but the numeric comparison
operator fails on non numbers (sometimes).
Use null termination as usual to pass filenames with blanks from a find
into something else.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
For testing we might want to execute one command (e.g. font-patcher run)
once for each source font. We need to decide which of the font files is
a good choice.
[how]
Best would maybe to use the font that is used for the image previews.
We add that information for each font into the 'database'. Then we can
for example do stuff like:
while IFS= read -d $'\n' -r f; do
ls -l ../../src/unpatched-fonts/"${f}"
done < <(jq -r '.fonts | .[] | ."imagePreviewFontSource"' lib/fonts.json)
This is already utilized for the helper tools that are hid in the
generate-font-image-previews.sh script.
Note that DaddyTimeMono and NerdFontSymbolsOnly has "--ext ttf" set in the
config, so the information provided for that fonts is wrong.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
All the different ligature removal calls are becoming more and more a
problem, because we have only one config.json for all fonts in a
font-root-directory. But the Noto variants have the ligatures in
different lookups. With the new font we finally remove lookups in the
new font that have a completely different contents then the lookups we
wanted to remove in the other family.
So the config.json is becoming more flexible: Now first we seach in the
concrete font file directory and only if there is no config we progress
to the font root directory and search there.
See also commit
d9f7dbe23 Prepatched fonts: Revive some ligature removal
Here we have
* fi and similar in lookup 41
* l-dot and similar in lookups 13, 14, 15
Fixes: #1472
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
History of the cask name:
It started as font-aurulentsansmono-nerd-font.rb, named by us (Nerd Font)
ecdf756a62
Then it has been dash-i-fied font-aurulent-sans-mono-nerd-font.rb
e8c2732486
Then just one year ago the Nerd Font release CI got an overhaul and I
(personally) put in font-aurulent-nerd-font.rb, despite the fact that I
did look up all cask names and put them into a 'database' in our CI:
c8cb5c7 casks: Hardcode cask names in fonts.json
[how]
Drop the wrong cask name (font-aurulent-nerd-font.rb) and use the more
correct and older one (casks: Hardcode cask names in fonts.json)
[note]
See also
https://github.com/Homebrew/homebrew-cask-fonts/pull/8704
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
For the fix in commit
d3ee35db name-parser: Unify abbreviations in family names
we dropped the alternative Family name with 'Nerd Font' in the cases
where the ID1/2 Family is just 'NF' (and equivalents).
The current cask generator will not find the family then anymore.
[how]
Also allow 'NF' as string, but that might trigger in the wrong places,
so not so nice.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Usage is a bit ... hard, because we need to do this before the release
is published.
Download the complete artifact zip archive from the release-drafting
run.
Unpack it into the repository (will end up in patched-fonts/)
Pack all archives with archive-fonts.sh
Then use this tool to extract the names and sizes of the artifacts.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
When shortening the rare gases names to the element symbol
Radon is named 'Rd' while it should be 'Rn'.
Atomic number 86 on the periodic table.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The font-logos project has been updated including 67 new icons, in which
are included GNU/Linux distributions, desktop environments, window
managers, desktop applications, some organizations and more.
Now the used range is F300-F372, 115 available logos.
After the working draft name Monispace the final patched font name will
be Monaspice.
* It keeps the characteristic `Mona` in the beginning
* It changes just one character
* The replacement is still a real word
* The replacements sounds very similar
Also other very good names have been suggested, thank you all for the
input!
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
in generate-font-image-previews.sh line 22:
if [ "$imagePreviewFont" != "$patchedName Nerd Font" -a "$imagePreviewFont" != "$patchedName NF" ]; then
^-- SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
For more information:
https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
When we changed the naming for Visual Studio all the name entries use a
shortened name if the font needs the shortened name for the ID1/2
names.
This means sometimes the family name ends in NF and there is no
differing (long) family name anymore.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
It is better to have a not-abbreviated file name so that one can make
sense out of the name parts, especially when doing a partial patch.
With the previous commit we ended up with all abbreviated names.
The filename length is hopefully not limited, at least not as severe as
the SFNT table entries.
[how]
We need to store the answers somewhere because the naming is only
understood by the FontnameParser object which we throw away soon.
As fallback we still can parse the SFNT table, for example when the old
renaming is used.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Because the newer Preferred/Typographic names ID 16 and ID 17 have not
a very demanding length limit we add the long form of the name
addendum (i.e. Nerd Font, Nerd Font Mono, Nerd Font Propo).
In the more restricted old names ID 1 and ID 2 we use the short forms
(i.e. NF, NFM, NFP).
This seems to be problematic with Visual Studio (Community) 2022 and the
fonts can be selected but are not really used.
The Postscript family name is never shortened which seems to be of no
consequence, but still is different than the other.
[how]
When creating the Preferred/Typographic Family (ID 16) we check the
shortening mode first and abbreviate the parts as needed and alike ID 1.
This will also change the filenames, because they base on the SFNT
table. We can not change that without changing the whole mechanism.
[note]
Also add new tool that lists all names of fonts, including the
Postscript ones.
Fixes: #1242
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>