When layering fails: first time ublue custom image

After few folks encouraged me to try my own custom ublue image and me resisting (“layering is way easier”), I’m a convert now!

story: want to be on Aurora. Need to have:

  • steam. Flatpak fails for ease with gamescope. Layering fails because pipewire version clashes.
  • Gamescope CLI: this one was painful all around
  • Vscode: DX adds too much. Flatpak has issues. Layering I didn’t try. There’s decent brew ublue script.
  • 1Password and brave: need them to talk to each other, and 1pass to use SSH. Flatpak is no go. There is decent brew ublue script. Layering works too.

I was trying above with recommended approach (flatpaks most preferred, avoid layering, etc)

So I was like, I’m already experimenting various ways to install apps, might as well try custom image based on Aurora. Ublue provides a template and instructions.

2 hours in, and I have custom image I rebased to with stuff I need: steam, gamescope, 1pass, brave, vscode, and it just works!

I went bit overboard with custom flatpak installs and ujust scripts that configure KDE, but then removed them because I want to spend less future time troubleshooting custom image.

Few things that aren’t obvious:

  • there’s another way to build these I think, with blue build. Don’t mix them up
  • If you don’t want to use your GitHub username, you can create GitHub org so it’s pointing to /org/image:latest instead
  • You can customize branding! Give “your OS” a name!

Update: starting with aurora or whichever base image and rebasing seems to work better, since their installers do a lot (like enroll secure key). I was able to make install ISO, but it was bare bones and not best experience.

It’s definitely the way to go. I would only add that just because you’re creating your own image doesn’t mean you can’t break it. You could still add a bunch of stuff that could be in compatible with what the universal blue team is doing. I always keep that in mind when I’m building my own images.

totally, i’ve initially went overboard (ujust scripts, etc) but then settled on simple custom image where i’ve only added what couldn’t be layered, and rest i’ll do manually as usual.

It definitely doesn’t feel like managable for average user, which i assume this is on flatpak sandboxing to fix