summaryrefslogtreecommitdiffstats
path: root/users/jarred/jarred.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/jarred/jarred.c')
-rw-r--r--users/jarred/jarred.c69
1 files changed, 67 insertions, 2 deletions
diff --git a/users/jarred/jarred.c b/users/jarred/jarred.c
index 33162b689..b37c4cfbb 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);
}