Mac volume control greyed out with HDMI or DisplayPort audio output
Sharing this because the same question comes up every few weeks and the older threads on it are locked.
The behavior: when Sound Output is an HDMI or DisplayPort display, the volume slider in System Settings is greyed out and the keyboard volume keys show the crossed-out speaker. Audio MIDI Setup shows no volume control for the device either. This is by design: macOS sends the digital stream unchanged and expects the display to control loudness. Mac mini (M-series), macOS 14 through 27, ViewSonic monitor over HDMI in my case, but it applies to any HDMI or DisplayPort display with speakers.
What does not fix it: Audio MIDI Setup, resetting NVRAM or SMC, reselecting the output, different cables. DDC/CI apps (such as MonitorControl) only work if your HDMI path passes DDC through, and many adapters and displays do not.
What works without installing a driver: macOS 14.2 and later can attenuate the stream in software using Core Audio taps. I wrote a small open-source menu bar app that does exactly that. It scales the audio the Mac sends to the display and captures the keyboard volume keys, and the display's own volume setting is left alone. Quit it and the untouched stream is back. Source and instructions: https://github.com/mevlut-geredeli/MonitorKeys (Apple Silicon, macOS 14.2 or later).
I have also filed an enhancement request with Apple for a native "control volume in software" option on these outputs: ***. If you are affected, filing your own report in Feedback Assistant and mentioning *** helps Apple see how many people want this.
[Edited by Moderator]
Mac mini, macOS 27.0