aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/handwired/2x5keypad/config.h6
-rw-r--r--keyboards/handwired/2x5keypad/keymaps/default/keymap.c123
-rw-r--r--keyboards/handwired/2x5keypad/rules.mk16
3 files changed, 122 insertions, 23 deletions
diff --git a/keyboards/handwired/2x5keypad/config.h b/keyboards/handwired/2x5keypad/config.h
index 6d09b5ed0..35a0fda8d 100644
--- a/keyboards/handwired/2x5keypad/config.h
+++ b/keyboards/handwired/2x5keypad/config.h
@@ -37,6 +37,9 @@
37/* Locking resynchronize hack */ 37/* Locking resynchronize hack */
38#define LOCKING_RESYNC_ENABLE 38#define LOCKING_RESYNC_ENABLE
39 39
40/* Tap dancing params */
41#define TAPPING_TERM 250
42
40/* key combination for command */ 43/* key combination for command */
41/* DISABLED 44/* DISABLED
42#define IS_COMMAND() ( \ 45#define IS_COMMAND() ( \
@@ -44,9 +47,6 @@
44) 47)
45*/ 48*/
46 49
47/* prevent stuck modifiers */
48
49
50#ifdef RGB_DI_PIN 50#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 51#define RGBLIGHT_ANIMATIONS
52#define RGBLED_NUM 0 52#define RGBLED_NUM 0
diff --git a/keyboards/handwired/2x5keypad/keymaps/default/keymap.c b/keyboards/handwired/2x5keypad/keymaps/default/keymap.c
index 808824f3a..91a0e28f6 100644
--- a/keyboards/handwired/2x5keypad/keymaps/default/keymap.c
+++ b/keyboards/handwired/2x5keypad/keymaps/default/keymap.c
@@ -7,27 +7,116 @@ enum layers {
7 NORMAL_LAYER = 0, 7 NORMAL_LAYER = 0,
8 MEDIA_LAYER, 8 MEDIA_LAYER,
9 TBD_LAYER2, 9 TBD_LAYER2,
10 TBD_LAYER3 10 FRENCH_LAYER
11}; 11};
12 12
13 13
14/* Enum for the tap dancing keys */
15enum tap_codes {
16 A_Q, E_Q, E_U, E_E,
17 A_Y, I_I, O_C, U_U
18};
19
20#define FR_A_GRAVE "00E0"
21#define FR_A_HAT "00E2"
22
23#define FR_C_CIRCUM "00E7"
24
25#define FR_E_AIGU "00E9"
26#define FR_E_GRAVE "00E8"
27#define FR_E_HAT "00EA"
28#define FR_E_UMLAUT "00EB"
29
30#define FR_I_HAT "00EE"
31#define FR_I_UMLAUT "00EF"
32
33#define FR_O_HAT "00F4"
34
35#define FR_U_GRAVE "00F9"
36#define FR_U_HAT "00FB"
37#define FR_U_UMLAUT "00FC"
38
39#define FR_Y_UMLAUT "00FF"
40
41#define FR_L_QUOTE "00AB"
42#define FR_R_QUOTE "00BB"
43
44void send_french_unicode_char(uint8_t count, char *once, char *twice)
45{
46 if (count <= 1)
47 send_unicode_hex_string(once);
48 else
49 send_unicode_hex_string(twice);
50}
51
52void dance_a_q(qk_tap_dance_state_t *state, void *user_data)
53{
54 send_french_unicode_char(state->count, FR_A_GRAVE, FR_L_QUOTE);
55}
56
57void dance_e_q(qk_tap_dance_state_t *state, void *user_data)
58{
59 send_french_unicode_char(state->count, FR_E_AIGU, FR_R_QUOTE);
60}
61
62void dance_e_u(qk_tap_dance_state_t *state, void *user_data)
63{
64 send_french_unicode_char(state->count, FR_E_GRAVE, FR_U_GRAVE);
65}
66
67void dance_e_e(qk_tap_dance_state_t *state, void *user_data)
68{
69 send_french_unicode_char(state->count, FR_E_HAT, FR_E_UMLAUT);
70}
71
72void dance_a_y(qk_tap_dance_state_t *state, void *user_data)
73{
74 send_french_unicode_char(state->count, FR_A_HAT, FR_Y_UMLAUT);
75}
76
77void dance_i_i(qk_tap_dance_state_t *state, void *user_data)
78{
79 send_french_unicode_char(state->count, FR_I_HAT, FR_I_UMLAUT);
80}
81
82void dance_o_c(qk_tap_dance_state_t *state, void *user_data)
83{
84 send_french_unicode_char(state->count, FR_O_HAT, FR_C_CIRCUM);
85}
86
87void dance_u_u(qk_tap_dance_state_t *state, void *user_data)
88{
89 send_french_unicode_char(state->count, FR_U_HAT, FR_U_UMLAUT);
90}
91
92/* Define the tap dance actions for the french characters */
93qk_tap_dance_action_t tap_dance_actions[] = {
94 [A_Q] = ACTION_TAP_DANCE_FN(dance_a_q),
95 [E_Q] = ACTION_TAP_DANCE_FN(dance_e_q),
96 [E_U] = ACTION_TAP_DANCE_FN(dance_e_u),
97 [E_E] = ACTION_TAP_DANCE_FN(dance_e_e),
98
99 [A_Y] = ACTION_TAP_DANCE_FN(dance_a_y),
100 [I_I] = ACTION_TAP_DANCE_FN(dance_i_i),
101 [O_C] = ACTION_TAP_DANCE_FN(dance_o_c),
102 [U_U] = ACTION_TAP_DANCE_FN(dance_u_u)
103};
104
105
106
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 107const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15 108
16 [NORMAL_LAYER]= 109 [NORMAL_LAYER] = LAYOUT(TO(1), WIN_TAB, KC_HOME, KC_UP, KC_END,
17 LAYOUT(TO(1), WIN_TAB, KC_HOME, KC_UP, KC_END, 110 WIN_LOCK, KC_MUTE, KC_LEFT, KC_DOWN, KC_RGHT),
18 WIN_LOCK, KC_MUTE, KC_LEFT, KC_DOWN, KC_RGHT),
19 111
20 [MEDIA_LAYER]= 112 [MEDIA_LAYER] = LAYOUT(TO(2), KC_CALC, KC_MPRV, KC_MNXT, KC_VOLU,
21 LAYOUT(TO(2), KC_CALC, KC_MPRV, KC_MNXT, KC_VOLU, 113 KC_TRNS, KC_TRNS, KC_MSTP, KC_MPLY, KC_VOLD),
22 KC_TRNS, KC_TRNS, KC_MSTP, KC_MPLY, KC_VOLD),
23 114
24 [TBD_LAYER2]= 115 [TBD_LAYER2] = LAYOUT(TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
25 LAYOUT(TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 116 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
26 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
27 117
28 [TBD_LAYER3]= 118 [FRENCH_LAYER] = LAYOUT(TO(0), TD(A_Q), TD(E_Q), TD(E_U), TD(E_E),
29 LAYOUT(TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 119 KC_TRNS, TD(A_Y), TD(I_I), TD(O_C), TD(U_U))
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
31}; 120};
32 121
33 122
@@ -44,6 +133,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
44*/ 133*/
45 134
46 135
136void matrix_init_user(void)
137{
138 set_unicode_input_mode(UC_WINC); /* See https://jayliu50.github.io/qmk-cheatsheet/ */
139}
140
141
47layer_state_t layer_state_set_user(layer_state_t state) 142layer_state_t layer_state_set_user(layer_state_t state)
48{ 143{
49 turn_off_leds(); 144 turn_off_leds();
@@ -61,7 +156,7 @@ layer_state_t layer_state_set_user(layer_state_t state)
61 turn_on_led(BLUE_LED); 156 turn_on_led(BLUE_LED);
62 break; 157 break;
63 158
64 case TBD_LAYER3: 159 case FRENCH_LAYER:
65 turn_on_led(GREEN_LED); 160 turn_on_led(GREEN_LED);
66 break; 161 break;
67 } 162 }
diff --git a/keyboards/handwired/2x5keypad/rules.mk b/keyboards/handwired/2x5keypad/rules.mk
index b7027cd9e..e62a0f24a 100644
--- a/keyboards/handwired/2x5keypad/rules.mk
+++ b/keyboards/handwired/2x5keypad/rules.mk
@@ -11,13 +11,17 @@ MCU = atmega32u4
11# ATmega328P USBasp 11# ATmega328P USBasp
12BOOTLOADER = caterina 12BOOTLOADER = caterina
13 13
14
15AUDIO_ENABLE = no
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
14BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration 17BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
15MOUSEKEY_ENABLE = yes # Mouse keys
16EXTRAKEY_ENABLE = yes # Audio control and System control
17CONSOLE_ENABLE= no # Console for debug
18COMMAND_ENABLE = no # Commands for debug and configuration 18COMMAND_ENABLE = no # Commands for debug and configuration
19SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 19CONSOLE_ENABLE= no # Console for debug
20EXTRAKEY_ENABLE = yes # Audio control and System control
21MOUSEKEY_ENABLE = yes # Mouse keys
20NKRO_ENABLE = yes # USB Nkey Rollover - 22NKRO_ENABLE = yes # USB Nkey Rollover -
21BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 23
22AUDIO_ENABLE = no
23RGBLIGHT_ENABLE = no 24RGBLIGHT_ENABLE = no
25SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
26UNICODE_ENABLE = yes
27TAP_DANCE_ENABLE = yes