Hearth
Hearth: a fast, calm home screen for LG WebOS TVs
- Sideload / dev mode
- Stable
- Low brick risk
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
1.2.0
-
Edit names and icons (Settings → Apps or Sources, hold OK on an item): rename an app or input, pick another icon (16 input symbols, the bundled app logos), or use your own picture from a USB drive or the TV (rooted TVs, saved inside Hearth's settings). Use the app's / TV's name and icon resets it. See the README, "Edit a name or icon".
-
Hearth for WebOS is the public name; the README now explains the two ways to replace LG Home (helper script, SAM), their known problems, and a recommended setup with Input Hook. The Home key code is 773 on the test remote; others may differ.
-
Back on the home row always opens the Recent apps panel; the old "jump to the first app" is gone.
-
Quiet mode (apps fade after a chosen idle time, 10-60 s; off by default), OLED shift (slow pixel shift, on by default, with an off switch), icon spacing, wallpaper opacity, name colour, and bundled nature photos with a slideshow. Quiet mode and OLED shift follow ideas from iulyax27 (pull request #10).
-
Icon batches and the Input Hook guide: thanks to iulyax27 (pull request #8).
-
Speed: the clock redraws Home once a minute (it was once a second) and unchanged tiles are not redrawn (worst key delay on the reference TV 200 ms to 66 ms).
-
Credits: Alejandro Morales (#1), chriskoperdraad-tech (#2, #3), ganondorft (#6), iulyax27 (#8, #10), community contribution (author not named); projects and ideas are listed in the README. Developed with Claude (Anthropic).
-
Recent apps panel: Back on the home screen opens a panel along the bottom with the TV's recent apps (rooted TVs). OK opens one, holding OK closes it, ↑ reaches Close all, Back closes the panel. Width and height are in Settings → Look. The idea comes from a community contribution (1.6.0 build, author not named); the code is Hearth's own.
-
Icon shape (Settings → Look): rounded or sharp square, squircle, circle, leaf, arch, teardrop. Bottom fade (Settings → Wallpaper): darkness and height. Both from the same contribution.
-
Ten more clock fonts (Outfit, Work Sans, Bricolage Grotesque, Big Shoulders, Jura, Tektur, JetBrains Mono, Lora, Poiret One, Pixelify Sans) and six clock thickness steps (Thin to Bold), from the same contribution. Widget shadow switch: a slight drop shadow behind the time, date and weather (Settings → Wallpaper).
-
Experimental: webOS 3.x (Chromium 38) from the same install file: a loader picks
app.jsor the ES5app.legacy.js; custom properties are emulated there; the helper script watches the system log for the Home bar (HOOK_VERSION9). Ideas and the watcher lines from pull requests #2 and #3 by chriskoperdraad-tech. Untested on a TV. -
Widget shadow strength (Settings, Wallpaper) beside the shadow switch.
-
Experimental: app list without root (Settings, Options, "Load apps from the TV"): pairs with the TV's own remote-control service and reads the full app list; the order is Homebrew, then the TV, then the built-in list. Ideas from the public protocol; see README "Not rooted".
-
Quiet mode brings the apps back when you return from an app (it used to stay hidden until a key was pressed). Load apps from the TV is hidden on rooted TVs. Settings shows the TV's IP address at the bottom right; the wallpaper guide and README now point there instead of the Homebrew Channel.
-
Tests tab: frame timer and key delay (idle, Settings, Home) and start-up times (tests 28-31), to measure speed on a real TV. "Run all tests" skips the tests that need you to act or run long (21, 26, 29-31), and every test is given up after two minutes.
-
Nature photo slideshow now cross-fades and no longer redraws the whole launcher on each change.
-
webOS 11: the root options no longer stay greyed out on a rooted webOS 11 TV once a one-time permission step is done:
tools/webos11-permission.sh(inside the app; run it once over SSH, see "webOS 11" in the README). The "TV refused the command" message now says so. Thanks to ganondorft (pull request #6) for finding the cause and the fix. -
Building on Windows: the helper and start-up scripts are always written to the TV with plain line ends, and
.gitattributeskeeps*.shfiles LF (also from pull request #6). -
Replace LG Home with a script and SAM (Settings → Options). Instead of reacting after LG Home has appeared, a small black stand-in is mounted over LG Home's own folder and the TV's app manager (SAM) is restarted once to read it, so the TV opens Hearth through LG Home's own place and LG Home is never drawn (Home, Back out of an app, waking the TV). A root watcher opens Hearth the moment the TV reports the stand-in in front. The mount lives in memory only; a link in the startup folder redoes it about 25 s into each start, and until then the watcher works as the helper script does. A start-up that does not finish is not repeated, and the method switches itself off if Hearth cannot be opened. It cannot be on together with the helper script: each greys the other out. Adapted from Glasshouse (see THIRD_PARTY_NOTICES.md); undo steps over SSH:
src/takeover/README.md. -
Make this launcher the default instead of LG Home is now Replace LG Home with a helper script. The helper now always starts at boot, so the Start the launcher helper at boot row is gone (installing the new version adds the boot link to an existing helper). Its description warns that LG Home can flash for a moment and points to the Input Hook app.
Before you start
- How hard is it?
- MediumInstall an app on your computer and follow its steps.
- What you need
- Comfort with the command line
- Can it break my device?
- Very unlikely to break anything.
- Can I undo it?
- The project doesn't say. Assume you can't.
Did it work for you?
Did Hearth v1.2.0 work on your LG OLED C3?
No reports yet for v1.2.0.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: LG OLED C3.
No compatibility information yet.
Getting started
From the project's README ("Install"):
Option 1: through the Homebrew Channel (recommended, gets you updates)
Open the Homebrew Channel on the TV and go to Settings.
Choose Add repository and type this address:
https://raw.githubusercontent.com/rudra-avatar/Hearth/main/repo/apps.json
(Typing with the remote is slow. From a computer on the same network you can send it instead, over SSH: ares-launch org.webosbrew.hbchannel -p '{"launchMode":"addRepository","url":"https://raw.githubusercontent.com/rudra-avatar/Hearth/main/repo/apps.json"}')
Go back to the app list, open Hearth and choose Install.
Updating: when a new version is released, open the Homebrew Channel, open Hearth and it shows the new version (for example "1.3.0 (installed: 1.2.0)") with an Update button. Your settings are kept.
Option 2: install the file yourself
Download tld.my.customlauncher1.2.0all.ipk from the Releases page, then either use webOS Dev Manager (a desktop app; no root needed, only Developer Mode), or over SSH on a rooted TV:
scp -O tld.my.customlauncher1.2.0all.ipk root@TVIP:/tmp/ ssh root@TVIP luna-send -i luna://com.webos.appInstallService/dev/install '{"id":"com.ares.defaultName","ipkUrl":"/tmp/tld.my.customlauncher1.2.0all.ipk","subscribe":true}' luna-send -n 1 luna://com.webos.applicationManager/launch '{"id":"tld.my.customlauncher"}' …
Risk and recovery
- Brick risk
- Low
- Requires opening the device
- No
From the project's README ("Replacing LG Home (rooted TVs)"):
There are two built-in methods and one outside helper. Each has a known problem; the recommended setup below combines the helper script with Input Hook.
Method 1: helper script (Settings, Options, "Replace LG Home with a helper script")
A small background helper watches which app the TV reports as being in front. When that becomes LG Home (Home button, leaving an app with Back, boot) it opens Hearth instead. Nothing is replaced or mounted.
- It starts at boot (a link in the TV's startup folder) and also whenever Hearth is on screen.
- Problem: LG Home can flash for a moment before Hearth opens, because the helper can only react once LG Home is already in front. Use it with the Input Hook app (below) and map the Home button.
- The "LG Home" tile still opens LG's own Home.
- Turn it off before uninstalling Hearth. Reversal steps and a diagnostics script: src/homehook/README.md.
Method 2: script and SAM (Settings, Options, "Replace LG Home with a script and SAM")
The TV opens Hearth through LG Home's own place, so LG Home is never drawn. It cannot be on together with the helper script (each greys the other out). Tested by the maintainer on webOS 7.
- A small black stand-in is bind-mounted over LG Home's app folder and the TV's app manager (SAM) is restarted once (the screen may blink). A root watcher then opens Hearth when the stand-in comes to the front. The mount lives in memory; a link in the startup folder redoes it at each start. …
Releases
| Version | Name | Released |
|---|---|---|
| v1.2.0 | Hearth 1.2.0Latest | 25 October 2026 |
| v1.1.0 | Hearth 1.1.0 | 22 October 2026 |
| v1.0.0 | — | 17 October 2026 |
Credits, license and support
- License
- MIT