diff options
| -rw-r--r-- | keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | 2 | ||||
| -rwxr-xr-x | keyboards/ergodox/keymaps/dvorak_emacs_software/keymap.c | 166 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/dvorak_emacs_software/readme.md | 74 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/josh/keymap.c | 34 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/twey/keymap.c | 1 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/cbbrowne/config.h | 4 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/unicode/keymap.c | 45 | ||||
| -rw-r--r-- | keyboards/xd60/arrow-cluster.JPG | bin | 1875718 -> 0 bytes | |||
| -rw-r--r-- | keyboards/xd60/config.h | 19 | ||||
| -rw-r--r-- | keyboards/xd60/keymaps/default/keymap.c | 40 | ||||
| -rw-r--r-- | keyboards/xd60/keymaps/stanleylai/keymap.c | 47 | ||||
| -rw-r--r-- | keyboards/xd60/readme.md | 8 | ||||
| -rw-r--r-- | keyboards/xd60/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/xd60/top-view.JPG | bin | 2092542 -> 0 bytes | |||
| -rw-r--r-- | keyboards/xd60/xd60.h | 18 | ||||
| -rw-r--r-- | keyboards/xd60/xd60.jpg | bin | 0 -> 2466209 bytes | |||
| -rw-r--r-- | quantum/keymap_extras/keymap_french.h | 4 |
17 files changed, 360 insertions, 104 deletions
diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index b62b14449..aaf75d58f 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | |||
| @@ -312,6 +312,8 @@ uint16_t hex_to_keycode(uint8_t hex) | |||
| 312 | return NEO_E; | 312 | return NEO_E; |
| 313 | case 0xF: | 313 | case 0xF: |
| 314 | return NEO_F; | 314 | return NEO_F; |
| 315 | default: | ||
| 316 | return KC_NO; | ||
| 315 | } | 317 | } |
| 316 | } | 318 | } |
| 317 | } | 319 | } |
diff --git a/keyboards/ergodox/keymaps/dvorak_emacs_software/keymap.c b/keyboards/ergodox/keymaps/dvorak_emacs_software/keymap.c new file mode 100755 index 000000000..a2bc15c99 --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_emacs_software/keymap.c | |||
| @@ -0,0 +1,166 @@ | |||
| 1 | #include "ergodox.h" | ||
| 2 | #include "keymap_dvorak.h" | ||
| 3 | #include "debug.h" | ||
| 4 | #include "action_layer.h" | ||
| 5 | |||
| 6 | /****************************************************************************************** | ||
| 7 | * DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/) | ||
| 8 | * Layer 1: auxiliary keys | ||
| 9 | * Layer 2: full qwerty layout | ||
| 10 | *****************************************************************************************/ | ||
| 11 | |||
| 12 | // LAYERS | ||
| 13 | #define BASE 0 // dvorak layout (default) | ||
| 14 | #define AUX 1 // auxiliary keys | ||
| 15 | |||
| 16 | // MACROS | ||
| 17 | /* #define OBRACE 0 // key { or shift */ | ||
| 18 | /* #define CBRACE 1 // key } or shift */ | ||
| 19 | /* #define OBRACK 2 // key [ or left alt */ | ||
| 20 | /* #define CBRACK 3 // key ] or left alt */ | ||
| 21 | /* #define CAPS 4 // caps lock */ | ||
| 22 | |||
| 23 | // LEDS | ||
| 24 | #define USB_LED_NUM_LOCK 0 | ||
| 25 | #define USB_LED_CAPS_LOCK 1 | ||
| 26 | #define USB_LED_SCROLL_LOCK 2 | ||
| 27 | #define USB_LED_COMPOSE 3 | ||
| 28 | #define USB_LED_KANA 4 | ||
| 29 | |||
| 30 | // TIMERS | ||
| 31 | #define KEY_TAP_FAST 85 | ||
| 32 | #define KEY_TAP_SLOW 95 | ||
| 33 | |||
| 34 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 35 | /* Keymap 0: Base layer | ||
| 36 | * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively | ||
| 37 | * | ||
| 38 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 39 | * | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + | | ||
| 40 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
| 41 | * | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? | | ||
| 42 | * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------| | ||
| 43 | * | Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - / _ | | ||
| 44 | * |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------| | ||
| 45 | * | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | | ||
| 46 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 47 | * | | | | | ~L1 | | ~L1 | | | \ / || | | ||
| 48 | * `----------------------------------' `----------------------------------' | ||
| 49 | * ,-------------. ,-------------. | ||
| 50 | * | HOME | END | | LEFT | RIGHT| | ||
| 51 | * ,------|------|------| |------+--------+------. | ||
| 52 | * | BSPC | DEL | PGUP | | UP | SPACE |RETURN| | ||
| 53 | * | / | / |------| |------| / | / | | ||
| 54 | * | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL | | ||
| 55 | * `--------------------' `----------------------' | ||
| 56 | * | ||
| 57 | */ | ||
| 58 | [BASE] = KEYMAP( | ||
| 59 | // left hand | ||
| 60 | KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, | ||
| 61 | KC_TILD, DV_QUOT, DV_COMM,DV_DOT, DV_P, DV_Y, DV_LBRC, | ||
| 62 | KC_TAB, DV_A, DV_O, DV_E, SFT_T(DV_U), LT(AUX, DV_I), | ||
| 63 | SFT_T(DV_LBRC), DV_SCLN, DV_Q, DV_J, DV_K, DV_X, KC_LGUI, | ||
| 64 | KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX), | ||
| 65 | KC_HOME, KC_END, | ||
| 66 | KC_PGUP, | ||
| 67 | CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN, | ||
| 68 | // right hand | ||
| 69 | KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, DV_EQL, | ||
| 70 | DV_RBRC, DV_F, DV_G, DV_C, DV_R, DV_L, DV_SLSH, | ||
| 71 | LT(AUX, DV_D), SFT_T(DV_H), DV_T, DV_N, DV_S, DV_MINS, | ||
| 72 | KC_LGUI, DV_B, DV_M, DV_W, DV_V, DV_Z, SFT_T(DV_RBRC), | ||
| 73 | MO(AUX), KC_NO, KC_NO, KC_BSLS, KC_NO, | ||
| 74 | KC_LEFT, KC_RIGHT, | ||
| 75 | KC_UP, | ||
| 76 | KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC) | ||
| 77 | ), | ||
| 78 | /* Keymap 1: Aux layer | ||
| 79 | * | ||
| 80 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 81 | * | VolUp | | | | | | SLEEP | PWR | | | | | | | | ||
| 82 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
| 83 | * | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | | | ||
| 84 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 85 | * | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | | | ||
| 86 | * |--------+------+------+------+------+------| | |PSCR |------+-----aan+------+------+------+--------| | ||
| 87 | * | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS | | ||
| 88 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 89 | * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | | | ||
| 90 | * `----------------------------------' `----------------------------------' | ||
| 91 | * ,-------------. ,-------------. | ||
| 92 | * | TRANS| TRANS| | TRANS| TRANS| | ||
| 93 | * ,------|------|------| |------+------+------. | ||
| 94 | * | | | TRANS| | TRANS| | | | ||
| 95 | * |TRANS |TRANS |------| |------| TRANS| TRANS| | ||
| 96 | * | | | TRANS| | TRANS| | | | ||
| 97 | * `--------------------' `--------------------' | ||
| 98 | */ | ||
| 99 | [AUX] = KEYMAP( | ||
| 100 | // left hand | ||
| 101 | KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, | ||
| 102 | KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO, | ||
| 103 | KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, | ||
| 104 | KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, | ||
| 105 | LCTL(DV_S), LCTL(DV_Z), LCTL(DV_X), LCTL(DV_C), KC_TRNS, | ||
| 106 | KC_TRNS , KC_TRNS, | ||
| 107 | KC_TRNS, | ||
| 108 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 109 | // right hand | ||
| 110 | KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 111 | KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO, | ||
| 112 | KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO, | ||
| 113 | KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS, | ||
| 114 | KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO, | ||
| 115 | KC_TRNS , KC_TRNS, | ||
| 116 | KC_TRNS, | ||
| 117 | KC_TRNS, KC_TRNS, KC_TRNS | ||
| 118 | ), | ||
| 119 | }; | ||
| 120 | |||
| 121 | const uint16_t PROGMEM fn_actions[] = { | ||
| 122 | [1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux) | ||
| 123 | }; | ||
| 124 | |||
| 125 | |||
| 126 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 127 | { | ||
| 128 | // MACRODOWN only works in this function | ||
| 129 | switch(id) { | ||
| 130 | case 0: | ||
| 131 | if (record->event.pressed) { | ||
| 132 | register_code(KC_RSFT); | ||
| 133 | } else { | ||
| 134 | unregister_code(KC_RSFT); | ||
| 135 | } | ||
| 136 | break; | ||
| 137 | } | ||
| 138 | return MACRO_NONE; | ||
| 139 | }; | ||
| 140 | |||
| 141 | // Runs just one time when the keyboard initializes. | ||
| 142 | void matrix_init_user(void) { | ||
| 143 | |||
| 144 | }; | ||
| 145 | |||
| 146 | // Runs constantly in the background, in a loop. | ||
| 147 | void matrix_scan_user(void) { | ||
| 148 | |||
| 149 | uint8_t layer = biton32(layer_state); | ||
| 150 | |||
| 151 | ergodox_board_led_off(); | ||
| 152 | ergodox_right_led_1_off(); | ||
| 153 | ergodox_right_led_2_off(); | ||
| 154 | ergodox_right_led_3_off(); | ||
| 155 | switch (layer) { | ||
| 156 | case 1: | ||
| 157 | ergodox_right_led_1_on(); | ||
| 158 | break; | ||
| 159 | case 2: | ||
| 160 | ergodox_right_led_2_on(); | ||
| 161 | break; | ||
| 162 | default: | ||
| 163 | // none | ||
| 164 | break; | ||
| 165 | } | ||
| 166 | } | ||
diff --git a/keyboards/ergodox/keymaps/dvorak_emacs_software/readme.md b/keyboards/ergodox/keymaps/dvorak_emacs_software/readme.md new file mode 100644 index 000000000..0e1e94ffe --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_emacs_software/readme.md | |||
| @@ -0,0 +1,74 @@ | |||
| 1 | # Ergodox Dvorak Layout with emacs binding in mind - software version | ||
| 2 | |||
| 3 | This configuration is the same as the dvorak_emacs layout, but using a sofware dvorak configuration | ||
| 4 | instead of a firmware configuration. This layout is for those who run their computer in dvorak mode. | ||
| 5 | |||
| 6 | * Control & Alt key on the thumbs (activated if pressed with another key). | ||
| 7 | * In the same way, "U" and "R" are the shift modifier if pressed with another key. | ||
| 8 | * "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key. | ||
| 9 | * Software layout set to english. | ||
| 10 | |||
| 11 | ## Keymap Layers | ||
| 12 | - L0: dvorak with some customizations (see layout below) | ||
| 13 | - L1: auxiliary keys (includes function keys, numpad...) | ||
| 14 | |||
| 15 | |||
| 16 | ### Keymap 0: Base layer | ||
| 17 | Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'held' key, respectively | ||
| 18 | |||
| 19 | <pre><code> | ||
| 20 | |||
| 21 | ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 22 | | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = | | ||
| 23 | |--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------| | ||
| 24 | | ~ | ' | , | . | P | Y | [ | | ] | F | G | C | H | L | / | | ||
| 25 | |--------|------|------|------|------|------| { | | } |------|------|------|------|------|--------| | ||
| 26 | | Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - | | ||
| 27 | |--------|------|------|------|------|------| LGUI | | LGUI |------|------|------|------|------|--------| | ||
| 28 | | {/LSft | ; | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | | ||
| 29 | `--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 30 | | | | | | ~L1 | | ~L1 | | | \ | | | ||
| 31 | `----------------------------------' `----------------------------------' | ||
| 32 | ,-------------. ,-------------. | ||
| 33 | | HOME | END | | LEFT | RIGHT| | ||
| 34 | ,------|------|------| |------|--------|------. | ||
| 35 | | BSPC | DEL | PGUP | | UP | SPACE |RETURN| | ||
| 36 | | / | / |------| |------| / | / | | ||
| 37 | | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL | | ||
| 38 | `--------------------' `----------------------' | ||
| 39 | |||
| 40 | </pre></code> | ||
| 41 | |||
| 42 | ### Keymap 1: Aux layer | ||
| 43 | |||
| 44 | <pre><code> | ||
| 45 | |||
| 46 | ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 47 | | VolUp | | | | | | SLEEP | PWR | | | | | | | | ||
| 48 | |--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------| | ||
| 49 | | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | | | ||
| 50 | |--------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 51 | | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | | | ||
| 52 | |--------|------|------|------|------|------| | |PSCR |------|------|------|------|------|--------| | ||
| 53 | | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS | | ||
| 54 | `--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 55 | |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | | | ||
| 56 | `----------------------------------' `----------------------------------' | ||
| 57 | ,-------------. ,-------------. | ||
| 58 | | TRANS| TRANS| | TRANS| TRANS| | ||
| 59 | ,------|------|------| |------|------|------. | ||
| 60 | | | | TRANS| | TRANS| | | | ||
| 61 | |TRANS |TRANS |------| |------| TRANS| TRANS| | ||
| 62 | | | | TRANS| | TRANS| | | | ||
| 63 | `--------------------' `--------------------' | ||
| 64 | |||
| 65 | </pre></code> | ||
| 66 | |||
| 67 | |||
| 68 | |||
| 69 | ## Generation of .hex file | ||
| 70 | > In the "qmk_firmware/keyboards/ergodox" directory. | ||
| 71 | |||
| 72 | > Execute "make dvorak_emacs". Then the hex file "ergodox_ez_dvorak_emacs.hex" is in the root directory : "qmk_firmware". | ||
| 73 | |||
| 74 | > Flash with `teensy_loader` binary | ||
diff --git a/keyboards/ergodox/keymaps/josh/keymap.c b/keyboards/ergodox/keymaps/josh/keymap.c index b5463873a..da887fc64 100644 --- a/keyboards/ergodox/keymaps/josh/keymap.c +++ b/keyboards/ergodox/keymaps/josh/keymap.c | |||
| @@ -8,15 +8,16 @@ | |||
| 8 | #define MDIA 2 // media keys | 8 | #define MDIA 2 // media keys |
| 9 | 9 | ||
| 10 | //macros | 10 | //macros |
| 11 | #define CTL_SFT_T 100 | 11 | #define CTL_SFT_T 100 // open type |
| 12 | #define CTL_SFT_G 101 | 12 | #define CTL_SFT_G 101 // find references |
| 13 | #define CTL_ALT_H 102 | 13 | #define CTL_ALT_H 102 // open call hierarchy |
| 14 | #define CTL_SFT_R 103 // open resource | ||
| 14 | 15 | ||
| 15 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 16 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 16 | /* Keymap 0: Basic layer | 17 | /* Keymap 0: Basic layer |
| 17 | * | 18 | * |
| 18 | * ,--------------------------------------------------. ,--------------------------------------------------. | 19 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 19 | * | = | 1 | 2 | 3 | 4 | 5 | ESC | | M 100| 6 | 7 | 8 | 9 | 0 | - | | 20 | * | = | 1 | 2 | 3 | 4 | 5 | ESC | |M100/3| 6 | 7 | 8 | 9 | 0 | - | |
| 20 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 21 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 21 | * |TAB /Alt| Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P |\ / ALT | | 22 | * |TAB /Alt| Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P |\ / ALT | |
| 22 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 23 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| @@ -38,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 38 | // Otherwise, it needs KC_* | 39 | // Otherwise, it needs KC_* |
| 39 | [BASE] = KEYMAP( // layer 0 : default | 40 | [BASE] = KEYMAP( // layer 0 : default |
| 40 | // left hand | 41 | // left hand |
| 41 | KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, | 42 | LT(MDIA, KC_EQL),KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, |
| 42 | ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), | 43 | ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), |
| 43 | KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, | 44 | KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, |
| 44 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(SYMB), | 45 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(SYMB), |
| @@ -47,11 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 47 | KC_HOME, | 48 | KC_HOME, |
| 48 | KC_SPC,KC_BSPC,KC_END, | 49 | KC_SPC,KC_BSPC,KC_END, |
| 49 | // right hand | 50 | // right hand |
| 50 | M(CTL_SFT_T),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, | 51 | LT(M(CTL_SFT_T), |
| 51 | MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, | 52 | M(CTL_SFT_R)),KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_MINS), |
| 52 | KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), | 53 | MEH_T(KC_NO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, |
| 53 | MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, | 54 | KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), CTL_T(KC_QUOT), |
| 54 | LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, | 55 | MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, |
| 56 | LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, | ||
| 55 | KC_LALT, KC_CAPS, | 57 | KC_LALT, KC_CAPS, |
| 56 | KC_PGUP, | 58 | KC_PGUP, |
| 57 | KC_PGDN,KC_DEL, KC_ENT | 59 | KC_PGDN,KC_DEL, KC_ENT |
| @@ -101,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 101 | /* Keymap 2: Media and mouse keys | 103 | /* Keymap 2: Media and mouse keys |
| 102 | * | 104 | * |
| 103 | * ,--------------------------------------------------. ,--------------------------------------------------. | 105 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 104 | * | | | | | | | | | | | | | | | | | 106 | * | | | | | | |RESET | |RESET | | | | | | | |
| 105 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 107 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 106 | * | | | | MsUp | | | | | | | | | | | | | 108 | * | | | | MsUp | | | | | | | | | | | | |
| 107 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 109 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| @@ -121,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 121 | */ | 123 | */ |
| 122 | // MEDIA AND MOUSE | 124 | // MEDIA AND MOUSE |
| 123 | [MDIA] = KEYMAP( | 125 | [MDIA] = KEYMAP( |
| 124 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 126 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, |
| 125 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, | 127 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, |
| 126 | KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, | 128 | KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, |
| 127 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 129 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| @@ -130,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 130 | KC_TRNS, | 132 | KC_TRNS, |
| 131 | KC_TRNS, KC_TRNS, KC_TRNS, | 133 | KC_TRNS, KC_TRNS, KC_TRNS, |
| 132 | // right hand | 134 | // right hand |
| 133 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 135 | RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 134 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 136 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 135 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, | 137 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, |
| 136 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, | 138 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, |
| @@ -172,6 +174,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 172 | } | 174 | } |
| 173 | return MACRO(U(LCTL), U(LALT), END); | 175 | return MACRO(U(LCTL), U(LALT), END); |
| 174 | break; | 176 | break; |
| 177 | case CTL_SFT_R: | ||
| 178 | if (record->event.pressed) { | ||
| 179 | return MACRO(D(LCTL), D(LSFT), T(R), END); | ||
| 180 | } | ||
| 181 | return MACRO(U(LCTL), U(LSFT), END); | ||
| 182 | break; | ||
| 175 | } | 183 | } |
| 176 | return MACRO_NONE; | 184 | return MACRO_NONE; |
| 177 | }; | 185 | }; |
diff --git a/keyboards/ergodox/keymaps/twey/keymap.c b/keyboards/ergodox/keymaps/twey/keymap.c index 5deacd63f..1ecbce466 100644 --- a/keyboards/ergodox/keymaps/twey/keymap.c +++ b/keyboards/ergodox/keymaps/twey/keymap.c | |||
| @@ -205,6 +205,7 @@ void matrix_init_user(void) { | |||
| 205 | 205 | ||
| 206 | // Runs constantly in the background, in a loop. | 206 | // Runs constantly in the background, in a loop. |
| 207 | void matrix_scan_user(void) { | 207 | void matrix_scan_user(void) { |
| 208 | __attribute__ ((unused)) | ||
| 208 | uint32_t layer0 = layer_state & (1UL << 0), | 209 | uint32_t layer0 = layer_state & (1UL << 0), |
| 209 | layer1 = layer_state & (1UL << 1), | 210 | layer1 = layer_state & (1UL << 1), |
| 210 | layer2 = layer_state & (1UL << 2), | 211 | layer2 = layer_state & (1UL << 2), |
diff --git a/keyboards/planck/keymaps/cbbrowne/config.h b/keyboards/planck/keymaps/cbbrowne/config.h index bd15fd5a2..3a4ee907f 100644 --- a/keyboards/planck/keymaps/cbbrowne/config.h +++ b/keyboards/planck/keymaps/cbbrowne/config.h | |||
| @@ -1,8 +1,12 @@ | |||
| 1 | #ifndef CONFIG_USER_H | 1 | #ifndef CONFIG_USER_H |
| 2 | #define CONFIG_USER_H | 2 | #define CONFIG_USER_H |
| 3 | 3 | ||
| 4 | #ifndef NO_DEBUG | ||
| 4 | #define NO_DEBUG | 5 | #define NO_DEBUG |
| 6 | #endif | ||
| 7 | #ifndef NO_PRINT | ||
| 5 | #define NO_PRINT | 8 | #define NO_PRINT |
| 9 | #endif | ||
| 6 | 10 | ||
| 7 | #include "../../config.h" | 11 | #include "../../config.h" |
| 8 | 12 | ||
diff --git a/keyboards/planck/keymaps/unicode/keymap.c b/keyboards/planck/keymaps/unicode/keymap.c index d73e7e09d..1b4ca8ed7 100644 --- a/keyboards/planck/keymaps/unicode/keymap.c +++ b/keyboards/planck/keymaps/unicode/keymap.c | |||
| @@ -195,24 +195,20 @@ const uint16_t PROGMEM fn_actions[] = { | |||
| 195 | }; | 195 | }; |
| 196 | 196 | ||
| 197 | #ifdef AUDIO_ENABLE | 197 | #ifdef AUDIO_ENABLE |
| 198 | float tone_startup[][2] = { | ||
| 199 | {440.0*pow(2.0,(31)/12.0), 12}, | ||
| 200 | {440.0*pow(2.0,(28)/12.0), 8}, | ||
| 201 | {440.0*pow(2.0,(19)/12.0), 8}, | ||
| 202 | {440.0*pow(2.0,(24)/12.0), 8}, | ||
| 203 | {440.0*pow(2.0,(28)/12.0), 20} | ||
| 204 | }; | ||
| 205 | 198 | ||
| 199 | float tone_startup[][2] = SONG(STARTUP_SOUND); | ||
| 206 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); | 200 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); |
| 207 | float tone_dvorak[][2] = SONG(DVORAK_SOUND); | 201 | float tone_dvorak[][2] = SONG(DVORAK_SOUND); |
| 208 | float tone_colemak[][2] = SONG(COLEMAK_SOUND); | 202 | float tone_colemak[][2] = SONG(COLEMAK_SOUND); |
| 209 | float tone_plover[][2] = SONG(PLOVER_SOUND); | 203 | float tone_plover[][2] = SONG(PLOVER_SOUND); |
| 210 | float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); | 204 | float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); |
| 205 | float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); | ||
| 211 | 206 | ||
| 212 | float goodbye[][2] = SONG(GOODBYE_SOUND); | 207 | float tone_goodbye[][2] = SONG(GOODBYE_SOUND); |
| 213 | #endif | 208 | #endif |
| 214 | 209 | ||
| 215 | 210 | ||
| 211 | |||
| 216 | void persistant_default_layer_set(uint16_t default_layer) { | 212 | void persistant_default_layer_set(uint16_t default_layer) { |
| 217 | eeconfig_update_default_layer(default_layer); | 213 | eeconfig_update_default_layer(default_layer); |
| 218 | default_layer_set(default_layer); | 214 | default_layer_set(default_layer); |
| @@ -309,18 +305,35 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||
| 309 | }; | 305 | }; |
| 310 | 306 | ||
| 311 | void matrix_init_user(void) { | 307 | void matrix_init_user(void) { |
| 312 | #ifdef AUDIO_ENABLE | 308 | #ifdef AUDIO_ENABLE |
| 313 | _delay_ms(20); // stops the tick | 309 | startup_user(); |
| 314 | PLAY_NOTE_ARRAY(tone_startup, false, 0); | 310 | #endif |
| 315 | #endif | ||
| 316 | } | 311 | } |
| 317 | 312 | ||
| 318 | #ifdef AUDIO_ENABLE | 313 | #ifdef AUDIO_ENABLE |
| 319 | void play_goodbye_tone() | 314 | |
| 315 | void startup_user() | ||
| 320 | { | 316 | { |
| 321 | PLAY_NOTE_ARRAY(goodbye, false, 0); | 317 | _delay_ms(20); // gets rid of tick |
| 322 | _delay_ms(150); | 318 | PLAY_NOTE_ARRAY(tone_startup, false, 0); |
| 319 | } | ||
| 320 | |||
| 321 | void shutdown_user() | ||
| 322 | { | ||
| 323 | PLAY_NOTE_ARRAY(tone_goodbye, false, 0); | ||
| 324 | _delay_ms(150); | ||
| 325 | stop_all_notes(); | ||
| 326 | } | ||
| 327 | |||
| 328 | void music_on_user(void) | ||
| 329 | { | ||
| 330 | music_scale_user(); | ||
| 323 | } | 331 | } |
| 324 | #endif | ||
| 325 | 332 | ||
| 333 | void music_scale_user(void) | ||
| 334 | { | ||
| 335 | PLAY_NOTE_ARRAY(music_scale, false, 0); | ||
| 336 | } | ||
| 337 | |||
| 338 | #endif | ||
| 326 | 339 | ||
diff --git a/keyboards/xd60/arrow-cluster.JPG b/keyboards/xd60/arrow-cluster.JPG deleted file mode 100644 index aa03dc08e..000000000 --- a/keyboards/xd60/arrow-cluster.JPG +++ /dev/null | |||
| Binary files differ | |||
diff --git a/keyboards/xd60/config.h b/keyboards/xd60/config.h index 13ae29063..4bbaec882 100644 --- a/keyboards/xd60/config.h +++ b/keyboards/xd60/config.h | |||
| @@ -25,8 +25,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 25 | #define PRODUCT_ID 0x6060 | 25 | #define PRODUCT_ID 0x6060 |
| 26 | #define DEVICE_VER 0x0001 | 26 | #define DEVICE_VER 0x0001 |
| 27 | #define MANUFACTURER XIUDI | 27 | #define MANUFACTURER XIUDI |
| 28 | #define PRODUCT XD60 | 28 | #define PRODUCT XD60v2 |
| 29 | #define DESCRIPTION XD60 Keyboard by XIUDI | 29 | #define DESCRIPTION XD60 v2 Keyboard PCB by XIUDI |
| 30 | 30 | ||
| 31 | /* key matrix size */ | 31 | /* key matrix size */ |
| 32 | #define MATRIX_ROWS 5 | 32 | #define MATRIX_ROWS 5 |
| @@ -46,14 +46,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 46 | #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } | 46 | #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } |
| 47 | #define UNUSED_PINS | 47 | #define UNUSED_PINS |
| 48 | 48 | ||
| 49 | /* Backlight Setup */ | ||
| 50 | #define BACKLIGHT_PIN F5 | ||
| 51 | #define BACKLIGHT_LEVELS 6 | ||
| 52 | |||
| 49 | /* COL2ROW or ROW2COL */ | 53 | /* COL2ROW or ROW2COL */ |
| 50 | #define DIODE_DIRECTION COL2ROW | 54 | #define DIODE_DIRECTION COL2ROW |
| 51 | 55 | ||
| 52 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | 56 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
| 53 | #define DEBOUNCING_DELAY 5 | 57 | #define DEBOUNCING_DELAY 5 |
| 54 | 58 | ||
| 55 | /* number of backlight levels */ | 59 | /* RGB Underglow |
| 56 | #define BACKLIGHT_LEVELS 3 | 60 | * F6 PIN for XD60v2 that has pre-soldered WS2812 LEDs |
| 61 | */ | ||
| 62 | #define RGB_DI_PIN F6 | ||
| 63 | #define RGBLIGHT_ANIMATIONS | ||
| 64 | #define RGBLED_NUM 6 // Number of LEDs | ||
| 65 | #define RGBLIGHT_HUE_STEP 10 | ||
| 66 | #define RGBLIGHT_SAT_STEP 17 | ||
| 67 | #define RGBLIGHT_VAL_STEP 17 | ||
| 57 | 68 | ||
| 58 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | 69 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
| 59 | #define LOCKING_SUPPORT_ENABLE | 70 | #define LOCKING_SUPPORT_ENABLE |
diff --git a/keyboards/xd60/keymaps/default/keymap.c b/keyboards/xd60/keymaps/default/keymap.c index ea85c02a3..11be9afca 100644 --- a/keyboards/xd60/keymaps/default/keymap.c +++ b/keyboards/xd60/keymaps/default/keymap.c | |||
| @@ -9,56 +9,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 9 | 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_BSPC, \ | 9 | 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_BSPC, \ |
| 10 | 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_NO, KC_ENT, \ | 10 | 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_NO, KC_ENT, \ |
| 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \ | 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \ |
| 12 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), | 12 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), |
| 13 | 13 | ||
| 14 | // 1: Function Layer | 14 | // 1: Function Layer |
| 15 | KEYMAP( | 15 | KEYMAP( |
| 16 | RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \ | 16 | RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \ |
| 17 | KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ | 17 | KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ |
| 18 | KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ | 18 | KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ |
| 19 | KC_LSFT, KC_NO, KC_NO, KC_APP, BL_TOGG,BL_DEC, BL_INC, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_NO, \ | 19 | KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, \ |
| 20 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, F(0), KC_HOME, KC_PGDOWN,KC_END), | 20 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END), |
| 21 | 21 | ||
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | // Custom Actions | ||
| 24 | const uint16_t PROGMEM fn_actions[] = { | 25 | const uint16_t PROGMEM fn_actions[] = { |
| 25 | [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay | 26 | [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay |
| 26 | }; | 27 | }; |
| 27 | 28 | ||
| 29 | // Macros | ||
| 28 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | 30 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { |
| 29 | // MACRODOWN only works in this function | ||
| 30 | 31 | ||
| 32 | // MACRODOWN only works in this function | ||
| 31 | switch(id) { | 33 | switch(id) { |
| 32 | case 0: | 34 | case 0: |
| 33 | if (record->event.pressed) { | 35 | if (record->event.pressed) { register_code(KC_RSFT); } |
| 34 | register_code(KC_RSFT); | 36 | else { unregister_code(KC_RSFT); } |
| 35 | } else { | 37 | break; |
| 36 | unregister_code(KC_RSFT); | ||
| 37 | } | ||
| 38 | break; | ||
| 39 | } | 38 | } |
| 40 | 39 | ||
| 41 | return MACRO_NONE; | 40 | return MACRO_NONE; |
| 42 | }; | 41 | }; |
| 43 | 42 | ||
| 43 | // Loop | ||
| 44 | void matrix_scan_user(void) { | 44 | void matrix_scan_user(void) { |
| 45 | 45 | // Empty | |
| 46 | // Layer LED indicators | ||
| 47 | uint32_t layer = layer_state; | ||
| 48 | |||
| 49 | if (layer & (1<<1)) { | ||
| 50 | xd60_esc_led_on(); | ||
| 51 | } else { | ||
| 52 | xd60_esc_led_off(); | ||
| 53 | } | ||
| 54 | |||
| 55 | /* | ||
| 56 | if (layer & (1<<2)) { | ||
| 57 | xd60_poker_leds_on(); | ||
| 58 | xd60_esc_led_on(); | ||
| 59 | } else { | ||
| 60 | xd60_poker_leds_off(); | ||
| 61 | xd60_esc_led_off(); | ||
| 62 | } | ||
| 63 | */ | ||
| 64 | }; | 46 | }; |
diff --git a/keyboards/xd60/keymaps/stanleylai/keymap.c b/keyboards/xd60/keymaps/stanleylai/keymap.c index a84ee0f89..feb2cd1b6 100644 --- a/keyboards/xd60/keymaps/stanleylai/keymap.c +++ b/keyboards/xd60/keymaps/stanleylai/keymap.c | |||
| @@ -8,53 +8,48 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 8 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ | 8 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ |
| 9 | 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_BSPC, \ | 9 | 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_BSPC, \ |
| 10 | F(0), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ | 10 | F(0), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ |
| 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \ | 11 | KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, F(1), KC_UP, KC_DEL, \ |
| 12 | KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), | 12 | KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), |
| 13 | 13 | ||
| 14 | // 1: Function Layer | 14 | // 1: Function Layer |
| 15 | KEYMAP( | 15 | KEYMAP( |
| 16 | RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \ | 16 | RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \ |
| 17 | KC_CAPS, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_STEP, BL_TOGG, KC_DEL, \ | 17 | KC_CAPS, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \ |
| 18 | F(0), KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \ | 18 | F(0), KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \ |
| 19 | KC_LSFT, KC_NO, KC_VOLD, KC_MUTE, KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_PGUP, KC_INS, \ | 19 | KC_LSFT, KC_NO, KC_VOLD, KC_MUTE, KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_INS, \ |
| 20 | KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END), | 20 | KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END), |
| 21 | 21 | ||
| 22 | // 2: RGB Layer | ||
| 23 | KEYMAP( | ||
| 24 | KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ | ||
| 25 | KC_NO, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ | ||
| 26 | KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ | ||
| 27 | KC_NO, KC_NO, RGB_HUD, RGB_SAD, RGB_VAD,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, F(1), KC_NO, KC_NO, \ | ||
| 28 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), | ||
| 29 | |||
| 22 | }; | 30 | }; |
| 23 | 31 | ||
| 32 | // Custom Actions | ||
| 24 | const uint16_t PROGMEM fn_actions[] = { | 33 | const uint16_t PROGMEM fn_actions[] = { |
| 25 | [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay | 34 | [0] = ACTION_LAYER_MOMENTARY(1), // to Function Layer |
| 35 | [1] = ACTION_LAYER_MOMENTARY(2), // to RGB Layer | ||
| 26 | }; | 36 | }; |
| 27 | 37 | ||
| 38 | // Macros | ||
| 28 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | 39 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { |
| 29 | // MACRODOWN only works in this function | ||
| 30 | 40 | ||
| 41 | // MACRODOWN only works in this function | ||
| 31 | switch(id) { | 42 | switch(id) { |
| 32 | case 0: | 43 | case 0: |
| 33 | if (record->event.pressed) { | 44 | if (record->event.pressed) { register_code(KC_RSFT); } |
| 34 | register_code(KC_RSFT); | 45 | else { unregister_code(KC_RSFT); } |
| 35 | } else { | 46 | break; |
| 36 | unregister_code(KC_RSFT); | ||
| 37 | } | ||
| 38 | break; | ||
| 39 | } | 47 | } |
| 40 | 48 | ||
| 41 | return MACRO_NONE; | 49 | return MACRO_NONE; |
| 42 | }; | 50 | }; |
| 43 | 51 | ||
| 52 | // Loop | ||
| 44 | void matrix_scan_user(void) { | 53 | void matrix_scan_user(void) { |
| 45 | 54 | // Empty | |
| 46 | // Layer LED indicators | ||
| 47 | uint32_t layer = layer_state; | ||
| 48 | |||
| 49 | if (layer & (1<<1)) { | ||
| 50 | xd60_wasd_leds_on(); | ||
| 51 | xd60_fn_led_on(); | ||
| 52 | xd60_esc_led_on(); | ||
| 53 | xd60_poker_leds_on(); | ||
| 54 | } else { | ||
| 55 | xd60_wasd_leds_off(); | ||
| 56 | xd60_fn_led_off(); | ||
| 57 | xd60_esc_led_off(); | ||
| 58 | xd60_poker_leds_off(); | ||
| 59 | } | ||
| 60 | }; | 55 | }; |
diff --git a/keyboards/xd60/readme.md b/keyboards/xd60/readme.md index 393ea5d68..224498caa 100644 --- a/keyboards/xd60/readme.md +++ b/keyboards/xd60/readme.md | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | # QMK Firmware for XIUDI's 60% XD60 PCB | 1 | # QMK Firmware for XIUDI's 60% XD60 PCB |
| 2 | 2 | ||
| 3 |  | 3 |  |
| 4 |  | ||
| 5 | 4 | ||
| 6 | ## Quantum MK Firmware | 5 | ## Quantum MK Firmware |
| 7 | For the full Quantum feature list, see [the parent readme.md](/readme.md). | 6 | For the full Quantum feature list, see [the parent readme.md](/readme.md). |
| @@ -9,5 +8,10 @@ For the full Quantum feature list, see [the parent readme.md](/readme.md). | |||
| 9 | ## Additional Notes | 8 | ## Additional Notes |
| 10 | The XD60 is essentially a GH60 rev. C, with support for a right-hand arrow cluster. Includes full compatibility with GH60 expansion boards. Board also supports in-switch LEDs (two-pin, single colour), as well as WS2182 LED strips for underglow lighting. Default keymap included, matching configuration on sale page. | 9 | The XD60 is essentially a GH60 rev. C, with support for a right-hand arrow cluster. Includes full compatibility with GH60 expansion boards. Board also supports in-switch LEDs (two-pin, single colour), as well as WS2182 LED strips for underglow lighting. Default keymap included, matching configuration on sale page. |
| 11 | 10 | ||
| 11 | Version 2 PCBs include 6 soldered on RGB underglow LEDs on the bottom, and are labelled "XD60v2" on the top. They are otherwise identical to v1 PCBs. | ||
| 12 | |||
| 13 | ## Known Issues | ||
| 14 | In-switch backlight LEDs seem to only support 1 brightness level. | ||
| 15 | |||
| 12 | ## Build | 16 | ## Build |
| 13 | To build the default keymap, simply run `make xd60-default`. | 17 | To build the default keymap, simply run `make xd60-default`. |
diff --git a/keyboards/xd60/rules.mk b/keyboards/xd60/rules.mk index e0b92121d..174c3ec84 100644 --- a/keyboards/xd60/rules.mk +++ b/keyboards/xd60/rules.mk | |||
| @@ -61,5 +61,5 @@ MIDI_ENABLE = no # MIDI controls | |||
| 61 | AUDIO_ENABLE = no # Audio output on port C6 | 61 | AUDIO_ENABLE = no # Audio output on port C6 |
| 62 | UNICODE_ENABLE = no # Unicode | 62 | UNICODE_ENABLE = no # Unicode |
| 63 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | 63 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID |
| 64 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. | 64 | RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. |
| 65 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | 65 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
diff --git a/keyboards/xd60/top-view.JPG b/keyboards/xd60/top-view.JPG deleted file mode 100644 index 613759b4d..000000000 --- a/keyboards/xd60/top-view.JPG +++ /dev/null | |||
| Binary files differ | |||
diff --git a/keyboards/xd60/xd60.h b/keyboards/xd60/xd60.h index 36442cb52..dd5f63c0c 100644 --- a/keyboards/xd60/xd60.h +++ b/keyboards/xd60/xd60.h | |||
| @@ -6,24 +6,18 @@ | |||
| 6 | 6 | ||
| 7 | /* XD60 LEDs | 7 | /* XD60 LEDs |
| 8 | * GPIO pads | 8 | * GPIO pads |
| 9 | * 0 F7 WASD LEDs | 9 | * 0 F7 not connected |
| 10 | * 1 F6 ESC LED | 10 | * 1 F6 RGB PWM Underglow |
| 11 | * 2 F5 FN LED | 11 | * 2 F5 Backlight LED |
| 12 | * 3 F4 POKER Arrow LEDs | 12 | * 3 F4 not connected |
| 13 | * B2 Capslock LED | 13 | * B2 Capslock LED |
| 14 | * B0 not connected | 14 | * B0 not connected |
| 15 | */ | 15 | */ |
| 16 | inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } | 16 | inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } |
| 17 | inline void xd60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); } | 17 | inline void xd60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } |
| 18 | inline void xd60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } | ||
| 19 | inline void xd60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); } | ||
| 20 | inline void xd60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); } | ||
| 21 | 18 | ||
| 22 | inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } | 19 | inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } |
| 23 | inline void xd60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } | 20 | inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } |
| 24 | inline void xd60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } | ||
| 25 | inline void xd60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); } | ||
| 26 | inline void xd60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } | ||
| 27 | 21 | ||
| 28 | /* XD60 Keymap Definition Macro */ | 22 | /* XD60 Keymap Definition Macro */ |
| 29 | #define KEYMAP( \ | 23 | #define KEYMAP( \ |
diff --git a/keyboards/xd60/xd60.jpg b/keyboards/xd60/xd60.jpg new file mode 100644 index 000000000..11654f0fd --- /dev/null +++ b/keyboards/xd60/xd60.jpg | |||
| Binary files differ | |||
diff --git a/quantum/keymap_extras/keymap_french.h b/quantum/keymap_extras/keymap_french.h index 834c69650..401bbdf64 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h | |||
| @@ -4,7 +4,9 @@ | |||
| 4 | #include "keymap.h" | 4 | #include "keymap.h" |
| 5 | 5 | ||
| 6 | // Alt gr | 6 | // Alt gr |
| 7 | #ifndef ALGR | ||
| 7 | #define ALGR(kc) RALT(kc) | 8 | #define ALGR(kc) RALT(kc) |
| 9 | #endif | ||
| 8 | #define NO_ALGR KC_RALT | 10 | #define NO_ALGR KC_RALT |
| 9 | 11 | ||
| 10 | // Normal characters | 12 | // Normal characters |
| @@ -72,7 +74,7 @@ | |||
| 72 | #define FR_PIPE ALGR(KC_6) | 74 | #define FR_PIPE ALGR(KC_6) |
| 73 | #define FR_GRV ALGR(KC_7) | 75 | #define FR_GRV ALGR(KC_7) |
| 74 | #define FR_BSLS ALGR(KC_8) | 76 | #define FR_BSLS ALGR(KC_8) |
| 75 | #define FR_CIRC ALGR(KC_9) | 77 | #define FR_CCIRC ALGR(KC_9) |
| 76 | #define FR_AT ALGR(KC_0) | 78 | #define FR_AT ALGR(KC_0) |
| 77 | #define FR_RBRC ALGR(FR_RPRN) | 79 | #define FR_RBRC ALGR(FR_RPRN) |
| 78 | #define FR_RCBR ALGR(FR_EQL) | 80 | #define FR_RCBR ALGR(FR_EQL) |
