So for some quick background, I currently operate a number of Linux PCs. 3 GUI workstations at work. 2 headless servers (one at work, one at home). 2 desktop PCs (one at work, one at home). I also have multiple laptops running Linux (including a Dell XPS with Nvidia graphics), and I have a PinePhone (Linux phone).
I say this from the bottom of my heart as someone that loves Linux: If you have a laptop with Nvidia graphics - don't bother trying to run Linux. The experience is just miserable.
There are two major things in the way:
1) Nvidia's drivers themselves are not very good and present day-to-day problems (like screen tearing and other artifacting), especially when trying to use Wayland (the next generation window manager on Linux). This may be fixed soon, Nvidia has been finally laying the groundwork for better compatibility with Wayland desktop. Alternately, if all you need is X11, then go ahead and don't bother with Wayland, which sidesteps this problem nicely. But if you have a higher DPI display and want decent display scaling, or ever plug into an external display, unfortunately Wayland is a necessity, and currently, it's miserable with Nvidia.
2) Power management/graphics switching is a miserable experience. There is prime render offload, but it's not very intelligent. Which means you have to remember to start applications with a flag every time you want to use the Nvidia GPU, which introduces all kinds of bugs. Alternately, you can just leave the Nvidia GPU as default, but that introduces more bugs (for instance, on my XPS, it killed my audio because somehow the Nvidia GPU took over audio output and after months of trying, I still couldn't fix it). Furthermore, it completely drains your battery. This is something that is almost certainly not going to be fixed.
On desktop, Linux is 95%-99% usable. On an Intel or AMD laptop, it's the same way. But on a laptop with Nvidia graphics, it's just not worth the headache. There's no complete solution, there's only tradeoffs.
That said, I recommend openSUSE Leap as an OS, because I find it's the best of all the tradeoffs. It's very stable, there's a corporation behind it that needs to keep it running. The release cycle is nice for desktop. YaST makes things very easy to manage the PC. The only real "tradeoffs" are that you need to install AV codecs from a community repository, and Nvidia drivers from a community repository (both are easily enabled through YaST).