Get the Logitech Professional Presenter R800 remote to work with Keynote on a Mac.

The Logitech R800 is one of the best presenter remotes out there. Unfortunately, Logitech, in its infinite wisdom, refuses to support the Apple platform, even though the remote works fine on the Mac (with a little fiddling). Here's the drill:

This presenter is essentially a miniature keyboard with 4 keys on it. These keys are hard-wired to send out the shortcuts that PowerPoint uses, and two of these (PgUp for previous slide and PgDown for next slide) work fine with Keynote as well. The "Play slideshow" button and "blank the screen" buttons aren't compatible, however. So, to get those two buttons to work with Keynote, you have to fiddle with Keynote's keyboard shortcuts:

If all you need is the Play-slideshow button: This button alternates between Esc (which stops the show) and F5 (which means nothing to Keynote). To fix that problem, go into System Preferences and pick Keyboard preferences. Click on "Shortcuts" and in the list on the left, choose App Shortcuts. Hit +, then at the top of the dialog pick Keynote as the application. Enter the exact text Play Slideshow as the Menu Title, then put the cursor in the shortcut box and hit F5 (or hit the button on the remote).

Getting the blank-screen button to work is harder because there's no blank-screen menu title. If you want both buttons to work, ignore the previous paragraph and do the following:

  1. Get Karabiner from https://pqrs.org/osx/karabiner/
  2. Replace ~/Library/Application Support/Karabiner/private.xml with the following XML:
    <?xml version="1.0"?>
    <root>
      <devicevendordef>
        <vendorname>LOGITECH</vendorname>
        <vendorid>0x046d</vendorid>
      </devicevendordef>
    
      <deviceproductdef>
        <productname>LOGITECH_R800</productname>
        <productid>0xc538</productid>
      </deviceproductdef>
    
      <appdef>
        <appname>IWORK_KEYNOTE</appname>
        <equal>com.apple.iWork.Keynote</equal>
      </appdef>
    
      <item>
      <name>Custom keys for Logitech Presenter 800</name>
      
        <item>
          <name>R800 For Keynote</name>
          <identifier>private.R800_for_keynote</identifier>
          <only>IWORK_KEYNOTE</only>
          <device_only>DeviceVendor::LOGITECH, DeviceProduct::LOGITECH_R800</device_only> 
          <autogen> __KeyToKey__ KeyCode::DOT, KeyCode::B</autogen>
          <autogen> __KeyToKey__ KeyCode::F5,  KeyCode::P, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L </autogen>
        </item>
      </item>
    </root>
    
  3. Launch Karabiner and click on the icon in the toolbar.
  4. Select Preferences
  5. Select the Change Key tab.
  6. Click the Reload XML button on the top right.
  7. At the top of the remapping list that takes up most of the window, you should now find the label Custom keys for Logitech Presenter 800.
  8. Click the triangle on the left of that item, then check the R800 For Keynote box