{firefox, floorp, librewolf}: add better default and remove warning
Things done
I like about stylix that it is as no-config as it can get with styling. As such, I didn't like that I have to specify which FF profiles I'm using, when for most it will be just "Default". I removed the warning and added a default that applies to most people without removing any configurability.
Additionally, I would personally like it if one of the coloring options was enabled by default. The Firefox module is really the only one breaking this "no config" expectation. All other programs just style in some way by default.
I get that this option has been added because there is no way to augment submodules without introducing infinite recursion. I learned that while trying to fix it. But until there is a better solution to this (like improving the module system from nixpkgs) I think this is better that warning.
- [x] Tested locally
- [x] Tested in testbed
- [x] Commit message follows commit convention
- [x] Fits style guide
- [x] Respects license of any existing code used
Notify maintainers
The best way that I can imagine this working is if we retrieve all set Firefox profiles and use that list to theme them. Unfortunately, I have been unable to find a way to do that without causing infinite recursion.
I am opposed to setting a static default profile name for Firefox because (I believe) profile names are not significant. That is why #963 was done and kept (unlike the warning from #914 which was removed in #1015).
That's alright! However, I lean towards "it just works" philosophy and I believe empty defaults and warnings are silly and don't actually help anyone, while a good default helps most.
The warning can also be shown only when there are profiles not in profileNames. I can add that to the draft if wanted.
Additionally, I would personally like it if one of the coloring options was enabled by default.
This is a bad idea because it would require us to set extensions.force to true which shouldn't be enabled by default
That's alright! However, I lean towards "it just works" philosophy and I believe empty defaults and warnings are silly and don't actually help anyone, while a good default helps most.
I agree with "It just works", but I don't believe that we can say "It just works" when it doesn't work unless you're using a profile whose name happens to align with the defaults.
The warning can also be shown only when there are profiles not in profileNames. I can add that to the draft if wanted.
That would be interesting, and it would limit the number of people who have to see the warning, which is good. It is possible that people have some profiles which they want themed and other which they don't, though, so we would need to add an option to disable the warning.
@awwpotato I added the mentioned changes.
Thank you all for your patience! That should be it.
We love rebuilds :)
With regards to that it changes nothing. To know which profiles we need to edit we need to evaluate the set with the profiles. Unless we configure an extra list with profiles (Like here). For the majority of people that don't modify firefox there is now a sensible default.
I don't think leaky encapsulation is the right term for it as nothing really is getting leaked. And in the nix language nothing really is encapsulated. But I don't want to exclude the possibility that I did not understand what this talk is about.
I can think of some ways to solve this on the hm and nixos level or the module system level but not here on stylix. Basically it's a scenario that wasn't thought of when designing submodules (in the nix modules context)
Ignore the build failures, please. After the conversations are resolved, I have to rebase anyway.
Alright then! Off the list, I'd say 🚀
What is the status of this PR?
it has been refactored so hard that I basically have to start fresh, meanwhile I also noticed that firefox should probably just be removed from auto-enable instead of writing all those warnings.