MouseTool is a program that clicks the mouse for you.

I designed it to help relieve the pain that clicking mouse buttons can cause.

For more information, see www.mousetool.com


How To Use MouseTool 

1 It's simple: MouseTool watches as you move the mouse. When you stop, it clicks.

2 Practice with this.  When you are comfortable with it, move on to Smart Drag.

3 When Smart Drag is enabled, MouseTool pauses after it clicks down.  If you
  move the mouse, it waits until you stop moving before it clicks up.
  This takes more practice, but if I can learn to do it without thinking, so can you.

4 KMouseTool 1.1 supports strokes.  When you enable strokes, a slow move to the
  right and back, followed by a pause, will generate a right-click.  A slow move
  left and back will generate a double click.  (Strokes are specified in
  ~/.kde3/share/config/kmousetool_strokes.txt.  This file is generated by KMouseTool
  the first time it is run, but can be modified afterwards.)

MouseTool Options:

* Checkboxes:
  Smart Drag         -- enables or disables Smart Drag.  Disabled is easier, so this is default.
  Audible Click      -- plays a sound when MouseTool clicks down.  This helps, especially
                        with Smart Drag, but as of version 0.8, the latency is too high.
                        By the time you hear the click, you're doing something else.
                        This will be fixed in the next version.
  Start with desktop session
                     -- When this is enabled, MouseTool will start each time the desktop session
                        starts.
  Enable Strokes     -- When this is enabled, you can generate right- or double-clicks 
                        using mouse strokes.

* Times
  Dwell Time         -- The time you have to pause before MouseTool clicks.
  Drag Time          -- (When Smart Drag is enabled) the time MouseTool waits, after it clicks
                        down, before it clicks back up if you don't move the mouse.
  Apply Times Button -- After changing either time, you must click this button.

* Start Button	     -- Starts MouseTool.  (Well, duh.)
                        When it says "stop", clicking it will stop MouseTool.  (Duh, again.)

* command line       -- MouseTool has no command line options.
                        It does remembers its state when it is restarted, though.

* Hotkeys            -- None yet (as of version 1.1).  They are very useful, though, and may be added.


Credit:

The idea for MouseTool came to me when I was thinking about head-tracking
systems that allow you to move a cursor using your head orientation, and then
send clicks when you pause.  As far as I know, I was the first person to use
this technique with an ordinary mouse, but it is quite possible that I am wrong
about that.  There are now other programs available for Windows and Macs that
do this; I know that some were developed after MouseTool, but it is likely
others came before.

If you know of another Linux- or Unix-based program that does this, please let
me know (at jeff@mousetool.com)

The clever idea for Smart Drag was suggested by Joe Betts.  Thanks, Joe!

Other ideas in MouseTool for Windows that I hope to port to KDE were either
suggested by MouseTool users or came out of email discussions with users.



Bugs and issues:
Emacs   - Smart Drag and Emacs menus don't mix well; the menus don't stay visible
          long enough to use.  XEmacs seems to work fine.  Gvim also works well.

Taskbar - When you drag the taskbar using Smart Drag in KDE 2.x, kmousetool won't release
          the drag.  This can be scary if you're not expecting it, but simply clicking 
          the mouse button manually fixes the problem.  KDE 3.x does not have this problem.

          This seems to be an issue with the internals of KDE or QT code, and similar
          things happen in Windows.  I haven't looked into it much under KDE, but on
	  Windows it happens when mousetool's timer stops while Windows waits for an
	  upclick, and the upclick never happens because the timer is stopped; 
	  I'm sure the same thing is happening under KDE.
