summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/config.h2
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c186
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk7
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna/keymap.c87
-rw-r--r--keyboards/handwired/woodpad/config.h1
-rw-r--r--keyboards/handwired/woodpad/keymaps/drashna/config.h2
-rw-r--r--keyboards/handwired/woodpad/keymaps/drashna/keymap.c131
-rw-r--r--keyboards/handwired/woodpad/keymaps/drashna/rules.mk4
-rw-r--r--keyboards/orthodox/keymaps/drashna/config.h11
-rw-r--r--keyboards/orthodox/keymaps/drashna/keymap.c236
-rw-r--r--keyboards/orthodox/keymaps/drashna/rules.mk9
-rw-r--r--keyboards/viterbi/keymaps/drashna/config.h4
-rw-r--r--keyboards/viterbi/keymaps/drashna/keymap.c265
-rw-r--r--keyboards/viterbi/keymaps/drashna/rules.mk3
14 files changed, 490 insertions, 458 deletions
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
index 5fef1e0d8c..c1ebf174a3 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
@@ -13,6 +13,4 @@
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#endif // RGBLIGHT_ENABLE
-#define FORCE_NKRO
-
#endif \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
index 5440c33460..bdc4eed486 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
@@ -48,17 +48,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//define layer change stuff for underglow indicator
bool skip_leds = false;
-#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
-#define rgblight_set_red rgblight_sethsv(0x00, 0xFF, 0xFF);
-#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
-#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
-#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
-#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
-#define rgblight_set_urine rgblight_sethsv (0x3C, 0xFF, 0xFF);
-#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
-//This is both for underglow, and Diablo 3 macros
-
-static uint8_t current_layer = 0;
+#ifdef RGBLIGHT_ENABLE
+#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
+#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF);
+#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
+#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
+#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
+#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
+#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
+#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
+#endif
//define diablo macro timer variables
static uint16_t diablo_timer[4];
@@ -136,11 +135,13 @@ void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
// and set the underglow to red, because red == bad
void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 4) {
+#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_mode(1);
rgblight_setrgb(0xff,0x00,0x00);
- reset_keyboard();
+#endif
reset_tap_dance(state);
+ reset_keyboard();
}
}
@@ -229,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSHIFT, LCTL_T(KC_Z),KC_X, KC_C, KC_V, KC_B, TG(OVERWATCH),
LT(SYMB,KC_GRAVE),KC_QUOTE, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
- ALT_T(KC_APPLICATION), KC_LEAD,
+ ALT_T(KC_APPLICATION), KC_LGUI,
KC_HOME,
KC_SPACE, KC_BSPACE, KC_END,
@@ -237,8 +238,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE),
TG(OVERWATCH), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
- KC_LALT, CTL_T(KC_ESCAPE),
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB),
+ KC_LEAD, CTL_T(KC_ESCAPE),
KC_PGUP,
KC_PGDOWN, KC_DELETE, KC_ENTER
),
@@ -280,7 +281,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
KC_H, KC_N, KC_E, KC_I, KC_O, GUI_T(KC_QUOTE),
TG(OVERWATCH),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB),
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_DELETE, KC_ENT
@@ -323,7 +324,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
TG(OVERWATCH),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT,
- KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_FN1,
+ KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(SYMB),
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_DELETE, KC_ENT
@@ -366,7 +367,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE,
TG(OVERWATCH),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB),
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_DELETE, KC_ENT
@@ -398,7 +399,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
VRSN, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_DVORAK,
KC_MAKEQMK, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE,
TD(TD_FLSH), KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK,
- KC_NO, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON,
+ KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@@ -540,16 +541,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-const uint16_t PROGMEM fn_actions[] = {
- [1] = ACTION_LAYER_TAP_TOGGLE(SYMB),
- // FN1 - Momentary Layer 1 (Symbols)
-};
-
-void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
-{
-
-}
-
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
@@ -558,6 +549,9 @@ void persistent_default_layer_set(uint16_t default_layer) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+#ifdef CONSOLE_ENABLE
+ xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed);
+#endif
switch (keycode) {
// dynamically generate these.
case EPRM:
@@ -574,7 +568,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
case RGB_SLD:
if (record->event.pressed) {
+#ifdef RGBLIGHT_ENABLE
rgblight_mode(1);
+#endif
}
return false;
break;
@@ -668,8 +664,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
break;
case KC_MAKEQMK:
- if (record->event.pressed) {
- SEND_STRING("make ergodox_ez:drashna-custom:teensy"SS_TAP(X_ENTER));
+ if (!record->event.pressed) {
+ SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":teensy"SS_TAP(X_ENTER));
}
return false;
break;
@@ -678,10 +674,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
+#ifdef TAP_DANCE_ENABLE
// Sends the key press to system, but only if on the Diablo layer
void send_diablo_keystroke (uint8_t diablo_key) {
- if (current_layer == DIABLO) {
+ if (biton32(layer_state) == DIABLO) {
switch (diablo_key) {
case 0:
SEND_STRING("1");
@@ -713,16 +710,33 @@ void run_diablo_macro_check(void) {
}
+#endif
+
+
void matrix_init_user(void) { // Runs boot tasks for keyboard
+#ifdef RGBLIGHT_ENABLE
+ uint8_t default_layer = eeconfig_read_default_layer();
+ rgblight_enable();
+ if (default_layer & (1UL << COLEMAK)) {
+ rgblight_set_magenta;
+ }
+ else if (default_layer & (1UL << DVORAK)) {
+ rgblight_set_green;
+ }
+ else if (default_layer & (1UL << WORKMAN)) {
+ rgblight_set_purple;
+ }
+ else {
+ rgblight_set_teal;
+ }
+#endif
};
LEADER_EXTERNS();
void matrix_scan_user(void) { // runs frequently to update info
uint8_t modifiders = get_mods();
- uint8_t layer = biton32(layer_state);
- static bool has_layer_changed = true;
if (!skip_leds) {
ergodox_board_led_off();
@@ -744,70 +758,29 @@ void matrix_scan_user(void) { // runs frequently to update info
}
}
- if (layer != current_layer) {
- has_layer_changed = true;
- current_layer = layer;
- }
- // Check layer, and apply color if its changed since last check
- if (has_layer_changed) {
- uint8_t default_layer = 0;
- default_layer = eeconfig_read_default_layer();
-
- switch (layer) {
- case SYMB:
- rgblight_set_blue;
- rgblight_mode(2);
- break;
- case OVERWATCH:
- rgblight_set_orange;
- rgblight_mode(17);
- break;
- case DIABLO:
- rgblight_set_red;
- rgblight_mode(5);
- break;
- case MOUS:
- rgblight_set_urine;
- rgblight_mode(1);
- break;
- case 7:
- rgblight_sethsv (255,255,255);
- rgblight_mode(1);
- break;
- default:
- if (default_layer & (1UL << COLEMAK)) {
- rgblight_set_green;
- }
- else if (default_layer & (1UL << DVORAK)) {
- rgblight_set_magenta;
- }
- else if (default_layer & (1UL << WORKMAN)) {
- rgblight_set_purple;
- }
- else {
- rgblight_set_teal;
- }
- rgblight_mode(1);
- break;
- }
- has_layer_changed = false;
- }
// Run Diablo 3 macro checking code.
+#ifdef TAP_DANCE_ENABLE
run_diablo_macro_check();
-#ifdef LEADER_KEYS
+#endif
LEADER_DICTIONARY() {
leading = false;
leader_end();
SEQ_ONE_KEY(KC_C) {
SEND_STRING("Covecube");
}
+ SEQ_ONE_KEY(KC_D) {
+ SEND_STRING("StableBit CloudDrive");
+ }
+ SEQ_ONE_KEY(KC_L) {
+ register_code(KC_LGUI);
+ register_code(KC_L);
+ unregister_code(KC_L);
+ unregister_code(KC_LGUI);
+ }
SEQ_TWO_KEYS(KC_S, KC_D) {
SEND_STRING("StableBit DrivePool");
}
- SEQ_TWO_KEYS(KC_C, KC_D) {
- SEND_STRING("StableBit CloudDrive");
- }
SEQ_TWO_KEYS(KC_S, KC_C) {
SEND_STRING("StableBit Scanner");
}
@@ -815,6 +788,45 @@ void matrix_scan_user(void) { // runs frequently to update info
SEND_STRING("StableBit Troubleshooter");
}
}
-#endif
};
+uint32_t layer_state_set_kb(uint32_t state) {
+#ifdef RGBLIGHT_ENABLE
+ uint8_t default_layer = eeconfig_read_default_layer();
+
+ switch (biton32(state)) {
+ case SYMB:
+ rgblight_set_blue;
+ rgblight_mode(2);
+ break;
+ case OVERWATCH:
+ rgblight_set_orange;
+ rgblight_mode(17);
+ break;
+ case DIABLO:
+ rgblight_set_red;
+ rgblight_mode(5);
+ break;
+ case MOUS:
+ rgblight_set_yellow;
+ rgblight_mode(1);
+ break;
+ default:
+ if (default_layer & (1UL << COLEMAK)) {
+ rgblight_set_green;
+ }
+ else if (default_layer & (1UL << DVORAK)) {
+ rgblight_set_magenta;
+ }
+ else if (default_layer & (1UL << WORKMAN)) {
+ rgblight_set_purple;
+ }
+ else {
+ rgblight_set_teal;
+ }
+ rgblight_mode(1);
+ break;
+ }
+#endif
+ return state;
+}
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk b/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk
index 5ab769c688..0fa7cd2277 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk
@@ -1,10 +1,13 @@
TAP_DANCE_ENABLE = yes
-SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-COMMAND_ENABLE = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+COMMAND_ENABLE = yes # Commands for debug and configuration
RGBLIGHT_ENABLE = yes
MIDI_ENABLE = no
CONSOLE_ENABLE = no
LEADER_KEYS = no
+
+EXTRAFLAGS = -flto
+
ifndef QUANTUM_DIR
include ../../../../Makefile
endif
diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
index cef0e9c39f..97ede94318 100644
--- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
@@ -17,8 +17,6 @@
#define MOUS 2
#ifdef LAYER_UNDERGLOW_LIGHTING
-bool has_layer_changed = true;
-
#define rgblight_set_teal rgblight_setrgb(0x00, 0xFF, 0xFF)
#define rgblight_set_red rgblight_setrgb(0xFF, 0x00, 0x00)
#define rgblight_set_blue rgblight_setrgb(0x00, 0xFF, 0x00);
@@ -100,20 +98,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
+void matrix_init_user(void) {
+#ifdef LAYER_UNDERGLOW_LIGHTING
+ rgblight_enable();
+ rgblight_set_teal;
+ rgblight_mode(1);
+#endif
-
+}
void matrix_scan_user(void) {
- uint8_t new_layer = biton32(layer_state);
-
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
#ifdef LAYER_UNDERGLOW_LIGHTING
- static uint8_t old_layer = 0;
uint8_t modifiders = get_mods();
if ( modifiders & MODS_SHIFT_MASK) {
@@ -124,44 +125,10 @@ void matrix_scan_user(void) {
}
if ( modifiders & MODS_ALT_MASK) {
ergodox_right_led_3_on();
- }
-
- if (old_layer != new_layer) {
- has_layer_changed = true;
- old_layer = new_layer;
- }
- if (has_layer_changed) {
- switch (new_layer) {
- case 1:
- rgblight_set_red;
- break;
- case 2:
- rgblight_set_blue;
- break;
- case 3:
- rgblight_set_green;
- break;
- case 4:
- rgblight_set_yellow;
- break;
- case 5:
- rgblight_setrgb(0xFF, 0xFF, 0x00);
- break;
- case 6:
- rgblight_setrgb(0xFF, 0xFF, 0x00);
- break;
- case 7:
- rgblight_setrgb(0xFF, 0xFF, 0xFF);
- break;
- default:
- rgblight_set_teal;
- break;
- }
- has_layer_changed = false;
- }
-
-#else
- switch (new_layer) {
+ }
+#else
+ uint8_t layer = biton32(layer_state);
+ switch (layer) {
case 1:
ergodox_right_led_1_on();
break;
@@ -193,3 +160,35 @@ void matrix_scan_user(void) {
}
#endif
};
+
+uint32_t layer_state_set_kb(uint32_t state) {
+#ifdef LAYER_UNDERGLOW_LIGHTING
+ switch (biton32(state)) {
+ case 1:
+ rgblight_set_red;
+ break;
+ case 2:
+ rgblight_set_blue;
+ break;
+ case 3:
+ rgblight_set_green;
+ break;
+ case 4:
+ rgblight_set_yellow;
+ break;
+ case 5:
+ rgblight_setrgb(0xFF, 0xFF, 0x00);
+ break;
+ case 6:
+ rgblight_setrgb(0xFF, 0xFF, 0x00);
+ break;
+ case 7:
+ rgblight_setrgb(0xFF, 0xFF, 0xFF);
+ break;
+ default:
+ rgblight_set_teal;
+ break;
+ }
+#endif
+ return state;
+}
diff --git a/keyboards/handwired/woodpad/config.h b/keyboards/handwired/woodpad/config.h
index 2c8a8bef7d..39a466850e 100644
--- a/keyboards/handwired/woodpad/config.h
+++ b/keyboards/handwired/woodpad/config.h
@@ -53,6 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
+#define CATERINA_BOOTLOADER
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCING_DELAY 5
diff --git a/keyboards/handwired/woodpad/keymaps/drashna/config.h b/keyboards/handwired/woodpad/keymaps/drashna/config.h
index 2b151606da..be1e4df598 100644
--- a/keyboards/handwired/woodpad/keymaps/drashna/config.h
+++ b/keyboards/handwired/woodpad/keymaps/drashna/config.h
@@ -23,7 +23,7 @@
#define TAPPING_TERM 200
#endif // TAP_DANCE_ENABLE
-#define CATERINA_BOOTLOADER
+
#ifdef RGBLIGHT_ENABLE
diff --git a/keyboards/handwired/woodpad/keymaps/drashna/keymap.c b/keyboards/handwired/woodpad/keymaps/drashna/keymap.c
index f6476ef66a..4a2893e4aa 100644
--- a/keyboards/handwired/woodpad/keymaps/drashna/keymap.c
+++ b/keyboards/handwired/woodpad/keymaps/drashna/keymap.c
@@ -29,15 +29,22 @@
#define _______ KC_TRNS
#define XXXXXXX KC_NO
+#ifdef RGBLIGHT_ENABLE
+#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
+#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF);
+#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
+#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
+#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
+#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
+#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
+#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
+#endif
//define layer change stuff for underglow indicator
bool skip_leds = false;
bool is_overwatch = false;
-//This is both for underglow, and Diablo 3 macros
-bool has_layer_changed = false;
-static uint8_t current_layer;
#ifdef TAP_DANCE_ENABLE
//define diablo macro timer variables
@@ -65,7 +72,8 @@ enum custom_keycodes {
KC_DOOMFIST,
KC_JUSTGAME,
KC_GLHF,
- KC_TORB
+ KC_TORB,
+ KC_MAKE
};
#ifdef TAP_DANCE_ENABLE
@@ -163,7 +171,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_MEDIA] = KEYMAP( /* Base */
RESET, KC_MUTE, KC_VOLD, KC_VOLU,\
- _______, _______, RGB_HUI, RGB_HUD, \
+ KC_MAKE, _______, RGB_HUI, RGB_HUD, \
KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, \
RGB_TOG, RGB_MOD, RGB_SAI, RGB_VAI, \
_______, _______, RGB_SAD, RGB_VAD \
@@ -171,22 +179,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-const uint16_t PROGMEM fn_actions[] = {
-
-};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- switch (id) {
- case 0:
- if (record->event.pressed) {
- // Output Keyboard Firmware info
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP );
- return false;
- }
- }
- return MACRO_NONE;
-};
void numlock_led_on(void) {
PORTF |= (1<<7);
}
@@ -216,11 +209,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
break;
#endif
- case KC_OVERWATCH: // reset all Diable timers, disabling them
+ case KC_OVERWATCH:
if (record->event.pressed) {
is_overwatch = !is_overwatch;
- has_layer_changed = true;
}
+#ifdef RGBLIGHT_ENABLE
+ is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
+#endif
return false;
break;
case KC_SALT:
@@ -324,6 +319,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
+ case KC_MAKE:
+ if (!record->event.pressed) {
+ SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
+ }
+ return false;
+ break;
+
}
return true;
@@ -332,7 +334,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Sends the key press to system, but only if on the Diablo layer
void send_diablo_keystroke(uint8_t diablo_key) {
- if (current_layer == _DIABLO) {
+ if (biton32(layer_state) == _DIABLO) {
switch (diablo_key) {
case 0:
SEND_STRING("1");
@@ -365,10 +367,16 @@ void run_diablo_macro_check(void) {
}
#endif
void matrix_init_user(void) {
- has_layer_changed = true;
// set Numlock LED to output and low
DDRF |= (1<<7);
PORTF &= ~(1<<7);
+
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable();
+ rgblight_set_teal;
+ rgblight_mode(1);
+#endif
+
if (!(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK)) ){
register_code(KC_NUMLOCK);
unregister_code(KC_NUMLOCK);
@@ -376,69 +384,46 @@ void matrix_init_user(void) {
}
void matrix_scan_user(void) {
- uint8_t layer = biton32(layer_state);
-#ifdef RGBLIGHT_ENABLE
-
numlock_led_off();
- // Check layer, and apply color if its changed since last check
- switch (layer) {
+ if (is_overwatch && biton32(layer_state) == _MACROS) {
+ numlock_led_on();
+ }
+
+ // Run Diablo 3 macro checking code.
+#ifdef TAP_DANCE_ENABLE
+ run_diablo_macro_check();
+#endif
+}
+
+uint32_t layer_state_set_kb(uint32_t state) {
+#ifdef RGBLIGHT_ENABLE
+// Check layer, and apply color if its changed since last check
+ switch (biton32(state)) {
case _NAV:
- if (has_layer_changed) {
- rgblight_sethsv(240, 255, 255);
- rgblight_mode(1);
- }
+ rgblight_set_blue;
+ rgblight_mode(1);
break;
case _MACROS:
- if (has_layer_changed) {
- rgblight_sethsv(30, 255, 255);
- if (is_overwatch) {
- rgblight_mode(17);
- } else {
- rgblight_mode(18);
- }
- }
- if (is_overwatch) {
- numlock_led_on();
- }
+ rgblight_set_orange;
+ is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
break;
case _DIABLO:
- if (has_layer_changed) {
- rgblight_sethsv(0, 255, 255);
- rgblight_mode(5);
- }
+ rgblight_set_red;
+ rgblight_mode(5);
break;
case _MEDIA:
- if (has_layer_changed) {
- rgblight_sethsv(120, 255, 255);
- rgblight_mode(22);
- }
+ rgblight_set_green;
+ rgblight_mode(22);
break;
default:
- if (has_layer_changed) {
- rgblight_sethsv(195, 255, 255);
- rgblight_mode(1);
- }
+ rgblight_set_teal;
+ rgblight_mode(1);
break;
}
- #endif
- // Update layer status at the end, so this sets the default color
- // rather than relying on the init, which was unreliably...
- // Probably due to a timing issue, but this requires no additional code
- if (current_layer == layer) {
- has_layer_changed = false;
- }
- else {
- has_layer_changed = true;
- current_layer = layer;
- }
- // Run Diablo 3 macro checking code.
-#ifdef TAP_DANCE_ENABLE
- run_diablo_macro_check();
#endif
+ return state;
}
-
-
void led_set_user(uint8_t usb_led) {
-
+
}
diff --git a/keyboards/handwired/woodpad/keymaps/drashna/rules.mk b/keyboards/handwired/woodpad/keymaps/drashna/rules.mk
index 0aeb409a8d..b6c5ed3bd5 100644
--- a/keyboards/handwired/woodpad/keymaps/drashna/rules.mk
+++ b/keyboards/handwired/woodpad/keymaps/drashna/rules.mk
@@ -1,10 +1,12 @@
TAP_DANCE_ENABLE = yes
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-COMMAND_ENABLE = no # Commands for debug and configuration
+COMMAND_ENABLE = yes # Commands for debug and configuration
RGBLIGHT_ENABLE = yes
MIDI_ENABLE = no
CONSOLE_ENABLE = no
+EXTRAFLAGS = -flto
+
ifndef QUANTUM_DIR
include ../../../../Makefile
endif
diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h
index d79fd302e8..fc483b08e6 100644
--- a/keyboards/orthodox/keymaps/drashna/config.h
+++ b/keyboards/orthodox/keymaps/drashna/config.h
@@ -40,9 +40,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#endif
+/* key combination for command */
+#ifdef IS_COMMAND
+#undef IS_COMMAND
+#endif
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LALT)) \
+)
+
+
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
-#define RGBLED_NUM 12 // Number of LEDs
+#define RGBLED_NUM 16 // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c
index a15fa6f753..de7d4e1080 100644
--- a/keyboards/orthodox/keymaps/drashna/keymap.c
+++ b/keyboards/orthodox/keymaps/drashna/keymap.c
@@ -45,6 +45,7 @@ enum custom_keycodes {
LOWER,
RAISE,
ADJUST,
+ KC_MAKE
};
// Fillers to make layering more clear
@@ -52,21 +53,17 @@ enum custom_keycodes {
#define XXXXXXX KC_NO
#ifdef RGBLIGHT_ENABLE
-//define layer change stuff for underglow indicator
-#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
-#define rgblight_set_red rgblight_sethsv(0x00, 0xFF, 0xFF);
-#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
-#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
-#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
-#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
-#define rgblight_set_urine rgblight_sethsv (0x3C, 0xFF, 0xFF);
-#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
-
-//This is both for underglow, and Diablo 3 macros
-bool has_layer_changed = true;
-static uint8_t current_layer = 10;
+#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
+#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF);
+#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
+#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
+#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
+#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
+#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
+#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
#endif
+
#ifdef TAP_DANCE_ENABLE
enum {
TD_FLSH = 0,
@@ -84,8 +81,8 @@ void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
rgblight_mode(1);
rgblight_setrgb(0xff, 0x00, 0x00);
#endif
- reset_keyboard();
reset_tap_dance(state);
+ reset_keyboard();
}
}
@@ -137,9 +134,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_ADJUST] = KEYMAP( \
- _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
+ KC_MAKE, RESET, TD(TD_FLSH), _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, _______, XXXXXXX, _______, _______, XXXXXXX, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN, _______, \
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MAGIC_TOGGLE_NKRO, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MAGIC_TOGGLE_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY \
)
@@ -149,6 +146,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
+float tone_workman[][2] = SONG(PLOVER_SONG);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
@@ -159,23 +157,23 @@ void persistent_default_layer_set(uint16_t default_layer) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
- if (record->event.pressed) {
+ if (record->event.pressed) {
#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_qwerty);
+ PLAY_SONG(tone_qwerty);
#endif
- persistent_default_layer_set(1UL<<_QWERTY);
- }
- return false;
- break;
+ persistent_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
case COLEMAK:
- if (record->event.pressed) {
+ if (record->event.pressed) {
#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_colemak);
+ PLAY_SONG(tone_colemak);
#endif
- persistent_default_layer_set(1UL<<_COLEMAK);
- }
- return false;
- break;
+ persistent_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
case DVORAK:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
@@ -188,102 +186,124 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case WORKMAN:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_dvorak);
+ PLAY_SONG(tone_workman);
#endif
persistent_default_layer_set(1UL << _WORKMAN);
}
return false;
break;
case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- l