keymap.c 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // Copyright 2024 sanfeps (@sanfeps)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include QMK_KEYBOARD_H
  4. #include "keymap_spanish.h"
  5. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  6. /*
  7. * Layer 0 — Base (Spanish)
  8. * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
  9. * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ ?/¿ │
  10. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  11. * │ TAB │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ !/¡ │
  12. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  13. * │LSFT │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ Ñ │ @/| │
  14. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  15. * │LALT │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ -/_ │ #/~ │
  16. * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
  17. * │LGUI │BSPC │MO(1)│ │ ENT │ SPC │RCTL │
  18. * └─────┴─────┴─────┘ └─────┴─────┴─────┘
  19. */
  20. [0] = LAYOUT(
  21. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, ES_QUES,
  22. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, ES_EXLM,
  23. KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, ES_NTIL, ES_AT,
  24. KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, ES_MINS, ES_HASH,
  25. KC_LGUI, KC_BSPC, MO(1), KC_ENT, KC_SPC, KC_RCTL
  26. ),
  27. /*
  28. * Layer 1 — Symbols / Function / Nav
  29. * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
  30. * │ F12 │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │
  31. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  32. * │ TAB │ │ │ │ │ │ │ │ {/[ │ }/] │ + * │ │ ` │
  33. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  34. * │ ___ │ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │ ´ │
  35. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  36. * │ ___ │ │ │ │ │ │ │ │ ' │ < │ │ │ DEL │
  37. * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
  38. * │ │ │ ___ │ │MO(2)│ ENT │ │
  39. * └─────┴─────┴─────┘ └─────┴─────┴─────┘
  40. */
  41. [1] = LAYOUT(
  42. KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  43. KC_TAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ES_LCBR, ES_RCBR, ES_PLUS, XXXXXXX, ES_GRV,
  44. _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, ES_ACUT,
  45. _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ES_QUOT, ES_LABK, XXXXXXX, XXXXXXX, KC_DEL,
  46. XXXXXXX, XXXXXXX, _______, MO(2), KC_ENT, XXXXXXX
  47. ),
  48. /*
  49. * Layer 2 — RGB control
  50. * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
  51. * │TOGG │PREV │NEXT │ │ │ │ │ │ │ │ │ │ │
  52. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  53. * │ │SPD↓ │SPD↑ │ │ │ │ │ │ │ │ │ │ │
  54. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  55. * │ │ │ │ │ │ │ │HUE↓ │VAL↓ │VAL↑ │HUE↑ │ │ │
  56. * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
  57. * │ │ │ │ │ │ │ │ │SAT↓ │SAT↑ │ │ │BOOT │
  58. * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
  59. * │ │ │ │ │ ___ │ │ │
  60. * └─────┴─────┴─────┘ └─────┴─────┴─────┘
  61. */
  62. [2] = LAYOUT(
  63. RM_TOGG, RM_PREV, RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  64. XXXXXXX, RM_SPDD, RM_SPDU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  65. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_HUED, RM_VALD, RM_VALU, RM_HUEU, XXXXXXX, XXXXXXX,
  66. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_SATD, RM_SATU, XXXXXXX, XXXXXXX, QK_BOOT,
  67. XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX
  68. ),
  69. };
  70. // Shifted-key overrides for the Spanish layout.
  71. // Pressing the key gives the first symbol; holding Shift gives the second.
  72. const key_override_t ques_to_ique = ko_make_basic(MOD_MASK_SHIFT, ES_QUES, ES_IQUE); // ? → ¿
  73. const key_override_t exlm_to_iexl = ko_make_basic(MOD_MASK_SHIFT, ES_EXLM, ES_IEXL); // ! → ¡
  74. const key_override_t lcbr_to_lbrc = ko_make_basic(MOD_MASK_SHIFT, ES_LCBR, ES_LBRC); // { → [
  75. const key_override_t rcbr_to_rbrc = ko_make_basic(MOD_MASK_SHIFT, ES_RCBR, ES_RBRC); // } → ]
  76. const key_override_t plus_to_astr = ko_make_basic(MOD_MASK_SHIFT, ES_PLUS, ES_ASTR); // + → *
  77. const key_override_t at_to_pipe = ko_make_basic(MOD_MASK_SHIFT, ES_AT, ES_PIPE); // @ → |
  78. const key_override_t hash_to_tild = ko_make_basic(MOD_MASK_SHIFT, ES_HASH, ES_TILD); // # → ~
  79. const key_override_t *key_overrides[] = {
  80. &ques_to_ique,
  81. &exlm_to_iexl,
  82. &lcbr_to_lbrc,
  83. &rcbr_to_rbrc,
  84. &plus_to_astr,
  85. &at_to_pipe,
  86. &hash_to_tild,
  87. };