This is a Neo2 inspired layout that is meant to be fully usable on MacOS when used with the default US QWERTY/ABC Extended keymap. Neo2 layers 1-4 have been almost fully implemented in hardware. Layers 5 and 6 (greek and mathematical symbols) have been left out for now as most of them aren't available on the default keymaps. Layer toggling for layer 3 on the right hand side utilizes a tap-toggle approach that is a combination of MO & LT macros. This is required to allow sending Y when tapped, @ when tapped while the SHIFT modifier is active and support momentarily toggling the layer while the key is held.
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "layers.h"
 | |
| #include "simple_visualizer.h"
 | |
| #include "util.h"
 | |
| 
 | |
| static void get_visualizer_layer_and_color(visualizer_state_t *state) {
 | |
|   uint8_t layer = biton32(state->status.layer);
 | |
| 
 | |
|   // Go from highest to lowest layer to get the right text/color combination.
 | |
|   switch (layer) {
 | |
|     // #AEB2F4 / hsv(65.71%, 28.69%, 95.69%)
 | |
|     case FKEYS:
 | |
|       // #F4AEDC / hsv(89.05%, 28.69%, 95.69%)
 | |
|       state->layer_text       = "FUNCTION KEYS";
 | |
|       state->target_lcd_color = LCD_COLOR(228, 73, 245);
 | |
|       break;
 | |
|     case US_1:
 | |
|       // #F4B993 / hsv(6.53%, 39.75%, 95.69%)
 | |
|       state->layer_text       = "QWERTY";
 | |
|       state->target_lcd_color = LCD_COLOR(17, 102, 245);
 | |
|       break;
 | |
|     case NEO_6:
 | |
|       // #F4E393 / hsv(13.75%, 39.75%, 95.69%)
 | |
|       state->layer_text       = "NEO: 6";
 | |
|       state->target_lcd_color = LCD_COLOR(35, 102, 245);
 | |
|       break;
 | |
|     case NEO_5:
 | |
|       // #C6F493 / hsv(24.57%, 39.75%, 95.69%)
 | |
|       state->layer_text       = "NEO: 5";
 | |
|       state->target_lcd_color = LCD_COLOR(63, 102, 245);
 | |
|       break;
 | |
|     case NEO_4:
 | |
|       // #8EEBC9 / hsv(43.91%, 39.57%, 92.16%)
 | |
|       state->layer_text       = "NEO: 4";
 | |
|       state->target_lcd_color = LCD_COLOR(112, 101, 189);
 | |
|       break;
 | |
|     case NEO_3:
 | |
|       // #93D2F4 / hsv(55.84%, 39.75%, 95.69%)
 | |
|       state->layer_text       = "NEO: 3";
 | |
|       state->target_lcd_color = LCD_COLOR(143, 102, 245);
 | |
|       break;
 | |
|     default:
 | |
|       // #EEEEEE / hsv(0%, 0%, 93%)
 | |
|       state->layer_text       = "NEO: 1";
 | |
|       state->target_lcd_color = LCD_COLOR(0, 0, 255);
 | |
|       break;
 | |
|   }
 | |
| }
 |