diff options
author | Ryan <fauxpark@gmail.com> | 2020-11-04 10:39:11 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-04 10:39:11 +1100 |
commit | e024147ce5871a39a13ce5485c7afed03eabff5c (patch) | |
tree | 6137b1cf9d05ddc4042a03a03d7045f996b8ca22 | |
parent | c60cafae419f8fe409f9cdb3274bbf6d02973f7c (diff) | |
download | qmk_firmware-e024147ce5871a39a13ce5485c7afed03eabff5c.tar.gz qmk_firmware-e024147ce5871a39a13ce5485c7afed03eabff5c.zip |
Freyr refactor (#10833)
-rw-r--r-- | keyboards/freyr/config.h | 108 | ||||
-rw-r--r-- | keyboards/freyr/freyr.c | 35 | ||||
-rw-r--r-- | keyboards/freyr/freyr.h | 87 | ||||
-rw-r--r-- | keyboards/freyr/info.json | 574 | ||||
-rw-r--r-- | keyboards/freyr/keymaps/default/config.h | 19 | ||||
-rw-r--r-- | keyboards/freyr/keymaps/default/keymap.c | 43 | ||||
-rw-r--r-- | keyboards/freyr/keymaps/default/readme.md | 2 | ||||
-rw-r--r-- | keyboards/freyr/readme.md | 13 | ||||
-rw-r--r-- | keyboards/freyr/rules.mk | 23 |
9 files changed, 496 insertions, 408 deletions
diff --git a/keyboards/freyr/config.h b/keyboards/freyr/config.h index ce30fd534..a4e34ea47 100644 --- a/keyboards/freyr/config.h +++ b/keyboards/freyr/config.h | |||
@@ -20,15 +20,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
20 | #include "config_common.h" | 20 | #include "config_common.h" |
21 | 21 | ||
22 | /* USB Device descriptor parameter */ | 22 | /* USB Device descriptor parameter */ |
23 | #define VENDOR_ID 0xFEED | 23 | #define VENDOR_ID 0xFEED |
24 | #define PRODUCT_ID 0x0000 | 24 | #define PRODUCT_ID 0x1895 |
25 | #define DEVICE_VER 0x0002 | 25 | #define DEVICE_VER 0x0002 |
26 | #define MANUFACTURER HnahKB | 26 | #define MANUFACTURER HnahKB |
27 | #define PRODUCT Freyr | 27 | #define PRODUCT Freyr |
28 | #define DESCRIPTION Custom PCB TKL keyboard | ||
29 | 28 | ||
30 | /* key matrix size */ | 29 | /* key matrix size */ |
31 | #define MATRIX_ROWS 10 | 30 | #define MATRIX_ROWS 10 |
32 | #define MATRIX_COLS 10 | 31 | #define MATRIX_COLS 10 |
33 | 32 | ||
34 | /* | 33 | /* |
@@ -40,26 +39,103 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
40 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | 39 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) |
41 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | 40 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) |
42 | * | 41 | * |
43 | */ | 42 | */ |
44 | #define MATRIX_ROW_PINS { D3, B2, B1, B0, E6, F0, D2, D5, F4, F1 } | 43 | #define MATRIX_ROW_PINS { D3, B2, B1, B0, E6, F0, D2, D5, F4, F1 } |
45 | #define MATRIX_COL_PINS { B4, D7, D6, D4, B5, C7, C6, F5, F6, F7 } | 44 | #define MATRIX_COL_PINS { B4, D7, D6, D4, B5, C7, C6, F5, F6, F7 } |
46 | #define UNUSED_PINS | 45 | #define UNUSED_PINS |
47 | 46 | ||
48 | /* COL2ROW, ROW2COL*/ | 47 | /* COL2ROW, ROW2COL */ |
49 | #define DIODE_DIRECTION COL2ROW | 48 | #define DIODE_DIRECTION COL2ROW |
50 | 49 | ||
51 | /* | ||
52 | * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. | ||
53 | */ | ||
54 | |||
55 | #define BACKLIGHT_PIN B6 | 50 | #define BACKLIGHT_PIN B6 |
56 | #define BACKLIGHT_BREATHING | ||
57 | #define BACKLIGHT_LEVELS 3 | 51 | #define BACKLIGHT_LEVELS 3 |
52 | #define BACKLIGHT_BREATHING | ||
58 | 53 | ||
54 | //#define RGB_DI_PIN E2 | ||
55 | //#ifdef RGB_DI_PIN | ||
56 | //# define RGBLED_NUM 16 | ||
57 | //# define RGBLIGHT_HUE_STEP 8 | ||
58 | //# define RGBLIGHT_SAT_STEP 8 | ||
59 | //# define RGBLIGHT_VAL_STEP 8 | ||
60 | //# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ | ||
61 | //# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ | ||
62 | /*== all animations enable ==*/ | ||
63 | //# define RGBLIGHT_ANIMATIONS | ||
64 | /*== or choose animations ==*/ | ||
65 | //# define RGBLIGHT_EFFECT_BREATHING | ||
66 | //# define RGBLIGHT_EFFECT_RAINBOW_MOOD | ||
67 | //# define RGBLIGHT_EFFECT_RAINBOW_SWIRL | ||
68 | //# define RGBLIGHT_EFFECT_SNAKE | ||
69 | //# define RGBLIGHT_EFFECT_KNIGHT | ||
70 | //# define RGBLIGHT_EFFECT_CHRISTMAS | ||
71 | //# define RGBLIGHT_EFFECT_STATIC_GRADIENT | ||
72 | //# define RGBLIGHT_EFFECT_RGB_TEST | ||
73 | //# define RGBLIGHT_EFFECT_ALTERNATING | ||
74 | /*== customize breathing effect ==*/ | ||
75 | /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ | ||
76 | //# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 | ||
77 | /*==== use exp() and sin() ====*/ | ||
78 | //# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 | ||
79 | //# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 | ||
80 | //#endif | ||
59 | 81 | ||
60 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | 82 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
61 | #define DEBOUNCE 5 | 83 | #define DEBOUNCE 5 |
62 | 84 | ||
85 | /* define if matrix has ghost (lacks anti-ghosting diodes) */ | ||
86 | //#define MATRIX_HAS_GHOST | ||
87 | |||
88 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
89 | #define LOCKING_SUPPORT_ENABLE | ||
90 | /* Locking resynchronize hack */ | ||
91 | #define LOCKING_RESYNC_ENABLE | ||
92 | |||
93 | /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. | ||
94 | * This is useful for the Windows task manager shortcut (ctrl+shift+esc). | ||
95 | */ | ||
96 | //#define GRAVE_ESC_CTRL_OVERRIDE | ||
97 | |||
98 | /* | ||
99 | * Force NKRO | ||
100 | * | ||
101 | * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved | ||
102 | * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the | ||
103 | * makefile for this to work.) | ||
104 | * | ||
105 | * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) | ||
106 | * until the next keyboard reset. | ||
107 | * | ||
108 | * NKRO may prevent your keystrokes from being detected in the BIOS, but it is | ||
109 | * fully operational during normal computer usage. | ||
110 | * | ||
111 | * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) | ||
112 | * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by | ||
113 | * bootmagic, NKRO mode will always be enabled until it is toggled again during a | ||
114 | * power-up. | ||
115 | * | ||
116 | */ | ||
117 | //#define FORCE_NKRO | ||
118 | |||
119 | /* | ||
120 | * Feature disable options | ||
121 | * These options are also useful to firmware size reduction. | ||
122 | */ | ||
123 | |||
124 | /* disable debug print */ | ||
125 | //#define NO_DEBUG | ||
126 | |||
127 | /* disable print */ | ||
128 | //#define NO_PRINT | ||
129 | |||
130 | /* disable action features */ | ||
131 | //#define NO_ACTION_LAYER | ||
132 | //#define NO_ACTION_TAPPING | ||
133 | //#define NO_ACTION_ONESHOT | ||
134 | |||
135 | /* disable these deprecated features by default */ | ||
136 | #define NO_ACTION_MACRO | ||
137 | #define NO_ACTION_FUNCTION | ||
138 | |||
63 | /* Bootmagic Lite key configuration */ | 139 | /* Bootmagic Lite key configuration */ |
64 | #define BOOTMAGIC_LITE_ROW 0 | 140 | //#define BOOTMAGIC_LITE_ROW 0 |
65 | #define BOOTMAGIC_LITE_COLUMN 0 | 141 | //#define BOOTMAGIC_LITE_COLUMN 0 |
diff --git a/keyboards/freyr/freyr.c b/keyboards/freyr/freyr.c index 68c26294f..336b32711 100644 --- a/keyboards/freyr/freyr.c +++ b/keyboards/freyr/freyr.c | |||
@@ -13,33 +13,24 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 13 | * You should have received a copy of the GNU General Public License |
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | #include "freyr.h" | ||
17 | 16 | ||
17 | #include "freyr.h" | ||
18 | 18 | ||
19 | void matrix_init_kb(void) { | 19 | void matrix_init_kb(void) { |
20 | matrix_init_user(); | 20 | matrix_init_user(); |
21 | led_init_ports(); | 21 | led_init_ports(); |
22 | }; | 22 | } |
23 | 23 | ||
24 | void led_init_ports(void) { | 24 | void led_init_ports(void) { |
25 | setPinOutput(B3); | 25 | setPinOutput(B3); |
26 | setPinOutput(B7); | 26 | setPinOutput(B7); |
27 | } | 27 | } |
28 | 28 | ||
29 | void led_set_kb(uint8_t usb_led) { | 29 | bool led_update_kb(led_t led_state) { |
30 | if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { | 30 | if (led_update_user(led_state)) { |
31 | // Turn Caps Lock LED on | 31 | writePin(B3, !led_state.caps_lock); |
32 | writePinLow(B3); | 32 | writePin(B7, !led_state.scroll_lock); |
33 | } else { | 33 | } |
34 | // Turn Caps Lock LED off | 34 | |
35 | writePinHigh(B3); | 35 | return true; |
36 | } | ||
37 | if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { | ||
38 | // Turn Scroll Lock LED on | ||
39 | writePinLow(B7); | ||
40 | } else { | ||
41 | // Turn Scroll Lock LED off | ||
42 | writePinHigh(B7); | ||
43 | } | ||
44 | led_set_user(usb_led); | ||
45 | } | 36 | } |
diff --git a/keyboards/freyr/freyr.h b/keyboards/freyr/freyr.h index f18e74432..ce41dfd25 100644 --- a/keyboards/freyr/freyr.h +++ b/keyboards/freyr/freyr.h | |||
@@ -13,60 +13,69 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 13 | * You should have received a copy of the GNU General Public License |
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | |||
16 | #pragma once | 17 | #pragma once |
17 | 18 | ||
18 | #include "quantum.h" | 19 | #include "quantum.h" |
19 | 20 | ||
21 | #define XXX KC_NO | ||
20 | 22 | ||
21 | #define LAYOUT_all( \ | 23 | #define LAYOUT_all( \ |
22 | k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ | 24 | k00, k01, k02, k03, k04, k06, k07, k08, k09, k60, k61, k62, k63, k64, k65, k66, \ |
23 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k74, k75, k76, k67, \ | 25 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k74, k75, k76, k67, \ |
24 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ | 26 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ |
25 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ | 27 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ |
26 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k85, k93, k79, \ | 28 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k85, k93, k79, \ |
27 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ | 29 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ |
28 | ) { \ | 30 | ) { \ |
29 | { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09 }, \ | 31 | { k00, k01, k02, k03, k04, XXX, k06, k07, k08, k09 }, \ |
30 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ | 32 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ |
31 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ | 33 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ |
32 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ | 34 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ |
33 | { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49}, \ | 35 | { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \ |
34 | { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ | 36 | { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ |
35 | { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \ | 37 | { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \ |
36 | { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79 }, \ | 38 | { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79 }, \ |
37 | { k80, k81, k82, k83, k84, k85, KC_NO, KC_NO, KC_NO, KC_NO }, \ | 39 | { k80, k81, k82, k83, k84, k85, XXX, XXX, XXX, XXX }, \ |
38 | { k90, k91, k92, k93, k94, k95, KC_NO, KC_NO, KC_NO, KC_NO } \ | 40 | { k90, k91, k92, k93, k94, k95, XXX, XXX, XXX, XXX } \ |
39 | } | 41 | } |
40 | 42 | ||
41 | #define LAYOUT_tkl_ansi( \ | 43 | #define LAYOUT_tkl_ansi( \ |
42 | k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ | 44 | k00, k01, k02, k03, k04, k06, k07, k08, k09, k60, k61, k62, k63, k64, k65, k66, \ |
43 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k75, k76, k67, \ | 45 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k75, k76, k67, \ |
44 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ | 46 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ |
45 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k84, \ | 47 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k84, \ |
46 | k40, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k93, k79, \ | 48 | k40, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k93, k79, \ |
47 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ | 49 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ |
48 | ) LAYOUT_all( \ | 50 | ) { \ |
49 | k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ | 51 | { k00, k01, k02, k03, k04, XXX, k06, k07, k08, k09 }, \ |
50 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, KC_NO, k75, k76, k67, \ | 52 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ |
51 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ | 53 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ |
52 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, KC_NO, k84, \ | 54 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ |
53 | k40, KC_NO, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, KC_NO, k93, k79, \ | 55 | { k40, XXX, k42, k43, k44, k45, k46, k47, k48, k49 }, \ |
54 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ | 56 | { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ |
55 | ) | 57 | { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \ |
58 | { k70, k71, k72, k73, XXX, k75, k76, k77, k78, k79 }, \ | ||
59 | { k80, k81, k82, k83, k84, XXX, XXX, XXX, XXX, XXX }, \ | ||
60 | { k90, k91, XXX, k93, k94, k95, XXX, XXX, XXX, XXX } \ | ||
61 | } | ||
56 | 62 | ||
57 | #define LAYOUT_tkl_iso( \ | 63 | #define LAYOUT_tkl_iso( \ |
58 | k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ | 64 | k00, k01, k02, k03, k04, k06, k07, k08, k09, k60, k61, k62, k63, k64, k65, k66, \ |
59 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k75, k76, k67, \ | 65 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k75, k76, k67, \ |
60 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k78, k77, k68, \ | 66 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k78, k77, k68, \ |
61 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ | 67 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ |
62 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k93, k79, \ | 68 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k93, k79, \ |
63 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ | 69 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ |
64 | ) LAYOUT_all( \ | 70 | ) { \ |
65 | k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ | 71 | { k00, k01, k02, k03, k04, XXX, k06, k07, k08, k09 }, \ |
66 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, KC_NO, k75, k76, k67, \ | 72 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ |
67 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, KC_NO, k78, k77, k68, \ | 73 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ |
68 | k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ | 74 | { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ |
69 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, KC_NO, k93, k79, \ | 75 | { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \ |
70 | k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ | 76 | { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ |
71 | ) | 77 | { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \ |
72 | 78 | { k70, k71, k72, k73, XXX, k75, k76, k77, k78, k79 }, \ | |
79 | { k80, k81, k82, XXX, k84, XXX, XXX, XXX, XXX, XXX }, \ | ||
80 | { k90, k91, k92, k93, k94, k95, XXX, XXX, XXX, XXX } \ | ||
81 | } | ||
diff --git a/keyboards/freyr/info.json b/keyboards/freyr/info.json index 22fc96fa2..9f1b54d49 100644 --- a/keyboards/freyr/info.json +++ b/keyboards/freyr/info.json | |||
@@ -6,284 +6,320 @@ | |||
6 | "height": 6.25, | 6 | "height": 6.25, |
7 | "layouts": { | 7 | "layouts": { |
8 | "LAYOUT_all": { | 8 | "LAYOUT_all": { |
9 | "key_count": 91, | ||
10 | "layout": [ | 9 | "layout": [ |
11 | {"label":"Esc (k00)", "x":0, "y":0}, | 10 | {"x": 0, "y": 0}, |
12 | {"label":"F1 (k01)", "x":2, "y":0}, | 11 | |
13 | {"label":"F2 (k02)", "x":3, "y":0}, | 12 | {"x": 2, "y": 0}, |
14 | {"label":"F3 (k03)", "x":4, "y":0}, | 13 | {"x": 3, "y": 0}, |
15 | {"label":"F4 (k04)", "x":5, "y":0}, | 14 | {"x": 4, "y": 0}, |
16 | {"label":"F5 (k06)", "x":6.5, "y":0}, | 15 | {"x": 5, "y": 0}, |
17 | {"label":"F6 (k07)", "x":7.5, "y":0}, | 16 | |
18 | {"label":"F7 (k08)", "x":8.5, "y":0}, | 17 | {"x": 6.5, "y": 0}, |
19 | {"label":"F8 (k09)", "x":9.5, "y":0}, | 18 | {"x": 7.5, "y": 0}, |
20 | {"label":"F9 (k60)", "x":11, "y":0}, | 19 | {"x": 8.5, "y": 0}, |
21 | {"label":"F10 (k61)", "x":12, "y":0}, | 20 | {"x": 9.5, "y": 0}, |
22 | {"label":"F11 (k62)", "x":13, "y":0}, | 21 | |
23 | {"label":"F12 (k63)", "x":14, "y":0}, | 22 | {"x": 11, "y": 0}, |
24 | {"label":"PrtSc (k64)", "x":15.25, "y":0}, | 23 | {"x": 12, "y": 0}, |
25 | {"label":"Scroll Lock (k65)", "x":16.25, "y":0}, | 24 | {"x": 13, "y": 0}, |
26 | {"label":"Pause (k66)", "x":17.25, "y":0}, | 25 | {"x": 14, "y": 0}, |
27 | {"label":"~ (k10)", "x":0, "y":1.25}, | 26 | |
28 | {"label":"! (k11)", "x":1, "y":1.25}, | 27 | {"x": 15.25, "y": 0}, |
29 | {"label":"@ (k12)", "x":2, "y":1.25}, | 28 | {"x": 16.25, "y": 0}, |
30 | {"label":"# (k13)", "x":3, "y":1.25}, | 29 | {"x": 17.25, "y": 0}, |
31 | {"label":"$ (k14)", "x":4, "y":1.25}, | 30 | |
32 | {"label":"% (k15)", "x":5, "y":1.25}, | 31 | {"x": 0, "y": 1.25}, |
33 | {"label":"^ (k16)", "x":6, "y":1.25}, | 32 | {"x": 1, "y": 1.25}, |
34 | {"label":"& (k17)", "x":7, "y":1.25}, | 33 | {"x": 2, "y": 1.25}, |
35 | {"label":"* (k18)", "x":8, "y":1.25}, | 34 | {"x": 3, "y": 1.25}, |
36 | {"label":"( (k19)", "x":9, "y":1.25}, | 35 | {"x": 4, "y": 1.25}, |
37 | {"label":") (k70)", "x":10, "y":1.25}, | 36 | {"x": 5, "y": 1.25}, |
38 | {"label":"_ (k71)", "x":11, "y":1.25}, | 37 | {"x": 6, "y": 1.25}, |
39 | {"label":"+ (k72)", "x":12, "y":1.25}, | 38 | {"x": 7, "y": 1.25}, |
40 | {"label":"Backspace (k73)", "x":13, "y":1.25}, | 39 | {"x": 8, "y": 1.25}, |
41 | {"label":"Backspace2 (k74)", "x":14, "y":1.25}, | 40 | {"x": 9, "y": 1.25}, |
42 | {"label":"Insert (k75)", "x":15.25, "y":1.25}, | 41 | {"x": 10, "y": 1.25}, |
43 | {"label":"Home (k76)", "x":16.25, "y":1.25}, | 42 | {"x": 11, "y": 1.25}, |
44 | {"label":"PgUp (k67)", "x":17.25, "y":1.25}, | 43 | {"x": 12, "y": 1.25}, |
45 | {"label":"Tab (k20)", "x":0, "y":2.25, "w":1.5}, | 44 | {"x": 13, "y": 1.25}, |
46 | {"label":"Q (k21)", "x":1.5, "y":2.25}, | 45 | {"x": 14, "y": 1.25}, |
47 | {"label":"W (k22)", "x":2.5, "y":2.25}, | 46 | |
48 | {"label":"E (k23)", "x":3.5, "y":2.25}, | 47 | {"x": 15.25, "y": 1.25}, |
49 | {"label":"R (k24)", "x":4.5, "y":2.25}, | 48 | {"x": 16.25, "y": 1.25}, |
50 | {"label":"T (k25)", "x":5.5, "y":2.25}, | 49 | {"x": 17.25, "y": 1.25}, |
51 | {"label":"Y (k26)", "x":6.5, "y":2.25}, | 50 | |
52 | {"label":"U (k27)", "x":7.5, "y":2.25}, | 51 | {"x": 0, "y": 2.25, "w": 1.5}, |
53 | {"label":"I (k28)", "x":8.5, "y":2.25}, | 52 | {"x": 1.5, "y": 2.25}, |
54 | {"label":"O (k29)", "x":9.5, "y":2.25}, | 53 | {"x": 2.5, "y": 2.25}, |
55 | {"label":"P (k80)", "x":10.5, "y":2.25}, | 54 | {"x": 3.5, "y": 2.25}, |
56 | {"label":"{ (k81)", "x":11.5, "y":2.25}, | 55 | {"x": 4.5, "y": 2.25}, |
57 | {"label":"} (k82)", "x":12.5, "y":2.25}, | 56 | {"x": 5.5, "y": 2.25}, |
58 | {"label":"| (k83)", "x":13.5, "y":2.25, "w":1.5}, | 57 | {"x": 6.5, "y": 2.25}, |
59 | {"label":"Delete (k78)", "x":15.25, "y":2.25}, | 58 | {"x": 7.5, "y": 2.25}, |
60 | {"label":"End (k77)", "x":16.25, "y":2.25}, | 59 | {"x": 8.5, "y": 2.25}, |
61 | {"label":"PgDn (k68)", "x":17.25, "y":2.25}, | 60 | {"x": 9.5, "y": 2.25}, |
62 | {"label":"Caps Lock (k30)", "x":0, "y":3.25, "w":1.75}, | 61 | {"x": 10.5, "y": 2.25}, |
63 | {"label":"A (k31)", "x":1.75, "y":3.25}, | 62 | {"x": 11.5, "y": 2.25}, |
64 | {"label":"S (k32)", "x":2.75, "y":3.25}, | 63 | {"x": 12.5, "y": 2.25}, |
65 | {"label":"D (k33)", "x":3.75, "y":3.25}, | 64 | {"x": 13.5, "y": 2.25, "w": 1.5}, |
66 | {"label":"F (k34)", "x":4.75, "y":3.25}, | 65 | |
67 | {"label":"G (k35)", "x":5.75, "y":3.25}, | 66 | {"x": 15.25, "y": 2.25}, |
68 | {"label":"H (k36)", "x":6.75, "y":3.25}, | 67 | {"x": 16.25, "y": 2.25}, |
69 | {"label":"J (k37)", "x":7.75, "y":3.25}, | 68 | {"x": 17.25, "y": 2.25}, |
70 | {"label":"K (k38)", "x":8.75, "y":3.25}, | 69 | |
71 | {"label":"L (k39)", "x":9.75, "y":3.25}, | 70 | {"x": 0, "y": 3.25, "w": 1.75}, |
72 | {"label":": (k90)", "x":10.75, "y":3.25}, | 71 | {"x": 1.75, "y": 3.25}, |
73 | {"label":"\" (k91)", "x":11.75, "y":3.25}, | 72 | {"x": 2.75, "y": 3.25}, |
74 | {"label":"~ (k92)", "x":12.75, "y":3.25}, | 73 | {"x": 3.75, "y": 3.25}, |
75 | {"label":"Enter (k84)", "x":13.75, "y":3.25, "w":1.25}, | 74 | {"x": 4.75, "y": 3.25}, |
76 | {"label":"Shift (k40)", "x":0, "y":4.25, "w":1.25}, | 75 | {"x": 5.75, "y": 3.25}, |
77 | {"label":"| (k41)", "x":1.25, "y":4.25}, | 76 | {"x": 6.75, "y": 3.25}, |
78 | {"label":"Z (k42)", "x":2.25, "y":4.25}, | 77 | {"x": 7.75, "y": 3.25}, |
79 | {"label":"X (k43)", "x":3.25, "y":4.25}, | 78 | {"x": 8.75, "y": 3.25}, |
80 | {"label":"C (k44)", "x":4.25, "y":4.25}, | 79 | {"x": 9.75, "y": 3.25}, |
81 | {"label":"V (k45)", "x":5.25, "y":4.25}, | 80 | {"x": 10.75, "y": 3.25}, |
82 | {"label":"B (k46)", "x":6.25, "y":4.25}, | 81 | {"x": 11.75, "y": 3.25}, |
83 | {"label":"N (k47)", "x":7.25, "y":4.25}, | 82 | {"x": 12.75, "y": 3.25}, |
84 | {"label":"M (k48)", "x":8.25, "y":4.25}, | 83 | {"x": 13.75, "y": 3.25, "w": 1.25}, |
85 | {"label":"< (k49)", "x":9.25, "y":4.25}, | 84 | |
86 | {"label":"> (k95)", "x":10.25, "y":4.25}, | 85 | {"x": 0, "y": 4.25, "w": 1.25}, |
87 | {"label":"? (k94)", "x":11.25, "y":4.25}, | 86 | {"x": 1.25, "y": 4.25}, |
88 | {"label":"JP Ro (k85)", "x":12.25, "y":4.25}, | 87 | {"x": 2.25, "y": 4.25}, |
89 | {"label":"Shift (k93)", "x":13.25, "y":4.25, "w":1.75}, | 88 | {"x": 3.25, "y": 4.25}, |
90 | {"label":"Up (k79)", "x":16.25, "y":4.25}, | 89 | {"x": 4.25, "y": 4.25}, |
91 | {"label":"Ctrl (k50)", "x":0, "y":5.25, "w":1.25}, | 90 | {"x": 5.25, "y": 4.25}, |
92 | {"label":"Win (k51)", "x":1.25, "y":5.25, "w":1.25}, | 91 | {"x": 6.25, "y": 4.25}, |
93 | {"label":"Alt (k52)", "x":2.5, "y":5.25, "w":1.25}, | 92 | {"x": 7.25, "y": 4.25}, |
94 | {"label":"Space (k53)", "x":3.75, "y":5.25, "w":6.25}, | 93 | {"x": 8.25, "y": 4.25}, |
95 | {"label":"Alt (k54)", "x":10, "y":5.25, "w":1.25}, | 94 | {"x": 9.25, "y": 4.25}, |
96 | {"label":"Win (k55)", "x":11.25, "y":5.25, "w":1.25}, | 95 | {"x": 10.25, "y": 4.25}, |
97 | {"label":"Menu (k56)", "x":12.5, "y":5.25, "w":1.25}, | 96 | {"x": 11.25, "y": 4.25}, |
98 | {"label":"Ctrl (k57)", "x":13.75, "y":5.25, "w":1.25}, | 97 | {"x": 12.25, "y": 4.25}, |
99 | {"label":"Left (k58)", "x":15.25, "y":5.25}, | 98 | {"x": 13.25, "y": 4.25, "w": 1.75}, |
100 | {"label":"Down (k59)", "x":16.25, "y":5.25}, | 99 | |
101 | {"label":"Right (k69)", "x":17.25, "y":5.25} | 100 | {"x": 16.25, "y": 4.25}, |
101 | |||
102 | {"x": 0, "y": 5.25, "w": 1.25}, | ||
103 | {"x": 1.25, "y": 5.25, "w": 1.25}, | ||
104 | {"x": 2.5, "y": 5.25, "w": 1.25}, | ||
105 | {"x": 3.75, "y": 5.25, "w": 6.25}, | ||
106 | {"x": 10, "y": 5.25, "w": 1.25}, | ||
107 | {"x": 11.25, "y": 5.25, "w": 1.25}, | ||
108 | {"x": 12.5, "y": 5.25, "w": 1.25}, | ||
109 | {"x": 13.75, "y": 5.25, "w": 1.25}, | ||
110 | |||
111 | {"x": 15.25, "y": 5.25}, | ||
112 | {"x": 16.25, "y": 5.25}, | ||
113 | {"x": 17.25, "y": 5.25} | ||
102 | ] | 114 | ] |
103 | }, | 115 | }, |
104 | "LAYOUT_tkl_ansi": { | 116 | "LAYOUT_tkl_ansi": { |
105 | "key_count": 87, | ||
106 | "layout": [ | 117 | "layout": [ |
107 | {"label":"Esc", "x":0, "y":0}, | 118 | {"x": 0, "y": 0}, |
108 | {"label":"F1", "x":2, "y":0}, | 119 | |
109 | {"label":"F2", "x":3, "y":0}, | 120 | {"x": 2, "y": 0}, |
110 | {"label":"F3", "x":4, "y":0}, | 121 | {"x": 3, "y": 0}, |
111 | {"label":"F4", "x":5, "y":0}, | 122 | {"x": 4, "y": 0}, |
112 | {"label":"F5", "x":6.5, "y":0}, | 123 | {"x": 5, "y": 0}, |
113 | {"label":"F6", "x":7.5, "y":0}, | 124 | |
114 | {"label":"F7", "x":8.5, "y":0}, | 125 | {"x": 6.5, "y": 0}, |
115 | {"label":"F8", "x":9.5, "y":0}, | 126 | {"x": 7.5, "y": 0}, |
116 | {"label":"F9", "x":11, "y":0}, | 127 | {"x": 8.5, "y": 0}, |
117 | {"label":"F10", "x":12, "y":0}, | 128 | {"x": 9.5, "y": 0}, |
118 | {"label":"F11", "x":13, "y":0}, | 129 | |
119 | {"label":"F12", "x":14, "y":0}, | 130 | {"x": 11, "y": 0}, |
120 | {"label":"PrtSc", "x":15.25, "y":0}, | 131 | {"x": 12, "y": 0}, |
121 | {"label":"Scroll Lock", "x":16.25, "y":0}, | 132 | {"x": 13, "y": 0}, |
122 | {"label":"Pause", "x":17.25, "y":0}, | 133 | {"x": 14, "y": 0}, |
123 | {"label":"~", "x":0, "y":1.25}, | 134 | |
124 | {"label":"!", "x":1, "y":1.25}, | 135 | {"x": 15.25, "y": 0}, |
125 | {"label":"@", "x":2, "y":1.25}, | 136 | {"x": 16.25, "y": 0}, |
126 | {"label":"#", "x":3, "y":1.25}, | 137 | {"x": 17.25, "y": 0}, |
127 | {"label":"$", "x":4, "y":1.25}, | 138 | |
128 | {"label":"%", "x":5, "y":1.25}, | 139 | {"x": 0, "y": 1.25}, |
129 | {"label":"^", "x":6, "y":1.25}, | 140 | {"x": 1, "y": 1.25}, |
130 | {"label":"&", "x":7, "y":1.25}, | 141 | {"x": 2, "y": 1.25}, |
131 | {"label":"*", "x":8, "y":1.25}, | 142 | {"x": 3, "y": 1.25}, |
132 | {"label":"(", "x":9, "y":1.25}, | 143 | {"x": 4, "y": 1.25}, |
133 | {"label":")", "x":10, "y":1.25}, | 144 | {"x": 5, "y": 1.25}, |
134 | {"label":"_", "x":11, "y":1.25}, | 145 | {"x": 6, "y": 1.25}, |
135 | {"label":"+", "x":12, "y":1.25}, | 146 | {"x": 7, "y": 1.25}, |
136 | {"label":"Backspace", "x":13, "y":1.25, "w":2}, | 147 | {"x": 8, "y": 1.25}, |
137 | {"label":"Insert", "x":15.25, "y":1.25}, | 148 | {"x": 9, "y": 1.25}, |
138 | {"label":"Home", "x":16.25, "y":1.25}, | 149 | {"x": 10, "y": 1.25}, |
139 | {"label":"PgUp", "x":17.25, "y":1.25}, | 150 | {"x": 11, "y": 1.25}, |
140 | {"label":"Tab", "x":0, "y":2.25, "w":1.5}, | 151 | {"x": 12, "y": 1.25}, |
141 | {"label":"Q", "x":1.5, "y":2.25}, | 152 | {"x": 13, "y": 1.25, "w": 2}, |
142 | {"label":"W", "x":2.5, "y":2.25}, | 153 | |
143 | {"label":"E", "x":3.5, "y":2.25}, | 154 | {"x": 15.25, "y": 1.25}, |
144 | {"label":"R", "x":4.5, "y":2.25}, | 155 | {"x": 16.25, "y": 1.25}, |
145 | {"label":"T", "x":5.5, "y":2.25}, | 156 | {"x": 17.25, "y": 1.25}, |
146 | {"label":"Y", "x":6.5, "y":2.25}, | 157 | |
147 | {"label":"U", "x":7.5, "y":2.25}, | 158 | {"x": 0, "y": 2.25, "w": 1.5}, |
148 | {"label":"I", "x":8.5, "y":2.25}, | 159 | {"x": 1.5, "y": 2.25}, |
149 | {"label":"O", "x":9.5, "y":2.25}, | 160 | {"x": 2.5, "y": 2.25}, |
150 | {"label":"P", "x":10.5, "y":2.25}, | 161 | {"x": 3.5, "y": 2.25}, |
151 | {"label":"{", "x":11.5, "y":2.25}, | 162 | {"x": 4.5, "y": 2.25}, |
152 | {"label":"}", "x":12.5, "y":2.25}, | 163 | {"x": 5.5, "y": 2.25}, |
153 | {"label":"|", "x":13.5, "y":2.25, "w":1.5}, | 164 | {"x": 6.5, "y": 2.25}, |
154 | {"label":"Delete", "x":15.25, "y":2.25}, | 165 | {"x": 7.5, "y": 2.25}, |
155 | {"label":"End", "x":16.25, "y":2.25}, | 166 | {"x": 8.5, "y": 2.25}, |
156 | {"label":"PgDn", "x":17.25, "y":2.25}, | 167 | {"x": 9.5, "y": 2.25}, |
157 | {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, | 168 | {"x": 10.5, "y": 2.25}, |
158 | {"label":"A", "x":1.75, "y":3.25}, | 169 | {"x": 11.5, "y": 2.25}, |
159 | {"label":"S", "x":2.75, "y":3.25}, | 170 | {"x": 12.5, "y": 2.25}, |
160 | {"label":"D", "x":3.75, "y":3.25}, | 171 | {"x": 13.5, "y": 2.25, "w": 1.5}, |
161 | {"label":"F", "x":4.75, "y":3.25}, | 172 | |
162 | {"label":"G", "x":5.75, "y":3.25}, | 173 | {"x": 15.25, "y": 2.25}, |
163 | {"label":"H", "x":6.75, "y":3.25}, | 174 | {"x": 16.25, "y": 2.25}, |
164 | {"label":"J", "x":7.75, "y":3.25}, | 175 | {"x": 17.25, "y": 2.25}, |
165 | {"label":"K", "x":8.75, "y":3.25}, | 176 | |
166 | {"label":"L", "x":9.75, "y":3.25}, | 177 | {"x": 0, "y": 3.25, "w": 1.75}, |
167 | {"label":":", "x":10.75, "y":3.25}, | 178 | {"x": 1.75, "y": 3.25}, |
168 | {"label":"\"", "x":11.75, "y":3.25}, | 179 | {"x": 2.75, "y": 3.25}, |
169 | {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, | 180 | {"x": 3.75, "y": 3.25}, |
170 | {"label":"Shift", "x":0, "y":4.25, "w":2.25}, | 181 | {"x": 4.75, "y": 3.25}, |
171 | {"label":"Z", "x":2.25, "y":4.25}, | 182 | {"x": 5.75, "y": 3.25}, |
172 | {"label":"X", "x":3.25, "y":4.25}, | 183 | {"x": 6.75, "y": 3.25}, |
173 | {"label":"C", "x":4.25, "y":4.25}, | 184 | {"x": 7.75, "y": 3.25}, |
174 | {"label":"V", "x":5.25, "y":4.25}, | 185 | {"x": 8.75, "y": 3.25}, |
175 | {"label":"B", "x":6.25, "y":4.25}, | 186 | {"x": 9.75, "y": 3.25}, |
176 | {"label":"N", "x":7.25, "y":4.25}, | 187 | {"x": 10.75, "y": 3.25}, |
177 | {"label":"M", "x":8.25, "y":4.25}, | 188 | {"x": 11.75, "y": 3.25}, |
178 | {"label":"<", "x":9.25, "y":4.25}, | 189 | {"x": 12.75, "y": 3.25, "w": 2.25}, |
179 | {"label":">", "x":10.25, "y":4.25}, | 190 | |
180 | {"label":"?", "x":11.25, "y":4.25}, | 191 | {"x": 0, "y": 4.25, "w": 2.25}, |
181 | {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, | 192 | {"x": 2.25, "y": 4.25}, |
182 | {"label":"Up", "x":16.25, "y":4.25}, | 193 | {"x": 3.25, "y": 4.25}, |
183 | {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, | 194 | {"x": 4.25, "y": 4.25}, |
184 | {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, | 195 | {"x": 5.25, "y": 4.25}, |
185 | {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, | 196 | {"x": 6.25, "y": 4.25}, |
186 | {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, | 197 | {"x": 7.25, "y": 4.25}, |
187 | {"label":"Alt", "x":10, "y":5.25, "w":1.25}, | 198 | {"x": 8.25, "y": 4.25}, |
188 | {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, | 199 | {"x": 9.25, "y": 4.25}, |
189 | {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, | 200 | {"x": 10.25, "y": 4.25}, |
190 | {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, | 201 | {"x": 11.25, "y": 4.25}, |
191 | {"label":"Left", "x":15.25, "y":5.25}, | 202 | {"x": 12.25, "y": 4.25, "w": 2.75}, |
192 | {"label":"Down", "x":16.25, "y":5.25}, | 203 | |
193 | {"label":"Right", "x":17.25, "y":5.25} | 204 | {"x": 16.25, "y": 4.25}, |
205 | |||
206 | {"x": 0, "y": 5.25, "w": 1.25}, | ||
207 | {"x": 1.25, "y": 5.25, "w": 1.25}, | ||
208 | {"x": 2.5, "y": 5.25, "w": 1.25}, | ||
209 | {"x": 3.75, "y": 5.25, "w": 6.25}, | ||
210 | {"x": 10, "y": 5.25, "w": 1.25}, | ||
211 | {"x": 11.25, "y": 5.25, "w": 1.25}, | ||
212 | {"x": 12.5, "y": 5.25, "w": 1.25}, | ||
213 | {"x": 13.75, "y": 5.25, "w": 1.25}, | ||
214 | |||
215 | {"x": 15.25, "y": 5.25}, | ||
216 | {"x": 16.25, "y": 5.25}, | ||
217 | {"x": 17.25, "y": 5.25} | ||
194 | ] | 218 | ] |
195 | }, | 219 | }, |
196 | "LAYOUT_tkl_iso": { | 220 | "LAYOUT_tkl_iso": { |
197 | "key_count": 88, | ||
198 | "layout": [ | 221 | "layout": [ |
199 | {"label":"Esc", "x":0, "y":0}, | 222 | {"x": 0, "y": 0}, |
200 | {"label":"F1", "x":2, "y":0}, | 223 | |
201 | {"label":"F2", "x":3, "y":0}, | 224 | {"x": 2, "y": 0}, |
202 | {"label":"F3", "x":4, "y":0}, | 225 | {"x": 3, "y": 0}, |
203 | {"label":"F4", "x":5, "y":0}, | 226 | {"x": 4, "y": 0}, |
204 | {"label":"F5", "x":6.5, "y":0}, | 227 | {"x": 5, "y": 0}, |
205 | {"label":"F6", "x":7.5, "y":0}, | 228 | |
206 | {"label":"F7", "x":8.5, "y":0}, | 229 | {"x": 6.5, "y": 0}, |
207 | {"label":"F8", "x":9.5, "y":0}, | 230 | {"x": 7.5, "y": 0}, |
208 | {"label":"F9", "x":11, "y":0}, | 231 | {"x": 8.5, "y": 0}, |
209 | {"label":"F10", "x":12, "y":0}, | 232 | {"x": 9.5, "y": 0}, |
210 | {"label":"F11", "x":13, "y":0}, | 233 | |
211 | {"label":"F12", "x":14, "y":0}, | 234 | {"x": 11, "y": 0}, |
212 | {"label":"PrtSc", "x":15.25, "y":0}, | 235 | {"x": 12, "y": 0}, |
213 | {"label":"Scroll Lock", "x":16.25, "y":0}, | 236 | {"x": 13, "y": 0}, |
214 | {"label":"Pause", "x":17.25, "y":0}, | 237 | {"x": 14, "y": 0}, |
215 | {"label":"\u00ac", "x":0, "y":1.25}, | 238 | |
216 | {"label":"!", "x":1, "y":1.25}, | 239 | {"x": 15.25, "y": 0}, |
217 | {"label":"\"", "x":2, "y":1.25}, | 240 | {"x": 16.25, "y": 0}, |
218 | {"label":"\u00a3", "x":3, "y":1.25}, | 241 | {"x": 17.25, "y": 0}, |
219 | {"label":"$", "x":4, "y":1.25}, | 242 | |
220 | {"label":"%", "x":5, "y":1.25}, | 243 | {"x": 0, "y": 1.25}, |
221 | {"label":"^", "x":6, "y":1.25}, | 244 | {"x": 1, "y": 1.25}, |
222 | {"label":"&", "x":7, "y":1.25}, | 245 | {"x": 2, "y": 1.25}, |
223 | {"label":"*", "x":8, "y":1.25}, | 246 | {"x": 3, "y": 1.25}, |
224 | {"label":"(", "x":9, "y":1.25}, | 247 | {"x": 4, "y": 1.25}, |
225 | {"label":")", "x":10, "y":1.25}, | 248 | {"x": 5, "y": 1.25}, |
226 | {"label":"_", "x":11, "y":1.25}, | 249 | {"x": 6, "y": 1.25}, |
227 | {"label":"+", "x":12, "y":1.25}, | 250 | {"x": 7, "y": 1.25}, |
228 | {"label":"Backspace", "x":13, "y":1.25, "w":2}, | 251 | {"x": 8, "y": 1.25}, |
229 | {"label":"Insert", "x":15.25, "y":1.25}, | 252 | {"x": 9, "y": 1.25}, |
230 | {"label":"Home", "x":16.25, "y":1.25}, | 253 | {"x": 10, "y": 1.25}, |
231 | {"label":"PgUp", "x":17.25, "y":1.25}, | 254 | {"x": 11, "y": 1.25}, |
232 | {"label":"Tab", "x":0, "y":2.25, "w":1.5}, | 255 | {"x": 12, "y": 1.25}, |
233 | {"label":"Q", "x":1.5, "y":2.25}, | 256 | {"x": 13, "y": 1.25, "w": 2}, |
234 | {"label":"W", "x":2.5, "y":2.25}, | 257 | |
235 | {"label":"E", "x":3.5, "y":2.25}, | 258 | {"x": 15.25, "y": 1.25}, |
236 | {"label":"R", "x":4.5, "y":2.25}, | 259 | {"x": 16.25, "y": 1.25}, |
237 | {"label":"T", "x":5.5, "y":2.25}, | 260 | {"x": 17.25, "y": 1.25}, |
238 | {"label":"Y", "x":6.5, "y":2.25}, | 261 | |
239 | {"label":"U", "x":7.5, "y":2.25}, | 262 | {"x": 0, "y": 2.25, "w": 1.5}, |
240 | {"label":"I", "x":8.5, "y":2.25}, | 263 | {"x": 1.5, "y": 2.25}, |
241 | {"label":"O", "x":9.5, "y":2.25}, | 264 | {"x": 2.5, "y": 2.25}, |
242 | {"label":"P", "x":10.5, "y":2.25}, | 265 | {"x": 3.5, "y": 2.25}, |
243 | {"label":"{", "x":11.5, "y":2.25}, | 266 | {"x": 4.5, "y": 2.25}, |
244 | {"label":"}", "x":12.5, "y":2.25}, | 267 | {"x": 5.5, "y": 2.25}, |
245 | {"label":"Delete", "x":15.25, "y":2.25}, | 268 | {"x": 6.5, "y": 2.25}, |
246 | {"label":"End", "x":16.25, "y":2.25}, | 269 | {"x": 7.5, "y": 2.25}, |
247 | {"label":"PgDn", "x":17.25, "y":2.25}, | 270 | {"x": 8.5, "y": 2.25}, |
248 | {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, | 271 | {"x": 9.5, "y": 2.25}, |
249 | {"label":"A", "x":1.75, "y":3.25}, | 272 | {"x": 10.5, "y": 2.25}, |
250 | {"label":"S", "x":2.75, "y":3.25}, | 273 | {"x": 11.5, "y": 2.25}, |
251 | {"label":"D", "x":3.75, "y":3.25}, | 274 | {"x": 12.5, "y": 2.25}, |
252 | {"label":"F", "x":4.75, "y":3.25}, | 275 | |
253 | {"label":"G", "x":5.75, "y":3.25}, | 276 | {"x": 15.25, "y": 2.25}, |
254 | {"label":"H", "x":6.75, "y":3.25}, | 277 | {"x": 16.25, "y": 2.25}, |
255 | {"label":"J", "x":7.75, "y":3.25}, | 278 | {"x": 17.25, "y": 2.25}, |
256 | {"label":"K", "x":8.75, "y":3.25}, | 279 | |
257 | {"label":"L", "x":9.75, "y":3.25}, | 280 | {"x": 0, "y": 3.25, "w": 1.75}, |
258 | {"label":":", "x":10.75, "y":3.25}, | 281 | {"x": 1.75, "y": 3.25}, |
259 | {"label":"@", "x":11.75, "y":3.25}, | 282 | {"x": 2.75, "y": 3.25}, |
260 | {"label":"~", "x":12.75, "y":3.25}, | 283 | {"x": 3.75, "y": 3.25}, |
261 | {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, | 284 | {"x": 4.75, "y": 3.25}, |
262 | {"label":"Shift", "x":0, "y":4.25, "w":1.25}, | 285 | {"x": 5.75, "y": 3.25}, |
263 | {"label":"|", "x":1.25, "y":4.25}, | 286 | {"x": 6.75, "y": 3.25}, |
264 | {"label":"Z", "x":2.25, "y":4.25}, | 287 | {"x": 7.75, "y": 3.25}, |
265 | {"label":"X", "x":3.25, "y":4.25}, | 288 | {"x": 8.75, "y": 3.25}, |
266 | {"label":"C", "x":4.25, "y":4.25}, | 289 | {"x": 9.75, "y": 3.25}, |
267 | {"label":"V", "x":5.25, "y":4.25}, | 290 | {"x": 10.75, "y": 3.25}, |
268 | {"label":"B", "x":6.25, "y":4.25}, | 291 | {"x": 11.75, "y": 3.25}, |
269 | {"label":"N", "x":7.25, "y":4.25}, | 292 | {"x": 12.75, "y": 3.25}, |
270 | {"label":"M", "x":8.25, "y":4.25}, | 293 | {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, |
271 | {"label":"<", "x":9.25, "y":4.25}, | 294 | |
272 | {"label":">", "x":10.25, "y":4.25}, | 295 | {"x": 0, "y": 4.25, "w": 1.25}, |
273 | {"label":"?", "x":11.25, "y":4.25}, | 296 | {"x": 1.25, "y": 4.25}, |
274 | {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, | 297 | {"x": 2.25, "y": 4.25}, |
275 | {"label":"Up", "x":16.25, "y":4.25}, | 298 | {"x": 3.25, "y": 4.25}, |
276 | {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, | 299 | {"x": 4.25, "y": 4.25}, |
277 | {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, | 300 | {"x": 5.25, "y": 4.25}, |
278 | {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, | 301 | {"x": 6.25, "y": 4.25}, |
279 | {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, | 302 | {"x": 7.25, "y": 4.25}, |
280 | {"label":"AltGr", "x":10, "y":5.25, "w":1.25}, | 303 | {"x": 8.25, "y": 4.25}, |
281 | {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, | 304 | {"x": 9.25, "y": 4.25}, |
282 | {"label":"Menu", "x":12.5, "y":5.25, "w":1.25}, | 305 | {"x": 10.25, "y": 4.25}, |
283 | {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, | 306 | {"x": 11.25, "y": 4.25}, |
284 | {"label":"Left", "x":15.25, "y":5.25}, | 307 | {"x": 12.25, "y": 4.25, "w": 2.75}, |
285 | {"label":"Down", "x":16.25, "y":5.25}, | 308 | |
286 | {"label":"Right", "x":17.25, "y":5.25} | 309 | {"x": 16.25, "y": 4.25}, |
310 | |||
311 | {"x": 0, "y": 5.25, "w": 1.25}, | ||
312 | {"x": 1.25, "y": 5.25, "w": 1.25}, | ||
313 | {"x": 2.5, "y": 5.25, "w": 1.25}, | ||
314 | {"x": 3.75, "y": 5.25, "w": 6.25}, | ||
315 | {"x": 10, "y": 5.25, "w": 1.25}, | ||
316 | {"x": 11.25, "y": 5.25, "w": 1.25}, | ||
317 | {"x": 12.5, "y": 5.25, "w": 1.25}, | ||
318 | {"x": 13.75, "y": 5.25, "w": 1.25}, | ||
319 | |||
320 | {"x": 15.25, "y": 5.25}, | ||
321 | {"x": 16.25, "y": 5.25}, | ||
322 | {"x": 17.25, "y": 5.25} | ||
287 | ] | 323 | ] |
288 | } | 324 | } |
289 | } | 325 | } |
diff --git a/keyboards/freyr/keymaps/default/config.h b/keyboards/freyr/keymaps/default/config.h deleted file mode 100644 index 348d7c551..000000000 --- a/keyboards/freyr/keymaps/default/config.h +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | /* Copyright 2019 HnahKB | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | |||
17 | #pragma once | ||
18 | |||
19 | // place overrides here | ||
diff --git a/keyboards/freyr/keymaps/default/keymap.c b/keyboards/freyr/keymaps/default/keymap.c index 008ae47d4..f7ade501f 100644 --- a/keyboards/freyr/keymaps/default/keymap.c +++ b/keyboards/freyr/keymaps/default/keymap.c | |||
@@ -13,32 +13,33 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 13 | * You should have received a copy of the GNU General Public License |
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | |||
16 | #include QMK_KEYBOARD_H | 17 | #include QMK_KEYBOARD_H |
17 | 18 | ||
18 | enum hnah_layers{ | 19 | enum layer_names { |
19 | _QWERTY, | 20 | _QWERTY, |
20 | _LOWER | 21 | _LOWER |
21 | }; | 22 | }; |
22 | 23 | ||
23 | #define LOWER MO(_LOWER) | 24 | #define LOWER MO(_LOWER) |
24 | 25 | ||
25 | |||
26 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 26 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
27 | [_QWERTY] = LAYOUT_tkl_iso( | 27 | [_QWERTY] = LAYOUT_tkl_iso( |
28 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS , \ | 28 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, |
29 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,\ | ||
30 | 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_DEL, KC_END, KC_PGDN,\ | ||
31 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,\ | ||
32 | KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,\ | ||
33 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_APP, LOWER, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ | ||
34 | ), | ||
35 | [_LOWER] = LAYOUT_tkl_iso( | ||
36 | RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , \ | ||
37 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ | ||
38 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ | ||
39 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ | ||
40 | KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ | ||
41 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ | ||
42 | ) | ||
43 | }; | ||
44 | 29 | ||
30 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, | ||
31 | 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_DEL, KC_END, KC_PGDN, | ||
32 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, | ||
33 | KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | ||
34 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, LOWER, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||
35 | ), | ||
36 | [_LOWER] = LAYOUT_tkl_iso( | ||
37 | RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
38 | |||
39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
41 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
42 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
43 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
44 | ) | ||
45 | }; | ||
diff --git a/keyboards/freyr/keymaps/default/readme.md b/keyboards/freyr/keymaps/default/readme.md index 7a41bdd76..dfb2794c6 100644 --- a/keyboards/freyr/keymaps/default/readme.md +++ b/keyboards/freyr/keymaps/default/readme.md | |||
@@ -1 +1 @@ | |||
# The default keymap for freyr \ No newline at end of file | # The default keymap for freyr | ||
diff --git a/keyboards/freyr/readme.md b/keyboards/freyr/readme.md index c6ddc3041..20fa484e8 100644 --- a/keyboards/freyr/readme.md +++ b/keyboards/freyr/readme.md | |||
@@ -1,15 +1,20 @@ | |||
1 | # freyr | 1 | # freyr |
2 | 2 | ||
3 |  | 3 |  |
4 | |||
5 | Freyr is a tenkeyless keyboard, support ansi and iso layout. | ||
4 | 6 | ||
5 | Freyr is a tenkeyless keyboard, support ansi and iso layout. | ||
6 | [Full layout here](http://www.keyboard-layout-editor.com/#/gists/438ef0c58c46ec28c80d9894ffcff177) | 7 | [Full layout here](http://www.keyboard-layout-editor.com/#/gists/438ef0c58c46ec28c80d9894ffcff177) |
7 | 8 | ||
8 | Keyboard Maintainer: [HnahKB](https://github.com/vuhopkep) | 9 | * Keyboard Maintainer: [HnahKB](https://github.com/vuhopkep) |
9 | Hardware Supported: Freyr.revB PCB | 10 | * Hardware Supported: Freyr.revB PCB |
10 | 11 | ||
11 | Make example for this keyboard (after setting up your build environment): | 12 | Make example for this keyboard (after setting up your build environment): |
12 | 13 | ||
13 | make freyr:default | 14 | make freyr:default |
14 | 15 | ||
16 | Flashing example for this keyboard: | ||
17 | |||
18 | make freyr:default:flash | ||
19 | |||
15 | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | 20 | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
diff --git a/keyboards/freyr/rules.mk b/keyboards/freyr/rules.mk index 20f9cd130..bfd0c5262 100644 --- a/keyboards/freyr/rules.mk +++ b/keyboards/freyr/rules.mk | |||
@@ -2,34 +2,23 @@ | |||
2 | MCU = atmega32u4 | 2 | MCU = atmega32u4 |
3 | 3 | ||
4 | # Bootloader selection | 4 | # Bootloader selection |
5 | # Teensy halfkay | ||
6 | # Pro Micro caterina | ||
7 | # Atmel DFU atmel-dfu | ||
8 | # LUFA DFU lufa-dfu | ||
9 | # QMK DFU qmk-dfu | ||
10 | # ATmega32A bootloadHID | ||
11 | # ATmega328P USBasp | ||
12 | BOOTLOADER = atmel-dfu | 5 | BOOTLOADER = atmel-dfu |
13 | 6 | ||
14 | # Build Options | 7 | # Build Options |
15 | # change yes to no to disable | 8 | # change yes to no to disable |
16 | # | 9 | # |
17 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | 10 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration |
18 | MOUSEKEY_ENABLE = no # Mouse keys | 11 | MOUSEKEY_ENABLE = no # Mouse keys |
19 | EXTRAKEY_ENABLE = yes # Audio control and System control | 12 | EXTRAKEY_ENABLE = yes # Audio control and System control |
20 | CONSOLE_ENABLE = yes # Console for debug | 13 | CONSOLE_ENABLE = yes # Console for debug |
21 | COMMAND_ENABLE = yes # Commands for debug and configuration | 14 | COMMAND_ENABLE = yes # Commands for debug and configuration |
22 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | 15 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE |
23 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | 16 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
24 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | 17 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work |
25 | NKRO_ENABLE = yes # USB Nkey Rollover | 18 | NKRO_ENABLE = yes # USB Nkey Rollover |
26 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | 19 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality |
27 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | 20 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow |
28 | MIDI_ENABLE = no # MIDI support | 21 | BLUETOOTH_ENABLE = no # Enable Bluetooth |
29 | UNICODE_ENABLE = no # Unicode | 22 | AUDIO_ENABLE = no # Audio output |
30 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
31 | AUDIO_ENABLE = no # Audio output on port C6 | ||
32 | FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches | ||
33 | 23 | ||
34 | # Supported layouts | ||
35 | LAYOUTS = tkl_ansi tkl_iso | 24 | LAYOUTS = tkl_ansi tkl_iso |