A minimalist Android wallpaper that visualizes your year's progress, one day at a time
Yeardots is a minimalist life calendar and productivity wallpaper for Android that visualizes your year as a 365-dot grid. It transforms your home screen into a daily reminder of time's passage (Memento Mori), helping you beat procrastination and live more intentionally.
"We have two lives, and the second begins when we realize we only have one." — Confucius
Designed for fans of Stoicism, digital minimalism, and quantifiable self-improvement, Yeardots offers a quiet, offline, and battery-friendly way to stay visualized on your long-term goals. Every midnight, one more dot fills in—nudging you to make today count.
- 🗓️ 365-Dot Calendar Grid - Visual representation of the entire year
- 🔄 Automatic Daily Updates - Wallpaper refreshes at midnight using WorkManager
- 🎨 Fully Customizable Colors - Choose colors for past, present, future, and background
- 🔲 Four Dot Shapes - Circle, Rounded Square, Square, and Pill
- 📏 Four Size Options - Tiny, Small, Medium, and Large dot densities
- 👁️ Live Preview - See changes in real-time before applying
- 🔒 100% Offline - No internet permission, no tracking, zero ads
- 🔋 Battery Efficient - Optimized background tasks with minimal battery impact
- 🌙 AMOLED-Friendly - Dark backgrounds conserve battery on modern displays
- 🚫 No Data Collection - Your privacy is guaranteed
- Go to Releases
- Download the latest
YearDots-v*.apk - Install on your Android device (you may need to enable "Install from Unknown Sources")
Year Dots will be available on F-Droid repository soon. See our Publishing Guide for details on F-Droid submission.
git clone https://github.com/ikrishanaa/Yeardots.git
cd year-dots
./gradlew assembleDebug
- Install the app using one of the methods above
- Open Year Dots and configure your preferred colors
- Tap "Set Wallpaper" to apply
- That's it! Your wallpaper will auto-update daily at midnight
- Colors: Customize past days, today, future days, and background
- Shapes: Choose from Dot, Rounded, Square, or Pill
- Size: Select Tiny, Small, Medium, or Large density
- Preview: See all changes in real-time before applying
| Component | Technology |
|---|---|
| Language | Kotlin |
| UI Framework | Jetpack Compose (Material 3) |
| Background Tasks | WorkManager |
| Data Persistence | DataStore (Preferences) |
| Graphics Engine | Android Canvas API |
| Architecture | MVVM-inspired, Repository pattern |
androidx.work:work-runtime-ktx- Daily wallpaper updatesandroidx.datastore:datastore-preferences- Settings storageandroidx.compose.material3:material3- Modern UI components
app/
├── core/
│ └── WallpaperGenerator.kt # Canvas rendering logic
├── data/
│ └── SettingsRepository.kt # DataStore wrapper
├── worker/
│ └── WallpaperWorker.kt # Background update worker
├── util/
│ └── WorkScheduler.kt # Task scheduling
├── receiver/
│ └── BootReceiver.kt # Reschedule after reboot
├── ui/
│ ├── components/ # Reusable Compose components
│ └── theme/ # Material 3 theme
└── MainActivity.kt # Main UI and ViewModel logic
graph TD
A[User Opens App] --> B[Configure Settings]
B --> C[Tap 'Set Wallpaper']
C --> D[Generate Initial Wallpaper]
D --> E[Schedule Daily WorkManager Task]
E --> F[Midnight Arrives]
F --> G[WorkManager Triggers WallpaperWorker]
G --> H[Fetch Settings from DataStore]
H --> I[Calculate Current Day of Year]
I --> J[Draw 365 Dots on Canvas]
J --> K[Apply as Wallpaper via WallpaperManager]
K --> F
- Calculate current day of year (1-365/366)
- Create bitmap sized to screen dimensions
- Calculate 20-column grid layout
- For each of 365 positions:
- Determine color (past/today/future)
- Apply selected shape (circle, rounded, square, pill)
- Draw with specified size density
- Apply subtle glow effect for visual depth
- Set as system wallpaper
Contributions are welcome! Please read CONTRIBUTING.md for details on:
- Reporting bugs
- Suggesting features
- Submitting pull requests
- Code style guidelines
Please check existing issues first. If your bug hasn't been reported:
- Open a new issue
- Use the bug report template
- Include your Android version and device model
- Attach screenshots if possible
- Widget support for home screen
- Export wallpaper as image
- Multiple calendar systems (lunar, ISO week-based)
- Animations on wallpaper change
- Milestone markers for important dates
- Weekly/monthly view modes
- Tile/pattern backgrounds
See open issues for feature discussions.
This project is licensed under the MIT License - see the LICENSE file for details.
TL;DR: You can freely use, modify, and distribute this code. Attribution appreciated but not required.
Inspiration:
- 4,000 Weeks: Time Management for Mortals by Oliver Burkeman
- Memento mori tradition
- Life calendar visualizations (WeeklyDots, One Dot)
- Wait But Why's Life Calendar
Special Thanks:
- The Jetpack Compose community
- F-Droid for championing open-source Android apps
- Everyone who values intentional living
Krishana
Year Dots v1.0 - January 2026
- 🐛 Report bugs: GitHub Issues
- 💡 Suggest features: Feature Requests
- 📧 Email: krishanaindia773@gmail.com
- 💬 Telegram: t.me/yeardots
Made with ❤️ and ⏰ awareness
"The trouble is, you think you have time." - Buddha









