diff options
Diffstat (limited to 'keyboards/viterbi/keymaps/dwallace/keymap.c')
| -rw-r--r-- | keyboards/viterbi/keymaps/dwallace/keymap.c | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/keyboards/viterbi/keymaps/dwallace/keymap.c b/keyboards/viterbi/keymaps/dwallace/keymap.c new file mode 100644 index 000000000..c884c8a37 --- /dev/null +++ b/keyboards/viterbi/keymaps/dwallace/keymap.c | |||
| @@ -0,0 +1,83 @@ | |||
| 1 | #include "viterbi.h" | ||
| 2 | #include "action_layer.h" | ||
| 3 | #include "eeconfig.h" | ||
| 4 | |||
| 5 | extern keymap_config_t keymap_config; | ||
| 6 | |||
| 7 | #define _QWERTY 0 | ||
| 8 | #define _FN 1 | ||
| 9 | |||
| 10 | enum custom_keycodes { | ||
| 11 | QWERTY = SAFE_RANGE, | ||
| 12 | FN, | ||
| 13 | }; | ||
| 14 | |||
| 15 | #define KC_ KC_TRNS | ||
| 16 | #define _______ KC_TRNS | ||
| 17 | |||
| 18 | #define KC_SWIN LGUI(KC_TILD) // Switch between windows | ||
| 19 | #define KC_SAPP LGUI(KC_TAB) // Switch between applications | ||
| 20 | #define KC_FN1 MO(_FN) | ||
| 21 | #define KC_LCAG LCAG(KC_NO) | ||
| 22 | #define KC_RVAD RGB_VAD | ||
| 23 | #define KC_RVAI RGB_VAI | ||
| 24 | #define KC_CLRM KC_NO // TODO: Clear sticky modifiers | ||
| 25 | #define KC_RST RESET | ||
| 26 | |||
| 27 | // TODO: Make modifiers sticky | ||
| 28 | |||
| 29 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 30 | |||
| 31 | [_QWERTY] = KC_KEYMAP( | ||
| 32 | //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | ||
| 33 | GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,BSPC, | ||
| 34 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 35 | TAB , Q , W , E , R , T ,LBRC, Y , U , I , O , P ,BSLS,PGUP, | ||
| 36 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 37 | ESC , A , S , D , F , G ,RBRC, H , J , K , L ,SCLN,QUOT,ENT , | ||
| 38 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 39 | LSFT, Z , X , C , V , B ,SWIN, N , M ,COMM,DOT , UP ,SLSH,RSFT, | ||
| 40 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 41 | LCTL,LCAG,LALT,LGUI,SPC ,CLRM,SAPP, FN1 ,SPC ,RGUI,LEFT,DOWN,RGHT,PGDN | ||
| 42 | //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' | ||
| 43 | ), | ||
| 44 | |||
| 45 | [_FN] = KC_KEYMAP( | ||
| 46 | //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----. | ||
| 47 | , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 , , | ||
| 48 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 49 | , , , ,RST , , , , , , , , , , | ||
| 50 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 51 | , , , , , , , , ,RVAD,RVAI, , , , | ||
| 52 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 53 | , , , , , , , ,MUTE,VOLD,VOLU, , , , | ||
| 54 | //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----| | ||
| 55 | , , , , , , , , , , , , , | ||
| 56 | //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----' | ||
| 57 | ) | ||
| 58 | |||
| 59 | }; | ||
| 60 | |||
| 61 | #ifdef AUDIO_ENABLE | ||
| 62 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); | ||
| 63 | #endif | ||
| 64 | |||
| 65 | void persistent_default_layer_set(uint16_t default_layer) { | ||
| 66 | eeconfig_update_default_layer(default_layer); | ||
| 67 | default_layer_set(default_layer); | ||
| 68 | } | ||
| 69 | |||
| 70 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 71 | switch (keycode) { | ||
| 72 | case QWERTY: | ||
| 73 | if (record->event.pressed) { | ||
| 74 | #ifdef AUDIO_ENABLE | ||
| 75 | PLAY_NOTE_ARRAY(tone_qwerty, false, 0); | ||
| 76 | #endif | ||
| 77 | persistent_default_layer_set(1UL<<_QWERTY); | ||
| 78 | } | ||
| 79 | return false; | ||
| 80 | break; | ||
| 81 | } | ||
| 82 | return true; | ||
| 83 | } | ||
