I also use my steam deck as my daily driver (dockcase 10 in 1 with peripherals etc).
I had been using arch for years before I got the steam deck, and for the first 8 months or so I unlocked the btrfs partition and installed everything I needed normally (kvm/qemu, devel libraries and Linux headers for c++ development, etc)… But every update from valve would destroy my environment and I had to run custom scripts to fill my etc directory back in…
For the past many months I’ve been using distrobox (which I believe comes pre-installed on the latest steamdeck updates) with a rootless arch environment inside, and flatpaks for everything that requires systemd.
You can symlink things like xdg-open from inside the container to your host, and end up with a pretty seamlessly integrated experience (distrobox does a lot of this for you anyway, and comes with utilities which make this pretty easy.)
If you want direct control of the system, this is not going to be a convenient setup, but if you’re interested in treating it like an immutable OS, there are userspace ways of getting around it’s limitations.
SteamOS has inspired me to make future installs immutable (and atomic/declarative using containers?), because it can be kinda nice once you get used to it.
I hope this helps or was interesting!
Edit: This is specifically what I meant by symlinking xdg-open.
Idk if this is done by default now, but if link handling is broken this is how you fix it
This is a great write-up! I’m going to save it for reference.
Thank you!