Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aonez/microsoftsurfacemacaudiofix
Fix for Surface Thunderbolt(TM) 4 Dock on macOS after sleep.
https://github.com/aonez/microsoftsurfacemacaudiofix
Last synced: 27 days ago
JSON representation
Fix for Surface Thunderbolt(TM) 4 Dock on macOS after sleep.
- Host: GitHub
- URL: https://github.com/aonez/microsoftsurfacemacaudiofix
- Owner: aonez
- License: other
- Created: 2024-11-22T08:34:58.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-11-22T17:15:30.000Z (about 1 month ago)
- Last Synced: 2024-11-22T18:27:02.707Z (about 1 month ago)
- Language: Objective-C
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
The Microsoft Surface Thunderbolt(TM) 4 Dock Audio device gets glitched once the Mac goes to sleep or is disconnected and connected.
### Symptoms:
- No sound on that device, obviously
- Applications that list audio devices hang
- Applications that reproduce sound can hang### Easily reproducible:
- Audio Midi Setup: long time to open, shows Microsoft Surface Thunderbolt(TM) 4 Dock Audio (1 & 2) without available formats
- Screenshot: long time to open, you'll forget you've triggered it using a key combination# Workaround
### Working
- Restart the Mac
- Restart `coreaudiod`### Not working
- Restarting the dock does not fix the issue
# Solution
This is a daemon that will launch and keep running, listening for sleep and wake events as well as audio device changes.
- Once the Mac goes to sleep the daemon will take note and upon wake, if the dock is connected, will restart `coreaudiod`.
- If it detects an audio device change and finds the dock is connected it will restart `coreaudiod`.While checking if the dock is pressent in the audio devices and if it has formats available, to prevent the restart of `coreaudiod` if it's not needed, checking the audio devices will also trigger the hang, so the daemon will loose it's purpose being unresponsive for a minute or so.
# Installation
Compile the project, place the executable near the `Daemon/install` and then execute `Daemon/install`.