Yeah, I think Linus himself pointed out that the desktop is the hardest platform to support because it's unbelievably diverse and varied.
With regards to Linux I generally just focus on hardware from brands that have historically had good Linux support, but that's just a rule of thumb, certainly not perfect.