Skip to content

Commit

Permalink
Switching to Swiss German layout to match my chromeos machine. Rearan…
Browse files Browse the repository at this point in the history
…ages zero on the numbers layers to make it easier to type 0.25. Sets back inverted exclamation and question marks to an useable state (breaking symmetry rule).
  • Loading branch information
rodrigob committed Apr 18, 2023
1 parent a19c3f5 commit d5b3b1c
Showing 1 changed file with 87 additions and 61 deletions.
148 changes: 87 additions & 61 deletions keyboards/pinky/3/keymaps/rodrigo2023/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,17 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// We use BEPO keymap instead of US or US Intl so as to be able to
// represent all desired accents (plus clin d'oeil to my origins)
#include "keymap_bepo.h"
#include "sendstring_bepo.h"

// TODO(low priority): switch to keymap_swiss_de.h to reduce switching layouts with main work machine
// We use Switch German keyboard layout,
// because it covers all the symbols we need
// and matches the physical keyboard of some of my laptops,
// thus reducing the layouts switch.
// (Had started with French Bepo,
// however older Androids seem not support this layout.)

#include "keymap_swiss_de.h"
#include "sendstring_swiss_de.h"


// Accents short names from quantum/keymap_extras/keymap_bepo.h
enum unicode_names {
Expand Down Expand Up @@ -81,16 +86,18 @@ enum layer_names {
};

enum custom_keycodes {
NTILDE = SAFE_RANGE, // n tilde is not part of bepo, we thus use a macro that sends tilde+n
K_NTILDE = SAFE_RANGE, // n tilde is not part of bepo, we thus use a macro that sends tilde+n
K_IEXLM, // inverted exclamation mark is not part of swiss_de, we use a macro
K_IQUES, // inverted question mark is not part of swiss_de, we use a macro
};

#define NEXT_TAB C(KC_TAB)
#define PREV_TAB S(C(KC_TAB))
#define NEXT_WIN A(KC_TAB)
#define PREV_WIN S(A(KC_TAB))
#define SHOW_WINS G(KC_F5)
#define CTL_C C(BP_C)
#define CTL_V C(BP_V)
#define CTL_C C(CH_C)
#define CTL_V C(CH_V)
#define LT_DI(K) LT(L_DI, K)
#define LT_SA(K) LT(L_SA, K)
#define LT_SB(K) LT(L_SB, K)
Expand All @@ -101,72 +108,72 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[L_AL] = LAYOUT(
BP_GRV, BP_Q, LT_NU(BP_W), LT_SA(BP_E), LT_SB(BP_R), BP_T, BP_LBRC, BP_RBRC, BP_Y, LT_SB(BP_U), LT_SA(BP_I), LT_NU(BP_O), BP_P, KC_BSPC,
KC_ESC, LT_FN(BP_A), ALT_T(BP_S), CTL_T(BP_D), LT_DI(BP_F), SFT_T(BP_G), BP_LPRN, BP_RPRN, SFT_T(BP_H), LT_DI(BP_J), CTL_T(BP_K), ALT_T(BP_L), LT_FN(KC_ENT), KC_ENT,
KC_LSFT, BP_Z, ALGR_T(BP_X), BP_C, LT_MO(BP_V), BP_B, MO(L_LOWER), MO(L_RAISE), BP_N, LT_MO(BP_M), BP_COMM, ALGR_T(BP_DOT), BP_MINS, BP_QUOT,
CH_GRV, CH_Q, LT_NU(CH_W), LT_SA(CH_E), LT_SB(CH_R), CH_T, CH_LBRC, CH_RBRC, CH_Y, LT_SB(CH_U), LT_SA(CH_I), LT_NU(CH_O), CH_P, KC_BSPC,
KC_ESC, LT_FN(CH_A), ALT_T(CH_S), CTL_T(CH_D), LT_DI(CH_F), SFT_T(CH_G), CH_LPRN, CH_RPRN, SFT_T(CH_H), LT_DI(CH_J), CTL_T(CH_K), ALT_T(CH_L), LT_FN(KC_ENT), KC_ENT,
KC_LSFT, CH_Z, ALGR_T(CH_X), CH_C, LT_MO(CH_V), CH_B, MO(L_LOWER), MO(L_RAISE), CH_N, LT_MO(CH_M), CH_COMM, ALGR_T(CH_DOT), CH_MINS, CH_QUOT,
_______, LT(L_NUMFN, KC_TAB), LT(L_SYMBOLS, KC_ESC), LT(L_NUMFN, KC_TAB), LT(L_COMMANDS, KC_BSPC), SFT_T(KC_SPC), LT(L_COMMANDS, KC_BSPC), _______
),
[L_ALPHA] = LAYOUT(
BP_GRV, BP_Q, BP_W, BP_E, BP_R, BP_T, BP_LBRC, BP_RBRC, BP_Y, BP_U, BP_I, BP_O, BP_P, KC_BSPC,
KC_ESC, BP_A, ALT_T(BP_S), CTL_T(BP_D), SFT_T(BP_F), BP_G, BP_LPRN, BP_RPRN, BP_H, SFT_T(BP_J), CTL_T(BP_K), ALT_T(BP_L), KC_ENT, KC_ENT,
KC_LSFT, BP_Z, ALGR_T(BP_X), BP_C, BP_V, BP_B, MO(L_LOWER), MO(L_RAISE), BP_N, BP_M, BP_COMM, ALGR_T(BP_DOT), BP_MINS, BP_QUOT,
CH_GRV, CH_Q, CH_W, CH_E, CH_R, CH_T, CH_LBRC, CH_RBRC, CH_Y, CH_U, CH_I, CH_O, CH_P, KC_BSPC,
KC_ESC, CH_A, ALT_T(CH_S), CTL_T(CH_D), SFT_T(CH_F), CH_G, CH_LPRN, CH_RPRN, CH_H, SFT_T(CH_J), CTL_T(CH_K), ALT_T(CH_L), KC_ENT, KC_ENT,
KC_LSFT, CH_Z, ALGR_T(CH_X), CH_C, CH_V, CH_B, MO(L_LOWER), MO(L_RAISE), CH_N, CH_M, CH_COMM, ALGR_T(CH_DOT), CH_MINS, CH_QUOT,

_______, LT(L_NUMFN, KC_ESC), LT(L_SYMBOLS, BP_E), LT(L_NUMFN, KC_ESC), LT(L_COMMANDS, KC_BSPC), SFT_T(KC_SPC), LT(L_COMMANDS, KC_BSPC), _______
_______, LT(L_NUMFN, KC_ESC), LT(L_SYMBOLS, CH_E), LT(L_NUMFN, KC_ESC), LT(L_COMMANDS, KC_BSPC), SFT_T(KC_SPC), LT(L_COMMANDS, KC_BSPC), _______
),

[L_NU] = LAYOUT(
_______, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PEQL, _______, _______, KC_PEQL, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
_______, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, KC_PDOT, KC_P4, KC_P5, KC_P6, KC_P0, _______,
_______, KC_PMNS, KC_P1, KC_P2, KC_P3, BP_COMM, _______, _______, BP_COMM, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
_______, KC_PPLS, KC_P7, KC_P8, KC_9, KC_PEQL, _______, _______, CH_COMM, KC_P7, KC_P8, KC_9, KC_PPLS, _______,
_______, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, KC_P0, KC_P4, KC_P5, KC_P6, KC_PEQL, _______,
_______, KC_PMNS, KC_P1, KC_P2, KC_P3, CH_COMM, _______, _______, KC_PDOT, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),


// diacritics on left side: Circumflex,Grave,Two overdots/Diaeresis,Acute,Tilde, (lower row: Cedilla); right side mirrored
[L_COMMANDS] = LAYOUT(
// UTF8 will draw the symbols but will not generate the dead diacritics as desired.
//_______, X(DCIR), X(DGRV), X(DIAE), X(ACUT), X(DTIL), _______, _______, _______, _______, _______, _______, _______, _______,
_______, BP_DCIR, BP_DGRV, BP_DIAE, BP_ACUT, BP_DTIL, _______, _______, BP_DTIL, BP_ACUT, BP_DIAE, BP_DGRV, BP_DCIR, _______,
_______, CH_CIRC, CH_GRV, CH_DIAE, CH_ACUT, CH_TILD, _______, _______, CH_TILD, CH_ACUT, CH_DIAE, CH_GRV, CH_CIRC, _______,
_______, KC_LGUI, OSM(MOD_LALT), OSM(MOD_LCTL), OSM(MOD_LSFT), KC_TAB, _______, _______, KC_TAB, OSM(MOD_LSFT), OSM(MOD_LCTL), OSM(MOD_LALT), KC_LGUI, _______,
_______, KC_APP, OSM(MOD_RALT), BP_CEDL, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, OSM(MOD_RALT), KC_APP, _______,
_______, KC_APP, OSM(MOD_RALT), CH_CCED, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, OSM(MOD_RALT), KC_APP, _______,
// _______, KC_DELETE, KC_BSPC, KC_DELETE, _______, _______, _______, _______ // handles Enter+Esc and Enter+E
_______, DF(L_MOTION), KC_BSPC, DF(L_MOTION), _______, _______, _______, _______ // handles Enter+Esc and Enter+E
),

[L_DI] = LAYOUT(
_______, BP_DCIR, BP_DGRV, BP_DIAE, BP_ACUT, BP_DTIL, _______, _______, BP_DTIL, BP_ACUT, BP_DIAE, BP_DGRV, BP_DCIR, _______,
_______, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LGUI, _______,
_______, KC_APP, BP_CEDL, BP_CCED, NTILDE, KC_TAB, _______, _______, KC_TAB, NTILDE, BP_CCED, BP_CEDL, KC_APP, _______,
_______, CH_CIRC, CH_GRV, CH_DIAE, CH_ACUT, CH_TILD, _______, _______, CH_TILD, CH_ACUT, CH_DIAE, CH_GRV, CH_CIRC, _______,
_______, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LGUI, _______,
_______, KC_APP, _______, CH_CCED, K_NTILDE, KC_TAB, _______, _______, KC_TAB, K_NTILDE, CH_CCED, _______, KC_APP, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),

[L_SYMBOLS] = LAYOUT(
_______, BP_CIRC, BP_PERC, BP_ASTR, BP_PLUS, BP_EXLM, _______, _______, BP_QUES, BP_MINS, BP_SLSH, BP_EQL, BP_AT, _______,
_______, BP_LABK, BP_RABK, BP_LCBR, BP_RCBR, BP_AMPR, _______, _______, BP_PIPE, BP_LPRN, BP_RPRN, BP_LBRC, BP_RBRC, _______,
_______, BP_BSLS, BP_TILD, BP_SLSH, BP_UNDS, BP_DLR, _______, _______, KC_TAB, BP_DQUO, BP_QUOT, BP_GRV, BP_HASH, _______,
_______, CH_CIRC, CH_PERC, CH_ASTR, CH_PLUS, CH_EXLM, _______, _______, CH_QUES, CH_MINS, CH_SLSH, CH_EQL, CH_AT, _______,
_______, CH_LABK, CH_RABK, CH_LCBR, CH_RCBR, CH_AMPR, _______, _______, CH_PIPE, CH_LPRN, CH_RPRN, CH_LBRC, CH_RBRC, _______,
_______, CH_BSLS, CH_TILD, CH_SLSH, CH_UNDS, CH_DLR, _______, _______, KC_TAB, CH_DQUO, CH_QUOT, CH_GRV, CH_HASH, _______,
_______, _______, _______, _______, KC_BSPC, _______, KC_BSPC, _______ // handles E+Enter),
),

[L_SA] = LAYOUT(
_______, BP_RABK, BP_RCBR, BP_RPRN, BP_RBRC, BP_EXLM, _______, _______, BP_EXLM, BP_RBRC, BP_RPRN, BP_RCBR, BP_RABK, _______,
_______, BP_LABK, BP_LCBR, BP_LPRN, BP_LBRC, BP_QUES, _______, _______, BP_QUES, BP_LBRC, BP_LPRN, BP_LCBR, BP_LABK, _______,
_______, BP_BSLS, BP_TILD, BP_SLSH, BP_UNDS, BP_DLR, _______, _______, BP_DLR, BP_UNDS, BP_SLSH, BP_TILD, BP_BSLS, _______,
// Exception to rule of symmetric left and right hands
_______, CH_RABK, CH_RCBR, CH_RPRN, CH_RBRC, CH_EXLM, _______, _______, X(IEXLM), CH_RBRC, CH_RPRN, CH_RCBR, CH_RABK, _______,
_______, CH_LABK, CH_LCBR, CH_LPRN, CH_LBRC, CH_QUES, _______, _______, X(IQUES), CH_LBRC, CH_LPRN, CH_LCBR, CH_LABK, _______,
_______, CH_BSLS, CH_TILD, CH_SLSH, CH_UNDS, CH_DLR, _______, _______, CH_DLR, CH_UNDS, CH_SLSH, CH_TILD, CH_BSLS, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),

[L_SB] = LAYOUT(
_______, BP_PERC, BP_AT, BP_PIPE, BP_AMPR, BP_CIRC, _______, _______, BP_CIRC, BP_AMPR, BP_PIPE, BP_AT, BP_PERC, _______,
_______, BP_SLSH, BP_ASTR, BP_MINS, BP_PLUS, BP_EQL, _______, _______, BP_EQL, BP_PLUS, BP_MINS, BP_ASTR, BP_SLSH, _______,
_______, BP_HASH, BP_GRV, BP_QUOT, BP_DQUO, KC_TAB, _______, _______, KC_TAB, BP_DQUO, BP_QUOT, BP_GRV, BP_HASH, _______,
_______, CH_PERC, CH_AT, CH_PIPE, CH_AMPR, CH_CIRC, _______, _______, CH_CIRC, CH_AMPR, CH_PIPE, CH_AT, CH_PERC, _______,
_______, CH_SLSH, CH_ASTR, CH_MINS, CH_PLUS, CH_EQL, _______, _______, CH_EQL, CH_PLUS, CH_MINS, CH_ASTR, CH_SLSH, _______,
_______, CH_HASH, CH_GRV, CH_QUOT, CH_DQUO, KC_TAB, _______, _______, KC_TAB, CH_DQUO, CH_QUOT, CH_GRV, CH_HASH, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),

[L_NUMFN] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
//_______, BP_1, BP_2, CTL_T(BP_3), BP_4, BP_5, _______, _______, BP_6, BP_7, CTL_T(BP_8), BP_9, BP_0, _______,
//_______, KC_F11, _______, BP_DOT, BP_COMM, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F12, _______,
_______, KC_F11, _______, CTL_T(BP_DOT), BP_COMM, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F12, _______,
_______, BP_1, BP_2, BP_3, BP_4, BP_5, _______, _______, BP_6, BP_7, BP_8, BP_9, BP_0, _______,
//_______, CH_1, CH_2, CTL_T(CH_3), CH_4, CH_5, _______, _______, CH_6, CH_7, CTL_T(CH_8), CH_, CH_0, _______,
//_______, KC_F11, _______, CH_DOT, CH_COMM, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F12, _______,
_______, KC_F11, _______, CTL_T(CH_DOT), CH_COMM, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F12, _______,
_______, CH_1, CH_2, CH_3, CH_4, CH_5, _______, _______, CH_6, CH_7, CH_8, CH_9, CH_0, _______,
//_______, _______, _______, _______, _______, KC_DELETE, _______, KC_DELETE // handles Esc+Enter
_______, _______, _______, _______, _______, DF(L_MOTION), _______, DF(L_MOTION) // handles Esc+Enter
),
Expand Down Expand Up @@ -208,8 +215,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),

