aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards/zsa/voyager/keymaps/ryuk/keymap.c
blob: 05a207d8daf3e49232741527ed2ec289c83ed1d5 (plain)
1
2
3
4
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// Copyright 2023 ZSA Technology Labs, Inc <@zsa>
// Copyright 2023 Christopher Courtney, aka Drashna Jael're  (@drashna) <drashna@live.com>
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

extern bool set_scrolling;

enum layers {
    BASE,
    SYMBOL,
    MISC,
    MOUSE,
};

enum my_keycodes { SCROLON = SAFE_RANGE };

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    // clang-format off
  /* Keymap 0: Basic layer
   *
   * ,---------------------------------------------.           ,--------------------------------------------.
   * | ESC      |   [  |   {  |   }  |   (  |   =  |           |   *  |   )  |   +  |   ]  |   !  |   APP   |
   * |----------+------+------+------+------+------|           |------+------+------+------+------+---------|
   * | LSFT     |   Q  |   W  |   F  |   P  |   G  |           |   J  |   L  |   U  |   Y  |   ;  |  RSFT   |
   * |----------+------+------+------+------+------|           |------+------+------+------+------+---------|
   * | LCTL     |   A  |   R  |   S  |   T  |   D  |           |   H  |   N  |   E  |   I  |   O  |  RCTL   |
   * |----------+------+------+------+------+------|           |------+------+------+------+------+---------|
   * | LALT     |   Z  |   X  |   C  |   V  |   B  |           |   K  |   M  |   ,  |   .  |   '  |  RALS   |
   * `----------+------+------+------+------+------'           `------+------+------+------+------+---------'
   *
   *                              ,----------------.           ,----------------.
   *                              | 1,BSPS  |      |           |      |  2,SPC  |
   *                              '---------|G(TAB)|           |G(RET)|---------'
   *                                        |      |           |      |
   *                                        `------'           `------'
   */
    [BASE] = LAYOUT(
         KC_ESC,  KC_LBRC,  KC_LCBR,  KC_RCBR,  KC_LPRN,  KC_EQL,                                KC_ASTR,  KC_RPRN,   KC_PLUS,  KC_RBRC,  KC_EXLM,   KC_APP,
        KC_LSFT,  KC_Q,     KC_W,     KC_F,     KC_P,     KC_G,                                     KC_J,     KC_L,      KC_U,     KC_Y,  KC_SCLN,  KC_RSFT,
        KC_LCTL,  KC_A,     KC_R,     KC_S,     KC_T,     KC_D,                                     KC_H,     KC_N,      KC_E,     KC_I,     KC_O,  KC_RCTL,
        KC_LALT,  KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,                                     KC_K,     KC_M,  KC_COMMA,   KC_DOT,  KC_QUOT,  KC_RALT,
                                            LT(SYMBOL,KC_BSPC), LGUI_T(KC_TAB),           LGUI_T(KC_ENT), LT(MISC,KC_SPC)
    ),
  /* Keymap 1: Symbols && Numbers
   *
   * ,---------------------------------------------.           ,--------------------------------------------.
   * |    F1    |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F7  |  F8  |  F9  | F10  | F11  |   F12   |
   * |----------+------+------+------+------+------|           |------+------+------+------+------+---------|
   * |   PGUP   |   !  |   @  |   ↑  |   $  |   %  |           |  |   |   7  |   8  |   9  |  ?   |    `    |
   * |----------+------+------+------+------+------|           |------+------+------+------+------+---------|
   * |   PGDN   |   (  |   ←  |   ↓  |   →  |   )  |           |  &   |   4  |   5  |   6  |  ^   |    -    |
   * |----------+------+------+------+------+------|           |------+------+------+------+------+---------|
   * |    _     |   [  |   ]  |   #  |   {  |   }  |           |  \   |   1  |   2  |   3  |  ~   |    /    |
   * `----------+------+------+------+------+------'           `------+------+------+------+------+---------'
   *
   *                                 ,-------------.           ,-------------.
   *                                 |      |      |           |      |   0  |
   *                                 '------|  \   |           |  /   |------'
   *                                        |      |           |      |
   *                                        `------'           `------'
   */
    [SYMBOL] = LAYOUT(
    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_PGUP,  KC_EXLM,    KC_AT,    KC_UP,   KC_DLR,  KC_PERC,             KC_PIPE,  KC_7,     KC_8,     KC_9,    KC_QUES,  KC_GRV,
    KC_PGDN,  KC_LPRN,  KC_LEFT,  KC_DOWN,  KC_RGHT,  KC_RPRN,             KC_AMPR,  KC_4,     KC_5,     KC_6,    KC_CIRC,  KC_MINS,
    KC_UNDS,  KC_LBRC,  KC_RBRC,  KC_HASH,  KC_LCBR,  KC_RCBR,             KC_BSLS,  KC_1,     KC_2,     KC_3,    KC_TILD,  KC_SLSH,
                                                _______, KC_NO,           KC_NO, KC_0
    ),
    [MISC] = LAYOUT(
        RM_TOGG, QK_KB,   RM_NEXT, RGB_M_P, RM_VALD, RM_VALU,                      _______, _______, _______,      _______,   _______, _______,
        _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______,                      KC_PGUP, KC_HOME, KC_UP,        KC_END,    _______, _______,
        _______, KC_MPRV, KC_MNXT, KC_MSTP, KC_MPLY, _______,                      KC_PGDN, KC_LEFT, KC_DOWN,      KC_RGHT,   _______, _______,
        _______, _______, _______, _______, _______, _______,                      _______, _______, C(S(KC_TAB)), C(KC_TAB), _______, _______,
                                                     _______, _______,    _______, _______
    ),
    [MOUSE] = LAYOUT(
        _______, _______, _______, _______, _______, _______,                      _______, _______, _______, _______, _______,  _______,
        _______, _______, _______, _______, _______, _______,                      _______, _______, _______, _______, _______,  _______,
        _______, _______, _______, _______, _______, _______,                      _______, MS_BTN1, MS_BTN3, MS_BTN2, TO(BASE), _______,
        _______, _______, _______, _______, _______, _______,                      _______, _______, _______, _______, _______,  _______,
                                                     _______, _______,    _______, SCROLON
    ),
    // clang-format on
};

void pointing_device_init_user(void) {
    set_auto_mouse_layer(MOUSE);
    set_auto_mouse_enable(true);
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
        case SCROLON:
            set_scrolling = record->event.pressed;
            return false;
    }

    return true;
}