Bidirectional Physical Zoom Mute Button
Introduction: Bidirectional Physical Zoom Mute Button
We're spending the majority of our time on Zoom today, and yet we still keep forgetting to mute/unmute and embarrassing ourselves.
Sure, the Zoom UI is far from perfect, but as makers, we should be solving our own problems ourselves instead of blaming it on tech companies: so here it is, a DIY Bidirectional Zoom Mute Button.
This Zoom mute button not only toggles your mute/video status on Zoom, but is also bidirectional, meaning it syncs with the status on the Zoom app. It will work even if you click the mute button from the app, or the host mutes you, etc.
We see so many of these physical mute buttons on the internet now, but most are either just triggering keyboard shortcuts or crowdfunding on Kickstarter. Here's one of the very few bidirectional, opensource physical mute buttons.
(Apologies to Windows users: this instructable only supports Mac OS at the moment!)
How it works
Technically, the Zoom Mute Button does the following 2 things:
1. Send Zoom shortcut keys to the Zoom Client app to toggle mute/video status
2. 288
Scrape the mute/video status from Mac OS and reflect it on to the device LED lights
Most similar devices only do 1, which is a bummer because the device itself does not keep track of the actual status on the Zoom Client app, therefore not able to have any visual indicators for the status. This Zoom Mute Button offers a simple and (almost) no-code solution to that problem by utliizing SwiftBar and AppleScripts to constantly scrape the menu bar items on the Mac OS and keep track of the mute/video status.
Supplies
* 1 x Microcontroller that support HID (e.g. Teensy, Arduino Leonardo/Esplora/Zero/Due, etc.)
* 2x Pushbuttons (I used ones with embedded LEDs)
* 2x LED (if you use pushbuttons without embedded LEDs)
* Cardboards
* Install SwiftBar
* Install SF Symbols
Step 1: Install SwiftBar
SwiftBar is an app that allows you to add custom menu bar programs on macOS easily through AppleScripts / shell scripts.
Install their latest release from here.
Step 2: Install SF Symbols App
SF Symbols is an official Apple app that allows you to use a bunch of Apple icons on your computer and the apps you create.
Our Zoom Mute Button uses SF Symbols icon in the menu bar, just because it looks nice and consistent. Feel free to use other icons or emojis if you prefer.
Install SF Symbols 2.1 here.
Step 3: Make SwiftBar Application
Open the SwiftBar application.
On the first launch it will ask for the folder where you will save the scripts, so choose where you l like (I chose Documents/Swiftabar).
In that folder, add the following 2 AppleScript files.
zoomMuteState.500ms.scpt
#!/usr/bin/osascript
# <bitbar.title>zoomMuteState</bitbar.title>
# <bitbar.version>v1.0</bitbar.version>
# <bitbar.author>daidaidais</bitbar.author>
# <bitbar.author.github>daidaidais</bitbar.author.github>
# <bitbar.desc>Zoom Mute State</bitbar.desc>
# <bitbar.dependencies>Applescript</bitbar.dependencies>
# <swiftbar.hideAbout>true</swiftbar.hideAbout>
# <swiftbar.hideRunInTerminal>true</swiftbar.hideRunInTerminal>
# <swiftbar.hideLastUpdated>true</swiftbar.hideLastUpdated>
# <swiftbar.hideDisablePlugin>true</swiftbar.hideDisablePlugin>
# <swiftbar.hideSwiftBar>false</swiftbar.hideSwiftBar>
property btnTitle : "Mute Audio"
if application "zoom.us" is running then
tell application "System Events"
tell application process "zoom.us"
if exists (menu bar item "Meeting" of menu bar 1) then
if exists (menu item btnTitle of menu 1 of menu bar item "Meeting" of menu bar 1) then
do shell script "if ls /dev/cu.usbmodem* &> /dev/null; then PORTS=$(ls /dev/cu. 991