{"id":913,"date":"2019-08-06T15:02:04","date_gmt":"2019-08-06T22:02:04","guid":{"rendered":"https:\/\/portal.staylinked.com\/sl\/kb\/?post_type=ht_kb&#038;p=913"},"modified":"2026-02-12T14:36:21","modified_gmt":"2026-02-12T22:36:21","slug":"keyboard-maps","status":"publish","type":"ht_kb","link":"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/","title":{"rendered":"Keyboard Maps"},"content":{"rendered":"\n<p>In order for a device to connect to a StayLinked Server, that Server must have an installed keyboard map that exactly matches the device type and emulation type. Keyboard maps are installed on a server using the StayLinked Administrator. These keyboard maps can be configured with a variety of functions, strings and escapes to meet the requirements of your hosted application. This brief guide describes the different device types, keyboard maps and the available options.<\/p>\n\n\n\n<h3>Adding New Keyboard Maps<\/h3>\n\n\n\n<p>During the connection handshake each device provides several bits of information to the Server; including screen size, client version, device type among other details. In server versions 15.5 and older, devices that need a keyboard map will report an error Esp0003, No <em>VT\/5250\/3270<\/em> keyboard map found for device <em>devicetype<\/em>. <\/p>\n\n\n\n<h2>Default Keyboard Maps<\/h2>\n\n\n\n<p>V16 and newer Windows servers will come preconfigured with default keyboard maps. Future releases of the server process will enable this option on new installations for other platforms. The option can be manually enabled under Server Configuration &gt; Server Settings.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"504\" height=\"566\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image.png\" alt=\"\" class=\"wp-image-5349\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image.png 504w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image-267x300.png 267w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image-45x50.png 45w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image-53x60.png 53w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image-89x100.png 89w\" sizes=\"(max-width: 504px) 100vw, 504px\" \/><\/figure>\n\n\n\n<p>Default keyboard maps take effect when the server process does not have an installed keyboard, Default maps are not installed, and there is no option for the to be automatically installed. Any customization or changes from the default map require the Administrator to manually perform the standard historical process for installing a new keyboard map.<\/p>\n\n\n\n<h4> What is a Device Type? <\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" width=\"239\" height=\"315\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Splash.jpg\" alt=\"\" class=\"wp-image-914\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Splash.jpg 239w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Splash-228x300.jpg 228w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Splash-38x50.jpg 38w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Splash-46x60.jpg 46w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Splash-76x100.jpg 76w\" sizes=\"(max-width: 239px) 100vw, 239px\" \/><\/figure><\/div>\n\n\n\n<p>The Device Type for your client will be displayed on the splash screen next to the client version. Device Types are a combination of values specific to each client that tell the server some basic information. Device types are made up of: the manufacturer (PTX in this case is Psion Teklogix), the device model (which is a 7535), the operating system (not used in the example, but typically a C\/CE or W\/WM for Windows CE or Windows Mobile) and lastly the keyboard type reported by the device operating system (58-key in this example). Some devices may report keyboard types like AN or QW for Alpha-Numeric and QWERTY respectively.<\/p>\n\n\n\n<p>Devices reporting keyboard types of 00 or XX are getting an invalid result from the operating system. These may be resolved by simply rebooting the device. Some devices have removable keyboards that might have a poor connection between the keyboard and handheld. While you may be able to copy a keyboard map with this different device type, the keyboard may not operate as expected. Some devices may need to be repaired for normal keyboard use.<\/p>\n\n\n\n<p>Note that device types can be configured with custom values. It is not recommended that device types are changed because they represent the make and model of the device as well as the software that\u2019s been installed. It is often necessary to exclude or separate a test device from the other devices in order to allocate it to a different device group. Client Settings or Scan2Configure features can be used to adjust the device type. A copy of the preferred keyboard map must be made for any new device types.<\/p>\n\n\n\n<h4>Esp0003 and Adding New Keyboards from the Connections List<\/h4>\n\n\n\n<p> From the Administrator\u2019s Connections list: <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"160\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect-1024x160.jpg\" alt=\"\" class=\"wp-image-915\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect-1024x160.jpg 1024w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect-300x47.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect-768x120.jpg 768w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect-50x8.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect-60x9.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect-100x16.jpg 100w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Keyboard-Connect.jpg 1069w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" width=\"387\" height=\"340\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Connection-Detail-Window.jpg\" alt=\"\" class=\"wp-image-916\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Connection-Detail-Window.jpg 387w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Connection-Detail-Window-300x264.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Connection-Detail-Window-50x44.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Connection-Detail-Window-60x53.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Connection-Detail-Window-100x88.jpg 100w\" sizes=\"(max-width: 387px) 100vw, 387px\" \/><\/figure><\/div>\n\n\n\n<p>When your device displays the Esp0003 error message, you can quickly add the keyboard map by opening the details display in the Administrator\u2019s Connections List. Just double-click on the connection and select the \u2018Add Keyboard Map\u2019 option.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4>Adding Keyboard Maps Manually<\/h4>\n\n\n\n<p>The StayLinked Administrator section for keyboard maps shows a list of installed keyboards. You can add new keyboards, create custom keyboards, edit installed keyboards, or copy installed keyboards. Adding a new keyboard is done by right clicking in the window and selecting \u2018Add\u2019. Each keyboard appears in the list multiple times, once for each emulation type. Choose the emulation types that matches the eSP0003 error message or your telnet host entry. Note that UTF8 and SSH emulation hosts utilize the VT emulation type for keyboard maps.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"460\" height=\"191\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Select-a-Keyboard.jpg\" alt=\"\" class=\"wp-image-917\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Select-a-Keyboard.jpg 460w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Select-a-Keyboard-300x125.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Select-a-Keyboard-50x21.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Select-a-Keyboard-60x25.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Select-a-Keyboard-100x42.jpg 100w\" sizes=\"(max-width: 460px) 100vw, 460px\" \/><\/figure>\n\n\n\n<h3>Video &#8211; Adding a Keyboard Map<\/h3>\n\n\n\n<div class=\"wp-block-media-text alignwide\"><figure class=\"wp-block-media-text__media\"><video controls src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Adding-a-Keyboard-Map.mp4\"><\/video><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-large-font-size\"><\/p>\n<\/div><\/div>\n\n\n\n<h3>Missing or Unknown Device Types and Keyboard Definitions<\/h3>\n\n\n\n<p>New\ndevice types are constantly being added to the list of known devices. Your\nStayLinked Administrator can be updated with the latest list of keyboards by\ninstalling the \u2018Administrator Keyboard Definition Update\u2019 from the StayLinked\ndownloads site. This updates the Administrator with the latest list, allowing\nyou to install the best available keyboard map for your device. Older Administrator\nversions may need to be updated to a newer version in order to install the latest\nkeyboard definition update.<\/p>\n\n\n\n<p>If you\u2019ve installed the keyboard update and your device type still does not appear in the list of available keyboards, you can simply install a similar model\/keyboard combination and then copy it to match the device type reported by your client. Devices within the same manufacturer line commonly generate consistent key codes. Like models and operating systems do not typically require significant alteration for use on similar devices.<\/p>\n\n\n\n<p>Starting in v16.2, the Administrator Keyboard Definition Update is replaced with a single Administrator update package that updates multiple configuration options without changing the installed version. This package bundles XML reference files used by the program to identify device makes and models as well as other new options. The Administrator version must still be updated to allow connections to newer Server installation versions.<\/p>\n\n\n\n<h3>Keyboard Map Entries<\/h3>\n\n\n\n<p>In the case of 5250 emulation, the default keyboard entries will meet most (if not all) of your requirements. Other emulation types may require various adjustments. Each keyboard entry is based on two values, the Key Code and the Mnemonic. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" width=\"236\" height=\"248\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Key-Test.jpg\" alt=\"\" class=\"wp-image-918\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Key-Test.jpg 236w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Key-Test-48x50.jpg 48w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Key-Test-57x60.jpg 57w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Key-Test-95x100.jpg 95w\" sizes=\"(max-width: 236px) 100vw, 236px\" \/><\/figure><\/div>\n\n\n\n<p><strong>Key Codes:<\/strong> When a button is pressed on your device, the operating system generates several different event values. Those values are put together into our key code. Some buttons will not generate a key code or will \u2018modify\u2019 the code of the next button you press. For example, pressing the number 1 on our device generated a 313100 as seen in the client\u2019s keyboard test (<em>seen to the right<\/em>). Pressing Shift does not generate a key code but will instead \u2018modify\u2019 the next key pressed, making our [shift] [1] generate a key code of 312101. Key codes are transmitted to the server, where they are compared to a table known as a keyboard map. The keyboard maps will match up key codes to mnemonics. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" width=\"305\" height=\"465\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Edit-Keyboard-Map.jpg\" alt=\"\" class=\"wp-image-919\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Edit-Keyboard-Map.jpg 305w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Edit-Keyboard-Map-197x300.jpg 197w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Edit-Keyboard-Map-33x50.jpg 33w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Edit-Keyboard-Map-39x60.jpg 39w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Edit-Keyboard-Map-66x100.jpg 66w\" sizes=\"(max-width: 305px) 100vw, 305px\" \/><\/figure><\/div>\n\n\n\n<p>If the key code displayed in the key test does not appear in the list, you can simply right click to add a new entry to your keyboard map.<\/p>\n\n\n\n<p><strong>Mnemonics: <\/strong>Anything entered for the keyboard map mnemonic column will be applied to that given key code (displayed as code in the keyboard map). Mnemonics can be picked from the pulldown menu or simply typed into the dialogue box. When nothing is mapped to the mnemonic, the server will use the ASCII value of the center two characters in hexadecimal from the key code. These values can be found on various internet sites or using the Windows Character Map (charmap) which shows various hex values as a tooltip for each entry. Mnemonics can also be entered as a hex value, which is particularly useful for characters that cannot be typed into a Windows dialogue. <\/p>\n\n\n\n<p>For example, a common\nalternative VT escape sequence for function 1 is an escape followed by a\ncapital O and capital P. In StayLinked, that would be mapped as a [hex 1B]OP\nwith the [hex 1B] representing an escape. Anything not included within the\nsquare brackets is transmitted as plain text, while anything within square brackets\nrepresents a StayLinked command. The same sequence could also be mapped as [hex\n1B4F50] with the 1B for an escape, 4F representing the O and 50 representing\nthe P. <\/p>\n\n\n\n<p>One of the options you can select from the mapping pulldown is the [staylinked menu]. This menu provides a few diagnostic features that work with the server. One of these diagnostics is a keyboard test that displays the key code and mapped mnemonic for each key press. This can be very useful in checking your mappings. <strong>Please note that changes to the keyboard map will not take effect on your device until it disconnects and reconnects to the server.<\/strong><\/p>\n\n\n\n<h4>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVT\nEmulation Terminal ID\n\n\n\n<\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" width=\"381\" height=\"629\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Update-Host-Entry.jpg\" alt=\"\" class=\"wp-image-920\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Update-Host-Entry.jpg 381w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Update-Host-Entry-182x300.jpg 182w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Update-Host-Entry-30x50.jpg 30w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Update-Host-Entry-36x60.jpg 36w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/KB-Update-Host-Entry-61x100.jpg 61w\" sizes=\"(max-width: 381px) 100vw, 381px\" \/><\/figure><\/div>\n\n\n\n<p>StayLinked uses a default terminal ID of vt420. Some telnet\nhosts may not support this value and need a different configuration. This is\ncontrolled in the telnet host entry as an emulation property. The most common\nvalues for a terminal id are vt420 (which is the default used if nothing is\nspecified), vt220 or vt100. A new session must be started for changes to the\ntelnet host entry to take effect.<\/p>\n\n\n\n<p>Note that VT100 emulation is limited to functions F1 thru F4. F5 and higher function keys are only available in more advanced emulation types. If your F5 or higher keys are not functioning, it might be as simple as setting your emulation type to VT220 or higher.<\/p>\n\n\n\n<h4>VT Escape Sequence Processing<\/h4>\n\n\n\n<p>This setting can\nhave a direct effect on the operation of key sequences in VT emulation. Some\ntelnet hosts will not properly process escape sequences that are delivered\nacross multiple packets. The default setting for VT Escape Sequence Processing is\nRAW mode. This forces StayLinked to deliver escape sequences in a single transaction.\n<\/p>\n\n\n\n<p>StayLinked uses\nsquare brackets to identify mnemonics, such as [enter]. With VT Escape Sequence\nProcessing set to the \u2018Parse Mode\u2019, you\u2019ll need to double any standard bracket character\nwhen sending a bracket as part of an escape sequence. For example, with VT\nEscape Sequence Processing set to Parse mode, an \u201cescape bracket 16 tilda\u201d\nwould be entered as: [hex 1B][[16~ but in RAW mode it would be mapped as: [hex\n1B][16~ without the extra square bracket.<\/p>\n\n\n\n<p>Older StayLinked servers would default this option to Parse Mode, while newer installations default to RAW mode.<\/p>\n\n\n\n<h3>Common Escape Sequences<\/h3>\n\n\n\n<p>5250 and 3270 emulation types use very standardized values for the various mnemonics that can easily be selected from the pulldown menus when adjusting the keyboard map. Various VT emulation applications have developed their own set of escape sequences over the years. Outlined below are some of these special mappings for a few of the more common applications:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Mapping<\/strong><\/td><td><strong>VT100<\/strong><\/td><td><strong>VT2XX\/4XX<\/strong><\/td><td><strong>SAP Console<\/strong><\/td><td><strong>HighJump<\/strong><\/td><\/tr><tr><td>F1<\/td><td>[hex 1B]OP<\/td><td>[hex 1B][11~<\/td><td>[hex 1B]OP<\/td><td>F1[enter]<\/td><\/tr><tr><td>F2<\/td><td>[hex 1B]OQ<\/td><td>[hex 1B][12~<\/td><td>[hex 1B]OQ<\/td><td>F2[enter]<\/td><\/tr><tr><td>F3<\/td><td>[hex 1B]OR<\/td><td>[hex 1B][13~<\/td><td>[hex 1B]OR<\/td><td>F3[enter]<\/td><\/tr><tr><td>F4<\/td><td>[hex 1B]OS<\/td><td>[hex 1B][14~<\/td><td>[hex 1B]OS<\/td><td>F4[enter]<\/td><\/tr><tr><td>F5<\/td><td>[hex 1B][15~<\/td><td>[hex 1B][15~<\/td><td>[hex 1B][35~<\/td><td>F5[enter]<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Mapping<\/strong><\/td><td><strong>VT100\/2XX\/4XX<\/strong><\/td><\/tr><tr><td>F6<\/td><td>[hex 1B][17~<\/td><\/tr><tr><td>F7<\/td><td>[hex 1B][18~<\/td><\/tr><tr><td>F8<\/td><td>[hex 1B][19~<\/td><\/tr><tr><td>F9<\/td><td>[hex 1B][20~<\/td><\/tr><tr><td>F10<\/td><td>[hex 1B][21~<\/td><\/tr><tr><td>F11<\/td><td>[hex 1B][23~<\/td><\/tr><tr><td>F12<\/td><td>[hex 1B][24~<\/td><\/tr><tr><td>F13<\/td><td>[hex 1B][25~<\/td><\/tr><tr><td>F14<\/td><td>[hex 1B][26~<\/td><\/tr><tr><td>F15<\/td><td>[hex 1B][28~<\/td><\/tr><tr><td>F16<\/td><td>[hex 1B][29~<\/td><\/tr><tr><td>F17<\/td><td>[hex 1B][31~<\/td><\/tr><tr><td>F18<\/td><td>[hex 1B][32~<\/td><\/tr><tr><td>F19<\/td><td>[hex 1B][33~<\/td><\/tr><tr><td>F20<\/td><td>[hex 1B][34~<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Please note that all entries assume\nVT Escape Sequence Processing is defaulted to RAW mode in the telnet host\nentry, host properties. If this setting has been configured to \u2018Parse\u2019, adjust the\nentries above replacing unpaired square bracket with a double bracket.<\/p>\n\n\n\n<p>Since F5 is not a standardized\nfunction in VT emulation, there are many possible variations on the desired\nsequence. Other commonly used sequences for F5 are:<\/p>\n\n\n\n<p>[hex 1B]M &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [hex 1B][16~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [hex 1B]OT<\/p>\n\n\n\n<p>Your application vendor should be able to provide details on the expected values for each key. More information is also available online by searching for ASCII or terminal emulation escape sequence and control codes. <\/p>\n\n\n\n<p>Some applications may also utilize alternate escape sequences for the cursor movement arrow keys. Typical cursor movements are as follows:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Arrow<\/strong><\/td><td><strong>Standard Seq<\/strong><\/td><td><strong>Alternate Seq<\/strong><\/td><td><strong>Alternate Seq<\/strong><\/td><td><strong>Alternate Seq<\/strong><\/td><\/tr><tr><td>Up<\/td><td>[hex 1B][A<\/td><td>[hex 1B][OA<\/td><td>[hex 1B]A<\/td><td>[hex 1B]OA<\/td><\/tr><tr><td>Down<\/td><td>[hex 1B][B<\/td><td>[hex 1B][OB<\/td><td>[hex 1B]B<\/td><td>[hex 1B]OB<\/td><\/tr><tr><td>Right<\/td><td>[hex 1B][C<\/td><td>[hex 1B][OC<\/td><td>[hex 1B]C<\/td><td>[hex 1B]OC<\/td><\/tr><tr><td>Left<\/td><td>[hex 1B][D<\/td><td>[hex 1B][OD<\/td><td>[hex 1B]D<\/td><td>[hex 1B]OD<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4>Alternate Keyboards<\/h4>\n\n\n\n<p>In cases where you\nmight have two different VT emulation hosts that use different keyboard\nmappings, StayLinked supports a telnet host setting to substitute keyboards.<\/p>\n\n\n\n<p>The first step to creating an alternate map is to make a copy of the original map. You can make a copy of any installed map by right clicking on the entry in the list of installed keyboard maps. This copy will need a unique \u2018device type\u2019 as described in the beginning of this article. Once you\u2019ve made the copy, you can open it and make any custom mappings that are required for the specific telnet server. In order to use the alternate keyboard map, you would open the telnet host entry and select Manage &gt; Alternate Keyboards. This opens a dialogue where you can configure the original device type, and the alternative map you would like these devices to use when connecting to this telnet server.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"543\" height=\"162\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Alternate-Keyboards.jpg\" alt=\"\" class=\"wp-image-922\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Alternate-Keyboards.jpg 543w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Alternate-Keyboards-300x90.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Alternate-Keyboards-50x15.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Alternate-Keyboards-60x18.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Alternate-Keyboards-100x30.jpg 100w\" sizes=\"(max-width: 543px) 100vw, 543px\" \/><\/figure>\n\n\n\n<h3>The Server-Based Architecture of Keyboard Maps<\/h3>\n\n\n\n<p>StayLinked uses different components in different places to make keyboards perform as configured. The different components of the solution provide different roles or functions as follows:<\/p>\n\n\n\n<ul><li><strong>StayLinked Administrator<\/strong> \u2013 Owns      a list of available keyboard maps. These are stored in various KBDEF files      in the Administrator\u2019s installation directory. These XML files contain the      list of known emulation and device types and are replaced with new copies      when you run the Administrator Keyboard Definition Update. When selecting      the Keyboard Maps section of the Administrator, the Administrator      downloads the current keyboards.xml file from the Server. If changes are      made or keyboards are installed, the Administrator pushes the file back to      the Server with a notification to re-read the file contents. The old      keyboards.xml file would be renamed with a date and time stamp, and the      new file would become the current working keyboards.xml file. All new      connections to the Server will follow the rules in the current working      file.<\/li><li><strong>StayLinked Server<\/strong> \u2013 Compares      incoming key codes to the list of installed keyboard maps, performing the custom      mnemonic or sending the hex code of the center two characters for any key      code that does not have a specific mapping. For example, a key code of 0A3109      would not appear in a default map but would perform the mnemonic [hex 31]      based on the key code center value.<\/li><li><strong>StayLinked Client<\/strong> \u2013 On the      device, the OS generates values that the client uses to build a key code.      This key code is sent to the StayLinked Server where it is compared against      the keyboard map. Clients cannot generate events for buttons that do not      generate a key code. Special features using the mnemonic [key=XXXXXX] will      act as a key code, sending the key code specified in the mnemonic for      lookup on the keyboard map for that device.<\/li><\/ul>\n\n\n\n<p>This information is\nintended to assist with your usage and configuration of the StayLinked solution.\nStayLinked can configure key codes to provide any desired mapping but does not\nhave control over the WMS\/ERP or hosted application interpretation of those\nmappings.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In order for a device to connect to a StayLinked Server, that Server must have an installed keyboard map that exactly matches the device type and emulation type. Keyboard maps are installed on a server using the StayLinked Administrator. These keyboard maps can be configured with a variety of functions,&#8230;<\/p>\n","protected":false},"author":7,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":[],"ht-kb-category":[58],"ht-kb-tag":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Keyboard Maps &ndash; StayLinked<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.staylinked.com\/knowledge-base\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Keyboard Maps &ndash; StayLinked\" \/>\n<meta property=\"og:description\" content=\"In order for a device to connect to a StayLinked Server, that Server must have an installed keyboard map that exactly matches the device type and emulation type. Keyboard maps are installed on a server using the StayLinked Administrator. These keyboard maps can be configured with a variety of functions,...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/\" \/>\n<meta property=\"og:site_name\" content=\"StayLinked\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-12T22:36:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/#website\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/\",\"name\":\"StayLinked Knowledge Base\",\"description\":\"Partner Portal Resources and Support\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/portal.staylinked.com\/sl\/kb\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image.png\",\"contentUrl\":\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2024\/09\/image.png\",\"width\":504,\"height\":566},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/#webpage\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/\",\"name\":\"Keyboard Maps &ndash; StayLinked\",\"isPartOf\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/#primaryimage\"},\"datePublished\":\"2019-08-06T22:02:04+00:00\",\"dateModified\":\"2026-02-12T22:36:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/keyboard-maps\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/portal.staylinked.com\/sl\/kb\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Keyboard Maps\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/913"}],"collection":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/comments?post=913"}],"version-history":[{"count":6,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/913\/revisions"}],"predecessor-version":[{"id":5891,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/913\/revisions\/5891"}],"wp:attachment":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/media?parent=913"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=913"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}