When it comes to buying new hardware for your Linux machine, there are an increasing number of devices on the shelves that either work on Linux as soon as you plug them in, or come bundled with Linux drivers, whether those are proprietary or free.
If you dig a little, though, you'll save yourself a lot of time trying to get your shiny new device to work with Linux. When you shortlist a device, get an opinion on its Linux-friendliness from your distro's hardware forum or IRC channel.
DRIVER SUPPORT: Most mainstream distributions include a GUI to install Windows drivers
Most major distros also maintain a detailed list of compatible hardware, such as the one on the Ubuntu wiki. Canonical also maintains a list of laptops, desktops, servers and netbooks that are certified to run Ubuntu.
Running Windows apps on Linux
The next stepping stone in Windows-Linux interoperability is getting Windows applications to run on Linux. Sure, there's no dearth of quality open source apps that outshine proprietary equivalents, but forget the alternatives list for the moment.
There's a range of software that hasn't been ported to Linux, including heavily tuned accounting apps, small customised ones, common office programs and the latest games.
While it's convenient to turn a blind eye towards such software and stick to our open source equivalents, it isn't always practical. Neither is it feasible to purchase a complete operating system just to run a handful of apps.
Fortunately, there's the excellent Wine project, which is primarily developed to run Windows programs in Linux, but also runs on OS X. Wine supports over 15,000 Windows apps, including all genres of games, educational software, multimedia apps, office suites and so on.
WINDOWS APPS:PlayOnLinux installs each program within its own environment
A large number of the supported apps run flawlessly out of the box, but some require a few special tweaks. There are also several projects to assist you in getting the most out of Wine.
There's PlayOnLinux, which eases the installation of Windows apps, primarily games, with its specially tweaked set of scripts. Then there's the Bordeaux GUI configuration manager, a commercial implementation of the Wine project that aims to make the whole process of installing Windows apps easier.
There's another proprietary version of Wine called CrossOver Linux that's specially tuned for running Windows office apps on Linux and Mac too. It's available from CodeWeavers and comes with both user-friendly configuration tools and commercial support.
Finally, TransGaming produces a version of Wine tuned to playing Windows games called Cedega, so there's no shortage of ways of getting that must-have app to work on Linux.