Skip to content

Commit 44cafb5

Browse files
committed
Add handling spanish accents and ñ
1 parent e37f815 commit 44cafb5

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

keyboards/crkbd/keymaps/victorgalo/keymap.c

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ void rgb_matrix_set_color_hsv(uint8_t led, uint16_t hue, uint16_t sat, uint16_t
7777

7878
enum layers {
7979
_BASE_WIN,
80+
_BASE_LIN,
8081
_BASE_MAC,
8182
_SWITCHER,
8283
_NAV,
@@ -87,6 +88,14 @@ enum layers {
8788
_MEDIA,
8889
};
8990

91+
enum operating_system {
92+
OS_WIN,
93+
OS_MAC,
94+
OS_LIN,
95+
};
96+
97+
enum operating_system operativeSystem = OS_WIN;
98+
9099
/*
91100
Combos
92101
*/
@@ -108,10 +117,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
108117
if (pressed) {
109118
switch (keycode) {
110119
case TO(_BASE_MAC):
111-
onMac = true;
120+
operativeSystem = OS_MAC;
112121
break;
113122
case TO(_BASE_WIN):
114-
onMac = false;
123+
operativeSystem = OS_WIN;
124+
break;
125+
case TO(_BASE_LIN):
126+
operativeSystem = OS_WIN;
115127
break;
116128
case QK_COPY:
117129
if (onMac) {
@@ -177,6 +189,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
177189
//`--------------------------' `--------------------------'
178190
),
179191

192+
[_BASE_LIN] = LAYOUT_split_3x6_3_ex2(
193+
//,-----------------------------------------------------. ,-----------------------------------------------------.
194+
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(_SWITCHER), MO(_MEDIA), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
195+
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
196+
QK_LEAD, SFT_A, GUI_S, CTL_D, ALT_F, KC_G, KC_NO, KC_NO, KC_H, ALT_J, CTL_K, GUI_L, SFT_SCLN, KC_QUOT,
197+
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
198+
SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
199+
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
200+
MO(_FUNC), MO(_SYM), LT(_NUM, KC_ENT), KC_SPC, LT(_NAV, KC_SPC), KC_RALT
201+
//`--------------------------' `--------------------------'
202+
),
203+
180204
[_BASE_MAC] = LAYOUT_split_3x6_3_ex2(
181205
//,-----------------------------------------------------. ,-----------------------------------------------------.
182206
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(_SWITCHER), MO(_MEDIA), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
@@ -384,7 +408,7 @@ void send_spanish_accent(uint8_t letter) {
384408

385409
isCaps = isCapsLockOn ? true : false;
386410

387-
if (onMac) {
411+
if (operativeSystem == OS_MAC) {
388412
if (isCaps) {
389413
tap_code(KC_CAPS_LOCK);
390414
register_code(KC_LALT);
@@ -400,6 +424,18 @@ void send_spanish_accent(uint8_t letter) {
400424
unregister_code(KC_LALT);
401425
tap_code(vowel_letter_key_map[letter]);
402426
}
427+
} else if (operativeSystem = OS_LIN) {
428+
if (isCaps) {
429+
tap_code(KC_CAPS_LOCK);
430+
register_code(KC_RALT);
431+
tap_code(vowel_letter_key_map[letter]);
432+
unregister_code(KC_RALT);
433+
tap_code(KC_CAPS);
434+
} else {
435+
register_code(KC_LALT);
436+
tap_code(vowel_letter_key_map[letter]);
437+
unregister_code(KC_LALT);
438+
}
403439
} else {
404440
decimal_unicode_in = isCaps ? spanish_accent_decimal_unicodes[letter][1] : spanish_accent_decimal_unicodes[letter][0];
405441
break_int_in_array(decimal_unicode_in, decimal_unicode_out);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
COMBO_ENABLE = yes

0 commit comments

Comments
 (0)