Selected microphone ignored in clamshell mode; Hex always uses macOS default input instead
- Dominant language
- Swift
- Stars
- 2.9k
- Forks
- 226
- PR merge metrics
- No merged PRs in 30d
Description
## Describe the bug
When using Hex in macOS clamshell mode with an external monitor and external microphone, Hex does not use the microphone explicitly selected in Hex’s settings.
With the MacBook lid open, Hex correctly records from the external microphone selected within Hex, even when macOS’s system input is still set to the built-in MacBook microphone.
After closing the MacBook lid, the Hex recording shortcut and recording overlay continue to work, but recording does not actually begin: the normal recording sound is not played and no transcription is produced.
Changing **System Settings → Sound → Input** to the external microphone immediately allows Hex to record successfully with the lid closed.
This indicates that, after entering clamshell mode, Hex uses the macOS default input device instead of the microphone explicitly selected within Hex.
## To reproduce
1. Connect an external monitor and an external microphone to a MacBook.
2. In **System Settings → Sound → Input**, leave the built-in MacBook microphone selected as the system input.
3. In Hex settings, explicitly select the external microphone as Hex’s recording input.
4. With the MacBook lid open, trigger a recording.
5. Confirm that Hex records and transcribes successfully using the external microphone.
6. Close the MacBook lid and continue using the external display in clamshell mode.
7. Trigger another Hex recording.
8. Observe that:
* The Hex shortcut is recognized.
* The recording overlay appears.
* The normal recording sound is not played when the hotkeys are released.
* No audio is captured or transcribed.
9. While the lid remains closed, change **System Settings → Sound → Input** to the external microphone.
10. Trigger another recording.
11. Hex now records and transcribes successfully.
## Expected behaviour
Hex should continue using the external microphone explicitly selected in Hex’s settings, regardless of:
* whether the MacBook lid is open or closed;
* whether the built-in microphone becomes unavailable in clamshell mode; or
* which microphone is selected as the macOS system-default input.
If Hex cannot use the selected microphone, it should display an error or update the selected-device state rather than silently falling back to the system-default input.
## Actual behaviour
With the lid open, Hex honours its explicitly selected external microphone.
With the lid closed, Hex appears to ignore that selection and attempts to use the macOS default input. Since the system default is the now-disabled built-in MacBook microphone, Hex displays the recording UI but does not record.
Selecting the external microphone as the macOS system input works around the problem.
## Environment
* Hex version: **0.8.3**
* macOS version: **Version 15.7.3**
* Mac model: **MacBook Pro, 16" M4, 2024**
* External microphone: **Yeti Stereo Microphone**
* External display connection: **HDMI, via Thunderbolt**
* Super Fast Mode: Reproduced with Super Fast Mode enabled and disabled
* Recording shortcut: Recognized correctly in both open-lid and clamshell modes
## Additional context
This appears related to audio-device routing or restoration when the built-in MacBook microphone is removed from the available-device list as the lid closes.
The behaviour differs from general microphone failure because:
* the same external microphone works in Hex with the lid open;
* the external microphone works with the lid closed once it is selected as the macOS system input;
* Hex continues to recognize the recording shortcut and display its recording overlay; and
* the microphone remains explicitly selected in Hex’s settings.
Possibly related issues include #234, #251 and #252, although none describes this specific clamshell-mode/default-input behaviour.
Contributor guide
No contributing guide indexed for this repository
Research direction
No source files or tests are named. Start by reproducing the issue from the recording shortcut and overlay while switching between open-lid and clamshell modes, then trace microphone selection and audio-device restoration. Done means the selected external microphone records in both modes, or Hex reports a clear error when it is unavailable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, swift
- Domain
- audio-video-rtc, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100