qmk-firmware/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c
epaew 0b9b2a6376 Add edvorakjp keymap for the Helix (rev2) keyboard (#3340)
* add readme.md

* add extern declaration of edvorakjp_config to edvorakjp.h

* add oled.c

* add layout definitions

* add keymap.c

* add rules.mk

* fix rgblight issue: rgblight_setrgb() ignore RGBLIGHT_LIMIT_VAL
2018-07-08 05:11:02 -07:00

62 lines
1.4 KiB
C

#include QMK_KEYBOARD_H
#include "split_util.h"
#include "keymap_xrows.h"
#ifdef SSD1306OLED
#include "oled.h"
#endif
// keymaps definitions are moved to keymap_Xrows.c.
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case KC_LOCK:
if (record->event.pressed) {
if (edvorakjp_config.enable_kc_lang) {
SEND_STRING( SS_LCTRL(SS_LSFT(SS_TAP(X_POWER))) );
} else {
SEND_STRING( SS_LGUI("l") );
}
}
return false;
}
return true;
}
#ifdef SSD1306OLED
void matrix_init_keymap(void) {
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
iota_gfx_init(!has_usb()); // turns on the display
}
void matrix_scan_user(void) {
iota_gfx_task(); // this is what updates the display continuously
}
#endif
#ifdef RGBLIGHT_ENABLE
uint32_t layer_state_set_keymap(uint32_t state) {
rgblight_mode_noeeprom(1);
switch (biton32(state)) {
case _EDVORAKJ1:
case _EDVORAKJ2:
// _EDVORAKJ1 & J2 are same colored
rgblight_sethsv_noeeprom_white();
break;
case _LOWER:
rgblight_sethsv_noeeprom_red();
break;
case _RAISE:
rgblight_sethsv_noeeprom_blue();
break;
case _ADJUST:
rgblight_sethsv_noeeprom_green();
break;
default: // for any other layers, or the default layer
rgblight_mode_noeeprom(28);
rgblight_sethsv_noeeprom_red();
break;
}
return state;
}
#endif