tvhome
A home screen for a Google TV with four things on it, no advertising, and no network calls at all.
Running on the device it was built for. Four tiles, a clock, and three small links. Nothing on the screen can change except by editing the source.
Why the stock launcher has to be disabled
Google TV wins the Home button whenever it is enabled, and three ways of outranking it were tried against the live device. A higher priority on the home intent filter does nothing, because Android clamps that for non-system packages. The command line tool for setting the home activity reports success and then changes nothing. And the settings route is gone — Google removed launcher choice on Google TV.
So Home only reaches this app while the stock launcher package is disabled outright. That is also why the app's own "Google TV" link opens a settings page rather than the launcher: a disabled package cannot be started.
Defensive about a detail the platform gets wrong
The same app carries different package identifiers on different devices, so a tile that launches by hard-coded id is a tile that silently does nothing on the next TV. Each tile therefore checks whether any of its candidate packages are actually installed, and renders dimmed when none are.
That is the difference between a launcher that looks broken and one that tells you what is missing — on a device with no keyboard, where the user's only recourse is pressing the button again harder.
Testing without the television
Development runs against a headless emulator rather than the TV in the living room, which matters more than it sounds: the emulator's clock runs slow, so anything time-dependent has to be verified against it deliberately rather than eyeballed.