This is a fork of Moonlight TV by mariotaku, extended with my CTM Bridge: controllers paired to the TV — and the Magic Remote as a pointer + keyboard — show up on the gaming PC as native USB devices, with full input, rumble and controller audio.
One person, late nights: controllers were just the start — native AMF streaming, a custom low-latency codec and a bigger webOS app are in the pipe. If CTM Bridge saved you some hassle, coffee speeds them up.
Moonlight TV is a community version of Moonlight GameStream Client, made for large screens, running on LG webOS TVs.
- Controllers over CTM Bridge — DualShock 4 / DualSense / Xbox / Steam Puck paired to the TV appear on the PC as native USB devices: input, rumble, LEDs and controller audio (DS4/DS5 speaker + headset, with headphone-jack auto-route). DS4 pad-speaker audio currently wants Steam Input enabled in games (direct-mode fix in progress); DS5 is best with Steam Input disabled — keeps native DualSense features incl. adaptive triggers.
- Magic Remote → PC mouse + keyboard while streaming: pointer, click, wheel, and D-pad/OK as arrow/enter keys — single input authority, no double cursor.
- Mice & keyboards connected to the TV (Bluetooth or USB dongle) bridge and auto-plug the same way.
- On-stream CTM panel — plug/unplug devices, per-controller audio modes and volumes, live bridge status.
- Auto-reconnect on network hiccups, with bridged controllers kept alive through the retry.
Requires the CTM Bridge Windows service on the gaming PC.
Grab com.limelight.webos_<version>.ipk from the
combined CTM Bridge release
and install with dev-manager-desktop
or ares-install.
Clone ctm-bridge-webos as a
sibling directory of this repo — the embedded ctmbridge lib compiles the
bridge core straight from it (-DCTM_BRIDGE_DIR=<path> overrides the
location). Then build as usual for webOS.
Everything else — general features, platform support, documentation — is upstream mariotaku/moonlight-tv (wiki). Credits to moonlight-embedded for the original libgamestream and decoder components.