Releases: 1j01/tracky-mouse
Releases · 1j01/tracky-mouse
v1.2.0
Deprecated
TrackyMouse.cleanupDwellClicking()
is deprecated in favor of callingdispose()
on the object returned byTrackyMouse.initDwellClicking()
.
Changed
- The Tracky Mouse UI no longer includes a stats.js performance monitor by default. You can still enable it by passing
{statsJs: true}
toTrackyMouse.init()
and, if needed, also toTrackyMouse.loadDependencies()
.
Added
TrackyMouse.init()
now returns an object with adispose()
method, which you can call to stop head tracking and remove the UI.- The object returned by
TrackyMouse.initDwellClicking()
now has adispose()
method as well, which you can use instead ofTrackyMouse.cleanupDwellClicking()
.
Fixed
TrackyMouse.cleanupDwellClicking()
now handles multiple dwell clickers, not that I know of any use case for that.
v1.1.0
Added
- Start/stop button. This toggles head tracking, and, in the desktop app, dwell clicking as well. In the web library, dwell clicking is set up separately, and is not currently controlled by this button (or the keyboard shortcut F9).
- Desktop app now supports dwell clicking. This means you can use Tracky Mouse with lots of software not designed with head tracking in mind. I just played a game of Mahjongg, and it worked well.
- Settings are now persisted, both in the desktop app and in the browser.
- Desktop app includes menu items for exporting and importing settings.
- Desktop app now remembers the window size and position.
- Desktop app lets you regain manual control by simply moving the mouse, pausing temporarily, and resuming when you stop moving the mouse.
- Friendly error handling for different camera access failure scenarios.
- Command line interface to control the desktop app, supporting
--start
and--stop
to toggle head tracking. - API documentation.
- Website at TrackyMouse.js.org.
- Parameter validation.
tracky-mouse.js
includes a CommonJS export, untested. I'm only testing script tag usage. I hope to switch to ES modules soon.beforeDispatch()
/afterDispatch()
callbacks for detecting untrusted gestures, outside of an event where you could useevent.isTrusted
.beforePointerDownDispatch()
/afterReleaseDrag()
callbacks for JS Paint to replace accessing globalpointers
array.initDwellClicking
returns an object{paused}
which lets you pause and resume dwell clicking.
Fixed
- Function
average_points
was missing. It existed in JS Paint, the only place I had tested the library, since I was extracting the code from JS Paint. - Similarly, styles for the dwell click indicator and hover halo were missing or not applying. (Since they were provided by CSS in JS Paint, I didn't notice, in my rushed testing.)
- The JS assumed the existence of a global
pointer_active
from JS Paint. This has been replaced withconfig.isHeld()
. - Missing
facemesh.worker.js
file. - "Mirror" checkbox was too easy to accidentally click due to a large
<label>
(which acts as a hit region).
Changed
- The software now starts disabled (by default), to avoid clicking on things before you're ready. This is especially important for the desktop app. The installer on Windows actually installs and launches the app without any interaction, so it would be very surprising if it started clicking right away.
- The webcam view now shrinks to fit the window.
- Sliders now have labels for their min and max values, and are widened to make it easier to click precisely.
- Controls are themed purple.
- All CSS classes are now prefixed with
tracky-mouse-
. shouldDrag
,noCenter
,retarget
,isEquivalentTarget
, anddwellClickEvenIfPaused
are now optional forinitDwellClicking
.- You must include a new script
no-eval.js
if you are including Tracky Mouse's dependencies manually. If you are usingloadDependencies()
, it is included automatically. - Tracky Mouse no longer requires
unsafe-eval
in the Content Security Policy! This is great, because now I can feel better about usage in Electron, both for the Tracky Mouse desktop app and for JS Paint. - Globals used by the Electron app (
moveMouse
,onShortcut
, etc.) are now namespaced underwindow.electronAPI
. FormoveMouse
, useTrackyMouse.onPointerMove
instead. - Will no longer set global
pointers
to an empty array before dispatchingpointerdown
or after releasing a drag. Replaced withconfig.beforePointerDownDispatch()
andconfig.afterReleaseDrag()