From 6f5e88277b9ff3c33f4b45b2e3b4b1e07e8ebcc9 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Mon, 12 Feb 2018 12:46:35 -0800 Subject: [PATCH] Update to drashna keymaps (#2381) * Add to list of predefined rgb colors * Change layer colors, to reflect new options * Use Tag Toggle instead * Clean up macros and add breathing indication for OSM Layer * Get Viteri Macropad working properly * Disable unused action features * Use I2C because that's smaller, apparently * Remove viterbi-half code --- keyboards/ergodox_ez/keymaps/drashna/keymap.c | 16 +-- keyboards/viterbi/keymaps/drashna/config.h | 48 ++++++-- keyboards/viterbi/keymaps/drashna/keymap.c | 116 ++++++++---------- keyboards/viterbi/keymaps/drashna/rules.mk | 12 +- users/drashna/drashna.c | 100 +++++---------- users/drashna/drashna.h | 34 +++-- 6 files changed, 162 insertions(+), 164 deletions(-) diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c index 268a1d08..e8e092ad 100644 --- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c +++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `---------------------' `---------------------' */ [_QWERTY] = LAYOUT_ergodox_wrapper( - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), KC_BSPC, _________________QWERTY_L2_________________, KC_LSFT, _________________QWERTY_L3_________________, TG(_GAMEPAD), @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_SPACE,KC_BSPC, KC_END, - TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_RSFT, @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_COLEMAK] = LAYOUT_ergodox_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), KC_BSPC, _________________COLEMAK_L2________________, KC_LSFT, _________________COLEMAK_L3________________, TG(_GAMEPAD), @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_SPACE,KC_BSPC, KC_END, // right hand - TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_RSFT, @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_DVORAK] = LAYOUT_ergodox_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), KC_BSPC, _________________DVORAK_L2_________________, KC_LSFT, _________________DVORAK_L3_________________, TG(_GAMEPAD), @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_SPACE,KC_BSPC, KC_END, // right hand - TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, _________________DVORAK_R2_________________, GUI_T(KC_MINS), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_RSFT, @@ -179,7 +179,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_WORKMAN] = LAYOUT_ergodox_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS), + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TT(_MOUS), KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), KC_BSPC, _________________WORKMAN_L2________________, KC_LSFT, _________________WORKMAN_L3________________, TG(_GAMEPAD), @@ -188,7 +188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_SPACE,KC_BSPC, KC_END, // right hand - TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TT(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_RSFT, diff --git a/keyboards/viterbi/keymaps/drashna/config.h b/keyboards/viterbi/keymaps/drashna/config.h index 617f01bb..8fabe72f 100644 --- a/keyboards/viterbi/keymaps/drashna/config.h +++ b/keyboards/viterbi/keymaps/drashna/config.h @@ -21,16 +21,6 @@ along with this program. If not, see . #include QMK_KEYBOARD_CONFIG_H -/* Use I2C or Serial, not both */ -// #define USE_SERIAL -#define USE_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - #ifdef RGBLIGHT_ENABLE #undef RGBLED_NUM #define RGBLIGHT_ANIMATIONS @@ -46,11 +36,49 @@ along with this program. If not, see . #endif // RGBLIGHT_ENABLE +#define TAPPING_TOGGLE 1 + #ifdef AUDIO_ENABLE #define C6_AUDIO +#define STARTUP_SONG SONG(IMPERIAL_MARCH) +#define GOODBYE_SONG SONG(SONIC_RING) #endif #undef LOCKING_SUPPORT_ENABLE #undef LOCKING_RESYNC_ENABLE +#ifndef NO_DEBUG +#define NO_DEBUG +#endif // NO_DEBUG + +/* disable print */ +#ifndef NO_PRINT +#define NO_PRINT +#endif // NO_PRINT +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#undef PRODUCT +#define PRODUCT Drashnas Viterbi Macro Pad + +#define USE_I2C +#define NO_MUSIC_MODE +#define half_KEYMAP( \ + L00, L01, L02, L03, L04, L05, L06, \ + L10, L11, L12, L13, L14, L15, L16, \ + L20, L21, L22, L23, L24, L25, L26, \ + L30, L31, L32, L33, L34, L35, L36, \ + L40, L41, L42, L43, L44, L45, L46 \ + ) \ + KEYMAP( \ + L00, L01, L02, L03, L04, L05, L06, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + L40, L41, L42, L43, L44, L45, L46, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO \ + ) #endif diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c index c29bae6c..58569524 100644 --- a/keyboards/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/viterbi/keymaps/drashna/keymap.c @@ -16,72 +16,62 @@ extern keymap_config_t keymap_config; #define LMACRO TG(_MACROS) #define DIABLO TG(_DIABLO) #define GAMEPAD TG(_GAMEPAD) -#define MEDIA TG(_MEDIA) +#define MEDIA TT(_MEDIA) #define COVECUBE TG(_COVECUBE) -#ifdef FAUXCLICKY_ENABLE -float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A6, 2); // (_D4, 0.25); -float fauxclicky_released_note[2] = MUSICAL_NOTE(_A6, 2); // (_C4, 0.125); -float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 2); // (_C4, 0.25); -#define AUD_ON FC_ON -#define AUD_OFF FC_OFF -#else -#define AUD_ON AU_ON -#define AUD_OFF AU_OFF -#endif - -enum more_custom_keycodes { - KC_P00 = NEW_SAFE_RANGE -}; + +//enum more_custom_keycodes { +// KC_P00 = NEW_SAFE_RANGE +//}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_NUMLOCK] = KEYMAP( - LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + [_NUMLOCK] = half_KEYMAP( + LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, \ + MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST, \ + KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, \ + KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, \ + KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT \ ), - [_DIABLO] = KEYMAP( - KC_ESC, DIABLO, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_LCTL, KC_D3_3, KC_D3_3, KC_D3_3, KC_D3_3, KC_Z, KC_DIABLO_CLEAR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + [_DIABLO] = half_KEYMAP( + KC_ESC, DIABLO, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L, \ + KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J, \ + KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F, \ + KC_LCTL, KC_D3_3, KC_D3_3, KC_D3_3, KC_D3_3, KC_Z, KC_DIABLO_CLEAR, \ + KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE) \ ), - [_GAMEPAD] = KEYMAP( // Game pad layout designed primarily for Overwatch - LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + [_GAMEPAD] = half_KEYMAP( // Game pad layout designed primarily for Overwatch + LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, \ + MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ + KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, \ + KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \ + KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V \ ), - [_MACROS] = KEYMAP( - LMACRO, KC_OVERWATCH,GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_GLHF, KC_GOODGAME, KC_GGEZ, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + [_MACROS] = half_KEYMAP( + LMACRO, KC_OVERWATCH,GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + KC_C9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + KC_GLHF, KC_GOODGAME, KC_GGEZ, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, XXXXXXX \ ), - [_COVECUBE] = KEYMAP( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + [_COVECUBE] = half_KEYMAP( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ ), - [_MEDIA] = KEYMAP( - KC_MAKE, KC_RESET,XXXXXXX, AUD_ON, AUD_OFF, XXXXXXX, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - MEDIA, XXXXXXX, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ - KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ + [_MEDIA] = half_KEYMAP( + KC_MAKE, KC_RESET,MU_TOG, AUD_ON, AUD_OFF, KC_FXCL, RGB_SAD, \ + MEDIA, XXXXXXX, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, \ + RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD, \ + KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI, \ + KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI \ ) @@ -94,18 +84,20 @@ void matrix_init_keymap(void) { DDRB &= ~(1<<0); PORTB &= ~(1<<0); } + bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_P00: - if (record->event.pressed) { - register_code(KC_KP_0); - unregister_code(KC_KP_0); - register_code(KC_KP_0); - unregister_code(KC_KP_0); - } - return false; - break; - } + + //switch (keycode) { + //case KC_P00: + // if (!record->event.pressed) { + // register_code(KC_KP_0); + // unregister_code(KC_KP_0); + // register_code(KC_KP_0); + // unregister_code(KC_KP_0); + // } + // return false; + // break; + //} return true; } diff --git a/keyboards/viterbi/keymaps/drashna/rules.mk b/keyboards/viterbi/keymaps/drashna/rules.mk index 9af36434..83c37115 100644 --- a/keyboards/viterbi/keymaps/drashna/rules.mk +++ b/keyboards/viterbi/keymaps/drashna/rules.mk @@ -1,7 +1,11 @@ -CONSOLE_ENABLE = no -COMMAND_ENABLE = no # Commands for debug and configuration -TAP_DANCE_ENABLE = yes +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +TAP_DANCE_ENABLE = no RGBLIGHT_ENABLE = yes -MOUSEKEY_ENABLE = no +AUDIO_ENABLE = yes NKRO_ENABLE = yes +CUSTOM_MATRIX = no diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 6039c7c5..0bf83cb9 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -21,6 +21,8 @@ along with this program. If not, see . #if (__has_include("secrets.h")) #include "secrets.h" #else +// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware +// And I'm not familar enough to know which is better or why... PROGMEM const char secret[][64] = { "test1", "test2", @@ -221,7 +223,14 @@ void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); } - +void send_game_macro(const char *str) { + register_code(is_overwatch ? KC_BSPC : KC_ENTER); + unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); + wait_ms(50); + send_string(str); + register_code(KC_ENTER); + unregister_code(KC_ENTER); +} void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -327,124 +336,69 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case KC_SALT: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("Salt, salt, salt..."); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("Salt, salt, salt..."); } return false; break; case KC_MORESALT: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("Please sir, can I have some more salt?!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("Please sir, can I have some more salt?!"); } return false; break; case KC_SALTHARD: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("Your salt only makes me harder, and even more aggressive!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("Your salt only makes me harder, and even more aggressive!"); } return false; break; case KC_GOODGAME: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("Good game, everyone!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("Good game, everyone!"); } return false; break; case KC_GLHF: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("Good luck, have fun!!!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("Good luck, have fun!!!"); } return false; break; case KC_SYMM: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("Left click to win!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("Left click to win!"); } return false; break; case KC_JUSTGAME: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games."); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games."); } return false; break; case KC_TORB: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("That was positively riveting!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("That was positively riveting!"); } return false; break; case KC_AIM: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("That aim is absolutely amazing. It's almost like you're a machine!" SS_TAP(X_ENTER)); + send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!"); wait_ms(3000); - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - SEND_STRING("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!" SS_TAP(X_ENTER)); + send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!"); } return false; break; case KC_C9: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("OMG!!! C9!!!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("OMG!!! C9!!!"); } return false; break; case KC_GGEZ: if (!record->event.pressed) { - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); - wait_ms(50); - SEND_STRING("That was a fantastic game, though it was a bit easy. Try harder next time!"); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!"); } return false; break; @@ -555,7 +509,7 @@ uint32_t layer_state_set_user(uint32_t state) { is_overwatch ? rgblight_mode(17) : rgblight_mode(18); break; case _MEDIA: - rgblight_set_green; + rgblight_set_chartreuse; rgblight_mode(22); break; case _GAMEPAD: @@ -590,12 +544,16 @@ uint32_t layer_state_set_user(uint32_t state) { rgblight_set_green; } else if (default_layer & (1UL << _WORKMAN)) { - rgblight_set_purple; + rgblight_set_goldenrod; } else { rgblight_set_teal; } - rgblight_mode(1); + if (biton32(state) == _MODS) { + rgblight_mode(2); + } else { + rgblight_mode(1); + } break; } } diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 8354c55c..f50bd310 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -58,15 +58,26 @@ along with this program. If not, see . #define rgblight_set_purple rgblight_setrgb (0x7A, 0x00, 0xFF); #define rgblight_set_white rgblight_setrgb (0xFF, 0xFF, 0xFF); #else -#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 (0xB4, 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); -#define rgblight_set_white rgblight_sethsv (0x00, 0x00, 0xFF); +#define rgblight_set_white rgblight_sethsv (0, 0x00, 255); +#define rgblight_set_red rgblight_sethsv (0, 255, 255); +#define rgblight_set_coral rgblight_sethsv (16, 176, 255); +#define rgblight_set_orange rgblight_sethsv (39, 255, 255); +#define rgblight_set_goldenrod rgblight_sethsv (43, 218, 218); +#define rgblight_set_gold rgblight_sethsv (51, 255, 255); +#define rgblight_set_yellow rgblight_sethsv (60, 255, 255); +#define rgblight_set_chartreuse rgblight_sethsv (90, 255, 255); +#define rgblight_set_green rgblight_sethsv (120, 255, 255); +#define rgblight_set_springgreen rgblight_sethsv (150, 255, 255); +#define rgblight_set_turquoise rgblight_sethsv (174, 90, 112); +#define rgblight_set_teal rgblight_sethsv (180, 255, 128); +#define rgblight_set_cyan rgblight_sethsv (180, 255, 255); +#define rgblight_set_azure rgblight_sethsv (186, 102, 255); +#define rgblight_set_blue rgblight_sethsv (240, 255, 255); +#define rgblight_set_purple rgblight_sethsv (270, 255, 255); +#define rgblight_set_magenta rgblight_sethsv (300, 255, 255); +#define rgblight_set_pink rgblight_sethsv (330, 128, 255); + +//#define rgblight_set_ rgblight_sethsv (0, 255, 255); #endif // DRASHNA_SETRGB extern bool is_overwatch; @@ -136,6 +147,9 @@ enum { #define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + #ifdef FAUXCLICKY_ENABLE #define AUD_ON FC_ON #define AUD_OFF FC_OFF @@ -201,4 +215,6 @@ enum { // anything #define ___________ERGODOX_BOTTOM_LEFT_____________ KC_QUOT, KC_LGUI, KC_LBRC, KC_RBRC #define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + + #endif