Update skyloong/gk104 q1 ansi keyboard

This commit is contained in:
NaturalZh 2024-03-07 20:52:13 +08:00
parent 47b1f3871b
commit 6209b157ee
10 changed files with 661 additions and 736 deletions

View File

@ -1,339 +1,360 @@
{
"keyboard_name": "GK980 Q1_ANSI_1.0.0",
"keyboard_name": "GK104 Q1_ANSI_1.0.0",
"rgb_matrix": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 18.2, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 30.3, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 42.4, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 69.6, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 81.7, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 93.9, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 106, "y": 0, "flags": 4},
{"matrix": [0, 9], "x": 121.1, "y": 0, "flags": 4},
{"matrix": [0, 10], "x": 133.2, "y": 0, "flags": 4},
{"matrix": [5, 3], "x": 145.3, "y": 0, "flags": 4},
{"matrix": [5, 4], "x": 157.4, "y": 0, "flags": 4},
{"matrix": [0, 12], "x": 187.7, "y": 0, "flags": 4},
{"matrix": [0, 13], "x": 199.8, "y": 0, "flags": 4},
{"matrix": [0, 14], "x": 211.9, "y": 0, "flags": 4},
{"matrix": [6, 13], "x": 224, "y": 0, "flags": 4},
{"matrix": [0, 0],"x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 20.6, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 30.9, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 41.2, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 51.5, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 66.9, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 77.2, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 87.5, "y": 0, "flags": 4},
{"matrix": [6, 7], "x": 97.8, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 113.3, "y": 0, "flags": 4},
{"matrix": [0, 9], "x": 123.6, "y": 0, "flags": 4},
{"matrix": [0, 10], "x": 133.9, "y": 0, "flags": 4},
{"matrix": [6, 10], "x": 144.2, "y": 0, "flags": 4},
{"matrix": [0, 11], "x": 157.1, "y": 0, "flags": 4},
{"matrix": [0, 12], "x": 167.4, "y": 0, "flags": 4},
{"matrix": [6, 12], "x": 177.7, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 14.5, "flags": 4},
{"matrix": [1, 1], "x": 12.1, "y": 14.5, "flags": 4},
{"matrix": [1, 2], "x": 24.2, "y": 14.5, "flags": 4},
{"matrix": [1, 3], "x": 36.3, "y": 14.5, "flags": 4},
{"matrix": [1, 4], "x": 48.4, "y": 14.5, "flags": 4},
{"matrix": [1, 5], "x": 60.6, "y": 14.5, "flags": 4},
{"matrix": [1, 6], "x": 72.7, "y": 14.5, "flags": 4},
{"matrix": [1, 7], "x": 84.8, "y": 14.5, "flags": 8},
{"matrix": [1, 8], "x": 96.9, "y": 14.5, "flags": 4},
{"matrix": [1, 9], "x": 109, "y": 14.5, "flags": 4},
{"matrix": [1, 10], "x": 121.1, "y": 14.5, "flags": 4},
{"matrix": [6, 3], "x": 133.2, "y": 14.5, "flags": 4},
{"matrix": [6, 4], "x": 145.3, "y": 14.5, "flags": 4},
{"matrix": [1, 11], "x": 157.4, "y": 14.5, "flags": 4},
{"matrix": [1, 12], "x": 187.7, "y": 14.5, "flags": 4},
{"matrix": [1, 13], "x": 199.8, "y": 14.5, "flags": 4},
{"matrix": [1, 14], "x": 211.9, "y": 14.5, "flags": 4},
{"matrix": [6, 14], "x": 224, "y": 14.5, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 17.5, "flags": 4},
{"matrix": [1, 1], "x": 10.3, "y": 17.5, "flags": 4},
{"matrix": [1, 2], "x": 20.6, "y": 17.5, "flags": 4},
{"matrix": [6, 2], "x": 30.9, "y": 17.5, "flags": 4},
{"matrix": [1, 3], "x": 41.2, "y": 17.5, "flags": 4},
{"matrix": [1, 4], "x": 51.5, "y": 17.5, "flags": 4},
{"matrix": [1, 5], "x": 61.8, "y": 17.5, "flags": 4},
{"matrix": [1, 6], "x": 72.1, "y": 17.5, "flags": 4},
{"matrix": [6, 6], "x": 82.4, "y": 17.5, "flags": 4},
{"matrix": [1, 7], "x": 92.7, "y": 17.5, "flags": 4},
{"matrix": [1, 8], "x": 103, "y": 17.5, "flags": 4},
{"matrix": [6, 8], "x": 113.3, "y": 17.5, "flags": 4},
{"matrix": [1, 9], "x": 123.6, "y": 17.5, "flags": 4},
{"matrix": [1, 10], "x": 143, "y": 17.5, "flags": 4},
{"matrix": [1, 11], "x": 157.1, "y": 17.5, "flags": 4},
{"matrix": [1, 12], "x": 167.4, "y": 17.5, "flags": 4},
{"matrix": [3, 12], "x": 177.7, "y": 17.5, "flags": 4},
{"matrix": [1, 13], "x": 193.1, "y": 17.5, "flags": 4},
{"matrix": [1, 14], "x": 203.4, "y": 17.5, "flags": 4},
{"matrix": [4, 14], "x": 213.7, "y": 17.5, "flags": 4},
{"matrix": [1, 15], "x": 224, "y": 17.5, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 26.2, "flags": 4},
{"matrix": [2, 1], "x": 18.2, "y": 26.2, "flags": 4},
{"matrix": [2, 2], "x": 30.3, "y": 26.2, "flags": 4},
{"matrix": [2, 3], "x": 42.4, "y": 26.2, "flags": 4},
{"matrix": [2, 4], "x": 54.5, "y": 26.2, "flags": 4},
{"matrix": [2, 5], "x": 66.6, "y": 26.2, "flags": 4},
{"matrix": [2, 6], "x": 78.7, "y": 26.2, "flags": 4},
{"matrix": [2, 7], "x": 90.8, "y": 26.2, "flags": 4},
{"matrix": [2, 8], "x": 102.9, "y": 26.2, "flags": 4},
{"matrix": [2, 9], "x": 115, "y": 26.2, "flags": 4},
{"matrix": [2, 10], "x": 127.2, "y": 26.2, "flags": 4},
{"matrix": [6, 5], "x": 139.3, "y": 26.2, "flags": 4},
{"matrix": [6, 6], "x": 151.4, "y": 26.2, "flags": 4},
{"matrix": [2, 11], "x": 163.5, "y": 26.2, "flags": 4},
{"matrix": [2, 12], "x": 187.7, "y": 26.2, "flags": 4},
{"matrix": [2, 13], "x": 199.8, "y": 26.2, "flags": 4},
{"matrix": [2, 14], "x": 211.9, "y": 26.2, "flags": 4},
{"matrix": [6, 11], "x": 224, "y": 32, "flags": 4},
{"matrix": [2, 0], "x": 3, "y": 29.1, "flags": 4},
{"matrix": [2, 1], "x": 15.4, "y": 29.1, "flags": 4},
{"matrix": [2, 2], "x": 25.7, "y": 29.1, "flags": 4},
{"matrix": [5, 2], "x": 36, "y": 29.1, "flags": 4},
{"matrix": [2, 3], "x": 46.3, "y": 29.1, "flags": 4},
{"matrix": [2, 4], "x": 56.6, "y": 29.1, "flags": 4},
{"matrix": [2, 5], "x": 66.9, "y": 29.1, "flags": 4},
{"matrix": [2, 6], "x": 77.2, "y": 29.1, "flags": 4},
{"matrix": [5, 6], "x": 87.5, "y": 29.1, "flags": 4},
{"matrix": [2, 7], "x": 97.8, "y": 29.1, "flags": 4},
{"matrix": [2, 8], "x": 108.1, "y": 29.1, "flags": 4},
{"matrix": [2, 9], "x": 118.4, "y": 29.1, "flags": 4},
{"matrix": [6, 9], "x": 128.7, "y": 29.1, "flags": 4},
{"matrix": [2, 10], "x": 142, "y": 29.1, "flags": 4},
{"matrix": [2, 11], "x": 157.1, "y": 29.1, "flags": 4},
{"matrix": [3, 11], "x": 167.4, "y": 29.1, "flags": 4},
{"matrix": [2, 12], "x": 177.7, "y": 29.1, "flags": 4},
{"matrix": [2, 13], "x": 193.1, "y": 29.1, "flags": 4},
{"matrix": [2, 14], "x": 203.4, "y": 29.1, "flags": 4},
{"matrix": [5, 14], "x": 213.7, "y": 29.1, "flags": 4},
{"matrix": [2, 15], "x": 224, "y": 34, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 37.8, "flags": 4},
{"matrix": [3, 1], "x": 21.2, "y": 37.8, "flags": 4},
{"matrix": [3, 2], "x": 33.3, "y": 37.8, "flags": 4},
{"matrix": [3, 3], "x": 45.4, "y": 37.8, "flags": 4},
{"matrix": [3, 4], "x": 57.5, "y": 37.8, "flags": 4},
{"matrix": [3, 5], "x": 69.6, "y": 37.8, "flags": 4},
{"matrix": [3, 6], "x": 81.7, "y": 37.8, "flags": 4},
{"matrix": [3, 7], "x": 93.9, "y": 37.8, "flags": 4},
{"matrix": [3, 8], "x": 106, "y": 37.8, "flags": 4},
{"matrix": [3, 9], "x": 118.1, "y": 37.8, "flags": 4},
{"matrix": [3, 10], "x": 130.2, "y": 37.8, "flags": 4},
{"matrix": [6, 7], "x": 142.3, "y": 37.8, "flags": 4},
{"matrix": [3, 11], "x": 154.4, "y": 37.8, "flags": 4},
{"matrix": [3, 12], "x": 187.7, "y": 37.8, "flags": 4},
{"matrix": [3, 13], "x": 199.8, "y": 37.8, "flags": 4},
{"matrix": [3, 14], "x": 211.9, "y": 37.8, "flags": 4},
{"matrix": [3, 0], "x": 5, "y": 40.7, "flags": 4},
{"matrix": [3, 1], "x": 18, "y": 40.7, "flags": 4},
{"matrix": [3, 2], "x": 28.3, "y": 40.7, "flags": 4},
{"matrix": [4, 2], "x": 38.6, "y": 40.7, "flags": 4},
{"matrix": [3, 3], "x": 48.9, "y": 40.7, "flags": 4},
{"matrix": [3, 4], "x": 59.2, "y": 40.7, "flags": 4},
{"matrix": [3, 5], "x": 69.5, "y": 40.7, "flags": 4},
{"matrix": [6, 5], "x": 79.8, "y": 40.7, "flags": 4},
{"matrix": [3, 6], "x": 90.1, "y": 40.7, "flags": 4},
{"matrix": [3, 7], "x": 100.4, "y": 40.7, "flags": 4},
{"matrix": [3, 8], "x": 110.7, "y": 40.7, "flags": 4},
{"matrix": [3, 9], "x": 121, "y": 40.7, "flags": 4},
{"matrix": [3, 10], "x": 131.3, "y": 40.7, "flags": 4},
{"matrix": [3, 13], "x": 193.1, "y": 40.7, "flags": 4},
{"matrix": [3, 14], "x": 203.4, "y": 40.7, "flags": 4},
{"matrix": [3, 15], "x": 213.7, "y": 40.7, "flags": 4},
{"matrix": [4, 0], "x": 0, "y": 49.5, "flags": 4},
{"matrix": [4, 1], "x": 27.2, "y": 49.5, "flags": 4},
{"matrix": [4, 2], "x": 39.4, "y": 49.5, "flags": 4},
{"matrix": [4, 3], "x": 51.5, "y": 49.5, "flags": 4},
{"matrix": [4, 4], "x": 63.6, "y": 49.5, "flags": 4},
{"matrix": [4, 5], "x": 75.7, "y": 49.5, "flags": 4},
{"matrix": [4, 6], "x": 87.8, "y": 49.5, "flags": 4},
{"matrix": [4, 7], "x": 99.9, "y": 49.5, "flags": 4},
{"matrix": [4, 8], "x": 112, "y": 49.5, "flags": 4},
{"matrix": [4, 9], "x": 124.1, "y": 49.5, "flags": 4},
{"matrix": [4, 10], "x": 136.2, "y": 49.5, "flags": 4},
{"matrix": [6, 8], "x": 148.3, "y": 49.5, "flags": 4},
{"matrix": [4, 11], "x": 172.6, "y": 49.5, "flags": 4},
{"matrix": [4, 12], "x": 187.7, "y": 49.5, "flags": 4},
{"matrix": [4, 13], "x": 199.8, "y": 49.5, "flags": 4},
{"matrix": [4, 14], "x": 211.9, "y": 49.5, "flags": 4},
{"matrix": [6, 12], "x": 224, "y": 55.3, "flags": 4},
{"matrix": [4, 0], "x": 10, "y": 52.4, "flags": 4},
{"matrix": [4, 1], "x": 23.2, "y": 52.4, "flags": 4},
{"matrix": [6, 1], "x": 33.5, "y": 52.4, "flags": 4},
{"matrix": [4, 3], "x": 43.8, "y": 52.4, "flags": 4},
{"matrix": [6, 3], "x": 54.1, "y": 52.4, "flags": 4},
{"matrix": [4, 4], "x": 64.4, "y": 52.4, "flags": 4},
{"matrix": [6, 4], "x": 74.7, "y": 52.4, "flags": 4},
{"matrix": [4, 5], "x": 85, "y": 52.4, "flags": 4},
{"matrix": [4, 6], "x": 95.3, "y": 52.4, "flags": 4},
{"matrix": [4, 7], "x": 105.6, "y": 52.4, "flags": 4},
{"matrix": [4, 8], "x": 115.9, "y": 52.4, "flags": 4},
{"matrix": [4, 10], "x": 136, "y": 52.4, "flags": 4},
{"matrix": [4, 11], "x": 167.4, "y": 52.4, "flags": 4},
{"matrix": [4, 13], "x": 193.1, "y": 52.4, "flags": 4},
{"matrix": [6, 13], "x": 203.4, "y": 52.4, "flags": 4},
{"matrix": [4, 15], "x": 213.7, "y": 52.4, "flags": 4},
{"matrix": [6, 15], "x": 224, "y": 57, "flags": 4},
{"matrix": [5, 0], "x": 0, "y": 61.1, "flags": 4},
{"matrix": [5, 1], "x": 15.1, "y": 61.1, "flags": 4},
{"matrix": [6, 1], "x": 30.3, "y": 61.1, "flags": 4},
{"matrix": [6, 0], "x": 45.4, "y": 61.1, "flags": 4},
{"matrix": [5, 5], "x": 68.1, "y": 61.1, "flags": 4},
{"matrix": [5, 6], "x": 90.8, "y": 61.1, "flags": 4},
{"matrix": [5, 9], "x": 121.1, "y": 61.1, "flags": 4},
{"matrix": [5, 7], "x": 133.2, "y": 61.1, "flags": 4},
{"matrix": [5, 10], "x": 145.3, "y": 61.1, "flags": 4},
{"matrix": [6, 9], "x": 160.5, "y": 64, "flags": 4},
{"matrix": [5, 11], "x": 172.6, "y": 64, "flags": 4},
{"matrix": [5, 12], "x": 184.7, "y": 64, "flags": 4},
{"matrix": [5, 13], "x": 199.8, "y": 61.1, "flags": 4},
{"matrix": [5, 14], "x": 211.9, "y": 61.1, "flags": 4}
{"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
{"matrix": [6, 0], "x": 12.9, "y": 64, "flags": 4},
{"matrix": [5, 1], "x": 25.7, "y": 64, "flags": 4},
{"matrix": [5, 3], "x": 54, "y": 64, "flags": 4},
{"matrix": [5, 4], "x": 72, "y": 64, "flags": 4},
{"matrix": [5, 5], "x": 87, "y": 64, "flags": 4},
{"matrix": [5, 7], "x": 103, "y": 64, "flags": 4},
{"matrix": [5, 8], "x": 115.9, "y": 64, "flags": 4},
{"matrix": [5, 9], "x": 128.7, "y": 64, "flags": 4},
{"matrix": [5, 10], "x": 141.6, "y": 64, "flags": 4},
{"matrix": [5, 11], "x": 157.1, "y": 64, "flags": 4},
{"matrix": [6, 11], "x": 167.4, "y": 64, "flags": 4},
{"matrix": [4, 12], "x": 177.7, "y": 64, "flags": 4},
{"matrix": [5, 13], "x": 198, "y": 64, "flags": 4},
{"matrix": [5, 15], "x": 213.7, "y": 64, "flags": 4}
]
},
"usb": {
"device_version": "1.0.0",
"pid": "0x6098"
"pid": "0x6104"
},
"layouts": {
"LAYOUT_all": {
"layout": [
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 1.5, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 2.5, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 3.5, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 4.5, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 5.75, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 6.75, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 7.75, "y": 0},
{"label": "F8", "matrix": [0, 8], "x": 8.75, "y": 0},
{"label": "F9", "matrix": [0, 9], "x": 10, "y": 0},
{"label": "F10", "matrix": [0, 10], "x": 11, "y": 0},
{"label": "F11", "matrix": [5, 3], "x": 12, "y": 0},
{"label": "F12", "matrix": [5, 4], "x": 13, "y": 0},
{"label": "Mute", "matrix": [0, 11], "x": 14.25, "y": 0},
{"label": "PgUp", "matrix": [0, 12], "x": 15.5, "y": 0},
{"label": "PgDn", "matrix": [0, 13], "x": 16.5, "y": 0},
{"label": "PB", "matrix": [0, 14], "x": 17.5, "y": 0},
{"label": "PrtSc", "matrix": [6, 13], "x": 18.5, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0},
{"label": "F8", "matrix": [6, 7], "x": 9.5, "y": 0},
{"label": "F9", "matrix": [0, 8], "x": 11, "y": 0},
{"label": "F10", "matrix": [0, 9], "x": 12, "y": 0},
{"label": "F11", "matrix": [0, 10], "x": 13, "y": 0},
{"label": "F12", "matrix": [6, 10], "x": 14, "y": 0},
{"label": "PrtSc", "matrix": [0, 11], "x": 15.25, "y": 0},
{"label": "ScrLK", "matrix": [0, 12], "x": 16.25, "y": 0},
{"label": "Pause", "matrix": [6, 12], "x": 17.25, "y": 0},
{"label": "En1", "matrix": [0, 14], "x": 20.75, "y": 0},
{"label": "En2", "matrix": [0, 15], "x": 21.75, "y": 0},
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
{"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25},
{"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25},
{"label": "-_", "matrix": [6, 3], "x": 11, "y": 1.25},
{"label": "=+", "matrix": [6, 4], "x": 12, "y": 1.25},
{"label": "BS", "matrix": [1, 11], "x": 13, "y": 1.25, "w": 2},
{"label": "NumLk", "matrix": [1, 12], "x": 15.5, "y": 1.25},
{"label": "P/", "matrix": [1, 13], "x": 16.5, "y": 1.25},
{"label": "P*", "matrix": [1, 14], "x": 17.5, "y": 1.25},
{"label": "P-", "matrix": [6, 14], "x": 18.5, "y": 1.25},
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.5},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.5},
{"label": "3", "matrix": [6, 2], "x": 3, "y": 1.5},
{"label": "4", "matrix": [1, 3], "x": 4, "y": 1.5},
{"label": "5", "matrix": [1, 4], "x": 5, "y": 1.5},
{"label": "6", "matrix": [1, 5], "x": 6, "y": 1.5},
{"label": "7", "matrix": [1, 6], "x": 7, "y": 1.5},
{"label": "8", "matrix": [6, 6], "x": 8, "y": 1.5},
{"label": "9", "matrix": [1, 7], "x": 9, "y": 1.5},
{"label": "0", "matrix": [1, 8], "x": 10, "y": 1.5},
{"label": "-_", "matrix": [6, 8], "x": 11, "y": 1.5},
{"label": "=+", "matrix": [1, 9], "x": 12, "y": 1.5},
{"label": "BS", "matrix": [1, 10], "x": 13, "y": 1.5, "w": 2},
{"label": "INS", "matrix": [1, 11], "x": 15.25, "y": 1.5},
{"label": "HOME", "matrix": [1, 12], "x": 16.25, "y": 1.5},
{"label": "PgUp", "matrix": [3, 12], "x": 17.25, "y": 1.5},
{"label": "NumLk", "matrix": [1, 13], "x": 18.75, "y": 1.5},
{"label": "P/", "matrix": [1, 14], "x": 19.75, "y": 1.5},
{"label": "P*", "matrix": [4, 14], "x": 20.75, "y": 1.5},
{"label": "P-", "matrix": [1, 15], "x": 21.75, "y": 1.5},
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
{"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
{"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
{"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
{"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
{"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
{"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
{"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
{"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
{"label": "[", "matrix": [6, 5], "x": 11.5, "y": 2.25},
{"label": "]", "matrix": [6, 6], "x": 12.5, "y": 2.25},
{"label": "|", "matrix": [2, 11], "x": 13.5, "y": 2.25, "w": 1.5},
{"label": "P7", "matrix": [2, 12], "x": 15.5, "y": 2.25},
{"label": "P8", "matrix": [2, 13], "x": 16.5, "y": 2.25},
{"label": "P9", "matrix": [2, 14], "x": 17.5, "y": 2.25},
{"label": "P+", "matrix": [6, 11], "x": 18.5, "y": 2.25, "h": 2.0},
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5},
{"label": "E", "matrix": [5, 2], "x": 3.5, "y": 2.5},
{"label": "R", "matrix": [2, 3], "x": 4.5, "y": 2.5},
{"label": "T", "matrix": [2, 4], "x": 5.5, "y": 2.5},
{"label": "Y", "matrix": [2, 5], "x": 6.5, "y": 2.5},
{"label": "U", "matrix": [2, 6], "x": 7.5, "y": 2.5},
{"label": "I", "matrix": [5, 6], "x": 8.5, "y": 2.5},
{"label": "O", "matrix": [2, 7], "x": 9.5, "y": 2.5},
{"label": "P", "matrix": [2, 8], "x": 10.5, "y": 2.5},
{"label": "[", "matrix": [2, 9], "x": 11.5, "y": 2.5},
{"label": "]", "matrix": [6, 9], "x": 12.5, "y": 2.5},
{"label": "|", "matrix": [2, 10], "x": 13.5, "y": 2.5, "w": 1.5},
{"label": "DEL", "matrix": [2, 11], "x": 15.25, "y": 2.5},
{"label": "END", "matrix": [3, 11], "x": 16.25, "y": 2.5},
{"label": "PgDn", "matrix": [2, 12], "x": 17.25, "y": 2.5},
{"label": "P7", "matrix": [2, 13], "x": 18.75, "y": 2.5},
{"label": "P8", "matrix": [2, 14], "x": 19.75, "y": 2.5},
{"label": "P9", "matrix": [5, 14], "x": 20.75, "y": 2.5},
{"label": "P+", "matrix": [2, 15], "x": 21.75, "y": 2.5, "h": 2.0},
{"label": "Cap", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
{"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
{"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
{"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
{"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
{"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
{"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
{"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25},
{"label": "'", "matrix": [6, 7], "x": 11.75, "y": 3.25},
{"label": "Ent", "matrix": [3, 11], "x": 12.75, "y": 3.25, "w": 2.25},
{"label": "P4", "matrix": [3, 12], "x": 15.5, "y": 3.25},
{"label": "P5", "matrix": [3, 13], "x": 16.5, "y": 3.25},
{"label": "P6", "matrix": [3, 14], "x": 17.5, "y": 3.25},
{"label": "Cap", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5},
{"label": "D", "matrix": [4, 2], "x": 3.75, "y": 3.5},
{"label": "F", "matrix": [3, 3], "x": 4.75, "y": 3.5},
{"label": "G", "matrix": [3, 4], "x": 5.75, "y": 3.5},
{"label": "H", "matrix": [3, 5], "x": 6.75, "y": 3.5},
{"label": "J", "matrix": [6, 5], "x": 7.75, "y": 3.5},
{"label": "K", "matrix": [3, 6], "x": 8.75, "y": 3.5},
{"label": "L", "matrix": [3, 7], "x": 9.75, "y": 3.5},
{"label": ";", "matrix": [3, 8], "x": 10.75, "y": 3.5},
{"label": "'", "matrix": [3, 9], "x": 11.75, "y": 3.5},
{"label": "Ent", "matrix": [3, 10], "x": 12.75, "y": 3.5, "w": 2.25},
{"label": "P4", "matrix": [3, 13], "x": 18.75, "y": 3.5},
{"label": "P5", "matrix": [3, 14], "x": 19.75, "y": 3.5},
{"label": "P6", "matrix": [3, 15], "x": 20.75, "y": 3.5},
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
{"label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25},
{"label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25},
{"label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25},
{"label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25},
{"label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25},
{"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25},
{"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
{"label": ".", "matrix": [4, 9], "x": 10.25, "y": 4.25},
{"label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25},
{"label": "Shift", "matrix": [6, 8], "x": 12.25, "y": 4.25, "w": 1.75},
{"label": "Up", "matrix": [4, 11], "x": 14.25, "y": 4.5},
{"label": "P1", "matrix": [4, 12], "x": 15.5, "y": 4.25},
{"label": "P2", "matrix": [4, 13], "x": 16.5, "y": 4.25},
{"label": "P3", "matrix": [4, 14], "x": 17.5, "y": 4.25},
{"label": "PENT", "matrix": [6, 12], "x": 18.5, "y": 4.25, "h": 2.0},
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
{"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.5},
{"label": "X", "matrix": [6, 1], "x": 3.25, "y": 4.5},
{"label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.5},
{"label": "V", "matrix": [6, 3], "x": 5.25, "y": 4.5},
{"label": "B", "matrix": [4, 4], "x": 6.25, "y": 4.5},
{"label": "N", "matrix": [6, 4], "x": 7.25, "y": 4.5},
{"label": "M", "matrix": [4, 5], "x": 8.25, "y": 4.5},
{"label": ",", "matrix": [4, 6], "x": 9.25, "y": 4.5},
{"label": ".", "matrix": [4, 7], "x": 10.25, "y": 4.5},
{"label": "?", "matrix": [4, 8], "x": 11.25, "y": 4.5},
{"label": "Shift", "matrix": [4, 10], "x": 12.25, "y": 4.5, "w": 2.75},
{"label": "Up", "matrix": [4, 11], "x": 16.25, "y": 4.5},
{"label": "P1", "matrix": [4, 13], "x": 18.75, "y": 4.5},
{"label": "P2", "matrix": [6, 13], "x": 19.75, "y": 4.5},
{"label": "P3", "matrix": [4, 15], "x": 20.75, "y": 4.5},
{"label": "PENT", "matrix": [6, 15], "x": 21.75, "y": 4.5, "h": 2.0},
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"label": "Com", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"label": "Alt", "matrix": [6, 1], "x": 2.5, "y": 5.25, "w": 1.25},
{"label": "SPAC1", "matrix": [6, 0], "x": 3.75, "y": 5.25, "w": 3.125, "h": 0.5},
{"label": "SPAC", "matrix": [5, 5], "x": 3.75, "y": 5.75, "w": 6.25, "h":0.5},
{"label": "SPAC2", "matrix": [5, 6], "x": 6.875, "y": 5.25, "w": 3.125, "h":0.5},
{"label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25},
{"label": "Fn", "matrix": [5, 7], "x": 11, "y": 5.25},
{"label": "Menu", "matrix": [5, 10], "x": 12, "y": 5.25},
{"label": "Left", "matrix": [6, 9], "x": 13.25, "y": 5.5},
{"label": "Down", "matrix": [5, 11], "x": 14.25, "y": 5.5},
{"label": "Right", "matrix": [5, 12], "x": 15.25, "y": 5.5},
{"label": "P0", "matrix": [5, 13], "x": 16.5, "y": 5.25},
{"label": "PDOT", "matrix": [5, 14], "x": 17.5, "y": 5.25}
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
{"label": "Com", "matrix": [6, 0], "x": 1.25, "y": 5.5, "w": 1.25},
{"label": "Alt", "matrix": [5, 1], "x": 2.5, "y": 5.5, "w": 1.25},
{"label": "SPAC1", "matrix": [5, 3], "x": 3.75, "y": 5.5, "w": 3.125, "h": 0.5},
{"label": "SPAC", "matrix": [5, 4], "x": 3.75, "y": 6, "w": 6.25, "h":0.5},
{"label": "SPAC2", "matrix": [5, 5], "x": 6.875, "y": 5.5, "w": 3.125, "h":0.5},
{"label": "Alt", "matrix": [5, 7], "x": 10, "y": 5.5, "w": 1.25},
{"label": "Fn", "matrix": [5, 8], "x": 11.25, "y": 5.5, "w": 1.25},
{"label": "Menu", "matrix": [5, 9], "x": 12.5, "y": 5.5, "w": 1.25},
{"label": "Ctrl", "matrix": [5, 10], "x": 13.75, "y": 5.5, "w": 1.25},
{"label": "Left", "matrix": [5, 11], "x": 15.25, "y": 5.5},
{"label": "Down", "matrix": [6, 11], "x": 16.25, "y": 5.5},
{"label": "Right", "matrix": [4, 12], "x": 17.25, "y": 5.5},
{"label": "P0", "matrix": [5, 13], "x": 18.75, "y": 5.5, "w": 2},
{"label": "PDOT", "matrix": [5, 15], "x": 20.75, "y": 5.5}
]
},
"LAYOUT_980_ansi_split_space": {
"LAYOUT_104_ansi_split_space": {
"layout": [
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 1.5, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 2.5, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 3.5, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 4.5, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 5.75, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 6.75, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 7.75, "y": 0},
{"label": "F8", "matrix": [0, 8], "x": 8.75, "y": 0},
{"label": "F9", "matrix": [0, 9], "x": 10, "y": 0},
{"label": "F10", "matrix": [0, 10], "x": 11, "y": 0},
{"label": "F11", "matrix": [5, 3], "x": 12, "y": 0},
{"label": "F12", "matrix": [5, 4], "x": 13, "y": 0},
{"label": "Mute", "matrix": [0, 11], "x": 14.25, "y": 0},
{"label": "PgUp", "matrix": [0, 12], "x": 15.5, "y": 0},
{"label": "PgDn", "matrix": [0, 13], "x": 16.5, "y": 0},
{"label": "PB", "matrix": [0, 14], "x": 17.5, "y": 0},
{"label": "PrtSc", "matrix": [6, 13], "x": 18.5, "y": 0},
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
{"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0},
{"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0},
{"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0},
{"label": "F8", "matrix": [6, 7], "x": 9.5, "y": 0},
{"label": "F9", "matrix": [0, 8], "x": 11, "y": 0},
{"label": "F10", "matrix": [0, 9], "x": 12, "y": 0},
{"label": "F11", "matrix": [0, 10], "x": 13, "y": 0},
{"label": "F12", "matrix": [6, 10], "x": 14, "y": 0},
{"label": "PrtSc", "matrix": [0, 11], "x": 15.25, "y": 0},
{"label": "ScrLK", "matrix": [0, 12], "x": 16.25, "y": 0},
{"label": "Pause", "matrix": [6, 12], "x": 17.25, "y": 0},
{"label": "En1", "matrix": [0, 14], "x": 20.75, "y": 0},
{"label": "En2", "matrix": [0, 15], "x": 21.75, "y": 0},
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
{"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25},
{"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25},
{"label": "-_", "matrix": [6, 3], "x": 11, "y": 1.25},
{"label": "=+", "matrix": [6, 4], "x": 12, "y": 1.25},
{"label": "BS", "matrix": [1, 11], "x": 13, "y": 1.25, "w": 2},
{"label": "NumLk", "matrix": [1, 12], "x": 15.5, "y": 1.25},
{"label": "P/", "matrix": [1, 13], "x": 16.5, "y": 1.25},
{"label": "P*", "matrix": [1, 14], "x": 17.5, "y": 1.25},
{"label": "P-", "matrix": [6, 14], "x": 18.5, "y": 1.25},
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.5},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.5},
{"label": "3", "matrix": [6, 2], "x": 3, "y": 1.5},
{"label": "4", "matrix": [1, 3], "x": 4, "y": 1.5},
{"label": "5", "matrix": [1, 4], "x": 5, "y": 1.5},
{"label": "6", "matrix": [1, 5], "x": 6, "y": 1.5},
{"label": "7", "matrix": [1, 6], "x": 7, "y": 1.5},
{"label": "8", "matrix": [6, 6], "x": 8, "y": 1.5},
{"label": "9", "matrix": [1, 7], "x": 9, "y": 1.5},
{"label": "0", "matrix": [1, 8], "x": 10, "y": 1.5},
{"label": "-_", "matrix": [6, 8], "x": 11, "y": 1.5},
{"label": "=+", "matrix": [1, 9], "x": 12, "y": 1.5},
{"label": "BS", "matrix": [1, 10], "x": 13, "y": 1.5, "w": 2},
{"label": "INS", "matrix": [1, 11], "x": 15.25, "y": 1.5},
{"label": "HOME", "matrix": [1, 12], "x": 16.25, "y": 1.5},
{"label": "PgUp", "matrix": [3, 12], "x": 17.25, "y": 1.5},
{"label": "NumLk", "matrix": [1, 13], "x": 18.75, "y": 1.5},
{"label": "P/", "matrix": [1, 14], "x": 19.75, "y": 1.5},
{"label": "P*", "matrix": [4, 14], "x": 20.75, "y": 1.5},
{"label": "P-", "matrix": [1, 15], "x": 21.75, "y": 1.5},
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
{"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
{"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
{"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
{"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
{"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
{"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
{"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
{"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
{"label": "[", "matrix": [6, 5], "x": 11.5, "y": 2.25},
{"label": "]", "matrix": [6, 6], "x": 12.5, "y": 2.25},
{"label": "|", "matrix": [2, 11], "x": 13.5, "y": 2.25, "w": 1.5},
{"label": "P7", "matrix": [2, 12], "x": 15.5, "y": 2.25},
{"label": "P8", "matrix": [2, 13], "x": 16.5, "y": 2.25},
{"label": "P9", "matrix": [2, 14], "x": 17.5, "y": 2.25},
{"label": "P+", "matrix": [6, 11], "x": 18.5, "y": 2.25, "h": 2.0},
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5},
{"label": "E", "matrix": [5, 2], "x": 3.5, "y": 2.5},
{"label": "R", "matrix": [2, 3], "x": 4.5, "y": 2.5},
{"label": "T", "matrix": [2, 4], "x": 5.5, "y": 2.5},
{"label": "Y", "matrix": [2, 5], "x": 6.5, "y": 2.5},
{"label": "U", "matrix": [2, 6], "x": 7.5, "y": 2.5},
{"label": "I", "matrix": [5, 6], "x": 8.5, "y": 2.5},
{"label": "O", "matrix": [2, 7], "x": 9.5, "y": 2.5},
{"label": "P", "matrix": [2, 8], "x": 10.5, "y": 2.5},
{"label": "[", "matrix": [2, 9], "x": 11.5, "y": 2.5},
{"label": "]", "matrix": [6, 9], "x": 12.5, "y": 2.5},
{"label": "|", "matrix": [2, 10], "x": 13.5, "y": 2.5, "w": 1.5},
{"label": "DEL", "matrix": [2, 11], "x": 15.25, "y": 2.5},
{"label": "END", "matrix": [3, 11], "x": 16.25, "y": 2.5},
{"label": "PgDn", "matrix": [2, 12], "x": 17.25, "y": 2.5},
{"label": "P7", "matrix": [2, 13], "x": 18.75, "y": 2.5},
{"label": "P8", "matrix": [2, 14], "x": 19.75, "y": 2.5},
{"label": "P9", "matrix": [5, 14], "x": 20.75, "y": 2.5},
{"label": "P+", "matrix": [2, 15], "x": 21.75, "y": 2.5, "h": 2.0},
{"label": "Cap", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
{"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
{"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
{"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
{"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
{"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
{"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
{"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25},
{"label": "'", "matrix": [6, 7], "x": 11.75, "y": 3.25},
{"label": "Ent", "matrix": [3, 11], "x": 12.75, "y": 3.25, "w": 2.25},
{"label": "P4", "matrix": [3, 12], "x": 15.5, "y": 3.25},
{"label": "P5", "matrix": [3, 13], "x": 16.5, "y": 3.25},
{"label": "P6", "matrix": [3, 14], "x": 17.5, "y": 3.25},
{"label": "Cap", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5},
{"label": "D", "matrix": [4, 2], "x": 3.75, "y": 3.5},
{"label": "F", "matrix": [3, 3], "x": 4.75, "y": 3.5},
{"label": "G", "matrix": [3, 4], "x": 5.75, "y": 3.5},
{"label": "H", "matrix": [3, 5], "x": 6.75, "y": 3.5},
{"label": "J", "matrix": [6, 5], "x": 7.75, "y": 3.5},
{"label": "K", "matrix": [3, 6], "x": 8.75, "y": 3.5},
{"label": "L", "matrix": [3, 7], "x": 9.75, "y": 3.5},
{"label": ";", "matrix": [3, 8], "x": 10.75, "y": 3.5},
{"label": "'", "matrix": [3, 9], "x": 11.75, "y": 3.5},
{"label": "Ent", "matrix": [3, 10], "x": 12.75, "y": 3.5, "w": 2.25},
{"label": "P4", "matrix": [3, 13], "x": 18.75, "y": 3.5},
{"label": "P5", "matrix": [3, 14], "x": 19.75, "y": 3.5},
{"label": "P6", "matrix": [3, 15], "x": 20.75, "y": 3.5},
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
{"label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25},
{"label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25},
{"label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25},
{"label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25},
{"label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25},
{"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25},
{"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
{"label": ".", "matrix": [4, 9], "x": 10.25, "y": 4.25},
{"label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25},
{"label": "Shift", "matrix": [6, 8], "x": 12.25, "y": 4.25, "w": 1.75},
{"label": "Up", "matrix": [4, 11], "x": 14.25, "y": 4.5},
{"label": "P1", "matrix": [4, 12], "x": 15.5, "y": 4.25},
{"label": "P2", "matrix": [4, 13], "x": 16.5, "y": 4.25},
{"label": "P3", "matrix": [4, 14], "x": 17.5, "y": 4.25},
{"label": "PENT", "matrix": [6, 12], "x": 18.5, "y": 4.25, "h": 2.0},
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
{"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.5},
{"label": "X", "matrix": [6, 1], "x": 3.25, "y": 4.5},
{"label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.5},
{"label": "V", "matrix": [6, 3], "x": 5.25, "y": 4.5},
{"label": "B", "matrix": [4, 4], "x": 6.25, "y": 4.5},
{"label": "N", "matrix": [6, 4], "x": 7.25, "y": 4.5},
{"label": "M", "matrix": [4, 5], "x": 8.25, "y": 4.5},
{"label": ",", "matrix": [4, 6], "x": 9.25, "y": 4.5},
{"label": ".", "matrix": [4, 7], "x": 10.25, "y": 4.5},
{"label": "?", "matrix": [4, 8], "x": 11.25, "y": 4.5},
{"label": "Shift", "matrix": [4, 10], "x": 12.25, "y": 4.5, "w": 2.75},
{"label": "Up", "matrix": [4, 11], "x": 16.25, "y": 4.5},
{"label": "P1", "matrix": [4, 13], "x": 18.75, "y": 4.5},
{"label": "P2", "matrix": [6, 13], "x": 19.75, "y": 4.5},
{"label": "P3", "matrix": [4, 15], "x": 20.75, "y": 4.5},
{"label": "PENT", "matrix": [6, 15], "x": 21.75, "y": 4.5, "h": 2.0},
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"label": "Com", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"label": "Alt", "matrix": [6, 1], "x": 2.5, "y": 5.25, "w": 1.25},
{"label": "SPAC1", "matrix": [6, 0], "x": 3.75, "y": 5.25, "w": 3.125},
{"label": "SPAC2", "matrix": [5, 6], "x": 6.875, "y": 5.25, "w": 3.125},
{"label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25},
{"label": "Fn", "matrix": [5, 7], "x": 11, "y": 5.25},
{"label": "Menu", "matrix": [5, 10], "x": 12, "y": 5.25},
{"label": "Left", "matrix": [6, 9], "x": 13.25, "y": 5.5},
{"label": "Down", "matrix": [5, 11], "x": 14.25, "y": 5.5},
{"label": "Right", "matrix": [5, 12], "x": 15.25, "y": 5.5},
{"label": "P0", "matrix": [5, 13], "x": 16.5, "y": 5.25},
{"label": "PDOT", "matrix": [5, 14], "x": 17.5, "y": 5.25}
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
{"label": "Com", "matrix": [6, 0], "x": 1.25, "y": 5.5, "w": 1.25},
{"label": "Alt", "matrix": [5, 1], "x": 2.5, "y": 5.5, "w": 1.25},
{"label": "SPAC1", "matrix": [5, 3], "x": 3.75, "y": 5.5, "w": 3.125},
{"label": "SPAC2", "matrix": [5, 5], "x": 6.875, "y": 5.5, "w": 3.125},
{"label": "Alt", "matrix": [5, 7], "x": 10, "y": 5.5, "w": 1.25},
{"label": "Fn", "matrix": [5, 8], "x": 11.25, "y": 5.5, "w": 1.25},
{"label": "Menu", "matrix": [5, 9], "x": 12.5, "y": 5.5, "w": 1.25},
{"label": "Ctrl", "matrix": [5, 10], "x": 13.75, "y": 5.5, "w": 1.25},
{"label": "Left", "matrix": [5, 11], "x": 15.25, "y": 5.5},
{"label": "Down", "matrix": [6, 11], "x": 16.25, "y": 5.5},
{"label": "Right", "matrix": [4, 12], "x": 17.25, "y": 5.5},
{"label": "P0", "matrix": [5, 13], "x": 18.75, "y": 5.5, "w": 2},
{"label": "PDOT", "matrix": [5, 15], "x": 20.75, "y": 5.5}
]
}

View File

@ -1,12 +1,7 @@
// Copyright 2023 JZ-Skyloong (@JZ-Skyloong)
// Copyright 2023 NaturalZh (@NaturalZh)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
int FN_WIN = 0;
int FN_MAC = 0;
int L_WIN = 0;
int L_MAC = 0;
enum layer_names {
_WIN,
_MAC,
@ -16,48 +11,54 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_WIN] = LAYOUT_all(
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_MUTE, KC_DEL, KC_PGUP, KC_PGDN, KC_PSCR,
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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_WIN_INDEX), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
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_SCRL, KC_PAUS, KC_MUTE, RGB_TOG,
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, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_WIN_INDEX), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
),
[_MAC] = LAYOUT_all(
KC_ESC, KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LAG(KC_EJCT), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_DEL, KC_PGUP, KC_PGDN, KC_PSCR,
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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RCMD, MO(_MAC_INDEX), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
KC_ESC, KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LAG(KC_EJCT), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, RGB_TOG,
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, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RCMD, MO(_MAC_INDEX), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
),
[_WIN_INDEX] = LAYOUT_all(
_______, KC_F14, KC_F15, G(KC_TAB), KC_WSCH, G(C(KC_S)), KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), KC_HOME, KC_END,
_______, _______, _______, _______, _______, _______, TO(_WIN), TO(_MAC), _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, _______, _______, _______, KC_RALT, _______, KC_APP, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
_______, KC_F14, KC_F15, G(KC_TAB), KC_WSCH, G(C(KC_S)), KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), KC_MUTE, RGB_TOG,
_______, _______, _______, _______, _______, _______, TO(_WIN), TO(_MAC), _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, _______, _______, _______, KC_RALT, _______, KC_APP, _______, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
),
[_MAC_INDEX] = LAYOUT_all(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), KC_HOME, KC_END,
_______, _______, _______, _______, _______, _______, TO(_WIN), TO(_MAC), _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, _______, _______, _______, KC_RCMD, _______, KC_RALT, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), KC_MUTE, RGB_TOG,
_______, _______, _______, _______, _______, _______, TO(_WIN), TO(_MAC), _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, _______, _______, _______, KC_RCMD, _______, KC_RALT, _______, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))},
[_MAC] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(G(KC_MINS), G(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))},
[_WIN_INDEX] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))},
[_MAC_INDEX] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(G(KC_MINS), G(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))}
[_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL))},
[_MAC] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(G(KC_MINS), G(KC_EQL))},
[_WIN_INDEX] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL))},
[_MAC_INDEX] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(G(KC_MINS), G(KC_EQL))}
};
#endif
#if defined(DIP_SWITCH_MAP_ENABLE)
const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {
DIP_SWITCH_OFF_ON(TO(0), TO(1)),
};
#endif
@ -77,32 +78,6 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
} break;
case 0:{
if (L_WIN) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
}
}else{
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
}
}
} break;
case 1:{
if (L_MAC) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
}
}else{
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
}
}
} break;
default:{
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
@ -112,62 +87,3 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
return true;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
# ifdef RGB_MATRIX_ENABLE
case RGB_TOG:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
rgb_matrix_set_color_all(0, 0, 0);
} break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
} break;
}
}
return false;
case RGB_VAI:
rgb_matrix_set_flags(LED_FLAG_ALL);
return true;
# endif
case TO(0):
if (record->event.pressed) {
L_WIN = 1;
set_single_persistent_default_layer(0); // Save default layer 0 to eeprom
} else {
L_WIN = 0;
}
return true; // continue all further processing of this key
case MO(2):
if (record->event.pressed) {
FN_WIN = 1;
} else {
FN_WIN = 0;
}
return true; // continue all further processing of this key
case TO(1):
if (record->event.pressed) {
L_MAC = 1;
set_single_persistent_default_layer(1); //Save default layer 1 to eeprom
} else {
L_MAC = 0;
}
return true; // continue all further processing of this key
case MO(3):
if (record->event.pressed) {
FN_MAC = 1;
} else {
FN_MAC = 0;
}
return true; // continue all further processing of this key
default:
return true;
}
}

View File

@ -0,0 +1,2 @@
ENCODER_MAP_ENABLE = yes
DIP_SWITCH_MAP_ENABLE = yes

View File

@ -1,12 +1,7 @@
// Copyright 2023 JZ-Skyloong (@JZ-Skyloong)
// Copyright 2023 NaturalZh (@NaturalZh)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
int FN_WIN = 0;
int FN_MAC = 0;
int L_WIN = 0;
int L_MAC = 0;
enum layer_names {
_WIN,
_MAC,
@ -16,48 +11,54 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_WIN] = LAYOUT_all(
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_MUTE, KC_DEL, KC_PGUP, KC_PGDN, KC_PSCR,
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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_WIN_INDEX), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
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_SCRL, KC_PAUS, RGB_TOG, KC_MUTE,
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, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_WIN_INDEX), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
),
[_MAC] = LAYOUT_all(
KC_ESC, KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LAG(KC_EJCT), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_DEL, KC_PGUP, KC_PGDN, KC_PSCR,
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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RCMD, MO(_MAC_INDEX), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
KC_ESC, KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LAG(KC_EJCT), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, RGB_TOG, KC_MUTE,
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, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RCMD, MO(_MAC_INDEX), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
),
[_WIN_INDEX] = LAYOUT_all(
_______, KC_F14, KC_F15, G(KC_TAB), KC_WSCH, G(C(KC_S)), KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), KC_HOME, KC_END,
_______, _______, _______, _______, _______, _______, TO(_WIN), TO(_MAC), _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, _______, _______, _______, KC_RALT, _______, KC_APP, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
_______, KC_F14, KC_F15, G(KC_TAB), KC_WSCH, G(C(KC_S)), KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), RGB_TOG, KC_MUTE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, _______, _______, _______, KC_RALT, _______, KC_APP, _______, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
),
[_MAC_INDEX] = LAYOUT_all(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), KC_HOME, KC_END,
_______, _______, _______, _______, _______, _______, TO(_WIN), TO(_MAC), _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, _______, _______, _______, KC_RCMD, _______, KC_RALT, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, G(KC_SPC), RCS(KC_SPC), G(RCS(KC_4)), RGB_TOG, KC_MUTE,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_RMOD, RGB_MOD, KC_DEL, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, _______, _______, _______, KC_RCMD, _______, KC_RALT, _______, RGB_SPD, RGB_VAD, RGB_SPI, KC_P0, KC_PDOT
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))},
[_MAC] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(G(KC_MINS), G(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))},
[_WIN_INDEX] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))},
[_MAC_INDEX] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(G(KC_MINS), G(KC_EQL)), ENCODER_CCW_CW(RGB_SPD, RGB_SPI),ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(C(KC_WH_D), C(KC_WH_U))}
[_WIN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[_MAC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[_WIN_INDEX] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[_MAC_INDEX] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}
};
#endif
#if defined(DIP_SWITCH_MAP_ENABLE)
const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {
DIP_SWITCH_OFF_ON(TO(0), TO(1)),
};
#endif
@ -77,32 +78,6 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
}
} break;
case 0:{
if (L_WIN) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
}
}else{
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
}
}
} break;
case 1:{
if (L_MAC) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
}
}else{
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
}
}
} break;
default:{
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
@ -113,63 +88,3 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
return true;
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
if (!process_record_user(keycode, record)) {
return false;
}
switch (keycode) {
# ifdef RGB_MATRIX_ENABLE
case RGB_TOG:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
rgb_matrix_set_color_all(0, 0, 0);
} break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
} break;
}
}
return false;
case RGB_VAI:
rgb_matrix_set_flags(LED_FLAG_ALL);
return true;
# endif
case TO(0):
if (record->event.pressed) {
L_WIN = 1;
set_single_persistent_default_layer(0); // Save default layer 0 to eeprom
} else {
L_WIN = 0;
}
return true; // continue all further processing of this key
case MO(2):
if (record->event.pressed) {
FN_WIN = 1;
} else {
FN_WIN = 0;
}
return true; // continue all further processing of this key
case TO(1):
if (record->event.pressed) {
L_MAC = 1;
set_single_persistent_default_layer(1); //Save default layer 1 to eeprom
} else {
L_MAC = 0;
}
return true; // continue all further processing of this key
case MO(3):
if (record->event.pressed) {
FN_MAC = 1;
} else {
FN_MAC = 0;
}
return true; // continue all further processing of this key
default:
return true;
}
}

