Find discrete GPU using Switcheroo via environment instead of default flag
The non default GPU in switcheroo is not always the discrete one, so instead of relying on the Default flag probe the environment.
In the output of lspci
from various people I noticed the pattern that the iGPU tends to be on Bus 0, so we simply check if DRI_PRIME value starts with the relevant string.
Nvidia GPUs receive special treatment because Switcheroo does not give us the DRI_PRIME
env var and because there no Nvidia iGPUs.
In the case there are multiple discrete GPUs in the system its checked if the Default GPU is discrete and use that.
For testing purposes I've also made a python script that has the same logic as this PR proposes as well as the original behavior that relies on the Default: https://gist.github.com/Jan200101/3424c20ea616f7b180e1724c602f1888 (if your PC does not have an iGPU and a dGPU thats default you can enable TEST_DATA
)