I just bought an HP 17-cp1035cl laptop with touchscreen (AMD Ryzen 5000 series, AMD Radeon graphics). It worked right from the jump, no need to configure it, install drivers, etc. The only thing that doesn't work on this laptop is a USB-C plug (it's got no power... I want to plug my phone in there), but I'll get that sorted eventually. Everything else just works, no third-party drivers needed.
Pro-tip: HP's UEFI implementation is a bit addled... if you attempt to install over the top of the existing Windows installation, the UEFI will still see that Windows installation and won't let you change the default boot to Ubuntu (Zorin OS).
The fix is to disable TPM, leave Secure Boot as it is, boot the Zorin OS USB drive, back up Windows to another drive (if you plan on keeping it just-in-case), reboot the Zorin OS USB stick, but don't select "Install Zorin OS". Instead, select "Try Zorin OS", then delete all the partitions on the internal drive and zero the sectors with dd:
sudo dd if=/dev/zero of=/dev/sda bs=512 status=progress
... then reboot the Zorin OS USB stick again to do the installation. Zorin OS installation will set up the partitions and format them, so you don't have to worry about doing that.
The UEFI will recognize the empty drive and remove Windows as the default boot. If it pops up any dialogs during boot asking you to 'register MOK', just ignore it and continue the boot... MOK will be taken care of from within Zorin OS once you get it installed and booted.
Oh... and when it asks you to choose a file system, you can't go wrong with ZFS. You can actually issue a command to replace your internal disk with another disk, which will move the data off the internal disk to that other disk, then you can wipe that internal disk, remove it and replace it (if your disk is connected via USB or has hot-swap capability), whatever... all while Linux is running. Then you issue the command to replace the other disk with the internal disk, the data is sloshed back over onto the internal disk, and you're back to normal.
sudo zpool replace
POOL (rpool or bpool) 1st_DISK_
PARTUUID SPARE_DISK_
PARTUUID
So if I wanted to replace the internal drive with one of my external drives, I'd first zero the space on that external drive, then replace the internal drive with that external drive, then zero the internal drive, then replace the external drive with the internal drive and let it resilver, then remove the mirror drive from the pool, zero the sectors on that drive and reattach the drive to the pool and let it resilver. And in so doing, the operating system has sloshed across three drives, all while Linux remains running.
I've got L2ARC cache drives on the bpool (boot pool) and rpool (root pool) (somewhat akin to Windows ReadyBoost), two swap drives and a mirror drive for the rpool... it's so much faster than Windows could ever hope to be, with better data stability (less chance of losing data), with roll-back capability right in the Grub boot menu if you ever mess anything up, and the ability to take/restore an image of the main drive as a backup to the rollback feature.