Changed KEYMAP to LAYOUT for HHKB (#2857)
This commit is contained in:
		
							parent
							
								
									3aeaf4e3ea
								
							
						
					
					
						commit
						c76ab936c8
					
				
					 19 changed files with 711 additions and 582 deletions
				
			
		| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
// Layer names
 | 
			
		||||
#define BASE 0
 | 
			
		||||
| 
						 | 
				
			
			@ -27,12 +27,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [BASE] = KEYMAP(  //  default layer
 | 
			
		||||
  KC_GRV,        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_BSPC,  KC_LEAD,                          \
 | 
			
		||||
  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_BSLS,                                    \
 | 
			
		||||
  ALL_T(KC_ESC), KC_A,  KC_S,  KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,  KC_L,     LT(MEDIA, KC_SCLN),  KC_QUOT,  ALL_T(KC_ENT),                              \
 | 
			
		||||
  KC_LSFT,       CTL_T(KC_Z),  ALT_T(KC_X),  GUI_T(KC_C),  KC_V,  KC_B,  KC_N,     KC_M,  GUI_T(KC_COMM),  ALT_T(KC_DOT),  CTL_T(KC_SLSH), KC_RSFT,  TG(DEV), \
 | 
			
		||||
      TG(DEV), TG(MOUSE),                              LT(DEV, KC_SPC), TG(MOUSE),              TG(DEV)),
 | 
			
		||||
    [BASE] = LAYOUT( //  default layer
 | 
			
		||||
        KC_GRV, 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_BSPC, KC_LEAD,
 | 
			
		||||
        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_BSLS,
 | 
			
		||||
        ALL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(MEDIA, KC_SCLN), KC_QUOT, ALL_T(KC_ENT),
 | 
			
		||||
        KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), GUI_T(KC_C), KC_V, KC_B, KC_N, KC_M, GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT, TG(DEV),
 | 
			
		||||
        TG(DEV), TG(MOUSE), LT(DEV, KC_SPC), TG(MOUSE), TG(DEV)),
 | 
			
		||||
 | 
			
		||||
    /* Layer DEV: DEV mode (DEV Fn)
 | 
			
		||||
      TODO: Add a cmd/tab function to the developer layer for quick switching between different applications when debugging
 | 
			
		||||
| 
						 | 
				
			
			@ -51,12 +51,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+----------------------+------+------+
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [DEV] = KEYMAP(
 | 
			
		||||
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS, \
 | 
			
		||||
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,          \
 | 
			
		||||
  KC_TRNS,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_LEFT, KC_DOWN,  KC_UP,   KC_RIGHT, KC_TRNS,  KC_TRNS,  KC_TRNS,                    \
 | 
			
		||||
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS, TG(DEV),                 \
 | 
			
		||||
                     KC_TRNS, KC_TRNS,           KC_TRNS,              KC_TRNS, KC_TRNS),
 | 
			
		||||
    [DEV] = LAYOUT(
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV),
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
    /* Layer MOUSE: MOUSE mode (MOUSE Fn)
 | 
			
		||||
      |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -74,12 +74,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+----------------------+------+------+
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [MOUSE] = KEYMAP(
 | 
			
		||||
  KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,  \
 | 
			
		||||
  KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,            \
 | 
			
		||||
  KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                        \
 | 
			
		||||
  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV),                    \
 | 
			
		||||
                     KC_TRNS, KC_TRNS,           KC_TRNS,                KC_TRNS, KC_TRNS),
 | 
			
		||||
    [MOUSE] = LAYOUT(
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV),
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
    /* Layer MEDIA: mode (Hold Semi-colon)
 | 
			
		||||
      |------+-----+-----+-----+----+----+----+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -98,25 +98,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [MEDIA] = KEYMAP(
 | 
			
		||||
  KC_TRNS,   KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,  \
 | 
			
		||||
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,    KC_TRNS,  KC_TRNS,          \
 | 
			
		||||
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_MPRV,  KC_MNXT,  KC_MUTE,  KC_TRNS,  KC_MPLY,  KC_TRNS,                    \
 | 
			
		||||
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_VOLD,  KC_VOLU,   KC_TRNS,  KC_TRNS,  KC_TRNS, TG(DEV),                    \
 | 
			
		||||
                     KC_TRNS, KC_TRNS,           KC_TRNS,                KC_TRNS, KC_TRNS)
 | 
			
		||||
};
 | 
			
		||||
    [MEDIA] = LAYOUT(
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_MUTE, KC_TRNS, KC_MPLY, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV),
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
/*  -*-  eval: (turn-on-orgtbl); -*-
 | 
			
		||||
 * cinaeco's HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
// Layers.
 | 
			
		||||
#define QWER 0
 | 
			
		||||
| 
						 | 
				
			
			@ -14,15 +14,15 @@
 | 
			
		|||
// Easier-to-read Layer Arrays.
 | 
			
		||||
#define ____ KC_TRNS
 | 
			
		||||
 | 
			
		||||
enum hhkb_keycodes {
 | 
			
		||||
  DYNAMIC_MACRO_RANGE = SAFE_RANGE,
 | 
			
		||||
enum hhkb_keycodes
 | 
			
		||||
{
 | 
			
		||||
    DYNAMIC_MACRO_RANGE = SAFE_RANGE,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#include "dynamic_macro.h"
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /* QWER Layer: Qwerty Default
 | 
			
		||||
     *
 | 
			
		||||
     * ,--------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -39,13 +39,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [QWER] = KEYMAP(
 | 
			
		||||
  KC_ESC,  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,  LT(MREC, 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, CTL_T(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(HHKB),                       \
 | 
			
		||||
           KC_LALT,        KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    [QWER] = LAYOUT(
 | 
			
		||||
        KC_ESC, 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, LT(MREC, 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, CTL_T(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(HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* COLE Layer: Colemak
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -63,13 +62,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [COLE] = KEYMAP(
 | 
			
		||||
  KC_ESC,  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,  LT(MREC, KC_Q), KC_W,    KC_F,             KC_P,    KC_G,     KC_J, KC_L, KC_U,    KC_Y,   KC_SCLN, KC_LBRC, KC_RBRC,       KC_BSPC,         \
 | 
			
		||||
  KC_LCTL, KC_A,           KC_R,    KC_S,             KC_T,    KC_D,     KC_H, KC_N, KC_E,    KC_I,   KC_O,    KC_QUOT, CTL_T(KC_ENT),                  \
 | 
			
		||||
  KC_LSFT, KC_Z,           KC_X,    KC_C,             KC_V,    KC_K,     KC_B, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB),                       \
 | 
			
		||||
           KC_LALT,        KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    [COLE] = LAYOUT(
 | 
			
		||||
        KC_ESC, 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, LT(MREC, KC_Q), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC,
 | 
			
		||||
        KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, CTL_T(KC_ENT),
 | 
			
		||||
        KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_K, KC_B, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* DVOR Layer: Dvorak
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -87,13 +85,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [DVOR] = KEYMAP(
 | 
			
		||||
  KC_ESC,  KC_1,              KC_2,    KC_3,             KC_4,    KC_5,     KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC,       KC_BSLS, KC_GRV, \
 | 
			
		||||
  KC_TAB,  LT(MREC, KC_QUOT), KC_COMM, KC_DOT,           KC_P,    KC_Y,     KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL,        KC_BSPC,         \
 | 
			
		||||
  KC_LCTL, KC_A,              KC_O,    KC_E,             KC_U,    KC_I,     KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, CTL_T(KC_ENT),                  \
 | 
			
		||||
  KC_LSFT, KC_SCLN,           KC_Q,    KC_J,             KC_K,    KC_X,     KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(HHKB),                       \
 | 
			
		||||
           KC_LALT,           KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    [DVOR] = LAYOUT(
 | 
			
		||||
        KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV,
 | 
			
		||||
        KC_TAB, LT(MREC, KC_QUOT), KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC,
 | 
			
		||||
        KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, CTL_T(KC_ENT),
 | 
			
		||||
        KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* HHKB Layer: HHKB mode (HHKB Fn)
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -110,13 +107,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *       `-------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [HHKB] = KEYMAP(
 | 
			
		||||
  KC_PWR,  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_INS,  KC_DEL, \
 | 
			
		||||
  KC_CAPS, KC_MPLY, KC_MPRV, KC_MNXT, ____,    ____,  ____,    ____,    KC_PSCR, KC_SLCK, KC_PAUS, KC_UP,   ____,    KC_BSPC,         \
 | 
			
		||||
  ____,    KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, ____,  KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,                  \
 | 
			
		||||
  ____,    ____,    ____,    ____,    ____,    ____,  KC_PPLS, KC_PMNS, KC_END,  KC_PGDN, KC_DOWN, ____,    ____,                     \
 | 
			
		||||
           ____,    ____,    ____,    KC_MSTP, ____),
 | 
			
		||||
 | 
			
		||||
    [HHKB] = LAYOUT(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        KC_CAPS, KC_MPLY, KC_MPRV, KC_MNXT, ____, ____, ____, ____, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ____, KC_BSPC,
 | 
			
		||||
        ____, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, ____, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
 | 
			
		||||
        ____, ____, ____, ____, ____, ____, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ____, ____,
 | 
			
		||||
        ____, ____, ____, KC_MSTP, ____),
 | 
			
		||||
 | 
			
		||||
    /* UTIL Layer: Extra utilities
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -134,13 +130,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [UTIL] = KEYMAP(
 | 
			
		||||
  RESET, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, ____,    ____,    ____,   ____,    ____,    ____,    ____,    ____, DF(QWER), DF(COLE), DF(DVOR), DEBUG, \
 | 
			
		||||
  ____,  KC_BTN1,         KC_MS_U,         KC_BTN2, KC_WH_U, ____,   KC_HOME, KC_PGDN, KC_PGUP, KC_END,  ____, ____,     ____,     ____,            \
 | 
			
		||||
  ____,  KC_MS_L,         KC_MS_D,         KC_MS_R, KC_WH_D, ____,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, ____, ____,     ____,                      \
 | 
			
		||||
  ____,  ____,            ____,            ____,    ____,    KC_SPC, ____,    ____,    ____,    ____,    ____, ____,     ____,                      \
 | 
			
		||||
         ____,            ____,            ____,    ____,    ____),
 | 
			
		||||
 | 
			
		||||
    [UTIL] = LAYOUT(
 | 
			
		||||
        RESET, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, ____, ____, ____, ____, ____, ____, ____, ____, DF(QWER), DF(COLE), DF(DVOR), DEBUG,
 | 
			
		||||
        ____, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, ____, KC_HOME, KC_PGDN, KC_PGUP, KC_END, ____, ____, ____, ____,
 | 
			
		||||
        ____, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, ____, ____, ____,
 | 
			
		||||
        ____, ____, ____, ____, ____, KC_SPC, ____, ____, ____, ____, ____, ____, ____,
 | 
			
		||||
        ____, ____, ____, ____, ____),
 | 
			
		||||
 | 
			
		||||
    /* MREC Layer: Record macros with `q`
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -158,29 +153,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [MREC] = KEYMAP(
 | 
			
		||||
  ____, DYN_REC_START1, DYN_REC_START2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
 | 
			
		||||
  ____, ____,           ____,           ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,       \
 | 
			
		||||
  ____, ____,           DYN_REC_STOP,   ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,             \
 | 
			
		||||
  ____, ____,           ____,           ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,             \
 | 
			
		||||
        ____,           ____,           ____, ____, ____)
 | 
			
		||||
    [MREC] = LAYOUT(
 | 
			
		||||
        ____, DYN_REC_START1, DYN_REC_START2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
 | 
			
		||||
        ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
 | 
			
		||||
        ____, ____, DYN_REC_STOP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
 | 
			
		||||
        ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
 | 
			
		||||
        ____, ____, ____, ____, ____)
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// For Dynamic Macros.
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  if (!process_record_dynamic_macro(keycode, record)) {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
{
 | 
			
		||||
    if (!process_record_dynamic_macro(keycode, record))
 | 
			
		||||
    {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +1,20 @@
 | 
			
		|||
/*
 | 
			
		||||
 * dbroqua HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
enum planck_layers {
 | 
			
		||||
  _DEFAULT,
 | 
			
		||||
  _ALTERNATE,
 | 
			
		||||
  _FN,
 | 
			
		||||
  _ADJUST
 | 
			
		||||
enum planck_layers
 | 
			
		||||
{
 | 
			
		||||
    _DEFAULT,
 | 
			
		||||
    _ALTERNATE,
 | 
			
		||||
    _FN,
 | 
			
		||||
    _ADJUST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
  DEF = SAFE_RANGE,
 | 
			
		||||
  ALT
 | 
			
		||||
enum planck_keycodes
 | 
			
		||||
{
 | 
			
		||||
    DEF = SAFE_RANGE,
 | 
			
		||||
    ALT
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
| 
						 | 
				
			
			@ -29,13 +31,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *         | Alt |  Gui   |               Space               | Gui   | Alt |
 | 
			
		||||
     *         `----------------------------------------------------------------´
 | 
			
		||||
     */
 | 
			
		||||
    [_DEFAULT] = KEYMAP(
 | 
			
		||||
        KC_ESC,   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(_FN),                    \
 | 
			
		||||
                         KC_LALT, KC_LGUI,   /*        */ KC_SPC, KC_RGUI, KC_RALT
 | 
			
		||||
    ),
 | 
			
		||||
    [_DEFAULT] = LAYOUT(
 | 
			
		||||
        KC_ESC, 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(_FN),
 | 
			
		||||
        KC_LALT, KC_LGUI, /*        */ KC_SPC, KC_RGUI, KC_RALT),
 | 
			
		||||
    /* Alternamte layer: swap alt/gui
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
     * | Esc |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  0  |  -  |  =  |  \  |  `  |
 | 
			
		||||
| 
						 | 
				
			
			@ -49,13 +50,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *         | Gui |  Alt   |               Space               | AltGr | RGui|
 | 
			
		||||
     *         `----------------------------------------------------------------´
 | 
			
		||||
     */
 | 
			
		||||
    [_ALTERNATE] = KEYMAP(
 | 
			
		||||
        KC_ESC,   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(_FN),                    \
 | 
			
		||||
                        KC_LGUI, KC_LALT,  /*        */ KC_SPC, KC_RALT, KC_RGUI
 | 
			
		||||
    ),
 | 
			
		||||
    [_ALTERNATE] = LAYOUT(
 | 
			
		||||
        KC_ESC, 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(_FN),
 | 
			
		||||
        KC_LGUI, KC_LALT, /*        */ KC_SPC, KC_RALT, KC_RGUI),
 | 
			
		||||
 | 
			
		||||
    /* FN Layer
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -70,13 +70,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *         |     |        |            Adjust                 | Stop  |     |
 | 
			
		||||
     *         `----------------------------------------------------------------´
 | 
			
		||||
     */
 | 
			
		||||
    [_FN] = KEYMAP(
 | 
			
		||||
        KC_PWR,   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_INS,   KC_DEL, \
 | 
			
		||||
        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_TRNS,          \
 | 
			
		||||
        KC_TRNS,  KC_VOLD,  KC_VOLU,  KC_MUTE,  KC_EJCT,  KC_TRNS,  KC_PAST,  KC_PSLS,  KC_HOME,  KC_PGUP,  KC_LEFT,  KC_RGHT,  KC_TRNS,                    \
 | 
			
		||||
        KC_TRNS,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_TRNS,  KC_TRNS,  KC_PPLS,  KC_PMNS,  KC_END,   KC_PGDN,  KC_DOWN,  KC_TRNS,  KC_TRNS,                    \
 | 
			
		||||
                        KC_TRNS, KC_TRNS,           TG(_ADJUST),                KC_MSTP, KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
    [_FN] = LAYOUT(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        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_TRNS,
 | 
			
		||||
        KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, TG(_ADJUST), KC_MSTP, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
    /* SWITCH LAYOUT
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -91,14 +90,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *         |     |        |                                   |       |     |
 | 
			
		||||
     *         `----------------------------------------------------------------´
 | 
			
		||||
     */
 | 
			
		||||
    [_ADJUST] = KEYMAP(
 | 
			
		||||
        KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS, \
 | 
			
		||||
        KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,          \
 | 
			
		||||
        KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                    \
 | 
			
		||||
        KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                    \
 | 
			
		||||
                  DEF,      ALT,                          KC_TRNS,                KC_TRNS, KC_TRNS
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
    [_ADJUST] = LAYOUT(
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        DEF, ALT, KC_TRNS, KC_TRNS, KC_TRNS)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -106,35 +103,42 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
{
 | 
			
		||||
    switch (keycode)
 | 
			
		||||
    {
 | 
			
		||||
    case DEF:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        print("mode just switched to qwerty and this is a huge string\n");
 | 
			
		||||
        set_single_persistent_default_layer(_DEFAULT);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            print("mode just switched to qwerty and this is a huge string\n");
 | 
			
		||||
            set_single_persistent_default_layer(_DEFAULT);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
    case ALT:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        set_single_persistent_default_layer(_ALTERNATE);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            set_single_persistent_default_layer(_ALTERNATE);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,11 @@
 | 
			
		|||
# Dbroqua Layout
 | 
			
		||||
 | 
			
		||||
* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/78eaf35e80bb714eea80cb4049dedb01
 | 
			
		||||
*   Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/78eaf35e80bb714eea80cb4049dedb01
 | 
			
		||||
 | 
			
		||||
# Programming Instructions:
 | 
			
		||||
 | 
			
		||||
Enter into programming mode and run the following command.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ sudo LAYOUT=dbroqua make dfu
 | 
			
		||||
```
 | 
			
		||||
$ sudo KEYMAP=dbroqua make dfu
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
/*  -*-  eval: (turn-on-orgtbl); -*-
 | 
			
		||||
 * default HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define BASE 0
 | 
			
		||||
#define HHKB 1
 | 
			
		||||
| 
						 | 
				
			
			@ -24,14 +24,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
            |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [BASE] = KEYMAP(  //  default layer
 | 
			
		||||
  KC_ESC,   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(HHKB),                    \
 | 
			
		||||
                    KC_LALT,  KC_LGUI,  /*        */ KC_SPC,      KC_RGUI,  KC_RALT),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [BASE] = LAYOUT( //  default layer
 | 
			
		||||
        KC_ESC, 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(HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, /*        */ KC_SPC, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer HHKB: HHKB mode (HHKB Fn)
 | 
			
		||||
      |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -50,13 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [HHKB] = KEYMAP(
 | 
			
		||||
  KC_PWR,   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_INS,   KC_DEL, \
 | 
			
		||||
  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)};
 | 
			
		||||
 | 
			
		||||
    [HHKB] = LAYOUT(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        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)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -64,15 +61,19 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Layer 0: HHKB JP
 | 
			
		||||
* ,-----------------------------------------------------------.
 | 
			
		||||
* |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9| 10|  -|  =|Yen|Bsp|
 | 
			
		||||
| 
						 | 
				
			
			@ -31,29 +30,27 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
  [0] = KEYMAP_JP(
 | 
			
		||||
	KC_ESC,   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_GRAVE,  KC_BSPC,
 | 
			
		||||
	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_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,     KC_G,    KC_H,    KC_J,        KC_K,     KC_L, KC_SCLN, KC_QUOT,  KC_DEL, 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,   KC_UP, KC_BSLS,
 | 
			
		||||
	KC_BSPC,  KC_ZKHK, KC_LGUI, KC_LALT, MO(1),         KC_SPC,      KC_BSPC,  KC_RSFT,  KC_RALT,   MO(1), KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
  ),
 | 
			
		||||
    [0] = LAYOUT_JP(
 | 
			
		||||
        KC_ESC, 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_GRAVE, KC_BSPC,
 | 
			
		||||
        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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, 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, KC_UP, KC_BSLS,
 | 
			
		||||
        KC_BSPC, KC_ZKHK, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_BSPC, KC_RSFT, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
 | 
			
		||||
 | 
			
		||||
  [1] = KEYMAP_JP(
 | 
			
		||||
	_______,                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_INS,  KC_DEL,
 | 
			
		||||
	KC_CAPS,  KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,   KC_UP, _______,
 | 
			
		||||
	_______,              KC_VOLD,             KC_VOLU,             KC_MUTE, KC_PSCR, _______, KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
	_______,              _______,             _______,             _______, _______, _______, KC_PPLS, KC_PMNS,  KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
	_______,              _______,             _______,             _______, _______,     _______     , _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
  )
 | 
			
		||||
};
 | 
			
		||||
    [1] = LAYOUT_JP(
 | 
			
		||||
        _______, 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_INS, KC_DEL,
 | 
			
		||||
        KC_CAPS, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
 | 
			
		||||
        _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PSCR, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
			
		||||
	return MACRO_NONE;
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*void matrix_scan_user(void) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
/*  -*-  eval: (turn-on-orgtbl); -*-
 | 
			
		||||
 * default HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define BASE 0
 | 
			
		||||
#define HHKB 1
 | 
			
		||||
| 
						 | 
				
			
			@ -23,14 +23,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
            |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [BASE] = KEYMAP(  //  default layer
 | 
			
		||||
  KC_ESC,   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(HHKB),                    \
 | 
			
		||||
                    KC_LGUI,  KC_LALT,  /*        */ KC_SPC,      KC_RALT,  KC_RGUI),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [BASE] = LAYOUT( //  default layer
 | 
			
		||||
        KC_ESC, 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(HHKB),
 | 
			
		||||
        KC_LGUI, KC_LALT, /*        */ KC_SPC, KC_RALT, KC_RGUI),
 | 
			
		||||
 | 
			
		||||
    /* Layer HHKB: HHKB mode (HHKB Fn)
 | 
			
		||||
      |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -48,13 +46,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [HHKB] = KEYMAP(
 | 
			
		||||
  KC_CAPS,   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_INS,   KC_DEL, \
 | 
			
		||||
  KC_TRNS,  KC_PGUP,  KC_UP,  KC_PGDN,  KC_HOME,  KC_AMPR,  KC_TILD,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_PSCR,  KC_UP,    KC_DEL,  KC_BSPC,          \
 | 
			
		||||
  KC_TRNS,  KC_LEFT,  KC_DOWN,  KC_RGHT,  KC_END,  KC_ASTR,  KC_TRNS,  KC_TRNS,  KC_PGUP,  KC_HOME,  KC_LEFT,  KC_RGHT,  KC_TRNS,                    \
 | 
			
		||||
  KC_TRNS,  KC_UNDS,  KC_PLUS,  KC_LPRN,  KC_RPRN,  KC_PIPE,  KC_TRNS,  KC_TRNS,  KC_PGDN,   KC_END,  KC_DOWN,  KC_TRNS,  KC_TRNS,                    \
 | 
			
		||||
                     KC_TRNS, KC_TRNS,           KC_TRNS,                KC_TRNS, KC_TRNS)};
 | 
			
		||||
 | 
			
		||||
    [HHKB] = LAYOUT(
 | 
			
		||||
        KC_CAPS, 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_INS, KC_DEL,
 | 
			
		||||
        KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_AMPR, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_DEL, KC_BSPC,
 | 
			
		||||
        KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_ASTR, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_LEFT, KC_RGHT, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_UNDS, KC_PLUS, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_PGDN, KC_END, KC_DOWN, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -62,15 +59,19 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,7 @@
 | 
			
		|||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Layer 0: HHKB JP
 | 
			
		||||
 * ,-----------------------------------------------------------.
 | 
			
		||||
 * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9| 10|  -|  =|Yen|Bsp|
 | 
			
		||||
| 
						 | 
				
			
			@ -32,25 +31,23 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
  [0] = KEYMAP_JP(
 | 
			
		||||
    KC_ESC,   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_JYEN,  KC_BSPC,
 | 
			
		||||
    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_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,     KC_G,    KC_H,    KC_J,     KC_K,    KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RO,   KC_UP, KC_RSFT,
 | 
			
		||||
    MO(1), KC_ZKHK, KC_LGUI, KC_LALT, KC_MHEN,         KC_SPC,    KC_HENK,  KC_KANA, KC_RALT,   MO(1), KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
  ),
 | 
			
		||||
    [0] = LAYOUT_JP(
 | 
			
		||||
        KC_ESC, 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_JYEN, KC_BSPC,
 | 
			
		||||
        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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RO, KC_UP, KC_RSFT,
 | 
			
		||||
        MO(1), KC_ZKHK, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_HENK, KC_KANA, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
 | 
			
		||||
 | 
			
		||||
  [1] = KEYMAP_JP(
 | 
			
		||||
    KC_PWR,    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_INS,  KC_DEL,
 | 
			
		||||
    KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,   KC_UP, _______,
 | 
			
		||||
    _______, KC_VOLD, KC_VOLU, KC_MUTE,  KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS,  KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______,     _______     , _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
  )
 | 
			
		||||
};
 | 
			
		||||
    [1] = LAYOUT_JP(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
 | 
			
		||||
        _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) {
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,7 @@
 | 
			
		|||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Layer 0: HHKB JP
 | 
			
		||||
 * ,-----------------------------------------------------------.
 | 
			
		||||
 * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9| 10|  -|  =|Yen|Bsp|
 | 
			
		||||
| 
						 | 
				
			
			@ -32,25 +31,23 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
  [0] = KEYMAP_JP(
 | 
			
		||||
    KC_ESC,   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_JYEN,  KC_BSPC,
 | 
			
		||||
    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_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,     KC_G,    KC_H,    KC_J,     KC_K,    KC_L, KC_SCLN, KC_QUOT, KC_BSLS,  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_RO,   KC_UP, KC_RSFT,
 | 
			
		||||
    MO(1),  KC_GRV, KC_LALT, KC_LGUI, KC_MHEN,         KC_SPC,    KC_HENK,  KC_RGUI, KC_RALT,   MO(1), KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
  ),
 | 
			
		||||
    [0] = LAYOUT_JP(
 | 
			
		||||
        KC_ESC, 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_JYEN, KC_BSPC,
 | 
			
		||||
        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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RO, KC_UP, KC_RSFT,
 | 
			
		||||
        MO(1), KC_GRV, KC_LALT, KC_LGUI, KC_MHEN, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
 | 
			
		||||
 | 
			
		||||
  [1] = KEYMAP_JP(
 | 
			
		||||
    KC_PWR,    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_INS,  KC_DEL,
 | 
			
		||||
    KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,   KC_UP, _______,
 | 
			
		||||
    _______, KC_VOLD, KC_VOLU, KC_MUTE,  KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS,  KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______,     _______     , _______, _______, _______, _______,  KC_DEL, _______, _______
 | 
			
		||||
  )
 | 
			
		||||
};
 | 
			
		||||
    [1] = LAYOUT_JP(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
 | 
			
		||||
        _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______)};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) {
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
/*  -*-  eval: (turn-on-orgtbl); -*-
 | 
			
		||||
 * default HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define BASE 0
 | 
			
		||||
#define HHKB 1
 | 
			
		||||
| 
						 | 
				
			
			@ -24,14 +24,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
            |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [BASE] = KEYMAP(  //  default layer
 | 
			
		||||
  KC_ESC,   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(HHKB),                    \
 | 
			
		||||
                    KC_LALT,  KC_LGUI,  /*        */ KC_SPC,      KC_RGUI,  KC_RALT),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [BASE] = LAYOUT( //  default layer
 | 
			
		||||
        KC_ESC, 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(HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, /*        */ KC_SPC, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer HHKB: HHKB mode (HHKB Fn)
 | 
			
		||||
      |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -50,13 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [HHKB] = KEYMAP(
 | 
			
		||||
  KC_PWR,   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_INS,   KC_DEL, \
 | 
			
		||||
  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)};
 | 
			
		||||
 | 
			
		||||
    [HHKB] = LAYOUT(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        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)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -64,15 +61,19 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
/*  -*-  eval: (turn-on-orgtbl); -*-
 | 
			
		||||
 * lxol HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define BASE 0
 | 
			
		||||
#define WIN 1
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +11,6 @@
 | 
			
		|||
#define RALTLEV 5
 | 
			
		||||
#define LALTLEV 6
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
    /* Layer 0: Default Layer
 | 
			
		||||
| 
						 | 
				
			
			@ -30,16 +29,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+-------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [BASE] = KEYMAP(  // layer 0 : default
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  KC_ESC,   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,  LT(LALTLEV,KC_A),  LT(LGUILEV,KC_S),  KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,     LT(RGUILEV,KC_L),  LT(RALTLEV,KC_SCLN),  KC_QUOT,  KC_FN0,    \
 | 
			
		||||
  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(HHKB),  \
 | 
			
		||||
      KC_LALT, KC_LGUI, KC_SPC,                KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    [BASE] = LAYOUT( // layer 0 : default
 | 
			
		||||
 | 
			
		||||
        KC_ESC, 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, LT(LALTLEV, KC_A), LT(LGUILEV, KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV, KC_L), LT(RALTLEV, KC_SCLN), KC_QUOT, KC_FN0,
 | 
			
		||||
        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(HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer 1: HHKB mode (HHKB Fn)
 | 
			
		||||
      |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -57,13 +53,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                      |---+---+---+---+---|
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [HHKB] = KEYMAP(
 | 
			
		||||
  KC_PWR,   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_INS,   KC_DEL, \
 | 
			
		||||
  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),
 | 
			
		||||
 | 
			
		||||
    [HHKB] = LAYOUT(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        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),
 | 
			
		||||
 | 
			
		||||
    /* Layer LGUI: All keys with RGUI modifier
 | 
			
		||||
     |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---|
 | 
			
		||||
| 
						 | 
				
			
			@ -81,13 +76,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+-------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [RGUILEV] = KEYMAP(  // Right GUI layer  by KC_L
 | 
			
		||||
    [RGUILEV] = LAYOUT( // Right GUI layer  by KC_L
 | 
			
		||||
 | 
			
		||||
  RGUI(KC_ESC),   RGUI(KC_1),  RGUI(KC_2),  RGUI(KC_3),  RGUI(KC_4),  RGUI(KC_5),  RGUI(KC_6),  RGUI(KC_7),  RGUI(KC_8),     RGUI(KC_9),    RGUI(KC_0),     RGUI(KC_MINS),  RGUI(KC_EQL),   RGUI(KC_BSLS),  RGUI(KC_GRV),  \
 | 
			
		||||
  RGUI(KC_TAB),   RGUI(KC_Q),  RGUI(KC_W),  RGUI(KC_E),  RGUI(KC_R),  RGUI(KC_T),  RGUI(KC_Y),  RGUI(KC_U),  RGUI(KC_I),     RGUI(KC_O),    RGUI(KC_P),     RGUI(KC_LBRC),  RGUI(KC_RBRC),  RGUI(KC_BSPC),  \
 | 
			
		||||
  RGUI(KC_LCTL),  RGUI(KC_A),  RGUI(KC_S),  RGUI(KC_D),  RGUI(KC_F),  RGUI(KC_G),  RGUI(KC_H),  RGUI(KC_J),  RGUI(KC_K),     KC_TRNS,       KC_TRNS,        RGUI(KC_QUOT),  KC_FN0,         \
 | 
			
		||||
  RGUI(KC_LSFT),  RGUI(KC_Z),  RGUI(KC_X),  RGUI(KC_C),  RGUI(KC_V),  RGUI(KC_B),  RGUI(KC_N),  RGUI(KC_M),  RGUI(KC_COMM),  RGUI(KC_DOT),  RGUI(KC_SLSH),  RGUI(KC_RSFT),  KC_TRNS,        \
 | 
			
		||||
      KC_LALT, KC_LGUI, RGUI(KC_SPC),               KC_RGUI, KC_RALT),
 | 
			
		||||
        RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV),
 | 
			
		||||
        RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC),
 | 
			
		||||
        RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0,
 | 
			
		||||
        RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS,
 | 
			
		||||
        KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer LGUI: All keys with LGUI modifier
 | 
			
		||||
     |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---|
 | 
			
		||||
| 
						 | 
				
			
			@ -105,13 +100,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+-------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [LGUILEV] = KEYMAP(  // Right GUI layer  by KC_L
 | 
			
		||||
    [LGUILEV] = LAYOUT( // Right GUI layer  by KC_L
 | 
			
		||||
 | 
			
		||||
  LGUI(KC_ESC),   LGUI(KC_1),  LGUI(KC_2),  LGUI(KC_3),  LGUI(KC_4),  LGUI(KC_5),  LGUI(KC_6),  LGUI(KC_7),  LGUI(KC_8),     LGUI(KC_9),    LGUI(KC_0),     LGUI(KC_MINS),  LGUI(KC_EQL),   LGUI(KC_BSLS),  LGUI(KC_GRV),  \
 | 
			
		||||
  LGUI(KC_TAB),   LGUI(KC_Q),  LGUI(KC_W),  LGUI(KC_E),  LGUI(KC_R),  LGUI(KC_T),  LGUI(KC_Y),  LGUI(KC_U),  LGUI(KC_I),     LGUI(KC_O),    LGUI(KC_P),     LGUI(KC_LBRC),  LGUI(KC_RBRC),  LGUI(KC_BSPC),  \
 | 
			
		||||
  LGUI(KC_LCTL),  KC_TRNS,     KC_TRNS,     LGUI(KC_D),  LGUI(KC_F),  LGUI(KC_G),  LGUI(KC_H),  LGUI(KC_J),  LGUI(KC_K),     LGUI(KC_L),    LGUI(KC_SCLN),  LGUI(KC_QUOT),  KC_FN0,         \
 | 
			
		||||
  KC_LSFT,        LGUI(KC_Z),  LGUI(KC_X),  LGUI(KC_C),  LGUI(KC_V),  LGUI(KC_B),  LGUI(KC_N),  LGUI(KC_M),  LGUI(KC_COMM),  LGUI(KC_DOT),  LGUI(KC_SLSH),  KC_RSFT,        KC_TRNS,        \
 | 
			
		||||
      KC_LALT, KC_LGUI, LGUI(KC_SPC),               KC_LGUI, KC_RALT),
 | 
			
		||||
        LGUI(KC_ESC), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV),
 | 
			
		||||
        LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC),
 | 
			
		||||
        LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0,
 | 
			
		||||
        KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS,
 | 
			
		||||
        KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer LALT: All keys with RALT modifier
 | 
			
		||||
     |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---|
 | 
			
		||||
| 
						 | 
				
			
			@ -129,13 +124,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+-------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [RALTLEV] = KEYMAP(  // Right ALT layer  by KC_L
 | 
			
		||||
    [RALTLEV] = LAYOUT( // Right ALT layer  by KC_L
 | 
			
		||||
 | 
			
		||||
  RALT(KC_ESC),   RALT(KC_1),  RALT(KC_2),  RALT(KC_3),  RALT(KC_4),  RALT(KC_5),  RALT(KC_6),  RALT(KC_7),  RALT(KC_8),     RALT(KC_9),    RALT(KC_0),     RALT(KC_MINS),  RALT(KC_EQL),   RALT(KC_BSLS),  RALT(KC_GRV),  \
 | 
			
		||||
  RALT(KC_TAB),   RALT(KC_Q),  RALT(KC_W),  RALT(KC_E),  RALT(KC_R),  RALT(KC_T),  RALT(KC_Y),  RALT(KC_U),  RALT(KC_I),     RALT(KC_O),    RALT(KC_P),     RALT(KC_LBRC),  RALT(KC_RBRC),  RALT(KC_BSPC),  \
 | 
			
		||||
  RALT(KC_LCTL),  RALT(KC_A),  RALT(KC_S),  RALT(KC_D),  RALT(KC_F),  RALT(KC_G),  RALT(KC_H),  RALT(KC_J),  RALT(KC_K),     KC_TRNS,       KC_TRNS,        RALT(KC_QUOT),  KC_FN0,         \
 | 
			
		||||
  RALT(KC_LSFT),  RALT(KC_Z),  RALT(KC_X),  RALT(KC_C),  RALT(KC_V),  RALT(KC_B),  RALT(KC_N),  RALT(KC_M),  RALT(KC_COMM),  RALT(KC_DOT),  RALT(KC_SLSH),  RALT(KC_RSFT),  KC_TRNS,        \
 | 
			
		||||
      KC_LALT, KC_LGUI, RALT(KC_SPC),               KC_RGUI, KC_RALT),
 | 
			
		||||
        RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV),
 | 
			
		||||
        RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC),
 | 
			
		||||
        RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0,
 | 
			
		||||
        RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS,
 | 
			
		||||
        KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer LALT: All keys with LALT modifier
 | 
			
		||||
     |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---|
 | 
			
		||||
| 
						 | 
				
			
			@ -153,14 +148,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+-------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [LALTLEV] = KEYMAP(  // Right ALT layer  by KC_L
 | 
			
		||||
 | 
			
		||||
  LALT(KC_ESC),   LALT(KC_1),  LALT(KC_2),  LALT(KC_3),  LALT(KC_4),  LALT(KC_5),  LALT(KC_6),  LALT(KC_7),  LALT(KC_8),     LALT(KC_9),    LALT(KC_0),     LALT(KC_MINS),  LALT(KC_EQL),   LALT(KC_BSLS),  LALT(KC_GRV),  \
 | 
			
		||||
  LALT(KC_TAB),   LALT(KC_Q),  LALT(KC_W),  LALT(KC_E),  LALT(KC_R),  LALT(KC_T),  LALT(KC_Y),  LALT(KC_U),  LALT(KC_I),     LALT(KC_O),    LALT(KC_P),     LALT(KC_LBRC),  LALT(KC_RBRC),  LALT(KC_BSPC),  \
 | 
			
		||||
  LALT(KC_LCTL),  KC_TRNS,     KC_TRNS,     LALT(KC_D),  LALT(KC_F),  LALT(KC_G),  LALT(KC_H),  LALT(KC_J),  LALT(KC_K),     LALT(KC_L),    LALT(KC_SCLN),  LALT(KC_QUOT),  KC_FN0,         \
 | 
			
		||||
  KC_LSFT,        LALT(KC_Z),  LALT(KC_X),  LALT(KC_C),  LALT(KC_V),  LALT(KC_B),  LALT(KC_N),  LALT(KC_M),  LALT(KC_COMM),  LALT(KC_DOT),  LALT(KC_SLSH),  KC_RSFT,        KC_TRNS,        \
 | 
			
		||||
      KC_LALT, KC_LGUI, LALT(KC_SPC),               KC_LGUI, KC_RALT),
 | 
			
		||||
    [LALTLEV] = LAYOUT( // Right ALT layer  by KC_L
 | 
			
		||||
 | 
			
		||||
        LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV),
 | 
			
		||||
        LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC),
 | 
			
		||||
        LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0,
 | 
			
		||||
        KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS,
 | 
			
		||||
        KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer WIN: Win layer
 | 
			
		||||
     |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---|
 | 
			
		||||
| 
						 | 
				
			
			@ -178,31 +172,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                 |------+------+-------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [WIN] = KEYMAP(  // BASE level with swapped GUI/ALT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  KC_ESC,   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,  LT(LGUILEV,KC_A),  LT(LALTLEV,KC_S),  KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,     LT(RALTLEV,KC_L),  LT(RGUILEV,KC_SCLN),  KC_QUOT,  KC_FN0,    \
 | 
			
		||||
  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(HHKB),  \
 | 
			
		||||
                 KC_RGUI, KC_RALT, KC_SPC,                KC_RALT, KC_RGUI)};
 | 
			
		||||
    [WIN] = LAYOUT( // BASE level with swapped GUI/ALT
 | 
			
		||||
 | 
			
		||||
        KC_ESC, 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, LT(LGUILEV, KC_A), LT(LALTLEV, KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV, KC_L), LT(RGUILEV, KC_SCLN), KC_QUOT, KC_FN0,
 | 
			
		||||
        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(HHKB),
 | 
			
		||||
        KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
    [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT)      // RControl with tap Enter*
 | 
			
		||||
    [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter*
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
/*  -*-  eval: (turn-on-orgtbl); -*-
 | 
			
		||||
 * default HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define BASE 0
 | 
			
		||||
#define HHKB 1
 | 
			
		||||
| 
						 | 
				
			
			@ -10,10 +10,11 @@
 | 
			
		|||
#define CTL_ESC CTL_T(KC_ESC)
 | 
			
		||||
#define MACSLEEP LCTL(LSFT(KC_POWER))
 | 
			
		||||
 | 
			
		||||
enum hhkb_keycodes {
 | 
			
		||||
  QWERTY = SAFE_RANGE,
 | 
			
		||||
  DYNKEY,
 | 
			
		||||
  DYNAMIC_MACRO_RANGE,
 | 
			
		||||
enum hhkb_keycodes
 | 
			
		||||
{
 | 
			
		||||
    QWERTY = SAFE_RANGE,
 | 
			
		||||
    DYNKEY,
 | 
			
		||||
    DYNAMIC_MACRO_RANGE,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#include "dynamic_macro.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -36,14 +37,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
            |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [BASE] = KEYMAP(  //  default layer
 | 
			
		||||
  KC_GRV,   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_DEL, \
 | 
			
		||||
  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,          \
 | 
			
		||||
  CTL_ESC,  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,  SFT_T(KC_ENT),  TT(FUNK),                    \
 | 
			
		||||
                    KC_LALT,  KC_LGUI,  /*        */ KC_SPC,      MO(DYN),  KC_RALT),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [BASE] = LAYOUT( //  default layer
 | 
			
		||||
        KC_GRV, 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_DEL,
 | 
			
		||||
        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,
 | 
			
		||||
        CTL_ESC, 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, SFT_T(KC_ENT), TT(FUNK),
 | 
			
		||||
        KC_LALT, KC_LGUI, /*        */ KC_SPC, MO(DYN), KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer HHKB: HHKB mode (HHKB Fn)
 | 
			
		||||
      |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  [HHKB] = KEYMAP(
 | 
			
		||||
  [HHKB] = LAYOUT(
 | 
			
		||||
  KC_PWR,   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_INS,   KC_DEL, \
 | 
			
		||||
  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,                    \
 | 
			
		||||
| 
						 | 
				
			
			@ -70,20 +69,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                     KC_TRNS, KC_TRNS,           KC_TRNS,                KC_TRNS, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
  */
 | 
			
		||||
 [FUNK] = KEYMAP(
 | 
			
		||||
 KC_PWR,   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_INS,   KC_DEL, \
 | 
			
		||||
 KC_CAPS,  KC_TRNS,  KC_UP,  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_LEFT,  KC_DOWN,  KC_RGHT,  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),
 | 
			
		||||
[DYN] = KEYMAP(
 | 
			
		||||
KC_TRNS,  DYN_REC_START1,  DYN_REC_START2,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  DYN_MACRO_PLAY1,   DYN_MACRO_PLAY2, \
 | 
			
		||||
KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_PGUP,  KC_TRNS,  KC_TRNS,          \
 | 
			
		||||
KC_TRNS,  KC_VOLD,  KC_VOLU,  KC_MUTE,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  MACSLEEP,  KC_HOME,  KC_END ,  KC_TRNS,                    \
 | 
			
		||||
KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_PGDN,  KC_TRNS,  KC_TRNS,                    \
 | 
			
		||||
                   KC_TRNS, KC_TRNS,           DYN_REC_STOP,                KC_TRNS, KC_TRNS)
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    [FUNK] = LAYOUT(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        KC_CAPS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RGHT, 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),
 | 
			
		||||
    [DYN] = LAYOUT(
 | 
			
		||||
        KC_TRNS, DYN_REC_START1, DYN_REC_START2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MACSLEEP, KC_HOME, KC_END, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, DYN_REC_STOP, KC_TRNS, KC_TRNS)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -91,24 +88,30 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  uint16_t macro_kc = (keycode == MO(DYN) ? DYN_REC_STOP : keycode);
 | 
			
		||||
  if (!process_record_dynamic_macro(macro_kc, record)) {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
{
 | 
			
		||||
    uint16_t macro_kc = (keycode == MO(DYN) ? DYN_REC_STOP : keycode);
 | 
			
		||||
    if (!process_record_dynamic_macro(macro_kc, record))
 | 
			
		||||
    {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return true;
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,21 +1,20 @@
 | 
			
		|||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
  ZER,
 | 
			
		||||
  HDN,
 | 
			
		||||
  OSY
 | 
			
		||||
enum
 | 
			
		||||
{
 | 
			
		||||
    ZER,
 | 
			
		||||
    HDN,
 | 
			
		||||
    OSY
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define CTL_ESC CTL_T(KC_ESC)
 | 
			
		||||
#define SFT_BSP SFT_T(KC_BSPC)
 | 
			
		||||
 | 
			
		||||
#define SCRNS3 LGUI(LCTL(LSFT(KC_3)))
 | 
			
		||||
#define SCRNS4 LGUI(LCTL(LSFT(KC_4)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* hhkb jp ~ layout
 | 
			
		||||
 * ,-----------------------------------------------------------.
 | 
			
		||||
 * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9| 10|  -|  =|Yen|Bsp|
 | 
			
		||||
| 
						 | 
				
			
			@ -31,33 +30,30 @@ enum {
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
  [ZER] = KEYMAP_JP(
 | 
			
		||||
    KC_ESC,   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_INS,  KC_BSPC,
 | 
			
		||||
    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,
 | 
			
		||||
    CTL_ESC,  KC_A,    KC_S,    KC_D,    KC_F,     KC_G,    KC_H,    KC_J,     KC_K,    KC_L, KC_SCLN, KC_QUOT,  KC_GRV, 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_BSLS,   KC_UP, KC_RSFT,
 | 
			
		||||
    MO(HDN),  KC_LCTL, KC_LALT, KC_LGUI, MO(HDN),      KC_SPC,    SFT_BSP,  MO(HDN), MO(OSY),   KC_NO, KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
  ),
 | 
			
		||||
    [ZER] = LAYOUT_JP(
 | 
			
		||||
        KC_ESC, 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_INS, KC_BSPC,
 | 
			
		||||
        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,
 | 
			
		||||
        CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRV, 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_BSLS, KC_UP, KC_RSFT,
 | 
			
		||||
        MO(HDN), KC_LCTL, KC_LALT, KC_LGUI, MO(HDN), KC_SPC, SFT_BSP, MO(HDN), MO(OSY), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT),
 | 
			
		||||
 | 
			
		||||
  [HDN] = KEYMAP_JP(
 | 
			
		||||
    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_DEL,
 | 
			
		||||
    _______, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______,
 | 
			
		||||
    _______, KC_TILD,  KC_GRV, KC_BSLS, KC_PIPE, KC_MINS, KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT, KC_TILD,  KC_GRV, _______, _______,
 | 
			
		||||
    _______, KC_VOLD, KC_VOLU, KC_MUTE,  KC_PWR, _______, _______,  KC_ENT, _______, _______, _______, _______, KC_PGUP, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______,     KC_UNDS     ,  KC_DEL, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
 | 
			
		||||
  ),
 | 
			
		||||
    [HDN] = LAYOUT_JP(
 | 
			
		||||
        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_DEL,
 | 
			
		||||
        _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______,
 | 
			
		||||
        _______, KC_TILD, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TILD, KC_GRV, _______, _______,
 | 
			
		||||
        _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, _______, KC_ENT, _______, _______, _______, _______, KC_PGUP, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, KC_UNDS, KC_DEL, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
 | 
			
		||||
 | 
			
		||||
  [OSY] = KEYMAP_JP(
 | 
			
		||||
    _______, _______, _______,  SCRNS3,  SCRNS4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______,      _______    , _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
  )
 | 
			
		||||
};
 | 
			
		||||
    [OSY] = LAYOUT_JP(
 | 
			
		||||
        _______, _______, _______, SCRNS3, SCRNS4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) {
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,58 +1,54 @@
 | 
			
		|||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define _______ KC_TRNS
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
  DVOR,
 | 
			
		||||
  QWER,
 | 
			
		||||
  NEW_CMD,
 | 
			
		||||
  SYMB,
 | 
			
		||||
  FUNC
 | 
			
		||||
enum
 | 
			
		||||
{
 | 
			
		||||
    DVOR,
 | 
			
		||||
    QWER,
 | 
			
		||||
    NEW_CMD,
 | 
			
		||||
    SYMB,
 | 
			
		||||
    FUNC
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
  [DVOR] = KEYMAP_JP(
 | 
			
		||||
    KC_ESC,   KC_1,    KC_2,    KC_3,    KC_4,     KC_5,    KC_6,    KC_7,     KC_8,    KC_9,    KC_0, KC_LBRC,  KC_RBRC, KC_JYEN,  KC_BSPC,
 | 
			
		||||
    KC_TAB,   KC_QUOT, KC_COMM, KC_DOT,  KC_P,     KC_Y,    KC_F,    KC_G,     KC_C,    KC_R,   KC_L, KC_SLSH, KC_EQL,
 | 
			
		||||
    KC_LCTL,  KC_A,    KC_O,    KC_E,    KC_U,     KC_I,    KC_D,    KC_H,     KC_T,    KC_N,   KC_S, KC_MINS, KC_BSLS, KC_ENT,
 | 
			
		||||
    KC_LSFT,  KC_SCLN, KC_Q,    KC_J,    KC_K,     KC_X,    KC_B,    KC_M,     KC_W,    KC_V,   KC_Z,   KC_RO,  KC_UP, KC_RSFT,
 | 
			
		||||
    MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD),   MO(SYMB),    MT(MOD_LSFT, KC_SPC),    MO(SYMB),  KC_TAB, KC_RGUI,   TG(QWER), KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
  ),
 | 
			
		||||
  [QWER] = KEYMAP_JP(
 | 
			
		||||
    KC_ESC,   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_JYEN,  KC_BSPC,
 | 
			
		||||
    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_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,     KC_G,    KC_H,    KC_J,     KC_K,    KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RO, KC_UP, KC_RSFT,
 | 
			
		||||
    MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD),    MO(SYMB),    MT(MOD_LSFT, KC_SPC),    MO(SYMB),  KC_TAB, KC_RGUI,   _______, KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
  ),
 | 
			
		||||
    [DVOR] = LAYOUT_JP(
 | 
			
		||||
        KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_JYEN, KC_BSPC,
 | 
			
		||||
        KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL,
 | 
			
		||||
        KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_BSLS, KC_ENT,
 | 
			
		||||
        KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RO, KC_UP, KC_RSFT,
 | 
			
		||||
        MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, TG(QWER), KC_LEFT, KC_DOWN, KC_RGHT),
 | 
			
		||||
    [QWER] = LAYOUT_JP(
 | 
			
		||||
        KC_ESC, 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_JYEN, KC_BSPC,
 | 
			
		||||
        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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_RO, KC_UP, KC_RSFT,
 | 
			
		||||
        MO(FUNC), KC_ZKHK, KC_LALT, MO(NEW_CMD), MO(SYMB), MT(MOD_LSFT, KC_SPC), MO(SYMB), KC_TAB, KC_RGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT),
 | 
			
		||||
 | 
			
		||||
  [NEW_CMD] = KEYMAP_JP(
 | 
			
		||||
    _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4),  LGUI(KC_5), LGUI(KC_6), LGUI(KC_7),  LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), _______, _______, _______, LGUI(KC_BSPC),
 | 
			
		||||
    _______,  LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R),  LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U),  LGUI(KC_I), LGUI(KC_O),  LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC),
 | 
			
		||||
    _______,  LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F),  LGUI(KC_G), LGUI(KC_H), LGUI(KC_J),  LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______,
 | 
			
		||||
    LGUI(KC_LSFT),  LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B),  LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM),  LGUI(KC_DOT),  LGUI(KC_SLSH),  _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______,     LGUI(KC_SPC), _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT)
 | 
			
		||||
  ),
 | 
			
		||||
    [NEW_CMD] = LAYOUT_JP(
 | 
			
		||||
        _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), _______, _______, _______, LGUI(KC_BSPC),
 | 
			
		||||
        _______, LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC),
 | 
			
		||||
        _______, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), _______, _______, _______, _______,
 | 
			
		||||
        LGUI(KC_LSFT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, LGUI(KC_SPC), _______, _______, _______, _______, LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RGHT)),
 | 
			
		||||
 | 
			
		||||
  [SYMB] = KEYMAP_JP(
 | 
			
		||||
    _______,    _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,  _______,  _______,  _______,  _______,  _______,
 | 
			
		||||
    _______, _______,   _______,   KC_LBRC,   KC_RBRC,   _______,   _______,   LSFT(KC_LBRC),   LSFT(KC_RBRC),   _______,  _______,_______,  _______,
 | 
			
		||||
    _______, LSFT(KC_1),LSFT(KC_2),LSFT(KC_3),LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______,  _______, _______, _______, _______,  _______, _______, _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
  ),
 | 
			
		||||
    [SYMB] = LAYOUT_JP(
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, LSFT(KC_LBRC), LSFT(KC_RBRC), _______, _______, _______, _______,
 | 
			
		||||
        _______, LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
 | 
			
		||||
 | 
			
		||||
  [FUNC] = KEYMAP_JP(
 | 
			
		||||
    KC_PWR,    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_INS,  KC_DEL,
 | 
			
		||||
    KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,   KC_UP, _______,
 | 
			
		||||
    _______, KC_VOLD, KC_VOLU, KC_MUTE,  KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS,  KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______, _______,     _______     , _______, _______, _______, _______, _______, _______, _______
 | 
			
		||||
  )
 | 
			
		||||
};
 | 
			
		||||
    [FUNC] = LAYOUT_JP(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______,
 | 
			
		||||
        _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)};
 | 
			
		||||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) {
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,12 @@
 | 
			
		|||
/*
 | 
			
		||||
 * HHKB Pro 2 US Layout for shela
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include "keymap_jis2us.h"
 | 
			
		||||
#include "action_pseudo_lut.h"
 | 
			
		||||
 | 
			
		||||
enum keymap_layout {
 | 
			
		||||
enum keymap_layout
 | 
			
		||||
{
 | 
			
		||||
    BASE = 0,
 | 
			
		||||
    PSEUDO_US,
 | 
			
		||||
    DVORAK,
 | 
			
		||||
| 
						 | 
				
			
			@ -31,11 +32,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *           `-----------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [BASE] =
 | 
			
		||||
        KEYMAP(KC_ESC, 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_GRV, KC_BSPC, \
 | 
			
		||||
               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_BSLS, \
 | 
			
		||||
               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, \
 | 
			
		||||
         OSM(MOD_LSFT),KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_FN0, \
 | 
			
		||||
                               KC_LALT,KC_LGUI,                KC_FN2,                 KC_RGUI,KC_RALT),
 | 
			
		||||
        LAYOUT(KC_ESC, 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_GRV, KC_BSPC,
 | 
			
		||||
               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_BSLS,
 | 
			
		||||
               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,
 | 
			
		||||
               OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_FN0,
 | 
			
		||||
               KC_LALT, KC_LGUI, KC_FN2, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer 1: Pseudo US Layout Layer
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -51,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *           `-----------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [PSEUDO_US] =
 | 
			
		||||
        KEYMAP(KC_ESC, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_BSPC, \
 | 
			
		||||
               KC_TAB, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, \
 | 
			
		||||
               KC_LCTL,KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_ENT, \
 | 
			
		||||
               KC_LSFT,KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_RSFT,KC_FN0, \
 | 
			
		||||
                               KC_LGUI,KC_FN3,                 KC_FN2,                 KC_FN4 ,KC_RGUI),
 | 
			
		||||
        LAYOUT(KC_ESC, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_BSPC,
 | 
			
		||||
               KC_TAB, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1,
 | 
			
		||||
               KC_LCTL, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_ENT,
 | 
			
		||||
               KC_LSFT, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_RSFT, KC_FN0,
 | 
			
		||||
               KC_LGUI, KC_FN3, KC_FN2, KC_FN4, KC_RGUI),
 | 
			
		||||
 | 
			
		||||
    /* Layer 2: Dvorak Layer
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -71,11 +72,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *           `-----------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [DVORAK] =
 | 
			
		||||
        KEYMAP(KC_ESC, KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_LBRC,KC_RBRC,KC_GRV, KC_BSPC, \
 | 
			
		||||
               KC_TAB, KC_QUOT,KC_COMM,KC_DOT, KC_P,   KC_Y,   KC_F,   KC_G,   KC_C,   KC_R,   KC_L,   KC_SLSH,KC_EQL, KC_BSLS, \
 | 
			
		||||
               KC_LCTL,KC_A,   KC_O,   KC_E,   KC_U,   KC_I,   KC_D,   KC_H,   KC_T,   KC_N,   KC_S,   KC_MINS,KC_ENT, \
 | 
			
		||||
               KC_LSFT,KC_SCLN,KC_Q,   KC_J,   KC_K,   KC_X,   KC_B,   KC_M,   KC_W,   KC_V,   KC_Z,   KC_RSFT,KC_FN0, \
 | 
			
		||||
                               KC_LALT,KC_LGUI,                KC_FN2,                 KC_RGUI,KC_RALT),
 | 
			
		||||
        LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC,
 | 
			
		||||
               KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS,
 | 
			
		||||
               KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT,
 | 
			
		||||
               KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_FN0,
 | 
			
		||||
               KC_LALT, KC_LGUI, KC_FN2, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer 3: Mouse layer
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -91,11 +92,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *           `-----------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [MOUSE] =
 | 
			
		||||
        KEYMAP(KC_ESC, 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_NO,  KC_TRNS, \
 | 
			
		||||
               KC_TRNS,KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,KC_NO,  KC_NO,  KC_NO,  KC_NO, \
 | 
			
		||||
               KC_TRNS,KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,KC_NO,  KC_NO,  KC_TRNS, \
 | 
			
		||||
               KC_TRNS,KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_BTN1,KC_BTN2,KC_BTN3,KC_NO,  KC_NO,  KC_TRNS,KC_FN0, \
 | 
			
		||||
                               KC_TRNS,KC_TRNS,                KC_BTN1,                KC_TRNS,KC_TRNS),
 | 
			
		||||
        LAYOUT(KC_ESC, 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_NO, KC_TRNS,
 | 
			
		||||
               KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_NO, KC_NO, KC_NO, KC_NO,
 | 
			
		||||
               KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, KC_NO, KC_TRNS,
 | 
			
		||||
               KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_BTN2, KC_BTN3, KC_NO, KC_NO, KC_TRNS, KC_FN0,
 | 
			
		||||
               KC_TRNS, KC_TRNS, KC_BTN1, KC_TRNS, KC_TRNS),
 | 
			
		||||
 | 
			
		||||
    /* Layer 4: Tenkey layer
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -111,11 +112,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *           `-----------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [TENKEY] =
 | 
			
		||||
        KEYMAP(KC_ESC, KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_PSLS,KC_PAST,KC_PMNS,KC_NO,  KC_BSPC, \
 | 
			
		||||
               KC_TRNS,KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_KP_7,KC_KP_8,KC_KP_9,KC_PPLS,KC_NO, \
 | 
			
		||||
               KC_TRNS,KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_KP_4,KC_KP_5,KC_KP_6,KC_PENT, \
 | 
			
		||||
               KC_TRNS,KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_KP_1,KC_KP_2,KC_KP_3,KC_PPLS,KC_FN0, \
 | 
			
		||||
                               KC_TRNS,KC_TRNS,                KC_FN2,                 KC_KP_0,KC_PDOT),
 | 
			
		||||
        LAYOUT(KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_NO, KC_BSPC,
 | 
			
		||||
               KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, KC_NO,
 | 
			
		||||
               KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_PENT,
 | 
			
		||||
               KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, KC_FN0,
 | 
			
		||||
               KC_TRNS, KC_TRNS, KC_FN2, KC_KP_0, KC_PDOT),
 | 
			
		||||
 | 
			
		||||
    /* Layer 5: HHKB mode (HHKB Fn)
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -131,11 +132,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *           `-----------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [HHKB] =
 | 
			
		||||
        KEYMAP(KC_PWR, 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_INS, KC_DEL, \
 | 
			
		||||
               KC_CAPS,KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, 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),
 | 
			
		||||
        LAYOUT(KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
               KC_CAPS, KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, 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),
 | 
			
		||||
 | 
			
		||||
    /* Layer 6: SpaceFN
 | 
			
		||||
     * ,-----------------------------------------------------------------------------------------.
 | 
			
		||||
| 
						 | 
				
			
			@ -151,26 +152,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
     *           `-----------------------------------------------------------------'
 | 
			
		||||
     */
 | 
			
		||||
    [SPACE_FN] =
 | 
			
		||||
        KEYMAP(KC_TRNS,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_NO,  KC_DEL, \
 | 
			
		||||
               KC_TRNS,KC_HOME,KC_UP,  KC_END, KC_NO,  KC_NO,  KC_NO,  KC_HOME,KC_END, KC_NO,  KC_PSCR,KC_SLCK,KC_PAUS,KC_INS, \
 | 
			
		||||
               KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_PGUP,KC_NO,  KC_LEFT,KC_DOWN,KC_UP,  KC_RGHT,KC_NO,  KC_NO,  KC_TRNS, \
 | 
			
		||||
               KC_TRNS,KC_NO,  KC_NO,  KC_PGDN,KC_NO,  KC_SPC, KC_NO,  KC_PGDN,KC_PGUP,KC_NO,  KC_NO,  KC_TRNS,KC_NO, \
 | 
			
		||||
                               KC_TRNS,KC_TRNS,                KC_TRNS,                KC_TRNS,KC_TRNS),
 | 
			
		||||
        LAYOUT(KC_TRNS, 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_NO, KC_DEL,
 | 
			
		||||
               KC_TRNS, KC_HOME, KC_UP, KC_END, KC_NO, KC_NO, KC_NO, KC_HOME, KC_END, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS,
 | 
			
		||||
               KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_TRNS,
 | 
			
		||||
               KC_TRNS, KC_NO, KC_NO, KC_PGDN, KC_NO, KC_SPC, KC_NO, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_TRNS, KC_NO,
 | 
			
		||||
               KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * user defined action function
 | 
			
		||||
 */
 | 
			
		||||
enum function_id {
 | 
			
		||||
enum function_id
 | 
			
		||||
{
 | 
			
		||||
    PSEUDO_US_FUNCTION,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
			
		||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    switch (id) {
 | 
			
		||||
        case PSEUDO_US_FUNCTION:
 | 
			
		||||
            action_pseudo_lut(record, BASE, keymap_jis2us);
 | 
			
		||||
            break;
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case PSEUDO_US_FUNCTION:
 | 
			
		||||
        action_pseudo_lut(record, BASE, keymap_jis2us);
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
#ifndef KEYMAP_JIS2US_H
 | 
			
		||||
#define KEYMAP_JIS2US_H
 | 
			
		||||
#ifndef LAYOUT_JIS2US_H
 | 
			
		||||
#define LAYOUT_JIS2US_H
 | 
			
		||||
 | 
			
		||||
/* keymap for convert from JIS to US */
 | 
			
		||||
const uint16_t PROGMEM keymap_jis2us[][2] = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +1,19 @@
 | 
			
		|||
/*  -*-  eval: (turn-on-orgtbl); -*-
 | 
			
		||||
 * default HHKB Layout
 | 
			
		||||
 */
 | 
			
		||||
#include "hhkb.h"
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#define _QWERTY 0
 | 
			
		||||
#define _COLEMAK 1
 | 
			
		||||
#define _DVORAK 2
 | 
			
		||||
#define _HHKB 3
 | 
			
		||||
 | 
			
		||||
enum planck_keycodes {
 | 
			
		||||
  QWERTY = SAFE_RANGE,
 | 
			
		||||
  COLEMAK,
 | 
			
		||||
  DVORAK,
 | 
			
		||||
  HHKB
 | 
			
		||||
enum planck_keycodes
 | 
			
		||||
{
 | 
			
		||||
    QWERTY = SAFE_RANGE,
 | 
			
		||||
    COLEMAK,
 | 
			
		||||
    DVORAK,
 | 
			
		||||
    HHKB
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Fillers to make layering more clear
 | 
			
		||||
| 
						 | 
				
			
			@ -20,10 +21,10 @@ enum planck_keycodes {
 | 
			
		|||
#define XXXXXXX KC_NO
 | 
			
		||||
 | 
			
		||||
// Custom macros
 | 
			
		||||
#define CTL_ESC     CTL_T(KC_ESC)               // Tap for Esc, hold for Ctrl
 | 
			
		||||
#define SFT_ENT     SFT_T(KC_ENT)               // Tap for Enter, hold for Shift
 | 
			
		||||
#define HPR_TAB     ALL_T(KC_TAB)               // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift)
 | 
			
		||||
#define MEH_GRV     MEH_T(KC_GRV)               // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift)
 | 
			
		||||
#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
 | 
			
		||||
#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
 | 
			
		||||
#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift)
 | 
			
		||||
#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -43,14 +44,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
            |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [_QWERTY] = KEYMAP(  //  Qwerty layer
 | 
			
		||||
  KC_ESC,   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,  MEH_GRV, \
 | 
			
		||||
  HPR_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,           \
 | 
			
		||||
  CTL_ESC,  KC_A,  KC_S,  KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,     KC_L,    KC_SCLN,  KC_QUOT,  SFT_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(_HHKB),                    \
 | 
			
		||||
                    KC_LALT,  KC_LGUI,  /*        */ KC_SPC,      KC_RGUI,  KC_RALT),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [_QWERTY] = LAYOUT( //  Qwerty layer
 | 
			
		||||
        KC_ESC, 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, MEH_GRV,
 | 
			
		||||
        HPR_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,
 | 
			
		||||
        CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, SFT_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(_HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, /*        */ KC_SPC, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer COLEMAK: Colemak Layer
 | 
			
		||||
     |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
 | 
			
		||||
| 
						 | 
				
			
			@ -68,14 +67,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
            |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [_COLEMAK] = KEYMAP(  //  Colemak layer
 | 
			
		||||
  KC_ESC,   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,  MEH_GRV, \
 | 
			
		||||
  HPR_TAB,  KC_Q,  KC_W,  KC_F,  KC_P,  KC_G,  KC_J,  KC_L,  KC_U,     KC_Y,    KC_SCLN,  KC_LBRC,  KC_RBRC,   KC_BSPC,           \
 | 
			
		||||
  CTL_ESC,  KC_A,  KC_R,  KC_S,  KC_T,  KC_D,  KC_H,  KC_N,  KC_E,     KC_I,    KC_O,     KC_QUOT,  SFT_ENT,                      \
 | 
			
		||||
  KC_LSFT,  KC_Z,  KC_X,  KC_C,  KC_V,  KC_B,  KC_K,  KC_M,  KC_COMM,  KC_DOT,  KC_SLSH,  KC_RSFT,  MO(_HHKB),                    \
 | 
			
		||||
                    KC_LALT,  KC_LGUI,  /*        */ KC_SPC,      KC_RGUI,  KC_RALT),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [_COLEMAK] = LAYOUT( //  Colemak layer
 | 
			
		||||
        KC_ESC, 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, MEH_GRV,
 | 
			
		||||
        HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC,
 | 
			
		||||
        CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, SFT_ENT,
 | 
			
		||||
        KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, /*        */ KC_SPC, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer DVORAK: Dvorak Layer
 | 
			
		||||
     |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
 | 
			
		||||
| 
						 | 
				
			
			@ -93,14 +90,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
            |------+------+-----------------------+------+------|
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
  [_DVORAK] = KEYMAP(  //  Dvorak layer
 | 
			
		||||
  KC_ESC,   KC_1,     KC_2,     KC_3,    KC_4,  KC_5,  KC_6,  KC_7,  KC_8,  KC_9,  KC_0,  KC_LBRC,  KC_RBRC,  KC_BSLS,  MEH_GRV, \
 | 
			
		||||
  HPR_TAB,  KC_QUOT,  KC_COMM,  KC_DOT,  KC_P,  KC_Y,  KC_F,  KC_G,  KC_C,  KC_R,  KC_L,  KC_SLSH,  KC_EQL,   KC_BSPC,           \
 | 
			
		||||
  CTL_ESC,  KC_A,     KC_O,     KC_E,    KC_U,  KC_I,  KC_D,  KC_H,  KC_T,  KC_N,  KC_S,  KC_MINS,  SFT_ENT,                     \
 | 
			
		||||
  KC_LSFT,  KC_SCLN,  KC_Q,     KC_J,    KC_K,  KC_X,  KC_B,  KC_M,  KC_W,  KC_V,  KC_Z,  KC_RSFT,  MO(_HHKB),                   \
 | 
			
		||||
                    KC_LALT,  KC_LGUI,  /*        */ KC_SPC,      KC_RGUI,  KC_RALT),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [_DVORAK] = LAYOUT( //  Dvorak layer
 | 
			
		||||
        KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, MEH_GRV,
 | 
			
		||||
        HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC,
 | 
			
		||||
        CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, SFT_ENT,
 | 
			
		||||
        KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(_HHKB),
 | 
			
		||||
        KC_LALT, KC_LGUI, /*        */ KC_SPC, KC_RGUI, KC_RALT),
 | 
			
		||||
 | 
			
		||||
    /* Layer HHKB: HHKB mode (HHKB Fn)
 | 
			
		||||
      |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----|
 | 
			
		||||
| 
						 | 
				
			
			@ -119,13 +114,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
  [_HHKB] = KEYMAP(
 | 
			
		||||
  KC_PWR,   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_INS,   KC_DEL, \
 | 
			
		||||
  KC_CAPS,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  KC_PSCR,  KC_SLCK,  KC_PAUS,  KC_UP,    _______,  KC_BSPC,          \
 | 
			
		||||
  _______,  KC_VOLD,  KC_VOLU,  KC_MUTE,  _______,  _______,  KC_PAST,  KC_PSLS,  KC_HOME,  KC_PGUP,  KC_LEFT,  KC_RGHT,  KC_PENT,                    \
 | 
			
		||||
  _______,  _______,  QWERTY,   COLEMAK,  DVORAK,   _______,  KC_PPLS,  KC_PMNS,  KC_END,   KC_PGDN,  KC_DOWN,  _______,  _______,                    \
 | 
			
		||||
                      _______,  _______,            _______,            _______,  _______)};
 | 
			
		||||
 | 
			
		||||
    [_HHKB] = LAYOUT(
 | 
			
		||||
        KC_PWR, 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_INS, KC_DEL,
 | 
			
		||||
        KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_BSPC,
 | 
			
		||||
        _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
 | 
			
		||||
        _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______)};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM fn_actions[] = {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -133,44 +127,54 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		||||
{
 | 
			
		||||
  // MACRODOWN only works in this function
 | 
			
		||||
      switch(id) {
 | 
			
		||||
        case 0:
 | 
			
		||||
          if (record->event.pressed) {
 | 
			
		||||
    // MACRODOWN only works in this function
 | 
			
		||||
    switch (id)
 | 
			
		||||
    {
 | 
			
		||||
    case 0:
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            register_code(KC_RSFT);
 | 
			
		||||
          } else {
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            unregister_code(KC_RSFT);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return MACRO_NONE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void persistent_default_layer_set(uint16_t default_layer) {
 | 
			
		||||
  eeconfig_update_default_layer(default_layer);
 | 
			
		||||
  default_layer_set(default_layer);
 | 
			
		||||
void persistent_default_layer_set(uint16_t default_layer)
 | 
			
		||||
{
 | 
			
		||||
    eeconfig_update_default_layer(default_layer);
 | 
			
		||||
    default_layer_set(default_layer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
{
 | 
			
		||||
    switch (keycode)
 | 
			
		||||
    {
 | 
			
		||||
    case QWERTY:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        persistent_default_layer_set(1UL<<_QWERTY);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            persistent_default_layer_set(1UL << _QWERTY);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
    case COLEMAK:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        persistent_default_layer_set(1UL<<_COLEMAK);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            persistent_default_layer_set(1UL << _COLEMAK);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
    case DVORAK:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        persistent_default_layer_set(1UL<<_DVORAK);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
        if (record->event.pressed)
 | 
			
		||||
        {
 | 
			
		||||
            persistent_default_layer_set(1UL << _DVORAK);
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue