This is a neat write up, but I’m curious what gaming inside a Distrobox container would be like. For starters, is there any performance impact or potential glitches like screen tearing, and second, could I say, install a more recent mesa package in the container (assuming this is Fedora Silverblue), and have the game use it?
Should work fine, bazzite even has a premade one, try it:
distrobox create --nvidia --image ghcr.io/ublue-os/bazzite-arch --name bazzite-arch
Out of curiosity what’s the reason to run games in a distrobox container instead of just running them in the host os?
The immediate advantage is that you could get newer mesa in your distrobox but continue to use a stable one in the host so that it doesn’t fuck up your more important work. I switched to using containers or flatpaks for everything on my system a while ago. I have a distrobox for running odd games I get off Itch and stuff like Steam/Bottles is from flatpak. I even run Silverblue now and haven’t had any major issues for about 2 years at this point. Hell I was switching between GNOME 45 Beta and 44 Stable like it was no big deal.
That’s a super interesting idea. I will have to give that a shot!
Right now I just use flatpak for all my gaming needs and shared things like browsers, slack, etc.
My issue with flatpaks is that having too many flatpaks becomes a chore to manage. I did not have a fun time with Steam in a flatpak (required some mucking around to get the DPI and cursor size right) and same with Chromium a while back (took me a long time to figure out how to pass on the flags to enable Wayland support). IMO, having a single container (or a container for a particular activity, like gaming) would be a much more cleaner approach, while offering the flexibility akin to a mutable OS (so no weird flatpak quirks to deal with… in theory). This would also make things like backups easier, I could just save my “gaming” container to one tar and not worry about whether I missed any dependencies etc.
That’s pretty much what I do, spin up a container for anything I need to do and everything is within that… once I’ve finished I blow the container away and all the dependencies go with it. Currently use proxmox as a frontend for that although I ran on the command line for ages before switching to a beefier server.
I do the same with docker - nest it in a container so everything is together (and also so it can’t screw around with the host networking). eg. my lemmy container has the lemmy docker and its dependencies together.