Senior Project Final Release v1.0.2
KeyFlare is a useful tool that enables users to interactively control their mouse using their keyboard. KeyFlare can provide an expanded user experience for those who prefer to use a keyboard over a mouse. Showcases available on week 6 of my project (old showcases available on week 2 and 3) of my senior project page. Please fill out the survey
Features
- Intuitive keyboard-based mouse control: KeyFlare shows a list of coordinates representing UI elements on your screen that you can click on by typing the unique alphabetical identifier for a coordinate of interest.
- Improved hotkeys: Initating KeyFlare with Left Alt+A combination will click the screen once at the end while the right Alt+A combination will click the screen twice.
- Inputs arguments let you define the number of clicks when run from terminal
- Customizable user experience: A preferences window allows users to change the background color, exit the application, or exit just the current process by pressing any key.
- Enhanced image segmentation algorithm that optimizes speed and usability.
Installation
For Mainly Developers
This project is a research project, so installed binaries are not available. Please check out the final presentation for an explanation on slide 11.
- Use git clone https://github.com/Pshah2023/keyflare.git to install the source code. Preferably do not use the source code below and install the latest version with
git
. - Run in terminal
bash keyflare/run.sh install
to download prerequisite python libraries and run the project.
The install script simply sources a .venv
python virtual environment and installs all pip packages from the requirements.txt
, however sometimes this pip packages will require other packages. (At most, the entire installation requires 500 mb). Here is a brief list of requirements that I can think of for Ubuntu. If there is an issue, please raise it in this repositories' GitHub issues.
- Requirements: git, any python (note: the link points to python 3.10.6), pyautogui (pyautogui is pip package, and the install script automatically and only installs all pip libraries used, so it may additional dependencies on linux, such as
scrot
and more), and possibly more for macOS (which I do not have access to at the moment)...