Skip to content

Instantly share code, notes, and snippets.

@choefele
Created January 4, 2021 19:13
Show Gist options
  • Save choefele/cd3ae365ef2c3c6e2a77c383c329eeec to your computer and use it in GitHub Desktop.
Save choefele/cd3ae365ef2c3c6e2a77c383c329eeec to your computer and use it in GitHub Desktop.
Map Logitech Wireless Presenter Keys to Work in Zoom and Teams (macOS)
Logitech wireless presenters, such as the R700, function as simple keyboards. However, the standard key mapping only works with PowerPoint. When in a video conference, I prefer to have the keys mapped to volume up/down, mute on/off, and video on/off. That way, I can control these features even when further away from the keyboard.
Here is how to achieve this:
- Download and install Karabiner https://pqrs.org/osx/karabiner/ (Karabiner requires Input Monitoring permission)
- Download logitech.json from this gist and move to ~/.config/karabiner/assets/complex_modifications
- Open Karabiner > Preferences... > Complex modifications
- Click Add rule
- Enable "Logitech + Zoom: Volume, Mute, Stop Video" and/or "Logitech + Teams: Volume, Mute, Stop Video" (keys get mapped only if these specific apps are in the foreground and only for the Logitech wireless presenter)
Note: you might need to check if the vendor_id and product_id are correct for your device (Open Karabiner > Preferences... > Devices)
Based on the ideas presented in https://weibeld.net/mac/remap-presenter-keys.html
{
"title": "Logitech Wireless Presenter",
"rules": [
{
"description": "Logitech + Zoom: Volume, Mute, Stop Video",
"manipulators": [
{
"type": "basic",
"from": { "key_code": "page_up" },
"to": [ { "key_code": "volume_decrement" } ],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^us\\.zoom\\.xos$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "page_down" },
"to": [ { "key_code": "volume_increment" } ],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^us\\.zoom\\.xos$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "f5" },
"to": [
{
"key_code": "a",
"modifiers": [
"left_command",
"left_shift"
]
}
],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^us\\.zoom\\.xos$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "escape" },
"to": [
{
"key_code": "a",
"modifiers": [
"left_command",
"left_shift"
]
}
],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^us\\.zoom\\.xos$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "period" },
"to": [
{
"key_code": "v",
"modifiers": [
"left_command",
"left_shift"
]
}
],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^us\\.zoom\\.xos$" ]
}
]
}
]
},
{
"description": "Logitech + Teams: Volume, Mute, Stop Video",
"manipulators": [
{
"type": "basic",
"from": { "key_code": "page_up" },
"to": [ { "key_code": "volume_decrement" } ],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^com\\.microsoft\\.teams$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "page_down" },
"to": [ { "key_code": "volume_increment" } ],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^com\\.microsoft\\.teams$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "f5" },
"to": [
{
"key_code": "m",
"modifiers": [
"left_command",
"left_shift"
]
}
],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^com\\.microsoft\\.teams$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "escape" },
"to": [
{
"key_code": "m",
"modifiers": [
"left_command",
"left_shift"
]
}
],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^com\\.microsoft\\.teams$" ]
}
]
},
{
"type": "basic",
"from": { "key_code": "period" },
"to": [
{
"key_code": "o",
"modifiers": [
"left_command",
"left_shift"
]
}
],
"conditions": [
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 1133,
"product_id": 50488
}
]
},
{
"type": "frontmost_application_if",
"bundle_identifiers": [ "^com\\.microsoft\\.teams$" ]
}
]
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment