Skip to content

Instantly share code, notes, and snippets.

@sehrgut
Last active November 14, 2023 19:28
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sehrgut/622edc0f0e3a75bcff367c4cff2a436a to your computer and use it in GitHub Desktop.
Save sehrgut/622edc0f0e3a75bcff367c4cff2a436a to your computer and use it in GitHub Desktop.
Libra Mini VIA and Vial keyboard definitions

Libra Mini (putative) rev. 2 VIA and Vial keyboard definitions

The VIA and Vial keyboard definitions distributed by mysterious Gdrive links have several issues. First, there seems to have been an undocumented hardware revision since the circulating VIA definition was created, in which the productId was changed from 0x4C24 to 0x4C23. As well, the VIA v2 format was trivially updatable to VIA v3 compatibility. The attached files can be used for the putative rev. 2 boards with VIA and Vial respectively.

Board Revisions

  • rev. 1 productId=0x4C24 Likely first, as this revision is in older copies of the VIA definition.
  • rev. 2 productId=0x4C23 Likely second, as this revision is in all known released copies of the Vial definition, later than the earliest VIA definition; and as well represents boards currently shipping from AliExpress.

Troubleshooting

If your board is not detectable with these keyboard definitions, try changing the productId field to 0x4C24 or checking your USB bus to confirm the vendorId and productId of your board. If you discover a new productId in the wild, please submit an update to this repository.

License

No license or warranty is expressed or implied. It seems unlikely that the original files are currently being distributed by any original rightsholder, and distributing updated files that function with the boards currently being distributed with (and sometimes without) the unusable files is fair use in the United States as these files are 1) offered non-commercially and with no expectation of profit by both their originators and this repository, 2) factual and non-creative, as they simply express the physical layout of the product being configured, and 3) has no negative impact on commercial sales of the product, but rather, by extending the utility of the product, has a positive impact on its commercial sales.

Keywords: libra mini json, libra mini via, libra mini vial

