Look for "user" libraries in the folder "libraries" that is a sibling of sketch folder. That is, if the current sketch is ~/arduino/robot/robot.pde, look in ~/arduino/libraries for libraries. So, #include "pid.h" will find pid.h in ~/arduino/libraries/pid/pid.h. It's a pain when I copy my sketches and libraries from machine to machine, or try to give them to friends or classes, that I have to install them into /hardware/libraries. It's an easy change. If given the "go-ahead" I'd be glad to do it myself.
Libary path. Add a property for library path, so I can have libraries somewhere besides /hardware/libraries. It's an easy change. If given the "go-ahead" I'd be glad to do it myself.
There was some discussion of similar ideas (some kind of path for user libraries) on the developers list, with lots of people supporting the idea.
For better or worse, lots of the IDE ideas are adopted from the Processing IDE, so Arduino shares all the same bugs and quirks (except with a time lag). I think Processing has adopted a system that addresses user libraries so we'll probably see some action on this eventually.
I think a search path in the prefs file makes lots of sense though and seems like it would be easy to implement.
It would be very simple. Change LibraryManager's "private File libDir" to "private File[] libDirs". Then in refreshLibraries walk all the libDirs rather than the single libDir.
I'd like to match the behavior of recent Processing versions. I believe it works like this. The IDE should look for libraries in the libraries/ sub-directory of the user's sketchbook directory (which may or may not be a sibling of the current sketch folder). That's probably an easy first improvement. Also, Processing allows you (I think) to place libraries in the code/ sub-directory of an individual sketch. It would be good to allow that too. (My descriptions might be wrong; I'd like to match the actual behavior of Processing.)
It would be great if you wanted to implement these. Please send patches to the developers mailing list.