A minimalist, open-source Android launcher for mindful phone usage.
Arami (from Guarani arami = gentle sky) is a GPLv3-licensed launcher inspired by Niagara Launcher and Minimalist Phone.
- Text-only app list with optional icon + text mode
- Alphabet wave scroller for fast app navigation (Niagara-style) with haptic feedback
- Monochrome mode — grayscale app icons for reduced visual stimulation
- Home screen with clock (3 styles: digital large/minimal, analog) and date over system wallpaper
- Gestures — swipe up for app drawer, long-press for settings
- Private Space support — full integration with Android 15+ private profiles (lock/unlock, separate app list)
- Hide apps — long-press to hide apps from the main list (still searchable)
- Quick access bar — customizable shortcuts (phone, camera, browser) at bottom of home screen
- Settings — theme (light/dark/system), clock style, font size, display mode, default apps
- Material You dynamic theming with edge-to-edge display
- Usage statistics — track time spent in each app
- App blocking — block distracting apps with time-based schedules
- Mindful launch delay — configurable countdown before opening blocked apps
- Screen time dashboard — comprehensive overview of your phone usage patterns
- Widget stacks — add home screen widgets (experimental)
- Folders — organize apps into pop-up folders
- Icon pack support — use third-party icon packs to customize app icons
- App rename — set custom labels for any app
- Music detection — auto-detect active music player via Bluetooth/headset connections
- Advanced search — built-in calculator and contact search (coming soon)
- Notification previews — see recent notifications on home screen with quick reply
- Gesture customization — customize gesture actions in settings
- Android 15+ (API 35+)
- Android SDK with platform 36 and build-tools 36.0.0
# Clone
git clone https://github.com/diraol/arami-launcher.git
cd arami-launcher
# Create local.properties
echo "sdk.dir=/path/to/your/Android/Sdk" > local.properties
# Build libre (F-Droid) variant
./gradlew assembleLibreDebug
# Build full (Play Store) variant
./gradlew assembleFullDebug
# Run tests
./gradlew testLibreDebugUnitTestThe APK will be at app/build/outputs/apk/libre/debug/app-libre-debug.apk.
Multi-module MVVM + Clean Architecture with 10 modules:
app → Application, MainActivity, Navigation
core/common → DI, extensions, utilities
core/ui → Theme, shared Compose components (clock, wallpaper, alphabet scroller)
core/domain → Models, use cases (8 total), repository interfaces
core/data → Room DB (v4 with 6 entities), DataStore, repository implementations
core/systemapi → Android API wrappers (11 total: LauncherApps, UserManager, Audio, etc.)
feature/home → Home screen with clock, wallpaper, gestures, quick access bar
feature/applist → App drawer with search and alphabet wave scroller
feature/settings → Settings screen (theme, clock, display, blocking)
feature/privatespace → Private Space lock/unlock and app list
feature/wellbeing → Screen time dashboard and usage statistics
Tech stack: Kotlin 2.1.0, Jetpack Compose, Material 3, Hilt, Room with auto-migrations, Preferences DataStore, Navigation Compose.
Database: Room v4 with 6 entities:
HiddenAppEntity— hidden apps listAppBlockingConfigEntity— per-app blocking rulesBlockingScheduleEntity— time-based blocking schedulesWidgetSlotEntity— home screen widgetsAppFolderEntity— folder organizationAppRenameEntity— custom app labels
Conventions: Build-logic composite build with 6 convention plugins for consistent configuration across modules.
| Flavor | Distribution | Description |
|---|---|---|
libre |
F-Droid | No proprietary dependencies |
full |
Play Store | Identical for now; future proprietary-optional features |
✅ MVP Complete! — All core launcher features implemented and functional.
✅ Phase 2 Complete! — Digital wellbeing features fully implemented.
✅ Phase 3 Complete! — Widgets, folders, and icon packs working.
🔄 Phase 4 In Progress — Notification previews and gesture customization UI pending.
See PLAN_STATUS.md for detailed implementation status.
- Build: ✅ Successful (
./gradlew assembleLibreDebug) - Database: v4 with auto-migrations (1→2→3→4)
- Modules: 10 (1 app, 5 core, 5 feature, 1 build-logic)
- Dependencies: 100% FLOSS, F-Droid ready
⚠️ Two deprecation warnings inAudioStateMonitor.kt(Android API migration pending)- Notification preview feature exists but not yet integrated into home screen
- Gesture customization UI not yet implemented (domain model ready)
- Add comprehensive unit tests
- Fix deprecation warnings
- Complete notification previews integration
- Add ProGuard/R8 rules for release builds
- Test on physical devices (Pixel, Samsung, Xiaomi)
- Complete F-Droid metadata (screenshots, descriptions)
- Set up CI/CD workflow
- First beta release on F-Droid & Play Store
ACCESS_HIDDEN_PROFILES— Required for Private Space (Android 15+)PACKAGE_USAGE_STATS— For digital wellbeing featuresBIND_NOTIFICATION_LISTENER_SERVICE— For notification previews (optional)
Privacy: No data collection, no analytics, no ads, no internet permission. Everything stays on your device.
This project is licensed under the GNU General Public License v3.0.
Contributions are welcome! Please feel free to:
- Report bugs or request features via GitHub Issues
- Submit pull requests (please follow Kotlin coding conventions)
- Help with testing on different devices
- Improve documentation or translations
- Clone and open in Android Studio Ladybug (2024.2.1+)
- Sync Gradle dependencies
- Run on emulator or device (Android 15+ recommended)
- Check PLAN_STATUS.md for implementation status
- Inspired by Niagara Launcher (alphabet wave scroller)
- Inspired by Minimalist Phone (text-only aesthetic)
- Built with ❤️ for a more mindful digital life