View File

@ -1,2 +1,3 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes
DIP_SWITCH_MAP_ENABLE = yes
VIA_ENABLE = yes

View File

@ -1,2 +1,3 @@
CUSTOM_MATRIX = lite
SRC += matrix.c
DIP_SWITCH_ENABLE = yes

View File

@ -4,12 +4,13 @@
#pragma once
#define MAC_PIN C13
#define DEBOUNCE 10
#ifdef ENCODER_ENABLE
# define ENCODER_MAP_KEY_DELAY 20
#endif
#define DIP_SWITCH_PINS {A4}
#ifdef RGB_MATRIX_ENABLE
# define AW20216S_CS_PIN_1 B12
# define AW20216S_CS_PIN_2 B11
@ -17,34 +18,15 @@
# define AW20216S_EN_PIN_1 B5
# define AW20216S_EN_PIN_2 B5
# define NUM_LOCK_INDEX 31
# define WIN_MOD_INDEX 23
# define MAC_MOD_INDEX 24
# define WIN_LOCK_INDEX 75
# define CAPS_LOCK_INDEX 35
# define NUM_LOCK_INDEX 33
# define WIN_MOD_INDEX 22
# define MAC_MOD_INDEX 23
# define WIN_LOCK_INDEX 93
# define CAPS_LOCK_INDEX 58
# define SCR_LOCK_INDEX 14
# define SDB B5
# define RGB_MATRIX_KEYPRESSES
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#endif // RGB_MATRIX_ENABLE
/*
*LED display driver.74HC595 Serial to parallel control LED field on/off.
* data(default):1-on/0-off
* bit0 --- MAC layer indicator
* bit1 --- Win layer indicator
* bit2 --- CAPS indicator
* bit3 --- NUM indicator
* bit4 --- SCR indicator
* bit7 --- Skyloong LOGO display
*/
#define MAC_ON 0b00000001
#define WIN_ON 0b00000010
#define CAPS_ON 0b00000100
#define NUM_ON 0b00001000
#define SCR_ON 0b00010000
#define SKYLOONG 0b10000000

