01 / 08 Denis Efremov

Product Design · LG webOS TV · Open Source

An Apple TV feel for your LG TV.

Product DesignTV UILG webOSRustOpenGL ESOpen Source

A fast, remote-first home screen for LG webOS TVs, with an Apple TV feel. Free and open source: no ads, no telemetry, no accounts.

RoleProduct Designer · Engineer
Year2026
DisciplineProduct · TV UI · Native
PlatformLG webOS · 4K OLED

The problem

The stock LG Home is cluttered. Luma makes the best screen in the house feel calm.

On a premium OLED, the interface is the weakest part of the experience: ads and sponsored tiles, recommendations nobody asked for, inconsistent icons, laggy navigation, and no way to bring your own movies, games or smart home into one place.

Luma is a fast, remote-first home screen for LG webOS TVs with an Apple TV feel. It is free and open source under the MIT license, and runs on any LG webOS TV as a normal app. I own the whole product: research, UX, visual design, motion and typography, taken all the way to working code.

160+versions built and tested on a real TV in the 2.2 line
4Knative on an LG OLED C1, with 1440p and 1080p modes
0ads, telemetry or accounts
MITfree and open source
Free & open source

Luma costs nothing. No ads, ever.

The full source is on GitHub under the MIT license: install the latest release on your TV, read the code, or fork it. If Luma makes your evenings nicer, a coffee keeps the updates coming.

A tour

One screen. Everything you watch.

01

Home

A greeting that comments on the weather, a clock, favourite apps and stacks of real content: what was just added to Jellyfin, your music, your Steam games.

  • ◎Favourites row
  • ≡Content stacks
  • ☀Cheeky weather headline
  • →View Library behind every row
02

Widgets

Weather with hourly and 10-day forecasts from Open-Meteo, crypto prices with charts, an HDMI preview and a Home Assistant status line, in four sizes on one grid.

  • ☁Open-Meteo, no API key
  • ₿Crypto charts
  • ▭HDMI input preview
  • ⌂Home Assistant line
Luma weather widget expanded: hourly forecast, 7-day forecast, wind, humidity and UV
03

Apps

Every installed app in one calm grid with categories, so the stock launcher's ads and sponsored tiles simply never show up.

  • ▦Category filter
  • AaApp names on or off
  • ⌕Find an app
  • ✕No sponsored tiles
04

Smart Home

Home Assistant paired by a QR code, so the token is never typed on the TV. Status chips, scenes, live cameras and devices you toggle with the remote.

  • ▣Pair by QR code
  • ◐Climate, alarm, lights
  • ◉Live cameras
  • ⏻Toggle devices
Luma Smart Home tab with status chips, scenes and live cameras

Live wallpapers

The room keeps moving.

Aerial footage plays behind the interface, decoded in hardware on the TV's own media pipeline, so it stays smooth at 4K and never flashes black or green. Pick whole collections, with the Amazon aerials as the showcase, or single clips. Panels are translucent dark glass, so the motion stays visible while text stays readable from the sofa.

Wallpaper settings: sources and collections
Choosing single wallpaper clips
Hardware decodingHEVC & H.264Collections or single clipsShuffle & play next

Built for the remote

Designed for three metres.

Luma is built for a D-pad and a sofa: clear focus, generous targets, cards that lift when they are focused, and Back always steps exactly one level out. One accent colour, picked by you, marks focus everywhere.

Movies, series & music

Your library, not theirs.

Jellyfin and Plex with backdrops, cast, seasons, episodes and More like this. A separate built-in player handles audio and subtitle tracks, quality and seek previews, and syncs progress back to the server.

No typing with the remote. Sign in with a short code or scan a QR code with your phone.

Games

From the sofa to Steam.

Your Steam library from a PC running Sunshine or Apollo, with official artwork. Game pages work like movie pages, and Play opens the stream in Moonlight.

MoonlightSunshine & ApolloSteam artworkGameStream pairing
Game page: 007 First Light
Game page: Cyberpunk 2077

Make it yours

Settings that feel like the TV.

Wallpapers, accent and gradient, heading and text fonts, UI resolution, stacks, widgets and inputs: every page is a frosted panel with a live preview on the left. Drag the rail.

