#
# Kernal64 keyboard layout configuration file
#
# lines that start with # character or empty lines are ignored
# the configuration file has two sections identified by [map] and [keypad_map]: in the first, standard keys are configured,
# while in the second keys of the numeric keypad are configured, if any.
#
# every configuration line is composed by
#   [[(w|x|m)+]]<modifiers><host key name or key code> = <emulated key>,<emulated key>,...,<emulated key> [<comment>]
# where [[(w|x|m)+]] is an optional modifier to indicate that the row must be included in the configuration for the given OS(es) only: w=Windows,x=Linux,m=Mac, discarded otherwise
# in this way the same emulated keys can be configured for different OS. For example: [xm] will define a row for Linux and Mac only.
# where <modifiers> can be a combination of:
# + for shift (shifted host key)
# ^ for altg  (altg + host key)
# ! for numeric virtual key code (used for host key that has not a Java key name, just a code number)
# - turn off automatic shifting (used to disable the automatic shifting)
#
# <comment> it's a # character followed by a comment

# host key names (or symbols) are listed below:

# Host keys
#                        0                         1                         2                         3                         4                         5                         6                         7
#                        8                         9                         A                    ACCEPT                       ADD                     AGAIN            ALL_CANDIDATES              ALPHANUMERIC
#                      ALT                 ALT_GRAPH                 AMPERSAND                  ASTERISK                        AT                         B                BACK_QUOTE                BACK_SLASH
#               BACK_SPACE                     BEGIN                 BRACELEFT                BRACERIGHT                         C                    CANCEL                 CAPS_LOCK                CIRCUMFLEX
#                    CLEAR             CLOSE_BRACKET                CODE_INPUT                     COLON                     COMMA                   COMPOSE              CONTEXT_MENU                   CONTROL
#                  CONVERT                      COPY                       CUT                         D             DEAD_ABOVEDOT            DEAD_ABOVERING                DEAD_ACUTE                DEAD_BREVE
#               DEAD_CARON              DEAD_CEDILLA           DEAD_CIRCUMFLEX            DEAD_DIAERESIS          DEAD_DOUBLEACUTE                DEAD_GRAVE                 DEAD_IOTA               DEAD_MACRON
#              DEAD_OGONEK     DEAD_SEMIVOICED_SOUND                DEAD_TILDE         DEAD_VOICED_SOUND                   DECIMAL                    DELETE                    DIVIDE                    DOLLAR
#                     DOWN                         E                       END                     ENTER                    EQUALS                    ESCAPE                 EURO_SIGN          EXCLAMATION_MARK
#                        F                        F1                       F10                       F11                       F12                       F13                       F14                       F15
#                      F16                       F17                       F18                       F19                        F2                       F20                       F21                       F22
#                      F23                       F24                        F3                        F4                        F5                        F6                        F7                        F8
#                       F9                     FINAL                      FIND                FULL_WIDTH                         G                   GREATER                         H                HALF_WIDTH
#                     HELP                  HIRAGANA                      HOME                         I       INPUT_METHOD_ON_OFF                    INSERT INVERTED_EXCLAMATION_MARK                         J
#        JAPANESE_HIRAGANA         JAPANESE_KATAKANA            JAPANESE_ROMAN                         K                      KANA                 KANA_LOCK                     KANJI                  KATAKANA
#                  KP_DOWN                   KP_LEFT                  KP_RIGHT                     KP_UP                         L                      LEFT          LEFT_PARENTHESIS                      LESS
#                        M                      META                     MINUS                MODECHANGE                  MULTIPLY                         N                NONCONVERT               NUMBER_SIGN
#                  NUMPAD0                   NUMPAD1                   NUMPAD2                   NUMPAD3                   NUMPAD4                   NUMPAD5                   NUMPAD6                   NUMPAD7
#                  NUMPAD8                   NUMPAD9                  NUM_LOCK                         O              OPEN_BRACKET                         P                 PAGE_DOWN                   PAGE_UP
#                    PASTE                     PAUSE                    PERIOD                      PLUS        PREVIOUS_CANDIDATE               PRINTSCREEN                     PROPS                         Q
#                    QUOTE                  QUOTEDBL                         R                     RIGHT         RIGHT_PARENTHESIS          ROMAN_CHARACTERS                         S               SCROLL_LOCK
#                SEMICOLON                 SEPARATOR                     SHIFT                     SLASH                     SPACE                      STOP                  SUBTRACT                         T
#                      TAB                         U                 UNDEFINED                UNDERSCORE                      UNDO                        UP                         V                         W
#                  WINDOWS                         X                         Y                         Z

# emulated key names are listed below:

# C64 & VIC20 keys
#         A         AT          B          C        CBM   CLR_HOME      COLON      COMMA
#   CRSR_LR    CRSR_UD       CTRL          D          E      EQUAL        EXP          F
#        F1         F3         F5         F7          G          H          I   INST_DEL
#         J          K          L       LIRA    L_ARROW    L_SHIFT          M      MINUS
#         N        N_0        N_1        N_2        N_3        N_4        N_5        N_6
#       N_7        N_8        N_9          O          P     PERIOD       PLUS          Q
#         R    RESTORE     RETURN   RUN_STOP    R_SHIFT          S    SEMICOL      SLASH
#     SPACE       STAR          T          U          V          W          X          Y
#         Z

