Commit graph

2580 commits

Author SHA1 Message Date
Fini
c59bacd90e
Merge pull request #1597 from ryanoasis/bugfix/Ubuntu-ligatures
Bugfix Ubuntu ligatures
2024-04-10 08:07:56 +02:00
Fini Jastrow
8516c9c8b1 Ubuntu: Remove fi, fl, ... ligatures
[why]
The fi and fl ligs are formulated in the font to go through glyphs with
codepoint `F001` and `F002`. That is detected and overwriting that
glyphs with some (Font Awesome) icons is prevented.

The question is: What is more important, to have the fi ligature or to
have the fa-music and fa-magnifying_glass icons?

[how]
We sacrify here Font Nerdism over Icon Nerdism and remove the
ligatures before patching.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-10 08:07:03 +02:00
Fini Jastrow
066d36514c font-patcher: Correct essential glyph detection
[why]
We have two ranges of glyphs to examine:
 1. `0x0000`-`0x017f` is the Latin Extended-A range
 2. `0xfb00`-`0xfb06` are 'fi' and other ligatures

Both ranges are added to the essential glyphs (with their
sub-references, and with other glyphs that are referenced through
possub rules).

That is correct for range 1, but range 2 - the ligature glyphs - should
only become essential if they are indeed used for ligatures by some
rule.

For example with the UbuntuMono font, that does not have any fi ligature
natively, but it DOES have a filled `0xFB01` glyph, we would protect
that glyph and its subreferences (i.e. `0xF001`) - needlessly breaking
the Font Awesome icons in that font.

[how]
Add all glyphs of range 1 to the essential glyphs, but add glyphs of
range 2 only if they have a possub rule attached.

Reported-by: Eli Array Minkoff <eli@planetminkoff.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-10 08:07:03 +02:00
Fini Jastrow
84140625a3 font-patcher: Correct essential ligatures
[why]
The essential glyphs are partially based on which substitution rules
the font has.

And the config.json configuration is able to remove some substitution
rules.

So we must first possibly remove rules and then examine them, not the
other way around, because now we detect 'essential glyphs' for rules
that we later remove.

