Firstly, everything mentioned in the previous post is done. I’m especially happy with the solution I came up with for build-level config in fpc-ctl:

  • Config within the per-project shell script is removed, excepting a pointer to the project’s JSON config file
  • Everything that was in the script is moved to a builds object in the config
  • The configmap, which maps project configuration attributes to build variables, has been extended
    • When a configmap value contains ::, the right-hand side of the value is treated as an override to the value given at the project level

This has made it possible to cleanly have multiple builds (or even subprojects) defined with a single config file, all managed by fpc-ctl.

{
  "project": {
    "foo": "bar"
  },
  "builds": {
    "prod": {
      "configmap: {
        "value_1": "project.foo"
      }
    },
    "dev": {
      "configmap: {
        "value_1": "project.foo::999"
      }
    }
  }
}

If fpc-ctl is run with build prod, then value_1 will be bar. But for build dev it will be 999. Also the dev container will be given a modified config file which contains "foo": 999 so that the override propagates thorugh to runtime.

SteamOS

Secondly, I’ve spent some time today exploring SteamOS. Some months ago, when the Steam Machine was formally announced, I did install it on a minipc that I had lying around – one based around a Ryzen 7640HS (6 Zen4 cores and 8 RDNA3 CUs).

The install and user experience was super-smooth, as everyone who has used a Steam Deck knows. But it turns out that Steam – or at least my Steam library – just can’t offer the kind of cohesively smooth experience that you get on a true console. Some games don’t support controllers at all, and even worse some games “technically” “support” them, mostly by turning one of the sticks into a joystick for the mouse cursor, which is abominable as a user experience. In the end it was a short and shallow experiment.

Today’s was something a little deeper, and I intend for it to be longer-lasting as well. I’m seeing what it’s like to use SteamOS as a desktop. The machine this time is a former folding box, with a 9900X and a 9060 XT. By comparison, that’s 12 Zen5 cores and 32 RDNA4 CUs, so there’s more than enough grunt for everything in my library, even at ultrawide resolutions. But this isn’t really about the hardware.

This is really about figuring out if I want to go back to having PC as a gaming platform after ignoring it since 2017 or so. Over my gaming lifetime I have never really been on both PC and consoles, at the same time, in a serious way. There have been years-long stretches where I was ignoring consoles, then a swing to ignoring PC games. I did have an Atari, but I was on Commodore 64 instead of NES. I had an N64, PSX,and PS2, but I skipped the PS360 generation and the first half of the PS4 because I had fallen down the Steam hole – first on Mac and then on Linux.

Then around the time the PS4 Slim was released, a friend talked me into getting one for Destiny, and I’ve barely played anything except idlers on a desktop since.

But Sony’s recent fumbles have me questioning whether that’s where I want a big chunk of of my games to continue to live (“a big chunk” because I also have a Switch these days, and anything that will run decently on it, I have over there instead).

So do I want to swing back toward PC? And if so, is SteamOS the way I want to do that versus just running Steam on Arch (my go-to distro since 2009 or so)? Would a SteamOS machine have to be treated as a gaming-only machine, or could I use it to do other things as well without much friction?

That last problem is mostly solved in theory, via distrobox, which lets you set up a situation very reminiscent of ChromeOS. Both CrOS and SteamOS have A/B read-only root filesystems, so everything that needs to survive system updates has to live in a/the user’s homedir. CrOS’s crostini let you tick a box to (basically) install a second userland running in some flavor of jail or container. SteamOS ships with podman which lets distrobox act as a front-end to start container(s) of the distro(s) of your choice, in a way that mounts your actual homedir as the container’s user homedir. That last bit already makes SteamOS’s situation lower-friction that CrOS was.

But does it work for me? I dunno yet.

I would say “It’s at least making me think about whether I want my next laptop to be a Macbook by default”, but lol at component costs right now, and that’s before we get to the part where so far as I’m aware, no one is making decent PC laptops anymore.

My current strongest line of thinking is that if AMD ever releases a new line of desktop APUs, which I would presume would ship with Zen6 + RDNA5, it might be worth building a compact truly personal machine (gaming + dev + personal data), and converting my current desktop into a pure server/crunchbox.

But there’s a lot of “ifs” and at least a half year between now and that becoming a relality.