UPDATE: Please refer to the plugin page to get the latest information.
Since moving to a global and work-from-home role, about a year ago, I’ve been using Zoom a lot. I spend around 4-5 hours a day in sessions. While I always try to give my full attention to the conversation, there are times that I’ll be multi-tasking: taking notes, re-reading an email thread on the subject, reaching out to other colleagues on the subject, etc. Plus, it always bothered me to be staring at a person for a few seconds, after already having said bye, because you need to find the Zoom window and exit. 😉
I started to look into some solutions to make this process easier and quicker a few weeks ago. After trying things like global keyboard shortcuts (which you need to remember), a desktop widget (which needs screen real-estate), I settled on an Elgato Stream Deck (SD) as a control panel. It’s a programmable pad that can be placed on your desktop:
In the lower-left corner are the 4 Zoom shortcuts I’ve been using. Top left is a Zoom window focus button, which brings up the Zoom client to focus. Top-right is to leave or end a meeting. Bottom 2 buttons should be obvious: toggles for mute and video. I’ll explain how to get here in the rest of this post.
Combination of Stream Deck + Keyboard Maestro
These buttons work with a combination of the Stream Deck software and Keyboard Maestro. I’ve programmed the SD keys to call Keyboard Maestro (KM), and KM will target Zoom and send a shortcut. By using the targeted shortcut that KM can execute: it doesn’t matter if the Zoom client is not the focus window.
I was already using KM for other purposes, but any application that can send a targeted shortcut will do.
To make it easier to duplicate this setup, I’ve uploaded the KM Macros to GitHub here: https://gist.github.com/smitmartijn/9344b2c43eb7ba7c72eb5aa6b8af2520
Save that file and import it using the KM file menu: Import Macros Safely. It should create a new group on the left, called Zoom. I believe you also have to enable all the macros after import, as the default is to disable imported macros.
After importing and activating the macros, find the kmtrigger:// URL for each one; you’ll use these URLs in Stream Deck. I’ve opted to use the internal URL structure that KM uses, and not sacrifice a global key combination to trigger these functions. The kmtrigger URL is highlighted below:
Stream Deck Software
The Stream Deck (SD) control software is pretty extensible. The built-in features are targeted towards Streamers (hence its name), with Game Capture, Twitch, Twitter, YouTube functions. But, there are also generic functions; opening a website, multimedia control, triggering hotkeys, etc.
Once KM is set up with the macros, we can add the actions to SD to trigger the macros.
Single Action vs Toggle
In this case, the Zoom Focus and Leave Meeting functions are one-off; they do one thing. For these one-offs, pick the System → Website function in SD.
Drop the icon (download is below) in the key icon box, and point the URL to the proper kmtrigger URL from KM. Do not check Access in background (doesn’t seem to work).
I wanted to also show the status of the Mute and Video button on the Stream Deck. I found the Multi Action Switch function best suitable. This function allows two different icons with two different actions; a toggle.
For the Multi Action Switch function, there are two dots under the key icon box (1), which switches between the different actions. On the first page, drop the muted icon, add the System → Website action and make sure the URL goes to the Zoom Mute Toggle kmtrigger URL.
Then switch to the next page, using the right dot and do the same thing, only with the Unmuted icon. The kmtrigger URL is the same.
Rinse and repeat for the Video Multi Action Switch.
Using some open-sourced images, I put together this icon set to use in the SD actions. Just drop them into the key icon window.
Optimizing Zoom Settings
For these shortcuts to work optimally, there are a few Zoom settings you need to enable:
- General → Prompt a confirmation before leaving a meeting
- General → Advanced Features → Disable Display end-of-meeting experience feedback survey
- Video → Turn off my video when joining a meeting
- Audio → Mute microphone when joining a meeting
The last 2 are generally good Zoom etiquette, to prevent embarrassing moments when you join a meeting. But also required to synchronise the button icon with the actual status. Disabling the prompt before leaving the meeting makes the leave button actually effective – otherwise, you’re still in the meeting unless you click “Yes, really leave the meeting”. Disabling the experience feedback survey disables that “thumbs up or down” window at the end of every meeting.
It’s amazing to be able to toggle mute, video, focus the Zoom client window, and leave meetings with a single button. It’s helped me prevent some awkward moments and generally helped to speed things up. One ‘annoying’ thing is that the switch button status can differ from the actual status, Zoom can be unmuted, while the button indicates it’s muted. I had this in the beginning while getting used to using the Stream Deck (and not switching status in the Zoom client), but once you start to use only the Stream Deck – this does not happen.
Let me know if you’re using these buttons, or come up with any extra ones that help!