[L_RAISE] = LAYOUT(
BP_GRV , BP_1 , BP_2 , BP_3 , BP_4 , BP_5 , _______, _______, BP_6 , BP_7 , BP_8 , BP_9 , BP_0 , BP_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BP_MINS, BP_EQL , _______,
CH_GRV , CH_1 , CH_2 , CH_3 , CH_4 , CH_5 , _______, _______, CH_6 , CH_7 , CH_8 , CH_9 , CH_0 , CH_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CH_MINS, CH_EQL , _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
Expand All @@ -218,19 +225,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
const key_override_t
shift_bspc_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL), // shift+backspace becomes delete
shift_lbspc_override = ko_make_basic(MOD_MASK_SHIFT, LT(L_COMMANDS, KC_BSPC), KC_DEL), // shift+layer backspace becomes delete
//shift_lprn_override = ko_make_basic(MOD_MASK_SHIFT, BP_LPRN, BP_LABK), // shift+( becomes <
shift_lprn_override = ko_make_basic(MOD_MASK_SHIFT, BP_LPRN, KC_LT), // shift+( becomes <
//shift_rprn_override = ko_make_basic(MOD_MASK_SHIFT, BP_RPRN, BP_RABK), // shift+) becomes >
shift_rprn_override = ko_make_basic(MOD_MASK_SHIFT, BP_RPRN, KC_GT), // shift+) becomes >
shift_exml_override = ko_make_basic(MOD_MASK_SHIFT, BP_EXLM, BP_IEXL), // shift+! becomes ¡
shift_ques_override = ko_make_basic(MOD_MASK_SHIFT, BP_QUES, BP_IQUE), // shift+? becomes ¿
shift_dollar_override = ko_make_basic(MOD_MASK_SHIFT, BP_DLR, X(EURO)), // shift+$ becomes €
//shift_lprn_override = ko_make_basic(MOD_MASK_SHIFT, CH_LPRN, CH_LABK), // shift+( becomes <
shift_lprn_override = ko_make_basic(MOD_MASK_SHIFT, CH_LPRN, KC_LT), // shift+( becomes <
//shift_rprn_override = ko_make_basic(MOD_MASK_SHIFT, CH_RPRN, CH_RABK), // shift+) becomes >
shift_rprn_override = ko_make_basic(MOD_MASK_SHIFT, CH_RPRN, KC_GT), // shift+) becomes >
// ko_make_basic(...) does not work with X(...) thus we must use macros
shift_exml_override = ko_make_basic(MOD_MASK_SHIFT, CH_EXLM, K_IEXLM), // shift+! becomes ¡
//shift_exml_override = ko_make_basic(MOD_MASK_SHIFT, CH_EXLM, X(IEXLM)), // shift+! becomes ¡
shift_ques_override = ko_make_basic(MOD_MASK_SHIFT, CH_QUES, K_IQUES), // shift+? becomes ¿
//shift_ques_override = ko_make_basic(MOD_MASK_SHIFT, CH_QUES, X(IQUES)), // shift+? becomes ¿
shift_dollar_override = ko_make_basic(MOD_MASK_SHIFT, CH_DLR, X(EURO)), // shift+$ becomes €
// mimic swiss qwertz
shift_comma_override = ko_make_basic(MOD_MASK_SHIFT, BP_COMM, BP_SCLN), // shift+, becomes ;
shift_dot_override = ko_make_basic(MOD_MASK_SHIFT, BP_DOT, BP_COLN), // shift+. becomes :
shift_lalt_dot_override = ko_make_basic(MOD_MASK_SHIFT, ALGR_T(BP_DOT), BP_COLN), // shift+. becomes : too
shift_mins_override = ko_make_basic(MOD_MASK_SHIFT, BP_MINS, BP_UNDS), // shift+-, becomes _
shift_mmns_override = ko_make_basic(MOD_MASK_SHIFT, BP_MMNS, BP_UNDS), // shift+-, becomes _ too
shift_comma_override = ko_make_basic(MOD_MASK_SHIFT, CH_COMM, CH_SCLN), // shift+, becomes ;
shift_dot_override = ko_make_basic(MOD_MASK_SHIFT, CH_DOT, CH_COLN), // shift+. becomes :
shift_lalt_dot_override = ko_make_basic(MOD_MASK_SHIFT, ALGR_T(CH_DOT), CH_COLN), // shift+. becomes : too
shift_mins_override = ko_make_basic(MOD_MASK_SHIFT, CH_MINS, CH_UNDS), // shift+-, becomes _
//shift_mmns_override = ko_make_basic(MOD_MASK_SHIFT, CH_MMNS, CH_UNDS), // shift+-, becomes _ too
// Shift volume up/down = move forward/backwards
shift_vold_override = ko_make_basic(MOD_MASK_SHIFT, KC_VOLD, KC_MRWD), // shift+volume down becomes rewind media
shift_volu_override = ko_make_basic(MOD_MASK_SHIFT, KC_VOLU, KC_MFFD); // shift+volume up becomes forward media
Expand All @@ -250,7 +260,7 @@ const key_override_t **key_overrides = (const key_override_t *[]){
&shift_dot_override,
&shift_lalt_dot_override,
&shift_mins_override,
&shift_mmns_override,
//&shift_mmns_override,
&shift_vold_override,
&shift_volu_override,
NULL // Null terminate the array of overrides!
Expand All @@ -261,7 +271,7 @@ const key_override_t **key_overrides = (const key_override_t *[]){
// in practice Backspace and Delete are best accessed via E+something,
// thus best implemented via the layers

const uint16_t PROGMEM combo_e_enter[] = {BP_E, KC_ENTER, COMBO_END};
const uint16_t PROGMEM combo_e_enter[] = {CH_E, KC_ENTER, COMBO_END};
const uint16_t PROGMEM combo_esc_enter[] = {KC_ESC, KC_ENTER, COMBO_END};
const uint16_t PROGMEM combo_rwd_ffd[] = {KC_MRWD, KC_MFFD, COMBO_END};
const uint16_t PROGMEM combo_vold_volu[] = {KC_VOLD, KC_VOLU, COMBO_END};
Expand All @@ -277,13 +287,9 @@ combo_t key_combos[COMBO_COUNT] = {
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC):
return 150; // rather speedy since used everywhere
return g_tapping_term - 50; // rather speedy since used everywhere
default:
#ifdef DYNAMIC_TAPPING_TERM_ENABLE
return g_tapping_term;
#elif
return TAPPING_TERM;
#endif
}
}

Expand All @@ -295,10 +301,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}

switch (keycode) {
case NTILDE:
case K_NTILDE:
if(record->event.pressed) {
// CH_TILD + n, CH_TILD ALGR(CH_CIRC)
// CH_CIRC == KC_EQL
//SEND_STRING(SS_ALGR(X_KC_EQL) "n");
//SEND_STRING(SS_ALGR(X_KC_EQL) "n");
//SEND_STRING("ñ");
send_unicode_string("ñ");
}
break;

case K_IEXLM:
if(record->event.pressed) {
//SEND_STRING("¡");
send_unicode_string("¡");
}
// [IEXLM] = 0x00A1, // ¡
break;

case K_IQUES:
if(record->event.pressed) {
// BP_DTILD then BP_N, BP_DTIL == ALGR(BP_N)
SEND_STRING(SS_ALGR("n") "n");
//SEND_STRING("¿");
send_unicode_string("¿");
// [IQUES] = 0x00BF, // ¿
}
break;

Expand Down

0 comments on commit d5b3b1c

Please sign in to comment.