Skip to content

1.1.1 — app icon, safety-floor dialog fix, floor explanation

Choose a tag to compare

@Ednk-1312 Ednk-1312 released this 19 Sep 20:21
· 12 commits to main since this release

BatteryControl 1.1.1

UI fixes and the first real app icon. No daemon logic changed — the safety
engine, verification, and compatibility behavior are identical to 1.1.0.

App icon

BatteryControl finally has a real icon: a macOS-style squircle, blue→teal
gradient, a battery showing an 80% fill with a charge-limit line, and a bolt.

While adding it I found why the app never had one: the app target's Resources
build phase was referenced in the project but never defined, so the asset
catalog was never compiled at all. That's fixed, and the compiled icon is
verified end-to-end (loaded from the built .app exactly the way the Dock
loads it). The generator lives at scripts/make-app-icon.swift, and the icon
now sits at the top of this README.

Safety-floor dialog wording

The confirmation dialog for removing the safety floor used to say
"Remove safety floor and allow discharge to 80%" — it concatenated the
current discharge-target value into the consent action. But the consent isn't
about the target; it's about the floor. The button now says exactly
"Remove Safety Floor", matching the switch that triggers it.

"What happens at the floor" explained

The Discharge tab has a new About the safety floor section documenting
what actually happens when a discharge reaches the floor:

  • The floor is a stop line, not a wall. The daemon checks the battery every
    20 seconds while a discharge runs and keeps discharging only while the
    charge is above the floor.
  • The moment a check reads the floor value or lower, the session ends by
    itself: the adapter is released, the Mac returns to normal charging under
    your charge limit. No confirmation, nothing left to turn off.
  • "The moment" means the next check — the battery can drift ~1–2% past the
    floor between checks.
  • Below 20% macOS clips the reported charge and the gauge gets less
    accurate; 1% is the absolute lowest value BatteryControl will ever
    program, and macOS shuts down on its own before 0%.

Nothing else changed

  • Same daemon control logic, verification, and compatibility behavior as 1.1.0.
  • 267 tests passing, zero compiler warnings, Release build clean.
  • Physically verified configuration remains the author's M3 MacBook Air
    (Mac15,13, mBoot-20457.1.29, macOS 15.8); everything else is
    capability-tested. Compatibility reports grow the verified list —
    batterycontrol compatibility --report.