====== Yuki's guide to a working living room home theater/gaming PC ====== ===== Definition & goals ===== A HTPC is a home theater PC, ideally some good computer you'll want to either use as a gaming console, or as a TV, that you plug on your living room TV with a remote control. This is my experience in building the perfect one and finding the right components. ===== Hardware and OS ===== Depends a lot on what you want. For the best experience and the best compatibility, a good x86 computer less than 10 years old, 8 GB RAM and decent integrated graphics will do what you want. A Raspberry Pi 4 can do the job as well, unless you want to run Steam directly, although it can run Steam Link. Some glibc-based Linux OS like Arch or Debian will do the job. Avoid Alpine, unless you like to mess around with Flatpak or some glibc compatibility layer, mostly because of Widevine and other proprietary software dynamically linked with glibc that won't work with musl. Also, Android TV may also work, as described in the section below. Of course, Windows definitively works but that's kind of boring. Linux is better suited in most cases, except maybe the Windows 8 interface with Metro. Which was fine on 10FUI and mobile use cases but their big error was to push it on desktop so they mostly reverted it with Windows 10. ===== Peripherals ===== One of those keyboard/mouse combos in a remote control form factor will do the job, along with a game controller like a Xbox 360-type controller. ===== 10-foot interfaces ===== A [[wp>10-foot user interface]] is a user interface designed for people with a game controller or a remote control sitting on their couch, rather than sitting on a desk chair with a much smaller screen sitting around 18 inches from their face, with a keyboard and mouse. ==== Steam ==== Arguably the best one I found is [[Steam]] Big Picture (aka SteamOS), but you may need a good Nvidia card with the proper drivers -- it doesn't work with every setup and will need some hacks to get it working correctly anywhere else. Other than that, probably hands down the best one here. It also works fairly well if you don't have a very powerful computer, you can easily use Steam Link to stream games from another computer in your network with about no significant delay. ==== Plasma Bigscreen ==== Another nice launcher is Plasma Bigscreen from [[KDE]], unfortunately the devs prioritizes ARM devices and so may fail to work correctly other than on their setup based on Manjaro ARM, and it wasn't updated for KDE 6 yet so most distros removed it from their repos for the time being. It's a fairly good interface, based on XDG desktop menus (which is pretty much all I want, really), I'd main it if it was more stable. ==== Android TV ==== [[Android]] TV is another nice one. Either you can run a variant of Android TV directly on a Raspberry Pi or a device made expressly for it (OUYA, anyone?), or you can use Waydroid, which from experience is a massive pain to configure correctly without crashing on boot. Also, some apps may complain you're on a rooted device, and you'll probably be stuck with some old version of Android. ==== EmulationStation ==== Finally, [[EmulationStation]] as used by RetroPie also works, it's more aimed for emulation and launching ROMs inside RetroArch, but it can be used for launching about anything else. ==== KDE ==== All of these can be launched directly with SDDM or similar, or also from another launcher, but in any case, it's also recommended to keep a standard desktop like KDE around, just in case. Not unlike the Steam Deck, it may work best if you configure KDE to autostart Gamescope with Steam in SteamOS mode rather than using SDDM to launch it directly with no desktop environment running in the background. ===== Apps ===== A few apps listed here can run directly as a 10-foot interface but it may be preferable to launch it from another 10FUI launcher as listed above, depending of your needs. Such is the case of [[Kodi]], which works very well as a 10FUI, it has a ton of plugins, except it lacks the ability to launch software like the rest of the UIs in the section above, so I'm putting it here instead, although you might never need to leave Kodi. * [[Kodi]] * [[YouTube]] ===== List of incompatibilities ===== This is a list of gotchas to consider when configuring your HTPC. ==== Illico+ ==== It's the one streaming service that doesn't work on any of my devices, save from a TV with Android TV, and on my phone, and even then I had to turn off DNS over TLS completely to log in (but once logged in I can turn it on again). The Android app's login form is probably hosted on some domain internal to Vidéotron's DNS, for some weird reason. Might or might not work on Kodi. ==== Widevine and HDCP ==== If you're going to watch TV, make sure the OS/browser you're installing supports Widevine. HDCP looks a pain to get it working, but isn't much of a problem as most streaming services still let you watch a lower quality version of their content, except Illico+ who outright blocks you. It's usually 720p, but might definitely be worth trying to turn this on if you need better definition. For all I know, it should work on Firefox, but Chromium does not support it yet on Linux and is considered low priority, and kernel drivers are mostly available only for Intel and AMD cards.(([[https://superuser.com/a/1770330]])) ==== IPv6 ==== I use tunnelbroker.net for IPv6 support and use a server in my country, however a lot of streaming sites will detect you're probably using a VPN, and most browsers do that they want and makes it about impossible to prioritize IPv4 traffic even though the Linux kernel can easily be configured for it (see ''/etc/gai.conf''), so I usually leave it off. There's not really any IPv6-only sites, anyway, and if there's any out there it's not out of necessity and it's mostly to test your IPv6 connectivity.