Using a MacMini with a Logitech Harmony remote control

Retiring my XBOX1 and XBMC setup was inevitable. It had long since shown its 733mhz CPU was able to output HD but just didn’t have the muscle to actually decode anything over SD resolution.
So when Apple announced the new Unibody Mac Mini just days before my birthday I saw it as a perfect own-gift.
The Core2Duo CPU was more than adequate to decode all codecs and resolutions and its new super thin and sexy casing was just the sugar on top. As far as I can tell its the best HTPC chassis out there – if only it had BluRay (stay tuned).
The Mini could finally give me a media centre, Freeview PVR and a rock solid *nix based NAS with the ability to run various background servers (UPnP, AirVideo, iTunes etc).

Unfortunately controlling all this from the couch was always going to require some work. OS-X’s default HTPC app, Frontrow, is extremely basic to say the least.
Thankfully there are two great applications that do almost everything, the XBMC fork, Plex and Elgatos EyeTV. Both have support for the standard Apple remote, but with only 6 buttons a lot of things were inaccessible or required weird combos to get to.

As I already owned the fantastic Logitech Harmony 725 remote I was pretty keen to get it working on my new HTPC but unfortunately Apples infrared remote implementation is very limited and only supports Apple remote controls few commands via 6 buttons.

The following steps are from my fair share of reading blogs, wikis and forums on this subject and what I’ve finally managed to figure out to get this working as I want.

The Solution
By default your Mac listens for any Apple remotes telling it do do something, by default it will listen to any remote and do as it commands. I’m sure you could have no end of fun with a single remote in a busy room with a bunch of macs.
Thankfully OS-X does support the ability disable the sensor but also allows you to ‘pair’ a specific remote to a specific machine.
Technically, the way Apple allows pairing is that each remote has a randomly ID assigned between 000-255 on manufacturing. This ID is then broadcast before each button press. If your computer gets an ID different to the remote its paired with it will just ignore the command.

Its thanks to this feature we can actually differentiate between many Apple remotes despite them seemingly sending the same command. Now we know this we can then set every key on your harmony to send unique IR codes to you computer. Sweetness.

I first discovered this process here, but it was a quite lengthy process and involved learning each remote individually. I’ve now discovered a much simpler process which gives teaches your Harmony multiple preset remotes instantly.

Setting Up Your Harmony
First thing you’ll need to do is setup your Harmony remote to send Apple remote codes. Thankfully thanks to the crowdsourcing nature of the Harmony Remote system people have already submitted a remote setup with all the necessary codes saved.

To set this up open Harmony Remote Software on your mac.
Add a new device and choose Computer, Media Centre PC, Plex and use the name Plex Player.

This sets up your remote to send the commands of 10 Apple remotes with differend ID’s from the various buttons on your harmony. Now you’ve done this, you could setup an activity on remote, for now though I would say just use the Device button to access the Plex layout and to test the setup.

Running Plex Only?
If you want to use your Harmony with ONLY Plex 8 / 9 you don’t need to go through any more steps – just go to Plex’s Preferences and then under System \ Control turn on Harmony as the remote setup and enable ‘always running’.
This will give you access to all the buttons on the remote including starting up Plex via the Menu button when its not open. All the labeled buttons will do just as you would expect them to.

Unfortunately what I found was when I ran other apps along with Plex, they would start competing for the remote commands and I found Frontrow or iTunes popping up when I don’t want them. The setup below shows how to get them all playing nicely together.

You’ll need an application called RemoteBuddy. It lets you assign remote commands to specific actions, whether they be system wide or application specific. They offer a 30 day trial to get you started start and registration is relatively cheap (€19.99/$NZ35).

1. Install, and if necessary Open RemoteBuddy. You will get a new taskbar icon by your clock.

2. Access the RemoteBuddy icon select preferences from there.

Enable Mutiple Remote support.

3. Click Hardware. Tick ‘Enable support for multiple remote controls’ and then ‘Automatically authorise newly found remotes….’ Leave this window open.

