https://github.com/huntfx/mousetracks
Track and display mouse, keyboard and gamepad information for different applications.
https://github.com/huntfx/mousetracks
mouse-tracking python visualization
Last synced: about 1 year ago
JSON representation
Track and display mouse, keyboard and gamepad information for different applications.
- Host: GitHub
- URL: https://github.com/huntfx/mousetracks
- Owner: huntfx
- License: gpl-3.0
- Created: 2017-03-07T18:50:41.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2025-03-22T23:26:43.000Z (over 1 year ago)
- Last Synced: 2025-03-28T23:07:20.459Z (over 1 year ago)
- Topics: mouse-tracking, python, visualization
- Language: Python
- Homepage:
- Size: 4.73 MB
- Stars: 138
- Watchers: 10
- Forks: 23
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# MouseTracks
MouseTracks is an application designed to track and visualize mouse movements, clicks, keyboard activity, and gamepad inputs over time. It's designed to be unobtrusive, allowing you to leave it running indefinitely - even for years - and return later to render colourful visualisations of the data.

## Features
- ### Live Tracking:
Continuously monitors mouse movements and clicks, with older movements gradually fading out to maintain a clear view of recent activity.
Keyboard heatmaps and gamepad inputs are also supported.
- ### Live Preview
The GUI includes an optimised real-time preview of tracking data, combining thumbnail renders with live input.
- ### Image Rendering:
Renders are generated at full quality, regardless of resolution changes. Each input type is tracked independently and merged during the render process.
- Mouse and gamepad thumbsticks: Track maps and position heatmaps.
- Mouse clicks: Heatmaps.
- Key presses: Heatmap overlaid on a keyboard image.
- _(Gamepad button rendering is not yet supported.)_
- ### Colourful Renders:
Includes predefined and customizable color maps for all render types.
- ### Application Tracking:
Use separate tracking profiles when different applications (defined in `AppList.txt`) are detected.
_(New applications must be added manually.)_
- ### Multi-Monitor Support:
Tracks activity across multiple monitors. If linked to a specific application, the rendering bounds will automatically adjust to the application's window geometry.
- ### Unobtrusive:
Designed to run silently in the background. Closing the GUI will minimise it to the System Tray, which also reduces the processing overhead.
- ### Modular Design:
The application was designed with multiple components that communicate but run independenantly of each other, ensuring the live tracking remains fully stable, even during resource-intensive tasks like rendering or waiting on GUI operations.
- ### Stability
Will happily keep running for years without any issues.
---
## Installation (v2.0)
_Currently, only Windows is supported. Contributions for Linux or macOS support are welcome!_
### Prebuilt Executable
Launch `MouseTracks.exe` from anywhere. Recommended for ease of use.
Build it using [`build-pyinstaller.bat`](build-pyinstaller.bat), or download it from the releases (available with v2.0).
It's also possible to run [`build-nuitka.bat`](build-nuitka.bat), but unless you have a commercial license, it will be flagged by a lot of AV programs, so this is generally not recommended.
### Virtual Environment
Recommended if running the code locally.
1. Run `python -m venv .venv` to create the virtual environment with Python 3.11 or above.
2. Run `launch.bat`.
### Without a Virtual Environment
Run `launch.py`.
Ensure all modules in [requirements.txt](requirements.txt) are installed.
---
## Installation (v1.0 - Deprecated)
_The v1.0 version is no longer supported, but the launch process has been updated to bring it in line with v2.0._
You will be prompted with a choice to start tracking or generate images. This can be skipped by passing the `--start-tracking` or `--generate-images` flags.
### Virtual Environment
Recommended if running the code locally.
1. Run `python -m venv .venv-legacy` to create the virtual environment with any version of Python.
2. Run `launch-legacy.bat`.
### Without a Virtual Environment
Run `launch-legacy.py`.
Ensure all modules in [requirements-legacy.txt](requirements-legacy.txt) are installed.
---
## Example Output

### Colour Maps
#### Chalk

#### Citrus

#### Demon

#### Sunburst

#### Ice

#### Hazard

#### Spiderman

#### Graffiti

#### Lightning

#### Razer

#### BlackWidow

#### Grape

#### Neon

#### Shroud

## Game Genres
#### Twin Stick

#### FPS

#### RTS

#### MOBA

## Icon
I didn't have any plan of what it might look like, so I gave a vague prompt to Copilot to see what would happen.
> Can you generate me an icon for my mousetracks app? It records clicks, cursor movement, keyboard presses, gamepad data, etc.

This was the first result, my partner loved it and I think it captures the essence of the application really well.