master
Raw Download raw file
 1#include QMK_KEYBOARD_H
 2
 3// clang-format off
 4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 5
 6     /* Visual keys
 7     *
 8     * ,--------------------------------------------------------------------------------------------------------------.
 9     * | Esc  ||  F1  |  F2  |  F3  |  F4  ||  F5  |  F6  |  F7  |  F8  ||  F9  | F10  | F11  | F12  || Any  || Mouse |
10     * |==============================================================================================================|
11     * |  ` ~ |  1 ! |  2 @ |  3 # |  4 $ |  5 % |  6 ^ |  7 & |  8 * |  9 ( |  0 ) |  - _ |  = + |  Backspc || Home  |
12     * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++-------|
13     * |   Tab   |  Q   |  W   |  E   |  R   |  T   |  Y   |  U   |  I   |  O   |  P   | [ }  | ] }  |  \ |  || PgUp  |
14     * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++-------|
15     * |  Control   |  A   |  S   |  D   |  F  |  G   |  H   |  J   |  K   |  L   | ; :  | ' "  |    Enter   || PgDn  |
16     * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+-------|
17     * |    LShift    |  Z   |  X   |  C   |  V   |  B   |  N   |  M   | , <  | . >  | / ?  | RShift ||      || End   |
18     * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++=======|
19     * |  Fn    |   Win  |  LAlt  |               Space                  | RAlt |  Fn  | Ctrl ||      |      |        |
20     * `--------------------------------------------------------------------------------------------------------------'
21     */
22
23    // The FN key by default maps to a momentary toggle to layer 1 to provide access to the QK_BOOT key (to put the board into bootloader mode). Without
24    // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB
25    // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI
26    // if that's your preference.
27    //
28    // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and
29    // it'll be back to normal when you plug it back in.
30    //
31    // This keyboard defaults to 6KRO instead of NKRO for compatibility reasons (some KVMs and BIOSes are incompatible with NKRO).
32    // Since this is, among other things, a "gaming" keyboard, a key combination to enable NKRO on the fly is provided for convenience.
33    // Press Fn+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts.
34    [0] = LAYOUT(
35        KC_ESC,  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_INS,           KC_MS_BTN1,
36        KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,          KC_DEL,
37        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,          KC_PGUP,
38        KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,           KC_PGDN,
39        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT, _______, KC_END,
40        MO(1),   KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_RCTL, _______, _______, _______
41    ),
42
43    /* FN1 Layout TODO FINISH
44     *
45     * ,-------------------------------------------------------------------------------------------------------------.
46     * | Esc  ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause ||RMouse|
47     * |=============================================================================================================|
48     * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ________ ||RGBTOG|
49     * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------|
50     * |  ______ | ____ |______|______| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |QK_BOOT|| Home |
51     * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------|
52     * |  Capslock  |RGBHUD|RGBVAD|RGBHUI| ____|GMAIL |HTMAIL| ____ | ____ | ____ | ____ | ____ | __________ || End  |
53     * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------|
54     * |  __________  |RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| CAD  | ______ ||RGBMOD|| ____ |
55     * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======|
56     * |  ____  | WinKyLk |  ____  |               _____                  | ____ | ____ | ____ ||RGBSPD|RGBRMD|RGBSPI|
57     * `------------------------------------------------------------------------------------------------------------'
58     */
59
60    // Notes:
61    // - arrow keys, where we're going we don't need arrow keys
62    // - left ctrl location is Fn
63    // - caps lock is left ctrl
64    // - Rotoary encoder = mouse
65    // Layer 1:
66    //   - fn default: left ctrl + lower (transparent)
67    //   - fn+h,j,k,l = arrows
68    //   - fn+\ = QK boot
69    //   - fn+backspace = del
70
71    [1] = LAYOUT(
72        C(KC_ESC),  C(KC_F1),   C(KC_F2),   C(KC_F3),   C(KC_F4),   C(KC_F5),   C(KC_F6),   C(KC_F7),   C(KC_F8),   C(KC_F9),   C(KC_F10),  C(KC_F11),  C(KC_F12),  C(KC_INS),              C(KC_MS_BTN1),
73        C(KC_GRV),  C(KC_1),    C(KC_2),    C(KC_3),    C(KC_4),    C(KC_5),    C(KC_6),    C(KC_7),    C(KC_8),    C(KC_9),    C(KC_0),    C(KC_MINS), C(KC_EQL),  KC_DEL,                 C(KC_DEL),
74        C(KC_TAB),  C(KC_Q),    C(KC_W),    C(KC_E),    C(KC_R),    C(KC_T),    C(KC_Y),    C(KC_U),    C(KC_I),    C(KC_O),    C(KC_P),    C(KC_LBRC), C(KC_RBRC), QK_BOOT,                C(KC_PGUP),
75        C(KC_LCTL), C(KC_A),    C(KC_S),    C(KC_D),    C(KC_F),    C(KC_G),    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    C(KC_SCLN), C(KC_QUOT),             C(KC_ENT),              C(KC_PGDN),
76        C(KC_LSFT),             C(KC_Z),    C(KC_X),    C(KC_C),    C(KC_V),    C(KC_B),    C(KC_N),    C(KC_M),    C(KC_COMM), C(KC_DOT),  C(KC_SLSH),             C(KC_RSFT), _______,    C(KC_END),
77        _______,    C(KC_LGUI), C(KC_LALT),                                     C(KC_SPC),                                      C(KC_RALT), _______,    C(KC_RCTL), _______,    _______,    _______
78    ),
79
80
81};
82// clang-format on
83
84#if defined(ENCODER_MAP_ENABLE)
85const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
86    // Layer 0 rotary encoder left / right = mouse down, mouse up
87    [0] = { ENCODER_CCW_CW(KC_MS_D, KC_MS_U) },
88    // Layer 1 rotary encoder left / right = mouse left, mouse right
89    [1] = { ENCODER_CCW_CW(KC_MS_L, KC_MS_R) }
90};
91#endif