aboutsummaryrefslogtreecommitdiff
path: root/.local/share/bin/fontfix
blob: 1c9beaf9514b1baf28985eabd9ae01f64ddd08e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/python3

import os
import sys
from pathlib import Path

from fontTools import ttLib

PROPID_FAMILY = 1
PROPID_SUBFAMILY = 2
PROPID_FULLNAME = 4
PROPID_PSNAME = 6

PLATFORM_MS = 1
PLATFORM_MAC = 3

# see
# https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html
# for magic numbers

for folder in Path(".").iterdir():
	print(f"{folder}/")
	family_name = str(folder.stem)
	for file in folder.glob("*.ttf"):
		subfamily_name = file.stem.removeprefix(family_name).strip()
		with ttLib.TTFont(file) as ttf:
			nametable = ttf["name"]
			full_name = f"{family_name} {subfamily_name}"
			postscript_name = f"{family_name}-{subfamily_name}".replace(" ", "")
			nametable.setName(family_name,     PROPID_FAMILY,    PLATFORM_MS,  0, 0)
			nametable.setName(family_name,     PROPID_FAMILY,    PLATFORM_MAC, 1, 1033)
			nametable.setName(subfamily_name,  PROPID_SUBFAMILY, PLATFORM_MS,  0, 0)
			nametable.setName(subfamily_name,  PROPID_SUBFAMILY, PLATFORM_MAC, 1, 1033)
			nametable.setName(full_name,       PROPID_FULLNAME,  PLATFORM_MS,  0, 0)
			nametable.setName(full_name,       PROPID_FULLNAME,  PLATFORM_MAC, 1, 1033)
			nametable.setName(postscript_name, PROPID_PSNAME,    PLATFORM_MS,  0, 0)
			nametable.setName(postscript_name, PROPID_PSNAME,    PLATFORM_MAC, 1, 1033)
			ttf.save(file)
		print(f"  {file.name}:  [{family_name} :: {subfamily_name}]")