]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/dz60/keymaps/macos_arrow/keymap.c
Keyboard: DZ60 cleanup (#3994)
[qmk_firmware.git] / keyboards / dz60 / keymaps / macos_arrow / keymap.c
1 #include QMK_KEYBOARD_H
2
3 enum dz60_layers {
4   _BL, // Base layer
5   _FL, // Function layer
6   _ML, // Media layer
7   _NL  // Numpad layer
8 };
9
10 enum my_keycodes {
11   BR_UP = SAFE_RANGE,
12   BR_DOWN
13 };
14
15 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16   /* ,-----------------------------------------------------------------------------------------.
17    * |  `  | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 8   | 9   | 0   | -   | =   | Backspace |
18    * |-----------------------------------------------------------------------------------------+
19    * | Tab    | Q   | W   | E   | R   | T   | Y   | U   | I   | O   | P   | [   | ]   |   \    |
20    * |-----------------------------------------------------------------------------------------+
21    * | Esc/_FL  | A   | S   | D   | F   | G   | H   | J   | K   | L   | ;   | '   | Enter      |
22    * |-----------------------------------------------------------------------------------------+
23    * | Shift     | Z   | X   | C   | V   | B   | N   | M   | ,   | .   | /   |     | Up  |Shift|
24    * |-----------------------------------------------------------------------------------------+
25    * | Ctrl | Alt  | Gui  |             Space / _NL            |Gui/_ML| Alt | Left| Down|Right|
26    * `-----------------------------------------------------------------------------------------'
27    */
28   [_BL] = LAYOUT_all(
29     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_NO, KC_BSPC,
30     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,
31     LT(_FL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
32     KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_A, KC_UP, KC_RSFT,
33     KC_LCTL, KC_LALT, KC_LGUI, KC_NO, LT(_NL, KC_SPC), KC_NO, LM(_ML, MOD_RGUI), KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT),
34
35   /* ,-----------------------------------------------------------------------------------------.
36    * |     | F1  | F2  | F3  | F4  | F5  | F6  | F7  | F8  | F9  | F10 | F11 | F12 |    Del    |
37    * |-----------------------------------------------------------------------------------------+
38    * |        |     |     |     |     |     |     |PgUp |     |     |     |     |     |        |
39    * |-----------------------------------------------------------------------------------------+
40    * |          |     |     |     |     |     | Left| Down|  Up |Right|     |     |            |
41    * |-----------------------------------------------------------------------------------------+
42    * |           |     |     |     |     |     |     |PgDwn|     |     |     |     |     |     |
43    * |-----------------------------------------------------------------------------------------+
44    * |      |      |      |                                      |     |     |     |     |     |
45    * `-----------------------------------------------------------------------------------------'
46    */
47   [_FL] = LAYOUT_all(
48     _______, 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, KC_DEL,
49     _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______,
50     _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______,
51     _______, KC_NO,  _______, _______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, _______, _______, _______,
52     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
53
54   /* ,-----------------------------------------------------------------------------------------.
55    * |Eject| BR- | BR+ |     |     |     |     |PREV |PLAY |NEXT |MUTE | V- | V+ |             |
56    * |-----------------------------------------------------------------------------------------+
57    * |        |     |     |     |     |     |     |     |     |     |     |     |     |  Reset |
58    * |-----------------------------------------------------------------------------------------+
59    * |          |     |     |     |     |     |     |     |     |     |     |     |            |
60    * |-----------------------------------------------------------------------------------------+
61    * |           |     |     |     |     |     |     |     |     |     |     |     |     |     |
62    * |-----------------------------------------------------------------------------------------+
63    * |      |      |      |                                      |     |     |     |     |     |
64    * `-----------------------------------------------------------------------------------------'
65    */
66   [_ML] = LAYOUT_all(
67     KC_MEDIA_EJECT, BR_DOWN, BR_UP, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_NO, _______,
68     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
69     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70     _______, KC_NO,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
71     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
72
73   /* ,-----------------------------------------------------------------------------------------.
74    * |     |     |     |     |     |     |     |     |  %  |  (  |  )  |  < |  > |             |
75    * |-----------------------------------------------------------------------------------------+
76    * |        |     |     |     |     |     |     |  *  |  0  |  1  |  2  |  3  |     |        |
77    * |-----------------------------------------------------------------------------------------+
78    * |          |     |     |     |     |     |     |  .  |  -  |  4  |  5  |  6  |            |
79    * |-----------------------------------------------------------------------------------------+
80    * |           |     |     |     |     |     |     |  ,  |  =  |  7  |  8  |  9  |     |     |
81    * |-----------------------------------------------------------------------------------------+
82    * |      |      |      |                                      |     |     |     |     |     |
83    * `-----------------------------------------------------------------------------------------'
84    */
85   [_NL] = LAYOUT_all(
86     _______, _______, _______, _______, _______, _______, _______, _______, KC_PERCENT, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_LEFT_ANGLE_BRACKET, KC_RIGHT_ANGLE_BRACKET, KC_NO, _______,
87     _______, _______, _______, _______, _______, _______, _______, KC_ASTERISK, KC_0, KC_1, KC_2, KC_3, _______, RESET,
88     _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_MINS, KC_4, KC_5, KC_6, _______,
89     _______, KC_NO,  _______, _______, _______, _______, _______, _______, KC_COMMA, KC_EQL, KC_7, KC_8, KC_9, _______, _______,
90     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
91 };
92
93 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
94   uint8_t key;
95   switch (keycode) {
96     case BR_DOWN:
97     case BR_UP:
98       // Clear the RGUI modifier placed by LM for _ML layer as brightness don't
99       // work with modifiers.
100       key = (keycode == BR_DOWN) ? KC_SLCK : KC_PAUS;
101       if (record->event.pressed) {
102           unregister_mods(MOD_RGUI);
103           add_key(key);
104           send_keyboard_report();
105       } else {
106           del_key(key);
107           send_keyboard_report();
108       }
109       return false; // Skip all further processing of this key
110     default:
111       return true; // Process all other keycodes normally
112   }
113 }