Setup a Mute Indicator Light for Zoom with Hammerspoon

Setup a Mute Indicator Light for Zoom with Hammerspoon

How to add a light to your computer that will show the status of Zoom


Great post!

Fiona Jardine

Thank you so much for this! I have never used Python or Lua before, but managed to work my way through. The main issue I ran into was the last piece of Lua code for Hammerspoon needed:

hs.hotkey.bind(’’, ‘f5’, function()

on the end to work.


Hi, Thanks so much for this. I’ve been trying to do this with my blink. I was able to get the menu bar icons to work, however I can’t get the blink to work. 1. Should I leave the the first "hs.loadSpoon(“Zoom”) in the config file when I add the blink code? 2. Is there a way to troubleshoot the blink code portion? I can turn blink on and off via terminal per your instructions.


This is fantastic! Thanks for sharing!

Any update on being able to keep in sync with Zoom mute no matter how Zoom is muted? I’m referring to:

Note: The status indicator light will only change if you use the Hammerspoon key (F5 in this case). It should be possible soon to keep it in sync no matter how Zoom is muted or unmuted, just not at the time that I’m writing this.


EDIT: never mind - I’m just an idiot. Works great! Thank you!!

Thank you so much for sharing this. It’s going to make my wfh life so much easier! I’m almost there. Starting a Zoom meeting activates the green light and green menu icon. Muting changes the menu icon to red but doesn’t affect the blink (it stays green the whole time). The color switch works fine from the command line. Any tips for troubleshooting?


Brilliant. Just works.

I added one tiny bit:

elseif (event == “from-running-to-meeting”) then
if (spoon.Zoom.getAudioStatus() ==“muted”) then
hs.execute([["/Users/vivo/bin/blink1-tool" “–red”]])
hs.execute([["/Users/vivo/bin/blink1-tool" “-b” “100” “–green”]])

so that the initial state is set correctly.