#!/usr/bin/fontforge # SPDX-License-Identifier: GPL-2.0-or-later # # This script uses FontForge to strip unused symbols from a TrueType font. # Only symbols in code page 437 and two glyphs used by GRUB are left in. # # Usage # # ./437.ff # # e.g. # # ./437.ff dejavu-fonts-2.37/src/DejaVuSansMono.sfd dejavu_mono.ttf # # or # # ./437.ff /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf dejavu_mono.ttf Print() Print("Strip unused symbols from TrueType font") if ($argc != 3) Print() Print("Usage:") Print($0, " ") return endif Print("Loading ", $1) Open($1) # Code page 437 SelectMore("u263A") # WHITE SMILING FACE SelectMore("u263B") # BLACK SMILING FACE SelectMore("u2665") # BLACK HEART SUIT SelectMore("u2666") # BLACK DIAMOND SUIT SelectMore("u2663") # BLACK CLUB SUIT SelectMore("u2660") # BLACK SPADE SUIT SelectMore("u2022") # BULLET SelectMore("u25D8") # INVERSE BULLET SelectMore("u25CB") # WHITE CIRCLE SelectMore("u25D9") # INVERSE WHITE CIRCLE SelectMore("u2642") # MALE SIGN SelectMore("u2640") # FEMALE SIGN SelectMore("u266A") # EIGHTH NOTE SelectMore("u266B") # BEAMED EIGHTH NOTES SelectMore("u263C") # WHITE SUN WITH RAYS SelectMore("u25BA") # BLACK RIGHT-POINTING POINTER SelectMore("u25C4") # BLACK LEFT-POINTING POINTER SelectMore("u2195") # UP DOWN ARROW SelectMore("u203C") # DOUBLE EXCLAMATION MARK SelectMore("u00B6") # PILCROW SIGN SelectMore("u00A7") # SECTION SIGN SelectMore("u25AC") # BLACK RECTANGLE SelectMore("u21A8") # UP DOWN ARROW WITH BASE SelectMore("u2191") # UPWARDS ARROW SelectMore("u2193") # DOWNWARDS ARROW SelectMore("u2192") # RIGHTWARDS ARROW SelectMore("u2190") # LEFTWARDS ARROW SelectMore("u221F") # RIGHT ANGLE SelectMore("u2194") # LEFT RIGHT ARROW SelectMore("u25B2") # BLACK UP-POINTING TRIANGLE SelectMore("u25BC") # BLACK DOWN-POINTING TRIANGLE SelectMore("u0020") # SPACE SelectMore("u0021") SelectMore("u0022") SelectMore("u0023") SelectMore("u0024") SelectMore("u0025") SelectMore("u0026") SelectMore("u0027") SelectMore("u0028") SelectMore("u0029") SelectMore("u002a") SelectMore("u002b") SelectMore("u002c") SelectMore("u002d") SelectMore("u002e") SelectMore("u002f") SelectMore("u0030") SelectMore("u0031") SelectMore("u0032") SelectMore("u0033") SelectMore("u0034") SelectMore("u0035") SelectMore("u0036") SelectMore("u0037") SelectMore("u0038") SelectMore("u0039") SelectMore("u003a") SelectMore("u003b") SelectMore("u003c") SelectMore("u003d") SelectMore("u003e") SelectMore("u003f") SelectMore("u0040") SelectMore("u0041") SelectMore("u0042") SelectMore("u0043") SelectMore("u0044") SelectMore("u0045") SelectMore("u0046") SelectMore("u0047") SelectMore("u0048") SelectMore("u0049") SelectMore("u004a") SelectMore("u004b") SelectMore("u004c") SelectMore("u004d") SelectMore("u004e") SelectMore("u004f") SelectMore("u0050") SelectMore("u0051") SelectMore("u0052") SelectMore("u0053") SelectMore("u0054") SelectMore("u0055") SelectMore("u0056") SelectMore("u0057") SelectMore("u0058") SelectMore("u0059") SelectMore("u005a") SelectMore("u005b") SelectMore("u005c") SelectMore("u005d") SelectMore("u005e") SelectMore("u005f") SelectMore("u0060") SelectMore("u0061") SelectMore("u0062") SelectMore("u0063") SelectMore("u0064") SelectMore("u0065") SelectMore("u0066") SelectMore("u0067") SelectMore("u0068") SelectMore("u0069") SelectMore("u006a") SelectMore("u006b") SelectMore("u006c") SelectMore("u006d") SelectMore("u006e") SelectMore("u006f") SelectMore("u0070") SelectMore("u0071") SelectMore("u0072") SelectMore("u0073") SelectMore("u0074") SelectMore("u0075") SelectMore("u0076") SelectMore("u0077") SelectMore("u0078") SelectMore("u0079") SelectMore("u007a") SelectMore("u007b") SelectMore("u007c") SelectMore("u007d") SelectMore("u007e") SelectMore("u00c7") SelectMore("u00fc") SelectMore("u00e9") SelectMore("u00e2") SelectMore("u00e4") SelectMore("u00e0") SelectMore("u00e5") SelectMore("u00e7") SelectMore("u00ea") SelectMore("u00eb") SelectMore("u00e8") SelectMore("u00ef") SelectMore("u00ee") SelectMore("u00ec") SelectMore("u00c4") SelectMore("u00c5") SelectMore("u00c9") SelectMore("u00e6") SelectMore("u00c6") SelectMore("u00f4") SelectMore("u00f6") SelectMore("u00f2") SelectMore("u00fb") SelectMore("u00f9") SelectMore("u00ff") SelectMore("u00d6") SelectMore("u00dc") SelectMore("u00a2") SelectMore("u00a3") SelectMore("u00a5") SelectMore("u20a7") SelectMore("u0192") SelectMore("u00e1") SelectMore("u00ed") SelectMore("u00f3") SelectMore("u00fa") SelectMore("u00f1") SelectMore("u00d1") SelectMore("u00aa") SelectMore("u00ba") SelectMore("u00bf") SelectMore("u2310") SelectMore("u00ac") SelectMore("u00bd") SelectMore("u00bc") SelectMore("u00a1") SelectMore("u00ab") SelectMore("u00bb") SelectMore("u2591") SelectMore("u2592") SelectMore("u2593") SelectMore("u2502") SelectMore("u2524") SelectMore("u2561") SelectMore("u2562") SelectMore("u2556") SelectMore("u2555") SelectMore("u2563") SelectMore("u2551") SelectMore("u2557") SelectMore("u255d") SelectMore("u255c") SelectMore("u255b") SelectMore("u2510") SelectMore("u2514") SelectMore("u2534") SelectMore("u252c") SelectMore("u251c") SelectMore("u2500") SelectMore("u253c") SelectMore("u255e") SelectMore("u255f") SelectMore("u255a") SelectMore("u2554") SelectMore("u2569") SelectMore("u2566") SelectMore("u2560") SelectMore("u2550") SelectMore("u256c") SelectMore("u2567") SelectMore("u2568") SelectMore("u2564") SelectMore("u2565") SelectMore("u2559") SelectMore("u2558") SelectMore("u2552") SelectMore("u2553") SelectMore("u256b") SelectMore("u256a") SelectMore("u2518") SelectMore("u250c") SelectMore("u2588") SelectMore("u2584") SelectMore("u258c") SelectMore("u2590") SelectMore("u2580") SelectMore("u03b1") SelectMore("u00df") SelectMore("u0393") SelectMore("u03c0") SelectMore("u03a3") SelectMore("u03c3") SelectMore("u00b5") SelectMore("u03c4") SelectMore("u03a6") SelectMore("u0398") SelectMore("u03a9") SelectMore("u03b4") SelectMore("u221e") SelectMore("u03c6") SelectMore("u03b5") SelectMore("u2229") SelectMore("u2261") SelectMore("u00b1") SelectMore("u2265") SelectMore("u2264") SelectMore("u2320") SelectMore("u2321") SelectMore("u00f7") SelectMore("u2248") SelectMore("u00b0") SelectMore("u2219") SelectMore("u00b7") SelectMore("u221a") SelectMore("u207f") SelectMore("u00b2") SelectMore("u25a0") SelectMore("u00a0") SelectInvert() DetachAndRemoveGlyphs() Print("Saving ", $2) Generate($2)