@ -13,14 +13,14 @@
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/** \brief Default Layer State
 /** \brief Default Layer State
  
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					uint32 _t default_layer_state  =  0 ; layer_state _t default_layer_state  =  0 ;  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/** \brief Default Layer State Set At user Level
 /** \brief Default Layer State Set At user Level
  
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Run  user  code  on  default  layer  state  change 
 *  Run  user  code  on  default  layer  state  change 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					__attribute__ ( ( weak ) ) __attribute__ ( ( weak ) )  
			
		
	
		
		
			
				
					
					uint32_t default_layer_state_set_user ( uint32  _t state )  { layer_state_t default_layer_state_set_user ( layer_state  _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  return  state ; 
  return  state ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -29,7 +29,7 @@ uint32_t default_layer_state_set_user(uint32_t state) {
 
			
		
	
		
		
			
				
					
					 *   Run  keyboard  code  on  default  layer  state  change 
 *   Run  keyboard  code  on  default  layer  state  change 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					__attribute__ ( ( weak ) ) __attribute__ ( ( weak ) )  
			
		
	
		
		
			
				
					
					uint32_t default_layer_state_set_kb ( uint32  _t state )  { layer_state_t default_layer_state_set_kb ( layer_state  _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  return  default_layer_state_set_user ( state ) ; 
  return  default_layer_state_set_user ( state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -37,7 +37,7 @@ uint32_t default_layer_state_set_kb(uint32_t state) {
 
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Static  function  to  set  the  default  layer  state ,  prints  debug  info  and  clears  keys 
 *  Static  function  to  set  the  default  layer  state ,  prints  debug  info  and  clears  keys 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					static  void  default_layer_state_set ( uint32 _t state )  { static  void  default_layer_state_set ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  state  =  default_layer_state_set_kb ( state ) ; 
  state  =  default_layer_state_set_kb ( state ) ; 
 
			
		
	
		
		
			
				
					
					  debug ( " default_layer_state:  " ) ; 
  debug ( " default_layer_state:  " ) ; 
 
			
		
	
		
		
			
				
					
					  default_layer_debug ( ) ;  debug ( "  to  " ) ; 
  default_layer_debug ( ) ;  debug ( "  to  " ) ; 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -62,7 +62,7 @@ void default_layer_debug(void) {
 
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Sets  the  default  layer  state . 
 *  Sets  the  default  layer  state . 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  default_layer_set ( uint32 _t state )  { void  default_layer_set ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  default_layer_state_set ( state ) ; 
  default_layer_state_set ( state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -71,21 +71,21 @@ void default_layer_set(uint32_t state) {
 
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Turns  on  the  default  layer  based  on  matching  bits  between  specifed  layer  and  existing  layer  state 
 *  Turns  on  the  default  layer  based  on  matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  default_layer_or ( uint32 _t state )  { void  default_layer_or ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  default_layer_state_set ( default_layer_state  |  state ) ; 
  default_layer_state_set ( default_layer_state  |  state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					/** \brief Default Layer And
 /** \brief Default Layer And
  
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Turns  on  default  layer  based  on  matching  enabled  bits  between  specifed  layer  and  existing  layer  state 
 *  Turns  on  default  layer  based  on  matching  enabled  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  default_layer_and ( uint32 _t state )  { void  default_layer_and ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  default_layer_state_set ( default_layer_state  &  state ) ; 
  default_layer_state_set ( default_layer_state  &  state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					/** \brief Default Layer Xor
 /** \brief Default Layer Xor
  
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Turns  on  default  layer  based  on  non - matching  bits  between  specifed  layer  and  existing  layer  state 
 *  Turns  on  default  layer  based  on  non - matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  default_layer_xor ( uint32 _t state )  { void  default_layer_xor ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  default_layer_state_set ( default_layer_state  ^  state ) ; 
  default_layer_state_set ( default_layer_state  ^  state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					# endif # endif  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -94,14 +94,14 @@ void default_layer_xor(uint32_t state) {
 
			
		
	
		
		
			
				
					
					# ifndef NO_ACTION_LAYER # ifndef NO_ACTION_LAYER  
			
		
	
		
		
			
				
					
					/** \brief Keymap Layer State
 /** \brief Keymap Layer State
  
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					uint32 _t layer_state  =  0 ; layer_state _t layer_state  =  0 ;  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/** \brief Layer state set user
 /** \brief Layer state set user
  
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Runs  user  code  on  layer  state  change 
 *  Runs  user  code  on  layer  state  change 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					__attribute__ ( ( weak ) ) __attribute__ ( ( weak ) )  
			
		
	
		
		
			
				
					
					uint32_t layer_state_set_user ( uint32  _t state )  { layer_state_t layer_state_set_user ( layer_state  _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  return  state ; 
  return  state ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -110,7 +110,7 @@ uint32_t layer_state_set_user(uint32_t state) {
 
			
		
	
		
		
			
				
					
					 *  Runs  keyboard  code  on  layer  state  change 
 *  Runs  keyboard  code  on  layer  state  change 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					__attribute__ ( ( weak ) ) __attribute__ ( ( weak ) )  
			
		
	
		
		
			
				
					
					uint32_t layer_state_set_kb ( uint32  _t state )  { layer_state_t layer_state_set_kb ( layer_state  _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  return  layer_state_set_user ( state ) ; 
  return  layer_state_set_user ( state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -118,7 +118,7 @@ uint32_t layer_state_set_kb(uint32_t state) {
 
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Sets  the  layer  to  match  the  specifed  state  ( a  bitmask ) 
 *  Sets  the  layer  to  match  the  specifed  state  ( a  bitmask ) 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  layer_state_set ( uint32 _t state )  { void  layer_state_set ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  state  =  layer_state_set_kb ( state ) ; 
  state  =  layer_state_set_kb ( state ) ; 
 
			
		
	
		
		
			
				
					
					  dprint ( " layer_state:  " ) ; 
  dprint ( " layer_state:  " ) ; 
 
			
		
	
		
		
			
				
					
					  layer_debug ( ) ;  dprint ( "  to  " ) ; 
  layer_debug ( ) ;  dprint ( "  to  " ) ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -151,7 +151,7 @@ bool layer_state_is(uint8_t layer) {
 
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Used  for  comparing  layers  { mostly  used  for  unit  testing } 
 *  Used  for  comparing  layers  { mostly  used  for  unit  testing } 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					bool  layer_state_cmp ( uint32 _t cmp_layer_state ,  uint8_t  layer )  { bool  layer_state_cmp ( layer_state _t cmp_layer_state ,  uint8_t  layer )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  if  ( ! cmp_layer_state )  {  return  layer  = =  0 ;  } 
  if  ( ! cmp_layer_state )  {  return  layer  = =  0 ;  } 
 
			
		
	
		
		
			
				
					
					  return  ( cmp_layer_state  &  ( 1UL < < layer ) )  ! =  0 ; 
  return  ( cmp_layer_state  &  ( 1UL < < layer ) )  ! =  0 ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -192,21 +192,21 @@ void layer_invert(uint8_t layer) {
 
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Turns  on  layers  based  on  matching  bits  between  specifed  layer  and  existing  layer  state 
 *  Turns  on  layers  based  on  matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  layer_or ( uint32 _t state )  { void  layer_or ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  layer_state_set ( layer_state  |  state ) ; 
  layer_state_set ( layer_state  |  state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					/** \brief Layer and
 /** \brief Layer and
  
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Turns  on  layers  based  on  matching  enabled  bits  between  specifed  layer  and  existing  layer  state 
 *  Turns  on  layers  based  on  matching  enabled  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  layer_and ( uint32 _t state )  { void  layer_and ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  layer_state_set ( layer_state  &  state ) ; 
  layer_state_set ( layer_state  &  state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					/** \brief Layer xor
 /** \brief Layer xor
  
			
		
	
		
		
			
				
					
					 * 
 * 
 
			
		
	
		
		
			
				
					
					 *  Turns  on  layers  based  on  non - matching  bits  between  specifed  layer  and  existing  layer  state 
 *  Turns  on  layers  based  on  non - matching  bits  between  specifed  layer  and  existing  layer  state 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					void  layer_xor ( uint32 _t state )  { void  layer_xor ( layer_state _t state )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  layer_state_set ( layer_state  ^  state ) ; 
  layer_state_set ( layer_state  ^  state ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -301,9 +301,9 @@ uint8_t layer_switch_get_layer(keypos_t key) {
 
			
		
	
		
		
			
				
					
					  action_t  action ; 
  action_t  action ; 
 
			
		
	
		
		
			
				
					
					  action . code  =  ACTION_TRANSPARENT ; 
  action . code  =  ACTION_TRANSPARENT ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  uint32 _t layers  =  layer_state  |  default_layer_state ; 
  layer_state _t layers  =  layer_state  |  default_layer_state ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  /* check top layer first */ 
  /* check top layer first */ 
 
			
		
	
		
		
			
				
					
					  for  ( int8_t  i  =  3 1;  i  > =  0 ;  i - - )  { 
  for  ( int8_t  i  =  sizeof ( layer_state_t ) - ;  i  > =  0 ;  i - - )  { 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    if  ( layers  &  ( 1UL  < <  i ) )  { 
    if  ( layers  &  ( 1UL  < <  i ) )  { 
 
			
		
	
		
		
			
				
					
					      action  =  action_for_key ( i ,  key ) ; 
      action  =  action_for_key ( i ,  key ) ; 
 
			
		
	
		
		
			
				
					
					      if  ( action . code  ! =  ACTION_TRANSPARENT )  { 
      if  ( action . code  ! =  ACTION_TRANSPARENT )  {