parent
							
								
									1b319151aa
								
							
						
					
					
						commit
						27354ae877
					
				
					 2 changed files with 184 additions and 5 deletions
				
			
		
							
								
								
									
										149
									
								
								keyboards/satan/keymaps/sethbc/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								keyboards/satan/keymaps/sethbc/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,149 @@
 | 
				
			||||||
 | 
					#include "satan.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef RGBLIGHT_ENABLE
 | 
				
			||||||
 | 
					#include "rgblight.h"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Used for SHIFT_ESC
 | 
				
			||||||
 | 
					#define MODS_CTRL_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
				
			||||||
 | 
					// The underscores don't mean anything - you can have a layer called STUFF or any other name.
 | 
				
			||||||
 | 
					// Layer names don't all need to be of the same length, obviously, and you can also skip them
 | 
				
			||||||
 | 
					// entirely and just use numbers.
 | 
				
			||||||
 | 
					#define _BL 0
 | 
				
			||||||
 | 
					#define _FL 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  /* Keymap _BL: (Base Layer) Default Layer
 | 
				
			||||||
 | 
					   * ,-----------------------------------------------------------.
 | 
				
			||||||
 | 
					   * |Esc~| 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =| \ | ~ |
 | 
				
			||||||
 | 
					   * |-----------------------------------------------------------|
 | 
				
			||||||
 | 
					   * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|bksp |
 | 
				
			||||||
 | 
					   * |-----------------------------------------------------------|
 | 
				
			||||||
 | 
					   * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return |
 | 
				
			||||||
 | 
					   * |-----------------------------------------------------------|
 | 
				
			||||||
 | 
					   * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift| fn |
 | 
				
			||||||
 | 
					   * |-----------------------------------------------------------|
 | 
				
			||||||
 | 
					   * |Ctrl|Gui |Alt |      Space            |Alt |Gui |FN  |Ctrl |
 | 
				
			||||||
 | 
					   * `-----------------------------------------------------------'
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					[_BL] = KEYMAP_HHKB(
 | 
				
			||||||
 | 
					  F(0),    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSLS, KC_GRV, \
 | 
				
			||||||
 | 
					  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSPC, \
 | 
				
			||||||
 | 
					  KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,  \
 | 
				
			||||||
 | 
					  KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, MO(_FL), \
 | 
				
			||||||
 | 
					  KC_LCTL, KC_LGUI, KC_LALT,          KC_SPC,                                               KC_RALT, KC_RGUI, KC_MENU, KC_RCTL),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[_FL] = KEYMAP_HHKB(
 | 
				
			||||||
 | 
					  #ifdef RGBLIGHT_ENABLE
 | 
				
			||||||
 | 
					  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, RESET, \
 | 
				
			||||||
 | 
					  KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP,   KC_TRNS, KC_BSPC, \
 | 
				
			||||||
 | 
					  KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,          KC_PENT, \
 | 
				
			||||||
 | 
					  KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END,  KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
 | 
				
			||||||
 | 
					  KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                                     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
 | 
				
			||||||
 | 
					  #else
 | 
				
			||||||
 | 
					  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, RESET, \
 | 
				
			||||||
 | 
					  KC_CAPS, KC_TRNS, F(1),    F(2),    F(3),    KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP,   KC_TRNS, KC_BSPC, \
 | 
				
			||||||
 | 
					  KC_TRNS, KC_VOLD, F(4),    F(5),    F(6),    KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,          KC_PENT, \
 | 
				
			||||||
 | 
					  KC_TRNS,          F(7),    F(8),    KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END,  KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \
 | 
				
			||||||
 | 
					  KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                                     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum function_id {
 | 
				
			||||||
 | 
					    SHIFT_ESC,
 | 
				
			||||||
 | 
					    #ifdef RGBLIGHT_ENABLE
 | 
				
			||||||
 | 
					    RGBLED_TOGGLE,
 | 
				
			||||||
 | 
					    RGBLED_STEP_MODE,
 | 
				
			||||||
 | 
					    RGBLED_INCREASE_HUE,
 | 
				
			||||||
 | 
					    RGBLED_DECREASE_HUE,
 | 
				
			||||||
 | 
					    RGBLED_INCREASE_SAT,
 | 
				
			||||||
 | 
					    RGBLED_DECREASE_SAT,
 | 
				
			||||||
 | 
					    RGBLED_INCREASE_VAL,
 | 
				
			||||||
 | 
					    RGBLED_DECREASE_VAL
 | 
				
			||||||
 | 
					    #endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM fn_actions[] = {
 | 
				
			||||||
 | 
					  [0]  = ACTION_FUNCTION(SHIFT_ESC),
 | 
				
			||||||
 | 
					  #ifdef RGBLIGHT_ENABLE
 | 
				
			||||||
 | 
					  [1]  = ACTION_FUNCTION(RGBLED_TOGGLE),
 | 
				
			||||||
 | 
					  [2]  = ACTION_FUNCTION(RGBLED_STEP_MODE),
 | 
				
			||||||
 | 
					  [3]  = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
 | 
				
			||||||
 | 
					  [4]  = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
 | 
				
			||||||
 | 
					  [5]  = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
 | 
				
			||||||
 | 
					  [6]  = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
 | 
				
			||||||
 | 
					  [7]  = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
 | 
				
			||||||
 | 
					  [8]  = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
				
			||||||
 | 
					  static uint8_t shift_esc_shift_mask;
 | 
				
			||||||
 | 
					  switch (id) {
 | 
				
			||||||
 | 
					    case SHIFT_ESC:
 | 
				
			||||||
 | 
					      shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        if (shift_esc_shift_mask) {
 | 
				
			||||||
 | 
					          add_key(KC_GRV);
 | 
				
			||||||
 | 
					          send_keyboard_report();
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          add_key(KC_ESC);
 | 
				
			||||||
 | 
					          send_keyboard_report();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        if (shift_esc_shift_mask) {
 | 
				
			||||||
 | 
					          del_key(KC_GRV);
 | 
				
			||||||
 | 
					          send_keyboard_report();
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          del_key(KC_ESC);
 | 
				
			||||||
 | 
					          send_keyboard_report();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    //led operations
 | 
				
			||||||
 | 
					    #ifdef RGBLIGHT_ENABLE
 | 
				
			||||||
 | 
					    case RGBLED_TOGGLE:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_toggle();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case RGBLED_INCREASE_HUE:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_increase_hue();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case RGBLED_DECREASE_HUE:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_decrease_hue();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case RGBLED_INCREASE_SAT:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_increase_sat();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case RGBLED_DECREASE_SAT:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_decrease_sat();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case RGBLED_INCREASE_VAL:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_increase_val();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case RGBLED_DECREASE_VAL:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_decrease_val();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case RGBLED_STEP_MODE:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        rgblight_step();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    #endif
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -26,13 +26,43 @@
 | 
				
			||||||
	k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
 | 
						k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
 | 
				
			||||||
) \
 | 
					) \
 | 
				
			||||||
{ \
 | 
					{ \
 | 
				
			||||||
		{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
 | 
						{k00, k01,   k02, k03,   k04,   k05, k06,   k07,   k08,   k09,   k0a, k0b, k0c,   k0d}, \
 | 
				
			||||||
		{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
 | 
						{k10, k11,   k12, k13,   k14,   k15, k16,   k17,   k18,   k19,   k1a, k1b, k1c,   k1d}, \
 | 
				
			||||||
		{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \
 | 
						{k20, k21,   k22, k23,   k24,   k25, k26,   k27,   k28,   k29,   k2a, k2b, KC_NO, k2d}, \
 | 
				
			||||||
		{k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d}, \
 | 
						{k30, KC_NO, k32, k33,   k34,   k35, k36,   k37,   k38,   k39,   k3a, k3b, KC_NO, k3d}, \
 | 
				
			||||||
		{k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d}  \
 | 
						{k40, k41,   k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c,   k4d}  \
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Satan HHKB matrix layout
 | 
				
			||||||
 | 
					   * ,------------------------------------------------------------.
 | 
				
			||||||
 | 
					   * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 |
 | 
				
			||||||
 | 
					   * |------------------------------------------------------------|
 | 
				
			||||||
 | 
					   * | 10  | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c|  1d  |
 | 
				
			||||||
 | 
					   * |------------------------------------------------------------|
 | 
				
			||||||
 | 
					   * | 20    | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d     |
 | 
				
			||||||
 | 
					   * |------------------------------------------------------------|
 | 
				
			||||||
 | 
					   * | 30     | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d   | 3c |
 | 
				
			||||||
 | 
					   * |------------------------------------------------------------|
 | 
				
			||||||
 | 
					   * | 40 | 41 | 42 |        45              | 4a | 4b | 4c | 4d  |
 | 
				
			||||||
 | 
					   * `------------------------------------------------------------'
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEYMAP_HHKB( \
 | 
				
			||||||
 | 
					    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
 | 
				
			||||||
 | 
						k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
 | 
				
			||||||
 | 
						k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
 | 
				
			||||||
 | 
						k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,    k3d,   k3c, \
 | 
				
			||||||
 | 
						k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
 | 
				
			||||||
 | 
					) \
 | 
				
			||||||
 | 
					{ \
 | 
				
			||||||
 | 
						{k00, k01,   k02, k03,   k04,   k05, k06,   k07,   k08,   k09, k0a, k0b, k0c,   k0d}, \
 | 
				
			||||||
 | 
						{k10, k11,   k12, k13,   k14,   k15, k16,   k17,   k18,   k19, k1a, k1b, k1c,   k1d}, \
 | 
				
			||||||
 | 
						{k20, k21,   k22, k23,   k24,   k25, k26,   k27,   k28,   k29, k2a, k2b, KC_NO, k2d}, \
 | 
				
			||||||
 | 
						{k30, KC_NO, k32, k33,   k34,   k35, k36,   k37,   k38,   k39, k3a, k3b, k3c,   k3d}, \
 | 
				
			||||||
 | 
						{k40, k41,   k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, k49, k4a, k4b, k4c,   k4d}  \
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void matrix_init_user(void);
 | 
					void matrix_init_user(void);
 | 
				
			||||||
void matrix_scan_user(void);
 | 
					void matrix_scan_user(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue