QZ qz thoughts
a blog from Eli the Bearded

New logos, in bulk


After my last post, I got to thinking logo making was far too manual, so I decided figure out how to get Imagemagick to generate the images for me. Imagemagick is a powerful set of tools, but it has super shitty documentation. What you can find, however, is example usage which is sometimes enough to get you going. Testing with on-hand TTF files I was able to convince myself this would work.

Then I started looking for fonts. I found Font Space. There are more fonts than I'd want to shake a stick at, but it suffers from some odd organization. The list of tags associated with, say, "Vegan Style", means it comes up in tons of searches. It's a tattoo font, and a summer font, and a vintage font, and a modern font, and a tropical font, and a sexy font, and a resume font, and a fun font, and a recipe font, and a Christmas font, and I could go on. Anyway, I found a lot of fonts and started downloading.

Fonts from there are all zip files. Some of which have subdirectories, many of which have multiple font files within the zip, and all of which seem to have bad Unix file permissions. I wrote my script to accomodate all that. Hand it a zip, and it pulls the fonts out, constructs an image with that font, and then deletes all the temp files.

The logo-tool works relatively fast. On my slow, cheap, computer I made 1944 images from 846 font zip files in about 12 minutes. It took me a lot longer to find the files at Font Space, and a lot longer to sort the output into "use" and "do-not-use". Because I don't want all of the bold and the italic and the outline and the bold-italic and bold-outline ... versions of a font. I kept one or two from most fonts, but discarded all from some because, eg, the font lacked a glyph for "Z" or ended up being totally unreadable.

How I did the sorting is worth sharing. I love the Linux image viewer feh, it is fast, flexible, and powerful. In this case I updated an old tool of mine called fehcopy to have a "move" mode, then created a new "theme" for feh:

$ echo "fontsort --cycle-once -A 'fehcopy -m -d ../do-not-use %f'" >> \
  $HOME/.config/feh/themes
$

The --cycle-once bit means feh will not restart from the beginning upon reaching the end. The -A action argument is the powerful one. When I hit "0" (zero key) on an image, it will run that command with %f being expanded to the current filename. Then it's just a matter of going through hitting space (for keep / next), zero for do-not-use, and sometimes "p" for previous when I want to compare a pair of files. feh supports up to ten different actions, using 0 to 9 to trigger them. I wrote fehcopy years ago to help with that sorting stuff between a bunch of directories. I can't recall why I preferred copy to move now.

Themes in feh can be invoked in two ways. I used the simpler way for this feh -T fontsort, the more complicated (but good for frequent use) is create a symlink to feh with the name of the theme, then run the theme as a program. I use that with my fehonce theme now, and I've had others in the past:

$ grep fehonce $HOME/.config/feh/themes
fehonce --scale-down --cycle-once
$ cd ~/bin/
lrwxrwxrwx 1 elijah elijah 12 Nov  3  2013 fehonce -> /usr/bin/feh
$ 

Anyway, that's how I have 891 new logos today.