Most are fine. What you mainly need to watch out for is compatibility with
Linux. The Linux Joystick Driver works with XInput (the non-standard API used
by Xbox 360 controllers), and any USB HID class controllers will of course
work (it's a USB standard).
The only source of incompatibility I have come across (though there may be
more obscure ones I don't know about) is DirectInput, a non-standard API used
by DirectX. Controllers that send DirectInput data can't be recognized by the
Linux Joystick Driver. The biggest offender I have come across when it comes
to using DirectInput is Logitech, though I think most of their recent
controllers have an option for XInput. However, I'm sure there are other
controllers that send DirectInput data.
If a controller is said to work with Linux, or advertises being a standard
USB HID, you can get it without worries (other than the quality of the
controller, of course).
If Linux is not mentioned, you might be able to find other clues in user
reviews. For example, USB HID is a standard supported by all operating
systems, so if someone mentions not being able to use the controller on a
Mac, you can be pretty sure it won't work on GNU/Linux either. If you are
unable to pinpoint for sure whether something is compatible with Linux, make
sure you buy from someone who will accept a return for a refund if the
controller is of no use to you.
I recommend avoiding Logitech controllers; Logitech has absurdly terrible
customer support, and both of the Logitech controllers I've had in the past
broke in a weird way after a couple years (they stopped holding a
connection).
Other than that, I'll comment on some controllers I've used (including some
comments about quality):
- Gravis Gamepad Pro (USB version): Standard USB HID. D-pad is a little
mushy, but pretty decent, and the buttons are perfect. You would have to get
it used (it hasn't been manufactured in over 10 years), but they seem to have
held up well.
- PS3 Sixaxis or DualShock 3: Standard USB HID, with the minor problem that
the button and axis configurations are absurd. The tilt sensors work, though
this is actually kind of annoying when configuring controls. Rumble feature
on the DualShock 3 is non-standard, so it doesn't work. Most buttons are also
axes, which is a little annoying, but usually doesn't seem to cause problems.
D-pad is excellent, analog sticks are decent, and buttons are perfect, but
the trigger buttons are pretty crappy.
- Snakebyte Final Fantasy XIV controller: Standard USB HID. Rumble feature is
non-standard, so it doesn't work. As far as I know, the "Function" button
also doesn't work. D-pad is not very good, but analog sticks and buttons are
perfect.
- Logitech controllers: I've had two of these; one used only DirectInput, and
therefore didn't work with Linux, and one used either DirectInput or XInput
(controlled by a switch). Both of them were in general good controllers, but
they both stopped consistently holding a connection after a couple years. I
recommend staying away from Logitech controllers because of this experience.
- SNES controllers: The Mayflash SNES Controller Adapter is a standard USB
HID, and works perfectly. The Gtron adapter is also a standard USB HID, but
seems to be much lower quality, so I don't recommend it. I can't vouch for
any other similar adapters, since I have only used these two. One thing to
note, some SNES controllers made by Nintendo just don't seem to work with
these adapters, for some reason. This seems to be the fault of the
controllers, not the adapters.