1 #include QMK_KEYBOARD_H
8 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11 LT(3, KC_MSTP), KC_VOLU, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT),
14 LT(3, KC_ESC), C(KC_Z), C(S(KC_Z)), C(KC_X), C(KC_C), C(KC_V)),
17 LT(3, KC_1), KC_2, KC_3, KC_4, M_TGLHF, M_TGG),
20 KC_TRNS, KC_TRNS, RESET, TO(0), TO(1), TO(2)),
23 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
26 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
47 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),
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
60 void set_switch_led(int ledId, bool state) {
67 if((PINB & (1 << 7)) != 0) {
92 if((PINB & (1 << 7)) != 0) {
115 void set_layer_led(int layerId) {
132 void matrix_init_user(void) {
149 void matrix_scan_user(void) {
152 void led_init_ports() {
153 // led voor switch #1
157 // led voor switch #2
163 // led voor switch #3
167 // led voor switch #4
171 // led voor switch #5
175 // led voor switch #6
205 void led_set_user(uint8_t usb_led) {
207 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
213 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
219 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
225 if (usb_led & (1 << USB_LED_COMPOSE)) {
231 if (usb_led & (1 << USB_LED_KANA)) {
243 * In case you don't understand this coding stuff, please
244 * feel free to mail me or post something
245 * at the /r/knops subreddit and I will configure the code as
246 * you wish for your needs to make the LEDs do what you want :-).
248 * Contact me at: support@knops.io
251 * Knops Mini LED Numbers:
254 * | 1 | | 2 | | 3 | <---
255 * |_____| |_____| |_____| | These LEDs are called 'Switch LEDs'
256 * _____ _____ _____ |----- To turn on/off these leds, use:
257 * | | | | | | | set_switch_led( [1-6], [true/false]);
258 * | 4 | | 5 | | 6 | <---
259 * |_____| |_____| |_____|
261 * < 0 > < 1 > < 2 > <--- These front-LEDs are called 'Layer LEDs'
262 * To turn one of them on, use:
263 * set_layer_led( [0-2] );
268 * This function led_set_layer gets called when you switch between layers.
269 * It allows you to turn on and off leds for each different layer and do
270 * other cool stuff. Currently the GUI does not have LED support. I am working
271 * on that, but takes time.
273 void led_set_layer(int layer) {
277 * Here is an example to turn LEDs on and of. By default:
278 * - the LEDs are turned on in layer 0
279 * - the LEDs are turned off in layer 1
280 * - the LEDs don't change from state for layer 2
284 set_layer_led(0); // Turn on only the first/left layer indicator
285 set_switch_led(1, true);
286 set_switch_led(2, true);
287 set_switch_led(3, true);
288 set_switch_led(4, true);
289 set_switch_led(5, true);
290 set_switch_led(6, true);
294 set_layer_led(1); // Turn on only the second/middle layer indicator
295 set_switch_led(1, false);
296 set_switch_led(2, false);
297 set_switch_led(3, false);
298 set_switch_led(4, false);
299 set_switch_led(5, false);
300 set_switch_led(6, false);
304 set_layer_led(2); // Turn on only the third/right layer indicator
306 // Keep leds for layer two in their current state, since we don't use set_switch_led(SWITCH_ID, TRUE_OR_FALSE)
312 bool process_record_user (uint16_t keycode, keyrecord_t *record) {
315 if (record->event.pressed) {
320 if (record->event.pressed) {
325 if (record->event.pressed) {
330 if (record->event.pressed) {
331 SEND_STRING("tglhf");
336 if (record->event.pressed) {