Defragmentation is one of those computer things that are obviously useful but hard for users to grasp. That hard to grasp part is constant stream of money for developers of numerous shareware defrag apps.
Basically defragmentation is a process of putting files on hard disk in order using built-in Windows functions made for this purpose. So defragmentation software is fancy interface with minor differences in logic and schemes used to defragment.
Server environment may require complex sorting and scheduling capabilities in defragmentation routines. Home user requires free program that he has to click once a week and it does everything. JkDefrag is exactly that.
JkDefrag comes as few executables that do same thing with different interface.
Launches defragmentation in console window. Good for scheduling and such but not interesting for home user.
Very same defragmentation but with nice visualization of process. It's like fire or water - you feel like you can watch files jumping around forever. :)
Same defragmentation (again) but in the form of Windows screensaver. I don't like this one much, launching defrag every time you are away from computer is overkill.
Update. Defrag via screensaver can be delayed in settings if done recently. Thanks Ky for info.
Where are buttons to press?
By default JkDefrag simply defragments all hard drives it sees. This behavior can be tuned with command line arguments (both command line and graphical version accept them). Figuring them out is boring so there are few 3rd party tools that make setup process easier. I use JkDefragStarter.
None. This is as good as software can be. Single function and perfect execution.
JkDefrag is freeware, open-source and portable.
Home&download page http://www.kessels.com/Jkdefrag/