Late reply, hope the people here have already solved the initial issues.
I have a Legion 5 pro, Nvidia 3070 (2021 version).
For people with similar devices(or maybe any new laptops with nvidia), here's what I have found till now :
- I have not found any way to change charging(fast, conservation) and power modes(performance, balanced and quiet) without closing linux. For charging I have to change it from from lenovo vantage by logging in to my dual booted windows(If you don't notice any change in charging mode when switching back to linux, you might want to (1)switch your mode in windows and (2)again restarting into windows and then (3)restarting into linux). There are some utility applications like the tpacpi-bat for thinkpads and ideapads, but none that support the legion series. Still searching for this ..
- Many graphic compatibility issues can be solved by having a linux kernel 5.10+(5.13+ tested and recommended). My initial setup had many issues even after updating to kernel 5.13 due to me messing with config files and settings. On a fresh installation of linux without changing or downloading updates, I first updated my kernel to 5.13. (I am running linux mint 20.3). I updated the linux kernel from "Update Manager">"View">"Linux Kernels". linux kernel options screenshot)
- After the kernel update, I installed the latest recommended nvidia-driver (proprietary) from "Driver Manager". I am currently using nvidia-driver-510. This should also download Nvidia X Server Settings automatically, and provide Nvidia Optimus as a panel(taskbar) icon. Using Optimus from here allows me to change between basically using the integrated gpu(power saving), discrete gpu(performance) or both(nvidia on demand). But this requires you to restart. To be able to see the "Nvidia On Demand" option in Nvidia optimus, you need to change into "Dynamic graphics" from bios
- Using the Nvidia on Demand option fixed my uncontrollable brightness, and desktop scaling issues (Note: you will still face many apps that don't follow the desktop scaling settings. Most can be solved by simple Googling). This is the best option in my opinion as it allows to run basic applications on my Amd iGPU. For specific applications we can use a terminal command(Google primus while launching an application or the "Run with Nvidia Gpu" option while right clicking on an executable program.
Note:
You may face not being able to change refresh rate of monitor on linux while in Dynamic graphics mode. I think there is a solution to it, but I haven't checked yet. (I am content for now with 60 fps on linux, I can always game on Windows. Another user reported being stuck on 144 fps. Roll your luck :) )
Also if you are someone who is looking into whether or not you could afford to dual boot linux:
Don't worry for your data on windows. You can shrink a partition through tools like AOMEI. Regarding storage, you can keep media, documents, installers in your windows storage and not allot a lot of storage to linux as it you access your windows folders from within linux.