diff options
| -rw-r--r-- | keyboards/rgbkb/mun/halconf.h | 6 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/keymaps/default/config.h | 7 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/keymaps/default/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/keymaps/via/config.h | 30 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/keymaps/via/keymap.c | 252 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/keymaps/via/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/matrix.c | 190 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/mcuconf.h | 23 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/mun.c | 8 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/rev1/rgbkb_mun_rev1_default.json | 13 | ||||
| -rw-r--r-- | keyboards/rgbkb/mun/rules.mk | 4 |
11 files changed, 334 insertions, 201 deletions
diff --git a/keyboards/rgbkb/mun/halconf.h b/keyboards/rgbkb/mun/halconf.h index c8d832a81..f5b97499d 100644 --- a/keyboards/rgbkb/mun/halconf.h +++ b/keyboards/rgbkb/mun/halconf.h | |||
| @@ -9,16 +9,10 @@ | |||
| 9 | 9 | ||
| 10 | #pragma once | 10 | #pragma once |
| 11 | 11 | ||
| 12 | //#define HAL_USE_DAC TRUE | ||
| 13 | |||
| 14 | //#define HAL_USE_GPT TRUE | ||
| 15 | |||
| 16 | #define HAL_USE_I2C TRUE | 12 | #define HAL_USE_I2C TRUE |
| 17 | 13 | ||
| 18 | #define HAL_USE_PWM TRUE | 14 | #define HAL_USE_PWM TRUE |
| 19 | 15 | ||
| 20 | #define HAL_USE_SERIAL TRUE | 16 | #define HAL_USE_SERIAL TRUE |
| 21 | 17 | ||
| 22 | #define HAL_USE_SERIAL_USB TRUE | ||
| 23 | |||
| 24 | #include_next <halconf.h> | 18 | #include_next <halconf.h> |
diff --git a/keyboards/rgbkb/mun/keymaps/default/config.h b/keyboards/rgbkb/mun/keymaps/default/config.h index 967b309f6..9719d1743 100644 --- a/keyboards/rgbkb/mun/keymaps/default/config.h +++ b/keyboards/rgbkb/mun/keymaps/default/config.h | |||
| @@ -20,11 +20,4 @@ | |||
| 20 | // #define RGB_DISABLE_TIMEOUT 1200000 | 20 | // #define RGB_DISABLE_TIMEOUT 1200000 |
| 21 | #define RGB_DISABLE_WHEN_USB_SUSPENDED | 21 | #define RGB_DISABLE_WHEN_USB_SUSPENDED |
| 22 | 22 | ||
| 23 | #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 | ||
| 24 | // 224B per layer right now | ||
| 25 | #define DYNAMIC_KEYMAP_LAYER_COUNT 8 | ||
| 26 | #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 | ||
| 27 | |||
| 28 | #define VIA_QMK_RGBLIGHT_ENABLE | ||
| 29 | |||
| 30 | #define STM32_ONBOARD_EEPROM_SIZE 2048 | 23 | #define STM32_ONBOARD_EEPROM_SIZE 2048 |
diff --git a/keyboards/rgbkb/mun/keymaps/default/rules.mk b/keyboards/rgbkb/mun/keymaps/default/rules.mk deleted file mode 100644 index 1e5b99807..000000000 --- a/keyboards/rgbkb/mun/keymaps/default/rules.mk +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | VIA_ENABLE = yes | ||
diff --git a/keyboards/rgbkb/mun/keymaps/via/config.h b/keyboards/rgbkb/mun/keymaps/via/config.h new file mode 100644 index 000000000..967b309f6 --- /dev/null +++ b/keyboards/rgbkb/mun/keymaps/via/config.h | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | /* | ||
| 2 | * ---------------------------------------------------------------------------- | ||
| 3 | * "THE BEER-WARE LICENSE" (Revision 42): | ||
| 4 | * <https://github.com/Legonut> wrote this file. As long as you retain this | ||
| 5 | * notice you can do whatever you want with this stuff. If we meet some day, and | ||
| 6 | * you think this stuff is worth it, you can buy me a beer in return. David Rauseo | ||
| 7 | * ---------------------------------------------------------------------------- | ||
| 8 | */ | ||
| 9 | |||
| 10 | #pragma once | ||
| 11 | |||
| 12 | // No need for the single versions when multi performance isn't a problem =D | ||
| 13 | #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE | ||
| 14 | #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS | ||
| 15 | #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS | ||
| 16 | #define DISABLE_RGB_MATRIX_SPLASH | ||
| 17 | #define DISABLE_RGB_MATRIX_SOLID_SPLASH | ||
| 18 | |||
| 19 | // 20m timeout (20m * 60s * 1000mil) | ||
| 20 | // #define RGB_DISABLE_TIMEOUT 1200000 | ||
| 21 | #define RGB_DISABLE_WHEN_USB_SUSPENDED | ||
| 22 | |||
| 23 | #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 | ||
| 24 | // 224B per layer right now | ||
| 25 | #define DYNAMIC_KEYMAP_LAYER_COUNT 8 | ||
| 26 | #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 | ||
| 27 | |||
| 28 | #define VIA_QMK_RGBLIGHT_ENABLE | ||
| 29 | |||
| 30 | #define STM32_ONBOARD_EEPROM_SIZE 2048 | ||
diff --git a/keyboards/rgbkb/mun/keymaps/via/keymap.c b/keyboards/rgbkb/mun/keymaps/via/keymap.c new file mode 100644 index 000000000..b120c3a37 --- /dev/null +++ b/keyboards/rgbkb/mun/keymaps/via/keymap.c | |||
| @@ -0,0 +1,252 @@ | |||
| 1 | /* | ||
| 2 | * ---------------------------------------------------------------------------- | ||
| 3 | * "THE BEER-WARE LICENSE" (Revision 42): | ||
| 4 | * <https://github.com/Legonut> wrote this file. As long as you retain this | ||
| 5 | * notice you can do whatever you want with this stuff. If we meet some day, and | ||
| 6 | * you think this stuff is worth it, you can buy me a beer in return. David Rauseo | ||
| 7 | * ---------------------------------------------------------------------------- | ||
| 8 | */ | ||
| 9 | |||
| 10 | #include QMK_KEYBOARD_H | ||
| 11 | #include "common_oled.h" | ||
| 12 | |||
| 13 | enum keymap_layers { | ||
| 14 | _QWERTY, | ||
| 15 | _COLEMAK, | ||
| 16 | _GAME, | ||
| 17 | _FN, | ||
| 18 | _ADJUST, | ||
| 19 | _VIA1, | ||
| 20 | _VIA2, | ||
| 21 | _VIA3 | ||
| 22 | }; | ||
| 23 | |||
| 24 | enum keymap_keycodes { | ||
| 25 | // Disables touch processing | ||
| 26 | TCH_TOG = SAFE_RANGE, | ||
| 27 | MENU_BTN, | ||
| 28 | MENU_UP, | ||
| 29 | MENU_DN | ||
| 30 | }; | ||
| 31 | |||
| 32 | // Default Layers | ||
| 33 | #define QWERTY DF(_QWERTY) | ||
| 34 | #define COLEMAK DF(_COLEMAK) | ||
| 35 | #define GAME DF(_GAME) | ||
| 36 | |||
| 37 | // Momentary Layers | ||
| 38 | #define FN MO(_FN) | ||
| 39 | #define ADJUST MO(_ADJUST) | ||
| 40 | |||
| 41 | #define FN_CAPS LT(_FN, KC_CAPS) | ||
| 42 | #define FN_ESC LT(_FN, KC_ESC) | ||
| 43 | |||
| 44 | /* This keyboard is enabled with an RGB Menu Control system. | ||
| 45 | This functionality is enabled, but still requires a little configuration based on your exact setup. | ||
| 46 | The RGB Menu will appear on the Right Half's OLED and can be controlled by the MENU keycodes: | ||
| 47 | MENU_BTN - Triggers a button action for the menu | ||
| 48 | MENU_UP - Triggers an increase action for the menu | ||
| 49 | MENU_DN - Triggers a decrease action for the menu | ||
| 50 | |||
| 51 | To finish configuration for your board, you will want to change the default keycodes for an encoder on the right half. | ||
| 52 | Encoder press keycode should be set to MENU_BTN, Clockwise should be MENU_UP, and Counter Clockwise should be MENU_DN. | ||
| 53 | Depending on where you add an encoder to the right half will determin in the default keymap where you should put those keycodes. | ||
| 54 | */ | ||
| 55 | |||
| 56 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 57 | /* QWERTY | ||
| 58 | * .--------------------------------------------------------------. .--------------------------------------------------------------. | ||
| 59 | * | `~/ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bckspc | | ||
| 60 | * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
| 61 | * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | | ||
| 62 | * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
| 63 | * | FN/Caps| A | S | D | F | G | ( | | ) | H | J | K | L | : | ' | | ||
| 64 | * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
| 65 | * | Shift | Z | X | C | V | B | { | | } | N | M | , | . | / |Shft/Ent| | ||
| 66 | * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
| 67 | * | Ctrl | Win | Alt | RGBTOG | Adjust | Space | Bksp | | Enter | Space | Left | Down | Up | Right | Ctrl | | ||
| 68 | * '--------+--------+--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------+--------+--------' | ||
| 69 | * Encoder 1 Encoder 2 Encoder 3 Encoder 4 | ||
| 70 | * .-----------------------------------. .-----------------------------------. | ||
| 71 | * | VolUp | VolDn | VolUp | VolDn | | PgUp | PgDn | PgUp | PgDn | | ||
| 72 | * |--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------| | ||
| 73 | * | VolDn | VolUp | Next | Play | Prev | Touch Encoder Touch Encoder | RgbHuI | RgbHuD | RgbMdD | RgbTog | RgbMdI | | ||
| 74 | * '--------+--------+--------+--------+--------' '--------+--------+--------+--------+--------' | ||
| 75 | */ | ||
| 76 | [_QWERTY] = LAYOUT( | ||
| 77 | KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | ||
| 78 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, | ||
| 79 | FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
| 80 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT, | ||
| 81 | KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, | ||
| 82 | |||
| 83 | KC_VOLU, KC_VOLD, KC_VOLU, KC_VOLD, KC_PGDN, KC_PGUP, KC_PGDN, KC_PGUP, | ||
| 84 | KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD | ||
| 85 | ), | ||
| 86 | |||
| 87 | [_COLEMAK] = LAYOUT( | ||
| 88 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 89 | _______, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______, | ||
| 90 | _______, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, _______, | ||
| 91 | _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, | ||
| 92 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 93 | |||
| 94 | _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 95 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 96 | ), | ||
| 97 | |||
| 98 | [_GAME] = LAYOUT( | ||
| 99 | _______, _______, _______, _______, _______, _______, KC_F1, KC_F5, _______, _______, _______, _______, _______, _______, | ||
| 100 | _______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F2, KC_F6, KC_Y, KC_U, KC_I, KC_O, KC_P, _______, | ||
| 101 | _______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F3, KC_F7, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______, | ||
| 102 | _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F4, KC_F8, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, | ||
| 103 | _______, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 104 | |||
| 105 | _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 106 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 107 | ), | ||
| 108 | |||
| 109 | [_FN] = LAYOUT( | ||
| 110 | _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, | ||
| 111 | _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, KC_PGUP, | ||
| 112 | _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_PGDN, | ||
| 113 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 114 | _______, _______, _______, TCH_TOG, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, | ||
| 115 | |||
| 116 | _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 117 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 118 | ), | ||
| 119 | |||
| 120 | [_ADJUST] = LAYOUT( | ||
| 121 | _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, | ||
| 122 | _______, RGB_SAD, RGB_VAI, RGB_SAI, RESET, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, | ||
| 123 | _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, | ||
| 124 | _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, | ||
| 125 | _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NLCK, QWERTY, COLEMAK, | ||
| 126 | |||
| 127 | _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 128 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 129 | ), | ||
| 130 | |||
| 131 | [_VIA1] = LAYOUT( | ||
| 132 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 133 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 134 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 135 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 136 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 137 | |||
| 138 | _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 139 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 140 | ), | ||
| 141 | |||
| 142 | [_VIA2] = LAYOUT( | ||
| 143 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 144 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 145 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 146 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 147 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 148 | |||
| 149 | _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 150 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 151 | ), | ||
| 152 | |||
| 153 | [_VIA3] = LAYOUT( | ||
| 154 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 155 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 156 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 157 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 158 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 159 | |||
| 160 | _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 161 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 162 | ), | ||
| 163 | }; | ||
| 164 | |||
| 165 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 166 | switch (keycode) | ||
| 167 | { | ||
| 168 | case MENU_BTN: | ||
| 169 | if (record->event.pressed) { | ||
| 170 | rgb_menu_selection(); | ||
| 171 | } | ||
| 172 | return false; | ||
| 173 | case MENU_UP: | ||
| 174 | if (record->event.pressed) { | ||
| 175 | rgb_menu_action(true); | ||
| 176 | } | ||
| 177 | return false; | ||
| 178 | case MENU_DN: | ||
| 179 | if (record->event.pressed) { | ||
| 180 | rgb_menu_action(false); | ||
| 181 | } | ||
| 182 | return false; | ||
| 183 | case TCH_TOG: | ||
| 184 | if (record->event.pressed) { | ||
| 185 | touch_encoder_toggle(); | ||
| 186 | } | ||
| 187 | return false; // Skip all further processing of this key | ||
| 188 | default: | ||
| 189 | return true; | ||
| 190 | } | ||
| 191 | } | ||
| 192 | |||
| 193 | static void render_layer(void) { | ||
| 194 | // Host Keyboard Layer Status | ||
| 195 | oled_write_P(PSTR("Layer"), false); | ||
| 196 | switch (get_highest_layer(layer_state)) { | ||
| 197 | case _QWERTY: | ||
| 198 | oled_write_ln_P(PSTR("QWRTY"), false); | ||
| 199 | break; | ||
| 200 | case _COLEMAK: | ||
| 201 | oled_write_ln_P(PSTR("Colemk"), false); | ||
| 202 | break; | ||
| 203 | case _GAME: | ||
| 204 | oled_write_ln_P(PSTR("Game "), false); | ||
| 205 | break; | ||
| 206 | case _FN: | ||
| 207 | oled_write_ln_P(PSTR("FN "), false); | ||
| 208 | break; | ||
| 209 | case _ADJUST: | ||
| 210 | oled_write_ln_P(PSTR("Adjst"), false); | ||
| 211 | break; | ||
| 212 | default: | ||
| 213 | oled_write_ln_P(PSTR("Undef"), false); | ||
| 214 | } | ||
| 215 | } | ||
| 216 | |||
| 217 | static void render_leds(void) | ||
| 218 | { | ||
| 219 | // Host Keyboard LED Status | ||
| 220 | led_t led_state = host_keyboard_led_state(); | ||
| 221 | oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false); | ||
| 222 | oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false); | ||
| 223 | oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false); | ||
| 224 | } | ||
| 225 | |||
| 226 | static void render_touch(void) | ||
| 227 | { | ||
| 228 | // Host Touch LED Status | ||
| 229 | oled_write_P(!touch_encoder_toggled() ? PSTR("TOUCH") : PSTR(" "), false); | ||
| 230 | oled_write_P(touch_encoder_calibrating() ? PSTR("CLBRT") : PSTR(" "), false); | ||
| 231 | } | ||
| 232 | |||
| 233 | void oled_task_user(void) { | ||
| 234 | if (is_keyboard_left()) { | ||
| 235 | render_icon(); | ||
| 236 | oled_write_P(PSTR(" "), false); | ||
| 237 | render_layer(); | ||
| 238 | oled_write_P(PSTR(" "), false); | ||
| 239 | render_leds(); | ||
| 240 | oled_write_P(PSTR(" "), false); | ||
| 241 | render_touch(); | ||
| 242 | } | ||
| 243 | else { | ||
| 244 | render_icon(); | ||
| 245 | oled_write_P(PSTR(" "), false); | ||
| 246 | render_rgb_menu(); | ||
| 247 | } | ||
| 248 | } | ||
| 249 | |||
| 250 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
| 251 | return OLED_ROTATION_270; | ||
| 252 | } | ||
diff --git a/keyboards/rgbkb/mun/keymaps/via/rules.mk b/keyboards/rgbkb/mun/keymaps/via/rules.mk new file mode 100644 index 000000000..40bded399 --- /dev/null +++ b/keyboards/rgbkb/mun/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE=yes \ No newline at end of file | |||
diff --git a/keyboards/rgbkb/mun/matrix.c b/keyboards/rgbkb/mun/matrix.c index 497ab041f..b859847f1 100644 --- a/keyboards/rgbkb/mun/matrix.c +++ b/keyboards/rgbkb/mun/matrix.c | |||
| @@ -7,150 +7,56 @@ | |||
| 7 | * ---------------------------------------------------------------------------- | 7 | * ---------------------------------------------------------------------------- |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <stdint.h> | ||
| 11 | #include <stdbool.h> | ||
| 12 | #include <string.h> | ||
| 13 | #include "util.h" | ||
| 14 | #include "matrix.h" | 10 | #include "matrix.h" |
| 15 | #include "debounce.h" | 11 | #include "atomic_util.h" |
| 16 | #include "quantum.h" | 12 | #include "gpio.h" |
| 17 | #include "split_util.h" | 13 | |
| 18 | #include "config.h" | 14 | static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; |
| 19 | #include "transactions.h" | 15 | |
| 20 | 16 | void matrix_read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) { | |
| 21 | #define ERROR_DISCONNECT_COUNT 5 | 17 | /* Drive row pin low. */ |
| 22 | #define ROWS_PER_HAND (MATRIX_ROWS / 2) | 18 | ATOMIC_BLOCK_FORCEON { writePinLow(row_pins[current_row]); } |
| 23 | 19 | matrix_output_select_delay(); | |
| 24 | static const pin_t row_pins[ROWS_PER_HAND] = MATRIX_ROW_PINS; | 20 | |
| 25 | static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; | 21 | /* Read all columns in one go, aka port scanning. */ |
| 26 | 22 | uint16_t porta = palReadPort(GPIOA); | |
| 27 | /* matrix state(1:on, 0:off) */ | 23 | uint16_t portb = palReadPort(GPIOB); |
| 28 | extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values | 24 | |
| 29 | extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values | 25 | /* Order of pins on the mun is: A0, B11, B0, B10, B12, B2, A8 |
| 30 | 26 | Pin is active low, therefore we have to invert the result. */ | |
| 31 | // row offsets for each hand | 27 | matrix_row_t cols = ~(((porta & (0x1 << 0)) >> 0) // A0 (0) |
| 32 | uint8_t thisHand, thatHand; | 28 | | ((portb & (0x1 << 11)) >> 10) // B11 (1) |
| 33 | 29 | | ((portb & (0x1 << 0)) << 2) // B0 (2) | |
| 34 | // user-defined overridable functions | 30 | | ((portb & (0x1 << 10)) >> 7) // B10 (3) |
| 35 | __attribute__((weak)) void matrix_slave_scan_kb(void) { matrix_slave_scan_user(); } | 31 | | ((portb & (0x1 << 12)) >> 8) // B12 (4) |
| 36 | __attribute__((weak)) void matrix_slave_scan_user(void) {} | 32 | | ((portb & (0x1 << 2)) << 3) // B2 (5) |
| 37 | 33 | | ((porta & (0x1 << 8)) >> 2)); // A8 (6) | |
| 38 | static void init_pins(void) { | 34 | |
| 39 | for (size_t i = 0; i < MATRIX_COLS; i++) { | 35 | /* Reverse the order of columns for left hand as the board is flipped. */ |
| 40 | setPinInputHigh(col_pins[i]); | 36 | // if (isLeftHand) { |
| 41 | } | 37 | // #if defined(__arm__) |
| 42 | for (size_t i = 0; i < ROWS_PER_HAND; i++) { | 38 | // /* rbit assembly reverses bit order of 32bit registers. */ |
| 43 | setPinOutput(row_pins[i]); | 39 | // uint32_t temp = cols; |
| 44 | writePinHigh(row_pins[i]); | 40 | // __asm__("rbit %0, %1" : "=r"(temp) : "r"(temp)); |
| 45 | } | 41 | // cols = temp >> 24; |
| 46 | } | 42 | // #else |
| 47 | 43 | // /* RISC-V bit manipulation extension not present. Use bit-hack. | |
| 48 | void matrix_init(void) { | 44 | // https://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith32Bits */ |
| 49 | split_pre_init(); | 45 | // cols = (matrix_row_t)(((cols * 0x0802LU & 0x22110LU) | (cols * 0x8020LU & 0x88440LU)) * 0x10101LU >> 16); |
| 50 | 46 | // #endif | |
| 51 | thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); | 47 | // } |
| 52 | thatHand = ROWS_PER_HAND - thisHand; | 48 | |
| 53 | 49 | current_matrix[current_row] = cols; | |
| 54 | // initialize key pins | 50 | |
| 55 | init_pins(); | 51 | /* Drive row pin high again. */ |
| 56 | 52 | ATOMIC_BLOCK_FORCEON { writePinHigh(row_pins[current_row]); } | |
| 57 | // initialize matrix state: all keys off | 53 | matrix_output_unselect_delay(current_row, row_pins[current_row] != 0); |
| 58 | memset(raw_matrix, 0, sizeof(raw_matrix)); | ||
| 59 | memset(matrix, 0, sizeof(matrix)); | ||
| 60 | |||
| 61 | debounce_init(ROWS_PER_HAND); | ||
| 62 | |||
| 63 | matrix_init_quantum(); | ||
| 64 | |||
| 65 | split_post_init(); | ||
| 66 | } | ||
| 67 | |||
| 68 | bool matrix_post_scan(void) { | ||
| 69 | bool changed = false; | ||
| 70 | if (is_keyboard_master()) { | ||
| 71 | static uint8_t error_count; | ||
| 72 | |||
| 73 | matrix_row_t slave_matrix[ROWS_PER_HAND] = {0}; | ||
| 74 | if (!transport_master(matrix + thisHand, slave_matrix)) { | ||
| 75 | error_count++; | ||
| 76 | |||
| 77 | if (error_count > ERROR_DISCONNECT_COUNT) { | ||
| 78 | // reset other half if disconnected | ||
| 79 | memset(&matrix[thatHand], 0, sizeof(slave_matrix)); | ||
| 80 | memset(slave_matrix, 0, sizeof(slave_matrix)); | ||
| 81 | |||
| 82 | changed = true; | ||
| 83 | } | ||
| 84 | } else { | ||
| 85 | error_count = 0; | ||
| 86 | |||
| 87 | if (memcmp(&matrix[thatHand], slave_matrix, sizeof(slave_matrix)) != 0) { | ||
| 88 | memcpy(&matrix[thatHand], slave_matrix, sizeof(slave_matrix)); | ||
| 89 | changed = true; | ||
| 90 | } | ||
| 91 | } | ||
| 92 | |||
| 93 | matrix_scan_quantum(); | ||
| 94 | } else { | ||
| 95 | transport_slave(matrix + thatHand, matrix + thisHand); | ||
| 96 | |||
| 97 | matrix_slave_scan_kb(); | ||
| 98 | } | ||
| 99 | |||
| 100 | return changed; | ||
| 101 | } | 54 | } |
| 102 | 55 | ||
| 103 | uint8_t matrix_scan(void) { | 56 | #if defined(BUSY_WAIT) |
| 104 | bool local_changed = false; | 57 | void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { |
| 105 | matrix_row_t current_matrix[ROWS_PER_HAND]; | 58 | for (int32_t i = 0; i < BUSY_WAIT_INSTRUCTIONS; i++) { |
| 106 | 59 | __asm__ volatile("nop" ::: "memory"); | |
| 107 | for (size_t row_idx = 0; row_idx < ROWS_PER_HAND; row_idx++) { | ||
| 108 | /* Drive row pin low. */ | ||
| 109 | ATOMIC_BLOCK_FORCEON { writePinLow(row_pins[row_idx]); } | ||
| 110 | matrix_output_select_delay(); | ||
| 111 | |||
| 112 | /* Read all columns in one go, aka port scanning. */ | ||
| 113 | uint16_t porta = palReadPort(GPIOA); | ||
| 114 | uint16_t portb = palReadPort(GPIOB); | ||
| 115 | |||
| 116 | /* Order of pins on the mun is: A0, B11, B0, B10, B12, B2, A8 | ||
| 117 | Pin is active low, therefore we have to invert the result. */ | ||
| 118 | matrix_row_t cols = ~(((porta & (0x1 << 0)) >> 0) // A0 (0) | ||
| 119 | | ((portb & (0x1 << 11)) >> 10) // B11 (1) | ||
| 120 | | ((portb & (0x1 << 0)) << 2) // B0 (2) | ||
| 121 | | ((portb & (0x1 << 10)) >> 7) // B10 (3) | ||
| 122 | | ((portb & (0x1 << 12)) >> 8) // B12 (4) | ||
| 123 | | ((portb & (0x1 << 2)) << 3) // B2 (5) | ||
| 124 | | ((porta & (0x1 << 8)) >> 2)); // A8 (6) | ||
| 125 | |||
| 126 | /* Reverse the order of columns for left hand as the board is flipped. */ | ||
| 127 | // if (isLeftHand) { | ||
| 128 | // #if defined(__arm__) | ||
| 129 | // /* rbit assembly reverses bit order of 32bit registers. */ | ||
| 130 | // uint32_t temp = cols; | ||
| 131 | // __asm__("rbit %0, %1" : "=r"(temp) : "r"(temp)); | ||
| 132 | // cols = temp >> 24; | ||
| 133 | // #else | ||
| 134 | // /* RISC-V bit manipulation extension not present. Use bit-hack. | ||
| 135 | // https://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith32Bits */ | ||
| 136 | // cols = (matrix_row_t)(((cols * 0x0802LU & 0x22110LU) | (cols * 0x8020LU & 0x88440LU)) * 0x10101LU >> 16); | ||
| 137 | // #endif | ||
| 138 | // } | ||
| 139 | |||
| 140 | current_matrix[row_idx] = cols; | ||
| 141 | |||
| 142 | /* Drive row pin high again. */ | ||
| 143 | ATOMIC_BLOCK_FORCEON { writePinHigh(row_pins[row_idx]); } | ||
| 144 | matrix_output_unselect_delay(row_idx, row_pins[row_idx] != 0); | ||
| 145 | } | 60 | } |
| 146 | |||
| 147 | if (memcmp(raw_matrix, current_matrix, sizeof(current_matrix)) != 0) { | ||
| 148 | memcpy(raw_matrix, current_matrix, sizeof(current_matrix)); | ||
| 149 | local_changed = true; | ||
| 150 | } | ||
| 151 | |||
| 152 | debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, local_changed); | ||
| 153 | |||
| 154 | bool remote_changed = matrix_post_scan(); | ||
| 155 | return (uint8_t)(local_changed || remote_changed); | ||
| 156 | } | 61 | } |
| 62 | #endif | ||
diff --git a/keyboards/rgbkb/mun/mcuconf.h b/keyboards/rgbkb/mun/mcuconf.h index acc083d8a..dd6e38509 100644 --- a/keyboards/rgbkb/mun/mcuconf.h +++ b/keyboards/rgbkb/mun/mcuconf.h | |||
| @@ -11,32 +11,11 @@ | |||
| 11 | 11 | ||
| 12 | #include_next <mcuconf.h> | 12 | #include_next <mcuconf.h> |
| 13 | 13 | ||
| 14 | #undef STM32_DAC_USE_DAC1_CH1 | ||
| 15 | #define STM32_DAC_USE_DAC1_CH1 TRUE | ||
| 16 | |||
| 17 | #undef STM32_DAC_USE_DAC1_CH2 | ||
| 18 | #define STM32_DAC_USE_DAC1_CH2 TRUE | ||
| 19 | |||
| 20 | #undef STM32_GPT_USE_TIM6 | ||
| 21 | #define STM32_GPT_USE_TIM6 TRUE | ||
| 22 | |||
| 23 | #undef STM32_GPT_USE_TIM7 | ||
| 24 | #define STM32_GPT_USE_TIM7 TRUE | ||
| 25 | |||
| 26 | #undef STM32_GPT_USE_TIM8 | ||
| 27 | #define STM32_GPT_USE_TIM8 TRUE | ||
| 28 | |||
| 29 | #undef STM32_GPT_USE_TIM15 | ||
| 30 | #define STM32_GPT_USE_TIM15 TRUE | ||
| 31 | |||
| 32 | #undef STM32_I2C_USE_I2C1 | 14 | #undef STM32_I2C_USE_I2C1 |
| 33 | #define STM32_I2C_USE_I2C1 TRUE | 15 | #define STM32_I2C_USE_I2C1 TRUE |
| 34 | 16 | ||
| 35 | #undef STM32_PWM_USE_TIM3 | 17 | #undef STM32_PWM_USE_TIM3 |
| 36 | #define STM32_PWM_USE_TIM3 TRUE | 18 | #define STM32_PWM_USE_TIM3 TRUE |
| 37 | 19 | ||
| 38 | #undef STM32_PWM_USE_TIM4 | ||
| 39 | #define STM32_PWM_USE_TIM4 TRUE | ||
| 40 | |||
| 41 | #undef STM32_SERIAL_USE_USART1 | 20 | #undef STM32_SERIAL_USE_USART1 |
| 42 | #define STM32_SERIAL_USE_USART1 TRUE \ No newline at end of file | 21 | #define STM32_SERIAL_USE_USART1 TRUE |
diff --git a/keyboards/rgbkb/mun/mun.c b/keyboards/rgbkb/mun/mun.c index 6cc95c46e..f64de3342 100644 --- a/keyboards/rgbkb/mun/mun.c +++ b/keyboards/rgbkb/mun/mun.c | |||
| @@ -23,11 +23,3 @@ void housekeeping_task_kb(void) { | |||
| 23 | touch_encoder_update(TOUCH_ENCODER_SYNC); | 23 | touch_encoder_update(TOUCH_ENCODER_SYNC); |
| 24 | rgb_menu_update(RGB_MENU_SYNC); | 24 | rgb_menu_update(RGB_MENU_SYNC); |
| 25 | } | 25 | } |
| 26 | |||
| 27 | #if defined(BUSY_WAIT) | ||
| 28 | void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { | ||
| 29 | for (int32_t i = 0; i < BUSY_WAIT_INSTRUCTIONS; i++) { | ||
| 30 | __asm__ volatile("nop" ::: "memory"); | ||
| 31 | } | ||
| 32 | } | ||
| 33 | #endif | ||
diff --git a/keyboards/rgbkb/mun/rev1/rgbkb_mun_rev1_default.json b/keyboards/rgbkb/mun/rev1/rgbkb_mun_rev1_default.json deleted file mode 100644 index ccf70ef5f..000000000 --- a/keyboards/rgbkb/mun/rev1/rgbkb_mun_rev1_default.json +++ /dev/null | |||
| @@ -1,13 +0,0 @@ | |||
| 1 | { | ||
| 2 | "keyboard": "rgbkb/mun/rev1", | ||
| 3 | "keymap": "default", | ||
| 4 | "commit": "xxxxxxxxxxxxxxxxxxxxx", | ||
| 5 | "layout": "LAYOUT", | ||
| 6 | "layers": [ | ||
| 7 | ["KC_GESC","KC_1","KC_2","KC_3","KC_4","KC_5","KC_MINS","KC_EQL","KC_6","KC_7","KC_8","KC_9","KC_0","KC_BSPC","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_LBRC","KC_RBRC","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_BSLS","LT(3,KC_CAPS)","KC_A","KC_S","KC_D","KC_F","KC_G","KC_LPRN","KC_RPRN","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_LCBR","KC_RCBR","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_SFTENT","KC_LCTL","KC_LGUI","KC_LALT","RGB_TOG","MO(4)","KC_SPC","KC_BSPC","KC_ENT","KC_SPC","KC_LEFT","KC_DOWN","KC_UP","KC_RGHT","KC_RCTL","KC_VOLU","KC_VOLD","KC_VOLU","KC_VOLD","KC_PGUP","KC_PGDN","KC_PGUP","KC_PGDN","KC_VOLD","KC_VOLU","KC_MRWD","KC_MPLY","KC_MFFD","RGB_HUI","RGB_HUD","RGB_RMOD","RGB_TOG","RGB_MOD"], | ||
| 8 | ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_Q","KC_W","KC_F","KC_P","KC_G","KC_TRNS","KC_TRNS","KC_J","KC_L","KC_U","KC_Y","KC_SCLN","KC_TRNS","KC_TRNS","KC_A","KC_R","KC_S","KC_T","KC_D","KC_TRNS","KC_TRNS","KC_H","KC_N","KC_E","KC_I","KC_O","KC_TRNS","KC_TRNS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_TRNS","KC_TRNS","KC_K","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | ||
| 9 | ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_F1","KC_F5","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_F2","KC_F6","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_TRNS","KC_TRNS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_F3","KC_F7","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_TRNS","KC_TRNS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_F4","KC_F8","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_TRNS","KC_TRNS","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | ||
| 10 | ["KC_TRNS","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F11","KC_F12","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_TRNS","KC_TRNS","KC_HOME","KC_UP","KC_END","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_HOME","KC_UP","KC_END","KC_PSCR","KC_PGUP","KC_TRNS","KC_LEFT","KC_DOWN","KC_RGHT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_LEFT","KC_DOWN","KC_RGHT","KC_INS","KC_PGDN","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","ANY(TCH_TOG)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MPLY","KC_MNXT","KC_MUTE","KC_VOLD","KC_VOLU","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | ||
| 11 | ["KC_TRNS","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F11","KC_F12","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P7","KC_P8","KC_P9","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P4","KC_P5","KC_P6","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P1","KC_P2","KC_P3","KC_TRNS","DF(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P0","KC_PDOT","KC_NLCK","DF(0)","DF(1)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"] | ||
| 12 | ] | ||
| 13 | } \ No newline at end of file | ||
diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk index f016c6c71..85ee63346 100644 --- a/keyboards/rgbkb/mun/rules.mk +++ b/keyboards/rgbkb/mun/rules.mk | |||
| @@ -40,7 +40,7 @@ OPT = 3 | |||
| 40 | OPT_DEFS += -DOLED_FONT_H=\"../common/glcdfont.c\" | 40 | OPT_DEFS += -DOLED_FONT_H=\"../common/glcdfont.c\" |
| 41 | OPT_DEFS += -Ikeyboards/rgbkb/common | 41 | OPT_DEFS += -Ikeyboards/rgbkb/common |
| 42 | 42 | ||
| 43 | CUSTOM_MATRIX = yes | 43 | # matrix optimisations |
| 44 | SRC += matrix.c matrix_common.c | 44 | SRC += matrix.c |
| 45 | 45 | ||
| 46 | DEFAULT_FOLDER = rgbkb/mun/rev1 \ No newline at end of file | 46 | DEFAULT_FOLDER = rgbkb/mun/rev1 \ No newline at end of file |
