Skip to content

Repository files navigation

Minimal Launcher

A tiny, distraction-free Android home-screen launcher written in Kotlin.

Philosophy

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

Features

Home screen

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

App drawer

  • Swipe up on home (or tap the clock) to open a searchable, alphabetised list.
  • Diacritics-insensitive search (cafe matches Café).
  • 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.

Side-screen "applets"

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 .txt file 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.

Customisation

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

Build

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 with gradle wrapper --gradle-version 8.7 (or just open the project in Android Studio, which will create it for you).

Set as default launcher

After installing, press Home. Android will ask which launcher to use — pick Minimal and "Always".

To switch back: Settings → Apps → Default apps → Home app.

Project layout

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

Customising in code

  • Max favorites: LauncherPrefs.MAX_FAVORITES.
  • Default applet order: Applet.DEFAULT.
  • Notes flush delay: NotesActivity.FLUSH_DELAY_MS.
  • Colors / fonts: res/values/colors.xml and the layouts.
  • Hide specific apps from the drawer: add a filter inside AppRepository.loadInstalledApps().

License

MIT — do whatever you want.

About

Minimal - A minimalistic FOSS Android Launcher

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages