Thanks for asking the questions.
Keynote sends my custom themes to the following location (usually hidden):
Macintosh HD/Users/"myUserFolder"/Library/Application Support/iWork/Keynote/Themes
The Themes folder contains 122 custom themes, 120 that are visible in the Theme Chooser, one that until yesterday was visible in the Theme Chooser (but is no longer visible), and one brand new theme created yesterday that is not visible in the Theme Chooser.
I checked permissions on the folder layers from "myUserFolder" all the way down to the Theme folder where the kth files are stored and found no issues. In addition, both the new custom theme and the revised custom theme have the same permissions as the 120 other custom themes (the ones that are still showing up in the Theme Chooser).
I have also tried to determine if there is a cache where Keynote 5.2 keeps a list of the theme storage locations (since I have more than one due to the commercial themes packs that I have installed) and/or a list of all themes available and their storage location (including the internal stock Keynote themes, third-party installed themes, and user custom themes). I have not found such a cache or a program that says that it might clean such a cache if it does exist.
I am continuing to work on the issue.
Yes the commercial themes should be stored here:
However this location isn't created upon installation of Keynote 5.1 or 5,2 - it may have been a holdover from earlier versions of Keynote. I plan to have my themes install here as well. Internal stock themes are all stored in the application itself. I'm pretty sure there is no cache for theme locations but rather a directive somewhere in the App itself.
Have you tried a variety of different themes saves from Keynote 5.2? Different sizes and with different base themes and/or different elements? Doubtful that this is the issue as it just sounds like its something to do with 5.2 running inside Lion. Have you tried a re-install of Keynote? Try deleting existing iWork folder and re-installing 5.1, then maybe try some theme saves or see if 5.1 recognizes the 5.2 saves at all before upgrading to 5.2
Those are things I would probably try.
Thanks for the ideas.
By the way, I discovered another discussion thread concerning this issue, "New Custom Themes feature broken after Lion 10.7.3?". It appears to deal with Keynote 5.1 under Lion issues similar to the one I am experiencing. There are several suggestions concerning the cache issue, though the most recent comment said that the solutions were no longer working under the current version of Lion.
I will continue to work on the issue.
I have completed my analysis of the Keynote 5.2 theme saving issue and I don’t believe that it is operating system dependent (all users of Keynote 5.2 should be experiencing the same issue regardless of version of OS X used).
I have discovered that Keynote 5.2 has a major bug in the portion of the program responsible for creating kth theme files. The short explanation is that Keynote 5.2 is not creating the special property list file “themeMetaData” (note that this file does not have an extension since it is inside the kth and Keynote knows how to use it). This is the critical bug because without the “themeMetaData” file the Theme Chooser does not identify the kth as an actual theme file and, therefore, does not display it. Keynote 5.2 is also not creating the preview files that the Theme Chooser uses to display the themes. This is a non-critical bug since the Theme Chooser displays a generic placeholder image when the preview file(s) are not found. However, it is critical from the standpoint that we often choose themes based on their appearance not by the filename label under the image in the Theme Chooser.
The workaround for correcting the missing “themeMetaData” file is straightforward. I have determined that only four key and data pairs are required to make a “themeMetaData” file that will satisfy the Keynote 5.2 Theme Chooser. The easiest method for executing the solution is as follows:
Find a pre-Keynote 5.2 custom or third-party theme kth file (look in ~/Library/Application Support/iWork/Keynote/Themes or “HD”/Library/Application Support/iWork/Keynote/Themes - in either case you may find additional folders that actually contain the kth files - if you find that you don’t have any old custom or third-party themes, then find and download one from the many free Keynote theme sites).
Expose the guts of the kth file with “Show Package Contents”.
Select and Copy the “themeMetaData” file.
Paste it in another folder (use your Desktop or make a “temp” folder in Documents).
Rename the file by just adding a text extension to it (add “.txt” without the quotes) and click the Add button on the “Are you sure …” dialog that pops up.
Open the themeMetaData.txt with TextEdit and adjust the dictionary (<dict>) list so it looks like the example shown below.
Do not make any changes to any other part of the file. If there are additional key and data pairs in the dictionary list, then delete them. If the data tags in the second line are <integer> and </integer>, then replace the word “integer” with the word “string” and type in “Keynote 5.2” between the tags as shown above (this is not absolutely necessary, but I recommend using this data item for documenting that this was a theme created with Keynote 5.2 and, therefore, manually patched). If there are characters between the description sting tags, then I recommend that it be deleted. The height and width data is for the slide size of the presentation upon which the theme design is based (such as 800 x 600). Other standard values that I found while rummaging around though the stock Keynote themes are (h & w): 768.000000 & 1024.000000, 720.000000 & 1280.000000, 1050.000000 & 1680.000000, and 1080.0000 & 1920.000000.
Save the themeMetaData.txt file (under 10.7 and 10.8 TextEdit will perform the save when you close the file).
Rename the file by removing the text extension to it (delete the “.txt” characters from the end of the filename) and click the Remove button on the “Are you sure …” dialog that pops up. This returns the file to a property list file without an extension compatible with Keynote 5.2.
After saving your new custom theme design using “Save Theme …”, quit Keynote, navigate to the folder where your new theme was stored (usually ~/Library/Application Support/iWork/Keynote/Themes), expose the guts of the kth file with “Show Package Contents”, in another Finder window find your edited version of themeMetaData, copy the file, go back to the exposed guts of your kth file and paste. Close the kth Finder window or back up to the previous folder. When you launch Keynote, you should see your theme’s filename label listed under a placeholder image where your preview will eventually show up (that’s the next task). However, you can select and choose your theme and it will open up a ready to use blank presentation using your theme.
The solution for the missing preview image can be handled in essentially three ways. First, live with the placeholder image shown in the Theme Chooser (easiest). Second, add a “preview.tiff” to the kth file which will give you a static preview image in the Theme Chooser (not too hard). Third, add a set of preview images so you get that dynamic view of various slides as you mouse across the preview image (challenging, but doable).
To add a “preview.tiff” file to the kth file you first need to find an image that represents your design. The most straight forward approach is to create a presentation with your theme, copy the thumbnail on the left side of the Navigator View, open Preview, and use “File | New from Clipboard.” Use “Tools | Adjust Size …” to resize the image to 120 pixels by 90 pixels at 72 pixels per inch with the default color model and Color Synch Profile (while it is not critical, you can see what it is with the Inspector). Save the file with the filename “preview” (literally, type the word “preview” without the quotes) and formatted as a TIFF (compression = none, Alpha checked) to your desktop or a temp folder (some place convenient). Now find the “preview.tiff” file that you just saved and copy it. Quit Keynote and once again navigate to the kth file of your new custom theme. Again, expose its guts. Paste your “preview.tiff” file in the kth. Close the Finder window or back up to the previous folder. Launch Keynote and your new custom theme now sports an image above its filename label.
Achieving the rollover slide view effect in the Theme Chooser essentially requires using the technique described above for the static preview image with several slide images. Start by creating a presentation with your new custom theme adding different types of slides and adding text or images so the design elements are visible. One at a time copy the Navigator View thumbnail and create a new image from the clipboard using Preview. Resize the image to 360 pixels by 270 pixels at 72 pixels per inch and the default color model and Color Synch Profile. Save the file with the filename “Preview”## (starting with ## = 00 and incrementing by one for each additional image) and formatted as a JPEG (I push the Quality slider up to Best). When you are done you will have a set of images named Preview00.jpg, Preview01.jpg, Preview02.jpg, etc. Quit Keynote. In another Finder window, navigate to your new custom kth file and expose its guts. Locate the Contents folder and open it. If you find a Resources folder inside, then open it, otherwise create a new folder inside the Contents folder, name it Resources, and open it. If you find a Previews folder inside the Resources folder, then open it, otherwise create a new folder inside the Resources folder, name it Previews, and open it. Copy all of your preview image files (Preview00.jpg, etc.) from your temporary location to the Previews folder. Either close the kth Finder window or back all the way out to the Themes folder. Launch Keynote and your new custom theme now sports the cool mouse over slide views same as the stock Keynote themes.
Frankly, this is all a real pain since Keynote 5.2 should be doing all of this for us like it use to before the latest round of “improvements.” I don’t know when the theme saving module in Keynote stopped working, but it may have been as early as 5.1. All I do know is that I had no problems making themes with 5.0.5 and hyperlinking extensive sets of presentations without the need to preload them. After the upgrade to 5.1, 5.1.1, and now 5.2 the theme saving module is seriously broken and the only way to use hyperlinking to launch one presentation from another is to preload all of the presentations into Keynote before starting the first presentation.
I hope this helps everyone. Let me know if you have questions.
Wow, this is a thorough analysis. I haven't tried it out yet, but thanks for documenting this all for the community.
I am mystified why Apple would leave this bug open for so long as customized themes are the first thing any advanced user would want to create.
I hope you've also copied this entire analysis into an entry on the feedback page for Keynote!
Thanks for the reply.
Putting the information on the Keynote feedback page is the next task on my list of things to do to get Apple to pay attention to the issues with the latest version of Keynote.
I have been waiting for over a year for Apple to fix the hyperlinking issue (see by comments to "Linking KN9 files together using hyperlinks, fades to black") that started with Keynote 5.1.
Yes I discovered the same thing you did Secstage, but there is an easier way to fix it or rather go around the problem. You will notice if you save a theme out of keynote as a package you get a different result.
If you save as package then you won't get the themeMetaData file as you discovered, but if you save as a non-package zip file then you will. The problem that sometimes happens with the package zip files are they often don't have the /Contents/Resources/Previews or /Contents/Resources/en.lproj
For most people these aren't important except for the preview images as you explained, but for me as a developer they are a bit important.
I actually had some of these same problems in 5.1.1 too.
Thanks for the comment.
I experimented with saving a new custom theme as a non-package or compressed kth file in Keynote 5.2 today.
I changed my Keynote General Preference to save compressed files (unchecked Save new documents as packages). I them opened one of my old custom themes and saved it with a new name. I was pleasantly surprised to see that the new custom theme was displayed in the Theme Chooser with its preview image. I moved the kth file to another folder for dissection. Looking inside the kth I found that Keynote 5.2 had created a themeMetaData file as well as a preview00.jpg in the Previews folder inside of “Contents/Resources” (as well as a localization “en.lproj” file). I then saved a presentation with four slides as a compressed kth custom theme. Again, I was happy to see that Keynote 5.2 properly converted the four slides to four preview images and that they worked perfectly to give the rollover view effect in the Theme Chooser. I switched my Keynote General Preference back to save package files, resaved the first custom theme as a package, and looked at its guts to verify that the critical files were missing (and they were, so it did not show up in the Theme Chooser). I then copied the Contents folder and themeMetaData file from its dissected equivalent compressed file and pasted them into the package kth file. The patched package kth file then showed up in the Theme Chooser with its preview image.
For those of us who save our presentations (and consequently our custom themes) as packages using the guts of a corresponding compressed kth is definitely a faster workaround. Those of us who have switched over to saving presentations (and themes) as compressed files probably did not experience an issue with Keynote 5.2 custom theme development.
I hope this helps everyone. Let me know if you have questions.
This is the definitive workaround! Thank you so much... I've been experimenting a while, but never tried to use zipped themes instead of packaged ones. Very strange bug that seems to be the symptom of a bad design in the code (creating the files should be independent of the final on-disk structure). Anyway, thanks SO MUCH.
Well, from my brief testing today after updating to Keynote 5.3, it appears that the custom theme issue is now worse than it was with Keynote 5.2. I need to do a more thorough evaluation of both the "package" themes and the compressed, "single file" themes to see what has changed, but the little bit of poking around inside a couple of themes created using Keynote 5.3 that I did today revealed some new resource files that may have been added to enhance interoperability with iOS Keynote. The new files show up in the "single file" version of the theme, but not in the "package" version of the theme (which also still lacks the themeMetaData file and the preview file). In addition, I found that I had to quit Keynote 5.3 in order to get the new (compressed, "single file") custom theme to show up in the theme chooser [before the theme chooser refreashed when it was redisplayed by Keynote]. Also, the new custom theme replaced the custom theme upon which I had based it (even though I had saved the new theme with a modified file name). So there is some new stuff going on and it is going to take some time to figure it all out.
I did test the Keynote 5.2 workaround described above for "package" themes and it still works with Keynote 5.3. I don't use the iOS version of Keynote so I really don't care about preserving the interoperabiltiy between the two versions of Keynote. Once I come up with something, it would be interesting to see how the modified themes work with iOS Keynote (fixing one may break the other). My main goal is to make sure that my custom themes continue to work properly in OS X Keynote on my Macs.
I hope this helps everyone. Let me know if you have questions.