Organizing a LARGE amount of TrueType fonts on Linux
Over the last decade or more, I’ve been doing graphic design for friends, family, clients and other people personally and professionally. In that time, I’ve been asked to match this font face or that font in a photograph. In that time, I’ve amassed a HUGE collection of fonts that allows me to do that; 19,980 fonts to be exact in my current collection.
There’s a great tool on the web called “What the Font?” that I often use for exactly this purpose. What you do is upload a piece of your graphic that includes the font you want to identify and their application asks you some basic questions (“Is this an ‘r’? Does your ‘a’ look like this? or this?”), and then it tells you which font is most-likely being used in that image/graphic. It’s an absolutely invaluable tool when you’re trying to match existing fonts for a piece of work you didn’t create.
When I make graphics with my tools (gimp, Adobe Creative Suite 3 (CS3), ufraw, etc.), I embed the name of the font I used in the comment meta data of the graphic file itself, so if I go back 6 months or a year later, I can figure out exactly what font I used when I created it.
But 19,980 fonts is LOT of fonts to go through and keep organized. I generally keep these stashed away in $HOME/.fonts/
so I can use them in my normal applications on my Linux machine and so they’re backed up with $HOME
during the normal backup intervals. They are all sitting in one big directory so fontconfig
and Xorg can use them.
But to use these with any sort of graphic editor (such as the gimp) takes forever to process them at load time. I needed to make that more manageable and speed things up.
Enter a quick bash hack:
cd ~/.fonts/
shopt -s nocaseglob
for font in {a..z}; do rsync -avP ${font}*ttf ${font}; done;
What this does is go through all of my fonts in $HOME/.fonts/
and put them into a directory beginning with the first letter of the font name. All fonts that begin with ‘A’ or ‘a’ are now in ~/.fonts/a/
and so on. Much cleaner and easier to organize. it also makes it easier to pack up these files into a .zip or .7z archive for later use.