|
@@ -0,0 +1,67 @@
|
|
|
+#include QMK_KEYBOARD_H
|
|
|
+
|
|
|
+
|
|
|
+enum td_keys {
|
|
|
+ TD_K0,
|
|
|
+ TD_K1,
|
|
|
+ TD_K2,
|
|
|
+ TD_K3
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+void td_spade_lnx (qk_tap_dance_state_t *state, void *user_data) {
|
|
|
+ if (state->count == 1) {
|
|
|
+ send_unicode_hex_string("2660");
|
|
|
+ } else {
|
|
|
+ set_unicode_input_mode(UC_LNX);
|
|
|
+ }
|
|
|
+ reset_tap_dance(state);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void td_diamond_osx (qk_tap_dance_state_t *state, void *user_data) {
|
|
|
+ if (state->count == 1) {
|
|
|
+ send_unicode_hex_string("2666");
|
|
|
+ } else {
|
|
|
+ set_unicode_input_mode(UC_OSX);
|
|
|
+ }
|
|
|
+ reset_tap_dance(state);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void td_club_win (qk_tap_dance_state_t *state, void *user_data) {
|
|
|
+ if (state->count == 1) {
|
|
|
+ send_unicode_hex_string("2663");
|
|
|
+ } else {
|
|
|
+ set_unicode_input_mode(UC_WIN);
|
|
|
+ }
|
|
|
+ reset_tap_dance(state);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void td_heart_winc (qk_tap_dance_state_t *state, void *user_data) {
|
|
|
+ if (state->count == 1) {
|
|
|
+ send_unicode_hex_string("2665");
|
|
|
+ } else {
|
|
|
+ set_unicode_input_mode(UC_WINC);
|
|
|
+ }
|
|
|
+ reset_tap_dance(state);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+qk_tap_dance_action_t tap_dance_actions[] = {
|
|
|
+ [TD_K0] = ACTION_TAP_DANCE_FN(td_spade_lnx),
|
|
|
+ [TD_K1] = ACTION_TAP_DANCE_FN(td_diamond_osx),
|
|
|
+ [TD_K2] = ACTION_TAP_DANCE_FN(td_club_win),
|
|
|
+ [TD_K3] = ACTION_TAP_DANCE_FN(td_heart_winc)
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
+ [0] = LAYOUT(
|
|
|
+ TD(TD_K0),
|
|
|
+ TD(TD_K1),
|
|
|
+ TD(TD_K2),
|
|
|
+ TD(TD_K3)
|
|
|
+ )
|
|
|
+};
|