Choosing the software for our HTPC console
In order to build a custom console we need a “special OS” offering at least these features:
- An automatic access to the system without having to type credentials or utilize a keyboard
- An easy to use UI (User interface) to launch our games using a controller
Basically there are 2 possible ways, both with trade offs:
- Using a specifically designed OS like Bazzite (suggested)
- Using Windows and configuring it to automatically logging in and launching Steam (or PlayNite) in big picture mode on startup
Bazzite
Windows
* What’s wrong with HDMI 2.1 on AMD gpu in Linux? Read this post for an in depth answer and workaround.
** This usually happens only for competitive online games using anti-cheating software (this is not a Bazzite/Linux issue but a missing support in that software)
[ ? ] What about Steam OS? Well, right now it supports only Steam Deck and Legion Go S as you can read on the official site, so in other words only handheld devices and not HTPC.
1

On the Bazzite website, by clicking “download” we can configure some settings in order to get the build which better fits our hardware and use case. Since we are building a console, we need to choose the “Home Theater PC” option for the hardware, this will provide us the “bazzite-deck” variant which has one and one only default user “bazzite” (with admin password “bazzite”) and will boot automatically into “gamescope” (an optimized session for gaming with Steam big picture UI). Then we can choose our GPU type (AMD is strongly advised for best compatibility) and the desktop environment (KDE or Gnome). For those who are new to Linux, the desktop environment is the software which provides the user the system graphical user interface. The choice is theoretically just a matter of taste and the performance/behavior of the system should be the same using one or another, but since KDE is the desktop environment of choice in Steam OS and also the default option in Bazzite, I would stick to that (I find KDE way better than Gnome anyways both aesthetically and functionally). Once the 3 options are selected we can clicl on “download bazzite-deck” to get the iso.
2
Once the iso is downloaded we have to create a bootable USB flash drive containing the image. The best way to do this is to use the official Fedora media writer (Bazzite is based on Fedora). The tool is available for Windows, Mac and Linux and can be downloaded for free from the github repository here (you can choose the latest version of the tool which should be a the top of the page). Once installed we can simply launch it, choose the downloaded iso as image source and the target USB drive, the software will automatically take care of everything else.

3

Once we have the bootable USB flash drive with Bazzite image on it, we need to configure our motherboard bios boot sequence in order to set that drive as the first option in the boot sequence. This will allow us to reboot and automatically launch the installer for Bazzite. Once booted from the USB, the installation process is super simple and self explanatory, there is no need to configure an user account, we just need to select the drive where Bazzite will be installed, our desired language, our location and time zone and nothing more if you are connected to the internet using a LAN cable (suggested), otherwise you’ll need to configure the wifi (Bazzite is gonna need access to the internet to retrieve drivers and updates).
By choosing and installing the bazzite-deck version, by default our system will be identified as a “Steam Deck” handled by the games. While this is 99% perfectly fine if we are actually using a handled device (which has limited hardware and a battery to preserve), it’s not ideal for our HTPC because the games will very often limit the selectable options and resolution we can select (For instance you can’t set a resolution higher than 1080p and “medium” quality settings in “Atomic Heart” ) and anyways they’ll load lower resolution assets and presets by configuring target FPS and refresh rates that are conceived for a small display, not a huge oled 4k TV like the one we are likely to use with our custom console. Fortunately we can fix this by providing a simple directive in the game launch options:
sd0 %command%
sd0
is an alias to SteamDeck=0
which basically turn off the identifier and as a result the game won’t limit any settings.
