#
# 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 only: w=Windows,x=Linux,m=Mac, discarded otherwise
# in this way the same emulated keys can be configured for different OS
# 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]
# function keys
# =====================================
F1 			            = F1
F2 			            = F1,L_SHIFT
F3 			            = F3
F4 			            = F3,L_SHIFT
F5 			            = F5
F6 			            = F5,L_SHIFT
F7 			            = F7
F8 			            = F7,L_SHIFT
# numbers row
[w]-DEAD_CIRCUMFLEX     = L_ARROW
# ö
[x]!16777430            = L_ARROW
[m]!16777430            = L_ARROW
[wx]1 		            = N_1
[m]-1                   = N_1
[m]+EXCLAMATION_MARK    = N_1,L_SHIFT
[wx]2 		            = N_2
[m]-2                   = N_2
[m]+QUOTEDBL            = N_2,L_SHIFT
-3 			            = N_3
-NUMBER_SIGN            = N_3,L_SHIFT
[wx]4 		            = N_4
[m]-4                   = N_4
[m]+DOLLAR              = N_4,L_SHIFT
[wx]5 		            = N_5
[m]5                    = N_5
[wx]6 		            = N_6
[m]+AMPERSAND           = N_6,L_SHIFT
-7 			            = N_7
+NUMBER_SIGN            = N_7,L_SHIFT
[wx]8 		            = N_8
[m]-8                   = N_8
[m]+LEFT_PARENTHESIS    = N_8,L_SHIFT
[wx]9 		            = N_9
[m]-9                   = N_9
[m]+RIGHT_PARENTHESIS   = N_9,L_SHIFT
-0 			            = N_0
PLUS 		            = PLUS
MINUS 		            = MINUS
HOME 		            = CLR_HOME
# ä
[w]!16777412            = LIRA
# ß
[x]!16777439            = LIRA
[m]!16777439            = LIRA
BACK_SPACE 	            = INST_DEL
# QWERTZ row
# =====================================
CONTROL 	            = CTRL
Q 			            = Q
W 			            = W
E 			            = E
R 			            = R
T 			            = T
Z			            = Z
U 			            = U
I 			            = I
O 			            = O
P 			            = P
# #
[w]^Q 			        = AT
[x]^AT 			        = AT
[m]^AT 			        = AT
[w]+PLUS 		        = STAR
[x]+PLUS 		        = STAR
[m]+ASTERISK            = STAR
[w]DEAD_ACUTE	        = EXP
# ä
[x]!16777412            = EXP
[m]!16777412            = EXP
DELETE		            = RESTORE
# ASDF row
# =====================================
ESCAPE 		            = RUN_STOP
A 			            = A
S 			            = S
D 			            = D
F 			            = F
G 			            = G
H 			            = H
J 			            = J
K 			            = K
L 			            = L
[wx]+PERIOD             = COLON
[m]+COLON 	            = COLON
[wx]+COMMA 		        = SEMICOL
[m]+SEMICOLON	        = SEMICOL
[w]^9			        = SEMICOL,L_SHIFT
[xm]^CLOSE_BRACKET      = SEMICOL,L_SHIFT
[w]^8			        = COLON,L_SHIFT
[xm]^OPEN_BRACKET       = COLON,L_SHIFT
[wx]+0			        = EQUAL
[m]+EQUALS              = EQUAL
ENTER 		            = RETURN
# YXCV row
# =====================================
TAB			            = CBM
Y 			            = Y
X			            = X
C			            = C
V			            = V
B			            = B
N			            = N
M			            = M
-COMMA		            = COMMA
-PERIOD 	            = PERIOD
-LESS		            = COMMA,L_SHIFT
+LESS		            = PERIOD,L_SHIFT
[wx]+7		            = SLASH
[m]+SLASH               = SLASH
[wx]+!16777439          = SLASH,L_SHIFT
[m]+MINUS               = SLASH,L_SHIFT
-RIGHT		            = CRSR_LR
-LEFT		            = CRSR_LR,L_SHIFT
-UP			            = CRSR_UD,L_SHIFT
-DOWN		            = CRSR_UD
# SPACE row
# =====================================
SPACE		            = SPACE
# Special keys ========================
CAPS_LOCK    = CAPS_LOCK
SCROLL_LOCK  = NO_SCROLL
PAUSE        = LINE_FEED
F9           = _40_80
F11          = TAB
F12          = HELP
INSERT       = ALT
PAGE_UP      = ESC
[keypad_map]
NUMPAD5 	            = KEYPAD_N_5
ENTER 		            = KEYPAD_ENTER
LEFT 		            = KEYPAD_LEFT
DECIMAL 	            = KEYPAD_DOT
NUMPAD6 	            = KEYPAD_N_6
UP 			            = KEYPAD_UP
NUMPAD1 	            = KEYPAD_N_1
SUBTRACT 	            = KEYPAD_MINUS
NUMPAD0 	            = KEYPAD_N_0
NUMPAD9 	            = KEYPAD_N_9
RIGHT 		            = KEYPAD_RIGHT
NUMPAD2 	            = KEYPAD_N_2
NUMPAD7 	            = KEYPAD_N_7
NUMPAD3 	            = KEYPAD_N_3
NUMPAD8 	            = KEYPAD_N_8
DOWN 		            = KEYPAD_DOWN
ADD 		            = KEYPAD_PLUS
NUMPAD4 	            = KEYPAD_N_4