Info.plist Key Reference

Like most packages on Mac OS X, each Bowtie theme uses an Info.plist file to provide metadata, including its name, artist (that's you!), version, unique identifier, and a handful of other configuration options. You can create these files by hand in a text editor, or else use something like Apple's Property List Editor (included with Xcode; recommended).

The obligatory nature of each key (Required or Optional) is listed under its "Value Type."

Keys

Required Keys BTArtistURL, BTMainFile, BTThemeArtist, BTThemeDevice**, BTThemeIdentifier, BTThemeName, BTThemePreviewImage, BTThemeVersion, BTWindowHeight*, BTWindowWidth*
Optional Keys BTArtworkBackgroundFill, BTArtworkFunction, BTArtworkHeight, BTArtworkWidth, BTDisableArtworkSquaring, BTDisableStatusBar, BTMinimumVersion, BTOrientationFunction, BTPlayStateFunction, BTReadyFunction, BTStatusFunction, BTTrackFunction, BTWindowHasShadow, BTWindowMode

* These keys are not supported on Bowtie Touch, and thus not required.
** These keys are only required for Bowtie Touch.

Key Descriptions

BTArtistURL

The URL to the theme artist's website.

Value Type

String; Required

Availability

Available in Bowtie 1.0 Beta 2 and later.
Available in Bowtie Touch 2.0 and later.

BTArtworkBackgroundFill

The color with which to fill the background of supplied artwork.

Value Type

String; Optional

Discussion

If you don't provide this key, artwork will be painted over a black background, as in iTunes' "Now Playing" artwork display. The value can take the form of a hex color value (#rrggbb or #rgb), or use any of the rgb(), rgba(), hsl(), or hsla() CSS color functions. transparent is also supported, but other named color values (like blue) are not.

For performance reasons, this key is not supported on Bowtie Touch; iPhone OS automatically renders non-square artwork on a black background.

Availability

Available in Bowtie 1.2 and later.

BTArtworkFunction

The name of the user-defined function to call when firing the "Artwork Changed" event.

Value Type

String; Optional

Discussion

For more information on how events work, see Writing Your Theme and the Event Function Reference.

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTArtworkHeight

The height of the artwork (in pixels) that is passed with the "Artwork Changed" event.

Value Type

Number (integer); Optional

Discussion

This specifies the height of the artwork that is passed to your artwork function. iTunes album art is typically 600x600 in size. However, slipstreaming a 600x600 piece of artwork into a page adds a few seconds of lag to your application, and consumes additional memory, which is often undesirable. By specifying the dimensions of your artwork here, Bowtie can resize the artwork before sending it to your theme, which often greatly improves responsiveness.

On Bowtie for Mac, a default height of 175px is assumed if this key is omitted. On Bowtie Touch, a default height of 320px is assumed.

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTArtworkWidth

The width of the artwork (in pixels) that is passed with the "Artwork Changed" event.

Value Type

Number (integer); Optional

Discussion

This specifies the width of the artwork that is passed to your artwork function. iTunes album art is typically 600x600 in size. However, slipstreaming a 600x600 piece of artwork into a page adds a few seconds of lag to your application, and consumes additional memory, which is often undesirable. By specifying the dimensions of your artwork here, Bowtie can resize the artwork before sending it to your theme, which often greatly improves responsiveness.

On Bowtie for Mac, a default width of 175px is assumed if this key is omitted. On Bowtie Touch, a default width of 320px is assumed.

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTDisableArtworkSquaring

Forces Bowtie to provide artwork to themes in aspect-ratio resolution, rather than square images.

Value Type

Boolean; Optional

Discussion

If omitted or set to false, Bowtie will automatically create a blank image at the dimensions specified by BTArtworkWidth and BTArtworkHeight, optionally fill the background with a color specified by BTArtworkBackgroundFill, and then fit the album artwork into this image. This is done so that irregularly-shaped artwork will not appear stretched in themes that have not been designed to account for such possibilities, and is generally the desirable behavior.

If, however, you would like artwork to be provided to your theme in its native aspect ratio, you can set this property to true. The artwork will simply be scaled so that it can be contained by the box specified by your desired artwork dimensions, and then handed directly off to your theme.

Availability

Available in Bowtie 1.3 and later.

BTDisableStatusBar

If this value is true, suppress the display of the iOS status bar at the top of the screen.

Value Type

Boolean; Optional

Availability

Available in Bowtie Touch 2.0 and later.

BTMainFile

The name of the main HTML file that provides the body of your theme.

Value Type

String; Required

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTMinimumVersion

The minimum version of Bowtie supported by the theme.

Value Type

Number (integer); Optional

Discussion

If the user's version of Bowtie is older than the version specified here, when the user tries to install the theme, they will be presented with an error message asking them to update to a newer version of Bowtie.

This version is the build version (not the user-visible version) of Bowtie, specified as an integer. Check the build version for a particular release by choosing "About Bowtie" from the About menu, or else in most cases, by multiplying the release version by 1000 (for instance, Bowtie 1.4's build version is 1400).

Availability

Available in Bowtie 1.4 and later.

BTOrientationFunction

The name of the user-defined function to call when firing the "Orientation Changed" event.

Value Type

String; Optional

Discussion

For more information on how events work, see Writing Your Theme and the Event Function Reference.

Availability

Available in Bowtie Touch 2.0 and later.

BTPlayStateFunction

The name of the user-defined function to call when firing the "Playback State Changed" event.

Value Type

String; Optional

Discussion

For more information on how events work, see Writing Your Theme and the Event Function Reference.

Availability

Available in Bowtie 1.0 and later.
Available in Bowtie Touch 2.0 and later.

BTReadyFunction

The name of the user-defined function to call when firing the "Theme Ready" event.

Value Type

String; Optional

Discussion

For more information on how events work, see Writing Your Theme and the Event Function Reference.

Availability

Available in Bowtie 1.2 and later.
Available in Bowtie Touch 2.0 and later.

BTStatusFunction

The name of the user-defined function to call when firing the "Status Update" event.

Value Type

String; Optional

Discussion

For more information on how events work, see Writing Your Theme and the Event Function Reference.

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTThemeArtist

The artist of the theme, often just your name.

Value Type

String; Required

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTThemeDevice

The device on which the theme is designed to run.

Value Type

String from "mac," "iphone," "ipad;" Required for Bowtie Touch

Discussion

This string identifies which device the theme is designed for. If omitted, mac is assumed.

A valid value for this key is required for themes designed for Bowtie Touch. Likewise, if the value for this key is provided and is not equal to mac, Bowtie (on Mac) will deny installation of the theme.

Note that the value iphone corresponds to both iPhone and iPod touch.

Availability

Available in Bowtie 1.4 and later.
Available in Bowtie Touch 2.0 and later.

BTThemeIdentifier

The theme's unique identifier, in reverse domain format.

Value Type

String; Required

Discussion

The "identifier" is a common idiom in OS X development that allows systems to uniquely identify packages. Ordinarily, this is done by using a reverse domain format, followed by the name of the package. For instance, if my website is 13bold.com (we use domain names because they are guaranteed to be unique), and my theme is called "My Theme," my identifier would probably be "com.13bold.MyTheme." Technically, this can be anything, as long as you can reasonably guarantee that it will be unique to your theme.

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTThemeName

The name of the theme, as it's presented to the user.

Value Type

String; Required

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTThemePreviewImage

The name of an image in the theme's package used to represent the theme.

Value Type

String; Required

Discussion

This is the name of the image file that you are using as a preview of your theme; it is displayed in Bowtie's Preferences window when your theme is selected, and as the preview on your theme's tile in the theme selector. It can refer to any image file that OS X recognizes, and should be 450x300 (it will be centered if smaller, scaled down if larger). We recommend you call it "preview.png."

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTThemeVersion

The version of the theme.

Value Type

String; Required

Discussion

Currently, this value is symbolic, and is not actually used by Bowtie. In the future, it will likely be used to allow users to install multiple versions of the same theme. To enable this behavior in the meantime, rename your theme package (no need to modify Info.plist) to include the theme's version number so new versions won't overwrite existing versions.

Availability

Available in Bowtie 1.0 Beta 2 and later.
Available in Bowtie Touch 2.0 and later.

BTTrackFunction

The name of the user-defined function to call when firing the "Track Changed" event.

Value Type

String; Optional

Discussion

For more information on how events work, see Writing Your Theme and the Event Function Reference.

Availability

Available in Bowtie 1.0 Beta 1 and later.
Available in Bowtie Touch 2.0 and later.

BTWindowHasShadow

Whether or not the Bowlet window should be displayed with a drop shadow.

Value Type

Boolean; Optional

Discussion

If this value is set to true, the Bowlet window will be drawn with the standard OS X drop shadow. If this value is set to false, the Bowlet window will be drawn without a drop shadow. If this value is omitted, the default OS X behavior for shadows will be applied (ie, the shadow will be applied to fully opaque parts of the window, but not to translucent/transparent parts). It is recommended you only specify this behavior if the default does not look appropriate for your theme.

Availability

Available in Bowtie 1.2 and later.

BTWindowHeight

The height of the transparent Bowlet window containing your theme.

Value Type

Number (integer); Required (except on Bowtie Touch)

Discussion

This is the height (in pixels) of the WebKit canvas that will be created for your controller. It can be larger than your theme if you would like (the background is transparent), but if it is smaller, you may run into issues with clipping and accidental scrolling. Try to make your window only slightly larger than your theme — the larger the window, the more awkward it is to take automatic screenshots, and the more likely it is that someone will interact with your theme inadvertently. For more information, see Properly Sizing Your Theme’s Window.

Availability

Available in Bowtie 1.0 Beta 1 and later.

BTWindowMode

The operating mode (window level) for the Bowlet.

Value Type

String from "desktop," "normal," "top;" Optional

Discussion

The window mode of your theme describes how your window will behave in the shuffle of other windows. If you enter "desktop," your controller will float below all other windows; if you choose "normal," it will behave as any normal application; if you choose "top," your controller will always float on top of all other windows. "normal" is assumed if you do not provide this key.

Availability

Available in Bowtie 1.0 Beta 1 and later.

BTWindowWidth

The width of the transparent Bowlet window containing your theme.

Value Type

Number (integer); Required (except on Bowtie Touch)

Discussion

This is the width (in pixels) of the WebKit canvas that will be created for your controller. It can be larger than your theme if you would like (the background is transparent), but if it is smaller, you may run into issues with clipping and accidental scrolling. Try to make your window only slightly larger than your theme — the larger the window, the more awkward it is to take automatic screenshots, and the more likely it is that someone will interact with your theme inadvertently. For more information, see Properly Sizing Your Theme’s Window.

Availability

Available in Bowtie 1.0 Beta 1 and later.