BreathGate 0.13.0
One breath before the door opens.
When an app you have chosen comes to the foreground, BreathGate asks for a breath — and then asks
whether you still want to go in. It is not a blocker; blockers get uninstalled at the exact moment
they are needed. It asks for about twenty seconds and a decision, then gets out of the way either
way.
There is no INTERNET permission
Not a promise about data collection that you would have to take on trust. The app cannot reach
the network, and you can check that before installing:
aapt2 dump permissions BreathGate-0.13.0.apk | grep INTERNET # returns nothing
No account, no sync, no analytics, no crash reporting, no server — because there is nothing that
could talk to one. The release script refuses to publish a build that has acquired that
permission, so it cannot arrive quietly in a later version.
New in 0.13.0
The sound gained two controls, because the first person to actually listen to it said the music
was too high. Pitch moves the struck notes across four positions and the default came down an
octave; brightness is a separate axis, since "too high" is often upper harmonics rather than
fundamental — a low sound can still be piercing. Struck notes can also be switched off entirely,
leaving only the drone.
What is in it
- Box breathing (4·4·4·4) by default, plus 4-7-8, simple in-and-out, or any counts you like.
- Five ways of drawing the breath, all growing from the centre: orb, bloom, box, guilloche,
and coral — a lung whose tubes fill with air from the middle out. - Every prompt is editable, including the question at the end.
- Re-intervention: the gate comes back while you are still inside a long session, not only
when you re-open the app. Set per app. - Optional sound, generated on the device — a drone in the palette's own key, and a bell on each
phase change that walks the tuning's degrees. No audio files, nothing downloaded. - Optional heartbeat, in colour and in sound, driven by a single shared function.
- Six palettes, a hand-built one, and a light mode.
Installing
Obtainium is the recommended route — it reads these releases and updates in place. Add this
repository as a GitHub source.
⚠ If you install the APK by hand and a permission switch looks greyed out, that is Android holding
it shut because the app was sideloaded, not a bug:
Settings → Apps → BreathGate → ⋮ → Allow restricted settings
Then grant Usage access and Display over other apps. The app explains both on first open.
Android 8.0 (API 26) or later.
Verifying what you install
apksigner verify --print-certs BreathGate-0.13.0.apk
SHA-256: d0b6b276aa2cffc4b1b2850d2373dd3958c92bd68aa29a6ed76c17ffb25d75b0
⚠ Attach/install only the signed APK from this release. A build made with a different key is a
different app to Android and cannot update this one.
Licence
GPL-3.0-only, deliberately. This app is a gift, and a permissive licence would let anyone wrap
it, add the telemetry it refuses, and sell it back. Copyleft is what makes the gift cannot be
owned operative rather than merely stated — and a fork that adds an INTERNET permission is a
different program wearing this one's clothes.
Asking for something
Almost everything here arrived because someone used it and said what was wrong. Open an issue, or
write to infobreathgate.gladiator565@passmail.net.
The most useful report names the sensation — "spiky", "it clips", "the text overlaps". Every
one of those has pointed straight at a real mechanism faster than a theory would have.