I haven’t done in depth testing but when recently started to use KDE I had to throw out TLP.
So far I haven’t noticed that much of a difference in power consumption.
There also is an Oracle project to auto tune the system. I am worried that all these things dont work well together. The system76 stuff also autotunes stuff.
I could ask them what their software covers and what not.
The nixos builtin stuff is quite basic, and unlikely to cause problems with other implementations as far as I am aware. It pretty much just enables suspend. See its implementation here.
Beyond that, pretty much everything listed conflicts with everything else listed.
So I would say just pick one of (tlp, auto-cpufreq, power-profiles-daemon, system76-power), try it for a while and then try others if you want.
It seems to be safe to enable powertop in addition to any of the others, but I am not sure.
system76-scheduler is a scheduler rather than a power management tool. It can have theoretical impacts on performance and energy use, but it does so by changing how programs are scheduled to be ran rather than tweaking hardware settings. So it can be safely enabled in addition to any others.
Personally I’ve had pretty reasonable battery performance since enabling upower - WMs don’t usually enable it. I’ve also had to manually fix nvidia power settings since the udev rules don’t actually work.
I don’t think there’s a one-size-fits-all “best” solution. You’ll have to understand what everything does and experiment to get there - which is quite hard given that how you use your laptop on a given day will change what things do and don’t work. Figuring out how you can measure each device’s power usage and whether stuff could be turned off that isn’t is a good start. Adaptive display brightness is also worth looking at. Tuning CPU governors ad-hoc with userspace daemons seems like a rather down-the-line kind of optimization.