[hatari-devel] enhanced_keymap |
[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]
Hello, You will find new version of enhanced_keymap patch series in attachment. It contains a patch which reverts commit 2428541e69cb2ecab5431f94b6b2722b62060880 (made by Thomas on december 10, 2024) prior to apply enhanced_keymap old patch series. The keyboard dialog is reset to previous one because it had 3 functioning modes well separated : Symbolic, Scancode and ‘From file’ and enhanced_keymap is based on ‘From file’ mode. In this mode, configuration file selected with browse button maps host keys and modifiers pressed by user (scancode) to guest keys and modifiers and defaults to symbolic mapping if there is no mapping for a key in the configuration file. So, in case you still want use enhanced_keymap, there is no need to keep the commit 2428541e69cb2ecab5431f94b6b2722b62060880. Yves
Attachment:
enhanced_keymap.tar.gz
Description: application/gzip
#------------------------------------------------------------------------------- # Hatari Key mapping for French PC Keyboard layout (105 keys) # # Following patches must be applied to master in this order : # # 0001-Revert-Make-it-possible-to-load-keymaps-with-fallbac.patch # 0002-Switch-to-using-KeyMapping-struct-and-KeysDown-array.patch # 0003-Clear-KeysDown-key-mapping-state-on-reset.patch # 0004-Support-for-specifying-ST-key-modifiers-in-the-mappi.patch # 0005-Add-ALT-XXX-sequence-insert-support-for-keymaps.patch # 0006-Add-trace-output-for-ST-key-modifiers.patch # 0007-Fix-ALT_XXX-scancode-handling.patch # 0008-Error-out-on-one-more-bogus-key-mapping-case.patch # 0009-Support-for-specifying-PC-SDL-key-modifiers-in-the-m.patch # 0010-Keymap-accept-also-0x-prefixed-hex-values-for-scanco.patch # 0011-Fix-improve-keymap-file-SDL-key-name-parsing.patch # 0012-Add-trace-in-Keymap_RemapKeyToSTKey-function-Authori.patch # 0013-Match-multiple-Host-PC-modifiers-as-explained-in-key.patch # 0014-Add-NO_XXX-to-Guest-ST-modifiers-XXX-CONTROL-LSHIFT-.patch # # These patches are filed in enhanced_keymap_patchs.tar.gz #------------------------------------------------------------------------------- # Mapping Format :: Host (PC) key definition , Guest (ST) key definition # # Key definition :: scancode | modifiers # or (host only) :: keyname | modifiers # # Host key definition is separated from Guest key definition by a comma ','. # scancode or keyname and modifiers (several possible) are separated by a # pipe '|' and may be interverted. # # Scancode is decimal or hexa (prefixed with 0x) # # Host modifiers are : LSHIFT (Left Shift), # RSHIFT (Right Shift), # SHIFT (LSHIFT or RSHIFT), # LCTRL (Left Control), # RCTRL (Right Control), # CTRL (LCTRL or RCTRL), # LALT (Left Alt), # RALT (Right Alt / Alt gr), # ALT (LALT or RALT), # LGUI (Left Windows), # RGUI (Right Windows), # GUI (LGUI or RGUI), # CAPS (Caps Lock), # MODE (Menu), # NUM (Num Lock). # # Guest modifiers are : CONTROL, # LSHIFT, # RSHIFT, # ALT, # ALT_XXX, # NO_CONTROL, # NO_LSHIFT, # NO_RSHIFT, # NO_ALT. # # ALT_XXX is a special case where ST scancode is the decimal code # (32 to 255) in atari character table. # ALT_XXX cannot be set with another ST modifier. # If the value given as scancode with ALT_XXX mod is [32 to 99], # you MUST NOT put a leading zero in the value as hatari enhanced # keymap patches can use strtol with zero base where leading zero # in string means octal value (see mapping with ALT_XXX|94). #------------------------------------------------------------------------------- # lines beginning with a hash '#' or semicolon ';' (comments) are ignored. # Empty lines are ignored. #------------------------------------------------------------------------------- # Keys are mapped in Host scancode order. If a SAME Host scancode # is mapped multiple times, the associated modifiers must be ordered. # # For instance, a PC host scancode with three possible modifiers # mod1, mod2, mod3 must be configured (Host key definition) like this : # # scancode|mod1|mod2|mod3 (1) # scancode|mod1|mod2 (2) # scancode|mod1|mod3 (2) # scancode|mod2|mod3 (2) # scancode|mod1 (3) # scancode|mod2 (3) # scancode|mod3 (3) # scancode (4) # # Line marked (1) (3 modifiers) must be first, # Then lines marked (2) (2 modifiers) in any order, # Then lines marked (3) (1 modifier) in any order, # Then line marked (4) (no modifier) must be last. # # This is because Hatari search the first entry where : # input scancode = entry scancode # and # input mods and entry mods = entry mods. # # If entries are given in this order : # # scancode|mod1 (1) # scancode|mod1|mod2 (2) # scancode (3) # # and input is scancode + mod1 + mod2 # # the entry used by Hatari will be (1) because # input scancode = entry scancode # and # input mods and entry mods = entry mods. # i-e : (mod1 + mod2) and mod1 = mod1. # # The worst order would be to place scancode without modifier entry # before same scancode with any modifier entry because # any modifier and no modifier = no modifier. # The user could no longer use any modifier key for this scancode. #------------------------------------------------------------------------------- # REMEMBER : # # 1) If Host modifiers are set, there is no need to set corresponding # ST modifiers, but to show the right ST Key definition, ST modifiers # are set in mappings EVEN if corresponding Host modifiers are set. # This does not apply to # - ALT_XXX which cannot be set with another ST modifier, # - NO_XXX which must be set to disable corresponding Host modifier. # # Example : # # [_] + [SHIFT] => [8] # 0x25|SHIFT,0x09|LSHIFT|RSHIFT # # LSHIFT and RSHIFT ST modifiers are set but not needed ST side as # SHIFT is already set Host side. # # 2) NO_XXX ST modifiers disable corresponding ST modifiers. # NO_LSHIFT disables LSHIFT, # NO_RSHIFT disables RSHIFT, # NO_CONTROL disables CONTROL, # NO_ALT disables ALT. # # Examples : # # a) Allow a key with modifier PC side to map a key without # same modifier ST side : # # [!] + [SHIFT] => [§] # 0x38|SHIFT,0x07|NO_LSHIFT|NO_RSHIFT # # b) Disallow a key with modifier PC side to map a key with # same modifier ST side : # # [ù] + [LALT] => [ù] # [ù] + [SHIFT] => [%] # [ù] => [ù] # 0x2f|SHIFT,0x1a|LSHIFT|RSHIFT|NO_ALT # 0x2f,0x1a|NO_ALT # # instead of # # [ù] + [LALT] => '\' # [ù] + [SHIFT] => [%] # [ù] => [ù] # 0x2f|SHIFT,0x1a|LSHIFT|RSHIFT # 0x2f,0x1a # # 3) Guest key definitions using ALT_XXX disable auto-repeat. # # 4) Hatari uses shortcuts to specific functions in keyboard # setup and number of these shortcuts use RALT modifier. # So, you must remap the key used by Hatari if you want use # it in your mappings. # # Example : Hatari maps [g] + [RALT] to 'take screenshot' shortcut. # If you want to use [g] + [RALT] in your mapping, you must map # another key than [g] to 'take screenshot' shortcut. # # 5) Any host scancode or keyname not mapped here defaults to # symbolic keyboard mapping (corresponding to TOS rom) # # 6) Mappings have been tested with a french PC keyboard (105 keys) # and with localized French and USA TOS roms as well as 1024K EmuTOS. # They all produce expected characters (and display expected symbols) # on Hatari screen. #------------------------------------------------------------------------------- # Comments before mappings show guest symbol obtained when key and # given modifiers for host symbol (french keyboard) are entered. #------------------------------------------------------------------------------- # [q] => [q] # 0x04 or 4 or q 0x04,0x1e # [c] + [LALT] => [©] # 0x06 or 6 or c 0x06|LALT,ALT_XXX|189 # [e] + [RALT] => [€] # 0x08 or 8 or e 0x08|RALT,ALT_XXX|238 # [i] + [SHIFT] + [LALT] => [∞] # [i] + [LALT] => [π] # 0x0c or 12 or i 0x0c|SHIFT|LALT,ALT_XXX|223 0x0c|LALT,ALT_XXX|227 # [,] + [SHIFT] => [?] # [,] => [,] # 0x10 or 16 0x10|SHIFT,0x32|LSHIFT|RSHIFT 0x10,0x32 # [o] + [SHIFT] + [LALT] => [Œ] # [o] + [SHIFT] + [CTRL] => [Ø] # [o] + [LALT] => [œ] # [o] + [CTRL] => [ø] # 0x12 or 18 or o 0x12|SHIFT|LALT,ALT_XXX|181 0x12|SHIFT|CTRL,ALT_XXX|178 0x12|LALT,ALT_XXX|180 0x12|CTRL,ALT_XXX|179 # [a] + [SHIFT] + [LALT] => [Æ] # [a] + [SHIFT] + [CTRL] => [Å] # [a] + [LALT] => [æ] # [a] + [CTRL] => [å] # [a] => [a] # 0x14 or 20 or a 0x14|SHIFT|LALT,ALT_XXX|146 0x14|SHIFT|CTRL,ALT_XXX|143 0x14|LALT,ALT_XXX|145 0x14|CTRL,ALT_XXX|134 0x14,0x10 # [r] + [LALT] => [®] # 0x15 or 21 or r 0x15|LALT,ALT_XXX|190 # [s] + [LALT] => [ß] # 0x16 or 22 or s 0x16|LALT,ALT_XXX|158 # [t] + [LALT] => [™] # 0x17 or 23 or t 0x17|LALT,ALT_XXX|191 # [z] => [z] # 0x1a or 26 or z 0x1a,0x11 # [w] => [w] # 0x1d or 29 or w 0x1d,0x2c # [&] + [SHIFT] + [RALT] => [¼] # [&] + [RALT] => [½] # 0x1e or 30 0x1e|SHIFT|RALT,ALT_XXX|172 0x1e|RALT,ALT_XXX|171 # [é] + [SHIFT] + [RALT] => [É] # [é] + [RALT] => [~] # 0x1f or 31 0x1f|SHIFT|RALT,ALT_XXX|144 0x1f|RALT,0x2b|LSHIFT|RSHIFT|ALT # ["] + [RALT] => [#] # 0x20 or 32 0x20|RALT,0x2b|NO_LSHIFT|NO_RSHIFT|NO_ALT # ['] + [RALT] => [{] # 0x21 or 33 0x21|RALT,0x1a|LSHIFT|RSHIFT|ALT # [(] + [RALT] => '[' # 0x22 or 34 0x22|RALT,0x1a|NO_LSHIFT|NO_RSHIFT|ALT # [-] + [RALT] => [|] # [-] + [SHIFT] => [6] # [-] => [-] # 0x23 or 35 0x23|RALT,0x2b|LSHIFT|RSHIFT|NO_ALT 0x23|SHIFT,0x07|LSHIFT|RSHIFT 0x23,0x0d # [è] + [RALT] => [`] # 0x24 or 36 0x24|RALT,0x29|NO_LSHIFT|NO_RSHIFT|ALT # [_] + [RALT] => [\] # [_] + [SHIFT] => [8] # [_] => [_] # 0x25 or 37 0x25|RALT,0x28|NO_LSHIFT|NO_RSHIFT|ALT 0x25|SHIFT,0x09|LSHIFT|RSHIFT 0x25,0x0d|LSHIFT|RSHIFT # [ç] + [RALT] => [^] # 0x26 or 38 0x26|RALT,ALT_XXX|94 # [à] + [RALT] => [@] # 0x27 or 39 0x27|RALT,0x2b|NO_LSHIFT|NO_RSHIFT|ALT # [)] + [RALT] => ']' # [)] + [SHIFT] => [°] # 0x2d or 45 0x2d|RALT,0x1b|NO_LSHIFT|NO_RSHIFT|ALT 0x2d|SHIFT,0x0c|LSHIFT|RSHIFT|NO_ALT # [=] + [SHIFT] + [RALT] => [±] # [=] + [RALT] => [}] # [=] + [SHIFT] => [+] # [=] => [=] # 0x2e or 46 0x2e|SHIFT|RALT,ALT_XXX|241 0x2e|RALT,0x1b|LSHIFT|RSHIFT|ALT 0x2e|SHIFT,0x35|LSHIFT|RSHIFT 0x2e,0x35 # followed by vowel => vowel with this accent, # followed by space or same accent => accent alone. # [^] + [SHIFT] => [¨] # [^] => [^] # 0x2f or 47 0x2f|SHIFT,0x1a|LSHIFT|RSHIFT|NO_ALT 0x2f,0x1a|NO_ALT # [$] + [SHIFT] + [RALT] => [¶] # [$] + [RALT] => [¤] # [$] + [SHIFT] => [£] # [$] => [$] # 0x30 or 48 0x30|SHIFT|RALT,ALT_XXX|188 0x30|RALT,ALT_XXX|249 0x30|SHIFT,0x29|LSHIFT|RSHIFT|NO_ALT 0x30,0x1b|NO_ALT # [*] + [RALT] => [÷] # [*] + [SHIFT] => [µ] # [*] => [*] # 0x31 or 49 0x31|RALT,ALT_XXX|246 0x31|SHIFT,ALT_XXX|230 0x31,0x1b|LSHIFT|RSHIFT|NO_ALT # [m] => [m] # 0x33 or 51 or m 0x33,0x27 # [ù] + [SHIFT] => [%] # [ù] => [ù] # 0x34 or 52 0x34|SHIFT,0x28|LSHIFT|RSHIFT|NO_ALT 0x34,0x28|NO_ALT # [²] + [RALT] => [~] # [²] + [SHIFT] => [³] # [²] => [²] # 0x35 or 53 0x35|RALT,0x2b|LSHIFT|RSHIFT|ALT 0x35|SHIFT,ALT_XXX|254 0x35,ALT_XXX|253 # [;] + [SHIFT] => [.] # [;] => [;] # 0x36 or 54 0x36|SHIFT,0x33|LSHIFT|RSHIFT 0x36,0x33 # [:] + [SHIFT] => [/] # [:] => [:] # 0x37 or 55 0x37|SHIFT,0x34|LSHIFT|RSHIFT 0x37,0x34 # [!] + [SHIFT] => [§] # [!] => [!] # 0x38 or 56 0x38|SHIFT,0x07|NO_LSHIFT|NO_RSHIFT 0x38,0x09 # [<] + [SHIFT] + [ALT] => [»] # [<] + [SHIFT] + [CTRL] => [≥] # [<] + [ALT] => [«] # [<] + [CTRL] => [≤] # [<] + [SHIFT] => [>] # [<] => [<] # 0x64 or 100 0x64|SHIFT|ALT,ALT_XXX|175 0x64|SHIFT|CTRL,ALT_XXX|242 0x64|ALT,ALT_XXX|174 0x64|CTRL,ALT_XXX|243 0x64|SHIFT,0x60|LSHIFT|RSHIFT 0x64,0x60 #-------------------------------------------------------------------------------
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |