@ -155,7 +155,7 @@ const uint32_t PROGMEM unicode_map[] = {
[ AX ] = U ' Ḥ ' , [ AY ] = U ' ˙ ' , [ AZ ] = U ' · ' ,
[ ABSL ] = U ' \\ '
/ / 1744 bytes free - as space is allocated " quite literally " as ASCII 32 in a 32 - bit field .
/ / 2021 - 12 - 09
/ / 2021 - 12 - 1 0
/ / Mode 10 Notes
/ / all single byte codes for example but 52 * 3 = 156 bytes for all in
@ -687,19 +687,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
/ / cur5 is swap extra centre key to outer for cursor together
/ / x4 and x5 are left and right of the right shift key
/ / x6 and x7 are left and right split off of the space bar
# define NO_XTRA KC_NO
# define LAYOUT_60_ansi_p( x1, iso, x2, cur5, x3, x4, x5, x6, x7, \
# define NO_XTRA KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
# define IS_ISO false
# define SWP_CUR5 false
# define LAYOUT_60_ansi_p( sbs, zhash, fnR2, shRL, shRR, spcL, spcR, \
k00 , k01 , k02 , k03 , k04 , k05 , k06 , k07 , k08 , k09 , k0a , k0b , k0c , k0e , \
k10 , k12 , k13 , k14 , k15 , k16 , k17 , k18 , k19 , k1a , k1b , k1c , k1d , k1e , \
k20 , k22 , k23 , k24 , k25 , k26 , k27 , k28 , k29 , k2a , k2b , k2c , k2d , \
k30 , k32 , k33 , k34 , k35 , k36 , k37 , k38 , k39 , k3a , k3b , k3d , \
k40 , k41 , k43 , k46 , k4a , k4b , k4d , k4e \
) { \
{ k00 , k01 , k02 , k03 , k04 , k05 , k06 , k07 , k08 , k09 , k0a , k0b , k0c , x1 , k0e } , \
{ k10 , KC_NO , k12 , k13 , k14 , k15 , k16 , k17 , k18 , k19 , k1a , k1b , k1c , k1d , ( k1e & ~ iso ) | ( x2 & iso ) } , \
{ k00 , k01 , k02 , k03 , k04 , k05 , k06 , k07 , k08 , k09 , k0a , k0b , k0c , sbs , k0e } , \
{ k10 , KC_NO , k12 , k13 , k14 , k15 , k16 , k17 , k18 , k19 , k1a , k1b , k1c , k1d , ( k1e & ~ IS_ISO ) | ( zhash & IS_ISO ) } , \
{ k20 , KC_NO , k22 , k23 , k24 , k25 , k26 , k27 , k28 , k29 , k2a , k2b , k2c , k2d , KC_NO } , \
{ k30 , k1e , k32 , k33 , k34 , k35 , k36 , k37 , k38 , k39 , k3a , k3b , x4 , k3d , x5 } , \
{ k40 , k41 , KC_NO , k43 , x6 , KC_NO , k46 , KC_NO , x7 , KC_NO , k4a , k4b , ( x3 & ~ cur 5) | ( k4d & cur5 ) , ( x3 & cur 5) | ( k4d & ~ cur 5) , k4e } \
{ k30 , ( k1e & IS_ISO ) | ( zhash & ~ IS_ISO ) , k32 , k33 , k34 , k35 , k36 , k37 , k38 , k39 , k3a , k3b , shRL , k3d , shRR } , \
{ k40 , k41 , KC_NO , k43 , spcL , KC_NO , k46 , KC_NO , spcR , KC_NO , k4a , k4b , ( fnR2 & ~ SWP_CUR 5) | ( k4d & SWP_CUR5 ) , ( fnR2 & SWP_CUR 5) | ( k4d & ~ SWP_CUR 5) , k4e } \
}
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
@ -711,7 +715,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / Standard ANSI 60 layout for worldwide ASCII compatibility ,
/ / This is the standard conformance layer and as such remain static .
/ / MO ( 4 ) enters the function shift state .
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , 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_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_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 ,
@ -723,7 +727,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / Backslash enters BQN entry mode
/ / VirtualBox host key needs an Fn .
/ / A basic easy cursor mode with easier BQN entry via \ .
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , 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_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 , OSL ( 3 ) , / / BQN shift
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_ENT ,
@ -733,7 +737,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / Macro lock mode 3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Macro lock mode 2
/ / A single finger macro launching board producing many modifier and function keys .
/ / Lots of macros and shifts with an Fn
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
OSM ( MOD_LCTL | MOD_LSFT ) , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , OSM ( MOD_LSFT | MOD_LCTL | MOD_LALT ) ,
OSM ( MOD_LSFT | MOD_LALT ) , KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , ALG ( KC_F24 ) ,
OSM ( MOD_LCTL | MOD_LALT ) , ALG ( KC_F1 ) , ALG ( KC_F2 ) , ALG ( KC_F3 ) , ALG ( KC_F4 ) , ALG ( KC_F5 ) , ALG ( KC_F6 ) , ALG ( KC_F7 ) , ALG ( KC_F8 ) , ALG ( KC_F9 ) , ALG ( KC_F10 ) , ALG ( KC_F11 ) , ALG ( KC_F12 ) ,
@ -742,7 +746,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / BQN lock mode 4 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = BQN lock mode 3
/ / BQN Unicode
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
Z ( GR ) , Z ( N1 ) , Z ( N2 ) , Z ( N3 ) , Z ( N4 ) , Z ( N5 ) , Z ( N6 ) , Z ( N7 ) , Z ( N8 ) , Z ( N9 ) , Z ( N0 ) , Z ( MIN ) , Z ( EQ ) , TO ( 1 ) , / / escape
KC_TAB , Z ( Q ) , Z ( W ) , Z ( E ) , Z ( R ) , Z ( T ) , Z ( Y ) , Z ( U ) , Z ( I ) , Z ( O ) , Z ( P ) , Z ( LBR ) , Z ( RBR ) , KC_BSLS ,
F_BOOM , Z ( A ) , Z ( S ) , Z ( D ) , Z ( F ) , Z ( G ) , Z ( H ) , Z ( J ) , Z ( K ) , Z ( L ) , Z ( SEMI ) , Z ( QUOT ) , KC_ENT ,
@ -757,7 +761,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / ISO characters such as £ and control of RGB / backlight and cursor .
/ / Fn + P is power switch for shutdown .
/ / This shift layer is standard for the kind of keyboard plus a few extensions .
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
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_DEL ,
LCA ( KC_DEL ) , RGB_TOG , RGB_MOD , RGB_HUI , RGB_HUD , RGB_SAI , RGB_SAD , RGB_VAI , RGB_VAD , KC_WHOM , KC_PWR , KC_HOME , KC_END , KC_INS ,
KC_SLCK , KC_WSCH , Z ( INT ) , Z ( DIF ) , KC_WFAV , Z ( ROOT ) , KC_VOLD , KC_VOLU , Z ( DEG ) , Z ( PND ) , KC_PAUS , KC_PSCR , KC_APP ,
@ -768,7 +772,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / All function keys , so Home and End were sacrificed .
/ / Also media player launch and control .
/ / No APP menu as / is on the key , as / is ? key .
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
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_DEL ,
LCA ( KC_DEL ) , 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_INS ,
KC_SLCK , KC_WSCH , Z ( INT ) , Z ( DIF ) , KC_WFAV , Z ( ROOT ) , KC_VOLD , KC_VOLU , Z ( DEG ) , Z ( PND ) , KC_PAUS , KC_PSCR , KC_APP ,
@ -777,7 +781,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / Macro shift mode 6 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Macro shift mode 6
/ / Same macro layer but different modifier grouping for more hot key combinations .
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_ESC , KC_P1 , KC_P2 , KC_P3 , KC_P4 , KC_P5 , KC_P6 , KC_P7 , KC_P8 , KC_P9 , KC_P0 , KC_HAEN , KC_HANJ , KC_DEL ,
KC_TAB , KC_RO , KC_KANA , KC_JYEN , KC_HENK , KC_MHEN , KC_INT6 , KC_INT7 , KC_INT8 , KC_INT9 , KC_PWR , KC_HOME , KC_END , KC_INS ,
KC_NLCK , KC_WSCH , Z ( INT ) , Z ( DIF ) , KC_WFAV , Z ( ROOT ) , KC_VOLD , KC_VOLU , Z ( DEG ) , Z ( PND ) , KC_PAUS , KC_PSCR , KC_ENT ,
@ -785,7 +789,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
DF ( 0 ) , OSM ( MOD_LSFT | MOD_LGUI ) , DF ( 1 ) , ALGR ( KC_SPC ) , KC_TRNS , OSM ( MOD_LSFT | MOD_RGUI ) , KC_TRNS , TO ( 10 ) ) ,
/ / BQN shift mode 7 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = BQN shift mode 7
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_ESC , X ( A1 ) , X ( A2 ) , X ( A3 ) , X ( A4 ) , X ( A5 ) , X ( A6 ) , X ( A7 ) , X ( A8 ) , X ( A9 ) , X ( A0 ) , X ( AMIN ) , X ( AEQ ) , KC_BSPC , / / allow backspace
KC_TAB , X ( AQ ) , X ( AW ) , X ( AE ) , X ( AR ) , X ( AT ) , X ( AY ) , X ( AU ) , X ( AI ) , X ( AO ) , X ( AP ) , X ( ALBR ) , X ( ARBR ) , X ( ABSL ) ,
KC_SLCK , X ( AA ) , X ( AS ) , X ( AD ) , X ( AF ) , X ( AG ) , X ( AH ) , X ( AJ ) , X ( AK ) , X ( AL ) , X ( ASEM ) , X ( AAPO ) , KC_ENT ,
@ -797,7 +801,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
/ / Control shift mode 8 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Control shift mode 8
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
Z ( CES ) , Z ( C1 ) , X ( IAT ) , Z ( C3 ) , Z ( C4 ) , Z ( C5 ) , X ( ICAR ) , Z ( C7 ) , Z ( C8 ) , Z ( C9 ) , Z ( C0 ) , X ( IUND ) , Z ( CEQ ) , X ( LBS ) ,
X ( TAB ) , X ( IQ ) , X ( IW ) , X ( IE ) , X ( IR ) , X ( IT ) , X ( IY ) , X ( IU ) , X ( II ) , X ( IO ) , X ( IP ) , X ( ILBR ) , X ( IRBR ) , X ( IBSL ) ,
KC_TRNS , X ( IA ) , X ( IS ) , X ( ID ) , X ( IF ) , X ( IG ) , X ( IH ) , X ( IJ ) , X ( IK ) , X ( IL ) , LCTL ( KC_PAUS ) , LCTL ( KC_PSCR ) , X ( CR ) ,
@ -806,7 +810,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/ / Mouse shift mode 9 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Mouse shift mode 9
/ / A utility layer for things like the mouse .
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
RESET , KM_1 , KM_2 , KM_3 , KM_4 , KM_5 , KM_6 , KM_7 , KM_8 , KM_9 , KM_0 , KC_BTN4 , KC_BTN5 , KC_DEL ,
KC_TAB , KM_Q , KM_W , KM_E , KM_R , KM_T , KM_Y , KM_U , KM_I , KM_O , KM_P , KC_HOME , KC_END , KC_SYSREQ ,
UC_MOD , KM_A , KM_S , KM_D , KM_F , KM_G , KM_H , KM_J , KM_K , KM_L , KC_BTN3 , KC_BTN2 , KC_ENT ,
@ -814,7 +818,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL , RCS ( KC_LALT ) , KC_TRNS , KC_BTN1 , KC_MS_L , KC_MS_D , KC_MS_R , KC_TRNS ) ,
/ / Extra shift mode 10 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Extra shift mode 10
LAYOUT_60_ansi_p ( NO_XTRA , false , NO_XTRA , false , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA , NO_XTRA ,
LAYOUT_60_ansi_p ( KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
PK_GRV , PK_1 , PK_2 , PK_3 , PK_4 , PK_5 , PK_6 , PK_7 , PK_8 , PK_9 , PK_0 , PK_MINS , PK_EQL , PK_BSPC ,
PK_TAB , PK_Q , PK_W , PK_E , PK_R , PK_T , PK_Y , PK_U , PK_I , PK_O , PK_P , PK_LBRC , PK_RBRC , PK_BSLS ,
PK_CAPS , PK_A , PK_S , PK_D , PK_F , PK_G , PK_H , PK_J , PK_K , PK_L , PK_SCLN , PK_QUOT , PK_ENT ,