1 //Author: tong92 <tong92power@gmail.com>
2 #include QMK_KEYBOARD_H
4 #ifdef BACKLIGHT_ENABLE
8 extern keymap_config_t keymap_config
;
28 #define LOWER LT(_LOWER, KC_SPC)
29 #define RAISE LT(_RAISE, KC_SPC)
30 #define WINDOW_SHORTCUT MO(_WINDOW_SHORTCUT)
31 #define MAC_SHORTCUT MO(_MAC_SHORTCUT)
33 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
36 * ,--------------------------------------------------------------------------.
37 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
38 * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------|
39 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | Enter|
40 * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------|
41 * | Shift | Z | X | C | V | B | N | M | , | . | / |Shift|
42 * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----|
43 * | Ft | GUI | Alt | Space/LOWER | Space/RAISE | ' | [ | ] | Alt |
44 * `--------------------------------------------------------------------------'
46 [_WINDOW
] = LAYOUT_arrow(
47 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
48 KC_LCTL
,KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
,KC_ENT
,
49 KC_LSFT
,KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
,KC_DOT
, KC_SLSH
,KC_RSFT
,
50 WINDOW_SHORTCUT
, KC_LGUI
,KC_LALT
, LOWER
, RAISE
, KC_QUOT
,KC_LBRC
,KC_RBRC
,KC_RALT
53 * ,--------------------------------------------------------------------------.
54 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
55 * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------|
56 * | Cmd | A | S | D | F | G | H | J | K | L | ; | Enter|
57 * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------|
58 * | Shift | Z | X | C | V | B | N | M | , | . | / |Shift|
59 * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----|
60 * | Ft | Alt | Ctrl | Space/LOWER | Space/RAISE | ' | [ | ] | Alt |
61 * `--------------------------------------------------------------------------'
63 [_MAC
] = LAYOUT_arrow(
64 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
65 KC_LGUI
,KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
,KC_ENT
,
66 KC_LSFT
,KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
,KC_DOT
, KC_SLSH
,KC_RSFT
,
67 MAC_SHORTCUT
, KC_LALT
, KC_LCTRL
, LOWER
, RAISE
, KC_QUOT
,KC_LBRC
,KC_RBRC
,KC_RALT
70 * ,--------------------------------------------------------------------------.
71 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
72 * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------|
73 * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | \ |
74 * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------|
75 * | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo|
76 * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----|
77 * | | | | | | END | LEFT| Down|RIGHT|
78 * `--------------------------------------------------------------------------'
80 [_LOWER
] = LAYOUT_arrow(
81 KC_GRV
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, _______
,
82 _______
,KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_MINS
,KC_PLUS
,KC_LBRC
,KC_RBRC
,KC_BSLS
,
83 _______
,KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, XXXXXXX
,KC_HOME
,KC_PGUP
,KC_UP
,KC_PGDN
,
84 XXXXXXX
,_______
,_______
, _______
,XXXXXXX
, KC_END
, KC_LEFT
,KC_DOWN
,KC_RIGHT
87 * ,--------------------------------------------------------------------------.
88 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
89 * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------|
90 * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | | |
91 * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------|
92 * | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo|
93 * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----|
94 * | | | | | | END | LEFT| Down|RIGHT|
95 * `--------------------------------------------------------------------------'
97 [_RAISE
] = LAYOUT_arrow(
98 KC_TILD
,KC_EXLM
,KC_AT
, KC_HASH
,KC_DLR
, KC_PERC
,KC_CIRC
,KC_AMPR
,KC_ASTR
,KC_LPRN
,KC_RPRN
,_______
,
99 _______
,KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_UNDS
,KC_EQL
, KC_LCBR
,KC_RCBR
,KC_PIPE
,
100 _______
,KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, _______
,KC_HOME
,KC_PGUP
,KC_UP
,KC_PGDN
,
101 XXXXXXX
,_______
,_______
, _______
,_______
, KC_END
, KC_LEFT
,KC_DOWN
,KC_RIGHT
104 * ,--------------------------------------------------------------------------.
105 * | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DELET |
106 * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------|
107 * | |WinLe|WinDo|WinRi| |Al+Ca|CapsL| LEFT| DOWN|RIGHT| | |
108 * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------|
109 * | |WinLW|WinRW| | |Ct+Ca|ScroL| HOME| | END | | Ctrl|
110 * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----|
111 * | | DeskL | DeskR| Task Manager| DeskX | MOUSE| | | LED |
112 * `--------------------------------------------------------------------------'
114 [_WINDOW_SHORTCUT
] = LAYOUT_arrow(
115 KC_ESC
,LALT(KC_F4
) ,LGUI(KC_UP
) ,XXXXXXX
,XXXXXXX
,S(KC_CAPS
) ,XXXXXXX
,KC_PGUP
,KC_UP
,KC_PGDN
,KC_PSCR
,KC_DEL
,
116 _______
,LGUI(KC_LEFT
) ,LGUI(KC_DOWN
) ,LGUI(KC_RIGHT
),XXXXXXX
,LALT(KC_CAPS
) ,KC_CAPS
,KC_LEFT
,KC_DOWN
,KC_RIGHT
,XXXXXXX
,XXXXXXX
,
117 _______
,LGUI(LSFT(KC_LEFT
)),LGUI(LSFT(KC_RIGHT
)),XXXXXXX
,XXXXXXX
,LCTL(KC_CAPS
) ,KC_SLCK
,KC_HOME
,XXXXXXX
,KC_END
,XXXXXXX
,KC_RCTL
,
118 _______
,LGUI(LCTL(KC_LEFT
)),LGUI(LCTL(KC_RIGHT
)), LCTL(LALT(KC_DEL
)) ,LGUI(LCTL(KC_F4
)), MOUSE
,XXXXXXX
,XXXXXXX
,BACKLIT
121 * ,--------------------------------------------------------------------------.
122 * | ESC |CmdUp|CmdDo| | | | | PgUp| UP | PgDo|PrtSc| DELET |
123 * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------|
124 * | |WBlkL|WBlkR| |ScrFu| |CapsL| LEFT| DOWN|RIGHT| | |
125 * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------|
126 * | |BlckL|BlckR| | | | | HOME| | END | | Ctrl|
127 * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----|
128 * | | | | | | MOUSE| | | LED |
129 * `--------------------------------------------------------------------------'
131 [_MAC_SHORTCUT
] = LAYOUT_arrow(
132 KC_ESC
,LGUI(KC_UP
) ,LGUI(KC_DOWN
) ,XXXXXXX
,XXXXXXX
,XXXXXXX
,XXXXXXX
,KC_PGUP
,KC_UP
,KC_PGDN
,KC_PSCR
,KC_DEL
,
133 _______
,LALT(LSFT(KC_LEFT
)) ,LALT(LSFT(KC_RIGHT
)) ,XXXXXXX
,LGUI(LCTL(KC_F
)),XXXXXXX
,KC_CAPS
,KC_LEFT
,KC_DOWN
,KC_RIGHT
,XXXXXXX
,XXXXXXX
,
134 _______
,LGUI(LSFT(KC_LEFT
)),LGUI(LSFT(KC_RIGHT
)),XXXXXXX
,XXXXXXX
,XXXXXXX
,XXXXXXX
,KC_HOME
,XXXXXXX
,KC_END
,XXXXXXX
,KC_RCTL
,
135 _______
,_______
,_______
, _______
,_______
, MOUSE
,XXXXXXX
,XXXXXXX
,BACKLIT
138 * ,--------------------------------------------------------------------------.
139 * | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| | RESET |
140 * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------|
141 * | | |Mo_Le|Mo_Do|Mo_Ri| | |M_Bt1|M_WhD|M_Bt2| | |
142 * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------|
143 * | | | | | | | |M_AC0|M_AC1|M_AC2| |WINDO|
144 * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----|
145 * | | | | GO_DEFAULT | GO_DEFAULT | | | | MAC |
146 * `--------------------------------------------------------------------------'
148 [_MOUSE
] = LAYOUT_arrow(
149 XXXXXXX
,XXXXXXX
,XXXXXXX
,KC_MS_U
,XXXXXXX
,XXXXXXX
,XXXXXXX
,KC_WH_L
,KC_WH_U
,KC_WH_R
,XXXXXXX
,RESET
,
150 XXXXXXX
,XXXXXXX
,KC_MS_L
,KC_MS_D
,KC_MS_R
,XXXXXXX
,XXXXXXX
,KC_BTN1
,KC_WH_D
,KC_BTN2
,XXXXXXX
,XXXXXXX
,
151 XXXXXXX
,XXXXXXX
,XXXXXXX
,XXXXXXX
,XXXXXXX
,XXXXXXX
,XXXXXXX
,KC_ACL0
,KC_ACL1
,KC_ACL2
,XXXXXXX
,WINDOW
,
152 XXXXXXX
,XXXXXXX
,XXXXXXX
, EXT_MOUSE
,EXT_MOUSE
, XXXXXXX
,XXXXXXX
,XXXXXXX
,MAC
156 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
159 if (record
->event
.pressed
) {
160 set_single_persistent_default_layer(_WINDOW
);
165 if (record
->event
.pressed
) {
166 set_single_persistent_default_layer(_MAC
);
171 if (record
->event
.pressed
) {
172 #ifdef BACKLIGHT_ENABLE
179 if (record
->event
.pressed
) {
185 if (record
->event
.pressed
) {
187 layer_off(_WINDOW_SHORTCUT
);
188 layer_off(_MAC_SHORTCUT
);