Skip to content

Native macOS volume control for DisplayPort monitors.

Notifications You must be signed in to change notification settings

MirkoMorello/VolumeRouter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VolumeRouter

VolumeRouter

Native macOS volume control for DisplayPort monitors.

macOS grays out the volume slider for DisplayPort audio outputs.
VolumeRouter fixes this — no microphone indicator, no privacy prompts, no latency.


The Problem

When you connect a monitor via DisplayPort (USB-C to DisplayPort), macOS treats it as a fixed-volume digital output and disables the volume slider entirely:

Grayed out volume slider

The Solution

VolumeRouter creates a virtual audio device with a fully functional volume slider that forwards audio to your monitor:

Working volume slider with VolumeRouter

Select your target monitor from the menu bar app, and the device dynamically renames to reflect the output:

VolumeRouter menu bar

How It Works

VolumeRouter consists of two components:

  • Audio Driver — A CoreAudio AudioServerPlugin (HAL driver) that creates a virtual output device with native volume control. It captures audio, applies volume scaling, and forwards it to the real hardware output internally within coreaudiod.
  • Menu Bar App — A lightweight companion for selecting which monitor to route audio to.

The driver runs inside coreaudiod and handles audio routing entirely in-process. No user-space audio capture, no input streams, no privacy indicators.

Installation

Download the latest .pkg installer from Releases.

The installer will:

  • Install the audio driver to /Library/Audio/Plug-Ins/HAL/
  • Install VolumeRouter to /Applications/
  • Restart coreaudiod and launch the menu bar app automatically

After Installation

  1. Click the speaker icon in your menu bar
  2. Select your monitor from the list
  3. Go to System Settings > Sound > Output and select the VolumeRouter device
  4. Use the volume slider or keyboard volume keys as usual

Uninstall

Click the speaker icon in the menu bar and select Uninstall VolumeRouter.

Building from Source

Requires Xcode 15+ and macOS 13+.

# Build both targets
xcodebuild -project VolumeRouter.xcodeproj \
  -target VolumeRouter -target VolumeRouterApp \
  -configuration Release build

# Build the installer package
bash Scripts/build-pkg.sh

Why Not Just Use...

Alternative Problem
Built-in macOS controls Volume slider grayed out for DisplayPort
DDC/CI (MonitorControl) Doesn't work on Apple Silicon with USB-C to DP
BlackHole + Multi-Output No volume slider on Multi-Output devices
EqMac Buggy driver, crashes
ScreenCaptureKit Screen recording indicator, latency, re-auth prompts
BlackHole + user-space routing Orange microphone privacy dot

Support

If VolumeRouter saved you from silent-monitor frustration, consider supporting its development:

Ko-fi