Im running Ubuntu on a Surface Pro 5 (i5 7300u, 8GB) with the linux-surface-kernel.
Generally, things pretty much worked out of the box, the only tinkering I had to do was to optimize battery life / cpu power usage when not plugged in. Theres packages that will limit your CPU frequency depending on the status of your battery. I dont remember the exact name, but it was pretty much the first hit I googled “linux limit cpu power” or something like that. Without that, the battery life wasnt great, especially when watching YouTube, but with some tweaking and the proper h264/h265 drivers, my surface achieves some 3-4 hours of video playback right now.