/MouseTracks

Track and display mouse and keyboard information for different applications.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Mouse Tracks

Current Status: I've got a full time job, so development on this has slowed. My plan is to start fresh with a much cleaner code base, where it'll be a lot more stable and modular than the current version.

Track and display mouse movements/clicks over time. Old movements will get faded so it can be left running indefinitely.

This was made with the intention of recording mouse movements over multiple resolutions then merging them together. It is used by loading (and forgetting about) start_tracking.py, and using generate_images.py to create the images. All the calculations are done in a background process, so that the tracking part will be able to run constantly without any CPU heavy calculations interfering with it.

By default, the tracking area is limited to the application window, but with no application detected, all monitors will be used, and merged over each other.

Current Features:

  • Track position, clicks, key presses and gamepad usage over multiple resolutions and monitors
  • Generate colourful mouse tracks and a heatmap of clicks or key presses (for everything or just the latest session)
  • Generate an image sequence of the last few hours of use
  • Fade old mouse tracks to keep recent tracks more visible
  • Record and adjust resolution based on the currently focused window
  • Automatically keep separate tracks for different applications (defined in "AppList.txt")
  • Perodically update AppList.txt from the internet, keeping and sorting all the old values, and adding any new ones
  • Edit settings with a config file, or by using the web based API
  • Full Windows support
  • Some Linux support (WIP)
  • Some Mac support (WIP)

Example Output:

Colour Maps:
Chalk:
Citrus:
Demon:
Sunburst:
Ice:
Hazard:
Spiderman:
Sketch:
Lightning:
Razer:
BlackWidow:
Grape:
Neon:
Shroud:

Game Genres:
Twin Stick:
FPS:
RTS:
MOBA:

Requirements:

  • Python 2.7 or 3.6 (written and tested in 2.7, but support for 3.6)
  • Numpy
  • psutil
  • scipy (required to generate images)
  • Pillow (required to generate images)
  • Flask (optional - used for the API)
  • PyCrypto (optional - encrypt API messages)
  • pyglet - included in code

Requirements (Windows):

  • pywin32 (optional - used for the tray icon)
  • xinput (required for gamepad tracking in Windows) - included in code

Requirements (Linux) (WIP):

Requirements (Mac) (WIP):