View File

@ -2,6 +2,7 @@
"manufacturer": "skyloong",
"maintainer": "NaturalZh",
"bootloader": "stm32duino",
"debounce": 10,
"build": {
"debounce_type": "asym_eager_defer_pk"
},
@ -13,10 +14,7 @@
"encoder": {
"rotary": [
{"pin_a": "A1", "pin_b": "A0", "resolution": 2},
{"pin_a": "A3", "pin_b": "A2", "resolution": 2},
{"pin_a": "A4", "pin_b": "B0", "resolution": 2},
{"pin_a": "B3", "pin_b": "B1", "resolution": 2},
{"pin_a": "B10", "pin_b": "B4", "resolution": 2}
{"pin_a": "A3", "pin_b": "A2", "resolution": 2}
]
},
"features": {
@ -35,7 +33,7 @@
"caps_lock": "C14"
},
"matrix_pins": {
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
"cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,null],
"rows": ["A8", "A9", "A10", "A15", "B6", "B7","B9"]
},
"processor": "STM32F103",
@ -63,7 +61,7 @@
"splash": true,
"typing_heatmap": true
},
"driver": "aw20216",
"driver": "aw20216s",
"hue_steps": 20,
"max_brightness": 200,
"sat_steps": 20,

View File

@ -14,50 +14,26 @@
# error hc595: no serial data input pins defined!
#endif
/**
* 74HC595 Skyloong LED display Driver
* data(default):1-on/0-off
* bit0 --- MAC layer indicator
* bit1 --- Win layer indicator
* bit2 --- CAPS indicator
* bit3 --- NUM indicator
* bit4 --- SCR indicator
* bit7 --- Skyloong LOGO display
*
**/
#ifndef ClockTime
# define ClockTime 15
#endif
/*
*LED display driver.74HC595 Serial to parallel control LED field on/off.
* data(default):1-on/0-off (left low bit)
* bit0 --- NUM indicator
* bit1 --- CAPS indicator
* bit2 --- SCR indicator
* bit3 --- WinLock indicator
* bit4 --- Skyloong LOGO display
* bit5 --- Win layer indicator
* bit6 --- MAC layer indicator
*/
#define NUM_ON 0b10000000
#define CAPS_ON 0b01000000
#define SCR_ON 0b00100000
#define WINLK_ON 0b00010000
#define SKYLOONG 0b00001000
#define WIN_ON 0b00000010
#define MAC_ON 0b00000100
//enable mac layer indicator on LED diaplay
#ifndef MAC_ON
# define MAC_ON 0b00000001
#endif
//enable win layer indicator on LED diaplay
#ifndef WIN_ON
# define WIN_ON 0b00000010
#endif
//enable caps lock indicator on LED diaplay
#ifndef CAPS_ON
# define CAPS_ON 0b00000100
#endif
//enable number lock indicator on LED diaplay
#ifndef NUM_ON
# define NUM_ON 0b00001000
#endif
//enable scroll lock indicator on LED diaplay
#ifndef SCR_ON
# define SCR_ON 0b00010000
#endif
//Skyloong LOGO display on
#ifndef SKYLOONG
# define SKYLOONG 0b10000000
#endif
# define ClockTime 15
static inline void setPinOutput_writeLow(pin_t pin) {
ATOMIC_BLOCK_FORCEON {

View File

@ -2,23 +2,15 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
/**
* 74HC595 Skyloong LED display Driver
* data(default):1-on/0-off
* bit0 --- MAC layer indicator
* bit1 --- Win layer indicator
* bit2 --- CAPS indicator
* bit3 --- NUM indicator
* bit4 --- SCR indicator
* bit7 --- Skyloong LOGO display
*
**/
#define HC595_ST_PIN A6 //74HC595 storage register clock input
#define HC595_SH_PIN A5 //74HC595 shift register clock input
#define HC595_DS A7 // 74HC595 serial data input
#define HC595_ST_PIN B1 //74HC595 storage register clock input
#define HC595_SH_PIN B0 //74HC595 shift register clock input
#define HC595_DS B3 // 74HC595 serial data input
#include "led_hc595.c"
uint8_t IND = 0; //buffer of LED Display
int FN_ON = 0;
_Bool WIN_LOCK = 0;
#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/
const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
/* Each AW20216 channel is controlled by a register at some offset between 0x00
@ -30,117 +22,205 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
* | | G location
* | | | B location
* | | | | */
{0, CS1_SW1, CS2_SW1, CS3_SW1},
{0, CS1_SW3, CS2_SW3, CS3_SW3},
{0, CS1_SW4, CS2_SW4, CS3_SW4},
{0, CS1_SW5, CS2_SW5, CS3_SW5},
{0, CS1_SW6, CS2_SW6, CS3_SW6},
{0, CS1_SW7, CS2_SW7, CS3_SW7},
{0, CS1_SW8, CS2_SW8, CS3_SW8},
{0, CS1_SW9, CS2_SW9, CS3_SW9},
{0, CS1_SW10, CS2_SW10, CS3_SW10},
{0, CS1_SW11, CS2_SW11, CS3_SW11},
{0, CS1_SW12, CS2_SW12, CS3_SW12},
{0, CS10_SW2, CS11_SW2, CS12_SW2},
{0, CS10_SW3, CS11_SW3, CS12_SW3},
//encoder no led
{0, CS10_SW5, CS11_SW5, CS12_SW5},
{0, CS10_SW6, CS11_SW6, CS12_SW6},
{0, CS10_SW7, CS11_SW7, CS12_SW7},
{0, CS10_SW8, CS11_SW8, CS12_SW8},
{0, SW1_CS1, SW1_CS2, SW1_CS3}, //ESC
{0, SW3_CS1, SW3_CS2, SW3_CS3}, //F1
{0, SW4_CS1, SW4_CS2, SW4_CS3},
{0, SW5_CS1, SW5_CS2, SW5_CS3}, //F3
{0, SW6_CS1, SW6_CS2, SW6_CS3},
{0, SW7_CS1, SW7_CS2, SW7_CS3}, //F5
{0, SW8_CS1, SW8_CS2, SW8_CS3},
{0, SW9_CS1, SW9_CS2, SW9_CS3}, //F7
{0, SW10_CS1, SW10_CS2, SW10_CS3},
{0, SW11_CS1, SW11_CS2, SW11_CS3}, //F9
{0, SW12_CS1, SW12_CS2, SW12_CS3}, //F10
{0, SW2_CS10, SW2_CS11, SW2_CS12},
{0, SW3_CS10, SW3_CS11, SW3_CS12}, //F12
{0, SW4_CS10, SW4_CS11, SW4_CS12}, //PrtSc
{0, SW5_CS10, SW5_CS11, SW5_CS12}, //Scroll
{0, SW6_CS10, SW6_CS11, SW6_CS12}, //Pause
//encoder no led
//encoder no led
{0, CS4_SW1, CS5_SW1, CS6_SW1},
{0, CS4_SW2, CS5_SW2, CS6_SW2},
{0, CS4_SW3, CS5_SW3, CS6_SW3},
{0, CS4_SW4, CS5_SW4, CS6_SW4},
{0, CS4_SW5, CS5_SW5, CS6_SW5},
{0, CS4_SW6, CS5_SW6, CS6_SW6},
{0, CS4_SW7, CS5_SW7, CS6_SW7},
{0, CS4_SW8, CS5_SW8, CS6_SW8},
{0, CS4_SW9, CS5_SW9, CS6_SW9},
{0, CS4_SW10, CS5_SW10, CS6_SW10},
{0, CS4_SW11, CS5_SW11, CS6_SW11},
{0, CS4_SW12, CS5_SW12, CS6_SW12},
{0, CS13_SW2, CS14_SW2, CS15_SW2},
{0, CS13_SW3, CS14_SW3, CS15_SW3},
{0, CS13_SW4, CS14_SW4, CS15_SW4},
{0, CS13_SW5, CS14_SW5, CS15_SW5},
{0, CS13_SW6, CS14_SW6, CS15_SW6},
{0, CS13_SW7, CS14_SW7, CS15_SW7},
{0, SW1_CS4, SW1_CS5, SW1_CS6}, //`~
{0, SW2_CS4, SW2_CS5, SW2_CS6}, //1
{0, SW3_CS4, SW3_CS5, SW3_CS6}, //2
{0, SW4_CS4, SW4_CS5, SW4_CS6},
{0, SW5_CS4, SW5_CS5, SW5_CS6}, //4
{0, SW6_CS4, SW6_CS5, SW6_CS6},
{0, SW7_CS4, SW7_CS5, SW7_CS6}, //6
{0, SW8_CS4, SW8_CS5, SW8_CS6},
{0, SW9_CS4, SW9_CS5, SW9_CS6}, //8
{0, SW10_CS4, SW10_CS5, SW10_CS6},
{0, SW11_CS4, SW11_CS5, SW11_CS6}, //0
{0, SW12_CS4, SW12_CS5, SW12_CS6}, //-_
{0, SW2_CS13, CS14_SW2, CS15_SW2}, //=+
{0, SW3_CS13, SW3_CS14, SW3_CS15}, //BS
{0, SW4_CS13, SW4_CS14, SW4_CS15}, //INS
{0, SW5_CS13, SW5_CS14, SW5_CS15}, //Home
{0, SW6_CS13, SW6_CS14, SW6_CS15}, //PgUp
{0, SW7_CS13, SW7_CS14, SW7_CS15}, //NumLK
{0, SW8_CS13, SW8_CS14, SW8_CS15}, //P/
{0, SW9_CS13, SW9_CS14, SW9_CS15}, //P*
{0, SW10_CS13, SW10_CS14, SW10_CS15}, //P-
{0, CS7_SW1, CS8_SW1, CS9_SW1},
{0, CS7_SW2, CS8_SW2, CS9_SW2},
{0, CS7_SW3, CS8_SW3, CS9_SW3},
{0, CS7_SW4, CS8_SW4, CS9_SW4},
{0, CS7_SW5, CS8_SW5, CS9_SW5},
{0, CS7_SW6, CS8_SW6, CS9_SW6},
{0, CS7_SW7, CS8_SW7, CS9_SW7},
{0, CS7_SW8, CS8_SW8, CS9_SW8},
{0, CS7_SW9, CS8_SW9, CS9_SW9},
{0, CS7_SW10, CS8_SW10, CS9_SW10},
{0, CS7_SW11, CS8_SW11, CS9_SW11},
{0, CS7_SW12, CS8_SW12, CS9_SW12},
{0, CS16_SW2, CS17_SW2, CS18_SW2},
{0, CS16_SW3, CS17_SW3, CS18_SW3},
{0, CS16_SW4, CS17_SW4, CS18_SW4},
{0, CS16_SW5, CS17_SW5, CS18_SW5},
{0, CS16_SW6, CS17_SW6, CS18_SW6},
{0, CS16_SW7, CS17_SW7, CS18_SW7},
{0, SW1_CS7, SW1_CS8, SW1_CS9}, //Tab
{0, SW2_CS7, SW2_CS8, SW2_CS9}, //Q
{0, SW3_CS7, SW3_CS8, SW3_CS9}, //W
{0, SW4_CS7, SW4_CS8, SW4_CS9}, //E
{0, SW5_CS7, SW5_CS8, SW5_CS9}, //R
{0, SW6_CS7, SW6_CS8, SW6_CS9}, //T
{0, SW7_CS7, SW7_CS8, SW7_CS9}, //Y
{0, SW8_CS7, SW8_CS8, SW8_CS9}, //U
{0, SW9_CS7, SW9_CS8, SW9_CS9}, //I
{0, SW10_CS7, SW10_CS8, SW10_CS9}, //O
{0, SW11_CS7, SW11_CS8, SW11_CS9}, //P
{0, SW12_CS7, SW12_CS8, SW12_CS9}, //[
{0, SW2_CS16, SW2_CS17, SW2_CS18}, //]
{0, SW3_CS16, SW3_CS17, SW3_CS18}, //|
{0, SW4_CS16, SW4_CS17, SW4_CS18}, //DEL
{0, SW5_CS16, SW5_CS17, SW5_CS18}, //END
{0, SW6_CS16, SW6_CS17, SW6_CS18}, //PgDn
{0, SW7_CS16, SW7_CS17, SW7_CS18}, //P7
{0, SW8_CS16, SW8_CS17, SW8_CS18}, //P8
{0, SW9_CS16, SW9_CS17, SW9_CS18}, //P9
{0, SW10_CS16, SW10_CS17, SW10_CS18}, //P+
{1, SW1_CS1, SW1_CS2, SW1_CS3}, //Cap
{1, SW2_CS1, SW2_CS2, SW2_CS3}, //A
{1, SW3_CS1, SW3_CS2, SW3_CS3}, //S
{1, SW4_CS1, SW4_CS2, SW4_CS3}, //D
{1, SW5_CS1, SW5_CS2, SW5_CS3}, //F
{1, SW6_CS1, SW6_CS2, SW6_CS3}, //G
{1, SW7_CS1, SW7_CS2, SW7_CS3}, //H
{1, SW8_CS1, SW8_CS2, SW8_CS3}, //J
{1, SW9_CS1, SW9_CS2, SW9_CS3}, //K
{1, SW10_CS1, SW10_CS2, SW10_CS3}, //L
{1, SW11_CS1, SW11_CS2, SW11_CS3}, //;
{1, SW12_CS1, SW12_CS2, SW12_CS3}, //.
{1, SW2_CS10, SW2_CS11, SW2_CS12}, //Ent
{1, SW5_CS10, SW5_CS11, SW5_CS12}, //P4
{1, SW6_CS10, SW6_CS11, SW6_CS12}, //P5
{1, SW7_CS10, SW7_CS11, SW7_CS12}, //P6
{1, SW1_CS4, SW1_CS5, SW1_CS6}, //Shift
{1, SW2_CS4, SW2_CS5, SW2_CS6}, //Z
{1, SW3_CS4, SW3_CS5, SW3_CS6}, //X
{1, SW4_CS4, SW4_CS5, SW4_CS6}, //C
{1, SW5_CS4, SW5_CS5, SW5_CS6}, //V
{1, SW6_CS4, SW6_CS5, SW6_CS6}, //B
{1, SW7_CS4, SW7_CS5, SW7_CS6}, //N
{1, SW8_CS4, SW8_CS5, SW8_CS6}, //M
{1, SW9_CS4, SW9_CS5, SW9_CS6}, //,
{1, SW10_CS4, SW10_CS5, SW10_CS6}, //.
{1, SW11_CS4, SW11_CS5, SW11_CS6}, //?
{1, SW2_CS13, SW2_CS14, SW2_CS15}, //Shift
{1, SW3_CS10, SW3_CS11, SW3_CS12}, //Up
{1, SW5_CS13, SW5_CS14, SW5_CS15}, //P1
{1, SW6_CS13, SW6_CS14, SW6_CS15}, //P2
{1, SW7_CS13, SW7_CS14, SW7_CS15}, //P3
{1, SW7_CS16, SW7_CS17, SW7_CS18}, //PENT
{1, CS1_SW1, CS2_SW1, CS3_SW1},
{1, CS1_SW2, CS2_SW2, CS3_SW2},
{1, CS1_SW3, CS2_SW3, CS3_SW3},
{1, CS1_SW4, CS2_SW4, CS3_SW4},
{1, CS1_SW5, CS2_SW5, CS3_SW5},
{1, CS1_SW6, CS2_SW6, CS3_SW6},
{1, CS1_SW7, CS2_SW7, CS3_SW7},
{1, CS1_SW8, CS2_SW8, CS3_SW8},
{1, CS1_SW9, CS2_SW9, CS3_SW9},
{1, CS1_SW10, CS2_SW10, CS3_SW10},
{1, CS1_SW11, CS2_SW11, CS3_SW11},
{1, CS1_SW12, CS2_SW12, CS3_SW12},
{1, CS10_SW3, CS11_SW3, CS12_SW3},
{1, CS10_SW4, CS11_SW4, CS12_SW4},
{1, CS10_SW5, CS11_SW5, CS12_SW5},
{1, CS10_SW6, CS11_SW6, CS12_SW6},
{1, CS4_SW1, CS5_SW1, CS6_SW1},
{1, CS4_SW2, CS5_SW2, CS6_SW2},
{1, CS4_SW3, CS5_SW3, CS6_SW3},
{1, CS4_SW4, CS5_SW4, CS6_SW4},
{1, CS4_SW5, CS5_SW5, CS6_SW5},
{1, CS4_SW6, CS5_SW6, CS6_SW6},
{1, CS4_SW7, CS5_SW7, CS6_SW7},
{1, CS4_SW8, CS5_SW8, CS6_SW8},
{1, CS4_SW9, CS5_SW9, CS6_SW9},
{1, CS4_SW10, CS5_SW10, CS6_SW10},
{1, CS4_SW11, CS5_SW11, CS6_SW11},
{1, CS13_SW2, CS14_SW2, CS15_SW2},
{1, CS13_SW3, CS14_SW3, CS15_SW3},
{1, CS13_SW4, CS14_SW4, CS15_SW4},
{1, CS13_SW5, CS14_SW5, CS15_SW5},
{1, CS13_SW6, CS14_SW6, CS15_SW6},
{1, CS13_SW7, CS14_SW7, CS15_SW7},
{1, CS7_SW1, CS8_SW1, CS9_SW1},
{1, CS7_SW2, CS8_SW2, CS9_SW2},
{1, CS7_SW3, CS8_SW3, CS9_SW3},
{1, CS7_SW5, CS8_SW5, CS9_SW5},
{1, CS7_SW6, CS8_SW6, CS9_SW6},
{1, CS7_SW8, CS8_SW8, CS9_SW8},
{1, CS7_SW10, CS8_SW10, CS9_SW10},
{1, CS7_SW11, CS8_SW11, CS9_SW11},
{1, CS7_SW12, CS8_SW12, CS9_SW12},
{1, CS16_SW2, CS17_SW2, CS18_SW2},
{1, CS16_SW3, CS17_SW3, CS18_SW3},
{1, CS16_SW4, CS17_SW4, CS18_SW4},
{1, CS16_SW5, CS17_SW5, CS18_SW5},
{1, CS16_SW6, CS17_SW6, CS18_SW6}
{1, SW1_CS7, SW1_CS8, SW1_CS9}, //Ctrl
{1, SW2_CS7, SW2_CS8, SW2_CS9}, //Com
{1, SW3_CS7, SW3_CS8, SW3_CS9}, //Alt
{1, SW4_CS7, SW4_CS8, SW4_CS9}, //SPAC1
{1, SW6_CS7, SW6_CS8, SW6_CS9}, //SPAC
{1, SW8_CS7, SW8_CS8, SW8_CS9}, //SPAC2
{1, SW10_CS7, SW10_CS8, SW10_CS9}, //Alt
{1, SW11_CS7, SW11_CS8, SW11_CS9}, //Fn
{1, SW12_CS7, SW12_CS8, SW12_CS9}, //Menu
{1, SW2_CS16, SW2_CS17, SW2_CS18}, //Ctrl
{1, SW3_CS16, SW3_CS17, SW3_CS18}, //Left
{1, SW3_CS13, SW3_CS14, SW3_CS15}, //Down
{1, SW4_CS16, SW4_CS17, SW4_CS18}, //Right
{1, SW5_CS16, SW5_CS17, SW5_CS18}, //P0
{1, SW6_CS16, SW6_CS17, SW6_CS18} //PDot
};
#endif
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
if (!process_record_user(keycode, record)) {
return false;
}
switch (keycode) {
# ifdef RGB_MATRIX_ENABLE
case RGB_TOG:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
rgb_matrix_set_color_all(0, 0, 0);
} break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
} break;
}
}
return false;
case RGB_VAI:
rgb_matrix_set_flags(LED_FLAG_ALL);
return true;
# endif
case MO(1):
if (record->event.pressed) {
FN_ON = 1;
} else {
FN_ON = 0;
}
return true;
case MO(2):
if (record->event.pressed) {
FN_ON = 1;
} else {
FN_ON = 0;
}
return true;
case MO(3):
if (record->event.pressed) {
FN_ON = 1;
} else {
FN_ON = 0;
}
return true;
case KC_LGUI:
if (FN_ON){
if ( record->event.pressed){
WIN_LOCK = !WIN_LOCK ; //change win lock state
}
if (!WIN_LOCK) {
IND = IND & (~WINLK_ON); //Close win lock display
s_serial_to_parallel(IND);
return false; //windows key locked do nothing
}
s_serial_to_parallel(IND);
}
if (WIN_LOCK) {
IND = IND | WINLK_ON; //Open win lock display
s_serial_to_parallel(IND);
return false; //windows key locked do nothing
}
return true; // continue all further processing of this key
case TO(0):
set_single_persistent_default_layer(0);
return true;
case TO(1):
set_single_persistent_default_layer(1);
return true;
default:
return true;
}
s_serial_to_parallel(IND);
}
void suspend_power_down_kb() {
# ifdef RGB_MATRIX_ENABLE
writePinLow(SDB);
@ -161,7 +241,7 @@ void suspend_wakeup_init_kb() {
bool shutdown_kb(bool jump_to_bootloader) {
writePinLow(SDB);
s_serial_to_parallel(0);
return shutdown_user(jump_to_bootloader);
return true;
}
layer_state_t default_layer_state_set_kb(layer_state_t state) {
@ -188,6 +268,7 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
return false;
}
//caps lock display
if (host_keyboard_led_state().caps_lock) {
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255);
@ -219,6 +300,37 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
IND = IND & (~SCR_ON);
}
switch (get_highest_layer(layer_state)) {
case 0:{
if (FN_ON) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
}
}
} break;
case 1:{
if (FN_ON) {
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
}
}
} break;
default:{
if (!rgb_matrix_get_flags()) {
RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
}
}
return true;
}
s_serial_to_parallel(IND);
return true;
}
@ -233,6 +345,7 @@ void board_init(void) {
# endif
setPinOutput(MAC_PIN);
writePinHigh(MAC_PIN);
s_serial_to_parallel(SKYLOONG);
s_serial_to_parallel(0xFF);
IND = SKYLOONG;
}