They renamed
M Plus Code Latin -> M Plus Code Latin50
M Plus Code Latin Expanded -> M Plus Code Latin60
The versioning is rather divers, add more information into the font
specific README file.
Fixes: #1333
Reported-by: LeoniePhiline
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Fonts can only work with paths. The svg has strokes and objects that
render incorrect.
[how]
Convert everything to path than combine all paths.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Shellcheck complains that quotes are missing.
We know that there will not be any problem ever as the elements are hard
coded, but fix to be warning free.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
SemiWide and ExtraWide might be nice in some contexts, but that is not
really the audience of Nerd Fonts I guess.
Lets start with few and we can always add more if there is really a
demand.
Simplify the paths; the old style stems from the time when we patched
all variants per source font. Nowerdays the fonts are few (3 per source)
and will almost always be installed together anyhow.
Shorten the naming a bit for, for example
ERROR: ====-< Family (ID 1) too long (37 > 31): MonaspaceXenon Nerd Font Propo Medium
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Noto Sans-Mono still has a one-advance wide 'fi' ligature.
This should have been fixed by commit
d9f7dbe23 Prepatched fonts: Revive some ligature removal
but obviously has been overlooked.
[how]
Add its fi-lig subtable to the remove list for all Noto fonts.
Fixes: #1400
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The left leg is far too thin.
The gaps between the left legs are rather small.
That makes noticing the details hard, but that are decisive elements.
[how]
Manually edit in Inkscape...
Reported-by: berlinx2104
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We want the workflow to do this so that we have control over the
fontforge version that is used.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
To avoid filename clashes between Seti and Custom we have all Custom
files with a _nf suffix. This has not been documented.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Some fonts will not be released to the repo; but only exist patched as
release atrifacts. This needs adapted readmes.
[how]
If such a font is encountered direct links to the release archives are
put into the readme file.
Decide based on information in the font.json file.
If no info is found in the json file (i.e. all existing fonts) it
defaults to release-also-to-repo behavior.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
-makegroups 0 is not a valid naming mode for releases. The mode is
deprecated and will be removed. Furthermore the mode can produce broken
patched fonts.
[how]
Mode 1 and 2 are too long for some NFP in the family name, so use mode 4.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We do not (try to) copy the upstream webpage, but instead link it.
Also add version information (well, there is no difference between
1.2.0 and 1.2.1, but 1.2.1 is the latest right now).
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
The font has RFN, but we are allowed to use the patched name
"Envy Code R Nerd Font", see PR #1318.
Thanks go to Damien Guard!
Fixes: #1205
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The readmes in the zip and tar.xz archives differ. The zips have only a
very small and generic `readme.md`. The tar.xz have that readme as well as
the `README.md` from the patched-fonts/ directory. This should be the same
for both.
To have two files with names that just differ in case (`readme.md` and
`README.md`) can be problematic on some platforms.
[how]
Combine both readmes into one file - put the generic info in the top of
the readme.
Also include the RELEASE_VERSION if known into the readme. That makes it
more easy to identify which Nerd Font release that archive came from.
RELEASE_VERSION is set in the release workflow.
Fixes: #1284
Reported-by: Jan Klass <kissaki@posteo.de>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
With commit
b6301e590 CascadiaCode: Rehint and use ttf
we replaced the hints done upstream by ttfautohint with hints done via
Visual TrueType, because they render the text more similar to the
variable fonts (hints).
But the version string still mentions 'ttfautohint' because we did not
touch the font files at all except opening, hinting, closing in VTT.
This can be confusing.
[how]
Change the version string to "Version 2111.001; VTT 6.35" via:
* `ttx -i *.ttf`
* Edit `ttx` files and replace version, see above
* `ttx -b *.ttx`
* Move new fonts over old fonts
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The CI process produces a different font than running the
generate-original-source script locally.
Several thing have been checked, to no avail, see #1227.
Turned out the affected SVGs all are somehow ... questionable in their
construction.
[how]
Open SVGs in inkscape, select all (points) and generate new, clean
outline with Path->Union.
Save as optimized SVG.
The (CI) created font file now looks good.
But the cause is still unknown, maybe some sub-library that is used has
changed? I have no clue. Meaning it runs ok locally seems to be no
guarantee it will look the same when run by the CI :-(
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The Ubuntu Condensed font is special because it is designed to be not
part of the `Ubuntu` font family but a self standing `Ubuntu Condensed`
family with just one member.
We want the `Ubuntu Condensed` to be part of `Ubuntu`, as it is usual
for fonts with different widths.
The problem then arises that the width class in the font metadata is set
to 'Normal', while it has to be 'Condensed'. That fact does not become
apparent when the font is in its own one member family, but even there
it is wrong.
[how]
To keep all the other information in the font untouched we just directly
patch that one byte where the width-class is stored - and repair the
checksums afterwards. Nothing more.
The code to do this is the Font Tweaker code in font-patcher, just
copied here for one time use.
Fixes: #1228
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Just run ./generate.
Compare commit
7764e05 Create new octicons.ttf (update to v18.3.0) (2/2)
Fixes: 1213
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Some people, for example the `lsd` project, need an icon with a symlink
directory. That has been dropped by Octicons. Our repacking put some
unrelated bookmark icon on that codepoint; but even an empty glyph would
be not ideal.
[how]
Design a file-symlink-directory from file-symlink-file and
file-directory. In this way it fits nicely into the current design of
Octicons.
Sneak that into the unpacked Octicons archive.
Adapt mapping manually to keep as much as possible constant.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Some sourcefonts, even that are monospaced, have a `fi` and/or `fl`
ligature that maps into one cell. That looks very strange.
[how]
Partially revert commit
148b0c445 Sunset ligature removal
for the cases that have a one-cell `fi`, `fl`, etc ligature, or a `ldot`
related ligature - that is active by default. Discretionary ligatures or
Stylistic Sets are not changed.
Do the removal on all patched fonts for consistency, not just `Nerd Font Mono`.
[note]
On Noto different subtables are needed for Sans, Serif and Sans-Mono. We
can not set up different configs for each, so all are tried in all fonts
and might fail (this is normal).
Same holds for OpenDyslexic Alta, Regular, Mono, Bold...
Fixes: #1187
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The Bold font is bad?
The repo is not maintained?
[how]
The ComicShannsMono is not monospaced ... fix it.
It has Overlapping contours ... fix it.
Create a useful BOLD face.
This was originally PR #1004
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
There is really no reason to have two identical fonts that just have a
different EM.
The family name changed to the previous release from
"Symbols Nerd Font" to "Symbols2048Em Nerd Font"
[why]
As this is a ttf font we choose to keep 2048, and drop the 1000.
When we drop the number the family name is also correct again.
The family name is used by the fontconfig that people probably have
installed, so we should not change that familyname.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Of course it is nice to have blanks in the pathnames, because that means
the filename handling has to be very correct everywhere, quoting the
names and so on.
But it is also a nuisance. And it does not look too good on the command
line.
[how]
Like Meslo, JetBrains Mono, Noto, and Overpass we do not repeat the base
font name in the directory name. (Counterexample MPlus...)
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Since we do not have any other variations anymore it does not make sense
to keep that directory. The renaming with 3.0.0 is a good point in time
to drop it as the filename scheme changes anyhow.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
ttf-iosevka-22.1.0.zip
ttf-iosevka-term-22.1.0.zip
[how]
Download relevant archives and put both into ~/Downloads/iosevka
Run copyall.sh on both dirs.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
A lot people (read: People on Windows) have the variable font (VF) version of
Cascadia Code installed - it comes bundled with Windows Terminal.
The static Cascadia Code instances that we use for patching are hinted
with ttfautohint which creates small sized glyphs that are visibly very
different. People compare the static Caskaydia Cove with the VF Cascadia
Code and are surprised.
[how]
First switch from the CFF outlines to TTF outlines - that is the
original version (i.e. otf -> ttf). It is unknown why we created patched
CFF fonts instead of the TTFs. To get as close as possible to the
intended look of the glyphs we should stick with the outline type.
Then we need to re-hint all the fonts, to get hints that are comparable
to the VF hints. We can not use the hints of the VF because the outlines
are different: The VF has (of course) overlapping outlines, while the
static ones (as usual) have not.
The re-hinting can be done with VTT or TTH - both showed results that
are more like the original VF font. The usual ttfautohint has been used
of the static fonts in the font release and can not be used. It is the
reason for this whole problem.
* Used VTT 6.35
* Open font file in VTT
* Import all programs
* Generate 'VTT talk' via Tools -> AutoHint -> LightLatinAutoHint
* Save font file as ...
References:
https://github.com/microsoft/cascadia-code/issues/371https://learn.microsoft.com/en-us/typography/tools/vtt/Closes: #998
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The variation lists are very long and noone will ever look at them.
Instead we have a font-info.md file, for what reasons?
[how]
Replace the function the font-info.md file had with README.md.
Drop all the variation lists.
Automatically call the readme creation in the gotta-patch-em instead of
just hinting that one should call that (standardize-and-complete-readmes.sh).
[why]
When creating the readmes the config.cfg are checked for details on a
possible RFN renaming. There are specific variables that need to be
filled in these cases: config_rfn and config_rfn_substitue.
The same RFN information is already stored in the fonts.json database.
Having the information stored in two locations is always problematic and
can easily lead to inconsistencies.
[how]
Remove information from config.cfg file and use data stored in
fonts.json instead.
Drop config.cfg files that are empty afterwards.
Also fix some patchedName in fonts.json en passant.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The special Hack postprocessing does this:
* Add a dummy signature
* Set fsType to zero
* run ttfautohint on the font
There once has been reason to do this (probably), but on currently
supported fontforges this is not needed anymore.
* Fonts run fine without the signature
* fsType is anyhow zero, set by fontforge
* the preexisting hinting is kept by fontforge
(furthermore: We do not want hints for the symbols usually)
Double-checked source and patched font with ttx, instructions (hints)
are definitively existing and equal in the patched font.
So we do not need any of this special postprocessing anymore.
See also commit
e9d84b6c0 Adds WIP scripts and logic for post processing patched fonts (WIP for fixing #70)
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
This commit does the actual update of the octicons.ttf font file.
The script to update is 'generate'. It uses the mapping file from the
previous commit to create a new compatible font.
Some icons have meanwhile been dropped. We use their codepoints for new
icons.
Also fix a little bug in the GlyphInfo writer.
Following the output of the actual script run.
$ ./generate feature/update-octicons ● 1 … 5 ⚑ 5
Reading mapping file
Found 172 entries
Fetching octicons archive "v18.3.0.tar.gz"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 550k 0 550k 0 0 504k 0 --:--:-- 0:00:01 --:--:-- 919k
Unpacking octicons archive
Found 576 svgs
Found 309 icons after de-duplicating
Renamed cloud-download -> download
Renamed cloud-upload -> upload
Renamed clippy -> paste
Renamed mail-read -> read
Renamed primitive-dot -> dot-fill
Renamed primitive-square -> square-fill
Renamed settings -> sliders
Renamed dashboard -> meter
Renamed trashcan -> trash
Renamed paintcan -> paintbrush
Missing octoface
Missing keyboard
Missing gist
Missing file-text
Missing file-pdf
Missing jersey
Missing radio-tower
Missing repo-force-push
Missing mail-reply
Missing arrow-small-right
Missing gist-secret
Missing no-newline
Missing arrow-small-up
Missing arrow-small-down
Missing arrow-small-left
Missing file-symlink-directory
Missing circuit-board
Missing watch
Missing text-size
Missing ellipses
Missing plus-small
Found 151 (of 172, missing 21) and new 158
Filled in missing, remaining new 137
Appended remaining new, total new mapping 309
Generating octicons.ttf with 309 glyphs
Generating GlyphInfo i_oct.sh
Finished
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The octicons got a lot updates.
But they do not have a font anymore.
[how]
Keep our old codepoints constant, but add the new icons thereafter.
This commit just moves all the mechanics in and moves the (old) font.
No actual update here.
The mapping file has been created with the analyze_octicons script.
Fixes: #490
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We need only one version, and having both in the release package will
lead people to install both ... which is not good.
And there is not really a reason to have the otf version.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We need only one version, and having both in the release package will
lead people to install both ... which is not good.
And there is not really a reason to have the otf version.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Because we do not know if a complete family of fonts has an italic face
we must always assume it does. To get clean RIBBI families in ID1/2 we
create a different family for the oblique slant.
But that is not needed if the font does not have an italic slant, but
just an oblique one (like Bitstream Vera and descendants).
[how]
Add new command line option for font-patcher that specifies if the
family of fonts should be patched under the assumption that there might
be an italic face (default), or if we are sure there is none (and we can
leave oblique in the RIBBI group).
This is then applied to the config.cfg files.
Note that this does not take into account any other of the known_slants.
But they are not encountered in any of our prepatched fonts.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We have both
iA Writer Duospace
iA Writer Duo S
These are the same fonts, Duospace is just the former name of Duo S.
Duospace is version 1.005
Duo S (and Mono and Quattro) is version 2.000
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Most fonts can run with the full naming (--makegroups 1).
But for some (especially with full fledged subfamilies) the names become
too long. Here we need to select more shortening.
[how]
This can be either done/stored in the font-patcher script, but if you
need shortening (and which) still depends on what set of fonts you want
to patch.
So instead we make it a config.cfg option of the unpatched-fonts.
[note]
Findings:
3270 2
Agave 1
AnonymousPro 1
Arimo 1
Aurulent 1
BigBlueTerminal 1
BitstreamVera too long, and has RFM
CascadiaCove 4
CodeNewRoman 1
Cousine 1
DaddyTimeMono 1
DejaVuSansMono 1
DroidSansMono 1
FantasqueSansMono 1
FiraCode 2
FiraMono 1
Gohu 1
Go-Mono 1
Hack 1
Hasklig 2
HeavyData 1
Hermit 1
iA-Writer PROBLEM Quattro / Duospace
IBMPlexMono 1
Inconsolata 1
InconsolataGo 1
InconsolataLGC 1
Iosevka 4 (would also work with 3, but keep same with Term)
IosevkaTerm 4
JetBrainsMono 4
Lekton 1
LiberationMono 1
Lilex 1
Meslo 1
Monofur 1
Monoid 1
Mononoki 1
MPlus 2, latX -> 3
NerdFontsSymbolsOnly 1
Noto 5, but!! "ExtraCondensed ExtraLight Italic"
OpenDyslexic 1
Overpass 2
ProFont 1
ProggyClean 1
RobotoMono 3
ShareTechMono 1
SourceCodePro 4
SpaceMono 1
Terminus 1
Tinos 1
Ubuntu 2
UbuntuMono 2
VictorMono 4
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We use a prepatched font not the original Anonymous Pro.
The prepatched font contains no bitmaps and is thus like
Anonymous Pro Minus. Also some font internals that fontforge does not
copy out of the box are differing.
And we miss the Bold and Italic variants.
[how]
Crossgrade to original Anonymous Pro as source and add the missing
weight/style.
Add Anonymous to SIL.
Handle 'Pro' naming parts (do not detect 'r' as short for 'Regular').
[note]
Maybe related: #1174
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The old naming is the reason for a lot problems. It creates a lot of
duplicate names and breaks bigger font families.
[how]
After introducing --makegroups we now enable it for all fonts.
Remove special cases from config.cfg files.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Both are full fledged families, one specifically for terminal, the other
not. Although it might be that people want both there is a likelyhood
that some just need one set.
Splitting these makes the individual release packages smaller and more
handable, and improves release workflow run time.
[note]
Also fix RFN of mononoki en passant :-}
See comment on mononoki's RFN with the mononoki 1.6 update commit.
See also #803
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Also drop all the bitmap fonts that we have in src/unpatched-fonts/ but
we do not do anything with them.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
They started with new version numbering and have different version on
each subset.
The complete naming set changed. See their website to find the font you
used before.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The unicode 2630 (Trigraph Heaven) is often used in vim powerlines (at
least).
[how]
Draw nice 3 rectangles.
Insert 'pa1', always scaling also in non mono fonts. That needs a new
attribute: '!'.
The scaling is in fact an issue. Using 'pa' is the way of least
resistance.
Without the new attribute the glyph would look different in mono and
nonmono, which is not nice.
Fixes: #589
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
For some unknown reason some files have the execute right bit set in
git. That is neither needed nor recommended.
The *.cfg files are pulled in with `source`, so they do not need to be
executable.
[note]
Example command to check
find . -perm /111 -type f
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The heavy angle brackets (276E and 276F) are used for a lot of prompts,
but we do not yet patch them in and a lot of fonts do not bring them
themselves.
[how]
One time rip the glyphs out from Hack and patch them in always, but
careful (do not replace existing glyph).
We take the whole set 276C - 2771.
[note]
Usually we should never again need to run the generate-extraglyphs
script, we rip them out now and they look good. Whatever Hack does with
new versions we can follow but that is optional.
Related: #1110
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
In the course of #271 the source for SourceCodePro switched: Before we
used SourceCode Powerline [1], afterwards the original one [2].
One font file has been forgotten, as the font files were differently
named in both variants.
This caused issed with parallel build in the CI and font tweaking (which
is done as additional process after the actual patching).
[note]
[1] https://github.com/ryanmcilmoyl/sourceCodePro-Powerline
[2] https://github.com/adobe-fonts/source-code-pro/releases/tag/2.030R-ro%2F1.050R-it
Maybe, this is not entirely clear, and the 'Powerline' variant does not
have an Italic style.
Fixes: #1084
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[how]
Icon taken from https://github.com/vlang/v-logo
Edit in inkscape:
- remove shadow
- simulate shadow by cutting right side
- change to black and white
Fixes: #630
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We get very bad names using the old naming algo:
`mononoki BoldItalic Nerd Font Complete`
Also the typographic subfamily is useless (will not be set bu the old
algo)
[how]
Use `--makegroups` which results in correct fullname
`Mononoki Nerd Font Complete Bold Italic`
Related: #575
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We had a copy of the original Fira Code website.
But all the comments and links are only partially relevant for the Nerd
Fonts patched version, e.g. how to install.
[how]
To reduce confusions do not copy the original readme, but link it.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The JetBrains Mono font has a lot of different families. A lot users install
just all "JetBrainsMono Nerd Font" families, and this can break in a lot
different ways.
[how]
Just turn the feature on in font-patcher (via patch-em-all's config).
Fixes: #542
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Material Design Icons has grown quite a bit.
[how]
Add the icons at their original position which is in PUA1.
Use the desktop font instead of the webfont.
Add cheat cheat file.
Fixes: #365
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The new asm icon replaces the apple icon.
I believe this has been entered as offset by mistake.
[how]
Add new icon to bottom.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The 'new' in the middle can be confusing. What is the meaning?
Also the offsets are easier to graps if they are all equally wide (i.e.
have leading padding zeros).
See https://github.com/ryanoasis/nerd-fonts/pull/990#discussion_r1016193488
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The Iosevka font has a lot of different families. A lot users install
just all "Iosevka Nerd Font" families, and this can break in a lot
different ways.
I will try to collect Issues possibly caused by this in PR #1019.
[how]
Just turn the feature on in font-patcher (via patch-em-all's config).
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We have 'license' is the archives, but the 'licence' files are missing.
We allow all-caps and all-lowercase, but not camelcase 'License'.
Sometimes we have OFL.txt which is missing.
[how]
Enable both spellings and also camelcase.
Enable OTF text files.
Also fix misunderstanding of regex vs glob ([] vs {}), where the glob
needs a comma and the regex does not.
Add missing LICENSE files for 2 fonts.
Fixes: #979
Reported-by: Jeremy Thorn <moralground>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
$ ./optimize-original-source.sh doit
Checking for SVG simplifications
Files might be MODIFIED by this run ('doit' specified)
Found 177 svgs in ../../src/svgs
Simplification for ocaml.svg (5249 -> 3604) 68%
Simplification for apple.svg (3228 -> 2302) 71%
Simplification for pug.svg (5507 -> 4243) 77%
Simplification for jenkins.svg (13014 -> 6406) 49%
Simplification for firefox.svg (6276 -> 4640) 73%
Found 5 svgs to simplify
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Some of the svgs still render incorrect in fontforge.
[how]
Different issues, for example wrong direction of the sub-path and still
(forgotten?) multiple layers, etc. Manually tinker until they work.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Outline fonts are a bit picky about the embedded svgs.
Best is if there is only one path.
Ungrouped and path merged in Inkscape manually.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Some icons are now existing twice.
* Their crystal icon looks wrong (rotationwise), compare with https://github.com/crystal-lang/crystal
* Their C logo misses the standard's hex shape
* Their C++ logo misses the standard's hex shape
* Their Elixir icons has a dent in the reflextion?
* Their Elm icon is colored
* Their Git Folder is not a folder
* Their Kotlin icon is colored
* Their Puppet icon is more correct
* Their Pursescript icon is identical
* Their Windows icon is more modern
That means:
* Do not include their crystal, elixir, elm, kotlin, purescript
* Do not include our puppet, windows
* Keeping both c, c++, git-folder
[note]
Keeping their old files around with changed suffix to find this commit
in the future on updates.
Reuse old icons that were labeled as 'seti' but have been vanished as
new custom types with appropriate file naming.
And remove 'red' versions of icons. We have a black and white font...
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Add "_nf" suffix to our own svgs.
Add our icons database
Adapt filename in icons database
Just change the filenames of the custom icons to include the new "_nf"
suffix.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Keeping the ligature removal tables up to date with source font updates
is quite a maintenance burden.
Usually if a terminal supports ligatures at all it has an option to
disable them.
Present ligatures do not prevent monospaced fonts and monospaced
detection.
It was only present in v2.0.0, and the code has been broken with v2.1.0.
[note]
Updated example ligature removal table to the one for Iosevka.
Left stubs in relevant code passages to facilitate finding this commit.
Fixes: #976Fixes: #975Fixes: #973
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We do not want fonts with gap. Gaps are explicitely removed on patching
anyhow. Why should the templates have gaps?
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
In JetBrainsMono v2.242 the exclam-equal ligature is broken.
It has been fixed in v3.000.
[how]
The JetBrains Mono v3 has not been released yet. So we just transplant
the one broken glyph from v3.000 into our v2.242.
[note]
https://github.com/JetBrains/JetBrainsMono/issues/494Fixes: #963
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We have only a rather old 3270font: v1.2.23
This new font can be processed with current FontForge without problems.
And we have the benefit of an update.
[how]
Because the paths change (Medium->Regular etc) we need to purge the
patched-fonts/ directories manually. The automatic purging does work
only if at least the paths are kept.
[note]
https://github.com/rbanffy/3270fontFixes: #947
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
https://github.com/googlefonts/Inconsolata
Only small changes visually, but of course completely different from the
paths (because now the source is a 2D variable font).
Small letter t changed a bit.
Under the letter dot and block-building glyphs changed.
Subscript numerals.
Closes: #774
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The glyph is needlessly detailed (for a font).
There is another, more simple glyph, which is also used by fileicons.
More details see PR #833.
Reported-by: tecosaur <contact@tecosaur.net>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Entering two consecutive vertical-bars (i.e. `||`) results in the
display of just one - the right - bar glyph.
[how]
The ligature removal is only partially implemented. The rule at work
here is not removed. There are two parts at work:
One rule to replace the first bar with nothing.
One rule to replace the second bar with a ligarture glyph with negative
left bearing, that shows two bars.
The second rule has been removed, but the first is still there.
This commit also removes the first rule.
[note]
The whole design here is broken. We remove only some rules and leave
others intact, for reasons unknown to me. Other ligartures will also be
only partially removed and leave the user with unreadable output.
We should either remove all (!) tables and not just some, or leave the
ligatures in the font.
As the ligature removal has been broken at large anyhow (see previous
commit), I would suggest to not remove any ligatures (anymore).
Fixes: #934
Reported-by: Rádler Ákos <akos.radler@gmail.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
This is so big, it will shrink 2 times with a
optimize-original-source.sh run, and we want to have 'optimal' glyphs
after the next (automated) CI run
[how]
Use optimize-original-source.sh once and just commit the php.svg.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
When we add a custom glyph (or want to update Seti) the process is
rather laborious and we are needed to change the font and the
accompanying `i_seti.sh` in sync.
[how]
We use a data file to map icon (svg) filenames to codepoints and
readable names.
That file is parsed and the font and info file is created (overwritten
in the repo); and could then be easily committed. This can be a CI
workflow.
Having a dedicated mapping file (`icons.tsv`) enables us to have stable
codepoints for the same symbol over time. Changes in codepoint
allocation can be checked in git.
Having the font autogenerated help guarantee that the icons are all
likely scaled. We rescale them all to the same size and mid-position.
That is not needed for font-patcher, because it rescales and shifts
again based on to-be-patched font metrics. But it certainly is better
for a view into the original-source font.
Sizes and position are still roughly equivalent to the hand positioned
glyphs.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The commit
59c45ba4e Remove negative bearings on 2048-em glyphs
has been introduced to fix some problems with the symbols only font, at
least from the commit message.
That font is intended to be used in font-fallback situations, and so we
do not know the advance width of the current font anyhow. It does not
make sense to enforce an advance width with these.
[how]
Create the NerdFontsSymbolsOnly as if 59c45ba4e would be still in
effect, i.e. with variable advance width.
[note]
There have been a lot discussions about the reverted commit, some can be
found here:
* #900
* #764
* #731
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
The option `--parser` instructs `font-patcher` to come up with the font
naming by utilizing the FontnameParser object.
This sounds logical from a programmers perspective, but the option name
is not descriptive for end users of `font-patcher`
[how]
As usual naming is hard. A short but maybe more descriptive name for the
option can be `--makegroups`; as it describes what the option means for
the end user: functioning font grouping.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
We want to patch Cascadia with `--parser` while all other fonts shall be
patched as before.
[how]
Use the config.cfg file that each source font can have to specify one
arbitrary option to the font-patcher calls.
This is just set in Cascadia's config.cfg, but can be extended to other
fonts gradually.
In this way the stand alone `font-patcher` works as before, unless
someone adds the `--parser` option. Which probably will become the
recommended way to use it over time.
The patch-em-all script on the other hand can be instructed to use or
not to use --parser on a font by font basis via their cfg file.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Also including the italic variants.
We do not use the PL versions but patch in the PL glyphs ourselves.
If this is smart can be discussed (I believe: no).
This does not add 'Cascadia Mono'.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Not sure why they are here, all patched fonts reside now in the
`patched-fonts/` folder.
So we have two times two different symbols only font sets?
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>