{
"name": "Libra Mini rev. 2",
"vendorId": "0x4C4D",
"productId": "0x4C23",
"matrix": { "rows": 5, "cols": 14 },
"layouts": {
"labels": [
"Split Backspace",
"Joystick"
],
"keymap": [
[{"x":12.5},"0,11\n\n\n0,1","3,11\n\n\n0,1"],
[{"y":0.25,"x":0.25},"0,0","0,1",{"x":9.25},"0,10",{"w":2},"0,11\n\n\n0,0"],
[{"x":0.13,"w":1.25},"1,0","1,1",{"x":9.45},"1,10",{"x":0,"w":1.75},"1,11"],
[{"w":1.75},"2,0","2,1",{"x":8.75},"2,10","2,11",{"w":1.25},"3,10"],
[{"ry":4.5,"y":-0.25,"x":0.13,"w":1.25},"3,0","3,1",{"x":9.77,"w":1.25},"3,8\n\n\n1,0",{"x":0,"w":1.25},"3,9\n\n\n1,0"],
[{"y":0.25,"x":12.63,"w2":1.5,"h2":0.1,"x2":-0.5},"3,8\n\n\n1,1","3,9\n\n\n1,1"],
[{"y":-0.9,"x":11.5,"w":0.5,"h":0.5},"4,3\n\n\n1,1"],
[{"y":-0.5,"x":11,"w":0.5,"h":0.5},"4,6\n\n\n1,1",{"w":0.5,"h":0.5},"4,4\n\n\n1,1",{"w":0.5,"h":0.5},"4,7\n\n\n1,1"],
[{"r":8,"rx":1.25,"ry":1,"x":1.25},"0,2","0,3","0,4","0,5"],
[{"x":1.63},"1,2","1,3","1,4","1,5"],
[{"x":2},"2,2","2,3","2,4","2,5"],
[{"x":2.75,"w":1.25},"3,3",{"w":2},"3,4"],
[{"r":-8,"rx":9.75,"ry":6.75,"y":-5.25,"x":-1.75},"0,6","0,7","0,8","0,9"],
[{"x":-1.62},"1,6","1,7","1,8","1,9"],
[{"x":-2},"2,6","2,7","2,8","2,9"],
[{"x":-2,"w":2.25},"3,6",{"w":1.25},"3,7\n\n\n1,0"],
[{"y":0.25,"x":0.25},"3,7\n\n\n1,1"]
]
}
}
{
"name": "Libra Mini rev. 2",
"vendorId": "0x4C4D",
"productId": "0x4C23",
"vendorIdBk": "0x4C4D",
"productIdBk": "0x4C23",
"lighting": "none",
"matrix": { "rows": 5, "cols": 14 },
"layouts": {
"labels": [
"Split Backspace",
"Joystick"
],
"keymap": [
[{"x":12.5},"0,11\n\n\n0,1","3,11\n\n\n0,1"],
[{"y":0.25,"x":0.25},"0,0","0,1",{"x":9.25},"0,10",{"w":2},"0,11\n\n\n0,0"],
[{"x":0.13,"w":1.25},"1,0","1,1",{"x":9.45},"1,10",{"x":0,"w":1.75},"1,11"],
[{"w":1.75},"2,0","2,1",{"x":8.75},"2,10","2,11",{"w":1.25},"3,10"],
[{"ry":4.5,"y":-0.25,"x":0.13,"w":1.25},"3,0","3,1",{"x":9.77,"w":1.25},"3,8\n\n\n1,0",{"x":0,"w":1.25},"3,9\n\n\n1,0"],
[{"y":0.25,"x":12.63,"w2":1.5,"h2":0.1,"x2":-0.5},"3,8\n\n\n1,1","3,9\n\n\n1,1"],
[{"y":-0.9,"x":11.5,"w":0.5,"h":0.5},"4,3\n\n\n1,1"],
[{"y":-0.5,"x":11,"w":0.5,"h":0.5},"4,6\n\n\n1,1",{"w":0.5,"h":0.5},"4,4\n\n\n1,1",{"w":0.5,"h":0.5},"4,7\n\n\n1,1"],
[{"r":8,"rx":1.25,"ry":1,"x":1.25},"0,2","0,3","0,4","0,5"],
[{"x":1.63},"1,2","1,3","1,4","1,5"],
[{"x":2},"2,2","2,3","2,4","2,5"],
[{"x":2.75,"w":1.25},"3,3",{"w":2},"3,4"],
[{"r":-8,"rx":9.75,"ry":6.75,"y":-5.25,"x":-1.75},"0,6","0,7","0,8","0,9"],
[{"x":-1.62},"1,6","1,7","1,8","1,9"],
[{"x":-2},"2,6","2,7","2,8","2,9"],
[{"x":-2,"w":2.25},"3,6",{"w":1.25},"3,7\n\n\n1,0"],
[{"y":0.25,"x":0.25},"3,7\n\n\n1,1"]
],
"keymap2": [
[{"x":12.5},"0,11\n\n\n0,1","3,11\n\n\n0,1"],
[{"y":0.25,"x":0.25},"0,0","0,1",{"x":9.25},"0,10",{"w":2},"0,11\n\n\n0,0"],
[{"x":0.13,"w":1.25},"1,0","1,1",{"x":9.45},"1,10",{"x":0,"w":1.75},"1,11"],
[{"w":1.75},"2,0","2,1",{"x":8.75},"2,10","2,11",{"w":1.25},"3,10"],
[{"ry":4.5,"y":-0.25,"x":0.13,"w":1.25},"3,0","3,1",{"x":9.77,"w":1.25},"3,8\n\n\n1,0",{"x":0,"w":1.25},"3,9\n\n\n1,0"],
[{"y":0.25,"x":12.63,"w2":1.5,"h2":0.1,"x2":-0.5},"3,8\n\n\n1,1","3,9\n\n\n1,1"],
[{"y":-0.9,"x":11.5,"w":0.5,"h":0.5},"4,3\n\n\n1,1"],
[{"y":-0.75,"x":11,"w":0.5,"h":0.5},"4,6\n\n\n1,1",{"x":0.5,"w":0.5,"h":0.5},"4,7\n\n\n1,1"],
[{"y":-0.75,"x":11.5,"w":0.5,"h":0.5},"4,4\n\n\n1,1"],
[{"r":8,"rx":1.25,"ry":1,"x":1.25},"0,2","0,3","0,4","0,5"],
[{"x":1.63},"1,2","1,3","1,4","1,5"],
[{"x":2},"2,2","2,3","2,4","2,5"],
[{"x":2.75,"w":1.25},"3,3",{"w":2},"3,4"],
[{"r":-8,"rx":9.75,"ry":6.75,"y":-5.25,"x":-1.75},"0,6","0,7","0,8","0,9"],
[{"x":-1.62},"1,6","1,7","1,8","1,9"],
[{"x":-2},"2,6","2,7","2,8","2,9"],
[{"x":-2,"w":2.25},"3,6",{"w":1.25},"3,7\n\n\n1,0"],
[{"y":0.25,"x":0.25},"3,7\n\n\n1,1"]
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment