There are a bunch of meetings on Zoom that I “own” for my team. Sometimes we’ll be in a meeting and I’ll need to leave that meeting, but I don’t actually want to end that meeting.
I will habitually hit ⌘W, ⏎ to stop the call which always clicks the first button in the “Close Window” dialog that Zoom shows. And if I own the meeting, then that first button is “End Meeting”.
This ends the meeting for everyone, which obviously just makes the team point at laugh at me for ending the meeting instead of leaving.
As far as I can tell, Zoom doesn’t have any menu items or keyboard shortcuts that would let me just leave the meeting, and I was curious if y’all had any good suggestions.
As a backstop, I was able to write an AppleScript that mostly does what I want:
tell application "System Events" to ¬
tell (its first application process whose name is "zoom.us") to ¬
tell (its first window whose name is "") to ¬
click (its first button whose description is "Leave Meeting")
But that feels kind of fiddly! I was curious if other folks had run into the problem and solved it in any way. (And if you do have this problem, but don’t have a solution. I guess maybe this script can help.[^0] )
[^0]: Note that if you do want to reuse that script, this one script do the whole thing. The Zoom “End Meeting” overlay seems to be a separate window from the meeting window. So first you’ll have to call “Close Window” on the meeting window itself.
The “End Meeting for All” option only appears when you are a “host” (or possibly “cohost”). Every Zoom meeting requires at least one host. So if you are host and “Leave Meeting”, then Zoom will automatically assign another participant as host. Of course, you can also manually transfer "host’ to another participant (select a participant and then “make host”) before leaving the meeting. Now, as you are no longer a host, only the “Leave Meeting” option will be available to you. I haven’t tried, but perhaps you can automate transferring host to another user. However, in my case, choosing the new host needs to be done manually as we are particular about who can and cannot be host.
Hmm, yeah reassigning the host would be a good option, but I feel like that kind of puts me in the same position if I wanted to automate that. (I don’t think there are any keyboard shortcuts to choose a new host, for instance.)
Most of these are team meetings and I don’t particularly mind who Zoom randomly selects to be the host after that. (Or I’ll set up co-hosts for the recurring invite, which I’m actually not sure how Zoom handles if there are other cohosts and I type ⌘W⏎ in the chat. Would it still end the meeting by default? Or just drop me?)
Good suggestion, though, for those meetings where I need to make sure I assign who the host actually is.
Ok, I think I’ve done something that both solved the problem and invested too much time in it, as is typical. But it’s paying dividends!
I now have two Keyboard Assistant macros. The first one is fairly simple, it listens for ⌘W and intercepts the event from Zoom. It prompts me with three buttons, just like Zoom:
- Leave Meeting
- End Meeting
But the key difference is that Leave Meeting is the default button in the prompt from Zoom. Once I select an option (assuming I didn’t pick Cancel, which ends the macro), it then calls the second macro.
This one does a few things, and most of them I already was doing before:
- It will select “Stop Share” from the menu bar, in case I’m currently sharing my screen.
- It will then try to close the window called “Zoom Meeting”, which will bring up the dialog prompt.
- And finally, it basically uses the AppleScript above to click one of those buttons in the menu. The only difference from the script above is that it uses the prompt selection from the first macro to determine which button to press. (If you call this macro directly, it defaults to “Leave Meeting”.)
I kept this as two macros, because I like having a simple “Leave Meeting” button on my Streamdeck and in Shortcuts and don’t always want the prompt. But the first macro helps override my tendency to accidentally kill the meeting by hitting ⌘W⏎, because now it will (by default) just leave the meeting.
Problem solved! (And made so much more complex at the same time.)
Here’s a short demonstration: