/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 now got a full time job, so development on this has slowed. Since I have improved a lot since starting this, it's looking like the best idea would be to restart the project, and design it in a way where it's a lot more modular, I can hook it into a GUI, and have more efficient loading/saving of data files. I also plan on creating a website to host the project.

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):