mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 21:32:31 +01:00 
			
		
		
		
	Generalize layer indicators
This commit is contained in:
		
							parent
							
								
									229e38f097
								
							
						
					
					
						commit
						909fd4ae64
					
				| @ -413,61 +413,43 @@ void led_reset(void) { | |||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void led_layer_normal(void) { | void led_set_layer_indicator(void) { | ||||||
|  |   static uint8_t oldlayer = 255; | ||||||
|  | 
 | ||||||
|   rgbsps_set(LED_IND_FUNC, 0, 0, 0); |   rgbsps_set(LED_IND_FUNC, 0, 0, 0); | ||||||
|   rgbsps_set(LED_IND_NUM, 0, 0, 0); |   rgbsps_set(LED_IND_NUM, 0, 0, 0); | ||||||
|   rgbsps_set(LED_IND_EMOJI, 0, 0, 0); |   rgbsps_set(LED_IND_EMOJI, 0, 0, 0); | ||||||
| 
 | 
 | ||||||
|   led_reset(); |   led_reset(); | ||||||
| 
 | 
 | ||||||
|   rgbsps_send(); |   uint8_t layer = biton32(layer_state); | ||||||
| } |   if (oldlayer == layer) { | ||||||
|  |     return; | ||||||
|  |   } | ||||||
| 
 | 
 | ||||||
| void led_layer_func(void) { |   oldlayer = layer; | ||||||
|   rgbsps_set(LED_IND_FUNC, 0, 15, 0); |  | ||||||
|   rgbsps_set(LED_IND_NUM, 0, 0, 0); |  | ||||||
|   rgbsps_set(LED_IND_EMOJI, 0, 0, 0); |  | ||||||
| 
 | 
 | ||||||
|   led_reset(); |   if (layer <= _NORMAN) { | ||||||
|  |     rgbsps_send(); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
| 
 | 
 | ||||||
|   rgbsps_send(); |   switch(layer) { | ||||||
| } |     case _FUNC: | ||||||
|  |       rgbsps_set(LED_IND_FUNC, 15, 0, 0); | ||||||
|  |       break; | ||||||
|  |     case _NUM: | ||||||
|  |       rgbsps_set(LED_IND_NUM, 0, 0, 15); | ||||||
|  |       break; | ||||||
|  |     case _EMOJI: | ||||||
|  |       rgbsps_set(LED_IND_EMOJI, 15, 15, 0); | ||||||
|  |       break; | ||||||
|  |     default: | ||||||
|  |       rgbsps_set(LED_IND_FUNC, 3, 3, 3); | ||||||
|  |       rgbsps_set(LED_IND_NUM, 3, 3, 3); | ||||||
|  |       rgbsps_set(LED_IND_EMOJI, 3, 3, 3); | ||||||
|  |   } | ||||||
| 
 | 
 | ||||||
| void led_layer_punc(void) { |  | ||||||
|   rgbsps_set(LED_IND_FUNC, 0, 15, 0); |  | ||||||
|   rgbsps_set(LED_IND_NUM, 0, 0, 15); |  | ||||||
|   rgbsps_set(LED_IND_EMOJI, 0, 0, 0); |  | ||||||
| 
 |  | ||||||
|   led_reset(); |  | ||||||
| 
 |  | ||||||
|   rgbsps_send(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void led_layer_num(void) { |  | ||||||
|   rgbsps_set(LED_IND_FUNC, 0, 0, 0); |  | ||||||
|   rgbsps_set(LED_IND_NUM, 0, 0, 15); |  | ||||||
|   rgbsps_set(LED_IND_EMOJI, 0, 0, 0); |  | ||||||
| 
 |  | ||||||
|   led_reset(); |  | ||||||
| 
 |  | ||||||
|   rgbsps_send(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void led_layer_emoji(void) { |  | ||||||
|   rgbsps_set(LED_IND_FUNC, 0, 0, 0); |  | ||||||
|   rgbsps_set(LED_IND_NUM, 0, 0, 0); |  | ||||||
|   rgbsps_set(LED_IND_EMOJI, 15, 15, 0); |  | ||||||
| 
 |  | ||||||
|   rgbsps_set(LED_PUNC, 15, 15, 15); |  | ||||||
|   rgbsps_set(LED_EMOJI, 15, 15, 15); |  | ||||||
| 
 |  | ||||||
|   rgbsps_send(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void led_layer_gui(void) { |  | ||||||
|   rgbsps_set(LED_IND_FUNC, 15, 10, 15); |  | ||||||
|   rgbsps_set(LED_IND_NUM, 15, 10, 15); |  | ||||||
|   rgbsps_set(LED_IND_EMOJI, 15, 10, 15); |  | ||||||
|   rgbsps_send(); |   rgbsps_send(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -497,8 +479,6 @@ void led_init(void) { | |||||||
|   rgbsps_set(LED_TRACKPOINT1, 15, 0, 0); |   rgbsps_set(LED_TRACKPOINT1, 15, 0, 0); | ||||||
|   rgbsps_set(LED_TRACKPOINT2, 0, 0, 15); |   rgbsps_set(LED_TRACKPOINT2, 0, 0, 15); | ||||||
|   rgbsps_set(LED_TRACKPOINT3, 15, 0, 0); |   rgbsps_set(LED_TRACKPOINT3, 15, 0, 0); | ||||||
| 
 |  | ||||||
|   led_layer_normal(); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -798,6 +778,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||||
|       return true; |       return true; | ||||||
|       break; |       break; | ||||||
| 
 | 
 | ||||||
|  |     // press both Supers to activate EMOJI layer
 | ||||||
|  |     case KC_LGUI: | ||||||
|  |     case KC_RGUI: | ||||||
|  |       ; | ||||||
|  |       bool lgui = keyboard_report->mods & MOD_BIT(KC_LGUI); | ||||||
|  |       bool rgui = keyboard_report->mods & MOD_BIT(KC_RGUI); | ||||||
|  |       if (record->event.pressed) { | ||||||
|  |         if (lgui ^ rgui) { // if only one super was pressed
 | ||||||
|  |           layer_on(_EMOJI); | ||||||
|  |         } | ||||||
|  |       } else { | ||||||
|  |         layer_off(_EMOJI); | ||||||
|  |       } | ||||||
|  |       return true; | ||||||
|  |       break; | ||||||
|  | 
 | ||||||
|     // QWERTZ style comma and dot: semicolon and colon when shifted
 |     // QWERTZ style comma and dot: semicolon and colon when shifted
 | ||||||
|     case KC_COMM: |     case KC_COMM: | ||||||
|       if (record->event.pressed) { |       if (record->event.pressed) { | ||||||
| @ -873,19 +869,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||||
|       if (record->event.pressed) { |       if (record->event.pressed) { | ||||||
|         layer_on(_PUNC); |         layer_on(_PUNC); | ||||||
|         update_tri_layer(_PUNC, _GREEKL, _GUI); |         update_tri_layer(_PUNC, _GREEKL, _GUI); | ||||||
|         if (IS_LAYER_ON(_GUI)) { |  | ||||||
|           led_layer_normal(); |  | ||||||
|         } else { |  | ||||||
|           led_layer_punc(); |  | ||||||
|         } |  | ||||||
|       } else { |       } else { | ||||||
|         layer_off(_PUNC); |         layer_off(_PUNC); | ||||||
|         update_tri_layer(_PUNC, _GREEKL, _GUI); |         update_tri_layer(_PUNC, _GREEKL, _GUI); | ||||||
|         if (IS_LAYER_ON(_GREEKL)) { |  | ||||||
|           led_layer_normal(); |  | ||||||
|         } else { |  | ||||||
|           led_layer_normal(); |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|       return false; |       return false; | ||||||
|       break; |       break; | ||||||
| @ -899,21 +885,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||||
|           layer_on(_GREEKL); |           layer_on(_GREEKL); | ||||||
|           layer_off(_GREEKU); |           layer_off(_GREEKU); | ||||||
|           update_tri_layer(_PUNC, _GREEKL, _GUI); |           update_tri_layer(_PUNC, _GREEKL, _GUI); | ||||||
|           if (IS_LAYER_ON(_GUI)) { |  | ||||||
|             led_layer_normal(); |  | ||||||
|           } else { |  | ||||||
|             led_layer_normal(); |  | ||||||
|           } |  | ||||||
|         } |         } | ||||||
|       } else { |       } else { | ||||||
|         layer_off(_GREEKU); |         layer_off(_GREEKU); | ||||||
|         layer_off(_GREEKL); |         layer_off(_GREEKL); | ||||||
|         update_tri_layer(_PUNC, _GREEKL, _GUI); |         update_tri_layer(_PUNC, _GREEKL, _GUI); | ||||||
|         if (IS_LAYER_ON(_PUNC)) { |  | ||||||
|           led_layer_normal(); |  | ||||||
|         } else { |  | ||||||
|           led_layer_normal(); |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|       return false; |       return false; | ||||||
|       break; |       break; | ||||||
| @ -921,10 +897,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||||
|     case NUM: |     case NUM: | ||||||
|       if (record->event.pressed) { |       if (record->event.pressed) { | ||||||
|         layer_on(_NUM); |         layer_on(_NUM); | ||||||
|         led_layer_num(); |  | ||||||
|       } else { |       } else { | ||||||
|         layer_off(_NUM); |         layer_off(_NUM); | ||||||
|         led_layer_normal(); |  | ||||||
|       } |       } | ||||||
|       return false; |       return false; | ||||||
|       break; |       break; | ||||||
| @ -932,10 +906,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||||
|     case FUNC: |     case FUNC: | ||||||
|       if (record->event.pressed) { |       if (record->event.pressed) { | ||||||
|         layer_on(_FUNC); |         layer_on(_FUNC); | ||||||
|         led_layer_func(); |  | ||||||
|       } else { |       } else { | ||||||
|         layer_off(_FUNC); |         layer_off(_FUNC); | ||||||
|         led_layer_normal(); |  | ||||||
|       } |       } | ||||||
|       return false; |       return false; | ||||||
|       break; |       break; | ||||||
| @ -1003,6 +975,10 @@ void matrix_init_user(void) { | |||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void matrix_scan_user(void) { | ||||||
|  |   led_set_layer_indicator(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void battery_poll(float percentage) { | void battery_poll(float percentage) { | ||||||
|   rgbsps_sethsv(LED_IND_BATTERY, percentage*120/100, 255, 15); |   rgbsps_sethsv(LED_IND_BATTERY, percentage*120/100, 255, 15); | ||||||
|   rgbsps_send(); |   rgbsps_send(); | ||||||
| @ -1012,23 +988,23 @@ void ps2_mouse_init_user() { | |||||||
|     uint8_t rcv; |     uint8_t rcv; | ||||||
| 
 | 
 | ||||||
|     // set TrackPoint sensitivity
 |     // set TrackPoint sensitivity
 | ||||||
|     PS2_MOUSE_SEND(0xE2, "set trackpoint sensitivity: 0xE2"); |     PS2_MOUSE_SEND(0xE2, "tpsens: 0xE2"); | ||||||
|     PS2_MOUSE_SEND(0x81, "set trackpoint sensitivity: 0x81"); |     PS2_MOUSE_SEND(0x81, "tpsens: 0x81"); | ||||||
|     PS2_MOUSE_SEND(0x4A, "set trackpoint sensitivity: 0x4A"); |     PS2_MOUSE_SEND(0x4A, "tpsens: 0x4A"); | ||||||
|     PS2_MOUSE_SEND(0x49, "set trackpoint sensitivity: 0x59"); |     PS2_MOUSE_SEND(0x49, "tpsens: 0x59"); | ||||||
| 
 | 
 | ||||||
|     // set TrackPoint Negative Inertia factor
 |     // set TrackPoint Negative Inertia factor
 | ||||||
|     PS2_MOUSE_SEND(0xE2, "set negative inertia factor: 0xE2"); |     PS2_MOUSE_SEND(0xE2, "tpnegin: 0xE2"); | ||||||
|     PS2_MOUSE_SEND(0x81, "set negative inertia factor: 0x81"); |     PS2_MOUSE_SEND(0x81, "tpnegin: 0x81"); | ||||||
|     PS2_MOUSE_SEND(0x4D, "set negative inertia factor: 0x4D"); |     PS2_MOUSE_SEND(0x4D, "tpnegin: 0x4D"); | ||||||
|     PS2_MOUSE_SEND(0x06, "set negative inertia factor: 0x06"); |     PS2_MOUSE_SEND(0x06, "tpnegin: 0x06"); | ||||||
| 
 | 
 | ||||||
|     // set TrackPoint speed
 |     // set TrackPoint speed
 | ||||||
|     // (transfer function upper plateau speed)
 |     // (transfer function upper plateau speed)
 | ||||||
|     PS2_MOUSE_SEND(0xE2, "set trackpoint speed: 0xE2"); |     PS2_MOUSE_SEND(0xE2, "tpsp: 0xE2"); | ||||||
|     PS2_MOUSE_SEND(0x81, "set trackpoint speed: 0x81"); |     PS2_MOUSE_SEND(0x81, "tpsp: 0x81"); | ||||||
|     PS2_MOUSE_SEND(0x60, "set trackpoint speed: 0x60"); |     PS2_MOUSE_SEND(0x60, "tpsp: 0x60"); | ||||||
|     PS2_MOUSE_SEND(0x61, "set trackpoint speed: 0x61"); |     PS2_MOUSE_SEND(0x61, "tpsp: 0x61"); | ||||||
| 
 | 
 | ||||||
|     // inquire pts status
 |     // inquire pts status
 | ||||||
|     rcv = ps2_host_send(0xE2); |     rcv = ps2_host_send(0xE2); | ||||||
|  | |||||||
| @ -31,6 +31,8 @@ void matrix_scan_kb(void) { | |||||||
|         counter = 0; |         counter = 0; | ||||||
|         battery_poll(battery_percentage()); |         battery_poll(battery_percentage()); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     matrix_scan_user(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Priyadi Iman Nurcahyo
						Priyadi Iman Nurcahyo