4. Now on your Harmony Remote, choose Devices and Plex Player.

5. Click most/all the buttons on your harmony. You should start seeing the right panel of the RemoteBuddy screen start populating with remote controls. You should end up with 10 controls (ID’s 150-160). Note that there is no remote for ID 156 so don’t worry when it doesn’t appear.

Now we need to assign these remotes to ‘Logical Remotes’ so that RemoteBuddy can assign commands to the buttons.

6. Press the + on the left panel to add a Logical Remote, for ease I would recommend a name like Remote 150 so you can keep track of whats what through this process. Note you can’t rename the first, default remote (ID150) but can all others you make.

You should see 10 remotes appear on the right panel.

7. Now on the right side, assign each remote ID to a logical remotes name – if you followed the last step this should mean Remote 152 is set to Logical remote with the ID 152 etc…
It should look like the picture below once you’ve done that.

8. Now for the most boring part, working out which key on your Harmony is sending which remote ID and key to RemoteBuddy. it would be near impossible to work this out but thanks to ShavenYak on the RemoteBuddy forums here are the remote ID’s and buttons.

Harmony button – Remote ID Button

OK – 150 Select
Up – 150 Up
Down – 150 Down
Left – 150 Left
Right – 150 Right
VolUp – 152 Up
VolDn – 152 Down
Mute – 152 Select
ChUp – 158 Up
ChDown – 158 Down
Prev – 153 Down
Menu – 150 Menu
Exit – 155 Up
Guide – 157 Play
Info – 153 Up
Stop – 151 Play
Replay – 160 Up
Skip – 160 Down
Play – 151 Menu
Rec – 155 Down
Rew – 154 Up
Fwd -154 Down
Pause – 152 Menu

1 – 151 Up
2 – 151 Down
3 – 151 Left
4 – 151 Right
5 – 152 Left
6 – 152 Right
7 – 153 Left
8 – 153 Right
9 – 154 Left
0 – 154 Right
Clear – 154 Play
Enter – 153 Menu
Blue – 159 Menu
Red – 159 Left
Green – 159 Right
Yellow – 159 Play
Aspect – 157 Up
LargeUp – 159 Up
LargeDown – 159 Down

PwrToggle – 157 Menu
Queue – 157 Down
Sleep – 154 Menu
F1 – 155 Left
F2 – 155 Right
F3 – 155 Play
F4 – 155 Menu
F5 – 160 Left
F6 – 160 Right
F7 – 160 Play
F8 – 160 Menu
F9 – 158 Left
F10 – 158 Right
F11 – 158 Play
F12 – 158 Menu
F13 – 157 Left
F14 – 157 Right

There you have it, 62 mappable remote buttons to any application in OS-X. You can go through the depths of RemoteBuddy mapping section and assign commands globally or application specific setups. FYI in my setup I have a both EyeTV & Plex mapped separately and only use Global settings for the RB default OSD via the menu button.

As this post is long enough, I’ve written another post showing how to turn this into a working setup based around Plex Nine and EyeTV 3.4.


  1. Hi,

    I will carrefully read your post but I’d like to know if this works with XBMC ? I run XBMC on a mac mini and also use a Logitech Harmony 555.

  2. Hey,

    First of all, I’d like to thank you so much for all of the work that you did putting this together. I followed your directions step by step and even though it took some understanding, I eventually got it and now have my setup, which is very similar to yours working at 99%. I was wondering if you might be able to help me out with something though. When I press the ‘menu’ button and it comes up I can’t use any of the directional buttons until I’ve pressed the ‘info’ button. Almost like its locked up for some reason. And the other thing is that when I try to input channel numbers, it sometimes doesn’t get all of the numbers. I know it’s not a big deal but I like to know why things won’t work the right way. Any ideas? Anyway, thanks again for all your help and I’ll be following your blog.


    1. You might want to check how fast (or slow) your Harmony is sending IR commands. It could be sending them too fast for the mac to see them. I don’t personally remember having to change them but yours could be fighting other things with IR in the room too.

Leave a Reply

Your email address will not be published.