Skip to content

Instantly share code, notes, and snippets.

@mendhak
Last active December 23, 2025 07:49
Show Gist options
  • Select an option

  • Save mendhak/f920d5fbe653ddceef3130a50915d744 to your computer and use it in GitHub Desktop.

Select an option

Save mendhak/f920d5fbe653ddceef3130a50915d744 to your computer and use it in GitHub Desktop.
Getting the AULA F65 to work with VIA app - README + JSON layout

I bought an Aula F65 off Ali Express. By default it didn't work with VIA. I had to download the Aula F65 firmware first.

The firmware was a single EXE which I'd run which gave almost no information about what it was doing except that it had set my keyboard to "Code Version 0000". Rerunning the exe multiple times would result in different codes, including a "Code Version 1005" which made the keyboard unresponsive, bit of a scary moment. I ran the exe again and it set the keyboard back to "Code Version 0000".

image

Once the keyboard was at "Code Version 0000", it was then VIA compatible. I reconnected the keyboard, then on the UseVIA website, I was able to authorize the keyboard and it showed up in the keyboard selection list.

But that wasn't enough, even after authorizing, the keyboard layout didn't show up. To get that working, I had to download the Aula F65 V2 JSON. Then in the settings of the UseVIA app, I toggled "Show Design Tab". This resulted in a new tab, and in that tab, I uploaded the Aula F65 V2 JSON that I had just downloaded from Epomaker's website.

image

Then the layout appeared and I was able to start reprogramming the keys.

Immediately there was another issue, the Alt and Windows keys were flipped around in that default layout, so I had to redo them in my layout.

Finally the layout I've gone for:

image image
  • Make the Win and Alt to reflect the real world position (Win, then Alt)
  • Fn + Delete = printscreen
  • Fn + Up/Down arrow = Volume up/down
  • Fn + Left/Right arrow = Mute/Play
  • Fn + D = Macro 1 = {+KC_LALT}{KC_P0}{KC_P1}{KC_P5}{KC_P1}{-KC_LALT} = em dash
  • Fn + G = Macro 2 = {+KC_LALT}{KC_P0}{KC_P1}{KC_P6}{KC_P3}{-KC_LALT} = £ pound sterling

Bug I've noticed: When I save the custom JSON, then reload the custom JSON in VIA, the macros aren't reloaded, they come up empty.

