aboutsummaryrefslogtreecommitdiff
path: root/home/dot_local/share/bin/executable_fontfix
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2026-08-02 14:48:29 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2026-08-02 14:48:29 +0200
commite43eb1177872f52e949fb5f0f93396ed94b0d093 (patch)
tree78b73af6a989fa2996d71b112e161b70d35081ef /home/dot_local/share/bin/executable_fontfix
parent2f14a896e4b897bd747c24d7ad8e9e7bb3237d03 (diff)
move to chezmoi
Diffstat (limited to 'home/dot_local/share/bin/executable_fontfix')
-rw-r--r--home/dot_local/share/bin/executable_fontfix39
1 files changed, 39 insertions, 0 deletions
diff --git a/home/dot_local/share/bin/executable_fontfix b/home/dot_local/share/bin/executable_fontfix
new file mode 100644
index 0000000..1c9beaf
--- /dev/null
+++ b/home/dot_local/share/bin/executable_fontfix
@@ -0,0 +1,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}]")