Creating Your Own Profiles
For small tweaks to existing profiles, we recommend using the built-in profile editor. You can accomplish quite a lot with it.
To use your own icons and graphics, you’ll need to get your hands dirty with the internals. The good news is that a profile is simply a folder containing text and image files, so you don’t need any strange programs or expensive tools. Any text editor and image editor will do.
It will help to have some basic knowledge of XML. You don’t need to know much. Just enough to make sense of all the brackets.
Getting Started
First, sign up for a Dropbox account, if you haven’t already, making sure to install the software on your computer. Then, in HippoRemote Pro’s settings, enable Dropbox linking. This will allow you to view and edit profiles on your computer and easily sync them back to your iPhone.
Next, we strongly recommend browsing existing profiles to familiarize yourself with their contents. The best starting point for your profile is an existing profile.
With Dropbox, the innards of every profile on your iPhone are available for perusal on your computer. Alternatively, you can download profiles from this page. To sync changes made on your computer back to your iPhone, scroll to the very top of the profiles screen and pull the list down until you see the syncing notification.
Finally, be sure to familiarize yourself with HippoRemote’s macro syntax. It’s how you tell HippoRemote the commands you want for each button or gesture.
Profile Internals — trackpad.plist
The one required file in any profile is trackpad.plist. Here’s an example of what it looks like:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>appname</key> <string>Hulu Desktop</string> <key>auto_pause</key> <string>[ENTER]</string> <key>auto_resume</key> <string>[ENTER]</string> <key>initial_tab</key> <integer>3</integer> <key>buttons</key> <array> <dict> <key>action</key> <string>[GESTUREPAD]</string> <key>image</key> <string>hulu.png</string> <key>text</key> <string>Gesture</string> </dict> <dict> <key>action</key> <string>[CTRL+f]</string> <key>action_mac</key> <string>[COMMAND+f]</string> <key>image</key> <string>fullscreen.png</string> <key>text</key> <string>Fullscreen</string> </dict> <dict> <key>action</key> <string>[CONTROLPAD:arrowpad]</string> <key>image</key> <string>tab-arrowpad.png</string> <key>text</key> <string>ArrowPad</string> </dict> <dict> <key>action</key> <string>[LOGINS]</string> <key>image</key> <string>logins.png</string> <key>text</key> <string>Logins</string> </dict> <dict> <key>action</key> <string>[MACROS]</string> <key>image</key> <string>macros.png</string> <key>text</key> <string>Macros</string> </dict> </array> </dict> </plist>
The file specifies the name of the program and the buttons that appear along the bottom of the trackpad, including their titles, icons and keyboard actions. You can have a maximum of five buttons. Any more will be ignored.
Windows users will need to add the exe_path field to enable auto app launching. I recommend putting it right after the appname field, like so:
<key>appname</key> <string>XBMC</string> <key>exe_path</key> <string>C:\Program Files (x86)\XBMC\XBMC.exe</string>
Profile Internals — Images
Any custom icons need to be bundled into your profile folder as well. Images must be in the PNG format.
If you want your profile to display an icon, you need to name the image icon.png and make sure that it is 32x32 pixels in size.
Profile Internals — Macros
If you’ve assigned a button to the Macros command, you can also include a predefined list of macros by creating a macros.plist file.
Here’s a sample:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <dict> <key>text</key> <string>Volume Up</string> <key>action</key> <string>[PLUS]</string> </dict> <dict> <key>text</key> <string>Volume Down</string> <key>action</key> <string>[-]</string> </dict> </array> </plist>
There’s no limit to the number of macros you can define.
Profile Internals — Controlpads
In the sample trackpad.plist from above, one of the buttons brings up an arrowpad via this action: [CONTROLPAD:arrowpad]
In this case, HippoRemote Pro looks for a file named arrowpad.plist to describe the buttons on the arrowpad. A single profile can contain multiple controlpads by specifying different files.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>bigBox</key> <array> <array> <dict> <key>text</key> <string></string> <key>action</key> <string></string> <key>image</key> <string></string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string>[UP]</string> <key>image</key> <string>arrow-up.png</string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string></string> <key>image</key> <string></string> </dict> </array> <array> <dict> <key>text</key> <string></string> <key>action</key> <string>[LEFT]</string> <key>image</key> <string>arrow-left.png</string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string>[ENTER]</string> <key>image</key> <string>enter.png</string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string>[RIGHT]</string> <key>image</key> <string>arrow-right.png</string> </dict> </array> <array> <dict> <key>text</key> <string></string> <key>action</key> <string></string> <key>image</key> <string></string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string>[DOWN]</string> <key>image</key> <string>arrow-down.png</string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string></string> <key>image</key> <string></string> </dict> </array> </array> <key>smallBox</key> <array> <array> <dict> <key>text</key> <string></string> <key>action</key> <string>[ESC]</string> <key>image</key> <string>esc-small.png</string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string>[SPACE]</string> <key>image</key> <string>space-small.png</string> </dict> <dict> <key>text</key> <string></string> <key>action</key> <string>[BACKSPACE]</string> <key>image</key> <string>delete.png</string> </dict> </array> </array> </dict> <plist>
Controlpads have a bigBox and/or a smallBox. The bigBox covers the upper portion of the trackpad and can have multiple rows. The smallBox covers the lower portion and can have only one row.
You specify the text, icon and action, and HippoRemote Pro takes care of sizing and layout.
Profile Internals — Overlays
HippoRemote Pro supports a second style of control pads called overlays. They are a bit more work to set up than controlpads, but you can completely control their look.
Overlays are activated via an action of this form: [OVERLAY:arrowpad]
Here, the app looks for a file named arrowpad.plist to describe the overlay. Like with controlpads, a single profile can contain multiple overlays by specifying different files.
Getting Help
Please note that this document is a work-in-progress. If it’s not clear how to do something, don’t hesitant to email us with your questions at .