Description
What do you want to change?
The way the Numpad plugin currently works, it checks if the numpad layer is active and that keys on the layer don't have any modifiers (key flags) applied to them. For the default layouts in the provided firmware builds this works, but for Chrysalis users who repurpose layer it's far from convenient. In order to improve user experience in Chrysalis, I see a few options:
- Store the numpad layer setting in EEPROM (allow setting a different layer as numpad layer through Chrysalis)
- Optionally allow specifying
-1
as value to disable the numpad plugin
- Optionally allow specifying
- Add an option (EEPROM and/or Focus) to disable the numpad plugin (instead of or in addition to checking if the numpad layer is active)
- Update the numpad plugin to only set the led color for keys on the keypad according to the HID mappings (
Key_Keypad*
)- Caveat is that the function of the keys is influenced by the state of numlock, which might be unexpected for users. Possibly the plugin can be extended to automatically enable/disable numlock when the numpad layer is (de)activated.
How will it make Kaleidoscope better?
It's not so much Kaleidoscope that would get better, but this would set the stage for improving user experience for Chrysalis users.
What trouble might users have in adapting to the new functionality?
In case of options 1 and 2, I don't see any trouble. Chrysalis users who use the numpad layer and plugin as is wouldn't notice any difference, as long as the default values are kept. Kaleidoscope users might have to update their sketch to match how the plugin parameters are set.
In case of option 3, users would have to update their keymap to use only keypad keys, where the factory sketches for both M01 and M100 use the number row keys and 'normal' enter rather than their keypad counterparts. As stated above, using the keymap variants of the numbers and dot would be affected by the numlock state, though it might be possible to enable/disable numlock through the plugin.
What trouble might developers have in adapting to the new functionality?
I don't think there would be any differences outside of the plugin itself, except for now the existing plugin parameters are set.