Inspiration
I have two close friends that are left handed and one concedes to using their less accurate hand for mouse and keyboard games, causing them to constantly move the mouse back over, and the other is often unable to choose what to do. I thought it did not seem too difficult to allow them two different keyboard mappings to allow them to quickly input a shortcut that allows them to have certain keys remapped however they like and then be one shortcut away from being able to type normally.
What it does
Has two modes, one for the standard input and the other for the alternate input. After the user sets up their preferred shortcut and button remapping, they are able to swap their mapping at will while the program is running. It saves their mappings in a text file it generates in the same folder it is in and those mappings are able to be modified whenever the program is started up again.
How we built it
I asked Google Gemini to show me the microsoft documents about virtual keys and keyboard events and it also wrote basic code to set up the windows hooks for grabbing information. I used my prior knowledge as well as the documentation and Gemini's code to create the project in Visual Studio Code.
Challenges we ran into
I did not know much at all about keyboard mapping, nor making my own application or script that runs standalone as a project. I had to ask Gemini how to start a terminal project from scratch in Visual Studio Code because I had only made things in external applications or websites like Unity or Replit.
Accomplishments that we're proud of
I was able to successfully turn the scraps that I was given from AI into something that can actually rewrite inputs at my first hackathon and for my first outside of school/club work project.
What we learned
How to use Visual Studio Code for running an application and how to use keyboard inputs.
What's next for Keyboard Remapper
Future goals would be moving out of the terminal and having a functional UI that allows users to select and visually see the alternate keyboard profile, allowing the user to modify the profile without closing the application, offering multiple profiles, and finding a way to make it work on more than just windows.
Built With
- c#
- net10.0windows
Log in or sign up for Devpost to join the conversation.