qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

keymap.c (10635B)


      1  /* Copyright 2020 Aplyard
      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 enum layer_names {
     19     _MEDIA,
     20     _DOC,
     21     _POWER
     22 };
     23 
     24 #define KC_COPY LCTL(KC_C)              //Mac, change it to LGUI(KC_C)
     25 #define KC_CUT LCTL(KC_X)               //  >>      >>      LGUI(KC_X)
     26 #define KC_PASTE LCTL(KC_V)             //  >>      >>      LGUI(KC_V)
     27 //#define KC_MY_COMPUTER LGUI(KC_SPC)   //Uncomment this for Mac Spotlight Search
     28 
     29 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     30 	/* Keymap __MEDIA: Default Layer
     31 	*  ,----------------------------------.
     32 	*  | .-------.  /   /   /   /   /   / |
     33 	*  | |       | |------|------|------| |
     34 	*  | | Pro   | | Mute | Play |Vol+/-| |
     35 	*  | | Micro | |------|------|------| |
     36 	*  | |       | |----------------------|
     37 	*  | |       | |------|------|------| |
     38 	*  | '-------' | Prev | Stop | Next | |
     39 	*  |   APLX6   |------|------|------| |
     40 	*  '----------------------------------'
     41 	*/
     42   [_MEDIA] = LAYOUT(
     43     KC_MUTE,  KC_MPLY,  TO(1),
     44     KC_MPRV,  KC_MSTP,  KC_MNXT
     45   ),
     46   	/* Keymap __DOC
     47 	*  ,----------------------------------.
     48 	*  | .-------.  /   /   /   /   /   / |
     49 	*  | |       | |------|------|------| |
     50 	*  | | Pro   | | Home | PgUp | L/R  | |
     51 	*  | | Micro | |------|------|------| |
     52 	*  | |       | |----------------------|
     53 	*  | |       | |------|------|------| |
     54 	*  | '-------' | End  | PgDn | Ins  | |
     55 	*  |   APLX6   |------|------|------| |
     56 	*  '----------------------------------'
     57 	*/
     58   [_DOC] = LAYOUT(
     59     KC_HOME, KC_PGUP, TO(2),
     60     KC_END, KC_PGDN, KC_INS
     61   ),
     62   	/* Keymap __DOC
     63 	*  ,----------------------------------.
     64 	*  | .-------.  /   /   /   /   /   / |
     65 	*  | |       | |------|------|------| |
     66 	*  | | Pro   | | Calc | MyPc |Bright| |
     67 	*  | | Micro | |------|------|------| |
     68 	*  | |       | |----------------------|
     69 	*  | |       | |------|------|------| |
     70 	*  | '-------' | Copy | Cut  |Paste | |
     71 	*  |   APLX6   |------|------|------| |
     72 	*  '----------------------------------'
     73 	*/
     74   [_POWER] = LAYOUT(
     75     KC_CALC, KC_MY_COMPUTER, TO(0),
     76     KC_COPY, KC_CUT, KC_PASTE
     77   )
     78 };
     79 
     80 #if defined(OLED_ENABLE)
     81 static void render_logo(void) {
     82     //Logo for _MEDIA
     83     static const char PROGMEM logo1[] = {
     84         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0, 32, 32,160,160,160,160, 32, 32,  0, 64,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     85         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,160,144,  8,252,129,  0, 60,126,255,255,255,255,255,255,255,255,126, 60,  0,129,252,  8,144,160, 64,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,254,  0,  0,  0,  0,  0,  0,144,144,144,144,240,  0,  0, 48,224,128,  0,  0,224, 48,  0,192,224,176,144,144,240,192,  0,  0,240,240, 16, 16,  0,128,192,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 12,254,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     86         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14, 21, 42, 17, 96,135, 88,162, 64, 68,128,137,137,137,137,137,136,128, 68, 64,162, 88,199, 32, 17, 42, 21, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15, 15,  8,  8,  8,  8,  0,  7, 15,  8,  8, 12, 15,  0,  0, 64, 65,111, 60, 15,  1,  0,  0,  3,  7, 12,  8,  8,  8,  0,  0,  0, 15, 15,  0,  0,  0,  8, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  8, 15, 15,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     87         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  1,  5,  4,  2,  2,  2,  2,  2,  2,  4,  5,  1,  2,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     88     };
     89     //Logo for _DOC
     90     static const char PROGMEM logo2[] = {
     91         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,224,160,224,128,224,160,224,128,224,160,224,128,224,160,224,128,224,160,224,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     92         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254, 17, 16, 16,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  3,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,254,  0,  0,  0,  0,  0,  0,144,144,144,144,240,  0,  0, 48,224,128,  0,  0,224, 48,  0,192,224,176,144,144,240,192,  0,  0,240,240, 16, 16,  0,128,192,  0,  0,  0,  0,  0,  0,  0,  0,  4,  6,130,194,102, 60,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     93         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,145,161,225, 32,224,160,224, 32,224,160,224, 32,224,160,224, 32,224,160,224, 32,224,160, 80, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15, 15,  8,  8,  8,  8,  0,  7, 15,  8,  8, 12, 15,  0,  0, 64, 65,111, 60, 15,  1,  0,  0,  3,  7, 12,  8,  8,  8,  0,  0,  0, 15, 15,  0,  0,  0,  8, 12,  0,  0,  0,  0,  0,  0,  0,  0, 12, 14, 11,  9,  8,  8,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     94         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  2,  3,  0,  3,  2,  3,  0,  3,  2,  3,  0,  3,  2,  3,  0,  3,  2,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     95     };
     96     //Logo for _POWER
     97     static const char PROGMEM logo3[] = {
     98     	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,120,254, 58, 30,  8,  4,  4,  4,  2,  2,  4,  4,  4,  8, 30, 58,254,120,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     99         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,248,145, 38, 68,136,144, 16, 32, 32, 32, 32, 16, 16,136, 68, 34,241,254,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,254,  0,  0,  0,  0,  0,  0,144,144,144,144,240,  0,  0, 48,224,128,  0,  0,224, 48,  0,192,224,176,144,144,240,192,  0,  0,240,240, 16, 16,  0,128,192,  0,  0,  0,  0,  0,  0,  0,  0,  2, 34, 50, 58,110,198,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    100         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63, 35,231, 47,255, 62, 62, 61, 61, 61, 61, 61, 61, 62, 62, 63,239, 39,227, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15, 15,  8,  8,  8,  8,  0,  7, 15,  8,  8,  4, 15,  0,  0, 64, 65,111, 60, 15,  1,  0,  0,  3,  7, 12,  8,  8,  8,  0,  0,  0, 15, 15,  0,  0,  0,  8, 12,  0,  0,  0,  0,  0,  0,  0,  0,  8,  8,  8, 12,  6,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    101         0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  2,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  2,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    102     };
    103     //Switch between logos
    104     switch (get_highest_layer(layer_state)) {
    105         case 1:
    106             oled_write_raw_P(logo2, sizeof(logo2));
    107             break;
    108         case 2:
    109             oled_write_raw_P(logo3, sizeof(logo3));
    110             break;
    111         default:
    112             oled_write_raw_P(logo1, sizeof(logo1));
    113     }
    114 }
    115 
    116 bool oled_task_user(void) {
    117     render_logo();
    118     return false;
    119 }
    120 #endif
    121 
    122 bool encoder_update_user(uint8_t index, bool clockwise) {
    123     if (index == 0) {
    124         switch (get_highest_layer(layer_state)) {
    125             case 1:
    126                 if (clockwise) {
    127                     tap_code(KC_RIGHT); //edit here your _DOC layer(2) encoder keycode
    128                 } else {
    129                     tap_code(KC_LEFT);  //edit here your _DOC layer(2) encoder keycode
    130                 }
    131                 break;
    132             case 2:
    133                 if (clockwise) {
    134                     tap_code(KC_BRIU);  //edit here your _POWER layer(3) encoder keycode
    135                 } else {
    136                     tap_code(KC_BRID);  //edit here your _POWER layer(3) encoder keycode
    137                 }
    138                 break;
    139             default:
    140                 if (clockwise) {
    141                     tap_code(KC_VOLU); //edit here your _MEDIA layer(1) encoder keycode
    142                 } else {
    143                     tap_code(KC_VOLD);  //edit here your _MEDIA layer(1) encoder keycode
    144                 }
    145         }
    146     }
    147     return true;
    148 }