aboutsummaryrefslogtreecommitdiff
path: root/keyboards/whitefox
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2020-10-14 15:06:05 +1100
committerGitHub <noreply@github.com>2020-10-14 15:06:05 +1100
commit7437a388990c784a52a33847551591af346dd797 (patch)
tree9e12b7d0b7b0caed1dd9ddfcd93e750fb5e687b5 /keyboards/whitefox
parent381884fa9be79e4538c8accc2043654b47499f44 (diff)
downloadqmk_firmware-7437a388990c784a52a33847551591af346dd797.tar.gz
qmk_firmware-7437a388990c784a52a33847551591af346dd797.zip
Whitefox refactor (#10175)
Diffstat (limited to 'keyboards/whitefox')
-rw-r--r--keyboards/whitefox/config.h88
-rw-r--r--keyboards/whitefox/info.json629
-rw-r--r--keyboards/whitefox/keymaps/default/keymap.c63
-rw-r--r--keyboards/whitefox/led.c24
-rw-r--r--keyboards/whitefox/matrix.c135
-rw-r--r--keyboards/whitefox/readme.md12
-rw-r--r--keyboards/whitefox/rules.mk30
-rw-r--r--keyboards/whitefox/visualizer.c22
-rw-r--r--keyboards/whitefox/whitefox.c18
-rw-r--r--keyboards/whitefox/whitefox.h327
10 files changed, 873 insertions, 475 deletions
diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h
index 87af4edcf..4d7a460d2 100644
--- a/keyboards/whitefox/config.h
+++ b/keyboards/whitefox/config.h
@@ -15,42 +15,78 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#ifndef CONFIG_H 18#pragma once
19#define CONFIG_H
20 19
21/* USB Device descriptor parameter */ 20/* USB Device descriptor parameter */
22#define VENDOR_ID 0x1c11 21#define VENDOR_ID 0x1C11
23#define PRODUCT_ID 0xb04d 22#define PRODUCT_ID 0xB04D
24#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
25#define MANUFACTURER Input Club 24#define MANUFACTURER Input:Club
26#define PRODUCT WhiteFox/QMK 25#define PRODUCT WhiteFox (QMK)
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 9 28#define MATRIX_ROWS 8
30#define MATRIX_COLS 8 29#define MATRIX_COLS 9
31 30
32/* number of backlight levels */ 31/*
33#define BACKLIGHT_LEVELS 3 32 * Keyboard Matrix Assignments
33 *
34 * Change this to how you wired your keyboard
35 * COLS: AVR pins used for columns, left to right
36 * ROWS: AVR pins used for rows, top to bottom
37 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
38 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
39 *
40 */
41#define MATRIX_ROW_PINS { D0, D1, D4, D5, D6, D7, C1, C2 }
42#define MATRIX_COL_PINS { B2, B3, B18, B19, C0, C8, C9, C10, C11 }
43#define UNUSED_PINS
34 44
35#define LED_BRIGHTNESS_LO 100 45/* COL2ROW, ROW2COL */
36#define LED_BRIGHTNESS_HI 255 46#define DIODE_DIRECTION COL2ROW
37 47
38/* define if matrix has ghost */ 48/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
39//#define MATRIX_HAS_GHOST 49#define DEBOUNCE 5
40 50
41/* Set 0 if debouncing isn't needed */ 51/* define if matrix has ghost (lacks anti-ghosting diodes) */
42#define DEBOUNCE 6 52//#define MATRIX_HAS_GHOST
43 53
44/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 54/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
45//#define LOCKING_SUPPORT_ENABLE 55//#define LOCKING_SUPPORT_ENABLE
46/* Locking resynchronize hack */ 56/* Locking resynchronize hack */
47//#define LOCKING_RESYNC_ENABLE 57//#define LOCKING_RESYNC_ENABLE
48 58
49/* Keymap for Infinity prototype */ 59/* number of backlight levels */
50//#define INFINITY_PROTOTYPE 60#define BACKLIGHT_LEVELS 3
61
62#define LED_BRIGHTNESS_LO 100
63#define LED_BRIGHTNESS_HI 255
51 64
52/* Keymap for Infinity 1.1a (first revision with LED support) */ 65/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
53//#define INFINITY_LED 66 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
67 */
68//#define GRAVE_ESC_CTRL_OVERRIDE
69
70/*
71 * Force NKRO
72 *
73 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
74 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
75 * makefile for this to work.)
76 *
77 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
78 * until the next keyboard reset.
79 *
80 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
81 * fully operational during normal computer usage.
82 *
83 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
84 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
85 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
86 * power-up.
87 *
88 */
89//#define FORCE_NKRO
54 90
55/* 91/*
56 * Feature disable options 92 * Feature disable options
@@ -67,7 +103,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
67//#define NO_ACTION_LAYER 103//#define NO_ACTION_LAYER
68//#define NO_ACTION_TAPPING 104//#define NO_ACTION_TAPPING
69//#define NO_ACTION_ONESHOT 105//#define NO_ACTION_ONESHOT
70//#define NO_ACTION_MACRO
71//#define NO_ACTION_FUNCTION
72 106
73#endif 107/* disable these deprecated features by default */
108#define NO_ACTION_MACRO
109#define NO_ACTION_FUNCTION
110
111/* Bootmagic Lite key configuration */
112//#define BOOTMAGIC_LITE_ROW 0
113//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/whitefox/info.json b/keyboards/whitefox/info.json
index fc2ffea12..715f72810 100644
--- a/keyboards/whitefox/info.json
+++ b/keyboards/whitefox/info.json
@@ -1,91 +1,544 @@
1{ 1{
2 "keyboard_name": "Whitefox", 2 "keyboard_name": "Whitefox",
3 "maintainer": "qmk", 3 "maintainer": "qmk",
4 "width": 16, 4 "width": 16,
5 "height": 5, 5 "height": 5,
6 "layouts": { 6 "layouts": {
7 "LAYOUT": { 7 "LAYOUT_all": {
8 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] 8 "layout": [
9 }, 9 {"x": 0, "y": 0},
10 10 {"x": 1, "y": 0},
11 "LAYOUT_truefox": { 11 {"x": 2, "y": 0},
12 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] 12 {"x": 3, "y": 0},
13 }, 13 {"x": 4, "y": 0},
14 14 {"x": 5, "y": 0},
15 "LAYOUT_aria": { 15 {"x": 6, "y": 0},
16 "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}] 16 {"x": 7, "y": 0},
17 }, 17 {"x": 8, "y": 0},
18 "LAYOUT_vanilla": { 18 {"x": 9, "y": 0},
19 "layout": [ 19 {"x": 10, "y": 0},
20 {"label": "~","x": 0,"y": 0}, 20 {"x": 11, "y": 0},
21 {"label": "!","x": 1,"y": 0}, 21 {"x": 12, "y": 0},
22 {"label": "@","x": 2,"y": 0}, 22 {"x": 13, "y": 0},
23 {"label": "#","x": 3,"y": 0}, 23 {"x": 14, "y": 0},
24 {"label": "$","x": 4,"y": 0}, 24 {"x": 15, "y": 0},
25 {"label": "%","x": 5,"y": 0}, 25
26 {"label": "^","x": 6,"y": 0}, 26 {"x": 0, "y": 1, "w": 1.5},
27 {"label": "&","x": 7,"y": 0}, 27 {"x": 1.5, "y": 1},
28 {"label": "*","x": 8,"y": 0}, 28 {"x": 2.5, "y": 1},
29 {"label": "(","x": 9,"y": 0}, 29 {"x": 3.5, "y": 1},
30 {"label": ")","x": 10,"y": 0}, 30 {"x": 4.5, "y": 1},
31 {"label": "_","x": 11,"y": 0}, 31 {"x": 5.5, "y": 1},
32 {"label": "+","x": 12,"y": 0}, 32 {"x": 6.5, "y": 1},
33 {"label": "Backspace","x": 13,"y": 0,"w": 2}, 33 {"x": 7.5, "y": 1},
34 {"x": 15,"y": 0}, 34 {"x": 8.5, "y": 1},
35 {"label": "Tab","x": 0,"y": 1,"w": 1.5}, 35 {"x": 9.5, "y": 1},
36 {"label": "Q","x": 1.5,"y": 1}, 36 {"x": 10.5, "y": 1},
37 {"label": "W","x": 2.5,"y": 1}, 37 {"x": 11.5, "y": 1},
38 {"label": "E","x": 3.5,"y": 1}, 38 {"x": 12.5, "y": 1},
39 {"label": "R","x": 4.5,"y": 1}, 39 {"x": 13.5, "y": 1, "w": 1.5},
40 {"label": "T","x": 5.5,"y": 1}, 40 {"x": 15, "y": 1},
41 {"label": "Y","x": 6.5,"y": 1}, 41
42 {"label": "U","x": 7.5,"y": 1}, 42 {"x": 0, "y": 2, "w": 1.75},
43 {"label": "I","x": 8.5,"y": 1}, 43 {"x": 1.75, "y": 2},
44 {"label": "O","x": 9.5,"y": 1}, 44 {"x": 2.75, "y": 2},
45 {"label": "P","x": 10.5,"y": 1}, 45 {"x": 3.75, "y": 2},
46 {"label": "{","x": 11.5,"y": 1}, 46 {"x": 4.75, "y": 2},
47 {"label": "}","x": 12.5,"y": 1}, 47 {"x": 5.75, "y": 2},
48 {"label": "|","x": 13.5,"y": 1,"w": 1.5}, 48 {"x": 6.75, "y": 2},
49 {"x": 15,"y": 1}, 49 {"x": 7.75, "y": 2},
50 {"label": "Caps Lock","x": 0,"y": 2,"w": 1.75}, 50 {"x": 8.75, "y": 2},
51 {"label": "A","x": 1.75,"y": 2}, 51 {"x": 9.75, "y": 2},
52 {"label": "S","x": 2.75,"y": 2}, 52 {"x": 10.75, "y": 2},
53 {"label": "D","x": 3.75,"y": 2}, 53 {"x": 11.75, "y": 2},
54 {"label": "F","x": 4.75,"y": 2}, 54 {"x": 12.75, "y": 2},
55 {"label": "G","x": 5.75,"y": 2}, 55 {"x": 13.75, "y": 2, "w": 1.25},
56 {"label": "H","x": 6.75,"y": 2}, 56 {"x": 15, "y": 2},
57 {"label": "J","x": 7.75,"y": 2}, 57
58 {"label": "K","x": 8.75,"y": 2}, 58 {"x": 0, "y": 3, "w": 1.25},
59 {"label": "L","x": 9.75,"y": 2}, 59 {"x": 1.25, "y": 3},
60 {"label": ":","x": 10.75,"y": 2}, 60 {"x": 2.25, "y": 3},
61 {"label": "\"","x": 11.75,"y": 2}, 61 {"x": 3.25, "y": 3},
62 {"label": "Enter","x": 12.75,"y": 2,"w": 2.25}, 62 {"x": 4.25, "y": 3},
63 {"x": 15,"y": 2}, 63 {"x": 5.25, "y": 3},
64 {"label": "Shift","x": 0,"y": 3,"w": 2.25}, 64 {"x": 6.25, "y": 3},
65 {"label": "Z","x": 2.25,"y": 3}, 65 {"x": 7.25, "y": 3},
66 {"label": "X","x": 3.25,"y": 3}, 66 {"x": 8.25, "y": 3},
67 {"label": "C","x": 4.25,"y": 3}, 67 {"x": 9.25, "y": 3},
68 {"label": "V","x": 5.25,"y": 3}, 68 {"x": 10.25, "y": 3},
69 {"label": "B","x": 6.25,"y": 3}, 69 {"x": 11.25, "y": 3},
70 {"label": "N","x": 7.25,"y": 3}, 70 {"x": 12.25, "y": 3, "w": 1.75},
71 {"label": "M","x": 8.25,"y": 3}, 71 {"x": 14, "y": 3},
72 {"label": "<","x": 9.25,"y": 3}, 72 {"x": 15, "y": 3},
73 {"label": ">","x": 10.25,"y": 3}, 73
74 {"label": "?","x": 11.25,"y": 3}, 74 {"x": 0, "y": 4, "w": 1.25},
75 {"label": "Shift","x": 12.25,"y": 3,"w": 1.75}, 75 {"x": 1.25, "y": 4, "w": 1.25},
76 {"x": 14,"y": 3}, 76 {"x": 2.5, "y": 4, "w": 1.25},
77 {"x": 15,"y": 3}, 77 {"x": 3.75, "y": 4, "w": 6.25},
78 {"label": "Ctrl","x": 0,"y": 4,"w": 1.25}, 78 {"x": 10, "y": 4},
79 {"label": "Win","x": 1.25,"y": 4,"w": 1.25}, 79 {"x": 11, "y": 4},
80 {"label": "Alt","x": 2.5,"y": 4,"w": 1.25}, 80 {"x": 12, "y": 4},
81 {"x": 3.75,"y": 4,"w": 6.25}, 81 {"x": 13, "y": 4},
82 {"label": "Alt","x": 10,"y": 4,"w": 1}, 82 {"x": 14, "y": 4},
83 {"label": "Win","x": 11,"y": 4,"w": 1}, 83 {"x": 15, "y": 4}
84 {"label": "Ctrl","x": 12,"y": 4,"w": 1}, 84 ]
85 {"x": 13,"y": 4}, 85 },
86 {"x": 14,"y": 4}, 86 "LAYOUT_65_ansi": {
87 {"x": 15,"y": 4} 87 "layout": [
88 ] 88 {"x": 0, "y": 0},
89 {"x": 1, "y": 0},
90 {"x": 2, "y": 0},
91 {"x": 3, "y": 0},
92 {"x": 4, "y": 0},
93 {"x": 5, "y": 0},
94 {"x": 6, "y": 0},
95 {"x": 7, "y": 0},
96 {"x": 8, "y": 0},
97 {"x": 9, "y": 0},
98 {"x": 10, "y": 0},
99 {"x": 11, "y": 0},
100 {"x": 12, "y": 0},
101 {"x": 13, "y": 0, "w": 2},
102 {"x": 15, "y": 0},
103
104 {"x": 0, "y": 1, "w": 1.5},
105 {"x": 1.5, "y": 1},
106 {"x": 2.5, "y": 1},
107 {"x": 3.5, "y": 1},
108 {"x": 4.5, "y": 1},
109 {"x": 5.5, "y": 1},
110 {"x": 6.5, "y": 1},
111 {"x": 7.5, "y": 1},
112 {"x": 8.5, "y": 1},
113 {"x": 9.5, "y": 1},
114 {"x": 10.5, "y": 1},
115 {"x": 11.5, "y": 1},
116 {"x": 12.5, "y": 1},
117 {"x": 13.5, "y": 1, "w": 1.5},
118 {"x": 15, "y": 1},
119
120 {"x": 0, "y": 2, "w": 1.75},
121 {"x": 1.75, "y": 2},
122 {"x": 2.75, "y": 2},
123 {"x": 3.75, "y": 2},
124 {"x": 4.75, "y": 2},
125 {"x": 5.75, "y": 2},
126 {"x": 6.75, "y": 2},
127 {"x": 7.75, "y": 2},
128 {"x": 8.75, "y": 2},
129 {"x": 9.75, "y": 2},
130 {"x": 10.75, "y": 2},
131 {"x": 11.75, "y": 2},
132 {"x": 12.75, "y": 2, "w": 2.25},
133 {"x": 15, "y": 2},
134
135 {"x": 0, "y": 3, "w": 2.25},
136 {"x": 2.25, "y": 3},
137 {"x": 3.25, "y": 3},
138 {"x": 4.25, "y": 3},
139 {"x": 5.25, "y": 3},
140 {"x": 6.25, "y": 3},
141 {"x": 7.25, "y": 3},
142 {"x": 8.25, "y": 3},
143 {"x": 9.25, "y": 3},
144 {"x": 10.25, "y": 3},
145 {"x": 11.25, "y": 3},
146 {"x": 12.25, "y": 3, "w": 1.75},
147 {"x": 14, "y": 3},
148 {"x": 15, "y": 3},
149
150 {"x": 0, "y": 4, "w": 1.25},
151 {"x": 1.25, "y": 4, "w": 1.25},
152 {"x": 2.5, "y": 4, "w": 1.25},
153 {"x": 3.75, "y": 4, "w": 6.25},
154 {"x": 10, "y": 4},
155 {"x": 11, "y": 4},
156 {"x": 12, "y": 4},
157 {"x": 13, "y": 4},
158 {"x": 14, "y": 4},
159 {"x": 15, "y": 4}
160 ]
161 },
162 "LAYOUT_65_ansi_blocker": {
163 "layout": [
164 {"x": 0, "y": 0},
165 {"x": 1, "y": 0},
166 {"x": 2, "y": 0},
167 {"x": 3, "y": 0},
168 {"x": 4, "y": 0},
169 {"x": 5, "y": 0},
170 {"x": 6, "y": 0},
171 {"x": 7, "y": 0},
172 {"x": 8, "y": 0},
173 {"x": 9, "y": 0},
174 {"x": 10, "y": 0},
175 {"x": 11, "y": 0},
176 {"x": 12, "y": 0},
177 {"x": 13, "y": 0, "w": 2},
178 {"x": 15, "y": 0},
179
180 {"x": 0, "y": 1, "w": 1.5},
181 {"x": 1.5, "y": 1},
182 {"x": 2.5, "y": 1},
183 {"x": 3.5, "y": 1},
184 {"x": 4.5, "y": 1},
185 {"x": 5.5, "y": 1},
186 {"x": 6.5, "y": 1},
187 {"x": 7.5, "y": 1},
188 {"x": 8.5, "y": 1},
189 {"x": 9.5, "y": 1},
190 {"x": 10.5, "y": 1},
191 {"x": 11.5, "y": 1},
192 {"x": 12.5, "y": 1},
193 {"x": 13.5, "y": 1, "w": 1.5},
194 {"x": 15, "y": 1},
195
196 {"x": 0, "y": 2, "w": 1.75},
197 {"x": 1.75, "y": 2},
198 {"x": 2.75, "y": 2},
199 {"x": 3.75, "y": 2},
200 {"x": 4.75, "y": 2},
201 {"x": 5.75, "y": 2},
202 {"x": 6.75, "y": 2},
203 {"x": 7.75, "y": 2},
204 {"x": 8.75, "y": 2},
205 {"x": 9.75, "y": 2},
206 {"x": 10.75, "y": 2},
207 {"x": 11.75, "y": 2},
208 {"x": 12.75, "y": 2, "w": 2.25},
209 {"x": 15, "y": 2},
210
211 {"x": 0, "y": 3, "w": 2.25},
212 {"x": 2.25, "y": 3},
213 {"x": 3.25, "y": 3},
214 {"x": 4.25, "y": 3},
215 {"x": 5.25, "y": 3},
216 {"x": 6.25, "y": 3},
217 {"x": 7.25, "y": 3},
218 {"x": 8.25, "y": 3},
219 {"x": 9.25, "y": 3},
220 {"x": 10.25, "y": 3},
221 {"x": 11.25, "y": 3},
222 {"x": 12.25, "y": 3, "w": 1.75},
223 {"x": 14, "y": 3},
224 {"x": 15, "y": 3},
225
226 {"x": 0, "y": 4, "w": 1.25},
227 {"x": 1.25, "y": 4, "w": 1.25},
228 {"x": 2.5, "y": 4, "w": 1.25},
229 {"x": 3.75, "y": 4, "w": 6.25},
230 {"x": 10, "y": 4, "w": 1.25},
231 {"x": 11.25, "y": 4, "w": 1.25},
232 {"x": 13, "y": 4},
233 {"x": 14, "y": 4},
234 {"x": 15, "y": 4}
235 ]
236 },
237 "LAYOUT_65_ansi_blocker_split_bs": {
238 "layout": [
239 {"x": 0, "y": 0},
240 {"x": 1, "y": 0},
241 {"x": 2, "y": 0},
242 {"x": 3, "y": 0},
243 {"x": 4, "y": 0},
244 {"x": 5, "y": 0},
245 {"x": 6, "y": 0},
246 {"x": 7, "y": 0},
247 {"x": 8, "y": 0},
248 {"x": 9, "y": 0},
249 {"x": 10, "y": 0},
250 {"x": 11, "y": 0},
251 {"x": 12, "y": 0},
252 {"x": 13, "y": 0},
253 {"x": 14, "y": 0},
254 {"x": 15, "y": 0},
255
256 {"x": 0, "y": 1, "w": 1.5},
257 {"x": 1.5, "y": 1},
258 {"x": 2.5, "y": 1},
259 {"x": 3.5, "y": 1},
260 {"x": 4.5, "y": 1},
261 {"x": 5.5, "y": 1},
262 {"x": 6.5, "y": 1},
263 {"x": 7.5, "y": 1},
264 {"x": 8.5, "y": 1},
265 {"x": 9.5, "y": 1},
266 {"x": 10.5, "y": 1},
267 {"x": 11.5, "y": 1},
268 {"x": 12.5, "y": 1},
269 {"x": 13.5, "y": 1, "w": 1.5},
270 {"x": 15, "y": 1},
271
272 {"x": 0, "y": 2, "w": 1.75},
273 {"x": 1.75, "y": 2},
274 {"x": 2.75, "y": 2},
275 {"x": 3.75, "y": 2},
276 {"x": 4.75, "y": 2},
277 {"x": 5.75, "y": 2},
278 {"x": 6.75, "y": 2},
279 {"x": 7.75, "y": 2},
280 {"x": 8.75, "y": 2},
281 {"x": 9.75, "y": 2},
282 {"x": 10.75, "y": 2},
283 {"x": 11.75, "y": 2},
284 {"x": 12.75, "y": 2, "w": 2.25},
285 {"x": 15, "y": 2},
286
287 {"x": 0, "y": 3, "w": 2.25},
288 {"x": 2.25, "y": 3},
289 {"x": 3.25, "y": 3},
290 {"x": 4.25, "y": 3},
291 {"x": 5.25, "y": 3},
292 {"x": 6.25, "y": 3},
293 {"x": 7.25, "y": 3},
294 {"x": 8.25, "y": 3},
295 {"x": 9.25, "y": 3},
296 {"x": 10.25, "y": 3},
297 {"x": 11.25, "y": 3},
298 {"x": 12.25, "y": 3, "w": 1.75},
299 {"x": 14, "y": 3},
300 {"x": 15, "y": 3},
301
302 {"x": 0, "y": 4, "w": 1.25},
303 {"x": 1.25, "y": 4, "w": 1.25},
304 {"x": 2.5, "y": 4, "w": 1.25},
305 {"x": 3.75, "y": 4, "w": 6.25},
306 {"x": 10, "y": 4, "w": 1.25},
307 {"x": 11.25, "y": 4, "w": 1.25},
308 {"x": 13, "y": 4},
309 {"x": 14, "y": 4},
310 {"x": 15, "y": 4}
311 ]
312 },
313 "LAYOUT_65_iso": {
314 "layout": [
315 {"x": 0, "y": 0},
316 {"x": 1, "y": 0},
317 {"x": 2, "y": 0},
318 {"x": 3, "y": 0},
319 {"x": 4, "y": 0},
320 {"x": 5, "y": 0},
321 {"x": 6, "y": 0},
322 {"x": 7, "y": 0},
323 {"x": 8, "y": 0},
324 {"x": 9, "y": 0},
325 {"x": 10, "y": 0},
326 {"x": 11, "y": 0},
327 {"x": 12, "y": 0},
328 {"x": 13, "y": 0, "w": 2},
329 {"x": 15, "y": 0},
330
331 {"x": 0, "y": 1, "w": 1.5},
332 {"x": 1.5, "y": 1},
333 {"x": 2.5, "y": 1},
334 {"x": 3.5, "y": 1},
335 {"x": 4.5, "y": 1},
336 {"x": 5.5, "y": 1},
337 {"x": 6.5, "y": 1},
338 {"x": 7.5, "y": 1},
339 {"x": 8.5, "y": 1},
340 {"x": 9.5, "y": 1},
341 {"x": 10.5, "y": 1},
342 {"x": 11.5, "y": 1},
343 {"x": 12.5, "y": 1},
344 {"x": 15, "y": 1},
345
346 {"x": 0, "y": 2, "w": 1.75},
347 {"x": 1.75, "y": 2},
348 {"x": 2.75, "y": 2},
349 {"x": 3.75, "y": 2},
350 {"x": 4.75, "y": 2},
351 {"x": 5.75, "y": 2},
352 {"x": 6.75, "y": 2},
353 {"x": 7.75, "y": 2},
354 {"x": 8.75, "y": 2},
355 {"x": 9.75, "y": 2},
356 {"x": 10.75, "y": 2},
357 {"x": 11.75, "y": 2},
358 {"x": 12.75, "y": 2},
359 {"x": 13.75, "y": 1, "w": 1.25, "h": 2},
360 {"x": 15, "y": 2},
361
362 {"x": 0, "y": 3, "w": 1.25},
363 {"x": 1.25, "y": 3},
364 {"x": 2.25, "y": 3},
365 {"x": 3.25, "y": 3},
366 {"x": 4.25, "y": 3},
367 {"x": 5.25, "y": 3},
368 {"x": 6.25, "y": 3},
369 {"x": 7.25, "y": 3},
370 {"x": 8.25, "y": 3},
371 {"x": 9.25, "y": 3},
372 {"x": 10.25, "y": 3},
373 {"x": 11.25, "y": 3},
374 {"x": 12.25, "y": 3, "w": 1.75},
375 {"x": 14, "y": 3},
376 {"x": 15, "y": 3},
377
378 {"x": 0, "y": 4, "w": 1.25},
379 {"x": 1.25, "y": 4, "w": 1.25},
380 {"x": 2.5, "y": 4, "w": 1.25},
381 {"x": 3.75, "y": 4, "w": 6.25},
382 {"x": 10, "y": 4},
383 {"x": 11, "y": 4},
384 {"x": 12, "y": 4},
385 {"x": 13, "y": 4},
386 {"x": 14, "y": 4},
387 {"x": 15, "y": 4}
388 ]
389 },
390 "LAYOUT_65_iso_blocker": {
391 "layout": [
392 {"x": 0, "y": 0},
393 {"x": 1, "y": 0},
394 {"x": 2, "y": 0},
395 {"x": 3, "y": 0},
396 {"x": 4, "y": 0},
397 {"x": 5, "y": 0},
398 {"x": 6, "y": 0},
399 {"x": 7, "y": 0},
400 {"x": 8, "y": 0},
401 {"x": 9, "y": 0},
402 {"x": 10, "y": 0},
403 {"x": 11, "y": 0},
404 {"x": 12, "y": 0},
405 {"x": 13, "y": 0, "w": 2},
406 {"x": 15, "y": 0},
407
408 {"x": 0, "y": 1, "w": 1.5},
409 {"x": 1.5, "y": 1},
410 {"x": 2.5, "y": 1},
411 {"x": 3.5, "y": 1},
412 {"x": 4.5, "y": 1},
413 {"x": 5.5, "y": 1},
414 {"x": 6.5, "y": 1},
415 {"x": 7.5, "y": 1},
416 {"x": 8.5, "y": 1},
417 {"x": 9.5, "y": 1},
418 {"x": 10.5, "y": 1},
419 {"x": 11.5, "y": 1},
420 {"x": 12.5, "y": 1},
421 {"x": 15, "y": 1},
422
423 {"x": 0, "y": 2, "w": 1.75},
424 {"x": 1.75, "y": 2},
425 {"x": 2.75, "y": 2},
426 {"x": 3.75, "y": 2},
427 {"x": 4.75, "y": 2},
428 {"x": 5.75, "y": 2},
429 {"x": 6.75, "y": 2},
430 {"x": 7.75, "y": 2},
431 {"x": 8.75, "y": 2},
432 {"x": 9.75, "y": 2},
433 {"x": 10.75, "y": 2},
434 {"x": 11.75, "y": 2},
435 {"x": 12.75, "y": 2},
436 {"x": 13.75, "y": 1, "w": 1.25, "h": 2},
437 {"x": 15, "y": 2},
438
439 {"x": 0, "y": 3, "w": 1.25},
440 {"x": 1.25, "y": 3},
441 {"x": 2.25, "y": 3},
442 {"x": 3.25, "y" :3},
443 {"x": 4.25, "y": 3},
444 {"x": 5.25, "y": 3},
445 {"x": 6.25, "y": 3},
446 {"x": 7.25, "y": 3},
447 {"x": 8.25, "y": 3},
448 {"x": 9.25, "y": 3},
449 {"x": 10.25, "y": 3},
450 {"x": 11.25, "y": 3},
451 {"x": 12.25, "y": 3, "w": 1.75},
452 {"x": 14, "y": 3},
453 {"x": 15, "y": 3},
454
455 {"x": 0, "y": 4, "w": 1.25},
456 {"x": 1.25, "y": 4, "w": 1.25},
457 {"x": 2.5, "y": 4, "w": 1.25},
458 {"x": 3.75, "y": 4, "w": 6.25},
459 {"x": 10, "y": 4, "w": 1.25},
460 {"x": 11.25, "y": 4, "w": 1.25},
461 {"x": 13, "y": 4},
462 {"x": 14, "y": 4},
463 {"x": 15, "y": 4}
464 ]
465 },
466 "LAYOUT_65_iso_blocker_split_bs": {
467 "layout": [
468 {"x": 0, "y": 0},
469 {"x": 1, "y": 0},
470 {"x": 2, "y": 0},
471 {"x": 3, "y": 0},
472 {"x": 4, "y": 0},
473 {"x": 5, "y": 0},
474 {"x": 6, "y": 0},
475 {"x": 7, "y": 0},
476 {"x": 8, "y": 0},
477 {"x": 9, "y": 0},
478 {"x": 10, "y": 0},
479 {"x": 11, "y": 0},
480 {"x": 12, "y": 0},
481 {"x": 13, "y": 0},
482 {"x": 14, "y": 0},
483 {"x": 15, "y": 0},
484
485 {"x": 0, "y": 1, "w": 1.5},
486 {"x": 1.5, "y": 1},
487 {"x": 2.5, "y": 1},
488 {"x": 3.5, "y": 1},
489 {"x": 4.5, "y": 1},
490 {"x": 5.5, "y": 1},
491 {"x": 6.5, "y": 1},
492 {"x": 7.5, "y": 1},
493 {"x": 8.5, "y": 1},
494 {"x": 9.5, "y": 1},
495 {"x": 10.5, "y": 1},
496 {"x": 11.5, "y": 1},
497 {"x": 12.5, "y": 1},
498 {"x": 15, "y": 1},
499
500 {"x": 0, "y": 2, "w": 1.75},
501 {"x": 1.75, "y": 2},
502 {"x": 2.75, "y": 2},
503 {"x": 3.75, "y": 2},
504 {"x": 4.75, "y": 2},
505 {"x": 5.75, "y": 2},
506 {"x": 6.75, "y": 2},
507 {"x": 7.75, "y": 2},
508 {"x": 8.75, "y": 2},
509 {"x": 9.75, "y": 2},
510 {"x": 10.75, "y": 2},
511 {"x": 11.75, "y": 2},
512 {"x": 12.75, "y": 2},
513 {"x": 13.75, "y": 1, "w": 1.25, "h": 2},
514 {"x": 15, "y": 2},
515
516 {"x": 0, "y": 3, "w": 1.25},
517 {"x": 1.25, "y": 3},
518 {"x": 2.25, "y": 3},
519 {"x": 3.25, "y" :3},
520 {"x": 4.25, "y": 3},
521 {"x": 5.25, "y": 3},
522 {"x": 6.25, "y": 3},
523 {"x": 7.25, "y": 3},
524 {"x": 8.25, "y": 3},
525 {"x": 9.25, "y": 3},
526 {"x": 10.25, "y": 3},
527 {"x": 11.25, "y": 3},
528 {"x": 12.25, "y": 3, "w": 1.75},
529 {"x": 14, "y": 3},
530 {"x": 15, "y": 3},
531
532 {"x": 0, "y": 4, "w": 1.25},
533 {"x": 1.25, "y": 4, "w": 1.25},
534 {"x": 2.5, "y": 4, "w": 1.25},
535 {"x": 3.75, "y": 4, "w": 6.25},
536 {"x": 10, "y": 4, "w": 1.25},
537 {"x": 11.25, "y": 4, "w": 1.25},
538 {"x": 13, "y": 4},
539 {"x": 14, "y": 4},
540 {"x": 15, "y": 4}
541 ]
542 }
89 } 543 }
90 }
91} 544}
diff --git a/keyboards/whitefox/keymaps/default/keymap.c b/keyboards/whitefox/keymaps/default/keymap.c
index d0f329eba..30b21c39d 100644
--- a/keyboards/whitefox/keymaps/default/keymap.c
+++ b/keyboards/whitefox/keymaps/default/keymap.c
@@ -17,31 +17,44 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Layer 0: Default Layer 20 /*
21 * ,---------------------------------------------------------------. 21 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
22 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Ins| 22 * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │Ins│
23 * |---------------------------------------------------------------| 23 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
24 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del| 24 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ Bspc│Del│
25 * |---------------------------------------------------------------| 25 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┤
26 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| 26 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ Ent│PgU│
27 * |---------------------------------------------------------------| 27 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
28 * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| 28 * │Shft│ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │PgD│
29 * |---------------------------------------------------------------| 29 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
30 * |Ctrl|Gui |Alt | Space |Fn0 |Alt |Gui | |Lef|Dow|Rig| 30 * │Ctrl│GUI │Alt │                        │Alt│ Fn│Ctl│ ← │ ↓ │ → │
31 * `---------------------------------------------------------------' 31 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
32 */ 32 */
33 [0] = LAYOUT( \ 33 [0] = LAYOUT_all(
34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_INS, \ 34 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_INS,
35 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_BSPC, KC_DEL, \ 35 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_BSPC, KC_DEL,
36 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, KC_PGUP,\ 36 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, KC_PGUP,
37 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, KC_PGDN,\ 37 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, KC_PGDN,
38 KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(1), KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ 38 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
39 ),
40 [1] = LAYOUT( \
41 KC_TRNS,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_TRNS,KC_TRNS,KC_MUTE,\
42 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS, KC_TRNS,\
43 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_VOLU,\
44 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_PGUP,KC_VOLD,\
45 KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END \
46 ), 39 ),
40 /*
41 * ┌───┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐───┬───┌───┐
42 * │   │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│   │   │Mut│
43 * ├───└───┴───┴───┴───┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴─┐─┴───└───┘
44 * │     │   │   │   │   │   │   │   │   │   │Psc│Slk│Pse│     │   │
45 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──└───┴───┴───┘┬────┌───┐
46 * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │Vl+│
47 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┌───┼───┤
48 * │    │   │   │   │   │   │   │   │   │   │   │   │      │PgU│Vl-│
49 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┌───┼───┼───┤
50 * │    │    │    │                        │   │   │   │Hom│PgD│End│
51 * └────┴────┴────┴────────────────────────┴───┴───┴───└───┴───┴───┘
52 */
53 [1] = LAYOUT_all(
54 _______, 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_MUTE,
55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______,
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD,
58 _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
59 )
47}; 60};
diff --git a/keyboards/whitefox/led.c b/keyboards/whitefox/led.c
deleted file mode 100644
index aed66c7c0..000000000
--- a/keyboards/whitefox/led.c
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "hal.h"
19
20#include "led.h"
21
22
23void led_set(uint8_t usb_led) {
24}
diff --git a/keyboards/whitefox/matrix.c b/keyboards/whitefox/matrix.c
deleted file mode 100644
index c6f2c8d62..000000000
--- a/keyboards/whitefox/matrix.c
+++ /dev/null
@@ -1,135 +0,0 @@
1#include <stdint.h>
2#include <stdbool.h>
3#include <string.h>
4#include "hal.h"
5#include "timer.h"
6#include "wait.h"
7#include "print.h"
8#include "matrix.h"
9
10
11/*
12 * Matt3o's WhiteFox
13 * Column pins are input with internal pull-down. Row pins are output and strobe with high.
14 * Key is high or 1 when it turns on.
15 *
16 * col: { PTD0, PTD1, PTD4, PTD5, PTD6, PTD7, PTC1, PTC2 }
17 * row: { PTB2, PTB3, PTB18, PTB19, PTC0, PTC8, PTC9, PTC10, PTC11 }
18 */
19/* matrix state(1:on, 0:off) */
20static matrix_row_t matrix[MATRIX_ROWS];
21static matrix_row_t matrix_debouncing[MATRIX_ROWS];
22static bool debouncing = false;
23static uint16_t debouncing_time = 0;
24
25
26void matrix_init(void)
27{
28//debug_matrix = true;
29 /* Column(sense) */
30 palSetPadMode(GPIOD, 0, PAL_MODE_INPUT_PULLDOWN);
31 palSetPadMode(GPIOD, 1, PAL_MODE_INPUT_PULLDOWN);
32 palSetPadMode(GPIOD, 4, PAL_MODE_INPUT_PULLDOWN);
33 palSetPadMode(GPIOD, 5, PAL_MODE_INPUT_PULLDOWN);
34 palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN);
35 palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN);
36 palSetPadMode(GPIOC, 1, PAL_MODE_INPUT_PULLDOWN);
37 palSetPadMode(GPIOC, 2, PAL_MODE_INPUT_PULLDOWN);
38
39 /* Row(strobe) */
40 palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL);
41 palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL);
42 palSetPadMode(GPIOB, 18, PAL_MODE_OUTPUT_PUSHPULL);
43 palSetPadMode(GPIOB, 19, PAL_MODE_OUTPUT_PUSHPULL);
44 palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL);
45 palSetPadMode(GPIOC, 8, PAL_MODE_OUTPUT_PUSHPULL);
46 palSetPadMode(GPIOC, 9, PAL_MODE_OUTPUT_PUSHPULL);
47 palSetPadMode(GPIOC, 10, PAL_MODE_OUTPUT_PUSHPULL);
48 palSetPadMode(GPIOC, 11, PAL_MODE_OUTPUT_PUSHPULL);
49
50 memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
51 memset(matrix_debouncing, 0, MATRIX_ROWS * sizeof(matrix_row_t));
52
53 matrix_init_quantum();
54}
55
56uint8_t matrix_scan(void)
57{
58 for (int row = 0; row < MATRIX_ROWS; row++) {
59 matrix_row_t data = 0;
60
61 // strobe row
62 switch (row) {
63 case 0: palSetPad(GPIOB, 2); break;
64 case 1: palSetPad(GPIOB, 3); break;
65 case 2: palSetPad(GPIOB, 18); break;
66 case 3: palSetPad(GPIOB, 19); break;
67 case 4: palSetPad(GPIOC, 0); break;
68 case 5: palSetPad(GPIOC, 8); break;
69 case 6: palSetPad(GPIOC, 9); break;
70 case 7: palSetPad(GPIOC, 10); break;
71 case 8: palSetPad(GPIOC, 11); break;
72 }
73
74 wait_us(20); // need wait to settle pin state
75
76 // read col data: { PTD0, PTD1, PTD4, PTD5, PTD6, PTD7, PTC1, PTC2 }
77 data = ((palReadPort(GPIOC) & 0x06UL) << 5) |
78 ((palReadPort(GPIOD) & 0xF0UL) >> 2) |
79 (palReadPort(GPIOD) & 0x03UL);
80
81 // un-strobe row
82 switch (row) {
83 case 0: palClearPad(GPIOB, 2); break;
84 case 1: palClearPad(GPIOB, 3); break;
85 case 2: palClearPad(GPIOB, 18); break;
86 case 3: palClearPad(GPIOB, 19); break;
87 case 4: palClearPad(GPIOC, 0); break;
88 case 5: palClearPad(GPIOC, 8); break;
89 case 6: palClearPad(GPIOC, 9); break;
90 case 7: palClearPad(GPIOC, 10); break;
91 case 8: palClearPad(GPIOC, 11); break;
92 }
93
94 if (matrix_debouncing[row] != data) {
95 matrix_debouncing[row] = data;
96 debouncing = true;
97 debouncing_time = timer_read();
98 }
99 }
100
101 if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
102 for (int row = 0; row < MATRIX_ROWS; row++) {
103 matrix[row] = matrix_debouncing[row];
104 }
105 debouncing = false;
106 }
107 matrix_scan_quantum();
108 return 1;
109}
110
111bool matrix_is_on(uint8_t row, uint8_t col)
112{
113 return (matrix[row] & (1<<col));
114}
115
116matrix_row_t matrix_get_row(uint8_t row)
117{
118 return matrix[row];
119}
120
121void matrix_print(void)
122{
123 xprintf("\nr/c 01234567\n");
124 for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
125 xprintf("%X0: ", row);
126 matrix_row_t data = matrix_get_row(row);
127 for (int col = 0; col < MATRIX_COLS; col++) {
128 if (data & (1<<col))
129 xprintf("1");
130 else
131 xprintf("0");
132 }
133 xprintf("\n");
134 }
135}
diff --git a/keyboards/whitefox/readme.md b/keyboards/whitefox/readme.md
index 9b848a69d..a170723e2 100644
--- a/keyboards/whitefox/readme.md
+++ b/keyboards/whitefox/readme.md
@@ -2,12 +2,16 @@
2 2
3A compact 65% keyboard. 3A compact 65% keyboard.
4 4
5Keyboard Maintainer: QMK Community 5* Keyboard Maintainer: QMK Community
6Hardware Supported: Whitefox PCB 6* Hardware Supported: Whitefox PCB
7Hardware Availability: https://input.club/whitefox/ 7* Hardware Availability: https://input.club/whitefox/
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make whitefox:default 11 make whitefox:default
12 12
13See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 13Flashing example for this keyboard:
14
15 make whitefox:default:flash
16
17See 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/whitefox/rules.mk b/keyboards/whitefox/rules.mk
index c3621ebd1..a77a72bfc 100644
--- a/keyboards/whitefox/rules.mk
+++ b/keyboards/whitefox/rules.mk
@@ -14,29 +14,29 @@ BOOTLOADER = kiibohd
14BOARD = IC_TEENSY_3_1 14BOARD = IC_TEENSY_3_1
15 15
16# Build Options 16# Build Options
17# comment out to disable the options. 17# change yes to no to disable
18# 18#
19BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration 19BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
20## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) 20MOUSEKEY_ENABLE = yes # Mouse keys
21MOUSEKEY_ENABLE = yes # Mouse keys 21EXTRAKEY_ENABLE = yes # Audio control and System control
22EXTRAKEY_ENABLE = yes # Audio control and System control 22CONSOLE_ENABLE = no # Console for debug
23#CONSOLE_ENABLE = yes # Console for debug 23COMMAND_ENABLE = yes # Commands for debug and configuration
24COMMAND_ENABLE = yes # Commands for debug and configuration 24# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
25#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 25SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
26NKRO_ENABLE = yes # USB Nkey Rollover 26# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
27CUSTOM_MATRIX = yes # Custom matrix file 27NKRO_ENABLE = yes # USB Nkey Rollover
28BACKLIGHT_ENABLE = yes 28BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
29RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
30BLUETOOTH_ENABLE = no # Enable Bluetooth
31AUDIO_ENABLE = no # Audio output
29BACKLIGHT_DRIVER = custom 32BACKLIGHT_DRIVER = custom
30VISUALIZER_ENABLE = yes 33VISUALIZER_ENABLE = yes
31 34
32# project specific files
33SRC = matrix.c \
34 led.c
35
36LED_DRIVER = is31fl3731c 35LED_DRIVER = is31fl3731c
37LED_WIDTH = 16 36LED_WIDTH = 16
38LED_HEIGHT = 5 37LED_HEIGHT = 5
39 38
39LAYOUTS = 65_ansi 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso 65_iso_blocker
40 40
41# Enter lower-power sleep mode when on the ChibiOS idle thread 41# Enter lower-power sleep mode when on the ChibiOS idle thread
42OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE 42OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/whitefox/visualizer.c b/keyboards/whitefox/visualizer.c
index e5bafcbe9..3846e9278 100644
--- a/keyboards/whitefox/visualizer.c
+++ b/keyboards/whitefox/visualizer.c
@@ -14,28 +14,22 @@
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
17#ifndef KEYBOARDS_WHITEFOX_SIMPLE_VISUALIZER_H_
18#define KEYBOARDS_WHITEFOX_SIMPLE_VISUALIZER_H_
19
20#include "visualizer.h" 17#include "visualizer.h"
21#include "visualizer_keyframes.h" 18#include "visualizer_keyframes.h"
22#include "led.h"
23#include "default_animations.h" 19#include "default_animations.h"
24 20
25
26static bool initial_update = true; 21static bool initial_update = true;
27 22
28// Feel free to modify the animations below, or even add new ones if needed 23// Feel free to modify the animations below, or even add new ones if needed
29 24
30void initialize_user_visualizer(visualizer_state_t* state) { 25void initialize_user_visualizer(visualizer_state_t *state) {
31 // The brightness will be dynamically adjustable in the future 26 // The brightness will be dynamically adjustable in the future
32 // But for now, change it here. 27 // But for now, change it here.
33 initial_update = true; 28 initial_update = true;
34 start_keyframe_animation(&default_startup_animation); 29 start_keyframe_animation(&default_startup_animation);
35} 30}
36 31
37 32void update_user_visualizer_state(visualizer_state_t *state, visualizer_keyboard_status_t *prev_status) {
38void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) {
39 // Add more tests, change the colors and layer texts here 33 // Add more tests, change the colors and layer texts here
40 // Usually you want to check the high bits (higher layers first) 34 // Usually you want to check the high bits (higher layers first)
41 // because that's the order layers are processed for keypresses 35 // because that's the order layers are processed for keypresses
@@ -44,17 +38,17 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard
44 // state->status.default_layer 38 // state->status.default_layer
45 // state->status.leds (see led.h for available statuses) 39 // state->status.leds (see led.h for available statuses)
46 40
47 if (initial_update) { initial_update=false; start_keyframe_animation(&led_test_animation); } 41 if (initial_update) {
42 initial_update = false;
43 start_keyframe_animation(&led_test_animation);
44 }
48} 45}
49 46
50 47void user_visualizer_suspend(visualizer_state_t *state) {
51void user_visualizer_suspend(visualizer_state_t* state) {
52 start_keyframe_animation(&default_suspend_animation); 48 start_keyframe_animation(&default_suspend_animation);
53} 49}
54 50
55void user_visualizer_resume(visualizer_state_t* state) { 51void user_visualizer_resume(visualizer_state_t *state) {
56 initial_update = true; 52 initial_update = true;
57 start_keyframe_animation(&default_startup_animation); 53 start_keyframe_animation(&default_startup_animation);
58} 54}
59
60#endif /* KEYBOARDS_WHITEFOX_SIMPLE_VISUALIZER_H_ */
diff --git a/keyboards/whitefox/whitefox.c b/keyboards/whitefox/whitefox.c
index 2555dc202..ea083c6e0 100644
--- a/keyboards/whitefox/whitefox.c
+++ b/keyboards/whitefox/whitefox.c
@@ -14,21 +14,5 @@ GNU General Public License for more details.
14You should have received a copy of the GNU General Public License 14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17#include "whitefox.h"
18
19__attribute__ ((weak))
20void matrix_init_user(void) {
21}
22
23__attribute__ ((weak))
24void matrix_scan_user(void) {
25}
26
27void matrix_init_kb(void) {
28 matrix_init_user();
29};
30
31void matrix_scan_kb(void) {
32 matrix_scan_user();
33};
34 17
18#include "whitefox.h"
diff --git a/keyboards/whitefox/whitefox.h b/keyboards/whitefox/whitefox.h
index 0c19e2daa..19d59ad66 100644
--- a/keyboards/whitefox/whitefox.h
+++ b/keyboards/whitefox/whitefox.h
@@ -14,156 +14,225 @@ GNU General Public License for more details.
14You should have received a copy of the GNU General Public License 14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17#ifndef WHITEFOX_H 17
18#define WHITEFOX_H 18#pragma once
19 19
20#include "quantum.h" 20#include "quantum.h"
21 21
22/* WhiteFox 22#define XXX KC_NO
23 * ,---------------------------------------------------------------.
24 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Ins|
25 * |---------------------------------------------------------------|
26 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del|
27 * |---------------------------------------------------------------|
28 * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU|
29 * |---------------------------------------------------------------|
30 * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
31 * |---------------------------------------------------------------|
32 * |Ctrl|Gui |Alt | Space |App |Alt |Gui | |Lef|Dow|Rig|
33 * `---------------------------------------------------------------'
34 */
35 23
36#define LAYOUT( \ 24/*
37 K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K41, K51, K61, \ 25 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
38 K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ 26 * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
39 K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K74, K84, K05, \ 27 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
40 K15, K25, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ 28 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
41 K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \ 29 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┤
30 * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │
31 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
32 * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │
33 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
34 * │    │    │    │                        │   │   │   │   │   │   │
35 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
36 */
37#define LAYOUT_all( \
38 k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \
39 k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \
40 k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \
41 k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \
42 k67, k68, k70, k71, k72, k73, k74, k75, k76, k77 \
42) { \ 43) { \
43 { K00, K01, K02, K03, K04, K05, K06, K07 }, \ 44 { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
44 { K10, K11, K12, K13, K14, K15, K16, K17 }, \ 45 { k10, k11, k12, k13, k14, k15, k16, k17, k18 }, \
45 { K20, K21, K22, K23, K24, K25, K26, K27 }, \ 46 { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
46 { K30, K31, K32, K33, K34, K35, K36, K37 }, \ 47 { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \
47 { K40, K41, K42, K43, K44, K45, K46, K47 }, \ 48 { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
48 { K50, K51, K52, K53, K54, K55, K56, K57 }, \ 49 { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \
49 { K60, K61, K62, K63, K64, K65, K66, K67 }, \ 50 { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
50 { K70, K71, K72, K73, K74, K75, K76, K77 }, \ 51 { k70, k71, k72, k73, k74, k75, k76, k77, XXX } \
51 { K80, K81, K82, K83, K84, K85, K86, KC_NO } \
52} 52}
53 53
54/* Keymap for truefox layout */ 54/*
55#define LAYOUT_truefox( \ 55 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
56 K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K41, K51, K61, \ 56 * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │
57 K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ 57 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
58 K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K84, K05, \ 58 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
59 K15, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ 59 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
60 K76, K86, K07, K17, K27, K37, K57, K67, K77 \ 60 * │      │   │   │   │   │   │   │   │   │   │   │   │        │   │
61 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
62 * │        │   │   │   │   │   │   │   │   │   │   │      │   │   │
63 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
64 * │    │    │    │                        │   │   │   │   │   │   │
65 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
66 */
67#define LAYOUT_65_ansi( \
68 k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \
69 k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \
70 k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k48, k50, \
71 k51, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \
72 k67, k68, k70, k71, k72, k73, k74, k75, k76, k77 \
61) { \ 73) { \
62 { K00, K01, K02, K03, K04, K05, K06, K07 }, \ 74 { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
63 { K10, K11, K12, K13, K14, K15, K16, K17 }, \ 75 { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \
64 { K20, K21, K22, K23, K24, KC_NO, K26, K27 }, \ 76 { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
65 { K30, K31, K32, K33, K34, K35, K36, K37 }, \ 77 { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \
66 { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ 78 { k40, k41, k42, k43, k44, k45, k46, XXX, k48 }, \
67 { K50, K51, K52, K53, K54, K55, K56, K57 }, \ 79 { k50, k51, XXX, k53, k54, k55, k56, k57, k58 }, \
68 { K60, K61, K62, K63, K64, K65, K66, K67 }, \ 80 { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
69 { K70, K71, K72, K73, KC_NO, K75, K76, K77 }, \ 81 { k70, k71, k72, k73, k74, k75, k76, k77, XXX } \
70 { K80, K81, K82, K83, K84, K85, K86, KC_NO } \
71} 82}
72 83
73/* ISO WhiteFox 84/*
74 * ,---------------------------------------------------------------. 85 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
75 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Ins| 86 * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │
76 * |---------------------------------------------------------------| 87 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
77 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|Del| 88 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
78 * |------------------------------------------------------` |---| 89 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
79 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '| \| |PgU| 90 * │      │   │   │   │   │   │   │   │   │   │   │   │        │   │
80 * |---------------------------------------------------------------| 91 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
81 * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| 92 * │        │   │   │   │   │   │   │   │   │   │   │      │   │   │
82 * |---------------------------------------------------------------| 93 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
83 * |Ctrl|Gui |Alt | Space |Fn0 |Alt |Gui | |Lef|Dow|Rig| 94 * │    │    │    │                        │    │    │ │   │   │   │
84 * `---------------------------------------------------------------' 95 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
85 */ 96 */
86 97#define LAYOUT_65_ansi_blocker( \
87#define LAYOUT_iso( \ 98 k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \
88 K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K51, K61, \ 99 k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \
89 K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K33, \ 100 k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k48, k50, \
90 K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K74, K84, K05, \ 101 k51, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \
91 K15, K25, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ 102 k67, k68, k70, k71, k72, k73, k75, k76, k77 \
92 K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \
93) { \ 103) { \
94 { K00, K01, K02, K03, K04, K05, K06, K07 }, \ 104 { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
95 { K10, K11, K12, K13, K14, K15, K16, K17 }, \ 105 { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \
96 { K20, K21, K22, KC_NO, K24, K25, K26, K27 }, \ 106 { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
97 { K30, K31, K32, K33, K34, K35, K36, K37 }, \ 107 { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \
98 { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ 108 { k40, k41, k42, k43, k44, k45, k46, XXX, k48 }, \
99 { K50, K51, K52, K53, K54, K55, K56, K57 }, \ 109 { k50, k51, XXX, k53, k54, k55, k56, k57, k58 }, \
100 { K60, K61, K62, K63, K64, K65, K66, K67 }, \ 110 { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
101 { K70, K71, K72, K73, K74, K75, K76, K77 }, \ 111 { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \
102 { K80, K81, K82, K83, K84, K85, K86, KC_NO } \
103} 112}
104 113
105/* ARIA WhiteFox 114/*
106 * ,---------------------------------------------------------------. 115 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
107 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Ins| 116 * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
108 * |---------------------------------------------------------------| 117 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
109 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| 118 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
110 * |---------------------------------------------------------------| 119 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
111 * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| 120 * │      │   │   │   │   │   │   │   │   │   │   │   │        │   │
112 * |---------------------------------------------------------------| 121 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
113 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| 122 * │        │   │   │   │   │   │   │   │   │   │   │      │   │   │
114 * |---------------------------------------------------------------| 123 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
115 * |Ctrl|GUI |Alt | Space |Alt |Ctrl| |Lef|Dow|Rig| 124 * │    │    │    │                        │    │    │ │   │   │   │
116 * `---------------------------------------------------------------' 125 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
117 */ 126 */
127#define LAYOUT_65_ansi_blocker_split_bs( \
128 k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \
129 k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k32, k33, \
130 k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k48, k50, \
131 k51, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \
132 k67, k68, k70, k71, k72, k73, k75, k76, k77 \
133) { \
134 { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
135 { k10, k11, k12, k13, k14, k15, k16, k17, k18 }, \
136 { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
137 { k30, k31, k32, k33, k34, k35, k36, k37, k38 }, \
138 { k40, k41, k42, k43, k44, k45, k46, XXX, k48 }, \
139 { k50, k51, XXX, k53, k54, k55, k56, k57, k58 }, \
140 { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
141 { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \
142}
118 143
119#define LAYOUT_aria( \ 144/*
120 K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K51, K61, \ 145 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
121 K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ 146 * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │
122 K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K84, K05, \ 147 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
123 K15, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ 148 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
124 K76, K86, K07, K17, K27, K37, K57, K67, K77 \ 149 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤
150 * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │
151 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
152 * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │
153 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
154 * │    │    │    │                        │   │   │   │   │   │   │
155 * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
156 */
157#define LAYOUT_65_iso( \
158 k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \
159 k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k33, \
160 k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \
161 k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \
162 k67, k68, k70, k71, k72, k73, k74, k75, k76, k77 \
125) { \ 163) { \
126 { K00, K01, K02, K03, K04, K05, K06, K07 }, \ 164 { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
127 { K10, K11, K12, K13, K14, K15, K16, K17 }, \ 165 { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \
128 { K20, K21, K22, K23, K24, KC_NO, K26, K27 }, \ 166 { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
129 { K30, K31, K32, K33, K34, K35, K36, K37 }, \ 167 { k30, k31, XXX, k33, k34, k35, k36, k37, k38 }, \
130 { K40, KC_NO, K42, K43, K44, K45, K46, KC_NO }, \ 168 { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
131 { K50, K51, K52, K53, K54, K55, K56, K57 }, \ 169 { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \
132 { K60, K61, K62, K63, K64, K65, K66, K67 }, \ 170 { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
133 { K70, K71, K72, K73, KC_NO, K75, K76, K77 }, \ 171 { k70, k71, k72, k73, k74, k75, k76, k77, XXX } \
134 { K80, K81, K82, K83, K84, K85, K86, KC_NO } \
135} 172}
136 173
137/* Vanilla WhiteFox 174/*
138 * ,---------------------------------------------------------------. 175 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
139 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp| `| 176 * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │   │
140 * |---------------------------------------------------------------| 177 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
141 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del| 178 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
142 * |---------------------------------------------------------------| 179 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤
143 * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU| 180 * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │
144 * |---------------------------------------------------------------| 181 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
145 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD| 182 * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │
146 * |---------------------------------------------------------------| 183 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
147 * |Ctrl|GUI |Alt | Space |Alt|GUI|Ctl|Lef|Dow|Rig| 184 * │    │    │    │                        │    │    │ │   │   │   │
148 * `---------------------------------------------------------------' 185 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
149 */ 186 */
187#define LAYOUT_65_iso_blocker( \
188 k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \
189 k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k33, \
190 k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \
191 k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \
192 k67, k68, k70, k71, k72, k73, k75, k76, k77 \
193) { \
194 { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
195 { k10, k11, k12, k13, XXX, k15, k16, k17, k18 }, \
196 { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
197 { k30, k31, XXX, k33, k34, k35, k36, k37, k38 }, \
198 { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
199 { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \
200 { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
201 { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \
202}
150 203
151#define LAYOUT_vanilla( \ 204/*
152 K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K51, K61, \ 205 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
153 K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \ 206 * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
154 K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K84, K05, \ 207 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
155 K15, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \ 208 * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │   │
156 K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \ 209 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    ├───┤
210 * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │   │
211 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
212 * │    │   │   │   │   │   │   │   │   │   │   │   │      │   │   │
213 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
214 * │    │    │    │                        │    │    │ │   │   │   │
215 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
216 */
217#define LAYOUT_65_iso_blocker_split_bs( \
218 k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \
219 k17, k18, k20, k21, k22, k23, k24, k25, k26, k27, k28, k30, k31, k33, \
220 k34, k35, k36, k37, k38, k40, k41, k42, k43, k44, k45, k46, k47, k48, k50, \
221 k51, k52, k53, k54, k55, k56, k57, k58, k60, k61, k62, k63, k64, k65, k66, \
222 k67, k68, k70, k71, k72, k73, k75, k76, k77 \
157) { \ 223) { \
158 { K00, K01, K02, K03, K04, K05, K06, K07 }, \ 224 { k00, k01, k02, k03, k04, k05, k06, k07, k08 }, \
159 { K10, K11, K12, K13, K14, K15, K16, K17 }, \ 225 { k10, k11, k12, k13, k14, k15, k16, k17, k18 }, \
160 { K20, K21, K22, K23, K24, KC_NO, K26, K27 }, \ 226 { k20, k21, k22, k23, k24, k25, k26, k27, k28 }, \
161 { K30, K31, K32, K33, K34, K35, K36, K37 }, \ 227 { k30, k31, XXX, k33, k34, k35, k36, k37, k38 }, \
162 { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \ 228 { k40, k41, k42, k43, k44, k45, k46, k47, k48 }, \
163 { K50, K51, K52, K53, K54, K55, K56, K57 }, \ 229 { k50, k51, k52, k53, k54, k55, k56, k57, k58 }, \
164 { K60, K61, K62, K63, K64, K65, K66, K67 }, \ 230 { k60, k61, k62, k63, k64, k65, k66, k67, k68 }, \
165 { K70, K71, K72, K73, KC_NO, K75, K76, K77 }, \ 231 { k70, k71, k72, k73, XXX, k75, k76, k77, XXX } \
166 { K80, K81, K82, K83, K84, K85, K86, KC_NO } \
167} 232}
168 233
169#endif 234#define LAYOUT LAYOUT_all
235#define LAYOUT_aria LAYOUT_65_ansi_blocker
236#define LAYOUT_iso LAYOUT_65_iso
237#define LAYOUT_truefox LAYOUT_65_ansi_blocker_split_bs
238#define LAYOUT_vanilla LAYOUT_65_ansi