Use the surface-linux custom kernel https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features#feature-matrix
It seems from the feature matrix that all features are supported except your builtin camera. I personally use this kernel (arch with hyprland) and it works perfectly. The nvidia dgpu is sometimes a pain tho