@ -30,45 +30,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[ 0 ] = LAYOUT (
KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 ,
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_NO , 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_ESC , KC_PGUP , KC_PGDN , KC_NLCK , KC_SLCK , KC_PAST , KC_PSLS ,
KC_NO , KC_PAUS , 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_ENT , KC_END , KC_INS , KC_DEL , KC_P7 , KC_P8 , KC_P9 , KC_PPLS ,
KC_NO , KC_NO , KC_CAPS , 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_UP , KC_P4 , KC_P5 , KC_P6 , KC_PMNS ,
KC_PSCR , KC_NO , KC_LSFT , JM_GRLS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , KC_LEFT , KC_HOME , KC_RIGHT , KC_P1 , KC_P2 , KC_P3 , KC_PENT ,
MO ( 10 ) , KC_LGUI , KC_LCTL , KC_LALT , KC_SPC , KC_RALT , KC_RCTL , KC_DOWN , KC_P0 , KC_PDOT
MO ( 2 ) , KC_LGUI , KC_LCTL , KC_LALT , KC_SPC , KC_RALT , KC_RCTL , KC_DOWN , KC_P0 , KC_PDOT
) ,
// PC/3270 layout: 3270 legends (black), with x3270 keycodes
[ 1 ] = LAYOUT (
A ( KC_F1 ) , A ( KC_F2 ) , A ( KC_F3 ) , A ( KC_F4 ) , A ( KC_F5 ) , A ( KC_F6 ) , A ( KC_F7 ) , A ( KC_F8 ) , A ( KC_F9 ) , A ( KC_F10 ) , A ( KC_F11 ) , A ( KC_F12 ) ,
KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 ,
A ( KC_A ) , A ( KC_C ) , 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 , A ( KC_1 ) , A ( KC_2 ) , JM_JUMP , KC_NO , KC_NO , KC_PCMM , KC_SPC ,
KC_CRSEL , KC_PAUS , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , JM_CENT , KC_BSLS , S ( KC_ENT ) , S ( KC_TAB ) , KC_INS , JM_DEL , KC_P7 , KC_P8 , KC_P9 , KC_TAB ,
KC_EXSEL , A ( KC_E ) , KC_CAPS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , JM_CBRC , KC_UP , KC_P4 , KC_P5 , KC_P6 , KC_PMNS ,
A ( KC_B ) , C ( KC_C ) , KC_LSFT , JM_GRLS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , JM_COMM , JM_DOT , KC_SLSH , KC_RSFT , KC_LEFT , A ( KC_H ) , KC_RIGHT , KC_P1 , KC_P2 , KC_P3 , KC_PENT ,
MO ( 10 ) , KC_LGUI , A ( KC_R ) , KC_LALT , KC_SPC , KC_RALT , KC_ENT , KC_DOWN , KC_P0 , KC_PDOT
MO ( 2 ) , KC_LGUI , A ( KC_R ) , KC_LALT , KC_SPC , KC_RALT , KC_ENT , KC_DOWN , KC_P0 , KC_PDOT
) ,
// Function layer, accessed by the Zoom key
[ 10 ] = 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 ,
DF ( 0 ) , DF ( 1 ) , 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 , 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 , MO ( 11 ) , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
[ 2 ] = LAYOUT (
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
DF ( 0 ) , DF ( 1 ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , MO ( 3 ) , _______ , _______ , _______ , _______ , _______
) ,
// Firmware layer, accessed by the Zoom/Space key pair (hold both down)
[ 11 ] = 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 , EEP_RST , RESET , 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 , DEBUG , 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
) ,
[ 3 ] = LAYOUT (
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , EEP_RST , RESET , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , DEBUG , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
)
} ;
bool left_shift_down = false ;
@ -79,80 +83,50 @@ bool right_alt_down = false;
bool process_record_user ( uint16_t keycode , keyrecord_t * record ) {
switch ( keycode ) {
case KC_LSHIFT :
if ( record - > event . pressed ) {
left_shift_down = true ;
return true ;
} else {
left_shift_down = false ;
return true ;
}
left_shift_down = record - > event . pressed ;
break ;
case KC_RSHIFT :
if ( record - > event . pressed ) {
right_shift_down = true ;
return true ;
} else {
right_shift_down = false ;
return true ;
}
right_shift_down = record - > event . pressed ;
break ;
case KC_LALT :
if ( record - > event . pressed ) {
left_alt_down = true ;
return true ;
} else {
left_alt_down = false ;
return true ;
}
left_alt_down = record - > event . pressed ;
break ;
case KC_RALT :
if ( record - > event . pressed ) {
right_alt_down = true ;
return true ;
} else {
right_alt_down = false ;
return true ;
}
right_alt_down = record - > event . pressed ;
break ;
case JM_GRLS :
if ( left_shift_down | | right_shift_down ) {
if ( record - > event . pressed ) {
SEND_STRING ( " > " ) ;
}
return false ;
} else {
if ( record - > event . pressed ) {
SEND_STRING ( " < " ) ;
}
return false ;
}
break ;
return false ;
case JM_CBRC :
if ( left_shift_down | | right_shift_down ) {
if ( record - > event . pressed ) {
SEND_STRING ( " } " ) ;
}
return false ;
} else {
if ( record - > event . pressed ) {
SEND_STRING ( " { " ) ;
}
return false ;
}
break ;
return false ;
case JM_CENT :
if ( left_shift_down | | right_shift_down ) {
if ( record - > event . pressed ) {
SEND_STRING ( " ! " ) ;
}
return false ;
} else {
if ( record - > event . pressed ) {
SEND_STRING ( " < " ) ; // TODO: what does tn3270 want for a cent sign?
}
return false ;
}
break ;
return false ;
case JM_COMM :
if ( record - > event . pressed ) {
SEND_STRING ( " , " ) ;
@ -188,6 +162,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false ;
}
return true ;
}