Config file has a simple structure:

    * # This is a comment inside the configure file
    * option=value


but needs some value to be set.

    * Device ( hide / show )
      device represents the keyboard device. To found it:
          o $ ls -lh /dev/input/by-id/
          o lrwxrwxrwx 1 root root 10 8 mar 11:12 usb-062a_USB-compliant_keyboard-event-kbd -> ../event10
          o lrwxrwxrwx 1 root root 10 8 mar 11:12 usb-062a_USB-compliant_keyboard-event-mouse -> ../event11
          o lrwxrwxrwx 1 root root 9 8 mar 11:12 usb-062a_USB-compliant_keyboard-mouse -> ../mouse2
          o lrwxrwxrwx 1 root root 9 8 mar 11:12 usb-Acrox_USB___PS.2_Mouse-event-mouse -> ../event9
          o lrwxrwxrwx 1 root root 9 8 mar 11:12 usb-Acrox_USB___PS.2_Mouse-mouse -> ../mouse1

      and choose the appropriate device.
    * Udevice ( hide / show )
      udevice represents the path to udevice (you have to 'modprobe uinput' module).
      Usually udevice is /dev/uinput or /dev/input/uinput
    * Dump ( hide / show )
      dump is a flag and can be setted to 0 or 1.
      It's used when you have to reconfigure keymappings and you dont know the code of keys
    * Max accel ( hide / show )
      max accel is the max accel limit for the pointer while moving.
    * Max modes ( hide / show )
      max modes is the mode keys limit (max value = 8 usually setted to the number of modes)
    * Touchscreen ( hide / show )
      touchscreen is the boolen to enable touchscreen emulation
      (value = 1 enables touchscreen/touchpad emulation. Default value 0.)
      In touchscreen mode, coordinate changes are given in absolute coordinates (limited between 0 and touchscreen_max_x and touchscreen_max_y values)(relative changes in traditional mouse emulation), and while key is pressed down also the pressure/force indication is also sent (ie so sw can detect that emulated finger touches the screen by listening ABS_PRESSURE or BTN_TOUCH events).
    * Touchscreen_autorepeat ( hide / show )
      touchscreen_autorepeat is the boolen to enable touchscreen repeat events
      (value = 1 enables repeat features. Default value 0.)
      This option is usefull on keyboards that don't send repeat events while key is pressed down (hardwares like N810 only sends keydown and keyup events and no repeats). With keyboard that sends autorepeats this can be disabled, but if you enable this your mouse will just move quite much faster than normally, since repeats are effectively doubled since driver will get repeats from duplicate places. Ofcourse if you want you mouse to move _very_ fast then this is a good thing. Speed of the events can be tuned with touchscreen_autorepeat_rate value.
    * Touchscreen_autorepeat_rate ( hide / show )
      touchscreen_autorepeat_rate is the integer to tune the delay between autorepeat events (time.usec) (value = 600 use as N810 example rate. Default value 0.)
      By increasing the microseconds value, driver will send repeat events in slower rate. (this will tune ::select()-function timeout).
    * Touchscreen_max_x ( hide / show )
      touchscreen_max_x is the integer for max value for x-coordinate
      (value = 800 use as N810 example. Default value 10.)
    * Touchscreen_max_y ( hide / show )
      touchscreen_max_y is the integer for max value for y-coordinate
      (value = 480 use as N810 example. Default value 10.)
    * Notify ( hide / show )
      notify how keymouse notifies you of locking mode
          o set it to 0 for no notify
          o set it to 1 to have a led notify (block num blinks 2 times)
          o set it to 2 to exec a command (see also notify exec)
    * Notify exec ( hide / show )
      notify exec is the program you would to exec for notify
    * Modes ( hide / show )
      modes is a string in the form of int,int...,int representing the mod keys in order
      Default is 29,42,56,125,464 => ctrl,shift,alt,apple,function (iBook G3 keyboard)
    * Bkeys ( hide / show )
      bkeys is a string in the form of int,int...,int representing extra buttons that can not fit in modes but are the final part of the a keysequence
      Default is 97,54,100,126 => f+ctrl,f+shift,f+alt,f+apple
    * Actions ( hide / show )

      valid actions and default values:
          o up=42:0:
          o down=29:1:
          o right=56:0:
          o left=29:2:
          o rup=42:3:
          o rdown=125:1:
          o lup=42:2:
          o ldown=56:1:
          o click=97:4:
          o rclick=126:4:
          o 3click=100:4:
          o lock=54:4:

      an action is represented as a key sequence.
      In the config file by a string in the form of:
      action_name=discriminant code:index: .. : (with the final ':')

      where discrimant code is the last keycode of the sequence
      and index:index:index: say to keymouse to check if mods are pressed.

      For example i want to bind CTRL + SHIFT to move up my cursor.
      We set dump option in keymouse.cfg to see the keycode of ctrl and shift key (CTRL = 29, SHIFT = 42)

      Now we have to set modes and up action in config file:

      modes=29,42
      up=42:0:

      ok done. But if i want to use SHIFT + CTRL instead? simple :)

      up=29:1:

      See also keymouse.cfg.example (stored in /etc after the installation)
