Compare changes

Choose any two refs to compare.

Changed files
+942 -3
drivers
keyboards
+1 -3
drivers/ps2/ps2_mouse.c
··· 89 } else { 90 if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); 91 /* return here to avoid updating the mouse button state */ 92 - return; 93 } 94 #else 95 if (pbuf_has_data()) { ··· 97 mouse_report.x = ps2_host_recv_response(); 98 mouse_report.y = ps2_host_recv_response(); 99 # ifdef PS2_MOUSE_ENABLE_SCROLLING 100 - mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK); 101 # endif 102 } else { 103 if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); 104 /* return here to avoid updating the mouse button state */ 105 - return; 106 } 107 #endif 108
··· 89 } else { 90 if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); 91 /* return here to avoid updating the mouse button state */ 92 } 93 #else 94 if (pbuf_has_data()) { ··· 96 mouse_report.x = ps2_host_recv_response(); 97 mouse_report.y = ps2_host_recv_response(); 98 # ifdef PS2_MOUSE_ENABLE_SCROLLING 99 + mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK); 100 # endif 101 } else { 102 if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); 103 /* return here to avoid updating the mouse button state */ 104 } 105 #endif 106
+5
keyboards/corne_monke/halconf.h
···
··· 1 + #pragma once 2 + 3 + #define PAL_USE_CALLBACKS TRUE 4 + 5 + #include_next <halconf.h>
+131
keyboards/corne_monke/info.json
···
··· 1 + { 2 + "manufacturer": "monke", 3 + "url": "https://github.com/foostan/crkbd", 4 + "maintainer": "qmk", 5 + "usb": { 6 + "vid": "0x4653" 7 + }, 8 + "features": { 9 + "bootmagic": true, 10 + "extrakey": true, 11 + "nkro": true, 12 + "oled": true, 13 + "rgblight": false, 14 + "rgb_matrix": false 15 + }, 16 + "bootmagic": { 17 + "matrix": [0, 1] 18 + }, 19 + "split": { 20 + "enabled": true, 21 + "bootmagic": { 22 + "matrix": [4, 1] 23 + } 24 + }, 25 + "layout_aliases": { 26 + "LAYOUT": "LAYOUT_split_3x6_3" 27 + }, 28 + "community_layouts": [ "split_3x5_3", "split_3x6_3" ], 29 + "layouts": { 30 + "LAYOUT_split_3x5_3": { 31 + "layout": [ 32 + {"matrix": [0, 1], "x": 0, "y": 0.3}, 33 + {"matrix": [0, 2], "x": 1, "y": 0.1}, 34 + {"matrix": [0, 3], "x": 2, "y": 0}, 35 + {"matrix": [0, 4], "x": 3, "y": 0.1}, 36 + {"matrix": [0, 5], "x": 4, "y": 0.2}, 37 + 38 + {"matrix": [4, 5], "x": 8, "y": 0.2}, 39 + {"matrix": [4, 4], "x": 9, "y": 0.1}, 40 + {"matrix": [4, 3], "x": 10, "y": 0}, 41 + {"matrix": [4, 2], "x": 11, "y": 0.1}, 42 + {"matrix": [4, 1], "x": 12, "y": 0.3}, 43 + 44 + {"matrix": [1, 1], "x": 0, "y": 1.3}, 45 + {"matrix": [1, 2], "x": 1, "y": 1.1}, 46 + {"matrix": [1, 3], "x": 2, "y": 1}, 47 + {"matrix": [1, 4], "x": 3, "y": 1.1}, 48 + {"matrix": [1, 5], "x": 4, "y": 1.2}, 49 + 50 + {"matrix": [5, 5], "x": 8, "y": 1.2}, 51 + {"matrix": [5, 4], "x": 9, "y": 1.1}, 52 + {"matrix": [5, 3], "x": 10, "y": 1}, 53 + {"matrix": [5, 2], "x": 11, "y": 1.1}, 54 + {"matrix": [5, 1], "x": 12, "y": 1.3}, 55 + 56 + {"matrix": [2, 1], "x": 0, "y": 2.3}, 57 + {"matrix": [2, 2], "x": 1, "y": 2.1}, 58 + {"matrix": [2, 3], "x": 2, "y": 2}, 59 + {"matrix": [2, 4], "x": 3, "y": 2.1}, 60 + {"matrix": [2, 5], "x": 4, "y": 2.2}, 61 + 62 + {"matrix": [6, 5], "x": 8, "y": 2.2}, 63 + {"matrix": [6, 4], "x": 9, "y": 2.1}, 64 + {"matrix": [6, 3], "x": 10, "y": 2}, 65 + {"matrix": [6, 2], "x": 11, "y": 2.1}, 66 + {"matrix": [6, 1], "x": 12, "y": 2.3}, 67 + 68 + {"matrix": [3, 3], "x": 3, "y": 3.7}, 69 + {"matrix": [3, 4], "x": 4, "y": 3.7}, 70 + {"matrix": [3, 5], "x": 5, "y": 3.2, "h": 1.5}, 71 + 72 + {"matrix": [7, 5], "x": 7, "y": 3.2, "h": 1.5}, 73 + {"matrix": [7, 4], "x": 8, "y": 3.7}, 74 + {"matrix": [7, 3], "x": 9, "y": 3.7} 75 + ] 76 + }, 77 + "LAYOUT_split_3x6_3": { 78 + "layout": [ 79 + {"matrix": [0, 0], "x": 0, "y": 0.3}, 80 + {"matrix": [0, 1], "x": 1, "y": 0.3}, 81 + {"matrix": [0, 2], "x": 2, "y": 0.1}, 82 + {"matrix": [0, 3], "x": 3, "y": 0}, 83 + {"matrix": [0, 4], "x": 4, "y": 0.1}, 84 + {"matrix": [0, 5], "x": 5, "y": 0.2}, 85 + 86 + {"matrix": [4, 5], "x": 9, "y": 0.2}, 87 + {"matrix": [4, 4], "x": 10, "y": 0.1}, 88 + {"matrix": [4, 3], "x": 11, "y": 0}, 89 + {"matrix": [4, 2], "x": 12, "y": 0.1}, 90 + {"matrix": [4, 1], "x": 13, "y": 0.3}, 91 + {"matrix": [4, 0], "x": 14, "y": 0.3}, 92 + 93 + {"matrix": [1, 0], "x": 0, "y": 1.3}, 94 + {"matrix": [1, 1], "x": 1, "y": 1.3}, 95 + {"matrix": [1, 2], "x": 2, "y": 1.1}, 96 + {"matrix": [1, 3], "x": 3, "y": 1}, 97 + {"matrix": [1, 4], "x": 4, "y": 1.1}, 98 + {"matrix": [1, 5], "x": 5, "y": 1.2}, 99 + 100 + {"matrix": [5, 5], "x": 9, "y": 1.2}, 101 + {"matrix": [5, 4], "x": 10, "y": 1.1}, 102 + {"matrix": [5, 3], "x": 11, "y": 1}, 103 + {"matrix": [5, 2], "x": 12, "y": 1.1}, 104 + {"matrix": [5, 1], "x": 13, "y": 1.3}, 105 + {"matrix": [5, 0], "x": 14, "y": 1.3}, 106 + 107 + {"matrix": [2, 0], "x": 0, "y": 2.3}, 108 + {"matrix": [2, 1], "x": 1, "y": 2.3}, 109 + {"matrix": [2, 2], "x": 2, "y": 2.1}, 110 + {"matrix": [2, 3], "x": 3, "y": 2}, 111 + {"matrix": [2, 4], "x": 4, "y": 2.1}, 112 + {"matrix": [2, 5], "x": 5, "y": 2.2}, 113 + 114 + {"matrix": [6, 5], "x": 9, "y": 2.2}, 115 + {"matrix": [6, 4], "x": 10, "y": 2.1}, 116 + {"matrix": [6, 3], "x": 11, "y": 2}, 117 + {"matrix": [6, 2], "x": 12, "y": 2.1}, 118 + {"matrix": [6, 1], "x": 13, "y": 2.3}, 119 + {"matrix": [6, 0], "x": 14, "y": 2.3}, 120 + 121 + {"matrix": [3, 3], "x": 4, "y": 3.7}, 122 + {"matrix": [3, 4], "x": 5, "y": 3.7}, 123 + {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, 124 + 125 + {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, 126 + {"matrix": [7, 4], "x": 9, "y": 3.7}, 127 + {"matrix": [7, 3], "x": 10, "y": 3.7} 128 + ] 129 + } 130 + } 131 + }
+35
keyboards/corne_monke/keymaps/monker/config.h
···
··· 1 + /* 2 + This is the c configuration file for the keymap 3 + 4 + Copyright 2012 Jun Wako <wakojun@gmail.com> 5 + Copyright 2015 Jack Humbert 6 + 7 + This program is free software: you can redistribute it and/or modify 8 + it under the terms of the GNU General Public License as published by 9 + the Free Software Foundation, either version 2 of the License, or 10 + (at your option) any later version. 11 + 12 + This program is distributed in the hope that it will be useful, 13 + but WITHOUT ANY WARRANTY; without even the implied warranty of 14 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 + GNU General Public License for more details. 16 + 17 + You should have received a copy of the GNU General Public License 18 + along with this program. If not, see <http://www.gnu.org/licenses/>. 19 + */ 20 + 21 + #pragma once 22 + 23 + #define EE_HANDS 24 + #define NKRO_DEFAULT_ON 1 25 + 26 + #define SPLIT_LAYER_STATE_ENABLE 27 + #define SPLIT_LED_STATE_ENABLE 28 + #define SPLIT_WPM_ENABLE 29 + 30 + #ifdef OLED_ENABLE 31 + #define OLED_FONT_H "lib/glcdfont_monke.c" 32 + #else 33 + #define PS2_PIO_USE_PIO1 34 + #define PS2_MOUSE_ROTATE 270 35 + #endif
+319
keyboards/corne_monke/keymaps/monker/keymap.c
···
··· 1 + #include "action_layer.h" 2 + #include "quantum.h" 3 + #include QMK_KEYBOARD_H 4 + #include "os_detection.h" 5 + #include "raw_hid.h" 6 + 7 + #include <stdio.h> 8 + 9 + #define L_N 1 10 + #define L_DHM 2 11 + 12 + enum custom_keycodes { 13 + DF_NORMAL = SAFE_RANGE, 14 + DF_DHM 15 + }; 16 + 17 + enum tapdance_keys { 18 + TD_CAPS, 19 + TD_ESC 20 + }; 21 + 22 + enum layers { 23 + NORMAL, 24 + DHM, 25 + NUMBERS, 26 + MOUSE, 27 + F_ROW 28 + }; 29 + 30 + static uint16_t auto_buttons_timer; 31 + extern int tp_buttons; 32 + 33 + void tap_dance_esc(tap_dance_state_t *state, void *user_data) { 34 + switch (state->count) { 35 + case 1: 36 + tap_code(KC_TAB); 37 + break; 38 + case 2: 39 + tap_code(KC_ESC); 40 + break; 41 + case 3: 42 + switch (detected_host_os()) { 43 + case OS_IOS: 44 + case OS_MACOS: 45 + SEND_STRING(SS_LCTL(SS_LGUI("q"))); 46 + break; 47 + default: 48 + SEND_STRING(SS_LGUI(SS_LALT("u"))); 49 + break; 50 + } 51 + break; 52 + } 53 + } 54 + 55 + void tap_dance_caps(tap_dance_state_t *state, void *user_data) { 56 + switch (state->count) { 57 + case 1: 58 + tap_code(KC_LALT); 59 + break; 60 + case 2: 61 + tap_code(KC_CAPS); 62 + break; 63 + case 3: 64 + if (default_layer_state == L_DHM) { 65 + set_single_persistent_default_layer(NORMAL); 66 + } else { 67 + set_single_persistent_default_layer(DHM); 68 + } 69 + break; 70 + } 71 + } 72 + 73 + tap_dance_action_t tap_dance_actions[] = { 74 + [TD_CAPS] = ACTION_TAP_DANCE_FN(tap_dance_caps), 75 + [TD_ESC] = ACTION_TAP_DANCE_FN(tap_dance_esc) 76 + }; 77 + 78 + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 79 + [NORMAL] = LAYOUT_split_3x6_3( 80 + //,-----------------------------------------------------. ,-----------------------------------------------------. 81 + TD(TD_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, XXXXXXX, 82 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 83 + TD(TD_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 84 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 85 + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, 86 + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 87 + KC_LGUI, KC_LSFT, KC_SPC, KC_ENT,MO(NUMBERS),KC_BSPC 88 + // `--------------------------' `--------------------------' 89 + 90 + ), 91 + 92 + [DHM] = LAYOUT_split_3x6_3( 93 + //,-----------------------------------------------------. ,-----------------------------------------------------. 94 + _______, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,DF_NORMAL, 95 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 96 + _______, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, 97 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 98 + _______, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, 99 + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 100 + _______, _______, _______, _______, _______, _______ 101 + // `--------------------------' `--------------------------' 102 + 103 + ), 104 + 105 + [NUMBERS] = LAYOUT_split_3x6_3( 106 + //,-----------------------------------------------------. ,-----------------------------------------------------. 107 + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, 108 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 109 + _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRIU, KC_VOLU, KC_DEL,KC_MINUS,KC_EQUAL, KC_LBRC, KC_RBRC, KC_BSLS, 110 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 111 + _______,TG(F_ROW),XXXXXXX, XXXXXXX, KC_BRID, KC_VOLD, QK_BOOT, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, 112 + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 113 + _______, _______, _______, _______, _______, _______ 114 + // `--------------------------' `--------------------------' 115 + ), 116 + 117 + [MOUSE] = LAYOUT_split_3x6_3( 118 + //,-----------------------------------------------------. ,-----------------------------------------------------. 119 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 120 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 121 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 122 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 123 + _______, _______, _______, _______, _______, _______, TG(MOUSE), _______, _______, _______, _______, _______, 124 + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 125 + _______, MS_BTN3, MS_BTN1, MS_BTN2, _______, _______ 126 + // `--------------------------' `--------------------------' 127 + ), 128 + 129 + [F_ROW] = LAYOUT_split_3x6_3( 130 + //,-----------------------------------------------------. ,-----------------------------------------------------. 131 + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 132 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 133 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 134 + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 135 + _______,TG(F_ROW),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 136 + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| 137 + _______, _______, _______, _______, _______, _______ 138 + // `--------------------------' `--------------------------' 139 + ), 140 + }; 141 + 142 + void matrix_scan_user(void) { 143 + if (auto_buttons_timer && (timer_elapsed(auto_buttons_timer) > 700)) { 144 + if (!tp_buttons) { 145 + layer_off(MOUSE); 146 + auto_buttons_timer = 0; 147 + } 148 + } 149 + } 150 + 151 + 152 + char _SYSINFO_BAT[5] = {}; 153 + char _SYSINFO_CPU[5] = {}; 154 + char _SYSINFO_RAM[4] = {}; 155 + char _SYSINFO_VOL[5] = {}; 156 + 157 + void raw_hid_receive(uint8_t* data, uint8_t length) { 158 + uint8_t response[length]; 159 + memset(response, 0, length); 160 + response[0] = 'P'; 161 + char *info; 162 + switch (data[0]) { 163 + case 'B': 164 + info = _SYSINFO_BAT; 165 + break; 166 + case 'V': 167 + info = _SYSINFO_VOL; 168 + break; 169 + case 'M': 170 + info = _SYSINFO_RAM; 171 + break; 172 + case 'C': 173 + info = _SYSINFO_CPU; 174 + break; 175 + default: 176 + return; 177 + } 178 + 179 + info[0] = data[1]; 180 + info[1] = data[2]; 181 + info[2] = data[3]; 182 + info[3] = data[4]; 183 + 184 + raw_hid_send(response, length); 185 + } 186 + 187 + #ifdef OLED_ENABLE 188 + #include "oled_driver.h" 189 + oled_rotation_t oled_init_user(oled_rotation_t rotation) { 190 + return OLED_ROTATION_270; 191 + } 192 + 193 + void oled_render_layer_state(void) { 194 + static const char PROGMEM n_logo[] = { 195 + 0x95, 0x96, 0x94, 0x94, 0x94, 196 + 0xB5, 0xB6, 0x94, 0x94, 0x94, 0x00 197 + }; 198 + static const char PROGMEM dh_logo[] = { 199 + 0x97, 0x98, 0x99, 0x94, 0x94, 200 + 0xB7, 0xB8, 0xB9, 0x94, 0x94, 0x00 201 + }; 202 + switch (default_layer_state) { 203 + case 0: 204 + case L_N: 205 + oled_write_P(n_logo, false); 206 + break; 207 + case L_DHM: 208 + oled_write_P(dh_logo, false); 209 + break; 210 + default: 211 + oled_write_P(PSTR("?????\n?????"), false); 212 + break; 213 + } 214 + switch (get_highest_layer(layer_state)) { 215 + case NUMBERS: 216 + oled_write_P(PSTR("+ sym"), false); 217 + break; 218 + case MOUSE: 219 + oled_write_P(PSTR("+ nav"), false); 220 + break; 221 + case F_ROW: 222 + oled_write_P(PSTR("+ f n"), false); 223 + break; 224 + default: 225 + oled_write_P(PSTR(" "), false); 226 + break; 227 + } 228 + oled_write_P(PSTR("-----"), false); 229 + } 230 + 231 + void oled_render_wpm(void) { 232 + static char wpm_str[9]; 233 + snprintf(wpm_str, sizeof(wpm_str), "WPM:\n%-3i", get_current_wpm()); 234 + oled_write_ln(wpm_str, false); 235 + oled_write_P(PSTR("-----"), false); 236 + } 237 + 238 + void oled_render_logo(void) { 239 + // art 240 + // (\ /) (\ /) 241 + // ( . .) (. . ) 242 + // c(")(") (")(")) 243 + // 244 + static const char PROGMEM crkbd_logo[] = { 245 + 0x28, 0x5c, 0x20, 0x2f, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x5c, 0x20, 0x2f, 0x29, 246 + 0x28, 0x20, 0x2e, 0x20, 0x2e, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x2e, 0x20, 0x2e, 0x20, 0x29, 247 + 0x63, 0x28, 0x22, 0x29, 0x28, 0x22, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x22, 0x29, 0x28, 0x22, 0x29, 0x80, 248 + 0}; 249 + oled_write_P(crkbd_logo, false); 250 + } 251 + void oled_render_sl(void) { 252 + if (host_keyboard_led_state().caps_lock) { 253 + static const char PROGMEM cap_ind_top[] = { 254 + 0x9A, 0x9B, 0x00 255 + }; 256 + static const char PROGMEM cap_ind_bottom[] = { 257 + 0xBA, 0xBB, 0x00 258 + }; 259 + oled_set_cursor(3, 0); 260 + oled_write_P(cap_ind_top, false); 261 + oled_set_cursor(3, 1); 262 + oled_write_P(cap_ind_bottom, false); 263 + } 264 + } 265 + 266 + void oled_render_sysinfo(void) { 267 + static const char PROGMEM ram_logo[] = { 268 + 0x85, 0x86, 0x00 269 + }; 270 + 271 + oled_write_char((char)0x82, false); 272 + oled_write(_SYSINFO_BAT, false); 273 + 274 + oled_write_P(ram_logo, false); 275 + oled_write(_SYSINFO_RAM, false); 276 + 277 + oled_write_char((char)0x83, false); 278 + oled_write(_SYSINFO_VOL, false); 279 + 280 + oled_write_char((char)0x84, false); 281 + oled_write(_SYSINFO_CPU, false); 282 + 283 + oled_write("-----", false); 284 + } 285 + 286 + 287 + bool oled_task_user(void) { 288 + oled_render_layer_state(); 289 + oled_render_wpm(); 290 + oled_render_sysinfo(); 291 + 292 + oled_render_sl(); 293 + 294 + return false; 295 + } 296 + 297 + bool shutdown_user(bool jump_to_bootloader) { 298 + if (jump_to_bootloader) { 299 + oled_write("FLASH", false); 300 + } 301 + return false; 302 + } 303 + 304 + #else 305 + 306 + #include "gpio.h" 307 + 308 + void ps2_mouse_moved_user(report_mouse_t *mouse_report) { 309 + if (auto_buttons_timer) { 310 + auto_buttons_timer = timer_read(); 311 + } else { 312 + if (!tp_buttons) { 313 + layer_on(MOUSE); 314 + auto_buttons_timer = timer_read(); 315 + } 316 + } 317 + } 318 + 319 + #endif // OLED_ENABLE
+8
keyboards/corne_monke/keymaps/monker/rules.mk
···
··· 1 + RAW_ENABLE = yes 2 + MOUSEKEY_ENABLE = yes 3 + TAP_DANCE_ENABLE = yes 4 + LTO_ENABLE = yes 5 + NKRO_ENABLE = yes 6 + WPM_ENABLE = yes 7 + OS_DETECTION_ENABLE = yes 8 + OLED_ENABLE = yes
+260
keyboards/corne_monke/lib/glcdfont_monke.c
···
··· 1 + #include "progmem.h" 2 + 3 + static const unsigned char PROGMEM font[] = { 4 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 5 + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 6 + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 7 + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 8 + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 9 + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 10 + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 11 + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 12 + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 13 + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 14 + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 15 + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 16 + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 17 + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 18 + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 19 + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 20 + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 21 + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 22 + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 23 + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 24 + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 25 + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 26 + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 27 + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 28 + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, 29 + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 30 + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 31 + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 32 + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 33 + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 34 + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 35 + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 36 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 37 + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 38 + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 39 + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 40 + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 41 + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 42 + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 43 + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 44 + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 45 + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 46 + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 47 + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 48 + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 49 + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 50 + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 51 + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 52 + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 53 + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, 54 + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 55 + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 56 + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 57 + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 58 + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 59 + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 60 + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 61 + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 62 + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 63 + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 64 + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 65 + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 66 + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 67 + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 68 + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 69 + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 70 + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 71 + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 72 + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 73 + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 74 + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 75 + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 76 + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 77 + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 78 + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, 79 + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 80 + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 81 + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 82 + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 83 + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 84 + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 85 + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 86 + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 87 + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 88 + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 89 + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 90 + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 91 + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 92 + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 93 + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 94 + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 95 + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 96 + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 97 + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 98 + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 99 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 100 + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 101 + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 102 + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 103 + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, 104 + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 105 + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 106 + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 107 + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, 108 + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 109 + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 110 + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 111 + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 112 + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 113 + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 114 + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 115 + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 116 + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, 117 + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, 118 + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 119 + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 120 + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 121 + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 122 + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 123 + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 124 + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 125 + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 126 + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 127 + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 128 + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 129 + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 130 + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 131 + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 132 + 0x00, 0x28, 0x44, 0x44, 0x44, 0x38, 133 + 0x40, 0xA0, 0x40, 0xA0, 0x40, 0xA0, 134 + 0x00, 0x7E, 0x7F, 0x7F, 0x7E, 0x00, 135 + 0x00, 0x18, 0x18, 0x3C, 0x7E, 0x00, 136 + 0x00, 0x08, 0x38, 0x1C, 0x10, 0x00, 137 + 0x00, 0x7E, 0x3E, 0x6A, 0x2A, 0x7E, 138 + 0x2A, 0x2A, 0x6A, 0x3E, 0x7E, 0x00, 139 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 140 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 141 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 142 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 143 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 144 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 145 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 146 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 147 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 148 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 149 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 150 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 151 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 152 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 153 + 0xFE, 0xFF, 0x03, 0xDF, 0xBF, 0x7F, 154 + 0xFF, 0xFF, 0x03, 0xFF, 0xFE, 0x00, 155 + 0xFE, 0xFF, 0x03, 0xFB, 0xFB, 0xFB, 156 + 0xFB, 0x07, 0xFF, 0x03, 0x7F, 0x7F, 157 + 0x7F, 0x7F, 0x03, 0xFF, 0xFE, 0x00, 158 + 0xFE, 0x9F, 0x8F, 0x87, 0x03, 0x01, 159 + 0x03, 0x87, 0x8F, 0x9F, 0xFE, 0x00, 160 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 161 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 162 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 163 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 164 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 165 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 166 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 167 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 168 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 169 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 170 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 172 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 173 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 174 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 175 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 176 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 177 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 178 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 179 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 180 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 181 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 182 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 183 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 184 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 185 + 0x3F, 0x7F, 0x60, 0x7F, 0x7F, 0x7F, 186 + 0x7E, 0x7D, 0x60, 0x7F, 0x3F, 0x00, 187 + 0x3F, 0x7F, 0x60, 0x6F, 0x6F, 0x6F, 188 + 0x6F, 0x70, 0x7F, 0x60, 0x7F, 0x7F, 189 + 0x7F, 0x7F, 0x60, 0x7F, 0x3F, 0x00, 190 + 0x3F, 0x7F, 0x7F, 0x7F, 0x50, 0x50, 191 + 0x50, 0x7F, 0x7F, 0x7F, 0x3F, 0x00, 192 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 193 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 194 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 195 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 196 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 197 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 198 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 199 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 201 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 202 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 203 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 204 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 205 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 206 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 207 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 208 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 209 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 210 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 211 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 213 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 214 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 215 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 216 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 217 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 218 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 219 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 220 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 221 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 222 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 223 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 224 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 225 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 226 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 227 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 228 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 229 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 230 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 231 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 232 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 233 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 234 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 235 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 236 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 237 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 238 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 239 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 240 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 241 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 242 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 243 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 244 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 245 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 246 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 247 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 248 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 249 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 250 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 251 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 252 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 253 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 254 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 255 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 256 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 257 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 258 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 259 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 260 + };
+31
keyboards/corne_monke/monke/keyboard.json
···
··· 1 + { 2 + "keyboard_name": "Corne", 3 + "usb": { 4 + "pid": "0x0001", 5 + "device_version": "0.0.1" 6 + }, 7 + "processor": "RP2040", 8 + "bootloader": "rp2040", 9 + "features": { 10 + "rgblight": false 11 + }, 12 + "build": { 13 + "lto": true 14 + }, 15 + "matrix_pins": { 16 + "cols": [ "GP29", "GP28", "GP27", "GP26", "GP8", "GP9" ], 17 + "rows": [ "GP4", "GP5", "GP6", "GP7" ] 18 + }, 19 + "diode_direction": "COL2ROW", 20 + "split": { 21 + "serial": { 22 + "driver": "vendor", 23 + "pin": "GP1" 24 + }, 25 + "transport": { 26 + "sync": { 27 + "matrix_state": true 28 + } 29 + } 30 + } 31 + }
+38
keyboards/corne_monke/monke_tp/keyboard.json
···
··· 1 + { 2 + "keyboard_name": "Corne", 3 + "usb": { 4 + "pid": "0x0001", 5 + "device_version": "0.0.1" 6 + }, 7 + "processor": "RP2040", 8 + "bootloader": "rp2040", 9 + "features": { 10 + "rgblight": false 11 + }, 12 + "build": { 13 + "lto": true 14 + }, 15 + "matrix_pins": { 16 + "cols": [ "GP29", "GP28", "GP27", "GP26", "GP8", "GP9" ], 17 + "rows": [ "GP4", "GP5", "GP6", "GP7" ] 18 + }, 19 + "diode_direction": "COL2ROW", 20 + "split": { 21 + "serial": { 22 + "driver": "vendor", 23 + "pin": "GP1" 24 + }, 25 + "transport": { 26 + "sync": { 27 + "matrix_state": true 28 + } 29 + } 30 + }, 31 + "ps2": { 32 + "clock_pin": "GP3", 33 + "data_pin": "GP2", 34 + "driver": "vendor", 35 + "enabled": true, 36 + "mouse_enabled": true 37 + } 38 + }
+114
keyboards/corne_monke/readme.md
···
··· 1 + # Corne Keyboard (CRKBD) 2 + 3 + ![Crkbd](https://user-images.githubusercontent.com/736191/40575636-6fba63a4-6123-11e8-9ca0-3f990f1f9f4c.jpg) 4 + 5 + ![Crkbd](https://user-images.githubusercontent.com/736191/40887871-0eead5dc-678a-11e8-9518-e3ad9e5d2bac.png) 6 + 7 + A split keyboard with 3x6 vertically staggered keys and 3 thumb keys. 8 + Also, it has the option that use extension keys and rotary encoders. 9 + 10 + Keyboard Maintainer: [foostan](https://github.com/foostan/) [@foostan](https://twitter.com/foostan) 11 + Hardware Supported: Corne PCB 12 + Hardware Availability: [PCB & Case Data](https://github.com/foostan/crkbd) 13 + 14 + Flash example for this keyboard of v1 - v3: 15 + 16 + ```sh 17 + qmk flash -kb crkbd/rev1 -km default 18 + ``` 19 + 20 + Flash example for this keyboard of v4: 21 + 22 + ```sh 23 + qmk flash -kb crkbd/rev4 -km default 24 + ``` 25 + 26 + See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). 27 + 28 + ## Bootloader 29 + 30 + The Corne PCBs have a reset and boot buttons next to the TRRS jack to enter in to the bootloader. 31 + 32 + Additionally, if you hold down the "Q" or "P" buttons when plugging in that half of the keyboard (per the default QWERTY layout), this will jump to the bootloader and reset the EEPROM (persistent storage). This would normally be the very top corner-most position, but due to the breakaway column, it's left at Q and P for compatibility. 33 + 34 + ## RGB Matrix 35 + The Corne Keyboard also supports using the RGB Matrix feature, in place of RGB Light. This provides a better experience when using the keyboard, as it supports a number of per key effects properly. If you're not using the in switch LEDs, then you may want to pass on doing this. 36 + 37 + In your keymap's `rules.mk` file, add the following: 38 + 39 + ```make 40 + RGBLIGHT_ENABLE = no 41 + RGB_MATRIX_ENABLE = yes 42 + ``` 43 + 44 + And in your `config.h` file, add the following: 45 + 46 + ```c 47 + 48 + #ifdef RGB_MATRIX_ENABLE 49 + # define RGB_MATRIX_KEYPRESSES // reacts to keypresses 50 + // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) 51 + # define RGB_MATRIX_SLEEP // turn off effects when suspended 52 + # define RGB_MATRIX_FRAMEBUFFER_EFFECTS 53 + // # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) 54 + // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) 55 + # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. 56 + # define RGB_MATRIX_HUE_STEP 8 57 + # define RGB_MATRIX_SAT_STEP 8 58 + # define RGB_MATRIX_VAL_STEP 8 59 + # define RGB_MATRIX_SPD_STEP 10 60 + 61 + /* Enable the animations you want/need. You may need to enable only a small number of these because * 62 + * they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */ 63 + // RGB Matrix Animation modes. Explicitly enabled 64 + // For full list of effects, see: 65 + // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects 66 + # define ENABLE_RGB_MATRIX_ALPHAS_MODS 67 + # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN 68 + # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT 69 + # define ENABLE_RGB_MATRIX_BREATHING 70 + # define ENABLE_RGB_MATRIX_BAND_SAT 71 + # define ENABLE_RGB_MATRIX_BAND_VAL 72 + # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT 73 + # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL 74 + # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT 75 + # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL 76 + # define ENABLE_RGB_MATRIX_CYCLE_ALL 77 + # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT 78 + # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN 79 + # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON 80 + # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN 81 + # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL 82 + # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL 83 + # define ENABLE_RGB_MATRIX_CYCLE_SPIRAL 84 + # define ENABLE_RGB_MATRIX_DUAL_BEACON 85 + # define ENABLE_RGB_MATRIX_RAINBOW_BEACON 86 + # define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS 87 + # define ENABLE_RGB_MATRIX_RAINDROPS 88 + # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS 89 + # define ENABLE_RGB_MATRIX_HUE_BREATHING 90 + # define ENABLE_RGB_MATRIX_HUE_PENDULUM 91 + # define ENABLE_RGB_MATRIX_HUE_WAVE 92 + # define ENABLE_RGB_MATRIX_PIXEL_RAIN 93 + # define ENABLE_RGB_MATRIX_PIXEL_FLOW 94 + # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL 95 + // enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined 96 + # define ENABLE_RGB_MATRIX_TYPING_HEATMAP 97 + # define ENABLE_RGB_MATRIX_DIGITAL_RAIN 98 + // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined 99 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE 100 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE 101 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE 102 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE 103 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS 104 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS 105 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS 106 + # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS 107 + # define ENABLE_RGB_MATRIX_SPLASH 108 + # define ENABLE_RGB_MATRIX_MULTISPLASH 109 + # define ENABLE_RGB_MATRIX_SOLID_SPLASH 110 + # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH 111 + #endif 112 + ``` 113 + 114 + After this is done, you should be able to use the normal RGB keycodes, but you'll see the RGB Matrix effects in use, giving a much better experience.
keyboards/corne_monke/rules.mk