diff options
Diffstat (limited to 'keyboards/dztech/dz65rgb/keymaps')
17 files changed, 2086 insertions, 0 deletions
diff --git a/keyboards/dztech/dz65rgb/keymaps/adi/keymap.c b/keyboards/dztech/dz65rgb/keymaps/adi/keymap.c new file mode 100644 index 0000000000..914d1cc756 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/adi/keymap.c @@ -0,0 +1,19 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + QK_GESC, 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_GRV, + 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, + LCTL_T(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, KC_PGUP, + 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_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi( + QK_GESC, 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_DEL, KC_HOME, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_PGUP, + LCTL_T(KC_CAPS), RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_VOLU, KC_MUTE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) + +}; diff --git a/keyboards/dztech/dz65rgb/keymaps/catrielmuller/config.h b/keyboards/dztech/dz65rgb/keymaps/catrielmuller/config.h new file mode 100644 index 0000000000..76feedceb0 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/catrielmuller/config.h @@ -0,0 +1,3 @@ +#define LEADER_TIMEOUT 300 +#define FORCE_NKRO +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE
\ No newline at end of file diff --git a/keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c b/keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c new file mode 100644 index 0000000000..8bc5edf937 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c @@ -0,0 +1,243 @@ +#include QMK_KEYBOARD_H + +// Config +const uint8_t MAIN_COLOR[3] = {0xFF, 0x00, 0x00}; + +// layers, ordering is important! +enum layers { + _MAIN, + _INDEX, + _FN, + _MULTIMEDIA, + _EMOJI, + _EXT1, + _EXT2, + _EXT3, + _EXT4, + _EXT5, + _EXT6, + _RGB, + _CONFIG, +} + +const layers_leds_map[] = { + [_MAIN] = 0, + [_INDEX] = 1, + [_FN] = 2, + [_MULTIMEDIA] = 3, + [_EMOJI] = 4, + [_EXT1] = 5, + [_EXT2] = 6, + [_EXT3] = 7, + [_EXT4] = 8, + [_EXT5] = 9, + [_EXT6] = 10, + [_RGB] = 11, + [_CONFIG] = 12, +}; + +enum unicode_names { + UC_GRINNING_FACE, // ๐ + UC_BEAMING_FACE, // ๐ + UC_GRINNING_FACE_WITH_SWEAT, // ๐
+ UC_ROLLING_LAUGHING, // ๐คฃ + UC_FACE_TEARS_JOY, // ๐ + UC_WINKING_FACE, // ๐ + UC_SMILING_FACE_HALO, // ๐ + UC_SMILING_FACE_HEARTS, // ๐ฅฐ + UC_SMILING_FACE_HEART_EYES, // ๐ + UC_FACE_BLOWING_KISS, // ๐ + UC_FACE_SAVORING_FOOD, // ๐ + UC_ZANY_FACE, // ๐คช + UC_HUGGING_FACE, // ๐ค + UC_SHUSHING_FACE, // ๐คซ + UC_THINKING_FACE, // ๐ค + UC_FACE_RAISED_EYEBROW, // ๐คจ + UC_NEUTRAL_FACE, // ๐ + UC_SMIRKING_FACE, // ๐ + UC_FACE_ROLLING_EYES, // ๐ + UC_PENSIVE_FACE, // ๐ + UC_FACE_VOMITING, // ๐คฎ + UC_WOOZY_FACE, // ๐ฅด + UC_PLEADING_FACE, // ๐ฅบ + UC_LOUDLY_CRYING_FACE, // ๐ญ + UC_DISAPPOINTED_FACE, // ๐ + UC_FACE_SYMBOLS_MOUTH, // ๐คฌ + UC_SMILING_FACE_HORNS, // ๐ + UC_SKULL, // ๐ + UC_PILE_POO, // ๐ฉ + UC_GHOST, // ๐ป + UC_ALIEN_MONSTER, // ๐พ + UC_RED_HEART, // โค + UC_BOMB, // ๐ฃ + UC_WAVING_HAND, // ๐ + UC_OK_HAND, // ๐ + UC_CLAPPING_HANDS, // ๐ + UC_EYES, // ๐ + UC_MAN_FACEPALMING, // ๐คฆ + UC_TURTLE, // ๐ข + UC_SNAKE, // ๐ + UC_SPOUTING_WHALE, // ๐ณ + UC_DRAGON, // ๐ + UC_TREX, // ๐ฆ + UC_ARGENTINA_A, // ๐ฆ + UC_ARGENTINA_R, // ๐ท + UC_THUMBSDOWN, // ๐ + UC_THUMBSUP, // ๐ +}; + +const uint32_t PROGMEM unicode_map[] = { + [UC_GRINNING_FACE] = 0x1F603, + [UC_BEAMING_FACE] = 0x1F601, + [UC_GRINNING_FACE_WITH_SWEAT] = 0x1F605, + [UC_ROLLING_LAUGHING] = 0x1F923, + [UC_FACE_TEARS_JOY] = 0x1F602, + [UC_WINKING_FACE] = 0x1F609, + [UC_SMILING_FACE_HALO] = 0x1F607, + [UC_SMILING_FACE_HEARTS] = 0x1F970, + [UC_SMILING_FACE_HEART_EYES] = 0x1F60D, + [UC_FACE_BLOWING_KISS] = 0x1F618, + [UC_FACE_SAVORING_FOOD] = 0x1F60B, + [UC_ZANY_FACE] = 0x1F92A, + [UC_HUGGING_FACE] = 0x1F917, + [UC_SHUSHING_FACE] = 0x1F92B, + [UC_THINKING_FACE] = 0x1F914, + [UC_FACE_RAISED_EYEBROW] = 0x1F928, + [UC_NEUTRAL_FACE] = 0x1F610, + [UC_SMIRKING_FACE] = 0x1F60F, + [UC_FACE_ROLLING_EYES] = 0x1F644, + [UC_PENSIVE_FACE] = 0x1F614, + [UC_FACE_VOMITING] = 0x1F92E, + [UC_WOOZY_FACE] = 0x1F974, + [UC_PLEADING_FACE] = 0x1F97A, + [UC_LOUDLY_CRYING_FACE] = 0x1F62D, + [UC_DISAPPOINTED_FACE] = 0x1F61E, + [UC_FACE_SYMBOLS_MOUTH] = 0x1F92C, + [UC_SMILING_FACE_HORNS] = 0x1F608, + [UC_SKULL] = 0x1F480, + [UC_PILE_POO] = 0x1F4A9, + [UC_GHOST] = 0x1F47B, + [UC_ALIEN_MONSTER] = 0x1F47E, + [UC_RED_HEART] = 0x2764, + [UC_BOMB] = 0x1F4A3, + [UC_WAVING_HAND] = 0x1F44B, + [UC_OK_HAND] = 0x1F44C, + [UC_CLAPPING_HANDS] = 0x1F44F, + [UC_EYES] = 0x1F440, + [UC_MAN_FACEPALMING] = 0x1F926, + [UC_TURTLE] = 0x1F422, + [UC_SNAKE] = 0x1F40D, + [UC_SPOUTING_WHALE] = 0x1F433, + [UC_DRAGON] = 0x1F409, + [UC_TREX] = 0x1F996, + [UC_ARGENTINA_A] = 0x1F1E6, + [UC_ARGENTINA_R] = 0x1F1F7, + [UC_THUMBSDOWN] = 0x1F44E, + [UC_THUMBSUP] = 0x1F44D, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_65_ansi( + QK_GESC, 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_HOME, + 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_END, + 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, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_APP), KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, QK_LEAD, TO(_INDEX), MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_INDEX] = LAYOUT_65_ansi( + TO(_MAIN), TO(_INDEX), TO(_FN), TO(_MULTIMEDIA), TO(_EMOJI), TO(_EXT1), TO(_EXT2), TO(_EXT3), TO(_EXT4), TO(_EXT5), TO(_EXT6), TO(_RGB), TO(_CONFIG), TO(_MAIN), KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), TO(_FN), KC_NO, KC_NO, KC_NO + ), + [_FN] = LAYOUT_65_ansi( + KC_GRV, 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_DEL, KC_PSCR, + KC_TAB, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_INS, KC_SCRL, + KC_APP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PAUS, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, + KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, TO(_INDEX), KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R + ), + [_MULTIMEDIA] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_VOLU, KC_MUTE, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_MPRV, KC_VOLD, KC_MNXT + ), + [_EMOJI] = LAYOUT_65_ansi( + TO(_MAIN), X(UC_GRINNING_FACE), X(UC_BEAMING_FACE), X(UC_GRINNING_FACE_WITH_SWEAT), X(UC_ROLLING_LAUGHING), X(UC_FACE_TEARS_JOY), X(UC_WINKING_FACE), X(UC_SMILING_FACE_HALO), X(UC_SMILING_FACE_HEARTS), X(UC_SMILING_FACE_HEART_EYES), X(UC_FACE_BLOWING_KISS), X(UC_FACE_SAVORING_FOOD), X(UC_ZANY_FACE), KC_BSPC, KC_HOME, + KC_TAB, X(UC_HUGGING_FACE), X(UC_SHUSHING_FACE), X(UC_THINKING_FACE), X(UC_FACE_RAISED_EYEBROW), X(UC_NEUTRAL_FACE), X(UC_SMIRKING_FACE), X(UC_FACE_ROLLING_EYES), X(UC_PENSIVE_FACE), X(UC_FACE_VOMITING), X(UC_WOOZY_FACE), X(UC_PLEADING_FACE), X(UC_LOUDLY_CRYING_FACE), X(UC_THUMBSUP), KC_END, + KC_APP, X(UC_DISAPPOINTED_FACE), X(UC_FACE_SYMBOLS_MOUTH), X(UC_SMILING_FACE_HORNS), X(UC_SKULL), X(UC_PILE_POO), X(UC_GHOST), X(UC_ALIEN_MONSTER), X(UC_RED_HEART), X(UC_BOMB), X(UC_WAVING_HAND), X(UC_OK_HAND), KC_ENT, KC_PGUP, + KC_LSFT, X(UC_CLAPPING_HANDS), X(UC_EYES), X(UC_MAN_FACEPALMING), X(UC_TURTLE), X(UC_SNAKE), X(UC_SPOUTING_WHALE), X(UC_DRAGON), X(UC_TREX), X(UC_ARGENTINA_A), X(UC_ARGENTINA_R), X(UC_THUMBSDOWN), KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, QK_LEAD, TO(_INDEX), TO(_MAIN), KC_LEFT, KC_DOWN, KC_RGHT + ), + [_EXT1] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), + [_EXT2] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), + [_EXT3] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), + [_EXT4] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), + [_EXT5] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), + [_EXT6] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), + [_RGB] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RGB_TOG, RGB_RMOD, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_NO, KC_NO, KC_NO, + KC_NO, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), + [_CONFIG] = LAYOUT_65_ansi( + TO(_MAIN), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ACL2, + KC_NO, KC_PWR, KC_SLEP, KC_WAKE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, DB_TOGG, EE_CLR, KC_NO, KC_ACL1, + KC_NO, UC_PREV, UC_NEXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ACL0, + KC_NO, MAGIC_TOGGLE_NKRO, MAGIC_UNHOST_NKRO, MAGIC_HOST_NKRO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_INDEX), KC_NO, KC_NO, KC_NO, KC_NO + ), +}; + +bool rgb_matrix_indicators_user(void) { + + // CapsLock Light + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color(30, MAIN_COLOR[0], MAIN_COLOR[1], MAIN_COLOR[2]); + } + + // Show Selected Layer + rgb_matrix_set_color(layers_leds_map[get_highest_layer(layer_state)], MAIN_COLOR[0], MAIN_COLOR[1], MAIN_COLOR[2]); + return false; +} diff --git a/keyboards/dztech/dz65rgb/keymaps/chocol8/keymap.c b/keyboards/dztech/dz65rgb/keymaps/chocol8/keymap.c new file mode 100644 index 0000000000..731f287a27 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/chocol8/keymap.c @@ -0,0 +1,25 @@ +#include QMK_KEYBOARD_H + +enum tofu68_layers { + _QWERTY, + _FNM +}; + +#define FNM MO(_FNM) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_65_ansi( + QK_GESC, 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_GRV, \ + 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_GRV, 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_PGUP, \ + 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_PGDN, \ + KC_LCTL, KC_LALT, KC_LCMD, KC_SPC, FNM, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + [_FNM] = LAYOUT_65_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_MUTE, KC_VOLU, \ + _______, RGB_TOG, RGB_MOD, RGB_HUI ,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT, KC_VOLD, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, AG_TOGG, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R \ + ) +}; diff --git a/keyboards/dztech/dz65rgb/keymaps/default/keymap.c b/keyboards/dztech/dz65rgb/keymaps/default/keymap.c new file mode 100644 index 0000000000..548d55799a --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + QK_GESC, 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_HOME, + 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_PGUP, + CTL_T(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, KC_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi( + QK_GESC, 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_DEL, KC_HOME, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS), RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, + KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/config.h b/keyboards/dztech/dz65rgb/keymaps/drootz/config.h new file mode 100644 index 0000000000..51fd5c6871 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/drootz/config.h @@ -0,0 +1,52 @@ +#pragma once + +#define LEADER_PER_KEY_TIMING +#define LEADER_TIMEOUT 425 +#define TAP_HOLD_CAPS_DELAY 80 + +#ifdef RGB_MATRIX_ENABLE +/* Reset default from dz65rgb/v2 config.h */ +# undef DISABLE_RGB_MATRIX_SPLASH +# undef DISABLE_RGB_MATRIX_SOLID_SPLASH +# undef RGB_MATRIX_LED_FLUSH_LIMIT +# undef RGB_MATRIX_DEFAULT_MODE +# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // default: 26 +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_TYPING_HEATMAP +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_DEFAULT_HUE 10 +# define RGB_MATRIX_DEFAULT_SAT 255 +# define RGB_MATRIX_DEFAULT_VAL 200 +# define RGB_MATRIX_DEFAULT_SPD 75 +/* Active RBG Modes */ +/* # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! */ +/* # undef ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out */ +/* # undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out */ +/* Disabling to optimize firmware size */ +# undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue +# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes +# undef ENABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation +# undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right +# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness +# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness +# undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient +# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right +# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom +# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in +# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in +# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right +# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard +# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard +# undef ENABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard +# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard +# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard +# undef ENABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue +# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue +#endif /* RBG MATRIX */ + +/* Firmware size Optimizations */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +#define NO_ACTION_ONESHOT diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c new file mode 100644 index 0000000000..d0d22f28b4 --- /dev/null +++ b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c @@ -0,0 +1,758 @@ +#include QMK_KEYBOARD_H + +/**************** SOME GLOBALS *********************/ + +bool onMac = false; +bool isLeader = false; +bool isBlinking = false; +bool isRecording = false; +bool isPlaying = false; +const float led_dim_ratio = 0.50; +static uint16_t blink_cycle_timer, + blink_fade_in_timer, + blink_fade_out_timer, + macro_one_play_timer, + macro_two_play_timer, + macro_play_blink_timer = 2000; +static uint8_t fade_in_step_counter, + fade_out_step_counter, + blink_hsv_value; + +/**************** LED BLINK HELPER FUNCTIONS *********************/ + +/* +Function to set color with hsv arguments +- "hue", "sat" and "val" arguments above 255 will get value from rgb matrix config +- "val_ratio" is used to adjust brightness ratio +*/ +void rgb_matrix_set_color_hsv(uint8_t led, uint16_t hue, uint16_t sat, uint16_t val, float val_ratio) { + const uint8_t h = hue <= 255 ? hue : rgb_matrix_config.hsv.h; + const uint8_t s = sat <= 255 ? sat : rgb_matrix_config.hsv.s; + const uint8_t v = val <= 255 ? val * val_ratio : rgb_matrix_config.hsv.v * val_ratio; + HSV hsv_in = {h, s, v}; + RGB rgb_out = hsv_to_rgb(hsv_in); + rgb_matrix_set_color(led, rgb_out.r, rgb_out.g, rgb_out.b); +} + +void reset_blink_cycle(void) { + blink_cycle_timer = timer_read(); + blink_fade_in_timer = timer_read(); + blink_fade_out_timer = timer_read(); + blink_hsv_value = 0; + fade_in_step_counter = 0; + fade_out_step_counter = 0; +} + +void reset_blink_status(void) { + isRecording = false; + isPlaying = false; + isBlinking = false; +} + +void get_this_led_blinking(uint8_t led_index, bool speed, uint8_t hue, uint8_t sat) { + const uint16_t static_on_time = speed ? 200 : 500; + const uint16_t static_off_time = speed ? 200 : 500; + const uint8_t fade_timing = speed ? 100 : 150; + const uint8_t fade_step = speed ? 10 : 15; + const uint8_t fade_value_step_size = rgb_matrix_config.hsv.v / fade_step; + const uint8_t fade_cycle_time_elapsed = fade_timing / fade_step; + if (timer_elapsed(blink_cycle_timer) < static_on_time) { + if (timer_elapsed(blink_fade_in_timer) > fade_cycle_time_elapsed && fade_in_step_counter < fade_step) { + blink_hsv_value = blink_hsv_value + fade_value_step_size; + fade_in_step_counter = fade_in_step_counter + 1; + blink_fade_in_timer = timer_read(); + } + } else { + if (timer_elapsed(blink_fade_out_timer) > fade_cycle_time_elapsed && fade_out_step_counter < fade_step) { + blink_hsv_value = blink_hsv_value - fade_value_step_size; + fade_out_step_counter = fade_out_step_counter + 1; + blink_fade_out_timer = timer_read(); + } + } + + rgb_matrix_set_color_hsv(led_index, hue, sat, blink_hsv_value, 0.75); + + if (timer_elapsed(blink_cycle_timer) > static_on_time + static_off_time) { + reset_blink_cycle(); + } +} + + +/**************** LAYOUT *********************/ + +/* +[LEDS] + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 +15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 +30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 +44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 +58, 59, 60, 61, 62, 63, 64, 65, 66, 67 + +[KEYS] +ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, BCK, INS +TAB, Q, W, E, R, T, Y, U, I, O, P, [, ], \,PGUP +CPS, A, S, D, F, G, H, J, K, L, COL, QOT, RETURN,PGDN +SFT, Z, X, C, V, B, N, M, COM, DOT, SLS, SHIFT, UP, DEL +CTL, GUI, ALT, SPACEBAR, ALT, FN, CTL, LFT, DWN, RIT +*/ + +enum layers { + _MAIN, + _MAC, + _FN +} + +const layers_leds_map[] = { + [_MAIN] = 45, + [_MAC] = 46, + [_FN] = 63 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_65_ansi( + QK_GESC, 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_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_PGUP, + QK_LEAD, 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_PGDN, + 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_MAC] = LAYOUT_65_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [_FN] = LAYOUT_65_ansi( + DM_RSTP, 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_NO, KC_NO, + KC_TRNS, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, DM_PLY2, DM_REC2, + KC_TRNS, KC_BRID, KC_VOLD, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, DM_PLY1, DM_REC1, + KC_TRNS, TO(_MAIN), TO(_MAC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, RGB_SPI, KC_TRNS, RGB_VAI, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD + ), +}; + +//**************** MATRIX SCANS *********************// + +bool rgb_matrix_indicators_user(void) { + + #ifdef RGB_MATRIX_ENABLE + + /*Ensure some leds don't completeley turn off if hsv value setting is below 100 in the rgb matrix config */ + const uint8_t led_constant_val = rgb_matrix_config.hsv.v < 100 ? 100 : rgb_matrix_config.hsv.v; + + /* CapsLock LED indicator */ + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color_hsv(30, 999, 0, led_constant_val, 0.75); // WHITE + } + + /* Current layer LED indicator */ + rgb_matrix_set_color_hsv(layers_leds_map[get_highest_layer(layer_state)], 999, 0, led_constant_val, led_dim_ratio); // WHITE + + /* Leader Key LED under-glow */ + if (isLeader) { + rgb_matrix_set_color_hsv(14, 999, 999, 999, 1); // CONFIG + rgb_matrix_set_color_hsv(30, 999, 999, 999, 1); // CONFIG + } else { + rgb_matrix_set_color_hsv(14, 999, 999, 999, led_dim_ratio); // CONFIG + } + + /* Blinking LED indicator when recording Dynamic Macro */ + if (isRecording && isBlinking) { + get_this_led_blinking(0, false, 0, 255); + } + + /* Blinking LED indicator when playing Dynamic Macro */ + if (isPlaying && isBlinking) { + if (timer_elapsed(macro_one_play_timer) < macro_play_blink_timer || timer_elapsed(macro_two_play_timer) < macro_play_blink_timer) { + get_this_led_blinking(0, true, 85, 255); + } else { + if (isBlinking && isPlaying) { + reset_blink_status(); + reset_blink_cycle(); + } + } + } + + switch (get_highest_layer(layer_state)) { + case _FN: + /* Dynamic Macro LED indicator */ + if (isRecording) { + rgb_matrix_set_color_hsv(0, 0, 999, 999, 1); /* RED macro stop */ + } else { + rgb_matrix_set_color_hsv(43, 0, 999, 999, led_dim_ratio); /* RED macro 1 record */ + rgb_matrix_set_color_hsv(29, 0, 999, 999, led_dim_ratio); /* RED macro 2 record */ + rgb_matrix_set_color_hsv(42, 85, 999, 999, led_dim_ratio); /* GREEN macro 1 play */ + rgb_matrix_set_color_hsv(28, 85, 999, 999, led_dim_ratio); /* GREEN macro 2 play */ + } + /* Layer LED indicators */ + rgb_matrix_set_color_hsv(45, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAIN */ + rgb_matrix_set_color_hsv(46, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAC */ + break; + } + + #endif /* RGB_MATRIX */ + return false; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + bool pressed = record->event.pressed; + if (pressed) { + switch (keycode) { + case TO(_MAC): + onMac = true; + break; + case TO(_MAIN): + onMac = false; + break; + } + } + return true; +} + +//**************** LEADER *********************// + +#ifdef LEADER_ENABLE + +/******* FRENCH ACCENT HELPER FUNCTIONS & DECLARATIONS *************/ +/*Most comonly used accents only*/ + +enum french_letter { + _A, + _E, + _I, + _O, + _U +}; + +const uint8_t french_letter_index[5] = { + [_A] = 0, + [_E] = 1, + [_I] = 2, + [_O] = 3, + [_U] = 4 +}; + +enum french_accent { + _CIRCUMFLEX, + _GRAVE, + _ACUTE +}; + +const uint8_t french_accent_index[3] = { + [_CIRCUMFLEX] = 0, + [_GRAVE] = 1, + [_ACUTE] = 2 +}; + +/* +This represent unicode decimal values +Each index will be mapped to numpad keycode to out put the correct sequence +All codes in this array should be of size 3 +All accent codes have the same index position as in the french_accent_index Array +*/ +const uint8_t french_decimal_unicodes[5][3][2] = { /*[Letter][Accent][Case]*/ + { + { + 131, // รข + 194 // ร + },{ + 133, // ร + 192 // ร + } + },{ + { + 136, // รช + 202 // ร + },{ + 138, // รจ + 200 // ร + },{ + 130, // รฉ + 201 // ร + } + },{ + { + 140, // รฎ + 206 // ร + } + },{ + { + 147, // รด + 212 // ร + } + },{ + { + 150, // รป + 219 // ร + },{ + 151, // รน + 217 // ร + } + } +}; + +void break_int_in_array(uint8_t int_code, uint8_t size, uint8_t *array) { + uint8_t i; + i = size; + while (i--) { + array[i] = int_code%10; + int_code /= 10; + } +} + +/* +Function meant to be used in Leader Key macros to output most commonly used french accents +This is designed and work on an English language keyboard setting on both Windows and Mac +=> accept french_letter and french_accent enum's as argument +*/ +void send_french_accent(uint8_t letter, uint8_t accent) { + + bool isCaps; + uint8_t decimal_unicode_in; + uint8_t decimal_unicode_size = 3; + uint8_t decimal_unicode_out[decimal_unicode_size]; + + /*Map to numpad keycodes*/ + const uint16_t numpad_key_map[10] = { + KC_P0, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9 + }; + + /*Map to letter keycodes*/ + const uint16_t french_letter_key_map[5] = { + KC_A, KC_E, KC_I, KC_O, KC_U + }; + + /*Map to mod keys for French Mac shortcuts*/ |