Arguable. Personally I think the profiles should set up all the hardware the device provides, but bluetooth is pointed out explicitly as “opinionated”. Take it up with upstream.
For this particular patch I’d suggest keeping it to only fixing the nvidia mess, if you want to clean up the profile so it provides a wider configuration for that laptop that’d be cool of course, but more appropriate as a separate patch.
Good question! From its description:
It is enabled by default by the corresponding modules, so you do not usually have to set it yourself, only if there is no module for your wayland compositor of choice. See services.xserver.enable and programs.sway.enable.
So seems to me like the only situation in which it won’t be enabled already is when the user wants tty-only use, or if they do something very bespoke, in which case it’s probably best left to them anyway.
I think you misunderstand the structure a bit.
The way the directory is structured, you’re supposed to import exactly one of the three modules, each providing a different GPU setup.
Right now these are the options:
15-9560/default.nix (intel + nvidia GPU, using the deprecated bumblebee)
15-9560/intel/default.nix (only intel GPU)
15-9560/nvidia/default.nix (intel + nvidia GPU, using prime)
Reading the readme, the intention appears to have been:
15-9560/default.nix (intel + nvidia GPU, using prime)
15-9560/intel/default.nix (only intel GPU)
15-9560/nvidia/default.nix (only nvidia GPU)
So, in an ideal world, the prime config should be at the top, some intel GPU config should be in
intel/default.nix, as well as an import of the nvidia disable module, and some (very different, without prime) nvidia GPU config should be in
nvidia/default.nix, as well as some blacklisting of the intel GPU driver.
In practice, we cannot do this, because someone else - just like you - interpreted the
nvidia folder as “here goes nvidia config” and updated it to provide prime, and now people have clearly started using it as the module that contains the intel + nvidia config, contrary to what the documentation and in fact in-code comments say.
Some will have done so unknowingly, and believe that the nvidia GPU has been turned off. Some will have done so knowingly, and would be confused if suddenly the nvidia+intel config turned into a just-nvidia config.
For this reason, I believe it would be best to deprecate the nvidia folder, so that those who are using it realize that there has been a huge mistake and that their config might not be doing what they think it is.
Once people who thought they were using an nvidia-only system realize the mistake, they can create a new folder with a less confusing name for their nvidia-only config.
As an aside, I think this is all horrible, people shouldn’t be providing multiple different modules that all do the same thing except for different GPUs being turned on/off. It’s awful for code ergonomics, confusing for new and old users alike, and results in these awkward misunderstandings where whole modules suddenly behave differently.
This appears to unfortunately have been cargo culted all over the repository though. I think if we really wanted to fix this, we should introduce a new option that allows flipping on/off specific GPUs. This could likely be provided at the
common level, and save each specific profile the effort of writing 4+ modules just for en-/disabling specific GPUs (the “please don’t give me any GPUs at all” module is missing here).
I’ll probably see about introducing such an option separately. For now, it would be cool to fix the trainwreck around this laptop since someone who actually owns one has their eyes on it
Since this is about testing configurations for specific hardware, there’s not much else you can do.
Since this is nvidia config, ideally you would confirm that none of these break (and confirm they worked on bumblebee, if they don’t at least it’s not a regression):
- Starting an xorg WM/DE, running firefox and watching some video through it, ideally confirming hardware acceleration words
- Starting a wayland WM/DE, and doing the same
- Running some game through proton under both graphical sessions
This would be a lot of effort though. I don’t think these modules see enough maintenance that such strict testing is expected or required.
Make the change, raise the PR, ping people who have previously contributed to it in your PR, and then run it on your machine for a while to check for any fires. That will likely be enough.