Android TV launcher heavily inspired by the Windows 8 Start.
README.md

Azulejo #

Azulejo is an offline-first Android TV launcher inspired by the original Windows 8 Start screen. Designed specifically for TV remotes, it features a 2D live-tile grid, deterministic D-pad navigation, and customizable RSS/Atom live tiles.


Key Features #

  • Windows 8-Inspired Interface: Horizontal tile groups, customizable sizes (1x1, 2x2, 4x2, 4x4), and dynamic accent colors.
  • Remote-First Navigation: Deterministic D-pad spatial focus with zero edge wrapping, no pointer required.
  • Live Tiles: Built-in support for RSS 2.0 / Atom 1.0 feeds with offline caching and safe rendering.
  • Package Management: Automatic Android TV app discovery, categorized "All Apps" view, and remote search.
  • Setup Portability: Export and import layouts via JSON using Android's Storage Access Framework.
  • Offline & Private: Direct device execution with no external service, cloud login, or telemetry required.

Input Reference #

Action Start Screen All Applications Search
D-Pad Move focus Move focus Move between input, results, & actions
OK / Center Launch focused item Launch focused app Select / launch focused result
Long Press Center Open tile commands Open app commands —
BACK Consume safely at root Return to Start Clear query / Return to previous
MENU Open tile command surface Open command surface Open command surface
Search Key Open search Open search Focus input

Quick Start #

Prerequisites #

  • JDK 17
  • Android SDK (API level 21 or higher)

Build & Run #

  1. Clone and build the debug APK:
./gradlew assembleDebug
  1. Install on device or emulator:
adb install app/build/outputs/apk/debug/app-debug.apk
  1. Press Home on your remote and select Azulejo as the default launcher.

Development & Testing #

Run unit tests and verify the build target:

./gradlew testDebugUnitTest assembleDebug

For Nix users:

nix develop --command ./gradlew assembleDebug

License #

Distributed under the MIT License. See LICENSE for more information.