Created
January 4, 2021 19:13
-
-
Save choefele/cd3ae365ef2c3c6e2a77c383c329eeec to your computer and use it in GitHub Desktop.
Map Logitech Wireless Presenter Keys to Work in Zoom and Teams (macOS)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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