That is a hard one. Those packages won’t always be the correct list for nvidia. Sometimes there will be more or less. Also, it might not be nvidia-dkms that is installed. It could be nvidia or nvidia-lts or several other variants from AUR.
The intel and amd drivers are part of the kernel. They get upgraded with the kernel.
There are things like mesa, vulkan, vaapi, etc but those will vary per install.
At the moment, in my program, anyone other than nvidia-dkms is replaced by it.
But I think can simply find out what the user has installed and change instead of nvidia-dkms to nvidia or nvidia-lts (if the other packages are suitable).
This is true if, for example, I install only 1 nvidia-dkms package. And if I install a stack of packages, as it is arranged in my program. For example, if I select nvidia-dkms version 123.12, then I can install all other packages only of this version (I can only select a patch).
It isn’t only nvidia packages. For example, I suspect they are linked to libglvnd. If that changes, there may be a problem. But you can’t just bring that in as it is linked to a bunch of other packages.
This is the whole partial update scenario that is warned about so often.
If you want to offer older drivers, they need to be built against current libraries, I don’t think you can safely pull them from the archives.
Yes indeed old packages lead to a black screen, I think I should try it
limit the sheet (for example, show the last 5 versions). Thanks, I’ll look towards nvidia-all.