Idea for a Program

Yeah it’s hard, but we can help it. Besides, qubes user docs aren’t as comprehensive as some other sources.

I recommend reading Qubes Salt Beginner's Guide. It’s quite long but will help you get a grasp on salt and will get you through creating personal state configuration directories. Even if you don’t read all of it.

Talking specifically about package management with salt, you could check qubes salt examples by @zaz. It’s short, simple and has some cool ideas. See my-pkgs.top and my-pgks.sls

Having said that, you don’t actually need salt. Everything can be done with just bash or python or whatever. Or ansible.

Absolutely! I tried to highlight the main pitfall behind the idea itself, not specific implementation. Indeed, method of storing configuration does not really matter, because there is no guarantee that the same configuration will do the same thing across two distribution versions.

Same here. Debian is so good.

From experience, manually installed packages (not lib or devel packages) rarely change their name from a release to the other.

Fonts, emoji support, packages teetering on the edge of inclusion into repository, and more complex stuff, when you need multiple packages to have a functionality (but there aren’t a meta-package or a package group) often change their names, disappear and reappear in the repository as well.

This problem should be solved by a very basic SALT setup, see for example my-pkgs.top and my-pkgs.sls in my repository of Qubes SALT example scripts.

1 Like

To clarify: Rather than doing what was described in the original post, my-pkgs.sls contains a list of packages that you want installed. When you migrate to a newer version, you can simply apply my-pkgs.sls to the new version by updating a single line in my-pkgs.top. The only caveat is instead of installing packages in the template you instead (or additionally) add it to my-pkgs.sls and run `sudo qubesctl --all state.highstate’

if i did that, i wouldn’t ever open a terminal

if i were trying to run that command in a fedora template, how would it be different?