# discord-lobby-mute Runs in the system tray as a console app. Press a configurable global hotkey to toggle server-mute for everyone in a Discord voice channel. ## Setup 1. Create a bot at https://discord.com/developers/applications - Enable **Server Members Intent** under Privileged Gateway Intents - Grant the **Mute Members** permission when inviting it to your server 2. Place `config.json` next to the `.exe` and fill in your values (see below) 3. Run `discord-lobby-mute.exe` ## config.json ```json { "token": "YOUR_BOT_TOKEN", "guild_id": "YOUR_SERVER_ID", "channel_id": "YOUR_VOICE_CHANNEL_ID", "keybind": "ctrl+shift+m", "exempt_users": ["YOUR_DISCORD_USER_ID"] } ``` `exempt_users` is optional. Any user IDs listed there will never be muted. Add your own ID to exclude yourself when pressing the keybind. To get IDs: enable **Developer Mode** in Discord settings, then right-click a server, channel, or user and choose **Copy ID**. ## Keybind format `modifier+modifier+key` — modifiers come first, key last. Case-insensitive. Examples: `ctrl+shift+m`, `alt+f9`, `ctrl+alt+delete` ### Modifiers | Value | Windows | Linux | macOS | |---------|-------------|-------------|-------------| | `ctrl` | Control | Control | Control | | `shift` | Shift | Shift | Shift | | `alt` | Alt | Alt (Mod1) | Option | | `win` | Windows key | Super (Mod4)| Cmd | | `super` | Windows key | Super (Mod4)| Cmd | | `cmd` | — | — | Cmd | ### Keys | Value | Key | |-------------------|----------------------| | `a` – `z` | Letter keys | | `0` – `9` | Number row | | `f1` – `f20` | Function keys | | `space` | Space | | `enter` / `return`| Enter / Return | | `escape` / `esc` | Escape | | `tab` | Tab | | `delete` | Delete | | `left` | Left arrow | | `right` | Right arrow | | `up` | Up arrow | | `down` | Down arrow | ## Build ```bash # Windows GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o discord-lobby-mute.exe . # Linux go build -ldflags="-s -w" -o discord-lobby-mute . # macOS go build -ldflags="-s -w" -o discord-lobby-mute . ``` > **macOS**: the app needs Accessibility permission to register global hotkeys. Grant it in System Settings → Privacy & Security → Accessibility. > **Linux**: requires X11 (`libx11-dev`) and CGO enabled. ## Tests ```bash go test ./... ```