# Bazzite ramblings

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` ? `toolbox`has 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:

```ini
[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`.

```bash
$ 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](https://github.com/roderik333/syncmail)

..and I’ll try to explain why.

I can’t just install a `init`system in my `distrobox`

```bash
$ 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
