GoL Screensaver is an app that generates and updates screensavers for Onyx Boox using Conway's Game of Life algorithm. Optimized for e-ink screens!
-
Auto-updating screensaver based on Conway's Game of Life
- Note that wallpaper will not update while the screen is locked, only on the next unlock -> lock.
-
Customizable foreground and background colors (chosen specifically for color e-ink)
-
Pattern picker for common Game of Life starting states, or paste your own RLE pattern from LifeWiki
-
Optional auto-reseeding: when the board dies out or stagnates (a still life or period-2 oscillator), it restarts with fresh random noise
-
Configurable settings: cell size, update interval, and cellular automaton rule (Conway's Life, HighLife, Day & Night, Seeds, Life without Death)
-
Optional generation & population counter drawn on the wallpaper
-
Optional upcoming-calendar overlay using calendars already synced to the device
- Calendar access is read-only and opt-in; users choose exactly which visible calendars contribute
- Event titles can appear on the lock screen. Private events are shown as “Busy,” and event details are never cached by the app
- Calendar content refreshes with the normal wallpaper schedule or while the app is open; no separate background calendar job is scheduled
-
Works on non-Onyx Android devices too: sets the lock screen (and/or home screen) wallpaper instead of the Onyx screensaver
-
Translated into German, Spanish, French, Russian, and Simplified Chinese
-
Install the app on your Android device from F-Droid, the Releases Section, or by building from source.
-
⚠️ Disable freezing in order to for the game to self-update- Settings > Apps & Notifications > Freeze Settings > GoL Wallpaper (OFF)
- Note: Updates happen at most every 15 minutes (configurable in Settings) and only with sufficient battery
-
Launch the app:
- (Optional) Choose foreground and background colors in the app
- (Optional) Pick a starting pattern
- (Optional) Open Settings to change the rule, cell size, update interval, or to show the generation & population counter
- (Optional) Open Calendar overlay, grant read access, choose calendars, and select the horizon, corner, and size
- (Optional) Tap "Generate Next Step" to advance the Game of Life and update your wallpaper
Pull requests and feature requests / bug reports are welcome!
This project uses Kotlin and Jetpack Compose with no 3rd party dependencies and is checked by detekt with hbmartin's rules.
- Fork the repository and
git clone - Create a new branch
git checkout -b cool-feature-name - Open in Android Studio, sync Gradle, and start hacking!
- Ensure checks are passing by running
./gradlew detektMain - Commit your changes
git commit -am 'Description of what changed' - Push to the branch
git push origin head - Create a new Pull Request
app/src/main/java/me/haroldmartin/golwallpaper/– Main source codedomain/– Game of Life logic and patternsui/– Jetpack Compose UI componentsutils/– Utility functions (saving wallpaper, color picking, etc.)
- Harold Martin - harold.martin at gmail dot com
- Triangle disclosure icon from Compose Icons / Lucide
- Inspiration from WanderWall by fmeyer
MIT License with addendum: it's legally required for you to do at least one of have fun with this or report an issue explaining why not, no takesies backsies.


