A tiny, distraction-free Android home-screen launcher written in Kotlin.
- Text only. No app icons, no widgets, no notification badges, no news feeds.
- Pure black background, light grey text. Easy on the eyes, easy on the dopamine.
- Up to 6 favorites on the home screen. Anything else lives in a searchable drawer one tap away.
- No internet permission. Nothing leaves your device.
- Large clock and date (both toggleable, 12h/24h, optional seconds).
- Up to 6 pinned favorites as a plain text list — long-press to reorder via drag, or to remove / open app info / uninstall.
- Optional rotating quote of the day at the bottom (your own list).
- Double-tap to sleep the screen (uses Device Admin).
- Swipe up on home (or tap the clock) to open a searchable, alphabetised list.
- Diacritics-insensitive search (
cafematchesCafé). - Press the keyboard's Go key to launch the top result instantly.
- Optional "frequent at top" and category grouping.
- Pick a per-row display mode: label only / icon only / both.
Swipe left or right on the home screen to enter the applet ring; swipe again to move between applets, or off the edge to return home.
- Screen time — today's foreground time and a per-app breakdown (requires the system Usage access permission).
- Notes — multi-note pad. Open the list with
☰, the action menu with⋮. Create / rename / switch / delete notes; edits are auto-saved with a small debounce. Use Save to device… to export the active note as a.txtfile via the system file picker. - To-Do — daily and weekly tasks. Repeating tasks auto-reset on the next day or week.
Each applet can be enabled, disabled, reordered, and customised individually in Settings → Applets.
- Light or dark theme.
- Custom wallpaper: solid colour, image, or a couple of presets.
- Reverse swipe direction (left-handed mode).
- Animation speed: Off / Subtle / Normal.
- Edit your own quotes list.
- Pick a default-launcher and lock-screen helper from settings.
Requires Android Studio Hedgehog+ (AGP 8.5) and JDK 17.
./gradlew :app:assembleDebug
The APK lands in app/build/outputs/apk/debug/.
The Gradle wrapper jar (
gradle/wrapper/gradle-wrapper.jar) is not checked in. Generate it once withgradle wrapper --gradle-version 8.7(or just open the project in Android Studio, which will create it for you).
After installing, press Home. Android will ask which launcher to use — pick Minimal and "Always".
To switch back: Settings → Apps → Default apps → Home app.
app/src/main/
├── AndroidManifest.xml # CATEGORY_HOME + applets + admin receiver
├── java/com/example/minimallauncher/
│ ├── MainActivity.kt # Home (clock, favorites, quote)
│ ├── AppDrawerActivity.kt # Searchable list of all apps
│ ├── AppRepository.kt # Queries PackageManager, ranks, launches
│ ├── LauncherPrefs.kt # Single source of truth for prefs
│ ├── Applet.kt # Side-screen ring enum + navigator
│ ├── AppletActivity.kt # Base class for every applet
│ ├── AppletTransitions.kt # Slide animations honoring user speed pref
│ ├── ScreenTimeAppletActivity.kt
│ ├── NotesActivity.kt # Multi-note editor (debounced writes)
│ ├── TodoListActivity.kt # Daily / weekly todos
│ ├── SettingsActivity.kt # All settings (categorised, no Preference XML)
│ ├── WallpaperHelper.kt # Solid colour / image wallpaper
│ ├── LockHelper.kt # Double-tap-to-sleep via DeviceAdmin
│ └── …
└── res/
├── layout/ # All activity & item layouts
├── values/ # colors, strings, themes
├── anim/ # slide_in_*, slide_out_*, plus subtle variants
├── drawable/ # vector launcher foreground
└── mipmap*/ # adaptive launcher icon
- Max favorites:
LauncherPrefs.MAX_FAVORITES. - Default applet order:
Applet.DEFAULT. - Notes flush delay:
NotesActivity.FLUSH_DELAY_MS. - Colors / fonts:
res/values/colors.xmland the layouts. - Hide specific apps from the drawer: add a filter inside
AppRepository.loadInstalledApps().
MIT — do whatever you want.