Maya Workflow Kit
Blender에서 Maya 전체 워크플로를 한 번에 설치, 무료 오픈소스, Blender 4.5‑5.2 지원
Hammerspoon Spoon: auto-switch audio devices by priority
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A Hammerspoon Spoon that automatically switches audio devices based on a priority list. When devices are connected or disconnected, it selects the highest-priority available device for both input and output.
Repository: https://github.com/hugoh/AudioPilot.spoon
If you're looking for other solutions in this space, consider:
AudioPilot aims to provide a Hammerspoon-powered, priority-driven, fully configurable option.
Ensure you have Hammerspoon installed, then choose a method:
AudioPilot.spoon.zip from the latest releaseAudioPilot.spoon folder~/.hammerspoon/Spoons/hs.reload() in the console)spoon.SpoonInstall:installSpoonFromZip(
"https://github.com/hugoh/AudioPilot.spoon/releases/latest/download/AudioPilot.spoon.zip"
)
cd ~/.hammerspoon/Spoons
git clone https://github.com/hugoh/AudioPilot.spoon.git
Add the following to your ~/.hammerspoon/init.lua:
hs.loadSpoon("AudioPilot")
spoon.AudioPilot:start()
On first launch, a default config file is created at ~/.config/AudioPilot/config.json. The config is keyed by CoreAudio device UIDs (opaque strings assigned by macOS) rather than by name, so the priority lists are best managed through the Edit Priorities... menu item rather than edited by hand.
A typical config looks like this:
{
"outputPriority": ["5C-52-30-DB-6E-80:output", "AppleHAD:1:0"],
"inputPriority": ["5C-52-30-DB-6E-80:input", "AppleHAD:1:1"],
"knownDevices": {
"output": [
{ "uid": "5C-52-30-DB-6E-80:output", "name": "AirPods Pro" },
{ "uid": "AppleHAD:1:0", "name": "MacBook Pro Speakers" }
],
"input": [
{ "uid": "5C-52-30-DB-6E-80:input", "name": "AirPods Pro Microphone" },
{ "uid": "AppleHAD:1:1", "name": "Built-in Microphone" }
]
}
}
outputPriority — ordered list of output device UIDs, most preferred firstinputPriority — ordered list of input device UIDs, most preferred firstknownDevices — all devices ever seen, stored as {uid, name} objects (auto-updated; used to show disconnected devices in the menu and editor)Settings can be set individually, or all at once with :configure():
spoon.AudioPilot:configure({
configPath = "/path/to/your/config.json",
notifyDelay = 3, -- seconds to wait before emitting a coalesced notification (default 5)
menuIcon = { image = "NSTouchBarAudioOutputVolumeLowTemplate" }, -- a monochrome menu bar icon instead of the default 🔊
})
spoon.AudioPilot:start()
configPath — where the config file lives (default ~/.config/AudioPilot/config.json)notifyDelay — seconds to wait before emitting a coalesced device-change notification (default 5)menuIcon — what to show in the menu bar (default "🔊"). Either a literal title string (e.g. an emoji), or a table { image = "SystemImageName" } naming an hs.image.imageFromName system image for a monochrome template icon that adapts to the menu bar's light/dark appearance — e.g. { image = "NSTouchBarAudioOutputVolumeLowTemplate" }, { image = "NSTouchBarAudioOutputVolumeMediumTemplate" }, { image = "NSTouchBarAudioOutputVolumeHighTemplate" }, or { image = "NSTouchBarAudioOutputVolumeOffTemplate" }mutedIcon — shown instead of menuIcon while the default output is muted or at volume 0 (default "🔇"). Same format as menuIcon.iconPreset (configure() only) — "color" (default: 🔊 / 🔇) or "bw" (monochrome template icons that follow light/dark mode). Sets both menuIcon and mutedIcon; either can still be overridden in the same call.Click the menu bar icon to see:
* marking the active device and (disconnected) for unavailable onessystem_profiler SPBluetoothDataType) to pre-populate knownDevices with all paired audio devices — even ones that are not currently connectednotifyDelay, default 5 s) are collapsed into a single notification showing the net changeknownDevices in the config so you can later add them to a priority list; the Edit Priorities... editor lets you remove stale entries you no longer needThis Spoon does not require Accessibility API access. It uses Hammerspoon's built-in hs.audiodevice API, which may require allowing Hammerspoon in System Settings → Privacy & Security → Microphone (for input device control).
Full API reference is available at https://audiopilot-spoon.larve.net/.