Control Mumble mute state from an OpenAction compatible device (such as Elgato Stream Deck™).
This project provides a seamless integration between Mumble voice chat and OpenAction, allowing you to toggle your microphone mute state with a single button press and see real-time mute status.
- Toggle Mute - Press a button to toggle your Mumble microphone mute state
- Real-time Status - Button updates immediately when mute state changes (even when changed from Mumble directly)
- Visual Feedback - Different icons for muted/unmuted states
The project consists of three main components:
┌─────────────────┐ WebSocket ┌──────────────────────┐
│ OpenAction │◄──────────────────►│ Mumble Plugin │
│ Plugin │ 127.0.0.1:3012 │ (runs in Mumble) │
└─────────────────┘ └──────────┬───────────┘
│
│ Mumble Plugin API
▼
┌──────────────────────┐
│ Mumble │
└──────────────────────┘
| Crate | Description |
|---|---|
mumble-plugin-openaction |
Mumble plugin that exposes mute control via WebSocket server |
openaction-plugin-mumble |
OpenAction plugin that connects to the Mumble plugin |
openaction-mumble-messages |
Shared message types for WebSocket communication |
rust-mumble-sys |
Rust bindings for the Mumble plugin API |
- Rust
- A checked out mumble and set MUMBLE_HOME to the directory of the repository
- Mumble with plugin support
- OpenDeck (or openaction compatible software)
# Build and install the Mumble plugin (you still need to enable it)
cargo build -p mumble-plugin-openaction --release && cp target/release/libmumble_plugin_openaction.so $HOME/.local/share/Mumble/Mumble/Plugins/libmumble_plugin_openaction.so
# Build the OpenAction plugin
cd openaction-plugin-mumble && just package
# Then install the build/openaction-plugin-mumble.sdPlugin.zip in OpenDeckThe Mumble plugin runs a WebSocket server on 127.0.0.1:3012.
// Subscribe to events
{"type": "Subscribe", "event_types": ["MuteStateChanged"]}
// Toggle mute state
{"type": "ToggleMute"}
// Set mute state explicitly
{"type": "SetMute", "muted": true}// Mute state changed event
{"type": "MuteStateChanged", "new_state": true}See individual crate licenses.
Contributions are welcome! Please feel free to submit a Pull Request.