Posted by: skyshab | February 19, 2009

Using Snatch as a Plex Remote: Revisited

Being a seasoned Plex user, I start to chuckle when I think about how I once swore off the app out of frustration, having not yet learned all the keyboard shortcuts. Plex just has too many features to get anything accomplished from the minimalistic Apple remote, and a keyboard has no place in the living room as far as I’m concerned. When I got my iPhone, I became enamoured with the idea of a do-it-all device, and started trying out all the available remote control apps out there. I finally found one that met my needs, and it has become an integral part of my Plex experience.

Snatch, anyone?

When Snatch came out, the remote control aspect was more of an afterthought, with it’s primary features being the mouse trackpad and full function keyboard. But the ability to create custom buttons and program them to a keyboard stroke was what got my attention. I was able to create a pretty decent remote for controlling Plex, and while not very graphically pleasing, it worked pretty well. I started keeping a regular stream of communication with Snatch’s developer, Dan, suggesting ways that the remote aspect of the app might be improved. Dan was very receptive to the feedback that he received from the public, and Snatch has really evolved into a great app, especially after the latest release.

One of the new features is the ability to load an image to be used as a button in the remote. This was a great step, but still limits you to a very angular design. But, thanks to another new feature- the ability to set the opacity of the buttons down to zero- I was able to design a remote screen as a whole, rather than button-by-button.

The basic concept is this: I made one button that completely fills the screen and loaded in a single graphic of the whole remote. I then created completely transparent buttons to overlay their graphic counterparts on the “background” button. Getting everything properly aligned on the iPhone screen turned out to be rather tedious, so I instead figured out all the numbers and went into the xml file and edited it manually.

Another great new feature of Snatch is to be able to save and load remote screens to and from your computer. This means that Snatch users can easily share their custom remote creations with others. There is a page on the Snatch website where you can download the remotes that I and others have created.

I decided that there were way too many useful features in Plex to be crammed into a single remote screen, and so created two screens. Snatch now lets you easily swipe side to side between your remote screens, so using the two together is actually very fluid. The first screen has all the main controls such as Play, Pause, Stop, the navigation arrows, and a few other key features that I find myself using often. The second remote contains shortcuts to the various places that you would need to navigate to within Plex, but at the single press of a button, rather than having to backtrack out of the menu structure to the home screen before going anywhere. These functions are not all to be found in the Plex’s keymap files, and so require adding a small customized xml file to Plex’s user files.

OK, enough with the verbiage, Let’s see the remotes!

Here are screenshots of the two remote screens:

main plex remote screen

Plex Remote - main screen

Plex Remote - shortcut screen

Plex Remote - shortcut screen

What do all those buttons do, anyway?

Here are the screenshots again, but with their functions. The second screen obviously already has descriptors on screen for most of the buttons, so…well, you get the idea.

main screen functions

main screen functions

shortcut screen functions

shortcut screen functions

The Plex button that is on both screens not only launches Plex, but also brings focus to it if you have left to check your e-mail or browse the Plex forums to see if your favorite bug has been fixed yet. The two red buttons, ‘A’ and ‘B’,  are meant to be user definable, though I made them default to launching iTunes and DVD player. I have mine set to wake and sleep my media server. Originally, while in fullscreen video, you could press ‘return’ to bring up the OSD, which has many important controls for your videos (subtitles, interlacing, etc), so the ‘Play’ button had this dual function. However, with the latest Plex release, they changed the ‘return’ key to pause the video instead. This makes much more sense, but I had already designed the remote, and there was no more room for another button. I found a good work-around for this, which is included in the custom xml file that I created for the second remote screen. It basically assigns the menu button to also bring up the OSD while watching a video. This actually makes a fair amount of sense, since the functions are similar, and the menu button had no use during fullscreen playback.

OK, I’m sold! How can I get this?

First, and rather obviously, you need to purchase the app Snatch from the iTunes store and install it on your iPhone. It is a bit more expensive than a lot of apps at $5.99, but I think it’s worth it. For Snatch to be able to communicate with your computer, you also need to download and install Snatch Server on your computer, which is a free download available on the Snatch website. Follow the instructions in the Snatch user manual for getting everything set up. Once you’re up and running, you can go on to the next step.

Download the two remote screen files and the custom xml file, and save them some place accessible, like your desktop.

Plex Remote – main screen

Plex Remote – shortcut screen

Custom keyboard xml file (right click and ‘save link as’)

To load up the screens, launch Snatch on your iPhone and make sure it’s connected to Snatch Server. Go to the custom remotes section of Snatch, which is rather cryptically under the ‘Keys’ tab. Press the ‘Edit’ button in the bottom right corner. Then choose ‘Load Screen’. A window should pop up on your computer asking you to select a file. Choose one of the remote screen files you downloaded, which should end in a .remote extension. Click OK, and your iPhone will ask you to confirm that you want to load the screen. Accept, and your screen will be loaded and almost ready to use. Repeat for the second screen.

