I made a windows program that runs in the background and lets you re-map keys dynamically per application. It has a pop-up when you're holding a toggle key to show you what each key does.
This is the first binary being released with a GUI that displays what keys do. See the readme for details on how to configure the script to your liking.
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.
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.