I set up a Linux pc to replace my smart TV and add some gaming capabilites. It took some time but I learned quite a lot (Thanks to Debian and Arch wikis). And I haven’t missed any TV functionality.
The launcher is flex-launcher on a labwc environment/compositor on a Debian stable distro. (For testing and easy setup, I also did it on Ubuntu Gnome but I don’t need a full DE in the background that I don’t use. But it’s adaptable to other distros and DEs.)
It’s now fully usable with a gamepad including turning the TV on and off, so I have also fully replaced the TV remote.
I hope some people may find it interesting. It was also quite a lot of fun, actually.


Interested in how you got power on/off to work - I thought Linux couldn’t support ARC due to licensing?
I’m pretty sure bitstreaming Dolby Atmos/TrueHD or DTS X/HDMA doesn’t work from Linux. So if you’re using an AV receiver with a surround sound system, you may still want to stick with Microslop. I’d be ecstatic if I was wrong about this, so if I am, someone, please correct me.
Bitstreaming/passthrough for lossless formats like Dolby TrueHD (including Atmos) and DTS-HD Master Audio (including DTS:X) works perfectly on Linux.Linux does not natively decode Dolby Atmos or DTS:X because it lacks the commercial licenses to process the spatial metadata. However, Linux excels at HDMI Audio Passthrough. Instead of processing the audio, your Linux machine treats the uncompressed bitstream like a raw data package and forwards it directly to your AV receiver via HDMI. The receiver recognizes the signal and handles the heavy decoding lifting.
I’m powering on/off the TV through CEC, see my reply above: https://programming.dev/post/50315130/23805655
Thanks!
Powering on/off is part of HDMI-CEC, right? And its unsupported in both Windows and Linux due to most consumer GPUs not supporting it. I think you need a USB adapter to inject the CEC code into the HDMI cable to make it work.
Ah CEC yes…I’m confusing my TLAs. I should probably do some actual research.
bump! Links etc would be great OP!