Apple Backup 3.0 QuickPicks FAQ

An Exploration into the Innards

By John Hugg
Last Updated: 10/8/05


What's a Quickpick?

Apple's .Mac service includes a program called Backup 3.0 which backs up files to various media, including a users iDisk. When selecting files for backup, the user is given a choice between selecting files and folders manually, using a Spotlight search or using predefined "QuickPicks." An example QuickPick would be "Keynote documents," which selects all Keynote file in the user's home directory. These Quickpics are actually files in a special folder that describe a set of matching criteria. It's actually not difficult to roll your own QuickPicks and this site is meant to help developers and users do just that.

Where are QuickPicks kept?

The Backup 3.0 Bundled QuickPicks are kept in:
/Library/Application Support/Backup/QuickPicks/

But you may prefer to keep them in:
~/Library/Application Support/Backup/QuickPicks/

What's in a QuickPick file?

QuickPicks are Mac OS X Package/Bundle files. That is, they are folders on the filesystem that the finder chooses to display as a single file. The contents can be viewed with the "Show Package Contents" contextual menu item.

They are laid out like this:

What's in these files?

The two files that seem to be most important are DefinitionPlist.strings and InfoPlist.strings.

What's in DefinitionPlist.strings?

The matching criteria is stored in DefinitionPlist.strings. This is a Mac OS X property list file that can be opened with the Property List Editor that installs with the developer tools. Note it lacks the standard .plist extension, so it won't open with the property list editor by default. Alternatively, it is just plain text, so it can be opened with any text editor.

DefinitionPlist.strings Syntax

Some of this is still a mystery to me though I've got some simple stuff down. I'll post much more when I get a chance. Here's an example from the Address Book QuickPick:

"Node Specifications" = (
    {
        "Graft Paths" = (
            {doNotCrossFilesystemBoundaries = 1; pattern = "~/Library/Addresses"; }, 
            {
                doNotCrossFilesystemBoundaries = 1; 
                pattern = "~/Library/Preferences/AddressBookMe.plist"; 
            }, 
            {
                doNotCrossFilesystemBoundaries = 1; 
                pattern = "~/Library/Preferences/com.apple.AddressBook.plist"; 
            }, 
            {
                doNotCrossFilesystemBoundaries = 1; 
                pattern = "~/Library/Application Support/AddressBook"; 
            }, 
            {
                doNotCrossFilesystemBoundaries = 1; 
                pattern = "~/Library/Preferences/com.apple.AddressBook.abd.plist"; 
            }
        ); 
        "Node Specification Archive Version" = 1; 
        Operation = Include; 
        "Prune Paths" = (); 
        "User Action" = Log; 
    }
);
"Atomic" = 1;
"QuickPick Definition Archive Version" = "1";
"DocumentType" = 0;

What's interesting is that when edited with the Property List Editor and resaved, these files are converted into XML and still work just fine. Both of my custom QuickPicks use XML and seem to work fine.

Open Questions:

What's in InfoPlist.strings?

The name and description of the QuickPick is stored in the InfoPlist.strings file inside the English.lproj folder. This file is also a Mac OS X property list so the same editing rules apply. Many existing QuickPicks have localizations for other languages. To localize the name and description, add a folder called German.lproj or Japanese.lproj with identical files in it. Mac OS X will use these to get the description if the user is running Backup 3.0 with the language set to German or Japanese respectively.

InfoPlist.strings Syntax

"Description" = "Your QuickPick Description Here";
"QuickPick Info Archive Version" = "1";
"Name" = "
Your QuickPick Name Here";

Example Custom QuickPicks

Tex Files QuickPick
Backs up files with extensions .tex and .bib

Source Files QuickPick
Backs up files with extensions .cpp, .c, .h, .java, .py and .php

Contact Me

If you know more about QuickPicks, send me email:

John Hugg => jhugg at mac.com