SMICE
The Smart MICE. Oh, That's Smice!
This is a project for HackZurich 2020. This is a daemon that moves the cursor between monitors, depending on where the user is looking. This is achieved by processing the camera feed.
The more monitors you have, and the bigger their are, the more annoying it is to move your mouse around. We really believe that focus is key; the fewer the distractions, the better the outcome of any project. This includes small papercuts like having to locate your cursor, and performing the swipe-lift-swipe-lift-swipe mouse gesture to cover the distance between your monitors.
To ensure we would have a working prototype we decided to re-use as much off the shelf components as possible. Most of our time was spent looking for already built frameworks for eye-tracking, and trying them out. After a while we settled on Antoine Lame's GazeTracking. We developed a first prototype operating on a single monitor, split in the middle. Once that worked, we rushed home and brought in a second monitor.
The final result is not even 200 lines of Python code, and using it feels really magical. It's got rough edges, and we'd love to polish those, and extend the project to work across computers! Using a single mouse and keyboard for two, three computers; how cool is that?!
Building
Enter the nix-shell or make sure you have the following system packages installed:
- xorg (libSM, libXrender, libXext, libX11)
- libstdc++
- glib
- cmake
Follow the installation instructions for GazeTracking Follow the installation instructions for pyautogui
You're all set! Run python init.py
. See lines 11
and 15
of that file for
runtime options.
Log in or sign up for Devpost to join the conversation.