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
* 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.