1 /* Copyright 2017 Baris Tosun
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #include QMK_KEYBOARD_H
18 // MacOS based definitions.
19 #define K_SPCFN LT(SYMB, KC_SPACE) // Tap for space, hold for symbols layer
20 #define K_PRVWD LALT(KC_LEFT) // Previous word
21 #define K_NXTWD LALT(KC_RIGHT) // Next word
22 #define K_LSTRT LGUI(KC_LEFT) // Start of line
23 #define K_LEND LGUI(KC_RIGHT) // End of line
24 #define UNDO LGUI(KC_Z) // UNDO
25 #define CUT LGUI(KC_X) // CUT
26 #define COPY LGUI(KC_C) // COPY
27 #define PASTE LGUI(KC_V) // PASTE
30 #define BASE 0 // Default
31 #define NUMB 1 // Numbers
32 #define SYMB 2 // Symbols
33 #define CURS 3 // Text Editing
35 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
36 [BASE
] = LAYOUT( /* Base */
37 KC_ESC
, KC_GRV
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, DF(1), KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_MINS
, KC_PLUS
,
38 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_QUOT
, KC_BSPC
,
39 MO(3), KC_A
, KC_R
, KC_S
, KC_T
, KC_G
, KC_HOME
, KC_PGUP
, KC_M
, KC_N
, KC_E
, KC_I
, KC_O
, KC_ENT
,
40 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_D
, KC_V
, KC_END
, KC_DEL
, KC_PGDN
, KC_K
, KC_H
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_RSFT
,
41 MO(2), KC_LCTL
, KC_LALT
, KC_LGUI
, KC_BSPC
, KC_ENT
, K_SPCFN
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RIGHT
,MO(2)
44 _______
, _______
, _______
, _______
, _______
, _______
, _______
, DF(0), KC_PSLS
, KC_PAST
, KC_PMNS
, _______
, _______
, _______
, _______
,
45 _______
, _______
, _______
, KC_MS_U
, _______
, _______
, _______
, KC_7
, KC_8
, KC_9
, KC_PPLS
, _______
, _______
, _______
,
46 _______
, KC_BTN2
, KC_MS_L
, KC_MS_D
, KC_MS_R
, _______
, _______
, KC_4
, KC_5
, KC_6
, KC_PPLS
, _______
, _______
, _______
,
47 _______
, _______
, KC_ACL0
, KC_ACL1
, KC_ACL2
, _______
, _______
, _______
, KC_1
, KC_2
, KC_3
, KC_PENT
, _______
, _______
, _______
,
48 _______
, _______
, _______
, _______
, KC_BTN1
, _______
, KC_P0
, KC_PDOT
, KC_PENT
, _______
, _______
, _______
51 RESET
, _______
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, _______
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
,
52 KC_GRV
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, _______
, _______
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_DEL
,
53 _______
, KC_EXLM
, KC_AT
, KC_HASH
, KC_DLR
, KC_PERC
, KC_VOLD
, KC_VOLU
, KC_CIRC
, KC_AMPR
, KC_ASTR
, KC_LPRN
, KC_RPRN
, _______
,
54 _______
, KC_PLUS
, KC_MINS
, KC_EQL
, KC_LCBR
, KC_RCBR
, KC_MPRV
, KC_MPLY
, KC_MNXT
, KC_LBRC
, KC_RBRC
, KC_SCLN
, KC_COLN
, KC_BSLS
, _______
,
55 _______
, _______
, _______
, _______
, KC_DEL
, _______
, _______
, _______
, _______
, _______
, _______
, _______
58 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
,
59 _______
, _______
, KC_WH_U
, _______
, _______
, _______
, _______
, _______
, _______
, K_PRVWD
, KC_UP
, K_NXTWD
, _______
, _______
,
60 _______
, KC_LCTL
, KC_WH_D
, KC_LSFT
, _______
, _______
, _______
, _______
, KC_BSPC
, KC_LEFT
, KC_DOWN
, KC_RIGHT
,KC_DEL
, _______
,
61 _______
, UNDO
, CUT
, COPY
, PASTE
, _______
, _______
, _______
, _______
, _______
, K_LSTRT
, _______
, K_LEND
, _______
, _______
,
62 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
67 void matrix_init_user(void) {
71 void matrix_scan_user(void) {
75 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
79 void led_set_user(uint8_t usb_led
) {