Zoom Mute Status

Reports the mute status of a Zoom meeting. Relies on menu bar item names, so this will only work if your Zoom app is using english. Only partially works for Zoom webinars.

Image preview of Zoom Mute Status plugin.

zoom_mute.3s.sh

Edit
Open on GitHub
#!/usr/bin/env bash

# <xbar.title>Zoom Mute Status</xbar.title>
# <xbar.version>v1.0</xbar.version>
# <xbar.author>Dustin</xbar.author>
# <xbar.author.github>dustincredible</xbar.author.github>
# <xbar.desc>Reports the mute status of a Zoom meeting. Relies on menu bar item names, so this will only work if your Zoom app is using english. Only partially works for Zoom webinars.</xbar.desc>
# <xbar.image>https://dustincredible.github.io/images/zoom-mute-xbar.jpg</xbar.image>
# <xbar.abouturl>https://dustin.lol/post/2021/better-zoom-mute/</xbar.abouturl>

# Check the Enable Global Shortcut for Mute/unmute in your Zoom app settings
if [[ "$1" = "toggle" ]]; then
osascript -e 'tell application "System Events" to keystroke "a" using {command down, shift down}'
fi

if [[ "$1" = "launch" ]]; then
osascript -e '
	tell application "zoom.us" 
		activate
	end tell
	'
fi

zm_status=$(osascript -e'
	tell application "System Events"
		if (get name of every application process) contains "zoom.us" then
			tell application "System Events" to tell application process "zoom.us"
				if menu item "Join Audio" of menu 1 of menu bar item "Meeting" of menu bar 1 exists then
					return 1
				else
					if (menu item "Mute audio" of menu 1 of menu bar item "Meeting" of menu bar 1 exists) or (menu item "Mute telephone" of menu 1 of menu bar item "Meeting" of menu bar 1 exists) then
						return true
					else
						if (menu item "Unmute audio" of menu 1 of menu bar item "Meeting" of menu bar 1 exists) or (menu item "Unmute telephone" of menu 1 of menu bar item "Meeting" of menu bar 1 exists) then
							return false
						else
							return off
						end if
					end if
				end if
			end tell
		else
			return off
		end if
	end tell
	');


if [ "$zm_status" = "true" ]; then
  echo "🟢" #emoji allowed for example: echo "🗣"
  echo ---
  echo "Mute| bash='$0' param1=toggle terminal=false"
  exit
elif [ "$zm_status" = "false" ]; then
  echo "🔴" #emoji allowed for example: echo "🤫"
  echo ---
  echo "Unmute| bash='$0' param1=toggle terminal=false"
  exit
elif [ "$zm_status" = "off" ]; then
  echo "⚪️"
  echo ---
  echo "Launch Zoom| bash='$0' param1=launch terminal=false"
  exit
elif [ "$zm_status" = "1" ]; then
  echo "🤐"
  echo ---
  echo "Join Audio| bash='$0' param1=toggle terminal=false"
  exit
fi