The Flirc I ordered came in today. You can order one for yourself from Amazon (affiliate link). Which is good, because I think my wife was getting pretty tired of using her iPhone to control the TV. I have an extra Apple Remote, which is what we've controlled XBMC with since 2008 when I bought my first Mac Mini. I was hoping that I could set it up to work the same way it did with XBMC on the jailbroken AppleTV and the Mac Mini.
I opened it up, and plugged it into front of my Intel NUC. Flirc has a plugin for XBMC that you can use to learn your remote. Conveniently, there is an Flirc repository so all I had to do was add http://xbmc.flirc.tv as a source in XBMC and then it was simply a matter of navigating to the addons section and installing it. The plugin was pretty straight forward and had me press the up, down, left, right, select, and back buttons. And it worked. I could control XBMC. However, long key presses weren't working at all. And the controls during playback did not work the same as with the Apple TV and Mac.
To make long presses work, I had to get the beta firmware, which meant installing the software on my Mac. I plugged in the Flirc and opened the application. It automatically prompted me to update the firmware which only took about 30 seconds. Once it was done I plugged it back into the Intel NUC in my living room. I did not have to relearn the remote. Now I could hold down the buttons and easily scroll through all of my content. Unfortunately, a long keypress and a short keypress are still mapped to the same keyboard key so it wasn't going to work exactly like it did on the Apple TV.
Since Wife Acceptance Factor (WAF) is always an issue in the sorts of things, I wanted to make it as close as possible. She only needs to pick something to watch, play/pause, and stop playback so not being able to pull up the context menu isn't really an issue. The best solution I could come up with was to edit the keymap.xml in XBMC. I kept the default keys that Flirc mapped (the arrow keys, enter, and escape) and changed their actions in the FullscreenVideo context. All you need to do is download this file and save it in your XBMC userdata directory as keyboard.xml. You'll have to restart XBMC after making any changes to the keymap for them to go into effect.
I'm probably going to change the escape key to Stop so that anybody in the house doesn't get confused by the OSD. I can always bring it up with another remote or my iPhone. You can see the two lines I changed below.
<FullscreenVideo> ... <enter>Pause</enter> <escape>OSD<escape> ... </FullscreenVideo>