This version of the site is now archived. See the next iteration at v4.chriskrycho.com.

Custom Fonts on Kindle

The standard typeface for the Kindle, Caecilia, works well enough: it’s a well-designed, high contrast slab serif that matches the needs of the low-contrast, low-resolution Kindle screens well. It’s also not even close to being a really great reading face. The new Kindle Paperwhite has gorgeous typography, by all accounts, but if you have an older Kindle, you don’t have to buy a new one to start getting some of the benefits of better typography.

I recently discovered that it is possible, with a fairly small amount of effort, to put whatever fonts you like on your Kindle, without jailbreaking. Here’s how.

  1. First, find the font you want to use for your Kindle.
    1. Technical requirements: It’ll need to be either OpenType (.otf) or TrueType (.ttf) to start. You ultimately need it to be in .ttf format – some instructions I’ve seen suggest the Kindle will recognize even a .otf as long as the extension is changed, but I’m not sure if that’s true. There are online converters you can use, and for best results if you have .otf files, you should convert them to .ttf before continuing.

      Make sure you’re doing this legally. Use a font that doesn’t forbid conversion in its End User License Agreement. You can find lots of free fonts on the web, many of them with open licenses. You might start at DaFont.com and FontSquirrel, which have very long lists of free fonts

    2. Appearance suggestion: Find a medium weight (thickness) font. Thinner fonts won’t display well and will be hard to read. Many of the free fonts you can find online include multiple weights; generally you’ll want to use a Medium rather than Regular weight for the base. One great free font that might work well even in its normal weights is the free Crimson.
  2. You’ll need font files named [fontname]-Regular.ttf, [fontname]-Italic.ttf, , and [fontname]-BoldItalic.ttf. They don't have to have these names when you find them; all you really need to do is find the regular, italic, bold, and bold-italic versions of the font file, then rename them to match this format.

    One friend used Liberation Sans (free at DaFont.com), so his fonts ended up being named LiberationSans-Regular.ttf, LiberationSans-Italic.ttf, LiberationSans-Bold.ttf, and LiberationSans-BoldItalic.ttf after renaming them.

  3. Connect your Kindle to the computer, and open it in Windows Explorer or Finder (depending on whether you're on Windows or a Mac). At the base directory of the Kindle (the same level where you'll see the documents, create a new folder called fonts. Put the font files you created in step 3 in the folder. Note: you must have all four files outlined above.
  4. From here, the steps differ depending on whether you're on a Keyboard, or a Touch or Paperwhite. (If some enterprising reader wants to tell me which category the base model with just a five-way fits into, that would be excellent.)
    • Kindle Keyboard:

      1. Install Calibre (you can find the download for your operating system here). Calibre is great general software to have for your Kindle anyway.
      2. Once you have Calibre installed, you'll need to install the Kindle Collections plugin.
        1. Go to the Plugins button (it may be in the extended part of the menu; there's a button on the right to enable it). If you click the drop down next to the Plugins button, you'll see the option Get plugins to enhance Calibre; choose that.
        2. It should bring up a menu titled User Plugins, and just below that a drop down labeled Filter list of plugins. Make sure that Not installed is selected. Looking through the list, find Kindle Collections (it's third from the top on my list). Install it.
        3. You'll be prompted to add the plugin to toolbars or windows. I'd add it to The main toolbar when a device is connected and The menubar when a device is connected.
        4. It will prompt you to restart Calibre, do so.
      3. Now, back to Calibre: if you have it up, it should note that your device is connected, and you should be able to look at all the books on it. You should also see the Kindle Collections button and menu item (again, it may be in the extended toolbar area). Click it and then select Modify Kindle settings.
      4. Now, we'll actually enable the font on the Kindle:
        1. Under Font Family, choose the new font you added (opt for the one with a regular name if there is one with an underscore or other strange character in there).
        2. Check the box labeled Allow using user font.
        3. Click Save. You'll be prompted to restart your Kindle. In case you miss the on-screen instructions on how to restart the Kindle, here's a quick walkthrough:
          1. Eject it from the computer.
          2. Once the Kindle comes up, go to the home screen (click Home).
          3. Click Menu and choose Settings.
          4. Once the Settings menu is up, click Menu and then choose Restart.
        4. Once the Kindle comes back up up (and it'll take a few to come all the way back up and reload your library), load any book. Click the Aa key to change your font settings, and under Typeface choose alt if it's not already selected. Adjust your preferred font size, words per line, and line spacing as desired, and away you go.
    • Kindle Touch/Kindle Paperwhite1

      1. Create a blank file called USE_ALT_FONTS at the root level of the Kindle (the same level where you created the fonts directory).

        • If on Windows, launch Notepad and save a file with that name to the Kindle. Make sure it has no extension. Delete the extension manually if necessary.
        • If on Mac or Linux, launch the Terminal (Mac: Applications → Utilities → Terminal) and create the file by typing touch USE_ALT_FONTS. The file will be created in your home directory; go ahead and move it to the root of the Kindle. (*nix nerds can obviously do this the easy way.)
      2. Eject the Kindle from the computer. Perform a full restart on it (Menu → Settings, Menu → Restart).
      3. Open up a book or document, and try changing the font. You should see your font there.
      4. If you do not, return to the home page, tap the search icon, and type in ;fc-cache and hit the return key on the screen keyboard. Wait a few minutes; the Kindle will sort of flash the screen and then reset to the normal view. You should now be able to select the font you installed.

        Note: if you change the fonts by moving new ones into the font directory, this final step is the only one you need to do; you don't have to do a full restart each time.

And that's it! You should now be up and running with a typeface of your choosing - enjoy your reading!


  1. Thanks to commenter Craig for pointing out this solution.

Discussion

  • Nemolus thought to say:

    Tried this with Paperwhite, after trying to save configs to Kindle, Calibre reports that it cannot save to Kindle. I guess this somehow doesn’t work with PaperWhite? Thanks.

    Offer a rejoinder↓
      • Craig thought to say:

        Has anyone been able to put a ttf on a Paperwhite? Looks like I’ll be returning mine and getting a Nook. Dang. The Dotsies font looked great on the old e-ink Kindles.

        Offer a rejoinder↓
        • I believe people have managed it by rooting the whole thing, but that’s not something I’m particularly motivated to do on mine (got it a couple weeks ago).

          How long did it take you to be able to read Dotsies? :p

          Offer a rejoinder↓
          • Awesome, I’ll have to try that. Thanks for the info! If I get it working on mine without jailbreaking, I’ll add it to the post above and credit you for the info.

          • Craig thought to say:

            Cool! Yeah, no jailbreaking required. Just create an empty USE_ALT_FONTS textfile, create a ‘fonts’ dir in the kindle root, and copy the 4 font files into it with those specific names. (Then restart the kindle and look at the font menu.)

          • Yeah, got it going myself—very nice, and thanks for the info! I’ll be adding it either tonight or tomorrow. :)

  • Najih thought to say:

    Hi
    I tried the procedure to install Arabic font on my Kindle but unfortunatly it didn’t work, it kept using the defalt font which appears fragmented in some parts of some words, I tried ArabicNaskhSSK-Regular and the rest of the forms , that is Italic ….and so on, the steps were followed as instructed but no benefit. Thanx for your effort and if there is any advise , that will be appreciated.

    Offer a rejoinder↓
    • Ah, I’m sorry to hear that this trick doesn’t work for Arabic – that’s disappointing, to say the least! I would guess it probably has a hard time with any non-English fonts, at least in the software package distributed with Kindles in the US. I hope more non-English-language support becomes standard for Kindles in the future.

      Offer a rejoinder↓
    • Suzi thought to say:

      You could try this first and then as above. It worked for me.

      On your Amazon Kindle, press Home button to go to your home page.

      This step is important to make sure the change you are going to do will take effect. If you are doing this while an eBook is open, the change will not take effect.

      Connect your Amazon Kindle to your computer with a USB cable.

      Open the folder in sequence : system > com.amazon.ebook.booklet.reader

      In the “com.amazon.ebook.booklet.reader” folder, open reader.pref file with a text editor.

      Add a new line to the file just before “FONT_FAMILY=” line:

      ALLOW_USER_FONT=true

      Replace FONT_FAMILY= with FONT_FAMILY=alt.

      Save and close the reader.pref file.

      At the root of your Kindle device, create a folder named fonts.

      In this folder, you will need to rename your custom fonts with specific names according to their styles.

      Regular : alt-Regulat.ttf

      Bold : alt-Bold.ttf

      Italic : alt-Italic.ttf

      Bold Italic : alt-BoldItalic.ttf

      Eject your Amazon Kindle Keyboard.

      Restart your Amazon Kindle:

      Menu > Settings > Menu > Restart

      Offer a rejoinder↓
  • Federico thought to say:

    It may sound a little off topic, I apology for that — these days I’m up with typographical concerns for my PaperWhite!
    Does somebody of you guys know if it may work a similar trick (to create an empty file in the root folder) to enable left-alignment (rags) instead of standard justification? Unfortunately Kindle PW/Touch lack of the .pref file which you could edit on the other devices and I couldn’t find a solution yet.
    Thank you in advance,
    Federico

    Offer a rejoinder↓
  • Suzi thought to say:

    Thanks for this. I installed ‘OpenDyslexia’ on my Kindle Keyboard.

    Only works on books I add and not on Kindle downloaded books but even so its made my life easier!! Thanks!!

    Offer a rejoinder↓
  • Ilya Zhitomirskiy thought to say:

    I tried downloading some books with Church Slavonic font, and converting from .pdf to .mobi format, but when I tried to read the books on the Kindle, it spat out a random mix of Cyrillic letters, Latin letters and numbers. Has anyone else had that experience? Does Irmologion or another group of Slavonic fonts work on the Kindle? What can you suggest?

    Offer a rejoinder↓
    • Hmm. My guess would be that it’s a problem with the PDF conversion; Amazon often struggles with more complex documents. You might try converting a Word document via Calibre or the Kindle Previewer tool and loading the resulting output onto your Kindle; that may have better results—which, sadly, won’t help you with those PDFs. I’ve had similar difficulties with converting PDFs that contain polytonic Greek characters in the past, so I definitely understand the frustration.

      Offer a rejoinder↓
      • Lucas thought to say:

        Hello, just one more contribution. In my Kobo Glo, in the directory “fonts”, I put the free fonts BSTGreek, BSTHebrew and the free font Gabriola. All the epubs containing polyphonic Greek or Hebrew or Ciryllic alphabeth worked well for me in Kobo. I still have not tryed it with Kindle but I guess it won’t be easy since there is this requirement of including the name regular, italic, bold and bolditalic right after the font name. That requirement is not needed in Kobo. That is it.

        Offer a rejoinder↓
  • Lucas thought to say:

    I once bought a Kobo Touch and my brother enjoyed it so much that I gave it to him. Then I bought to myself a Kobo Glo and I was enjoying as much as I could until the day I forgot it somewhere and lost it. I then bought to myself a Kindle Touch. What a deception. Although I recognise that Kindle has a better ink-screen, Kobo is far much better for my needs. I easely added any font that I needed to read Greek, Hebrew, Arabic and Russian. What a terrible deception after buying a Kindle that I cannot even change a font. There are instructions everywhere about how to hack this, how to hack that. Well, I don’t have time to waste in front of my computer to learn every detail of how to hack Kindle so I am retiring it. I bought to myself a new Kobo Glo which will stay with me for a long period.

    In Kobo, just create in the root a directoy called fonts. Put all the fonts you need and restart it. That is it. And Kindle? I still don’t know and it doesn’t matter for me anymore. That is it, folks.

    Offer a rejoinder↓
  • Lucas thought to say:

    Hello. I backed up all my kindle files before trying to make changes. I followed Chrys Cricho’s instructions for Kindle Touch. It worked for me. I did not need to do the command ;fc-cache to make the fonts to appear. However, I got extra fonts that I did not put in it. Now I accept instructions on how to advance and go back the pages of the Kindle Touch book catalogue either when we use cover or by book title. I don’t like to slide my finger on the e-ink screen to flip the pages of the book catalogue. Kobo has a Forward and a Backward buttons for that reason. Does anyone have any idea?

    Offer a rejoinder↓
    • The extra fonts you’re seeing there are normal: they’re just typefaces that are hidden from view by default. The steps you followed here show them, as well as any other fonts you’ve added to the system. Alas.

      If you want forward and backward buttons, the Kindle Touch or Paperwhite are the wrong devices to have purchased. You’ll want a Kindle Keyboard (which you’ll have to get used) or some other device.

      That said, you don’t have to slide your finger. If you just tap the screen on the right side, it will advance, and if you tap on the left, it will go back. :)

      Offer a rejoinder↓
      • Lucas thought to say:

        Hello. Thank you for your reply and suggestions. Well, maybe I did not express myself well when I mentioned “forward and backward buttons”. I don’t like to slide the finger on Kindle or Kobo Glo just because their e-ink screen are made to be cleaned all the time. In a Tablet, that would be ok to clean. What I ment, if I am expressing myself right this time, is to know if it is possible to add a “slide bar” or “virtual forward and backward buttons/icons” at the bottom of the Kindle screen to access the pages of the book catalogue just like it occurs with Kobo Glo. The situation is this: if you have hundred books, the books can’t all be shown on one single page. If you prefer touches on the screen instead of sliding the finger, you have to click on the page number that is at the bottom of the book catalogue screen, touch to show the page number option, then a virtual keyboard will appear. You then press the page number you want and then click “go”. Kindle users would have a very easy life if they had the forward and backward icons to navigate. Unfortunately, computer programming, specially Linux, is not something easy for me. I just follow ready instructions. If there are any available, let’s try. Thank you again for taking your time to write your comment. And thank you again. It was here that I found the solution for my Kindle font problem.

        Offer a rejoinder↓

Pipe up!

Anonymity is most unhelpful. Please identify yourself!

You may use GitHub-flavored Markdown and/or these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>