#include "eeconfig.h"
#include "action_layer.h"
#include "keymap_colemak.h"
-#include "extra_functions.c"
extern keymap_config_t keymap_config;
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
+#undef C
#define C(n) RCTL(n)
#define CADKEY RCTL(RALT(KC_DEL))
unregister_code(keycode);
};
-void persistant_default_layer_set(uint16_t default_layer){
+void persistent_default_layer_set(uint16_t default_layer){
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
};
TFLIP,
TPUT,
SHRUG,
- PENIS,
- BOOBS,
- Sil_Pas,
- Sil_Usr,
- UltiU,
- UltiP,
- TappyR,
- TappyL,
RANDIG,
- FINGER,
// Tap_Dance nums
RAI = 0,
LOW,
#ifdef TAP_DANCE_ENABLE
#define TAPPING_TERM 200
-uint8_t Lstate = 0, Rstate = 0;
-uint32_t Ltimer = 0, Rtimer = 0;
-uint32_t Ltimes[3], Rtimes[4]; // Ratio of tap times should be about 1.335 (L/R)
-void rhythm_parse(void){
- int L = Ltimes[0] + Ltimes[1] + Ltimes[2]; // Start to end time
- int R = Rtimes[0] + Rtimes[1] + Rtimes[2] + Rtimes[3];
- if(abs(R-L) > 10){
- tap(KC_N); tap(KC_O);
- return;
- } else {
- L = (L / 3)*100; // Average time per tap * 100
- R = (R / 4);
- if(abs(abs(L/R)-133) > 1){
- tap(KC_N); tap(KC_O);
- tap(KC_P); tap(KC_E);
- return;
- } else {
- tap(KC_O); tap(KC_K);
- return;
- }
- }
-};
-
void dance_raise_press(qk_tap_dance_state_t *state, void *user_data){// Called on each tap
switch(state->count){ // Only turn the layer on once
case 1:
update_tri_layer(_LOWER, _RAISE, _ADJUST);
layer_on(_UNICODES);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_ctrl_mod, false, 0);
+ PLAY_SONG(tone_ctrl_mod);
#endif
break;
}
};
#endif
-#ifdef UNICODE_ENABLE
+//#ifdef UNICODE_ENABLE
// Unicode shortcuts
-#define IBANG UC(0x203D)
-#define RAROW UC(0x2192)
-#define LAROW UC(0x2190)
-#define DEGREE UC(0x00B0)
-#define OMEGA UC(0x03A9)
-#define WOMEGA UC(0x03C9)
-#define MICRO UC(0x00B5)
-#define PLUMIN UC(0x00B1)
-#define SUPA2 UC(0x00B2)
-#define ROMAN1 UC(0x2160)
-#define ROMAN2 UC(0x2161)
-#define ROMAN3 UC(0x2162)
-#define ROMAN4 UC(0x2163)
-#define ROMAN5 UC(0x2164)
-#define ROMAN6 UC(0x2165)
-#define ROMAN7 UC(0x2166)
-#define roman1 UC(0x2170)
-#define roman2 UC(0x2171)
-#define roman3 UC(0x2172)
-#define roman4 UC(0x2173)
-#define roman5 UC(0x2174)
-#define roman6 UC(0x2175)
-#define roman7 UC(0x2176)
+#define IBANG X(0x203D)
+#define RAROW X(0x2192)
+#define LAROW X(0x2190)
+#define DEGREE X(0x00B0)
+#define OMEGA X(0x03A9)
+#define WOMEGA X(0x03C9)
+#define MICRO X(0x00B5)
+#define PLUMIN X(0x00B1)
+#define SUPA2 X(0x00B2)
+#define ROMAN1 X(0x2160)
+#define ROMAN2 X(0x2161)
+#define ROMAN3 X(0x2162)
+#define ROMAN4 X(0x2163)
+#define ROMAN5 X(0x2164)
+#define ROMAN6 X(0x2165)
+#define ROMAN7 X(0x2166)
+#define roman1 X(0x2170)
+#define roman2 X(0x2171)
+#define roman3 X(0x2172)
+#define roman4 X(0x2173)
+#define roman5 X(0x2174)
+#define roman6 X(0x2175)
+#define roman7 X(0x2176)
#ifdef UNICODEMAP_ENABLE // For Unicode characters larger than 0x8000. Send with X(<unicode>)
enum Ext_Unicode{
#define TMBL X(TUMBLER)
#endif
-#endif
+//#endif
static uint16_t key_timer;
static uint8_t caps_status = 0;
switch (keycode) {
case COLEMAK:
if(record->event.pressed){
- persistant_default_layer_set(1UL<<_COLEMAK);
+ persistent_default_layer_set(1UL<<_COLEMAK);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+ PLAY_SONG(tone_colemak);
#endif
}
return false;
break;
case SWCOLE:
if(record->event.pressed){
- persistant_default_layer_set(1UL<<_SWCOLE);
+ persistent_default_layer_set(1UL<<_SWCOLE);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_swcole, false, 0);
+ PLAY_SONG(tone_swcole);
#endif
}
return false;
break;
- #ifndef TAP_DANCE_ENABLE
case RAISE:
if(record->event.pressed){
layer_on(_RAISE);
}
return false;
break;
- #endif
- case SHFT_CAP:
+ case SHFT_CAP:
if(record->event.pressed){
key_timer = timer_read(); // if the key is being pressed, we start the timer.
register_code(KC_LSHIFT);
if(caps_status == 0){
caps_status = 1;
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_capslock_on, false, 0);
+ PLAY_SONG(tone_capslock_on);
#endif
} else {
caps_status = 0;
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_capslock_off, false, 0);
+ PLAY_SONG(tone_capslock_off);
#endif
}
}
if (timer_elapsed(key_timer) < 152) { // Time in ms, the threshold we pick for counting something as a tap.
tap(KC_B);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_ctrl_mod, false, 0);
+ PLAY_SONG(tone_ctrl_mod);
#endif
#ifdef BACKLIGHT_BREATHING
- breathing_speed_set(2);
+ breathing_period_set(2);
breathing_pulse();
#endif
}
tap(KC_C);
unregister_code(KC_LCTL);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_copy, false, 0);
+ PLAY_SONG(tone_copy);
#endif
} else { // Tap, paste
register_code(KC_LCTL);
tap(KC_V);
unregister_code(KC_LCTL);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(tone_paste, false, 0);
+ PLAY_SONG(tone_paste);
#endif
}
}
if(record->event.pressed){
set_unicode_input_mode(UC_WIN);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(uniwin, false, 0);
+ PLAY_SONG(uniwin);
#endif
}
return false;
if(record->event.pressed){
set_unicode_input_mode(UC_LNX);
#ifdef AUDIO_ENABLE
- PLAY_NOTE_ARRAY(unilin, false, 0);
+ PLAY_SONG(unilin);
#endif
}
return false;
}
return false;
break;
- #ifdef TAP_DANCE_ENABLE
- case TappyR:
- if(record->event.pressed){
- if(timer_elapsed32(Rtimer) > 1052){
- Rstate = 0;
- }
- switch(Rstate){
- case 0:
- Rtimer = timer_read32();
- Rstate++;
- break;
- case 1:
- Rtimes[0] = timer_elapsed32(Rtimer);
- Rtimer = timer_read32();
- Rstate++;
- break;
- case 2:
- Rtimes[1] = timer_elapsed32(Rtimer);
- Rtimer = timer_read32();
- Rstate++;
- break;
- case 3:
- Rtimes[2] = timer_elapsed32(Rtimer);
- Rstate = 0;
- break;
- }
- if(Rstate == 0 && Lstate == 0) rhythm_parse();
- }
- return false;
- break;
- case TappyL:
- if(record->event.pressed){
- if(timer_elapsed32(Ltimer) > 1052){
- Lstate = 0;
- }
- switch(Lstate){
- case 0:
- Ltimer = timer_read32();
- Lstate++;
- break;
- case 1:
- Ltimes[0] = timer_elapsed32(Ltimer);
- Ltimer = timer_read32();
- Lstate++;
- break;
- case 2:
- Ltimes[1] = timer_elapsed32(Ltimer);
- Lstate = 0;
- break;
- }
- if(Rstate == 0 && Lstate == 0) rhythm_parse();
- }
- return false;
- break;
- #endif
- #endif
case RANDIG:
if (record->event.pressed) {
tap_random_base64();
return true;
};
-#ifdef AUDIO_ENABLE
void matrix_init_user(void){ // Run once at startup
#ifdef AUDIO_ENABLE
_delay_ms(50); // gets rid of tick
- PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ PLAY_SONG(tone_startup);
#endif
}
+#ifdef AUDIO_ENABLE
void play_goodbye_tone(void){
- PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ PLAY_SONG(tone_goodbye);
_delay_ms(150);
}
void shutdown_user(){
- PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ PLAY_SONG(tone_goodbye);
_delay_ms(150);
stop_all_notes();
}
void music_on_user(void){ // Run when the music layer is turned on
- PLAY_NOTE_ARRAY(tone_startup, false, 0);
+ PLAY_SONG(tone_startup);
}
void music_off_user(void){ // Run when music is turned off
- PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
+ PLAY_SONG(tone_goodbye);
}
#endif