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.


I’m using a Displayport to HDMI-adapter and then a regular HDMI-cable (so the PC needs a DP-output). There are also some other options, but this was the easiest for me. I got most info from the Arch wiki https://wiki.archlinux.org/title/HDMI-CEC.
It also doesn’t work for all DP-HDMI-adapters, they need to be modern enough/support the protocol. From what I remember about finding the specific one I got, I think ones that support 8k should be good enough. I got one from Ugreen.
But what is the DisplayPort plugged into on the PC? Extremely few motherboards and GPUs support CEC in my experience…
It’s just on the DP-out of the PC. I tried it on two different PCs and it worked. From my understanding, it should be supported if the PC has DIsplayport 1.3 or newer. But maybe I was just lucky.
I then had to play around a bit with cec-ctl (with the help of the Arch and Ubuntu manual pages https://man.archlinux.org/man/cec-ctl.1.en https://manpages.ubuntu.com/manpages/focal/man1/cec-ctl.1.html ). I think I also tried a bit with --cec-version-1.4, but I don’t remember the details (I only saved the scripts that were working).
Sorry if I can’t be of more help.