Just a tip– I have had a bug appear a few times where when you go to load the screen, the dialog flashes only for a millisecond on the screen and instantly disappears. The iPhone sits there, stuck on “waiting for the file” or whatever it says. Relaunching Snatch and Snatch Server doesn’t seem to help. I found that deleting the com.hoofien.snatchserver.plist file from the User/Library/Preferences folder and restarting Snatch clears the problem up. Dan has not been able to reproduce this bug, and so is unable to troubleshoot it. Hopefully this will be fixed in the future.

Now, you need to load the custom keymap file into Plex. In ~/Library/Application Support/Plex/, create a folder called ‘keymaps’ if you don’t have one already. (BTW, “~” refers to your username folder.) Just drop the keyboard.xml file in there, and Plex should start to use your custom definitions the next time it’s launched. If you already had a custom keymap file going, you can simply cut and paste the additional defintions from this file into your existing one.

OK, you should be good to go. But what if you want to change the red ‘A’ and ‘B’ buttons to do something different?

Just bring up the remote screen on your iPhone and select the edit button. Everything should have a grid on it and start jiggling around. Select the button you want to change, and a green dot will appear on it. Just make sure that you DO NOT hit the ‘X’ on the button, becuase this will make it go bye-bye. Once you see the green dot, choose ‘Record’ from the top of the screen. The keyboard will pop up, and you can program any combination of keystrokes that you’d like. You can also go into the launchpad screen and launch an application, and the button will remember that. If you really want to get crazy, you can even program a button with mouse movements, but I honestly haven’t figured out a good use for that, other than messing with someone. Once you have recorded the desired actions of the button, hit ‘finish’ in the top right corner. Then program another button, or hit “Done” to finish.

Just a tip– if you accidentally hit the background button while trying to program another one, all the other buttons will disappear behind the background. To bring them back to the front, just double tap it, and it will send the background back to the back.

That’s it!

You now have a rockin’ Plex remote, that’s not only very functional, but it looks good too!




  1. Hi, I just watched your video on the iPhone app “Snatch” as a remote for Plex. Great stuff there! I was just wondering how you made your iPhone appear on the screen? That was a nifty little trick there and I would love to know how you did it! Great review! I downloaded Plex and Snatch and have been using both with great success.



  2. Excellent app, I love plex but the apple remote just don’t cut it. Snatch works like a dream with your button set up.

    Thanks so much


    • @Jon
      Awesome! Glad you like it. I will probably do a revision after the new Library for Plex comes out.


  3. Hi there – I love it too! One question:

    When playing iPhoto Pictures in Plex, the “P” key plays a slideshow with the Ken Burns effect, but when the Play/Pause is pressed on the Snatch mainscreen, it is equivalent to “Return” which plays the slideshow without an effect.

    It’s nice to play with the KB effect – any way to have this happen?

    Thanks much!

  4. it is magical! however after months of all is well, i can no longer get the arrows or pause button to work. i can only stop shows and start over and cannot ffw or rwd. i dont know if its hulu or plex or snatch or this particular plex remote. anyone else with this sudden change?

    thanks for the great remote and hope to see more!

  5. just wanted to say I setup your remotes w/ snatch tonight. Works great. Thanks for the info and for showing me snatch!

  6. Works perfectly. Excellent work; your attention to detail shines through. Your remote stands out from all of the other Snatch remotes.

    • Thanks, I appreciate that. I will be doing an update as soon as Plex updates their Library. Hopefully, it will come wrapped in a box with a bow on it under the proverbial X-mas tree…

  7. hi,
    first, thanks for all the usefull stuff I found here, especially the plex remote.
    this is to inform you I made an alternative remote adapted to my needs.
    It’s able to control /launch / quit / switch between plex, eyetv, dvd player, and itunes.
    It also puts the mac to sleep (quicksilver required), can eject cd/dvd and launches my favorite bittorrent client 😉

    If you are interested, email me, I’ll send it to you.

    I intend to submit it to the snatch website, but first I want to know if you’re ok with that, don’t want to interfere with your own work.


    • First of all, this snatch remote saved the day here, great work.
      @ David Nicolas, I would not mind if you could share the remote you made where you can change between eyetv and plex and not the least, put the mac to sleep.

  8. This is great! But when I installed it I lost my regular keyboard. Any idea how to get it back?

  9. What if I use digital out for my audio on a mac mini? Is it possible to control volume using the remote?

    cool app though…thanks.

  10. Got all excited until I went to the website to see that Snatch is dead and not available on the App Store

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: