Customizing Iconoclasm

Recently, people have emailed me claiming the extension doesn't do what it says it does, that it doesn't "break free from rows and columns" and whatnot. My description is factually correct; Iconoclasm lets you do all of that. However, due to the lack of documentation until now, it is understandable that people would misunderstand. So here is a page clarifying how to use Iconoclasm beyond what you can do once it is installed.

Layouts Explained

Layouts are property list files (plists) located at /Library/Iconoclasm/Layouts. In most cases, they can be edited through a typical text editor, or through Apple’s Property List Editor utility.

You have two possible kinds of layouts with Iconoclasm: grid layouts and freeform layouts.

Grid layouts are obviously defined by rows and columns. Freeform layouts have a set amount of icons, and for each icon a pair of X and Y coordinates, letting you specify their exact position.

It must also be mentioned that the origin (0, 0) for the coordinate system on the iPhone is the top-left corner of the device. The X value increases as you go right, and the Y value increases as you go down.

Grid Layouts

Grid layouts contain three keys:

• “EasyGrid” must be set to YES
• Cols is an array containing the X coordinate to the leftmost point for the icons in each column
• Rows is an array containing the Y coordinate to the topmost point for the icons in each row

Here is what the included Five-Column SpringBoard looks like under Property List Editor:

And here is what it looks like in a regular text editor:

(For the sake of making it fit on the iPhone screen without shrinking down the text to an unreadable size, the doctype has been chopped off; you can get the same exact file with the doctype intact by digging down into /Library/Iconoclasm/Layouts/Five-Column SB (5x4).plist.)

Freeform Layouts

Freeform layouts contain one array called “Origins”. Inside this array is a dictionary for each icon you want on-screen. Each dictionary has two keys:

• “x”: The X coordinate for the leftmost point of that icon.
• “y”: The Y coordinate for the topmost point of that icon.

Here is the Triangle layout in Property List Editor:

And here is the Origins array in a text editor:

This is too hard!

Sorry.

I am working on a visual editor for Iconoclasm layouts, and it is approximately 60% complete. It will make making layouts like these a lot simpler than it currently is. That said, if you want pixel-accurate alignment, you’ll most likely want to edit the plists directly.


Copyright 2009 Yanik Magnan.