|
|
|
@ -0,0 +1,962 @@ |
|
|
|
|
#include "ergodox.h" |
|
|
|
|
#include "debug.h" |
|
|
|
|
#include "action_layer.h" |
|
|
|
|
#include "keymap_jp.h" |
|
|
|
|
|
|
|
|
|
static uint16_t start; |
|
|
|
|
|
|
|
|
|
#define BASE 0 // EN layer
|
|
|
|
|
#define JP 1 // Japanese
|
|
|
|
|
#define JPXON 2 // JP + Fn
|
|
|
|
|
#define JPKAZARI 3 // JP + KAZARI
|
|
|
|
|
#define JPTOPROW 4 // JP + TOPROW
|
|
|
|
|
#define JPTRKZ 5 // JP + TOPROW + KAZARI
|
|
|
|
|
#define NUM 6 // Numbers
|
|
|
|
|
|
|
|
|
|
#define CTLSHFT 1 |
|
|
|
|
#define CUTCOPY 2 |
|
|
|
|
|
|
|
|
|
//kana macro definitions start here
|
|
|
|
|
|
|
|
|
|
#define JPVU 4 |
|
|
|
|
#define JPNU 6 |
|
|
|
|
#define JPKO 7 |
|
|
|
|
#define JPSA 8 |
|
|
|
|
#define JPKE 9 |
|
|
|
|
#define JPHE 10 |
|
|
|
|
#define JPSHI 11 |
|
|
|
|
#define JPKA 12 |
|
|
|
|
#define JPKI 13 |
|
|
|
|
#define JPSU 14 |
|
|
|
|
#define JPSO 15 |
|
|
|
|
#define JPHI 16 |
|
|
|
|
#define JPCHI 17 |
|
|
|
|
#define JPFU 18 |
|
|
|
|
#define JPSE 19 |
|
|
|
|
#define JPTSU 20 |
|
|
|
|
#define JPKU 21 |
|
|
|
|
#define JPTE 22 |
|
|
|
|
#define JPTA 23 |
|
|
|
|
#define JPTO 24 |
|
|
|
|
#define JPHA 25 |
|
|
|
|
#define JPHO 26 |
|
|
|
|
#define JPXKE 27 |
|
|
|
|
#define JPXU 28 |
|
|
|
|
#define JPXKA 29 |
|
|
|
|
#define JPXA 30 |
|
|
|
|
#define JPXO 31 |
|
|
|
|
#define JPGO 32 |
|
|
|
|
#define JPZA 33 |
|
|
|
|
#define JPGE 34 |
|
|
|
|
#define JPBE 35 |
|
|
|
|
#define JPYU 36 |
|
|
|
|
#define JPJI 37 |
|
|
|
|
#define JPGA 38 |
|
|
|
|
#define JPGI 39 |
|
|
|
|
#define JPZU 40 |
|
|
|
|
#define JPZO 41 |
|
|
|
|
#define JPBI 42 |
|
|
|
|
#define JPDI 43 |
|
|
|
|
#define JPZE 44 |
|
|
|
|
#define JPDU 45 |
|
|
|
|
#define JPGU 46 |
|
|
|
|
#define JPYA 47 |
|
|
|
|
#define JPYO 48 |
|
|
|
|
#define JPDE 49 |
|
|
|
|
#define JPDA 50 |
|
|
|
|
#define JPDO 51 |
|
|
|
|
#define JPBA 52 |
|
|
|
|
#define JPBO 53 |
|
|
|
|
#define JPRI 54 |
|
|
|
|
#define JPRE 55 |
|
|
|
|
#define JPRA 56 |
|
|
|
|
#define JPNA 57 |
|
|
|
|
#define JPNO 58 |
|
|
|
|
#define JPMI 59 |
|
|
|
|
#define JPMU 60 |
|
|
|
|
#define JPME 61 |
|
|
|
|
#define JPNE 62 |
|
|
|
|
#define JPMA 63 |
|
|
|
|
#define JPXTU 64 |
|
|
|
|
#define JPWA 65 |
|
|
|
|
#define JPRU 66 |
|
|
|
|
#define JPWO 67 |
|
|
|
|
#define JPNI 68 |
|
|
|
|
#define JPNN 69 |
|
|
|
|
#define JPMO 70 |
|
|
|
|
#define JPRO 71 |
|
|
|
|
#define JPXE 72 |
|
|
|
|
#define JPXI 73 |
|
|
|
|
#define JPXYU 74 |
|
|
|
|
#define JPXYA 75 |
|
|
|
|
#define JPXYO 76 |
|
|
|
|
#define JPPE 77 |
|
|
|
|
#define JPPU 78 |
|
|
|
|
#define JPPI 79 |
|
|
|
|
#define JPPA 80 |
|
|
|
|
#define JPPO 81 |
|
|
|
|
#define JPBU 82 |
|
|
|
|
|
|
|
|
|
// kana macro definitions end here
|
|
|
|
|
|
|
|
|
|
#define SHIFT 86 |
|
|
|
|
#define KAZARI 87 |
|
|
|
|
#define JPFN 88 //shifts to JPXON layer
|
|
|
|
|
#define TOJPLOUT 89 |
|
|
|
|
#define TOENL 90 |
|
|
|
|
#define TOJPL 91 |
|
|
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
|
/* Keymap 0: Basic layer
|
|
|
|
|
* |
|
|
|
|
*
|
|
|
|
|
* ,----------------------------------------------------. ,--------------------------------------------------. |
|
|
|
|
* | En / 和 | | ^ | % | | |Selall| | Undo | | $ | @ | LT | UP | RT | |
|
|
|
|
* |----------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
|
|
|
|
* | Tab | Q | D | R | W | B | Cut | | PgUP | J | F | U | P | DN | \ | |
|
|
|
|
* |----------+------+------+------+------+------| Copy | | |------+------+------+------+------+--------| |
|
|
|
|
* | / | A | S | H | T | G |------| |------| Y | N | E | O | I | , | |
|
|
|
|
* |----------+------+------+------+------+------|Paste | | PgDN |------+------+------+------+------+--------| |
|
|
|
|
* | Ctl+Shft | Z | X | M | C | V | | | | . | L | K | ' | ? | tmux | |
|
|
|
|
* `----------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
|
|
|
|
* | LCtrl | LGui | Alt| _ | Esc | |MouseL|MouseR| - | ~ | Ctrl | |
|
|
|
|
* `------------------------------------' `----------------------------------' |
|
|
|
|
* ,-------------. ,-------------. |
|
|
|
|
* |MidMs | Del | | VolUp| Mute | |
|
|
|
|
* ,------|------|------| |------+--------+------. |
|
|
|
|
* | | | | | VolDn| | | |
|
|
|
|
* | Space| Shift|------| |------| Backsp |Enter | |
|
|
|
|
* | | | Num | | Esc | | | |
|
|
|
|
* `--------------------' `----------------------' |
|
|
|
|
* |
|
|
|
|
*
|
|
|
|
|
* tmux prefix set to C-b |
|
|
|
|
*
|
|
|
|
|
*/ |
|
|
|
|
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
|
|
|
|
|
// Otherwise, it needs KC_*
|
|
|
|
|
[BASE] = KEYMAP( // layer 0 : default
|
|
|
|
|
// left hand
|
|
|
|
|
M(TOJPLOUT), KC_NO, KC_EQL, LSFT(KC_5), KC_NO, KC_NO, LCTL(KC_A), |
|
|
|
|
KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, M(CUTCOPY), |
|
|
|
|
KC_SLSH, KC_A, KC_S, KC_H, KC_T, KC_G, |
|
|
|
|
M(CTLSHFT), KC_Z, KC_X, KC_M, KC_C, KC_V, LCTL(KC_V), |
|
|
|
|
KC_RCTL, KC_LGUI, KC_LALT,JP_UNDS,KC_LCTL, |
|
|
|
|
KC_BTN3, KC_DEL, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_SPC,KC_LSFT,F(1), |
|
|
|
|
// right hand
|
|
|
|
|
LCTL(KC_Z), KC_NO, LSFT(KC_4), JP_AT, KC_LEFT, KC_UP, KC_RIGHT, |
|
|
|
|
KC_PGUP, KC_J, KC_F, KC_U, KC_P, KC_DOWN, LSFT(KC_3), |
|
|
|
|
KC_Y, KC_N, KC_E, KC_O, KC_I, KC_COMMA, |
|
|
|
|
KC_PGDN, KC_DOT, KC_L, KC_K, LSFT(KC_7), KC_QUES, LCTL(KC_B), |
|
|
|
|
KC_BTN1, KC_BTN2,KC_MINS,JP_TILD, KC_RCTL, |
|
|
|
|
KC_VOLU, KC_MUTE, |
|
|
|
|
KC_VOLD, |
|
|
|
|
KC_SPC,KC_BSLS, KC_ENT |
|
|
|
|
), |
|
|
|
|
/* Keymap 1: Japanese
|
|
|
|
|
* |
|
|
|
|
* ,--------------------------------------------------. ,--------------------------------------------------. |
|
|
|
|
* | En / 和| | | | | | | | | | | | | | | |
|
|
|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
|
|
|
|
* | | nu | ko | sa | he | ke | | | | fu | se | tsu | ku | | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | to | shi | ka | ki | su |------| |------| a | ha | te | ta | u | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | mu | so | hi | chi | me | | | | | ma | ho | i | | | |
|
|
|
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
|
|
|
|
* | | | | | | | | | | | | |
|
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
|
* ,-------------. ,-------------. |
|
|
|
|
* | | | | | | |
|
|
|
|
* ,------|------|------| |------+------+------. |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* | shift| fn |------| |------| |kazari| |
|
|
|
|
* | | | Num | | | | | |
|
|
|
|
* `--------------------' `--------------------' |
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*/ |
|
|
|
|
[JP] = KEYMAP( |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, M(JPNU), M(JPKO), M(JPSA), M(JPHE), M(JPKE), KC_TRNS, |
|
|
|
|
KC_TRNS, M(JPTO), M(JPSHI), M(JPKA), M(JPKI), M(JPSU), |
|
|
|
|
KC_TRNS, M(JPMU), M(JPSO), M(JPHI), M(JPCHI), M(JPME), KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
|
KC_NO, |
|
|
|
|
M(SHIFT), M(JPFN), F(1), |
|
|
|
|
// right hand
|
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, M(JPFU), M(JPSE), M(JPTSU), M(JPKU), KC_TRNS, KC_TRNS, |
|
|
|
|
KC_A, M(JPHA), M(JPTE), M(JPTA), KC_U, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, M(JPMA), M(JPHO), KC_I, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
|
KC_TRNS, |
|
|
|
|
KC_TRNS,KC_TRNS,M(KAZARI) |
|
|
|
|
), |
|
|
|
|
/* Keymap 2: Japanese with Fn
|
|
|
|
|
* |
|
|
|
|
* ,--------------------------------------------------. ,--------------------------------------------------. |
|
|
|
|
* | | | | | | | | | | | | | | | | |
|
|
|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
|
|
|
|
* | | | xe | | | xke | | | | xya | | xtsu | xo | | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | | | xka | | |------| |------| xa | xyo | | | xu | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | | | | | | | | | | | | xi | | | |
|
|
|
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
|
|
|
|
* | | | | | | | | | | | | |
|
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
|
* ,-------------. ,-------------. |
|
|
|
|
* | | | | | | |
|
|
|
|
* ,------|------|------| |------+------+------. |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* | | |------| |------| | | |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* `--------------------' `--------------------' |
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*/ |
|
|
|
|
[JPXON] = KEYMAP( |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, M(JPXE), KC_NO, M(JPXKE), KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, M(JPXKA), KC_NO, KC_NO,
|
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_NO, KC_TRNS, KC_TRNS, |
|
|
|
|
// right hand
|
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, M(JPXYA), KC_NO, M(JPXTU), M(JPXO), KC_NO, KC_NO, |
|
|
|
|
M(JPXA), M(JPXYO), M(JPXYU), KC_NO, M(JPXU), KC_NO, |
|
|
|
|
KC_NO, KC_NO,KC_NO, KC_NO, M(JPXI), KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO |
|
|
|
|
), |
|
|
|
|
/* Keymap 3: Japanese with kazari
|
|
|
|
|
* |
|
|
|
|
* ,--------------------------------------------------. ,--------------------------------------------------. |
|
|
|
|
* | | | | | | | | | | | | | | | | |
|
|
|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
|
|
|
|
* | | | go | za | be | ge | | | | bu | ze | du | gu | | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | do | ji | ga | gi | zu |------| |------| | ba | de | da | vu | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | | zo | bi | di | | | | | | | bo | | | | |
|
|
|
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
|
|
|
|
* | | | | | | | | | | | | |
|
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
|
* ,-------------. ,-------------. |
|
|
|
|
* | | | | | | |
|
|
|
|
* ,------|------|------| |------+------+------. |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* | | |------| |------| | | |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* `--------------------' `--------------------' |
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*/ |
|
|
|
|
[JPKAZARI] = KEYMAP( |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, M(JPGO), M(JPZA), M(JPBE), M(JPGE), KC_NO, |
|
|
|
|
KC_NO, M(JPDO), M(JPJI), M(JPGA), M(JPGI), M(JPZU),
|
|
|
|
|
KC_NO, KC_NO, M(JPZO), M(JPBI), M(JPDI), KC_NO, KC_NO, |
|
|
|
|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
M(SHIFT), KC_NO, KC_TRNS, |
|
|
|
|
// right hand
|
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, M(JPBU), M(JPZE), M(JPDU), M(JPGU), KC_NO, KC_NO, |
|
|
|
|
KC_NO, M(JPBA), M(JPDE), M(JPDA), M(JPVU), KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, M(JPBO), KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_TRNS |
|
|
|
|
), |
|
|
|
|
/* Keymap 4: Japanese with Toprow
|
|
|
|
|
* |
|
|
|
|
* ,--------------------------------------------------. ,--------------------------------------------------. |
|
|
|
|
* | | | | | | | | | | | | | | | | |
|
|
|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
|
|
|
|
* | | | e | - | re | | | | | ya | ne | ru | o | | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | ra | ri | na | no | mi |------| |------| wa | yo | yu | ni | nn | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | | | | | | | | | | mo | ro | wo | | | |
|
|
|
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
|
|
|
|
* | | | | | | | | | | | | |
|
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
|
* ,-------------. ,-------------. |
|
|
|
|
* | | | | | | |
|
|
|
|
* ,------|------|------| |------+------+------. |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* | | |------| |------| | | |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* `--------------------' `--------------------' |
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*/ |
|
|
|
|
[JPTOPROW] = KEYMAP( |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_E, KC_MINS, M(JPRE), KC_NO, KC_NO, |
|
|
|
|
KC_NO, M(JPRA), M(JPRI), M(JPNA), M(JPNO), M(JPMI),
|
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_TRNS, KC_NO, KC_NO, |
|
|
|
|
// right hand
|
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, M(JPYA), M(JPNE), M(JPRU), KC_O, KC_NO, KC_NO, |
|
|
|
|
M(JPWA), M(JPYO), M(JPYU), M(JPNI), M(JPNN), KC_NO, |
|
|
|
|
KC_NO, KC_NO, M(JPMO), M(JPRO), M(JPWO), KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_NO, KC_NO, M(KAZARI) |
|
|
|
|
), |
|
|
|
|
|
|
|
|
|
/* Keymap 5: Japanese with Toprow and Kazari
|
|
|
|
|
* |
|
|
|
|
* ,--------------------------------------------------. ,--------------------------------------------------. |
|
|
|
|
* | | | | | | | | | | | | | | | | |
|
|
|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
|
|
|
|
* | | | | | pe | | | | | pu | | | | | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | | | | | |------| |------| | pa | | | | | |
|
|
|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
|
|
|
|
* | | | | pi | | | | | | | | po | | | | |
|
|
|
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
|
|
|
|
* | | | | | | | | | | | | |
|
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
|
* ,-------------. ,-------------. |
|
|
|
|
* | | | | | | |
|
|
|
|
* ,------|------|------| |------+------+------. |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* | | |------| |------| | | |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* `--------------------' `--------------------' |
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*/ |
|
|
|
|
[JPTRKZ] = KEYMAP( |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, M(JPPE),KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
|
|
|
|
KC_NO, KC_NO, KC_NO, M(JPPI), KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_TRNS, KC_NO, KC_NO, |
|
|
|
|
// right hand
|
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, M(JPPU), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, M(JPPA), KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, M(JPPO), KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_TRNS |
|
|
|
|
), |
|
|
|
|
/* Keymap 6: Number Layer
|
|
|
|
|
* |
|
|
|
|
* ,--------------------------------------------------. ,--------------------------------------------------. |
|
|
|
|
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | |
|
|
|
|
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
|
|
|
|
* | | | | " | [ | ] | | | | | % | 7 | 8 | 9 | | F12 | |
|
|
|
|
* |--------+------+------+------+------+------| ; | | |------+------+------+------+------+--------| |
|
|
|
|
* | | | / | + | { | } |------| |------| ! | 4 | 5 | 6 | 0 | , | |
|
|
|
|
* |--------+------+------+------+------+------| : | | & |------+------+------+------+------+--------| |
|
|
|
|
* | | | * | - | ( | ) | | | | . | 1 | 2 | 3 | ? | | |
|
|
|
|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
|
|
|
|
* | | | | | # | | < | = | > | | | |
|
|
|
|
* `----------------------------------' `----------------------------------' |
|
|
|
|
* ,-------------. ,-------------. |
|
|
|
|
* | | | | | | |
|
|
|
|
* ,------|------|------| |------+------+------. |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* | | |------| |------| Back | Ent | |
|
|
|
|
* | | | | | | | | |
|
|
|
|
* `--------------------' `--------------------' |
|
|
|
|
*/ |
|
|
|
|
// Numbers
|
|
|
|
|
[NUM] = KEYMAP( |
|
|
|
|
// left hand
|
|
|
|
|
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_NO, JP_DQT, KC_RBRACKET, KC_BSPC, KC_SCLN, |
|
|
|
|
KC_NO, KC_NO, KC_SLSH, JP_PLUS, LSFT(KC_RBRACKET), JP_RCBR,
|
|
|
|
|
KC_NO, KC_NO, JP_ASTR, KC_MINS, LSFT(KC_8), LSFT(KC_9), JP_COLN, |
|
|
|
|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_HASH, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_NO, KC_NO, KC_TRNS, |
|
|
|
|
// right hand
|
|
|
|
|
KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, |
|
|
|
|
LSFT(KC_JYEN), KC_PERC, KC_7, KC_8, KC_9, KC_NO, KC_F12, |
|
|
|
|
KC_EXLM, KC_4, KC_5, KC_6, KC_0, KC_COMM, |
|
|
|
|
LSFT(KC_6), KC_DOT, KC_1, KC_2, KC_3, KC_QUES, KC_NO, |
|
|
|
|
KC_LT,JP_EQL, KC_GT, KC_NO, KC_NO, |
|
|
|
|
KC_NO, KC_NO, |
|
|
|
|
KC_NO, |
|
|
|
|
KC_SPC, KC_BSLS, KC_DOT |
|
|
|
|
), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const uint16_t PROGMEM fn_actions[] = { |
|
|
|
|
[1] = ACTION_LAYER_MOMENTARY(NUM) // FN1 - Momentary Layer 6 (Numbers)
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
// MACRO only works in this function
|
|
|
|
|
switch(id) { |
|
|
|
|
case 0: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
register_code(KC_RSFT); |
|
|
|
|
} else { |
|
|
|
|
unregister_code(KC_RSFT); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case CTLSHFT: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( D(LSFT), D(LCTL), END); |
|
|
|
|
} else { |
|
|
|
|
return MACRO( U(LSFT), U(LCTL), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case CUTCOPY: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
start = timer_read(); |
|
|
|
|
} else { |
|
|
|
|
if (timer_elapsed(start) > 150) { |
|
|
|
|
return MACRO( D(LCTL), T(X), U(LCTL), END); |
|
|
|
|
} else { |
|
|
|
|
return MACRO( D(LCTL), T(C), U(LCTL), END); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
// kana macros start here
|
|
|
|
|
|
|
|
|
|
case JPVU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(V), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPNU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(N), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPKO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(K), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPSA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(S), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPKE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(K), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPHE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(H), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPSHI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(S), T(H), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPKA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(K), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPKI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(K), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPSU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(S), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPSO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(S), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPHI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(H), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPCHI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(C), T(H), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPFU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(F), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPSE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(S), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPTSU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(T), T(S), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPKU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(K), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPTE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(T), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPTA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(T), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPTO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(T), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPHA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(H), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPHO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(H), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXKE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(K), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXKA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(K), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPGO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(G), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPZA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(Z), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPGE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(G), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPBE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(B), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPYU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(Y), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPJI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(J), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPGA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(G), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPGI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(G), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPZU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(Z), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPZO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(Z), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPBI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(B), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPDI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(D), T(I), END); |
|
|
|
|
}
|
|
|
|
|
break; |
|
|
|
|
case JPZE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(Z), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPDU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(D), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPGU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(G), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPYA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(Y), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPYO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(Y), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPDE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(D), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPDA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(D), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPDO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(D), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPBA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(B), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPBO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(B), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPRI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(R), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPRE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(R), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPRA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(R), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPNA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(N), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPNO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(N), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPMI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(M), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPMU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(M), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPME: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(M), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPNE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(N), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPMA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(M), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXTU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(T), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPWA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(W), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPRU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(R), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPWO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(W), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPNI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(N), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPNN: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(N), T(N), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPMO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(M), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPRO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(R), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXYU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(Y), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXYA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(Y), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPXYO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(X), T(Y), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPPE: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(P), T(E), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPPU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(P), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPPI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(P), T(I), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPPA: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(P), T(A), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPPO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(P), T(O), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case JPBU: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
return MACRO( I(1), T(B), T(U), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
// kana macros end here
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
case SHIFT: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
start = timer_read(); |
|
|
|
|
if (layer_state == (1<<JPKAZARI)) { |
|
|
|
|
layer_state = (1<<JPTOPROW)| (1<<JPTRKZ); |
|
|
|
|
} else { |
|
|
|
|
layer_state = (1<<JPTOPROW);
|
|
|
|
|
}
|
|
|
|
|
} else { |
|
|
|
|
layer_state = (0<<JPTOPROW); |
|
|
|
|
clear_keyboard_but_mods(); |
|
|
|
|
if (timer_elapsed(start) < 100) { |
|
|
|
|
return MACRO( I(1), T(SPC), END); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case KAZARI: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
start = timer_read(); |
|
|
|
|
if (layer_state == (1<<JPTOPROW)) { |
|
|
|
|
layer_state = (1<<JPKAZARI)| (1<<JPTRKZ); |
|
|
|
|
} else { |
|
|
|
|
layer_state = (1<<JPKAZARI);
|
|
|
|
|
}
|
|
|
|
|
break; |
|
|
|
|
} else { |
|
|
|
|
layer_state = (0<<JPKAZARI); |
|
|
|
|
layer_state = (0<<JPTRKZ); |
|
|
|
|
if (timer_elapsed(start) < 100) { |
|
|
|
|
return MACRO( T(ENTER), END); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break;
|
|
|
|
|
case JPFN: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
start = timer_read(); |
|
|
|
|
layer_state = (1<<JPXON); |
|
|
|
|
} else { |
|
|
|
|
layer_state = (0<<JPXON); |
|
|
|
|
if (timer_elapsed(start) < 100) { |
|
|
|
|
return MACRO( T(F7), END); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case TOJPLOUT: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
if (default_layer_state == (1<<JP)) { |
|
|
|
|
default_layer_state = (0<<JP); |
|
|
|
|
} else { |
|
|
|
|
default_layer_state = (1<<JP); |
|
|
|
|
} |
|
|
|
|
return MACRO( T(ZKHK), END); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
/*
|
|
|
|
|
// TOJPL and TOENL switch keyboard language.
|
|
|
|
|
// The Ctrl+[] commands here load the appropriate ibus-anthy input engine via a WM shortcut
|
|
|
|
|
// The first key pressed in the new engine is missed, thus the space key
|
|
|
|
|
// TOJPLOUT works in the same way but is used for switching engines on external systems.
|
|
|
|
|
case TOJPL: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
default_layer_state = (1<<JP); |
|
|
|
|
return MACRO( D(LCTL), T(END), U(LCTL), END); |
|
|
|
|
//return MACRO( D(LCTL), T(END), U(LCTL), W(250), W(250), W(250), T(SPACE), END);
|
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case TOENL: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
default_layer_state = (1<<BASE); |
|
|
|
|
return MACRO( D(LCTL), T(HOME), U(LCTL), END); |
|
|
|
|
//return MACRO( D(LCTL), T(HOME), U(LCTL), W(250), W(250), W(250), T(SPACE), END);
|
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
*/ |
|
|
|
|
} |
|
|
|
|
return MACRO_NONE;
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// Runs just one time when the keyboard initializes.
|
|
|
|
|
void matrix_init_user(void) { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// Runs constantly in the background, in a loop.
|
|
|
|
|
void matrix_scan_user(void) { |
|
|
|
|
|
|
|
|
|
uint8_t layer = biton32(layer_state); |
|
|
|
|
uint8_t deflayer = biton32(default_layer_state); |
|
|
|
|
|
|
|
|
|
ergodox_board_led_off(); |
|
|
|
|
ergodox_right_led_1_off(); |
|
|
|
|
ergodox_right_led_2_off(); |
|
|
|
|
ergodox_right_led_3_off(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (layer) { |
|
|
|
|
case 0: |
|
|
|
|
//none
|
|
|
|
|
break; |
|
|
|
|
// case 1:
|
|
|
|
|
// ergodox_right_led_2_on();
|
|
|
|
|
// break;
|
|
|
|
|
case 6: |
|
|
|
|
ergodox_right_led_3_on(); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
switch (deflayer) { |
|
|
|
|
case 0: |
|
|
|
|
ergodox_right_led_1_off(); |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
ergodox_right_led_1_on(); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
}; |