{
"name": "AULA F65",
"vendorProductId": 629801228,
"macros": [
"",
"{+KC_LALT}{KC_P0}{KC_P1}{KC_P5}{KC_P1}{-KC_LALT}",
"{+KC_LALT}{KC_P0}{KC_P1}{KC_P6}{KC_P3}{-KC_LALT}",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"layers": [
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_ESC",
"KC_1",
"KC_2",
"KC_3",
"KC_4",
"KC_5",
"KC_6",
"KC_7",
"KC_8",
"KC_9",
"KC_0",
"KC_MINS",
"KC_EQL",
"KC_BSPC",
"KC_NO",
"KC_DEL",
"KC_TAB",
"KC_Q",
"KC_W",
"KC_E",
"KC_R",
"KC_T",
"KC_Y",
"KC_U",
"KC_I",
"KC_O",
"KC_P",
"KC_LBRC",
"KC_RBRC",
"KC_BSLS",
"KC_NO",
"KC_PGUP",
"KC_CAPS",
"KC_A",
"KC_S",
"KC_D",
"KC_F",
"KC_G",
"KC_H",
"KC_J",
"KC_K",
"KC_L",
"KC_SCLN",
"KC_QUOT",
"KC_BSLS",
"KC_ENT",
"KC_NO",
"KC_PGDN",
"KC_LSFT",
"KC_Z",
"KC_X",
"KC_C",
"KC_V",
"KC_B",
"KC_N",
"KC_M",
"KC_COMM",
"KC_DOT",
"KC_SLSH",
"KC_RO",
"KC_NUBS",
"KC_RSFT",
"KC_UP",
"KC_END",
"KC_LCTL",
"KC_LGUI",
"KC_LALT",
"KC_NO",
"KC_NO",
"KC_SPC",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_RALT",
"MO(1)",
"KC_NO",
"KC_NO",
"KC_LEFT",
"KC_DOWN",
"KC_RGHT"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_GRV",
"KC_F1",
"KC_F2",
"KC_F3",
"KC_F4",
"KC_F5",
"KC_F6",
"KC_F7",
"KC_F8",
"KC_F9",
"KC_F10",
"KC_F11",
"KC_F12",
"CUSTOM(15)",
"KC_NO",
"KC_INS",
"CUSTOM(7)",
"CUSTOM(1)",
"CUSTOM(23)",
"CUSTOM(2)",
"CUSTOM(3)",
"CUSTOM(4)",
"KC_NO",
"KC_PSCR",
"KC_SLCK",
"KC_PAUS",
"KC_NO",
"KC_NO",
"KC_NO",
"CUSTOM(6)",
"KC_NO",
"KC_VOLU",
"KC_NO",
"KC_NO",
"CUSTOM(19)",
"CUSTOM(20)",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_VOLD",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"CUSTOM(17)",
"CUSTOM(21)",
"KC_APP",
"CUSTOM(27)",
"CUSTOM(26)",
"CUSTOM(25)",
"KC_NO",
"KC_NO",
"CUSTOM(24)",
"CUSTOM(8)",
"KC_HOME",
"KC_NO",
"CUSTOM(5)",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_RCTL",
"MO(0)",
"KC_NO",
"KC_NO",
"CUSTOM(11)",
"CUSTOM(9)",
"CUSTOM(10)"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_ESC",
"KC_1",
"KC_2",
"KC_3",
"KC_4",
"KC_5",
"KC_6",
"KC_7",
"KC_8",
"KC_9",
"KC_0",
"KC_MINS",
"KC_EQL",
"KC_BSPC",
"KC_NO",
"KC_DEL",
"KC_TAB",
"KC_Q",
"KC_W",
"KC_E",
"KC_R",
"KC_T",
"KC_Y",
"KC_U",
"KC_I",
"KC_O",
"KC_P",
"KC_LBRC",
"KC_RBRC",
"KC_BSLS",
"KC_NO",
"KC_PGUP",
"KC_CAPS",
"KC_A",
"KC_S",
"KC_D",
"KC_F",
"KC_G",
"KC_H",
"KC_J",
"KC_K",
"KC_L",
"KC_SCLN",
"KC_QUOT",
"KC_BSLS",
"KC_ENT",
"KC_NO",
"KC_PGDN",
"KC_LSFT",
"KC_Z",
"KC_X",
"KC_C",
"KC_V",
"KC_B",
"KC_N",
"KC_M",
"KC_COMM",
"KC_DOT",
"KC_SLSH",
"KC_RO",
"KC_NUBS",
"KC_RSFT",
"KC_UP",
"KC_END",
"KC_LCTL",
"KC_LGUI",
"KC_LALT",
"KC_NO",
"KC_NO",
"KC_SPC",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_RALT",
"MO(3)",
"KC_NO",
"KC_NO",
"KC_LEFT",
"KC_DOWN",
"KC_RGHT"
],
[
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_GRV",
"KC_F1",
"KC_F2",
"KC_F3",
"KC_F4",
"KC_F5",
"KC_F6",
"KC_F7",
"KC_F8",
"KC_F9",
"KC_F10",
"KC_F11",
"KC_F12",
"CUSTOM(15)",
"KC_NO",
"KC_PSCR",
"CUSTOM(7)",
"CUSTOM(1)",
"CUSTOM(23)",
"CUSTOM(2)",
"CUSTOM(3)",
"CUSTOM(4)",
"KC_NO",
"KC_PSCR",
"KC_SLCK",
"KC_PAUS",
"KC_NO",
"KC_NO",
"KC_NO",
"CUSTOM(6)",
"KC_NO",
"KC_VOLU",
"KC_NO",
"KC_NO",
"CUSTOM(19)",
"MACRO(1)",
"KC_NO",
"MACRO(2)",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_VOLD",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"CUSTOM(17)",
"CUSTOM(21)",
"KC_APP",
"CUSTOM(27)",
"CUSTOM(26)",
"CUSTOM(25)",
"KC_NO",
"KC_NO",
"CUSTOM(24)",
"KC_VOLU",
"KC_HOME",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_RCTL",
"MO(2)",
"KC_NO",
"KC_NO",
"KC_MUTE",
"KC_VOLD",
"KC_MPLY"
]
],
"encoders": []
}
{
"name": "AULA F65",
"vendorId": "0x258A",
"productId": "0x010C",
"customKeycodes": [
{"name": "USB MODE", "title": "Keyboard USB", "shortName": "USB"},
{"name": "2.4G MODE", "title": "Keyboard data output 2.4G", "shortName": "2.4G"},
{"name": "Bluetooth 1", "title": "Bluetooth working connection 1", "shortName": "BT1"},
{"name": "Bluetooth 2", "title": "Bluetooth working connection 2", "shortName": "BT2"},
{"name": "Bluetooth 3", "title": "Bluetooth working connection 3", "shortName": "BT3"},
{"name": "Lock Win", "title": "Lock Win", "shortName": "LockWin"},
{"name": "RGB Mode Cycle", "title": "RGB Mode change cycle", "shortName": "RGB Mode"},
{"name": "RGB Color Cycle", "title": "RGB Color change cycle", "shortName": "RGB Color"},
{"name": "Brigth Inc", "title": "Brigth Inc", "shortName": "Br +"},
{"name": "Brigth Dec", "title": "Brigth Dec", "shortName": "Br -"},
{"name": "Speed Inc", "title": "Speed Inc", "shortName": "Sp +"},
{"name": "Speed Dec", "title": "Speed Dec", "shortName": "Sp -"},
{"name": "Game Mode", "title": "WORD IN Game Mode", "shortName": "Game"},
{"name": "Game Mode Record", "title": "GameMode Record", "shortName": "REC"},
{"name": "RGB OFF/ON", "title": "RGB OFF/ON", "shortName": "OFF/ON"},
{"name": "Keyboard Reset", "title": "Keyboard Reset", "shortName": "Reset"},
{"name": "EMI Test", "title": "EMI Test", "shortName": "EMI"},
{"name": "Battery View", "title": "Battery View", "shortName": "Battery View"},
{"name": "WIN MAC", "title": "WIN OR MAC", "shortName": "WinMac"},
{"name": "WIN", "title": "WIN", "shortName": "Win"},
{"name": "MAC", "title": "MAC", "shortName": "Mac"},
{"name": "NKRO Mode", "title": "NKRO Mode", "shortName": "NKRO"},
{"name": "White Mode", "title": "White Mode", "shortName": "White"},
{"name": "Swap ASDW", "title": "Swap ASDW Mode", "shortName": "Swap ASDW"},
{"name": "Side Mode", "title": "Side Mode", "shortName": "Side Mode"},
{"name": "Side Color", "title": "Side Color", "shortName": "Side Color"},
{"name": "Side Bright", "title": "Side Bright", "shortName": "Side Bright"},
{"name": "Side Speed", "title": "Side Speed", "shortName": "Side Speed"}
],
"matrix": { "rows": 6, "cols": 16 },
"layouts": {
"keymap": [
[
],
[
{ "w":1.0, "h":1.0, "x":0.0 }, "1,0",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,1",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,2",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,3",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,4",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,5",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,6",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,7",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,8",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,9",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,10",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,11",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,12",
{ "w":2.0, "h":1.0, "x":0.0 }, "1,13",
{ "w":1.0, "h":1.0, "x":0.0 }, "1,15"
],
[
{ "w":1.5, "h":1.0, "x":0.0 }, "2,0",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,1",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,2",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,3",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,4",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,5",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,6",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,7",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,8",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,9",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,10",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,11",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,12",
{ "w":1.5, "h":1.0, "x":0.0 }, "2,13",
{ "w":1.0, "h":1.0, "x":0.0 }, "2,15"
],
[
{ "w":1.8, "h":1.0, "x":0.0 }, "3,0",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,1",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,2",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,3",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,4",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,5",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,6",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,7",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,8",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,9",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,10",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,11",
{ "w":2.2, "h":1.0, "x":0.0 }, "3,13",
{ "w":1.0, "h":1.0, "x":0.0 }, "3,15"
],
[
{ "w":2.3, "h":1.0, "x":0.0 }, "4,0",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,1",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,2",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,3",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,4",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,5",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,6",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,7",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,8",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,9",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,10",
{ "w":1.7, "h":1.0, "x":0.0 }, "4,13",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,14",
{ "w":1.0, "h":1.0, "x":0.0 }, "4,15"
],
[
{ "w":1.3, "h":1.0, "x":0.0 }, "5,0",
{ "w":1.3, "h":1.0, "x":0.0 }, "5,1",
{ "w":1.3, "h":1.0, "x":0.0 }, "5,2",
{ "w":6.0, "h":1.0, "x":0.0 }, "5,5",
{ "w":1.4, "h":1.0, "x":0.0 }, "5,9",
{ "w":1.4, "h":1.0, "x":0.0 }, "5,10",
{ "w":1.0, "h":1.0, "x":0.3 }, "5,13",
{ "w":1.0, "h":1.0, "x":0.0 }, "5,14",
{ "w":1.0, "h":1.0, "x":0.0 }, "5,15"
]
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment