Skip to content

ambiso/openaction-mumble

Repository files navigation

OpenAction Mumble Integration

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.

Features

  • 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

Architecture

The project consists of three main components:

┌─────────────────┐     WebSocket      ┌──────────────────────┐
│   OpenAction    │◄──────────────────►│   Mumble Plugin      │
│     Plugin      │   127.0.0.1:3012   │   (runs in Mumble)   │
└─────────────────┘                    └──────────┬───────────┘
                                                  │
                                                  │ Mumble Plugin API
                                                  ▼
                                       ┌──────────────────────┐
                                       │       Mumble         │
                                       └──────────────────────┘

Crates

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

Building

Prerequisites

  • 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 Commands

# 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 OpenDeck

WebSocket Protocol

The Mumble plugin runs a WebSocket server on 127.0.0.1:3012.

Client → Server Messages

// Subscribe to events
{"type": "Subscribe", "event_types": ["MuteStateChanged"]}

// Toggle mute state
{"type": "ToggleMute"}

// Set mute state explicitly
{"type": "SetMute", "muted": true}

Server → Client Messages

// Mute state changed event
{"type": "MuteStateChanged", "new_state": true}

License

See individual crate licenses.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors