diff options
author | Jarred Steenvoorden <[email protected]> | 2019-03-11 04:00:55 +1100 |
---|---|---|
committer | MechMerlin <[email protected]> | 2019-03-10 10:00:55 -0700 |
commit | ff95c60e464256261777f3a5b159f121fa5d655d (patch) | |
tree | eb705bcf18221146c3509c26c64ecdb7d47c875c /users/jarred/jarred.c | |
parent | 9d915ed051c43edd828d6cdb784a5d094e9b312d (diff) | |
download | qmk_firmware-ff95c60e464256261777f3a5b159f121fa5d655d.tar.gz qmk_firmware-ff95c60e464256261777f3a5b159f121fa5d655d.zip |
Keymap / userspace update (#5358)
* Update userspace with common config.h
* Add my dz60, satan and xd75 keyboard keymaps
* Fixing executable bits changed during last upstream merge
* Cleanup unnecessary files and defines
* Remove unnecessary defines from userspace config
* Add underglow controls to dz60 function layer
* Fixing merge conflicts
* Fixing exectable bits changed during merge
* Userspace update
Diffstat (limited to 'users/jarred/jarred.c')
-rw-r--r-- | users/jarred/jarred.c | 69 |
1 files changed, 67 insertions, 2 deletions
diff --git a/users/jarred/jarred.c b/users/jarred/jarred.c index 33162b6891..b37c4cfbb7 100644 --- a/users/jarred/jarred.c +++ b/users/jarred/jarred.c @@ -17,16 +17,81 @@ #include "jarred.h" #include "version.h" +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool lowerPressed, raisePressed; + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case LOWER: + case RAISE: + // Both lower and raise activate the same layer + if (record->event.pressed) { + layer_on(_LW); + } else { + layer_off(_LW); + } + + // But keep track of each to active adjust layer + if (keycode == LOWER) { + lowerPressed = record->event.pressed; + } else { + raisePressed = record->event.pressed; + } + + // When both are pressed, activate adjust + if (lowerPressed && raisePressed) { + layer_on(_NP); + } else { + layer_off(_NP); + } + + break; + + case NUMPAD: + if (record->event.pressed) { + layer_on(_NP); + } else { + layer_off(_NP); + } + break; + + case NAVI: + if (record->event.pressed) { + layer_on(_NV); + } else { + layer_off(_NV); + + // Release mods set by ALT_TAB and CTL_TAB + unregister_code(KC_LALT); + unregister_code(KC_LCTL); + } + break; + case VRSN: // Prints firmware version if (record->event.pressed) { send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), MACRO_TIMER); } - return false; + break; + + case ALT_TAB: + if (record->event.pressed) { + register_code(KC_LALT); + tap_code(KC_TAB); + } + break; + + case CTL_TAB: + if (record->event.pressed) { + register_code(KC_LCTL); + tap_code(KC_TAB); + } break; } - return true; + return process_record_keymap(keycode, record); } |