v1.1.0
Six community contributions and one fix of my own, plus the first written contributing guide.
Audio and connection
- Stops BLE discovery only on an Apple made Bluetooth controller, which is the one that drops A2DP packets under continuous scanning. Every other machine keeps discovery running, so case and lid battery stay live while connected. Thanks Loic Bonvarlet.
- Retries A2DP profile activation until PipeWire has published the bluez5 card, instead of giving up on the first attempt after a connect. Thanks Thomas Vezyropoulos.
- Recovers the AAP control socket after a transient loss, backing off and probing BlueZ, rather than tearing down a healthy audio session. Thanks Loic Bonvarlet.
- Never reapplies the profile WirePlumber already set, which used to tear down a live sink under a playing stream.
Battery and identity
- Publishes the AirPods Max battery. Thanks Nicolai Dalsgaard.
- Fixes an out of bounds read in the BLE proximity packet parser. Thanks Thomas Vezyropoulos.
- Decodes the AirPods Pro 3 from its BLE model id, which used to read Unknown on every BLE sourced surface while AAP identified the same buds correctly.
Install
- First install is now two commands:
omarchy plugin add ... --enablethensetup, which installs the build dependencies, compiles the daemon into~/.localand enables the service. Re-running it after an update restarts the daemon onto the new binary. Thanks Gardiner Allen. CONTRIBUTING.mdandAGENTS.mddescribe the build, what review asks you to prove, and the house style.