static void song_color_set(GtkColorButton *button, gpointer user_data) { GjayApp *gjay = (GjayApp*)user_data; GjaySong *s; s = SONG(gjay->selected_songs); colorbutton_get_color(button, &(s->color)); gjay->songs->dirty = TRUE; }
// New keycode KC_LAYO rotates between available default layers (for e.g., // selecting a base layout). Shift+KC_LAYO makes the current one persistent. bool process_record_layout(uint16_t keycode, keyrecord_t *record) { uint32_t default_layer; uint8_t i; #if defined(AUDIO_ENABLE) float saved_song[][2] = SONG(COIN_SOUND); #endif if (keycode != KC_LAYO || !record->event.pressed) { return true; } if (get_mods() & (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))) { // shift pressed // save default layer. whatever the current default layer is, store that eeconfig_update_default_layer(default_layer_state); #if defined(AUDIO_ENABLE) PLAY_SONG(saved_song); #endif } else { // rotate default layer. // find the current default layer default_layer = biton32(default_layer_state); // find next valid default layer for (i = 1; i < defaultlayers_n; i++) { if (defaultlayers[(default_layer + i) % defaultlayers_n]) { break; } } if (i == defaultlayers_n) { // we fell out of the loop without finding another default layer to switch // to. return false; } default_layer = (default_layer + i) % defaultlayers_n; default_layer_set(1U<<default_layer); led_set(host_keyboard_leds()); #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS) PLAY_SONG(default_layer_songs[default_layer]); #endif } return false; }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. { switch(id) { case 0: // this would trigger when you hit a key mapped as M(0) if (record->event.pressed) { return MACRO( D(LSFT), T(LEFT), U(LSFT), D(LCTL), T(X), U(LCTL), T(RIGHT), D(LCTL), T(V), U(LCTL), T(LEFT), END ); // this swaps the characters on either side of the cursor when the macro executes } break; } return MACRO_NONE; }; #ifdef AUDIO_ENABLE float tone_qwerty[][2] = SONG(QWERTY_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty);
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } }; const uint16_t PROGMEM fn_actions[] = { ACTION_SWAP_HANDS_TAP_KEY(KC_SPC), }; #ifdef AUDIO_ENABLE 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 tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer);
{_______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______ }, {_______, KC_VOLD, KC_VOLU, KC_MUTE, BL_TOGG, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______ }, {_______, BL_DEC, BL_INC, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______ }, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MPLY, _______, KC_MPRV, KC_MNXT, _______ } } }; float tone_startup[][2] = { {NOTE_B5, 20}, {NOTE_B6, 8}, {NOTE_DS6, 20}, {NOTE_B6, 8} }; float tone_goodbye[][2] = SONG(GOODBYE_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } /*bool process_record_user(uint16_t keycode, keyrecord_t *record) {*/ /*return true;*/ /*[>switch (keycode) {<]*/ /*[>case QWERTY:<]*/ /*[>return true;<]*/ /*[>}<]*/ /*};*/
}; 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_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 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); } const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}; enum custom_keycodes { S_BSKTC = SAFE_RANGE, S_ODEJY, S_RCKBY, S_DOEDR, S_SCALE, S_ONEUP, S_COIN, S_SONIC, S_ZELDA }; #ifdef AUDIO_ENABLE float song_basketcase[][2] = SONG(BASKET_CASE); float song_ode_to_joy[][2] = SONG(ODE_TO_JOY); float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY); float song_doe_a_deer[][2] = SONG(DOE_A_DEER); float song_scale[][2] = SONG(MUSIC_SCALE_SOUND); float song_coin[][2] = SONG(COIN_SOUND); float song_one_up[][2] = SONG(ONE_UP_SOUND); float song_sonic_ring[][2] = SONG(SONIC_RING); float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE); #endif const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer 0: Default Layer * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp| * |-----------------------------------------------------------|
/* [LAYER_EMPTY] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, _______ }, { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ }, }, */ }; #ifdef AUDIO_ENABLE float tone_my_startup[][2] = SONG(ODE_TO_JOY); float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); float tone_music_on[][2] = SONG(DOE_A_DEER); float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
// MACRODOWN only works in this function switch(id) { case 0: if (record->event.pressed) { register_code(KC_RSFT); } else { unregister_code(KC_RSFT); } break; } return MACRO_NONE; }; #ifdef AUDIO_ENABLE float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float plover_song[][2] = SONG(PLOVER_SOUND); float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); #endif void matrix_init_user(void) { } void matrix_scan_user(void) { }
* | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | | | | Lower| | | | Raise| | | | | * `-----------------------------------------' `-----------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12( \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, XXXXXXX, NORMAN, 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 ) }; #ifdef AUDIO_ENABLE float tone_norman[][2] = SONG(QWERTY_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch(keycode) { case NORMAN: #ifdef AUDIO_ENABLE PLAY_SONG(tone_norman); #endif persistent_default_layer_set(1UL<<_NORMAN);
#ifdef BACKLIGHT_ENABLE backlight_step(); #endif PORTE &= ~(1<<6); } else { unregister_code(KC_RSFT); PORTE |= (1<<6); } return false; } return true; }; bool numpadActive = false; float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND); void matrix_scan_user (void) { uint8_t layer = biton32(layer_state); switch (layer) { case _NUMPAD: if (!numpadActive) { numpadActive = true; PLAY_SONG(tone_numpad_on); } break; default: if (numpadActive) { numpadActive = false; }
}; qk_tap_dance_action_t tap_dance_actions[] = { [ESC_CAP] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), [LFT_HOM] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT, KC_HOME), [DWN_PDN] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_PGDN), [UPP_PUP] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_PGUP), [RGT_END] = ACTION_TAP_DANCE_DOUBLE(KC_RGHT, KC_END) }; #ifdef AUDIO_ENABLE float tone_startup[][2] = SONG(SONIC_RING); //plug in 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(ZELDA_PUZZLE); //music mode 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); }
* ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤ * │ │ │ │ │ │Toggl│ │Toggl│ │Toggl│ BL- │ BL+ │ │ * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘ * \_________\__________\_ Backlight _/ */ [_KEYBOARD] = LAYOUT( \ ___x___, RESET, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, \ ___x___, QWERTY, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, \ ___x___, MUV_DE, MUV_IN, MU_ON, MU_OFF, ___x___, ___x___, ___x___, ___x___, AU_ON, AU_OFF, ___x___, \ ___x___, ___x___, ___x___, ___x___, LOWER, BL_TOGG, BL_TOGG, RAISE, BL_TOGG, BL_DEC, BL_INC, ___x___ \ ) }; #ifdef AUDIO_ENABLE float tone_coin[][2] = SONG(COIN_SOUND); float tone_one_up[][2] = SONG(ONE_UP_SOUND); float tone_ring[][2] = SONG(SONIC_RING); #endif static bool RGUI_PRESSED = false; static bool LGUI_PRESSED = false; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case LOWER: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_coin); #endif layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _KEYBOARD);
* `----------------------------------------' `----------------------------------------' */ [_MOUSE] = KEYMAP( KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, \ KC_TAB, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX, \ KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSPC, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL1, KC_ACL1, KC_ACL0, KC_ACL0, XXXXXXX, MSE, XXXXXXX, KC_RCTL \ ), }; #ifdef AUDIO_ENABLE float tone_colemak[][2] = SONG(COLEMAK_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif persistent_default_layer_set(1UL<<_COLEMAK);
//Tap Dance Settings #include "wanleg.h" //audio settings for one of the tap dances below #ifdef AUDIO_ENABLE float lyrup_song[][2] = SONG(MUSIC_ON_SOUND); float lyrdown_song[][2] = SONG(MUSIC_OFF_SOUND); #endif ///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION START ///// ///// (no need to edit this section) ///// //Enums used to clearly convey the state of the tap dance enum { SINGLE_TAP = 1, SINGLE_HOLD = 2, DOUBLE_TAP = 3, DOUBLE_HOLD = 4, DOUBLE_SINGLE_TAP = 5, //send SINGLE_TAP twice - NOT DOUBLE_TAP TRIPLE_TAP = 6, TRIPLE_HOLD = 7, TRIPLE_SINGLE_TAP = 8 // Add more enums here if you want for triple, quadruple, etc. }; typedef struct { bool is_press_action; int state; } tap; int cur_dance (qk_tap_dance_state_t *state) { if (state->count == 1) {
#include "nyquist.h" #ifdef AUDIO_ENABLE float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif #ifdef SSD1306OLED void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here led_set_user(usb_led); } #endif void matrix_init_kb(void) { #ifdef AUDIO_ENABLE _delay_ms(20); // gets rid of tick PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif // // green led on // DDRD |= (1<<5); // PORTD &= ~(1<<5); // // orange led on // DDRB |= (1<<0); // PORTB &= ~(1<<0); matrix_init_user(); };
#include "secrets.h" #else PROGMEM const char secret[][64] = { "test1", "test2", "test3", "test4", "test5" }; #endif #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); #else float fauxclicky_pressed[][2] = SONG(E__NOTE(_A6)); // change to your tastes float fauxclicky_released[][2] = SONG(E__NOTE(_A6)); // change to your tastes #endif bool faux_click_enabled = true; #ifdef TAP_DANCE_ENABLE //define diablo macro timer variables static uint16_t diablo_timer[4]; static uint8_t diablo_times[] = { 0, 1, 3, 5, 10, 30 }; static uint8_t diablo_key_time[4]; bool check_dtimer(uint8_t dtimer) { // has the correct number of seconds elapsed (as defined by diablo_times) return (timer_elapsed(diablo_timer[dtimer]) < (diablo_key_time[dtimer] * 1000)) ? false : true; };
}; const uint16_t PROGMEM fn_actions[] = { }; #ifdef AUDIO_ENABLE float start_up[][2] = { {440.0*pow(2.0,(14)/12.0), 20}, {440.0*pow(2.0,(26)/12.0), 8}, {440.0*pow(2.0,(18)/12.0), 20}, {440.0*pow(2.0,(26)/12.0), 8} }; float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float 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); } const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case _QWERTY:
#include QMK_KEYBOARD_H #ifdef AUDIO_ENABLE #include "audio.h" float tone_caps[][2] = SONG( CAPS_LOCK_ON_SOUND ); float tone_taps[][2] = SONG( E__NOTE( _A6 ) ); #endif /* Fillers to make layering more clear */ #define _______ KC_TRNS #define XXXXXXX KC_NO #define _BASE 0 #define _CODE 1 #define _NAVI 2 #define _FUNC 3 #define _SYMB 4 #define _NUMB 5 #define _MARO 6 #define _RGB 7 #define _ADJUST 8 #define _GAME 9 /* RGB colors */ #define RGB_Layer_1_Base_Color 0, 128, 0 #define RGB_Layer_2_Base_Color 0,0,0 #define RGB_Layer_3_Base_Color 0,0,0 #define RGB_Layer_4_Base_Color 0,0,0 #define RGB_Layer_5_Base_Color 0,0,0 #define RGB_Layer_6_Base_Color 64, 0, 64 #define RGB_Layer_7_Base_Color 0, 0,0
* |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, PLOVER, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; #ifdef AUDIO_ENABLE float plover_song[][2] = SONG(PLOVER_SOUND); float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); #endif uint32_t layer_state_set_user(uint32_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { print("mode just switched to qwerty and this is a huge string\n"); set_single_persistent_default_layer(_QWERTY); } return false;
UNIWIN, UNILIN, DISFACE, TFLIP, TPUT, SHRUG, RANDIG, // Tap_Dance nums RAI = 0, LOW, SUP }; #ifdef AUDIO_ENABLE #include "audio.h" float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_swcole[][2] = SONG(QWERTY_SOUND); float tone_capslock_on[][2] = SONG(CAPS_LOCK_ON_SOUND); float tone_capslock_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); float tone_ctrl_mod[][2] = SONG(COIN_SOUND); float tone_copy[][2] = SONG(SCROLL_LOCK_ON_SOUND); float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND); float uniwin[][2] = SONG(UNICODE_WINDOWS); float unilin[][2] = SONG(UNICODE_LINUX); #endif #ifdef TAP_DANCE_ENABLE #define TAPPING_TERM 200
* |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP( \ _______, RESET, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, RESET, KC_DEL, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; #ifdef AUDIO_ENABLE float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty);
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "drashna.h" #include "version.h" #include "eeprom.h" #include "tap_dances.h" #include "rgb_stuff.h" float tone_copy[][2] = SONG(SCROLL_LOCK_ON_SOUND); float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND); static uint16_t copy_paste_timer; userspace_config_t userspace_config; // Helper Functions // This block is for all of the gaming macros, as they were all doing // the same thing, but with differring text sent. bool send_game_macro(const char *str, keyrecord_t *record, bool override) { if (!record->event.pressed || override) { clear_keyboard(); tap(userspace_config.is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50);
* | | | | | | | | | | | | | | | | * |-------------+------+------+------+------+------+------+------+------+------+------+------+------+------+-------------| * | | | | |||||||| | | |||||||| | | |||||||| | | | | * ,----------------------------------------------------------------------------------------------------------------------. */ [_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \ _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI,_______, _______, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ _______, _______, BL_TOGG, BL_BRTG, BL_INC , BL_DEC ,_______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______,_______,_______, _______,_______, _______, _______, _______, _______, _______ \ ) }; #ifdef AUDIO_ENABLE float tone_qwerty[][2] = SONG(QWERTY_SOUND); #endif void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { print("mode just switched to qwerty and this is a huge string\n"); set_single_persistent_default_layer(_QWERTY); } return false;
_______, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, KC_BTN4, C(KC_LEFT), KC_MS_L, KC_MS_D, KC_MS_R, C(KC_RIGHT), XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_END, KC_BTN3, C(KC_DOWN), KC_WH_U, KC_WH_D, SC(KC_TAB), C(KC_TAB), _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN1, _______, _______, _______, _______, _______ ) }; #ifdef AUDIO_ENABLE float colemak_song[][2] = SONG(COLEMAK_SOUND); float qwerty_song[][2] = SONG(QWERTY_SOUND); #endif void set_colemak(void) { #ifdef AUDIO_ENABLE stop_all_notes(); PLAY_SONG(colemak_song); #endif set_single_persistent_default_layer(_COLEMAK); } void set_qwerty(void) { #ifdef AUDIO_ENABLE stop_all_notes(); PLAY_SONG(qwerty_song);
{_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } }; #ifdef AUDIO_ENABLE float tone_startup[][2] = { {NOTE_B5, 20}, {NOTE_B6, 8}, {NOTE_DS6, 20}, {NOTE_B6, 8} }; float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) {
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS}, {KC_LCTL, RAISE, KC_LALT, LOWER, KC_SPC, RSFT_T(KC_BSPC), TD(TD_SPC_ENT), RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT} }, [_MUSIC] = { {MARIO, MARIOE, OVERWATCH, DOOM, DISNEY, NUMBERONE, CABBAGE, OLDSPICE, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } }; #ifdef AUDIO_ENABLE float guitar[][2] = SONG(GUITAR_SOUND); float mario[][2] = SONG(MARIO_THEME); float marioe[][2] = SONG(MARIO_GAMEOVER); float overwatch[][2] = SONG(OVERWATCH_THEME); float doom[][2] = SONG(E1M1_DOOM); float disney[][2] = SONG(DISNEY_SONG); float numberone[][2] = SONG(NUMBER_ONE); float cabbage[][2] = SONG(CABBAGE_SONG); float oldspice[][2] = SONG(OLD_SPICE); #endif void setLayer(int layer) { if (layer == _COLEMAK) { #ifdef AUDIO_ENABLE stop_all_notes(); PLAY_SONG(marioe);
[_ADJUST] = KEYMAP( RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, \ _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_DEL, _______, _______, _______, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, BL_DEC, BL_INC, BL_STEP, BL_TOGG, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) }; #ifdef AUDIO_ENABLE float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif // define variables for reactive RGB bool RGB_INIT = false; bool TOG_STATUS = false; bool NUMLAY_STATUS = false; int RGB_current_mode; void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer);
* | NULL | NULL | NULL |AudOff|MusOff|QWERTY|NUMPAD|Mus On|Aud On| NULL |Voice+|SysReq| * |------+------+------+------+------+-------------+------+------+------+------+------| * | Reset| NULL | LOCK | NULL | | NULL | | NULL |AGNorm|Voice-|AGSwap| * `-----------------------------------------------------------------------------------' */ [_FUNCTN] = LAYOUT_planck_grid( KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PWR, KC_WAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_OFF, MU_OFF, QWERTY, NUMPAD, MU_ON, AU_ON, XXXXXXX, MUV_IN, KC_SYSREQ, RESET, XXXXXXX, LOCK, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, AG_NORM, MUV_DE, AG_SWAP ) }; #ifdef AUDIO_ENABLE float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_numpad[][2] = SONG(NUM_LOCK_ON_SOUND); float tone_oneshot[][2] = SONG(TERMINAL_SOUND); float tone_dyn_macro_rec[][2] = SONG(SONIC_RING); float tone_dyn_macro_stop[][2] = SONG(COIN_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif void press_key(uint16_t key) { register_code(key); unregister_code(key); } bool process_record_user(uint16_t keycode, keyrecord_t *record) {