@ -1,25 +1,29 @@
# include QMK_KEYBOARD_H
# define FN MO(L_FN)
# define FN_CAPS LT(L_FN, KC_CAPS)
# define FN_RCTL TD(TD_FN_RCTL) // Unused
# define RLALT TD(TD_RLALT) // Unused
# define DESKTOP TD(TD_DESKTOP)
# define DESKT_L LCTL(LGUI(KC_LEFT))
# define DESKT_R LCTL(LGUI(KC_RGHT))
# define TOP LCTL(KC_HOME)
# define BOTTOM LCTL(KC_END)
# define DSKTP_L LCTL(LGUI(KC_LEFT))
# define DSKTP_R LCTL(LGUI(KC_RGHT))
# define UC_COMM UC(0x002C)
# define UC_LPRN UC(0x0028)
# define UC_RPRN UC(0x0029)
# define UC_EQLS UC(0x003D)
# define UC_MULS UC(0x00D7)
# define UC_DIVS UC(0x00F7)
# define UC_MINS UC(0x2212)
# define FN MO(L_FN)
# define FN_CAPS LT(L_FN, KC_CAPS)
# define FN_FNLK TT(L_FN)
void matrix_init_user ( void ) {
# define DESKTOP TD(TD_DESKTOP)
# define FN_RCTL TD(TD_FN_RCTL)
# define RAL_LAL TD(TD_RAL_LAL)
# define RAL_RGU TD(TD_RAL_RGU)
# define RCT_RSF TD(TD_RCT_RSF)
# define COMMA UC(0x002C)
# define L_PAREN UC(0x0028)
# define R_PAREN UC(0x0029)
# define EQUALS UC(0x003D)
# define TIMES UC(0x00D7)
# define DIVIDE UC(0x00F7)
# define MINUS UC(0x2212)
void eeconfig_init_user ( void ) {
set_unicode_input_mode ( UC_WINC ) ;
}
@ -37,7 +41,9 @@ enum custom_keycodes {
bool process_record_user ( uint16_t keycode , keyrecord_t * record ) {
switch ( keycode ) {
case CLEAR :
if ( record - > event . pressed ) { SEND_STRING ( SS_LCTRL ( " a " ) SS_TAP ( X_DELETE ) ) ; }
if ( record - > event . pressed ) {
SEND_STRING ( SS_LCTRL ( " a " ) SS_TAP ( X_DELETE ) ) ;
}
return false ;
case NUMPAD :
@ -55,90 +61,142 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
enum tap_dance {
TD_FN_RCTL ,
TD_RLALT ,
TD_DESKTOP ,
} ;
struct {
bool fn_on ; // Layer state when tap dance started
bool started ;
} td_fn_rctrl_data ;
void td_fn_rctrl_each ( qk_tap_dance_state_t * state , void * user_data ) {
if ( ! td_fn_rctrl_data . started ) {
td_fn_rctrl_data . fn_on = IS_LAYER_ON ( L_FN ) ;
td_fn_rctrl_data . started = true ;
}
// Single tap → Fn, double tap → RCtrl, triple tap etc. → Fn+RCtrl
if ( state - > count = = 1 | | state - > count = = 3 ) {
layer_on ( L_FN ) ;
} else if ( state - > count = = 2 ) {
if ( ! td_fn_rctrl_data . fn_on ) {
layer_off ( L_FN ) ;
}
register_code ( KC_RCTL ) ;
}
}
void td_fn_rctrl_reset ( qk_tap_dance_state_t * state , void * user_data ) {
if ( ( state - > count = = 1 | | state - > count > 2 ) & & ! td_fn_rctrl_data . fn_on ) {
layer_off ( L_FN ) ;
}
if ( state - > count > = 2 ) {
unregister_code ( KC_RCTL ) ;
}
td_fn_rctrl_data . started = false ;
}
# define ACTION_TAP_DANCE_DOUBLE_MODS(mod1, mod2) { \
. fn = { td_double_mods_each , NULL , td_double_mods_reset } , \
. user_data = & ( qk_tap_dance_pair_t ) { mod1 , mod2 } , \
}
void td_fn_rctl_finished ( qk_tap_dance_state_t * state , void * user_data ) {
// Single tap → Fn, double tap → RCtrl, triple tap → Fn+RCtrl etc.
if ( state - > count & 1 ) { layer_on ( L_FN ) ; }
if ( state - > count & 2 ) { register_code ( KC_RCTL ) ; }
void td_double_mods_each ( qk_tap_dance_state_t * state , void * user_data ) {
qk_tap_dance_pair_t * mods = ( qk_tap_dance_pair_t * ) user_data ;
// Single tap → mod1, double tap → mod2, triple tap etc. → mod1+mod2
if ( state - > count = = 1 | | state - > count = = 3 ) {
register_code ( mods - > kc1 ) ;
} else if ( state - > count = = 2 ) {
unregister_code ( mods - > kc1 ) ;
register_code ( mods - > kc2 ) ;
}
// Prevent tap dance from sending kc1 and kc2 as weak mods
state - > weak_mods & = ~ ( MOD_BIT ( mods - > kc1 ) | MOD_BIT ( mods - > kc2 ) ) ;
}
void td_fn_rctl_reset ( qk_tap_dance_state_t * state , void * user_data ) {
if ( state - > count & 1 ) { layer_off ( L_FN ) ; }
if ( state - > count & 2 ) { unregister_code ( KC_RCTL ) ; }
void td_double_mods_reset ( qk_tap_dance_state_t * state , void * user_data ) {
qk_tap_dance_pair_t * mods = ( qk_tap_dance_pair_t * ) user_data ;
if ( state - > count = = 1 | | state - > count > 2 ) {
unregister_code ( mods - > kc1 ) ;
}
if ( state - > count > = 2 ) {
unregister_code ( mods - > kc2 ) ;
}
}
enum tap_dance {
TD_DESKTOP ,
TD_FN_RCTL ,
TD_RAL_LAL ,
TD_RAL_RGU ,
TD_RCT_RSF ,
} ;
qk_tap_dance_action_t tap_dance_actions [ ] = {
[ TD_FN_RCTL ] = ACTION_TAP_DANCE_FN_ADVANCED ( NULL , td_fn_rctl_finished , td_fn_rctl_reset ) ,
[ TD_RLALT ] = ACTION_TAP_DANCE_DOUBLE ( KC_RALT , KC_LALT ) ,
[ TD_DESKTOP ] = ACTION_TAP_DANCE_DOUBLE ( LCTL ( LGUI ( KC_D ) ) , LCTL ( LGUI ( KC_F4 ) ) ) , // Add/close virtual desktop
[ TD_FN_RCTL ] = ACTION_TAP_DANCE_FN_ADVANCED ( td_fn_rctrl_each , NULL , td_fn_rctrl_reset ) ,
[ TD_RAL_LAL ] = ACTION_TAP_DANCE_DOUBLE_MODS ( KC_RALT , KC_LALT ) ,
[ TD_RAL_RGU ] = ACTION_TAP_DANCE_DOUBLE_MODS ( KC_RALT , KC_RGUI ) ,
[ TD_RCT_RSF ] = ACTION_TAP_DANCE_DOUBLE_MODS ( KC_RCTL , KC_RSFT ) ,
} ;
const uint16_t keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
const uint16_t PROGMEM keymaps[ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
/* Base layer
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | PSc |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bspc | Del |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | FnCaps | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PgU |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | LShift | Z | X | C | V | B | N | M | , | . | / | RCtrl | ↑ | PgD |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | LCtl | LGui | LAlt | Space | RAlt | Fn | | ← | ↓ | → |
* `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* ┌ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┐
* │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ PSc │
* ├ ─ ─ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ Bspc │ Del │
* ├ ─ ─ ─ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ FnCaps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ PgU │
* ├ ─ ─ ─ ─ ─ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ─ ┬ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ CtlSft │ ↑ │ PgD │
* ├ ─ ─ ─ ─ ┬ ─ ─ ─ ┴ ┬ ─ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ┬ ┴ ─ ─ ─ ┼ ─ ─ ─ ┴ ┬ ─ ┬ ─ ─ ─ ┼ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ LCtl │ LGui │ LAlt │ Space │ AlGu │ FnLk │ │ ← │ ↓ │ → │
* └─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┘ └ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┘
*/
[ L_BASE ] = LAYOUT_truefox ( \
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_PSCR , \
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_DEL , \
FN_CAPS , 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_PGUP , \
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RCTL , KC_UP , KC_PGDN , \
KC_LCTL , KC_LGUI , KC_LALT , KC_SPC , KC_RALT, FN , KC_LEFT , KC_DOWN , KC_RGHT \
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , RCT_RSF , KC_UP , KC_PGDN , \
KC_LCTL , KC_LGUI , KC_LALT , KC_SPC , RAL_RGU, FN_FNLK , KC_LEFT , KC_DOWN , KC_RGHT \
) ,
/* Function layer
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Num | Scr | Pau |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | M4 | M2 | M ↑ | M1 | M3 | M5 | | | | Stp | Ply | Prv | Nxt | Clear | Ins |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | | M ← | M ↓ | M → | MW ↑ | | | | | | | | | Top |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | | MA0 | MA2 | MW ← | MW → | | | | VoD | VoU | Mut | App | PgU | Btm |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | | Dstp | Dst ← | MW ↓ | Dst → | | | Hom | PgD | End |
* `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* ┌ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┐
* │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ Num │ Scr │ Pau │
* ├ ─ ─ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ M4 │ M2 │ M ↑ │ M1 │ M3 │ M5 │ │ │ │ Stp │ Ply │ Prv │ Nxt │ Clear │ Ins │
* ├ ─ ─ ─ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ │ M ← │ M ↓ │ M → │ MW ↑ │ │ │ │ │ │ │ │ │ Top │
* ├ ─ ─ ─ ─ ─ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ─ ┬ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ │ MA0 │ MA2 │ MW ← │ MW → │ │ │ │ VoD │ VoU │ Mut │ App │ PgU │ Btm │
* ├ ─ ─ ─ ─ ┬ ─ ─ ─ ┴ ┬ ─ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ┬ ┴ ─ ─ ─ ┼ ─ ─ ─ ┴ ┬ ─ ┬ ─ ─ ─ ┼ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ │ Dstp │ Dst ← │ MW ↓ │ Dst → │ │ │ Hom │ PgD │ End │
* └─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┘ └ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┘
*/
[ L_FN ] = LAYOUT_truefox ( \
_______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , NUMPAD , KC_SLCK , KC_PAUS , \
KC_BTN4 , KC_BTN2 , KC_MS_U , KC_BTN1 , KC_BTN3 , KC_BTN5 , _______ , _______ , _______ , KC_MSTP , KC_MPLY , KC_MPRV , KC_MNXT , CLEAR , KC_INS , \
_______ , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_U , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , TOP , \
_______ , KC_ACL0 , KC_ACL2 , KC_WH_L , KC_WH_R , _______ , _______ , _______ , KC_VOLD , KC_VOLU , KC_MUTE , KC_APP , KC_PGUP , BOTTOM , \
_______ , DESKTOP , D E SKT_L, KC_WH_D , D E SKT_R, _______ , KC_HOME , KC_PGDN , KC_END \
_______ , DESKTOP , D SKTP _L, KC_WH_D , D SKTP _R, _______ , KC_HOME , KC_PGDN , KC_END \
) ,
/* Numpad layer
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Num | | | | | | | P7 | P8 | P9 | P - | − | = | Num | | |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | | | | | | | | P4 | P5 | P6 | P + | ( | ) | | |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | | | | | | | | P1 | P2 | P3 | P * | × | PEnter | |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | | | | | | | P0 | P0 | , | P . | P / | ÷ | | |
* | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
* | | | | | | | | | | |
* `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* ┌ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┐
* │ Num │ │ │ │ │ │ │ P7 │ P8 │ P9 │ P - │ − │ = │ Num │ │ │
* ├ ─ ─ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ │ │ │ │ │ │ │ P4 │ P5 │ P6 │ P + │ ( │ ) │ │ │
* ├ ─ ─ ─ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ┬ ─ ─ ┴ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ │ │ │ │ │ │ │ P1 │ P2 │ P3 │ P * │ × │ PEnter │ │
* ├ ─ ─ ─ ─ ─ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ─ ┬ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ │ │ │ │ │ │ P0 │ P0 │ , │ P . │ P / │ ÷ │ │ │
* ├ ─ ─ ─ ─ ┬ ─ ─ ─ ┴ ┬ ─ ─ ┴ ─ ┬ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ┬ ┴ ─ ─ ─ ┼ ─ ─ ─ ┴ ┬ ─ ┬ ─ ─ ─ ┼ ─ ─ ─ ┼ ─ ─ ─ ┤
* │ │ │ │ │ │ │ │ │ │ │
* └─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┴ ─ ─ ─ ─ ┘ └ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┘
*/
[ L_NUMPAD ] = LAYOUT_truefox ( \
NUMPAD , _______ , _______ , _______ , _______ , _______ , _______ , KC_P7 , KC_P8 , KC_P9 , KC_PMNS , UC_ MINS, UC_ EQLS, NUMPAD , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_P4 , KC_P5 , KC_P6 , KC_PPLS , UC_ LPRN, UC_ RPRN, _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_P1 , KC_P2 , KC_P3 , KC_PAST , UC_MULS, KC_PENT , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , KC_P0 , KC_P0 , UC_ COMM, KC_PDOT , KC_PSLS , UC_DIVS, _______ , _______ , \
NUMPAD , _______ , _______ , _______ , _______ , _______ , _______ , KC_P7 , KC_P8 , KC_P9 , KC_PMNS , MINU S, EQUA LS, NUMPAD , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_P4 , KC_P5 , KC_P6 , KC_PPLS , L_ PA RE N, R_ PA RE N, _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_P1 , KC_P2 , KC_P3 , KC_PAST , TIMES, KC_PENT , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , KC_P0 , KC_P0 , COMMA , KC_PDOT , KC_PSLS , DIVIDE, _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ \
) ,
} ;