aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2020-11-04 10:39:11 +1100
committerGitHub <noreply@github.com>2020-11-04 10:39:11 +1100
commite024147ce5871a39a13ce5485c7afed03eabff5c (patch)
tree6137b1cf9d05ddc4042a03a03d7045f996b8ca22
parentc60cafae419f8fe409f9cdb3274bbf6d02973f7c (diff)
downloadqmk_firmware-e024147ce5871a39a13ce5485c7afed03eabff5c.tar.gz
qmk_firmware-e024147ce5871a39a13ce5485c7afed03eabff5c.zip
Freyr refactor (#10833)
-rw-r--r--keyboards/freyr/config.h108
-rw-r--r--keyboards/freyr/freyr.c35
-rw-r--r--keyboards/freyr/freyr.h87
-rw-r--r--keyboards/freyr/info.json574
-rw-r--r--keyboards/freyr/keymaps/default/config.h19
-rw-r--r--keyboards/freyr/keymaps/default/keymap.c43
-rw-r--r--keyboards/freyr/keymaps/default/readme.md2
-rw-r--r--keyboards/freyr/readme.md13
-rw-r--r--keyboards/freyr/rules.mk23
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
19void matrix_init_kb(void) { 19void matrix_init_kb(void) {
20 matrix_init_user(); 20 matrix_init_user();
21 led_init_ports(); 21 led_init_ports();
22}; 22}
23 23
24void led_init_ports(void) { 24void led_init_ports(void) {
25 setPinOutput(B3); 25 setPinOutput(B3);
26 setPinOutput(B7); 26 setPinOutput(B7);
27} 27}
28 28
29void led_set_kb(uint8_t usb_led) { 29bool 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
18enum hnah_layers{ 19enum 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
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const 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![Freyr](https://i.imgur.com/MeOrzoI.jpg) 3![Freyr](https://i.imgur.com/MeOrzoIl.jpg)
4
5Freyr is a tenkeyless keyboard, support ansi and iso layout.
4 6
5Freyr 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
8Keyboard Maintainer: [HnahKB](https://github.com/vuhopkep) 9* Keyboard Maintainer: [HnahKB](https://github.com/vuhopkep)
9Hardware Supported: Freyr.revB PCB 10* Hardware Supported: Freyr.revB PCB
10 11
11Make example for this keyboard (after setting up your build environment): 12Make example for this keyboard (after setting up your build environment):
12 13
13 make freyr:default 14 make freyr:default
14 15
16Flashing example for this keyboard:
17
18 make freyr:default:flash
19
15See 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). 20See 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 @@
2MCU = atmega32u4 2MCU = 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
12BOOTLOADER = atmel-dfu 5BOOTLOADER = 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#
17BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration 10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = no # Mouse keys 11MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug 13CONSOLE_ENABLE = yes # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration 14COMMAND_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
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16SLEEP_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
25NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
26BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28MIDI_ENABLE = no # MIDI support 21BLUETOOTH_ENABLE = no # Enable Bluetooth
29UNICODE_ENABLE = no # Unicode 22AUDIO_ENABLE = no # Audio output
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33 23
34# Supported layouts
35LAYOUTS = tkl_ansi tkl_iso 24LAYOUTS = tkl_ansi tkl_iso