Skip to main content

Command Palette

Search for a command to run...

Bazzite ramblings

Updated
3 min read

First of all. Why would you chose to run Bazzite linux? Well, in this day and age obviously because it’s the most complete linux for any LLM and AI agent work you can imagine. Provided you have a supported GPU - everything works out of the box, and it’s optimized for gaming. We all know gamers takes their rig more seriously than anyone on the planet.

What’s the down side? The down side can be that it’s not easy to operate Bazzite with out pulling down packages and making layers on top of your imutable OS, but it’s far from impossible.

Enter distrobox (pun intended). Why not toolbox ? toolboxhas become very complex, and it still lacks features that distrobox rocks. distrobox on the other hand is dirt simple (everything is relative) shell scripts that does it’s magic and never complains. No, really. distrobox is very clever and, although I, like some many else, has a devcrush on golang, the distrobox devs made the right choice.

A typical distrobox file might look something like this:

[fedora41] # also inline comments are supported
additional_packages="zsh fzf neovim golang cargo glib2-devel pango-devel cairo-gobject-devel
atk-devel javascriptcoregtk4.1-devel libsoup3-devel gtk3-devel webkit2gtk4.1-devel 
python3-pip pciutils tmux neomutt curl isync msmtp pass ca-certificates 
gettext lynx abook chronie qutebrowser"
image=registry.fedoraproject.org/fedora-toolbox:latest
home=/home/<user>/distroboxhome/
init=false
start_now=false
nvidia=true
pull=true
root=false
replace=false

The really big difference, for me, is the ease of which you can switch to a custom $HOME with distrobox.

$ distrobox assemble create --file distrobox.ini 
$ distrobox enter fedora41

That’s it. Now you have created and entered into a distrobox container (podman) in which you have installed all the additional_packages listed in the .ini file. Smooth AF.

So what’s the problem? The problem is that I have a mail client system consisting of neomutt configured with mutt-wizard relying on mbsync and notmuch. It’s a marginal problem, but for me it is a problem because I’ve decided that I will live my life inside a distrobox and never install anything that is not already present in Bazzite proper.

This in turn leads to https://github.com/roderik333/syncmail

..and I’ll try to explain why.

I can’t just install a initsystem in my distrobox

$ distrobox create --help
.
.
-- init/I       use init system (like systemd) inside the container.
                this will make hosts processes not visible from within the container.
.
.

And as explained in the README.md of syncmail running .timer on the systemd of Bazzite proper didn’t work very well.

HOWEVER! I still might do this if I manage to reform my workflow.. because I could run my mail in a separate distrobox that has a init system, and the rest of everything in a different distrobox.

I think I would then need a multiplexer in Bazzite terminal and a separate multiplexer for each distrobox which I fear might become a tad confusing.

Ghostty might also be an alternative. Haven’t tried it but it’s meant to send tmux and zellij in oblivion. But I can not use rpm-ostree to just install Ghosttty that would defat the whole purpose of this .. kinda moronic endeavour, anyways. Bazzite supports appimages out of the box. So there’s that.

‘till next time