From a43ab35b7b807db03e3e8150273218d147d1737e Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 14 Feb 2013 15:34:33 +0900 Subject: Add poker keymap with layer stacking. --- keyboard/gh60/keymap_poker.h | 31 ++++++++++++--- keyboard/gh60/keymap_poker_stack.h | 77 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 keyboard/gh60/keymap_poker_stack.h (limited to 'keyboard') diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h index 186020b3bd..a668b9db4d 100644 --- a/keyboard/gh60/keymap_poker.h +++ b/keyboard/gh60/keymap_poker.h @@ -18,7 +18,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), /* Layer x001: Poker with Arrow */ @@ -57,8 +57,8 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \ - TRNS,TRNS,TRNS, FN0, FN2, LEFT,DOWN,RGHT), + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), /* Layer x110: Poker with Esc + Fn'd */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ @@ -71,8 +71,29 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { GRV, F9, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \ - TRNS,TRNS,TRNS, FN0, FN2, LEFT,DOWN,RGHT), + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), + /* colemak */ + [8] = KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), }; /* diff --git a/keyboard/gh60/keymap_poker_stack.h b/keyboard/gh60/keymap_poker_stack.h new file mode 100644 index 0000000000..4c10193524 --- /dev/null +++ b/keyboard/gh60/keymap_poker_stack.h @@ -0,0 +1,77 @@ +static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Poker Layer + */ + /* Layer x000: Poker Default Layer + * ,-----------------------------------------------------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* Layer 1: Poker with Arrow */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), + /* Layer 2: Poker with Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), + /* Layer 3: Poker Fn'd */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN0, TRNS,TRNS,TRNS,TRNS), + /* colemak */ + [4] = KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), +}; + +/* + * Fn action definition + */ +static const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_STACK_TOGGLE(1), // FN0 Poker Arrow toggle(Space) + [1] = ACTION_LAYER_STACK_TOGGLE(2), // FN1 Poker Esc toggle(Q) + [2] = ACTION_LAYER_STACK(3), // FN2 Poker Fn + [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) +}; -- cgit v1.2.3 From 0c1d98bd3c0b0ea4f109d2515521f1fcbccf3d3f Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 15 Feb 2013 15:24:50 +0900 Subject: Add poker keymap with layer stacking --- keyboard/gh60/Makefile.lufa | 3 +++ keyboard/gh60/Makefile.pjrc | 3 +++ keyboard/gh60/keymap.c | 2 ++ keyboard/gh60/keymap_poker.h | 12 ++++++------ 4 files changed, 14 insertions(+), 6 deletions(-) (limited to 'keyboard') diff --git a/keyboard/gh60/Makefile.lufa b/keyboard/gh60/Makefile.lufa index c8d3fa4943..7548d47855 100644 --- a/keyboard/gh60/Makefile.lufa +++ b/keyboard/gh60/Makefile.lufa @@ -124,3 +124,6 @@ plain: all poker: OPT_DEFS += -DKEYMAP_POKER poker: all + +poker_stack: OPT_DEFS += -DKEYMAP_POKER_STACK +poker_stack: all diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc index f253704faa..8bca1659bf 100644 --- a/keyboard/gh60/Makefile.pjrc +++ b/keyboard/gh60/Makefile.pjrc @@ -94,3 +94,6 @@ plain: all poker: OPT_DEFS += -DKEYMAP_POKER poker: all + +poker_stack: OPT_DEFS += -DKEYMAP_POKER_STACK +poker_stack: all diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c index a17c11fc3b..9438782f2e 100644 --- a/keyboard/gh60/keymap.c +++ b/keyboard/gh60/keymap.c @@ -64,6 +64,8 @@ along with this program. If not, see . #include "keymap_plain.h" #elif defined(KEYMAP_POKER) #include "keymap_poker.h" +#elif defined(KEYMAP_POKER_STACK) + #include "keymap_poker_stack.h" #else static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h index a668b9db4d..7dc4efe019 100644 --- a/keyboard/gh60/keymap_poker.h +++ b/keyboard/gh60/keymap_poker.h @@ -18,7 +18,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), /* Layer x001: Poker with Arrow */ @@ -48,28 +48,28 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer x100: Poker Default + Fn'd */ KEYMAP_ANSI( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), /* Layer x101: Poker with Arrow + Fn'd */ KEYMAP_ANSI( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), /* Layer x110: Poker with Esc + Fn'd */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), /* Layer x111: Poker with Arrow and Esc + Fn'd */ KEYMAP_ANSI( GRV, F9, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), @@ -84,7 +84,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LCTL,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), /* workman */ -- cgit v1.2.3 From d9f287586635a401b8d6a80614bee6dbebe2f18c Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 15 Feb 2013 18:48:36 +0900 Subject: Replace layer_stack with layer_switch --- keyboard/gh60/keymap_poker.h | 62 +++++++++++++++----------------------- keyboard/gh60/keymap_poker_stack.h | 6 ++-- 2 files changed, 27 insertions(+), 41 deletions(-) (limited to 'keyboard') diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h index 7dc4efe019..08c24f926c 100644 --- a/keyboard/gh60/keymap_poker.h +++ b/keyboard/gh60/keymap_poker.h @@ -20,59 +20,44 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* Layer x001: Poker with Arrow */ + LCTL,LGUI,LALT, SPC, FN3, RGUI,APP, RCTL), + /* Layer 1: Poker with Arrow */ KEYMAP_ANSI( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT), - /* Layer x010: Poker with Esc */ + TRNS,TRNS,TRNS, TRNS, FN4, LEFT,DOWN,RGHT), + /* Layer 2: Poker with Esc */ KEYMAP_ANSI( ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), - /* Layer x011: Poker with Arrow and Esc */ - KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT), - /* - * Poker Momentary Fn Layer - */ - /* Layer x100: Poker Default + Fn'd */ + TRNS,TRNS,TRNS, TRNS, FN5, TRNS,TRNS,TRNS), + /* Layer 3: Poker Default + Fn'd */ KEYMAP_ANSI( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), - /* Layer x101: Poker with Arrow + Fn'd */ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN0, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \ + TRNS,TRNS,TRNS, FN0, FN3, LEFT,DOWN,RGHT), + + /* Layer 4: Poker Default + Fn'd */ KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), - /* Layer x110: Poker with Esc + Fn'd */ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN0, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \ + TRNS,TRNS,TRNS, FN0, FN4, HOME,PGDN,END), + /* Layer 5: Poker Default + Fn'd */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN0, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), - /* Layer x111: Poker with Arrow and Esc + Fn'd */ - KEYMAP_ANSI( - GRV, F9, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), + TRNS,TRNS,TRNS, FN0, FN5, TRNS,TRNS,TRNS), + /* colemak */ [8] = KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ @@ -101,9 +86,10 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ static const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ - [0] = ACTION_LAYER_BIT_TOGGLE(1), // FN0 Poker Arrow toggle(Space) - [1] = ACTION_LAYER_BIT_TOGGLE(2), // FN1 Poker Esc toggle(Q) - [2] = ACTION_LAYER_BIT(4), // FN2 Poker Fn - [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) + [0] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN0 Task(RControl,RShift+Esc) + [0] = ACTION_LAYER_BIT_TOGGLE(1), // FN1 Poker Arrow toggle(Space) + [1] = ACTION_LAYER_BIT_TOGGLE(2), // FN2 Poker Esc toggle(Q) + [2] = ACTION_LAYER_BIT(3), // FN3 Poker Fn + [3] = ACTION_LAYER_BIT(4), // FN4 Poker Fn }; diff --git a/keyboard/gh60/keymap_poker_stack.h b/keyboard/gh60/keymap_poker_stack.h index 4c10193524..b074abaa5b 100644 --- a/keyboard/gh60/keymap_poker_stack.h +++ b/keyboard/gh60/keymap_poker_stack.h @@ -70,8 +70,8 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ static const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ - [0] = ACTION_LAYER_STACK_TOGGLE(1), // FN0 Poker Arrow toggle(Space) - [1] = ACTION_LAYER_STACK_TOGGLE(2), // FN1 Poker Esc toggle(Q) - [2] = ACTION_LAYER_STACK(3), // FN2 Poker Fn + [0] = ACTION_LAYER_SWITCH_TOGGLE(1), // FN0 Poker Arrow toggle(Space) + [1] = ACTION_LAYER_SWITCH_TOGGLE(2), // FN1 Poker Esc toggle(Q) + [2] = ACTION_LAYER_SWITCH(3), // FN2 Poker Fn [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) }; -- cgit v1.2.3 From 0142b571c46c7db314063615c956cbc5ec9720f1 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Feb 2013 02:58:19 +0900 Subject: Add keymaps of gh60 - keymap_poker.h poker emulation - keymap_poker_set.h poker emulation with Esc fix and cursor fix - keymap_poker_bit.h poker emulation with Esc fix and cursor fix --- keyboard/gh60/Makefile.lufa | 7 ++- keyboard/gh60/Makefile.pjrc | 7 ++- keyboard/gh60/README.md | 2 +- keyboard/gh60/keymap.c | 6 +- keyboard/gh60/keymap_poker.h | 95 -------------------------------- keyboard/gh60/keymap_poker_bit.h | 109 ++++++++++++++++++++++++++++++++++++ keyboard/gh60/keymap_poker_set.h | 110 +++++++++++++++++++++++++++++++++++++ keyboard/gh60/keymap_poker_stack.h | 77 -------------------------- 8 files changed, 234 insertions(+), 179 deletions(-) delete mode 100644 keyboard/gh60/keymap_poker.h create mode 100644 keyboard/gh60/keymap_poker_bit.h create mode 100644 keyboard/gh60/keymap_poker_set.h delete mode 100644 keyboard/gh60/keymap_poker_stack.h (limited to 'keyboard') diff --git a/keyboard/gh60/Makefile.lufa b/keyboard/gh60/Makefile.lufa index 7548d47855..9adec24b13 100644 --- a/keyboard/gh60/Makefile.lufa +++ b/keyboard/gh60/Makefile.lufa @@ -125,5 +125,8 @@ plain: all poker: OPT_DEFS += -DKEYMAP_POKER poker: all -poker_stack: OPT_DEFS += -DKEYMAP_POKER_STACK -poker_stack: all +poker_bit: OPT_DEFS += -DKEYMAP_POKER_SET +poker_bit: all + +poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT +poker_bit: all diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc index 8bca1659bf..4559ce32f1 100644 --- a/keyboard/gh60/Makefile.pjrc +++ b/keyboard/gh60/Makefile.pjrc @@ -95,5 +95,8 @@ plain: all poker: OPT_DEFS += -DKEYMAP_POKER poker: all -poker_stack: OPT_DEFS += -DKEYMAP_POKER_STACK -poker_stack: all +poker_bit: OPT_DEFS += -DKEYMAP_POKER_SET +poker_bit: all + +poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT +poker_bit: all diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md index 405ab3dffc..c11f2ae23c 100644 --- a/keyboard/gh60/README.md +++ b/keyboard/gh60/README.md @@ -47,7 +47,7 @@ See [keymap_plain.h](keymap_plain.h) for detail. `-----------------------------------------------------------' ### 2 Poker keymap -Poker layer emulation without Esc/grave bug :) +Poker layer emulation See [keymap_poker.h](keymap_poker.h) for detail. diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c index 9438782f2e..8739aa163b 100644 --- a/keyboard/gh60/keymap.c +++ b/keyboard/gh60/keymap.c @@ -64,8 +64,10 @@ along with this program. If not, see . #include "keymap_plain.h" #elif defined(KEYMAP_POKER) #include "keymap_poker.h" -#elif defined(KEYMAP_POKER_STACK) - #include "keymap_poker_stack.h" +#elif defined(KEYMAP_POKER_SET) + #include "keymap_poker_set.h" +#elif defined(KEYMAP_POKER_BIT) + #include "keymap_poker_bit.h" #else static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h deleted file mode 100644 index 08c24f926c..0000000000 --- a/keyboard/gh60/keymap_poker.h +++ /dev/null @@ -1,95 +0,0 @@ -static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * Poker Layer - */ - /* Layer x000: Poker Default Layer - * ,-----------------------------------------------------------. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN3, RGUI,APP, RCTL), - /* Layer 1: Poker with Arrow */ - KEYMAP_ANSI( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN4, LEFT,DOWN,RGHT), - /* Layer 2: Poker with Esc */ - KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, FN5, TRNS,TRNS,TRNS), - /* Layer 3: Poker Default + Fn'd */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN0, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \ - TRNS,TRNS,TRNS, FN0, FN3, LEFT,DOWN,RGHT), - - /* Layer 4: Poker Default + Fn'd */ - KEYMAP_ANSI( - TRNS F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN0, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \ - TRNS,TRNS,TRNS, FN0, FN4, HOME,PGDN,END), - /* Layer 5: Poker Default + Fn'd */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN0, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN0, FN5, TRNS,TRNS,TRNS), - - /* colemak */ - [8] = KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - LCTL,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), -}; - -/* - * Fn action definition - */ -static const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN0 Task(RControl,RShift+Esc) - [0] = ACTION_LAYER_BIT_TOGGLE(1), // FN1 Poker Arrow toggle(Space) - [1] = ACTION_LAYER_BIT_TOGGLE(2), // FN2 Poker Esc toggle(Q) - [2] = ACTION_LAYER_BIT(3), // FN3 Poker Fn - [3] = ACTION_LAYER_BIT(4), // FN4 Poker Fn -}; - diff --git a/keyboard/gh60/keymap_poker_bit.h b/keyboard/gh60/keymap_poker_bit.h new file mode 100644 index 0000000000..7dc4efe019 --- /dev/null +++ b/keyboard/gh60/keymap_poker_bit.h @@ -0,0 +1,109 @@ +static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Poker Layer + */ + /* Layer x000: Poker Default Layer + * ,-----------------------------------------------------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* Layer x001: Poker with Arrow */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT), + /* Layer x010: Poker with Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), + /* Layer x011: Poker with Arrow and Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT), + /* + * Poker Momentary Fn Layer + */ + /* Layer x100: Poker Default + Fn'd */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), + /* Layer x101: Poker with Arrow + Fn'd */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), + /* Layer x110: Poker with Esc + Fn'd */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), + /* Layer x111: Poker with Arrow and Esc + Fn'd */ + KEYMAP_ANSI( + GRV, F9, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), + /* colemak */ + [8] = KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + LCTL,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + /* workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), +}; + +/* + * Fn action definition + */ +static const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_BIT_TOGGLE(1), // FN0 Poker Arrow toggle(Space) + [1] = ACTION_LAYER_BIT_TOGGLE(2), // FN1 Poker Esc toggle(Q) + [2] = ACTION_LAYER_BIT(4), // FN2 Poker Fn + [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) +}; + diff --git a/keyboard/gh60/keymap_poker_set.h b/keyboard/gh60/keymap_poker_set.h new file mode 100644 index 0000000000..9d77617981 --- /dev/null +++ b/keyboard/gh60/keymap_poker_set.h @@ -0,0 +1,110 @@ +static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Poker Default Layer + * ,-----------------------------------------------------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + /* Layer 0: qwerty */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer 1: colemak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer 2: dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer3: workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer 4: Poker with Arrow */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT), + /* Layer 5: Poker with Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), + /* Layer 6: Poker with Arrow and Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT), + /* Layer 7: Poker Fn'd */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), + /* Layer 8: Poker Fn'd arrow */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), + /* Layer 9: Poker Fn'd Esc */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), + /* Layer 10: Poker Fn'd Arrow + Esc */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN6, FN7, HOME,PGDN,END), +}; + +/* + * Fn action definition + */ +static const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_SET_P(7), // FN0 move to Fn'd when press + [1] = ACTION_LAYER_SET_P(8), // FN1 move to Fn'd arrow when press + [2] = ACTION_LAYER_SET_P(9), // FN2 move to Fn'd Esc when press + [3] = ACTION_LAYER_SET_P(10), // FN3 move to Fn'd arrow + Esc when press + + [4] = ACTION_LAYER_SET_R(0), // FN4 move to default when release + [5] = ACTION_LAYER_SET_R(4), // FN5 move to arrow when release + [6] = ACTION_LAYER_SET_R(5), // FN6 move to Esc when release + [7] = ACTION_LAYER_SET_R(6), // FN7 move to arrow + Esc when release + + [8] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN8 Task(RControl,RShift+Esc) +}; diff --git a/keyboard/gh60/keymap_poker_stack.h b/keyboard/gh60/keymap_poker_stack.h deleted file mode 100644 index b074abaa5b..0000000000 --- a/keyboard/gh60/keymap_poker_stack.h +++ /dev/null @@ -1,77 +0,0 @@ -static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * Poker Layer - */ - /* Layer x000: Poker Default Layer - * ,-----------------------------------------------------------. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* Layer 1: Poker with Arrow */ - KEYMAP_ANSI( - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), - /* Layer 2: Poker with Esc */ - KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), - /* Layer 3: Poker Fn'd */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN0, TRNS,TRNS,TRNS,TRNS), - /* colemak */ - [4] = KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), -}; - -/* - * Fn action definition - */ -static const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_LAYER_SWITCH_TOGGLE(1), // FN0 Poker Arrow toggle(Space) - [1] = ACTION_LAYER_SWITCH_TOGGLE(2), // FN1 Poker Esc toggle(Q) - [2] = ACTION_LAYER_SWITCH(3), // FN2 Poker Fn - [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) -}; -- cgit v1.2.3 From 06e4fc66edd15efa5afdcaed2102c7698b626484 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Feb 2013 04:16:03 +0900 Subject: Add keymap file of gh60 --- keyboard/gh60/keymap_poker.h | 75 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 keyboard/gh60/keymap_poker.h (limited to 'keyboard') diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h new file mode 100644 index 0000000000..10719a95c0 --- /dev/null +++ b/keyboard/gh60/keymap_poker.h @@ -0,0 +1,75 @@ +static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Poker Default Layer + * ,-----------------------------------------------------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + /* Layer 0: qwerty */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer 1: colemak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer 2: dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer3: workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* Layer 4: Poker with Arrow */ + KEYMAP_ANSI( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ + TRNS,TRNS,TRNS, TRNS, FN0, LEFT,DOWN,RGHT), + /* Layer 5: Poker with Esc */ + KEYMAP_ANSI( + ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, FN0, TRNS,TRNS,TRNS), + /* Layer 6: Poker Fn'd */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN1, FN0, TRNS,TRNS,TRNS), +}; + +/* + * Fn action definition + */ +static const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_SWITCH_MOMENTARY(6), // FN0 switch to Fn + [1] = ACTION_LAYER_SWITCH_TOGGLE(4), // FN1 toggle arrow + [2] = ACTION_LAYER_SWITCH_TOGGLE(5), // FN2 toggle Esc + [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) +}; -- cgit v1.2.3 From abf0b04d14629de35968ee07e3bb587eebccf68b Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 20 Feb 2013 10:40:07 +0900 Subject: Apply new keymap for gh60 --- keyboard/gh60/Makefile.lufa | 4 +- keyboard/gh60/Makefile.pjrc | 4 +- keyboard/gh60/README.md | 7 +-- keyboard/gh60/config.h | 2 + keyboard/gh60/keymap.c | 105 ++++++++++++++++++++++++------------ keyboard/gh60/keymap_plain.h | 20 ++----- keyboard/gh60/keymap_poker.h | 95 ++++++++++++++++++++------------ keyboard/gh60/keymap_poker_bit.h | 113 ++++++++++----------------------------- keyboard/gh60/keymap_poker_set.h | 71 ++++++++---------------- 9 files changed, 195 insertions(+), 226 deletions(-) (limited to 'keyboard') diff --git a/keyboard/gh60/Makefile.lufa b/keyboard/gh60/Makefile.lufa index 9adec24b13..7a83032969 100644 --- a/keyboard/gh60/Makefile.lufa +++ b/keyboard/gh60/Makefile.lufa @@ -125,8 +125,8 @@ plain: all poker: OPT_DEFS += -DKEYMAP_POKER poker: all -poker_bit: OPT_DEFS += -DKEYMAP_POKER_SET -poker_bit: all +poker_set: OPT_DEFS += -DKEYMAP_POKER_SET +poker_set: all poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT poker_bit: all diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc index 4559ce32f1..af6ef63ec4 100644 --- a/keyboard/gh60/Makefile.pjrc +++ b/keyboard/gh60/Makefile.pjrc @@ -95,8 +95,8 @@ plain: all poker: OPT_DEFS += -DKEYMAP_POKER poker: all -poker_bit: OPT_DEFS += -DKEYMAP_POKER_SET -poker_bit: all +poker_set: OPT_DEFS += -DKEYMAP_POKER_SET +poker_set: all poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT poker_bit: all diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md index c11f2ae23c..4dc4e5ee2e 100644 --- a/keyboard/gh60/README.md +++ b/keyboard/gh60/README.md @@ -47,9 +47,10 @@ See [keymap_plain.h](keymap_plain.h) for detail. `-----------------------------------------------------------' ### 2 Poker keymap -Poker layer emulation -See [keymap_poker.h](keymap_poker.h) for detail. +See [keymap_poker.h](keymap_poker.h) for Poker layer emulation, [keymap_poker_bit.h](keymap_poker_bit.h) and [keymap_poker_set.h](keymap_poker_set.h) for better support of Esc and arrow. + + These keymap supports Colemak, Dvorak and Workmans, use `Magic` + {`1`, `2`, `3`} to switch and `Magic` + `0` to return to Qwerty. #### 2.0 Poker Default Layer ,-----------------------------------------------------------. @@ -108,7 +109,7 @@ See [keymap_poker.h](keymap_poker.h) for detail. ### 3. Funky keymap This is my keymap(default) with HHKB, Vi cursor and Mousekey layer. -See [keymap.h](keymap.h) for detail. +See [keymap.c](keymap.c) for detail. #### 3.0 Funky Default Layer ,-----------------------------------------------------------. diff --git a/keyboard/gh60/config.h b/keyboard/gh60/config.h index a760d5dfb3..ef0c9a1735 100644 --- a/keyboard/gh60/config.h +++ b/keyboard/gh60/config.h @@ -41,6 +41,8 @@ along with this program. If not, see . /* Set 0 if need no debouncing */ #define DEBOUNCE 5 +/* To use new keymap framework */ +#define USE_KEYMAP_V2 /* key combination for command */ #define IS_COMMAND() ( \ diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c index 8739aa163b..391348e984 100644 --- a/keyboard/gh60/keymap.c +++ b/keyboard/gh60/keymap.c @@ -20,6 +20,7 @@ along with this program. If not, see . #include "keycode.h" #include "action.h" #include "action_macro.h" +#include "layer_switch.h" #include "report.h" #include "host.h" #include "print.h" @@ -73,7 +74,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * Funky */ - /* Layer 0: Default Layer + /* Keymap 0: Default Layer * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | * |-----------------------------------------------------------| @@ -92,7 +93,34 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,FN4, FN4, FN1), - /* Layer 1: HHKB mode + /* Keymap 1: colemak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN1), + /* Keymap 2: dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN1), + /* Keymap: workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN1), +}; + +static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Funky + */ + /* Overlay 0: HHKB mode * ,-----------------------------------------------------------. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | * |-----------------------------------------------------------| @@ -107,11 +135,11 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ KEYMAP_ANSI( PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, INS, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ - LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN, RSFT, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ + LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - /* Layer 2: Vi mode (Slash) + /* Overlay 1: Vi mode (Slash) * ,-----------------------------------------------------------. * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | * |-----------------------------------------------------------| @@ -126,11 +154,11 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ - TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, NO, \ - LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ - LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN0, RSFT, \ + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \ + LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, FN0, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), - /* Layer 3: Mouse mode (Semicolon/App) + /* Overlay 2: Mouse mode (Semicolon/App) * ,-----------------------------------------------------------. * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | * |-----------------------------------------------------------| @@ -146,10 +174,10 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ - TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, NO, \ - LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, \ - LCTL,LGUI,LALT, BTN1, NO, FN0, FN0, NO ), + TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \ + LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,FN0, TRNS, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ + LCTL,LGUI,LALT, BTN1, TRNS,FN0, FN0, RCTL), }; /* @@ -157,41 +185,52 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ static const uint16_t PROGMEM fn_actions[] = { ACTION_LAYER_DEFAULT, // FN0 - ACTION_LAYER_SET(1), // FN1 - ACTION_LAYER_SET_TAP_KEY(2, KC_SLASH), // FN2 Layer with Slash - ACTION_LAYER_SET_TAP_KEY(3, KC_SCLN), // FN3 Layer with Semicolon - ACTION_LAYER_SET(3), // FN4 + ACTION_LAYER_SET(0), // FN1 + ACTION_LAYER_SET_TAP_KEY(1, KC_SLASH), // FN2 + ACTION_LAYER_SET_TAP_KEY(2, KC_SCLN), // FN3 + ACTION_LAYER_SET(2), // FN4 }; #endif +#define KEYMAPS_SIZE (sizeof(keymaps) / sizeof(keymaps[0])) +#define OVERLAYS_SIZE (sizeof(overlays) / sizeof(overlays[0])) +#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0])) + /* translates key to keycode */ uint8_t keymap_key_to_keycode(uint8_t layer, key_t key) { - return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]); + /* Overlay: 16-31(OVERLAY_BIT(0x10) | overlay_layer) */ + if (layer & OVERLAY_BIT) { + layer &= OVERLAY_MASK; + if (layer < OVERLAYS_SIZE) { + return pgm_read_byte(&overlays[(layer)][(key.row)][(key.col)]); + } else { + debug("key_to_keycode: overlay "); debug_dec(layer); debug(" is invalid.\n"); + return KC_TRANSPARENT; + } + } + /* Keymap: 0-15 */ + else { + if (layer < KEYMAPS_SIZE) { + return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]); + } else { + // fall back to layer 0 + debug("key_to_keycode: base "); debug_dec(layer); debug(" is invalid.\n"); + return pgm_read_byte(&keymaps[0][(key.row)][(key.col)]); + } + } } -/* translates Fn index to action */ +/* translates Fn keycode to action */ action_t keymap_fn_to_action(uint8_t keycode) { action_t action; - if (FN_INDEX(keycode) < sizeof(fn_actions) / sizeof(fn_actions[0])) { + if (FN_INDEX(keycode) < FN_ACTIONS_SIZE) { action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]); } else { action.code = ACTION_NO; } return action; } - -/* convert key to action */ -action_t action_for_key(uint8_t layer, key_t key) -{ - uint8_t keycode = keymap_key_to_keycode(layer, key); - switch (keycode) { - case KC_FN0 ... KC_FN31: - return keymap_fn_to_action(keycode); - default: - return keymap_keycode_to_action(keycode); - } -} diff --git a/keyboard/gh60/keymap_plain.h b/keyboard/gh60/keymap_plain.h index ad0bc2f269..85331715dc 100644 --- a/keyboard/gh60/keymap_plain.h +++ b/keyboard/gh60/keymap_plain.h @@ -1,24 +1,10 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * Plain - */ - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ + /* Keymap 0: qwerty */ KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), }; - +static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {}; +static const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h index 10719a95c0..2bbda61064 100644 --- a/keyboard/gh60/keymap_poker.h +++ b/keyboard/gh60/keymap_poker.h @@ -1,75 +1,104 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Poker Default Layer - * ,-----------------------------------------------------------. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - /* Layer 0: qwerty */ + /* Keymap 0: qwerty */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer 1: colemak */ + /* Keymap 1: colemak */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer 2: dvorak */ + /* Keymap 2: dvorak */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer3: workman */ + /* Keymap: workman */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer 4: Poker with Arrow */ +}; +static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { + /* Overlay 0: Poker with Arrow */ KEYMAP_ANSI( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN0, LEFT,DOWN,RGHT), - /* Layer 5: Poker with Esc */ + TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), + /* Overlay 1: Poker with Esc */ KEYMAP_ANSI( ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, FN0, TRNS,TRNS,TRNS), - /* Layer 6: Poker Fn'd */ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), + /* Overlay 2: Poker Fn + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | + * |-----------------------------------------------------------| + * | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL | + * |-----------------------------------------------------------| + * | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| | + * |-----------------------------------------------------------| + * | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| | + * |-----------------------------------------------------------| + * | | | | FnS | | | | | + * `-----------------------------------------------------------' + * Fn: to Fn overlay + * FnL: to Layout selector overaly + * FnQ: toggle Esc overlay + * FnS: toggle Arrow overlay + */ KEYMAP_ANSI( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN1, FN0, TRNS,TRNS,TRNS), + TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), + /* Overlay 3: Layout selector + * ,-----------------------------------------------------------. + * | Lq| Lc| Ld| Lw| | | | | | | | | | | + * |-----------------------------------------------------------| + * | |Lq |Lw | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Ld | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Lc | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + * Lq: set Qwerty layout + * Lc: set Colemak layout + * Ld: set Dvorak layout + * Lw: set Workman layout + */ + KEYMAP_ANSI( + FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), }; - -/* - * Fn action definition - */ static const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ - [0] = ACTION_LAYER_SWITCH_MOMENTARY(6), // FN0 switch to Fn - [1] = ACTION_LAYER_SWITCH_TOGGLE(4), // FN1 toggle arrow - [2] = ACTION_LAYER_SWITCH_TOGGLE(5), // FN2 toggle Esc - [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) + [0] = ACTION_OVERLAY(2), // to Fn overlay + [1] = ACTION_OVERLAY_TOGGLE(0), // toggle arrow overlay + [2] = ACTION_OVERLAY_TOGGLE(1), // toggle Esc overlay + [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // Task(RControl,RShift+Esc) + [4] = ACTION_OVERLAY(3), // to Layout selector + [5] = ACTION_SET_DEFAULT_LAYER(0), // set qwerty layout + [6] = ACTION_SET_DEFAULT_LAYER(1), // set colemak layout + [7] = ACTION_SET_DEFAULT_LAYER(2), // set dvorak layout + [8] = ACTION_SET_DEFAULT_LAYER(3), // set workman layout }; diff --git a/keyboard/gh60/keymap_poker_bit.h b/keyboard/gh60/keymap_poker_bit.h index 7dc4efe019..982632d05b 100644 --- a/keyboard/gh60/keymap_poker_bit.h +++ b/keyboard/gh60/keymap_poker_bit.h @@ -1,109 +1,50 @@ +// Poker fix with toggle and bit operation +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * Poker Layer - */ - /* Layer x000: Poker Default Layer - * ,-----------------------------------------------------------. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ + /* Keymap 0: qwerty */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* Layer x001: Poker with Arrow */ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), +}; +static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { + /* Overlay 0: Poker Default + Fn'd */ + KEYMAP_ANSI( + TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + CAPS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN4, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), + /* Overlay 1: Poker with Arrow */ KEYMAP_ANSI( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT), - /* Layer x010: Poker with Esc */ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PGUP, \ + TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END), + /* Overlay 2: Poker with Esc */ KEYMAP_ANSI( ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), - /* Layer x011: Poker with Arrow and Esc */ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), + /* Overlay 3: Poker with Arrow + Fn'd */ KEYMAP_ANSI( - ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ - TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT), - /* - * Poker Momentary Fn Layer - */ - /* Layer x100: Poker Default + Fn'd */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), - /* Layer x101: Poker with Arrow + Fn'd */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), - /* Layer x110: Poker with Esc + Fn'd */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS), - /* Layer x111: Poker with Arrow and Esc + Fn'd */ - KEYMAP_ANSI( - GRV, F9, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN0, FN2, HOME,PGDN,END), - /* colemak */ - [8] = KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - LCTL,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), - /* workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL), + TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), }; - -/* - * Fn action definition - */ static const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ - [0] = ACTION_LAYER_BIT_TOGGLE(1), // FN0 Poker Arrow toggle(Space) - [1] = ACTION_LAYER_BIT_TOGGLE(2), // FN1 Poker Esc toggle(Q) - [2] = ACTION_LAYER_BIT(4), // FN2 Poker Fn - [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) + [0] = ACTION_OVERLAY_INV4(0b0101, 0), // Poker Fn(with fix for Esc) + [1] = ACTION_OVERLAY_TOGGLE(1), // Poker Arrow toggle + [2] = ACTION_OVERLAY_TOGGLE(2), // Poker Esc toggle + [3] = ACTION_OVERLAY_INV4(0b1101, 0), // Poker Fn(with fix for Arrow) + [4] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) }; - diff --git a/keyboard/gh60/keymap_poker_set.h b/keyboard/gh60/keymap_poker_set.h index 9d77617981..bf4d8959f1 100644 --- a/keyboard/gh60/keymap_poker_set.h +++ b/keyboard/gh60/keymap_poker_set.h @@ -1,88 +1,59 @@ +// Poker fix with set(state transition) +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Poker Default Layer - * ,-----------------------------------------------------------. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| - * |-----------------------------------------------------------| - * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - /* Layer 0: qwerty */ + /* Keymap 0: qwerty */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer 1: colemak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer 2: dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer3: workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* Layer 4: Poker with Arrow */ +}; +static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { + /* Overlay 0: Poker with Arrow */ KEYMAP_ANSI( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT), - /* Layer 5: Poker with Esc */ + /* Overlay 1: Poker with Esc */ KEYMAP_ANSI( ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), - /* Layer 6: Poker with Arrow and Esc */ + /* Overlay 2: Poker with Arrow and Esc */ KEYMAP_ANSI( ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT), - /* Layer 7: Poker Fn'd */ + /* Overlay 3: Poker Fn'd */ KEYMAP_ANSI( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), - /* Layer 8: Poker Fn'd arrow */ + /* Overlay 4: Poker Fn'd arrow */ KEYMAP_ANSI( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), - /* Layer 9: Poker Fn'd Esc */ + /* Overlay 5: Poker Fn'd Esc */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), - /* Layer 10: Poker Fn'd Arrow + Esc */ + /* Overlay 6: Poker Fn'd Arrow + Esc */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ @@ -96,15 +67,15 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ static const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ - [0] = ACTION_LAYER_SET_P(7), // FN0 move to Fn'd when press - [1] = ACTION_LAYER_SET_P(8), // FN1 move to Fn'd arrow when press - [2] = ACTION_LAYER_SET_P(9), // FN2 move to Fn'd Esc when press - [3] = ACTION_LAYER_SET_P(10), // FN3 move to Fn'd arrow + Esc when press + [0] = ACTION_OVERLAY_SET_P(3), // FN0 move to Fn'd when press + [1] = ACTION_OVERLAY_SET_P(4), // FN1 move to Fn'd arrow when press + [2] = ACTION_OVERLAY_SET_P(5), // FN2 move to Fn'd Esc when press + [3] = ACTION_OVERLAY_SET_P(6), // FN3 move to Fn'd arrow + Esc when press - [4] = ACTION_LAYER_SET_R(0), // FN4 move to default when release - [5] = ACTION_LAYER_SET_R(4), // FN5 move to arrow when release - [6] = ACTION_LAYER_SET_R(5), // FN6 move to Esc when release - [7] = ACTION_LAYER_SET_R(6), // FN7 move to arrow + Esc when release + [4] = ACTION_OVERLAY_CLEAR, // FN4 clear overlay when release + [5] = ACTION_OVERLAY_SET_R(0), // FN5 move to arrow when release + [6] = ACTION_OVERLAY_SET_R(1), // FN6 move to Esc when release + [7] = ACTION_OVERLAY_SET_R(2), // FN7 move to arrow + Esc when release [8] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN8 Task(RControl,RShift+Esc) }; -- cgit v1.2.3 From 75a92ff653735635289a204176e60aa80c33bc7f Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 21 Feb 2013 10:15:08 +0900 Subject: Fix keymap of gh60 and hhkb --- keyboard/gh60/keymap.c | 37 ++++++++++++++++---------------- keyboard/hhkb/config.h | 2 ++ keyboard/hhkb/config_iwrap.h | 2 ++ keyboard/hhkb/keymap.c | 51 ++++++++++++++++---------------------------- 4 files changed, 40 insertions(+), 52 deletions(-) (limited to 'keyboard') diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c index 391348e984..77ec09cfd6 100644 --- a/keyboard/gh60/keymap.c +++ b/keyboard/gh60/keymap.c @@ -90,30 +90,30 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP_ANSI( ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,FN4, FN4, FN1), + LCTL,A, S, D, F, G, H, J, K, L, FN2, QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,FN3, FN3, FN0), /* Keymap 1: colemak */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN1), + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), /* Keymap 2: dvorak */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN1), + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), /* Keymap: workman */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN1), + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), }; static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { @@ -130,7 +130,7 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Shift | | | | | | +| -|End|PgD|Dow|Shift | * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Fn0 | + * |Ctrl|Gui |Alt | Space |Alt |Gui |App | | * `-----------------------------------------------------------' */ KEYMAP_ANSI( @@ -138,7 +138,7 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, TRNS), /* Overlay 1: Vi mode (Slash) * ,-----------------------------------------------------------. * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | @@ -147,7 +147,7 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | * |-----------------------------------------------------------| - * |Shift | | | | | |Hom|PgD|PgU|End|Fn0|Shift | + * |Shift | | | | | |Hom|PgD|PgU|End| |Shift | * |-----------------------------------------------------------| * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| * `-----------------------------------------------------------' @@ -156,7 +156,7 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \ LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ - LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, FN0, RSFT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), /* Overlay 2: Mouse mode (Semicolon/App) * ,-----------------------------------------------------------. @@ -164,31 +164,30 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Tab | | | | | |MwL|MwD|MwU|MwR| | | | | * |-----------------------------------------------------------| - * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR|Fn0| |Return | + * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR| | |Return | * |-----------------------------------------------------------| * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space | |Fn0 |Fn0 | | + * |Ctrl|Gui |Alt | Space | | | | | * `-----------------------------------------------------------' * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \ - LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,FN0, TRNS, ENT, \ + LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \ LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ - LCTL,LGUI,LALT, BTN1, TRNS,FN0, FN0, RCTL), + LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL), }; /* * Fn action definition */ static const uint16_t PROGMEM fn_actions[] = { - ACTION_LAYER_DEFAULT, // FN0 - ACTION_LAYER_SET(0), // FN1 - ACTION_LAYER_SET_TAP_KEY(1, KC_SLASH), // FN2 - ACTION_LAYER_SET_TAP_KEY(2, KC_SCLN), // FN3 - ACTION_LAYER_SET(2), // FN4 + ACTION_OVERLAY_TAP_TOGGLE(0), // FN0 + ACTION_OVERLAY_TAP_KEY(1, KC_SLASH), // FN1 + ACTION_OVERLAY_TAP_KEY(2, KC_SCLN), // FN2 + ACTION_OVERLAY(2), // FN3 }; #endif diff --git a/keyboard/hhkb/config.h b/keyboard/hhkb/config.h index 5fcec95eb2..72e4d26e92 100644 --- a/keyboard/hhkb/config.h +++ b/keyboard/hhkb/config.h @@ -36,6 +36,8 @@ along with this program. If not, see . #define MATRIX_ROWS 8 #define MATRIX_COLS 8 +/* To use new keymap framework */ +#define USE_KEYMAP_V2 /* * Boot magic keys diff --git a/keyboard/hhkb/config_iwrap.h b/keyboard/hhkb/config_iwrap.h index 734d669774..d50b704d72 100644 --- a/keyboard/hhkb/config_iwrap.h +++ b/keyboard/hhkb/config_iwrap.h @@ -31,6 +31,8 @@ along with this program. If not, see . #define MATRIX_ROWS 8 #define MATRIX_COLS 8 +/* To use new keymap framework */ +#define USE_KEYMAP_V2 /* key combination for command */ #define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) diff --git a/keyboard/hhkb/keymap.c b/keyboard/hhkb/keymap.c index ef21282ff1..1fb65873d1 100644 --- a/keyboard/hhkb/keymap.c +++ b/keyboard/hhkb/keymap.c @@ -85,7 +85,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ - LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,FN0, \ + LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ LGUI,LALT, SPC, RALT,RGUI), /* Layer 2: Vi mode (Slash) @@ -104,7 +104,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \ LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ - LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN0, RSFT,NO, \ + LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS,RSFT,NO, \ LGUI,LALT, SPC, RALT,RGUI), /* Layer 3: Mouse mode (Semicolon) @@ -123,9 +123,9 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \ - LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,FN0, QUOT,ENT, \ + LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,SLSH,RSFT,NO, \ - LGUI,LALT, BTN1, RALT,FN0), + LGUI,LALT, BTN1, RALT,TRNS), /* Layer 4: Matias half keyboard style (Space) * ,-----------------------------------------------------------. @@ -144,7 +144,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \ LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \ LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \ - LGUI,LALT, FN0, RALT,RGUI), + LGUI,LALT, TRNS, RALT,RGUI), /* Layer5: another Mouse mode (Space) * ,-----------------------------------------------------------. @@ -164,7 +164,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \ LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,NO, NO, ENT, \ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT,NO, \ - LGUI,LALT, FN0, RALT,RGUI), + LGUI,LALT, TRNS, RALT,RGUI), }; @@ -182,26 +182,23 @@ enum function_id { */ // TODO: use [1] = KEYMAP(...) to prevent from changing index of element? static const uint16_t PROGMEM fn_actions[] = { - ACTION_LAYER_DEFAULT, // FN0 - ACTION_LAYER_SET(1), // FN1 - ACTION_LAYER_SET_TAP_KEY(2, KC_SLASH), // FN2 Layer with Slash - ACTION_LAYER_SET_TAP_KEY(3, KC_SCLN), // FN3 Layer with Semicolon + ACTION_DEFAULT_LAYER, // FN0 + ACTION_KEYMAP(1), // FN1 + ACTION_KEYMAP_TAP_KEY(2, KC_SLASH), // FN2 Layer with Slash + ACTION_KEYMAP_TAP_KEY(3, KC_SCLN), // FN3 Layer with Semicolon - ACTION_LAYER_SET(3), // FN4 -// ACTION_LAYER_SET_TOGGLE(3), // FN4 + ACTION_KEYMAP(3), // FN4 +// ACTION_KEYMAP_TOGGLE(3), // FN4 // ACTION_FUNCTION(MACRO, 0), // FN4 - ACTION_LAYER_SET_TAP_KEY(5, KC_SPC), // FN5 + ACTION_KEYMAP_TAP_KEY(5, KC_SPC), // FN5 // ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // FN6 Control with tap Backspace ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // FN6 Control with tap Backspace ACTION_RMOD_TAP_KEY(KC_RCTL, KC_ENT), // FN7 Control with tap Enter ACTION_LMOD_ONESHOT(KC_LSFT), // FN8 Oneshot Shift - ACTION_LAYER_SET_TAP_TOGGLE(1), // FN9 - ACTION_LAYER_BIT_TAP_KEY(1, KC_GRV), // FN10 Layer with Grave - //ACTION_LAYER_BIT(1), // FN10 - //ACTION_LAYER_BIT_TAP_TOGGLE(1), // FN10 - ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // FN11 Function: LShift with tap '(' - ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // FN12 Function: RShift with tap ')' - ACTION_FUNCTION(MACRO, 1), // FN13 Macro: + [9] = ACTION_KEYMAP_TAP_TOGGLE(1), // FN9 + [11] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // FN11 Function: LShift with tap '(' + [12] = ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // FN12 Function: RShift with tap ')' + [13] = ACTION_FUNCTION(MACRO, 1), // FN13 Macro: }; @@ -230,7 +227,7 @@ static const prog_macro_t *get_macro(uint8_t id, bool pressed) /* * user defined action function */ -void keymap_call_function(keyrecord_t *record, uint8_t id, uint8_t opt) +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { keyevent_t event = record->event; uint8_t tap_count = record->tap_count; @@ -328,15 +325,3 @@ action_t keymap_fn_to_action(uint8_t keycode) } return action; } - -/* convert key to action */ -action_t action_for_key(uint8_t layer, key_t key) -{ - uint8_t keycode = keymap_key_to_keycode(layer, key); - switch (keycode) { - case KC_FN0 ... KC_FN31: - return keymap_fn_to_action(keycode); - default: - return keymap_keycode_to_action(keycode); - } -} -- cgit v1.2.3 From 6778324de2f8cbdf4eeada7b2be05937dc833e9b Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 25 Feb 2013 15:48:34 +0900 Subject: Fix keymap MACRO of pc98 adn hhkb --- keyboard/hhkb/keymap.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'keyboard') diff --git a/keyboard/hhkb/keymap.c b/keyboard/hhkb/keymap.c index 1fb65873d1..d4e009ede6 100644 --- a/keyboard/hhkb/keymap.c +++ b/keyboard/hhkb/keymap.c @@ -65,9 +65,9 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - FN6, A, S, D, F, G, H, J, K, L, FN3, QUOT,FN7, \ - FN8, Z, X, C, V, B, N, M, COMM,DOT, FN2, FN12,FN9, \ - LGUI,LALT, FN5, FN13,FN4), + LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN7, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, FN12,FN9, \ + LGUI,LALT, FN5, FN14,FN4), /* Layer 1: HHKB mode (HHKB Fn) * ,-----------------------------------------------------------. @@ -173,7 +173,11 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { LSHIFT_LPAREN, RSHIFT_RPAREN, - MACRO = 0xff +}; + +enum macro_id { + SHIFT_D, + HELLO, }; @@ -198,28 +202,30 @@ static const uint16_t PROGMEM fn_actions[] = { [9] = ACTION_KEYMAP_TAP_TOGGLE(1), // FN9 [11] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // FN11 Function: LShift with tap '(' [12] = ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // FN12 Function: RShift with tap ')' - [13] = ACTION_FUNCTION(MACRO, 1), // FN13 Macro: + [13] = ACTION_MACRO(SHIFT_D), + [14] = ACTION_MACRO(HELLO), }; /* * Macro definition */ -#define MACRO(...) ({ static prog_macro_t _m[] PROGMEM = { __VA_ARGS__ }; _m; }) -#define MACRO_NONE 0 -static const prog_macro_t *get_macro(uint8_t id, bool pressed) +const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + keyevent_t event = record->event; + //uint8_t tap_count = record->tap_count; + switch (id) { - case 0: - return (pressed ? + case SHIFT_D: + return (event.pressed ? MACRO( MD(LSHIFT), D(D), END ) : MACRO( U(D), MU(LSHIFT), END ) ); - case 1: - return (pressed ? - MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ) : + case HELLO: + return (event.pressed ? + MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : MACRO_NONE ); } - return 0; + return MACRO_NONE; } @@ -300,9 +306,6 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) } } break; - case MACRO: - action_macro_play(get_macro(opt, event.pressed)); - break; } } -- cgit v1.2.3 From a207e848b3b308406263576c1e0d066067888416 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 26 Feb 2013 16:27:09 +0900 Subject: Add tap flags on record_t --- keyboard/hhkb/keymap.c | 143 ++++++++++++++++++++++--------------------------- 1 file changed, 64 insertions(+), 79 deletions(-) (limited to 'keyboard') diff --git a/keyboard/hhkb/keymap.c b/keyboard/hhkb/keymap.c index d4e009ede6..0d07c79cf3 100644 --- a/keyboard/hhkb/keymap.c +++ b/keyboard/hhkb/keymap.c @@ -56,18 +56,18 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs| * |-----------------------------------------------------------| - * |Fn6 | A| S| D| F| G| H| J| K| L|Fn3| '|Return | + * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn4 | * |-----------------------------------------------------------| - * |Fn8 | Z| X| C| V| B| N| M| ,| .|Fn2|Fn12 |Fn1| + * |Fn5 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1| * `-----------------------------------------------------------' - * |Gui|Alt | Fn5 |Alt |Fn4| + * |Gui|Alt | Fn6 |Alt |Fn7| * `-------------------------------------------' */ KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ - LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN7, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, FN12,FN9, \ - LGUI,LALT, FN5, FN14,FN4), + LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN4, \ + FN5,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \ + LGUI,LALT, FN6, RALT,FN7), /* Layer 1: HHKB mode (HHKB Fn) * ,-----------------------------------------------------------. @@ -77,7 +77,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------| * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift |Fn0| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | | * `-----------------------------------------------------------' * |Gui|Alt | Space |Alt |Gui| * `-------------------------------------------' @@ -127,7 +127,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,SLSH,RSFT,NO, \ LGUI,LALT, BTN1, RALT,TRNS), - /* Layer 4: Matias half keyboard style (Space) + /* Layer 4: Matias half-qwerty keyboard style (Space) * ,-----------------------------------------------------------. * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc| * |-----------------------------------------------------------| @@ -176,7 +176,8 @@ enum function_id { }; enum macro_id { - SHIFT_D, + LSHIFT_PAREN, + RSHIFT_PAREN, HELLO, }; @@ -184,26 +185,26 @@ enum macro_id { /* * Fn action definition */ -// TODO: use [1] = KEYMAP(...) to prevent from changing index of element? static const uint16_t PROGMEM fn_actions[] = { - ACTION_DEFAULT_LAYER, // FN0 - ACTION_KEYMAP(1), // FN1 - ACTION_KEYMAP_TAP_KEY(2, KC_SLASH), // FN2 Layer with Slash - ACTION_KEYMAP_TAP_KEY(3, KC_SCLN), // FN3 Layer with Semicolon - - ACTION_KEYMAP(3), // FN4 -// ACTION_KEYMAP_TOGGLE(3), // FN4 -// ACTION_FUNCTION(MACRO, 0), // FN4 - ACTION_KEYMAP_TAP_KEY(5, KC_SPC), // FN5 -// ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // FN6 Control with tap Backspace - ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // FN6 Control with tap Backspace - ACTION_RMOD_TAP_KEY(KC_RCTL, KC_ENT), // FN7 Control with tap Enter - ACTION_LMOD_ONESHOT(KC_LSFT), // FN8 Oneshot Shift - [9] = ACTION_KEYMAP_TAP_TOGGLE(1), // FN9 - [11] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // FN11 Function: LShift with tap '(' - [12] = ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // FN12 Function: RShift with tap ')' - [13] = ACTION_MACRO(SHIFT_D), - [14] = ACTION_MACRO(HELLO), + [0] = ACTION_DEFAULT_LAYER, // Default layer(not used) +// [1] = ACTION_KEYMAP(1), // HHKB layer + [1] = ACTION_KEYMAP_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) + [2] = ACTION_KEYMAP_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* + [3] = ACTION_KEYMAP_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* + [4] = ACTION_RMOD_TAP_KEY(KC_RCTL, KC_ENT), // RControl with tap Enter* + [5] = ACTION_LMOD_ONESHOT(KC_LSFT), // Oneshot Shift* +// [6] = ACTION_KEYMAP_TAP_KEY(4, KC_SPC), // Half-qwerty layer with Space + [6] = ACTION_KEYMAP_TAP_KEY(5, KC_SPC), // Mousekey layer with Space +// [7] = ACTION_KEYMAP(3), // Mousekey layer + [7] = ACTION_KEYMAP_TOGGLE(3), // Mousekey layer(toggle) + +// [8] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace +// [9] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc +// [11] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '(' +// [12] = ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // Function: RShift with tap ')' +// [13] = ACTION_MACRO_TAP(LSHIFT_PAREN), // Macro: LShift with tap '(' +// [14] = ACTION_MACRO_TAP(RSHIFT_PAREN), // Macro: RShift with tap ')' +// [15] = ACTION_MACRO(HELLO), // Macro: say hello }; @@ -213,13 +214,25 @@ static const uint16_t PROGMEM fn_actions[] = { const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { keyevent_t event = record->event; - //uint8_t tap_count = record->tap_count; + tap_t tap = record->tap; switch (id) { - case SHIFT_D: - return (event.pressed ? - MACRO( MD(LSHIFT), D(D), END ) : - MACRO( U(D), MU(LSHIFT), END ) ); + case LSHIFT_PAREN: + if (tap.count > 0 && !tap.interrupted) { + return (event.pressed ? + MACRO( MD(LSHIFT), D(9), U(9), MU(LSHIFT), END ) : MACRO_NONE); + } else { + return (event.pressed ? + MACRO( MD(LSHIFT), END ) : MACRO( MU(LSHIFT), END ) ); + } + case RSHIFT_PAREN: + if (tap.count > 0 && !tap.interrupted) { + return (event.pressed ? + MACRO( MD(RSHIFT), D(0), U(0), MU(RSHIFT), END ) : MACRO_NONE); + } else { + return (event.pressed ? + MACRO( MD(RSHIFT), END ) : MACRO( MU(RSHIFT), END ) ); + } case HELLO: return (event.pressed ? MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : @@ -236,74 +249,46 @@ const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t op void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { keyevent_t event = record->event; - uint8_t tap_count = record->tap_count; - - debug("action_call_function: "); - if (event.pressed) debug("pressed"); else debug("released"); - debug(" id: "); debug_hex(id); - debug(" tap_count: "); debug_dec(tap_count); - debug("\n"); + tap_t tap = record->tap; switch (id) { case LSHIFT_LPAREN: // LShft + tap '(' + // NOTE: cant use register_code to avoid conflicting with magic key bind if (event.pressed) { - if (tap_count == 0) { + if (tap.count == 0 || tap.interrupted) { add_mods(MOD_BIT(KC_LSHIFT)); } else { - if (waiting_buffer_has_anykey_pressed()) { - // ad hoc: set 0 to cancel tap - record->tap_count = 0; - add_mods(MOD_BIT(KC_LSHIFT)); - } else { - // NOTE to avoid conflicting command key bind(LShift+RShift) - //register_code(KC_LSHIFT); - //register_code(KC_9); - host_add_mods(MOD_BIT(KC_LSHIFT)); - host_add_key(KC_9); - host_send_keyboard_report(); - } - } - } else { - if (tap_count == 0) { - del_mods(MOD_BIT(KC_LSHIFT)); - } else { - //unregister_code(KC_9); - //unregister_code(KC_LSHIFT); + host_add_mods(MOD_BIT(KC_LSHIFT)); + host_add_key(KC_9); + host_send_keyboard_report(); host_del_mods(MOD_BIT(KC_LSHIFT)); host_del_key(KC_9); host_send_keyboard_report(); } + } else { + if (tap.count == 0 || tap.interrupted) { + del_mods(MOD_BIT(KC_LSHIFT)); + } } break; case RSHIFT_RPAREN: // RShift + tap ')' if (event.pressed) { - if (tap_count == 0) { + if (tap.count == 0 || tap.interrupted) { add_mods(MOD_BIT(KC_RSHIFT)); } else { - if (waiting_buffer_has_anykey_pressed()) { - // ad hoc: set 0 to cancel tap - record->tap_count = 0; - add_mods(MOD_BIT(KC_RSHIFT)); - } else { - //register_code(KC_RSHIFT); - //register_code(KC_0); - host_add_mods(MOD_BIT(KC_RSHIFT)); - host_add_key(KC_0); - host_send_keyboard_report(); - } - } - } else { - if (tap_count == 0) { - del_mods(MOD_BIT(KC_RSHIFT)); - } else { - //unregister_code(KC_0); - //unregister_code(KC_RSHIFT); + host_add_mods(MOD_BIT(KC_RSHIFT)); + host_add_key(KC_0); + host_send_keyboard_report(); host_del_mods(MOD_BIT(KC_RSHIFT)); host_del_key(KC_0); host_send_keyboard_report(); } + } else { + if (tap.count == 0 || tap.interrupted) { + del_mods(MOD_BIT(KC_RSHIFT)); + } } break; } -- cgit v1.2.3 From 40f1a4930a10ce9253c1215949b497c322db41da Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 27 Feb 2013 10:32:46 +0900 Subject: Fix SET_DEFAULT_LAYER action and keymap of gh60 --- keyboard/gh60/keymap.c | 55 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 15 deletions(-) (limited to 'keyboard') diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c index 77ec09cfd6..af7af64d15 100644 --- a/keyboard/gh60/keymap.c +++ b/keyboard/gh60/keymap.c @@ -107,20 +107,15 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - /* Keymap: workman */ + /* Keymap 3: workman */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), -}; -static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * Funky - */ - /* Overlay 0: HHKB mode + /* Overlay 4: HHKB mode * ,-----------------------------------------------------------. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | * |-----------------------------------------------------------| @@ -134,12 +129,12 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ KEYMAP_ANSI( - PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, TRNS), - /* Overlay 1: Vi mode (Slash) + LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS), + /* Overlay 5: Vi mode (Slash) * ,-----------------------------------------------------------. * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | * |-----------------------------------------------------------| @@ -158,7 +153,7 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \ LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), - /* Overlay 2: Mouse mode (Semicolon/App) + /* Overlay 6: Mouse mode (Semicolon/App) * ,-----------------------------------------------------------. * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | * |-----------------------------------------------------------| @@ -178,16 +173,46 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \ LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL), + /* Overlay 7: Layout selector + * ,-----------------------------------------------------------. + * | Lq| Lc| Ld| Lw| | | | | | | | | | | + * |-----------------------------------------------------------| + * | |Lq |Lw | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Ld | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Lc | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + * Lq: set Qwerty layout + * Lc: set Colemak layout + * Ld: set Dvorak layout + * Lw: set Workman layout + */ + KEYMAP_ANSI( + FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), }; +static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {}; + /* * Fn action definition */ static const uint16_t PROGMEM fn_actions[] = { - ACTION_OVERLAY_TAP_TOGGLE(0), // FN0 - ACTION_OVERLAY_TAP_KEY(1, KC_SLASH), // FN1 - ACTION_OVERLAY_TAP_KEY(2, KC_SCLN), // FN2 - ACTION_OVERLAY(2), // FN3 + [0] = ACTION_KEYMAP(4), // FN0 + [1] = ACTION_KEYMAP_TAP_KEY(5, KC_SLASH), // FN1 + [2] = ACTION_KEYMAP_TAP_KEY(6, KC_SCLN), // FN2 + [3] = ACTION_KEYMAP(6), // FN3 + [4] = ACTION_KEYMAP(7), // to Layout selector + [5] = ACTION_SET_DEFAULT_LAYER(0), // set qwerty layout + [6] = ACTION_SET_DEFAULT_LAYER(1), // set colemak layout + [7] = ACTION_SET_DEFAULT_LAYER(2), // set dvorak layout + [8] = ACTION_SET_DEFAULT_LAYER(3), // set workman layout }; #endif -- cgit v1.2.3 From 1aa067e5414873559f59e310f38bb43e8803a45f Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 5 Mar 2013 02:42:28 +0900 Subject: Clean action.h and add keymap doc --- keyboard/gh60/keymap.c | 18 +++++++++--------- keyboard/gh60/keymap_poker.h | 12 ++++++------ keyboard/gh60/keymap_poker_set.h | 16 ++++++++-------- 3 files changed, 23 insertions(+), 23 deletions(-) (limited to 'keyboard') diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c index af7af64d15..1f5344d4c6 100644 --- a/keyboard/gh60/keymap.c +++ b/keyboard/gh60/keymap.c @@ -204,15 +204,15 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {}; * Fn action definition */ static const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_KEYMAP(4), // FN0 - [1] = ACTION_KEYMAP_TAP_KEY(5, KC_SLASH), // FN1 - [2] = ACTION_KEYMAP_TAP_KEY(6, KC_SCLN), // FN2 - [3] = ACTION_KEYMAP(6), // FN3 - [4] = ACTION_KEYMAP(7), // to Layout selector - [5] = ACTION_SET_DEFAULT_LAYER(0), // set qwerty layout - [6] = ACTION_SET_DEFAULT_LAYER(1), // set colemak layout - [7] = ACTION_SET_DEFAULT_LAYER(2), // set dvorak layout - [8] = ACTION_SET_DEFAULT_LAYER(3), // set workman layout + [0] = ACTION_KEYMAP_MOMENTARY(4), + [1] = ACTION_KEYMAP_TAP_KEY(5, KC_SLASH), + [2] = ACTION_KEYMAP_TAP_KEY(6, KC_SCLN), + [3] = ACTION_KEYMAP_MOMENTARY(6), + [4] = ACTION_KEYMAP_MOMENTARY(7), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout }; #endif diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h index 2bbda61064..3e0921ad93 100644 --- a/keyboard/gh60/keymap_poker.h +++ b/keyboard/gh60/keymap_poker.h @@ -92,13 +92,13 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { }; static const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ - [0] = ACTION_OVERLAY(2), // to Fn overlay + [0] = ACTION_OVERLAY_MOMENTARY(2), // to Fn overlay [1] = ACTION_OVERLAY_TOGGLE(0), // toggle arrow overlay [2] = ACTION_OVERLAY_TOGGLE(1), // toggle Esc overlay [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // Task(RControl,RShift+Esc) - [4] = ACTION_OVERLAY(3), // to Layout selector - [5] = ACTION_SET_DEFAULT_LAYER(0), // set qwerty layout - [6] = ACTION_SET_DEFAULT_LAYER(1), // set colemak layout - [7] = ACTION_SET_DEFAULT_LAYER(2), // set dvorak layout - [8] = ACTION_SET_DEFAULT_LAYER(3), // set workman layout + [4] = ACTION_OVERLAY_MOMENTARY(3), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout }; diff --git a/keyboard/gh60/keymap_poker_set.h b/keyboard/gh60/keymap_poker_set.h index bf4d8959f1..eaaf3159db 100644 --- a/keyboard/gh60/keymap_poker_set.h +++ b/keyboard/gh60/keymap_poker_set.h @@ -67,15 +67,15 @@ static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { */ static const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ - [0] = ACTION_OVERLAY_SET_P(3), // FN0 move to Fn'd when press - [1] = ACTION_OVERLAY_SET_P(4), // FN1 move to Fn'd arrow when press - [2] = ACTION_OVERLAY_SET_P(5), // FN2 move to Fn'd Esc when press - [3] = ACTION_OVERLAY_SET_P(6), // FN3 move to Fn'd arrow + Esc when press + [0] = ACTION_OVERLAY_SET(3, ON_PRESS), // FN0 move to Fn'd when press + [1] = ACTION_OVERLAY_SET(4, ON_PRESS), // FN1 move to Fn'd arrow when press + [2] = ACTION_OVERLAY_SET(5, ON_PRESS), // FN2 move to Fn'd Esc when press + [3] = ACTION_OVERLAY_SET(6, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press - [4] = ACTION_OVERLAY_CLEAR, // FN4 clear overlay when release - [5] = ACTION_OVERLAY_SET_R(0), // FN5 move to arrow when release - [6] = ACTION_OVERLAY_SET_R(1), // FN6 move to Esc when release - [7] = ACTION_OVERLAY_SET_R(2), // FN7 move to arrow + Esc when release + [4] = ACTION_OVERLAY_CLEAR(ON_RELEASE), // FN4 clear overlay when release + [5] = ACTION_OVERLAY_SET(0, ON_RELEASE), // FN5 move to arrow when release + [6] = ACTION_OVERLAY_SET(1, ON_RELEASE), // FN6 move to Esc when release + [7] = ACTION_OVERLAY_SET(2, ON_RELEASE), // FN7 move to arrow + Esc when release [8] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN8 Task(RControl,RShift+Esc) }; -- cgit v1.2.3 From 5808317b694004c43a6e0f76e9715415cce19a25 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 5 Mar 2013 15:41:21 +0900 Subject: Fix keymap for new framework --- keyboard/IIgs/Makefile | 95 ++++++++ keyboard/IIgs/README | 45 ++++ keyboard/IIgs/config.h | 68 ++++++ keyboard/IIgs/doc/PIN_BYPASS.jpg | Bin 0 -> 329437 bytes keyboard/IIgs/doc/Teensy++_Mod.jpg | Bin 0 -> 74137 bytes keyboard/IIgs/hid_listen.mac | Bin 0 -> 13524 bytes keyboard/IIgs/keymap.c | 142 +++++++++++ keyboard/IIgs/led.c | 24 ++ keyboard/IIgs/matrix.c | 363 ++++++++++++++++++++++++++++ keyboard/IIgs_Standard/Makefile | 95 -------- keyboard/IIgs_Standard/README | 45 ---- keyboard/IIgs_Standard/config.h | 68 ------ keyboard/IIgs_Standard/doc/PIN_BYPASS.jpg | Bin 329437 -> 0 bytes keyboard/IIgs_Standard/doc/Teensy++_Mod.jpg | Bin 74137 -> 0 bytes keyboard/IIgs_Standard/hid_listen.mac | Bin 13524 -> 0 bytes keyboard/IIgs_Standard/keymap.c | 142 ----------- keyboard/IIgs_Standard/led.c | 24 -- keyboard/IIgs_Standard/matrix.c | 363 ---------------------------- keyboard/hhkb/keymap.c | 6 +- 19 files changed, 740 insertions(+), 740 deletions(-) create mode 100644 keyboard/IIgs/Makefile create mode 100644 keyboard/IIgs/README create mode 100644 keyboard/IIgs/config.h create mode 100644 keyboard/IIgs/doc/PIN_BYPASS.jpg create mode 100644 keyboard/IIgs/doc/Teensy++_Mod.jpg create mode 100755 keyboard/IIgs/hid_listen.mac create mode 100644 keyboard/IIgs/keymap.c create mode 100644 keyboard/IIgs/led.c create mode 100644 keyboard/IIgs/matrix.c delete mode 100644 keyboard/IIgs_Standard/Makefile delete mode 100644 keyboard/IIgs_Standard/README delete mode 100644 keyboard/IIgs_Standard/config.h delete mode 100644 keyboard/IIgs_Standard/doc/PIN_BYPASS.jpg delete mode 100644 keyboard/IIgs_Standard/doc/Teensy++_Mod.jpg delete mode 100755 keyboard/IIgs_Standard/hid_listen.mac delete mode 100644 keyboard/IIgs_Standard/keymap.c delete mode 100644 keyboard/IIgs_Standard/led.c delete mode 100644 keyboard/IIgs_Standard/matrix.c (limited to 'keyboard') diff --git a/keyboard/IIgs/Makefile b/keyboard/IIgs/Makefile new file mode 100644 index 0000000000..c18e9720c7 --- /dev/null +++ b/keyboard/IIgs/Makefile @@ -0,0 +1,95 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = IIgs_Standard + +# Directory common source filess exist +TOP_DIR = ../.. + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# keyboard dependent files +SRC = keymap.c \ + matrix.c \ + led.c + +CONFIG_H = config.h + + +# MCU name, you MUST set this to match the board you are using +# type "make clean" after changing this, so all files will be rebuilt +#MCU = at90usb162 # Teensy 1.0 +#MCU = atmega32u4 # Teensy 2.0 +#MCU = at90usb646 # Teensy++ 1.0 +MCU = at90usb1286 # Teensy++ 2.0 + + +# Processor frequency. +# Normally the first thing your program should do is set the clock prescaler, +# so your program will run at the correct speed. You should also set this +# variable to same clock speed. The _delay_ms() macro uses this, and many +# examples use this variable to calculate timings. Do not add a "UL" here. +F_CPU = 16000000 + + +# Build Options +# comment out to disable the options. +# +MOUSEKEY_ENABLE = no # Mouse keys +#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support +EXTRAKEY_ENABLE = yes # Audio control and System control +#NKRO_ENABLE = yes # USB Nkey Rollover + + + +#---------------- Programming Options -------------------------- +PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex + + + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) + +include $(TOP_DIR)/protocol/pjrc.mk +include $(TOP_DIR)/common.mk +include $(TOP_DIR)/rules.mk diff --git a/keyboard/IIgs/README b/keyboard/IIgs/README new file mode 100644 index 0000000000..4f9cad1ca1 --- /dev/null +++ b/keyboard/IIgs/README @@ -0,0 +1,45 @@ +Replacable USB Controller for Apple IIgs/Standard(M0116) +JeffreySung(nattyman@gmail.com) + +=============================== + +Feature +------- +- Replaceable keyboard controller for Apple IIgs(A9M0330)/Standard(M0116) +- Teensy++ 2.0 required +- Some signal bypass required +- ADB keyboard doesn't use matrix for modifier keys. With virtual row for modifier keys, + these keys are merged into key matrix using virtual row. + +History +======= +- 2012.09.17 First Release +- 2012.09.17 CapsLock support +- 2012.09.19 Power button added +Build +===== +0. Just Type "Make" and return. + +Hardware +======== +PJRC Teensy +----------- +0. The following ports should not be connected to board. + From top view of Teensy++, from GND and counter clock wise. + -7,26(in keyboard PCB, these pins are VDD,GND) + -30,31(in Teensy++, these pins are Ref,GND respectively) + -5,6(D2,D3 for bluetooth in future) +1. Bypass #31 pin(from board) to E4(Teensy) +2. Bypass #30 pin(from board) to F2(Teensy) +3. Bypass #6 pin(from board) to A0(Teensy) +4. Refer doc directory + +To Do +===== +0. When DEBOUNCE defined, there is a errors. +1. Layer Change by toggling Clear Key +2. Eject Key add. (following files should be modified.) + common/keycode.h + common/keyboard.c +3. Use bluetooth +EOF diff --git a/keyboard/IIgs/config.h b/keyboard/IIgs/config.h new file mode 100644 index 0000000000..11acf87c07 --- /dev/null +++ b/keyboard/IIgs/config.h @@ -0,0 +1,68 @@ +/* +Copyright 2011 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +/* controller configuration */ +#include "controller_teensy.h" + + +/* USB Device descriptor parameter */ +/* for Apple +#define VENDOR_ID 0x05AC +#define PRODUCT_ID 0xBEE0 +*/ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xBEE0 +#define DEVICE_VER 0x0202 +#define MANUFACTURER t.m.k. +#define PRODUCT Apple Desktop Bus Keyboard + + +/* message strings */ +#define DESCRIPTION Apple M0116/A9M0660 keyboard firmware + + +/* matrix size */ +#define MATRIX_ROWS 11 // last row is virtual for modifier +#define MATRIX_COLS 8 +/* define if matrix has ghost */ +#define MATRIX_HAS_GHOST +/* Set 0 if need no debouncing */ +#define DEBOUNCE 5 + + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LCTRL) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + +/* layer switching */ +#define LAYER_SWITCH_DELAY 100 +#define LAYER_SEND_FN_TERM 300 + + +/* mouse keys */ +#ifdef MOUSEKEY_ENABLE +# define MOUSEKEY_DELAY_TIME 192 +#endif + + +#endif diff --git a/keyboard/IIgs/doc/PIN_BYPASS.jpg b/keyboard/IIgs/doc/PIN_BYPASS.jpg new file mode 100644 index 0000000000..2998f0c3f8 Binary files /dev/null and b/keyboard/IIgs/doc/PIN_BYPASS.jpg differ diff --git a/keyboard/IIgs/doc/Teensy++_Mod.jpg b/keyboard/IIgs/doc/Teensy++_Mod.jpg new file mode 100644 index 0000000000..146c1ab93c Binary files /dev/null and b/keyboard/IIgs/doc/Teensy++_Mod.jpg differ diff --git a/keyboard/IIgs/hid_listen.mac b/keyboard/IIgs/hid_listen.mac new file mode 100755 index 0000000000..8758fdf886 Binary files /dev/null and b/keyboard/IIgs/hid_listen.mac differ diff --git a/keyboard/IIgs/keymap.c b/keyboard/IIgs/keymap.c new file mode 100644 index 0000000000..cd33e223ac --- /dev/null +++ b/keyboard/IIgs/keymap.c @@ -0,0 +1,142 @@ +/* +Copyright 2012 Jeffrey Sung + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * Keymap for Apple IIgs/Standard Keyboard + */ +#include +#include +#include +#include "keycode.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "keymap.h" + + +// Convert physical keyboard layout to matrix array. +// This is a macro to define keymap easily in keyboard layout form. +#define KEYMAP( R10C5, \ + R3C7, R3C6, R3C5, R3C4, R3C3, R3C2, R3C1, R8C1, R8C0, R3C0, R0C0, R0C1, R0C2, R0C3, R4C4, R4C5, R4C6, R4C7, \ + R9C7, R9C6, R9C5, R9C4, R9C3, R9C2, R9C1, R9C0, R1C0, R1C1, R1C2, R1C3, R1C4, R2C4, R2C5, R2C6, R2C3, \ + R10C0,R7C7, R7C6, R7C5, R7C4, R7C3, R7C2, R7C1, R7C0, R0C4, R1C6, R1C7, R1C5, R2C0, R2C1, R2C2, R2C7, \ + R10C1,R6C7, R6C6, R6C5, R6C4, R6C3, R6C2, R6C1, R6C0, R0C5, R0C6, R4C0, R4C1, R4C2, \ + R10C4,R10C2,R10C3,R5C4, R5C7, R5C5, R5C6, R5C0, R5C2, R0C7, R5C1, R5C3, R4C3 \ +) { \ + { R0C0, R0C1, R0C2, R0C3, R0C4, R0C5, R0C6, R0C7 }, \ + { R1C0, R1C1, R1C2, R1C3, R1C4, R1C5, R1C6, R1C7 }, \ + { R2C0, R2C1, R2C2, R2C3, R2C4, R2C5, R2C6, R2C7 }, \ + { R3C0, R3C1, R3C2, R3C3, R3C4, R3C5, R3C6, R3C7 }, \ + { R4C0, R4C1, R4C2, R4C3, R4C4, R4C5, R4C6, R4C7 }, \ + { R5C0, R5C1, R5C2, R5C3, R5C4, R5C5, R5C6, R5C7 }, \ + { R6C0, R6C1, R6C2, R6C3, R6C4, R6C5, R6C6, R6C7 }, \ + { R7C0, R7C1, R7C2, R7C3, R7C4, R7C5, R7C6, R7C7 }, \ + { R8C0, R8C1, KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO }, \ + { R9C0, R9C1, R9C2, R9C3, R9C4, R9C5, R9C6, R9C7 }, \ + { R10C0,R10C1, R10C2, R10C3, R10C4,R10C5, KC_NO, KC_NO} \ +} + +#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) + + +// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. +static const uint8_t PROGMEM fn_layer[] = { + 0, // Fn0 + 1, // Fn1 + 2, // Fn2 + 3, // Fn3 + 4, // Fn4 + 0, // Fn5 + 3, // Fn6 + 3 // Fn7 +}; + +// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer. +// See layer.c for details. +static const uint8_t PROGMEM fn_keycode[] = { + KC_NO, // Fn0 + KC_NO, // Fn1 + KC_SLSH, // Fn2 + KC_SCLN, // Fn3 + KC_SPC, // Fn4 + KC_NO, // Fn5 + KC_NO, // Fn6 + KC_NO // Fn7 +}; + +static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. ,---------------, + * | POWER | | | + * |-----------------------------------------------------------| |---------------| + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |FN0| = | / | * | + * |-----------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7 | 8 | 9 | + | + * |-----------------------------------------------------' | |---------------| + * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return | | 4 | 5 | 6 | - | + * |-----------------------------------------------------------| |---------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| / |Shift | | 1 | 2 | 3 | E | + * |-----------------------------------------------------------| |-----------| N | + * |CAPS|Alt |Gui |` |SPC |BSLS |LFT|RGT|DN|UP| | 0 | . | T | + * `-----------------------------------------------------------' |---------------' + */ + KEYMAP( KC_PWR, + 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_BSPC, KC_FN1, KC_PEQL, KC_PSLS, KC_PAST, \ + 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_P7, KC_P8, KC_P9, KC_PPLS, \ + 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_P4, KC_P5, KC_P6, KC_PMNS, \ + KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_P1, KC_P2, KC_P3, \ + KC_CAPS,KC_LALT,KC_LGUI,KC_GRV, KC_SPC, KC_BSLS,KC_LEFT,KC_RGHT,KC_DOWN,KC_UP, KC_P0, KC_PDOT, KC_PENT), + + + /* Layer 1: Tenkey use Layer + * ,-----------------------------------------------------------. ,---------------, + * | POWER | | | + * |-----------------------------------------------------------| |---------------| + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |NLK| = | / | * | + * |-----------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |INS| 8 |PGU|V+ | + * |-----------------------------------------------------' | |---------------| + * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return | |DEL|UP |PGD|V- | + * |-----------------------------------------------------------| |---------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| / |Shift | |LFT|DN |RGT| E | + * |-----------------------------------------------------------| |-----------| N | + * |CAPS|Alt |Gui |` |SPC |BSLS |LFT|RGT|DN|UP| | 0 | . | T | + * `-----------------------------------------------------------' `---------------' + */ + KEYMAP( KC_PWR, \ + 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_BSPC, KC_FN1, KC_PEQL, KC_PSLS, KC_MUTE, \ + 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_INS, KC_P8, KC_PGUP, KC_VOLU, \ + 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_DEL, KC_UP, KC_PGDN, KC_VOLD, \ + KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_LEFT, KC_DOWN, KC_RIGHT, \ + KC_CAPS,KC_LALT,KC_LGUI,KC_GRV, KC_SPC, KC_BSLS,KC_LEFT,KC_RGHT,KC_DOWN,KC_UP, KC_P0, KC_PDOT, KC_PENT), +}; + + +uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col) +{ + return KEYCODE(layer, row, col); +} + +uint8_t keymap_fn_layer(uint8_t index) +{ + return pgm_read_byte(&fn_layer[index]); +} + +uint8_t keymap_fn_keycode(uint8_t index) +{ + return pgm_read_byte(&fn_keycode[index]); +} diff --git a/keyboard/IIgs/led.c b/keyboard/IIgs/led.c new file mode 100644 index 0000000000..f76545f0ba --- /dev/null +++ b/keyboard/IIgs/led.c @@ -0,0 +1,24 @@ +/* +Copyright 2011 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "stdint.h" +#include "led.h" + + +void led_set(uint8_t usb_led) +{ +} diff --git a/keyboard/IIgs/matrix.c b/keyboard/IIgs/matrix.c new file mode 100644 index 0000000000..6ca55b7ea2 --- /dev/null +++ b/keyboard/IIgs/matrix.c @@ -0,0 +1,363 @@ +/* +Copyright 2011 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "led.h" + + +#if (MATRIX_COLS > 16) +# error "MATRIX_COLS must not exceed 16" +#endif +#if (MATRIX_ROWS > 255) +# error "MATRIX_ROWS must not exceed 255" +#endif + + +#ifndef DEBOUNCE +# define DEBOUNCE 0 +#endif +static uint8_t debouncing = DEBOUNCE; + +// matrix state buffer(1:on, 0:off) +#if (MATRIX_COLS <= 8) +static uint8_t *matrix; +static uint8_t *matrix_prev; +static uint8_t _matrix0[MATRIX_ROWS]; +static uint8_t _matrix1[MATRIX_ROWS]; +#else +static uint16_t *matrix; +static uint16_t *matrix_prev; +static uint16_t _matrix0[MATRIX_ROWS]; +static uint16_t _matrix1[MATRIX_ROWS]; +#endif + +#ifdef MATRIX_HAS_GHOST +static bool matrix_has_ghost_in_row(uint8_t row); +#endif +static uint8_t read_col(uint8_t row); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + // Input with pull-up(DDR:0, PORT:1) + // Column C1 ~ C7 (PortC0-6) + // Column C0(Port E1) + DDRC &= ~0b01111111; + PORTC |= 0b01111111; + DDRE &= ~0b00000010; + PORTE |= 0b00000010; + //DDRB &= ~0b00000100; + //PORTB |= 0b00000100; + // modifier B3/4,F4/5,E4 always input + // A0 + //DDRA |= 0b00000001; + //PORTA &= 0b00000001; + //DDRB |= 0b00011000; + //PORTB &= 0b00011000; + //DDRF |= ~0b00110000; + //PORTF &= 0b00110000; + //DDRB &= ~0b00011000; + //PORTB |= 0b00011000; + //DDRF &= ~0b00110000; + //PORTF |= 0b00110000; + //DDRE &= ~0b00010000; + //PORTE |= 0b00010000; + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00; + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00; + matrix = _matrix0; + matrix_prev = _matrix1; +} + +uint8_t matrix_scan(void) +{ + if (!debouncing) { + uint8_t *tmp = matrix_prev; + matrix_prev = matrix; + matrix = tmp; + } + + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + unselect_rows(); + select_row(i); + _delay_us(30); // without this wait read unstable value. + if ( i == ( MATRIX_ROWS - 1 ) ) { // CHECK CAPS LOCK + if (host_keyboard_leds() & (1<");debug_hex(matrix[row]);debug("\n"); +// } +// } +// } + return (matrix[row] & (1<mods except E4(CAPSLOCK) + uint8_t tmp; + if ( row == 10 ) { + tmp = 0xC0; + tmp |= (PINB >> 3 ) & 0b00000011; // LEFT CTRL is 0bit in modifier (HID Spec) + // LEFT SHIFT is 1bit in modifier (HID Spec) + tmp |= (PINF >> 3 ) & 0b00000100; // LEFT ALT is 2bit in modifier (HID Spec) + tmp |= (PINF >> 1 ) & 0b00001000; // LEFT GUI is 3bit in modifier (HID Spec) + tmp |= (PINA << 4 ) & 0b00010000; // CAPSLOCK + tmp |= (PINB << 3 ) & 0b00100000; // POWER + } else { + tmp = 0x00; + tmp = (PINE >> 1)&0b00000001; + tmp |= PINC << 1 ; + } + return tmp; +} + +inline +static void unselect_rows(void) +{ + // Hi-Z(DDR:0, PORT:0) to unselect + // DDR : 1, output 0, input + DDRB &= ~0b00000011; // PB: 1,0 + PORTB &= ~0b00000011; + DDRD &= ~0b00010000; // PD: 4 + PORTD &= ~0b00010000; + DDRE &= ~0b11000000; // PE: 7,6 + PORTE &= ~0b11000000; + DDRF &= ~0b11000111; // PF: 7,6,2,1,0 + PORTF &= ~0b11000111; + // to unselect virtual row(modifier), set port to output with low + DDRA |= 0b00000001; // PA: 0 for CAPSLOCK + PORTA &= ~0b00000001; + DDRB |= 0b00011100; // PB: 3,4 for modifier(row10) + PORTB &= ~0b00011100; // PB: 2 for power + DDRF |= 0b00110000; // PF: 4,5 for modifier + PORTF &= ~0b00110000; +} + +inline +static void select_row(uint8_t row) +{ + // Output low(DDR:1, PORT:0) to select + // with row enable, column could send low to AVR when pressed + // row: 0 1 2 3 4 5 6 7 8 9 + // pin: PB1, PB0, PE7, PE6, PD4, PF2, PF0, PF1, PF6 PF7 + switch (row) { + case 0: + DDRB |= (1<<1); + PORTB &= ~(1<<1); + break; + case 1: + DDRB |= (1<<0); + PORTB &= ~(1<<0); + break; + case 2: + DDRE |= (1<<7); + PORTE &= ~(1<<7); + break; + case 3: + DDRE |= (1<<6); + PORTE &= ~(1<<6); + break; + case 4: + DDRD |= (1<<4); + PORTD &= ~(1<<4); + break; + case 5: + DDRF |= (1<<2); + PORTF &= ~(1<<2); + break; + case 6: + DDRF |= (1<<0); + PORTF &= ~(1<<0); + break; + case 7: + DDRF |= (1<<1); + PORTF &= ~(1<<1); + break; + case 8: + DDRF |= (1<<6); + PORTF &= ~(1<<6); + break; + case 9: + DDRF |= (1<<7); + PORTF &= ~(1<<7); + break; + case 10: + // modifier has no row enable + // to select virtual row, set port as input + DDRA &= ~0b00000001; + PORTA |= 0b00000001; + DDRB &= ~0b00011100; + PORTB |= 0b00011100; + DDRF &= ~0b00110000; + PORTF |= 0b00110000; + break; + + } +} diff --git a/keyboard/IIgs_Standard/Makefile b/keyboard/IIgs_Standard/Makefile deleted file mode 100644 index c18e9720c7..0000000000 --- a/keyboard/IIgs_Standard/Makefile +++ /dev/null @@ -1,95 +0,0 @@ -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device. -# Please customize your programmer settings(PROGRAM_CMD) -# -# make teensy = Download the hex file to the device, using teensy_loader_cli. -# (must have teensy_loader_cli installed). -# -# make dfu = Download the hex file to the device, using dfu-programmer (must -# have dfu-programmer installed). -# -# make flip = Download the hex file to the device, using Atmel FLIP (must -# have Atmel FLIP installed). -# -# make dfu-ee = Download the eeprom file to the device, using dfu-programmer -# (must have dfu-programmer installed). -# -# make flip-ee = Download the eeprom file to the device, using Atmel FLIP -# (must have Atmel FLIP installed). -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - -# Target file name (without extension). -TARGET = IIgs_Standard - -# Directory common source filess exist -TOP_DIR = ../.. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# keyboard dependent files -SRC = keymap.c \ - matrix.c \ - led.c - -CONFIG_H = config.h - - -# MCU name, you MUST set this to match the board you are using -# type "make clean" after changing this, so all files will be rebuilt -#MCU = at90usb162 # Teensy 1.0 -#MCU = atmega32u4 # Teensy 2.0 -#MCU = at90usb646 # Teensy++ 1.0 -MCU = at90usb1286 # Teensy++ 2.0 - - -# Processor frequency. -# Normally the first thing your program should do is set the clock prescaler, -# so your program will run at the correct speed. You should also set this -# variable to same clock speed. The _delay_ms() macro uses this, and many -# examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 16000000 - - -# Build Options -# comment out to disable the options. -# -MOUSEKEY_ENABLE = no # Mouse keys -#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support -EXTRAKEY_ENABLE = yes # Audio control and System control -#NKRO_ENABLE = yes # USB Nkey Rollover - - - -#---------------- Programming Options -------------------------- -PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex - - - -# Search Path -VPATH += $(TARGET_DIR) -VPATH += $(TOP_DIR) - -include $(TOP_DIR)/protocol/pjrc.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk diff --git a/keyboard/IIgs_Standard/README b/keyboard/IIgs_Standard/README deleted file mode 100644 index 4f9cad1ca1..0000000000 --- a/keyboard/IIgs_Standard/README +++ /dev/null @@ -1,45 +0,0 @@ -Replacable USB Controller for Apple IIgs/Standard(M0116) -JeffreySung(nattyman@gmail.com) - -=============================== - -Feature -------- -- Replaceable keyboard controller for Apple IIgs(A9M0330)/Standard(M0116) -- Teensy++ 2.0 required -- Some signal bypass required -- ADB keyboard doesn't use matrix for modifier keys. With virtual row for modifier keys, - these keys are merged into key matrix using virtual row. - -History -======= -- 2012.09.17 First Release -- 2012.09.17 CapsLock support -- 2012.09.19 Power button added -Build -===== -0. Just Type "Make" and return. - -Hardware -======== -PJRC Teensy ------------ -0. The following ports should not be connected to board. - From top view of Teensy++, from GND and counter clock wise. - -7,26(in keyboard PCB, these pins are VDD,GND) - -30,31(in Teensy++, these pins are Ref,GND respectively) - -5,6(D2,D3 for bluetooth in future) -1. Bypass #31 pin(from board) to E4(Teensy) -2. Bypass #30 pin(from board) to F2(Teensy) -3. Bypass #6 pin(from board) to A0(Teensy) -4. Refer doc directory - -To Do -===== -0. When DEBOUNCE defined, there is a errors. -1. Layer Change by toggling Clear Key -2. Eject Key add. (following files should be modified.) - common/keycode.h - common/keyboard.c -3. Use bluetooth -EOF diff --git a/keyboard/IIgs_Standard/config.h b/keyboard/IIgs_Standard/config.h deleted file mode 100644 index 11acf87c07..0000000000 --- a/keyboard/IIgs_Standard/config.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright 2011 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -/* controller configuration */ -#include "controller_teensy.h" - - -/* USB Device descriptor parameter */ -/* for Apple -#define VENDOR_ID 0x05AC -#define PRODUCT_ID 0xBEE0 -*/ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xBEE0 -#define DEVICE_VER 0x0202 -#define MANUFACTURER t.m.k. -#define PRODUCT Apple Desktop Bus Keyboard - - -/* message strings */ -#define DESCRIPTION Apple M0116/A9M0660 keyboard firmware - - -/* matrix size */ -#define MATRIX_ROWS 11 // last row is virtual for modifier -#define MATRIX_COLS 8 -/* define if matrix has ghost */ -#define MATRIX_HAS_GHOST -/* Set 0 if need no debouncing */ -#define DEBOUNCE 5 - - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LCTRL) | MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - - -/* layer switching */ -#define LAYER_SWITCH_DELAY 100 -#define LAYER_SEND_FN_TERM 300 - - -/* mouse keys */ -#ifdef MOUSEKEY_ENABLE -# define MOUSEKEY_DELAY_TIME 192 -#endif - - -#endif diff --git a/keyboard/IIgs_Standard/doc/PIN_BYPASS.jpg b/keyboard/IIgs_Standard/doc/PIN_BYPASS.jpg deleted file mode 100644 index 2998f0c3f8..0000000000 Binary files a/keyboard/IIgs_Standard/doc/PIN_BYPASS.jpg and /dev/null differ diff --git a/keyboard/IIgs_Standard/doc/Teensy++_Mod.jpg b/keyboard/IIgs_Standard/doc/Teensy++_Mod.jpg deleted file mode 100644 index 146c1ab93c..0000000000 Binary files a/keyboard/IIgs_Standard/doc/Teensy++_Mod.jpg and /dev/null differ diff --git a/keyboard/IIgs_Standard/hid_listen.mac b/keyboard/IIgs_Standard/hid_listen.mac deleted file mode 100755 index 8758fdf886..0000000000 Binary files a/keyboard/IIgs_Standard/hid_listen.mac and /dev/null differ diff --git a/keyboard/IIgs_Standard/keymap.c b/keyboard/IIgs_Standard/keymap.c deleted file mode 100644 index cd33e223ac..0000000000 --- a/keyboard/IIgs_Standard/keymap.c +++ /dev/null @@ -1,142 +0,0 @@ -/* -Copyright 2012 Jeffrey Sung - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -/* - * Keymap for Apple IIgs/Standard Keyboard - */ -#include -#include -#include -#include "keycode.h" -#include "print.h" -#include "debug.h" -#include "util.h" -#include "keymap.h" - - -// Convert physical keyboard layout to matrix array. -// This is a macro to define keymap easily in keyboard layout form. -#define KEYMAP( R10C5, \ - R3C7, R3C6, R3C5, R3C4, R3C3, R3C2, R3C1, R8C1, R8C0, R3C0, R0C0, R0C1, R0C2, R0C3, R4C4, R4C5, R4C6, R4C7, \ - R9C7, R9C6, R9C5, R9C4, R9C3, R9C2, R9C1, R9C0, R1C0, R1C1, R1C2, R1C3, R1C4, R2C4, R2C5, R2C6, R2C3, \ - R10C0,R7C7, R7C6, R7C5, R7C4, R7C3, R7C2, R7C1, R7C0, R0C4, R1C6, R1C7, R1C5, R2C0, R2C1, R2C2, R2C7, \ - R10C1,R6C7, R6C6, R6C5, R6C4, R6C3, R6C2, R6C1, R6C0, R0C5, R0C6, R4C0, R4C1, R4C2, \ - R10C4,R10C2,R10C3,R5C4, R5C7, R5C5, R5C6, R5C0, R5C2, R0C7, R5C1, R5C3, R4C3 \ -) { \ - { R0C0, R0C1, R0C2, R0C3, R0C4, R0C5, R0C6, R0C7 }, \ - { R1C0, R1C1, R1C2, R1C3, R1C4, R1C5, R1C6, R1C7 }, \ - { R2C0, R2C1, R2C2, R2C3, R2C4, R2C5, R2C6, R2C7 }, \ - { R3C0, R3C1, R3C2, R3C3, R3C4, R3C5, R3C6, R3C7 }, \ - { R4C0, R4C1, R4C2, R4C3, R4C4, R4C5, R4C6, R4C7 }, \ - { R5C0, R5C1, R5C2, R5C3, R5C4, R5C5, R5C6, R5C7 }, \ - { R6C0, R6C1, R6C2, R6C3, R6C4, R6C5, R6C6, R6C7 }, \ - { R7C0, R7C1, R7C2, R7C3, R7C4, R7C5, R7C6, R7C7 }, \ - { R8C0, R8C1, KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO }, \ - { R9C0, R9C1, R9C2, R9C3, R9C4, R9C5, R9C6, R9C7 }, \ - { R10C0,R10C1, R10C2, R10C3, R10C4,R10C5, KC_NO, KC_NO} \ -} - -#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) - - -// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. -static const uint8_t PROGMEM fn_layer[] = { - 0, // Fn0 - 1, // Fn1 - 2, // Fn2 - 3, // Fn3 - 4, // Fn4 - 0, // Fn5 - 3, // Fn6 - 3 // Fn7 -}; - -// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer. -// See layer.c for details. -static const uint8_t PROGMEM fn_keycode[] = { - KC_NO, // Fn0 - KC_NO, // Fn1 - KC_SLSH, // Fn2 - KC_SCLN, // Fn3 - KC_SPC, // Fn4 - KC_NO, // Fn5 - KC_NO, // Fn6 - KC_NO // Fn7 -}; - -static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. ,---------------, - * | POWER | | | - * |-----------------------------------------------------------| |---------------| - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |FN0| = | / | * | - * |-----------------------------------------------------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7 | 8 | 9 | + | - * |-----------------------------------------------------' | |---------------| - * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return | | 4 | 5 | 6 | - | - * |-----------------------------------------------------------| |---------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| / |Shift | | 1 | 2 | 3 | E | - * |-----------------------------------------------------------| |-----------| N | - * |CAPS|Alt |Gui |` |SPC |BSLS |LFT|RGT|DN|UP| | 0 | . | T | - * `-----------------------------------------------------------' |---------------' - */ - KEYMAP( KC_PWR, - 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_BSPC, KC_FN1, KC_PEQL, KC_PSLS, KC_PAST, \ - 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_P7, KC_P8, KC_P9, KC_PPLS, \ - 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_P4, KC_P5, KC_P6, KC_PMNS, \ - KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_P1, KC_P2, KC_P3, \ - KC_CAPS,KC_LALT,KC_LGUI,KC_GRV, KC_SPC, KC_BSLS,KC_LEFT,KC_RGHT,KC_DOWN,KC_UP, KC_P0, KC_PDOT, KC_PENT), - - - /* Layer 1: Tenkey use Layer - * ,-----------------------------------------------------------. ,---------------, - * | POWER | | | - * |-----------------------------------------------------------| |---------------| - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |NLK| = | / | * | - * |-----------------------------------------------------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | |INS| 8 |PGU|V+ | - * |-----------------------------------------------------' | |---------------| - * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return | |DEL|UP |PGD|V- | - * |-----------------------------------------------------------| |---------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| / |Shift | |LFT|DN |RGT| E | - * |-----------------------------------------------------------| |-----------| N | - * |CAPS|Alt |Gui |` |SPC |BSLS |LFT|RGT|DN|UP| | 0 | . | T | - * `-----------------------------------------------------------' `---------------' - */ - KEYMAP( KC_PWR, \ - 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_BSPC, KC_FN1, KC_PEQL, KC_PSLS, KC_MUTE, \ - 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_INS, KC_P8, KC_PGUP, KC_VOLU, \ - 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_DEL, KC_UP, KC_PGDN, KC_VOLD, \ - KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_LEFT, KC_DOWN, KC_RIGHT, \ - KC_CAPS,KC_LALT,KC_LGUI,KC_GRV, KC_SPC, KC_BSLS,KC_LEFT,KC_RGHT,KC_DOWN,KC_UP, KC_P0, KC_PDOT, KC_PENT), -}; - - -uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col) -{ - return KEYCODE(layer, row, col); -} - -uint8_t keymap_fn_layer(uint8_t index) -{ - return pgm_read_byte(&fn_layer[index]); -} - -uint8_t keymap_fn_keycode(uint8_t index) -{ - return pgm_read_byte(&fn_keycode[index]); -} diff --git a/keyboard/IIgs_Standard/led.c b/keyboard/IIgs_Standard/led.c deleted file mode 100644 index f76545f0ba..0000000000 --- a/keyboard/IIgs_Standard/led.c +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2011 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "stdint.h" -#include "led.h" - - -void led_set(uint8_t usb_led) -{ -} diff --git a/keyboard/IIgs_Standard/matrix.c b/keyboard/IIgs_Standard/matrix.c deleted file mode 100644 index 6ca55b7ea2..0000000000 --- a/keyboard/IIgs_Standard/matrix.c +++ /dev/null @@ -1,363 +0,0 @@ -/* -Copyright 2011 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "led.h" - - -#if (MATRIX_COLS > 16) -# error "MATRIX_COLS must not exceed 16" -#endif -#if (MATRIX_ROWS > 255) -# error "MATRIX_ROWS must not exceed 255" -#endif - - -#ifndef DEBOUNCE -# define DEBOUNCE 0 -#endif -static uint8_t debouncing = DEBOUNCE; - -// matrix state buffer(1:on, 0:off) -#if (MATRIX_COLS <= 8) -static uint8_t *matrix; -static uint8_t *matrix_prev; -static uint8_t _matrix0[MATRIX_ROWS]; -static uint8_t _matrix1[MATRIX_ROWS]; -#else -static uint16_t *matrix; -static uint16_t *matrix_prev; -static uint16_t _matrix0[MATRIX_ROWS]; -static uint16_t _matrix1[MATRIX_ROWS]; -#endif - -#ifdef MATRIX_HAS_GHOST -static bool matrix_has_ghost_in_row(uint8_t row); -#endif -static uint8_t read_col(uint8_t row); -static void unselect_rows(void); -static void select_row(uint8_t row); - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - // initialize row and col - unselect_rows(); - // Input with pull-up(DDR:0, PORT:1) - // Column C1 ~ C7 (PortC0-6) - // Column C0(Port E1) - DDRC &= ~0b01111111; - PORTC |= 0b01111111; - DDRE &= ~0b00000010; - PORTE |= 0b00000010; - //DDRB &= ~0b00000100; - //PORTB |= 0b00000100; - // modifier B3/4,F4/5,E4 always input - // A0 - //DDRA |= 0b00000001; - //PORTA &= 0b00000001; - //DDRB |= 0b00011000; - //PORTB &= 0b00011000; - //DDRF |= ~0b00110000; - //PORTF &= 0b00110000; - //DDRB &= ~0b00011000; - //PORTB |= 0b00011000; - //DDRF &= ~0b00110000; - //PORTF |= 0b00110000; - //DDRE &= ~0b00010000; - //PORTE |= 0b00010000; - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00; - for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00; - matrix = _matrix0; - matrix_prev = _matrix1; -} - -uint8_t matrix_scan(void) -{ - if (!debouncing) { - uint8_t *tmp = matrix_prev; - matrix_prev = matrix; - matrix = tmp; - } - - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - unselect_rows(); - select_row(i); - _delay_us(30); // without this wait read unstable value. - if ( i == ( MATRIX_ROWS - 1 ) ) { // CHECK CAPS LOCK - if (host_keyboard_leds() & (1<");debug_hex(matrix[row]);debug("\n"); -// } -// } -// } - return (matrix[row] & (1<mods except E4(CAPSLOCK) - uint8_t tmp; - if ( row == 10 ) { - tmp = 0xC0; - tmp |= (PINB >> 3 ) & 0b00000011; // LEFT CTRL is 0bit in modifier (HID Spec) - // LEFT SHIFT is 1bit in modifier (HID Spec) - tmp |= (PINF >> 3 ) & 0b00000100; // LEFT ALT is 2bit in modifier (HID Spec) - tmp |= (PINF >> 1 ) & 0b00001000; // LEFT GUI is 3bit in modifier (HID Spec) - tmp |= (PINA << 4 ) & 0b00010000; // CAPSLOCK - tmp |= (PINB << 3 ) & 0b00100000; // POWER - } else { - tmp = 0x00; - tmp = (PINE >> 1)&0b00000001; - tmp |= PINC << 1 ; - } - return tmp; -} - -inline -static void unselect_rows(void) -{ - // Hi-Z(DDR:0, PORT:0) to unselect - // DDR : 1, output 0, input - DDRB &= ~0b00000011; // PB: 1,0 - PORTB &= ~0b00000011; - DDRD &= ~0b00010000; // PD: 4 - PORTD &= ~0b00010000; - DDRE &= ~0b11000000; // PE: 7,6 - PORTE &= ~0b11000000; - DDRF &= ~0b11000111; // PF: 7,6,2,1,0 - PORTF &= ~0b11000111; - // to unselect virtual row(modifier), set port to output with low - DDRA |= 0b00000001; // PA: 0 for CAPSLOCK - PORTA &= ~0b00000001; - DDRB |= 0b00011100; // PB: 3,4 for modifier(row10) - PORTB &= ~0b00011100; // PB: 2 for power - DDRF |= 0b00110000; // PF: 4,5 for modifier - PORTF &= ~0b00110000; -} - -inline -static void select_row(uint8_t row) -{ - // Output low(DDR:1, PORT:0) to select - // with row enable, column could send low to AVR when pressed - // row: 0 1 2 3 4 5 6 7 8 9 - // pin: PB1, PB0, PE7, PE6, PD4, PF2, PF0, PF1, PF6 PF7 - switch (row) { - case 0: - DDRB |= (1<<1); - PORTB &= ~(1<<1); - break; - case 1: - DDRB |= (1<<0); - PORTB &= ~(1<<0); - break; - case 2: - DDRE |= (1<<7); - PORTE &= ~(1<<7); - break; - case 3: - DDRE |= (1<<6); - PORTE &= ~(1<<6); - break; - case 4: - DDRD |= (1<<4); - PORTD &= ~(1<<4); - break; - case 5: - DDRF |= (1<<2); - PORTF &= ~(1<<2); - break; - case 6: - DDRF |= (1<<0); - PORTF &= ~(1<<0); - break; - case 7: - DDRF |= (1<<1); - PORTF &= ~(1<<1); - break; - case 8: - DDRF |= (1<<6); - PORTF &= ~(1<<6); - break; - case 9: - DDRF |= (1<<7); - PORTF &= ~(1<<7); - break; - case 10: - // modifier has no row enable - // to select virtual row, set port as input - DDRA &= ~0b00000001; - PORTA |= 0b00000001; - DDRB &= ~0b00011100; - PORTB |= 0b00011100; - DDRF &= ~0b00110000; - PORTF |= 0b00110000; - break; - - } -} diff --git a/keyboard/hhkb/keymap.c b/keyboard/hhkb/keymap.c index 0d07c79cf3..094d33af11 100644 --- a/keyboard/hhkb/keymap.c +++ b/keyboard/hhkb/keymap.c @@ -82,7 +82,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Gui|Alt | Space |Alt |Gui| * `-------------------------------------------' */ - KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ @@ -101,7 +101,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Gui|Alt | Space |Alt |Gui| * `-------------------------------------------' */ - KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \ LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS,RSFT,NO, \ @@ -121,7 +121,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------------------------------' * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel */ - KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \ LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \ LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,SLSH,RSFT,NO, \ -- cgit v1.2.3