@@ -77,6 +77,7 @@ void rgb_matrix_set_color_hsv(uint8_t led, uint16_t hue, uint16_t sat, uint16_t
7777
7878enum 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/*
91100Combos
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 );
0 commit comments