Manage your fonts in Linux with Fonty Python
I remember, back in the day, when dealing with fonts in Linux was a real problem. At best you were given the xfontsel application, which was an X11 way of displaying the fonts on your system - only in the old-school X11 method (think bitmappy). Fortunately modern Linux distributions have much better fonts and font tools available. From font creation/editing to font management, there are plenty of outstanding applications to help you in your quest for font nirvana.
In this article I am going to introduce you to Fonty Python. Fonty Python isn't just a cool name, it's a tool that allows you to manage your fonts in a rather different manner. Fonty Python allows you to organize your collection of fonts in sub-collections called Pogs (for TyPOGraphy). In this article you will learn how to install and manage your fonts with FontyP ython. Bring out your fonts!
If you are using Ubuntu you will happy to know you can find Fonty Python in either Synaptic or the Ubuntu Software Center. Do a search for "fonty" (no quotes) and install the results. If you aren't running Ubuntu, you can install from source by following these steps:
- Make sure you have the requirements installed: python2.4 (up to python2.6, but not python3), python-dev, python-imaging, python-wxgtk2.6 (or greater).
- Download the tar file from the download page.
- Open up a terminal window.
- Unpack the tar file with the command tar xvzf fontypython-XXX.tar.gz Where XXX is the release number.
- Change into the newly created directory with the command cd fontypython-XXX Where XXX is the release number.
- Issue the command python setup.py install.
The result will be the fontypython command installedÂ successfully.
Using Fonty Python
You will find the Fonty Python executable in the Graphics sub-menu of your Applications menu. When you first fire up Fonty Python you will see the main window (see Figure 1), which will contain no fonts. If you are like me, you keep your fonts in the ~/.fonts directory. The problem is, Fonty Python will not look in hidden directories. To get around this you need to create a symbolic link in your home directory so that Fonty Python can see your fonts. Open up that terminal window again and issue the following command:
ln -s ~/.fonts ~/fonts
Now when you open up Fonty Python it will be able to see your fonts. What you want to do is double click the fonts directory in the left-most pane. This will reveal your fonts in the middle pane. At first you might think you're not seeing your entire collection. If you notice there is a drop-down with a number and a Forward button. If you click the drop-down you will see that Fonty Python places fonts on pages, so you're not having to scroll through thousands of fonts in one pane. You can also click the Forward button to move through your font collection, one page at a time.
Notice in Figure 1 I have three Pogs created: Handwriting, Messy Fonts, and Typwriter. As you can imagine I am in the process of organizing my fonts. For my organizational needs I am creating a Pog for each font look. That way all I have to do is select a Pog by look and search the fonts associated with that Pog.
To create a Pog click the New Pog button and give your Pog a name. Once named that Pog will be listed in the Target Pogs pane. To add fonts to that Pog follow these steps:
- Select the Pog you want to add fonts to.
- Go through your installed fonts one page at a time and select fonts to be included.
- Before you move to a new page click the "Put fonts into XXX" button (Where XXX is the name of the Pog).
Continue until you have added all related fonts into your Pog. Don't worry if you forget a font, because you can always add more fonts to your Pogs any time.
Now that you have all of your fonts organized, it will be much easier to find, organize, and view the fonts you have installed on your machine.
Thanks for the write-up. I am the author of FP.
Just to inform you and your readers:
The idea behind Fonty is to “collect” fonts from various places so that Fonty
can put them into your ~/.fonts folder *for* you.
You see, once they are in ~/.fonts, they are “installed” and other apps
(like Inkscape) can find them quickly.
So, using Fonty to group fonts in ~/.fonts does not make any sense; you
should use it to manage fonts from *other* directories.
Also, go to the Savannah website (Fonty’s home) and get the latest version.
You don’t need to compile or anything, just run it from the folder that it
downloads-to. You may need to apt-get a few other bits, but fonty should
(i hope) tell you what it needs.
So I use Fonty to collect and make a folder of “managed fonts”.
I would likely create /opt/myFonts/… or similar.
I would then “copy” from this folder to per-user ~/.fonts or to
/usr/share/fonts or similar? Is this correct?
Do I have the right idea?
1. Make a folder /opt/myfonts as you say.
2. Sub folders in there are fine, like “A”,”B”, “Free”, etc.
3. Put your fonts into that structure. This is 100% up to you with no restrictions.
4. You can use ttf, otf, ttc, and Type1 fonts.
1. Imagine you have a job to do. Let’s call it “blog-design”.
2. Open Fonty and make a new Pog called “blog-design”
3. In Fonty, browse to your /opt/myfonts folder.
4. Go through the subfolders (or whatever) and it shows you the fonts.
5. Click (it ticks them) the fonts you want to use in your job.
6. Put those fonts into “blog-design” (Big button at bottom of fonty).
7. Install that Pog. (Button under pog list)
* This is the point that Fonty links them into ~/.fonts.
8. Close Fonty. (If you want to.)
9. Open your app (Inkscape, Gimp, whatever). Do your work. The fonts
you chose are available to the system.
10. When you are done, use Fonty to uninstall “blog-design”. This does *not*
remove your original fonts files, it only removes a link in ~.fonts
After a while you will have many Pogs that you can switch in and out as you
work on various projects. You don’t have to fiddle with individual font files
That’s it. I hope it helps :)
Hit F1 in fonty for the help file. And be sure to get the latest stable version from
the website I linked in my prev post.
Seems quite handy!