For Surface hardware compatibility, check this out. I have a fully working touchscreen, pen and all, on my Surface Pro 4 running Mint thanks to this project. Essentially, it’s just a different kernel you install through your package manager that replaces the default for your distro. Let me know if you have any questions. https://github.com/linux-surface/linux-surface/
I love this as just a completely out-of-context picture.