feat: qmk configs
This commit is contained in:
parent
2c49a1be3b
commit
5594cc0194
0
qmk/README.md
Normal file
0
qmk/README.md
Normal file
95
qmk/convert.py
Normal file
95
qmk/convert.py
Normal file
@ -0,0 +1,95 @@
|
||||
import json
|
||||
layout = [
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.125},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.125},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0.125},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0.125},
|
||||
{"matrix": [0, 7], "x": 8, "y": 0.125},
|
||||
{"matrix": [0, 8], "x": 9, "y": 0.125},
|
||||
{"matrix": [0, 9], "x": 10, "y": 0.125},
|
||||
{"matrix": [0, 11], "x": 12, "y": 0.125},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 10], "x": 11, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.125},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.125},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.125},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.125},
|
||||
{"matrix": [1, 7], "x": 8, "y": 1.125},
|
||||
{"matrix": [1, 8], "x": 9, "y": 1.125},
|
||||
{"matrix": [1, 9], "x": 10, "y": 1.125},
|
||||
{"matrix": [1, 11], "x": 12, "y": 1.125},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.375},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.375},
|
||||
{"matrix": [1, 12], "x": 13, "y": 1.375},
|
||||
{"matrix": [1, 13], "x": 14, "y": 1.375},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 10], "x": 11, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.125},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.125},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2.125},
|
||||
{"matrix": [2, 6], "x": 6, "y": 2.125},
|
||||
{"matrix": [2, 7], "x": 8, "y": 2.125},
|
||||
{"matrix": [2, 8], "x": 9, "y": 2.125},
|
||||
{"matrix": [2, 9], "x": 10, "y": 2.125},
|
||||
{"matrix": [2, 11], "x": 12, "y": 2.125},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.375},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.375},
|
||||
{"matrix": [2, 12], "x": 13, "y": 2.375},
|
||||
{"matrix": [2, 13], "x": 14, "y": 2.375},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"matrix": [3, 10], "x": 11, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3.125},
|
||||
{"matrix": [3, 4], "x": 4, "y": 3.125},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3.125},
|
||||
{"matrix": [3, 6], "x": 6, "y": 3.125},
|
||||
{"matrix": [3, 7], "x": 8, "y": 3.125},
|
||||
{"matrix": [3, 8], "x": 9, "y": 3.125},
|
||||
{"matrix": [3, 9], "x": 10, "y": 3.125},
|
||||
{"matrix": [3, 11], "x": 12, "y": 3.125},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.375},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3.375},
|
||||
{"matrix": [3, 12], "x": 13, "y": 3.375},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3.375},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"matrix": [4, 10], "x": 11, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4.125},
|
||||
{"matrix": [4, 4], "x": 4, "y": 4.125},
|
||||
{"matrix": [4, 5], "x": 5, "y": 4.125},
|
||||
{"matrix": [4, 6], "x": 6, "y": 4.125},
|
||||
{"matrix": [4, 7], "x": 8, "y": 4.125},
|
||||
{"matrix": [4, 8], "x": 9, "y": 4.125},
|
||||
{"matrix": [4, 9], "x": 10, "y": 4.125},
|
||||
{"matrix": [4, 11], "x": 12, "y": 4.125},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.375},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4.375},
|
||||
{"matrix": [4, 12], "x": 13, "y": 4.375},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4.375},
|
||||
{"matrix": [5, 3], "x": 3, "y": 5},
|
||||
{"matrix": [5, 10], "x": 11, "y": 5},
|
||||
{"matrix": [5, 2], "x": 2, "y": 5.125},
|
||||
{"matrix": [5, 4], "x": 4, "y": 5.125},
|
||||
{"matrix": [5, 5], "x": 5, "y": 5.125},
|
||||
{"matrix": [5, 6], "x": 6, "y": 5.125},
|
||||
{"matrix": [5, 7], "x": 8, "y": 5.125},
|
||||
{"matrix": [5, 8], "x": 9, "y": 5.125},
|
||||
{"matrix": [5, 9], "x": 10, "y": 5.125},
|
||||
{"matrix": [5, 11], "x": 12, "y": 5.125},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.375},
|
||||
{"matrix": [5, 1], "x": 1, "y": 5.375},
|
||||
{"matrix": [5, 12], "x": 13, "y": 5.375},
|
||||
{"matrix": [5, 13], "x": 14, "y": 5.375},
|
||||
]
|
||||
|
||||
|
||||
new_layout = []
|
||||
for x in layout:
|
||||
m = x["matrix"]
|
||||
if m[1] > 6:
|
||||
m[0] += 6
|
||||
m[1] -= 7
|
||||
x["matrix"] = m
|
||||
new_layout.append(x)
|
||||
|
||||
print(json.dumps(new_layout))
|
273
qmk/etc/rev1/snappy_rev1.json
Normal file
273
qmk/etc/rev1/snappy_rev1.json
Normal file
@ -0,0 +1,273 @@
|
||||
[
|
||||
{
|
||||
"name": "Snappy",
|
||||
"author": "Philip Gaber <phga@posteo.de>",
|
||||
"notes": "Handwired keyboard to test this layout idea.",
|
||||
"switchMount": "cherry",
|
||||
"switchBrand": "gateron",
|
||||
"plate": true
|
||||
},
|
||||
[
|
||||
{
|
||||
"x": 3,
|
||||
"a": 7
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.125,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
]
|
||||
]
|
22
qmk/etc/rev1/snappy_rev1.kb_raw
Normal file
22
qmk/etc/rev1/snappy_rev1.kb_raw
Normal file
@ -0,0 +1,22 @@
|
||||
[{x:3,a:7},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","",{x:2},"","","",{x:1},""],
|
||||
|
||||
[{y:-0.125,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""]
|
BIN
qmk/etc/rev1/snappy_rev1.png
Normal file
BIN
qmk/etc/rev1/snappy_rev1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
327
qmk/etc/rev1/snappy_rev1_info.json
Normal file
327
qmk/etc/rev1/snappy_rev1_info.json
Normal file
@ -0,0 +1,327 @@
|
||||
{
|
||||
"keyboard_name": "snappy - rev1",
|
||||
"url": "",
|
||||
"maintainer": "qhga",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{
|
||||
"x": 3,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 5.375
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
275
qmk/etc/rev1/snappy_rev1_via_keyboard_definition.json
Normal file
275
qmk/etc/rev1/snappy_rev1_via_keyboard_definition.json
Normal file
@ -0,0 +1,275 @@
|
||||
{
|
||||
"name": "snappy v1",
|
||||
"vendorId": "0xCAFE",
|
||||
"productId": "0x0001",
|
||||
"matrix": {
|
||||
"rows": 12,
|
||||
"cols": 7
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"0,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"6,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"0,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"0,4",
|
||||
"0,5",
|
||||
{
|
||||
"x": 2
|
||||
},
|
||||
"6,6",
|
||||
"6,5",
|
||||
"6,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"6,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.125,
|
||||
"x": 3
|
||||
},
|
||||
"1,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"7,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"1,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"1,4",
|
||||
"1,5",
|
||||
"1,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"7,6",
|
||||
"7,5",
|
||||
"7,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"7,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"1,0",
|
||||
"1,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"7,1",
|
||||
"7,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"2,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"8,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"2,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"8,6",
|
||||
"8,5",
|
||||
"8,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"8,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"2,0",
|
||||
"2,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"8,1",
|
||||
"8,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"3,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"9,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"3,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"9,6",
|
||||
"9,5",
|
||||
"9,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"9,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"3,0",
|
||||
"3,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"9,1",
|
||||
"9,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"4,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"10,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"4,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"4,4",
|
||||
"4,5",
|
||||
"4,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"10,6",
|
||||
"10,5",
|
||||
"10,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"10,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"4,0",
|
||||
"4,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"10,1",
|
||||
"10,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"5,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"11,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"5,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"5,4",
|
||||
"5,5",
|
||||
"5,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"11,6",
|
||||
"11,5",
|
||||
"11,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"11,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"5,0",
|
||||
"5,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"11,1",
|
||||
"11,0"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
266
qmk/etc/rev2/snappy_rev2.json
Normal file
266
qmk/etc/rev2/snappy_rev2.json
Normal file
@ -0,0 +1,266 @@
|
||||
[
|
||||
[
|
||||
{
|
||||
"x": 3,
|
||||
"a": 7
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.125,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
""
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"",
|
||||
""
|
||||
]
|
||||
]
|
22
qmk/etc/rev2/snappy_rev2.kb_raw
Normal file
22
qmk/etc/rev2/snappy_rev2.kb_raw
Normal file
@ -0,0 +1,22 @@
|
||||
[{x:3,a:7},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
|
||||
[{y:-0.125,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""],
|
||||
|
||||
[{y:-0.375,x:3},"",{x:7},""],
|
||||
[{y:-0.875,x:2},"",{x:1},"","","",{x:1},"","","",{x:1},""],
|
||||
[{y:-0.75},"","",{x:11},"",""]
|
BIN
qmk/etc/rev2/snappy_rev2.png
Normal file
BIN
qmk/etc/rev2/snappy_rev2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
331
qmk/etc/rev2/snappy_rev2_info.json
Normal file
331
qmk/etc/rev2/snappy_rev2_info.json
Normal file
@ -0,0 +1,331 @@
|
||||
{
|
||||
"keyboard_name": "snappy - rev2",
|
||||
"url": "",
|
||||
"maintainer": "phga",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{
|
||||
"x": 3,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 5.375
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
276
qmk/etc/rev2/snappy_rev2_via_keyboard_definition.json
Normal file
276
qmk/etc/rev2/snappy_rev2_via_keyboard_definition.json
Normal file
@ -0,0 +1,276 @@
|
||||
{
|
||||
"name": "snappy v2",
|
||||
"vendorId": "0xCAFE",
|
||||
"productId": "0x0002",
|
||||
"matrix": {
|
||||
"rows": 12,
|
||||
"cols": 7
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"0,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"6,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"0,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"6,6",
|
||||
"6,5",
|
||||
"6,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"6,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.125,
|
||||
"x": 3
|
||||
},
|
||||
"1,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"7,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"1,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"1,4",
|
||||
"1,5",
|
||||
"1,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"7,6",
|
||||
"7,5",
|
||||
"7,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"7,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"1,0",
|
||||
"1,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"7,1",
|
||||
"7,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"2,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"8,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"2,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"8,6",
|
||||
"8,5",
|
||||
"8,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"8,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"2,0",
|
||||
"2,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"8,1",
|
||||
"8,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"3,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"9,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"3,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"9,6",
|
||||
"9,5",
|
||||
"9,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"9,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"3,0",
|
||||
"3,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"9,1",
|
||||
"9,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"4,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"10,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"4,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"4,4",
|
||||
"4,5",
|
||||
"4,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"10,6",
|
||||
"10,5",
|
||||
"10,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"10,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"4,0",
|
||||
"4,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"10,1",
|
||||
"10,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"5,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"11,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"5,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"5,4",
|
||||
"5,5",
|
||||
"5,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"11,6",
|
||||
"11,5",
|
||||
"11,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"11,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"5,0",
|
||||
"5,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"11,1",
|
||||
"11,0"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
BIN
qmk/etc/rev3/flash_nuke.uf2
Normal file
BIN
qmk/etc/rev3/flash_nuke.uf2
Normal file
Binary file not shown.
276
qmk/etc/rev3/snappy_rev3_via_keyboard_definition.json
Normal file
276
qmk/etc/rev3/snappy_rev3_via_keyboard_definition.json
Normal file
@ -0,0 +1,276 @@
|
||||
{
|
||||
"name": "snappy v3",
|
||||
"vendorId": "0xCAFE",
|
||||
"productId": "0x1337",
|
||||
"matrix": {
|
||||
"rows": 12,
|
||||
"cols": 7
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
[
|
||||
{
|
||||
"x": 3
|
||||
},
|
||||
"0,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"6,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"0,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"0,4",
|
||||
"0,5",
|
||||
"0,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"6,6",
|
||||
"6,5",
|
||||
"6,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"6,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.125,
|
||||
"x": 3
|
||||
},
|
||||
"1,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"7,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"1,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"1,4",
|
||||
"1,5",
|
||||
"1,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"7,6",
|
||||
"7,5",
|
||||
"7,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"7,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"1,0",
|
||||
"1,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"7,1",
|
||||
"7,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"2,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"8,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"2,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"2,4",
|
||||
"2,5",
|
||||
"2,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"8,6",
|
||||
"8,5",
|
||||
"8,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"8,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"2,0",
|
||||
"2,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"8,1",
|
||||
"8,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"3,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"9,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"3,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"3,4",
|
||||
"3,5",
|
||||
"3,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"9,6",
|
||||
"9,5",
|
||||
"9,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"9,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"3,0",
|
||||
"3,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"9,1",
|
||||
"9,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"4,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"10,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"4,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"4,4",
|
||||
"4,5",
|
||||
"4,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"10,6",
|
||||
"10,5",
|
||||
"10,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"10,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"4,0",
|
||||
"4,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"10,1",
|
||||
"10,0"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.375,
|
||||
"x": 3
|
||||
},
|
||||
"5,3",
|
||||
{
|
||||
"x": 7
|
||||
},
|
||||
"11,3"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.875,
|
||||
"x": 2
|
||||
},
|
||||
"5,2",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"5,4",
|
||||
"5,5",
|
||||
"5,6",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"11,6",
|
||||
"11,5",
|
||||
"11,4",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"11,2"
|
||||
],
|
||||
[
|
||||
{
|
||||
"y": -0.75
|
||||
},
|
||||
"5,0",
|
||||
"5,1",
|
||||
{
|
||||
"x": 11
|
||||
},
|
||||
"11,1",
|
||||
"11,0"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
56
qmk/snappy/README.md
Normal file
56
qmk/snappy/README.md
Normal file
@ -0,0 +1,56 @@
|
||||
# snappy
|
||||
|
||||

|
||||
|
||||
*A short description of the keyboard/project*
|
||||
|
||||
* Keyboard Maintainer: [Philip Gaber](https://github.com/qhga)
|
||||
* Hardware Supported: *The PCBs, controllers supported*
|
||||
* Hardware Availability: *Links to where you can find this hardware*
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make snappy:default
|
||||
|
||||
# REV1 & REV2 (elite c)
|
||||
sudo make snappy/rev1:default:dfu-split-left
|
||||
sudo make snappy/rev1:default:dfu-split-right
|
||||
|
||||
sudo make snappy/rev2:default:dfu-split-left
|
||||
sudo make snappy/rev2:default:dfu-split-right
|
||||
|
||||
# REV3 (promicro rp2040) (info.json -> CURRENTLY NOT WORKING)
|
||||
sudo make snappy/rev3:default:uf2-split-left
|
||||
sudo make snappy/rev3:default:uf2-split-right
|
||||
|
||||
# REV3_5 (promicro rp2040) (WITHOUT info.json)
|
||||
sudo make snappy/rev3_5:default:uf2-split-left
|
||||
sudo make snappy/rev3_5:default:uf2-split-right
|
||||
|
||||
# Make sure to mount the RP2040 drive to /media/snappy for automatic copying of the .uf2 file
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
### REV1 & REV2
|
||||
* **Physical Reset Button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in Layout**: Press the key mapped to `QK_BOOT` (REV1 & REV2) if it is available
|
||||
|
||||
### REV3 (NOT WORKING) & REV3_5
|
||||
* **Physical Reset Button**: Hold the `boot` button while plugging in the MC OR hold `boot` and press `reset`
|
||||
* **Physical Bootmagic Key**: Hold the `boot` button while plugging in the MC OR hold `boot` and press `reset`
|
||||
* **Keycode in Layout**: Press the key mapped to `QK_BOOT` (REV3 & REV3_5) if it is available
|
||||
|
||||
info.json spec: https://github.com/qmk/qmk_firmware/blob/master/docs/reference_info_json.md
|
||||
|
||||
### VIA (Troubleshooting)
|
||||
|
||||
On GNU/Linux while using Chrome to access VIA (https://usevia.app/)
|
||||
Navigate to `chrome://device-log` find hidrawXYZ
|
||||
|
||||
sudo chown $USER:$USER /dev/hidrawXYZ
|
||||
|
||||
For now we have to upload the `snappy_revXYZ_via_keyboard_definition.json` located in the `/etc/` folder manually to the via website
|
4
qmk/snappy/config.h
Normal file
4
qmk/snappy/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
43
qmk/snappy/readme.md
Normal file
43
qmk/snappy/readme.md
Normal file
@ -0,0 +1,43 @@
|
||||
# snappy
|
||||
|
||||

|
||||
|
||||
*A short description of the keyboard/project*
|
||||
|
||||
* Keyboard Maintainer: [Philip Gaber](https://github.com/qhga)
|
||||
* Hardware Supported: *The PCBs, controllers supported*
|
||||
* Hardware Availability: *Links to where you can find this hardware*
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make snappy:default
|
||||
|
||||
# REV1 & REV2 (elite c)
|
||||
sudo make snappy/rev2:default:dfu-split-left
|
||||
sudo make snappy/rev2:default:dfu-split-right
|
||||
|
||||
# REV3 (promicro rp2040) (info.json -> NOT WORKING)
|
||||
sudo make snappy/rev3:default:uf2-split-left
|
||||
sudo make snappy/rev3:default:uf2-split-right
|
||||
|
||||
# REV3_5 (promicro rp2040) (WITHOUT info.json)
|
||||
sudo make snappy/rev3_5:default:uf2-split-left
|
||||
sudo make snappy/rev3_5:default:uf2-split-right
|
||||
|
||||
# Make sure to mount the RP2040 drive to /media/snappy for automatic copying of the .uf2 file
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
### REV1 & REV2
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` (REV1 & REV2) if it is available
|
||||
|
||||
### REV3 (NOT WORKING) & REV3_5
|
||||
* **Physical reset button**: Hold the `boot` button while plugging in the MC OR hold `boot` and press `reset`
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` (REV3 & REV3_5) if it is available
|
||||
|
||||
info.json spec: https://github.com/qmk/qmk_firmware/blob/master/docs/reference_info_json.md
|
3
qmk/snappy/rev1/README.md
Normal file
3
qmk/snappy/rev1/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Important
|
||||
|
||||
At the moment, this uses some patches from drashna (https://github.com/drashna/qmk_firmware/tree/pointing/large_reports) to make the trackball a bit smoother
|
72
qmk/snappy/rev1/config.h
Normal file
72
qmk/snappy/rev1/config.h
Normal file
@ -0,0 +1,72 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 7
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
|
||||
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
|
||||
|
||||
/* COL2ROW, ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/*
|
||||
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||
*/
|
||||
#define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6
|
||||
// Other options: MASTER_RIGHT
|
||||
/* #define MASTER_LEFT */
|
||||
// Set the handedness by writing it to EEPROM
|
||||
// Plug in left side:
|
||||
// sudo make snappy/rev2:default:dfu-split-left
|
||||
// Plug in right side:
|
||||
// sudo make snappy/rev2:default:dfu-split-right
|
||||
#define EE_HANDS
|
||||
|
||||
// Also required for the trackball (if one wants to use MOUSE_EXT_REPORT)
|
||||
#define SPLIT_POINTING_ENABLE
|
||||
#define POINTING_DEVICE_LEFT
|
||||
#define POINTING_DEVICE_ROTATION_90
|
||||
// This option requires drashnas fork and makes the trackball a bit smoother
|
||||
#define MOUSE_EXT_REPORT
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
//#define BOOTMAGIC_LITE_ROW 0
|
||||
//#define BOOTMAGIC_LITE_COLUMN 0
|
333
qmk/snappy/rev1/info.json
Normal file
333
qmk/snappy/rev1/info.json
Normal file
@ -0,0 +1,333 @@
|
||||
{
|
||||
"keyboard_name": "snappy",
|
||||
"manufacturer": "phga",
|
||||
"maintainer": "qhga",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"vid": "0xCAFE",
|
||||
"pid": "0x0001",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{
|
||||
"x": 3,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 5.375
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
6
qmk/snappy/rev1/keymaps/default/config.h
Normal file
6
qmk/snappy/rev1/keymaps/default/config.h
Normal file
@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#define USE_SERIAL
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
241
qmk/snappy/rev1/keymaps/default/keymap.c
Normal file
241
qmk/snappy/rev1/keymaps/default/keymap.c
Normal file
@ -0,0 +1,241 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_DVORAK,
|
||||
_SPECIAL,
|
||||
_FUNCTION,
|
||||
_GAMING,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC
|
||||
};
|
||||
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* DVORAK
|
||||
***************************************************************************/
|
||||
// R1 (9)
|
||||
#define _____FN1__FN2__FN3__FN4___ ____, KC_MS_BTN3, KC_MS_BTN1, KC_MS_BTN2
|
||||
#define _____FN5__FN6__FN7__FN8___ KC_5, KC_6, KC_7, QK_BOOT
|
||||
// R2 (14)
|
||||
#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define _6_____7_____8_____9_____0 KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
// R3 (14)
|
||||
#define QUOT__COMM__DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DEL
|
||||
#define _F_____G_____C_____R_____L KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L
|
||||
// R4 (14)
|
||||
#define _A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I, UM_PARN
|
||||
#define _D_____H_____T_____N_____S UM_BRAC, KC_D, KC_H, KC_T, KC_N, KC_S
|
||||
// R5 (14)
|
||||
#define _EQL___Q_____J_____K_____X KC_EQL, KC_Q, KC_J, KC_K, KC_X, UM_PARN
|
||||
#define _B_____M_____W_____V_____Z UM_BRAC, KC_B, KC_M, KC_W, KC_V, KC_Z
|
||||
// R6 (14)
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LSFT, KC_LGUI, OSL(_SPECIAL), KC_MINS, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ OS_LSFT, KC_SPC, KC_SCLN, OSL(_FUNCTION),____, ____, ____
|
||||
|
||||
[_DVORAK] =
|
||||
LAYOUT_wrapper(
|
||||
_____FN1__FN2__FN3__FN4___, TO(_GAMING),_____FN5__FN6__FN7__FN8___,
|
||||
KC_GRAVE,_1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, QUOT__COMM__DOT____P_____Y, _F_____G_____C_____R_____L, KC_BSLS,
|
||||
KC_ESC, _A_____O_____E_____U_____I, _D_____H_____T_____N_____S, KC_SLASH,
|
||||
KC_LALT, _EQL___Q_____J_____K_____X, _B_____M_____W_____V_____Z, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ________SPECIAL_L1________ ____, ____, ____, ____, ____, ____
|
||||
#define ________SPECIAL_L2________ RALT(KC_Q), RALT(KC_P), RALT(KC_5), RALT(KC_Y), RALT(KC_S), ____
|
||||
#define ________SPECIAL_L3________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
#define ________SPECIAL_R1________ ____, ____, ____, KC_UP, ____, ____
|
||||
#define ________SPECIAL_R2________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____
|
||||
#define ________SPECIAL_R3________ ____, ____, ____, ____, ____, QK_BOOT
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
_____FN1__FN2__FN3__FN4___, ____,_____FN5__FN6__FN7__FN8___,
|
||||
KC_GRAVE,_1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, ________SPECIAL_L1________, ________SPECIAL_R1________, KC_BSLS,
|
||||
KC_ESC, ________SPECIAL_L2________, ________SPECIAL_R2________, KC_SLASH,
|
||||
KC_LALT, ________SPECIAL_L3________, ________SPECIAL_R3________, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* FUNCTION
|
||||
***************************************************************************/
|
||||
#define _________FUNC_L0__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_L1__________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
|
||||
#define _________FUNC_L2__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_L3__________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
#define _________FUNC_R0__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_R1__________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
|
||||
#define _________FUNC_R2__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_R3__________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
[_FUNCTION] =
|
||||
LAYOUT_wrapper(
|
||||
_____FN1__FN2__FN3__FN4___, ____,_____FN5__FN6__FN7__FN8___,
|
||||
KC_GRAVE,_________FUNC_L0__________, _________FUNC_R0__________, UM_CURL,
|
||||
KC_TAB, _________FUNC_L1__________, _________FUNC_R1__________, KC_BSLS,
|
||||
KC_ESC, _________FUNC_L2__________, _________FUNC_R2__________, KC_SLASH,
|
||||
KC_LALT, _________FUNC_L3__________, _________FUNC_R3__________, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
* GAMING
|
||||
***************************************************************************/
|
||||
#define _Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T, ____
|
||||
#define _A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G, ____
|
||||
#define _Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B, ____
|
||||
|
||||
#define _Y_____U_____I_____O_____P ____, KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define _H_____J_____K_____L____SCLN ____, KC_H, KC_J, KC_K, KC_L, KC_SCLN
|
||||
#define _N_____M____COMM__DOT___SLSH ____, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
|
||||
#define ____GAMING_BOTTOM_LEFT____ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_ENT
|
||||
#define ____GAMING_BOTTOM_RIGHT___ OS_LSFT, KC_SPC, KC_SCLN, ____, ____, ____, ____
|
||||
|
||||
[_GAMING] =
|
||||
LAYOUT_wrapper(
|
||||
_____FN1__FN2__FN3__FN4___, TO(_DVORAK),_____FN5__FN6__FN7__FN8___,
|
||||
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, _Q_____W_____E_____R_____T, _Y_____U_____I_____O_____P, KC_BSLS,
|
||||
KC_LSFT,_A_____S_____D_____F_____G, _H_____J_____K_____L____SCLN, KC_SLASH,
|
||||
KC_LSFT,_Z_____X_____C_____V_____B, _N_____M____COMM__DOT___SLSH, KC_LCTL,
|
||||
____GAMING_BOTTOM_LEFT____, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,192,240,248,252, 60, 30, 30, 30, 30, 30,190,252,252,120, 0, 0, 30,254,254,254,192,224,224,240,240,120,124,124,124,252,252,248,248,240,224, 0, 0, 0, 0, 0,192,224,240,248,248,124,124, 60, 60,120,248,252,254,254,252, 0, 0, 0,254,254,248,248,252,126, 62, 62, 30, 30, 30, 60, 60,252,248,248,240,128, 0, 0,252,252,240,240,240,252,124, 62, 62, 30, 30, 30, 30, 30, 62,254,254,252,240,192, 2, 6, 62,254,252,248,224,192, 0, 0, 2, 2, 6, 6, 6, 14, 14,238,254,254,252, 56, 0, 0,
|
||||
0, 0, 0, 0, 0, 7, 31, 63, 63,127,124,240,224,224,224,193,193,129, 0, 0, 0, 0, 0,255,255,255, 63, 15, 3, 1, 0, 0, 0, 0, 0, 0, 1,255,255,255,255, 0, 0, 0,252,255,255,255, 7, 3, 0, 0, 0, 0, 0, 0, 3,255,255,255,255, 0, 0, 0,255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231,255,255,252, 0,255,255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,255,255,255,255,248, 0, 0, 0, 3, 31, 63,255,255,252,240,224,128,192,240,252,255,127, 15, 7, 0, 0, 0, 0,
|
||||
0, 0,128,192,128,128, 0, 0, 0, 0, 0, 0, 1, 3, 7,159,255,255,254,248, 0, 0,254,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0,255,255,255,255,240,192,128,128,128,192,192,240,248,255,255,255,255, 0, 0, 0,255,255,255,255,224,192,192,192,128,128,128,192,224,240,252,255,255,127, 31, 0,255,255,255,255,255,248,192,128,128,128,128,128,128,224,248,255,255,255,127, 63, 7, 0, 0, 0, 0, 0, 0, 1, 31,255,255,255,255,255,255, 31, 3, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 3, 7, 7, 15, 14, 30, 30, 30, 30, 30, 30, 30, 31, 15, 7, 3, 0, 16, 24, 31, 15, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 24, 31, 31, 15, 7, 0, 0, 0, 0, 3, 7, 15, 15, 31, 31, 31, 31, 31, 15, 15, 7, 7, 7, 15, 31, 28, 24, 0,255,255,255,255, 15, 15, 15, 15, 15, 15, 15, 15, 7, 7, 3, 3, 1, 0, 0, 0,255,255,255,255, 7, 7, 7, 15, 15, 15, 15, 15, 15, 7, 7, 7, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,248,255,255, 63, 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0,192, 96, 32, 48, 24, 8, 8, 8, 8, 24,240, 96, 0, 0, 0, 0, 0, 0, 0,224, 48, 24, 8, 8, 8, 8,200,120, 0, 0, 0, 0, 0, 0, 0, 0,192, 96, 48, 16, 48, 32,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,248,252,255,255, 31, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 16, 56, 84, 16, 16, 19, 30, 12, 12, 12, 14, 10, 10, 11, 25, 17, 16, 16, 16, 24, 8, 8, 8, 8, 9, 11, 14, 6, 6, 6, 15, 9, 8, 24, 16, 16, 16, 16, 16, 24, 8, 15, 12, 28, 52, 38, 35, 33, 48, 16, 16, 16, 16, 16, 16, 16, 24, 24, 28, 28, 30, 30, 31, 31, 31, 15, 15, 6, 0, 0, 0, 0, 0, 16, 24, 24, 28, 28, 28, 30, 30, 30, 31, 15, 15, 15, 6, 0, 0, 0, 0, 0, 0, 8, 12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
|
||||
if (is_keyboard_master()) {
|
||||
oled_write_P(PSTR(" "), false);
|
||||
|
||||
switch(get_highest_layer(layer_state)) {
|
||||
case _DVORAK:
|
||||
oled_write_P(PSTR("DVORAK <3\n"), false);
|
||||
break;
|
||||
case _GAMING:
|
||||
oled_write_P(PSTR("GAMING <3\n"), false);
|
||||
break;
|
||||
case _SPECIAL:
|
||||
oled_write_P(PSTR("SPECIAL\n"), false);
|
||||
break;
|
||||
case _FUNCTION:
|
||||
oled_write_P(PSTR("FUNCTION\n"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_P(PSTR("UNDEFINED S.O.S\n"), false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
render_logo();
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
bool RLFW = false;
|
||||
bool RLBO = false;
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING("}");
|
||||
} else {
|
||||
SEND_STRING("{");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
// Otherwise shift makes bracket into curly bracket
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING("]");
|
||||
} else {
|
||||
SEND_STRING("[");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING(")");
|
||||
} else {
|
||||
SEND_STRING("(");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev1/keymaps/default/readme.md
Normal file
1
qmk/snappy/rev1/keymaps/default/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# The default keymap for snappy
|
6
qmk/snappy/rev1/keymaps/qwertz/config.h
Normal file
6
qmk/snappy/rev1/keymaps/qwertz/config.h
Normal file
@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#define USE_SERIAL
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
214
qmk/snappy/rev1/keymaps/qwertz/keymap.c
Normal file
214
qmk/snappy/rev1/keymaps/qwertz/keymap.c
Normal file
@ -0,0 +1,214 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_QWERTZ,
|
||||
_SPECIAL,
|
||||
_FUNCTION,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC
|
||||
};
|
||||
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* QWERTZ
|
||||
***************************************************************************/
|
||||
#define Q____FN1__FN2__FN3__FN4___ KC_ESC, KC_MS_BTN3, KC_MS_BTN1, KC_MS_BTN2
|
||||
#define Q_FN5__FN6__FN7__FN8__FN9_ KC_F5, KC_F8, KC_F10, KC_F11, KC_F12
|
||||
|
||||
#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define _6_____7_____8_____9_____0 KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
|
||||
#define _Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T, ____
|
||||
#define _A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G, ____
|
||||
#define _Y_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B, ____
|
||||
|
||||
#define _Z_____U_____I_____O_____P ____, KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define _H_____J_____K_____L____OE ____, KC_H, KC_J, KC_K, KC_L, RALT(KC_P)
|
||||
#define _N_____M____COMM__DOT_DASH ____, KC_N, KC_M, KC_COMM, KC_DOT, KC_MINS
|
||||
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LGUI, KC_LALT, OSL(_SPECIAL), KC_MINS, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ OS_LSFT, KC_SPC, KC_COMM, OSL(_FUNCTION),____, ____, ____
|
||||
|
||||
[_QWERTZ] =
|
||||
LAYOUT_wrapper(
|
||||
Q____FN1__FN2__FN3__FN4___, Q_FN5__FN6__FN7__FN8__FN9_,
|
||||
KC_GRAVE,_1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSLS,
|
||||
KC_TAB, _Q_____W_____E_____R_____T, _Z_____U_____I_____O_____P, RALT(KC_Y),
|
||||
KC_ESC, _A_____S_____D_____F_____G, _H_____J_____K_____L____OE, RALT(KC_Q),
|
||||
KC_LSFT, _Y_____X_____C_____V_____B, _N_____M____COMM__DOT_DASH, KC_RSFT,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ________SPECIAL_L1________ ____, ____, ____, ____, ____, ____
|
||||
#define ________SPECIAL_L2________ RALT(KC_Q), RALT(KC_P), RALT(KC_5), RALT(KC_Y), RALT(KC_S), ____
|
||||
#define ________SPECIAL_L3________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
#define ________SPECIAL_R1________ ____, ____, ____, KC_UP, ____, ____
|
||||
#define ________SPECIAL_R2________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____
|
||||
#define ________SPECIAL_R3________ ____, ____, ____, ____, ____, QK_BOOT
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
Q____FN1__FN2__FN3__FN4___, Q_FN5__FN6__FN7__FN8__FN9_,
|
||||
KC_GRAVE,_1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, ________SPECIAL_L1________, ________SPECIAL_R1________, KC_BSLS,
|
||||
KC_ESC, ________SPECIAL_L2________, ________SPECIAL_R2________, KC_SLASH,
|
||||
KC_LALT, ________SPECIAL_L3________, ________SPECIAL_R3________, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* FUNCTION
|
||||
***************************************************************************/
|
||||
#define _________FUNC_L0__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_L1__________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
|
||||
#define _________FUNC_L2__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_L3__________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
#define _________FUNC_R0__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_R1__________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
|
||||
#define _________FUNC_R2__________ ____, ____, ____, ____, ____, ____
|
||||
#define _________FUNC_R3__________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
[_FUNCTION] =
|
||||
LAYOUT_wrapper(
|
||||
_____FN1__FN2__FN3__FN4___, ____,_____FN5__FN6__FN7__FN8___,
|
||||
KC_GRAVE,_________FUNC_L0__________, _________FUNC_R0__________, UM_CURL,
|
||||
KC_TAB, _________FUNC_L1__________, _________FUNC_R1__________, KC_BSLS,
|
||||
KC_ESC, _________FUNC_L2__________, _________FUNC_R2__________, KC_SLASH,
|
||||
KC_LALT, _________FUNC_L3__________, _________FUNC_R3__________, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0,192,240,248,252, 60, 30, 30, 30, 30, 30,190,252,252,120, 0, 0, 30,254,254,254,192,224,224,240,240,120,124,124,124,252,252,248,248,240,224, 0, 0, 0, 0, 0,192,224,240,248,248,124,124, 60, 60,120,248,252,254,254,252, 0, 0, 0,254,254,248,248,252,126, 62, 62, 30, 30, 30, 60, 60,252,248,248,240,128, 0, 0,252,252,240,240,240,252,124, 62, 62, 30, 30, 30, 30, 30, 62,254,254,252,240,192, 2, 6, 62,254,252,248,224,192, 0, 0, 2, 2, 6, 6, 6, 14, 14,238,254,254,252, 56, 0, 0,
|
||||
0, 0, 0, 0, 0, 7, 31, 63, 63,127,124,240,224,224,224,193,193,129, 0, 0, 0, 0, 0,255,255,255, 63, 15, 3, 1, 0, 0, 0, 0, 0, 0, 1,255,255,255,255, 0, 0, 0,252,255,255,255, 7, 3, 0, 0, 0, 0, 0, 0, 3,255,255,255,255, 0, 0, 0,255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,231,255,255,252, 0,255,255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,255,255,255,255,248, 0, 0, 0, 3, 31, 63,255,255,252,240,224,128,192,240,252,255,127, 15, 7, 0, 0, 0, 0,
|
||||
0, 0,128,192,128,128, 0, 0, 0, 0, 0, 0, 1, 3, 7,159,255,255,254,248, 0, 0,254,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0,255,255,255,255,240,192,128,128,128,192,192,240,248,255,255,255,255, 0, 0, 0,255,255,255,255,224,192,192,192,128,128,128,192,224,240,252,255,255,127, 31, 0,255,255,255,255,255,248,192,128,128,128,128,128,128,224,248,255,255,255,127, 63, 7, 0, 0, 0, 0, 0, 0, 1, 31,255,255,255,255,255,255, 31, 3, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 1, 3, 7, 7, 15, 14, 30, 30, 30, 30, 30, 30, 30, 31, 15, 7, 3, 0, 16, 24, 31, 15, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 24, 31, 31, 15, 7, 0, 0, 0, 0, 3, 7, 15, 15, 31, 31, 31, 31, 31, 15, 15, 7, 7, 7, 15, 31, 28, 24, 0,255,255,255,255, 15, 15, 15, 15, 15, 15, 15, 15, 7, 7, 3, 3, 1, 0, 0, 0,255,255,255,255, 7, 7, 7, 15, 15, 15, 15, 15, 15, 7, 7, 7, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,248,255,255, 63, 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0,192, 96, 32, 48, 24, 8, 8, 8, 8, 24,240, 96, 0, 0, 0, 0, 0, 0, 0,224, 48, 24, 8, 8, 8, 8,200,120, 0, 0, 0, 0, 0, 0, 0, 0,192, 96, 48, 16, 48, 32,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,248,252,255,255, 31, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 16, 56, 84, 16, 16, 19, 30, 12, 12, 12, 14, 10, 10, 11, 25, 17, 16, 16, 16, 24, 8, 8, 8, 8, 9, 11, 14, 6, 6, 6, 15, 9, 8, 24, 16, 16, 16, 16, 16, 24, 8, 15, 12, 28, 52, 38, 35, 33, 48, 16, 16, 16, 16, 16, 16, 16, 24, 24, 28, 28, 30, 30, 31, 31, 31, 15, 15, 6, 0, 0, 0, 0, 0, 16, 24, 24, 28, 28, 28, 30, 30, 30, 31, 15, 15, 15, 6, 0, 0, 0, 0, 0, 0, 8, 12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
|
||||
if (is_keyboard_master()) {
|
||||
oled_write_P(PSTR(" "), false);
|
||||
|
||||
switch(get_highest_layer(layer_state)) {
|
||||
case _DVORAK:
|
||||
oled_write_P(PSTR("DVORAK <3\n"), false);
|
||||
break;
|
||||
case _GAMING:
|
||||
oled_write_P(PSTR("GAMING <3\n"), false);
|
||||
break;
|
||||
case _SPECIAL:
|
||||
oled_write_P(PSTR("SPECIAL\n"), false);
|
||||
break;
|
||||
case _FUNCTION:
|
||||
oled_write_P(PSTR("FUNCTION\n"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_P(PSTR("UNDEFINED S.O.S\n"), false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
render_logo();
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
bool RLFW = false;
|
||||
bool RLBO = false;
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING("}");
|
||||
} else {
|
||||
SEND_STRING("{");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
// Otherwise shift makes bracket into curly bracket
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING("]");
|
||||
} else {
|
||||
SEND_STRING("[");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING(")");
|
||||
} else {
|
||||
SEND_STRING("(");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev1/keymaps/qwertz/readme.md
Normal file
1
qmk/snappy/rev1/keymaps/qwertz/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# A QWERTZ keymap for snappy
|
10
qmk/snappy/rev1/keymaps/tima/config.h
Normal file
10
qmk/snappy/rev1/keymaps/tima/config.h
Normal file
@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
// #define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
199
qmk/snappy/rev1/keymaps/tima/keymap.c
Normal file
199
qmk/snappy/rev1/keymaps/tima/keymap.c
Normal file
@ -0,0 +1,199 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum layer_names {
|
||||
_LAYER0,
|
||||
_LAYER1,
|
||||
_LAYER2,
|
||||
_LAYER3,
|
||||
};
|
||||
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
#define LAYOUT_wrapper( ... ) LAYOUT(__VA_ARGS__)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***********************************************************************************
|
||||
* DEFAULT
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (9)
|
||||
#define ___HSTG___F5___F9___HCM___MOUSE__ KC_BSLS, KC_F5, KC_F9, KC_EQL
|
||||
#define _TO3___PLAY___VOUP___VODO___MUTE_ TO(_LAYER3), KC_MPLY, KC_MUTE, KC_VOLU, KC_VOLD
|
||||
// R2 (14)
|
||||
#define __ESC__1_____2_____3_____4_____5__PLS__ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_RBRC
|
||||
#define __MIN__6_____7_____8_____9_____0__QST__ KC_SLSH, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
|
||||
// R3 (14)
|
||||
#define __TAB__Q_____W_____E_____R_____T_RIBR3_ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, RALT(KC_8)
|
||||
#define _LFBR3_Z_____U_____I_____O_____P___UE__ RALT(KC_9), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC
|
||||
// R4 (14)
|
||||
#define __ESC__A_____S_____D_____F_____G_RIBR1_ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8)
|
||||
#define _LFBR1_H_____J_____K_____L_____OE__AE__ S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
|
||||
// R5 (14)
|
||||
#define _SHFT__Y_____X_____C_____V_____B_RIBR2_ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, RALT(KC_7)
|
||||
#define _LFBR2_N_____M____COM___DOT___MIN__SHFT RALT(KC_0), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT
|
||||
// R6 (14)
|
||||
#define ______________BOTTOM_LEFT______________ KC_LALT, KC_NUBS, KC_LCTL, MO(_LAYER1), KC_LGUI, KC_LCTL, KC_RALT
|
||||
#define ______________BOTTOM_RIGHT_____________ KC_ENT, KC_SPC, KC_BSPC, MO(_LAYER2), KC_NO, KC_PSCR, OSM(MOD_LSFT)
|
||||
|
||||
[_LAYER0] =
|
||||
LAYOUT_wrapper(
|
||||
___HSTG___F5___F9___HCM___MOUSE__, _TO3___PLAY___VOUP___VODO___MUTE_,
|
||||
__ESC__1_____2_____3_____4_____5__PLS__, __MIN__6_____7_____8_____9_____0__QST__,
|
||||
__TAB__Q_____W_____E_____R_____T_RIBR3_, _LFBR3_Z_____U_____I_____O_____P___UE__,
|
||||
__ESC__A_____S_____D_____F_____G_RIBR1_, _LFBR1_H_____J_____K_____L_____OE__AE__,
|
||||
_SHFT__Y_____X_____C_____V_____B_RIBR2_, _LFBR2_N_____M____COM___DOT___MIN__SHFT,
|
||||
______________BOTTOM_LEFT______________, ______________BOTTOM_RIGHT_____________
|
||||
),
|
||||
|
||||
/***********************************************************************************
|
||||
* LAYER 1
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (9)
|
||||
#define ____________LAYER1_L1____________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define ____________LAYER1_R1____________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
|
||||
// R2 (14)
|
||||
#define _______________LAYER1_L2_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R2_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS
|
||||
// R3 (14)
|
||||
#define _______________LAYER1_L3_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R3_______________ KC_NO, KC_NO, KC_LBRC, KC_NO, KC_SCLN, KC_NO, KC_BSLS
|
||||
// R4 (14)
|
||||
#define _______________LAYER1_L4_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R4_______________ KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_SLSH
|
||||
// R5 (14)
|
||||
#define _______________LAYER1_L5_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R5_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_NO
|
||||
// R6 (14)
|
||||
#define _______________LAYER1_L6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define _______________LAYER1_R6_______________ KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
|
||||
[_LAYER1] =
|
||||
LAYOUT_wrapper(
|
||||
____________LAYER1_L1____________, ____________LAYER1_R1____________,
|
||||
_______________LAYER1_L2_______________, _______________LAYER1_R2_______________,
|
||||
_______________LAYER1_L3_______________, _______________LAYER1_R3_______________,
|
||||
_______________LAYER1_L4_______________, _______________LAYER1_R4_______________,
|
||||
_______________LAYER1_L5_______________, _______________LAYER1_R5_______________,
|
||||
_______________LAYER1_L6_______________, _______________LAYER1_R6_______________
|
||||
),
|
||||
|
||||
/***********************************************************************************
|
||||
* LAYER 2
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (9)
|
||||
#define ____________LAYER2_L1____________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define ____________LAYER2_R1____________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
|
||||
// R2 (14)
|
||||
#define _______________LAYER2_L2_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define _______________LAYER2_R2_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// R3 (14)
|
||||
#define _______________LAYER2_L3_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
|
||||
#define _______________LAYER2_R3_______________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS
|
||||
// R4 (14)
|
||||
#define _______________LAYER2_L4_______________ KC_TRNS, KC_QUOT, KC_MINS, KC_MS_BTN4, KC_MS_BTN5, KC_NO, KC_NO
|
||||
#define _______________LAYER2_R4_______________ KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, KC_NO, KC_SLSH
|
||||
// R5 (14)
|
||||
#define _______________LAYER2_L5_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER2_R5_______________ KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
// R6 (14)
|
||||
#define _______________LAYER2_L6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define _______________LAYER2_R6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
|
||||
[_LAYER2] =
|
||||
LAYOUT_wrapper(
|
||||
____________LAYER2_L1____________, ____________LAYER2_R1____________,
|
||||
_______________LAYER2_L2_______________, _______________LAYER2_R2_______________,
|
||||
_______________LAYER2_L3_______________, _______________LAYER2_R3_______________,
|
||||
_______________LAYER2_L4_______________, _______________LAYER2_R4_______________,
|
||||
_______________LAYER2_L5_______________, _______________LAYER2_R5_______________,
|
||||
_______________LAYER2_L6_______________, _______________LAYER2_R6_______________
|
||||
),
|
||||
|
||||
/***********************************************************************************
|
||||
* LAYER 3
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (9)
|
||||
#define ____________LAYER3_L1____________ KC_F1, KC_F2, KC_F3, KC_F4
|
||||
#define ____________LAYER3_R1____________ TO(_LAYER0), KC_NO, KC_NO, KC_NO, KC_DEL
|
||||
// R2 (14)
|
||||
#define _______________LAYER3_L2_______________ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6
|
||||
#define _______________LAYER3_R2_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
// R3 (14)
|
||||
#define _______________LAYER3_L3_______________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y
|
||||
#define _______________LAYER3_R3_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
// R4 (14)
|
||||
#define _______________LAYER3_L4_______________ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H
|
||||
#define _______________LAYER3_R4_______________ KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO
|
||||
// R5 (14)
|
||||
#define _______________LAYER3_L5_______________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N
|
||||
#define _______________LAYER3_R5_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO
|
||||
// R6 (14)
|
||||
#define _______________LAYER3_L6_______________ KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_TRNS
|
||||
#define _______________LAYER3_R6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
|
||||
[_LAYER3] =
|
||||
LAYOUT_wrapper(
|
||||
____________LAYER3_L1____________, ____________LAYER3_R1____________,
|
||||
_______________LAYER3_L2_______________, _______________LAYER3_R2_______________,
|
||||
_______________LAYER3_L3_______________, _______________LAYER3_R3_______________,
|
||||
_______________LAYER3_L4_______________, _______________LAYER3_R4_______________,
|
||||
_______________LAYER3_L5_______________, _______________LAYER3_R5_______________,
|
||||
_______________LAYER3_L6_______________, _______________LAYER3_R6_______________
|
||||
),
|
||||
};
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 192, 192, 224, 240, 240, 248, 248, 252, 252, 254, 254, 252, 252, 248, 248, 240, 224, 224, 192, 192, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 224, 240, 240, 248, 248, 252, 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 252, 252, 120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63, 127, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 63, 63, 31, 31, 143, 143, 135, 131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 129, 131, 195, 195, 227, 241, 241, 248, 248, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 252, 252, 248, 240, 240, 224, 224, 192, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60, 126, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63, 127, 255, 255, 255, 127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
|
||||
if (is_keyboard_master()) {
|
||||
oled_write_P(PSTR("\n "), false);
|
||||
switch(get_highest_layer(layer_state)) {
|
||||
case _LAYER0:
|
||||
oled_write_P(PSTR("Default\n"),false);
|
||||
break;
|
||||
case _LAYER1:
|
||||
oled_write_P(PSTR("Lower\n"),false);
|
||||
break;
|
||||
case _LAYER2:
|
||||
oled_write_P(PSTR("Upper\n"),false);
|
||||
break;
|
||||
case _LAYER3:
|
||||
oled_write_P(PSTR("Gaming\n"),false);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
// debug_enable=true;
|
||||
// debug_matrix=true;
|
||||
// debug_keyboard=true;
|
||||
// debug_mouse=true;
|
||||
}
|
1
qmk/snappy/rev1/keymaps/tima/readme.md
Normal file
1
qmk/snappy/rev1/keymaps/tima/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# A QWERTZ keymap for snappy
|
3
qmk/snappy/rev1/keymaps/tima/rules.mk
Normal file
3
qmk/snappy/rev1/keymaps/tima/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
# Special features
|
||||
MOUSEKEY_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
4
qmk/snappy/rev1/rev1.c
Normal file
4
qmk/snappy/rev1/rev1.c
Normal file
@ -0,0 +1,4 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "rev1.h"
|
38
qmk/snappy/rev1/rev1.h
Normal file
38
qmk/snappy/rev1/rev1.h
Normal file
@ -0,0 +1,38 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
|
||||
#define LAYOUT( \
|
||||
L02, L03, L04, L05, R06, R05, R04, R03, R02, \
|
||||
L10, L11, L12, L13, L14, L15, L16, R16, R15, R14, R13, R12, R11, R10, \
|
||||
L20, L21, L22, L23, L24, L25, L26, R26, R25, R24, R23, R22, R21, R20, \
|
||||
L30, L31, L32, L33, L34, L35, L36, R36, R35, R34, R33, R32, R31, R30, \
|
||||
L40, L41, L42, L43, L44, L45, L46, R46, R45, R44, R43, R42, R41, R40, \
|
||||
L50, L51, L52, L53, L54, L55, L56, R56, R55, R54, R53, R52, R51, R50 \
|
||||
) \
|
||||
{ \
|
||||
{ KC_NO, KC_NO, L02, L03, L04, L05, KC_NO }, \
|
||||
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||
{ L50, L51, L52, L53, L54, L55, L56 }, \
|
||||
{ KC_NO, KC_NO, R02, R03, R04, R05, R06 }, \
|
||||
{ R10, R11, R12, R13, R14, R15, R16 }, \
|
||||
{ R20, R21, R22, R23, R24, R25, R26 }, \
|
||||
{ R30, R31, R32, R33, R34, R35, R36 }, \
|
||||
{ R40, R41, R42, R43, R44, R45, R46 }, \
|
||||
{ R50, R51, R52, R53, R54, R55, R56 } \
|
||||
}
|
17
qmk/snappy/rev1/rules.mk
Normal file
17
qmk/snappy/rev1/rules.mk
Normal file
@ -0,0 +1,17 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
# MCU = liatris
|
||||
PIN_COMPATIBLE = elite_c
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
SPLIT_KEYBOARD = yes
|
||||
|
||||
# Oled support
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = ssd1306
|
||||
|
||||
# Trackball support (disable if not used)
|
||||
MOUSEKEY_ENABLE = no
|
||||
POINTING_DEVICE_ENABLE = no
|
||||
SPLIT_POINTING_ENABLE = no
|
||||
POINTING_DEVICE_DRIVER = pimoroni_trackball
|
68
qmk/snappy/rev2/config.h
Normal file
68
qmk/snappy/rev2/config.h
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 7
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
|
||||
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
|
||||
|
||||
/* COL2ROW, ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/*
|
||||
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||
*/
|
||||
#define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6
|
||||
// Set the handedness manually
|
||||
/* #define MASTER_LEFT */
|
||||
/* #define MASTER_RIGHT */
|
||||
|
||||
// Set the handedness by writing it to EEPROM
|
||||
// Plug in left side:
|
||||
// sudo make snappy/rev2:default:dfu-split-left
|
||||
// Plug in right side:
|
||||
// sudo make snappy/rev2:default:dfu-split-right
|
||||
#define EE_HANDS
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 15
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
//#define BOOTMAGIC_LITE_ROW 0
|
||||
//#define BOOTMAGIC_LITE_COLUMN 0
|
337
qmk/snappy/rev2/info.json
Normal file
337
qmk/snappy/rev2/info.json
Normal file
@ -0,0 +1,337 @@
|
||||
{
|
||||
"keyboard_name": "snappy v2",
|
||||
"manufacturer": "phga",
|
||||
"maintainer": "qhga",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"vid": "0xCAFE",
|
||||
"pid": "0x0002",
|
||||
"device_version": "2.0.0"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{
|
||||
"x": 3,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 5.375
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
4
qmk/snappy/rev2/keymaps/default/config.h
Normal file
4
qmk/snappy/rev2/keymaps/default/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
222
qmk/snappy/rev2/keymaps/default/keymap.c
Normal file
222
qmk/snappy/rev2/keymaps/default/keymap.c
Normal file
@ -0,0 +1,222 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_DVORAK,
|
||||
_SPECIAL,
|
||||
_GAMING,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC,
|
||||
UM_SPAM,
|
||||
};
|
||||
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
/* #define OS_LGUI OSM(MOD_LGUI) */
|
||||
/* #define OS_LALT OSM(MOD_LALT) */
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* DVORAK
|
||||
***************************************************************************/
|
||||
// R1 (10)
|
||||
#define D_FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define D_FN6__FN7__FN8__FN9__FN0_ TO(_GAMING), KC_F8, KC_F10, KC_F12, ____
|
||||
// R2 (14)
|
||||
#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define _6_____7_____8_____9_____0 KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
// R3 (14)
|
||||
#define QUOT__COMM__DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DEL
|
||||
#define _F_____G_____C_____R_____L KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L
|
||||
// R4 (14)
|
||||
#define _A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I, UM_PARN
|
||||
#define _D_____H_____T_____N_____S KC_COLN, KC_D, KC_H, KC_T, KC_N, KC_S
|
||||
// R5 (14)
|
||||
#define _EQL___Q_____J_____K_____X KC_EQL, KC_Q, KC_J, KC_K, KC_X, UM_PARN
|
||||
#define _B_____M_____W_____V_____Z UM_BRAC, KC_B, KC_M, KC_W, KC_V, KC_Z
|
||||
// R6 (14)
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LSFT, KC_LALT, OSL(_SPECIAL), KC_MINS, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ OS_LSFT, KC_SPC, KC_SCLN, ____, ____, ____, KC_LALT
|
||||
|
||||
[_DVORAK] =
|
||||
LAYOUT_wrapper(
|
||||
D_FN1__FN2__FN3__FN4__FN5_, D_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_GRAVE,_1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, QUOT__COMM__DOT____P_____Y, _F_____G_____C_____R_____L, KC_BSLS,
|
||||
KC_ESC, _A_____O_____E_____U_____I, _D_____H_____T_____N_____S, KC_SLASH,
|
||||
KC_LGUI, _EQL___Q_____J_____K_____X, _B_____M_____W_____V_____Z, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ________SPECIAL_L0________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
|
||||
#define ________SPECIAL_L1________ ____, ____, ____, ____, ____, ____
|
||||
#define ________SPECIAL_L2________ RALT(KC_Q), RALT(KC_P), RALT(KC_5), RALT(KC_Y), RALT(KC_S), ____
|
||||
#define ________SPECIAL_L3________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
#define ________SPECIAL_R0________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
|
||||
#define ________SPECIAL_R1________ ____, ____, ____, KC_UP, ____, ____
|
||||
#define ________SPECIAL_R2________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____
|
||||
#define ________SPECIAL_R3________ ____, ____, ____, ____, ____, QK_BOOT
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
D_FN1__FN2__FN3__FN4__FN5_, D_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_GRAVE,________SPECIAL_L0________, ________SPECIAL_R0________, UM_CURL,
|
||||
KC_TAB, ________SPECIAL_L1________, ________SPECIAL_R1________, KC_BSLS,
|
||||
KC_ESC, ________SPECIAL_L2________, ________SPECIAL_R2________, KC_SLASH,
|
||||
KC_LGUI, ________SPECIAL_L3________, ________SPECIAL_R3________, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* GAMING
|
||||
***************************************************************************/
|
||||
#define G_FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define G_FN6__FN7__FN8__FN9__FN0_ TO(_DVORAK), KC_F8, KC_F10, KC_F12, ____
|
||||
#define _Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T, ____
|
||||
#define _A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G, ____
|
||||
#define _Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B, ____
|
||||
|
||||
#define _Y_____U_____I_____O_____P ____, KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define _H_____J_____K_____L__SCLN ____, KC_H, KC_J, KC_K, KC_L, KC_SCLN
|
||||
#define _N_____M____COMM__DOT___UP ____, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP
|
||||
#define ____GAMING_BOTTOM_LEFT____ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_ENT
|
||||
#define ____GAMING_BOTTOM_RIGHT___ OS_LSFT, KC_SPC, KC_BSPC, UM_SPAM, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
|
||||
[_GAMING] =
|
||||
LAYOUT_wrapper(
|
||||
G_FN1__FN2__FN3__FN4__FN5_, G_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, _Q_____W_____E_____R_____T, _Y_____U_____I_____O_____P, KC_BSLS,
|
||||
KC_LSFT,_A_____S_____D_____F_____G, _H_____J_____K_____L__SCLN, KC_SLASH,
|
||||
KC_LSFT,_Z_____X_____C_____V_____B, _N_____M____COMM__DOT___UP, KC_LCTL,
|
||||
____GAMING_BOTTOM_LEFT____, ____GAMING_BOTTOM_RIGHT___
|
||||
),
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192,224,240,240,248,248,252,252,254,254,252,252,248,248,240,224,224,192,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64,224,240,240,248,248,252,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,252,252,120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63,127,127,255,255,255,255,255,255,255,255,255,255,255,127, 63, 63, 31, 31,143,143,135,131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,129,131,195,195,227,241,241,248,248,252,254,254,255,255,255,255,255,255,255,255,254,254,252,252,248,240,240,224,224,192,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60,126,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63,127,255,255,255,127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
if (is_keyboard_master()) {
|
||||
const char *layer_names[3]; // or { "DVORAK", "SPECIAL", "GAMING" };
|
||||
layer_names[_DVORAK] = "DVORAK";
|
||||
layer_names[_SPECIAL] = "SPECIAL";
|
||||
layer_names[_GAMING] = "GAMING";
|
||||
|
||||
render_logo();
|
||||
// Align right
|
||||
size_t layer = get_highest_layer(layer_state);
|
||||
oled_set_cursor(oled_max_chars() - 1 - strlen(layer_names[layer]), 1);
|
||||
oled_write(layer_names[layer], false);
|
||||
} else {
|
||||
// Center logo on second screen
|
||||
oled_set_cursor(6, 0);
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
/* render_logo(); */
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
bool RLFW = false;
|
||||
bool RLBO = false;
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_SPAM:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("k"SS_DELAY(80)"k");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING("}");
|
||||
} else {
|
||||
SEND_STRING("{");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
// Otherwise shift makes bracket into curly bracket
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING("]");
|
||||
} else {
|
||||
SEND_STRING("[");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING(")");
|
||||
} else {
|
||||
SEND_STRING("(");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev2/keymaps/default/readme.md
Normal file
1
qmk/snappy/rev2/keymaps/default/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# The default keymap for snappy
|
4
qmk/snappy/rev2/keymaps/qwertz/config.h
Normal file
4
qmk/snappy/rev2/keymaps/qwertz/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
181
qmk/snappy/rev2/keymaps/qwertz/keymap.c
Normal file
181
qmk/snappy/rev2/keymaps/qwertz/keymap.c
Normal file
@ -0,0 +1,181 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_QWERTZ,
|
||||
_SPECIAL,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC,
|
||||
};
|
||||
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* QWERTZ
|
||||
***************************************************************************/
|
||||
#define _FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define SP__1_____2_____3_____4_____5__SP QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define SP__Q_____W_____E_____R_____T__SP KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, UM_CURL
|
||||
#define SP__A_____S_____D_____F_____G__SP OS_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, UM_PARN
|
||||
#define SP__Y_____X_____C_____V_____B__SP OS_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NUBS
|
||||
|
||||
#define _FN6__FN7__FN8__FN9__FN0_ TO(_SPECIAL), KC_F8, KC_F10, KC_F12, KC_GRV
|
||||
#define SP__6_____7_____8_____9_____0__SP KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
|
||||
#define SP__Z_____U_____I_____O_____P__SP KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC
|
||||
#define SP__H_____J_____K_____L____OE__SP KC_NUHS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
|
||||
#define SP__N_____M____COMM__DOT_DASH__SP UM_BRAC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OS_LSFT
|
||||
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LALT, ____, OSL(_SPECIAL), KC_MINS, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ OS_LSFT, KC_SPC, KC_RALT, ____, ____, ____, KC_EQL
|
||||
|
||||
[_QWERTZ] =
|
||||
LAYOUT_wrapper(
|
||||
_FN1__FN2__FN3__FN4__FN5_, _FN6__FN7__FN8__FN9__FN0_,
|
||||
SP__1_____2_____3_____4_____5__SP, SP__6_____7_____8_____9_____0__SP,
|
||||
SP__Q_____W_____E_____R_____T__SP, SP__Z_____U_____I_____O_____P__SP,
|
||||
SP__A_____S_____D_____F_____G__SP, SP__H_____J_____K_____L____OE__SP,
|
||||
SP__Y_____X_____C_____V_____B__SP, SP__N_____M____COMM__DOT_DASH__SP,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ___________SPECIAL_L0___________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7
|
||||
#define ___________SPECIAL_L1___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_L2___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_L3___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_R0___________ KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14
|
||||
#define ___________SPECIAL_R1___________ ____, ____, ____, KC_UP, ____, ____, ____
|
||||
#define ___________SPECIAL_R2___________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____, ____
|
||||
#define ___________SPECIAL_R3___________ ____, ____, ____, ____, ____, QK_BOOT, ____
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
_FN1__FN2__FN3__FN4__FN5_, _FN6__FN7__FN8__FN9__FN0_,
|
||||
___________SPECIAL_L0___________, ___________SPECIAL_R0___________,
|
||||
___________SPECIAL_L1___________, ___________SPECIAL_R1___________,
|
||||
___________SPECIAL_L2___________, ___________SPECIAL_R2___________,
|
||||
___________SPECIAL_L3___________, ___________SPECIAL_R3___________,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192,224,240,240,248,248,252,252,254,254,252,252,248,248,240,224,224,192,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64,224,240,240,248,248,252,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,252,252,120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63,127,127,255,255,255,255,255,255,255,255,255,255,255,127, 63, 63, 31, 31,143,143,135,131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,129,131,195,195,227,241,241,248,248,252,254,254,255,255,255,255,255,255,255,255,254,254,252,252,248,240,240,224,224,192,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60,126,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63,127,255,255,255,127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
if (is_keyboard_master()) {
|
||||
const char *layer_names[3]; // or { "DVORAK", "SPECIAL", "GAMING" };
|
||||
layer_names[_QWERTZ] = "QWERTZ";
|
||||
layer_names[_SPECIAL] = "SPECIAL";
|
||||
|
||||
render_logo();
|
||||
// Align right
|
||||
size_t layer = get_highest_layer(layer_state);
|
||||
oled_set_cursor(oled_max_chars() - 1 - strlen(layer_names[layer]), 1);
|
||||
oled_write(layer_names[layer], false);
|
||||
} else {
|
||||
// Center logo on second screen
|
||||
oled_set_cursor(6, 0);
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
/* render_logo(); */
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_RALT("0"));
|
||||
} else {
|
||||
SEND_STRING(SS_RALT("7"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_RALT("9"));
|
||||
} else {
|
||||
SEND_STRING(SS_RALT("8"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_LSFT("9"));
|
||||
} else {
|
||||
SEND_STRING(SS_LSFT("8"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev2/keymaps/qwertz/readme.md
Normal file
1
qmk/snappy/rev2/keymaps/qwertz/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# The qwertz keymap for snappy
|
4
qmk/snappy/rev2/rev2.c
Normal file
4
qmk/snappy/rev2/rev2.c
Normal file
@ -0,0 +1,4 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "rev2.h"
|
38
qmk/snappy/rev2/rev2.h
Normal file
38
qmk/snappy/rev2/rev2.h
Normal file
@ -0,0 +1,38 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
|
||||
#define LAYOUT( \
|
||||
L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, \
|
||||
L10, L11, L12, L13, L14, L15, L16, R16, R15, R14, R13, R12, R11, R10, \
|
||||
L20, L21, L22, L23, L24, L25, L26, R26, R25, R24, R23, R22, R21, R20, \
|
||||
L30, L31, L32, L33, L34, L35, L36, R36, R35, R34, R33, R32, R31, R30, \
|
||||
L40, L41, L42, L43, L44, L45, L46, R46, R45, R44, R43, R42, R41, R40, \
|
||||
L50, L51, L52, L53, L54, L55, L56, R56, R55, R54, R53, R52, R51, R50 \
|
||||
) \
|
||||
{ \
|
||||
{ KC_NO, KC_NO, L02, L03, L04, L05, L06 }, \
|
||||
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||
{ L50, L51, L52, L53, L54, L55, L56 }, \
|
||||
{ KC_NO, KC_NO, R02, R03, R04, R05, R06 }, \
|
||||
{ R10, R11, R12, R13, R14, R15, R16 }, \
|
||||
{ R20, R21, R22, R23, R24, R25, R26 }, \
|
||||
{ R30, R31, R32, R33, R34, R35, R36 }, \
|
||||
{ R40, R41, R42, R43, R44, R45, R46 }, \
|
||||
{ R50, R51, R52, R53, R54, R55, R56 } \
|
||||
}
|
22
qmk/snappy/rev2/rules.mk
Normal file
22
qmk/snappy/rev2/rules.mk
Normal file
@ -0,0 +1,22 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
# MCU = liatris
|
||||
PIN_COMPATIBLE = elite_c
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Oled support
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = ssd1306
|
||||
SPLIT_KEYBOARD = yes
|
||||
|
||||
DEBOUNCE_TYPE = sym_eager_pk
|
||||
|
||||
# Dynamic Layout Configuration
|
||||
VIA_ENABLE = yes
|
||||
|
||||
# Trackball support (disable if not used)
|
||||
# MOUSEKEY_ENABLE = no
|
||||
# POINTING_DEVICE_ENABLE = no
|
||||
# SPLIT_POINTING_ENABLE = no
|
||||
# POINTING_DEVICE_DRIVER = pimoroni_trackball
|
9
qmk/snappy/rev3/config.h
Normal file
9
qmk/snappy/rev3/config.h
Normal file
@ -0,0 +1,9 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
// Set the handedness by writing it to EEPROM
|
||||
#define EE_HANDS
|
||||
/* #define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. */
|
||||
/* #define SERIAL_USART_TX_PIN GP0 // USART TX pin */
|
||||
/* #define SERIAL_USART_RX_PIN GP1 // USART RX pin */
|
711
qmk/snappy/rev3/info.json
Normal file
711
qmk/snappy/rev3/info.json
Normal file
@ -0,0 +1,711 @@
|
||||
{
|
||||
"keyboard_name": "snappy v3",
|
||||
"manufacturer": "phga",
|
||||
"maintainer": "qhga",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"vid": "0xCAFE",
|
||||
"pid": "0x1337",
|
||||
"device_version": "3.0.0",
|
||||
"polling_interval": 1
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"bootloader": "rp2040",
|
||||
"processor": "RP2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": [
|
||||
"GP28",
|
||||
"GP27",
|
||||
"GP26",
|
||||
"GP22",
|
||||
"GP20",
|
||||
"GP23",
|
||||
"GP21"
|
||||
],
|
||||
"rows": [
|
||||
"GP4",
|
||||
"GP5",
|
||||
"GP6",
|
||||
"GP7",
|
||||
"GP8",
|
||||
"GP9"
|
||||
]
|
||||
},
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"transport": {
|
||||
"protocol": "serial_usart"
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"nkro": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"backlight": false,
|
||||
"rgblight": false,
|
||||
"audio": false
|
||||
},
|
||||
"build": {
|
||||
"debounce_type": "sym_eager_pk"
|
||||
},
|
||||
"debounce": 15,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{
|
||||
"matrix": [
|
||||
0,
|
||||
3
|
||||
],
|
||||
"x": 3,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
6,
|
||||
3
|
||||
],
|
||||
"x": 11,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
0,
|
||||
2
|
||||
],
|
||||
"x": 2,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
0,
|
||||
4
|
||||
],
|
||||
"x": 4,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
0,
|
||||
5
|
||||
],
|
||||
"x": 5,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
0,
|
||||
6
|
||||
],
|
||||
"x": 6,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
6,
|
||||
0
|
||||
],
|
||||
"x": 8,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
6,
|
||||
1
|
||||
],
|
||||
"x": 9,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
6,
|
||||
2
|
||||
],
|
||||
"x": 10,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
6,
|
||||
4
|
||||
],
|
||||
"x": 12,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
1,
|
||||
3
|
||||
],
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
7,
|
||||
3
|
||||
],
|
||||
"x": 11,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
1,
|
||||
2
|
||||
],
|
||||
"x": 2,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
1,
|
||||
4
|
||||
],
|
||||
"x": 4,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
1,
|
||||
5
|
||||
],
|
||||
"x": 5,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
1,
|
||||
6
|
||||
],
|
||||
"x": 6,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
7,
|
||||
0
|
||||
],
|
||||
"x": 8,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
7,
|
||||
1
|
||||
],
|
||||
"x": 9,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
7,
|
||||
2
|
||||
],
|
||||
"x": 10,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
7,
|
||||
4
|
||||
],
|
||||
"x": 12,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"x": 0,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
1,
|
||||
1
|
||||
],
|
||||
"x": 1,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
7,
|
||||
5
|
||||
],
|
||||
"x": 13,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
7,
|
||||
6
|
||||
],
|
||||
"x": 14,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
2,
|
||||
3
|
||||
],
|
||||
"x": 3,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
8,
|
||||
3
|
||||
],
|
||||
"x": 11,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
2,
|
||||
2
|
||||
],
|
||||
"x": 2,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
2,
|
||||
4
|
||||
],
|
||||
"x": 4,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
2,
|
||||
5
|
||||
],
|
||||
"x": 5,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
2,
|
||||
6
|
||||
],
|
||||
"x": 6,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
8,
|
||||
0
|
||||
],
|
||||
"x": 8,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
8,
|
||||
1
|
||||
],
|
||||
"x": 9,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
8,
|
||||
2
|
||||
],
|
||||
"x": 10,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
8,
|
||||
4
|
||||
],
|
||||
"x": 12,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
2,
|
||||
0
|
||||
],
|
||||
"x": 0,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
2,
|
||||
1
|
||||
],
|
||||
"x": 1,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
8,
|
||||
5
|
||||
],
|
||||
"x": 13,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
8,
|
||||
6
|
||||
],
|
||||
"x": 14,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
3,
|
||||
3
|
||||
],
|
||||
"x": 3,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
9,
|
||||
3
|
||||
],
|
||||
"x": 11,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
3,
|
||||
2
|
||||
],
|
||||
"x": 2,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
3,
|
||||
4
|
||||
],
|
||||
"x": 4,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
3,
|
||||
5
|
||||
],
|
||||
"x": 5,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
3,
|
||||
6
|
||||
],
|
||||
"x": 6,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
9,
|
||||
0
|
||||
],
|
||||
"x": 8,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
9,
|
||||
1
|
||||
],
|
||||
"x": 9,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
9,
|
||||
2
|
||||
],
|
||||
"x": 10,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
9,
|
||||
4
|
||||
],
|
||||
"x": 12,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
3,
|
||||
0
|
||||
],
|
||||
"x": 0,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
3,
|
||||
1
|
||||
],
|
||||
"x": 1,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
9,
|
||||
5
|
||||
],
|
||||
"x": 13,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
9,
|
||||
6
|
||||
],
|
||||
"x": 14,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
4,
|
||||
3
|
||||
],
|
||||
"x": 3,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
10,
|
||||
3
|
||||
],
|
||||
"x": 11,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
4,
|
||||
2
|
||||
],
|
||||
"x": 2,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
4,
|
||||
4
|
||||
],
|
||||
"x": 4,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
4,
|
||||
5
|
||||
],
|
||||
"x": 5,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
4,
|
||||
6
|
||||
],
|
||||
"x": 6,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
10,
|
||||
0
|
||||
],
|
||||
"x": 8,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
10,
|
||||
1
|
||||
],
|
||||
"x": 9,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
10,
|
||||
2
|
||||
],
|
||||
"x": 10,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
10,
|
||||
4
|
||||
],
|
||||
"x": 12,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
4,
|
||||
0
|
||||
],
|
||||
"x": 0,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
4,
|
||||
1
|
||||
],
|
||||
"x": 1,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
10,
|
||||
5
|
||||
],
|
||||
"x": 13,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
10,
|
||||
6
|
||||
],
|
||||
"x": 14,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
5,
|
||||
3
|
||||
],
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
11,
|
||||
3
|
||||
],
|
||||
"x": 11,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
5,
|
||||
2
|
||||
],
|
||||
"x": 2,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
5,
|
||||
4
|
||||
],
|
||||
"x": 4,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
5,
|
||||
5
|
||||
],
|
||||
"x": 5,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
5,
|
||||
6
|
||||
],
|
||||
"x": 6,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
11,
|
||||
0
|
||||
],
|
||||
"x": 8,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
11,
|
||||
1
|
||||
],
|
||||
"x": 9,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
11,
|
||||
2
|
||||
],
|
||||
"x": 10,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
11,
|
||||
4
|
||||
],
|
||||
"x": 12,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
5,
|
||||
0
|
||||
],
|
||||
"x": 0,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
5,
|
||||
1
|
||||
],
|
||||
"x": 1,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
11,
|
||||
5
|
||||
],
|
||||
"x": 13,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"matrix": [
|
||||
11,
|
||||
6
|
||||
],
|
||||
"x": 14,
|
||||
"y": 5.375
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
4
qmk/snappy/rev3/keymaps/default/config.h
Normal file
4
qmk/snappy/rev3/keymaps/default/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
222
qmk/snappy/rev3/keymaps/default/keymap.c
Normal file
222
qmk/snappy/rev3/keymaps/default/keymap.c
Normal file
@ -0,0 +1,222 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_DVORAK,
|
||||
_SPECIAL,
|
||||
_GAMING,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC,
|
||||
UM_SPAM,
|
||||
};
|
||||
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
/* #define OS_LGUI OSM(MOD_LGUI) */
|
||||
/* #define OS_LALT OSM(MOD_LALT) */
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* DVORAK
|
||||
***************************************************************************/
|
||||
// R1 (10)
|
||||
#define D_FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define D_FN6__FN7__FN8__FN9__FN0_ TO(_GAMING), KC_F8, KC_F10, KC_F12, ____
|
||||
// R2 (14)
|
||||
#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define _6_____7_____8_____9_____0 KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
// R3 (14)
|
||||
#define QUOT__COMM__DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DEL
|
||||
#define _F_____G_____C_____R_____L KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L
|
||||
// R4 (14)
|
||||
#define _A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I, UM_PARN
|
||||
#define _D_____H_____T_____N_____S KC_COLN, KC_D, KC_H, KC_T, KC_N, KC_S
|
||||
// R5 (14)
|
||||
#define _EQL___Q_____J_____K_____X KC_EQL, KC_Q, KC_J, KC_K, KC_X, UM_PARN
|
||||
#define _B_____M_____W_____V_____Z UM_BRAC, KC_B, KC_M, KC_W, KC_V, KC_Z
|
||||
// R6 (14)
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LSFT, KC_LALT, OSL(_SPECIAL), KC_MINS, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ OS_LSFT, KC_SPC, KC_SCLN, ____, ____, ____, KC_LALT
|
||||
|
||||
[_DVORAK] =
|
||||
LAYOUT_wrapper(
|
||||
D_FN1__FN2__FN3__FN4__FN5_, D_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_GRAVE,_1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, QUOT__COMM__DOT____P_____Y, _F_____G_____C_____R_____L, KC_BSLS,
|
||||
KC_ESC, _A_____O_____E_____U_____I, _D_____H_____T_____N_____S, KC_SLASH,
|
||||
KC_LGUI, _EQL___Q_____J_____K_____X, _B_____M_____W_____V_____Z, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ________SPECIAL_L0________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
|
||||
#define ________SPECIAL_L1________ ____, ____, ____, ____, ____, ____
|
||||
#define ________SPECIAL_L2________ RALT(KC_Q), RALT(KC_P), RALT(KC_5), RALT(KC_Y), RALT(KC_S), ____
|
||||
#define ________SPECIAL_L3________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
#define ________SPECIAL_R0________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
|
||||
#define ________SPECIAL_R1________ ____, ____, ____, KC_UP, ____, ____
|
||||
#define ________SPECIAL_R2________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____
|
||||
#define ________SPECIAL_R3________ ____, ____, ____, ____, ____, QK_BOOT
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
D_FN1__FN2__FN3__FN4__FN5_, D_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_GRAVE,________SPECIAL_L0________, ________SPECIAL_R0________, UM_CURL,
|
||||
KC_TAB, ________SPECIAL_L1________, ________SPECIAL_R1________, KC_BSLS,
|
||||
KC_ESC, ________SPECIAL_L2________, ________SPECIAL_R2________, KC_SLASH,
|
||||
KC_LGUI, ________SPECIAL_L3________, ________SPECIAL_R3________, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* GAMING
|
||||
***************************************************************************/
|
||||
#define G_FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define G_FN6__FN7__FN8__FN9__FN0_ TO(_DVORAK), KC_F8, KC_F10, KC_F12, ____
|
||||
#define _Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T, ____
|
||||
#define _A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G, ____
|
||||
#define _Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B, ____
|
||||
|
||||
#define _Y_____U_____I_____O_____P ____, KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define _H_____J_____K_____L__SCLN ____, KC_H, KC_J, KC_K, KC_L, KC_SCLN
|
||||
#define _N_____M____COMM__DOT___UP ____, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP
|
||||
#define ____GAMING_BOTTOM_LEFT____ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_ENT
|
||||
#define ____GAMING_BOTTOM_RIGHT___ OS_LSFT, KC_SPC, KC_BSPC, UM_SPAM, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
|
||||
[_GAMING] =
|
||||
LAYOUT_wrapper(
|
||||
G_FN1__FN2__FN3__FN4__FN5_, G_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, _Q_____W_____E_____R_____T, _Y_____U_____I_____O_____P, KC_BSLS,
|
||||
KC_LSFT,_A_____S_____D_____F_____G, _H_____J_____K_____L__SCLN, KC_SLASH,
|
||||
KC_LSFT,_Z_____X_____C_____V_____B, _N_____M____COMM__DOT___UP, KC_LCTL,
|
||||
____GAMING_BOTTOM_LEFT____, ____GAMING_BOTTOM_RIGHT___
|
||||
),
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192,224,240,240,248,248,252,252,254,254,252,252,248,248,240,224,224,192,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64,224,240,240,248,248,252,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,252,252,120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63,127,127,255,255,255,255,255,255,255,255,255,255,255,127, 63, 63, 31, 31,143,143,135,131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,129,131,195,195,227,241,241,248,248,252,254,254,255,255,255,255,255,255,255,255,254,254,252,252,248,240,240,224,224,192,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60,126,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63,127,255,255,255,127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
if (is_keyboard_master()) {
|
||||
const char *layer_names[3]; // or { "DVORAK", "SPECIAL", "GAMING" };
|
||||
layer_names[_DVORAK] = "DVORAK";
|
||||
layer_names[_SPECIAL] = "SPECIAL";
|
||||
layer_names[_GAMING] = "GAMING";
|
||||
|
||||
render_logo();
|
||||
// Align right
|
||||
size_t layer = get_highest_layer(layer_state);
|
||||
oled_set_cursor(oled_max_chars() - 1 - strlen(layer_names[layer]), 1);
|
||||
oled_write(layer_names[layer], false);
|
||||
} else {
|
||||
// Center logo on second screen
|
||||
oled_set_cursor(6, 0);
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
/* render_logo(); */
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
bool RLFW = false;
|
||||
bool RLBO = false;
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_SPAM:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("k"SS_DELAY(80)"k");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING("}");
|
||||
} else {
|
||||
SEND_STRING("{");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
// Otherwise shift makes bracket into curly bracket
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING("]");
|
||||
} else {
|
||||
SEND_STRING("[");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING(")");
|
||||
} else {
|
||||
SEND_STRING("(");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev3/keymaps/default/readme.md
Normal file
1
qmk/snappy/rev3/keymaps/default/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# The default keymap for snappy
|
4
qmk/snappy/rev3/rev3.c
Normal file
4
qmk/snappy/rev3/rev3.c
Normal file
@ -0,0 +1,4 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "rev3.h"
|
6
qmk/snappy/rev3/rev3.h
Normal file
6
qmk/snappy/rev3/rev3.h
Normal file
@ -0,0 +1,6 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
8
qmk/snappy/rev3/rules.mk
Normal file
8
qmk/snappy/rev3/rules.mk
Normal file
@ -0,0 +1,8 @@
|
||||
# Split communication
|
||||
SERIAL_DRIVER = vendor
|
||||
# Oled support
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = ssd1306
|
||||
|
||||
# Dynamic Layout Configuration
|
||||
VIA_ENABLE = yes
|
49
qmk/snappy/rev3_5/config.h
Normal file
49
qmk/snappy/rev3_5/config.h
Normal file
@ -0,0 +1,49 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 7
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { GP4, GP5, GP6, GP7, GP8, GP9 }
|
||||
#define MATRIX_COL_PINS { GP28, GP27, GP26, GP22, GP20, GP23, GP21 }
|
||||
#define BOOTMAGIC_ROW 0
|
||||
#define BOOTMAGIC_COLUMN 6
|
||||
#define BOOTMAGIC_ROW_RIGHT 6
|
||||
#define BOOTMAGIC_COLUMN_RIGHT 6
|
||||
|
||||
/* COL2ROW, ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
// Set the handedness by writing it to EEPROM
|
||||
#define EE_HANDS
|
||||
// Used in ChibiOS/ARM boards that do not support VBUS detection (r2040 promicro, not liatris)
|
||||
#define SPLIT_USB_DETECT
|
||||
// ATTENTION: This has to be enabled on both halves so make sure you have a button on each
|
||||
// half (independently) to get the half into bootloader mode. (e.g. BOOTMAGIC keys for both halves)
|
||||
#define SPLIT_WATCHDOG_ENABLE
|
||||
#define SPLIT_WATCHDOG_TIMEOUT 3000
|
||||
// https://github.com/qmk/qmk_firmware/blob/master/docs/serial_driver.md#usart-full-duplex
|
||||
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
|
||||
#define SERIAL_USART_TX_PIN GP0 // USART TX pin
|
||||
#define SERIAL_USART_RX_PIN GP1 // USART RX pin
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 20
|
||||
#define USB_POLLING_INTERVAL_MS 1
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
337
qmk/snappy/rev3_5/info.json
Normal file
337
qmk/snappy/rev3_5/info.json
Normal file
@ -0,0 +1,337 @@
|
||||
{
|
||||
"keyboard_name": "snappy v3.5",
|
||||
"manufacturer": "phga",
|
||||
"maintainer": "qhga",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"vid": "0xCAFE",
|
||||
"pid": "0x1337",
|
||||
"device_version": "3.5.0"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{
|
||||
"x": 3,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0.125
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 1.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 1.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 2.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 2.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 3
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 3.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 3.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 4
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 4.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 4.375
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 11,
|
||||
"y": 5
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 5.125
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 1,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 13,
|
||||
"y": 5.375
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"y": 5.375
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
4
qmk/snappy/rev3_5/keymaps/default/config.h
Normal file
4
qmk/snappy/rev3_5/keymaps/default/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
222
qmk/snappy/rev3_5/keymaps/default/keymap.c
Normal file
222
qmk/snappy/rev3_5/keymaps/default/keymap.c
Normal file
@ -0,0 +1,222 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_DVORAK,
|
||||
_SPECIAL,
|
||||
_GAMING,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC,
|
||||
UM_SPAM,
|
||||
};
|
||||
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
/* #define OS_LGUI OSM(MOD_LGUI) */
|
||||
/* #define OS_LALT OSM(MOD_LALT) */
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* DVORAK
|
||||
***************************************************************************/
|
||||
// R1 (10)
|
||||
#define D_FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define D_FN6__FN7__FN8__FN9__FN0_ TO(_GAMING), KC_F8, KC_F10, KC_F12, ____
|
||||
// R2 (14)
|
||||
#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define _6_____7_____8_____9_____0 KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
// R3 (14)
|
||||
#define QUOT__COMM__DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DEL
|
||||
#define _F_____G_____C_____R_____L KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L
|
||||
// R4 (14)
|
||||
#define _A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I, UM_PARN
|
||||
#define _D_____H_____T_____N_____S KC_COLN, KC_D, KC_H, KC_T, KC_N, KC_S
|
||||
// R5 (14)
|
||||
#define _EQL___Q_____J_____K_____X KC_EQL, KC_Q, KC_J, KC_K, KC_X, UM_PARN
|
||||
#define _B_____M_____W_____V_____Z UM_BRAC, KC_B, KC_M, KC_W, KC_V, KC_Z
|
||||
// R6 (14)
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LSFT, KC_LALT, OSL(_SPECIAL), KC_MINS, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ OS_LSFT, KC_SPC, KC_SCLN, ____, ____, ____, KC_LALT
|
||||
|
||||
[_DVORAK] =
|
||||
LAYOUT_wrapper(
|
||||
D_FN1__FN2__FN3__FN4__FN5_, D_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_GRAVE,_1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, QUOT__COMM__DOT____P_____Y, _F_____G_____C_____R_____L, KC_BSLS,
|
||||
KC_ESC, _A_____O_____E_____U_____I, _D_____H_____T_____N_____S, KC_SLASH,
|
||||
KC_LGUI, _EQL___Q_____J_____K_____X, _B_____M_____W_____V_____Z, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ________SPECIAL_L0________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
|
||||
#define ________SPECIAL_L1________ ____, ____, ____, ____, ____, ____
|
||||
#define ________SPECIAL_L2________ RALT(KC_Q), RALT(KC_P), RALT(KC_5), RALT(KC_Y), RALT(KC_S), ____
|
||||
#define ________SPECIAL_L3________ ____, ____, ____, ____, ____, ____
|
||||
|
||||
#define ________SPECIAL_R0________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
|
||||
#define ________SPECIAL_R1________ ____, ____, ____, KC_UP, ____, ____
|
||||
#define ________SPECIAL_R2________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____
|
||||
#define ________SPECIAL_R3________ ____, ____, ____, ____, ____, QK_BOOT
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
D_FN1__FN2__FN3__FN4__FN5_, D_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_GRAVE,________SPECIAL_L0________, ________SPECIAL_R0________, UM_CURL,
|
||||
KC_TAB, ________SPECIAL_L1________, ________SPECIAL_R1________, KC_BSLS,
|
||||
KC_ESC, ________SPECIAL_L2________, ________SPECIAL_R2________, KC_SLASH,
|
||||
KC_LGUI, ________SPECIAL_L3________, ________SPECIAL_R3________, KC_LCTL,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* GAMING
|
||||
***************************************************************************/
|
||||
#define G_FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define G_FN6__FN7__FN8__FN9__FN0_ TO(_DVORAK), KC_F8, KC_F10, KC_F12, ____
|
||||
#define _Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T, ____
|
||||
#define _A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G, ____
|
||||
#define _Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B, ____
|
||||
|
||||
#define _Y_____U_____I_____O_____P ____, KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define _H_____J_____K_____L__SCLN ____, KC_H, KC_J, KC_K, KC_L, KC_SCLN
|
||||
#define _N_____M____COMM__DOT___UP ____, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP
|
||||
#define ____GAMING_BOTTOM_LEFT____ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_ENT
|
||||
#define ____GAMING_BOTTOM_RIGHT___ OS_LSFT, KC_SPC, KC_BSPC, UM_SPAM, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
|
||||
[_GAMING] =
|
||||
LAYOUT_wrapper(
|
||||
G_FN1__FN2__FN3__FN4__FN5_, G_FN6__FN7__FN8__FN9__FN0_,
|
||||
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, UM_CURL,
|
||||
KC_TAB, _Q_____W_____E_____R_____T, _Y_____U_____I_____O_____P, KC_BSLS,
|
||||
KC_LSFT,_A_____S_____D_____F_____G, _H_____J_____K_____L__SCLN, KC_SLASH,
|
||||
KC_LSFT,_Z_____X_____C_____V_____B, _N_____M____COMM__DOT___UP, KC_LCTL,
|
||||
____GAMING_BOTTOM_LEFT____, ____GAMING_BOTTOM_RIGHT___
|
||||
),
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192,224,240,240,248,248,252,252,254,254,252,252,248,248,240,224,224,192,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64,224,240,240,248,248,252,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,252,252,120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63,127,127,255,255,255,255,255,255,255,255,255,255,255,127, 63, 63, 31, 31,143,143,135,131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,129,131,195,195,227,241,241,248,248,252,254,254,255,255,255,255,255,255,255,255,254,254,252,252,248,240,240,224,224,192,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60,126,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63,127,255,255,255,127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
if (is_keyboard_master()) {
|
||||
const char *layer_names[3]; // or { "DVORAK", "SPECIAL", "GAMING" };
|
||||
layer_names[_DVORAK] = "DVORAK";
|
||||
layer_names[_SPECIAL] = "SPECIAL";
|
||||
layer_names[_GAMING] = "GAMING";
|
||||
|
||||
render_logo();
|
||||
// Align right
|
||||
size_t layer = get_highest_layer(layer_state);
|
||||
oled_set_cursor(oled_max_chars() - 1 - strlen(layer_names[layer]), 1);
|
||||
oled_write(layer_names[layer], false);
|
||||
} else {
|
||||
// Center logo on second screen
|
||||
oled_set_cursor(6, 0);
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
/* render_logo(); */
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
bool RLFW = false;
|
||||
bool RLBO = false;
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_SPAM:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("k"SS_DELAY(80)"k");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING("}");
|
||||
} else {
|
||||
SEND_STRING("{");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
// Otherwise shift makes bracket into curly bracket
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING("]");
|
||||
} else {
|
||||
SEND_STRING("[");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
SEND_STRING(")");
|
||||
} else {
|
||||
SEND_STRING("(");
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev3_5/keymaps/default/readme.md
Normal file
1
qmk/snappy/rev3_5/keymaps/default/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# The default keymap for snappy
|
2
qmk/snappy/rev3_5/keymaps/default/rules.mk
Normal file
2
qmk/snappy/rev3_5/keymaps/default/rules.mk
Normal file
@ -0,0 +1,2 @@
|
||||
EXTRAKEY_ENABLE = no
|
||||
MOUSEKEY_ENABLE = no
|
4
qmk/snappy/rev3_5/keymaps/maza/config.h
Normal file
4
qmk/snappy/rev3_5/keymaps/maza/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
181
qmk/snappy/rev3_5/keymaps/maza/keymap.c
Normal file
181
qmk/snappy/rev3_5/keymaps/maza/keymap.c
Normal file
@ -0,0 +1,181 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_QWERTZ,
|
||||
_SPECIAL,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC,
|
||||
};
|
||||
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* QWERTZ
|
||||
***************************************************************************/
|
||||
#define _FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define SP__1_____2_____3_____4_____5__SP QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define SP__Q_____W_____E_____R_____T__SP KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, UM_CURL
|
||||
#define SP__A_____S_____D_____F_____G__SP KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, UM_PARN
|
||||
#define SP__Y_____X_____C_____V_____B__SP OS_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NUBS
|
||||
|
||||
#define _FN6__FN7__FN8__FN9__FN0_ KC_ESC, KC_F8, KC_F10, KC_F12, KC_GRV
|
||||
#define SP__6_____7_____8_____9_____0__SP KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
|
||||
#define SP__Z_____U_____I_____O_____P__SP KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC
|
||||
#define SP__H_____J_____K_____L____OE__SP KC_NUHS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
|
||||
#define SP__N_____M____COMM__DOT_DASH__SP UM_BRAC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OS_LSFT
|
||||
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LALT, KC_LALT, OSL(_SPECIAL), OS_LSFT, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ KC_BSPC, KC_SPC, KC_RALT, ____, ____, ____, KC_EQL
|
||||
|
||||
[_QWERTZ] =
|
||||
LAYOUT_wrapper(
|
||||
_FN1__FN2__FN3__FN4__FN5_, _FN6__FN7__FN8__FN9__FN0_,
|
||||
SP__1_____2_____3_____4_____5__SP, SP__6_____7_____8_____9_____0__SP,
|
||||
SP__Q_____W_____E_____R_____T__SP, SP__Z_____U_____I_____O_____P__SP,
|
||||
SP__A_____S_____D_____F_____G__SP, SP__H_____J_____K_____L____OE__SP,
|
||||
SP__Y_____X_____C_____V_____B__SP, SP__N_____M____COMM__DOT_DASH__SP,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ___________SPECIAL_L0___________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7
|
||||
#define ___________SPECIAL_L1___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_L2___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_L3___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_R0___________ KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14
|
||||
#define ___________SPECIAL_R1___________ ____, ____, ____, KC_UP, ____, ____, ____
|
||||
#define ___________SPECIAL_R2___________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____, ____
|
||||
#define ___________SPECIAL_R3___________ ____, ____, ____, ____, ____, QK_BOOT, ____
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
_FN1__FN2__FN3__FN4__FN5_, _FN6__FN7__FN8__FN9__FN0_,
|
||||
___________SPECIAL_L0___________, ___________SPECIAL_R0___________,
|
||||
___________SPECIAL_L1___________, ___________SPECIAL_R1___________,
|
||||
___________SPECIAL_L2___________, ___________SPECIAL_R2___________,
|
||||
___________SPECIAL_L3___________, ___________SPECIAL_R3___________,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192,224,240,240,248,248,252,252,254,254,252,252,248,248,240,224,224,192,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64,224,240,240,248,248,252,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,252,252,120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63,127,127,255,255,255,255,255,255,255,255,255,255,255,127, 63, 63, 31, 31,143,143,135,131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,129,131,195,195,227,241,241,248,248,252,254,254,255,255,255,255,255,255,255,255,254,254,252,252,248,240,240,224,224,192,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60,126,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63,127,255,255,255,127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
if (is_keyboard_master()) {
|
||||
const char *layer_names[3]; // or { "DVORAK", "SPECIAL", "GAMING" };
|
||||
layer_names[_QWERTZ] = "QWERTZ";
|
||||
layer_names[_SPECIAL] = "SPECIAL";
|
||||
|
||||
render_logo();
|
||||
// Align right
|
||||
size_t layer = get_highest_layer(layer_state);
|
||||
oled_set_cursor(oled_max_chars() - 1 - strlen(layer_names[layer]), 1);
|
||||
oled_write(layer_names[layer], false);
|
||||
} else {
|
||||
// Center logo on second screen
|
||||
oled_set_cursor(6, 0);
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
/* render_logo(); */
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_RALT("0"));
|
||||
} else {
|
||||
SEND_STRING(SS_RALT("7"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_RALT("9"));
|
||||
} else {
|
||||
SEND_STRING(SS_RALT("8"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_LSFT("9"));
|
||||
} else {
|
||||
SEND_STRING(SS_LSFT("8"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev3_5/keymaps/maza/readme.md
Normal file
1
qmk/snappy/rev3_5/keymaps/maza/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# Mazas qwertz keymap for snappy
|
4
qmk/snappy/rev3_5/keymaps/qwertz/config.h
Normal file
4
qmk/snappy/rev3_5/keymaps/qwertz/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
181
qmk/snappy/rev3_5/keymaps/qwertz/keymap.c
Normal file
181
qmk/snappy/rev3_5/keymaps/qwertz/keymap.c
Normal file
@ -0,0 +1,181 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_QWERTZ,
|
||||
_SPECIAL,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
UM_PARN,
|
||||
UM_CURL,
|
||||
UM_BRAC,
|
||||
};
|
||||
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define ____ _______
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***************************************************************************
|
||||
* QWERTZ
|
||||
***************************************************************************/
|
||||
#define _FN1__FN2__FN3__FN4__FN5_ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define SP__1_____2_____3_____4_____5__SP QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL
|
||||
#define SP__Q_____W_____E_____R_____T__SP KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, UM_CURL
|
||||
#define SP__A_____S_____D_____F_____G__SP OS_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, UM_PARN
|
||||
#define SP__Y_____X_____C_____V_____B__SP OS_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NUBS
|
||||
|
||||
#define _FN6__FN7__FN8__FN9__FN0_ TO(_SPECIAL), KC_F8, KC_F10, KC_F12, KC_GRV
|
||||
#define SP__6_____7_____8_____9_____0__SP KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
|
||||
#define SP__Z_____U_____I_____O_____P__SP KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC
|
||||
#define SP__H_____J_____K_____L____OE__SP KC_NUHS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
|
||||
#define SP__N_____M____COMM__DOT_DASH__SP UM_BRAC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OS_LSFT
|
||||
|
||||
#define _______BOTTOM_LEFT________ KC_LCTL, KC_LALT, ____, OSL(_SPECIAL), KC_MINS, KC_BSPC, KC_ENT
|
||||
#define _______BOTTOM_RIGHT_______ OS_LSFT, KC_SPC, KC_RALT, ____, ____, ____, KC_EQL
|
||||
|
||||
[_QWERTZ] =
|
||||
LAYOUT_wrapper(
|
||||
_FN1__FN2__FN3__FN4__FN5_, _FN6__FN7__FN8__FN9__FN0_,
|
||||
SP__1_____2_____3_____4_____5__SP, SP__6_____7_____8_____9_____0__SP,
|
||||
SP__Q_____W_____E_____R_____T__SP, SP__Z_____U_____I_____O_____P__SP,
|
||||
SP__A_____S_____D_____F_____G__SP, SP__H_____J_____K_____L____OE__SP,
|
||||
SP__Y_____X_____C_____V_____B__SP, SP__N_____M____COMM__DOT_DASH__SP,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
/***************************************************************************
|
||||
* SPECIAL
|
||||
***************************************************************************/
|
||||
|
||||
#define ___________SPECIAL_L0___________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7
|
||||
#define ___________SPECIAL_L1___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_L2___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_L3___________ ____, ____, ____, ____, ____, ____, ____
|
||||
#define ___________SPECIAL_R0___________ KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14
|
||||
#define ___________SPECIAL_R1___________ ____, ____, ____, KC_UP, ____, ____, ____
|
||||
#define ___________SPECIAL_R2___________ ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, ____, ____
|
||||
#define ___________SPECIAL_R3___________ ____, ____, ____, ____, ____, QK_BOOT, ____
|
||||
|
||||
[_SPECIAL]=
|
||||
LAYOUT_wrapper(
|
||||
_FN1__FN2__FN3__FN4__FN5_, _FN6__FN7__FN8__FN9__FN0_,
|
||||
___________SPECIAL_L0___________, ___________SPECIAL_R0___________,
|
||||
___________SPECIAL_L1___________, ___________SPECIAL_R1___________,
|
||||
___________SPECIAL_L2___________, ___________SPECIAL_R2___________,
|
||||
___________SPECIAL_L3___________, ___________SPECIAL_R3___________,
|
||||
_______BOTTOM_LEFT________, _______BOTTOM_RIGHT_______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,192,224,240,240,248,248,252,252,254,254,252,252,248,248,240,224,224,192,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 64,224,240,240,248,248,252,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,252,252,120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63,127,127,255,255,255,255,255,255,255,255,255,255,255,127, 63, 63, 31, 31,143,143,135,131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,129,131,195,195,227,241,241,248,248,252,254,254,255,255,255,255,255,255,255,255,254,254,252,252,248,240,240,224,224,192,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60,126,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63,127,255,255,255,127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
#endif
|
||||
if (is_keyboard_master()) {
|
||||
const char *layer_names[3]; // or { "DVORAK", "SPECIAL", "GAMING" };
|
||||
layer_names[_QWERTZ] = "QWERTZ";
|
||||
layer_names[_SPECIAL] = "SPECIAL";
|
||||
|
||||
render_logo();
|
||||
// Align right
|
||||
size_t layer = get_highest_layer(layer_state);
|
||||
oled_set_cursor(oled_max_chars() - 1 - strlen(layer_names[layer]), 1);
|
||||
oled_write(layer_names[layer], false);
|
||||
} else {
|
||||
// Center logo on second screen
|
||||
oled_set_cursor(6, 0);
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
/* render_logo(); */
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
//debug_mouse=true;
|
||||
|
||||
}
|
||||
|
||||
uint8_t mods;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
mods = get_mods();
|
||||
switch (keycode) {
|
||||
case UM_CURL:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_RALT("0"));
|
||||
} else {
|
||||
SEND_STRING(SS_RALT("7"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_BRAC:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_RALT("9"));
|
||||
} else {
|
||||
SEND_STRING(SS_RALT("8"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case UM_PARN:
|
||||
if (record->event.pressed) {
|
||||
if (mods & MOD_MASK_SHIFT) {
|
||||
del_mods(MOD_MASK_SHIFT);
|
||||
SEND_STRING(SS_LSFT("9"));
|
||||
} else {
|
||||
SEND_STRING(SS_LSFT("8"));
|
||||
}
|
||||
set_mods(mods);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
1
qmk/snappy/rev3_5/keymaps/qwertz/readme.md
Normal file
1
qmk/snappy/rev3_5/keymaps/qwertz/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# The qwertz keymap for snappy
|
4
qmk/snappy/rev3_5/keymaps/tima/config.h
Normal file
4
qmk/snappy/rev3_5/keymaps/tima/config.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_UPDATE_INTERVAL 10
|
183
qmk/snappy/rev3_5/keymaps/tima/keymap.c
Normal file
183
qmk/snappy/rev3_5/keymaps/tima/keymap.c
Normal file
@ -0,0 +1,183 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_LAYER0,
|
||||
_LAYER1,
|
||||
_LAYER2,
|
||||
_LAYER3,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
};
|
||||
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
|
||||
#define OS_LSFT OSM(MOD_LSFT)
|
||||
/* #define OS_LGUI OSM(MOD_LGUI) */
|
||||
/* #define OS_LALT OSM(MOD_LALT) */
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/***********************************************************************************
|
||||
* DEFAULT - _LAYER0
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (10)
|
||||
#define ___HASH___F5___F9___NONE___QUOT__ KC_BSLS, KC_F5, KC_F9, KC_NO, KC_EQL
|
||||
#define _TO3___PLAY___MUTE___VOUP___VOLD_ TO(_LAYER3), KC_MPLY, KC_MUTE, KC_VOLU, KC_VOLD
|
||||
// R2 (14)
|
||||
#define __ESC__1_____2_____3_____4_____5__PLS__ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_RBRC
|
||||
#define __MIN__6_____7_____8_____9_____0__QST__ KC_SLSH, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
|
||||
// R3 (14)
|
||||
#define __TAB__Q_____W_____E_____R_____T_RIBR3_ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, RALT(KC_8)
|
||||
#define _LFBR3_Z_____U_____I_____O_____P___UE__ RALT(KC_9), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC
|
||||
// R4 (14)
|
||||
#define __ESC__A_____S_____D_____F_____G_RIBR1_ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8)
|
||||
#define _LFBR1_H_____J_____K_____L_____OE__AE__ S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
|
||||
// R5 (14)
|
||||
#define _SHFT__Y_____X_____C_____V_____B_RIBR2_ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, RALT(KC_7)
|
||||
#define _LFBR2_N_____M____COM___DOT___MIN__SHFT RALT(KC_0), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT
|
||||
// R6 (14)
|
||||
#define ______________BOTTOM_LEFT______________ KC_LALT, KC_NUBS, KC_LCTL, MO(_LAYER1), KC_LGUI, KC_LCTL, KC_RALT
|
||||
#define ______________BOTTOM_RIGHT_____________ KC_ENT, KC_SPC, KC_BSPC, MO(_LAYER2), KC_DEL, KC_PSCR, OSM(MOD_LSFT)
|
||||
|
||||
[_LAYER0] = LAYOUT_wrapper(___HASH___F5___F9___NONE___QUOT__, _TO3___PLAY___MUTE___VOUP___VOLD_, __ESC__1_____2_____3_____4_____5__PLS__, __MIN__6_____7_____8_____9_____0__QST__, __TAB__Q_____W_____E_____R_____T_RIBR3_, _LFBR3_Z_____U_____I_____O_____P___UE__, __ESC__A_____S_____D_____F_____G_RIBR1_, _LFBR1_H_____J_____K_____L_____OE__AE__, _SHFT__Y_____X_____C_____V_____B_RIBR2_, _LFBR2_N_____M____COM___DOT___MIN__SHFT, ______________BOTTOM_LEFT______________, ______________BOTTOM_RIGHT_____________),
|
||||
|
||||
/***********************************************************************************
|
||||
* LOWER - _LAYER1
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (10)
|
||||
#define ____________LAYER1_L1____________ QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define ____________LAYER1_R1____________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// R2 (14)
|
||||
#define _______________LAYER1_L2_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R2_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS
|
||||
// R3 (14)
|
||||
#define _______________LAYER1_L3_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R3_______________ KC_NO, KC_NO, KC_LBRC, KC_NO, KC_SCLN, KC_NO, KC_BSLS
|
||||
// R4 (14)
|
||||
#define _______________LAYER1_L4_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R4_______________ KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_SLSH
|
||||
// R5 (14)
|
||||
#define _______________LAYER1_L5_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER1_R5_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_NO
|
||||
// R6 (14)
|
||||
#define _______________LAYER1_L6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define _______________LAYER1_R6_______________ KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
|
||||
[_LAYER1] = LAYOUT_wrapper(____________LAYER1_L1____________, ____________LAYER1_R1____________, _______________LAYER1_L2_______________, _______________LAYER1_R2_______________, _______________LAYER1_L3_______________, _______________LAYER1_R3_______________, _______________LAYER1_L4_______________, _______________LAYER1_R4_______________, _______________LAYER1_L5_______________, _______________LAYER1_R5_______________, _______________LAYER1_L6_______________, _______________LAYER1_R6_______________),
|
||||
|
||||
/***********************************************************************************
|
||||
* UPPER - _LAYER2
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (10)
|
||||
#define ____________LAYER2_L1____________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define ____________LAYER2_R1____________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
|
||||
// R2 (14)
|
||||
#define _______________LAYER2_L2_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define _______________LAYER2_R2_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// R3 (14)
|
||||
#define _______________LAYER2_L3_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
|
||||
#define _______________LAYER2_R3_______________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSLS
|
||||
// R4 (14)
|
||||
#define _______________LAYER2_L4_______________ KC_TRNS, KC_QUOT, KC_MINS, KC_MS_BTN4, KC_MS_BTN5, KC_NO, KC_NO
|
||||
#define _______________LAYER2_R4_______________ KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, KC_NO, KC_SLSH
|
||||
// R5 (14)
|
||||
#define _______________LAYER2_L5_______________ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define _______________LAYER2_R5_______________ KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
// R6 (14)
|
||||
#define _______________LAYER2_L6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
#define _______________LAYER2_R6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
|
||||
[_LAYER2] = LAYOUT_wrapper(____________LAYER2_L1____________, ____________LAYER2_R1____________, _______________LAYER2_L2_______________, _______________LAYER2_R2_______________, _______________LAYER2_L3_______________, _______________LAYER2_R3_______________, _______________LAYER2_L4_______________, _______________LAYER2_R4_______________, _______________LAYER2_L5_______________, _______________LAYER2_R5_______________, _______________LAYER2_L6_______________, _______________LAYER2_R6_______________),
|
||||
|
||||
/***********************************************************************************
|
||||
* Gaming - _LAYER3
|
||||
***********************************************************************************/
|
||||
|
||||
// R1 (10)
|
||||
#define ____________LAYER3_L1____________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define ____________LAYER3_R1____________ TO(_LAYER0), KC_NO, KC_NO, KC_TRNS, KC_DEL
|
||||
// R2 (14)
|
||||
#define _______________LAYER3_L2_______________ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6
|
||||
#define _______________LAYER3_R2_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
// R3 (14)
|
||||
#define _______________LAYER3_L3_______________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y
|
||||
#define _______________LAYER3_R3_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
// R4 (14)
|
||||
#define _______________LAYER3_L4_______________ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H
|
||||
#define _______________LAYER3_R4_______________ KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO
|
||||
// R5 (14)
|
||||
#define _______________LAYER3_L5_______________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N
|
||||
#define _______________LAYER3_R5_______________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO
|
||||
// R6 (14)
|
||||
#define _______________LAYER3_L6_______________ KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_TRNS
|
||||
#define _______________LAYER3_R6_______________ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
|
||||
[_LAYER3] = LAYOUT_wrapper(____________LAYER3_L1____________, ____________LAYER3_R1____________, _______________LAYER3_L2_______________, _______________LAYER3_R2_______________, _______________LAYER3_L3_______________, _______________LAYER3_R3_______________, _______________LAYER3_L4_______________, _______________LAYER3_R4_______________, _______________LAYER3_L5_______________, _______________LAYER3_R5_______________, _______________LAYER3_L6_______________, _______________LAYER3_R6_______________),
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
/* uprintf("matrix_scan_user\n"); */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM raw_logo[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 192, 192, 224, 240, 240, 248, 248, 252, 252, 254, 254, 252, 252, 248, 248, 240, 224, 224, 192, 192, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 224, 240, 240, 248, 248, 252, 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 252, 252, 120, 56, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 1, 3, 3, 7, 7, 15, 31, 31, 63, 63, 127, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 63, 63, 31, 31, 143, 143, 135, 131, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 129, 131, 195, 195, 227, 241, 241, 248, 248, 252, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 252, 252, 248, 240, 240, 224, 224, 192, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 60, 60, 126, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 127, 63, 63, 31, 31, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 7, 15, 15, 31, 31, 63, 63, 127, 255, 255, 255, 127, 63, 63, 31, 31, 15, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
# ifdef CONSOLE_ENABLE
|
||||
/* uprintf("oled_task_user\n"); */
|
||||
# endif
|
||||
if (is_keyboard_master()) {
|
||||
oled_write_P(PSTR("\n "), false);
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _LAYER0:
|
||||
oled_write_P(PSTR("Default\n"), false);
|
||||
break;
|
||||
case _LAYER1:
|
||||
oled_write_P(PSTR("Lower\n"), false);
|
||||
break;
|
||||
case _LAYER2:
|
||||
oled_write_P(PSTR("Upper\n"), false);
|
||||
break;
|
||||
case _LAYER3:
|
||||
oled_write_P(PSTR("Gaming\n"), false);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// Center logo on second screen
|
||||
oled_set_cursor(6, 0);
|
||||
render_logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
oled_init(OLED_ROTATION_180);
|
||||
/* render_logo(); */
|
||||
// Customise these values to desired behaviour
|
||||
/* debug_enable=true; */
|
||||
/* debug_matrix=true; */
|
||||
/* debug_keyboard=true; */
|
||||
// debug_mouse=true;
|
||||
}
|
1
qmk/snappy/rev3_5/keymaps/tima/readme.md
Normal file
1
qmk/snappy/rev3_5/keymaps/tima/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# A QWERTZ keymap for snappy
|
3
qmk/snappy/rev3_5/keymaps/tima/rules.mk
Normal file
3
qmk/snappy/rev3_5/keymaps/tima/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
# Special features
|
||||
MOUSEKEY_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
4
qmk/snappy/rev3_5/rev3_5.c
Normal file
4
qmk/snappy/rev3_5/rev3_5.c
Normal file
@ -0,0 +1,4 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "rev3_5.h"
|
38
qmk/snappy/rev3_5/rev3_5.h
Normal file
38
qmk/snappy/rev3_5/rev3_5.h
Normal file
@ -0,0 +1,38 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
|
||||
#define LAYOUT( \
|
||||
L02, L03, L04, L05, L06, R06, R05, R04, R03, R02, \
|
||||
L10, L11, L12, L13, L14, L15, L16, R16, R15, R14, R13, R12, R11, R10, \
|
||||
L20, L21, L22, L23, L24, L25, L26, R26, R25, R24, R23, R22, R21, R20, \
|
||||
L30, L31, L32, L33, L34, L35, L36, R36, R35, R34, R33, R32, R31, R30, \
|
||||
L40, L41, L42, L43, L44, L45, L46, R46, R45, R44, R43, R42, R41, R40, \
|
||||
L50, L51, L52, L53, L54, L55, L56, R56, R55, R54, R53, R52, R51, R50 \
|
||||
) \
|
||||
{ \
|
||||
{ KC_NO, KC_NO, L02, L03, L04, L05, L06 }, \
|
||||
{ L10, L11, L12, L13, L14, L15, L16 }, \
|
||||
{ L20, L21, L22, L23, L24, L25, L26 }, \
|
||||
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
||||
{ L40, L41, L42, L43, L44, L45, L46 }, \
|
||||
{ L50, L51, L52, L53, L54, L55, L56 }, \
|
||||
{ KC_NO, KC_NO, R02, R03, R04, R05, R06 }, \
|
||||
{ R10, R11, R12, R13, R14, R15, R16 }, \
|
||||
{ R20, R21, R22, R23, R24, R25, R26 }, \
|
||||
{ R30, R31, R32, R33, R34, R35, R36 }, \
|
||||
{ R40, R41, R42, R43, R44, R45, R46 }, \
|
||||
{ R50, R51, R52, R53, R54, R55, R56 } \
|
||||
}
|
15
qmk/snappy/rev3_5/rules.mk
Normal file
15
qmk/snappy/rev3_5/rules.mk
Normal file
@ -0,0 +1,15 @@
|
||||
MCU = RP2040
|
||||
BOOTLOADER = rp2040
|
||||
SERIAL_DRIVER = vendor
|
||||
# Key is defined in config.h
|
||||
BOOTMAGIC_ENABLE = yes
|
||||
|
||||
# Oled support
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = ssd1306
|
||||
SPLIT_KEYBOARD = yes
|
||||
|
||||
DEBOUNCE_TYPE = sym_eager_pk
|
||||
|
||||
# Dynamic Layout Configuration
|
||||
VIA_ENABLE = yes
|
3
qmk/snappy/rules.mk
Normal file
3
qmk/snappy/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
# Current default revision
|
||||
# NOTE: Additional mk rules in the specific folders (rev1, ...)
|
||||
DEFAULT_FOLDER = snappy/rev3_5
|
4
qmk/snappy/snappy.c
Normal file
4
qmk/snappy/snappy.c
Normal file
@ -0,0 +1,4 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "snappy.h"
|
16
qmk/snappy/snappy.h
Normal file
16
qmk/snappy/snappy.h
Normal file
@ -0,0 +1,16 @@
|
||||
// Copyright 2022 Philip Gaber (@qhga)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef KEYBOARD_snappy_rev1
|
||||
#include "rev1.h"
|
||||
#elif KEYBOARD_snappy_rev2
|
||||
#include "rev2.h"
|
||||
#elif KEYBOARD_snappy_rev3
|
||||
#include "rev3.h"
|
||||
#elif KEYBOARD_snappy_rev3_5
|
||||
#include "rev3_5.h"
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user