Created
May 3, 2024 12:20
-
-
Save ryodeushii/2587f877cbe81e9d9c666a2d8066e416 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/keyboards/nuphy/gem80/ansi/info.json b/keyboards/nuphy/gem80/ansi/info.json | |
index 9eab852399..efa3a5452b 100644 | |
--- a/keyboards/nuphy/gem80/ansi/info.json | |
+++ b/keyboards/nuphy/gem80/ansi/info.json | |
@@ -15,7 +15,8 @@ | |
"command": false, | |
"nkro": true, | |
"key_lock": true, | |
- "rgb_matrix": true | |
+ "rgb_matrix": true, | |
+ "tap_dance": true | |
}, | |
"processor": "STM32F072", | |
"bootloader": "stm32-dfu", | |
diff --git a/keyboards/nuphy/gem80/ansi/keymaps/via/keymap.c b/keyboards/nuphy/gem80/ansi/keymaps/via/keymap.c | |
index 93b495aaec..788e1f8bcc 100644 | |
--- a/keyboards/nuphy/gem80/ansi/keymaps/via/keymap.c | |
+++ b/keyboards/nuphy/gem80/ansi/keymaps/via/keymap.c | |
@@ -1,6 +1,14 @@ | |
+#include "action.h" | |
#include "ansi.h" | |
+#include "keycodes.h" | |
+#include "process_tap_dance.h" | |
#include QMK_KEYBOARD_H | |
+enum { | |
+ CAPS_ILANG = 0, | |
+}; | |
+ | |
+ | |
// clang-format off | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
// layer Mac | |
@@ -8,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
KC_ESC, KC_BRID, KC_BRIU, MAC_TASK, MAC_SEARCH, MAC_VOICE, MAC_DND, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUSE, KC_SCRL, MAC_PRTA, KC_NO, | |
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, | |
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, | |
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | |
+ TD(CAPS_ILANG), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | |
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | |
KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), | |
// layer Mac Fn | |
@@ -34,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUSE, KC_SCRL, WIN_PRTA, WIN_LOCK, | |
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, | |
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, | |
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | |
+ TD(CAPS_ILANG), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | |
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | |
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(3), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), | |
// layer win Fn | |
@@ -74,3 +82,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
}; | |
// clang-format on | |
+ | |
+ | |
+void dance_caps_gui_space_finished(tap_dance_state_t *state, void *user_data) { | |
+ if (state->count == 1) { | |
+ register_code(KC_CAPS_LOCK); | |
+ } else { | |
+ register_code(KC_LGUI); // LCMD for mac is alias of this keycode | |
+ register_code(KC_SPACE); | |
+ } | |
+} | |
+ | |
+void dance_caps_gui_space_reset(tap_dance_state_t *state, void *user_data) { | |
+ if (state->count == 1) { | |
+ unregister_code(KC_CAPS_LOCK); | |
+ } else { | |
+ unregister_code(KC_LGUI); // LCMD for mac is alias of this keycode | |
+ unregister_code(KC_SPACE); | |
+ } | |
+} | |
+ | |
+tap_dance_action_t tap_dance_actions[] = { | |
+ [CAPS_ILANG] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_caps_gui_space_finished, dance_caps_gui_space_reset), | |
+}; | |
diff --git a/keyboards/nuphy/gem80/ansi/keymaps/via/rules.mk b/keyboards/nuphy/gem80/ansi/keymaps/via/rules.mk | |
index 0e391c6e48..c676f1c038 100644 | |
--- a/keyboards/nuphy/gem80/ansi/keymaps/via/rules.mk | |
+++ b/keyboards/nuphy/gem80/ansi/keymaps/via/rules.mk | |
@@ -3,3 +3,5 @@ VIA_ENABLE = yes | |
RGB_MATRIX_CUSTOM_USER = yes | |
LTO_ENABLE = yes | |
+ | |
+TAP_DANCE_ENABLE = yes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment