webos-terminal-emulator
Native Wayland programs for a rooted LG webOS TV: a TrueType terminal emulator, a GPU (PowerVR / GLES2) example, a launcher icon, and notes on how all of it works.
- Sideload / dev mode
- Beta
- 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
The terminal now renders on the TV's GPU.
Install (on the TV, as root; needs the Homebrew Channel for the root exec service):
mkdir -p /media/developer/temp && cd /media/developer/temp
curl -sSfLO https://github.com/lazybrar/webos-terminal-emulator/releases/download/v1.2.0/org.tvwl.terminal_1.2.0_all.ipk
luna-send -i -f luna://com.webos.appInstallService/dev/install '{"id":"org.tvwl.terminal","ipkUrl":"/media/developer/temp/org.tvwl.terminal_1.2.0_all.ipk","subscribe":true}'
Then open Terminal from the home screen. Verify the download against SHA256SUMS. Upgrades in place from 1.1.x.
What's new
- GPU renderer
wlterm-gl: GLES2 on the TV's PowerVR (glyph atlas + one quad per cell). 32-bit ARM, links the TV's own libraries. The CPU rendererwlterm2is still bundled. renderer = auto|gl|cpuin/media/developer/wlterm.conf.auto(default) uses the GPU build and falls back to the CPU one if it fails to start.- Faster floods on both renderers: the terminal now drains the shell's output for a few ms before redrawing (a 200,000-line scroll went from 3-6 s to about 1.5 s).
- Build tooling:
make gl-term,scripts/make-sysroot32.sh(checksum-pinned 32-bit glibc from Debian), fasterscripts/pull-sysroot.sh.
Measured on the TV (seq 1 200000): GPU ~1.47 s using ~1.0 s CPU; CPU renderer 1.4-2.5 s using 1.1-2.3 s CPU. The gain is lower, steadier CPU load, not a big wall-clock speedup.
Not yet verified on hardware: scrollback paging (Shift+PgUp/PgDn), full-screen apps such as vim/tmux/htop. Known gaps: no ligatures, no double-width (CJK) characters, no mouse or clipboard.
Modifies a TV's filesystem as root; use at your own risk (see README, Safety).
Before you start
- How hard is it?
- HardUses the command line or developer tools.
- What you need
- Comfort with the command line
- A computer
- Another hack installed first
- 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 webos-terminal-emulator 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 (end users)"):
Requirements: a rooted webOS TV with the Homebrew Channel (it provides the root exec service the icon uses).
- On the TV (telnet / SSH as root), download the ipk from the latest release (checksum in SHA256SUMS) and install it: mkdir -p /media/developer/temp && cd /media/developer/temp curl -sSfLO https://github.com/lazybrar/webos-terminal-emulator/releases/latest/download/org.tvwl.terminal1.2.0all.ipk luna-send -i -f luna://com.webos.appInstallService/dev/install
'{"id":"org.tvwl.terminal","ipkUrl":"/media/developer/temp/org.tvwl.terminal1.2.0all.ipk","subscribe":true}' Wait for "state": "installed". (Other installers that accept dev-mode ipks should work too; this is the one tested.)- Open Terminal from the home screen. The first start downloads Fira Code (needs internet; without it the TV's DroidSansMono is used).
- Optional: get fish, and configure shell, home and fonts in /media/developer/wlterm.conf.
The ipk is self-contained: both renderers and the launcher live inside the app folder, nothing is copied by hand. The GPU renderer is used when available (renderer = auto|gl|cpu in the config); if it fails to start the CPU one takes over. Clicking the icon again restarts the terminal.
Risk and recovery
- Brick risk
- Low
- Requires opening the device
- No
Releases
| Version | Name | Released |
|---|---|---|
| v1.2.0 | v1.2.0: GPU-rendered terminalLatest | 13 October 2026 |
| v1.1.0 | v1.1.0: self-contained ipk | 13 October 2026 |
Credits, license and support
- License
- GPL-2.0