#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; } }