Hello,
* Disable the GPU. This is the single most important step assuming you're not gaming while on battery. I've tried a lot of different methods, the only one that worked for my machine was Envy Control: https://aur.archlinux.org/packages/envycontrol
Or you know, you could just blacklist the nvidia module from being loaded, hardware is useless without the kernel module for it, good way to disable microphone and camera too. Also I do have to question why you buy a laptop with a dedicated graphics card just to disable it and never to use it, you could have gotten something with the same build quality and without the dedicated graphics card, and maybe a bigger battery, it would have fitted your workflow better but meh. Also, this step will be useless for me when I specifically picked a laptop without nvidia sh*t, hence why I have only spoke about the intel integrated graphics :)
This allows me to toggle my gpu off entirely, and if I want to game I'll turn it back into hybrid/nvidia mode and then in the bios I'll enable the dGPU only mode that my bios supports. It's a little clunky getting the GPU back on, but it's the best solution I've found and still gives me more control than Windows.
As a note, the hybrid mode support on Linux is horrific, I have seen so many cases where it could go wrong, hell it doesn't even work on windows very well, there are tons of times windows will use the integrated graphics for games even though its meant to use the dedicated. Rule of thumb is pick one or the other and it should be all good :P You can always made a script which can modprobe the nvidia module, unloading it and loading it again. There is no chance of it being active when the kernel doesn't even know of it :P That would be what I would have done, but envycontrol looks like a much more user friendly way of doing this :)
* Setup auto-cpufreq, this will automatically configure the cpu into battery saving modes while on idle and performance modes when plugged in. It works well out of the box, but you can configure it futher if you wish such as disabling turbo mode and lowering max clock.
As far as I am aware auto-cpufreq does nothing more than change the governor and cpu clock speeds based on whether the battery is plugged in or not. I assume this is just a more user friendly way instead of having to stick udev rules in to detect the connection of a charger. At the end of the day you could just set the governor to conservative, tends to be a good middleground, it clocks up a lot slower and therefore draws a lot less power, however when you smash your laptop with a insentive load it can take a while for the cpu to speed up. It is a good opinion, but I do not think my current problem is due to cpu clock speeds, they are already low.
* Powertop --autotune. Powertop is great for both monitoring your power consumption (I've got mine down to ~7W under light load, it was 15-25W on windows), do note that in order to use anything other than the total system power draw you need to run powertop's calibration. Also note that it may cause some issues if you enable power saving on everything, e.g. if I run auto-tune I have to go disable the power saving on my laptop's keyboard so that I don't have to wake the keyboard up everytime I want to start typing.
This is very useful in general, I believe you can toggle the settings within the TUI. I have already ran this last night and it has made marginal improvements which is nice. I am going to let the current settings go through a few charge cycles and see if I am still having a good 30wh drop in less than an hour. Thanks for the advice, -- Polarian GPG signature: 0770E5312238C760 Website: https://polarian.dev JID/XMPP: polarian@polarian.dev