Accessing all the available Photo Frames in Keynote ’08

Wednesday, August 8, 2007

I’ve had a few more hours with Keynote (This post was written shortly after iWork 08 was released), and today I want to look at how the photo frames function works. Years ago I created something I called “Stretchables” for my Keynote products. I never really did much with them, though some of my themes contain Stretchables in the extras files. It appears that Apple took a cue from these (no idea if they stole the idea or came upon it themselves, most likely they didn’t steal it) and have now implemented them in Keynote ’08.

Basically, there’s a new stroke option called Picture Frame:

Picture Frame

But you’ll notice there are only 12 frames. NOT SO! For some reason, Apple decided to embed quite a few frames (and even use them in their included themes), but not show them to the user. If you crack open the Keynote app and drill down through the Frameworks folder, you’ll see this:

Frame list

I’ve shortened it a bit to fit on this page, but there are 72 frames in that folder (and one called None). 72 frames and all we get to choose from is 12!

Well, I wasn’t content with that, so I started messing. At this point, I still hadn’t found a way to expand that menu of 12, but I did notice that each of the Apple themes uses a different frame, and I found that you can easily copy and paste a frame from one file to another to use it in your own presentation.

As it turns out, there IS a way to get all of those frames into your stroke menu. There’s an xml file inside Keynote that lists the available frames. When you add more frame names to this xml file, they show up in the Inspector. Here’s a shot of my copy of Keynote ’08 with some of the available frames:

long list

Basically, if you control click on your copy of Keynote (oh, make sure you keep a fresh copy of the app around just in case you break something) you’ll see the option to view the package contents. Choose that, then open the contents folder, then resources. You’ll see a file called “BGGraphicInspectorFrames.plist.” Open this file in your favorite text editor and you’ll see the original list:

Original list

Now, to save you the trouble of finding the complete list buried inside the Keynote app, we’ve provided the actual replacement file for download-though you might actually want to keep reading before you download it. Full Plist replacement file

At this point, you can either open the original file in a text editor and replace the text with the file we’ve provided, or you can replace the entire file inside the Keynote package (make sure you quit and relaunch Keynote for the changes to take effect). But there’s a problem…even on my 20″ monitor, Keynote can’t actually display all 72 frames, it chops off all but 59 of them (I’m not sure if the 4.0.1 update fixed that either). So if you’re going to go this route, I suggest simply copying and pasting 50 or less of them into the list and being happy that you now have 50 frames to choose from instead of 12. here’s a shot of our working list with a bunch of frames, but not the whole lot:

final list

and, so that you don’t have to mess with things, here’s the final plist file all trimmed down with our favorites in it.

One interesting side effect of the way Apple built the frames system is that if you decide to reverse engineer the frames so you can make your one unique frame, it still must be installed INSIDE the Keynote app to work. The problem with that is that if you DO build your own custom frame (we’re not talking about the hack above, we’re talking about creating your OWN frame from scratch) if you wish to share a presentation that uses that frame, you must also install the frame in any copy of Keynote that will be used to open the file. This is fine for your own stuff, but not so great if you’re giving presentations out that use custom frames. I wish Apple had built a system that allows for custom frames to be embedded inside a theme file and then carried over into the resulting presentation, but it doesn’t appear to do that.

We hope you like this first “hack” of Keynote ’08, stay tuned for more Keynote (or iWork) ’08 fun!

UPDATE: We’ve built a Keynote file that contains all the frames, so you can use this file to copy and paste frames out of, instead of patching your copy of Keynote. Download it here.

Next: What? Hidden strokes too?