This program does 2 things:
-
It adds a layer behind a “toggle key” that can be configured based on the active application.
-
It creates a pop-up to show what each key will do when the toggle is being held.
You can turn either of these features on/off with options in a config.json file.
This script currently only works on windows. This isn’t ideal but none of this code is “ideal”. It’s quick and dirty because it evolved from a much simpler script.
I think the program could be useful when learning new keyboard layers because it gives you a way to visually search for the keys on a layer. You can customize the layout of keys in the GUI with JSONs from the keyboard layout editor.
I use this script with a MMO gaming mouse so all the example layouts/keymaps are 12 keys long and the layout is just a 3*4 grid.
Let me know what you guys think. The code is rough but I enjoy the experience it delivers.
I’ve made something very close, which create a mapping following the window name (windows/xlib)
https://git.chimrod.com/smartcropad.git/about/
I’ve made it for circuit python, and it works with a serial connexion / JSON messages. (It could be updated with raw USB )
Not yet finished, but already used daily.
Yeah having the keys change for each program is so nice. I’ve had trouble building up configurations for all the programs I’m using and then learning those configs so I find the GUI really nice.
It’s awesome you made something cool. Does it essentially function as a keylogger though? If so, might be a good idea to give users an indication of that and how to stay safe (not from your application but just not becoming conformable installing keylogger type application without consideration). Thanks for making something cool and sharing!
There’s no logging of the keys being pressed. There are hooks installed on top of the keys configured to be re-mapped and the key used for toggling but these presses aren’t logged anywhere. All the configuration is stored in plain text though so you’ll want to be careful about what you put in there.
Thanks for the note. My error in saying key logger, should have said key capture. Good luck!