diff options
-rw-r--r-- | keyboards/dz60/keymaps/split_space_arrows/keymap.c | 67 | ||||
-rw-r--r-- | keyboards/dz60/keymaps/split_space_arrows/rules.mk | 7 | ||||
-rw-r--r-- | keyboards/dz60/keymaps/twschum_b_4_10/config.h | 24 | ||||
-rw-r--r-- | keyboards/dz60/keymaps/twschum_b_4_10/keymap.c | 123 | ||||
-rw-r--r-- | keyboards/dz60/keymaps/twschum_b_4_10/layout.json | 4877 | ||||
-rw-r--r-- | keyboards/dz60/keymaps/twschum_b_4_10/rules.mk | 15 | ||||
-rw-r--r-- | keyboards/dz60/rules.mk | 6 | ||||
-rw-r--r-- | keyboards/keebio/levinson/keymaps/numpad/config.h | 34 | ||||
-rw-r--r-- | keyboards/keebio/levinson/keymaps/numpad/keymap.c | 123 | ||||
-rw-r--r-- | keyboards/keebio/levinson/keymaps/numpad/readme.md | 4 | ||||
-rw-r--r-- | keyboards/keebio/levinson/keymaps/numpad/rules.mk | 3 | ||||
-rw-r--r-- | users/twschum/config.h | 0 | ||||
-rw-r--r-- | users/twschum/readme.md | 14 | ||||
-rw-r--r-- | users/twschum/rules.mk | 5 | ||||
-rw-r--r-- | users/twschum/twschum.c | 257 | ||||
-rw-r--r-- | users/twschum/twschum.h | 131 | ||||
-rw-r--r-- | users/twschum/xtonhasvim.c | 593 | ||||
-rw-r--r-- | users/twschum/xtonhasvim.h | 62 |
18 files changed, 6342 insertions, 3 deletions
diff --git a/keyboards/dz60/keymaps/split_space_arrows/keymap.c b/keyboards/dz60/keymaps/split_space_arrows/keymap.c new file mode 100644 index 0000000000..6dbfaa9375 --- /dev/null +++ b/keyboards/dz60/keymaps/split_space_arrows/keymap.c @@ -0,0 +1,67 @@ +#include QMK_KEYBOARD_H + +/* DZ60 layout using following options (from layouts diagram on KBDfans): + * - plate B (2.25u lshift) + * - opt 4 (1.75, 1, 1 on rshift) + * - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys) + * http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c + */ + +#define LAYOUT_b_4_10( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ + ) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \ + { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \ + { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \ +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: basic qwerty */ + LAYOUT_b_4_10( + // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||------2.0-------| + 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, + // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------| + // + // |----1.5-----||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|----1.5-----| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------| + // + // |----1.75------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------2.25--------|| + 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, + // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------|| + // + // |------2.25--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----1.75------|--------|--------|| + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), KC_UP, KC_HYPR, + // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------|| + // + // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------| + KC_MEH, KC_LALT, KC_LGUI, KC_SPC, TT(1), MO(1), TG(1), TT(2), KC_LEFT, KC_DOWN, KC_RGHT + // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------| + ), + + /* Layer 1: primary fn layer */ + LAYOUT_b_4_10( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TAB, KC_NO, KC_HOME, KC_UP, KC_END, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, + KC_CAPS, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_NO, KC_ENT, + KC_LSFT, KC_MPRV, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_LOCK, KC_PGUP, KC_INS, + KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + + /* Layer 2: mouse navigation */ + /* Layer 3: numpad */ + /* Layer 4: RGB lighting controls and keyboard config, reset */ + LAYOUT_b_4_10( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5), + KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSHIFT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_VAI, RGB_HUI, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_SAD, RGB_VAD, RGB_SAI + ), +}; diff --git a/keyboards/dz60/keymaps/split_space_arrows/rules.mk b/keyboards/dz60/keymaps/split_space_arrows/rules.mk new file mode 100644 index 0000000000..5d38b9d367 --- /dev/null +++ b/keyboards/dz60/keymaps/split_space_arrows/rules.mk @@ -0,0 +1,7 @@ +# Build Options +# override the options specified in dz60/rules.mk +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +KEY_LOCK_ENABLE = yes # Enables use of KC_LOCK diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/config.h b/keyboards/dz60/keymaps/twschum_b_4_10/config.h new file mode 100644 index 0000000000..15cabda364 --- /dev/null +++ b/keyboards/dz60/keymaps/twschum_b_4_10/config.h @@ -0,0 +1,24 @@ +#pragma once + +// number of taps for TT Tap-Toggle keys to toggle +#ifdef TAPPING_TOGGLE +#undef TAPPING_TOGGLE +#endif +#define TAPPING_TOGGLE 2 + +// time in ms that counts as a "tap" for various features +#ifdef TAPPING_TERM +#undef TAPPING_TERM +#endif +#define TAPPING_TERM 100 + +// https://docs.qmk.fm/features/mouse-keys#configuring-the-behavior-of-mousekeys +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 10 +#define MOUSEKEY_TIME_TO_MAX 15 +#define MOUSEKEY_WHEEL_MAX_SPEED 1 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 255 + +// flags from user/twschum/ +#define TWSCHUM_TAPPING_CTRL_PREFIX 1 diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c b/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c new file mode 100644 index 0000000000..6efb567133 --- /dev/null +++ b/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c @@ -0,0 +1,123 @@ +#include QMK_KEYBOARD_H +#include "twschum.h" + +/* DZ60 layout using following options (from layouts diagram on KBDfans): + * - plate B (2.25u lshift) + * - opt 4 (1.75, 1, 1 on rshift) + * - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys) + * http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c + */ + + +#define LAYOUT_b_4_10( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \ + K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ + K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \ + ) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, XXXXXXX, K014 }, \ + { K100, XXXXXXX, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, XXXXXXX, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, XXXXXXX }, \ + { K300, XXXXXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, XXXXXXX, K312, K313, K314 }, \ + { K400, K401, XXXXXXX, K403, K404, XXXXXXX, K406, XXXXXXX, K408, XXXXXXX, K410, K411, K412, K413, K414 } \ +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* base 60% qwerty */ + LAYOUT_b_4_10( + // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------| + 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, + // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------| + // + // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------| + // + // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------|| + 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, + // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------|| + // + // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------|| + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, /*SFT_T*/KC_SLSH, KC_UP, VIM_START, + // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------|| + // + // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------| + MO(_Fn), KC_LALT, KC_LGUI, KC_SPC, TT(_Nav), MO(_Fn), TG(_Num), TT(_Cfg), KC_LEFT, KC_DOWN, KC_RGHT + // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------| + ), + + /* vim mode */ + LAYOUT_b_4_10( + VIM_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, VIM_W, VIM_E, KC_R, _______, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, _______, _______, _______, + _______, VIM_A, VIM_S, VIM_D, _______, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, _______, _______, _______, + VIM_SHIFT, _______, VIM_X, VIM_C, VIM_V, VIM_B, _______, _______, VIM_COMMA, VIM_PERIOD, _______, _______, VIM_ESC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* primary fn layer */ + LAYOUT_b_4_10( + // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------| + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------| + // + // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----| + KC_TAB, CODE_PASTE, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, LESS_PD, XXXXXXX, XXXXXXX, CODE_PASTE, + // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------| + // + // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------|| + KC_CAPS, SALT_CMD, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_ENT, + // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------|| + // + // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------|| + KC_LSHIFT, KC_MPRV, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, XXXXXXX, XXXXXXX, KC_LOCK, KC_PGUP, KC_INS, + // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------|| + // + // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------| + KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------| + ), + + /* mouse navigation */ + LAYOUT_b_4_10( + TO(_Base), KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, XXXXXXX, XXXXXXX, KC_SLEP, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LCTL, KC_MS_BTN3, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LSHIFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, _______, _______, _______, _______, _______, _______, _______ + ), + + /* numpad layer */ + LAYOUT_b_4_10( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_PLUS, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_KP_ASTERISK, XXXXXXX, KC_ENT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_DOT, KC_KP_ENTER, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_0, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + ), + + + /* RGB lighting controls and keyboard config, reset */ + LAYOUT_b_4_10( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_L0_RGB, XXXXXXX, XXXXXXX, TO(_None), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, + EN_CTRL_SHORTCUTS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_LAYER_RGB, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSHIFT, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, XXXXXXX, XXXXXXX, RGB_TOG, RGB_VAI, RGB_HUI, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_VAD, RGB_SAI + ), + + /* soft "off" state where none of the keystroke register */ + LAYOUT_b_4_10( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_Base), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; + +uint8_t vim_cmd_layer(void) { + return _Vim; +} diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/layout.json b/keyboards/dz60/keymaps/twschum_b_4_10/layout.json new file mode 100644 index 0000000000..cd484f9d89 --- /dev/null +++ b/keyboards/dz60/keymaps/twschum_b_4_10/layout.json @@ -0,0 +1,4877 @@ +{ + "configKeymap":{ + "keys":[ + "K00", + "K01", + "K02", + "K03", + "K04", + "K05", + "K06", + "K07", + "K08", + "K09", + "K0A", + "K0B", + "K0C", + "K0D", + "K2D", + "K10", + "K11", + "K12", + "K13", + "K14", + "K15", + "K16", + "K17", + "K18", + "K19", + "K1A", + "K1B", + "K1C", + "K1D", + "K20", + "K21", + "K22", + "K23", + "K24", + "K25", + "K26", + "K27", + "K28", + "K29", + "K2A", + "K2B", + "K2C", + "K30", + "K31", + "K32", + "K33", + "K34", + "K35", + "K36", + "K37", + "K38", + "K39", + "K3A", + "K3B", + "K3C", + "K3D", + "K40", + "K41", + "K42", + "K44", + "K45", + "K46", + "K48", + "K49", + "K4A", + "K4B", + "K4C" + ], + "positions":[ + [ + "K00", + "K01", + "K02", + "K03", + "K04", + "K05", + "K06", + "K07", + "K08", + "K09", + "K0A", + "K0B", + "K0C", + "K0D" + ], + [ + "K10", + "K11", + "K12", + "K13", + "K14", + "K15", + "K16", + "K17", + "K18", + "K19", + "K1A", + "K1B", + "K1C", + "K1D" + ], + [ + "K20", + "K21", + "K22", + "K23", + "K24", + "K25", + "K26", + "K27", + "K28", + "K29", + "K2A", + "K2B", + "K2C", + "K2D" + ], + [ + "K30", + "K31", + "K32", + "K33", + "K34", + "K35", + "K36", + "K37", + "K38", + "K39", + "K3A", + "K3B", + "K3C", + "K3D" + ], + [ + "K40", + "K41", + "K42", + "KC_NO", + "K44", + "K45", + "K46", + "KC_NO", + "K48", + "K49", + "K4A", + "K4B", + "K4C", + "KC_NO" + ] + ] + }, + "keySections":[ + { + "row1":[ + { + "id":"k00", + "value":"ESC", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k01", + "value":"1", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k02", + "value":"2", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k03", + "value":"3", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k04", + "value":"4", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k05", + "value":"5", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k06", + "value":"6", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k07", + "value":"7", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k08", + "value":"8", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k09", + "value":"9", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k0A", + "value":"0", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k0B", + "value":"MINS", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k0C", + "value":"EQL", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + } + ], + "backspace":[ + [ + { + "id":"k0D", + "value":"BSPC", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k200", + "zone":"Backspace" + }, + { + "id":"k2D", + "value":"NO", + "type":"nodisplay", + "showMenu":false + } + ], + [ + { + "id":"k0D", + "value":"PSCR", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100", + "zone":"Backspace" + }, + { + "id":"k2D", + "value":"PAUS", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100", + "zone":"Backspace" + } + ] + ], + "row2":[ + { + "id":"k10", + "value":"TAB", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k150" + }, + { + "id":"k11", + "value":"Q", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k12", + "value":"W", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k13", + "value":"E", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k14", + "value":"R", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k15", + "value":"T", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k16", + "value":"Y", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k17", + "value":"U", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k18", + "value":"I", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k19", + "value":"O", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k1A", + "value":"P", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k1B", + "value":"LBRC", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k1C", + "value":"RBRC", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + } + ], + "row2pipe":[ + [ + { + "id":"k1D", + "value":"BSLS", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k150", + "zone":"Enter" + } + ], + [ + { + "id":"k1D", + "value":"ENT", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"kISO", + "zone":"Enter" + } + ] + ], + "caps":[ + [ + { + "id":"k20", + "value":"LCTL", + "type":"normal", + "secondary":"LCTL", + "showMenu":false, + "shape":"k175", + "zone":"Caps Lock" + } + ], + [ + { + "id":"k20", + "value":"CAPS", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k175stepped", + "zone":"Caps Lock" + } + ] + ], + "row3":[ + { + "id":"k21", + "value":"A", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k22", + "value":"S", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k23", + "value":"D", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k24", + "value":"F", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k25", + "value":"G", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k26", + "value":"H", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k27", + "value":"J", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k28", + "value":"K", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k29", + "value":"L", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k2A", + "value":"SCLN", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k2B", + "value":"QUOT", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + } + ], + "enter":[ + [ + { + "id":"k2C", + "value":"ENT", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k225", + "zone":"Enter" + } + ], + [ + { + "id":"k2C", + "value":"NUHS", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100", + "zone":"Enter" + } + ] + ], + "leftShift":[ + [ + { + "id":"k30", + "value":"LSFT", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k225", + "zone":"Left Shift" + }, + { + "id":"k31", + "value":"NO", + "type":"nodisplay", + "showMenu":false + } + ], + [ + { + "id":"k30", + "value":"LSFT", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k125", + "zone":"Left Shift" + }, + { + "id":"k31", + "value":"NUBS", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100", + "zone":"Left Shift" + } + ] + ], + "row4":[ + { + "id":"k32", + "value":"Z", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k33", + "value":"X", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k34", + "value":"C", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k35", + "value":"V", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k36", + "value":"B", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k37", + "value":"N", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k38", + "value":"M", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k39", + "value":"COMM", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + }, + { + "id":"k3A", + "value":"DOT", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100" + } + ], + "rightShift":[ + [ + { + "id":"k3B", + "value":"SLSH", + "type":"normal", + "secondary":null, + "showMenu":false, + "shape":"k100", + "zone":"Right Shift" + }, + { + "id":"k3C", + "value":"RSFT", |