Skip to main content

Macro Deck Setup

Control MuteDeck from Macro Deck: toggle your microphone, camera, screen share and recording, leave meetings, and trigger MuteDeck custom actions — with live status variables to drive your button states.

Requirements

  • Macro Deck 2.15.0 or newer
  • The MuteDeck desktop app running on the same machine (or reachable over the network)

Installation

The MuteDeck plugin is available in the Macro Deck Extension Store. Open Macro Deck, then click the Extension Store on the left (the puzzle icon), search for "MuteDeck" and click Install.

screenshot: plugin installation

Actions

ActionDescription
Microphone: mute/unmuteToggle, mute or unmute the microphone
Camera: start/stopToggle or set the camera on/off
Screen share: start/stopToggle or set screen sharing on/off
Recording: start/stopToggle or set recording on/off
Leave meetingLeave the current meeting
Bring call to frontFocus the meeting window
Trigger custom actionRun a MuteDeck custom action by name (raise hand, reactions, …)

Variables

All variables update live from MuteDeck:

VariableValues
mutedeck_connectedTrue / False
mutedeck_in_callTrue / False
mutedeck_mutedTrue / False
mutedeck_video_activeTrue / False — camera on
mutedeck_share_activeTrue / False — screen share running
mutedeck_record_activeTrue / False — recording running
mutedeck_mute_statusactive (muted), inactive (unmuted), disabled (no mic)
mutedeck_video_statusactive, inactive, disabled
mutedeck_share_statusactive, inactive, disabled
mutedeck_record_statusactive, inactive, disabled
mutedeck_call_statusactive (in call), inactive, disabled
mutedeck_control_statusactive, inactive, disabled
mutedeck_mute_labelMuted / Unmuted / No mic
mutedeck_video_labelOn / Off / Disabled
mutedeck_share_labelOn / Off / Disabled
mutedeck_record_labelOn / Off / Disabled
mutedeck_call_labelIn call / No call / Disabled

The boolean _active/_muted variables drive button state bindings (Macro Deck requires True/False there). The _status variables carry MuteDeck's raw three-state values for conditional actions. The _label variables are for showing friendly text on buttons, e.g. a label template of {mutedeck_mute_label}.

Use these with Macro Deck's conditional actions or button state bindings to show mute/camera state on your deck.

Icons

On first run the plugin installs a MuteDeck Icons pack (muted/unmuted, camera, share, recording, leave meeting, reactions, including disabled states). When you add a toggle action to a button, Macro Deck offers to bind the matching variable to the button state — accept, then pick an On icon (e.g. muted) and an Off icon (e.g. unmuted) in the button editor and the button follows your live meeting status. The same icons are also available as a standalone icon pack (MuteDeck.MuteDeckIcons) in the Extension Store.

Setup guide

This walks you through building a mute button that shows your live mute state. The other controls work the same way.

Before you start, make sure the MuteDeck app is running and the plugin is installed and enabled in Macro Deck. The plugin adds a "MuteDeck Icons" pack the first time the Macro Deck window opens after installation.

Create a mute button

  1. In the Macro Deck window, double click an empty button on the deck (or right click it and choose Edit). The Button Editor opens.

  2. Under "On press", click the + to add an action. Find MuteDeckPlugin in the list, then pick "Microphone: mute/unmute". Leave the action on "Toggle" and confirm.

screenshot: the action selector with MuteDeckPlugin and Microphone: mute/unmute highlighted
  1. Macro Deck now asks if it should bind the variable mutedeck_muted to the button state. Click yes. This is what makes the button follow your actual mute state instead of just blindly toggling.
screenshot: the binding popup asking to bind mutedeck_muted to the button state
  1. Back in the Button Editor you'll see two buttons, On and Off. These are the two states of the button, and each state has its own icon, label and color. Because of the binding, the button is in the On state while mutedeck_muted is True, so while you are muted.

  2. Select the On state, click the button preview to open the icon selector, choose the MuteDeck Icons pack and pick the muted icon.

  3. Select the Off state and pick the unmuted icon the same way.

screenshot: button editor with the On state selected and the muted icon set
  1. Save. The button on your deck now flips between the two icons as you mute and unmute in your meeting.

Create a camera button

The other controls

Same steps, different action, variable and icons:

ActionBound variableOn state iconOff state icon
Microphone: mute/unmutemutedeck_mutedmutedunmuted
Camera: start/stopmutedeck_video_activevideo-startedvideo-stopped
Screen share: start/stopmutedeck_share_activesharing-startedsharing-stopped
Recording: start/stopmutedeck_record_activerecording-startedrecording-stopped
Leave meetingmutedeck_in_callleave-meetingleave-meeting-disabled

Note that the On state means the variable is True, not that the control is "on" in a positive sense. For the mute button, On means muted.

For "Leave meeting" the binding is optional, but with it the button only lights up while you are actually in a call.

Here's how a finished deck looks with all the controls on it, showing live status from MuteDeck and a Google Meet call:

Labels

Each state can have its own label text, so you can simply type "Muted" on the On state and "Live" on the Off state of a mute button.

You can also put a variable in a label and let the plugin do the wording. Type {mutedeck_mute_label} in the label field and it renders as Muted, Unmuted or No mic depending on the current state. The same works for {mutedeck_video_label}, {mutedeck_share_label}, {mutedeck_record_label} and {mutedeck_call_label}.

If you skipped the binding popup

You can set the binding by hand: open the Button Editor and pick the variable in the "State binding" dropdown.

Custom actions

Add the "Trigger custom action" action to a button and pick one of the actions discovered from MuteDeck, or type a name yourself, for example raise-hand or react-clap. The icon pack has matching icons for the common ones. Which custom actions do something depends on the meeting app you are in.

Configuration

By default the plugin connects to MuteDeck on localhost:3492. Open the plugin configuration in Macro Deck (Settings → Plugins → MuteDeck → Configure) to change the host or port — for example when MuteDeck runs on another computer and has "Allow network connections" enabled.