75c113909df97e85b4293d62be83c941bb64f710
- Adds fyne.io/systray with a programmatic monkey face icon and Quit menu item - Logs to discord-lobby-mute.log next to the exe so startup errors are visible without a console window - Windows now uses raw Win32 RegisterHotKey in a locked goroutine instead of golang.design/x/hotkey, avoiding a deadlock where systray and the hotkey library both try to own the main thread message loop - Build with: GOOS=windows GOARCH=amd64 go build -ldflags "-H windowsgui" -o discord-lobby-mute.exe . Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
- 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
- Place
config.jsonnext to the.exeand fill in your values (see below) - Run
discord-lobby-mute.exe
config.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
# 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
go test ./...
Description
Discord bot that listens to keybinds and then mutes every user except yourself in the specified voice channel