Set the keyboard type
By default, grub4dos assumes a standard American QWERTY-USA keyboard is in use.
Tip: If Make_E2B.exe picks the wrong keyboard for your keyboard\language, make your E2B USB drive using the Make_E2B_USB_Drive.cmd button or edit the \_ISO\MyE2B.cfg file to use the correct keyboard translation file or run "\_ISO\docs\Make_E2B_USB_Drive\Make_MyE2B.cfg.cmd" from the E2B drive to make a new MyE2B.cfg file.
You can set the type of keyboard that is in use by adding a 'set KBD=' line to the \_ISO\MyE2B.cfg file.
Various keyboard translation code batch files exist in the \_ISO\e2b\grub folder (KBD_xxxxxx.g4b).
Use one of the lines below in your MyE2B.cfg file:
set KBD=KBD_AZERTY.g4b
set KBD=KBD_FRENCH.g4b
set KBD=KBD_GERMAN.g4b
set KBD=KBD_ITALIANO.g4b
set KBD=KBD_JAPAN_106.g4b
set KBD=KBD_LATIN_USA.g4b
set KBD=KBD_LATIN_USA.g4b
set KBD=KBD_QWERTY_UK.g4b
set KBD=KBD_QWERTZ.g4b
set KBD=KBD_QWERTZ_HUN.g4b
set KBD=KBD_SPANISH.G4B
set KBD=KBD_QWERTY_USA.g4b (default - no need to specify)
Note: If you have any lines of grub4dos code in the MyE2B.cfg file which require user keyboard input (e.g. password input), you should also run the KBD_xxxx.g4b file after setting the KBD variable, e.g.
set KBD=KBD_QWERTY_UK.g4b
set KBD=KBD_QWERTY_UK.g4b
...
###set KBD=KBD_AZERTY.g4b
###set KBD=KBD_FRENCH.g4b
###set KBD=KBD_GERMAN.g4b
###set KBD=KBD_ITALIANO.g4b
###set KBD=KBD_JAPAN_106.g4b
###set KBD=KBD_QWERTY_UK.g4b
###set KBD=KBD_QWERTZ.g4b
###set KBD=KBD_SPANISH.G4B
###set KBD=KBD_QWERTY_UK.g4b
if not "%KBD%"=="" call /%grub%/%KBD%
A useful reference for different keyboard layouts can be found here.
The BIOS scan codes for a standard keyboard are listed here (note: Alt+\ is actually 2b00 and some other Alt+codes are not listed).
grub4dos key names used in these files must consist of letters, numbers and the following special words (case sensitive):
escape (Esc), exclam (!), at (@), numbersign (#), dollar ($), parenright ()), caret (^), ampersand (&), asterisk (*), plus (+), percent (%), minus (-), underscore (_), equal (=), parenleft ((), backspace (backspace key), ctrlbackspace, tab (Tab key), bracketleft ([), braceleft ({), bracketright (]), braceright (}), enter (Enter key), semicolon (;), colon (:), quote (') , doublequote ("), slash (/), backquote (`), tilde (~), backslash (\), bar (|), comma (,), less (), question (?), space, delete (Del), F1-F10, home, uparrow, pageup, leftarrow, center, rightarrow, end, downarrow, pagedown, insert, shiftF1-shiftF10, ctrlF1-ctrlF10.
escape (Esc), exclam (!), at (@), numbersign (#), dollar ($), parenright ()), caret (^), ampersand (&), asterisk (*), plus (+), percent (%), minus (-), underscore (_), equal (=), parenleft ((), backspace (backspace key), ctrlbackspace, tab (Tab key), bracketleft ([), braceleft ({), bracketright (]), braceright (}), enter (Enter key), semicolon (;), colon (:), quote (') , doublequote ("), slash (/), backquote (`), tilde (~), backslash (\), bar (|), comma (,), less (), question (?), space, delete (Del), F1-F10, home, uparrow, pageup, leftarrow, center, rightarrow, end, downarrow, pagedown, insert, shiftF1-shiftF10, ctrlF1-ctrlF10.
Note: Recent versions of grub4dos from 2019-05-10 (E2B v1.B1c+) also have these key names for the Alt+ (same as AltGr+ and Ctrl+Alt+) key combinations by preceding the unshifted character with 'A': A0-A9, Aa-Az, Aequal, Abracketright, etc,. Also the single extra oem102 key (between the left-shift key and the z key) can be specified using oem102 and shiftoem102. e.g. For Hungarian keyboard, setkey at Av will produce @ when AltGr+v is typed, setkey less shiftoem102 will produce
#reset all key mappings
setkey
#reset the at (@) key mapping
setkey at at
e.g. how to use the grub4dos setkey command - setkey NEW_KEY USA_KEY
#print & if user types shift+1 (!)
setkey ampersand exclam
#swap Z and Y for QWERTZ kbd
setkey z y
setkey y z
setkey Z Y
setkey Y Z
setkey less oem102
setkey greater shiftoem102
setkey at Av
setkey at Av
Note: Virtual Machines such as QEMU and Virtual Box do not support all key combinations on all keyboards. Test the keyboard on a real system if you find some keys are not correctly translated. VMWare works OK.
Choosing Passwords and Hotkeys
If you are also defining menu hotkeys, or changing the default password, remember that different systems may have different keyboards connected and that some notebooks do not have a full keyboard (e.g. F11 and F12 may be missing or may not generate the correct scan codes).
For instance, on a QWERTZ keyboard, a user would need to enter easz2boot instead of easy2boot or press the Z key instead of Y=Yes.
If you have a AZERTY keyboard and you do not set the keyboard type in E2B, you would need to type eqsy"boot.
On a UK keyboard, the user must enter "fred instead of @fred.
For this reason, you may want to pick a password that works on a wide range of keyboards and avoid such characters as a,z,y,q,m,w,z,@,",#,£, F11,F12 and so on - using a PIN number is one option but on an AZERTY keyboard the user must use the number pad keys (or press SHIFT+number key if using the number keys above the letters).