8000 GitHub - diraol/arami · GitHub
[go: up one dir, main page]

Skip to content
diraolPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Arami Launcher

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.

Features

🎯 Core Launcher (MVP — Complete!)

  • 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

🚀 Digital Wellbeing (Complete!)

  • 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

✨ Advanced Features (Complete!)

  • 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)

🔔 In Progress

  • Notification previews — see recent notifications on home screen with quick reply
  • Gesture customization — customize gesture actions in settings

Requirements

  • Android 15+ (API 35+)
  • Android SDK with platform 36 and build-tools 36.0.0

Build

# 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 testLibreDebugUnitTest

The APK will be at app/build/outputs/apk/libre/debug/app-libre-debug.apk.

Architecture

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 list
  • AppBlockingConfigEntity — per-app blocking rules
  • BlockingScheduleEntity — time-based blocking schedules
  • WidgetSlotEntity — home screen widgets
  • AppFolderEntity — folder organization
  • AppRenameEntity — custom app labels

Conventions: Build-logic composite build with 6 convention plugins for consistent configuration across modules.

Build Flavors

Flavor Distribution Description
libre F-Droid No proprietary dependencies
full Play Store Identical for now; future proprietary-optional features

Project Status

✅ 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.

Current Build 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

Known Issues

  • ⚠️ Two deprecation warnings in AudioStateMonitor.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)

Roadmap to First Release

  • 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

Permissions

  • ACCESS_HIDDEN_PROFILES — Required for Private Space (Android 15+)
  • PACKAGE_USAGE_STATS — For digital wellbeing features
  • BIND_NOTIFICATION_LISTENER_SERVICE — For notification previews (optional)

Privacy: No data collection, no analytics, no ads, no internet permission. Everything stays on your device.

License

This project is licensed under the GNU General Public License v3.0.

Contributing

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

Development

  1. Clone and open in Android Studio Ladybug (2024.2.1+)
  2. Sync Gradle dependencies
  3. Run on emulator or device (Android 15+ recommended)
  4. Check PLAN_STATUS.md for implementation status

Acknowledgments

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0