keymap.c (4153B)
1 /* Copyright 2020 imchipwood 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 #include QMK_KEYBOARD_H 17 18 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19 /* 20 BASE LAYER 21 /-----------------------------------------------------` 22 | | 7 | 8 | 9 | Bkspc | 23 | |---------|---------|---------|---------| 24 | | 4 | 5 | 6 | Esc | 25 | |---------|---------|---------|---------| 26 | | 1 | 2 | 3 | Tab | 27 |-------------|---------|---------|---------|---------| 28 | Left mouse | TT(1) | 0 | . | Enter | 29 \-----------------------------------------------------' 30 */ 31 [0] = LAYOUT( 32 KC_7, KC_8, KC_9, KC_BSPC, 33 KC_4, KC_5, KC_6, KC_ESC, 34 KC_1, KC_2, KC_3, KC_TAB, 35 MS_BTN1, TT(1), KC_0, LSFT_T(KC_DOT), KC_ENTER 36 ), 37 /* 38 SUB LAYER 39 /-----------------------------------------------------` 40 | | | | | Reset | 41 | |---------|---------|---------|---------| 42 | | | | | + | 43 | |---------|---------|---------|---------| 44 | | | | | - | 45 |-------------|---------|---------|---------|---------| 46 | LOCK | | | | = | 47 \-----------------------------------------------------' 48 */ 49 [1] = LAYOUT( 50 _______, _______, _______, QK_BOOT, 51 _______, _______, _______, KC_KP_PLUS, 52 _______, _______, _______, KC_KP_MINUS, 53 QK_LOCK, _______, _______, _______, KC_EQL 54 ), 55 }; 56 57 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 58 // If console is enabled, it will print the matrix position and status of each key pressed 59 /* 60 #ifdef CONSOLE_ENABLE 61 uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); 62 #endif 63 */ 64 return true; 65 } 66 67 void keyboard_post_init_user(void) { 68 // Customise these values to desired behaviour 69 //debug_enable = true; 70 //debug_matrix = true; 71 //debug_keyboard = true; 72 //debug_mouse = true; 73 } 74 75 bool encoder_update_user(uint8_t index, bool clockwise) { 76 /* Custom encoder control - handles CW/CCW turning of encoder 77 * Default behavior: 78 * main layer: 79 * CW: move mouse right 80 * CCW: move mouse left 81 * other layers: 82 * CW: = (equals/plus - increase slider in Adobe products) 83 * CCW: - (minus/underscore - decrease slider in adobe products) 84 */ 85 if (index == 0) { 86 switch (get_highest_layer(layer_state)) { 87 case 0: 88 // main layer - move mouse right (CW) and left (CCW) 89 if (clockwise) { 90 tap_code(MS_RGHT); 91 } else { 92 tap_code(MS_LEFT); 93 } 94 break; 95 96 default: 97 // other layers - =/+ (quals/plus) (CW) and -/_ (minus/underscore) (CCW) 98 if (clockwise) { 99 tap_code(KC_EQL); 100 } else { 101 tap_code(KC_MINS); 102 } 103 break; 104 } 105 } 106 return true; 107 }