[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>
[why]
The symbol only fonts Symbols-1000-em Nerd Font Complete.ttf
and 2048-em in `NerdFontsSymbolsOnly/` are generated from
some 'almost' empty source fonts, that are assumable in turn generated
from the sfd font descriptions in `src/glyphs/`?
The process is not documented and we have issues in the generated font
(for example the glyph for capital `E` is defined (and empty) #581#765).
[how]
Use the existing font definitions from `src/glyphs/*.sfd` directly as
source font. That needs a change in font-patcher because the empty
fonts have no glyphs that can be used to orient the scaling upon. In
that case scale on the source font definitions EM.
Then we need patch-em-all to also patch *.sfd fonts.
And finally we need patch-em-all to take a font specific command line
switch for font-patcher (compare 9e2bc9a26 of #723) to instruct it to
create a ttf rather than a sfd font file.
In the sfd file we additionally set the Panose type.
And the UnderlinePosition is adjusted to match the current patched font.
[note]
Also fix wrong glob pattern in patch-em-all `*.[o,t]tf`. The comma is
for sure some leftover from a '{}' shell pattern, that is not used
anymore. (This comment is probably outdated, due to rebasing.)
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
[why]
Before Font Logos 1.0.0 there was no stable-codepoint guarantee, and the
later revisions (0.18) reassigned the codepoints. That makes updating
for us very hard, because we would have to resort the icons or follow
the codepoint changes.
With 1.0.0 this changed. That new major release introduced not only a
codepoint guarantee, but it also shifted the codepoints from the F100
region to the F300 region, where we put them anyhow (in most cases).
That is one subset less with 'dynamic base codepoint'.
The reassignment of codepoints in Font Logos kept the codepoints stable
for the icons we already have in release 2.1.0. But at the moment the
2.2.0 Release Candidate (which updated Font Logos with commit 557b8da)
have added glyphs, which are on different points as compared with the
Font Logos 1.0.0 release.
What I want to say, we need to get this straight, before our 2.2.0 RC
turns into a Release 2.2.0.
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>