diff options
Diffstat (limited to 'keyboards/keebio/iris/keymaps/fabian/keymap.c')
-rw-r--r-- | keyboards/keebio/iris/keymaps/fabian/keymap.c | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/keyboards/keebio/iris/keymaps/fabian/keymap.c b/keyboards/keebio/iris/keymaps/fabian/keymap.c new file mode 100644 index 000000000..d7d98fdc0 --- /dev/null +++ b/keyboards/keebio/iris/keymaps/fabian/keymap.c | |||
@@ -0,0 +1,179 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | |||
3 | extern keymap_config_t keymap_config; | ||
4 | |||
5 | enum custom_layers { | ||
6 | _COLEMAK, | ||
7 | _QWERTY, | ||
8 | _LOWER, | ||
9 | _RAISE, | ||
10 | _MOUSECURSOR, | ||
11 | _ADJUST, | ||
12 | }; | ||
13 | |||
14 | enum custom_keycodes { | ||
15 | COLEMAK = SAFE_RANGE, | ||
16 | QWERTY, | ||
17 | LOWER, | ||
18 | RAISE, | ||
19 | MOUSECURSOR, | ||
20 | ADJUST, | ||
21 | DYNAMIC_MACRO_RANGE, | ||
22 | }; | ||
23 | |||
24 | #include "dynamic_macro.h" | ||
25 | |||
26 | #define KC_ KC_TRNS | ||
27 | |||
28 | #define KC_COLE COLEMAK | ||
29 | #define KC_LOWR LOWER | ||
30 | #define KC_QWER QWERTY | ||
31 | #define KC_RASE RAISE | ||
32 | #define KC_RECB DYN_REC_START1 | ||
33 | #define KC_RECE DYN_REC_STOP | ||
34 | #define KC_RECP DYN_MACRO_PLAY1 | ||
35 | #define KC_RSET RESET | ||
36 | |||
37 | #define KC_CTLE CTL_T(KC_ESC) // Tap for Escape, hold for Control | ||
38 | #define KC_HTAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) | ||
39 | #define KC_SBSP SFT_T(KC_BSPC) // Tap for Backspace, hold for Shift | ||
40 | #define KC_SENT KC_SFTENT // Tap for Enter, hold for Shift | ||
41 | #define KC_TGMC TG(_MOUSECURSOR) // Toggle MOUSECURSOR layer | ||
42 | #define KC_SPMC LT(_MOUSECURSOR, KC_SPC) // Tap for Space, hold for MOUSECURSOR layer | ||
43 | |||
44 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
45 | |||
46 | [_QWERTY] = LAYOUT_kc( | ||
47 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
48 | MEH , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,TGMC, | ||
49 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
50 | HTAB, Q , W , E , R , T , Y , U , I , O , P ,BSPC, | ||
51 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
52 | CTLE, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, | ||
53 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
54 | SBSP, Z , X , C , V , B ,LALT, RALT, N , M ,COMM,DOT ,SLSH,SENT, | ||
55 | //`----+----+----+----+----+----+----/ \----+----+----+----+----+----+----' | ||
56 | LGUI,LOWR,SPMC, HTAB,RASE,RGUI | ||
57 | // `----+----+----' `----+----+----' | ||
58 | ), | ||
59 | |||
60 | [_COLEMAK] = LAYOUT_kc( | ||
61 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
62 | MEH , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,TGMC, | ||
63 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
64 | HTAB, Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC, | ||
65 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
66 | CTLE, A , R , S , T , D , H , N , E , I , O ,QUOT, | ||
67 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
68 | SBSP, Z , X , C , V , B ,LALT, RALT, K , M ,COMM,DOT ,SLSH,SENT, | ||
69 | //`----+----+----+----+----+----+----/ \----+----+----+----+----+----+----' | ||
70 | LGUI,LOWR,SPMC, HTAB,RASE,RGUI | ||
71 | // `----+----+----' `----+----+----' | ||
72 | ), | ||
73 | |||
74 | [_LOWER] = LAYOUT_kc( | ||
75 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
76 | , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , , | ||
77 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
78 | TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,DEL , | ||
79 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
80 | GRV , F1 , F2 , F3 , F4 , F5 , F6 ,UNDS,PLUS,LCBR,RCBR,PIPE, | ||
81 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
82 | , F7 , F8 , F9 ,F10 ,F11 , , ,F12 ,MS_L,MS_D,MS_U,MS_R,BTN1, | ||
83 | //`----+----+----+----+----+----+----/ \----+----+----+----+----+----+----' | ||
84 | , , , , , | ||
85 | // `----+----+----' `----+----+----' | ||
86 | ), | ||
87 | |||
88 | [_RAISE] = LAYOUT_kc( | ||
89 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
90 | , , , , , , , , , , , , | ||
91 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
92 | TILD, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , | ||
93 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
94 | GRV , F1 , F2 , F3 , F4 , F5 , F6 ,MINS,EQL ,LBRC,RBRC,BSLS, | ||
95 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
96 | , F7 , F8 , F9 ,F10 ,F11 , , ,F12 ,LEFT,DOWN, UP ,RGHT,BTN2, | ||
97 | //`----+----+----+----+----+----+----/ \----+----+----+----+----+----+----' | ||
98 | , , , , , | ||
99 | // `----+----+----' `----+----+----' | ||
100 | ), | ||
101 | |||
102 | [_MOUSECURSOR] = LAYOUT_kc( | ||
103 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
104 | , , , , , , , , , , , , | ||
105 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
106 | , , , UP , , , WH_D,WH_R,MS_U,ACL0,ACL1,ACL2, | ||
107 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
108 | , ,LEFT,DOWN,RGHT, , WH_L,MS_L,MS_D,MS_R,BTN1,BTN2, | ||
109 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
110 | , , , , , , , ,WH_U,LEFT,DOWN, UP ,RGHT,BTN3, | ||
111 | //`----+----+----+----+----+----+----/ \----+----+----+----+----+----+----' | ||
112 | , , , , , | ||
113 | // `----+----+----' `----+----+----' | ||
114 | ), | ||
115 | |||
116 | [_ADJUST] = LAYOUT_kc( | ||
117 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
118 | , , , , , , , , , , , , | ||
119 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
120 | ,RSET, , , , , , , , ,RSET, , | ||
121 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
122 | , , , , , , ,QWER,COLE, , , , | ||
123 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
124 | , , , , , , , , , ,RECB,RECE,RECP,CAPS, | ||
125 | //`----+----+----+----+----+----+----/ \----+----+----+----+----+----+----' | ||
126 | , , , , , | ||
127 | // `----+----+----' `----+----+----' | ||
128 | ) | ||
129 | }; | ||
130 | |||
131 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
132 | if (!process_record_dynamic_macro(keycode, record)) { | ||
133 | return false; | ||
134 | } | ||
135 | |||
136 | switch (keycode) { | ||
137 | case COLEMAK: | ||
138 | if (record->event.pressed) { | ||
139 | set_single_persistent_default_layer(_COLEMAK); | ||
140 | } | ||
141 | return false; | ||
142 | break; | ||
143 | case QWERTY: | ||
144 | if (record->event.pressed) { | ||
145 | set_single_persistent_default_layer(_QWERTY); | ||
146 | } | ||
147 | return false; | ||
148 | break; | ||
149 | case LOWER: | ||
150 | if (record->event.pressed) { | ||
151 | layer_on(_LOWER); | ||
152 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
153 | } else { | ||
154 | layer_off(_LOWER); | ||
155 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
156 | } | ||
157 | return false; | ||
158 | break; | ||
159 | case RAISE: | ||
160 | if (record->event.pressed) { | ||
161 | layer_on(_RAISE); | ||
162 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
163 | } else { | ||
164 | layer_off(_RAISE); | ||
165 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
166 | } | ||
167 | return false; | ||
168 | break; | ||
169 | case ADJUST: | ||
170 | if (record->event.pressed) { | ||
171 | layer_on(_ADJUST); | ||
172 | } else { | ||
173 | layer_off(_ADJUST); | ||
174 | } | ||
175 | return false; | ||
176 | break; | ||
177 | } | ||
178 | return true; | ||
179 | } | ||