diff options
author | Callum Oakley <hello@callumoakley.net> | 2020-09-09 23:37:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-09 15:37:34 -0700 |
commit | 3d4f0028d60cebc829ac9c947d1a61cc840d05c0 (patch) | |
tree | cc54048f38bd75f62de4d2f396359b4fa31b2711 /users/callum/swapper.c | |
parent | 6e948feb6a33bcd1da45c5a590d0e6c241e1d879 (diff) |
[Keymap] major keymap overhaul (#10185)
* experiment with userspace
* reorganise
* readme
* missing oneshot shift from ignored keys
* recombine hands in layout macro
Diffstat (limited to 'users/callum/swapper.c')
-rw-r--r-- | users/callum/swapper.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/users/callum/swapper.c b/users/callum/swapper.c new file mode 100644 index 0000000000..736b2fef0c --- /dev/null +++ b/users/callum/swapper.c @@ -0,0 +1,27 @@ +#include "swapper.h" + +void update_swapper( + bool *active, + uint16_t cmdish, + uint16_t tabish, + uint16_t trigger, + uint16_t keycode, + keyrecord_t *record +) { + if (keycode == trigger) { + if (record->event.pressed) { + if (!*active) { + *active = true; + register_code(cmdish); + } + register_code(tabish); + } else { + unregister_code(tabish); + // Don't unregister cmdish until some other key is hit or released. + } + } else if (*active) { + unregister_code(cmdish); + *active = false; + } +} + |