JKDefrag has a screensaver that will run JKDefrag when the screensaver kicks in. If that's enough idle detection for you, there you go. If not, I don't think that there's anything you can do with JKDefrag that wouldn't require another idle-detecting utility.
_________________________
Bitt Faulk