# C128 special keys
#            ALT       CAPS_LOCK             ESC            HELP      KEYPAD_DOT     KEYPAD_DOWN    KEYPAD_ENTER     KEYPAD_LEFT
#   KEYPAD_MINUS      KEYPAD_N_0      KEYPAD_N_1      KEYPAD_N_2      KEYPAD_N_3      KEYPAD_N_4      KEYPAD_N_5      KEYPAD_N_6
#     KEYPAD_N_7      KEYPAD_N_8      KEYPAD_N_9     KEYPAD_PLUS    KEYPAD_RIGHT       KEYPAD_UP       LINE_FEED       NO_SCROLL
#            TAB          _40_80

# CBM2 keys
#              0               1               2               3               4               5               6               7
#              8               9               A               B          BARROW               C CLOSED_SBRACKET           COMMA
#      COMMODORE         CONTROL               D        DB_QUOTE             DEL             DOT            DOWN               E
#          EQUAL             ESC               F              F1             F10              F2              F3              F4
#             F5              F6              F7              F8              F9               G           GRAPH               H
#           HOME               I               J               K            KP_0           KP_00            KP_1            KP_2
#           KP_3            KP_4            KP_5            KP_6            KP_7            KP_8            KP_9           KP_CE
#         KP_DIV          KP_DOT        KP_ENTER        KP_MINUS          KP_MUL         KP_PLUS        KP_QMARK               L
#           LEFT               M           MINUS               N               O   OPEN_SBRACKET               P              PI
#              Q               R          RETURN           RIGHT             RVS               S         SEMICOL           SHIFT
#          SLASH           SPACE            STOP               T             TAB               U              UP               V
#              W               X               Y               Z

# when a shifted emulated key must be configured, either L_SHIFT or R_SHIFT (or SHIFT for CBM2) can be used
# if the - modifiers is not used the given configuration is cloned also for the shifted version
# for example
# A = A
# 2 configurations are produced: one for A -> A and one for +A = A,L_SHIFT

# examples
# to map a host F1 key to an emulated F1 key
# F1 = F1
# to map a host F2 key to an emulated F2 key
# F2 = F1,L_SHIFT
# to map a Altgr + à (for Italian layout this produce #) to an emulated #
# ^!16777440	= N_3,L_SHIFT
# here it is used a key code !16777440 because the character à does not have a Java name

[map]
# first row
F1					= F1
F2					= F2
F3					= F3
F4					= F4
F5					= F5
F6					= F6
F7					= F7
F8					= F8
F9					= F9
F10					= F10
DOWN 				= DOWN
UP					= UP
LEFT				= LEFT
RIGHT				= RIGHT
HOME 				= HOME
F11 				= RVS
F12 				= GRAPH
INSERT 				= STOP
# second row
ESCAPE 				= ESC
1					= 1
-2					= 2
^!16777458			= 2, SHIFT
-3					= 3
# #
^!16777440			= 3, SHIFT
4					= 4
5					= 5
-6					= 6
# ^
+!16777452			= 6, SHIFT
-7					= 7
+6					= 7, SHIFT
-8					= 8
+PLUS				= 8, SHIFT
-9					= 9
+8					= 9, SHIFT
+9					= 0, SHIFT
-0					= 0
-MINUS				= MINUS
+0					= EQUAL
-PLUS				= EQUAL, SHIFT
-BACK_SLASH 		= BARROW
+3					= BARROW, SHIFT
BACK_SPACE 			= DEL
# third row
TAB 				= TAB
Q 					= Q
W 					= W
E 					= E
R 					= R
T 					= T
Y 					= Y
U 					= U
I 					= I
O 					= O
P 					= P
^!16777448			= OPEN_SBRACKET
^PLUS				= CLOSED_SBRACKET
ENTER 				= RETURN
# fourth row
A 					= A
S 					= S
D 					= D
F 					= F
G 					= G
H 					= H
J 					= J
K 					= K
L 					= L
+COMMA				= SEMICOL
+PERIOD				= SEMICOL, SHIFT
-QUOTE				= DB_QUOTE
+2					= DB_QUOTE, SHIFT
!16777465			= PI
# fifth row
Z					= Z
X					= X
C					= C
V					= V
B					= B
N					= N
M					= M
-COMMA				= COMMA
-LESS				= COMMA, SHIFT
+LESS				= DOT, SHIFT
-PERIOD				= DOT
+7					= SLASH
+QUOTE				= SLASH, SHIFT
DELETE 				= COMMODORE
# eighth row
CONTROL 			= CONTROL
SPACE 				= SPACE
[keypad_map]
NUMPAD5 			= KP_5
ENTER 				= KP_ENTER
DECIMAL 			= KP_DOT
MULTIPLY 			= KP_MUL
NUMPAD6 			= KP_6
PAGE_UP 			= KP_CE
NUMPAD1 			= KP_1
NUMPAD9 			= KP_9
NUM_LOCK 			= KP_QMARK
NUMPAD2 			= KP_2
NUMPAD7 			= KP_7
PRINTSCREEN 		= KP_00
ADD 				= KP_PLUS
SUBTRACT 			= KP_MINUS
NUMPAD0 			= KP_0
NUMPAD3 			= KP_3
NUMPAD8 			= KP_8
DIVIDE 				= KP_DIV
NUMPAD4 			= KP_4
