keyboardlayouts.json
This file defines the layout of the various on-screen keyboards available and by default includes: "Default", "NoNumbers" and "Mobile". This is the default full keyboard:

The settings in this file for this keyboard are:
{
"Name": "Default",
"BaseLayout": [
"{escape} {f1} {f2} {f3} {f4} {f5} {f6} {f7} {f8} {f9} {f10} {f11} {f12}",
"` 1 2 3 4 5 6 7 8 9 0 - = {backspace}",
"{tab} q w e r t y u i o p [ ] \\",
"{capslock} a s d f g h j k l ; ' {enter}",
"{shiftleft} z x c v b n m , . / {shiftright}",
"{controlleft} {altleft} {metaleft} {space} {metaright} {altright} {controlright}"
],
"ShiftBaseLayout": [
"{escape} {f1} {f2} {f3} {f4} {f5} {f6} {f7} {f8} {f9} {f10} {f11} {f12}",
"~ ! @ # $ % ^ & * ( ) _ + {backspace}",
"{tab} Q W E R T Y U I O P { } |",
"{capslock} A S D F G H J K L : \" {enter}",
"{shiftleft} Z X C V B N M < > ? {shiftright}",
"{controlleft} {altleft} {metaleft} {space} {metaright} {altright} {controlright}"
],
"ControlPadLayout": [
"{prtscr} {scrolllock} {pause}",
"{insert} {home} {pageup}",
"{delete} {end} {pagedown}"
],
"ArrowsLayout": [
"{arrowup}",
"{arrowleft} {arrowdown} {arrowright}"
],
"NumPadLayout": [
"{numlock} {num/} {num*}",
"{num7} {num8} {num9}",
"{num4} {num5} {num6}",
"{num1} {num2} {num3}",
"{num0} {num.}"
],
"NumPadEndLayout": [
"{num-}",
"{num+}",
"{numenter}"
],
"Display": {
"{escape}": "Esc",
"{tab}": "Tab",
"{backspace}": "Backspace",
"{enter}": "Enter",
"{capslock}": "Caps Lock",
"{shiftleft}": "Shift",
"{shiftright}": "Shift",
"{controlleft}": "Ctrl",
"{controlright}": "Ctrl",
"{altleft}": "Alt",
"{altright}": "Alt",
"{metaleft}": "CMD",
"{metaright}": "CMD",
"{f1}": "F1",
"{f2}": "F2",
"{f3}": "F3",
"{f4}": "F4",
"{f5}": "F5",
"{f6}": "F6",
"{f7}": "F7",
"{f8}": "F8",
"{f9}": "F9",
"{f10}": "F10",
"{f11}": "F11",
"{f12}": "F12",
"{prtscr}": "PrtSn",
"{scrolllock}": "ScrLk",
"{pause}": "Pause",
"{insert}": "Ins",
"{home}": "Home",
"{pageup}": "PgUp",
"{delete}": "Del",
"{end}": "End",
"{pagedown}": "PgDn",
"{numlock}": "Lock",
"{num/}": "/",
"{num*}": "*",
"{num7}": "7",
"{num8}": "8",
"{num9}": "9",
"{num4}": "4",
"{num5}": "5",
"{num6}": "6",
"{num1}": "1",
"{num2}": "2",
"{num3}": "3",
"{num0}": "0",
"{num.}": ".",
"{numenter}": "Enter",
"{num-}": "-",
"{num+}": "+"
}
},
In the "BaseLayout" it should be noted that the keyboard definition is an array or keyboard rows. In those rows key may be identified as {escape} or {f1} where the actual key is defined in the ' "Display": { ' section or the keys are natural ... q w e r t y u i o p [ ] \",
Any key in the layout that is in {}s must be defined in the "Display" list.
The smaller keyboards available in a default install are as follows. This is the normal keyboard without numbers:

This is the minimal keyboard for mobile devices:

The main - BaseLayout for this keyboard is:
{
"Name": "Mobile",
"BaseLayout": [
"q w e r t y u i o p",
"a s d f g h j k l",
"{tab} z x c v b n m"
],