* 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
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |