Vibeleaderboard
Index / app
Visit github.com
Category
Productivity
Rank
No. 1385Tools index
Pricing
Open Source
Type
APP
Builder
tobi
GitHub
824 stars
Latest release
v1.2.1
Date

About

Native macOS menu bar app for managing audio device priorities so the right output device is selected when devices come and go.

What it does

AudioPriorityBar watches CoreAudio device changes, remembers connected inputs and outputs, and applies saved preference lists. It separates speakers from headphones, manages microphones, offers manual selection, and exposes volume, mute status, editing, and launch-at-login controls from a menu bar popover.

Why it's ranked here

The focused design solves recurring device churn with more control than simple automatic switching. Separate output categories, microphone priorities, persistent device memory, ignore rules, and a manual mode cover common exceptions. The implementation uses native macOS frameworks and keeps its policy understandable.

What's good

Priorities survive reconnections because devices are stored by stable UID. Disconnected hardware remains editable with last-seen information. Users can reorder entries by dragging or arrows, exclude a device by category, forbid automatic use entirely, and temporarily suspend automation without discarding preferences.

Tradeoffs

It requires macOS 13 or later and has no cross-platform interface. Headphone classification starts with device-name keyword matching, so unfamiliar or ambiguous names may need manual correction. Source and automated release builds disable code signing. The supplied repository tree shows no test target or test directory.

How to use it well

It suits Mac users who regularly move between docks, displays, speakers, headsets, and microphones. Establish separate speaker, headphone, and input orders, mark unreliable devices as never use, then enable launch at login. Use Custom mode for temporary routing. It does not provide audio mixing, per-application routing, or cross-platform control.

Technical notes+

AudioPriorityBar/AudioPriorityBarApp.swift defines the SwiftUI MenuBarExtra and central AudioManager state. AudioPriorityBar/Services/AudioDeviceService.swift enumerates CoreAudio devices, changes system defaults, reads output volume and mute state, and registers property listeners. AudioPriorityBar/Services/PriorityManager.swift persists UID-keyed priorities, categories, hidden lists, known devices, mode, and never-use choices through UserDefaults. AudioPriorityBar/Models/Headphones.swift performs substring-based headphone detection. AudioPriorityBar/Views/MenuBarView.swift and AudioPriorityBar/Views/DeviceListView.swift implement the popover, volume scrolling, device sections, selection, and reordering. AudioPriorityBar/Services/LaunchAtLoginManager.swift uses SMAppService. build.sh and .github/workflows/release.yml produce unsigned universal arm64 and x86_64 app bundles.

Observed

License
MIT License
Primary language
Swift 5.9
Platform support
macOS 13.0 or later
Interface
Native SwiftUI menu bar application using CoreAudio
Installation
Pre-built binaries are offered through GitHub Releases; source builds use Xcode or the included shell build script
Packaging
Builds an AudioPriorityBar.app bundle for arm64 and x86_64 with code signing disabled
Persistence
Device priorities, categories, remembered devices, modes, hidden lists, and never-use choices are stored in UserDefaults
Repository structure
No test target or test directory appears in the supplied repository tree

Read from README.md, AudioPriorityBar/AudioPriorityBarApp.swift, AudioPriorityBar/Models/Headphones.swift, AudioPriorityBar/Views/MenuBarView.swift, AudioPriorityBar/Models/AudioDevice.swift, AudioPriorityBar/Views/DeviceListView.swift, AudioPriorityBar/Services/PriorityManager.swift, AudioPriorityBar/Services/AudioDeviceService.swift, AudioPriorityBar/Services/LaunchAtLoginManager.swift, LICENSE, build.sh, AudioPriorityBar/Info.plist, AudioPriorityBar.xcodeproj/project.pbxproj, .github/workflows/release.yml, AudioPriorityBar/Assets.xcassets/Contents.json.

What it can do

  • Set priority order for audio output devices

    List of available audio devicesPrioritized device configuration

  • Automatically switch to highest priority available audio device

    Audio device connection/disconnection eventsActive audio output device selection

  • Detect when audio devices connect or disconnect

    System audio device state changesDevice availability status updates

  • Display current audio device status in menu bar

    Active audio device informationMenu bar status indicator

  • Override macOS default audio device selection behavior

    User-defined device priorities and system audio eventsCustom audio routing decisions

Tags

macosmenu-baraudioswift

Tech Stack

ShellSwift

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.