diff options
author | Jack Humbert <jack.humb@gmail.com> | 2017-08-23 22:29:07 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-23 22:29:07 -0400 |
commit | d2ff66a985b938e87fffe55c1d9f1dc55e356f91 (patch) | |
tree | 561b3e203033849573a17f5ac6248077ab687676 /layouts/community/60_iso/unxmaal/keymap.c | |
parent | 7260fc3eef98fb7b0e2ed24d3d0d14cf2e613000 (diff) | |
download | qmk_firmware-d2ff66a985b938e87fffe55c1d9f1dc55e356f91.tar.gz qmk_firmware-d2ff66a985b938e87fffe55c1d9f1dc55e356f91.zip |
Creates a layouts/ folder for keymaps shared between keyboards (#1609)
* include variables and .h files as pp directives
* start layout compilation
* split ergodoxes up
* don't compile all layouts for everything
* might seg fault
* reset layouts variable
* actually reset layouts
* include rules.mk instead
* remove includes from rules.mk
* update variable setting
* load visualizer from path
* adds some more examples
* adds more layouts
* more boards added
* more boards added
* adds documentation for layouts
* use lowercase names for LAYOUT_
* add layout.json files for each layout
* add community folder, default keymaps for layouts
* touch-up default layouts
* touch-up layouts, some keyboard rules.mk
* update documentation for layouts
* fix up serial/i2c switches
Diffstat (limited to 'layouts/community/60_iso/unxmaal/keymap.c')
-rw-r--r-- | layouts/community/60_iso/unxmaal/keymap.c | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/layouts/community/60_iso/unxmaal/keymap.c b/layouts/community/60_iso/unxmaal/keymap.c new file mode 100644 index 000000000..e9b38788e --- /dev/null +++ b/layouts/community/60_iso/unxmaal/keymap.c | |||
@@ -0,0 +1,230 @@ | |||
1 | #include QMK_KEYBOARD_H | ||
2 | #include "action_layer.h" | ||
3 | |||
4 | #define _BL 0 | ||
5 | #define _AL 1 | ||
6 | #define _FL 2 | ||
7 | #define _UL 3 | ||
8 | |||
9 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
10 | /* | ||
11 | * ANSI Base, Mac style | ||
12 | * ,-----------------------------------------------------------------------------. | ||
13 | * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | Backsp | | ||
14 | * |-----------------------------------------------------------------------------| | ||
15 | * |Tab | Q | W | E | R | T | Y | U | I| O| P| [| ]| \| | ||
16 | * |-----------------------------------------------------------------------------| | ||
17 | * |Caps/Fn | A| S| D| F| G| H| J| K| L| ;| '| Enter | | ||
18 | * |-----------------------------------------------------------------------------| | ||
19 | * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | | ||
20 | * |-----------------------------------------------------------------------------| | ||
21 | * |Fn|Alt |Gui | Space(tapped), Fn(held) |Gui |Alt |Menu(tapped, Fn2(held)|Ctrl| | ||
22 | * `-----------------------------------------------------------------------------' | ||
23 | */ | ||
24 | [_BL] = LAYOUT_60_iso( | ||
25 | KC_ESC,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_BSPC, \ | ||
26 | 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, \ | ||
27 | KC_LCTL,KC_A,KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_SCLN,KC_QUOT,KC_NO,KC_ENT, \ | ||
28 | 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_NO,KC_RSFT, \ | ||
29 | MO(1),KC_LALT,KC_LGUI, LT(1,KC_SPACE), KC_NO, KC_RGUI, KC_RALT, LT(2,KC_MENU), KC_RCTL), | ||
30 | |||
31 | /* | ||
32 | * Pok3r style arrow cluster | ||
33 | * ,-----------------------------------------------------------. | ||
34 | * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | | ||
35 | * |-----------------------------------------------------------| | ||
36 | * | | | | | | | | |Up| | | | | | | ||
37 | * |-----------------------------------------------------------| | ||
38 | * | | | | | | | |Left|Down|Right| | | | | ||
39 | * |-----------------------------------------------------------| | ||
40 | * | | | | | | | | | | | | | | ||
41 | * |-----------------------------------------------------------| | ||
42 | * | | | | | | | | | | ||
43 | * `-----------------------------------------------------------' | ||
44 | */ | ||
45 | [_AL] = LAYOUT_60_iso( | ||
46 | KC_GRV,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_DELETE, \ | ||
47 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
48 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
49 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
50 | KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), | ||
51 | |||
52 | |||
53 | /* | ||
54 | * Secondary function layer | ||
55 | * ,-------------------------------------------------------------. | ||
56 | * | | | | | | | | RW|Play|FF| Mute| Vol Down | Vol up |Reset | | ||
57 | * |-------------------------------------------------------------| | ||
58 | * | | | | | | | | | |PgUp| | | | | | ||
59 | * |-------------------------------------------------------------| | ||
60 | * | | | | | | | |Home|PgDown|End| | | | | ||
61 | * |-------------------------------------------------------------| | ||
62 | * | | | | | | | | | | | | | | ||
63 | * |-------------------------------------------------------------| | ||
64 | * | | | | | | | | | | ||
65 | * `-------------------------------------------------------------' | ||
66 | */ | ||
67 | [_FL] = LAYOUT_60_iso( | ||
68 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MPRV,KC_MPLY,KC_MNXT,KC_MUTE,KC_VOLD,KC_VOLU,RESET, \ | ||
69 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PGUP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
70 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_HOME,KC_TRNS,KC_HOME,KC_PGDN,KC_END,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
71 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
72 | KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), | ||
73 | |||
74 | /* | ||
75 | * Locking layer for controlling the underglow. | ||
76 | * NOTE: currently unused. | ||
77 | * | ||
78 | * ,-----------------------------------------------------------. | ||
79 | * | | | | | | | | | | | | | | | | ||
80 | * |-----------------------------------------------------------| | ||
81 | * | | | | | | | | | | | | | | | | ||
82 | * |-----------------------------------------------------------| | ||
83 | * | |On|Mode| | | | | | | | | | | | ||
84 | * |-----------------------------------------------------------| | ||
85 | * | | |Hue+|Hue-|Sat+|Sat-|Val+|Val-| | | | | | ||
86 | * |-----------------------------------------------------------| | ||
87 | * | | | | | | | | | | ||
88 | * `-----------------------------------------------------------' | ||
89 | */ | ||
90 | [_UL] = LAYOUT_60_iso( | ||
91 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
92 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
93 | KC_TRNS,F(4),F(5),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
94 | KC_TRNS,KC_TRNS,KC_TRNS,F(6),F(7),F(8),F(9),F(10),F(11),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ | ||
95 | KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), | ||
96 | }; | ||
97 | |||
98 | enum function_id { | ||
99 | RGBLED_TOGGLE, | ||
100 | RGBLED_STEP_MODE, | ||
101 | RGBLED_INCREASE_HUE, | ||
102 | RGBLED_DECREASE_HUE, | ||
103 | RGBLED_INCREASE_SAT, | ||
104 | RGBLED_DECREASE_SAT, | ||
105 | RGBLED_INCREASE_VAL, | ||
106 | RGBLED_DECREASE_VAL, | ||
107 | SHIFT_ESC, | ||
108 | }; | ||
109 | |||
110 | const uint16_t PROGMEM fn_actions[] = { | ||
111 | [0] = ACTION_LAYER_MOMENTARY(2), // Momentary Fn overlay | ||
112 | [1] = ACTION_LAYER_TOGGLE(1), // Toggle Arrow Layer overlay | ||
113 | [2] = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer | ||
114 | [3] = ACTION_LAYER_TOGGLE(3), // Toggle Underglow Layer overlay | ||
115 | [4] = ACTION_FUNCTION(RGBLED_TOGGLE), //Turn on/off underglow | ||
116 | [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode | ||
117 | [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), | ||
118 | [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), | ||
119 | [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), | ||
120 | [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), | ||
121 | [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), | ||
122 | [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), | ||
123 | [12] = ACTION_FUNCTION(SHIFT_ESC), | ||
124 | [13] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), | ||
125 | }; | ||
126 | |||
127 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
128 | { | ||
129 | // MACRODOWN only works in this function | ||
130 | switch(id) { | ||
131 | case 0: | ||
132 | if (record->event.pressed) { | ||
133 | register_code(KC_RSFT); | ||
134 | } else { | ||
135 | unregister_code(KC_RSFT); | ||
136 | } | ||
137 | break; | ||
138 | } | ||
139 | return MACRO_NONE; | ||
140 | }; | ||
141 | |||
142 | void matrix_scan_user(void) { | ||
143 | |||
144 | // Layer LED indicators | ||
145 | // ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster | ||
146 | #ifdef KEYBOARD_gh60 | ||
147 | uint32_t layer = layer_state; | ||
148 | if (layer & (1<<1)) { | ||
149 | gh60_wasd_leds_on(); | ||
150 | } else { | ||
151 | gh60_wasd_leds_off(); | ||
152 | } | ||
153 | |||
154 | if (layer & (1<<2)) { | ||
155 | gh60_esc_led_on(); | ||
156 | } else { | ||
157 | gh60_esc_led_off(); | ||
158 | } | ||
159 | #endif | ||
160 | }; | ||
161 | |||
162 | #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) | ||
163 | |||
164 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
165 | switch (id) { | ||
166 | case RGBLED_TOGGLE: | ||
167 | //led operations | ||
168 | if (record->event.pressed) { | ||
169 | rgblight_toggle(); | ||
170 | } | ||
171 | break; | ||
172 | case RGBLED_INCREASE_HUE: | ||
173 | if (record->event.pressed) { | ||
174 | rgblight_increase_hue(); | ||
175 | } | ||
176 | break; | ||
177 | case RGBLED_DECREASE_HUE: | ||
178 | if (record->event.pressed) { | ||
179 | rgblight_decrease_hue(); | ||
180 | } | ||
181 | break; | ||
182 | case RGBLED_INCREASE_SAT: | ||
183 | if (record->event.pressed) { | ||
184 | rgblight_increase_sat(); | ||
185 | } | ||
186 | break; | ||
187 | case RGBLED_DECREASE_SAT: | ||
188 | if (record->event.pressed) { | ||
189 | rgblight_decrease_sat(); | ||
190 | } | ||
191 | break; | ||
192 | case RGBLED_INCREASE_VAL: | ||
193 | if (record->event.pressed) { | ||
194 | rgblight_increase_val(); | ||
195 | } | ||
196 | break; | ||
197 | case RGBLED_DECREASE_VAL: | ||
198 | if (record->event.pressed) { | ||
199 | rgblight_decrease_val(); | ||
200 | } | ||
201 | break; | ||
202 | case RGBLED_STEP_MODE: | ||
203 | if (record->event.pressed) { | ||
204 | rgblight_step(); | ||
205 | } | ||
206 | break; | ||
207 | static uint8_t shift_esc_shift_mask; | ||
208 | // Shift + ESC = ~ | ||
209 | case SHIFT_ESC: | ||
210 | shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; | ||
211 | if (record->event.pressed) { | ||
212 | if (shift_esc_shift_mask) { | ||
213 | add_key(KC_GRV); | ||
214 | send_keyboard_report(); | ||
215 | } else { | ||
216 | add_key(KC_ESC); | ||
217 | send_keyboard_report(); | ||
218 | } | ||
219 | } else { | ||
220 | if (shift_esc_shift_mask) { | ||
221 | del_key(KC_GRV); | ||
222 | send_keyboard_report(); | ||
223 | } else { | ||
224 | del_key(KC_ESC); | ||
225 | send_keyboard_report(); | ||
226 | } | ||
227 | } | ||
228 | break; | ||
229 | } | ||
230 | }; | ||