graypause/README.md
Loïc Wisniewski 5d7d84eaca GrayPause 1.4: grayscale color breaks for Android
Timers that switch grayscale off and restore it on their own: presets and
custom h/m/s timers, Quick Settings tile, launcher shortcuts, countdown
notification, reboot recovery, and optional always-in-color apps via an
accessibility service. WRITE_SECURE_SETTINGS is granted once via Shizuku
or adb.

Gradle project for F-Droid with fastlane metadata and a draft fdroiddata
recipe; build.sh keeps the Gradle-free on-phone Termux build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 20:07:49 +02:00

56 lines
2.2 KiB
Markdown

# GrayPause
Keep your Android phone in grayscale, and take short **color breaks** that end by
themselves, so you never forget to switch grayscale back on.
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/1_main.jpg" width="240"> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/2_notification.jpg" width="240">
## Features
- One-tap timers (1/5/10/15/30 min by default), plus custom ones with hours, minutes
and seconds. Long-press any timer to delete it.
- **Quick Settings tile** "Color break": starts a break of the last length used; tap
again to end it early.
- **Launcher shortcuts**: long-press the app icon to start a timer directly.
- **Countdown notification** with *Grayscale now* and *+5 min*.
- **Color apps** (optional): apps like your gallery or camera are always shown in
color. Uses an accessibility service that only sees which app is in front.
- Reboot-safe: a running break is re-armed, or grayscale restored if time ran out.
No internet permission, no tracking, no dependencies beyond the Shizuku client library.
## Setup: the one permission
Grayscale is a secure system setting (`accessibility_display_daltonizer*`), so the app
needs `WRITE_SECURE_SETTINGS`. Android has no switch for it in Settings; grant it once:
- **Shizuku**: start [Shizuku](https://shizuku.rikka.app/), open GrayPause, tap
*Grant with Shizuku*. Shizuku can be stopped afterwards.
- **adb**:
```
adb shell pm grant com.lpw.graypause android.permission.WRITE_SECURE_SETTINGS
```
The grant survives reboots and app updates (not an uninstall).
## Building
Standard Gradle project (JDK 17+, Android SDK 36):
```
gradle assembleRelease # or ./gradlew
```
`build.sh` is an alternative Gradle-free debug build used to develop the app directly
on a phone in Termux (native `aapt2`/`javac`/`apksigner`, `d8` from the SDK). It needs no
Android Studio, and `tools/ZipAlign.java` stands in for `zipalign`.
## F-Droid
Store texts, icon and screenshots are in `fastlane/metadata/android/en-US/` (F-Droid
reads them from the source tree). The draft fdroiddata recipe is
`fdroid/com.lpw.graypause.yml`; releases are tagged `vX.Y`.
## License
GPL-3.0-or-later, see [LICENSE](LICENSE).