[how]
Correct order of operation.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-10 08:07:03 +02:00
Fini
f88122f4ad
Merge pull request #1596 from ryanoasis/bugfix/fa-reorder
FontAwesome: Reorder some glyphs
2024-04-10 08:03:30 +02:00
allcontributors[bot]
8999fbf360
docs: add TehPers as a contributor for bug (#1601)
* docs: update CONTRIBUTORS.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-04-10 06:59:40 +02:00
allcontributors[bot]
124c19be59
docs: add eliminmax as a contributor for bug (#1598)
* docs: update CONTRIBUTORS.md

* docs: update .all-contributorsrc

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-04-09 08:50:11 +02:00
Fini Jastrow
1ddfb70dd3 FontAwesome: Regerenate font
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 18:11:23 +02:00
Fini Jastrow
1fe58378a2 FontAwesome: Scale glyphs a bit bigger
[why]
The glyphs can look a bit small(er) when used unscaled, for example in a
Nerd Font Propo font. Note that some icons indeed got smaller, but in
general the generated font is a bit smaller than before.

Related: #1588

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 18:05:37 +02:00
Fini Jastrow
64e55d8d48 FontAwesome: Regenerate mapping
Don't forget to run against the v3.1.1 glyphnames.json.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 17:27:13 +02:00
Fini Jastrow
b441dbd706 FontAwesome: Regenerate remix mapping
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 16:59:16 +02:00
Fini Jastrow
b5ec9d04fe FontAwesome: Leave a gap for Fira progress icons
[why]
We do not want to break the Fira progress icons, but on the other hand
these are so few icons that we can not keep the whole 0x0100 block
unoccupied.
So we just leave a small gap in the FontAwesome codepoints.

[how]
Be careful, the current code moves the icons 'to the back', which will
be different if we ever update FontAwesome. The code will break
(reassign a lot codepoints) then.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 16:58:13 +02:00
Fini Jastrow
2e854ba90f FontAwesome: Fix device icons
[why]
Previously we had icons with an open screen and a button, now it is
filled.

[how]
Swap the icons with the open icons at completely different codepoints.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 16:31:09 +02:00
Fini Jastrow
07ba7a1421 FontAwesome: Allow two identical circles
[why]
F1DB had an open circle, called circle-thin.
That must now come from the regular set.
Unfortunaly circle_o at F10C already is also the same regular set icon.
And we try to prefer the solid set if a regular set has been used
already.

[how]
Add one specific exception to the rule :-(

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 16:24:05 +02:00
Fini Jastrow
c2be39d2a9 FontAwesome: Swap some icons
youtube and cloudsmith should change their codepoints, because youtube
occupies a 'lesser' youtube codepoint and yields a 'better' codepoint to
cloudsmith.

Better means the icon looks more like in FA 4.

Also swap the devices icons that in 4 showed a screen and now it is
filled.

[how]
The mechanics is a bit ... ugly.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 15:55:03 +02:00
Fini Jastrow
e4ad9ee693 FontAwesome: Fix open comments icon
[why]
When creating the renaming table the wrong number has been entered
(twice the same).

[how]
Correct the renaming thereby making the renamed icon visible.
The icon that has been 'kicked out' is moved to the end of the patched
block.

New:
F0E6 F0E6 regular/comments.svg

Moved:
F374 EFC2 brands/avianex.svg (was previously on F0E6)

Renamed:
RENAME comments_o to comment_o (F0E5)

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 14:43:30 +02:00
Fini Jastrow
9bb694cafc FontAwesome: Fix remove_sign and ok_sign
[why]
The open variants of circle_xmark and circle_check are missing.

[how]
Rename the filled versions to their old (i.e. FA 4.2) names
(remove_sign and ok_sign) and let the open (regular) variants
find their place automatically.

Because we now have two more icons that would move all codepoints we can
either drop the icons that occupied the circle_xmark and circle_check
codepoints before, or we move the to the end (unpatched yet) region.

As these are just some more arrows, we drop them.

Dropped:
F30B F05C solid/right-long.svg
F30C F05D solid/up-long.svg

New:
F05C F05C regular/circle-xmark.svg
F05D F05D regular/circle-check.svg

Renamed:
RENAME circle_xmark to remove_sign (F057)
RENAME circle_check to ok_sign (F058)

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-08 14:31:36 +02:00
Fini Jastrow
b53f205316 doc: Update readme a bit
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 17:47:16 +02:00
Finii
99f8e0de14 [ci] Update FontPatcher.zip 2024-04-04 13:21:36 +00:00
Fini Jastrow
e5b594faa4 CI: Prepare Casks release
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 12:25:01 +02:00
Fini Jastrow
0cdbaa83f6 Fix image-preview-paths in fonts.json
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 12:00:55 +02:00
Fini Jastrow
16121f41c7 doc: Update Sankey diagram
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 11:14:09 +02:00
Fini Jastrow
8dfc4e4de7 Fix new Powerline icons tag names
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 11:13:19 +02:00
Fini Jastrow
16e37efe04 doc: Update changelog
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 10:12:47 +02:00
Finii
3452b7b3e7 [ci] Regenerate CSS files 2024-04-04 08:02:08 +00:00
Finii
effbc21939 [ci] Regenerate fontconfig 2024-04-04 08:01:27 +00:00
Finii
a3e0a4aa82 [ci] Rebuild patched fonts 2024-04-04 07:55:57 +00:00
Finii
1895050935 [ci] Bump release version 2024-04-04 07:53:24 +00:00
Fini Jastrow
e665d39328 Terminus: Remove old patched font directories
[why]
With commit
  23a14f184 Update Terminus to 4.49.3

we dropped the subdirectory structure of Terminus, but forgot to remove
that structure in the patched-fonts/ directory. The release will clear
the destination directory but not remove subdirectories, so we end up
with the 3.1.1 and 3.2.0 patched font files in the repo.

Luckily this is catched by the archiver process:

[Nerd Fonts]  Limiting archive to pattern 'Terminus'
[Nerd Fonts]  Packing Terminus.tar.xz (24 fonts)
[Nerd Fonts]  Did not pack expected number of font files! Likely same font names for different paths.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 07:06:15 +02:00
Fini Jastrow
5841890d98 Material Design: Correct i_md.sh
[why]
Has double entries.
This has been detected by generate-css that got that check recently.

[how]
Use new generator script.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 01:34:05 +02:00
Fini Jastrow
6790860132 generate-glyph-info: Modernize and fix double entries
[why]
When the to be examined font has the same glyph with multiple unicode
codepoints (altuni) the generated list will include the icon multiple
times (with the same name).

[how]
Use glyphs only at their main codepoint.

Also modernize the code a bit.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 01:34:05 +02:00
Fini Jastrow
ae7bc7cde0 CI: Adapt to new artifact actions
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-04 01:34:00 +02:00
Fini Jastrow
f1c2c0f3a2 CI: Adapt to new artifact actions
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:54:17 +02:00
Fini Jastrow
0320a09057 CI: Fix gh-release action
Finally there was a fixed release, see

https://www.github.com/softprops/action-gh-release/pull/406#issuecomment-1986390444

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:32:40 +02:00
Fini Jastrow
6a1a71dbf5 Trigger Release 3.2.0
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:24:14 +02:00
Fini Jastrow
9a06ee4ec6 name-parser: Extract duplicate code into function
CodeClimate issue

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
51d698cc53 Revert "name-parser: Remove superfluous Regular from ID17"
Hmm, this is probably not what we want, but I would like to keep the
commit for future reference.

This reverts commit ecca0a4f35.
2024-04-03 16:18:46 +02:00
Fini Jastrow
7d3c59b072 name-parser: Remove superfluous Regular from ID17
We do not need "Condensed Regular" as ID17, a simple "Condensed" is
enough.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
8b69828c97 name-parser: Fix keep-regular rule
[why]
The keep-regular rule should add 'Regular' as weight if there is no
weight (e.g. Bold) or style (e.g. Italic).

But when a font does have neither but has a widths specifier it is also
not added.

[how]
Check for some conrete weight and not only any entry in the weight
token, because we - unfortunately - mix weights and widths in that token
set.

We do not need to check the styles because it is technically impossible
for it to comtain Regular and something else.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
d8333910db Add UbuntuSans to fontfilenames
Has been forgotten...

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
4fb601bd8f name-parser: Rename Recursive Semi Casual differently
[why]
"RecMonoSemi" looks a bit broken.

[how]
Unchanged version "RecMonoSemicasual" is two chars too long for NFP.
This is independent on makegroups mode, because the PS name is affected.

Use "RecMonoSmCasual" which is just the right length and still the
original is discernible (I guess).

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
e1f7f4b59c name-parser: Prevent wrong modifier detection
[why]
Modifier on their own are not allowed (except "Demi").
The previous commit where we changed the CodeClimate fix from
' ' to '' allowed any modifier to be a stand alone detected word.

This resulted in this font name:
  RecMonoCasual Nerd Font Propo Semi

[how]
Remove the cumbesome CodeClimate kludge completely, it just makes the
code more complex without any real benefit. Codeclimate just complains
because our tables look so "similar" :rolleyes: That's data dude!

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
9bf159f414 name-parser: Fix Terminus-Bold-Italic parsing
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
c1161d4762 query_names: Only consider basic language
[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>
2024-04-03 16:18:46 +02:00
Fini Jastrow
51c917212c Remove obsolete patched MPlus fonts
[why]
With commit
  72c335de1  Update M PLUS

the fonts CodeLatin and CodeLatinExpanded got renamed to CodeLatin50 and
CodeLatin60. The old build artifacts still linger while the new fonts
were added.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
be3ee4854f name-parser: Add "thick" weight for Lilex
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Fini Jastrow
be48f93710 name-parser: Fix style names two-language-mode
[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>
2024-04-03 16:18:46 +02:00
Fini Jastrow
9d1f4a2cda ZedMono: Add missing font face
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2024-04-03 16:18:46 +02:00
Finii
e8d5f5aa5f [ci] Update FontPatcher.zip 2024-04-02 18:51:05 +00:00
Fini
830d0e652f
Merge pull request #1585 from ryanoasis/feature/font-logos-120
Update Font Logos to 1.2.0
2024-04-02 20:41:53 +02:00