Wallpaper sourcesScreencast
Widget settings
WidgetsEdit the layout on Home
Accent colour settings
Accent coloursColours and gradients
Font and size settings
TypographyCurated pairs, adjustable sizes
Appearance & stacksScreencast
System settings
SystemVersion and launcher controls

Design decisions

Calm is a feature.

TV-first layout

Designed for three metres and a D-pad: clear focus states, generous targets, and Back that always steps exactly one level out.

Frosted glass

Translucent dark panels over the moving wallpaper. One graphite palette instead of many colours.

One accent

A single citrus gradient marks focus, the active tab and one word of the headline. Users can change it, but there is only ever one.

Type for distance

A rounded heading face for the greeting and titles, a clean text face for UI, tuned for legibility from the sofa.

Calm motion

Soft easing, cards that lift on focus, scrolling that reveals rather than jumps. Profiled on the TV so nothing drops frames.

Native rendering

No web view for the launcher. Icons and logos are vector meshes compiled at build time and drawn on the GPU, crisp at 4K.

Every screen

27 screens, one system.

Home, media, games, widgets and every settings page, straight from the renderer at 1920×1080. Tap to open.

Design language

Graphite, glass and one gradient.

Wordmark

Glass

24°CClear skies · frosted panel

Palette

E8E46C
A9DE96
090C10
1E252E
2F6FD6
EEF2F5

Typography

AaNunitoHeadings and greeting

Two mob families clash in a war that threatens to topple empires and lives.

ManropeInterface text

Under the hood

Native, down to the pixel.

The launcher is written in Rust and draws itself with OpenGL ES, so it stays smooth on real TV hardware.

SVG icons→lyon tessellation→vector meshes at build time→GPU, crisp at 4K

01Launcher

Own text and vector pipeline: TrueType parsing, signed-distance edges, image decoding off the render thread.

Rust 2024SDL2OpenGL ES 2GLSL shaders

02Video wallpapers

The webOS hardware media pipeline through small C helpers.

NDL DirectMediaGStreamerHEVCH.264

03Player

A separate web app installed alongside the launcher.

HTML5 videoHLSVanilla JS

04Integrations

Servers are discovered automatically, artwork comes from the sources.

JellyfinPlexMoonlightHome AssistantOpen-MeteomDNS

05TV integration

Root is optional: it adds opening Luma at power-on and HDMI signal detection.

Luna service busHomebrew Channel

06Build & release

Cross-compiled and packaged for the TV, published to a Homebrew Channel feed.

ARMv7IPKNix flakeChangesets

Process

Design to code, 160 times over.

v2.2.1v2.2.8v2.2.15v2.2.22v2.2.29v2.2.36v2.2.43v2.2.50v2.2.57v2.2.64v2.2.71v2.2.78v2.2.85v2.2.92v2.2.99v2.2.106v2.2.113v2.2.120v2.2.127v2.2.134v2.2.141v2.2.148v2.2.155v2.2.156v2.2.157v2.2.158v2.2.159v2.2.160

I take my designs all the way to working code, directing AI coding agents (Claude Code and OpenAI Codex) and reviewing every change. Every build is installed and checked on a real LG OLED C1 65″ 4K TV before release.

Luma started as a fork of the open-source ecklf/lg-luma and has since been redesigned and largely rebuilt: a new Home, settings, widgets, media, games and smart-home features.

Respect by default

Nothing to sell you.

0

Ads

No sponsored tiles and no recommendations you never asked for.

0

Telemetry

Nothing is tracked. Settings and tokens stay in a local file on the TV.

0

Accounts

Install it and it works. Jellyfin, Plex and Home Assistant pair by code or QR.

Any

LG webOS TV

Runs as a normal app. Root is optional and only unlocks a few extras.

Free forever · MIT

Like Luma? Keep it free.

Luma is a one-person, open-source project with no ads and no paid tier. A star on GitHub helps other LG owners find it, and a coffee pays for the next 160 builds.

Latest release: v2.2.160 on GitHub

160+Builds tested on a real TV
4KNative on LG OLED
0Ads, telemetry, accounts
Next projectNOPE - Five more minutes? Nope.