diff options
| -rw-r--r-- | keyboard/atomic/keymaps/pvc/keymap.c | 28 | ||||
| -rw-r--r-- | keyboard/planck/keymaps/pvc/config.h | 88 | ||||
| -rw-r--r-- | keyboard/planck/keymaps/pvc/keymap.c | 536 | ||||
| -rw-r--r-- | keyboard/planck/keymaps/pvc/makefile.mk | 16 | ||||
| -rw-r--r-- | keyboard/planck/keymaps/pvc_planck.c | 179 |
5 files changed, 658 insertions, 189 deletions
diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 28aa2c359..e17c41e23 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c | |||
| @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 92 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| | 92 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| |
| 93 | * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | | 93 | * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | |
| 94 | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| | 94 | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| |
| 95 | * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | | 95 | * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | |
| 96 | * '--------------------------------------------------------------------------------------------------------------------------------------' | 96 | * '--------------------------------------------------------------------------------------------------------------------------------------' |
| 97 | */ | 97 | */ |
| 98 | 98 | ||
| @@ -101,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 101 | { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, | 101 | { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, |
| 102 | { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, | 102 | { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, |
| 103 | { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, | 103 | { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, |
| 104 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, | 104 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, |
| 105 | }, | 105 | }, |
| 106 | 106 | ||
| 107 | /* COLEMAK | 107 | /* COLEMAK |
| @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 114 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| | 114 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| |
| 115 | * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | | 115 | * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | |
| 116 | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| | 116 | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| |
| 117 | * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | | 117 | * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | |
| 118 | * '--------------------------------------------------------------------------------------------------------------------------------------' | 118 | * '--------------------------------------------------------------------------------------------------------------------------------------' |
| 119 | */ | 119 | */ |
| 120 | 120 | ||
| @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 123 | { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, | 123 | { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, |
| 124 | { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, | 124 | { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, |
| 125 | { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, | 125 | { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, |
| 126 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, | 126 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, |
| 127 | }, | 127 | }, |
| 128 | 128 | ||
| 129 | /* DVORAK | 129 | /* DVORAK |
| @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 136 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| | 136 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| |
| 137 | * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | | 137 | * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | |
| 138 | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| | 138 | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| |
| 139 | * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | | 139 | * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | |
| 140 | * '--------------------------------------------------------------------------------------------------------------------------------------' | 140 | * '--------------------------------------------------------------------------------------------------------------------------------------' |
| 141 | */ | 141 | */ |
| 142 | 142 | ||
| @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 145 | { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL }, | 145 | { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL }, |
| 146 | { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP }, | 146 | { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP }, |
| 147 | { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, | 147 | { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, |
| 148 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, | 148 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, |
| 149 | }, | 149 | }, |
| 150 | 150 | ||
| 151 | 151 | ||
| @@ -255,7 +255,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 255 | if (record->event.pressed) | 255 | if (record->event.pressed) |
| 256 | { | 256 | { |
| 257 | persistant_default_layer_set(1UL<<LAYER_QWERTY); | 257 | persistant_default_layer_set(1UL<<LAYER_QWERTY); |
| 258 | PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); | 258 | #ifdef AUDIO_ENABLE |
| 259 | PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); | ||
| 260 | #endif /* AUDIO_ENABLE */ | ||
| 259 | } | 261 | } |
| 260 | break; | 262 | break; |
| 261 | 263 | ||
| @@ -263,7 +265,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 263 | if (record->event.pressed) | 265 | if (record->event.pressed) |
| 264 | { | 266 | { |
| 265 | persistant_default_layer_set(1UL<<LAYER_COLEMAK); | 267 | persistant_default_layer_set(1UL<<LAYER_COLEMAK); |
| 266 | PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); | 268 | #ifdef AUDIO_ENABLE |
| 269 | PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); | ||
| 270 | #endif /* AUDIO_ENABLE */ | ||
| 267 | } | 271 | } |
| 268 | break; | 272 | break; |
| 269 | 273 | ||
| @@ -271,11 +275,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 271 | if (record->event.pressed) | 275 | if (record->event.pressed) |
| 272 | { | 276 | { |
| 273 | persistant_default_layer_set(1UL<<LAYER_DVORAK); | 277 | persistant_default_layer_set(1UL<<LAYER_DVORAK); |
| 274 | PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); | 278 | #ifdef AUDIO_ENABLE |
| 279 | PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); | ||
| 280 | #endif /* AUDIO_ENABLE */ | ||
| 275 | } | 281 | } |
| 276 | break; | 282 | break; |
| 277 | 283 | ||
| 278 | |||
| 279 | case MACRO_LOWER: | 284 | case MACRO_LOWER: |
| 280 | if (record->event.pressed) | 285 | if (record->event.pressed) |
| 281 | { | 286 | { |
| @@ -324,6 +329,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 324 | 329 | ||
| 325 | #endif /* MOUSEKEY_ENABLE */ | 330 | #endif /* MOUSEKEY_ENABLE */ |
| 326 | 331 | ||
| 332 | #ifdef AUDIO_ENABLE | ||
| 327 | 333 | ||
| 328 | case MACRO_TIMBRE_1: | 334 | case MACRO_TIMBRE_1: |
| 329 | if (record->event.pressed) set_timbre(TIMBRE_12); | 335 | if (record->event.pressed) set_timbre(TIMBRE_12); |
| @@ -416,6 +422,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 416 | } | 422 | } |
| 417 | break; | 423 | break; |
| 418 | 424 | ||
| 425 | #endif /* AUDIO_ENABLE */ | ||
| 426 | |||
| 419 | default: | 427 | default: |
| 420 | break; | 428 | break; |
| 421 | 429 | ||
diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h new file mode 100644 index 000000000..7d64f0977 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/config.h | |||
| @@ -0,0 +1,88 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2012 Jun Wako <wakojun@gmail.com> | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #ifndef CONFIG_H | ||
| 19 | #define CONFIG_H | ||
| 20 | |||
| 21 | #include "config_common.h" | ||
| 22 | |||
| 23 | /* USB Device descriptor parameter */ | ||
| 24 | #define VENDOR_ID 0xFEED | ||
| 25 | #define PRODUCT_ID 0x6060 | ||
| 26 | #define DEVICE_VER 0x0001 | ||
| 27 | #define MANUFACTURER Ortholinear Keyboards | ||
| 28 | #define PRODUCT The Planck Keyboard | ||
| 29 | #define DESCRIPTION A compact ortholinear keyboard | ||
| 30 | |||
| 31 | /* key matrix size */ | ||
| 32 | #define MATRIX_ROWS 4 | ||
| 33 | #define MATRIX_COLS 12 | ||
| 34 | |||
| 35 | /* Planck PCB default pin-out */ | ||
| 36 | #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } | ||
| 37 | #define ROWS (int []){ D0, D5, B5, B6 } | ||
| 38 | |||
| 39 | /* COL2ROW or ROW2COL */ | ||
| 40 | #define DIODE_DIRECTION COL2ROW | ||
| 41 | |||
| 42 | /* define if matrix has ghost */ | ||
| 43 | //#define MATRIX_HAS_GHOST | ||
| 44 | |||
| 45 | /* number of backlight levels */ | ||
| 46 | #define BACKLIGHT_LEVELS 3 | ||
| 47 | |||
| 48 | /* Set 0 if debouncing isn't needed */ | ||
| 49 | #define DEBOUNCE 5 | ||
| 50 | |||
| 51 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 52 | #define LOCKING_SUPPORT_ENABLE | ||
| 53 | /* Locking resynchronize hack */ | ||
| 54 | #define LOCKING_RESYNC_ENABLE | ||
| 55 | |||
| 56 | /* key combination for command */ | ||
| 57 | #define IS_COMMAND() ( \ | ||
| 58 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
| 59 | ) | ||
| 60 | |||
| 61 | /* ws2812 RGB LED */ | ||
| 62 | #define ws2812_PORTREG PORTD | ||
| 63 | #define ws2812_DDRREG DDRD | ||
| 64 | #define ws2812_pin PD1 | ||
| 65 | #define RGBLED_NUM 28 // Number of LEDs | ||
| 66 | #define RGBLIGHT_HUE_STEP 10 | ||
| 67 | #define RGBLIGHT_SAT_STEP 17 | ||
| 68 | #define RGBLIGHT_VAL_STEP 17 | ||
| 69 | |||
| 70 | /* | ||
| 71 | * Feature disable options | ||
| 72 | * These options are also useful to firmware size reduction. | ||
| 73 | */ | ||
| 74 | |||
| 75 | /* disable debug print */ | ||
| 76 | //#define NO_DEBUG | ||
| 77 | |||
| 78 | /* disable print */ | ||
| 79 | //#define NO_PRINT | ||
| 80 | |||
| 81 | /* disable action features */ | ||
| 82 | //#define NO_ACTION_LAYER | ||
| 83 | //#define NO_ACTION_TAPPING | ||
| 84 | //#define NO_ACTION_ONESHOT | ||
| 85 | //#define NO_ACTION_MACRO | ||
| 86 | //#define NO_ACTION_FUNCTION | ||
| 87 | |||
| 88 | #endif | ||
diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c new file mode 100644 index 000000000..27850b215 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/keymap.c | |||
| @@ -0,0 +1,536 @@ | |||
| 1 | #include "planck.h" | ||
| 2 | #include "action_layer.h" | ||
| 3 | #include "eeconfig.h" | ||
| 4 | #include "led.h" | ||
| 5 | |||
| 6 | #ifdef AUDIO_ENABLE | ||
| 7 | #include "audio.h" | ||
| 8 | #include "song_list.h" | ||
| 9 | #endif | ||
| 10 | |||
| 11 | #define LAYER_QWERTY 0 | ||
| 12 | #define LAYER_COLEMAK 1 | ||
| 13 | #define LAYER_DVORAK 2 | ||
| 14 | #define LAYER_LOWER 3 | ||
| 15 | #define LAYER_RAISE 4 | ||
| 16 | #define LAYER_FUNCTION 5 | ||
| 17 | #define LAYER_MOUSE 6 | ||
| 18 | #define LAYER_MUSIC 7 | ||
| 19 | #define LAYER_ADJUST 8 | ||
| 20 | |||
| 21 | #define MACRO_QWERTY 0 | ||
| 22 | #define MACRO_COLEMAK 1 | ||
| 23 | #define MACRO_DVORAK 2 | ||
| 24 | #define MACRO_LOWER 3 | ||
| 25 | #define MACRO_RAISE 4 | ||
| 26 | #define MACRO_FUNCTION 5 | ||
| 27 | #define MACRO_MOUSE 6 | ||
| 28 | #define MACRO_TIMBRE_1 7 | ||
| 29 | #define MACRO_TIMBRE_2 8 | ||
| 30 | #define MACRO_TIMBRE_3 9 | ||
| 31 | #define MACRO_TIMBRE_4 10 | ||
| 32 | #define MACRO_TEMPO_U 11 | ||
| 33 | #define MACRO_TEMPO_D 12 | ||
| 34 | #define MACRO_TONE_DEFAULT 13 | ||
| 35 | #define MACRO_MUSIC_ON 14 | ||
| 36 | #define MACRO_MUSIC_OFF 15 | ||
| 37 | #define MACRO_AUDIO_ON 16 | ||
| 38 | #define MACRO_AUDIO_OFF 17 | ||
| 39 | #define MACRO_INC_VOICE 18 | ||
| 40 | #define MACRO_DEC_VOICE 19 | ||
| 41 | |||
| 42 | #define M_QWRTY M(MACRO_QWERTY) | ||
| 43 | #define M_COLMK M(MACRO_COLEMAK) | ||
| 44 | #define M_DVORK M(MACRO_DVORAK) | ||
| 45 | #define M_LOWER M(MACRO_LOWER) | ||
| 46 | #define M_RAISE M(MACRO_RAISE) | ||
| 47 | #define M_FUNCT M(MACRO_FUNCTION) | ||
| 48 | #define M_MOUSE M(MACRO_MOUSE) | ||
| 49 | #define TIMBR_1 M(MACRO_TIMBRE_1) | ||
| 50 | #define TIMBR_2 M(MACRO_TIMBRE_2) | ||
| 51 | #define TIMBR_3 M(MACRO_TIMBRE_3) | ||
| 52 | #define TIMBR_4 M(MACRO_TIMBRE_4) | ||
| 53 | #define TMPO_UP M(MACRO_TEMPO_U) | ||
| 54 | #define TMPO_DN M(MACRO_TEMPO_D) | ||
| 55 | #define TMPO_DF M(MACRO_TONE_DEFAULT) | ||
| 56 | |||
| 57 | |||
| 58 | #define MUS_ON M(MACRO_MUSIC_ON) | ||
| 59 | #define MUS_OFF M(MACRO_MUSIC_OFF) | ||
| 60 | #define AUD_OFF M(MACRO_AUDIO_OFF) | ||
| 61 | #define AUD_ON M(MACRO_AUDIO_ON) | ||
| 62 | #define VC_UP M(MACRO_INC_VOICE) | ||
| 63 | #define VC_DOWN M(MACRO_DEC_VOICE) | ||
| 64 | |||
| 65 | |||
| 66 | #define SC_UNDO LCTL(KC_Z) | ||
| 67 | #define SC_REDO LCTL(KC_Y) | ||
| 68 | #define SC_CUT LCTL(KC_X) | ||
| 69 | #define SC_COPY LCTL(KC_C) | ||
| 70 | #define SC_PSTE LCTL(KC_V) | ||
| 71 | #define SC_SELA LCTL(KC_A) | ||
| 72 | #define SC_SAVE LCTL(KC_S) | ||
| 73 | #define SC_OPEN LCTL(KC_O) | ||
| 74 | #define SC_ACLS LALT(KC_F4) | ||
| 75 | #define SC_CCLS LCTL(KC_F4) | ||
| 76 | |||
| 77 | |||
| 78 | #define _______ KC_TRNS | ||
| 79 | #define XXXXXXX KC_NO | ||
| 80 | #define ________________ _______, _______ | ||
| 81 | #define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX | ||
| 82 | |||
| 83 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 84 | |||
| 85 | /* QWERTY | ||
| 86 | * .-----------------------------------------------------------------------------------------------------------. | ||
| 87 | * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | | ||
| 88 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 89 | * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 90 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 91 | * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | ENTER | | ||
| 92 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 93 | * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | | ||
| 94 | * '-----------------------------------------------------------------------------------------------------------' | ||
| 95 | */ | ||
| 96 | |||
| 97 | [LAYER_QWERTY] = { /* QWERTY */ | ||
| 98 | { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, | ||
| 99 | { KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, | ||
| 100 | { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | ||
| 101 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, | ||
| 102 | }, | ||
| 103 | |||
| 104 | /* COLEMAK | ||
| 105 | * .-----------------------------------------------------------------------------------------------------------. | ||
| 106 | * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC | | ||
| 107 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 108 | * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | | ||
| 109 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 110 | * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | ENTER | | ||
| 111 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 112 | * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | | ||
| 113 | * '-----------------------------------------------------------------------------------------------------------' | ||
| 114 | */ | ||
| 115 | |||
| 116 | [LAYER_COLEMAK] = { /* COLEMAK */ | ||
| 117 | { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, | ||
| 118 | { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, | ||
| 119 | { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | ||
| 120 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, | ||
| 121 | }, | ||
| 122 | |||
| 123 | /* DVORAK | ||
| 124 | * .-----------------------------------------------------------------------------------------------------------. | ||
| 125 | * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | | ||
| 126 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 127 | * | ESC | A | O | E | U | I | D | H | T | N | S | ' | | ||
| 128 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 129 | * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | | ||
| 130 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 131 | * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | | ||
| 132 | * '-----------------------------------------------------------------------------------------------------------' | ||
| 133 | */ | ||
| 134 | |||
| 135 | [LAYER_DVORAK] = { /* DVORAK */ | ||
| 136 | { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, | ||
| 137 | { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, | ||
| 138 | { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, | ||
| 139 | { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, | ||
| 140 | }, | ||
| 141 | |||
| 142 | /* Raise | ||
| 143 | * .-----------------------------------------------------------------------------------------------------------. | ||
| 144 | * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | DEL | | ||
| 145 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 146 | * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | [ | ] | \ | | ||
| 147 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 148 | * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | | ||
| 149 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 150 | * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | | ||
| 151 | * '-----------------------------------------------------------------------------------------------------------' | ||
| 152 | */ | ||
| 153 | |||
| 154 | [LAYER_RAISE] = { /* RAISED */ | ||
| 155 | { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, | ||
| 156 | { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, | ||
| 157 | { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, | ||
| 158 | { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, | ||
| 159 | }, | ||
| 160 | |||
| 161 | |||
| 162 | /* LOWERED | ||
| 163 | * .-----------------------------------------------------------------------------------------------------------. | ||
| 164 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | INS | | ||
| 165 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 166 | * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 167 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 168 | * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | | ||
| 169 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 170 | * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | | ||
| 171 | * '-----------------------------------------------------------------------------------------------------------' | ||
| 172 | */ | ||
| 173 | |||
| 174 | [LAYER_LOWER] = { /* LOWERED */ | ||
| 175 | { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS }, | ||
| 176 | { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, | ||
| 177 | { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, | ||
| 178 | { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, | ||
| 179 | }, | ||
| 180 | |||
| 181 | /* FUNCTION | ||
| 182 | * .-----------------------------------------------------------------------------------------------------------. | ||
| 183 | * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE | | ||
| 184 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 185 | * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT | | ||
| 186 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 187 | * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | | ||
| 188 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | ||
| 189 | * | LCTRL | LWIN | FN | LALT | RAISE | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | | ||
| 190 | * '-----------------------------------------------------------------------------------------------------------' | ||
| 191 | */ | ||
| 192 | [LAYER_FUNCTION] = { /* FUNCTION */ | ||
| 193 | { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS }, | ||
| 194 | { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR }, | ||
| 195 | { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, | ||
| 196 | { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT }, | ||
| 197 | }, | ||
| 198 | |||
| 199 | #ifdef MOUSEKEY_ENABLE | ||
| 200 | |||
| 201 | [LAYER_MOUSE] = { /* MOUSE */ | ||
| 202 | { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, | ||
| 203 | { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, | ||
| 204 | { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, | ||
| 205 | { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R }, | ||
| 206 | }, | ||
| 207 | |||
| 208 | #endif | ||
| 209 | |||
| 210 | [LAYER_MUSIC] = { /* MUSIC */ | ||
| 211 | { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, | ||
| 212 | { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, | ||
| 213 | { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, | ||
| 214 | { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, | ||
| 215 | }, | ||
| 216 | |||
| 217 | [LAYER_ADJUST] = { /* ADJUST */ | ||
| 218 | { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, | ||
| 219 | { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, | ||
| 220 | { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, | ||
| 221 | { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, | ||
| 222 | }, | ||
| 223 | |||
| 224 | |||
| 225 | /* | ||
| 226 | [LAYER_EMPTY] = { | ||
| 227 | { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, | ||
| 228 | { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, | ||
| 229 | { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, | ||
| 230 | { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, }, | ||
| 231 | }, | ||
| 232 | */ | ||
| 233 | |||
| 234 | }; | ||
| 235 | |||
| 236 | #ifdef AUDIO_ENABLE | ||
| 237 | |||
| 238 | float tone_my_startup[][2] = SONG(ODE_TO_JOY); | ||
| 239 | float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); | ||
| 240 | |||
| 241 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); | ||
| 242 | float tone_dvorak[][2] = SONG(DVORAK_SOUND); | ||
| 243 | float tone_colemak[][2] = SONG(COLEMAK_SOUND); | ||
| 244 | |||
| 245 | float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); | ||
| 246 | float tone_music_on[][2] = SONG(DOE_A_DEER); | ||
| 247 | float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); | ||
| 248 | float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); | ||
| 249 | float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); | ||
| 250 | float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); | ||
| 251 | float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); | ||
| 252 | float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); | ||
| 253 | float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); | ||
| 254 | |||
| 255 | #endif /* AUDIO_ENABLE */ | ||
| 256 | |||
| 257 | void persistant_default_layer_set(uint16_t default_layer) | ||
| 258 | { | ||
| 259 | eeconfig_update_default_layer(default_layer); | ||
| 260 | default_layer_set(default_layer); | ||
| 261 | } | ||
| 262 | |||
| 263 | const uint16_t PROGMEM fn_actions[] = { | ||
| 264 | }; | ||
| 265 | |||
| 266 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 267 | { | ||
| 268 | |||
| 269 | // MACRODOWN only works in this function | ||
| 270 | switch(id) | ||
| 271 | { | ||
| 272 | |||
| 273 | case MACRO_QWERTY: | ||
| 274 | if (record->event.pressed) | ||
| 275 | { | ||
| 276 | persistant_default_layer_set(1UL<<LAYER_QWERTY); | ||
| 277 | #ifdef AUDIO_ENABLE | ||
| 278 | PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); | ||
| 279 | #endif /* AUDIO_ENABLE */ | ||
| 280 | } | ||
| 281 | break; | ||
| 282 | |||
| 283 | case MACRO_COLEMAK: | ||
| 284 | if (record->event.pressed) | ||
| 285 | { | ||
| 286 | persistant_default_layer_set(1UL<<LAYER_COLEMAK); | ||
| 287 | #ifdef AUDIO_ENABLE | ||
| 288 | PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); | ||
| 289 | #endif /* AUDIO_ENABLE */ | ||
| 290 | } | ||
| 291 | break; | ||
| 292 | |||
| 293 | case MACRO_DVORAK: | ||
| 294 | if (record->event.pressed) | ||
| 295 | { | ||
| 296 | persistant_default_layer_set(1UL<<LAYER_DVORAK); | ||
| 297 | #ifdef AUDIO_ENABLE | ||
| 298 | PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); | ||
| 299 | #endif /* AUDIO_ENABLE */ | ||
| 300 | } | ||
| 301 | break; | ||
| 302 | |||
| 303 | case MACRO_LOWER: | ||
| 304 | if (record->event.pressed) | ||
| 305 | { | ||
| 306 | layer_on(LAYER_LOWER); | ||
| 307 | update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); | ||
| 308 | } | ||
| 309 | else | ||
| 310 | { | ||
| 311 | layer_off(LAYER_LOWER); | ||
| 312 | update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); | ||
| 313 | } | ||
| 314 | break; | ||
| 315 | |||
| 316 | case MACRO_RAISE: | ||
| 317 | if (record->event.pressed) | ||
| 318 | { | ||
| 319 | layer_on(LAYER_RAISE); | ||
| 320 | update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); | ||
| 321 | } | ||
| 322 | else | ||
| 323 | { | ||
| 324 | layer_off(LAYER_RAISE); | ||
| 325 | update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); | ||
| 326 | } | ||
| 327 | break; | ||
| 328 | |||
| 329 | case MACRO_FUNCTION: | ||
| 330 | if (record->event.pressed) | ||
| 331 | { | ||
| 332 | layer_on(LAYER_FUNCTION); | ||
| 333 | } | ||
| 334 | else | ||
| 335 | { | ||
| 336 | layer_off(LAYER_FUNCTION); | ||
| 337 | } | ||
| 338 | break; | ||
| 339 | |||
| 340 | #ifdef MOUSEKEY_ENABLE | ||
| 341 | |||
| 342 | case MACRO_MOUSE: | ||
| 343 | if (record->event.pressed) | ||
| 344 | { | ||
| 345 | layer_invert(LAYER_MOUSE); | ||
| 346 | } | ||
| 347 | break; | ||
| 348 | |||
| 349 | #endif /* MOUSEKEY_ENABLE */ | ||
| 350 | |||
| 351 | #ifdef AUDIO_ENABLE | ||
| 352 | |||
| 353 | case MACRO_TIMBRE_1: | ||
| 354 | if (record->event.pressed) set_timbre(TIMBRE_12); | ||
| 355 | break; | ||
| 356 | |||
| 357 | case MACRO_TIMBRE_2: | ||
| 358 | if (record->event.pressed) set_timbre(TIMBRE_25); | ||
| 359 | break; | ||
| 360 | |||
| 361 | case MACRO_TIMBRE_3: | ||
| 362 | if (record->event.pressed) set_timbre(TIMBRE_50); | ||
| 363 | break; | ||
| 364 | |||
| 365 | case MACRO_TIMBRE_4: | ||
| 366 | if (record->event.pressed) set_timbre(TIMBRE_75); | ||
| 367 | break; | ||
| 368 | |||
| 369 | case MACRO_TEMPO_U: | ||
| 370 | if (record->event.pressed) increase_tempo(10); | ||
| 371 | break; | ||
| 372 | |||
| 373 | case MACRO_TEMPO_D: | ||
| 374 | if (record->event.pressed) decrease_tempo(10); | ||
| 375 | break; | ||
| 376 | |||
| 377 | case MACRO_TONE_DEFAULT: | ||
| 378 | if (record->event.pressed) | ||
| 379 | { | ||
| 380 | set_timbre(TIMBRE_DEFAULT); | ||
| 381 | set_tempo(TEMPO_DEFAULT); | ||
| 382 | } | ||
| 383 | break; | ||
| 384 | |||
| 385 | case MACRO_AUDIO_OFF: | ||
| 386 | if (record->event.pressed) | ||
| 387 | { | ||
| 388 | #ifdef AUDIO_ENABLE | ||
| 389 | audio_off(); | ||
| 390 | #endif | ||
| 391 | } | ||
| 392 | break; | ||
| 393 | |||
| 394 | case MACRO_AUDIO_ON: | ||
| 395 | if (record->event.pressed) | ||
| 396 | { | ||
| 397 | #ifdef AUDIO_ENABLE | ||
| 398 | audio_on(); | ||
| 399 | PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); | ||
| 400 | #endif | ||
| 401 | } | ||
| 402 | break; | ||
| 403 | |||
| 404 | case MACRO_MUSIC_ON: | ||
| 405 | if (record->event.pressed) | ||
| 406 | { | ||
| 407 | #ifdef AUDIO_ENABLE | ||
| 408 | PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); | ||
| 409 | layer_on(LAYER_MUSIC); | ||
| 410 | #endif | ||
| 411 | } | ||
| 412 | break; | ||
| 413 | |||
| 414 | case MACRO_MUSIC_OFF: | ||
| 415 | if (record->event.pressed) | ||
| 416 | { | ||
| 417 | #ifdef AUDIO_ENABLE | ||
| 418 | layer_off(LAYER_MUSIC); | ||
| 419 | stop_all_notes(); | ||
| 420 | #endif | ||
| 421 | } | ||
| 422 | break; | ||
| 423 | |||
| 424 | case MACRO_INC_VOICE: | ||
| 425 | if (record->event.pressed) | ||
| 426 | { | ||
| 427 | #ifdef AUDIO_ENABLE | ||
| 428 | voice_iterate(); | ||
| 429 | PLAY_NOTE_ARRAY(music_scale, false, STACCATO); | ||
| 430 | #endif | ||
| 431 | } | ||
| 432 | break; | ||
| 433 | |||
| 434 | case MACRO_DEC_VOICE: | ||
| 435 | if (record->event.pressed) | ||
| 436 | { | ||
| 437 | #ifdef AUDIO_ENABLE | ||
| 438 | voice_deiterate(); | ||
| 439 | PLAY_NOTE_ARRAY(music_scale, false, STACCATO); | ||
| 440 | #endif | ||
| 441 | } | ||
| 442 | break; | ||
| 443 | |||
| 444 | #endif /* AUDIO_ENABLE */ | ||
| 445 | |||
| 446 | default: | ||
| 447 | break; | ||
| 448 | |||
| 449 | } | ||
| 450 | return MACRO_NONE; | ||
| 451 | }; | ||
| 452 | |||
| 453 | |||
| 454 | #ifdef AUDIO_ENABLE | ||
| 455 | |||
| 456 | |||
| 457 | void process_action_user(keyrecord_t *record) | ||
| 458 | { | ||
| 459 | |||
| 460 | uint8_t starting_note = 0x0C; | ||
| 461 | int offset = 7; | ||
| 462 | |||
| 463 | if (IS_LAYER_ON(LAYER_MUSIC)) | ||
| 464 | { | ||
| 465 | if (record->event.pressed) | ||
| 466 | { | ||
| 467 | play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); | ||
| 468 | } | ||
| 469 | else | ||
| 470 | { | ||
| 471 | stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); | ||
| 472 | } | ||
| 473 | } | ||
| 474 | } | ||
| 475 | |||
| 476 | |||
| 477 | void matrix_init_user(void) | ||
| 478 | { | ||
| 479 | set_voice(default_voice); | ||
| 480 | play_startup_tone(); | ||
| 481 | println("Matrix Init"); | ||
| 482 | } | ||
| 483 | |||
| 484 | void led_set_user(uint8_t usb_led) | ||
| 485 | { | ||
| 486 | static uint8_t old_usb_led = 0; | ||
| 487 | |||
| 488 | _delay_ms(10); // gets rid of tick | ||
| 489 | |||
| 490 | if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) | ||
| 491 | { | ||
| 492 | // If CAPS LK LED is turning on... | ||
| 493 | PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO); | ||
| 494 | } | ||
| 495 | else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) | ||
| 496 | { | ||
| 497 | // If CAPS LK LED is turning off... | ||
| 498 | PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); | ||
| 499 | } | ||
| 500 | else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) | ||
| 501 | { | ||
| 502 | // If NUM LK LED is turning on... | ||
| 503 | PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO); | ||
| 504 | } | ||
| 505 | else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) | ||
| 506 | { | ||
| 507 | // If NUM LED is turning off... | ||
| 508 | PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO); | ||
| 509 | } | ||
| 510 | else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) | ||
| 511 | { | ||
| 512 | // If SCROLL LK LED is turning on... | ||
| 513 | PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO); | ||
| 514 | } | ||
| 515 | else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) | ||
| 516 | { | ||
| 517 | // If SCROLL LED is turning off... | ||
| 518 | PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO); | ||
| 519 | } | ||
| 520 | old_usb_led = usb_led; | ||
| 521 | } | ||
| 522 | |||
| 523 | |||
| 524 | void play_startup_tone() | ||
| 525 | { | ||
| 526 | _delay_ms(10); // gets rid of tick | ||
| 527 | PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); | ||
| 528 | } | ||
| 529 | |||
| 530 | void play_goodbye_tone() | ||
| 531 | { | ||
| 532 | PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); | ||
| 533 | _delay_ms(1000); | ||
| 534 | } | ||
| 535 | |||
| 536 | #endif /* AUDIO_ENABLE */ \ No newline at end of file | ||
diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk new file mode 100644 index 000000000..4b9e34c53 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/makefile.mk | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | ||
| 2 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
| 3 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 4 | CONSOLE_ENABLE = yes # Console for debug(+400) | ||
| 5 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
| 6 | NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 7 | MIDI_ENABLE = no # MIDI controls | ||
| 8 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 9 | UNICODE_ENABLE = no # Unicode | ||
| 10 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 11 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. | ||
| 12 | |||
| 13 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 14 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 15 | |||
| 16 | CONFIG_H = keymaps/$(KEYMAP)/config.h | ||
diff --git a/keyboard/planck/keymaps/pvc_planck.c b/keyboard/planck/keymaps/pvc_planck.c deleted file mode 100644 index 1de8acb1e..000000000 --- a/keyboard/planck/keymaps/pvc_planck.c +++ /dev/null | |||
| @@ -1,179 +0,0 @@ | |||
| 1 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 2 | // this is the style you want to emulate. | ||
| 3 | |||
| 4 | #include "planck.h" | ||
| 5 | #include "print.h" | ||
| 6 | #include "action_layer.h" | ||
| 7 | #ifdef BACKLIGHT_ENABLE | ||
| 8 | #include "backlight.h" | ||
| 9 | #endif | ||
| 10 | |||
| 11 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
| 12 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
| 13 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
| 14 | // entirely and just use numbers. | ||
| 15 | #define _QW 0 | ||
| 16 | #define _CM 1 | ||
| 17 | #define _DV 2 | ||
| 18 | #define _LW 3 | ||
| 19 | #define _RS 4 | ||
| 20 | #define _FN 5 | ||
| 21 | |||
| 22 | #define XXXXXXX KC_NO | ||
| 23 | #define _______ KC_TRNS | ||
| 24 | |||
| 25 | #define ASFT(kc) LSFT(RSFT(kc)) | ||
| 26 | #define MG_B ASFT(KC_B) | ||
| 27 | #define MG_H ASFT(KC_H) | ||
| 28 | |||
| 29 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 30 | |||
| 31 | /* Qwerty | ||
| 32 | * ,-----------------------------------------------------------------------------------. | ||
| 33 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 34 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 35 | * | Esc | A | S | D | F | G | H | J | K | L | ; | " | | ||
| 36 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 37 | * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
| 38 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 39 | * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | | ||
| 40 | * `-----------------------------------------------------------------------------------' | ||
| 41 | */ | ||
| 42 | [_QW] = { | ||
| 43 | {RESET, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | ||
| 44 | {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 45 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, | ||
| 46 | {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} | ||
| 47 | }, | ||
| 48 | |||
| 49 | /* Colemak | ||
| 50 | * ,-----------------------------------------------------------------------------------. | ||
| 51 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | ||
| 52 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 53 | * | Esc | A | R | S | T | D | H | N | E | I | O | " | | ||
| 54 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 55 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
| 56 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 57 | * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | | ||
| 58 | * `-----------------------------------------------------------------------------------' | ||
| 59 | */ | ||
| 60 | [_CM] = { | ||
| 61 | {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, | ||
| 62 | {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, | ||
| 63 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | ||
| 64 | {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
| 65 | }, | ||
| 66 | |||
| 67 | /* Dvorak | ||
| 68 | * ,-----------------------------------------------------------------------------------. | ||
| 69 | * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | | ||
| 70 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 71 | * | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
| 72 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 73 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 74 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 75 | * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | | ||
| 76 | * `-----------------------------------------------------------------------------------' | ||
| 77 | */ | ||
| 78 | [_DV] = { | ||
| 79 | {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, | ||
| 80 | {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, | ||
| 81 | {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, | ||
| 82 | {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
| 83 | }, | ||
| 84 | |||
| 85 | /* Raise | ||
| 86 | * ,-----------------------------------------------------------------------------------. | ||
| 87 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 88 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 89 | * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
| 90 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 91 | * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | | ||
| 92 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 93 | * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | | ||
| 94 | * `-----------------------------------------------------------------------------------' | ||
| 95 | */ | ||
| 96 | [_RS] = { | ||
| 97 | {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, | ||
| 98 | {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, | ||
| 99 | {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, | ||
| 100 | {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||
| 101 | }, | ||
| 102 | |||
| 103 | /* Lower | ||
| 104 | * ,-----------------------------------------------------------------------------------. | ||
| 105 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 106 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 107 | * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 108 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 109 | * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | | ||
| 110 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 111 | * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | | ||
| 112 | * `-----------------------------------------------------------------------------------' | ||
| 113 | */ | ||
| 114 | [_LW] = { | ||
| 115 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, | ||
| 116 | {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, | ||
| 117 | {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, | ||
| 118 | {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||
| 119 | }, | ||
| 120 | |||
| 121 | /* Function | ||
| 122 | * ,-----------------------------------------------------------------------------------. | ||
| 123 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 124 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 125 | * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 126 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 127 | * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | | ||
| 128 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 129 | * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | | ||
| 130 | * `-----------------------------------------------------------------------------------' | ||
| 131 | */ | ||
| 132 | [_FN] = { | ||
| 133 | {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, | ||
| 134 | {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, | ||
| 135 | {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, | ||
| 136 | {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} | ||
| 137 | } | ||
| 138 | }; | ||
| 139 | |||
| 140 | const uint16_t PROGMEM fn_actions[] = { | ||
| 141 | |||
| 142 | }; | ||
| 143 | |||
| 144 | |||
| 145 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 146 | { | ||
| 147 | // MACRODOWN only works in this function | ||
| 148 | switch(id) | ||
| 149 | { | ||
| 150 | case _RS: | ||
| 151 | if (record->event.pressed) { | ||
| 152 | print("RS_DN"); | ||
| 153 | layer_on(_RS); | ||
| 154 | update_tri_layer(_RS, _LW, _FN); | ||
| 155 | } else { | ||
| 156 | print("RS_UP"); | ||
| 157 | layer_off(_RS); | ||
| 158 | update_tri_layer(_RS, _LW, _FN); | ||
| 159 | phex(layer_state); | ||
| 160 | } | ||
| 161 | break; | ||
| 162 | |||
| 163 | case _LW: | ||
| 164 | if (record->event.pressed) { | ||
| 165 | print("LW_DN"); | ||
| 166 | layer_on(_LW); | ||
| 167 | update_tri_layer(_RS, _LW, _FN); | ||
| 168 | } else { | ||
| 169 | print("LW_UP"); | ||
| 170 | layer_off(_LW); | ||
| 171 | update_tri_layer(_RS, _LW, _FN); | ||
| 172 | } | ||
| 173 | break; | ||
| 174 | |||
| 175 | default: | ||
| 176 | break; | ||
| 177 | } | ||
| 178 | return MACRO_NONE; | ||
| 179 | }; | ||
