mirror of
https://github.com/daylinmorgan/monolisa-nerdfont-patch.git
synced 2024-12-22 06:50:44 -06:00
chore: change batteries
This commit is contained in:
parent
22519a5a2d
commit
2982276504
14 changed files with 182 additions and 67 deletions
|
@ -180,16 +180,29 @@ class FontnameParser:
|
||||||
sub = FontnameTools.postscript_char_filter(sub)
|
sub = FontnameTools.postscript_char_filter(sub)
|
||||||
return self._make_ps_name(fam + sub, False)
|
return self._make_ps_name(fam + sub, False)
|
||||||
|
|
||||||
def preferred_family(self):
|
def preferred_family(self, short_alternative = False):
|
||||||
"""Get the SFNT Preferred Familyname (ID 16)"""
|
"""Get the SFNT Preferred Familyname (ID 16)"""
|
||||||
|
# When short_alternative we get the short named alternative needed for some Windows applications
|
||||||
(name, rest) = self._shortened_name()
|
(name, rest) = self._shortened_name()
|
||||||
|
if short_alternative:
|
||||||
|
# Try to come up with a shortened family name
|
||||||
|
# This is in principle the code from family() but without including weights
|
||||||
|
# because weights shall still end up in ID 17
|
||||||
|
other = self.other_token
|
||||||
|
if self.use_short_families[1]:
|
||||||
|
[ other ] = FontnameTools.short_styles([ other ], self.use_short_families[2])
|
||||||
|
pfn = FontnameTools.concat(name, rest, other, self.short_family_suff)
|
||||||
|
# Only return something if it is different to our standard behavior
|
||||||
|
if pfn == self.preferred_family(False):
|
||||||
|
return ''
|
||||||
|
return pfn
|
||||||
pfn = FontnameTools.concat(name, rest, self.other_token, self.family_suff)
|
pfn = FontnameTools.concat(name, rest, self.other_token, self.family_suff)
|
||||||
if self.suppress_preferred_if_identical and pfn == self.family():
|
if self.suppress_preferred_if_identical and pfn == self.family():
|
||||||
# Do not set if identical to ID 1
|
# Do not set if identical to ID 1
|
||||||
return ''
|
return ''
|
||||||
return pfn
|
return pfn
|
||||||
|
|
||||||
def preferred_styles(self):
|
def preferred_styles(self, _ = False):
|
||||||
"""Get the SFNT Preferred Styles (ID 17)"""
|
"""Get the SFNT Preferred Styles (ID 17)"""
|
||||||
styles = self.style_token
|
styles = self.style_token
|
||||||
weights = self.weight_token
|
weights = self.weight_token
|
||||||
|
@ -231,7 +244,7 @@ class FontnameParser:
|
||||||
|
|
||||||
def ps_familyname(self):
|
def ps_familyname(self):
|
||||||
"""Get the PS Familyname"""
|
"""Get the PS Familyname"""
|
||||||
fam = self.preferred_family()
|
fam = self.preferred_family(False)
|
||||||
if len(fam) < 1:
|
if len(fam) < 1:
|
||||||
fam = self.family()
|
fam = self.family()
|
||||||
return self._make_ps_name(fam, True)
|
return self._make_ps_name(fam, True)
|
||||||
|
@ -296,6 +309,18 @@ class FontnameParser:
|
||||||
os2_weight, ps_weight, name_weight,
|
os2_weight, ps_weight, name_weight,
|
||||||
font.os2_weight, font.weight, weight))
|
font.os2_weight, font.weight, weight))
|
||||||
|
|
||||||
|
def pfam_to_sfnt(self, name_function, entry, message):
|
||||||
|
"""Prepare SFNT entries for short and long form as two different languages"""
|
||||||
|
languages = [ 'English (US)', 'English (British)' ]
|
||||||
|
names = [ name_function(False), name_function(True) ]
|
||||||
|
ret = [ ]
|
||||||
|
for i in range(2):
|
||||||
|
if len(names[i]):
|
||||||
|
ret += [( languages[i], entry, self.checklen(31, message, names[i]) )]
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
return ret
|
||||||
|
|
||||||
def rename_font(self, font):
|
def rename_font(self, font):
|
||||||
"""Rename the font to include all information we found (font is fontforge font object)"""
|
"""Rename the font to include all information we found (font is fontforge font object)"""
|
||||||
font.fondname = None
|
font.fondname = None
|
||||||
|
@ -339,9 +364,9 @@ class FontnameParser:
|
||||||
# back, but only as 'English (US)'. This makes sure we do not leave contradicting
|
# back, but only as 'English (US)'. This makes sure we do not leave contradicting
|
||||||
# names over different languages.
|
# names over different languages.
|
||||||
for l, k, v in list(font.sfnt_names):
|
for l, k, v in list(font.sfnt_names):
|
||||||
if not k in TO_DEL:
|
if not k in TO_DEL and l == 'English (US)':
|
||||||
sfnt_list += [( l, k, v )]
|
sfnt_list += [( l, k, v )]
|
||||||
if k == 'Version' and l == 'English (US)':
|
if k == 'Version':
|
||||||
version_tag = ' ' + v.split()[-1]
|
version_tag = ' ' + v.split()[-1]
|
||||||
|
|
||||||
sfnt_list += [( 'English (US)', 'Family', self.checklen(31, 'Family (ID 1)', self.family()) )] # 1
|
sfnt_list += [( 'English (US)', 'Family', self.checklen(31, 'Family (ID 1)', self.family()) )] # 1
|
||||||
|
@ -349,13 +374,8 @@ class FontnameParser:
|
||||||
sfnt_list += [( 'English (US)', 'UniqueID', self.fullname() + version_tag )] # 3
|
sfnt_list += [( 'English (US)', 'UniqueID', self.fullname() + version_tag )] # 3
|
||||||
sfnt_list += [( 'English (US)', 'Fullname', self.checklen(63, 'Fullname (ID 4)', self.fullname()) )] # 4
|
sfnt_list += [( 'English (US)', 'Fullname', self.checklen(63, 'Fullname (ID 4)', self.fullname()) )] # 4
|
||||||
sfnt_list += [( 'English (US)', 'PostScriptName', self.checklen(63, 'PSN (ID 6)', self.psname()) )] # 6
|
sfnt_list += [( 'English (US)', 'PostScriptName', self.checklen(63, 'PSN (ID 6)', self.psname()) )] # 6
|
||||||
|
sfnt_list += self.pfam_to_sfnt(self.preferred_family, 'Preferred Family', 'PrefFamily (ID 16)') # 16
|
||||||
p_fam = self.preferred_family()
|
sfnt_list += self.pfam_to_sfnt(self.preferred_styles, 'Preferred Styles', 'PrefStyles (ID 17)') # 17
|
||||||
if len(p_fam):
|
|
||||||
sfnt_list += [( 'English (US)', 'Preferred Family', self.checklen(31, 'PrefFamily (ID 16)', p_fam) )] # 16
|
|
||||||
p_sty = self.preferred_styles()
|
|
||||||
if len(p_sty):
|
|
||||||
sfnt_list += [( 'English (US)', 'Preferred Styles', self.checklen(31, 'PrefStyles (ID 17)', p_sty) )] # 17
|
|
||||||
|
|
||||||
font.sfnt_names = tuple(sfnt_list)
|
font.sfnt_names = tuple(sfnt_list)
|
||||||
|
|
||||||
|
|
|
@ -219,6 +219,7 @@ class FontnameTools:
|
||||||
( '(.*r)adon', r'\1n'), # Monaspace shorten face name
|
( '(.*r)adon', r'\1n'), # Monaspace shorten face name
|
||||||
( '(im ?writing ?q)uattro', r'\1uat'), # Rename iM Writing Quattro to Quat
|
( '(im ?writing ?q)uattro', r'\1uat'), # Rename iM Writing Quattro to Quat
|
||||||
( '(im ?writing ?(mono|duo|quat)) ?s', r'\1'), # Remove S from all iM Writing styles
|
( '(im ?writing ?(mono|duo|quat)) ?s', r'\1'), # Remove S from all iM Writing styles
|
||||||
|
( '(r)ec( ?)(m)ono( ?)(s)emicasual', r'\1ec\3ono\5emi'), # Shorten RecMonoSemicausal
|
||||||
]
|
]
|
||||||
|
|
||||||
# From https://adobe-type-tools.github.io/font-tech-notes/pdfs/5088.FontNames.pdf
|
# From https://adobe-type-tools.github.io/font-tech-notes/pdfs/5088.FontNames.pdf
|
||||||
|
|
137
font-patcher
137
font-patcher
|
@ -6,7 +6,7 @@
|
||||||
from __future__ import absolute_import, print_function, unicode_literals
|
from __future__ import absolute_import, print_function, unicode_literals
|
||||||
|
|
||||||
# Change the script version when you edit this script:
|
# Change the script version when you edit this script:
|
||||||
script_version = "4.8.4"
|
script_version = "4.12.0"
|
||||||
|
|
||||||
version = "3.1.1"
|
version = "3.1.1"
|
||||||
projectName = "Nerd Fonts"
|
projectName = "Nerd Fonts"
|
||||||
|
@ -308,7 +308,8 @@ def get_old_average_x_width(font):
|
||||||
|
|
||||||
def create_filename(fonts):
|
def create_filename(fonts):
|
||||||
""" Determine filename from font object(s) """
|
""" Determine filename from font object(s) """
|
||||||
sfnt = { k: v for l, k, v in fonts[0].sfnt_names }
|
# Only consider the standard (i.e. English-US) names
|
||||||
|
sfnt = { k: v for l, k, v in fonts[0].sfnt_names if l == 'English (US)' }
|
||||||
sfnt_pfam = sfnt.get('Preferred Family', sfnt['Family'])
|
sfnt_pfam = sfnt.get('Preferred Family', sfnt['Family'])
|
||||||
sfnt_psubfam = sfnt.get('Preferred Styles', sfnt['SubFamily'])
|
sfnt_psubfam = sfnt.get('Preferred Styles', sfnt['SubFamily'])
|
||||||
if len(fonts) > 1:
|
if len(fonts) > 1:
|
||||||
|
@ -699,6 +700,7 @@ class font_patcher:
|
||||||
'firasans' : 'furasans',
|
'firasans' : 'furasans',
|
||||||
'IntelOneMono' : 'IntoneMono',
|
'IntelOneMono' : 'IntoneMono',
|
||||||
'IntelOne Mono' : 'Intone Mono',
|
'IntelOne Mono' : 'Intone Mono',
|
||||||
|
'Intel One Mono' : 'Intone Mono',
|
||||||
}
|
}
|
||||||
|
|
||||||
# remove overly verbose font names
|
# remove overly verbose font names
|
||||||
|
@ -839,6 +841,7 @@ class font_patcher:
|
||||||
# '1' means occupu 1 cell (default for 'xy')
|
# '1' means occupu 1 cell (default for 'xy')
|
||||||
# '2' means occupy 2 cells (default for 'pa')
|
# '2' means occupy 2 cells (default for 'pa')
|
||||||
# '!' means do the 'pa' scaling even with non mono fonts (else it just scales down, never up)
|
# '!' means do the 'pa' scaling even with non mono fonts (else it just scales down, never up)
|
||||||
|
# '^' means that scaling shall fill the whole cell and not only the icon-cap-height (for mono fonts, other always use the whole cell)
|
||||||
# Dont_copy does not overwrite existing glyphs but rescales the preexisting ones
|
# Dont_copy does not overwrite existing glyphs but rescales the preexisting ones
|
||||||
#
|
#
|
||||||
# Be careful, stretch may not change within a ScaleRule!
|
# Be careful, stretch may not change within a ScaleRule!
|
||||||
|
@ -847,63 +850,67 @@ class font_patcher:
|
||||||
'default': {'align': 'c', 'valign': 'c', 'stretch': 'pa', 'params': {}}
|
'default': {'align': 'c', 'valign': 'c', 'stretch': 'pa', 'params': {}}
|
||||||
}
|
}
|
||||||
SYM_ATTR_POWERLINE = {
|
SYM_ATTR_POWERLINE = {
|
||||||
'default': {'align': 'c', 'valign': 'c', 'stretch': 'pa', 'params': {}},
|
'default': {'align': 'c', 'valign': 'c', 'stretch': '^pa', 'params': {}},
|
||||||
|
|
||||||
# Arrow tips
|
# Arrow tips
|
||||||
0xe0b0: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.06, 'xy-ratio': 0.7}},
|
0xe0b0: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.06, 'xy-ratio': 0.7}},
|
||||||
0xe0b1: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {'xy-ratio': 0.7}},
|
0xe0b1: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'xy-ratio': 0.7}},
|
||||||
0xe0b2: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.06, 'xy-ratio': 0.7}},
|
0xe0b2: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.06, 'xy-ratio': 0.7}},
|
||||||
0xe0b3: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {'xy-ratio': 0.7}},
|
0xe0b3: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'xy-ratio': 0.7}},
|
||||||
|
|
||||||
|
# Inverse arrow tips
|
||||||
|
0xe0d6: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.05, 'xy-ratio': 0.7}},
|
||||||
|
0xe0d7: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.05, 'xy-ratio': 0.7}},
|
||||||
|
|
||||||
# Rounded arcs
|
# Rounded arcs
|
||||||
0xe0b4: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.01, 'xy-ratio': 0.59}},
|
0xe0b4: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.06, 'xy-ratio': 0.59}},
|
||||||
0xe0b5: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {'xy-ratio': 0.5}},
|
0xe0b5: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'xy-ratio': 0.5}},
|
||||||
0xe0b6: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.01, 'xy-ratio': 0.59}},
|
0xe0b6: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.06, 'xy-ratio': 0.59}},
|
||||||
0xe0b7: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {'xy-ratio': 0.5}},
|
0xe0b7: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'xy-ratio': 0.5}},
|
||||||
|
|
||||||
# Bottom Triangles
|
# Bottom Triangles
|
||||||
0xe0b8: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.02}},
|
0xe0b8: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.02}},
|
||||||
0xe0b9: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {}},
|
0xe0b9: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {}},
|
||||||
0xe0ba: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.02}},
|
0xe0ba: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.02}},
|
||||||
0xe0bb: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {}},
|
0xe0bb: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {}},
|
||||||
|
|
||||||
# Top Triangles
|
# Top Triangles
|
||||||
0xe0bc: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.02}},
|
0xe0bc: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.02}},
|
||||||
0xe0bd: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {}},
|
0xe0bd: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {}},
|
||||||
0xe0be: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.02}},
|
0xe0be: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.02}},
|
||||||
0xe0bf: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {}},
|
0xe0bf: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {}},
|
||||||
|
|
||||||
# Flames
|
# Flames
|
||||||
0xe0c0: {'align': 'l', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': 0.01}},
|
0xe0c0: {'align': 'l', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': 0.01}},
|
||||||
0xe0c1: {'align': 'l', 'valign': 'c', 'stretch': 'xy2', 'params': {}},
|
0xe0c1: {'align': 'l', 'valign': 'c', 'stretch': '^xy2', 'params': {}},
|
||||||
0xe0c2: {'align': 'r', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': 0.01}},
|
0xe0c2: {'align': 'r', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': 0.01}},
|
||||||
0xe0c3: {'align': 'r', 'valign': 'c', 'stretch': 'xy2', 'params': {}},
|
0xe0c3: {'align': 'r', 'valign': 'c', 'stretch': '^xy2', 'params': {}},
|
||||||
|
|
||||||
# Small squares
|
# Small squares
|
||||||
0xe0c4: {'align': 'l', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.86}},
|
0xe0c4: {'align': 'l', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.86}},
|
||||||
0xe0c5: {'align': 'r', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.86}},
|
0xe0c5: {'align': 'r', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.86}},
|
||||||
|
|
||||||
# Bigger squares
|
# Bigger squares
|
||||||
0xe0c6: {'align': 'l', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.78}},
|
0xe0c6: {'align': 'l', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.78}},
|
||||||
0xe0c7: {'align': 'r', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.78}},
|
0xe0c7: {'align': 'r', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': -0.03, 'xy-ratio': 0.78}},
|
||||||
|
|
||||||
# Waveform
|
# Waveform
|
||||||
0xe0c8: {'align': 'l', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': 0.01}},
|
0xe0c8: {'align': 'l', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': 0.01}},
|
||||||
0xe0ca: {'align': 'r', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': 0.01}},
|
0xe0ca: {'align': 'r', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': 0.01}},
|
||||||
|
|
||||||
# Hexagons
|
# Hexagons
|
||||||
0xe0cc: {'align': 'l', 'valign': 'c', 'stretch': 'xy2', 'params': {'overlap': 0.02, 'xy-ratio': 0.85}},
|
0xe0cc: {'align': 'l', 'valign': 'c', 'stretch': '^xy2', 'params': {'overlap': 0.02, 'xy-ratio': 0.85}},
|
||||||
0xe0cd: {'align': 'l', 'valign': 'c', 'stretch': 'xy2', 'params': {'xy-ratio': 0.865}},
|
0xe0cd: {'align': 'l', 'valign': 'c', 'stretch': '^xy2', 'params': {'xy-ratio': 0.865}},
|
||||||
|
|
||||||
# Legos
|
# Legos
|
||||||
0xe0ce: {'align': 'l', 'valign': 'c', 'stretch': 'pa', 'params': {}},
|
0xe0ce: {'align': 'l', 'valign': 'c', 'stretch': '^pa', 'params': {}},
|
||||||
0xe0cf: {'align': 'c', 'valign': 'c', 'stretch': 'pa', 'params': {}},
|
0xe0cf: {'align': 'c', 'valign': 'c', 'stretch': '^pa', 'params': {}},
|
||||||
0xe0d0: {'align': 'l', 'valign': 'c', 'stretch': 'pa', 'params': {}},
|
0xe0d0: {'align': 'l', 'valign': 'c', 'stretch': '^pa', 'params': {}},
|
||||||
0xe0d1: {'align': 'l', 'valign': 'c', 'stretch': 'pa', 'params': {}},
|
0xe0d1: {'align': 'l', 'valign': 'c', 'stretch': '^pa', 'params': {}},
|
||||||
|
|
||||||
# Top and bottom trapezoid
|
# Top and bottom trapezoid
|
||||||
0xe0d2: {'align': 'l', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.02, 'xy-ratio': 0.7}},
|
0xe0d2: {'align': 'l', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.02, 'xy-ratio': 0.7}},
|
||||||
0xe0d4: {'align': 'r', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.02, 'xy-ratio': 0.7}}
|
0xe0d4: {'align': 'r', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.02, 'xy-ratio': 0.7}}
|
||||||
}
|
}
|
||||||
SYM_ATTR_TRIGRAPH = {
|
SYM_ATTR_TRIGRAPH = {
|
||||||
'default': {'align': 'c', 'valign': 'c', 'stretch': 'pa1!', 'params': {'overlap': -0.10, 'careful': True}}
|
'default': {'align': 'c', 'valign': 'c', 'stretch': 'pa1!', 'params': {'overlap': -0.10, 'careful': True}}
|
||||||
|
@ -921,7 +928,7 @@ class font_patcher:
|
||||||
'default': {'align': 'c', 'valign': 'c', 'stretch': 'pa1!', 'params': {'ypadding': 0.3, 'careful': True}}
|
'default': {'align': 'c', 'valign': 'c', 'stretch': 'pa1!', 'params': {'ypadding': 0.3, 'careful': True}}
|
||||||
}
|
}
|
||||||
SYM_ATTR_BOX = {
|
SYM_ATTR_BOX = {
|
||||||
'default': {'align': 'c', 'valign': 'c', 'stretch': 'xy', 'params': {'overlap': 0.02, 'dont_copy': box_keep}},
|
'default': {'align': 'c', 'valign': 'c', 'stretch': '^xy', 'params': {'overlap': 0.02, 'dont_copy': box_keep}},
|
||||||
# No overlap with checkered greys (commented out because that raises problems on rescaling clients)
|
# No overlap with checkered greys (commented out because that raises problems on rescaling clients)
|
||||||
# 0x2591: {'align': 'c', 'valign': 'c', 'stretch': 'xy', 'params': {'dont_copy': box_keep}},
|
# 0x2591: {'align': 'c', 'valign': 'c', 'stretch': 'xy', 'params': {'dont_copy': box_keep}},
|
||||||
# 0x2592: {'align': 'c', 'valign': 'c', 'stretch': 'xy', 'params': {'dont_copy': box_keep}},
|
# 0x2592: {'align': 'c', 'valign': 'c', 'stretch': 'xy', 'params': {'dont_copy': box_keep}},
|
||||||
|
@ -985,8 +992,15 @@ class font_patcher:
|
||||||
range(0x2594, 0x259f + 1), # quards (Note: quard 2597 in Hack is wrong, scales like block!)
|
range(0x2594, 0x259f + 1), # quards (Note: quard 2597 in Hack is wrong, scales like block!)
|
||||||
]}
|
]}
|
||||||
CODI_SCALE_LIST = {'ScaleGroups': [
|
CODI_SCALE_LIST = {'ScaleGroups': [
|
||||||
range(0xeb6e, 0xeb71 + 1), # triangles
|
[0xea61, 0xeb13], # lightbulb
|
||||||
range(0xeab4, 0xeab7 + 1), # chevrons
|
range(0xeab4, 0xeab7 + 1), # chevrons
|
||||||
|
[0xea7d, *range(0xea99, 0xeaa1 + 1), 0xebcb], # arrows
|
||||||
|
[0xeaa2, 0xeb9a, 0xec08, 0xec09], # bells
|
||||||
|
range(0xead4, 0xead6 + 1), # dot and arrow
|
||||||
|
[0xeb43, 0xec0b, 0xec0c], # (pull) request changes
|
||||||
|
range(0xeb6e, 0xeb71 + 1), # triangles
|
||||||
|
[*range(0xeb89, 0xeb8b + 1), 0xec07], # smallish dots
|
||||||
|
range(0xebd5, 0xebd7 + 1), # compasses
|
||||||
]}
|
]}
|
||||||
DEVI_SCALE_LIST = {'ScaleGlyph': 0xE60E, # Android logo
|
DEVI_SCALE_LIST = {'ScaleGlyph': 0xE60E, # Android logo
|
||||||
'GlyphsToScale': [
|
'GlyphsToScale': [
|
||||||
|
@ -1056,14 +1070,14 @@ class font_patcher:
|
||||||
{'Enabled': True, 'Name': "Seti-UI + Custom", 'Filename': "original-source.otf", 'Exact': False, 'SymStart': 0xE4FA, 'SymEnd': 0xE5FF, 'SrcStart': 0xE5FA, 'ScaleRules': None, 'Attributes': SYM_ATTR_DEFAULT},
|
{'Enabled': True, 'Name': "Seti-UI + Custom", 'Filename': "original-source.otf", 'Exact': False, 'SymStart': 0xE4FA, 'SymEnd': 0xE5FF, 'SrcStart': 0xE5FA, 'ScaleRules': None, 'Attributes': SYM_ATTR_DEFAULT},
|
||||||
{'Enabled': True, 'Name': "Heavy Angle Brackets", 'Filename': "extraglyphs.sfd", 'Exact': True, 'SymStart': 0x276C, 'SymEnd': 0x2771, 'SrcStart': None, 'ScaleRules': HEAVY_SCALE_LIST, 'Attributes': SYM_ATTR_HEAVYBRACKETS},
|
{'Enabled': True, 'Name': "Heavy Angle Brackets", 'Filename': "extraglyphs.sfd", 'Exact': True, 'SymStart': 0x276C, 'SymEnd': 0x2771, 'SrcStart': None, 'ScaleRules': HEAVY_SCALE_LIST, 'Attributes': SYM_ATTR_HEAVYBRACKETS},
|
||||||
{'Enabled': box_enabled, 'Name': "Box Drawing", 'Filename': "extraglyphs.sfd", 'Exact': True, 'SymStart': 0x2500, 'SymEnd': 0x259F, 'SrcStart': None, 'ScaleRules': BOX_SCALE_LIST, 'Attributes': SYM_ATTR_BOX},
|
{'Enabled': box_enabled, 'Name': "Box Drawing", 'Filename': "extraglyphs.sfd", 'Exact': True, 'SymStart': 0x2500, 'SymEnd': 0x259F, 'SrcStart': None, 'ScaleRules': BOX_SCALE_LIST, 'Attributes': SYM_ATTR_BOX},
|
||||||
{'Enabled': True, 'Name': "Devicons", 'Filename': "devicons.ttf", 'Exact': False, 'SymStart': 0xE600, 'SymEnd': 0xE6C5, 'SrcStart': 0xE700, 'ScaleRules': DEVI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT},
|
{'Enabled': True, 'Name': "Devicons", 'Filename': "devicons/devicons.ttf", 'Exact': False, 'SymStart': 0xE600, 'SymEnd': 0xE6C5, 'SrcStart': 0xE700, 'ScaleRules': DEVI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT},
|
||||||
{'Enabled': self.args.powerline, 'Name': "Powerline Symbols", 'Filename': "powerline-symbols/PowerlineSymbols.otf", 'Exact': True, 'SymStart': 0xE0A0, 'SymEnd': 0xE0A2, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
{'Enabled': self.args.powerline, 'Name': "Powerline Symbols", 'Filename': "powerline-symbols/PowerlineSymbols.otf", 'Exact': True, 'SymStart': 0xE0A0, 'SymEnd': 0xE0A2, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
||||||
{'Enabled': self.args.powerline, 'Name': "Powerline Symbols", 'Filename': "powerline-symbols/PowerlineSymbols.otf", 'Exact': True, 'SymStart': 0xE0B0, 'SymEnd': 0xE0B3, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
{'Enabled': self.args.powerline, 'Name': "Powerline Symbols", 'Filename': "powerline-symbols/PowerlineSymbols.otf", 'Exact': True, 'SymStart': 0xE0B0, 'SymEnd': 0xE0B3, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
||||||
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0A3, 'SymEnd': 0xE0A3, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "powerline-extra/PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0A3, 'SymEnd': 0xE0A3, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
||||||
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0B4, 'SymEnd': 0xE0C8, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "powerline-extra/PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0B4, 'SymEnd': 0xE0C8, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
||||||
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0CA, 'SymEnd': 0xE0CA, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "powerline-extra/PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0CA, 'SymEnd': 0xE0CA, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
||||||
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0CC, 'SymEnd': 0xE0D4, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "powerline-extra/PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0xE0CC, 'SymEnd': 0xE0D7, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_POWERLINE},
|
||||||
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0x2630, 'SymEnd': 0x2630, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_TRIGRAPH},
|
{'Enabled': self.args.powerlineextra, 'Name': "Powerline Extra Symbols", 'Filename': "powerline-extra/PowerlineExtraSymbols.otf", 'Exact': True, 'SymStart': 0x2630, 'SymEnd': 0x2630, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_TRIGRAPH},
|
||||||
{'Enabled': self.args.pomicons, 'Name': "Pomicons", 'Filename': "Pomicons.otf", 'Exact': True, 'SymStart': 0xE000, 'SymEnd': 0xE00A, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_DEFAULT},
|
{'Enabled': self.args.pomicons, 'Name': "Pomicons", 'Filename': "Pomicons.otf", 'Exact': True, 'SymStart': 0xE000, 'SymEnd': 0xE00A, 'SrcStart': None, 'ScaleRules': None, 'Attributes': SYM_ATTR_DEFAULT},
|
||||||
{'Enabled': self.args.fontawesome, 'Name': "Font Awesome", 'Filename': "font-awesome/FontAwesome.otf", 'Exact': True, 'SymStart': 0xF000, 'SymEnd': 0xF2E0, 'SrcStart': None, 'ScaleRules': FONTA_SCALE_LIST, 'Attributes': SYM_ATTR_FONTA},
|
{'Enabled': self.args.fontawesome, 'Name': "Font Awesome", 'Filename': "font-awesome/FontAwesome.otf", 'Exact': True, 'SymStart': 0xF000, 'SymEnd': 0xF2E0, 'SrcStart': None, 'ScaleRules': FONTA_SCALE_LIST, 'Attributes': SYM_ATTR_FONTA},
|
||||||
{'Enabled': self.args.fontawesomeextension, 'Name': "Font Awesome Extension", 'Filename': "font-awesome-extension.ttf", 'Exact': False, 'SymStart': 0xE000, 'SymEnd': 0xE0A9, 'SrcStart': 0xE200, 'ScaleRules': None, 'Attributes': SYM_ATTR_DEFAULT}, # Maximize
|
{'Enabled': self.args.fontawesomeextension, 'Name': "Font Awesome Extension", 'Filename': "font-awesome-extension.ttf", 'Exact': False, 'SymStart': 0xE000, 'SymEnd': 0xE0A9, 'SrcStart': 0xE200, 'ScaleRules': None, 'Attributes': SYM_ATTR_DEFAULT}, # Maximize
|
||||||
|
@ -1077,7 +1091,7 @@ class font_patcher:
|
||||||
{'Enabled': self.args.octicons, 'Name': "Octicons", 'Filename': "octicons/octicons.ttf", 'Exact': True, 'SymStart': 0x2665, 'SymEnd': 0x2665, 'SrcStart': None, 'ScaleRules': OCTI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT}, # Heart
|
{'Enabled': self.args.octicons, 'Name': "Octicons", 'Filename': "octicons/octicons.ttf", 'Exact': True, 'SymStart': 0x2665, 'SymEnd': 0x2665, 'SrcStart': None, 'ScaleRules': OCTI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT}, # Heart
|
||||||
{'Enabled': self.args.octicons, 'Name': "Octicons", 'Filename': "octicons/octicons.ttf", 'Exact': True, 'SymStart': 0X26A1, 'SymEnd': 0X26A1, 'SrcStart': None, 'ScaleRules': OCTI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT}, # Zap
|
{'Enabled': self.args.octicons, 'Name': "Octicons", 'Filename': "octicons/octicons.ttf", 'Exact': True, 'SymStart': 0X26A1, 'SymEnd': 0X26A1, 'SrcStart': None, 'ScaleRules': OCTI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT}, # Zap
|
||||||
{'Enabled': self.args.octicons, 'Name': "Octicons", 'Filename': "octicons/octicons.ttf", 'Exact': False, 'SymStart': 0xF27C, 'SymEnd': 0xF306, 'SrcStart': 0xF4A9, 'ScaleRules': OCTI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT},
|
{'Enabled': self.args.octicons, 'Name': "Octicons", 'Filename': "octicons/octicons.ttf", 'Exact': False, 'SymStart': 0xF27C, 'SymEnd': 0xF306, 'SrcStart': 0xF4A9, 'ScaleRules': OCTI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT},
|
||||||
{'Enabled': self.args.codicons, 'Name': "Codicons", 'Filename': "codicons/codicon.ttf", 'Exact': True, 'SymStart': 0xEA60, 'SymEnd': 0xEBEB, 'SrcStart': None, 'ScaleRules': CODI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT},
|
{'Enabled': self.args.codicons, 'Name': "Codicons", 'Filename': "codicons/codicon.ttf", 'Exact': True, 'SymStart': 0xEA60, 'SymEnd': 0xEC1E, 'SrcStart': None, 'ScaleRules': CODI_SCALE_LIST, 'Attributes': SYM_ATTR_DEFAULT},
|
||||||
{'Enabled': self.args.custom, 'Name': "Custom", 'Filename': self.args.custom, 'Exact': True, 'SymStart': 0x0000, 'SymEnd': 0x0000, 'SrcStart': None, 'ScaleRules': None, 'Attributes': CUSTOM_ATTR}
|
{'Enabled': self.args.custom, 'Name': "Custom", 'Filename': self.args.custom, 'Exact': True, 'SymStart': 0x0000, 'SymEnd': 0x0000, 'SrcStart': None, 'ScaleRules': None, 'Attributes': CUSTOM_ATTR}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1182,7 +1196,7 @@ class font_patcher:
|
||||||
|
|
||||||
# print("FINI hhea {} typo {} win {} use {} {} {}".format(hhea_btb, typo_btb, win_btb, use_typo, our_btb != hhea_btb, self.sourceFont.fontname))
|
# print("FINI hhea {} typo {} win {} use {} {} {}".format(hhea_btb, typo_btb, win_btb, use_typo, our_btb != hhea_btb, self.sourceFont.fontname))
|
||||||
|
|
||||||
self.font_dim = {'xmin': 0, 'ymin': 0, 'xmax': 0, 'ymax': 0, 'width' : 0, 'height': 0, 'ypadding': 0}
|
self.font_dim = {'xmin': 0, 'ymin': 0, 'xmax': 0, 'ymax': 0, 'width' : 0, 'height': 0, 'iconheight': 0, 'ypadding': 0}
|
||||||
|
|
||||||
if metrics == Metric.HHEA:
|
if metrics == Metric.HHEA:
|
||||||
self.font_dim['ymin'] = self.sourceFont.hhea_descent - half_gap(self.sourceFont.hhea_linegap, False)
|
self.font_dim['ymin'] = self.sourceFont.hhea_descent - half_gap(self.sourceFont.hhea_linegap, False)
|
||||||
|
@ -1204,18 +1218,28 @@ class font_patcher:
|
||||||
# Assume we are using our prepared templates
|
# Assume we are using our prepared templates
|
||||||
self.symbolsonly = True
|
self.symbolsonly = True
|
||||||
self.font_dim = {
|
self.font_dim = {
|
||||||
'xmin' : 0,
|
'xmin' : 0,
|
||||||
'ymin' : -self.sourceFont.descent,
|
'ymin' : -self.sourceFont.descent,
|
||||||
'xmax' : self.sourceFont.em,
|
'xmax' : self.sourceFont.em,
|
||||||
'ymax' : self.sourceFont.ascent,
|
'ymax' : self.sourceFont.ascent,
|
||||||
'width' : self.sourceFont.em,
|
'width' : self.sourceFont.em,
|
||||||
'height': self.sourceFont.descent + self.sourceFont.ascent,
|
'height' : self.sourceFont.descent + self.sourceFont.ascent,
|
||||||
|
'iconheight': self.sourceFont.descent + self.sourceFont.ascent,
|
||||||
|
'ypadding' : 0,
|
||||||
}
|
}
|
||||||
our_btb = self.sourceFont.descent + self.sourceFont.ascent
|
our_btb = self.sourceFont.descent + self.sourceFont.ascent
|
||||||
if self.font_dim['height'] <= 0:
|
if self.font_dim['height'] <= 0:
|
||||||
logger.critical("Can not detect sane font height")
|
logger.critical("Can not detect sane font height")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
self.font_dim['iconheight'] = self.font_dim['height']
|
||||||
|
if self.args.single and self.sourceFont.capHeight > 0:
|
||||||
|
# Limit the icon height on monospaced fonts because very slender and tall icons render
|
||||||
|
# excessivly tall otherwise. We ignore that effect for the other variants because it
|
||||||
|
# does not look so much out of place there.
|
||||||
|
# Icons can be bigger than the letter capitals, but not the whole cell:
|
||||||
|
self.font_dim['iconheight'] = (self.sourceFont.capHeight * 2 + self.font_dim['height']) / 3
|
||||||
|
|
||||||
# Make all metrics equal
|
# Make all metrics equal
|
||||||
self.sourceFont.os2_typolinegap = 0
|
self.sourceFont.os2_typolinegap = 0
|
||||||
self.sourceFont.os2_typoascent = self.font_dim['ymax']
|
self.sourceFont.os2_typoascent = self.font_dim['ymax']
|
||||||
|
@ -1269,7 +1293,9 @@ class font_patcher:
|
||||||
if self.font_dim['width'] <= 0:
|
if self.font_dim['width'] <= 0:
|
||||||
logger.critical("Can not detect sane font width")
|
logger.critical("Can not detect sane font width")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
logger.debug("Final font cell dimensions %d w x %d h", self.font_dim['width'], self.font_dim['height'])
|
logger.debug("Final font cell dimensions %d w x %d h%s",
|
||||||
|
self.font_dim['width'], self.font_dim['height'],
|
||||||
|
' (with icon cell {} h)'.format(int(self.font_dim['iconheight'])) if self.font_dim['iconheight'] != self.font_dim['height'] else '')
|
||||||
|
|
||||||
self.xavgwidth.append(self.args.xavgwidth)
|
self.xavgwidth.append(self.args.xavgwidth)
|
||||||
if isinstance(self.xavgwidth[-1], int) and self.xavgwidth[-1] == 0:
|
if isinstance(self.xavgwidth[-1], int) and self.xavgwidth[-1] == 0:
|
||||||
|
@ -1295,7 +1321,8 @@ class font_patcher:
|
||||||
|
|
||||||
# font_dim['height'] represents total line height, keep our symbols sized based upon font's em
|
# font_dim['height'] represents total line height, keep our symbols sized based upon font's em
|
||||||
# Use the font_dim['height'] only for explicit 'y' scaling (not 'pa')
|
# Use the font_dim['height'] only for explicit 'y' scaling (not 'pa')
|
||||||
target_height = self.font_dim['height'] * (1.0 - self.font_dim['ypadding'])
|
target_height = self.font_dim['height'] if '^' in stretch else self.font_dim['iconheight']
|
||||||
|
target_height *= 1.0 - self.font_dim['ypadding']
|
||||||
scale_ratio_y = target_height / sym_dim['height']
|
scale_ratio_y = target_height / sym_dim['height']
|
||||||
|
|
||||||
if 'pa' in stretch:
|
if 'pa' in stretch:
|
||||||
|
|
9
src/glyphs/codicons/README.md
Normal file
9
src/glyphs/codicons/README.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Codicons
|
||||||
|
|
||||||
|
For more information have a look at the upstream website: https://github.com/microsoft/vscode-codicons
|
||||||
|
|
||||||
|
## Source bugs fixed
|
||||||
|
|
||||||
|
Glyph 0xEB40 and 0xEB41 are defective in the original font. We fixed that manually.
|
||||||
|
|
||||||
|
Version: 0.0.35
|
Binary file not shown.
BIN
src/glyphs/codicons/codicon_orig.ttf
Normal file
BIN
src/glyphs/codicons/codicon_orig.ttf
Normal file
Binary file not shown.
12
src/glyphs/devicons/README.md
Normal file
12
src/glyphs/devicons/README.md
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Devicons
|
||||||
|
|
||||||
|
For more information have a look at the upstream website: https://github.com/vorillaz/devicons
|
||||||
|
|
||||||
|
This is taken directly from the repository default branch, which is ahead of release 1.8.0.
|
||||||
|
We call it 1.8.1 here, but there is no such release.
|
||||||
|
|
||||||
|
## Source bugs fixed
|
||||||
|
|
||||||
|
Glyph 0xE6B6 is defective in the original font. We hand optimized and fixed that.
|
||||||
|
|
||||||
|
Version: 1.8.1
|
BIN
src/glyphs/devicons/devicons.ttf
Normal file
BIN
src/glyphs/devicons/devicons.ttf
Normal file
Binary file not shown.
BIN
src/glyphs/devicons/devicons_orig.ttf
Normal file
BIN
src/glyphs/devicons/devicons_orig.ttf
Normal file
Binary file not shown.
Binary file not shown.
21
src/glyphs/powerline-extra/LICENSE
Normal file
21
src/glyphs/powerline-extra/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2016 Ryan L McIntyre
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
BIN
src/glyphs/powerline-extra/PowerlineExtraSymbols.otf
Normal file
BIN
src/glyphs/powerline-extra/PowerlineExtraSymbols.otf
Normal file
Binary file not shown.
16
src/glyphs/powerline-extra/README.md
Normal file
16
src/glyphs/powerline-extra/README.md
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# Powerline Extra
|
||||||
|
|
||||||
|
For more information have a look at the upstream website: https://github.com/ryanoasis/powerline-extra-symbols
|
||||||
|
|
||||||
|
Version: 1.000 (from about 2016)
|
||||||
|
|
||||||
|
## Source modified
|
||||||
|
|
||||||
|
* Add missing Ice Waveform Mirrored glyph (0xE0CA)
|
||||||
|
* Add Trigraph Heaven glyph (0x2630)
|
||||||
|
* Simplify Waveform glyphs (0xE0C8, 0xE0CA)
|
||||||
|
* Glyph 0xE0B4 and 0xE0B6 got an additional 7% strip on their straight side.
|
||||||
|
* Add inverse triangular glyphs at 0xE0D6 and 0xE0D7
|
||||||
|
* Change version of font to 1.100
|
||||||
|
|
||||||
|
Version: 1.100 (our version)
|
9
src/glyphs/powerline-symbols/README.md
Normal file
9
src/glyphs/powerline-symbols/README.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Powerline Symbols
|
||||||
|
|
||||||
|
For more information have a look at the upstream website: https://github.com/powerline/powerline
|
||||||
|
|
||||||
|
## Source modified
|
||||||
|
|
||||||
|
* Glyph 0xE0B0 and 0xE0B2 got an additional 7% strip on their straight side.
|
||||||
|
|
||||||
|
Version: 1.000 (from about 2013)
|
Loading…
Reference in a new issue