- Created view_settings.xml to define the layout for the settings view. - Added view_settings_v2.xml for an updated version of the settings layout. - Introduced view_voice.xml to establish the layout for the voice interface.
Ambient Launcher
An Android tablet home-screen replacement written in Kotlin and Jetpack Compose.
Included
- Android Home-role declaration and setup prompt
- Full-screen ambient slideshow with crossfade, interval control, image darkening, and optional local folder
- Clock with subtle burn-in position shifting
- API-key-free current weather and forecast from Open-Meteo
- Floating searchable app tray with persistent pinned apps
- Keep-awake options, including charging-only
- Scheduled ultra-dim/night presentation while the launcher is visible
- Offline “Computer” wake-word detection that opens Android’s default assistant
- Continued listening across other apps through a visible microphone foreground service
- Honest capability and permission status screen
- Manual Android media output panel shortcut
Setup
Open this folder in a compatible Android Studio installation, let Gradle sync, and run it on an Android 8.0+ device. Select Make default Home app during onboarding or later in Settings.
No API key is required. The initial location is San Francisco; change latitude, longitude, and location label under Weather settings.
Deliberately not claimed
System-wide audio routing and overlays over unrelated apps are not included. Android may block an assistant activity from opening over another app; when that happens, the wake-word service posts a one-tap Open assistant notification.
Wake word
Enabling wake word downloads the pinned open-source sherpa-onnx English keyword model (about 17 MB), verifies its SHA-256 digest, and installs only the required int8 model files in private app storage. Audio is analyzed locally and is never saved or transmitted.
The pinned sherpa-onnx 1.13.4 Android AAR is resolved from the project’s versioned GitHub release repository during a future Gradle build. Listening can only be started while the launcher is visible and requires microphone and notification permission. It does not automatically start from a boot receiver.