Writing a script that will installed certain software in your system is very easy to do. The problem comes with automatically identifying which software needs to be installed.
In Linux, there are many ways of installing software in your system: official repositories, third-party repositories, Flathub, Snapcraft, AppImages, tarballs, compiled from source, applications managed by additional package managers such as Python's pip
, Node.js' npm
, and so on and so forth.
What's more, installing form the same source but in different ways will generate different log entries. For example, running sudo apt install <something>
is effectively equivalent to installing that same package from the Software Store (selecting Zorin OS as the source so it uses the Debian package) but the log file will look very different. This makes the task of identifying what the user installed much more difficult.
Keep in mind that as a distribution developer, you can't predict how people are going to be using their systems. Some people don't like Snaps, some people don't like Flatpak, etc. You'd have to account for all possible cases, otherwise people will start complaining about their use case not being covered.
It gets even trickier with AppImages, since they don't have a dedicated package manager, and the source of the download is unknown. Even if you write it down as per my suggestion, this is prone to change if the website changes hosts or whatever. I'm sure there are other gotchas to work around depending on the package manager.
So, yeah, long story short, it's just a lot easier for you to keep track of what you have installed yourself, and include that in a shell script to automate the task.
I'd be happy to help you set something up, however, I just can't promise I'll do it right away.