So I’ve been really interested in immutable OS’s since Silverblue, kept jumping off and on again as I hit what I thought were brick walls. I was just not approaching them properly.
I’ve been using Bluefin for work for the last 6 months and started making distrobox containers for projects. One thing I always ended up with was a load of mess with pip or NPM, so the idea I can just jump into a container for that specific project was really appealing.
But it never occurred to me, I can do this for everything, I know this is something that has been done before, but I’ve just stumbled on it. I made a distrobox container using boxbuddy that used the arch-bazzite-gnome image, called it arch-gaming. This has given me a containerised gaming setup that runs like arch native. I can just chuck all my gaming stuff through that and box buddy auto exports the icons into the app menu, so the GUI side of things is sorted. As it’s bazzite the nvidia drivers and steam are all ready to go I installed lutris that was it.
The added bonus of bluefin is that I don’t need rpm-ostree for anything, languages are handled by brew, apps with flatpak, and now the aur for anything niche or apps I want to use in a more traditional setting.
I now have a portable, reproducible system that should be pretty robust.
I love the idea of distrobox/toolbx!
but ive never understood why they by default share the home directory. They still overwrite each others config filesand leave a huge mess in the home dir. And last time i tried it wasn’t possible to really isolate things. Has thisimprovesd?
The entire purpose is to conveniently access your files, so if that’s a problem use containers normally or pass a -h during distrobox create if you want to isolate home directories.
I genuinely didn’t know about this. I’ve been avoiding immutable OSes as I’ve had issues with distros like Bazzite in the past where packages completely disappeared from my system after a freeze when overclocking my GPU,which ruined the whole experience for me.
However, I’m interested in blend os,which unfortunately comes with gnome by default,but I will give it another try with layering plasma on it next time I try it,cause the idea of a distrobox centric distro is really appealing.
End rant.
Thanks for sharing this.
You’ve got to do some manual config. I know about it but don’t use it. You can redirect home folders with the container in the distrobox create flags. I think the better option is to use the user/groups/SELinux context in addition to the container as this will show up in ownership and is more easy to trace. One of my main problems is how packages have Python installation requirements that by default try to break pip out of any containerized context and create their own venv setup. It totally screws up the whole distrobox container setup and separation from the base system.
Yeah - this is very strange to me since it seems like that’s the bigger issue. Everything outside of $HOME is managed by a package manager of sorts. But all the stuff in $HOME is where the mess happens. distrobox does let you set an alternative home dir which is good. It seems like they should at least specify a separate XDG_CONFIG_HOME by default - then I could use my login scripts but application configs (for well-behaved applications at least) would be separated.
This is the way.
I love and use Bazzite 🎮 myself ✅
I tried to shill Steam Deck / Bazzite on a gaming PlayStation 5 post about Disc Drive being DLC, and it didn’t go well :(
I even informed them PS5 is just Open BSD with training wheels/handicaps.
If you’re having trouble with pip and npm can I suggest ASDF?
Hey thanks, that looks really interesting.
This might solve some of my gripes with ASDF. Thanks for sharing!