qmk_firmware

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

keymap.c (7438B)


      1 // Copyright 2022 Ethan (@rocketstrong)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include QMK_KEYBOARD_H
      5 
      6 /*
      7  *          ┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐
      8  *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
      9  *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
     10  *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘
     11  *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
     12  *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
     13  *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐            ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘
     14  *┌────┐┌──┐│  ││  ││  ││  ││  │            │  ││  ││  ││  ││  │┌──┐┌────┐
     15  *│    ││  │└──┘└──┘└──┘└──┘└──┘            └──┘└──┘└──┘└──┘└──┘│  ││    │
     16  *└────┘└──┘┌──┐┌──┐┌──┐┌──┐                    ┌──┐┌──┐┌──┐┌──┐└──┘└────┘
     17  *┌────┐┌──┐│  ││  ││  ││  │                    │  ││  ││  ││  │┌──┐┌────┐
     18  *│    ││  │└──┘└──┘└──┘└──┘                    └──┘└──┘└──┘└──┘│  ││    │
     19  *└────┘└──┘┌──┐┌──┐                                    ┌──┐┌──┐└──┘└────┘
     20  *  ┌──┐┌──┐│  ││  │  ┌──┐ ┌──┐              ┌──┐ ┌──┐  │  ││  │┌──┐┌──┐
     21  *  │  ││  │└──┘└──┘  │  │ │  │              │  │ │  │  └──┘└──┘│  ││  │
     22  *  └──┘└──┘          │  │ │  │              │  │ │  │          └──┘└──┘
     23  *                    │  │ └──┘              └──┘ │  │
     24  *                    └──┘ ┌──┐ ┌──┐    ┌──┐ ┌──┐ └──┘
     25  *                         │  │ │  │    │  │ │  │
     26  *                         └──┘ └──┘    └──┘ └──┘
     27  *                         ┌──┐┌──┐      ┌──┐┌──┐
     28  *                         │  ││  │      │  ││  │
     29  *                         └──┘└──┘      └──┘└──┘
     30  */
     31 
     32 enum Colemaklayers {
     33   _ARSTG,
     34   _NUMPAD,
     35   _SYMBOLS
     36 };
     37 
     38 enum custom_keycodes {
     39     AD_DDS = SAFE_RANGE,
     40     AD_SCOPE
     41 };
     42 
     43 #define TT_NUM TT(_NUMPAD)
     44 #define TT_SYM TT(_SYMBOLS)
     45 
     46 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     47     switch (keycode) {
     48         case AD_DDS:
     49             if (!record->event.pressed) {
     50                 // when keycode AD_DDS is pressed
     51                 SEND_STRING("../");
     52             } else {
     53                 // when keycode AD_DDS is released
     54             }
     55             break;
     56         case AD_SCOPE:
     57             if (!record->event.pressed) {
     58                 // when keycode AD_DDS is pressed
     59                 SEND_STRING("::");
     60             } else {
     61                 // when keycode AD_DDS is released
     62             }
     63             break;
     64     }
     65     return true;
     66 }
     67 
     68 
     69 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     70     [_ARSTG] = LAYOUT(
     71         KC_GRV  , 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_ESC  ,
     72         KC_TAB  , KC_Q    , KC_W    , KC_F    , KC_P    , KC_B    , KC_LBRC ,       KC_RBRC , KC_J    , KC_L    , KC_U    , KC_Y    , KC_SCLN , KC_BSLS ,
     73         KC_ESC  , KC_A    , KC_R    , KC_S    , KC_T    , KC_G    , KC_PSCR ,       KC_PAUS , KC_M    , KC_N    , KC_E    , KC_I    , KC_O    , KC_QUOT ,
     74         KC_LSFT , KC_Z    , KC_X    , KC_C    , KC_D    , KC_V    ,                           KC_K    , KC_H    , KC_COMM , KC_DOT  , KC_SLSH , KC_RSFT ,
     75         KC_LCTL , KC_LGUI , KC_LALT , KC_DEL  ,                                                                   KC_LEFT , KC_UP   , KC_DOWN , KC_RIGHT,
     76                                                         KC_SPC  , KC_BSPC ,           KC_TAB  , KC_ENT  ,
     77                                                           TT_NUM  , KC_LSFT ,       KC_RSFT , TT_SYM  ,
     78                                                           KC_LCTL , KC_LALT ,       KC_RALT , KC_RCTL
     79     ),
     80     [_NUMPAD] = LAYOUT(
     81         KC_NO   , KC_F1   , KC_F2   , KC_F3   , KC_F4   , KC_F5   , KC_F6   ,       KC_F7   , KC_F8   , KC_F9   , KC_F10  , KC_F11  , KC_F12  , KC_NO   ,
     82         KC_TRNS , KC_PGUP , KC_HOME , KC_UP   , KC_END  , KC_NO   , KC_NO   ,       KC_NO   , KC_NUM  , KC_P7   , KC_P8   , KC_P9   , KC_PMNS , KC_NO   ,
     83         KC_TRNS , KC_PGDN , KC_LEFT , KC_DOWN , KC_RIGHT, KC_NO   , KC_TRNS ,       KC_TRNS , KC_PSLS , KC_P4   , KC_P5   , KC_P6   , KC_PPLS , KC_NO   ,
     84         KC_TRNS , KC_NO   , KC_NO   , KC_NO   , KC_NO   , KC_NO   ,                           KC_PAST , KC_P1   , KC_P2   , KC_P3   , KC_PEQL , KC_NO   ,
     85         KC_TRNS , KC_NO   , KC_NO   , KC_NO   ,                                                                   KC_P0   , KC_PDOT , KC_PCMM , KC_NO   ,
     86                                                         KC_TRNS , KC_TRNS ,           KC_TRNS , KC_PENT ,
     87                                                           KC_TRNS , KC_TRNS ,       KC_TRNS , KC_TRNS ,
     88                                                           KC_TRNS , QK_BOOT ,       KC_TRNS , KC_TRNS
     89     ),
     90     [_SYMBOLS] = LAYOUT(
     91         KC_NO   , KC_F1   , KC_F2   , KC_F3   , KC_F4   , KC_F5   , KC_F6   ,       KC_F7   , KC_F8   , KC_F9   , KC_F10  , KC_F11  , KC_F12  , KC_NO   ,
     92         KC_TRNS , KC_QUOT , KC_LT   , KC_GT   , KC_DQT  , KC_DOT  , KC_NO   ,       KC_NO   , KC_AMPR , AD_SCOPE, KC_LBRC , KC_RBRC , KC_PERC , KC_NO   ,
     93         KC_TRNS , KC_EXLM , KC_MINS , KC_PLUS , KC_EQL  , KC_HASH , KC_NO   ,       KC_NO   , KC_PIPE , KC_COLN , KC_LPRN , KC_RPRN , KC_QUES , KC_NO   ,
     94         KC_TRNS , KC_CIRC , KC_SLSH , KC_ASTR , KC_BSLS , AD_DDS  ,                           KC_TILD , KC_DLR  , KC_LCBR , KC_RCBR , KC_AT   , KC_NO   ,
     95         KC_TRNS , KC_NO   , KC_NO   , KC_NO   ,                                                                   KC_NO   , KC_NO   , KC_NO   , KC_NO   ,
     96                                                         KC_TRNS , KC_TRNS ,           KC_TRNS , KC_PENT ,
     97                                                           KC_TRNS , KC_TRNS ,       KC_TRNS , KC_TRNS ,
     98                                                           KC_TRNS , KC_TRNS ,       QK_BOOT , KC_TRNS
     99     )
    100 };