From fb46eb2de1b16f4700b486c9ef7fb34d35025209 Mon Sep 17 00:00:00 2001 From: Josh Colbeck Date: Tue, 12 Jul 2016 23:52:02 -0500 Subject: [PATCH 1/7] Added open resource macro tap to type, hold for resource --- keyboards/ergodox_ez/keymaps/josh/keymap.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/keyboards/ergodox_ez/keymaps/josh/keymap.c b/keyboards/ergodox_ez/keymaps/josh/keymap.c index de5664a25a..9ceb874236 100644 --- a/keyboards/ergodox_ez/keymaps/josh/keymap.c +++ b/keyboards/ergodox_ez/keymaps/josh/keymap.c @@ -7,15 +7,16 @@ #define MDIA 2 // media keys //macros -#define CTL_SFT_T 100 -#define CTL_SFT_G 101 -#define CTL_ALT_H 102 +#define CTL_SFT_T 100 // open type +#define CTL_SFT_G 101 // find references +#define CTL_ALT_H 102 // open call hierarchy +#define CTL_SFT_R 103 // open resource const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | ESC | | M 100| 6 | 7 | 8 | 9 | 0 | - | + * | = | 1 | 2 | 3 | 4 | 5 | ESC | |M100/3| 6 | 7 | 8 | 9 | 0 | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |TAB /Alt| Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P |\ / ALT | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -46,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_SPC,KC_BSPC,KC_END, // right hand - M(CTL_SFT_T),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + LT(M(CTL_SFT_T), M(CTL_SFT_R)),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, @@ -171,6 +172,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO(U(LCTL), U(LALT), END); break; + case CTL_SFT_R: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LSFT), T(R), END); + } + return MACRO(U(LCTL), U(LSFT), END); + break; } return MACRO_NONE; }; From aaa180f46309efebd3150ab4f3f9edd619a8f6f6 Mon Sep 17 00:00:00 2001 From: Josh Colbeck Date: Wed, 20 Jul 2016 23:15:15 -0500 Subject: [PATCH 2/7] Added reset keys --- keyboards/ergodox_ez/keymaps/josh/keymap.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/keyboards/ergodox_ez/keymaps/josh/keymap.c b/keyboards/ergodox_ez/keymaps/josh/keymap.c index 9ceb874236..35becaff8d 100644 --- a/keyboards/ergodox_ez/keymaps/josh/keymap.c +++ b/keyboards/ergodox_ez/keymaps/josh/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + LT(MDIA, KC_EQL),KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(SYMB), @@ -47,11 +47,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_SPC,KC_BSPC,KC_END, // right hand - LT(M(CTL_SFT_T), M(CTL_SFT_R)),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), - MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, + LT(M(CTL_SFT_T), + M(CTL_SFT_R)),KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_MINS), + MEH_T(KC_NO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), CTL_T(KC_QUOT), + MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_LALT, KC_CAPS, KC_PGUP, KC_PGDN,KC_DEL, KC_ENT @@ -101,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 2: Media and mouse keys * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | + * | | | | | | |RESET | |RESET | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | MsUp | | | | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -121,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // MEDIA AND MOUSE [MDIA] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -130,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, From 3272821d32e79cafbf4d96dae811c5d57954a4b1 Mon Sep 17 00:00:00 2001 From: Stanley Lai Date: Mon, 13 Feb 2017 18:09:02 -0800 Subject: [PATCH 3/7] Added support for XD60v2 with RGB underglow and LED backlight support --- keyboards/xd60/config.h | 22 ++++++++-- keyboards/xd60/keymaps/default/keymap.c | 40 +++++------------- keyboards/xd60/keymaps/stanleylai/keymap.c | 47 ++++++++++------------ keyboards/xd60/rules.mk | 2 +- keyboards/xd60/xd60.h | 18 +++------ 5 files changed, 57 insertions(+), 72 deletions(-) diff --git a/keyboards/xd60/config.h b/keyboards/xd60/config.h index 13ae29063e..d3052b4038 100644 --- a/keyboards/xd60/config.h +++ b/keyboards/xd60/config.h @@ -25,8 +25,8 @@ along with this program. If not, see . #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 #define MANUFACTURER XIUDI -#define PRODUCT XD60 -#define DESCRIPTION XD60 Keyboard by XIUDI +#define PRODUCT XD60v2 +#define DESCRIPTION XD60 v2 Keyboard PCB by XIUDI /* key matrix size */ #define MATRIX_ROWS 5 @@ -46,14 +46,28 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } #define UNUSED_PINS +/* Backlight Setup + * Only 1 level, since XD60's backlight implementation doesn't seem compatible with QMK for variable brightness + * Use BL_STEP to toggle LEDs instead, as BL_TOGG can be inconsistent (depending on current level) + */ +#define BACKLIGHT_PIN F5 +#define BACKLIGHT_LEVELS 1 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCING_DELAY 5 -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 +/* RGB Underglow + * F6 PIN for XD60v2 that has pre-soldered WS2812 LEDs + */ +#define RGB_DI_PIN F6 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 6 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/xd60/keymaps/default/keymap.c b/keyboards/xd60/keymaps/default/keymap.c index ea85c02a39..11be9afca2 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] = { 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, \ 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, \ 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, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer KEYMAP( 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, \ 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, \ 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, \ - 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, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, F(0), KC_HOME, KC_PGDOWN,KC_END), + 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, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END), }; +// Custom Actions const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay }; +// Macros const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function + // MACRODOWN only works in this function switch(id) { case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; + if (record->event.pressed) { register_code(KC_RSFT); } + else { unregister_code(KC_RSFT); } + break; } return MACRO_NONE; }; +// Loop void matrix_scan_user(void) { - - // Layer LED indicators - uint32_t layer = layer_state; - - if (layer & (1<<1)) { - xd60_esc_led_on(); - } else { - xd60_esc_led_off(); - } - - /* - if (layer & (1<<2)) { - xd60_poker_leds_on(); - xd60_esc_led_on(); - } else { - xd60_poker_leds_off(); - xd60_esc_led_off(); - } - */ + // Empty }; diff --git a/keyboards/xd60/keymaps/stanleylai/keymap.c b/keyboards/xd60/keymaps/stanleylai/keymap.c index a84ee0f898..4d3032a106 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] = { 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, \ 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, \ 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, \ - 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, \ + 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, \ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer KEYMAP( 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, \ - 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, \ + 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, \ 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, \ - 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, \ + 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, \ KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END), + // 2: RGB Layer + KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + BL_STEP, 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, \ + 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, \ + 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, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + }; +// Custom Actions const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay + [0] = ACTION_LAYER_MOMENTARY(1), // to Function Layer + [1] = ACTION_LAYER_MOMENTARY(2), // to RGB Layer }; +// Macros const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function + // MACRODOWN only works in this function switch(id) { case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; + if (record->event.pressed) { register_code(KC_RSFT); } + else { unregister_code(KC_RSFT); } + break; } return MACRO_NONE; }; +// Loop void matrix_scan_user(void) { - - // Layer LED indicators - uint32_t layer = layer_state; - - if (layer & (1<<1)) { - xd60_wasd_leds_on(); - xd60_fn_led_on(); - xd60_esc_led_on(); - xd60_poker_leds_on(); - } else { - xd60_wasd_leds_off(); - xd60_fn_led_off(); - xd60_esc_led_off(); - xd60_poker_leds_off(); - } + // Empty }; diff --git a/keyboards/xd60/rules.mk b/keyboards/xd60/rules.mk index e0b92121d2..174c3ec848 100644 --- a/keyboards/xd60/rules.mk +++ b/keyboards/xd60/rules.mk @@ -61,5 +61,5 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/xd60/xd60.h b/keyboards/xd60/xd60.h index 36442cb527..dd5f63c0ca 100644 --- a/keyboards/xd60/xd60.h +++ b/keyboards/xd60/xd60.h @@ -6,24 +6,18 @@ /* XD60 LEDs * GPIO pads - * 0 F7 WASD LEDs - * 1 F6 ESC LED - * 2 F5 FN LED - * 3 F4 POKER Arrow LEDs + * 0 F7 not connected + * 1 F6 RGB PWM Underglow + * 2 F5 Backlight LED + * 3 F4 not connected * B2 Capslock LED * B0 not connected */ inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } -inline void xd60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); } -inline void xd60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } -inline void xd60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); } -inline void xd60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); } +inline void xd60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } -inline void xd60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } -inline void xd60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } -inline void xd60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); } -inline void xd60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } +inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } /* XD60 Keymap Definition Macro */ #define KEYMAP( \ From 49e72632d2200fc3bf71d5ced2aa43058da3b2e0 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 16 Feb 2017 13:13:38 -0500 Subject: [PATCH 4/7] remove more warnings --- .../ergodox/keymaps/coderkun_neo2/keymap.c | 2 + keyboards/ergodox/keymaps/twey/keymap.c | 1 + keyboards/planck/keymaps/cbbrowne/config.h | 4 ++ keyboards/planck/keymaps/unicode/keymap.c | 45 ++++++++++++------- quantum/keymap_extras/keymap_french.h | 4 +- 5 files changed, 39 insertions(+), 17 deletions(-) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index b62b14449f..aaf75d58f2 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) return NEO_E; case 0xF: return NEO_F; + default: + return KC_NO; } } } diff --git a/keyboards/ergodox/keymaps/twey/keymap.c b/keyboards/ergodox/keymaps/twey/keymap.c index 5deacd63f5..1ecbce4661 100644 --- a/keyboards/ergodox/keymaps/twey/keymap.c +++ b/keyboards/ergodox/keymaps/twey/keymap.c @@ -205,6 +205,7 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { + __attribute__ ((unused)) uint32_t layer0 = layer_state & (1UL << 0), layer1 = layer_state & (1UL << 1), layer2 = layer_state & (1UL << 2), diff --git a/keyboards/planck/keymaps/cbbrowne/config.h b/keyboards/planck/keymaps/cbbrowne/config.h index bd15fd5a22..3a4ee907f4 100644 --- a/keyboards/planck/keymaps/cbbrowne/config.h +++ b/keyboards/planck/keymaps/cbbrowne/config.h @@ -1,8 +1,12 @@ #ifndef CONFIG_USER_H #define CONFIG_USER_H +#ifndef NO_DEBUG #define NO_DEBUG +#endif +#ifndef NO_PRINT #define NO_PRINT +#endif #include "../../config.h" diff --git a/keyboards/planck/keymaps/unicode/keymap.c b/keyboards/planck/keymaps/unicode/keymap.c index d73e7e09d4..1b4ca8ed7d 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[] = { }; #ifdef AUDIO_ENABLE -float tone_startup[][2] = { - {440.0*pow(2.0,(31)/12.0), 12}, - {440.0*pow(2.0,(28)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {440.0*pow(2.0,(28)/12.0), 20} -}; +float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float goodbye[][2] = SONG(GOODBYE_SOUND); +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif + void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); @@ -309,18 +305,35 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // stops the tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif + #ifdef AUDIO_ENABLE + startup_user(); + #endif } #ifdef AUDIO_ENABLE -void play_goodbye_tone() + +void startup_user() { - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); } + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + #endif - diff --git a/quantum/keymap_extras/keymap_french.h b/quantum/keymap_extras/keymap_french.h index 834c69650e..401bbdf644 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h @@ -4,7 +4,9 @@ #include "keymap.h" // Alt gr +#ifndef ALGR #define ALGR(kc) RALT(kc) +#endif #define NO_ALGR KC_RALT // Normal characters @@ -72,7 +74,7 @@ #define FR_PIPE ALGR(KC_6) #define FR_GRV ALGR(KC_7) #define FR_BSLS ALGR(KC_8) -#define FR_CIRC ALGR(KC_9) +#define FR_CCIRC ALGR(KC_9) #define FR_AT ALGR(KC_0) #define FR_RBRC ALGR(FR_RPRN) #define FR_RCBR ALGR(FR_EQL) From d168822477a495091076aa2a36f0c5f7900d9c8a Mon Sep 17 00:00:00 2001 From: Stanley Lai Date: Sat, 18 Feb 2017 20:56:17 -0800 Subject: [PATCH 5/7] Updated XD60 readme and photos to reflect v2 PCB --- keyboards/xd60/arrow-cluster.JPG | Bin 1875718 -> 0 bytes keyboards/xd60/readme.md | 8 ++++++-- keyboards/xd60/top-view.JPG | Bin 2092542 -> 0 bytes keyboards/xd60/xd60.jpg | Bin 0 -> 2466209 bytes 4 files changed, 6 insertions(+), 2 deletions(-) delete mode 100644 keyboards/xd60/arrow-cluster.JPG delete mode 100644 keyboards/xd60/top-view.JPG create mode 100644 keyboards/xd60/xd60.jpg diff --git a/keyboards/xd60/arrow-cluster.JPG b/keyboards/xd60/arrow-cluster.JPG deleted file mode 100644 index aa03dc08edc3a1d45831059231e19a0f8424a99d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1875718 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 z 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